@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,23 @@
1
+ export type { EmbeddedBrowserInteractionClientLike, EmbeddedComputerInteractionClientLike, EmbeddedInteractionClientLike, } from "./client.js";
2
+ export { useEmbeddedBrowserInteraction, useEmbeddedComputerInteraction, useEmbeddedInteraction, } from "./session-context.js";
3
+ export type { EmbeddedBrowserInteractionClientOverride, EmbeddedComputerInteractionClientOverride, EmbeddedInteractionClientOverride, } from "./session-context.js";
4
+ export { useAttachedBrowsers } from "./hooks/use-attached-browsers.js";
5
+ export type { AttachedBrowsersClient, UseAttachedBrowsersOptions, UseAttachedBrowsersResult, } from "./hooks/use-attached-browsers.js";
6
+ export { useBrowserSessions } from "./hooks/use-browser-sessions.js";
7
+ export type { BrowserSessionsClient, UseBrowserSessionsOptions, UseBrowserSessionsResult, } from "./hooks/use-browser-sessions.js";
8
+ export { useBrowserIdentities } from "./hooks/use-browser-identities.js";
9
+ export type { BrowserIdentitiesClient, UseBrowserIdentitiesOptions, UseBrowserIdentitiesResult, } from "./hooks/use-browser-identities.js";
10
+ export { useBrowserSession } from "./hooks/use-browser-session.js";
11
+ export type { UseBrowserSessionOptions, UseBrowserSessionResult, } from "./hooks/use-browser-session.js";
12
+ export { useBrowserFrameStream } from "./hooks/use-browser-frame-stream.js";
13
+ export type { BrowserFrameConnectionState, BrowserFrameWebSocket, BrowserFrameWebSocketFactory, UseBrowserFrameStreamOptions, UseBrowserFrameStreamResult, } from "./hooks/use-browser-frame-stream.js";
14
+ export { BrowserViewer } from "./components/browser-viewer.js";
15
+ export type { BrowserViewerNotification, BrowserViewerProps } from "./components/browser-viewer.js";
16
+ export { useComputerSessions } from "./hooks/use-computer-sessions.js";
17
+ export type { ComputerSessionsClient, UseComputerSessionsOptions, UseComputerSessionsResult, } from "./hooks/use-computer-sessions.js";
18
+ export { useComputerSession } from "./hooks/use-computer-session.js";
19
+ export type { UseComputerSessionOptions, UseComputerSessionResult, } from "./hooks/use-computer-session.js";
20
+ export { useComputerFrameStream } from "./hooks/use-computer-frame-stream.js";
21
+ export type { ComputerFrameConnectionState, ComputerFrameWebSocket, ComputerFrameWebSocketFactory, UseComputerFrameStreamOptions, UseComputerFrameStreamResult, } from "./hooks/use-computer-frame-stream.js";
22
+ export { ComputerViewer } from "./components/computer-viewer.js";
23
+ export type { ComputerViewerNotification, ComputerViewerProps } from "./components/computer-viewer.js";
@@ -0,0 +1,36 @@
1
+ import {
2
+ BrowserViewer,
3
+ ComputerViewer,
4
+ useAttachedBrowsers,
5
+ useBrowserFrameStream,
6
+ useBrowserIdentities,
7
+ useBrowserSession,
8
+ useBrowserSessions,
9
+ useComputerFrameStream,
10
+ useComputerSession,
11
+ useComputerSessions
12
+ } from "./chunk-7I2KB3OK.js";
13
+ import "./chunk-6BBWWOOU.js";
14
+ import "./chunk-KZ73RL76.js";
15
+ import {
16
+ useEmbeddedBrowserInteraction,
17
+ useEmbeddedComputerInteraction,
18
+ useEmbeddedInteraction
19
+ } from "./chunk-HDBG7XGO.js";
20
+ import "./chunk-22KP6LR5.js";
21
+ export {
22
+ BrowserViewer,
23
+ ComputerViewer,
24
+ useAttachedBrowsers,
25
+ useBrowserFrameStream,
26
+ useBrowserIdentities,
27
+ useBrowserSession,
28
+ useBrowserSessions,
29
+ useComputerFrameStream,
30
+ useComputerSession,
31
+ useComputerSessions,
32
+ useEmbeddedBrowserInteraction,
33
+ useEmbeddedComputerInteraction,
34
+ useEmbeddedInteraction
35
+ };
36
+ //# sourceMappingURL=interaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,13 @@
1
+ import {
2
+ BrowserViewer,
3
+ ComputerViewer
4
+ } from "./chunk-7I2KB3OK.js";
5
+ import "./chunk-6BBWWOOU.js";
6
+ import "./chunk-KZ73RL76.js";
7
+ import "./chunk-HDBG7XGO.js";
8
+ import "./chunk-22KP6LR5.js";
9
+ export {
10
+ BrowserViewer,
11
+ ComputerViewer
12
+ };
13
+ //# sourceMappingURL=interactive-workbench-viewers-KHNOHWQE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,9 @@
1
+ import { type RefObject } from "react";
2
+ /** The measurement surface used by responsive composer chrome. */
3
+ export type ResponsiveBasis = "viewport" | "container";
4
+ export type ComposerResponsiveContextValue = {
5
+ responsiveBasis: ResponsiveBasis;
6
+ rootRef: RefObject<HTMLDivElement | null>;
7
+ };
8
+ export declare const ComposerResponsiveContext: import("react").Context<ComposerResponsiveContextValue | null>;
9
+ export declare function useComposerResponsiveContext(): ComposerResponsiveContextValue | null;
@@ -1,5 +1,9 @@
1
1
  /** `StreamKind.STREAM_KIND_DESKTOP` (agent-proto enum value). */
2
2
  export declare const STREAM_KIND_DESKTOP = 2;
3
+ /** `StreamKind.STREAM_KIND_BROWSER` (agent-proto enum value). */
4
+ export declare const STREAM_KIND_BROWSER = 3;
5
+ /** `StreamKind.STREAM_KIND_COMPUTER` (agent-proto enum value). */
6
+ export declare const STREAM_KIND_COMPUTER = 4;
3
7
  /** `StreamRole.STREAM_ROLE_CLIENT` (agent-proto enum value). */
4
8
  export declare const STREAM_ROLE_CLIENT = 2;
5
9
  export interface RelayChannel {
@@ -0,0 +1,9 @@
1
+ /**
2
+ * A sandbox is available for new I/O only after a holder has observed `warm`.
3
+ *
4
+ * `draining` means the holder count is zero and teardown owns the provider
5
+ * instance. The provider may disappear before the durable lease reaches `cold`,
6
+ * so treating `draining` as live races capture/termination. Explicit user intent
7
+ * reacquires a holder; only its subsequent `warm` state re-enables live I/O.
8
+ */
9
+ export declare function sandboxAcceptsLiveIo(liveness: string | null | undefined): boolean;
@@ -0,0 +1,5 @@
1
+ import type { TerminalCapability } from "@opengeni/sdk";
2
+ /** Whether an explicit viewer grant can upgrade this cell to a real PTY.
3
+ * Keep acquisition feasibility separate from the current transport: a cold
4
+ * real-PTY backend reports sse-events until the just-in-time grant warms it. */
5
+ export declare function terminalCanAcquirePty(cell: TerminalCapability | null | undefined): boolean;
@@ -1,9 +1,20 @@
1
- import { type CSSProperties, type RefObject } from "react";
2
- export type PortalTokenStyle = CSSProperties & Record<`--${string}`, string>;
1
+ import { type CSSProperties, type RefCallback, type RefObject } from "react";
2
+ export type PortalTokenStyle = Pick<CSSProperties, "colorScheme"> & Partial<Record<`--${string}`, string>>;
3
+ export declare const PORTAL_SOURCE_INLINE_SIZE = "--og-portal-source-inline-size";
4
+ /**
5
+ * A callback ref that publishes the currently mounted source element through
6
+ * React state. Unlike a bare mutable ref, late mounts and replacements cause
7
+ * consumers to render and restart their observers without polling.
8
+ */
9
+ export declare function usePortalTokenSource<T extends HTMLElement>(): {
10
+ source: T | null;
11
+ currentRef: RefObject<T | null>;
12
+ ref: RefCallback<T>;
13
+ };
3
14
  /**
4
15
  * Copy the effective SDK tokens across a portal boundary. A locally themed or
5
16
  * rebranded embed cannot rely on CSS inheritance once a portal mounts under
6
17
  * `<body>`. Ancestor theme/class/style mutations and OS color-scheme changes
7
18
  * keep the copied values live.
8
19
  */
9
- export declare function usePortalTokenStyle(sourceRef: RefObject<HTMLElement | null>): PortalTokenStyle;
20
+ export declare function usePortalTokenStyle(source: HTMLElement | null): PortalTokenStyle;
@@ -1,4 +1,4 @@
1
- import type { XtermTheme } from "../components/sandbox-terminal";
1
+ import type { XtermTheme } from "../components/sandbox-terminal.js";
2
2
  export type ThemeMode = "dark" | "light";
3
3
  /** Reads a resolved token value (already `getComputedStyle`-flattened). */
4
4
  export type TokenReader = (name: string) => string | undefined;
@@ -1,30 +1,30 @@
1
- export type { ConnectionStatus, MachineKind, MachineMetricsSeriesResponse, MachineState, MachineView, MachinesResponse, MetricSample, } from "./types/machines";
2
- export { connectionStatusForState } from "./types/machines";
3
- export { ConnectionDot, ConnectionStatusPill, MachineStatusPill, CONNECTION_STATUS_META, MACHINE_STATE_BADGE_META, } from "./components/machine-status-pill";
4
- export type { ConnectionDotProps, ConnectionStatusMeta, ConnectionStatusPillProps, MachineStateBadgeMeta, MachineStatusPillProps, } from "./components/machine-status-pill";
5
- export { MachineMetrics } from "./components/machine-metrics";
6
- export type { MachineMetricsProps } from "./components/machine-metrics";
7
- export { MachineCard } from "./components/machine-card";
8
- export type { MachineCardProps } from "./components/machine-card";
9
- export { MachineHealthPill } from "./components/machine-health-pill";
10
- export type { MachineHealthPillProps } from "./components/machine-health-pill";
11
- export { deriveHealth, HEALTH_TOKEN, healthPulses } from "./components/machines/health";
12
- export type { HealthLevel, HealthVerdict } from "./components/machines/health";
13
- export { MetricSparkline } from "./components/machines/metric-sparkline";
14
- export type { MetricSparklineProps } from "./components/machines/metric-sparkline";
15
- export { MetricHistoryChart } from "./components/machines/metric-history-chart";
16
- export type { MetricHistoryChartProps, SeriesPoint, } from "./components/machines/metric-history-chart";
17
- export { MachineDetail } from "./components/machines/machine-detail";
18
- export type { MachineDetailProps } from "./components/machines/machine-detail";
19
- export { METRICS, METRIC_WINDOWS, WINDOW_LABEL, pointsFor } from "./components/machines/series";
20
- export type { MetricDef, MetricKey, MetricWindow } from "./components/machines/series";
21
- export { MachinesDashboard } from "./components/machines-dashboard";
22
- export type { MachinesDashboardProps } from "./components/machines-dashboard";
23
- export { MachineDockBar, SharedMachineDisclosure } from "./components/machine-dock-bar";
24
- export type { MachineDockBarProps, SharedMachineDisclosureProps, } from "./components/machine-dock-bar";
25
- export { EnrollmentDeviceFlow } from "./components/enrollment-device-flow";
26
- export type { DeviceFlowPhase, EnrollmentDeviceFlowProps, } from "./components/enrollment-device-flow";
27
- export { EnrollmentConsent } from "./components/enrollment-consent";
28
- export type { EnrollmentConsentMachine, EnrollmentConsentPhase, EnrollmentConsentProps, } from "./components/enrollment-consent";
29
- export { useMachines } from "./hooks/use-machines";
30
- export type { MachinesClientLike, UseMachinesOptions, UseMachinesResult, } from "./hooks/use-machines";
1
+ export type { ConnectionStatus, MachineKind, MachineMetricsSeriesResponse, MachineState, MachineView, MachinesResponse, MetricSample, } from "./types/machines.js";
2
+ export { connectionStatusForState } from "./types/machines.js";
3
+ export { ConnectionDot, ConnectionStatusPill, MachineStatusPill, CONNECTION_STATUS_META, MACHINE_STATE_BADGE_META, } from "./components/machine-status-pill.js";
4
+ export type { ConnectionDotProps, ConnectionStatusMeta, ConnectionStatusPillProps, MachineStateBadgeMeta, MachineStatusPillProps, } from "./components/machine-status-pill.js";
5
+ export { MachineMetrics } from "./components/machine-metrics.js";
6
+ export type { MachineMetricsProps } from "./components/machine-metrics.js";
7
+ export { MachineCard } from "./components/machine-card.js";
8
+ export type { MachineCardProps } from "./components/machine-card.js";
9
+ export { MachineHealthPill } from "./components/machine-health-pill.js";
10
+ export type { MachineHealthPillProps } from "./components/machine-health-pill.js";
11
+ export { deriveHealth, HEALTH_TOKEN, healthPulses } from "./components/machines/health.js";
12
+ export type { HealthLevel, HealthVerdict } from "./components/machines/health.js";
13
+ export { MetricSparkline } from "./components/machines/metric-sparkline.js";
14
+ export type { MetricSparklineProps } from "./components/machines/metric-sparkline.js";
15
+ export { MetricHistoryChart } from "./components/machines/metric-history-chart.js";
16
+ export type { MetricHistoryChartProps, SeriesPoint, } from "./components/machines/metric-history-chart.js";
17
+ export { MachineDetail } from "./components/machines/machine-detail.js";
18
+ export type { MachineDetailProps } from "./components/machines/machine-detail.js";
19
+ export { METRICS, METRIC_WINDOWS, WINDOW_LABEL, pointsFor } from "./components/machines/series.js";
20
+ export type { MetricDef, MetricKey, MetricWindow } from "./components/machines/series.js";
21
+ export { MachinesDashboard } from "./components/machines-dashboard.js";
22
+ export type { MachinesDashboardProps } from "./components/machines-dashboard.js";
23
+ export { MachineDockBar, SharedMachineDisclosure } from "./components/machine-dock-bar.js";
24
+ export type { MachineDockBarProps, SharedMachineDisclosureProps, } from "./components/machine-dock-bar.js";
25
+ export { EnrollmentDeviceFlow } from "./components/enrollment-device-flow.js";
26
+ export type { DeviceFlowPhase, EnrollmentDeviceFlowProps, } from "./components/enrollment-device-flow.js";
27
+ export { EnrollmentConsent } from "./components/enrollment-consent.js";
28
+ export type { EnrollmentConsentMachine, EnrollmentConsentPhase, EnrollmentConsentProps, } from "./components/enrollment-consent.js";
29
+ export { useMachines } from "./hooks/use-machines.js";
30
+ export type { MachinesClientLike, UseMachinesOptions, UseMachinesResult, } from "./hooks/use-machines.js";
package/dist/machines.js CHANGED
@@ -24,10 +24,10 @@ import {
24
24
  healthPulses,
25
25
  pointsFor,
26
26
  useMachines
27
- } from "./chunk-6EDV6YFE.js";
28
- import "./chunk-EB67J347.js";
29
- import "./chunk-EKZH6IDG.js";
27
+ } from "./chunk-X4S56Y2H.js";
30
28
  import "./chunk-LAKLF4PA.js";
29
+ import "./chunk-KZ73RL76.js";
30
+ import "./chunk-HDBG7XGO.js";
31
31
  import "./chunk-22KP6LR5.js";
32
32
  export {
33
33
  CONNECTION_STATUS_META,
@@ -1,8 +1,8 @@
1
1
  import { type WorkspaceControlEvent } from "@opengeni/sdk";
2
2
  import { type ReactNode } from "react";
3
- import type { SessionClientLike } from "./client";
4
- export { useOpenGeni, useOpenGeniClient } from "./session-context";
5
- export type { ClientOverride, OpenGeniContextValue } from "./session-context";
3
+ import type { SessionClientLike } from "./client.js";
4
+ export { useOpenGeni, useOpenGeniClient } from "./session-context.js";
5
+ export type { ClientOverride, OpenGeniContextValue } from "./session-context.js";
6
6
  export type OpenGeniProviderProps = {
7
7
  client: SessionClientLike;
8
8
  workspaceId: string;
@@ -13,4 +13,4 @@ export type OpenGeniProviderProps = {
13
13
  * Supplies the OpenGeni client + workspace to all hooks below it. Hooks also
14
14
  * accept `{ client, workspaceId }` overrides per call for multi-workspace UIs.
15
15
  */
16
- export declare function OpenGeniProvider({ client, workspaceId, onWorkspaceControlEvent, children, }: OpenGeniProviderProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function OpenGeniProvider({ client, workspaceId, onWorkspaceControlEvent, children, }: OpenGeniProviderProps): import("react").JSX.Element;
@@ -1,11 +1,14 @@
1
1
  import {
2
2
  QueueErrorAlert,
3
3
  QueueStoppingStatus,
4
+ TimelineAnnotationsChip,
4
5
  requestQueueDraftEdit
5
- } from "./chunk-VCBFUSUZ.js";
6
+ } from "./chunk-WSK7G5LE.js";
6
7
  import {
8
+ usePortalTokenSource,
7
9
  usePortalTokenStyle
8
- } from "./chunk-JB5725BI.js";
10
+ } from "./chunk-VZTQ73XT.js";
11
+ import "./chunk-22KP6LR5.js";
9
12
 
10
13
  // src/components/queue-surface-implementation.tsx
11
14
  import {
@@ -38,7 +41,6 @@ import {
38
41
  useCallback,
39
42
  useId,
40
43
  useMemo,
41
- useRef,
42
44
  useState
43
45
  } from "react";
44
46
  import { DropdownMenu } from "radix-ui";
@@ -56,8 +58,9 @@ function QueueSurface({
56
58
  const [replaceDraftFor, setReplaceDraftFor] = useState(null);
57
59
  const [announcement, setAnnouncement] = useState("");
58
60
  const [draggedTurnId, setDraggedTurnId] = useState(null);
59
- const surfaceRef = useRef(null);
60
- const portalTokenStyle = usePortalTokenStyle(surfaceRef);
61
+ const surface = usePortalTokenSource();
62
+ const surfaceRef = surface.currentRef;
63
+ const portalTokenStyle = usePortalTokenStyle(surface.source);
61
64
  const [keyboardDrag, setKeyboardDrag] = useState(null);
62
65
  const count = queue.queue.length;
63
66
  const pendingInputCount = queue.pendingInputs.length;
@@ -68,13 +71,13 @@ function QueueSurface({
68
71
  (input) => !attachedInputIds.includes(input.id)
69
72
  );
70
73
  const canEditInComposer = queueComposerCheckoutEnabled(composer, readOnly);
71
- const collapsedPreview = useMemo(
72
- () => queuePromptPreview(
73
- queue.queue[0]?.prompt ?? queue.pendingInputs[0]?.summary ?? "",
74
+ const collapsedPreview = useMemo(() => {
75
+ const firstTurn = queue.queue[0];
76
+ return firstTurn ? queueTurnPreview(firstTurn, QUEUE_COLLAPSED_PREVIEW_CHARACTERS) : queuePromptPreview(
77
+ queue.pendingInputs[0]?.summary ?? "",
74
78
  QUEUE_COLLAPSED_PREVIEW_CHARACTERS
75
- ),
76
- [queue.pendingInputs, queue.queue]
77
- );
79
+ );
80
+ }, [queue.pendingInputs, queue.queue]);
78
81
  const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 6 } }));
79
82
  const displayedQueue = useMemo(() => {
80
83
  if (!keyboardDrag) return queue.queue;
@@ -97,7 +100,7 @@ function QueueSurface({
97
100
  );
98
101
  if (moved) focusQueueTurn(surfaceRef.current, turnId);
99
102
  },
100
- [queue]
103
+ [queue, surfaceRef]
101
104
  );
102
105
  const onDragEnd = useCallback(
103
106
  (event) => {
@@ -204,7 +207,7 @@ function QueueSurface({
204
207
  return /* @__PURE__ */ jsxs(
205
208
  "div",
206
209
  {
207
- ref: surfaceRef,
210
+ ref: surface.ref,
208
211
  className: "og-root mx-auto mb-2 w-full max-w-3xl shrink-0 px-4 sm:px-6",
209
212
  "data-testid": "queue-surface",
210
213
  children: [
@@ -214,7 +217,7 @@ function QueueSurface({
214
217
  "button",
215
218
  {
216
219
  type: "button",
217
- className: "flex w-full min-w-0 flex-wrap items-center gap-2 px-3 py-2 text-left outline-none transition-colors hover:bg-surface-2/60 focus-visible:bg-surface-2/60 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring/40 pointer-coarse:min-h-[44px]",
220
+ className: "flex w-full min-w-0 flex-wrap items-center gap-2 px-3 py-2 text-left outline-hidden transition-colors hover:bg-surface-2/60 focus-visible:bg-surface-2/60 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring/40 pointer-coarse:min-h-[44px]",
218
221
  onClick: () => setOpen((value) => !value),
219
222
  "aria-description": !open && totalCount > 0 ? collapsedPreview.summary : void 0,
220
223
  "aria-expanded": open,
@@ -342,8 +345,8 @@ function QueueSurface({
342
345
  "aria-hidden": "true",
343
346
  className: "line-clamp-3 break-all whitespace-pre-wrap [unicode-bidi:plaintext]",
344
347
  dir: "auto",
345
- children: queuePromptPreview(
346
- queue.queue.find((turn) => turn.id === draggedTurnId)?.prompt ?? "",
348
+ children: queueTurnPreview(
349
+ queue.queue.find((turn) => turn.id === draggedTurnId),
347
350
  QUEUE_ROW_PREVIEW_CHARACTERS
348
351
  ).summary
349
352
  }
@@ -391,6 +394,22 @@ var QUEUE_VISIBLE_END_IDENTITY_CHARACTERS = 18;
391
394
  var QUEUE_PREVIEW_SEPARATOR = " \u2026 ";
392
395
  var queuePreviewSegmenter = new Intl.Segmenter(void 0, { granularity: "grapheme" });
393
396
  var queuePromptNonRenderingCodePoint = /[\p{White_Space}\p{Control}\p{Default_Ignorable_Code_Point}]/u;
397
+ function annotationOnlyQueuePreview(count) {
398
+ const summary = `${count} timeline ${count === 1 ? "annotation" : "annotations"}`;
399
+ return {
400
+ summary,
401
+ collapsedVisual: summary,
402
+ visibleStart: summary,
403
+ visibleIdentity: null,
404
+ visibleIdentityLabel: null,
405
+ isFallback: false
406
+ };
407
+ }
408
+ function queueTurnPreview(turn, maxCharacters) {
409
+ if (!turn) return queuePromptPreview("", maxCharacters);
410
+ const annotations = turn.annotations ?? [];
411
+ return turn.prompt.length === 0 && annotations.length > 0 ? annotationOnlyQueuePreview(annotations.length) : queuePromptPreview(turn.prompt, maxCharacters);
412
+ }
394
413
  function queuePromptPreview(prompt, maxCharacters) {
395
414
  const wholePromptProbe = samplePromptStart(prompt, maxCharacters + 1);
396
415
  if (!wholePromptProbe.truncated && wholePromptProbe.characters <= maxCharacters) {
@@ -586,14 +605,18 @@ function isLowSurrogate(codeUnit) {
586
605
  }
587
606
  function QueuePrompt({
588
607
  prompt,
608
+ annotations,
589
609
  index,
590
610
  onDisclosureChange
591
611
  }) {
592
612
  const [expanded, setExpanded] = useState(false);
593
613
  const fullContentId = useId();
594
- const preview = useMemo(() => queuePromptPreview(prompt, QUEUE_ROW_PREVIEW_CHARACTERS), [prompt]);
614
+ const preview = useMemo(
615
+ () => prompt.length === 0 && annotations.length > 0 ? annotationOnlyQueuePreview(annotations.length) : queuePromptPreview(prompt, QUEUE_ROW_PREVIEW_CHARACTERS),
616
+ [annotations.length, prompt]
617
+ );
595
618
  return /* @__PURE__ */ jsxs("div", { className: "w-full min-w-0 max-w-full", children: [
596
- /* @__PURE__ */ jsx(
619
+ prompt ? /* @__PURE__ */ jsx(
597
620
  "div",
598
621
  {
599
622
  "aria-label": `Queued prompt ${index + 1} summary: ${preview.summary}`,
@@ -601,46 +624,60 @@ function QueuePrompt({
601
624
  "data-testid": `queue-prompt-preview-${index + 1}`,
602
625
  dir: "auto",
603
626
  role: "note",
604
- children: /* @__PURE__ */ jsxs("span", { "aria-hidden": "true", className: "flex min-w-0 max-w-full items-baseline gap-2 sm:block", children: [
605
- /* @__PURE__ */ jsx(
606
- "span",
607
- {
608
- className: `${preview.isFallback ? "" : "line-clamp-1 sm:line-clamp-2"} min-w-0 flex-1 whitespace-pre-wrap break-all [unicode-bidi:plaintext]`,
609
- "data-testid": `queue-prompt-start-${index + 1}`,
610
- dir: "auto",
611
- children: preview.visibleStart
612
- }
613
- ),
614
- preview.visibleIdentity && preview.visibleIdentityLabel ? /* @__PURE__ */ jsxs(
615
- "span",
616
- {
617
- className: "flex min-w-0 max-w-[70%] shrink-0 items-center gap-1 text-og-xs leading-4 text-fg-muted sm:mt-0.5 sm:max-w-full",
618
- "data-testid": `queue-prompt-identity-row-${index + 1}`,
619
- children: [
620
- /* @__PURE__ */ jsx("span", { className: "shrink-0 font-medium text-fg-subtle", children: preview.visibleIdentityLabel }),
621
- /* @__PURE__ */ jsx(
622
- "span",
623
- {
624
- className: "min-w-0 overflow-hidden text-ellipsis whitespace-nowrap font-mono [unicode-bidi:plaintext]",
625
- "data-testid": `queue-prompt-identity-${index + 1}`,
626
- dir: "auto",
627
- children: preview.visibleIdentity
628
- }
629
- )
630
- ]
631
- }
632
- ) : null
633
- ] })
627
+ children: /* @__PURE__ */ jsxs(
628
+ "span",
629
+ {
630
+ "aria-hidden": "true",
631
+ className: "flex min-w-0 max-w-full items-baseline gap-2 sm:block",
632
+ children: [
633
+ /* @__PURE__ */ jsx(
634
+ "span",
635
+ {
636
+ className: `${preview.isFallback ? "" : "line-clamp-1 sm:line-clamp-2"} min-w-0 flex-1 whitespace-pre-wrap break-all [unicode-bidi:plaintext]`,
637
+ "data-testid": `queue-prompt-start-${index + 1}`,
638
+ dir: "auto",
639
+ children: preview.visibleStart
640
+ }
641
+ ),
642
+ preview.visibleIdentity && preview.visibleIdentityLabel ? /* @__PURE__ */ jsxs(
643
+ "span",
644
+ {
645
+ className: "flex min-w-0 max-w-[70%] shrink-0 items-center gap-1 text-og-xs leading-4 text-fg-muted sm:mt-0.5 sm:max-w-full",
646
+ "data-testid": `queue-prompt-identity-row-${index + 1}`,
647
+ children: [
648
+ /* @__PURE__ */ jsx("span", { className: "shrink-0 font-medium text-fg-subtle", children: preview.visibleIdentityLabel }),
649
+ /* @__PURE__ */ jsx(
650
+ "span",
651
+ {
652
+ className: "min-w-0 overflow-hidden text-ellipsis whitespace-nowrap font-mono [unicode-bidi:plaintext]",
653
+ "data-testid": `queue-prompt-identity-${index + 1}`,
654
+ dir: "auto",
655
+ children: preview.visibleIdentity
656
+ }
657
+ )
658
+ ]
659
+ }
660
+ ) : null
661
+ ]
662
+ }
663
+ )
664
+ }
665
+ ) : null,
666
+ annotations.length > 0 ? /* @__PURE__ */ jsx(
667
+ TimelineAnnotationsChip,
668
+ {
669
+ annotations,
670
+ className: prompt ? "mt-1" : void 0
634
671
  }
635
- ),
636
- /* @__PURE__ */ jsxs(
672
+ ) : null,
673
+ prompt ? /* @__PURE__ */ jsxs(
637
674
  "button",
638
675
  {
639
676
  type: "button",
640
677
  "aria-controls": fullContentId,
641
678
  "aria-expanded": expanded,
642
679
  "aria-label": `${expanded ? "Hide" : "Show"} full content for queued prompt ${index + 1}`,
643
- className: "mt-1 inline-flex min-h-7 min-w-0 max-w-full items-center gap-1 whitespace-normal rounded-md text-left text-og-xs font-medium text-fg outline-none focus-visible:ring-2 focus-visible:ring-ring/40 pointer-coarse:min-h-[44px]",
680
+ className: "mt-1 inline-flex min-h-7 min-w-0 max-w-full items-center gap-1 whitespace-normal rounded-md text-left text-og-xs font-medium text-fg outline-hidden focus-visible:ring-2 focus-visible:ring-ring/40 pointer-coarse:min-h-[44px]",
644
681
  "data-testid": `queue-prompt-disclosure-${index + 1}`,
645
682
  onClick: () => {
646
683
  const next = !expanded;
@@ -658,8 +695,8 @@ function QueuePrompt({
658
695
  expanded ? "Hide full prompt" : "View full prompt"
659
696
  ]
660
697
  }
661
- ),
662
- expanded ? /* @__PURE__ */ jsx(
698
+ ) : null,
699
+ expanded && prompt ? /* @__PURE__ */ jsx(
663
700
  "pre",
664
701
  {
665
702
  id: fullContentId,
@@ -683,7 +720,15 @@ function ReadOnlyQueueRow({
683
720
  return /* @__PURE__ */ jsxs("li", { className: "flex min-w-0 items-start gap-2 bg-surface px-3 py-2", children: [
684
721
  /* @__PURE__ */ jsx("span", { className: "mt-1 shrink-0 font-mono text-og-xs text-fg-subtle", children: index + 1 }),
685
722
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
686
- /* @__PURE__ */ jsx(QueuePrompt, { prompt: turn.prompt, index, onDisclosureChange }),
723
+ /* @__PURE__ */ jsx(
724
+ QueuePrompt,
725
+ {
726
+ prompt: turn.prompt,
727
+ annotations: turn.annotations ?? [],
728
+ index,
729
+ onDisclosureChange
730
+ }
731
+ ),
687
732
  attachedInputs.length > 0 ? /* @__PURE__ */ jsx(PendingMachineInputs, { inputs: attachedInputs, attached: true }) : null,
688
733
  /* @__PURE__ */ jsxs("div", { className: "mt-1 flex min-w-0 items-center gap-2 overflow-hidden whitespace-nowrap text-og-xs text-fg-subtle", children: [
689
734
  turn.resources.length > 0 ? /* @__PURE__ */ jsxs("span", { className: "shrink-0", children: [
@@ -754,7 +799,15 @@ function SortableQueueRow({
754
799
  ),
755
800
  /* @__PURE__ */ jsx("span", { className: "col-start-2 row-start-1 mt-1 shrink-0 font-mono text-og-xs text-fg-subtle", children: index + 1 }),
756
801
  /* @__PURE__ */ jsxs("div", { className: "col-span-full row-start-2 min-w-0 sm:col-span-1 sm:col-start-3 sm:row-start-1", children: [
757
- /* @__PURE__ */ jsx(QueuePrompt, { prompt: turn.prompt, index, onDisclosureChange }),
802
+ /* @__PURE__ */ jsx(
803
+ QueuePrompt,
804
+ {
805
+ prompt: turn.prompt,
806
+ annotations: turn.annotations ?? [],
807
+ index,
808
+ onDisclosureChange
809
+ }
810
+ ),
758
811
  attachedInputs.length > 0 ? /* @__PURE__ */ jsx(PendingMachineInputs, { inputs: attachedInputs, attached: true }) : null,
759
812
  /* @__PURE__ */ jsxs("div", { className: "mt-1 flex min-w-0 items-center gap-2 overflow-hidden whitespace-nowrap text-og-xs text-fg-subtle", children: [
760
813
  turn.resources.length > 0 ? /* @__PURE__ */ jsxs("span", { className: "shrink-0", children: [
@@ -780,7 +833,7 @@ function SortableQueueRow({
780
833
  onClick: onSteer,
781
834
  "aria-label": `Steer queued prompt ${index + 1}`,
782
835
  title: "Steer \u2014 interrupt the current turn and send this message now",
783
- className: "inline-flex h-7 shrink-0 items-center justify-center gap-1 rounded-md px-2 text-og-control font-medium text-fg outline-none transition-[background-color] hover:bg-surface-2 focus-visible:ring-2 focus-visible:ring-ring/40 disabled:pointer-events-none disabled:opacity-50 pointer-coarse:min-h-[44px] pointer-coarse:min-w-[44px]",
836
+ className: "inline-flex h-7 shrink-0 items-center justify-center gap-1 rounded-md px-2 text-og-control font-medium text-fg outline-hidden transition-[background-color] hover:bg-surface-2 focus-visible:ring-2 focus-visible:ring-ring/40 disabled:pointer-events-none disabled:opacity-50 pointer-coarse:min-h-[44px] pointer-coarse:min-w-[44px]",
784
837
  children: [
785
838
  pending === "steer" ? /* @__PURE__ */ jsx(Loader2Icon, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ jsx(ZapIcon, { className: "size-3.5" }),
786
839
  /* @__PURE__ */ jsx("span", { className: "hidden sm:inline", children: "Steer" })
@@ -795,7 +848,7 @@ function SortableQueueRow({
795
848
  onClick: onDelete,
796
849
  "aria-label": `Delete queued prompt ${index + 1}`,
797
850
  title: "Delete this queued prompt",
798
- className: "inline-flex size-7 shrink-0 items-center justify-center rounded-md outline-none transition-colors hover:bg-surface-2 hover:text-status-failed focus-visible:ring-2 focus-visible:ring-ring/40 disabled:pointer-events-none disabled:opacity-50 pointer-coarse:size-[44px]",
851
+ className: "inline-flex size-7 shrink-0 items-center justify-center rounded-md outline-hidden transition-colors hover:bg-surface-2 hover:text-status-failed focus-visible:ring-2 focus-visible:ring-ring/40 disabled:pointer-events-none disabled:opacity-50 pointer-coarse:size-[44px]",
799
852
  children: pending === "delete" ? /* @__PURE__ */ jsx(Loader2Icon, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ jsx(Trash2Icon, { className: "size-3.5" })
800
853
  }
801
854
  ),
@@ -806,7 +859,7 @@ function SortableQueueRow({
806
859
  type: "button",
807
860
  disabled: pending !== null,
808
861
  "aria-label": `More actions for queued prompt ${index + 1}`,
809
- className: "inline-flex size-7 shrink-0 items-center justify-center rounded-md outline-none transition-colors hover:bg-surface-2 focus-visible:ring-2 focus-visible:ring-ring/40 disabled:pointer-events-none disabled:opacity-50 pointer-coarse:size-[44px]",
862
+ className: "inline-flex size-7 shrink-0 items-center justify-center rounded-md outline-hidden transition-colors hover:bg-surface-2 focus-visible:ring-2 focus-visible:ring-ring/40 disabled:pointer-events-none disabled:opacity-50 pointer-coarse:size-[44px]",
810
863
  children: pending && pending !== "steer" && pending !== "delete" ? /* @__PURE__ */ jsx(Loader2Icon, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ jsx(EllipsisIcon, { className: "size-3.5" })
811
864
  }
812
865
  ) }),
@@ -823,7 +876,7 @@ function SortableQueueRow({
823
876
  /* @__PURE__ */ jsxs(
824
877
  DropdownMenu.Item,
825
878
  {
826
- className: "flex min-w-0 cursor-default items-center gap-2 whitespace-normal break-words rounded-sm px-2 py-1.5 outline-none focus:bg-surface-2 pointer-coarse:min-h-[44px]",
879
+ className: "flex min-w-0 cursor-default items-center gap-2 whitespace-normal break-words rounded-sm px-2 py-1.5 outline-hidden focus:bg-surface-2 pointer-coarse:min-h-[44px]",
827
880
  onSelect: onEdit,
828
881
  children: [
829
882
  /* @__PURE__ */ jsx(PencilIcon, { className: "size-3.5" }),
@@ -836,7 +889,7 @@ function SortableQueueRow({
836
889
  /* @__PURE__ */ jsxs(
837
890
  DropdownMenu.Item,
838
891
  {
839
- className: "flex min-w-0 cursor-default items-center gap-2 whitespace-normal break-words rounded-sm px-2 py-1.5 outline-none focus:bg-surface-2 data-[disabled]:opacity-50 pointer-coarse:min-h-[44px]",
892
+ className: "flex min-w-0 cursor-default items-center gap-2 whitespace-normal break-words rounded-sm px-2 py-1.5 outline-hidden focus:bg-surface-2 data-[disabled]:opacity-50 pointer-coarse:min-h-[44px]",
840
893
  disabled: index === 0,
841
894
  onSelect: () => onMove(0),
842
895
  children: [
@@ -848,7 +901,7 @@ function SortableQueueRow({
848
901
  /* @__PURE__ */ jsx(
849
902
  DropdownMenu.Item,
850
903
  {
851
- className: "flex min-w-0 cursor-default items-center gap-2 whitespace-normal break-words rounded-sm px-2 py-1.5 outline-none focus:bg-surface-2 data-[disabled]:opacity-50 pointer-coarse:min-h-[44px]",
904
+ className: "flex min-w-0 cursor-default items-center gap-2 whitespace-normal break-words rounded-sm px-2 py-1.5 outline-hidden focus:bg-surface-2 data-[disabled]:opacity-50 pointer-coarse:min-h-[44px]",
852
905
  disabled: index === 0,
853
906
  onSelect: () => onMove(index - 1),
854
907
  children: "Move up"
@@ -857,7 +910,7 @@ function SortableQueueRow({
857
910
  /* @__PURE__ */ jsx(
858
911
  DropdownMenu.Item,
859
912
  {
860
- className: "flex min-w-0 cursor-default items-center gap-2 whitespace-normal break-words rounded-sm px-2 py-1.5 outline-none focus:bg-surface-2 data-[disabled]:opacity-50 pointer-coarse:min-h-[44px]",
913
+ className: "flex min-w-0 cursor-default items-center gap-2 whitespace-normal break-words rounded-sm px-2 py-1.5 outline-hidden focus:bg-surface-2 data-[disabled]:opacity-50 pointer-coarse:min-h-[44px]",
861
914
  disabled: index === count - 1,
862
915
  onSelect: () => onMove(index + 1),
863
916
  children: "Move down"
@@ -866,7 +919,7 @@ function SortableQueueRow({
866
919
  /* @__PURE__ */ jsxs(
867
920
  DropdownMenu.Item,
868
921
  {
869
- className: "flex min-w-0 cursor-default items-center gap-2 whitespace-normal break-words rounded-sm px-2 py-1.5 outline-none focus:bg-surface-2 data-[disabled]:opacity-50 pointer-coarse:min-h-[44px]",
922
+ className: "flex min-w-0 cursor-default items-center gap-2 whitespace-normal break-words rounded-sm px-2 py-1.5 outline-hidden focus:bg-surface-2 data-[disabled]:opacity-50 pointer-coarse:min-h-[44px]",
870
923
  disabled: index === count - 1,
871
924
  onSelect: () => onMove(count - 1),
872
925
  children: [
@@ -934,4 +987,4 @@ export {
934
987
  QueueSurface,
935
988
  queueComposerCheckoutEnabled
936
989
  };
937
- //# sourceMappingURL=queue-surface-implementation-J4XJFKRW.js.map
990
+ //# sourceMappingURL=queue-surface-implementation-2KVJTYXH.js.map