@opengeni/react 1.0.1 → 1.0.2-canary.37202341988001

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 (632) hide show
  1. package/README.md +660 -21
  2. package/dist/accounts.d.ts +64 -0
  3. package/dist/accounts.js +822 -0
  4. package/dist/accounts.js.map +1 -0
  5. package/dist/approvals.d.ts +2 -1
  6. package/dist/artifacts-document.js +3 -2
  7. package/dist/artifacts-presentation.js +3 -2
  8. package/dist/artifacts-spreadsheet.js +2 -2
  9. package/dist/artifacts.d.ts +4 -1
  10. package/dist/artifacts.js +518 -42
  11. package/dist/artifacts.js.map +1 -1
  12. package/dist/browser-viewer-SHYKQRNX.js +16 -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-UGBTNB3L.js +11 -0
  16. package/dist/chat-interactive-block-UGBTNB3L.js.map +1 -0
  17. package/dist/chunk-26ZNDDLZ.js +453 -0
  18. package/dist/chunk-26ZNDDLZ.js.map +1 -0
  19. package/dist/chunk-3CTRFMAK.js +359 -0
  20. package/dist/chunk-3CTRFMAK.js.map +1 -0
  21. package/dist/chunk-447JLCBU.js +209 -0
  22. package/dist/chunk-447JLCBU.js.map +1 -0
  23. package/dist/chunk-4RVYOY4O.js +379 -0
  24. package/dist/chunk-4RVYOY4O.js.map +1 -0
  25. package/dist/chunk-5CVXZA3Y.js +292 -0
  26. package/dist/chunk-5CVXZA3Y.js.map +1 -0
  27. package/dist/chunk-5J4FOW6Q.js +108 -0
  28. package/dist/chunk-5J4FOW6Q.js.map +1 -0
  29. package/dist/chunk-742CZ3L3.js +481 -0
  30. package/dist/chunk-742CZ3L3.js.map +1 -0
  31. package/dist/chunk-A2PI6UMY.js +41 -0
  32. package/dist/chunk-A2PI6UMY.js.map +1 -0
  33. package/dist/{chunk-7WCLAEFV.js → chunk-A4UJB2MM.js} +37 -27
  34. package/dist/chunk-A4UJB2MM.js.map +1 -0
  35. package/dist/chunk-B3V6TG77.js +41 -0
  36. package/dist/chunk-B3V6TG77.js.map +1 -0
  37. package/dist/chunk-BRM6FVZA.js +302 -0
  38. package/dist/chunk-BRM6FVZA.js.map +1 -0
  39. package/dist/chunk-C5X5AJXK.js +182 -0
  40. package/dist/chunk-C5X5AJXK.js.map +1 -0
  41. package/dist/{chunk-6KLX2RH5.js → chunk-DO544OSV.js} +1075 -79
  42. package/dist/chunk-DO544OSV.js.map +1 -0
  43. package/dist/{chunk-R3AZOAB5.js → chunk-DYWBUX5Q.js} +29 -123
  44. package/dist/chunk-DYWBUX5Q.js.map +1 -0
  45. package/dist/{chunk-HA46CYQK.js → chunk-EESD3PY3.js} +792 -537
  46. package/dist/chunk-EESD3PY3.js.map +1 -0
  47. package/dist/{chunk-5UQPNLIO.js → chunk-EN3YTHKR.js} +4117 -3896
  48. package/dist/chunk-EN3YTHKR.js.map +1 -0
  49. package/dist/chunk-ERGYJIBB.js +21 -0
  50. package/dist/chunk-ERGYJIBB.js.map +1 -0
  51. package/dist/chunk-FZCP527Y.js +116 -0
  52. package/dist/chunk-FZCP527Y.js.map +1 -0
  53. package/dist/chunk-GIMRELBW.js +14 -0
  54. package/dist/chunk-GIMRELBW.js.map +1 -0
  55. package/dist/chunk-GYVRFZDY.js +2733 -0
  56. package/dist/chunk-GYVRFZDY.js.map +1 -0
  57. package/dist/{chunk-LLOLUHVG.js → chunk-HDJWDK7W.js} +1358 -2746
  58. package/dist/chunk-HDJWDK7W.js.map +1 -0
  59. package/dist/chunk-I7IWRQLN.js +1608 -0
  60. package/dist/chunk-I7IWRQLN.js.map +1 -0
  61. package/dist/chunk-IT4BJUGF.js +13055 -0
  62. package/dist/chunk-IT4BJUGF.js.map +1 -0
  63. package/dist/chunk-IWIDV7SB.js +1 -0
  64. package/dist/chunk-IWIDV7SB.js.map +1 -0
  65. package/dist/chunk-J2QWVSQY.js +312 -0
  66. package/dist/chunk-J2QWVSQY.js.map +1 -0
  67. package/dist/chunk-J6DBS4T3.js +371 -0
  68. package/dist/chunk-J6DBS4T3.js.map +1 -0
  69. package/dist/{chunk-B6WPZSTT.js → chunk-JIQYUGVL.js} +1331 -1163
  70. package/dist/chunk-JIQYUGVL.js.map +1 -0
  71. package/dist/chunk-JT4JW7BC.js +54 -0
  72. package/dist/chunk-JT4JW7BC.js.map +1 -0
  73. package/dist/chunk-K3HQAKQX.js +24 -0
  74. package/dist/chunk-K3HQAKQX.js.map +1 -0
  75. package/dist/{chunk-PEI6RANI.js → chunk-PNY3JKBJ.js} +309 -74
  76. package/dist/chunk-PNY3JKBJ.js.map +1 -0
  77. package/dist/chunk-RHREZ7BO.js +11 -0
  78. package/dist/chunk-RHREZ7BO.js.map +1 -0
  79. package/dist/chunk-RLUSC2WA.js +299 -0
  80. package/dist/chunk-RLUSC2WA.js.map +1 -0
  81. package/dist/{chunk-IGC6A2ZI.js → chunk-RSI7XYXL.js} +777 -246
  82. package/dist/chunk-RSI7XYXL.js.map +1 -0
  83. package/dist/chunk-SCOTPE2I.js +589 -0
  84. package/dist/chunk-SCOTPE2I.js.map +1 -0
  85. package/dist/{chunk-C5ZPSSS5.js → chunk-TKOTKRWY.js} +5 -4
  86. package/dist/{chunk-C5ZPSSS5.js.map → chunk-TKOTKRWY.js.map} +1 -1
  87. package/dist/chunk-TMYGL6X5.js +742 -0
  88. package/dist/chunk-TMYGL6X5.js.map +1 -0
  89. package/dist/chunk-UGLEYEMP.js +33 -0
  90. package/dist/chunk-UGLEYEMP.js.map +1 -0
  91. package/dist/chunk-UK4TINKT.js +27 -0
  92. package/dist/chunk-UK4TINKT.js.map +1 -0
  93. package/dist/chunk-UTRTG6LH.js +220 -0
  94. package/dist/chunk-UTRTG6LH.js.map +1 -0
  95. package/dist/chunk-WEHMPOXK.js +39 -0
  96. package/dist/chunk-WEHMPOXK.js.map +1 -0
  97. package/dist/chunk-WGXVEJO5.js +319 -0
  98. package/dist/chunk-WGXVEJO5.js.map +1 -0
  99. package/dist/chunk-WRHIZYZF.js +988 -0
  100. package/dist/chunk-WRHIZYZF.js.map +1 -0
  101. package/dist/{chunk-HUIKIDM5.js → chunk-WUISZ3WU.js} +223 -115
  102. package/dist/chunk-WUISZ3WU.js.map +1 -0
  103. package/dist/chunk-XCHWDJ22.js +107 -0
  104. package/dist/chunk-XCHWDJ22.js.map +1 -0
  105. package/dist/{chunk-KCGXPP5V.js → chunk-Y2PRMYLC.js} +11 -6
  106. package/dist/chunk-Y2PRMYLC.js.map +1 -0
  107. package/dist/chunk-YBXQDQFX.js +1772 -0
  108. package/dist/chunk-YBXQDQFX.js.map +1 -0
  109. package/dist/chunk-YM2DE7BQ.js +3124 -0
  110. package/dist/chunk-YM2DE7BQ.js.map +1 -0
  111. package/dist/{chunk-KZ73RL76.js → chunk-YQEAA6LT.js} +7 -3
  112. package/dist/chunk-YQEAA6LT.js.map +1 -0
  113. package/dist/chunk-YV4L3ILF.js +9 -0
  114. package/dist/chunk-YV4L3ILF.js.map +1 -0
  115. package/dist/chunk-ZYRGEKWS.js +216 -0
  116. package/dist/chunk-ZYRGEKWS.js.map +1 -0
  117. package/dist/client.d.ts +7 -4
  118. package/dist/clipboard.js +1 -0
  119. package/dist/commands/types.d.ts +2 -0
  120. package/dist/components/anthropic-mark.d.ts +3 -0
  121. package/dist/components/approval-surface.d.ts +15 -0
  122. package/dist/components/artifacts/artifact-chrome.d.ts +120 -0
  123. package/dist/components/artifacts/artifact-sandbox.d.ts +27 -0
  124. package/dist/components/artifacts/artifact-surface.d.ts +3 -1
  125. package/dist/components/artifacts/chat-interactive-block.d.ts +29 -0
  126. package/dist/components/artifacts/deferred-chat-media.d.ts +15 -0
  127. package/dist/components/artifacts/document-editor.d.ts +4 -2
  128. package/dist/components/artifacts/editable-artifact-ui.d.ts +2 -1
  129. package/dist/components/artifacts/editable-artifact-view.d.ts +46 -0
  130. package/dist/components/artifacts/editable-document.d.ts +1 -1
  131. package/dist/components/artifacts/editable-presentation.d.ts +2 -2
  132. package/dist/components/artifacts/editable-spreadsheet.d.ts +2 -1
  133. package/dist/components/artifacts/index.d.ts +8 -1
  134. package/dist/components/artifacts/inline-html-document.d.ts +2 -0
  135. package/dist/components/artifacts/latest-task-runner.d.ts +15 -0
  136. package/dist/components/artifacts/presentation-editor.d.ts +6 -2
  137. package/dist/components/artifacts/published-html-artifact-frame.d.ts +48 -3
  138. package/dist/components/artifacts/session-artifact-viewer.d.ts +39 -0
  139. package/dist/components/artifacts/site-view.d.ts +23 -0
  140. package/dist/components/artifacts/spreadsheet-general-display.d.ts +24 -0
  141. package/dist/components/artifacts/visualization-assets.gen.d.ts +2 -0
  142. package/dist/components/browser-select-control.d.ts +16 -0
  143. package/dist/components/browser-viewer.d.ts +10 -1
  144. package/dist/components/chat-composer.d.ts +21 -3
  145. package/dist/components/child-session-link.d.ts +5 -0
  146. package/dist/components/claude-mark.d.ts +3 -0
  147. package/dist/components/code-editor.d.ts +1 -4
  148. package/dist/components/composer.d.ts +45 -4
  149. package/dist/components/computer-viewer.d.ts +4 -1
  150. package/dist/components/copy-button.d.ts +3 -1
  151. package/dist/components/desktop-viewer.d.ts +1 -1
  152. package/dist/components/enrollment-consent.d.ts +6 -3
  153. package/dist/components/file-browser.d.ts +10 -1
  154. package/dist/components/fleet-tile.d.ts +2 -2
  155. package/dist/components/grok-mark.d.ts +26 -0
  156. package/dist/components/human-input-form.d.ts +21 -2
  157. package/dist/components/human-input-surface.d.ts +6 -3
  158. package/dist/components/machine-card.d.ts +4 -1
  159. package/dist/components/machines/machine-detail.d.ts +4 -1
  160. package/dist/components/machines/machine-operation-policy.d.ts +11 -0
  161. package/dist/components/machines-dashboard.d.ts +3 -1
  162. package/dist/components/markdown-table-layout.d.ts +12 -0
  163. package/dist/components/markdown.d.ts +47 -3
  164. package/dist/components/message-timeline.d.ts +72 -9
  165. package/dist/components/model-mark.d.ts +29 -0
  166. package/dist/components/model-policy-picker-menu.d.ts +9 -0
  167. package/dist/components/model-policy-picker.d.ts +62 -13
  168. package/dist/components/open-geni-chat.d.ts +58 -0
  169. package/dist/components/open-geni-links.d.ts +68 -0
  170. package/dist/components/openrouter-mark.d.ts +6 -0
  171. package/dist/components/pierre-file.d.ts +1 -1
  172. package/dist/components/preview-loading.d.ts +2 -0
  173. package/dist/components/queue-item-content.d.ts +9 -0
  174. package/dist/components/sandbox-files.d.ts +13 -2
  175. package/dist/components/sandbox-workspace.d.ts +43 -3
  176. package/dist/components/session-capability-frame.d.ts +35 -0
  177. package/dist/components/session-chrome.d.ts +66 -8
  178. package/dist/components/session-commands-panel.d.ts +6 -0
  179. package/dist/components/session-commands.d.ts +6 -0
  180. package/dist/components/session-connection-request.d.ts +8 -0
  181. package/dist/components/session-conversation.d.ts +89 -0
  182. package/dist/components/session-list.d.ts +36 -0
  183. package/dist/components/session-mcp-capability-card.d.ts +41 -0
  184. package/dist/components/session-proxy-scope.d.ts +21 -0
  185. package/dist/components/timeline-anchor.d.ts +24 -0
  186. package/dist/components/timeline-annotation-chrome.d.ts +25 -0
  187. package/dist/components/timeline-annotation-layout.d.ts +42 -0
  188. package/dist/components/timeline-annotation-markers.d.ts +8 -0
  189. package/dist/components/timeline-annotation-reveal-context.d.ts +4 -0
  190. package/dist/components/timeline-annotation-shared.d.ts +31 -0
  191. package/dist/components/timeline-annotations-dialog.d.ts +3 -2
  192. package/dist/components/timeline-annotations.d.ts +13 -3
  193. package/dist/components/timeline-reading-progress.d.ts +11 -0
  194. package/dist/components/timeline-search.d.ts +34 -0
  195. package/dist/components/timeline-settlement.d.ts +16 -0
  196. package/dist/components/tip-follow.d.ts +16 -0
  197. package/dist/components/usage-limit-notice.d.ts +49 -0
  198. package/dist/components/usage-member-list.d.ts +91 -0
  199. package/dist/components/usage-meter.d.ts +73 -0
  200. package/dist/components/use-viewer-menu-dismiss.d.ts +2 -0
  201. package/dist/components/user-message-body.d.ts +10 -1
  202. package/dist/components/workspace-dock.d.ts +6 -2
  203. package/dist/composer.d.ts +5 -4
  204. package/dist/composer.js +15 -9
  205. package/dist/computer-viewer-6SRGWRUX.js +19 -0
  206. package/dist/computer-viewer-6SRGWRUX.js.map +1 -0
  207. package/dist/connect-account-identity.d.ts +8 -0
  208. package/dist/connect-accounts.d.ts +15 -0
  209. package/dist/connect-chooser.d.ts +18 -0
  210. package/dist/connect-panel.d.ts +18 -0
  211. package/dist/connect-setup.d.ts +16 -0
  212. package/dist/connect.d.ts +21 -0
  213. package/dist/connect.js +2129 -0
  214. package/dist/connect.js.map +1 -0
  215. package/dist/connection-catalog.d.ts +38 -0
  216. package/dist/connection-discovery.d.ts +12 -0
  217. package/dist/connection-installed.d.ts +17 -0
  218. package/dist/connection-logo.d.ts +9 -0
  219. package/dist/connection-service-logo.d.ts +8 -0
  220. package/dist/connection-service-presentation.d.ts +13 -0
  221. package/dist/connection-skeleton.d.ts +5 -0
  222. package/dist/connection-type-picker.d.ts +6 -0
  223. package/dist/conversation-timeline.d.ts +5 -0
  224. package/dist/desktop.d.ts +7 -0
  225. package/dist/desktop.js +26 -0
  226. package/dist/desktop.js.map +1 -0
  227. package/dist/device-authorization.d.ts +23 -0
  228. package/dist/diffs.d.ts +8 -0
  229. package/dist/diffs.js +14 -0
  230. package/dist/diffs.js.map +1 -0
  231. package/dist/discovery-cache.d.ts +5 -0
  232. package/dist/editor.d.ts +7 -0
  233. package/dist/editor.js +21 -0
  234. package/dist/editor.js.map +1 -0
  235. package/dist/embedded-session-client.d.ts +23 -0
  236. package/dist/file-node-visibility.d.ts +15 -0
  237. package/dist/{fleet-decision-row-GGCAT4E4.js → fleet-decision-row-YZ3ZKWMM.js} +2 -1
  238. package/dist/fleet-decision-row-YZ3ZKWMM.js.map +1 -0
  239. package/dist/hooks/channel-cache.d.ts +23 -0
  240. package/dist/hooks/latest-question.d.ts +25 -0
  241. package/dist/hooks/shared-machines-list.d.ts +14 -0
  242. package/dist/hooks/use-attached-browsers.d.ts +2 -1
  243. package/dist/hooks/use-browser-frame-stream.d.ts +1 -1
  244. package/dist/hooks/use-browser-session.d.ts +12 -1
  245. package/dist/hooks/use-channels.d.ts +1 -0
  246. package/dist/hooks/use-codex-accounts.d.ts +25 -7
  247. package/dist/hooks/use-composer.d.ts +45 -9
  248. package/dist/hooks/use-computer-frame-stream.d.ts +1 -1
  249. package/dist/hooks/use-computer-input-posture.d.ts +13 -0
  250. package/dist/hooks/use-computer-session.d.ts +2 -0
  251. package/dist/hooks/use-connect.d.ts +22 -0
  252. package/dist/hooks/use-desktop-stream.d.ts +1 -1
  253. package/dist/hooks/use-file-attachments.d.ts +21 -2
  254. package/dist/hooks/use-machine-chip.d.ts +3 -3
  255. package/dist/hooks/use-machines.d.ts +19 -1
  256. package/dist/hooks/use-sandbox-files.d.ts +5 -1
  257. package/dist/hooks/use-session-background-commands.d.ts +14 -0
  258. package/dist/hooks/use-session-events.d.ts +30 -8
  259. package/dist/hooks/use-session-lineage.d.ts +4 -0
  260. package/dist/hooks/use-session-mcp-approval-policy.d.ts +2 -2
  261. package/dist/hooks/use-session.d.ts +6 -0
  262. package/dist/hooks/use-turn-queue.d.ts +12 -0
  263. package/dist/hooks/use-usage.d.ts +40 -0
  264. package/dist/hooks/use-workspace-edit.d.ts +4 -0
  265. package/dist/hooks/use-workspace-sessions.d.ts +27 -5
  266. package/dist/human-input.d.ts +3 -1
  267. package/dist/identity-link-accounts.d.ts +11 -0
  268. package/dist/identity-link-consent.d.ts +18 -0
  269. package/dist/index.d.ts +60 -17
  270. package/dist/index.js +2238 -6201
  271. package/dist/index.js.map +1 -1
  272. package/dist/interaction.d.ts +1 -1
  273. package/dist/interaction.js +35 -184
  274. package/dist/interaction.js.map +1 -1
  275. package/dist/latest-question-HTRIS4KJ.js +117 -0
  276. package/dist/latest-question-HTRIS4KJ.js.map +1 -0
  277. package/dist/lib/error-message.d.ts +7 -0
  278. package/dist/lib/format.d.ts +36 -2
  279. package/dist/lib/host-theme.d.ts +70 -0
  280. package/dist/lib/interaction-errors.d.ts +6 -0
  281. package/dist/lib/menu-styles.d.ts +22 -0
  282. package/dist/lib/pierre-diffs-loader.d.ts +20 -0
  283. package/dist/lib/workbench-peers.d.ts +36 -0
  284. package/dist/lib/xterm-theme.d.ts +7 -5
  285. package/dist/machines.d.ts +4 -2
  286. package/dist/machines.js +14 -4
  287. package/dist/markdown-table-layout-QXSLK4BY.js +106 -0
  288. package/dist/markdown-table-layout-QXSLK4BY.js.map +1 -0
  289. package/dist/mcp-connection-status.d.ts +14 -0
  290. package/dist/model-policy-picker-menu-M54ISBMN.js +14 -0
  291. package/dist/model-policy-picker-menu-M54ISBMN.js.map +1 -0
  292. package/dist/model-policy.d.ts +19 -3
  293. package/dist/model-policy.js +9 -1
  294. package/dist/older-history.d.ts +30 -0
  295. package/dist/platform-activity-row-627BFZ46.js +182 -0
  296. package/dist/platform-activity-row-627BFZ46.js.map +1 -0
  297. package/dist/plugin-details.d.ts +14 -0
  298. package/dist/plugin-discovery.d.ts +25 -0
  299. package/dist/provider.d.ts +13 -1
  300. package/dist/{queue-surface-implementation-2KVJTYXH.js → queue-surface-implementation-ZHFI5JBP.js} +131 -44
  301. package/dist/queue-surface-implementation-ZHFI5JBP.js.map +1 -0
  302. package/dist/realtime/realtime-control.d.ts +6 -3
  303. package/dist/realtime.js +133 -74
  304. package/dist/realtime.js.map +1 -1
  305. package/dist/sandbox-files-GORZOUUJ.js +20 -0
  306. package/dist/sandbox-files-GORZOUUJ.js.map +1 -0
  307. package/dist/session-auth-recommendation.d.ts +5 -0
  308. package/dist/session-capability-policy.d.ts +12 -0
  309. package/dist/session-ui.d.ts +30 -2
  310. package/dist/session-ui.js +85 -7
  311. package/dist/session-ui.js.map +1 -1
  312. package/dist/session.d.ts +8 -2
  313. package/dist/session.js +30 -19
  314. package/dist/sites-ui.d.ts +34 -0
  315. package/dist/sites.d.ts +3 -0
  316. package/dist/sites.js +11 -0
  317. package/dist/sites.js.map +1 -0
  318. package/dist/skill-discovery.d.ts +47 -0
  319. package/dist/terminal.d.ts +8 -0
  320. package/dist/terminal.js +31 -0
  321. package/dist/terminal.js.map +1 -0
  322. package/dist/timeline/activity-rail.d.ts +11 -2
  323. package/dist/timeline/allowance-exhausted-row.d.ts +24 -0
  324. package/dist/timeline/compaction-copy.d.ts +10 -0
  325. package/dist/timeline/entrance.d.ts +13 -1
  326. package/dist/timeline/genie-loading.d.ts +34 -0
  327. package/dist/timeline/index.d.ts +6 -2
  328. package/dist/timeline/knowledge-receipt.d.ts +17 -0
  329. package/dist/timeline/platform-activity-row.d.ts +14 -0
  330. package/dist/timeline/presented-image.d.ts +6 -0
  331. package/dist/timeline/projection.d.ts +31 -2
  332. package/dist/timeline/registry.d.ts +2 -0
  333. package/dist/timeline/retained-image.d.ts +18 -0
  334. package/dist/timeline/rolling-activity.d.ts +11 -0
  335. package/dist/timeline/screenshot-lightbox.d.ts +16 -1
  336. package/dist/timeline/shared.d.ts +8 -3
  337. package/dist/timeline/startup-preference.d.ts +3 -0
  338. package/dist/timeline/startup-timings.d.ts +4 -0
  339. package/dist/timeline/tool-display-name.d.ts +2 -1
  340. package/dist/timeline/turn-summary.d.ts +34 -3
  341. package/dist/timeline/types.d.ts +147 -7
  342. package/dist/timeline-annotation-markers-GNDHTGBD.js +165 -0
  343. package/dist/timeline-annotation-markers-GNDHTGBD.js.map +1 -0
  344. package/dist/timeline-annotation-selection-DMLMM2TX.js +241 -0
  345. package/dist/timeline-annotation-selection-DMLMM2TX.js.map +1 -0
  346. package/dist/timeline-annotations-dialog-ELRDBHTS.js +273 -0
  347. package/dist/timeline-annotations-dialog-ELRDBHTS.js.map +1 -0
  348. package/dist/types/machines.d.ts +2 -2
  349. package/dist/usage/allowance-copy.d.ts +25 -0
  350. package/dist/usage/summary.d.ts +35 -0
  351. package/dist/usage.d.ts +13 -0
  352. package/dist/usage.js +1074 -0
  353. package/dist/usage.js.map +1 -0
  354. package/package.json +44 -4
  355. package/src/accounts.tsx +1072 -0
  356. package/src/approvals.ts +8 -1
  357. package/src/artifacts.ts +42 -0
  358. package/src/assets/README.md +8 -0
  359. package/src/assets/gmail.ico +0 -0
  360. package/src/assets/outlook.ico +0 -0
  361. package/src/capability-catalog-row.tsx +94 -0
  362. package/src/capability-logo-fallback.ts +22 -0
  363. package/src/client.ts +22 -13
  364. package/src/commands/registry.ts +18 -15
  365. package/src/commands/types.ts +2 -0
  366. package/src/components/anthropic-mark.tsx +10 -0
  367. package/src/components/approval-surface.tsx +171 -37
  368. package/src/components/artifacts/artifact-chrome.tsx +413 -0
  369. package/src/components/artifacts/artifact-sandbox.tsx +185 -0
  370. package/src/components/artifacts/artifact-surface.tsx +39 -19
  371. package/src/components/artifacts/chat-interactive-block.tsx +260 -0
  372. package/src/components/artifacts/deferred-chat-media.tsx +67 -0
  373. package/src/components/artifacts/document-editor.tsx +141 -16
  374. package/src/components/artifacts/editable-artifact-ui.tsx +4 -2
  375. package/src/components/artifacts/editable-artifact-view.tsx +187 -0
  376. package/src/components/artifacts/editable-artifact-workbench.tsx +5 -2
  377. package/src/components/artifacts/editable-document.tsx +37 -36
  378. package/src/components/artifacts/editable-presentation.tsx +36 -18
  379. package/src/components/artifacts/editable-spreadsheet.tsx +5 -2
  380. package/src/components/artifacts/index.ts +44 -0
  381. package/src/components/artifacts/inline-html-document.ts +24 -0
  382. package/src/components/artifacts/latest-task-runner.ts +49 -0
  383. package/src/components/artifacts/presentation-editor.tsx +323 -67
  384. package/src/components/artifacts/published-html-artifact-frame.tsx +338 -5
  385. package/src/components/artifacts/session-artifact-viewer.tsx +376 -0
  386. package/src/components/artifacts/site-view.tsx +116 -0
  387. package/src/components/artifacts/spreadsheet-canvas.ts +5 -10
  388. package/src/components/artifacts/spreadsheet-general-display.ts +43 -0
  389. package/src/components/artifacts/spreadsheet-grid.tsx +12 -13
  390. package/src/components/artifacts/visualization-assets/base.css +1015 -0
  391. package/src/components/artifacts/visualization-assets/helpers.html +349 -0
  392. package/src/components/artifacts/visualization-assets.gen.ts +3 -0
  393. package/src/components/browser-select-control.tsx +312 -0
  394. package/src/components/browser-viewer.tsx +1054 -314
  395. package/src/components/chat-composer.tsx +131 -85
  396. package/src/components/child-session-link.tsx +27 -0
  397. package/src/components/claude-mark.tsx +10 -0
  398. package/src/components/code-editor.tsx +13 -16
  399. package/src/components/composer-transcription-control.tsx +7 -5
  400. package/src/components/composer.tsx +376 -49
  401. package/src/components/computer-viewer.tsx +1041 -329
  402. package/src/components/copy-button.tsx +13 -5
  403. package/src/components/desktop-viewer.tsx +1 -1
  404. package/src/components/enrollment-consent.tsx +65 -7
  405. package/src/components/enrollment-device-flow.tsx +1 -1
  406. package/src/components/file-browser.tsx +158 -34
  407. package/src/components/fleet-tile.tsx +8 -16
  408. package/src/components/generated-video-player.tsx +4 -2
  409. package/src/components/grok-mark.tsx +33 -0
  410. package/src/components/human-input-form.tsx +455 -114
  411. package/src/components/human-input-surface.tsx +18 -7
  412. package/src/components/interaction-intervention-banner.tsx +2 -2
  413. package/src/components/machine-card.tsx +119 -4
  414. package/src/components/machine-dock-bar.tsx +1 -1
  415. package/src/components/machine-input-display.ts +23 -2
  416. package/src/components/machines/machine-detail.tsx +52 -2
  417. package/src/components/machines/machine-operation-policy.tsx +179 -0
  418. package/src/components/machines-dashboard.tsx +8 -17
  419. package/src/components/markdown-table-layout.ts +132 -0
  420. package/src/components/markdown.tsx +473 -44
  421. package/src/components/message-timeline.tsx +2754 -665
  422. package/src/components/model-mark.tsx +90 -0
  423. package/src/components/model-picker.tsx +15 -4
  424. package/src/components/model-policy-picker-menu.tsx +424 -0
  425. package/src/components/model-policy-picker.tsx +337 -381
  426. package/src/components/open-geni-chat.tsx +338 -0
  427. package/src/components/open-geni-links.tsx +179 -0
  428. package/src/components/openrouter-mark.tsx +13 -0
  429. package/src/components/pierre-diff.tsx +41 -16
  430. package/src/components/pierre-file.tsx +36 -11
  431. package/src/components/preview-loading.tsx +154 -0
  432. package/src/components/queue-item-content.ts +14 -0
  433. package/src/components/queue-surface-implementation.tsx +132 -42
  434. package/src/components/queue-surface-state.tsx +3 -1
  435. package/src/components/sandbox-files.tsx +267 -35
  436. package/src/components/sandbox-terminal.tsx +48 -11
  437. package/src/components/sandbox-workspace.tsx +337 -135
  438. package/src/components/session-capability-frame.tsx +192 -0
  439. package/src/components/session-chrome.tsx +1027 -328
  440. package/src/components/session-commands-panel.tsx +126 -0
  441. package/src/components/session-commands.tsx +18 -0
  442. package/src/components/session-connection-request.tsx +97 -0
  443. package/src/components/session-conversation.tsx +526 -0
  444. package/src/components/session-list.tsx +250 -0
  445. package/src/components/session-mcp-capability-card.tsx +680 -0
  446. package/src/components/session-proxy-scope.tsx +92 -0
  447. package/src/components/session-status.tsx +1 -1
  448. package/src/components/timeline-anchor.tsx +119 -0
  449. package/src/components/timeline-annotation-chrome.tsx +196 -0
  450. package/src/components/timeline-annotation-layout.ts +268 -0
  451. package/src/components/timeline-annotation-markers.tsx +185 -0
  452. package/src/components/timeline-annotation-reveal-context.ts +9 -0
  453. package/src/components/timeline-annotation-selection.tsx +106 -54
  454. package/src/components/timeline-annotation-shared.ts +245 -0
  455. package/src/components/timeline-annotations-dialog.tsx +185 -128
  456. package/src/components/timeline-annotations.tsx +189 -45
  457. package/src/components/timeline-reading-progress.ts +80 -0
  458. package/src/components/timeline-search.tsx +168 -0
  459. package/src/components/timeline-settlement.ts +60 -0
  460. package/src/components/tip-follow.ts +70 -7
  461. package/src/components/tooltip.tsx +38 -5
  462. package/src/components/usage-limit-notice.tsx +179 -0
  463. package/src/components/usage-member-list.tsx +792 -0
  464. package/src/components/usage-meter.tsx +382 -0
  465. package/src/components/use-viewer-menu-dismiss.ts +33 -0
  466. package/src/components/user-message-body.tsx +194 -49
  467. package/src/components/workspace-dock.tsx +141 -175
  468. package/src/composer.ts +6 -1
  469. package/src/connect-account-identity.tsx +34 -0
  470. package/src/connect-accounts.tsx +233 -0
  471. package/src/connect-chooser.tsx +336 -0
  472. package/src/connect-panel.tsx +99 -0
  473. package/src/connect-setup.tsx +307 -0
  474. package/src/connect.ts +60 -0
  475. package/src/connection-assets.d.ts +4 -0
  476. package/src/connection-catalog.tsx +162 -0
  477. package/src/connection-discovery.tsx +235 -0
  478. package/src/connection-installed.tsx +51 -0
  479. package/src/connection-logo.tsx +37 -0
  480. package/src/connection-service-logo.tsx +55 -0
  481. package/src/connection-service-presentation.ts +46 -0
  482. package/src/connection-skeleton.tsx +16 -0
  483. package/src/connection-type-picker.tsx +36 -0
  484. package/src/conversation-timeline.ts +92 -0
  485. package/src/desktop.ts +24 -0
  486. package/src/device-authorization.tsx +98 -0
  487. package/src/diffs.ts +16 -0
  488. package/src/discovery-cache.ts +42 -0
  489. package/src/editor.ts +13 -0
  490. package/src/embedded-session-client.ts +104 -0
  491. package/src/file-node-visibility.ts +66 -0
  492. package/src/hooks/channel-cache.ts +104 -0
  493. package/src/hooks/internal.ts +3 -2
  494. package/src/hooks/latest-question.ts +164 -0
  495. package/src/hooks/shared-machines-list.ts +239 -0
  496. package/src/hooks/use-attached-browsers.ts +5 -1
  497. package/src/hooks/use-available-models.ts +20 -14
  498. package/src/hooks/use-browser-frame-stream.ts +25 -3
  499. package/src/hooks/use-browser-session.ts +271 -71
  500. package/src/hooks/use-browser-sessions.ts +7 -1
  501. package/src/hooks/use-channels.ts +32 -10
  502. package/src/hooks/use-codex-accounts.ts +78 -21
  503. package/src/hooks/use-composer.ts +1034 -320
  504. package/src/hooks/use-computer-frame-stream.ts +39 -16
  505. package/src/hooks/use-computer-input-posture.ts +94 -0
  506. package/src/hooks/use-computer-session.ts +110 -32
  507. package/src/hooks/use-computer-sessions.ts +8 -1
  508. package/src/hooks/use-connect.ts +23 -0
  509. package/src/hooks/use-desktop-stream.ts +19 -28
  510. package/src/hooks/use-file-attachments.ts +118 -10
  511. package/src/hooks/use-goal.ts +36 -9
  512. package/src/hooks/use-human-input.ts +31 -4
  513. package/src/hooks/use-last-started-turn-policy.ts +15 -13
  514. package/src/hooks/use-machine-chip.ts +23 -6
  515. package/src/hooks/use-machines.ts +104 -6
  516. package/src/hooks/use-sandbox-files.ts +253 -150
  517. package/src/hooks/use-sandbox-git.ts +58 -29
  518. package/src/hooks/use-session-background-commands.ts +67 -0
  519. package/src/hooks/use-session-capabilities.ts +21 -2
  520. package/src/hooks/use-session-events.ts +759 -433
  521. package/src/hooks/use-session-lineage.ts +28 -6
  522. package/src/hooks/use-session-mcp-approval-policy.ts +13 -5
  523. package/src/hooks/use-session.ts +75 -16
  524. package/src/hooks/use-slash-commands.ts +6 -11
  525. package/src/hooks/use-turn-queue.ts +113 -13
  526. package/src/hooks/use-usage.ts +100 -0
  527. package/src/hooks/use-video-artifact-playback.ts +1 -1
  528. package/src/hooks/use-voice-input.ts +12 -1
  529. package/src/hooks/use-workspace-capture.ts +3 -2
  530. package/src/hooks/use-workspace-edit.ts +23 -5
  531. package/src/hooks/use-workspace-sessions.ts +99 -11
  532. package/src/human-input.ts +12 -1
  533. package/src/identity-link-accounts.tsx +148 -0
  534. package/src/identity-link-consent.tsx +192 -0
  535. package/src/index.ts +157 -12
  536. package/src/interaction.ts +1 -0
  537. package/src/lib/error-message.ts +37 -0
  538. package/src/lib/format.ts +150 -14
  539. package/src/lib/host-theme.ts +511 -0
  540. package/src/lib/interaction-errors.ts +33 -0
  541. package/src/lib/menu-styles.ts +44 -0
  542. package/src/lib/pierre-diffs-loader.ts +53 -0
  543. package/src/lib/workbench-peers.ts +62 -0
  544. package/src/lib/xterm-theme.ts +23 -21
  545. package/src/machines.ts +9 -1
  546. package/src/mcp-connection-status.ts +35 -0
  547. package/src/model-policy.ts +223 -69
  548. package/src/older-history.ts +87 -0
  549. package/src/plugin-details.tsx +185 -0
  550. package/src/plugin-discovery.tsx +196 -0
  551. package/src/provider.tsx +55 -14
  552. package/src/realtime/dropdown-menu.tsx +19 -12
  553. package/src/realtime/realtime-control.tsx +133 -46
  554. package/src/session-auth-recommendation.ts +48 -0
  555. package/src/session-capability-policy.ts +83 -0
  556. package/src/session-context.ts +4 -3
  557. package/src/session-ui.ts +66 -2
  558. package/src/session.ts +18 -1
  559. package/src/sites-ui.tsx +402 -0
  560. package/src/sites.ts +3 -0
  561. package/src/skill-discovery.tsx +208 -0
  562. package/src/terminal.ts +26 -0
  563. package/src/timeline/activity-rail.tsx +171 -80
  564. package/src/timeline/allowance-exhausted-row.tsx +86 -0
  565. package/src/timeline/compaction-copy.ts +42 -0
  566. package/src/timeline/entrance.tsx +28 -3
  567. package/src/timeline/fleet-decision-projection.ts +2 -1
  568. package/src/timeline/fleet-decision-row.tsx +1 -0
  569. package/src/timeline/genie-loading.tsx +136 -0
  570. package/src/timeline/index.ts +11 -0
  571. package/src/timeline/knowledge-receipt.tsx +100 -0
  572. package/src/timeline/parsers.ts +2 -2
  573. package/src/timeline/platform-activity-row.tsx +216 -0
  574. package/src/timeline/presented-image.ts +49 -0
  575. package/src/timeline/projection.ts +1609 -84
  576. package/src/timeline/registry.ts +15 -3
  577. package/src/timeline/retained-image.ts +97 -0
  578. package/src/timeline/rolling-activity.tsx +92 -0
  579. package/src/timeline/screenshot-lightbox.tsx +115 -17
  580. package/src/timeline/shared.tsx +47 -15
  581. package/src/timeline/startup-preference.ts +33 -0
  582. package/src/timeline/startup-timings.tsx +145 -0
  583. package/src/timeline/tool-display-name.ts +8 -6
  584. package/src/timeline/tool-renderers.tsx +497 -128
  585. package/src/timeline/turn-summary.tsx +218 -44
  586. package/src/timeline/types.ts +192 -7
  587. package/src/types/machines.ts +10 -0
  588. package/src/usage/allowance-copy.ts +64 -0
  589. package/src/usage/summary.ts +93 -0
  590. package/src/usage.ts +50 -0
  591. package/styles/compiled.css +2098 -757
  592. package/styles/connect.css +284 -0
  593. package/styles/connect.d.ts +1 -0
  594. package/styles/effective-tokens.css +1 -0
  595. package/styles/index.css +201 -9
  596. package/styles/responsive.css +27 -1
  597. package/styles/session-capability.css +44 -0
  598. package/styles/tokens.css +135 -65
  599. package/dist/chunk-5UQPNLIO.js.map +0 -1
  600. package/dist/chunk-6KLX2RH5.js.map +0 -1
  601. package/dist/chunk-7WCLAEFV.js.map +0 -1
  602. package/dist/chunk-B6WPZSTT.js.map +0 -1
  603. package/dist/chunk-FK6VG4LL.js +0 -90
  604. package/dist/chunk-FK6VG4LL.js.map +0 -1
  605. package/dist/chunk-HA46CYQK.js.map +0 -1
  606. package/dist/chunk-HUIKIDM5.js.map +0 -1
  607. package/dist/chunk-IGC6A2ZI.js.map +0 -1
  608. package/dist/chunk-KCGXPP5V.js.map +0 -1
  609. package/dist/chunk-KZ73RL76.js.map +0 -1
  610. package/dist/chunk-LAKLF4PA.js +0 -141
  611. package/dist/chunk-LAKLF4PA.js.map +0 -1
  612. package/dist/chunk-LLOLUHVG.js.map +0 -1
  613. package/dist/chunk-MKPIAGVL.js +0 -465
  614. package/dist/chunk-MKPIAGVL.js.map +0 -1
  615. package/dist/chunk-PEI6RANI.js.map +0 -1
  616. package/dist/chunk-R3AZOAB5.js.map +0 -1
  617. package/dist/chunk-WSK7G5LE.js +0 -170
  618. package/dist/chunk-WSK7G5LE.js.map +0 -1
  619. package/dist/chunk-XBZWOM2K.js +0 -218
  620. package/dist/chunk-XBZWOM2K.js.map +0 -1
  621. package/dist/chunk-Y7OEDUJ5.js +0 -8810
  622. package/dist/chunk-Y7OEDUJ5.js.map +0 -1
  623. package/dist/fleet-decision-row-GGCAT4E4.js.map +0 -1
  624. package/dist/hooks/use-packs.d.ts +0 -32
  625. package/dist/interactive-workbench-viewers-TOHBXJEE.js +0 -15
  626. package/dist/queue-surface-implementation-2KVJTYXH.js.map +0 -1
  627. package/dist/timeline-annotation-selection-3L7LHGG2.js +0 -187
  628. package/dist/timeline-annotation-selection-3L7LHGG2.js.map +0 -1
  629. package/dist/timeline-annotations-dialog-U7EVLR75.js +0 -196
  630. package/dist/timeline-annotations-dialog-U7EVLR75.js.map +0 -1
  631. package/src/hooks/use-packs.ts +0 -157
  632. /package/dist/{interactive-workbench-viewers-TOHBXJEE.js.map → browser-viewer-SHYKQRNX.js.map} +0 -0
@@ -1,4 +1,7 @@
1
1
  import type {
2
+ AllowanceExhaustedRefusal,
3
+ HumanInputQuestion,
4
+ HumanInputResponse,
2
5
  MediaGenerationResult,
3
6
  ResourceRef,
4
7
  SessionStatus,
@@ -6,6 +9,7 @@ import type {
6
9
  TimelineAnnotationSource,
7
10
  ToolAuthNeededPayload,
8
11
  ToolRef,
12
+ ToolDisplayMetadata,
9
13
  } from "@opengeni/sdk";
10
14
 
11
15
  /* ----------------------------------------------------------------------------
@@ -27,6 +31,13 @@ export type TimelineAnnotationSourceDescriptor = Omit<
27
31
  export type UserMessageItem = {
28
32
  kind: "user-message";
29
33
  id: string;
34
+ /**
35
+ * Renderer-only identity shared by a locally acknowledged message and the
36
+ * durable event that replaces it. The canonical event id remains `id`; this
37
+ * key only prevents the optimistic-to-durable handoff from remounting and
38
+ * replaying the row entrance animation.
39
+ */
40
+ reconciliationKey?: string | undefined;
30
41
  text: string;
31
42
  annotations?: TimelineAnnotation[] | undefined;
32
43
  annotationSource?: TimelineAnnotationSourceDescriptor | undefined;
@@ -46,19 +57,55 @@ export type UserMessageItem = {
46
57
  state: "sending" | "queued" | "failed";
47
58
  error?: string | undefined;
48
59
  onRetry?: (() => void) | undefined;
60
+ onEdit?: (() => void) | undefined;
49
61
  onRemove?: (() => void) | undefined;
50
62
  }
51
63
  | undefined;
52
64
  };
53
65
 
66
+ export type HumanInputAnswerSummary = {
67
+ questionId: string;
68
+ label: string;
69
+ prompt: string;
70
+ values: string[];
71
+ };
72
+
73
+ /**
74
+ * One resolved structured question in the conversation. The live pending form
75
+ * is rendered at the timeline tip by the host; after settlement this item keeps
76
+ * both the agent's question and the human's answer visible as chat history.
77
+ */
78
+ export type HumanInputItem = {
79
+ kind: "human-input";
80
+ id: string;
81
+ turnId: string | null;
82
+ requestId: string;
83
+ questions: HumanInputQuestion[];
84
+ response: HumanInputResponse;
85
+ answers: HumanInputAnswerSummary[];
86
+ occurredAt: string;
87
+ };
88
+
54
89
  export type AgentMessageItem = {
55
90
  kind: "agent-message";
56
91
  id: string;
57
92
  turnId: string | null;
58
93
  text: string;
94
+ /**
95
+ * Assistant channel: provider-declared, or `commentary` when the model asked
96
+ * for tool work in the same response. Absent on legacy events and on
97
+ * undeclared final messages. Known from the first delta for Responses models.
98
+ */
99
+ phase?: "commentary" | "final_answer" | undefined;
59
100
  /** Still receiving deltas (no completed/turn-end seen yet). */
60
101
  streaming: boolean;
61
102
  occurredAt: string;
103
+ /**
104
+ * When the first streamed text arrived, kept once completion moves
105
+ * `occurredAt` to the completion time. Absent for a message that never
106
+ * streamed.
107
+ */
108
+ startedAt?: string | undefined;
62
109
  /** Available only after the canonical completed event lands. */
63
110
  annotationSource?: TimelineAnnotationSourceDescriptor | undefined;
64
111
  };
@@ -95,6 +142,7 @@ export type ToolCallItem = {
95
142
  turnId: string | null;
96
143
  callId: string | null;
97
144
  name: string;
145
+ display?: ToolDisplayMetadata;
98
146
  arguments: unknown;
99
147
  output: unknown;
100
148
  truncation?: ToolCallTruncation | null;
@@ -159,6 +207,36 @@ export type SandboxItem = {
159
207
  occurredAt: string;
160
208
  };
161
209
 
210
+ export type StartupPhase =
211
+ | "queue"
212
+ | "sandbox"
213
+ | "rig"
214
+ | "repository"
215
+ | "files"
216
+ | "tools"
217
+ | "model_preparation"
218
+ | "provider_first_byte";
219
+
220
+ /** A compact user-visible critical-path span reconstructed from durable events. */
221
+ export type StartupPhaseItem = {
222
+ kind: "startup-phase";
223
+ id: string;
224
+ turnId: string | null;
225
+ phase: StartupPhase;
226
+ status: "running" | "complete" | "failed" | "cancelled";
227
+ startedAt: string;
228
+ completedAt: string | null;
229
+ durationMs: number | null;
230
+ /** Sandbox origin and rig marker outcomes refine the settled label only. */
231
+ outcome: "created" | "restored" | "resumed" | "skipped" | null;
232
+ blockedReason?:
233
+ | "capture_in_progress"
234
+ | "rotation_in_progress"
235
+ | "provider_recovery_in_progress"
236
+ | undefined;
237
+ occurredAt: string;
238
+ };
239
+
162
240
  /**
163
241
  * A first-party workspace-memory write the agent made mid-turn — a `memory.saved`
164
242
  * (it committed a new preference / fact / procedure / decision / history) or a
@@ -168,6 +246,18 @@ export type SandboxItem = {
168
246
  * `onMemoryClick` handler the row also deep-links to the record in its memory
169
247
  * pane; without one it is non-interactive rich content.
170
248
  */
249
+ export type KnowledgeItem = {
250
+ kind: "knowledge";
251
+ id: string;
252
+ turnId: string | null;
253
+ status: "complete" | "failed";
254
+ outcome: "published" | "pending" | "rejected" | "archived" | "failed";
255
+ fileId?: string | undefined;
256
+ filename?: string | undefined;
257
+ entryId?: string | undefined;
258
+ occurredAt: string;
259
+ };
260
+
171
261
  export type MemoryItem = {
172
262
  kind: "memory";
173
263
  id: string;
@@ -220,7 +310,14 @@ export type FleetDecisionItem = {
220
310
  policyVersion: "adaptive-shadow-v1";
221
311
  actualOutcome: "selected" | "waiting" | "none";
222
312
  actualCandidateKey: string | null;
223
- actualReason: "lease_reused" | "pin" | "rotation" | "active" | "all_capped" | "none";
313
+ actualReason:
314
+ | "lease_reused"
315
+ | "pin"
316
+ | "rotation"
317
+ | "active"
318
+ | "all_capped"
319
+ | "allocator_disabled"
320
+ | "none";
224
321
  shadowOutcome: "selected" | "paced" | "none";
225
322
  shadowCandidateKey: string | null;
226
323
  shadowReason:
@@ -259,13 +356,23 @@ export type SessionStatusItem = {
259
356
  kind: "session-status";
260
357
  id: string;
261
358
  status: SessionStatus;
359
+ /** Presentation-only evidence that this historical attention state resumed. */
360
+ resolvedAt?: string;
262
361
  occurredAt: string;
263
362
  };
264
363
 
265
364
  export type GoalItem = {
266
365
  kind: "goal";
267
366
  id: string;
268
- action: "set" | "updated" | "completed" | "paused" | "resumed" | "cleared" | "continuation";
367
+ action:
368
+ | "set"
369
+ | "updated"
370
+ | "completed"
371
+ | "paused"
372
+ | "resumed"
373
+ | "cleared"
374
+ | "held"
375
+ | "continuation";
269
376
  text: string | null;
270
377
  occurredAt: string;
271
378
  };
@@ -275,9 +382,27 @@ export type NoticeItem = {
275
382
  id: string;
276
383
  tone: "waiting" | "cancelled" | "failed" | "input";
277
384
  text: string;
385
+ /** Presentation-only evidence that a historical approval wait resumed. */
386
+ resolvedAt?: string;
387
+ /** A preserved turn-end outcome, not a claim about current session state. */
388
+ recordedOutcome?: true;
389
+ /**
390
+ * Recorded agent wait only: delegated worker sessions that had not reported
391
+ * back when the wait began. Best effort from the loaded history; absent when
392
+ * none are known.
393
+ */
394
+ waitingAgents?: number;
395
+ /** Recorded agent wait only: when later input ended the wait. */
396
+ waitEndedAt?: string;
278
397
  /** Optional evidence kept inspectable without overwhelming the main rail. */
279
398
  details?: { label: string; value: unknown };
280
399
  action?: { label: string; url: string };
400
+ /**
401
+ * A usage ceiling refused further work. `text` keeps the canonical sentence
402
+ * for plain-text consumers; `MessageTimeline` renders this structured row
403
+ * (customizable with `renderAllowanceExhausted` / `allowanceExhaustedLabels`).
404
+ */
405
+ allowance?: AllowanceExhaustedRefusal;
281
406
  occurredAt: string;
282
407
  };
283
408
 
@@ -294,20 +419,40 @@ export type ContextCompactionItem = {
294
419
  estimatedTokensBefore: number | null;
295
420
  estimatedTokensAfter: number | null;
296
421
  skipReason: string | null;
422
+ /**
423
+ * Present only for a `summarization_failed` skip where the provider
424
+ * definitively rejected the compaction request. Content-free identifiers.
425
+ */
426
+ providerRejection: ContextCompactionProviderRejection | null;
297
427
  /** Provider implementation id for debug disclosure only. */
298
428
  implementation: string | null;
299
429
  occurredAt: string;
300
430
  };
301
431
 
432
+ export type ContextCompactionProviderRejection = {
433
+ httpStatus: number;
434
+ type: string | null;
435
+ code: string | null;
436
+ param: string | null;
437
+ requestId: string | null;
438
+ };
439
+
302
440
  export type MachineInputMember = {
303
441
  id: string;
304
442
  kind:
305
443
  | "scheduled_occurrence"
306
444
  | "goal_continuation"
445
+ | "background_command_result"
446
+ | "session_wait_timeout"
307
447
  | "agent_message"
308
448
  | "agent_steer_instruction"
309
449
  | "child_terminal_result"
310
- | "media_generation_result";
450
+ | "media_generation_result"
451
+ | "child_requires_action"
452
+ | "child_requires_action_resolved"
453
+ | "child_paused"
454
+ | "child_waiting_capacity"
455
+ | "child_progress";
311
456
  classification: "success" | "failure" | "action_required" | "info";
312
457
  sourceId: string;
313
458
  summary: string;
@@ -323,6 +468,8 @@ export type MachineInputBatchItem = {
323
468
  id: string;
324
469
  turnId: string | null;
325
470
  members: MachineInputMember[];
471
+ /** Readable-turn presentation keeps machine payload prose inside the disclosure. */
472
+ compact?: boolean;
326
473
  occurredAt: string;
327
474
  };
328
475
 
@@ -342,12 +489,17 @@ export type AuthNeededItem = {
342
489
  turnId: string | null;
343
490
  /** The runtime surface that requested recovery, when the event is an MCP auth signal. */
344
491
  serverId: string | null;
492
+ /** Explicit recovery identity; never inferred from an opaque execution alias. */
493
+ canonicalServerId?: string | null;
494
+ connectionSubjectScope?: "workspace" | "subject" | null;
345
495
  /** Durable event family that produced this notice. */
346
496
  source?: "tool" | "credential" | "capability" | undefined;
347
497
  /** The connection's registrable domain, e.g. "linear.app". */
348
498
  providerDomain: string;
349
499
  /** The lapsed connection to reconnect, when the row survived. */
350
500
  connectionId: string | null;
501
+ /** Host-owned bindings must never be routed into OpenGeni's native reconnect flow. */
502
+ authoritySource?: ToolAuthNeededPayload["authoritySource"] | null | undefined;
351
503
  reason: ToolAuthNeededPayload["reason"] | null;
352
504
  /** Scopes the provider now needs; may inform the copy, never shown as a raw label. */
353
505
  scopes: string[];
@@ -359,6 +511,8 @@ export type AuthNeededItem = {
359
511
  authorizationUrl: string | null;
360
512
  /** Agent-selected catalog recommendation. The host still owns authorization. */
361
513
  capability?: NonNullable<ToolAuthNeededPayload["capability"]> | null | undefined;
514
+ /** Human-reviewed custom integration proposal. Never treated as catalog authority. */
515
+ setupRequest?: ToolAuthNeededPayload["setupRequest"] | null | undefined;
362
516
  occurredAt: string;
363
517
  };
364
518
 
@@ -366,6 +520,10 @@ export type TurnOutcome = "complete" | "failed" | "cancelled";
366
520
 
367
521
  export type TurnEndItem = {
368
522
  kind: "turn-end";
523
+ /** A durable Retry reopened this failed logical turn; its failure is history. */
524
+ resumedAt?: string;
525
+ /** Keep an existing answer visible when a recorded input wait ends without final output. */
526
+ preserveWaitResponse?: true;
369
527
  id: string;
370
528
  turnId: string | null;
371
529
  outcome: TurnOutcome;
@@ -373,14 +531,16 @@ export type TurnEndItem = {
373
531
  occurredAt: string;
374
532
  };
375
533
 
376
- export type TimelineItem =
534
+ export type TimelineItem = (
377
535
  | UserMessageItem
536
+ | HumanInputItem
378
537
  | AgentMessageItem
379
538
  | ReasoningItem
380
539
  | ToolCallItem
381
540
  | WorkerItem
382
541
  | WorkerCompletionItem
383
542
  | SandboxItem
543
+ | StartupPhaseItem
384
544
  | SessionStatusItem
385
545
  | GoalItem
386
546
  | NoticeItem
@@ -388,17 +548,28 @@ export type TimelineItem =
388
548
  | MachineInputBatchItem
389
549
  | AuthNeededItem
390
550
  | MemoryItem
551
+ | KnowledgeItem
391
552
  | FleetDecisionItem
392
- | TurnEndItem;
553
+ | TurnEndItem
554
+ ) & {
555
+ /** Durable identities, independent of renderer/reconciliation keys. */
556
+ sourceEvents?: readonly { eventId: string; sequence: number }[] | undefined;
557
+ };
393
558
 
394
- /** Activity items cluster between chat messages (reasoning, tools, workers, sandbox, memory). */
559
+ /**
560
+ * Activity items cluster between chat messages (reasoning, tools, workers,
561
+ * sandbox, memory). Assistant prose is rendered separately.
562
+ */
395
563
  export type ActivityItem =
396
564
  | ReasoningItem
397
565
  | ToolCallItem
398
566
  | WorkerItem
399
567
  | SandboxItem
568
+ | StartupPhaseItem
400
569
  | MemoryItem
401
- | FleetDecisionItem;
570
+ | KnowledgeItem
571
+ | FleetDecisionItem
572
+ | AgentMessageItem;
402
573
 
403
574
  export type TimelineGroup =
404
575
  | { kind: "item"; item: TimelineItem }
@@ -408,6 +579,20 @@ export type TimelineGroup =
408
579
  items: ActivityItem[];
409
580
  outcome?: TurnOutcome;
410
581
  failureText?: string;
582
+ /** One turn's chronological work history, including progress prose after settlement. */
583
+ work?: {
584
+ startedAt: string;
585
+ endedAt?: string;
586
+ responseStartedAt?: string;
587
+ waiting?: { label: string; since: string };
588
+ details: TimelineGroup[];
589
+ /**
590
+ * While the turn is live, its progress notes stay readable above the
591
+ * work row and are also listed in `details`. These are their item ids,
592
+ * so an expanded work disclosure can fold the outside copies away.
593
+ */
594
+ liveNoteIds?: string[];
595
+ };
411
596
  }
412
597
  | {
413
598
  kind: "turn";
@@ -23,6 +23,11 @@ import type {
23
23
  MachinesResponse,
24
24
  MachineState,
25
25
  MachineView,
26
+ MachineRuntime,
27
+ MachineRuntimeCapabilities,
28
+ MachineOperationPolicy,
29
+ MachineUpdateState,
30
+ MachineUpdateStatus,
26
31
  MetricSample,
27
32
  } from "@opengeni/sdk";
28
33
 
@@ -32,6 +37,11 @@ export type {
32
37
  MachinesResponse,
33
38
  MachineState,
34
39
  MachineView,
40
+ MachineRuntime,
41
+ MachineRuntimeCapabilities,
42
+ MachineOperationPolicy,
43
+ MachineUpdateState,
44
+ MachineUpdateStatus,
35
45
  MetricSample,
36
46
  };
37
47
 
@@ -0,0 +1,64 @@
1
+ // Shared, replaceable words for usage allowances. The timeline refusal row
2
+ // (session graph) and the opt-in `@opengeni/react/usage` surfaces both read
3
+ // these, so a host that renames "workspace" or "admin" does it once.
4
+ //
5
+ // Product rule: never show raw credit amounts here. Hosts that want money or
6
+ // plan multiples opt in with `formatAmount` on the meter components.
7
+
8
+ /** Which ceiling ran out: the shared workspace pool, or one member's share of it. */
9
+ export type AllowanceScope = "workspace" | "member";
10
+
11
+ export type AllowanceLabels = {
12
+ /** "Usage limit reached" for a member ceiling. */
13
+ memberLimitReachedTitle: string;
14
+ /** "Workspace usage limit reached" for the shared pool. */
15
+ workspaceLimitReachedTitle: string;
16
+ /** Who can fix a member ceiling. */
17
+ memberRemedy: string;
18
+ /** Who can fix the workspace pool. */
19
+ workspaceRemedy: string;
20
+ /** "Resets Nov 1". `date` is already formatted by `formatDate`. */
21
+ resets: (date: string) => string;
22
+ /** Shown when a ceiling has no automatic reset. */
23
+ noReset: string;
24
+ /** Formats a reset instant for `resets`. Defaults to a short local date. */
25
+ formatDate: (iso: string) => string;
26
+ };
27
+
28
+ export function formatAllowanceDate(iso: string, now: Date = new Date()): string {
29
+ const date = new Date(iso);
30
+ if (Number.isNaN(date.getTime())) return iso;
31
+ return new Intl.DateTimeFormat(undefined, {
32
+ month: "short",
33
+ day: "numeric",
34
+ ...(date.getFullYear() === now.getFullYear() ? {} : { year: "numeric" }),
35
+ }).format(date);
36
+ }
37
+
38
+ /** Full local date and time, for a title/tooltip next to the short date. */
39
+ export function formatAllowanceInstant(iso: string): string {
40
+ const date = new Date(iso);
41
+ if (Number.isNaN(date.getTime())) return iso;
42
+ return new Intl.DateTimeFormat(undefined, { dateStyle: "medium", timeStyle: "short" }).format(
43
+ date,
44
+ );
45
+ }
46
+
47
+ export const DEFAULT_ALLOWANCE_LABELS: AllowanceLabels = {
48
+ memberLimitReachedTitle: "Usage limit reached",
49
+ workspaceLimitReachedTitle: "Workspace usage limit reached",
50
+ memberRemedy: "A workspace admin can raise this limit.",
51
+ workspaceRemedy: "An organization admin can raise the workspace budget.",
52
+ resets: (date) => `Resets ${date}.`,
53
+ noReset: "It doesn't reset automatically.",
54
+ formatDate: (iso) => formatAllowanceDate(iso),
55
+ };
56
+
57
+ export function allowanceLabels(overrides?: Partial<AllowanceLabels>): AllowanceLabels {
58
+ return overrides ? { ...DEFAULT_ALLOWANCE_LABELS, ...overrides } : DEFAULT_ALLOWANCE_LABELS;
59
+ }
60
+
61
+ /** "Resets Nov 1." or the no-reset sentence. */
62
+ export function allowanceResetSentence(labels: AllowanceLabels, resetsAt: string | null): string {
63
+ return resetsAt === null ? labels.noReset : labels.resets(labels.formatDate(resetsAt));
64
+ }
@@ -0,0 +1,93 @@
1
+ import type {
2
+ MemberAllowanceUsage,
3
+ UsageAllowanceStatus,
4
+ WorkspaceAllowanceUsage,
5
+ WorkspaceUsageResponse,
6
+ } from "@opengeni/sdk/usage-allowances";
7
+
8
+ import type { AllowanceScope } from "./allowance-copy";
9
+
10
+ /** One ceiling as a person reads it: how much of it is used, and when it resets. */
11
+ export type UsageReading = {
12
+ scope: AllowanceScope;
13
+ /** Used share of the ceiling. Can exceed 1 after post-call overshoot. */
14
+ fraction: number;
15
+ status: UsageAllowanceStatus;
16
+ resetsAt: string | null;
17
+ /** USD micros. Only shown when a host opts in with `formatAmount`. */
18
+ used: number;
19
+ limit: number;
20
+ remaining: number;
21
+ };
22
+
23
+ /**
24
+ * What a member can still do: `unlimited` when no ceiling applies, otherwise
25
+ * the state of whichever ceiling stops them first (`binding`).
26
+ */
27
+ export type UsageSummary = {
28
+ state: "unlimited" | "ok" | "warning" | "exhausted";
29
+ /** The ceiling a person would ask to raise; null when unlimited. */
30
+ binding: UsageReading | null;
31
+ /** Their own ceiling, when one applies. */
32
+ member: UsageReading | null;
33
+ /** The shared workspace pool, when one is set. */
34
+ workspace: UsageReading | null;
35
+ };
36
+
37
+ function reading(
38
+ scope: AllowanceScope,
39
+ usage: Pick<
40
+ WorkspaceAllowanceUsage | MemberAllowanceUsage,
41
+ "limit" | "used" | "remaining" | "fraction" | "status" | "resetsAt"
42
+ >,
43
+ ): UsageReading | null {
44
+ if (usage.limit === null) return null;
45
+ return {
46
+ scope,
47
+ fraction: usage.fraction ?? (usage.limit === 0 ? 1 : usage.used / usage.limit),
48
+ status: usage.status,
49
+ resetsAt: usage.resetsAt,
50
+ used: usage.used,
51
+ limit: usage.limit,
52
+ remaining: Math.max(0, usage.remaining ?? usage.limit - usage.used),
53
+ };
54
+ }
55
+
56
+ /**
57
+ * Fold a usage response (normally `/usage/me`) into what to tell one member.
58
+ * The server's `status` decides warning/exhausted (it applies the configured
59
+ * thresholds); when both ceilings apply, the one with less room left binds.
60
+ */
61
+ export function summarizeUsage(
62
+ usage: WorkspaceUsageResponse,
63
+ subjectId?: string | undefined,
64
+ ): UsageSummary {
65
+ const row =
66
+ subjectId === undefined
67
+ ? usage.members[0]
68
+ : usage.members.find((member) => member.subjectId === subjectId);
69
+ const member = row ? reading("member", row) : null;
70
+ const workspace = reading("workspace", usage.workspace);
71
+ const readings = [member, workspace].filter((value): value is UsageReading => value !== null);
72
+ if (readings.length === 0) return { state: "unlimited", binding: null, member, workspace };
73
+ // Raising a member ceiling cannot help while the shared pool is spent, so an
74
+ // exhausted workspace binds first.
75
+ const exhausted =
76
+ (workspace?.status === "exhausted" ? workspace : null) ??
77
+ (member?.status === "exhausted" ? member : null);
78
+ if (exhausted) return { state: "exhausted", binding: exhausted, member, workspace };
79
+ const warnings = readings.filter((value) => value.status === "warning");
80
+ const candidates = warnings.length > 0 ? warnings : readings;
81
+ const binding = candidates.reduce((tightest, value) =>
82
+ value.remaining < tightest.remaining ? value : tightest,
83
+ );
84
+ return { state: warnings.length > 0 ? "warning" : "ok", binding, member, workspace };
85
+ }
86
+
87
+ /** A whole-number percentage for display: "<1" for a sliver, never "0" for some use. */
88
+ export function usagePercentLabel(fraction: number): string {
89
+ if (!Number.isFinite(fraction) || fraction <= 0) return "0";
90
+ if (fraction < 0.01) return "<1";
91
+ if (fraction < 1 && Math.round(fraction * 100) === 100) return "99";
92
+ return String(Math.round(fraction * 100));
93
+ }
package/src/usage.ts ADDED
@@ -0,0 +1,50 @@
1
+ // @opengeni/react/usage — usage allowances for people, kept out of the package
2
+ // root and the session entry so hosts that don't meter usage never load it.
3
+ //
4
+ // Member-facing: `useUsage` + `<UsageMeter>` read the signed-in member's own
5
+ // `/usage/me` (the session proxy serves exactly that route) and
6
+ // `<UsageLimitNotice>` is the calm near/at-limit line for a composer header.
7
+ // Admin-facing: `<UsageMemberList>` shows every member against their limit and
8
+ // edits it with a share-of-budget slider; your backend saves the rule.
9
+ //
10
+ // Shares and percentages only by default. Pass `formatAmount` / `amounts` to
11
+ // show money, credits, or plan multiples in your own unit.
12
+ export { useUsage } from "./hooks/use-usage";
13
+ export type { UsageClientLike, UseUsageOptions, UseUsageResult } from "./hooks/use-usage";
14
+ export { summarizeUsage, usagePercentLabel } from "./usage/summary";
15
+ export type { UsageReading, UsageSummary } from "./usage/summary";
16
+ export {
17
+ DEFAULT_ALLOWANCE_LABELS,
18
+ allowanceLabels,
19
+ allowanceResetSentence,
20
+ formatAllowanceDate,
21
+ } from "./usage/allowance-copy";
22
+ export type { AllowanceLabels, AllowanceScope } from "./usage/allowance-copy";
23
+ export { DEFAULT_USAGE_METER_LABELS, UsageMeter, UsageMeterView } from "./components/usage-meter";
24
+ export type {
25
+ UsageMeterBaseProps,
26
+ UsageMeterLabels,
27
+ UsageMeterProps,
28
+ UsageMeterViewProps,
29
+ } from "./components/usage-meter";
30
+ export {
31
+ DEFAULT_USAGE_LIMIT_NOTICE_LABELS,
32
+ UsageLimitNotice,
33
+ UsageLimitNoticeView,
34
+ } from "./components/usage-limit-notice";
35
+ export type {
36
+ UsageLimitNoticeLabels,
37
+ UsageLimitNoticeProps,
38
+ } from "./components/usage-limit-notice";
39
+ export {
40
+ DEFAULT_USAGE_MEMBER_LIST_LABELS,
41
+ UsageMemberList,
42
+ describeMemberLimit,
43
+ } from "./components/usage-member-list";
44
+ export type {
45
+ UsageAmountFormat,
46
+ UsageMemberIdentity,
47
+ UsageMemberListLabels,
48
+ UsageMemberListProps,
49
+ } from "./components/usage-member-list";
50
+ export type { RenderAllowanceExhausted } from "./timeline/allowance-exhausted-row";