@opengeni/react 3.1.0 → 3.1.2

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 (863) hide show
  1. package/README.md +769 -22
  2. package/dist/accounts.js +89 -11
  3. package/dist/accounts.js.map +1 -1
  4. package/dist/approvals.d.ts +2 -1
  5. package/dist/artifacts-document.js +5 -3
  6. package/dist/artifacts-presentation.js +5 -3
  7. package/dist/artifacts-spreadsheet.d.ts +1 -1
  8. package/dist/artifacts-spreadsheet.js +5 -3
  9. package/dist/artifacts.d.ts +5 -1
  10. package/dist/artifacts.js +536 -42
  11. package/dist/artifacts.js.map +1 -1
  12. package/dist/browser-viewer-ZWR6MWJ7.js +19 -0
  13. package/dist/capability-catalog-row.d.ts +20 -0
  14. package/dist/capability-logo-fallback.d.ts +3 -0
  15. package/dist/chat-interactive-block-BO2IWXVK.js +14 -0
  16. package/dist/chunk-2DDJ6YH6.js +41 -0
  17. package/dist/chunk-2DDJ6YH6.js.map +1 -0
  18. package/dist/chunk-2HVLQ26H.js +183 -0
  19. package/dist/chunk-2HVLQ26H.js.map +1 -0
  20. package/dist/{chunk-RGALCTWO.js → chunk-2I6R3GCZ.js} +4285 -3980
  21. package/dist/chunk-2I6R3GCZ.js.map +1 -0
  22. package/dist/{chunk-D3UIAJKY.js → chunk-2SFFYIH3.js} +1179 -166
  23. package/dist/chunk-2SFFYIH3.js.map +1 -0
  24. package/dist/chunk-3PVDYTTB.js +24 -0
  25. package/dist/chunk-3PVDYTTB.js.map +1 -0
  26. package/dist/chunk-3UZCWK46.js +298 -0
  27. package/dist/chunk-3UZCWK46.js.map +1 -0
  28. package/dist/chunk-47CKUXTW.js +293 -0
  29. package/dist/chunk-47CKUXTW.js.map +1 -0
  30. package/dist/chunk-4QYP6QUI.js +109 -0
  31. package/dist/chunk-4QYP6QUI.js.map +1 -0
  32. package/dist/chunk-5EY26VZ7.js +1053 -0
  33. package/dist/chunk-5EY26VZ7.js.map +1 -0
  34. package/dist/chunk-5I4VRWBB.js +56 -0
  35. package/dist/chunk-5I4VRWBB.js.map +1 -0
  36. package/dist/chunk-5WOR7UCL.js +191 -0
  37. package/dist/chunk-5WOR7UCL.js.map +1 -0
  38. package/dist/chunk-5YJLGOM5.js +51 -0
  39. package/dist/chunk-5YJLGOM5.js.map +1 -0
  40. package/dist/chunk-6JFN3OWG.js +386 -0
  41. package/dist/chunk-6JFN3OWG.js.map +1 -0
  42. package/dist/chunk-7QJT5O4S.js +35 -0
  43. package/dist/chunk-7QJT5O4S.js.map +1 -0
  44. package/dist/chunk-A55KV72M.js +402 -0
  45. package/dist/chunk-A55KV72M.js.map +1 -0
  46. package/dist/chunk-ADWCLI4G.js +2028 -0
  47. package/dist/chunk-ADWCLI4G.js.map +1 -0
  48. package/dist/chunk-B27E3V37.js +29 -0
  49. package/dist/chunk-B27E3V37.js.map +1 -0
  50. package/dist/chunk-B7TC2A33.js +83 -0
  51. package/dist/chunk-B7TC2A33.js.map +1 -0
  52. package/dist/chunk-BLL56F7R.js +385 -0
  53. package/dist/chunk-BLL56F7R.js.map +1 -0
  54. package/dist/chunk-BOFEQC6K.js +162 -0
  55. package/dist/chunk-BOFEQC6K.js.map +1 -0
  56. package/dist/chunk-CM7LVUKC.js +35 -0
  57. package/dist/chunk-CM7LVUKC.js.map +1 -0
  58. package/dist/chunk-CORUP6JB.js +122 -0
  59. package/dist/chunk-CORUP6JB.js.map +1 -0
  60. package/dist/chunk-CSX5FFKZ.js +35 -0
  61. package/dist/chunk-CSX5FFKZ.js.map +1 -0
  62. package/dist/chunk-EGVHJKGJ.js +3125 -0
  63. package/dist/chunk-EGVHJKGJ.js.map +1 -0
  64. package/dist/{chunk-NEXLLTP4.js → chunk-G76LSA76.js} +6 -5
  65. package/dist/chunk-G76LSA76.js.map +1 -0
  66. package/dist/{chunk-PEI6RANI.js → chunk-GQMRL52F.js} +311 -75
  67. package/dist/chunk-GQMRL52F.js.map +1 -0
  68. package/dist/{chunk-ELIYWBZR.js → chunk-GUUXOISA.js} +1113 -457
  69. package/dist/chunk-GUUXOISA.js.map +1 -0
  70. package/dist/{chunk-HUIKIDM5.js → chunk-I7X2P4FU.js} +225 -116
  71. package/dist/chunk-I7X2P4FU.js.map +1 -0
  72. package/dist/chunk-IGFZFLI2.js +1390 -0
  73. package/dist/chunk-IGFZFLI2.js.map +1 -0
  74. package/dist/{chunk-4MDLEHXL.js → chunk-IMSUVYQB.js} +26 -13
  75. package/dist/chunk-IMSUVYQB.js.map +1 -0
  76. package/dist/chunk-IOYHDEP3.js +38 -0
  77. package/dist/chunk-IOYHDEP3.js.map +1 -0
  78. package/dist/chunk-IZV5FTJC.js +55 -0
  79. package/dist/chunk-IZV5FTJC.js.map +1 -0
  80. package/dist/chunk-KF33GTWN.js +343 -0
  81. package/dist/chunk-KF33GTWN.js.map +1 -0
  82. package/dist/chunk-KSGQ5ODA.js +457 -0
  83. package/dist/chunk-KSGQ5ODA.js.map +1 -0
  84. package/dist/{chunk-OAM4WAAM.js → chunk-KZC6QRNR.js} +1513 -697
  85. package/dist/chunk-KZC6QRNR.js.map +1 -0
  86. package/dist/chunk-LJUMYUBO.js +218 -0
  87. package/dist/chunk-LJUMYUBO.js.map +1 -0
  88. package/dist/chunk-LSW2OJVV.js +380 -0
  89. package/dist/chunk-LSW2OJVV.js.map +1 -0
  90. package/dist/chunk-M357MHH3.js +2 -0
  91. package/dist/chunk-M357MHH3.js.map +1 -0
  92. package/dist/chunk-MK2TQO4Y.js +24 -0
  93. package/dist/chunk-MK2TQO4Y.js.map +1 -0
  94. package/dist/chunk-N7S72EXK.js +25 -0
  95. package/dist/chunk-N7S72EXK.js.map +1 -0
  96. package/dist/{chunk-XXWH2JLC.js → chunk-NKMYZFHA.js} +616 -621
  97. package/dist/chunk-NKMYZFHA.js.map +1 -0
  98. package/dist/chunk-NX4ADH73.js +14 -0
  99. package/dist/chunk-NX4ADH73.js.map +1 -0
  100. package/dist/chunk-O7F6UJO4.js +71 -0
  101. package/dist/chunk-O7F6UJO4.js.map +1 -0
  102. package/dist/chunk-OVB5WIG5.js +14064 -0
  103. package/dist/chunk-OVB5WIG5.js.map +1 -0
  104. package/dist/chunk-OYQQJL3J.js +16 -0
  105. package/dist/chunk-OYQQJL3J.js.map +1 -0
  106. package/dist/{chunk-H5YGYNXS.js → chunk-P4BNUO57.js} +60 -17
  107. package/dist/chunk-P4BNUO57.js.map +1 -0
  108. package/dist/{chunk-JVYQRRC4.js → chunk-PEHTX3V7.js} +21 -1
  109. package/dist/chunk-PEHTX3V7.js.map +1 -0
  110. package/dist/chunk-PMV53IMM.js +26 -0
  111. package/dist/chunk-PMV53IMM.js.map +1 -0
  112. package/dist/{chunk-KCGXPP5V.js → chunk-PYEOPA4M.js} +13 -7
  113. package/dist/chunk-PYEOPA4M.js.map +1 -0
  114. package/dist/{chunk-KZ73RL76.js → chunk-QHUE7E4N.js} +8 -3
  115. package/dist/chunk-QHUE7E4N.js.map +1 -0
  116. package/dist/chunk-QV3DJVRZ.js +11 -0
  117. package/dist/chunk-QV3DJVRZ.js.map +1 -0
  118. package/dist/chunk-R5SBNG7S.js +810 -0
  119. package/dist/chunk-R5SBNG7S.js.map +1 -0
  120. package/dist/chunk-RI42H5IU.js +326 -0
  121. package/dist/chunk-RI42H5IU.js.map +1 -0
  122. package/dist/chunk-S2QH6EZ5.js +211 -0
  123. package/dist/chunk-S2QH6EZ5.js.map +1 -0
  124. package/dist/chunk-SHLZMAJN.js +304 -0
  125. package/dist/chunk-SHLZMAJN.js.map +1 -0
  126. package/dist/chunk-TGXK4BAZ.js +293 -0
  127. package/dist/chunk-TGXK4BAZ.js.map +1 -0
  128. package/dist/{chunk-5YK2ZDIG.js → chunk-TNEZNMSN.js} +4 -10
  129. package/dist/chunk-TNEZNMSN.js.map +1 -0
  130. package/dist/{chunk-22KP6LR5.js → chunk-TXS65BB2.js} +3 -1
  131. package/dist/{chunk-22KP6LR5.js.map → chunk-TXS65BB2.js.map} +1 -1
  132. package/dist/chunk-UNJPZGNK.js +63 -0
  133. package/dist/chunk-UNJPZGNK.js.map +1 -0
  134. package/dist/{chunk-MZ2G2XBA.js → chunk-V5ZUJT2T.js} +205 -45
  135. package/dist/chunk-V5ZUJT2T.js.map +1 -0
  136. package/dist/chunk-VIUEOHXY.js +394 -0
  137. package/dist/chunk-VIUEOHXY.js.map +1 -0
  138. package/dist/chunk-WIUKB3LD.js +1911 -0
  139. package/dist/chunk-WIUKB3LD.js.map +1 -0
  140. package/dist/{chunk-ICA6R6TW.js → chunk-WNN7NO2N.js} +1451 -355
  141. package/dist/chunk-WNN7NO2N.js.map +1 -0
  142. package/dist/{chunk-YJFGAFBD.js → chunk-X5UVUIMF.js} +1892 -1223
  143. package/dist/chunk-X5UVUIMF.js.map +1 -0
  144. package/dist/chunk-XDA5QJE7.js +402 -0
  145. package/dist/chunk-XDA5QJE7.js.map +1 -0
  146. package/dist/{chunk-VZTQ73XT.js → chunk-XEA5BCMA.js} +3 -1
  147. package/dist/{chunk-VZTQ73XT.js.map → chunk-XEA5BCMA.js.map} +1 -1
  148. package/dist/chunk-XHF7OYAN.js +1150 -0
  149. package/dist/chunk-XHF7OYAN.js.map +1 -0
  150. package/dist/chunk-YSRBFJMQ.js +43 -0
  151. package/dist/chunk-YSRBFJMQ.js.map +1 -0
  152. package/dist/chunk-ZOZAPAUO.js +174 -0
  153. package/dist/chunk-ZOZAPAUO.js.map +1 -0
  154. package/dist/chunk-ZQV5W7YC.js +809 -0
  155. package/dist/chunk-ZQV5W7YC.js.map +1 -0
  156. package/dist/chunk-ZUWF4NF7.js +13 -0
  157. package/dist/chunk-ZUWF4NF7.js.map +1 -0
  158. package/dist/client.d.ts +16 -7
  159. package/dist/clipboard.js +3 -1
  160. package/dist/commands/types.d.ts +2 -0
  161. package/dist/components/anthropic-mark.d.ts +3 -0
  162. package/dist/components/approval-surface.d.ts +19 -6
  163. package/dist/components/artifacts/artifact-chrome.d.ts +120 -0
  164. package/dist/components/artifacts/artifact-sandbox.d.ts +30 -0
  165. package/dist/components/artifacts/artifact-surface.d.ts +4 -2
  166. package/dist/components/artifacts/chat-interactive-block.d.ts +29 -0
  167. package/dist/components/artifacts/deferred-chat-media.d.ts +15 -0
  168. package/dist/components/artifacts/document-editor.d.ts +4 -2
  169. package/dist/components/artifacts/editable-artifact-ui.d.ts +2 -1
  170. package/dist/components/artifacts/editable-artifact-view.d.ts +48 -0
  171. package/dist/components/artifacts/editable-document.d.ts +1 -1
  172. package/dist/components/artifacts/editable-presentation.d.ts +2 -2
  173. package/dist/components/artifacts/editable-spreadsheet.d.ts +8 -3
  174. package/dist/components/artifacts/index.d.ts +9 -2
  175. package/dist/components/artifacts/inline-html-document.d.ts +2 -0
  176. package/dist/components/artifacts/latest-task-runner.d.ts +15 -0
  177. package/dist/components/artifacts/presentation-editor.d.ts +6 -2
  178. package/dist/components/artifacts/published-html-artifact-frame.d.ts +23 -3
  179. package/dist/components/artifacts/session-artifact-viewer.d.ts +39 -0
  180. package/dist/components/artifacts/site-view.d.ts +26 -0
  181. package/dist/components/artifacts/spreadsheet-command-queue.d.ts +20 -0
  182. package/dist/components/artifacts/spreadsheet-download.d.ts +7 -0
  183. package/dist/components/artifacts/spreadsheet-general-display.d.ts +24 -0
  184. package/dist/components/artifacts/spreadsheet-grid.d.ts +10 -3
  185. package/dist/components/artifacts/spreadsheet-resize.d.ts +50 -0
  186. package/dist/components/artifacts/spreadsheet-submissions.d.ts +9 -0
  187. package/dist/components/artifacts/visualization-assets.gen.d.ts +2 -0
  188. package/dist/components/browser-select-control.d.ts +16 -0
  189. package/dist/components/browser-viewer.d.ts +11 -2
  190. package/dist/components/chat-composer.d.ts +21 -3
  191. package/dist/components/child-session-link.d.ts +9 -0
  192. package/dist/components/claude-mark.d.ts +3 -0
  193. package/dist/components/code-editor.d.ts +1 -4
  194. package/dist/components/composer-transcription-control.d.ts +7 -0
  195. package/dist/components/composer.d.ts +34 -67
  196. package/dist/components/computer-viewer.d.ts +1 -1
  197. package/dist/components/copy-button.d.ts +3 -1
  198. package/dist/components/desktop-viewer.d.ts +1 -1
  199. package/dist/components/fleet-tile.d.ts +2 -2
  200. package/dist/components/grok-mark.d.ts +26 -0
  201. package/dist/components/human-input-form.d.ts +28 -32
  202. package/dist/components/human-input-surface.d.ts +7 -2
  203. package/dist/components/linkified-text.d.ts +18 -0
  204. package/dist/components/machine-input-display.d.ts +22 -1
  205. package/dist/components/machines/agent-status-icon.d.ts +6 -0
  206. package/dist/components/machines/machine-detail.d.ts +7 -1
  207. package/dist/components/machines/machine-status.d.ts +48 -0
  208. package/dist/components/markdown-table-layout.d.ts +18 -0
  209. package/dist/components/markdown.d.ts +37 -4
  210. package/dist/components/message-timeline.d.ts +86 -7
  211. package/dist/components/model-mark.d.ts +29 -0
  212. package/dist/components/model-policy-picker-menu.d.ts +9 -0
  213. package/dist/components/model-policy-picker.d.ts +41 -25
  214. package/dist/components/new-conversation.d.ts +32 -0
  215. package/dist/components/open-geni-chat.d.ts +73 -0
  216. package/dist/components/open-geni-links.d.ts +68 -0
  217. package/dist/components/openrouter-mark.d.ts +6 -0
  218. package/dist/components/opper-mark.d.ts +7 -0
  219. package/dist/components/preview-loading.d.ts +2 -0
  220. package/dist/components/provider-recovery-notice.d.ts +16 -0
  221. package/dist/components/queue-item-content.d.ts +9 -0
  222. package/dist/components/rehype-secret-refs.d.ts +23 -0
  223. package/dist/components/remark-soft-line-breaks.d.ts +38 -0
  224. package/dist/components/sandbox-files.d.ts +3 -1
  225. package/dist/components/sandbox-workspace.d.ts +18 -0
  226. package/dist/components/secret-question-field.d.ts +31 -0
  227. package/dist/components/secret-ref-chip.d.ts +35 -0
  228. package/dist/components/session-capability-frame.d.ts +37 -0
  229. package/dist/components/session-chrome.d.ts +57 -8
  230. package/dist/components/session-commands-panel.d.ts +6 -0
  231. package/dist/components/session-commands.d.ts +6 -0
  232. package/dist/components/session-connection-request.d.ts +8 -0
  233. package/dist/components/session-conversation.d.ts +157 -0
  234. package/dist/components/session-list.d.ts +39 -0
  235. package/dist/components/session-mcp-capability-card.d.ts +41 -0
  236. package/dist/components/session-proxy-scope.d.ts +35 -0
  237. package/dist/components/session-status.d.ts +4 -1
  238. package/dist/components/session-usage-limit-notice.d.ts +39 -0
  239. package/dist/components/timeline-anchor.d.ts +24 -0
  240. package/dist/components/timeline-annotation-chrome.d.ts +25 -0
  241. package/dist/components/timeline-annotation-layout.d.ts +42 -0
  242. package/dist/components/timeline-annotation-markers.d.ts +8 -0
  243. package/dist/components/timeline-annotation-reveal-context.d.ts +4 -0
  244. package/dist/components/timeline-annotation-shared.d.ts +31 -0
  245. package/dist/components/timeline-annotations-dialog.d.ts +3 -2
  246. package/dist/components/timeline-annotations.d.ts +13 -3
  247. package/dist/components/timeline-reading-progress.d.ts +11 -0
  248. package/dist/components/timeline-search.d.ts +34 -0
  249. package/dist/components/timeline-settlement.d.ts +16 -0
  250. package/dist/components/tip-follow.d.ts +16 -0
  251. package/dist/components/tool-action-review.d.ts +47 -0
  252. package/dist/components/tool-review-history.d.ts +25 -0
  253. package/dist/components/usage-limit-notice.d.ts +49 -0
  254. package/dist/components/usage-member-list.d.ts +91 -0
  255. package/dist/components/usage-meter.d.ts +73 -0
  256. package/dist/components/use-viewer-menu-dismiss.d.ts +2 -0
  257. package/dist/components/user-message-body.d.ts +10 -1
  258. package/dist/composer-messages.d.ts +74 -0
  259. package/dist/composer-messages.js +9 -0
  260. package/dist/composer-messages.js.map +1 -0
  261. package/dist/composer-voice-events.d.ts +8 -0
  262. package/dist/composer.d.ts +5 -4
  263. package/dist/composer.js +26 -13
  264. package/dist/computer-viewer-GMLDXPON.js +20 -0
  265. package/dist/computer-viewer-GMLDXPON.js.map +1 -0
  266. package/dist/connect-account-identity.d.ts +8 -0
  267. package/dist/connect-accounts.d.ts +15 -0
  268. package/dist/connect-chooser.d.ts +18 -0
  269. package/dist/connect-panel.d.ts +18 -0
  270. package/dist/connect-setup.d.ts +18 -0
  271. package/dist/connect.d.ts +21 -0
  272. package/dist/connect.js +2149 -0
  273. package/dist/connect.js.map +1 -0
  274. package/dist/connection-catalog.d.ts +38 -0
  275. package/dist/connection-discovery.d.ts +12 -0
  276. package/dist/connection-installed.d.ts +17 -0
  277. package/dist/connection-logo.d.ts +9 -0
  278. package/dist/connection-service-logo.d.ts +8 -0
  279. package/dist/connection-service-presentation.d.ts +13 -0
  280. package/dist/connection-skeleton.d.ts +5 -0
  281. package/dist/connection-type-picker.d.ts +6 -0
  282. package/dist/conversation-timeline.d.ts +5 -0
  283. package/dist/desktop.d.ts +7 -0
  284. package/dist/desktop.js +27 -0
  285. package/dist/desktop.js.map +1 -0
  286. package/dist/device-authorization.d.ts +23 -0
  287. package/dist/diffs.d.ts +8 -0
  288. package/dist/diffs.js +15 -0
  289. package/dist/diffs.js.map +1 -0
  290. package/dist/discovery-cache.d.ts +5 -0
  291. package/dist/editor.d.ts +7 -0
  292. package/dist/editor.js +22 -0
  293. package/dist/editor.js.map +1 -0
  294. package/dist/embedded-new-voice-OCRNT6U5.js +18 -0
  295. package/dist/embedded-new-voice-OCRNT6U5.js.map +1 -0
  296. package/dist/embedded-voice-RPHPYVBT.js +18 -0
  297. package/dist/embedded-voice-RPHPYVBT.js.map +1 -0
  298. package/dist/{fleet-decision-row-GGCAT4E4.js → fleet-decision-row-SI63O5V4.js} +4 -1
  299. package/dist/fleet-decision-row-SI63O5V4.js.map +1 -0
  300. package/dist/hooks/latest-question.d.ts +25 -0
  301. package/dist/hooks/shared-machines-list.d.ts +4 -0
  302. package/dist/hooks/shared-query.d.ts +113 -0
  303. package/dist/hooks/use-attached-browsers.d.ts +1 -1
  304. package/dist/hooks/use-auth-runs.d.ts +1 -4
  305. package/dist/hooks/use-available-models.d.ts +1 -1
  306. package/dist/hooks/use-browser-frame-stream.d.ts +1 -1
  307. package/dist/hooks/use-browser-session.d.ts +12 -1
  308. package/dist/hooks/use-client-config-flags.d.ts +49 -0
  309. package/dist/hooks/use-codex-accounts.d.ts +59 -10
  310. package/dist/hooks/use-composer.d.ts +24 -2
  311. package/dist/hooks/use-computer-frame-stream.d.ts +1 -1
  312. package/dist/hooks/use-computer-input-posture.d.ts +13 -0
  313. package/dist/hooks/use-computer-session.d.ts +4 -0
  314. package/dist/hooks/use-connect.d.ts +23 -0
  315. package/dist/hooks/use-desktop-stream.d.ts +1 -1
  316. package/dist/hooks/use-file-attachments.d.ts +12 -0
  317. package/dist/hooks/use-goal.d.ts +2 -1
  318. package/dist/hooks/use-last-started-turn-policy.d.ts +5 -1
  319. package/dist/hooks/use-new-conversation.d.ts +56 -0
  320. package/dist/hooks/use-new-session-draft.d.ts +74 -0
  321. package/dist/hooks/use-realtime-voice-models.d.ts +7 -0
  322. package/dist/hooks/use-sandbox-files.d.ts +4 -1
  323. package/dist/hooks/use-session-conversation.d.ts +49 -0
  324. package/dist/hooks/use-session-events.d.ts +28 -7
  325. package/dist/hooks/use-session-mcp-approval-policy.d.ts +2 -2
  326. package/dist/hooks/use-session-model-account.d.ts +48 -0
  327. package/dist/hooks/use-supergrok-accounts.d.ts +7 -1
  328. package/dist/hooks/use-terminal-stream.d.ts +11 -5
  329. package/dist/hooks/use-usage.d.ts +40 -0
  330. package/dist/hooks/use-vaults.d.ts +53 -0
  331. package/dist/hooks/use-voice-input.d.ts +8 -1
  332. package/dist/hooks/use-workspace-edit.d.ts +4 -0
  333. package/dist/hooks/use-workspace-sessions.d.ts +22 -5
  334. package/dist/human-input-model.d.ts +122 -0
  335. package/dist/identity-link-accounts.d.ts +11 -0
  336. package/dist/identity-link-consent.d.ts +18 -0
  337. package/dist/index.d.ts +82 -20
  338. package/dist/index.js +2350 -6605
  339. package/dist/index.js.map +1 -1
  340. package/dist/interaction.d.ts +1 -1
  341. package/dist/interaction.js +14 -24
  342. package/dist/interaction.js.map +1 -1
  343. package/dist/latest-question-R77KWSUP.js +118 -0
  344. package/dist/latest-question-R77KWSUP.js.map +1 -0
  345. package/dist/lib/clipboard.d.ts +7 -0
  346. package/dist/lib/error-message.d.ts +7 -0
  347. package/dist/lib/format.d.ts +58 -4
  348. package/dist/lib/host-theme.d.ts +77 -0
  349. package/dist/lib/interaction-errors.d.ts +3 -0
  350. package/dist/lib/menu-styles.d.ts +22 -0
  351. package/dist/lib/notify-observer.d.ts +2 -0
  352. package/dist/lib/pierre-diffs-loader.d.ts +20 -0
  353. package/dist/lib/provider-recovery.d.ts +55 -0
  354. package/dist/lib/scrollbars.d.ts +11 -0
  355. package/dist/lib/terminal-input-readiness.d.ts +11 -0
  356. package/dist/lib/transient-retry.d.ts +25 -0
  357. package/dist/lib/workbench-peers.d.ts +36 -0
  358. package/dist/lib/xterm-theme.d.ts +7 -5
  359. package/dist/machines.js +9 -5
  360. package/dist/markdown-table-layout-3PV2UAAH.js +113 -0
  361. package/dist/markdown-table-layout-3PV2UAAH.js.map +1 -0
  362. package/dist/mcp-connection-status.d.ts +14 -0
  363. package/dist/model-mark-paths.d.ts +34 -0
  364. package/dist/model-mark-paths.js +16 -0
  365. package/dist/model-mark-paths.js.map +1 -0
  366. package/dist/model-picker-model.d.ts +111 -0
  367. package/dist/model-picker-model.js +25 -0
  368. package/dist/model-picker-model.js.map +1 -0
  369. package/dist/model-policy-picker-menu-7GJ5URPR.js +17 -0
  370. package/dist/model-policy-picker-menu-7GJ5URPR.js.map +1 -0
  371. package/dist/model-policy.d.ts +30 -3
  372. package/dist/model-policy.js +14 -1
  373. package/dist/native-previews.d.ts +28 -0
  374. package/dist/native-previews.js +82 -0
  375. package/dist/native-previews.js.map +1 -0
  376. package/dist/new-session-draft.d.ts +7 -0
  377. package/dist/new-session-draft.js +639 -0
  378. package/dist/new-session-draft.js.map +1 -0
  379. package/dist/notification-text.d.ts +27 -0
  380. package/dist/{noto-sans-arabic-loader-IA2T4X2A.js → noto-sans-arabic-loader-XSH2KYWJ.js} +3 -1
  381. package/dist/{noto-sans-arabic-loader-IA2T4X2A.js.map → noto-sans-arabic-loader-XSH2KYWJ.js.map} +1 -1
  382. package/dist/{noto-sans-jp-loader.generated-HFGLYBR3.js → noto-sans-jp-loader.generated-MR5L6V7K.js} +3 -1
  383. package/dist/{noto-sans-jp-loader.generated-HFGLYBR3.js.map → noto-sans-jp-loader.generated-MR5L6V7K.js.map} +1 -1
  384. package/dist/older-history.d.ts +3 -2
  385. package/dist/organization-model.d.ts +32 -0
  386. package/dist/organization-model.js +65 -0
  387. package/dist/organization-model.js.map +1 -0
  388. package/dist/{platform-activity-row-BJHUHXAT.js → platform-activity-row-5OCKOQWZ.js} +16 -78
  389. package/dist/platform-activity-row-5OCKOQWZ.js.map +1 -0
  390. package/dist/plugin-details.d.ts +14 -0
  391. package/dist/plugin-discovery.d.ts +25 -0
  392. package/dist/preview-loading-paint.d.ts +20 -0
  393. package/dist/provider.d.ts +25 -2
  394. package/dist/queue-presentation-model.d.ts +72 -0
  395. package/dist/queue-presentation-model.js +38 -0
  396. package/dist/queue-presentation-model.js.map +1 -0
  397. package/dist/{queue-surface-implementation-BSKUWHRI.js → queue-surface-implementation-GJBH7NKO.js} +65 -265
  398. package/dist/queue-surface-implementation-GJBH7NKO.js.map +1 -0
  399. package/dist/realtime/embedded-new-voice.d.ts +1 -0
  400. package/dist/realtime/embedded-voice.d.ts +1 -0
  401. package/dist/realtime/realtime-control.d.ts +4 -65
  402. package/dist/realtime/session-realtime.d.ts +78 -0
  403. package/dist/realtime.js +25 -1294
  404. package/dist/realtime.js.map +1 -1
  405. package/dist/sandbox-files-O27IPOZW.js +21 -0
  406. package/dist/sandbox-files-O27IPOZW.js.map +1 -0
  407. package/dist/sandbox-label-model.d.ts +30 -0
  408. package/dist/sandbox-label-model.js +20 -0
  409. package/dist/sandbox-label-model.js.map +1 -0
  410. package/dist/scrollbars.d.ts +1 -0
  411. package/dist/scrollbars.js +10 -0
  412. package/dist/scrollbars.js.map +1 -0
  413. package/dist/secret-reference-label.d.ts +14 -0
  414. package/dist/secrets-ui.d.ts +57 -0
  415. package/dist/session-agents-model.d.ts +10 -0
  416. package/dist/session-agents-model.js +25 -0
  417. package/dist/session-agents-model.js.map +1 -0
  418. package/dist/session-attention-model.d.ts +8 -0
  419. package/dist/session-attention-model.js +47 -0
  420. package/dist/session-attention-model.js.map +1 -0
  421. package/dist/session-auth-recommendation.d.ts +5 -0
  422. package/dist/session-capability-policy.d.ts +31 -0
  423. package/dist/session-feedback-model.d.ts +20 -0
  424. package/dist/session-feedback-model.js +56 -0
  425. package/dist/session-feedback-model.js.map +1 -0
  426. package/dist/session-list-model.d.ts +138 -0
  427. package/dist/session-list-model.js +274 -0
  428. package/dist/session-list-model.js.map +1 -0
  429. package/dist/session-realtime-7DJOIHQW.js +21 -0
  430. package/dist/session-realtime-7DJOIHQW.js.map +1 -0
  431. package/dist/session-realtime.d.ts +7 -0
  432. package/dist/session-realtime.js +19 -0
  433. package/dist/session-realtime.js.map +1 -0
  434. package/dist/session-status-model.d.ts +36 -0
  435. package/dist/session-ui.d.ts +39 -1
  436. package/dist/session-ui.js +126 -12
  437. package/dist/session-ui.js.map +1 -1
  438. package/dist/session.d.ts +8 -2
  439. package/dist/session.js +35 -20
  440. package/dist/site-snapshot.d.ts +14 -0
  441. package/dist/sites-ui.d.ts +24 -0
  442. package/dist/sites.d.ts +3 -0
  443. package/dist/sites.js +14 -0
  444. package/dist/sites.js.map +1 -0
  445. package/dist/skill-discovery.d.ts +47 -0
  446. package/dist/terminal.d.ts +8 -0
  447. package/dist/terminal.js +32 -0
  448. package/dist/terminal.js.map +1 -0
  449. package/dist/testing/session-scenarios.d.ts +10 -0
  450. package/dist/testing/session-scenarios.js +367 -0
  451. package/dist/testing/session-scenarios.js.map +1 -0
  452. package/dist/timeline/activity-rail.d.ts +11 -2
  453. package/dist/timeline/agent-identity.d.ts +30 -0
  454. package/dist/timeline/agent-row.d.ts +31 -0
  455. package/dist/timeline/allowance-exhausted-row.d.ts +24 -0
  456. package/dist/timeline/compaction-copy.d.ts +46 -0
  457. package/dist/timeline/entrance.d.ts +13 -1
  458. package/dist/timeline/focus-sequence.d.ts +9 -0
  459. package/dist/timeline/genie-copy.d.ts +3 -0
  460. package/dist/timeline/genie-loading.d.ts +47 -0
  461. package/dist/timeline/index.d.ts +10 -5
  462. package/dist/timeline/knowledge-receipt.d.ts +17 -0
  463. package/dist/timeline/message-sender.d.ts +19 -0
  464. package/dist/timeline/notice-presentation.d.ts +13 -0
  465. package/dist/timeline/parsers.d.ts +11 -0
  466. package/dist/timeline/patch-apply-command.d.ts +18 -0
  467. package/dist/timeline/platform-activity-presentation.d.ts +21 -0
  468. package/dist/timeline/platform-activity-row.d.ts +1 -2
  469. package/dist/timeline/presented-image.d.ts +11 -0
  470. package/dist/timeline/projection.d.ts +31 -2
  471. package/dist/timeline/provider-logo.d.ts +15 -0
  472. package/dist/timeline/question-nav-model.d.ts +23 -0
  473. package/dist/timeline/registry.d.ts +12 -1
  474. package/dist/timeline/retained-image.d.ts +18 -0
  475. package/dist/timeline/retained-loaders.d.ts +27 -0
  476. package/dist/timeline/rolling-activity.d.ts +11 -0
  477. package/dist/timeline/screenshot-lightbox.d.ts +23 -1
  478. package/dist/timeline/session-usage-limit-row.d.ts +11 -0
  479. package/dist/timeline/shared.d.ts +4 -1
  480. package/dist/timeline/startup-dispatch-details.d.ts +5 -0
  481. package/dist/timeline/startup-preference.d.ts +3 -0
  482. package/dist/timeline/startup-timings.d.ts +4 -0
  483. package/dist/timeline/tool-display-name.d.ts +5 -2
  484. package/dist/timeline/tool-presentation.d.ts +172 -0
  485. package/dist/timeline/turn-summary-model.d.ts +95 -0
  486. package/dist/timeline/turn-summary.d.ts +20 -54
  487. package/dist/timeline/types.d.ts +179 -7
  488. package/dist/timeline/work-presentation.d.ts +60 -0
  489. package/dist/timeline-annotation-markers-U3G66KUD.js +166 -0
  490. package/dist/timeline-annotation-markers-U3G66KUD.js.map +1 -0
  491. package/dist/timeline-annotation-selection-BI7QTPTZ.js +242 -0
  492. package/dist/timeline-annotation-selection-BI7QTPTZ.js.map +1 -0
  493. package/dist/timeline-annotations-dialog-FOMHSDTE.js +274 -0
  494. package/dist/timeline-annotations-dialog-FOMHSDTE.js.map +1 -0
  495. package/dist/timeline-model.d.ts +29 -0
  496. package/dist/timeline-model.js +254 -0
  497. package/dist/timeline-model.js.map +1 -0
  498. package/dist/usage/allowance-copy.d.ts +25 -0
  499. package/dist/usage/session-usage-limit.d.ts +88 -0
  500. package/dist/usage/summary.d.ts +35 -0
  501. package/dist/usage.d.ts +17 -0
  502. package/dist/usage.js +1187 -0
  503. package/dist/usage.js.map +1 -0
  504. package/dist/voice-recording-owner.d.ts +7 -0
  505. package/package.json +107 -7
  506. package/src/accounts.tsx +116 -14
  507. package/src/approvals.ts +8 -1
  508. package/src/artifacts-spreadsheet.ts +1 -0
  509. package/src/artifacts.ts +44 -0
  510. package/src/assets/README.md +8 -0
  511. package/src/assets/gmail.ico +0 -0
  512. package/src/assets/outlook.ico +0 -0
  513. package/src/capability-catalog-row.tsx +94 -0
  514. package/src/capability-logo-fallback.ts +22 -0
  515. package/src/client.ts +20 -31
  516. package/src/commands/registry.ts +18 -15
  517. package/src/commands/types.ts +2 -0
  518. package/src/components/anthropic-mark.tsx +10 -0
  519. package/src/components/approval-surface.tsx +401 -138
  520. package/src/components/artifacts/artifact-chrome.tsx +413 -0
  521. package/src/components/artifacts/artifact-sandbox.tsx +189 -0
  522. package/src/components/artifacts/artifact-surface.tsx +40 -20
  523. package/src/components/artifacts/chat-interactive-block.tsx +260 -0
  524. package/src/components/artifacts/deferred-chat-media.tsx +67 -0
  525. package/src/components/artifacts/document-editor.tsx +141 -16
  526. package/src/components/artifacts/editable-artifact-ui.tsx +4 -2
  527. package/src/components/artifacts/editable-artifact-view.tsx +197 -0
  528. package/src/components/artifacts/editable-artifact-workbench.tsx +5 -2
  529. package/src/components/artifacts/editable-document.tsx +37 -36
  530. package/src/components/artifacts/editable-presentation.tsx +36 -18
  531. package/src/components/artifacts/editable-spreadsheet.tsx +543 -103
  532. package/src/components/artifacts/index.ts +45 -0
  533. package/src/components/artifacts/inline-html-document.ts +24 -0
  534. package/src/components/artifacts/latest-task-runner.ts +49 -0
  535. package/src/components/artifacts/presentation-editor.tsx +323 -67
  536. package/src/components/artifacts/published-html-artifact-frame.tsx +122 -5
  537. package/src/components/artifacts/session-artifact-viewer.tsx +378 -0
  538. package/src/components/artifacts/site-view.tsx +121 -0
  539. package/src/components/artifacts/spreadsheet-canvas.ts +5 -10
  540. package/src/components/artifacts/spreadsheet-command-queue.ts +184 -0
  541. package/src/components/artifacts/spreadsheet-download.tsx +109 -0
  542. package/src/components/artifacts/spreadsheet-general-display.ts +43 -0
  543. package/src/components/artifacts/spreadsheet-grid.tsx +344 -144
  544. package/src/components/artifacts/spreadsheet-resize.tsx +421 -0
  545. package/src/components/artifacts/spreadsheet-submissions.tsx +46 -0
  546. package/src/components/artifacts/visualization-assets/base.css +1015 -0
  547. package/src/components/artifacts/visualization-assets/helpers.html +349 -0
  548. package/src/components/artifacts/visualization-assets.gen.ts +3 -0
  549. package/src/components/browser-select-control.tsx +312 -0
  550. package/src/components/browser-viewer.tsx +778 -318
  551. package/src/components/chat-composer.tsx +47 -5
  552. package/src/components/child-session-link.tsx +36 -0
  553. package/src/components/claude-mark.tsx +11 -0
  554. package/src/components/code-editor.tsx +13 -16
  555. package/src/components/composer-transcription-control.tsx +128 -30
  556. package/src/components/composer.tsx +404 -195
  557. package/src/components/computer-viewer.tsx +880 -253
  558. package/src/components/copy-button.tsx +13 -5
  559. package/src/components/desktop-viewer.tsx +1 -1
  560. package/src/components/enrollment-consent.tsx +1 -1
  561. package/src/components/enrollment-device-flow.tsx +1 -1
  562. package/src/components/file-browser.tsx +10 -14
  563. package/src/components/fleet-tile.tsx +9 -18
  564. package/src/components/generated-video-player.tsx +4 -2
  565. package/src/components/grok-mark.tsx +34 -0
  566. package/src/components/human-input-form.tsx +590 -283
  567. package/src/components/human-input-surface.tsx +11 -0
  568. package/src/components/interaction-intervention-banner.tsx +2 -2
  569. package/src/components/linkified-text.tsx +79 -0
  570. package/src/components/machine-card.tsx +35 -78
  571. package/src/components/machine-dock-bar.tsx +1 -1
  572. package/src/components/machine-input-display.ts +197 -3
  573. package/src/components/machines/agent-status-icon.tsx +31 -0
  574. package/src/components/machines/machine-detail.tsx +200 -31
  575. package/src/components/machines/machine-operation-policy.tsx +1 -1
  576. package/src/components/machines/machine-status.ts +241 -0
  577. package/src/components/machines-dashboard.tsx +2 -17
  578. package/src/components/markdown-table-layout.ts +143 -0
  579. package/src/components/markdown.tsx +466 -129
  580. package/src/components/message-timeline.tsx +2567 -728
  581. package/src/components/model-mark.tsx +102 -0
  582. package/src/components/model-picker.tsx +15 -4
  583. package/src/components/model-policy-picker-menu.tsx +371 -0
  584. package/src/components/model-policy-picker.tsx +256 -412
  585. package/src/components/new-conversation.tsx +221 -0
  586. package/src/components/open-geni-chat.tsx +309 -0
  587. package/src/components/open-geni-links.tsx +179 -0
  588. package/src/components/openrouter-mark.tsx +13 -0
  589. package/src/components/opper-mark.tsx +18 -0
  590. package/src/components/pierre-diff.tsx +41 -16
  591. package/src/components/pierre-file.tsx +35 -10
  592. package/src/components/preview-loading.tsx +109 -0
  593. package/src/components/provider-recovery-notice.tsx +49 -0
  594. package/src/components/queue-item-content.ts +14 -0
  595. package/src/components/queue-surface-implementation.tsx +51 -356
  596. package/src/components/queue-surface-state.tsx +3 -1
  597. package/src/components/rehype-secret-refs.ts +98 -0
  598. package/src/components/remark-soft-line-breaks.ts +166 -0
  599. package/src/components/sandbox-files.tsx +91 -15
  600. package/src/components/sandbox-terminal.tsx +84 -13
  601. package/src/components/sandbox-workspace.tsx +147 -51
  602. package/src/components/secret-question-field.tsx +324 -0
  603. package/src/components/secret-ref-chip.tsx +185 -0
  604. package/src/components/session-capability-frame.tsx +197 -0
  605. package/src/components/session-chrome.tsx +842 -251
  606. package/src/components/session-commands-panel.tsx +126 -0
  607. package/src/components/session-commands.tsx +18 -0
  608. package/src/components/session-connection-request.tsx +97 -0
  609. package/src/components/session-conversation.tsx +876 -0
  610. package/src/components/session-list.tsx +257 -0
  611. package/src/components/session-mcp-capability-card.tsx +680 -0
  612. package/src/components/session-proxy-scope.tsx +153 -0
  613. package/src/components/session-status.tsx +26 -17
  614. package/src/components/session-usage-limit-notice.tsx +174 -0
  615. package/src/components/timeline-anchor.tsx +119 -0
  616. package/src/components/timeline-annotation-chrome.tsx +196 -0
  617. package/src/components/timeline-annotation-layout.ts +268 -0
  618. package/src/components/timeline-annotation-markers.tsx +185 -0
  619. package/src/components/timeline-annotation-reveal-context.ts +9 -0
  620. package/src/components/timeline-annotation-selection.tsx +106 -54
  621. package/src/components/timeline-annotation-shared.ts +245 -0
  622. package/src/components/timeline-annotations-dialog.tsx +185 -128
  623. package/src/components/timeline-annotations.tsx +189 -45
  624. package/src/components/timeline-reading-progress.ts +80 -0
  625. package/src/components/timeline-search.tsx +168 -0
  626. package/src/components/timeline-settlement.ts +60 -0
  627. package/src/components/tip-follow.ts +52 -0
  628. package/src/components/tool-action-review.tsx +650 -0
  629. package/src/components/tool-review-history.tsx +88 -0
  630. package/src/components/tooltip.tsx +38 -5
  631. package/src/components/usage-limit-notice.tsx +179 -0
  632. package/src/components/usage-member-list.tsx +792 -0
  633. package/src/components/usage-meter.tsx +382 -0
  634. package/src/components/use-viewer-menu-dismiss.ts +33 -0
  635. package/src/components/user-message-body.tsx +27 -2
  636. package/src/components/workspace-dock.tsx +18 -1
  637. package/src/composer-messages.ts +150 -0
  638. package/src/composer-voice-events.ts +12 -0
  639. package/src/composer.ts +6 -1
  640. package/src/connect-account-identity.tsx +34 -0
  641. package/src/connect-accounts.tsx +233 -0
  642. package/src/connect-chooser.tsx +336 -0
  643. package/src/connect-panel.tsx +99 -0
  644. package/src/connect-setup.tsx +355 -0
  645. package/src/connect.ts +60 -0
  646. package/src/connection-assets.d.ts +4 -0
  647. package/src/connection-catalog.tsx +162 -0
  648. package/src/connection-discovery.tsx +238 -0
  649. package/src/connection-installed.tsx +51 -0
  650. package/src/connection-logo.tsx +37 -0
  651. package/src/connection-service-logo.tsx +55 -0
  652. package/src/connection-service-presentation.ts +46 -0
  653. package/src/connection-skeleton.tsx +16 -0
  654. package/src/connection-type-picker.tsx +36 -0
  655. package/src/conversation-timeline.ts +92 -0
  656. package/src/desktop.ts +24 -0
  657. package/src/device-authorization.tsx +98 -0
  658. package/src/diffs.ts +16 -0
  659. package/src/discovery-cache.ts +42 -0
  660. package/src/editor.ts +13 -0
  661. package/src/hooks/internal.ts +3 -2
  662. package/src/hooks/latest-question.ts +164 -0
  663. package/src/hooks/shared-machines-list.ts +34 -1
  664. package/src/hooks/shared-query.ts +721 -0
  665. package/src/hooks/use-attached-browsers.ts +1 -1
  666. package/src/hooks/use-auth-runs.ts +0 -27
  667. package/src/hooks/use-available-models.ts +21 -15
  668. package/src/hooks/use-browser-frame-stream.ts +19 -2
  669. package/src/hooks/use-browser-session.ts +680 -205
  670. package/src/hooks/use-browser-sessions.ts +32 -1
  671. package/src/hooks/use-client-config-flags.ts +118 -0
  672. package/src/hooks/use-codex-accounts.ts +247 -47
  673. package/src/hooks/use-composer.ts +276 -47
  674. package/src/hooks/use-computer-frame-stream.ts +25 -7
  675. package/src/hooks/use-computer-input-posture.ts +94 -0
  676. package/src/hooks/use-computer-session.ts +409 -95
  677. package/src/hooks/use-connect.ts +23 -0
  678. package/src/hooks/use-desktop-stream.ts +19 -28
  679. package/src/hooks/use-file-attachments.ts +80 -4
  680. package/src/hooks/use-goal.ts +107 -13
  681. package/src/hooks/use-last-started-turn-policy.ts +46 -14
  682. package/src/hooks/use-machines.ts +4 -0
  683. package/src/hooks/use-new-conversation.ts +374 -0
  684. package/src/hooks/use-new-session-draft.ts +813 -0
  685. package/src/hooks/use-realtime-voice-models.ts +46 -0
  686. package/src/hooks/use-sandbox-files.ts +68 -20
  687. package/src/hooks/use-session-background-commands.ts +22 -11
  688. package/src/hooks/use-session-capabilities.ts +3 -2
  689. package/src/hooks/use-session-conversation.ts +150 -0
  690. package/src/hooks/use-session-events.ts +703 -382
  691. package/src/hooks/use-session-lineage.ts +20 -16
  692. package/src/hooks/use-session-mcp-approval-policy.ts +13 -5
  693. package/src/hooks/use-session-model-account.ts +174 -0
  694. package/src/hooks/use-session.ts +53 -21
  695. package/src/hooks/use-slash-commands.ts +6 -11
  696. package/src/hooks/use-supergrok-accounts.ts +22 -8
  697. package/src/hooks/use-terminal-stream.ts +153 -27
  698. package/src/hooks/use-transcription.ts +6 -0
  699. package/src/hooks/use-turn-queue.ts +2 -1
  700. package/src/hooks/use-usage.ts +100 -0
  701. package/src/hooks/use-vaults.ts +153 -0
  702. package/src/hooks/use-video-artifact-playback.ts +1 -1
  703. package/src/hooks/use-voice-input.ts +127 -19
  704. package/src/hooks/use-workspace-capture.ts +3 -2
  705. package/src/hooks/use-workspace-edit.ts +23 -5
  706. package/src/hooks/use-workspace-sessions.ts +97 -32
  707. package/src/human-input-model.ts +359 -0
  708. package/src/identity-link-accounts.tsx +148 -0
  709. package/src/identity-link-consent.tsx +192 -0
  710. package/src/index.ts +262 -16
  711. package/src/interaction.ts +1 -0
  712. package/src/lib/clipboard.ts +29 -0
  713. package/src/lib/error-message.ts +37 -0
  714. package/src/lib/format.ts +213 -16
  715. package/src/lib/host-theme.ts +529 -0
  716. package/src/lib/interaction-errors.ts +15 -0
  717. package/src/lib/menu-styles.ts +44 -0
  718. package/src/lib/notify-observer.ts +15 -0
  719. package/src/lib/pierre-diffs-loader.ts +53 -0
  720. package/src/lib/provider-recovery.ts +243 -0
  721. package/src/lib/scrollbars.ts +30 -0
  722. package/src/lib/terminal-input-readiness.ts +51 -0
  723. package/src/lib/transient-retry.ts +99 -0
  724. package/src/lib/workbench-peers.ts +62 -0
  725. package/src/lib/xterm-theme.ts +23 -21
  726. package/src/mcp-connection-status.ts +35 -0
  727. package/src/model-mark-paths.ts +53 -0
  728. package/src/model-picker-model.ts +330 -0
  729. package/src/model-policy.ts +299 -74
  730. package/src/native-previews.ts +100 -0
  731. package/src/new-session-draft.ts +22 -0
  732. package/src/notification-text.ts +81 -0
  733. package/src/older-history.ts +22 -4
  734. package/src/organization-model.ts +118 -0
  735. package/src/plugin-details.tsx +185 -0
  736. package/src/plugin-discovery.tsx +196 -0
  737. package/src/preview-loading-paint.ts +68 -0
  738. package/src/provider.tsx +74 -15
  739. package/src/queue-presentation-model.ts +464 -0
  740. package/src/realtime/dropdown-menu.tsx +19 -12
  741. package/src/realtime/embedded-new-voice.tsx +1 -0
  742. package/src/realtime/embedded-voice.tsx +3 -0
  743. package/src/realtime/realtime-control.tsx +138 -501
  744. package/src/realtime/session-realtime.ts +566 -0
  745. package/src/sandbox-label-model.ts +53 -0
  746. package/src/scrollbars.ts +3 -0
  747. package/src/secret-reference-label.ts +43 -0
  748. package/src/secrets-ui.tsx +59 -0
  749. package/src/session-agents-model.ts +33 -0
  750. package/src/session-attention-model.ts +62 -0
  751. package/src/session-auth-recommendation.ts +48 -0
  752. package/src/session-capability-policy.ts +196 -0
  753. package/src/session-context.ts +3 -4
  754. package/src/session-feedback-model.ts +95 -0
  755. package/src/session-list-model.ts +434 -0
  756. package/src/session-realtime.ts +18 -0
  757. package/src/session-status-model.ts +99 -0
  758. package/src/session-ui.ts +98 -1
  759. package/src/session.ts +17 -1
  760. package/src/site-snapshot.ts +74 -0
  761. package/src/sites-ui.tsx +348 -0
  762. package/src/sites.ts +3 -0
  763. package/src/skill-discovery.tsx +208 -0
  764. package/src/terminal.ts +26 -0
  765. package/src/testing/session-scenarios.ts +404 -0
  766. package/src/timeline/activity-rail.tsx +242 -101
  767. package/src/timeline/agent-identity.tsx +84 -0
  768. package/src/timeline/agent-row.tsx +231 -0
  769. package/src/timeline/allowance-exhausted-row.tsx +86 -0
  770. package/src/timeline/compaction-copy.ts +115 -0
  771. package/src/timeline/entrance.tsx +28 -3
  772. package/src/timeline/fleet-decision-projection.ts +2 -1
  773. package/src/timeline/fleet-decision-row.tsx +1 -0
  774. package/src/timeline/focus-sequence.ts +44 -0
  775. package/src/timeline/genie-copy.ts +19 -0
  776. package/src/timeline/genie-loading.tsx +143 -0
  777. package/src/timeline/index.ts +30 -2
  778. package/src/timeline/knowledge-receipt.tsx +100 -0
  779. package/src/timeline/message-sender.tsx +71 -0
  780. package/src/timeline/notice-presentation.ts +48 -0
  781. package/src/timeline/parsers.ts +42 -2
  782. package/src/timeline/patch-apply-command.tsx +135 -0
  783. package/src/timeline/platform-activity-presentation.ts +166 -0
  784. package/src/timeline/platform-activity-row.tsx +15 -90
  785. package/src/timeline/presented-image.ts +63 -0
  786. package/src/timeline/projection.ts +1746 -76
  787. package/src/timeline/provider-logo.tsx +53 -0
  788. package/src/timeline/question-nav-model.ts +28 -0
  789. package/src/timeline/registry.ts +26 -4
  790. package/src/timeline/retained-image.ts +97 -0
  791. package/src/timeline/retained-loaders.ts +91 -0
  792. package/src/timeline/rolling-activity.tsx +80 -0
  793. package/src/timeline/screenshot-lightbox.tsx +228 -5
  794. package/src/timeline/session-usage-limit-row.tsx +42 -0
  795. package/src/timeline/shared.tsx +42 -15
  796. package/src/timeline/startup-dispatch-details.tsx +36 -0
  797. package/src/timeline/startup-preference.ts +33 -0
  798. package/src/timeline/startup-timings.tsx +145 -0
  799. package/src/timeline/tool-display-name.ts +19 -7
  800. package/src/timeline/tool-presentation.ts +1316 -0
  801. package/src/timeline/tool-renderers.tsx +835 -1138
  802. package/src/timeline/turn-summary-model.ts +343 -0
  803. package/src/timeline/turn-summary.tsx +272 -365
  804. package/src/timeline/types.ts +189 -6
  805. package/src/timeline/work-presentation.ts +189 -0
  806. package/src/timeline-model.ts +143 -0
  807. package/src/usage/allowance-copy.ts +64 -0
  808. package/src/usage/session-usage-limit.ts +266 -0
  809. package/src/usage/summary.ts +93 -0
  810. package/src/usage.ts +70 -0
  811. package/src/voice-recording-owner.ts +22 -0
  812. package/styles/compiled.css +2319 -748
  813. package/styles/connect.css +290 -0
  814. package/styles/connect.d.ts +1 -0
  815. package/styles/effective-tokens.css +1 -0
  816. package/styles/index.css +309 -9
  817. package/styles/responsive.css +99 -7
  818. package/styles/session-capability.css +44 -0
  819. package/styles/tokens.css +134 -66
  820. package/dist/browser-viewer-AEFHUYZK.js +0 -14
  821. package/dist/chunk-4MDLEHXL.js.map +0 -1
  822. package/dist/chunk-5YK2ZDIG.js.map +0 -1
  823. package/dist/chunk-D3UIAJKY.js.map +0 -1
  824. package/dist/chunk-ELIYWBZR.js.map +0 -1
  825. package/dist/chunk-H5YGYNXS.js.map +0 -1
  826. package/dist/chunk-HQVCKCLG.js +0 -9458
  827. package/dist/chunk-HQVCKCLG.js.map +0 -1
  828. package/dist/chunk-HUIKIDM5.js.map +0 -1
  829. package/dist/chunk-ICA6R6TW.js.map +0 -1
  830. package/dist/chunk-JVYQRRC4.js.map +0 -1
  831. package/dist/chunk-KCGXPP5V.js.map +0 -1
  832. package/dist/chunk-KZ73RL76.js.map +0 -1
  833. package/dist/chunk-LAKLF4PA.js +0 -141
  834. package/dist/chunk-LAKLF4PA.js.map +0 -1
  835. package/dist/chunk-MZ2G2XBA.js.map +0 -1
  836. package/dist/chunk-NEXLLTP4.js.map +0 -1
  837. package/dist/chunk-OAM4WAAM.js.map +0 -1
  838. package/dist/chunk-PEI6RANI.js.map +0 -1
  839. package/dist/chunk-RGALCTWO.js.map +0 -1
  840. package/dist/chunk-W6NFJXSA.js +0 -454
  841. package/dist/chunk-W6NFJXSA.js.map +0 -1
  842. package/dist/chunk-WSK7G5LE.js +0 -170
  843. package/dist/chunk-WSK7G5LE.js.map +0 -1
  844. package/dist/chunk-X4A66EWZ.js +0 -223
  845. package/dist/chunk-X4A66EWZ.js.map +0 -1
  846. package/dist/chunk-XXWH2JLC.js.map +0 -1
  847. package/dist/chunk-YFKJ7VZH.js +0 -268
  848. package/dist/chunk-YFKJ7VZH.js.map +0 -1
  849. package/dist/chunk-YJFGAFBD.js.map +0 -1
  850. package/dist/computer-viewer-FWEZISW4.js +0 -16
  851. package/dist/fleet-decision-row-GGCAT4E4.js.map +0 -1
  852. package/dist/hooks/use-environments.d.ts +0 -41
  853. package/dist/hooks/use-packs.d.ts +0 -32
  854. package/dist/platform-activity-row-BJHUHXAT.js.map +0 -1
  855. package/dist/queue-surface-implementation-BSKUWHRI.js.map +0 -1
  856. package/dist/timeline-annotation-selection-3L7LHGG2.js +0 -187
  857. package/dist/timeline-annotation-selection-3L7LHGG2.js.map +0 -1
  858. package/dist/timeline-annotations-dialog-U7EVLR75.js +0 -196
  859. package/dist/timeline-annotations-dialog-U7EVLR75.js.map +0 -1
  860. package/src/hooks/use-environments.ts +0 -182
  861. package/src/hooks/use-packs.ts +0 -157
  862. /package/dist/{browser-viewer-AEFHUYZK.js.map → browser-viewer-ZWR6MWJ7.js.map} +0 -0
  863. /package/dist/{computer-viewer-FWEZISW4.js.map → chat-interactive-block-BO2IWXVK.js.map} +0 -0
@@ -0,0 +1,38 @@
1
+ /**
2
+ * remark: render a single newline inside prose as a line break.
3
+ *
4
+ * CommonMark folds a lone line ending inside a paragraph into a space, so an
5
+ * agent writing `1\n2\n3` shows "1 2 3". Chat surfaces (ChatGPT, GitHub
6
+ * comments) keep the line, which is what message authors expect. This plugin
7
+ * turns every line ending inside an mdast `text` node into a `break` node — the
8
+ * same result as `remark-breaks` — while leaving code (`code` / `inlineCode`
9
+ * carry `value`, not `text` children), raw HTML, and block structure (lists,
10
+ * tables, blockquotes, headings, blank-line paragraphs) untouched.
11
+ *
12
+ * Unlike `remark-breaks` (built on `mdast-util-find-and-replace`, which drops
13
+ * positions on the split nodes), every split text node keeps a source position.
14
+ * Streaming tip ink (`rehypeStreamReveal`) keys fade-in on those offsets, so a
15
+ * positionless line would render without ink and snap in at the stream tail.
16
+ *
17
+ * Structural local types keep the module dependency-free, like
18
+ * `stream-reveal.ts`; the renderer casts once at the plugin seam.
19
+ */
20
+ type MdPoint = {
21
+ line?: number | undefined;
22
+ column?: number | undefined;
23
+ offset?: number | undefined;
24
+ };
25
+ type MdPosition = {
26
+ start?: MdPoint | undefined;
27
+ end?: MdPoint | undefined;
28
+ };
29
+ type MdNode = {
30
+ type: string;
31
+ value?: string | undefined;
32
+ position?: MdPosition | undefined;
33
+ children?: MdNode[] | undefined;
34
+ };
35
+ export declare function remarkSoftLineBreaks(): (tree: MdNode, file?: {
36
+ value?: unknown;
37
+ } | undefined) => void;
38
+ export {};
@@ -43,6 +43,8 @@ export type SandboxFilesProps = {
43
43
  workspaceWaking?: boolean | undefined;
44
44
  /** Whether live reads are currently authoritative. */
45
45
  liveWorkspaceReady?: boolean | undefined;
46
+ /** Failed live negotiation; never present a failure as an ongoing wake. */
47
+ workspaceError?: Error | null | undefined;
46
48
  /** Deliberately wake the machine to read content absent from the capture. */
47
49
  onWakeWorkspace?: (() => void) | undefined;
48
50
  themeType?: "dark" | "light" | undefined;
@@ -55,4 +57,4 @@ export type SandboxFilesProps = {
55
57
  * surface deliberately does NOT replicate the changed-files list, and does not
56
58
  * diff here — one job per tab). The agent commits; the human reviews.
57
59
  */
58
- export declare function SandboxFiles({ files, git, fileSystemAvailable, usePierre, editable, onEditIntent, initialSelectedPath, onSelectedPathChange, isNodeVisible, requestedPath, requestedLine, requestedPathRequestId, requestedPathReady, workspaceResting, workspaceWaking, liveWorkspaceReady, onWakeWorkspace, themeType, className, }: SandboxFilesProps): import("react").JSX.Element;
60
+ export declare function SandboxFiles({ files, git, fileSystemAvailable, usePierre, editable, onEditIntent, initialSelectedPath, onSelectedPathChange, isNodeVisible, requestedPath, requestedLine, requestedPathRequestId, requestedPathReady, workspaceResting, workspaceWaking, liveWorkspaceReady, workspaceError, onWakeWorkspace, themeType, className, }: SandboxFilesProps): import("react").JSX.Element;
@@ -58,6 +58,13 @@ export type UseSandboxWorkspaceTabsOptions = ClientOverride & {
58
58
  * attachment, and navigation callbacks are not activated.
59
59
  */
60
60
  surfaces?: readonly SandboxWorkspaceSurface[] | undefined;
61
+ /**
62
+ * Whether this viewer may read the workspace machine fleet
63
+ * (`GET /machines`, permission `enrollments:read`). Defaults to true. Pass
64
+ * false for a viewer without it: the dock then never requests the fleet and
65
+ * the machine chip derives from the session's own capabilities alone.
66
+ */
67
+ machinesEnabled?: boolean | undefined;
61
68
  /** Override the source-driven default tab (e.g. a host landing tab id). When
62
69
  * omitted the workbench picks Changes-vs-Files from capture or live Git. */
63
70
  initialTab?: string | null | undefined;
@@ -129,6 +136,12 @@ export type SandboxWorkspaceProps = ClientOverride & {
129
136
  * Terminal, Browser, and Desktop. Disabled surfaces remain behaviorally dormant.
130
137
  */
131
138
  surfaces?: readonly SandboxWorkspaceSurface[] | undefined;
139
+ /**
140
+ * Whether this viewer may read the workspace machine fleet
141
+ * (`GET /machines`, permission `enrollments:read`). Defaults to true. Pass
142
+ * false for a viewer without it so the dock never requests the fleet.
143
+ */
144
+ machinesEnabled?: boolean | undefined;
132
145
  /** Host tabs injected BEFORE the workbench tabs (e.g. a "Run" landing tab). */
133
146
  leadingTabs?: WorkspaceTab[] | undefined;
134
147
  /** Host tabs injected AFTER the workbench tabs (e.g. a "Debug" tab). */
@@ -137,6 +150,11 @@ export type SandboxWorkspaceProps = ClientOverride & {
137
150
  * omitted the workbench decides from the durable workspace capture. */
138
151
  initialTab?: string | undefined;
139
152
  onActiveTabChange?: ((activeTab: string) => void) | undefined;
153
+ /** Open a built-in or host-injected tab. A new requestId reopens the same tab. */
154
+ openTabRequest?: {
155
+ tab: string;
156
+ requestId: number;
157
+ } | null | undefined;
140
158
  initialFilePath?: string | null | undefined;
141
159
  onFilePathChange?: ((path: string | null) => void) | undefined;
142
160
  /** Presentation-only filter for Files tree nodes and selected-file viewing. */
@@ -0,0 +1,31 @@
1
+ import type { HumanInputQuestion, HumanInputSecretSaveTo, HumanInputSecretSpec } from "@opengeni/sdk";
2
+ import { type HumanInputFormMessages, type SecretFieldReading } from "../human-input-model.js";
3
+ /** Read and clear one secret field at submit time; the value never enters React state. */
4
+ export type SecretFieldHandle = {
5
+ read: () => SecretFieldReading;
6
+ clear: () => void;
7
+ focus: () => void;
8
+ };
9
+ export type SecretQuestionFieldProps = {
10
+ question: HumanInputQuestion & {
11
+ secret: HumanInputSecretSpec;
12
+ };
13
+ fieldId: string;
14
+ messages: HumanInputFormMessages;
15
+ autoFocus: boolean;
16
+ /** Save to targets this person may write. Defaults to all three. */
17
+ allowedSaveTo?: readonly HumanInputSecretSaveTo[] | undefined;
18
+ error?: string | undefined;
19
+ /** Question prompt chrome rendered by the form (multi-question cards). */
20
+ describedBy?: string | undefined;
21
+ register: (handle: SecretFieldHandle | null) => void;
22
+ /** The person changed the field: clears a stale validation error. */
23
+ onEdited: () => void;
24
+ };
25
+ /**
26
+ * The ask card's secret field: an uncontrolled password input (read through a
27
+ * ref, so the value never reaches React state, props, logs or storage) with
28
+ * show/hide, optional Generate, an optional username placed first so password
29
+ * managers pair the two, soft `looksLike`/`pattern` hints, and Save to.
30
+ */
31
+ export declare function SecretQuestionField({ question, fieldId, messages, autoFocus, allowedSaveTo, error, describedBy, register, onEdited, }: SecretQuestionFieldProps): import("react").JSX.Element;
@@ -0,0 +1,35 @@
1
+ import type { HumanInputSecretAnswerResult } from "@opengeni/sdk";
2
+ import { type ReactNode } from "react";
3
+ import { type SecretReferenceLike, type SecretsUi } from "../secrets-ui.js";
4
+ export { secretReferenceLabel, secretReferenceLabelText, type SecretReferenceLabel, } from "../secret-reference-label.js";
5
+ export type SecretRefChipProps = {
6
+ reference: SecretReferenceLike;
7
+ /** Link to the item when the host provides `hrefForReference`. Off inside other controls. */
8
+ linkable?: boolean | undefined;
9
+ className?: string | undefined;
10
+ };
11
+ /** One secret reference as a chip. Focusable only when it links. */
12
+ export declare function SecretRefChip({ reference, linkable, className }: SecretRefChipProps): import("react").JSX.Element;
13
+ export type SecretRefTextProps = {
14
+ text: string;
15
+ linkable?: boolean | undefined;
16
+ chipClassName?: string | undefined;
17
+ };
18
+ /**
19
+ * Text with each valid secret reference as a chip. Malformed reference-like
20
+ * text stays plain, and without a `SecretsUiProvider` the text is unchanged.
21
+ */
22
+ export declare function SecretRefText({ text, linkable, chipClassName }: SecretRefTextProps): import("react").JSX.Element;
23
+ /** Fast path: only text that mentions a reference is tokenized. */
24
+ export declare function mayContainSecretReference(text: string): boolean;
25
+ export declare function renderSecretRefText(ui: SecretsUi | null, text: string, options?: {
26
+ linkable?: boolean | undefined;
27
+ chipClassName?: string | undefined;
28
+ }): ReactNode;
29
+ export type SecretAnswerChipProps = {
30
+ result: HumanInputSecretAnswerResult;
31
+ label: string;
32
+ className?: string | undefined;
33
+ };
34
+ /** The answered ask card: "Saved to Private › GitHub", plus the username. Never a value. */
35
+ export declare function SecretAnswerChip({ result, label, className }: SecretAnswerChipProps): import("react").JSX.Element;
@@ -0,0 +1,37 @@
1
+ import { type ReactNode, type RefObject } from "react";
2
+ export type SessionCapabilityFrameProps = {
3
+ name: string;
4
+ subtitle: string;
5
+ logo: string | null;
6
+ typeLabel: string;
7
+ description: string;
8
+ skill: boolean;
9
+ expanded: boolean;
10
+ complete: boolean;
11
+ /** Completion copy must reflect the provider's actual scope of access. */
12
+ completeLabel?: string;
13
+ actionLabel: string;
14
+ /** Direct navigation actions should not announce a dialog on the card. */
15
+ opensDialog?: boolean;
16
+ note: string;
17
+ onOpen(): void;
18
+ onClose(): void;
19
+ busy?: boolean;
20
+ opener?: RefObject<HTMLButtonElement | null>;
21
+ cardRef?: RefObject<HTMLElement | null>;
22
+ children?: ReactNode;
23
+ /** A catalogue row can own the opener while reusing the same details dialog. */
24
+ dialogOnly?: boolean;
25
+ /**
26
+ * Replaces the action when the viewer cannot start setup here (the provider
27
+ * is not configured, or someone else must connect it). Say why and who can.
28
+ */
29
+ actionUnavailable?: ReactNode;
30
+ /** Host-owned content inside the card, under its status or actions. */
31
+ details?: ReactNode;
32
+ /** Protected setup can stay in the conversation instead of opening a dialog. */
33
+ inlineSetup?: ReactNode;
34
+ };
35
+ /** The same conversation card in the console and embedded clients. Setup
36
+ * content owns the provider flow; this frame owns identity and protected focus. */
37
+ export declare function SessionCapabilityFrame({ name, subtitle, logo, typeLabel, description, skill, expanded, complete, completeLabel, actionLabel, opensDialog, note, onOpen, onClose, busy, opener, cardRef, children, dialogOnly, actionUnavailable, details, inlineSetup, }: SessionCapabilityFrameProps): import("react").JSX.Element;
@@ -25,19 +25,29 @@
25
25
  *
26
26
  * Inbox and queue stay separate segments. Queue hover actions wire to
27
27
  * `UseTurnQueueResult` (`editTurn` / `steerTurn` / `moveTurn` / `removeTurn`).
28
+ * The collapsed queue chip previews the latest queued message beside its Steer
29
+ * action; open queue rows keep Steer visible and reveal the rest on hover.
28
30
  * Inbox has no product dismiss API; pass `onDismissIncoming` when the host
29
31
  * wants a visible action (dev harness may use a local dummy).
30
32
  *
33
+ * Queue opens by default when chrome is idle and at least one authoritative
34
+ * prompt is queued. Closing the queue dismisses that session's offer until
35
+ * occupancy drains; a different session on the same chrome instance may
36
+ * offer again. An in-flight optimistic Send never opens the drawer —
37
+ * admission stays a paint-only receipt on the chip so layout does not jump
38
+ * under the pointer.
39
+ *
31
40
  * Segment switches keep the panel shell mounted and crossfade content. The
32
41
  * shell uses one CSS grid-track transition for deliberate open/close actions;
33
42
  * live queue reconciliation never feeds measurements back into layout.
34
43
  */
35
- import type { SessionGoal } from "@opengeni/sdk";
44
+ import type { SessionGoal, SessionStatus } from "@opengeni/sdk";
36
45
  import { type ReactNode } from "react";
37
- import type { ComposerState } from "../hooks/use-composer.js";
46
+ import type { ComposerOptimisticMessage, ComposerState } from "../hooks/use-composer.js";
38
47
  import type { UseGoalResult } from "../hooks/use-goal.js";
39
48
  import type { UseTurnQueueResult } from "../hooks/use-turn-queue.js";
40
- export type SessionChromeSignalId = "incoming" | "steering" | "queue" | "goal" | "agents";
49
+ import { countAuthoritativeQueuedTurns } from "../queue-presentation-model.js";
50
+ export type SessionChromeSignalId = "incoming" | "steering" | "queue" | "goal" | "agents" | "commands";
41
51
  export type SessionChromeSignalTone = "neutral" | "accent" | "waiting" | "running";
42
52
  export type SessionChromeAgentsSignal = {
43
53
  count: number;
@@ -45,12 +55,27 @@ export type SessionChromeAgentsSignal = {
45
55
  tone?: SessionChromeSignalTone | undefined;
46
56
  };
47
57
  export type SessionChromeProps = {
58
+ /** Authoritative execution status; omitted by older embedding hosts. */
59
+ sessionStatus?: SessionStatus | undefined;
48
60
  queue: UseTurnQueueResult;
61
+ /** Open and focus an existing queued prompt without changing its delivery. */
62
+ queueFocusTarget?: {
63
+ turnId: string;
64
+ requestId: number;
65
+ } | undefined;
49
66
  /** Needed for queue edit → composer checkout. Omit with `readOnly`. */
50
67
  composer?: ComposerState | undefined;
68
+ /** Focus the composer after a successful queue checkout has applied its draft.
69
+ * Connect to the composer controller's `focusInput`, or a custom input ref.
70
+ * Never called for failed checkout or while replacement awaits confirmation.
71
+ */
72
+ onComposerFocus?: (() => void) | undefined;
51
73
  goal?: UseGoalResult | null | undefined;
52
74
  /** Expanded agents body (host supplies tree / list). */
53
75
  agentsPanel?: ReactNode;
76
+ /** Active commands only. The host mounts the body only when opened. */
77
+ commandsPanel?: ReactNode;
78
+ commandsCount?: number | undefined;
54
79
  /** Chip summary; when `count > 0` the agents segment appears. */
55
80
  agentsSignal?: SessionChromeAgentsSignal | undefined;
56
81
  /**
@@ -58,6 +83,8 @@ export type SessionChromeProps = {
58
83
  * (and the gallery) may still pass a handler so the action is visible.
59
84
  */
60
85
  onDismissIncoming?: ((inputId: string) => void) | undefined;
86
+ /** Open a typed child update's source through the host's normal authorized route. */
87
+ onOpenSession?: ((sessionId: string) => void) | undefined;
61
88
  readOnly?: boolean | undefined;
62
89
  className?: string | undefined;
63
90
  /** Controlled active segment; omit for uncontrolled. */
@@ -65,19 +92,41 @@ export type SessionChromeProps = {
65
92
  defaultActive?: SessionChromeSignalId | null | undefined;
66
93
  onActiveChange?: ((next: SessionChromeSignalId | null) => void) | undefined;
67
94
  };
68
- type GoalPillState = "pursuing" | "waiting" | "scheduled" | "blocked" | "held" | "paused" | "invariant_broken" | "completed";
95
+ type GoalPillState = "pursuing" | "waiting" | "scheduled" | "session_failed" | "blocked" | "held" | "paused" | "invariant_broken" | "completed";
69
96
  type GoalPillRecord = Pick<SessionGoal, "status" | "pausedReason"> & {
97
+ rationale?: SessionGoal["rationale"];
70
98
  continuation?: SessionGoal["continuation"] | null | undefined;
71
99
  };
72
100
  /** Pill label, with the pause reason spelled out: "Paused · cap" / "Paused · manually". */
73
101
  export declare function sessionChromeGoalPillLabel(state: GoalPillState, record: GoalPillRecord | null | undefined): string;
74
102
  /**
75
103
  * One human sentence explaining WHY the goal is not pursuing right now: the
76
- * pause reason, the agent's own `goal_wait` hold (reason + deadline), or the
104
+ * pause reason, the agent's own `wait_for_input` hold (reason + deadline), or the
77
105
  * next idle-backoff check time. Null when the state needs no explanation.
78
106
  */
79
107
  export declare function sessionChromeGoalPillExplanation(state: GoalPillState, record: GoalPillRecord | null | undefined): string | null;
108
+ export { countAuthoritativeQueuedTurns };
109
+ export declare function countOptimisticQueuedMessages(messages: readonly ComposerOptimisticMessage[] | undefined, queuedTurnIds: ReadonlySet<string>, snapshot: UseTurnQueueResult["snapshot"]): number;
110
+ /**
111
+ * First uncontrolled segment. An existing authoritative queue opens itself
112
+ * when the host did not pick another default; optimistic-only occupancy
113
+ * stays collapsed so a live Send does not shove a drawer under the pointer.
114
+ */
115
+ export declare function sessionChromeInitialActive(input: {
116
+ defaultActive: SessionChromeSignalId | null;
117
+ authoritativeQueuedCount: number;
118
+ }): SessionChromeSignalId | null;
119
+ /**
120
+ * Whether idle chrome should offer the queue panel. A dismissed session
121
+ * stays collapsed until occupancy drains. Controlled hosts own this.
122
+ */
123
+ export declare function sessionChromeShouldOfferQueue(input: {
124
+ controlled: boolean;
125
+ active: SessionChromeSignalId | null;
126
+ activityOpen: boolean;
127
+ authoritativeQueuedCount: number;
128
+ suppressed: boolean;
129
+ }): boolean;
80
130
  /** Select pill state from the goal's authoritative continuation projection. */
81
- export declare function sessionChromeGoalPillState(goalStatus: "active" | "paused" | "completed", continuation: SessionGoal["continuation"] | null | undefined): GoalPillState;
82
- export declare function SessionChrome({ queue, composer, goal, agentsPanel, agentsSignal, onDismissIncoming, readOnly, className, active: activeControlled, defaultActive, onActiveChange, }: SessionChromeProps): import("react").JSX.Element | null;
83
- export {};
131
+ export declare function sessionChromeGoalPillState(goalStatus: "active" | "paused" | "completed", continuation: SessionGoal["continuation"] | null | undefined, sessionStatus?: SessionStatus): GoalPillState;
132
+ export declare function SessionChrome({ sessionStatus, queue, queueFocusTarget, composer, onComposerFocus, goal, agentsPanel, commandsPanel, commandsCount, agentsSignal, onDismissIncoming, onOpenSession, readOnly, className, active: activeControlled, defaultActive, onActiveChange, }: SessionChromeProps): import("react").JSX.Element | null;
@@ -0,0 +1,6 @@
1
+ import type { UseSessionBackgroundCommandsResult } from "../hooks/use-session-background-commands.js";
2
+ /** The current session's live commands. Settled commands belong to the timeline. */
3
+ export declare function SessionCommandsPanel({ commands: state, readOnly, }: {
4
+ commands: UseSessionBackgroundCommandsResult;
5
+ readOnly?: boolean;
6
+ }): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { type UseSessionBackgroundCommandsOptions } from "../hooks/use-session-background-commands.js";
2
+ /** Mount in the open activity panel so closed chrome never polls commands. */
3
+ export declare function SessionCommands({ sessionId, readOnly, ...options }: UseSessionBackgroundCommandsOptions & {
4
+ sessionId: string;
5
+ readOnly?: boolean;
6
+ }): import("react").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import type { AuthNeededItem } from "../timeline/types.js";
2
+ import { type SessionMcpCapabilityCardProps } from "./session-mcp-capability-card.js";
3
+ export type SessionConnectionRequestProps = Omit<SessionMcpCapabilityCardProps, "capabilityId" | "name" | "rationale"> & {
4
+ request: AuthNeededItem;
5
+ };
6
+ /** Resolve native reauthorization notices with the same exact-identity rules
7
+ * as the console. Recommendations never supply endpoints or account authority. */
8
+ export declare function SessionConnectionRequest(props: SessionConnectionRequestProps): import("react").JSX.Element;
@@ -0,0 +1,157 @@
1
+ import { type ClientVoiceInputConfig } from "@opengeni/sdk";
2
+ import { type ComponentProps, type CSSProperties } from "react";
3
+ import type { ClientOverride } from "../session-context.js";
4
+ import { type ModelPolicyPickerProps } from "./model-policy-picker.js";
5
+ import { type SessionConversationController, type UseSessionConversationOptions } from "../hooks/use-session-conversation.js";
6
+ import type { SessionRealtimeControl } from "../realtime/realtime-control.js";
7
+ import { type GenieLoadingOptions } from "../timeline/genie-loading.js";
8
+ import { ApprovalSurface } from "./approval-surface.js";
9
+ import { type ChatComposerProps } from "./chat-composer.js";
10
+ import type { ComposerTranscriptionControlProps } from "./composer-transcription-control.js";
11
+ import { type SessionChromeProps } from "./session-chrome.js";
12
+ import { type HumanInputSurfaceProps } from "./human-input-surface.js";
13
+ import { type MessageTimelineProps } from "./message-timeline.js";
14
+ import { type OpenGeniLinkResolver, type OpenGeniViewerTarget } from "./open-geni-links.js";
15
+ import type { UserMessageDisclosureLabels } from "./user-message-body.js";
16
+ import { type SessionProxyBaseUrl } from "./session-proxy-scope.js";
17
+ import { type HostSurfacePreference, type HostThemePreference } from "../lib/host-theme.js";
18
+ export type SessionConversationLabels = {
19
+ /** Banner action after a refresh failure; the conversation stays mounted. */
20
+ retry: string;
21
+ /** Action when the conversation could not load at all. */
22
+ tryAgain: string;
23
+ /** Shown in place of a Site preview when the session proxy does not serve Sites. */
24
+ sitePreviewUnavailable: string;
25
+ };
26
+ export type SessionConversationProps = ClientOverride & SessionProxyBaseUrl & {
27
+ sessionId: string;
28
+ /** Host-owned artifact links, previews and other message presentation. */
29
+ renderMessageText?: MessageTimelineProps["renderMessageText"];
30
+ /**
31
+ * Open Opengeni object links in agent replies (`artifact:`, `sandbox:`,
32
+ * editable artifacts, Sites). Asked first; by default retained files and
33
+ * sandbox files download only when the proxy explicitly enables them, while
34
+ * editable artifacts and Sites stay unavailable until the host resolves them.
35
+ */
36
+ resolveLink?: OpenGeniLinkResolver | undefined;
37
+ /**
38
+ * Open agent links to editable artifacts and Sites in a host viewer, for
39
+ * example `SessionArtifactViewer` mounted beside the conversation. Asked
40
+ * after `resolveLink`.
41
+ */
42
+ onOpenArtifact?: ((target: OpenGeniViewerTarget) => void) | undefined;
43
+ /**
44
+ * Open another session the conversation points at: a sub-agent's chat from
45
+ * its worker card or a child update. `OpenGeniChat` opens it in place;
46
+ * without it those entries are not links.
47
+ */
48
+ onOpenSession?: ((sessionId: string) => void) | undefined;
49
+ /**
50
+ * Current title for a session id, used to name the agents this
51
+ * conversation spawns, messages, and hears from. Without it, agents keep
52
+ * the title they were spawned with, or generic labels.
53
+ */
54
+ resolveSessionTitle?: ((sessionId: string) => string | null | undefined) | undefined;
55
+ /**
56
+ * Inline previews for assistant `opengeni-site` / `opengeni-html` fences.
57
+ * Defaults to the Opengeni preview. Behind a session proxy without its
58
+ * `artifacts` option, Sites show as unavailable without a request; `false`
59
+ * shows the fence as code.
60
+ */
61
+ renderInteractiveBlock?: MessageTimelineProps["renderInteractiveBlock"] | false;
62
+ /** Product-specific tool-call renderers; defaults to the built-in registry. */
63
+ toolRegistry?: MessageTimelineProps["toolRegistry"];
64
+ /** Host presentation without replacing native history, navigation or annotations. */
65
+ timelineProps?: Pick<MessageTimelineProps, "turnSummary" | "renderAuthNeeded" | "emptyState" | "renderMessageSender"> | undefined;
66
+ /**
67
+ * Replace the "usage limit reached" row for an `allowance_exhausted`
68
+ * refusal, for example to link your own plan or admin page.
69
+ */
70
+ renderAllowanceExhausted?: MessageTimelineProps["renderAllowanceExhausted"];
71
+ /** Replace the words of the default "usage limit reached" row. */
72
+ allowanceExhaustedLabels?: MessageTimelineProps["allowanceExhaustedLabels"];
73
+ /**
74
+ * File attachments in the composer. Defaults to true; the attach control
75
+ * appears only when the deployment's client config enables file uploads.
76
+ * A session proxy reports them off when `files` is false and for anonymous
77
+ * visitors (`visitor: true` from `resolve`) unless it sets `visitorUploads`.
78
+ */
79
+ attachments?: boolean | undefined;
80
+ /**
81
+ * Composer microphone (dictation into the draft). Defaults to true; it
82
+ * appears only when the client config reports voice input available
83
+ * (`createSessionProxyHandler({ voiceInput: false })` turns it off).
84
+ */
85
+ voiceInput?: boolean | undefined;
86
+ /**
87
+ * Live speech-to-speech voice in the composer. Opt-in: a call spends the
88
+ * workspace's credits and asks for the microphone, so it is off unless this
89
+ * is `true` or the client config reports `realtimeVoice: true`
90
+ * (`createSessionProxyHandler({ realtimeVoice: true })`). The button then
91
+ * appears only when the workspace offers an available voice model and the
92
+ * proxy has not turned voice off (`realtimeVoice: false`).
93
+ */
94
+ realtimeVoice?: boolean | undefined;
95
+ /** Optional connection/voice handoff; the stock control owns call lifecycle and admission. */
96
+ realtimeVoiceProps?: Partial<Pick<ComponentProps<typeof SessionRealtimeControl>, "codexConnected" | "realtimeAutostartModel" | "onRealtimeAutostartConsumed" | "onVoiceActiveChange" | "modelMenu">> | undefined;
97
+ /**
98
+ * Copy and visual for the "working" indicator before the first reply.
99
+ * Defaults to neutral copy ("Thinking…"); omitted fields keep those
100
+ * defaults. See `MessageTimeline`'s `genieLoading`.
101
+ */
102
+ genieLoading?: GenieLoadingOptions | undefined;
103
+ /**
104
+ * Show the model/reasoning picker. End users of an embedded product rarely
105
+ * choose models, so it is hidden unless this is `true` or the client config
106
+ * reports `modelSelection: true` (`createSessionProxyHandler({ modelSelection: true })`).
107
+ */
108
+ modelPicker?: boolean | undefined;
109
+ /** Model-picker appearance only; visibility, policy and delivery remain owned here. */
110
+ modelPickerProps?: Pick<ModelPolicyPickerProps, "groupPresentation" | "messages"> | undefined;
111
+ /** Localized actions for already-sent user-message disclosure. */
112
+ userMessageDisclosureLabels?: UserMessageDisclosureLabels | undefined;
113
+ loadSkillReview?: HumanInputSurfaceProps["loadSkillReview"];
114
+ className?: string;
115
+ /** Defaults to filling the host. The host owns available height. */
116
+ height?: CSSProperties["height"];
117
+ /**
118
+ * Light or dark. Defaults to `auto`: follow the host page (an enclosing
119
+ * `data-og-theme`, `class="dark"`/`data-theme` on <html> or <body>, the
120
+ * host's `color-scheme`, then its background), not the OS setting alone.
121
+ */
122
+ theme?: HostThemePreference | undefined;
123
+ /**
124
+ * `host` (default) derives backgrounds and cards from the host background so
125
+ * the conversation blends in; `theme` uses the `--og-color-*` surface tokens
126
+ * as they are. Customized surface tokens are always kept.
127
+ */
128
+ surface?: HostSurfacePreference | undefined;
129
+ /** Conversation-owned copy (error actions). */
130
+ labels?: Partial<SessionConversationLabels> | undefined;
131
+ /** Presentation/custom controls only; queue and delivery wiring stay owned here. */
132
+ composerProps?: Omit<ChatComposerProps, "composer" | "effectiveControl" | "queuedAheadCount" | "attachments">;
133
+ /** Optional host context and notifications; stock delivery remains authoritative. */
134
+ composerOptions?: UseSessionConversationOptions["composerOptions"];
135
+ /** Extra status panels without replacing stock queue/goal behavior. */
136
+ chromeProps?: Omit<SessionChromeProps, "queue" | "composer" | "goal" | "sessionStatus" | "readOnly" | "onComposerFocus">;
137
+ /** Localized questions and presentation; responses remain stock. */
138
+ humanInputProps?: Pick<HumanInputSurfaceProps, "messages" | "autoFocus" | "decisionButtons" | "allowedSaveTo" | "className">;
139
+ /** Product approval presentation; permission decisions remain stock. */
140
+ approvalProps?: Omit<ComponentProps<typeof ApprovalSurface>, "approvals" | "onApprove" | "onReject" | "responding" | "error">;
141
+ };
142
+ export type SessionConversationViewProps = Omit<SessionConversationProps, "sessionId" | "client" | "workspaceId" | "baseUrl" | "headers" | "fetch" | "attachments" | "modelPicker" | "composerOptions"> & {
143
+ conversation: SessionConversationController;
144
+ };
145
+ /** Complete existing-session conversation. Uses the provider's normal SDK client
146
+ * (including Site clients), one shared event feed, and authoritative queue state.
147
+ * `<SessionConversation baseUrl="/api/opengeni" sessionId={id} />` needs no
148
+ * provider: it talks to your session proxy and its resolved workspace. */
149
+ export declare function SessionConversation({ baseUrl, headers, fetch, ...props }: SessionConversationProps): import("react").JSX.Element;
150
+ /** Stock view for a controller mounted in a stable host. No second event feed or draft. */
151
+ export declare function SessionConversationView(props: SessionConversationViewProps): import("react").JSX.Element;
152
+ /**
153
+ * The composer microphone: shown when the deployment can transcribe, enabled
154
+ * once the workspace's voice-input setting allows it.
155
+ */
156
+ export declare function useComposerTranscription(client: unknown, workspaceId: string, capability: ClientVoiceInputConfig | null): ComposerTranscriptionControlProps | null;
157
+ export { useClientConfigFlags } from "../hooks/use-client-config-flags.js";
@@ -0,0 +1,39 @@
1
+ import { type ClientOverride } from "../session-context.js";
2
+ export type SessionListLabels = {
3
+ heading: string;
4
+ newChat: string;
5
+ empty: string;
6
+ loading: string;
7
+ loadMore: string;
8
+ rename: string;
9
+ archive: string;
10
+ save: string;
11
+ cancel: string;
12
+ };
13
+ export type SessionListProps = ClientOverride & {
14
+ selectedSessionId?: string | null | undefined;
15
+ onSelect: (sessionId: string) => void;
16
+ /** Shown as a "New chat" button when provided. */
17
+ onNewChat?: (() => void) | undefined;
18
+ /** Allow inline rename (`updateSession`). Defaults to true. */
19
+ rename?: boolean | undefined;
20
+ /**
21
+ * Allow archiving (`updateSessionArchive`). Defaults to true; hidden when the
22
+ * session proxy reports archive disabled (`archive: false`).
23
+ */
24
+ archive?: boolean | undefined;
25
+ /** Called after the selected chat was archived, so the host can move on. */
26
+ onArchived?: ((sessionId: string) => void) | undefined;
27
+ pageSize?: number | undefined;
28
+ /** Change the reference to force a refetch (for example after creating a chat). */
29
+ refreshKey?: unknown;
30
+ labels?: Partial<SessionListLabels> | undefined;
31
+ className?: string | undefined;
32
+ };
33
+ /**
34
+ * The workspace's root chats for the current user, newest activity first.
35
+ * Through `createSessionProxyHandler` the list is limited to the chats the
36
+ * resolved user created (or everything they may read, with `sessionList:
37
+ * "visible"`); Opengeni enforces visibility either way.
38
+ */
39
+ export declare function SessionList({ client, workspaceId, selectedSessionId, onSelect, onNewChat, rename, archive, onArchived, pageSize, refreshKey, labels: labelOverrides, className, }: SessionListProps): import("react").JSX.Element;
@@ -0,0 +1,41 @@
1
+ import type { OpenGeniBrowserClient as OpenGeniClient } from "@opengeni/sdk/browser";
2
+ export type SessionMcpCapabilityCardProps = {
3
+ client: OpenGeniClient;
4
+ workspaceId: string;
5
+ sessionId: string;
6
+ capabilityId: string;
7
+ name: string;
8
+ rationale?: string;
9
+ /** Exact host route; no console-specific routing is assumed. */
10
+ returnUrl: string;
11
+ onConfigured?: (() => void | Promise<void>) | undefined;
12
+ };
13
+ export type McpConnectionCardProps = Omit<SessionMcpCapabilityCardProps, "sessionId"> & {
14
+ /** Omit for connection management: no session tool selection is written. */
15
+ sessionId?: string;
16
+ dialogOnly?: boolean;
17
+ onClose?: (() => void) | undefined;
18
+ /**
19
+ * The provider only ever connects someone's own account (official Gmail,
20
+ * Slack's hosted MCP): no ownership choice, always personal.
21
+ */
22
+ personalOnly?: boolean;
23
+ /** The connect button's words, "Connect Gmail". Defaults to "Continue to <name>". */
24
+ connectLabel?: string;
25
+ /** The line under the dialog title. Defaults to the kind and provider domain. */
26
+ dialogSubtitle?: string;
27
+ /** The host's product copy for this connection, instead of the catalog description. */
28
+ description?: string;
29
+ /** The host's logo for this connection, when the catalog has no asset. */
30
+ logoSrc?: string | null;
31
+ /** The host's words for the ownership choice. */
32
+ ownershipCopy?: {
33
+ legend: string;
34
+ workspace: string;
35
+ personal: string;
36
+ };
37
+ };
38
+ /** Native OAuth recommendation flow. Identity and endpoint come from the live
39
+ * catalog, never from model-authored recommendation text. */
40
+ export declare function SessionMcpCapabilityCard(props: SessionMcpCapabilityCardProps): import("react").JSX.Element;
41
+ export declare function McpConnectionCard(props: McpConnectionCardProps): import("react").JSX.Element;
@@ -0,0 +1,35 @@
1
+ import { type FetchLike } from "@opengeni/sdk/browser";
2
+ import { type ReactNode } from "react";
3
+ import type { SessionClientLike } from "../client.js";
4
+ /** Request headers for every proxy call: static, or computed per request. */
5
+ export type SessionProxyHeaders = Record<string, string> | (() => Record<string, string>);
6
+ export type SessionProxyBaseUrl = {
7
+ /**
8
+ * Mount path of your `createSessionProxyHandler` (for example
9
+ * `"/api/opengeni"`). The component then needs no `OpenGeniProvider`,
10
+ * client, or workspace id: it creates the browser client for that path and
11
+ * uses the workspace the proxy resolved for the signed-in user. An explicit
12
+ * `workspaceId` skips that lookup. A `client` you pass is used instead of
13
+ * the created one (point it at the same proxy).
14
+ */
15
+ baseUrl?: string | undefined;
16
+ /**
17
+ * `baseUrl` mode: headers added to every proxy request, for hosts that
18
+ * authenticate with a bearer token instead of cookies. A function is called
19
+ * per request, so it can return the current token.
20
+ */
21
+ headers?: SessionProxyHeaders | undefined;
22
+ /** `baseUrl` mode: custom fetch for every proxy request (async auth, retries). */
23
+ fetch?: FetchLike | undefined;
24
+ };
25
+ /**
26
+ * `OpenGeniProvider` for a same-origin session proxy, from its base URL alone.
27
+ * The proxy's client config names the resolved workspace, so the browser
28
+ * never handles an Opengeni id. Provider-based usage is unchanged.
29
+ */
30
+ export declare function SessionProxyScope({ baseUrl, workspaceId, client: suppliedClient, headers, fetch, children, }: Omit<SessionProxyBaseUrl, "baseUrl"> & {
31
+ baseUrl: string;
32
+ workspaceId?: string | undefined;
33
+ client?: SessionClientLike | undefined;
34
+ children: ReactNode;
35
+ }): import("react").JSX.Element;
@@ -1,4 +1,6 @@
1
- import type { SessionStatus as SessionStatusValue } from "@opengeni/sdk";
1
+ import { type SessionDisplayStatus } from "../session-status-model.js";
2
+ /** A server status, or the display-only `blocked` (see `sessionDisplayStatus`). */
3
+ type SessionStatusValue = SessionDisplayStatus;
2
4
  export type SessionStatusMeta = {
3
5
  label: string;
4
6
  /** Token-backed color classes for the dot and tinted badge. */
@@ -23,3 +25,4 @@ export type StatusDotProps = {
23
25
  };
24
26
  /** Just the dot — for dense rows and tiles. */
25
27
  export declare function StatusDot({ status, className }: StatusDotProps): import("react").JSX.Element;
28
+ export {};