@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
@@ -1,15 +1,54 @@
1
+ "use client";
1
2
  import {
2
3
  useSessionEventTrigger
3
- } from "./chunk-KZ73RL76.js";
4
+ } from "./chunk-QHUE7E4N.js";
5
+ import {
6
+ normalizeError,
7
+ useErrorMessage
8
+ } from "./chunk-CM7LVUKC.js";
4
9
  import {
5
10
  useEmbeddedSession
6
- } from "./chunk-NEXLLTP4.js";
11
+ } from "./chunk-G76LSA76.js";
12
+ import {
13
+ COMPOSER_MODEL_UNAVAILABLE_MESSAGE,
14
+ ComposerReconciliationRequiredError,
15
+ ComposerStateError,
16
+ ComposerWorkspaceControlUnavailableError,
17
+ composerSubmissionCanRetry,
18
+ composerSubmissionErrorMessage
19
+ } from "./chunk-BLL56F7R.js";
7
20
 
8
21
  // src/hooks/use-composer.ts
9
22
  import {
10
- DEFAULT_FILE_RESOURCE_MOUNT_ROOT
23
+ DEFAULT_FILE_RESOURCE_MOUNT_ROOT,
24
+ OpenGeniApiError
11
25
  } from "@opengeni/sdk";
12
26
  import { useCallback, useEffect, useLayoutEffect, useRef, useState } from "react";
27
+
28
+ // src/lib/notify-observer.ts
29
+ function notifyObserver(observer, ...args) {
30
+ const report = (cause) => globalThis.reportError?.(cause);
31
+ try {
32
+ const result = observer?.(...args);
33
+ if (result && typeof result.then === "function") {
34
+ void Promise.resolve(result).catch(report);
35
+ }
36
+ } catch (cause) {
37
+ report(cause);
38
+ }
39
+ }
40
+
41
+ // src/hooks/use-composer.ts
42
+ function initialComposerShadow(seed) {
43
+ if (!seed || !seed.text && !seed.resources?.length && !seed.annotations?.length && !seed.policy)
44
+ return void 0;
45
+ return {
46
+ text: seed.text,
47
+ resources: [...seed.resources ?? []],
48
+ annotations: cloneAnnotations(seed.annotations ?? []),
49
+ ...seed.policy ? { policy: { ...seed.policy } } : {}
50
+ };
51
+ }
13
52
  var PENDING_COMPOSER_STORAGE_PREFIX = "opengeni.pending-composer.v1:";
14
53
  var OPTIMISTIC_SEND_STORAGE_PREFIX = "opengeni.optimistic-sends.v1:";
15
54
  var pendingComposerOperations = /* @__PURE__ */ new Map();
@@ -51,11 +90,23 @@ function restoreOptimisticSendOperations(key) {
51
90
  newerShadow: operation.newerShadow ?? { text: "", resources: [], annotations: [] },
52
91
  state: operation.state === "sending" || operation.state === "queued" ? "sending" : operation.state,
53
92
  outcomeUnknown: operation.state === "sending" || operation.state === "queued" ? true : operation.outcomeUnknown,
54
- error: operation.state === "sending" ? "Delivery was interrupted; retry to reconcile this message." : operation.error,
93
+ correlationId: restoredCorrelationId(operation.correlationId),
94
+ error: restoredErrorReference(
95
+ operation.correlationId,
96
+ hasMcpCredentialUpdates && (operation.state === "sending" || operation.outcomeUnknown) ? composerSubmissionErrorMessage(new ComposerReconciliationRequiredError()) : operation.state === "sending" ? "Delivery was interrupted; retry to reconcile this message." : operation.outcomeUnknown ? "The request could not be confirmed. Check its status before retrying." : operation.error ? composerSubmissionErrorMessage(new Error(operation.error)) : void 0
97
+ ),
98
+ retryable: operation.state === "sending" || operation.outcomeUnknown ? true : operation.retryable ?? (operation.error ? composerSubmissionCanRetry(new Error(operation.error)) : true),
55
99
  input: operation.input,
56
100
  canRetry: !hasMcpCredentialUpdates
57
101
  }));
58
102
  }
103
+ function restoredCorrelationId(value) {
104
+ return typeof value === "string" && /^[\w.:-]{1,128}$/u.test(value) ? value : void 0;
105
+ }
106
+ function restoredErrorReference(reference, message) {
107
+ const correlationId = restoredCorrelationId(reference);
108
+ return message && correlationId && message !== COMPOSER_MODEL_UNAVAILABLE_MESSAGE ? `${message} Reference: ${correlationId}.` : message;
109
+ }
59
110
  function rememberOptimisticSendOperations(key, operations) {
60
111
  if (!key) return;
61
112
  const stored = operations.filter((operation) => operation.state !== "queued").map((operation) => {
@@ -241,10 +292,13 @@ function reconcileOptimisticSendFromEvents(operation, events) {
241
292
  );
242
293
  const triggerEventId = operation.triggerEventId ?? accepted?.id ?? null;
243
294
  const turnId = operation.turnId ?? promptTurnIdForTrigger(triggerEventId, events);
244
- const needsAdmissionUpdate = accepted !== void 0 && (operation.state !== "queued" || operation.triggerEventId !== triggerEventId || operation.turnId !== turnId || operation.error !== void 0 || operation.outcomeUnknown !== false);
295
+ const acceptedRouting = promptRoutingFromAcceptedEvent(accepted ?? null);
296
+ const destination = acceptedRouting === "queued_for_execution" ? "queue" : acceptedRouting === "accepted_for_execution" || acceptedRouting === "accepted_for_steering" ? "chat" : operation.destination;
297
+ const needsAdmissionUpdate = accepted !== void 0 && (operation.state !== "queued" || operation.destination !== destination || operation.triggerEventId !== triggerEventId || operation.turnId !== turnId || operation.error !== void 0 || operation.outcomeUnknown !== false);
245
298
  const reconciled = needsAdmissionUpdate ? {
246
299
  ...operation,
247
300
  state: "queued",
301
+ destination,
248
302
  triggerEventId,
249
303
  turnId,
250
304
  error: void 0,
@@ -278,6 +332,7 @@ function reconcileOptimisticSendFromEvents(operation, events) {
278
332
  }
279
333
  function useComposer(sessionId, options = {}) {
280
334
  const { client, workspaceId, registerSessionReconciler } = useEmbeddedSession(options);
335
+ const formatError = useErrorMessage();
281
336
  const durableDrafts = options.draftPersistence !== "disabled";
282
337
  if (!durableDrafts && !options.initialPolicy) {
283
338
  throw new Error("useComposer requires initialPolicy when draft persistence is disabled");
@@ -286,7 +341,7 @@ function useComposer(sessionId, options = {}) {
286
341
  const pendingOperationKey = pendingComposerOperationKey(workspaceId, sessionId);
287
342
  const initialPendingOperation = restorePendingComposerOperation(pendingOperationKey);
288
343
  const initialOptimisticSends = restoreOptimisticSendOperations(pendingOperationKey);
289
- const initialShadow = initialPendingOperation?.newerShadow ?? initialOptimisticSends.at(-1)?.newerShadow;
344
+ const initialShadow = initialPendingOperation?.newerShadow ?? initialOptimisticSends.at(-1)?.newerShadow ?? initialComposerShadow(options.initialDraft);
290
345
  const [value, setValue] = useState(() => initialShadow?.text ?? "");
291
346
  const [annotations, setAnnotations] = useState(
292
347
  () => initialShadow?.annotations ?? []
@@ -310,6 +365,7 @@ function useComposer(sessionId, options = {}) {
310
365
  const [acceptedControl, setAcceptedControl] = useState(null);
311
366
  const [resuming, setResuming] = useState(false);
312
367
  const [error, setError] = useState(null);
368
+ const [draftReadError, setDraftReadError] = useState(null);
313
369
  const [draft, setDraft] = useState(null);
314
370
  const [draftLoading, setDraftLoading] = useState(Boolean(sessionId) && durableDrafts);
315
371
  const [draftSaving, setDraftSaving] = useState(false);
@@ -341,11 +397,22 @@ function useComposer(sessionId, options = {}) {
341
397
  const targetGeneration = useRef(0);
342
398
  const draftReadGeneration = useRef(0);
343
399
  const draftReadInFlightRef = useRef(null);
400
+ const draftReadAbortRef = useRef(null);
344
401
  const draftReadRetryRef = useRef({ targetKey, failures: 0, timer: null });
345
402
  const lastSavedSignature = useRef(null);
346
403
  const saveChain = useRef(Promise.resolve());
347
- const onSent = options.onSent;
348
- const onSubmitted = options.onSubmitted;
404
+ const onSent = useCallback(
405
+ (text, input) => {
406
+ notifyObserver(options.onSent, text, input);
407
+ },
408
+ [options.onSent]
409
+ );
410
+ const onSubmitted = useCallback(
411
+ (text, input) => {
412
+ notifyObserver(options.onSubmitted, text, input);
413
+ },
414
+ [options.onSubmitted]
415
+ );
349
416
  const onDeliveryErrorRef = useRef(options.onDeliveryError);
350
417
  onDeliveryErrorRef.current = options.onDeliveryError;
351
418
  useLayoutEffect(() => {
@@ -368,6 +435,8 @@ function useComposer(sessionId, options = {}) {
368
435
  if (draftReadRetryRef.current.timer !== null) {
369
436
  clearTimeout(draftReadRetryRef.current.timer);
370
437
  }
438
+ draftReadAbortRef.current?.abort();
439
+ draftReadAbortRef.current = null;
371
440
  draftReadRetryRef.current = { targetKey, failures: 0, timer: null };
372
441
  targetKeyRef.current = targetKey;
373
442
  targetGeneration.current += 1;
@@ -379,7 +448,7 @@ function useComposer(sessionId, options = {}) {
379
448
  optimisticCallbackIdsRef.current = /* @__PURE__ */ new Set();
380
449
  steeringSettlementEventsRef.current = [];
381
450
  pendingClientEventId.current = pendingOperationRef.current?.input.clientEventId ?? null;
382
- const shadow = pendingOperationRef.current?.newerShadow ?? restoredOptimisticSends.at(-1)?.newerShadow;
451
+ const shadow = pendingOperationRef.current?.newerShadow ?? restoredOptimisticSends.at(-1)?.newerShadow ?? initialComposerShadow(options.initialDraft);
383
452
  localEditRevision.current = shadow ? 1 : 0;
384
453
  valueRef.current = shadow?.text ?? "";
385
454
  annotationsRef.current = shadow?.annotations ?? [];
@@ -410,17 +479,30 @@ function useComposer(sessionId, options = {}) {
410
479
  setAcceptedControl(null);
411
480
  setResuming(false);
412
481
  setError(null);
482
+ setDraftReadError(null);
413
483
  setDraft(null);
414
484
  setDraftLoading(Boolean(sessionId) && durableDrafts);
415
485
  setDraftSaving(false);
416
486
  setDraftConflict(null);
417
487
  setRestoredResources(shadow?.resources ?? []);
418
- }, [durableDrafts, options.initialPolicy, pendingOperationKey, sessionId, targetKey]);
488
+ }, [
489
+ durableDrafts,
490
+ options.initialPolicy,
491
+ options.initialDraft,
492
+ pendingOperationKey,
493
+ sessionId,
494
+ targetKey
495
+ ]);
419
496
  useEffect(
420
497
  () => () => {
421
498
  if (draftReadRetryRef.current.timer !== null) {
422
499
  clearTimeout(draftReadRetryRef.current.timer);
423
500
  }
501
+ targetGeneration.current += 1;
502
+ draftReadGeneration.current += 1;
503
+ draftReadInFlightRef.current = null;
504
+ draftReadAbortRef.current?.abort();
505
+ draftReadAbortRef.current = null;
424
506
  },
425
507
  []
426
508
  );
@@ -528,6 +610,7 @@ function useComposer(sessionId, options = {}) {
528
610
  if (targetKeyRef.current !== targetKey) return;
529
611
  if (!sessionId || !durableDrafts) {
530
612
  setDraftLoading(false);
613
+ setDraftReadError(null);
531
614
  return;
532
615
  }
533
616
  let retry = draftReadRetryRef.current;
@@ -556,6 +639,9 @@ function useComposer(sessionId, options = {}) {
556
639
  draftReadInFlightRef.current = targetKey;
557
640
  const generation = targetGeneration.current;
558
641
  const readTicket = ++draftReadGeneration.current;
642
+ const requestAbort = new AbortController();
643
+ draftReadAbortRef.current?.abort();
644
+ draftReadAbortRef.current = requestAbort;
559
645
  const localAtStart = localEditRevision.current;
560
646
  const baseAtStart = draftRef.current;
561
647
  const policyAtStart = policyRef.current;
@@ -575,13 +661,16 @@ function useComposer(sessionId, options = {}) {
575
661
  setDraftLoading(true);
576
662
  }
577
663
  try {
578
- const fetched = await client.getComposerDraft(workspaceId, sessionId);
664
+ const fetched = await client.getComposerDraft(workspaceId, sessionId, {
665
+ signal: requestAbort.signal
666
+ });
579
667
  if (generation !== targetGeneration.current || targetKeyRef.current !== targetKey || readTicket !== draftReadGeneration.current) {
580
668
  return;
581
669
  }
582
670
  if (retry.timer !== null) clearTimeout(retry.timer);
583
671
  retry.failures = 0;
584
672
  retry.timer = null;
673
+ setDraftReadError(null);
585
674
  const currentRevision = draftRef.current?.revision ?? -1;
586
675
  if (replaceLocal || fetched.revision > currentRevision) {
587
676
  draftRef.current = fetched;
@@ -619,9 +708,13 @@ function useComposer(sessionId, options = {}) {
619
708
  }
620
709
  }
621
710
  } catch (cause) {
622
- if (generation === targetGeneration.current && targetKeyRef.current === targetKey && readTicket === draftReadGeneration.current) {
623
- setError(asError(cause));
624
- if (cause instanceof TypeError || cause && typeof cause === "object" && "retryable" in cause && cause.retryable === true) {
711
+ if (!requestAbort.signal.aborted && generation === targetGeneration.current && targetKeyRef.current === targetKey && readTicket === draftReadGeneration.current) {
712
+ const problem = asError(cause);
713
+ const timedOut = problem.name === "TimeoutError";
714
+ setDraftReadError(
715
+ timedOut ? new ComposerStateError("Draft sync timed out. Retrying\u2026", { cause }) : problem
716
+ );
717
+ if (timedOut || cause instanceof TypeError || cause && typeof cause === "object" && "retryable" in cause && cause.retryable === true) {
625
718
  retry.failures += 1;
626
719
  scheduleRetry();
627
720
  } else {
@@ -637,6 +730,9 @@ function useComposer(sessionId, options = {}) {
637
730
  if (draftReadInFlightRef.current === targetKey) {
638
731
  draftReadInFlightRef.current = null;
639
732
  }
733
+ if (draftReadAbortRef.current === requestAbort) {
734
+ draftReadAbortRef.current = null;
735
+ }
640
736
  }
641
737
  },
642
738
  [client, durableDrafts, sessionId, targetKey, workspaceId]
@@ -881,17 +977,23 @@ function useComposer(sessionId, options = {}) {
881
977
  optimisticProcessorBusyRef.current = true;
882
978
  void (async () => {
883
979
  let mutationFailureObserved = false;
884
- const markFailed = (problem, outcomeUnknown) => {
980
+ const markFailed = (cause, outcomeUnknown) => {
885
981
  if (targetKeyRef.current !== ownedTargetKey || targetGeneration.current !== ownedGeneration) {
886
982
  return;
887
983
  }
984
+ const problem = asError(cause);
888
985
  replaceOptimisticSends(
889
986
  (current) => current.map(
890
987
  (candidate) => candidate.clientEventId === operation.clientEventId ? {
891
988
  ...candidate,
892
989
  state: "failed",
893
- error: problem.message,
894
- outcomeUnknown
990
+ error: formatError(
991
+ cause,
992
+ outcomeUnknown && !isOutcomeUnknownError(problem) && !(problem instanceof ComposerReconciliationRequiredError) ? `The request could not be confirmed. Check its status before retrying.${problem instanceof OpenGeniApiError && problem.correlationId ? ` Reference: ${problem.correlationId}.` : ""}` : composerSubmissionErrorMessage(problem)
993
+ ),
994
+ retryable: outcomeUnknown || composerSubmissionCanRetry(problem),
995
+ outcomeUnknown,
996
+ correlationId: problem instanceof OpenGeniApiError ? problem.correlationId : candidate.correlationId
895
997
  } : candidate
896
998
  )
897
999
  );
@@ -914,7 +1016,7 @@ function useComposer(sessionId, options = {}) {
914
1016
  payloadMode: "full"
915
1017
  });
916
1018
  } catch (cause) {
917
- markFailed(asError(cause), true);
1019
+ markFailed(cause, true);
918
1020
  return;
919
1021
  }
920
1022
  const reconciled = reconcileOptimisticSendFromEvents(operation, events);
@@ -936,15 +1038,13 @@ function useComposer(sessionId, options = {}) {
936
1038
  return;
937
1039
  }
938
1040
  if (!operation.canRetry) {
939
- throw new Error(
940
- "OpenGeni cannot safely retry this uncertain request after remount; reconcile the session before sending again."
941
- );
1041
+ throw new ComposerReconciliationRequiredError();
942
1042
  }
943
1043
  }
944
1044
  let expectedDraftRevision;
945
1045
  if (durableDrafts && operation.draftPayload) {
946
1046
  if (!await persistPayload(operation.draftPayload)) {
947
- throw new Error("The message draft could not be saved before delivery.");
1047
+ throw new ComposerStateError("The message draft could not be saved before delivery.");
948
1048
  }
949
1049
  expectedDraftRevision = draftRef.current?.revision;
950
1050
  }
@@ -959,7 +1059,7 @@ function useComposer(sessionId, options = {}) {
959
1059
  let acceptedEvent = null;
960
1060
  if (durableDrafts) {
961
1061
  if (!operation.draftPayload || expectedDraftRevision === void 0) {
962
- throw new Error("The durable composer draft is not ready for delivery.");
1062
+ throw new ComposerStateError("The durable composer draft is not ready for delivery.");
963
1063
  }
964
1064
  const result = await client.submitComposerDraft(workspaceId, sessionId, {
965
1065
  text: operation.draftPayload.text,
@@ -974,7 +1074,7 @@ function useComposer(sessionId, options = {}) {
974
1074
  ...wireInput.controlEtag ? { controlEtag: wireInput.controlEtag } : {},
975
1075
  ...wireInput.modelContext ? { modelContext: wireInput.modelContext } : {},
976
1076
  ...wireInput.mcpCredentialUpdates ? { mcpCredentialUpdates: wireInput.mcpCredentialUpdates } : {},
977
- ...wireInput.connectionAuthorities ? { connectionAuthorities: wireInput.connectionAuthorities } : {},
1077
+ ...wireInput.connectionAccounts ? { connectionAccounts: wireInput.connectionAccounts } : {},
978
1078
  ...wireInput.personalResourceAttachment ? { personalResourceAttachment: wireInput.personalResourceAttachment } : {}
979
1079
  }).catch((cause) => {
980
1080
  mutationFailureObserved = true;
@@ -991,7 +1091,8 @@ function useComposer(sessionId, options = {}) {
991
1091
  if (targetKeyRef.current !== ownedTargetKey || targetGeneration.current !== ownedGeneration) {
992
1092
  return;
993
1093
  }
994
- const acceptedDestination = acceptedResult?.routing === "queued_for_execution" ? "queue" : acceptedResult?.routing === "accepted_for_execution" ? "chat" : operation.destination;
1094
+ const acceptedRouting = acceptedResult?.routing ?? promptRoutingFromAcceptedEvent(acceptedEvent);
1095
+ const acceptedDestination = acceptedRouting === "queued_for_execution" ? "queue" : acceptedRouting === "accepted_for_execution" || acceptedRouting === "accepted_for_steering" ? "chat" : operation.destination;
995
1096
  if (options.events === void 0 && acceptedDestination === "chat") {
996
1097
  markOptimisticAccepted({ ...operation, input: wireInput });
997
1098
  } else {
@@ -1022,9 +1123,9 @@ function useComposer(sessionId, options = {}) {
1022
1123
  return;
1023
1124
  }
1024
1125
  const problem = asError(cause);
1025
- onDeliveryErrorRef.current?.(problem, operation.input, "send");
1126
+ notifyObserver(onDeliveryErrorRef.current, problem, operation.input, "send");
1026
1127
  const outcomeUnknown = operation.outcomeUnknown && !mutationFailureObserved ? true : isOutcomeUnknownError(cause);
1027
- markFailed(problem, outcomeUnknown);
1128
+ markFailed(cause, outcomeUnknown);
1028
1129
  } finally {
1029
1130
  optimisticProcessorBusyRef.current = false;
1030
1131
  if (targetKeyRef.current === ownedTargetKey) {
@@ -1036,6 +1137,7 @@ function useComposer(sessionId, options = {}) {
1036
1137
  adoptDraftBase,
1037
1138
  client,
1038
1139
  durableDrafts,
1140
+ formatError,
1039
1141
  markOptimisticAccepted,
1040
1142
  loadDraft,
1041
1143
  onSent,
@@ -1160,7 +1262,7 @@ function useComposer(sessionId, options = {}) {
1160
1262
  if (durableDrafts) {
1161
1263
  const input = operation.input;
1162
1264
  if (input.expectedDraftRevision === void 0 || input.clientEventId === void 0 || input.model === void 0 || input.reasoningEffort === void 0 || input.latencyMode === void 0) {
1163
- throw new Error("The durable composer draft is not ready for delivery.");
1265
+ throw new ComposerStateError("The durable composer draft is not ready for delivery.");
1164
1266
  }
1165
1267
  const result = await client.submitComposerDraft(workspaceId, sessionId, {
1166
1268
  text: input.text,
@@ -1175,7 +1277,7 @@ function useComposer(sessionId, options = {}) {
1175
1277
  ...input.controlEtag ? { controlEtag: input.controlEtag } : {},
1176
1278
  ...input.modelContext ? { modelContext: input.modelContext } : {},
1177
1279
  ...input.mcpCredentialUpdates ? { mcpCredentialUpdates: input.mcpCredentialUpdates } : {},
1178
- ...input.connectionAuthorities ? { connectionAuthorities: input.connectionAuthorities } : {},
1280
+ ...input.connectionAccounts ? { connectionAccounts: input.connectionAccounts } : {},
1179
1281
  ...input.personalResourceAttachment ? { personalResourceAttachment: input.personalResourceAttachment } : {}
1180
1282
  });
1181
1283
  adoptDraftBase(result.draft);
@@ -1251,11 +1353,7 @@ function useComposer(sessionId, options = {}) {
1251
1353
  return true;
1252
1354
  }
1253
1355
  if (!pending.canRetry) {
1254
- setError(
1255
- new Error(
1256
- "OpenGeni cannot safely retry this uncertain request after remount; reconcile the session before sending again."
1257
- )
1258
- );
1356
+ setError(new ComposerReconciliationRequiredError());
1259
1357
  return false;
1260
1358
  }
1261
1359
  try {
@@ -1274,7 +1372,12 @@ function useComposer(sessionId, options = {}) {
1274
1372
  } catch (cause) {
1275
1373
  const problem = asError(cause);
1276
1374
  const outcomeUnknown = isOutcomeUnknownError(cause);
1277
- onDeliveryErrorRef.current?.(problem, pending.input, pending.delivery);
1375
+ notifyObserver(
1376
+ onDeliveryErrorRef.current,
1377
+ problem,
1378
+ pending.input,
1379
+ pending.delivery
1380
+ );
1278
1381
  if (!outcomeUnknown) {
1279
1382
  clearPending();
1280
1383
  keepSteering = false;
@@ -1357,7 +1460,12 @@ function useComposer(sessionId, options = {}) {
1357
1460
  });
1358
1461
  }
1359
1462
  } catch (cause) {
1360
- onDeliveryErrorRef.current?.(asError(cause), operation.input, operation.delivery);
1463
+ notifyObserver(
1464
+ onDeliveryErrorRef.current,
1465
+ asError(cause),
1466
+ operation.input,
1467
+ operation.delivery
1468
+ );
1361
1469
  if (!isOutcomeUnknownError(cause)) {
1362
1470
  clearPending();
1363
1471
  } else if (delivery === "steer") {
@@ -1500,6 +1608,7 @@ function useComposer(sessionId, options = {}) {
1500
1608
  if (operation.outcomeUnknown) {
1501
1609
  return { ...operation, state: "sending", error: void 0 };
1502
1610
  }
1611
+ if (operation.retryable === false) return operation;
1503
1612
  const nextClientEventId = generateClientEventId();
1504
1613
  const currentPersonalResourceAttachment = resolveSendExtras(
1505
1614
  sendExtrasRef.current
@@ -1525,6 +1634,7 @@ function useComposer(sessionId, options = {}) {
1525
1634
  occurredAt: (/* @__PURE__ */ new Date()).toISOString(),
1526
1635
  state: "sending",
1527
1636
  error: void 0,
1637
+ retryable: void 0,
1528
1638
  outcomeUnknown: false,
1529
1639
  canRetry: true
1530
1640
  };
@@ -1577,7 +1687,7 @@ function useComposer(sessionId, options = {}) {
1577
1687
  }
1578
1688
  } catch (cause) {
1579
1689
  if (targetKeyRef.current === ownedTargetKey && targetGeneration.current === ownedGeneration) {
1580
- setError(cause instanceof Error ? cause : new Error(String(cause)));
1690
+ setError(normalizeError(cause));
1581
1691
  }
1582
1692
  } finally {
1583
1693
  if (targetKeyRef.current === ownedTargetKey && targetGeneration.current === ownedGeneration) {
@@ -1609,7 +1719,7 @@ function useComposer(sessionId, options = {}) {
1609
1719
  }
1610
1720
  } catch (cause) {
1611
1721
  if (targetKeyRef.current === ownedTargetKey && targetGeneration.current === ownedGeneration) {
1612
- setError(cause instanceof Error ? cause : new Error(String(cause)));
1722
+ setError(normalizeError(cause));
1613
1723
  }
1614
1724
  } finally {
1615
1725
  if (targetKeyRef.current === ownedTargetKey && targetGeneration.current === ownedGeneration) {
@@ -1632,9 +1742,7 @@ function useComposer(sessionId, options = {}) {
1632
1742
  (blocker) => blocker.kind === "workspace"
1633
1743
  );
1634
1744
  if (!client.setWorkspaceInferenceState) {
1635
- throw new Error(
1636
- "@opengeni/react: workspace-scoped resume requires setWorkspaceInferenceState."
1637
- );
1745
+ throw new ComposerWorkspaceControlUnavailableError();
1638
1746
  }
1639
1747
  const clientEventId = generateClientEventId();
1640
1748
  await replayOutcomeUnknown(
@@ -1747,7 +1855,7 @@ function useComposer(sessionId, options = {}) {
1747
1855
  const addAnnotation = useCallback(
1748
1856
  (annotation) => {
1749
1857
  if (annotationsRef.current.length >= 12) {
1750
- setError(new Error("A message can include at most 12 timeline annotations."));
1858
+ setError(new ComposerStateError("A message can include at most 12 timeline annotations."));
1751
1859
  return;
1752
1860
  }
1753
1861
  const next = [...annotationsRef.current, annotation];
@@ -1774,6 +1882,19 @@ function useComposer(sessionId, options = {}) {
1774
1882
  const clearAnnotationReviewTarget = useCallback(() => {
1775
1883
  setAnnotationReviewTargetId(null);
1776
1884
  }, []);
1885
+ const requestAnnotationReview = useCallback((id) => {
1886
+ const current = annotationsRef.current;
1887
+ if (current.length === 0) {
1888
+ setAnnotationReviewTargetId(null);
1889
+ return;
1890
+ }
1891
+ if (id && current.some((annotation) => annotation.id === id)) {
1892
+ setAnnotationReviewTargetId(id);
1893
+ return;
1894
+ }
1895
+ const incomplete = current.find((annotation) => annotation.note.trim().length === 0);
1896
+ setAnnotationReviewTargetId(incomplete?.id ?? current[0].id);
1897
+ }, []);
1777
1898
  const updatePolicy = useCallback(
1778
1899
  (next) => {
1779
1900
  if (targetKeyRef.current !== targetKey) return;
@@ -1850,6 +1971,34 @@ function useComposer(sessionId, options = {}) {
1850
1971
  const extras = resolveSendExtras(sendExtrasRef.current);
1851
1972
  return valueRef.current.length > 0 || annotationsRef.current.length > 0 || restoredResourcesRef.current.length > 0 || (extras.resources?.length ?? 0) > 0 || current?.sourceTurnId !== null && current?.sourceTurnId !== void 0;
1852
1973
  }, []);
1974
+ const restoreOptimisticMessage = useCallback(
1975
+ (clientEventId) => {
1976
+ if (targetKeyRef.current !== targetKey || draftLoading || pendingOperationRef.current || hasDraftContent())
1977
+ return;
1978
+ const operation = optimisticSendsRef.current.find(
1979
+ (candidate) => candidate.clientEventId === clientEventId
1980
+ );
1981
+ if (!operation || operation.state !== "failed" || operation.outcomeUnknown) return;
1982
+ localEditRevision.current += 1;
1983
+ valueRef.current = operation.text;
1984
+ restoredResourcesRef.current = [...operation.resources];
1985
+ annotationsRef.current = cloneAnnotations(operation.annotations);
1986
+ setValue(operation.text);
1987
+ setRestoredResources(restoredResourcesRef.current);
1988
+ setAnnotations(annotationsRef.current);
1989
+ setError(null);
1990
+ setOptimisticDraftShadow({
1991
+ text: operation.text,
1992
+ resources: restoredResourcesRef.current,
1993
+ annotations: annotationsRef.current,
1994
+ policy: policyRef.current ?? void 0
1995
+ });
1996
+ replaceOptimisticSends(
1997
+ (current) => current.filter((candidate) => candidate.clientEventId !== clientEventId)
1998
+ );
1999
+ },
2000
+ [draftLoading, hasDraftContent, replaceOptimisticSends, setOptimisticDraftShadow, targetKey]
2001
+ );
1853
2002
  const resolveDraftConflict = useCallback(
1854
2003
  async (choice) => {
1855
2004
  const ownedTargetKey = targetKey;
@@ -1909,6 +2058,7 @@ function useComposer(sessionId, options = {}) {
1909
2058
  const clearError = useCallback(() => {
1910
2059
  if (targetKeyRef.current !== targetKey) return;
1911
2060
  setError(null);
2061
+ setDraftReadError(null);
1912
2062
  setDraftConflict(null);
1913
2063
  }, [targetKey]);
1914
2064
  const visibleValue = identityMatches ? valueRef.current : "";
@@ -1921,10 +2071,12 @@ function useComposer(sessionId, options = {}) {
1921
2071
  removeAnnotation,
1922
2072
  annotationReviewTargetId: identityMatches ? annotationReviewTargetId : null,
1923
2073
  clearAnnotationReviewTarget,
2074
+ requestAnnotationReview,
1924
2075
  hasDraftContent,
1925
2076
  send,
1926
2077
  optimisticMessages: visibleOptimisticMessages,
1927
2078
  retryOptimisticMessage,
2079
+ restoreOptimisticMessage: !draftLoading && !pendingOperationRef.current && !hasDraftContent() ? restoreOptimisticMessage : void 0,
1928
2080
  removeOptimisticMessage,
1929
2081
  steer,
1930
2082
  steering: visibleSteering,
@@ -1952,7 +2104,7 @@ function useComposer(sessionId, options = {}) {
1952
2104
  resolveDraftConflict,
1953
2105
  restoredResources: identityMatches ? restoredResources : [],
1954
2106
  removeRestoredResource,
1955
- error: identityMatches ? error : null,
2107
+ error: identityMatches ? error ?? draftReadError : null,
1956
2108
  clearError
1957
2109
  };
1958
2110
  }
@@ -1990,7 +2142,14 @@ async function replayOutcomeUnknown(command) {
1990
2142
  }
1991
2143
  }
1992
2144
  function asError(cause) {
1993
- return cause instanceof Error ? cause : new Error(String(cause));
2145
+ return normalizeError(cause);
2146
+ }
2147
+ function promptRoutingFromAcceptedEvent(event) {
2148
+ if (typeof event?.payload !== "object" || event.payload === null || Array.isArray(event.payload)) {
2149
+ return null;
2150
+ }
2151
+ const routing = event.payload.routing;
2152
+ return routing === "accepted_for_execution" || routing === "queued_for_execution" || routing === "accepted_for_steering" ? routing : null;
1994
2153
  }
1995
2154
  function isDraftConflictError(error) {
1996
2155
  const apiError = error;
@@ -2040,10 +2199,11 @@ function mergeResources(base, additions) {
2040
2199
  }
2041
2200
 
2042
2201
  export {
2202
+ notifyObserver,
2043
2203
  useComposer,
2044
2204
  FILE_ONLY_MESSAGE_TEXT,
2045
2205
  composeSendInput,
2046
2206
  shouldSubmitOnKey,
2047
2207
  shouldSteerOnKey
2048
2208
  };
2049
- //# sourceMappingURL=chunk-MZ2G2XBA.js.map
2209
+ //# sourceMappingURL=chunk-V5ZUJT2T.js.map