@opengeni/react 0.46.1 → 0.52.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/README.md +158 -14
  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 +170 -0
  13. package/dist/artifacts.js.map +1 -0
  14. package/dist/chunk-6BBWWOOU.js +82 -0
  15. package/dist/chunk-6BBWWOOU.js.map +1 -0
  16. package/dist/{chunk-HFO4ERGQ.js → chunk-724BW4TW.js} +586 -35
  17. package/dist/chunk-724BW4TW.js.map +1 -0
  18. package/dist/chunk-7I2KB3OK.js +3895 -0
  19. package/dist/chunk-7I2KB3OK.js.map +1 -0
  20. package/dist/chunk-7WCLAEFV.js +2828 -0
  21. package/dist/chunk-7WCLAEFV.js.map +1 -0
  22. package/dist/{chunk-U3CSCMWA.js → chunk-FK6VG4LL.js} +9 -13
  23. package/dist/chunk-FK6VG4LL.js.map +1 -0
  24. package/dist/{chunk-SRFUT2ZU.js → chunk-FWS3KC3Z.js} +120 -64
  25. package/dist/chunk-FWS3KC3Z.js.map +1 -0
  26. package/dist/{chunk-EKZH6IDG.js → chunk-HDBG7XGO.js} +62 -1
  27. package/dist/chunk-HDBG7XGO.js.map +1 -0
  28. package/dist/chunk-HUIKIDM5.js +2148 -0
  29. package/dist/chunk-HUIKIDM5.js.map +1 -0
  30. package/dist/{chunk-LGVMUIRV.js → chunk-JAGDUCZQ.js} +1053 -390
  31. package/dist/chunk-JAGDUCZQ.js.map +1 -0
  32. package/dist/{chunk-LWR4MXSS.js → chunk-JR3QFY6B.js} +420 -35
  33. package/dist/chunk-JR3QFY6B.js.map +1 -0
  34. package/dist/chunk-JVYQRRC4.js +53 -0
  35. package/dist/chunk-JVYQRRC4.js.map +1 -0
  36. package/dist/chunk-KCGXPP5V.js +157 -0
  37. package/dist/chunk-KCGXPP5V.js.map +1 -0
  38. package/dist/{chunk-EB67J347.js → chunk-KZ73RL76.js} +111 -31
  39. package/dist/chunk-KZ73RL76.js.map +1 -0
  40. package/dist/chunk-PEI6RANI.js +3234 -0
  41. package/dist/chunk-PEI6RANI.js.map +1 -0
  42. package/dist/{chunk-3PB7MIT6.js → chunk-ROIRTM37.js} +220 -72
  43. package/dist/chunk-ROIRTM37.js.map +1 -0
  44. package/dist/chunk-VZTQ73XT.js +86 -0
  45. package/dist/chunk-VZTQ73XT.js.map +1 -0
  46. package/dist/{chunk-VCBFUSUZ.js → chunk-WSK7G5LE.js} +72 -4
  47. package/dist/chunk-WSK7G5LE.js.map +1 -0
  48. package/dist/{chunk-FGZUCXZF.js → chunk-WYA65Y3F.js} +16 -16
  49. package/dist/chunk-WYA65Y3F.js.map +1 -0
  50. package/dist/{chunk-6EDV6YFE.js → chunk-X4S56Y2H.js} +147 -35
  51. package/dist/chunk-X4S56Y2H.js.map +1 -0
  52. package/dist/client.d.ts +7 -1
  53. package/dist/clipboard.d.ts +1 -0
  54. package/dist/clipboard.js +7 -0
  55. package/dist/clipboard.js.map +1 -0
  56. package/dist/commands/index.d.ts +3 -3
  57. package/dist/commands/registry.d.ts +1 -1
  58. package/dist/commands/types.d.ts +1 -1
  59. package/dist/components/approval-surface.d.ts +2 -2
  60. package/dist/components/artifacts/artifact-surface.d.ts +18 -0
  61. package/dist/components/artifacts/document-editor.d.ts +172 -0
  62. package/dist/components/artifacts/editable-artifact-ui.d.ts +13 -0
  63. package/dist/components/artifacts/editable-artifact-workbench.d.ts +49 -0
  64. package/dist/components/artifacts/editable-document.d.ts +24 -0
  65. package/dist/components/artifacts/editable-presentation.d.ts +24 -0
  66. package/dist/components/artifacts/editable-spreadsheet.d.ts +32 -0
  67. package/dist/components/artifacts/index.d.ts +8 -0
  68. package/dist/components/artifacts/presentation-editor.d.ts +297 -0
  69. package/dist/components/artifacts/spreadsheet-canvas.d.ts +120 -0
  70. package/dist/components/artifacts/spreadsheet-grid.d.ts +113 -0
  71. package/dist/components/browser-viewer.d.ts +29 -0
  72. package/dist/components/chat-composer.d.ts +13 -8
  73. package/dist/components/code-editor.d.ts +25 -3
  74. package/dist/components/command-palette.d.ts +2 -2
  75. package/dist/components/composer-transcription-control.d.ts +4 -2
  76. package/dist/components/composer.d.ts +29 -15
  77. package/dist/components/computer-viewer.d.ts +23 -0
  78. package/dist/components/copy-button.d.ts +2 -2
  79. package/dist/components/desktop-viewer.d.ts +25 -21
  80. package/dist/components/diff-view.d.ts +1 -1
  81. package/dist/components/enrollment-consent.d.ts +1 -1
  82. package/dist/components/enrollment-device-flow.d.ts +1 -1
  83. package/dist/components/file-browser.d.ts +2 -2
  84. package/dist/components/fleet-tile.d.ts +1 -1
  85. package/dist/components/generated-video-player.d.ts +10 -0
  86. package/dist/components/human-input-form.d.ts +1 -1
  87. package/dist/components/human-input-surface.d.ts +2 -2
  88. package/dist/components/interactive-workbench-viewers.d.ts +2 -0
  89. package/dist/components/machine-card.d.ts +2 -2
  90. package/dist/components/machine-dock-bar.d.ts +3 -3
  91. package/dist/components/machine-health-pill.d.ts +2 -2
  92. package/dist/components/machine-input-display.d.ts +1 -1
  93. package/dist/components/machine-metrics.d.ts +2 -2
  94. package/dist/components/machine-status-pill.d.ts +4 -4
  95. package/dist/components/machines/health.d.ts +1 -1
  96. package/dist/components/machines/machine-detail.d.ts +5 -3
  97. package/dist/components/machines/metric-history-chart.d.ts +1 -1
  98. package/dist/components/machines/metric-sparkline.d.ts +2 -2
  99. package/dist/components/machines/series.d.ts +2 -2
  100. package/dist/components/machines-dashboard.d.ts +5 -5
  101. package/dist/components/markdown.d.ts +1 -1
  102. package/dist/components/message-timeline.d.ts +22 -5
  103. package/dist/components/model-picker.d.ts +2 -2
  104. package/dist/components/model-policy-picker.d.ts +7 -7
  105. package/dist/components/pierre-diff.d.ts +1 -1
  106. package/dist/components/pierre-file.d.ts +1 -1
  107. package/dist/components/queue-draft-policy.d.ts +1 -1
  108. package/dist/components/queue-surface-implementation.d.ts +3 -3
  109. package/dist/components/queue-surface-state.d.ts +4 -4
  110. package/dist/components/queue-surface.d.ts +5 -5
  111. package/dist/components/sandbox-files.d.ts +5 -5
  112. package/dist/components/sandbox-terminal.d.ts +50 -4
  113. package/dist/components/sandbox-workspace.d.ts +30 -10
  114. package/dist/components/session-chrome.d.ts +4 -4
  115. package/dist/components/session-status.d.ts +2 -2
  116. package/dist/components/timeline-annotation-selection.d.ts +9 -0
  117. package/dist/components/timeline-annotations-dialog.d.ts +16 -0
  118. package/dist/components/timeline-annotations.d.ts +13 -0
  119. package/dist/components/tooltip.d.ts +4 -4
  120. package/dist/components/user-message-body.d.ts +2 -2
  121. package/dist/components/workbench-changes.d.ts +2 -2
  122. package/dist/components/workspace-dock.d.ts +3 -1
  123. package/dist/composer.d.ts +11 -11
  124. package/dist/composer.js +7 -7
  125. package/dist/hooks/internal.d.ts +7 -1
  126. package/dist/hooks/use-attached-browsers.d.ts +21 -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-frame-stream.d.ts +28 -0
  130. package/dist/hooks/use-browser-identities.d.ts +26 -0
  131. package/dist/hooks/use-browser-session.d.ts +28 -0
  132. package/dist/hooks/use-browser-sessions.d.ts +32 -0
  133. package/dist/hooks/use-codex-accounts.d.ts +3 -3
  134. package/dist/hooks/use-composer.d.ts +36 -9
  135. package/dist/hooks/use-computer-frame-stream.d.ts +24 -0
  136. package/dist/hooks/use-computer-session.d.ts +28 -0
  137. package/dist/hooks/use-computer-sessions.d.ts +28 -0
  138. package/dist/hooks/use-desktop-stream.d.ts +1 -1
  139. package/dist/hooks/use-environments.d.ts +11 -5
  140. package/dist/hooks/use-file-attachments.d.ts +1 -1
  141. package/dist/hooks/use-goal.d.ts +2 -2
  142. package/dist/hooks/use-human-input.d.ts +2 -2
  143. package/dist/hooks/use-last-started-turn-policy.d.ts +2 -2
  144. package/dist/hooks/use-machine-chip.d.ts +2 -2
  145. package/dist/hooks/use-machines.d.ts +10 -3
  146. package/dist/hooks/use-packs.d.ts +7 -2
  147. package/dist/hooks/use-rigs.d.ts +1 -1
  148. package/dist/hooks/use-sandbox-files.d.ts +25 -4
  149. package/dist/hooks/use-sandbox-git.d.ts +13 -5
  150. package/dist/hooks/use-sandbox-terminal.d.ts +1 -1
  151. package/dist/hooks/use-scheduled-tasks.d.ts +1 -1
  152. package/dist/hooks/use-session-capabilities.d.ts +5 -4
  153. package/dist/hooks/use-session-control.d.ts +1 -1
  154. package/dist/hooks/use-session-events.d.ts +2 -2
  155. package/dist/hooks/use-session-lineage.d.ts +1 -1
  156. package/dist/hooks/use-session-mcp-approval-policy.d.ts +2 -2
  157. package/dist/hooks/use-session.d.ts +2 -2
  158. package/dist/hooks/use-slash-commands.d.ts +1 -1
  159. package/dist/hooks/use-terminal-stream.d.ts +8 -2
  160. package/dist/hooks/use-transcription.d.ts +2 -2
  161. package/dist/hooks/use-turn-queue.d.ts +2 -2
  162. package/dist/hooks/use-video-artifact-playback.d.ts +9 -0
  163. package/dist/hooks/use-voice-input.d.ts +6 -4
  164. package/dist/hooks/use-workspace-capture.d.ts +1 -1
  165. package/dist/hooks/use-workspace-edit.d.ts +1 -1
  166. package/dist/hooks/use-workspace-sessions.d.ts +1 -1
  167. package/dist/hooks/use-workspaces.d.ts +1 -1
  168. package/dist/index.d.ts +158 -154
  169. package/dist/index.js +1718 -908
  170. package/dist/index.js.map +1 -1
  171. package/dist/interaction.d.ts +23 -0
  172. package/dist/interaction.js +36 -0
  173. package/dist/interaction.js.map +1 -0
  174. package/dist/interactive-workbench-viewers-KHNOHWQE.js +13 -0
  175. package/dist/interactive-workbench-viewers-KHNOHWQE.js.map +1 -0
  176. package/dist/lib/composer-responsive-context.d.ts +9 -0
  177. package/dist/lib/relay-wire.d.ts +4 -0
  178. package/dist/lib/sandbox-liveness.d.ts +9 -0
  179. package/dist/lib/terminal-capability.d.ts +5 -0
  180. package/dist/lib/use-portal-token-style.d.ts +14 -3
  181. package/dist/lib/xterm-theme.d.ts +1 -1
  182. package/dist/machines.d.ts +30 -30
  183. package/dist/machines.js +3 -3
  184. package/dist/provider.d.ts +4 -4
  185. package/dist/{queue-surface-implementation-J4XJFKRW.js → queue-surface-implementation-2KVJTYXH.js} +117 -64
  186. package/dist/queue-surface-implementation-2KVJTYXH.js.map +1 -0
  187. package/dist/realtime/dropdown-menu.d.ts +8 -8
  188. package/dist/realtime/realtime-control.d.ts +15 -6
  189. package/dist/realtime.d.ts +4 -4
  190. package/dist/realtime.js +30 -33
  191. package/dist/realtime.js.map +1 -1
  192. package/dist/session-context.d.ts +19 -1
  193. package/dist/session-ui.d.ts +14 -14
  194. package/dist/session-ui.js +6 -5
  195. package/dist/session.d.ts +28 -28
  196. package/dist/session.js +5 -5
  197. package/dist/timeline/activity-rail.d.ts +6 -3
  198. package/dist/timeline/disclosure-context.d.ts +1 -1
  199. package/dist/timeline/fleet-decision-projection.d.ts +1 -1
  200. package/dist/timeline/fleet-decision-row.d.ts +3 -3
  201. package/dist/timeline/index.d.ts +19 -19
  202. package/dist/timeline/parsers.d.ts +6 -3
  203. package/dist/timeline/projection.d.ts +3 -3
  204. package/dist/timeline/registry.d.ts +10 -1
  205. package/dist/timeline/screenshot-lightbox.d.ts +2 -2
  206. package/dist/timeline/shared.d.ts +21 -10
  207. package/dist/timeline/tool-diff.d.ts +2 -2
  208. package/dist/timeline/tool-renderers.d.ts +1 -1
  209. package/dist/timeline/turn-summary.d.ts +3 -3
  210. package/dist/timeline/types.d.ts +42 -2
  211. package/dist/timeline-annotation-selection-3L7LHGG2.js +187 -0
  212. package/dist/timeline-annotation-selection-3L7LHGG2.js.map +1 -0
  213. package/dist/timeline-annotations-dialog-U7EVLR75.js +196 -0
  214. package/dist/timeline-annotations-dialog-U7EVLR75.js.map +1 -0
  215. package/dist/voice-recording-store.d.ts +8 -2
  216. package/package.json +52 -7
  217. package/src/artifacts-document.ts +31 -0
  218. package/src/artifacts-presentation.ts +36 -0
  219. package/src/artifacts-spreadsheet.ts +21 -0
  220. package/src/artifacts.ts +86 -0
  221. package/src/client.ts +90 -1
  222. package/src/clipboard.ts +2 -0
  223. package/src/components/artifacts/artifact-surface.tsx +93 -0
  224. package/src/components/artifacts/document-editor.tsx +2255 -0
  225. package/src/components/artifacts/editable-artifact-ui.tsx +89 -0
  226. package/src/components/artifacts/editable-artifact-workbench.tsx +203 -0
  227. package/src/components/artifacts/editable-document.tsx +657 -0
  228. package/src/components/artifacts/editable-presentation.tsx +1020 -0
  229. package/src/components/artifacts/editable-spreadsheet.tsx +733 -0
  230. package/src/components/artifacts/index.ts +99 -0
  231. package/src/components/artifacts/presentation-editor.tsx +3148 -0
  232. package/src/components/artifacts/spreadsheet-canvas.ts +799 -0
  233. package/src/components/artifacts/spreadsheet-grid.tsx +2129 -0
  234. package/src/components/browser-viewer.tsx +1592 -0
  235. package/src/components/chat-composer.tsx +25 -2
  236. package/src/components/code-editor.tsx +90 -31
  237. package/src/components/command-palette.tsx +1 -1
  238. package/src/components/composer-transcription-control.tsx +51 -22
  239. package/src/components/composer.tsx +49 -23
  240. package/src/components/computer-viewer.tsx +1139 -0
  241. package/src/components/copy-button.tsx +1 -1
  242. package/src/components/desktop-viewer.tsx +103 -75
  243. package/src/components/file-browser.tsx +39 -17
  244. package/src/components/generated-video-player.tsx +89 -0
  245. package/src/components/human-input-form.tsx +2 -2
  246. package/src/components/interactive-workbench-viewers.ts +2 -0
  247. package/src/components/machine-card.tsx +1 -1
  248. package/src/components/machine-input-display.ts +3 -0
  249. package/src/components/machines/machine-detail.tsx +39 -15
  250. package/src/components/machines-dashboard.tsx +7 -6
  251. package/src/components/message-timeline.tsx +327 -37
  252. package/src/components/model-picker.tsx +2 -2
  253. package/src/components/model-policy-picker.tsx +16 -15
  254. package/src/components/queue-surface-implementation.tsx +135 -75
  255. package/src/components/queue-surface-state.tsx +2 -2
  256. package/src/components/sandbox-files.tsx +142 -62
  257. package/src/components/sandbox-terminal.tsx +119 -35
  258. package/src/components/sandbox-workspace.tsx +394 -228
  259. package/src/components/session-chrome.tsx +67 -27
  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/tooltip.tsx +13 -16
  264. package/src/components/user-message-body.tsx +1 -1
  265. package/src/components/workbench-changes.tsx +192 -35
  266. package/src/components/workspace-dock.tsx +13 -5
  267. package/src/composer.ts +3 -0
  268. package/src/hooks/internal.ts +132 -38
  269. package/src/hooks/use-attached-browsers.ts +152 -0
  270. package/src/hooks/use-browser-frame-stream.ts +316 -0
  271. package/src/hooks/use-browser-identities.ts +225 -0
  272. package/src/hooks/use-browser-session.ts +476 -0
  273. package/src/hooks/use-browser-sessions.ts +281 -0
  274. package/src/hooks/use-codex-accounts.ts +4 -4
  275. package/src/hooks/use-composer.ts +769 -24
  276. package/src/hooks/use-computer-frame-stream.ts +311 -0
  277. package/src/hooks/use-computer-session.ts +442 -0
  278. package/src/hooks/use-computer-sessions.ts +245 -0
  279. package/src/hooks/use-environments.ts +24 -5
  280. package/src/hooks/use-file-attachments.ts +70 -32
  281. package/src/hooks/use-goal.ts +17 -5
  282. package/src/hooks/use-machine-chip.ts +5 -3
  283. package/src/hooks/use-machines.ts +79 -3
  284. package/src/hooks/use-packs.ts +51 -0
  285. package/src/hooks/use-sandbox-files.ts +382 -88
  286. package/src/hooks/use-sandbox-git.ts +208 -46
  287. package/src/hooks/use-sandbox-terminal.ts +3 -2
  288. package/src/hooks/use-session-capabilities.ts +94 -70
  289. package/src/hooks/use-session-events.ts +18 -4
  290. package/src/hooks/use-terminal-stream.ts +102 -23
  291. package/src/hooks/use-transcription.ts +4 -14
  292. package/src/hooks/use-turn-queue.ts +17 -5
  293. package/src/hooks/use-video-artifact-playback.ts +28 -0
  294. package/src/hooks/use-voice-input.ts +163 -19
  295. package/src/hooks/use-windowed-sections.ts +9 -7
  296. package/src/hooks/use-workspace-edit.ts +2 -1
  297. package/src/index.ts +21 -6
  298. package/src/interaction.ts +71 -0
  299. package/src/lib/composer-responsive-context.ts +15 -0
  300. package/src/lib/relay-wire.ts +4 -0
  301. package/src/lib/sandbox-liveness.ts +11 -0
  302. package/src/lib/terminal-capability.ts +10 -0
  303. package/src/lib/use-portal-token-style.ts +60 -15
  304. package/src/provider.tsx +52 -7
  305. package/src/realtime/dropdown-menu.tsx +15 -19
  306. package/src/realtime/realtime-control.tsx +16 -5
  307. package/src/session-context.ts +90 -0
  308. package/src/timeline/activity-rail.tsx +31 -6
  309. package/src/timeline/index.ts +4 -1
  310. package/src/timeline/parsers.ts +46 -20
  311. package/src/timeline/projection.ts +233 -13
  312. package/src/timeline/registry.ts +19 -0
  313. package/src/timeline/screenshot-lightbox.tsx +30 -9
  314. package/src/timeline/shared.tsx +59 -11
  315. package/src/timeline/tool-renderers.tsx +421 -24
  316. package/src/timeline/turn-summary.tsx +2 -2
  317. package/src/timeline/types.ts +58 -2
  318. package/src/voice-recording-store.ts +15 -0
  319. package/styles/compiled.css +5298 -0
  320. package/styles/compiled.d.ts +2 -0
  321. package/styles/effective-tokens.css +27 -0
  322. package/styles/index.css +18 -0
  323. package/styles/responsive.css +208 -0
  324. package/styles/responsive.d.ts +2 -0
  325. package/styles/tokens.css +50 -17
  326. package/dist/chunk-3PB7MIT6.js.map +0 -1
  327. package/dist/chunk-6EDV6YFE.js.map +0 -1
  328. package/dist/chunk-EB67J347.js.map +0 -1
  329. package/dist/chunk-EKZH6IDG.js.map +0 -1
  330. package/dist/chunk-FGZUCXZF.js.map +0 -1
  331. package/dist/chunk-HFO4ERGQ.js.map +0 -1
  332. package/dist/chunk-JB5725BI.js +0 -48
  333. package/dist/chunk-JB5725BI.js.map +0 -1
  334. package/dist/chunk-LGVMUIRV.js.map +0 -1
  335. package/dist/chunk-LWR4MXSS.js.map +0 -1
  336. package/dist/chunk-SRFUT2ZU.js.map +0 -1
  337. package/dist/chunk-U3CSCMWA.js.map +0 -1
  338. package/dist/chunk-VCBFUSUZ.js.map +0 -1
  339. package/dist/fleet-decision-projection-SLNZMS42.js +0 -241
  340. package/dist/fleet-decision-projection-SLNZMS42.js.map +0 -1
  341. package/dist/queue-surface-implementation-J4XJFKRW.js.map +0 -1
@@ -0,0 +1,10 @@
1
+ import type { GeneratedVideoReceipt } from "@opengeni/sdk";
2
+ import type { VideoArtifactPlaybackLoader } from "../timeline/index.js";
3
+ export type GeneratedVideoPlayerProps = {
4
+ receipt: GeneratedVideoReceipt;
5
+ loadPlaybackSource: VideoArtifactPlaybackLoader;
6
+ className?: string | undefined;
7
+ label?: string | undefined;
8
+ };
9
+ /** Native, Range-based playback. Video bytes never pass through React or the SDK heap. */
10
+ export declare function GeneratedVideoPlayer({ receipt, loadPlaybackSource, className, label, }: GeneratedVideoPlayerProps): import("react").JSX.Element;
@@ -50,7 +50,7 @@ export type HumanInputFormProps = {
50
50
  * options, sticky ask/submit chrome. Hosts can replace title/description or
51
51
  * use `useHumanInputRequests` headlessly.
52
52
  */
53
- export declare function HumanInputForm({ request, onSubmit, submitting, error, title, description, progressLabel, submitLabel, skipLabel, messages: messageOverrides, autoFocus, defaultCollapsed, className, }: HumanInputFormProps): import("react/jsx-runtime").JSX.Element;
53
+ export declare function HumanInputForm({ request, onSubmit, submitting, error, title, description, progressLabel, submitLabel, skipLabel, messages: messageOverrides, autoFocus, defaultCollapsed, className, }: HumanInputFormProps): import("react").JSX.Element;
54
54
  export declare function answersFromDrafts(questions: HumanInputQuestion[], drafts: Record<string, HumanInputAnswerDraft>, messageOverrides?: Partial<HumanInputFormMessages>): {
55
55
  answers: HumanInputAnswer[];
56
56
  errors: Record<string, string>;
@@ -1,5 +1,5 @@
1
1
  import type { SessionHumanInputRequest, SubmitHumanInputResponseRequest } from "@opengeni/sdk";
2
- import { type HumanInputFormMessages } from "./human-input-form";
2
+ import { type HumanInputFormMessages } from "./human-input-form.js";
3
3
  export type HumanInputSurfaceProps = {
4
4
  requests: SessionHumanInputRequest[];
5
5
  onSubmit: (requestId: string, response: SubmitHumanInputResponseRequest) => void | Promise<void>;
@@ -16,4 +16,4 @@ export type HumanInputSurfaceProps = {
16
16
  * settles the active request and the next remaining set advances automatically
17
17
  * when the authoritative pending list updates.
18
18
  */
19
- export declare function HumanInputSurface({ requests, onSubmit, respondingRequestId, error, messages, className, autoFocus, }: HumanInputSurfaceProps): import("react/jsx-runtime").JSX.Element | null;
19
+ export declare function HumanInputSurface({ requests, onSubmit, respondingRequestId, error, messages, className, autoFocus, }: HumanInputSurfaceProps): import("react").JSX.Element | null;
@@ -0,0 +1,2 @@
1
+ export { BrowserViewer } from "./browser-viewer.js";
2
+ export { ComputerViewer } from "./computer-viewer.js";
@@ -1,4 +1,4 @@
1
- import type { MachineView, MetricSample } from "../types/machines";
1
+ import type { MachineView, MetricSample } from "../types/machines.js";
2
2
  export type MachineCardProps = {
3
3
  machine: MachineView;
4
4
  /** Attach/swap the session's active sandbox to this machine. */
@@ -18,4 +18,4 @@ export type MachineCardProps = {
18
18
  * freshness, and attach/swap. The whole card opens the telemetry detail when
19
19
  * `onOpenDetail` is wired. The session's active sandbox carries an accent edge.
20
20
  */
21
- export declare function MachineCard({ machine, onAttach, attaching, series, onOpenDetail, now, className, }: MachineCardProps): import("react/jsx-runtime").JSX.Element;
21
+ export declare function MachineCard({ machine, onAttach, attaching, series, onOpenDetail, now, className, }: MachineCardProps): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- import type { MachineKind, MachineState } from "../types/machines";
1
+ import type { MachineKind, MachineState } from "../types/machines.js";
2
2
  export type MachineDockBarProps = {
3
3
  /** The active machine's display name. */
4
4
  name: string;
@@ -16,7 +16,7 @@ export type MachineDockBarProps = {
16
16
  * render IDENTICALLY regardless of backend — this bar is the only backend-aware
17
17
  * chrome (the dock-parity contract: selfhosted == Modal for the surfaces).
18
18
  */
19
- export declare function MachineDockBar({ name, kind, state, className }: MachineDockBarProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare function MachineDockBar({ name, kind, state, className }: MachineDockBarProps): import("react").JSX.Element;
20
20
  export type SharedMachineDisclosureProps = {
21
21
  sharedSessionCount: number;
22
22
  /** Compact (inline strip) vs full (a notice block). */
@@ -28,4 +28,4 @@ export type SharedMachineDisclosureProps = {
28
28
  * dock (and reused on the desktop take-control gate) so the user knows others are
29
29
  * driving the same whole-machine lease. Render when `sharedSessionCount > 1`.
30
30
  */
31
- export declare function SharedMachineDisclosure({ sharedSessionCount, density, className, }: SharedMachineDisclosureProps): import("react/jsx-runtime").JSX.Element;
31
+ export declare function SharedMachineDisclosure({ sharedSessionCount, density, className, }: SharedMachineDisclosureProps): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- import type { MachineState, MetricSample } from "../types/machines";
1
+ import type { MachineState, MetricSample } from "../types/machines.js";
2
2
  export type MachineHealthPillProps = {
3
3
  state: MachineState;
4
4
  metrics: MetricSample | null;
@@ -6,4 +6,4 @@ export type MachineHealthPillProps = {
6
6
  size?: "sm" | "md" | undefined;
7
7
  className?: string | undefined;
8
8
  };
9
- export declare function MachineHealthPill({ state, metrics, now, size, className, }: MachineHealthPillProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare function MachineHealthPill({ state, metrics, now, size, className, }: MachineHealthPillProps): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- import type { MachineInputMember } from "../timeline/types";
1
+ import type { MachineInputMember } from "../timeline/types.js";
2
2
  export declare const MACHINE_INPUT_META: Record<MachineInputMember["kind"], string>;
3
3
  /**
4
4
  * Collapsed landmark label for a coalesced machine-input batch.
@@ -1,4 +1,4 @@
1
- import type { MetricSample } from "../types/machines";
1
+ import type { MetricSample } from "../types/machines.js";
2
2
  export type MachineMetricsProps = {
3
3
  /** The latest metric sample, or null when the machine hasn't reported yet. */
4
4
  metrics: MetricSample | null;
@@ -12,4 +12,4 @@ export type MachineMetricsProps = {
12
12
  * null the panel shows a quiet "no samples yet" placeholder (offline / just
13
13
  * enrolled). GPU rows only render when `gpuUtilPct` is non-null.
14
14
  */
15
- export declare function MachineMetrics({ metrics, density, className }: MachineMetricsProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function MachineMetrics({ metrics, density, className }: MachineMetricsProps): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- import { type ConnectionStatus, type MachineState } from "../types/machines";
1
+ import { type ConnectionStatus, type MachineState } from "../types/machines.js";
2
2
  export type ConnectionStatusMeta = {
3
3
  label: string;
4
4
  dotClassName: string;
@@ -30,13 +30,13 @@ export type ConnectionStatusPillProps = {
30
30
  * the Machines dashboard, the dock header, and the session timeline. Reconnecting
31
31
  * breathes (the resiliency-as-headline blip), online/offline hold still.
32
32
  */
33
- export declare function ConnectionStatusPill({ status, label, size, className, }: ConnectionStatusPillProps): import("react/jsx-runtime").JSX.Element;
33
+ export declare function ConnectionStatusPill({ status, label, size, className, }: ConnectionStatusPillProps): import("react").JSX.Element;
34
34
  export type ConnectionDotProps = {
35
35
  status: ConnectionStatus;
36
36
  className?: string | undefined;
37
37
  };
38
38
  /** Just the dot — for dense rows, the dock header, and timeline notices. */
39
- export declare function ConnectionDot({ status, className }: ConnectionDotProps): import("react/jsx-runtime").JSX.Element;
39
+ export declare function ConnectionDot({ status, className }: ConnectionDotProps): import("react").JSX.Element;
40
40
  export type MachineStatusPillProps = {
41
41
  /** The machine's full state — drives the connection pill + any state badge. */
42
42
  state: MachineState;
@@ -51,4 +51,4 @@ export type MachineStatusPillProps = {
51
51
  * dashboard row, the dock header, and the timeline all reuse so the status
52
52
  * language is identical everywhere.
53
53
  */
54
- export declare function MachineStatusPill({ state, sharedSessionCount, size, className, }: MachineStatusPillProps): import("react/jsx-runtime").JSX.Element;
54
+ export declare function MachineStatusPill({ state, sharedSessionCount, size, className, }: MachineStatusPillProps): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- import type { MachineState, MetricSample } from "../../types/machines";
1
+ import type { MachineState, MetricSample } from "../../types/machines.js";
2
2
  export type HealthLevel = "healthy" | "degraded" | "critical" | "offline" | "unknown";
3
3
  export type HealthVerdict = {
4
4
  level: HealthLevel;
@@ -1,5 +1,5 @@
1
- import type { MachineView, MetricSample } from "../../types/machines";
2
- import { type MetricWindow } from "./series";
1
+ import type { MachineView, MetricSample } from "../../types/machines.js";
2
+ import { type MetricWindow } from "./series.js";
3
3
  export type MachineDetailProps = {
4
4
  machine: MachineView;
5
5
  /** Downsampled history for the active window (from `fetchSeries`). */
@@ -8,7 +8,9 @@ export type MachineDetailProps = {
8
8
  onWindowChange: (w: MetricWindow) => void;
9
9
  loadingSeries?: boolean | undefined;
10
10
  onBack?: (() => void) | undefined;
11
+ /** Open the workspace-admin removal confirmation for a self-hosted machine. */
12
+ onRemove?: ((machine: MachineView) => void) | undefined;
11
13
  now?: number | undefined;
12
14
  className?: string | undefined;
13
15
  };
14
- export declare function MachineDetail({ machine, series, window, onWindowChange, loadingSeries, onBack, now, className, }: MachineDetailProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function MachineDetail({ machine, series, window, onWindowChange, loadingSeries, onBack, onRemove, now, className, }: MachineDetailProps): import("react").JSX.Element;
@@ -21,4 +21,4 @@ export type MetricHistoryChartProps = {
21
21
  rangeLabel?: string | undefined;
22
22
  className?: string | undefined;
23
23
  };
24
- export declare function MetricHistoryChart({ points, yMax, yMin, format, unit, color, thresholds, height, rangeLabel, className, }: MetricHistoryChartProps): import("react/jsx-runtime").JSX.Element;
24
+ export declare function MetricHistoryChart({ points, yMax, yMin, format, unit, color, thresholds, height, rangeLabel, className, }: MetricHistoryChartProps): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- import type { SeriesPoint } from "./metric-history-chart";
1
+ import type { SeriesPoint } from "./metric-history-chart.js";
2
2
  export type MetricSparklineProps = {
3
3
  points: SeriesPoint[];
4
4
  color?: string;
@@ -6,4 +6,4 @@ export type MetricSparklineProps = {
6
6
  height?: number;
7
7
  className?: string | undefined;
8
8
  };
9
- export declare function MetricSparkline({ points, color, yMax, height, className, }: MetricSparklineProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare function MetricSparkline({ points, color, yMax, height, className, }: MetricSparklineProps): import("react").JSX.Element;
@@ -1,5 +1,5 @@
1
- import type { MetricSample } from "../../types/machines";
2
- import type { SeriesPoint } from "./metric-history-chart";
1
+ import type { MetricSample } from "../../types/machines.js";
2
+ import type { SeriesPoint } from "./metric-history-chart.js";
3
3
  export type MetricWindow = "15m" | "1h" | "6h" | "24h";
4
4
  export declare const METRIC_WINDOWS: MetricWindow[];
5
5
  export declare const WINDOW_LABEL: Record<MetricWindow, string>;
@@ -1,4 +1,4 @@
1
- import type { MachineView, MetricSample } from "../types/machines";
1
+ import type { MachineView, MetricSample } from "../types/machines.js";
2
2
  export type MachinesDashboardProps = {
3
3
  machines: MachineView[];
4
4
  /** The session's active sandbox id (drives the per-card "Active" marker). */
@@ -15,16 +15,16 @@ export type MachinesDashboardProps = {
15
15
  onOpenDetail?: ((machine: MachineView) => void) | undefined;
16
16
  /** Shared clock so freshness/relative times render consistently across cards. */
17
17
  now?: number | undefined;
18
- /** Open the enrollment flow (the "Enroll a machine" CTA). */
18
+ /** Open the connection flow (the "Connect a machine" CTA). */
19
19
  onEnroll?: (() => void) | undefined;
20
20
  onRefresh?: (() => void) | undefined;
21
21
  className?: string | undefined;
22
22
  };
23
23
  /**
24
- * The workspace Machines dashboard: the fleet of selfhosted enrollments + the
24
+ * The workspace Machines dashboard: the fleet of Connected Machines + the
25
25
  * session's managed sandbox, each with its connection-status pill, state badges,
26
26
  * latest metrics, and an attach/swap affordance. Renders the empty state (no
27
- * machines → enroll CTA), a load error, and the populated grid. The component
27
+ * machines → connect CTA), a load error, and the populated grid. The component
28
28
  * is purely presentational — feed it `MachinesResponse` data via `useMachines`.
29
29
  */
30
- export declare function MachinesDashboard({ machines, activeSandboxId, loading, error, onAttach, attachingSandboxId, seriesByMachine, onOpenDetail, now, onEnroll, onRefresh, className, }: MachinesDashboardProps): import("react/jsx-runtime").JSX.Element;
30
+ export declare function MachinesDashboard({ machines, activeSandboxId, loading, error, onAttach, attachingSandboxId, seriesByMachine, onOpenDetail, now, onEnroll, onRefresh, className, }: MachinesDashboardProps): import("react").JSX.Element;
@@ -25,7 +25,7 @@ export type MarkdownProps = {
25
25
  */
26
26
  streaming?: boolean | undefined;
27
27
  };
28
- declare function MarkdownImpl({ children, className, streaming }: MarkdownProps): import("react/jsx-runtime").JSX.Element;
28
+ declare function MarkdownImpl({ children, className, streaming }: MarkdownProps): import("react").JSX.Element;
29
29
  /** Memoized so streaming re-renders of the parent don't re-parse settled bodies. */
30
30
  export declare const Markdown: import("react").MemoExoticComponent<typeof MarkdownImpl>;
31
31
  export {};
@@ -1,6 +1,6 @@
1
- import type { SessionEvent, SessionStatus } from "@opengeni/sdk";
1
+ import type { DraftTimelineAnnotation, SessionEvent, SessionStatus } from "@opengeni/sdk";
2
2
  import { type ReactNode } from "react";
3
- import { type AgentMessageItem, type AuthNeededItem, type TimelineGroup, type TimelineItem, type ToolRegistry, type TurnSummaryOptions, type UserMessageItem } from "../timeline";
3
+ import { type AgentMessageItem, type AuthNeededItem, type TimelineGroup, type TimelineItem, type RetainedArtifactLoader, type RetainedScreenshotLoader, type VideoArtifactPlaybackLoader, type ToolRegistry, type TurnSummaryOptions, type UserMessageItem } from "../timeline/index.js";
4
4
  export type MessageTimelineProps = {
5
5
  /** Raw session events (projected internally) … */
6
6
  events?: SessionEvent[] | undefined;
@@ -29,6 +29,12 @@ export type MessageTimelineProps = {
29
29
  * a Reconnect button without a handler to run it.
30
30
  */
31
31
  onReconnect?: ((item: AuthNeededItem) => void | Promise<void>) | undefined;
32
+ /**
33
+ * Decide which durable authentication notices this timeline presents.
34
+ * Defaults to showing every notice. Embedded hosts can suppress notices for
35
+ * credentials they manage elsewhere without discarding the underlying event.
36
+ */
37
+ shouldRenderAuthNeeded?: ((item: AuthNeededItem) => boolean) | undefined;
32
38
  /**
33
39
  * Resolve a provider domain (from a reconnect card) to a logo URL the host
34
40
  * serves itself — the app maps it through its catalog + `catalogAssetUrl`.
@@ -43,6 +49,12 @@ export type MessageTimelineProps = {
43
49
  * `createDefaultToolRegistry({ entries })` to add custom tool renderers.
44
50
  */
45
51
  toolRegistry?: ToolRegistry | undefined;
52
+ /** Resolve opaque retained screenshot receipts through the authenticated host SDK. */
53
+ loadRetainedScreenshot?: RetainedScreenshotLoader | undefined;
54
+ /** Resolve permanent generated-image receipts through the authenticated host SDK. */
55
+ loadRetainedArtifact?: RetainedArtifactLoader | undefined;
56
+ /** Mint short-lived native playback sources for retained generated videos. */
57
+ loadVideoArtifactPlayback?: VideoArtifactPlaybackLoader | undefined;
46
58
  /**
47
59
  * Display name of the session's active compute target (Connected Machine or
48
60
  * cloud sandbox). When set, exec_command collapsed previews prefix `on {label}`.
@@ -52,6 +64,8 @@ export type MessageTimelineProps = {
52
64
  turnSummary?: TurnSummaryOptions | undefined;
53
65
  /** Follow new events when pinned to the bottom. Defaults to true. */
54
66
  autoFollow?: boolean | undefined;
67
+ /** Capture a same-row text selection into the host's canonical composer draft. */
68
+ onAnnotate?: ((annotation: DraftTimelineAnnotation) => void) | undefined;
55
69
  /** Older durable history exists above the current window (see useSessionEvents). */
56
70
  hasOlder?: boolean | undefined;
57
71
  /** An older window is being fetched; shows the quiet top shimmer. */
@@ -73,6 +87,8 @@ export type MessageTimelineProps = {
73
87
  * scrolls the in-memory window.
74
88
  */
75
89
  onJumpToLatest?: (() => void | Promise<void>) | undefined;
90
+ /** Host-owned content appended after timeline groups, such as startup progress. */
91
+ trailingState?: ReactNode | undefined;
76
92
  emptyState?: ReactNode | undefined;
77
93
  className?: string | undefined;
78
94
  };
@@ -82,7 +98,7 @@ export type MessageTimelineProps = {
82
98
  * cards, goal markers, and status transitions. Owns stick-to-bottom scrolling
83
99
  * with a "jump to latest" affordance when the reader scrolls back.
84
100
  */
85
- export declare function MessageTimeline({ events, items, status: _status, renderMessageText, onOpenSession, onMemoryClick, onReconnect, resolveProviderLogo, toolRegistry, computeLabel, turnSummary, autoFollow, hasOlder, loadingOlder, onLoadOlder, onJumpToStart, loadingOldest, hasNewer, loadingNewer, onLoadNewer, onJumpToLatest, emptyState, className, }: MessageTimelineProps): import("react/jsx-runtime").JSX.Element;
101
+ export declare function MessageTimeline({ events, items, status: _status, renderMessageText, onOpenSession, onMemoryClick, onReconnect, shouldRenderAuthNeeded, resolveProviderLogo, toolRegistry, loadRetainedScreenshot, loadRetainedArtifact, loadVideoArtifactPlayback, computeLabel, turnSummary, autoFollow, onAnnotate, hasOlder, loadingOlder, onLoadOlder, onJumpToStart, loadingOldest, hasNewer, loadingNewer, onLoadNewer, onJumpToLatest, trailingState, emptyState, className, }: MessageTimelineProps): import("react").JSX.Element;
86
102
  /**
87
103
  * Settled turns lift the final agent answer out as a sibling group. Include it
88
104
  * in "Copy turn" when present so the chip copies the full assistant reply.
@@ -94,10 +110,11 @@ export declare function trailingAgentTextAfterTurn(group: TimelineGroup, next: T
94
110
  * landmark, notice). Exported so the component demo draws the EXACT same rows as
95
111
  * the live app — no forked bubble/goal markup.
96
112
  */
97
- export declare function TimelineRow({ item, renderMessageText, onReconnect, resolveProviderLogo, onOpenSession, }: {
113
+ export declare function TimelineRow({ item, renderMessageText, onReconnect, resolveProviderLogo, onOpenSession, loadVideoArtifactPlayback, }: {
98
114
  item: TimelineItem;
99
115
  renderMessageText?: ((text: string, item: AgentMessageItem | UserMessageItem) => ReactNode) | undefined;
100
116
  onReconnect?: ((item: AuthNeededItem) => void | Promise<void>) | undefined;
101
117
  resolveProviderLogo?: ((providerDomain: string) => string | null | undefined) | undefined;
102
118
  onOpenSession?: ((sessionId: string) => void) | undefined;
103
- }): import("react/jsx-runtime").JSX.Element | null;
119
+ loadVideoArtifactPlayback?: VideoArtifactPlaybackLoader | undefined;
120
+ }): import("react").JSX.Element | null;
@@ -1,5 +1,5 @@
1
1
  import type { ClientModel } from "@opengeni/sdk";
2
- import { type PickerModelRow } from "../model-policy";
2
+ import { type PickerModelRow } from "../model-policy.js";
3
3
  export type ModelPickerProps = {
4
4
  /** Legacy host config models grouped by provider. */
5
5
  models?: ClientModel[] | undefined;
@@ -16,4 +16,4 @@ export type ModelPickerProps = {
16
16
  */
17
17
  codexOnly?: boolean | undefined;
18
18
  };
19
- export declare function ModelPicker({ models, rows, value, onChange, disabled, className, label, codexOnly, }: ModelPickerProps): import("react/jsx-runtime").JSX.Element | null;
19
+ export declare function ModelPicker({ models, rows, value, onChange, disabled, className, label, codexOnly, }: ModelPickerProps): import("react").JSX.Element | null;
@@ -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,10 +1,10 @@
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;
6
- /** From `useSandboxGit(...)` drives the branch/dirty header only. */
7
- git: UseSandboxGitResult;
6
+ /** Compatibility fallback for callers that have not yet adopted `files.gitSummary`. */
7
+ git?: UseSandboxGitResult | undefined;
8
8
  /** @deprecated Diffs live in the dedicated Changes tab now; accepted for
9
9
  * source-compat but unused (the Files surface is a browser + viewer). */
10
10
  stagedGit?: UseSandboxGitResult | undefined;
@@ -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
  */
@@ -82,6 +83,51 @@ export type SandboxTerminalProps = {
82
83
  onActivate?: (() => void) | undefined;
83
84
  className?: string | undefined;
84
85
  };
86
+ type XtermLike = {
87
+ open: (el: HTMLElement) => void;
88
+ write: (data: string) => void;
89
+ clear: () => void;
90
+ onData: (cb: (data: string) => void) => {
91
+ dispose: () => void;
92
+ };
93
+ onResize: (cb: (size: {
94
+ cols: number;
95
+ rows: number;
96
+ }) => void) => {
97
+ dispose: () => void;
98
+ };
99
+ loadAddon: (addon: unknown) => void;
100
+ dispose: () => void;
101
+ cols: number;
102
+ rows: number;
103
+ options: {
104
+ theme?: XtermTheme;
105
+ disableStdin?: boolean;
106
+ cursorBlink?: boolean;
107
+ fontFamily?: string;
108
+ fontSize?: number;
109
+ };
110
+ };
111
+ export type TerminalSurfaceState = "loading" | "connecting" | "error" | "waking" | "output-only" | "interactive";
112
+ /**
113
+ * Stable semantic state for hosts and browser acceptance. The xterm helper
114
+ * textarea exists before the live PTY socket is ready, so its presence alone
115
+ * must never be treated as proof that keystrokes can reach the sandbox.
116
+ */
117
+ export declare function terminalSurfaceState(input: {
118
+ ready: boolean;
119
+ acceptsInput: boolean;
120
+ inputPending: boolean;
121
+ ptyStatus: TerminalStreamStatus;
122
+ booting: boolean;
123
+ }): TerminalSurfaceState;
124
+ export declare function subscribeTerminalInput(term: Pick<XtermLike, "onData"> | null, sink: ((data: string) => void) | null, enabled: boolean): {
125
+ dispose: () => void;
126
+ } | null;
127
+ /** Clear the transient wake line and put the first live prompt at cell 1,1.
128
+ * `Terminal.clear()` removes scrollback but deliberately preserves the cursor,
129
+ * which lets the first PTY frame append to the old wake message. */
130
+ export declare function clearTerminalBootStatus(term: Pick<XtermLike, "write">): void;
85
131
  /** Debug seam (dev/evidence only, never a typed public API): a global hook the
86
132
  * screenshot harness reads to probe the settled renderer tier + resolved font
87
133
  * without mounting a real WebGL context in unit tests. */
@@ -119,5 +165,5 @@ declare global {
119
165
  * Resizes are tracked with a `ResizeObserver` on the container (not just
120
166
  * `window.resize`) so dragging the dock handle refits the grid.
121
167
  */
122
- export declare function SandboxTerminal({ result, terminalCapability, theme, fontFamily, fontSize, liveness, readOnly, placeholder, showHeader, shell, onActivate, className, }: SandboxTerminalProps): import("react/jsx-runtime").JSX.Element;
168
+ export declare function SandboxTerminal({ result, terminalCapability, theme, fontFamily, fontSize, liveness, readOnly, placeholder, showHeader, shell, onActivate, className, }: SandboxTerminalProps): import("react").JSX.Element;
123
169
  export {};