@opengeni/react 6.5.2-canary.41607687019001 → 6.7.0

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 (1154) hide show
  1. package/dist/app/app-state.d.ts +4 -0
  2. package/dist/app/app-state.js +19 -14
  3. package/dist/app/components/Composer.js +25 -23
  4. package/dist/app/components/agent/agent-capability-picker.js +10 -8
  5. package/dist/app/components/artifacts/artifact-browse-controls.js +4 -4
  6. package/dist/app/components/artifacts/artifact-library.js +21 -19
  7. package/dist/app/components/artifacts/artifact-page-chrome.js +3 -3
  8. package/dist/app/components/artifacts/artifact-viewer.js +23 -22
  9. package/dist/app/components/artifacts/artifact-viewer.js.map +1 -1
  10. package/dist/app/components/artifacts/chat-interactive-block.js +12 -12
  11. package/dist/app/components/artifacts/copy-artifact-link.js +7 -5
  12. package/dist/app/components/artifacts/file-reach-dialog.js +11 -9
  13. package/dist/app/components/artifacts/inline-chat-image.js +18 -18
  14. package/dist/app/components/artifacts/retained-file-preview.js +24 -23
  15. package/dist/app/components/artifacts/retained-text-preview.js +3 -3
  16. package/dist/app/components/artifacts/site-audience.js +6 -5
  17. package/dist/app/components/artifacts/site-conversations.js +16 -14
  18. package/dist/app/components/artifacts/site-data.js +18 -16
  19. package/dist/app/components/artifacts/site-public-link.js +3 -2
  20. package/dist/app/components/artifacts/site-publishing-page.js +39 -37
  21. package/dist/app/components/artifacts/site-publishing.js +34 -32
  22. package/dist/app/components/artifacts/site-settings.js +38 -36
  23. package/dist/app/components/artifacts/site-version-menu.js +8 -7
  24. package/dist/app/components/billing-class-mark.js +3 -3
  25. package/dist/app/components/bots/bot-launch-strip.js +17 -17
  26. package/dist/app/components/bots/bot-template-dialog.js +30 -28
  27. package/dist/app/components/bots/bot-template-shortcuts.js +19 -19
  28. package/dist/app/components/bots/bot-templates-page.js +38 -36
  29. package/dist/app/components/bots/bot-templates-page.js.map +1 -1
  30. package/dist/app/components/capabilities/capability-detail-sheet.js +13 -11
  31. package/dist/app/components/capabilities/capability-logo-source.js +13 -13
  32. package/dist/app/components/capabilities/capability-logo.js +4 -3
  33. package/dist/app/components/capabilities/connector-tool-permissions.js +8 -6
  34. package/dist/app/components/capabilities/native-connect-setup.js +14 -14
  35. package/dist/app/components/capabilities/own-logins-shared-heads-up.js +7 -6
  36. package/dist/app/components/capabilities/perform-capability-action.js +7 -6
  37. package/dist/app/components/capabilities/prepared-mcp-setup-card.js +17 -17
  38. package/dist/app/components/capabilities/session-capability-card.js +72 -70
  39. package/dist/app/components/capabilities/session-capability-card.js.map +1 -1
  40. package/dist/app/components/capabilities/session-chrome-card.js +28 -26
  41. package/dist/app/components/capabilities/session-connection-accounts.js +4 -3
  42. package/dist/app/components/capabilities/session-custom-mcp-card.js +20 -19
  43. package/dist/app/components/capabilities/session-github-card.js +22 -20
  44. package/dist/app/components/capabilities/session-machine-card.js +27 -25
  45. package/dist/app/components/capabilities/session-personal-github-card.js +16 -16
  46. package/dist/app/components/capabilities/session-plugin-card.js +10 -9
  47. package/dist/app/components/capabilities/use-capabilities-catalog.js +4 -3
  48. package/dist/app/components/capabilities/use-connection-accounts.js +5 -4
  49. package/dist/app/components/command-menu/chat-status.js +15 -13
  50. package/dist/app/components/command-menu/chat-switcher.js +35 -33
  51. package/dist/app/components/command-menu/chat-switcher.js.map +1 -1
  52. package/dist/app/components/command-menu/command-menu.js +53 -50
  53. package/dist/app/components/command-menu/command-menu.js.map +1 -1
  54. package/dist/app/components/command-menu/shortcut-sheet.js +18 -16
  55. package/dist/app/components/command-menu/shortcut-sheet.js.map +1 -1
  56. package/dist/app/components/common.js +4 -3
  57. package/dist/app/components/composer-capabilities-menu-body.js +4 -4
  58. package/dist/app/components/composer-mobile-plus-panel.js +8 -8
  59. package/dist/app/components/composer-mobile-plus.js +1 -1
  60. package/dist/app/components/credit-required-gate.js +3 -3
  61. package/dist/app/components/credit-required-prompt.js +10 -8
  62. package/dist/app/components/credit-required-prompt.js.map +1 -1
  63. package/dist/app/components/credits/checkout-credits-celebration.js +3 -2
  64. package/dist/app/components/credits/checkout-return.js +3 -2
  65. package/dist/app/components/credits/checkout-return.js.map +1 -1
  66. package/dist/app/components/credits/coupon-redeem.js +5 -4
  67. package/dist/app/components/credits/credit-refusal-notice.js +7 -5
  68. package/dist/app/components/cross-slot-deep-link-recovery.js +5 -4
  69. package/dist/app/components/desktop/app-shots.js +13 -11
  70. package/dist/app/components/desktop/computer-use.js +6 -4
  71. package/dist/app/components/desktop/this-computer.js +9 -7
  72. package/dist/app/components/feedback.js +5 -4
  73. package/dist/app/components/follow-up-repository-menu-body.js +8 -6
  74. package/dist/app/components/follow-up-repository-menu-body.js.map +1 -1
  75. package/dist/app/components/follow-up-repository-picker.js +1 -1
  76. package/dist/app/components/github-app-connect-launcher.js +5 -4
  77. package/dist/app/components/in-app-help-link.js +3 -3
  78. package/dist/app/components/knowledge/agent-learning-settings.js +3 -2
  79. package/dist/app/components/knowledge/agent-learning-settings.js.map +1 -1
  80. package/dist/app/components/machines/connect-machine-dialog.js +18 -16
  81. package/dist/app/components/manual-repository-editor.js +3 -2
  82. package/dist/app/components/markdown.js +6 -6
  83. package/dist/app/components/models/models-ui.js +12 -10
  84. package/dist/app/components/my-things.js +12 -10
  85. package/dist/app/components/my-things.js.map +1 -1
  86. package/dist/app/components/new-session-starters.js +3 -3
  87. package/dist/app/components/own-where-it-works.js +9 -7
  88. package/dist/app/components/personal-resource-attachment-surface.js +4 -4
  89. package/dist/app/components/pickers.js +5 -5
  90. package/dist/app/components/rail/channel-create-dialog.js +7 -5
  91. package/dist/app/components/rail/project-glyph.js +17 -17
  92. package/dist/app/components/rail/project-profile.js +31 -29
  93. package/dist/app/components/rail/rail-context.js +3 -3
  94. package/dist/app/components/rail/rail-sections.js +68 -66
  95. package/dist/app/components/rail/session-header.js +59 -57
  96. package/dist/app/components/rail/session-list.js +66 -64
  97. package/dist/app/components/rail/session-row-content.js +4 -4
  98. package/dist/app/components/rail/session-row-hover-details.js +14 -12
  99. package/dist/app/components/rail/session-shell.js +90 -88
  100. package/dist/app/components/rail/site-session-group-heading.js +8 -8
  101. package/dist/app/components/repository-picker.js +8 -6
  102. package/dist/app/components/secrets/session-secrets-panel.js +4 -3
  103. package/dist/app/components/secrets/vault-model.js +3 -2
  104. package/dist/app/components/session/agent-configuration-panel.js +25 -23
  105. package/dist/app/components/session/agent-configuration-panel.js.map +1 -1
  106. package/dist/app/components/session/artifact-link-boundary.js +3 -3
  107. package/dist/app/components/session/artifact-session-page.js +11 -9
  108. package/dist/app/components/session/banners.js +8 -8
  109. package/dist/app/components/session/codex-usage-notice.js +5 -3
  110. package/dist/app/components/session/console-new-conversation.js +42 -40
  111. package/dist/app/components/session/context-text-reader.js +3 -2
  112. package/dist/app/components/session/descendant-requests.js +39 -37
  113. package/dist/app/components/session/descendant-requests.js.map +1 -1
  114. package/dist/app/components/session/editable-artifacts-workspace.js +36 -34
  115. package/dist/app/components/session/editable-artifacts-workspace.js.map +1 -1
  116. package/dist/app/components/session/failed-session-banner.js +13 -11
  117. package/dist/app/components/session/failed-session-banner.js.map +1 -1
  118. package/dist/app/components/session/failure-recovery-boundary.js +3 -3
  119. package/dist/app/components/session/human-input-delegation-record.js +2 -2
  120. package/dist/app/components/session/human-input.js +33 -31
  121. package/dist/app/components/session/inspector.js +57 -55
  122. package/dist/app/components/session/inspector.js.map +1 -1
  123. package/dist/app/components/session/message-actions.js +5 -4
  124. package/dist/app/components/session/message-actions.js.map +1 -1
  125. package/dist/app/components/session/message-resource-attachments.js +12 -11
  126. package/dist/app/components/session/message-resource-attachments.js.map +1 -1
  127. package/dist/app/components/session/model-context-inspector.js +6 -4
  128. package/dist/app/components/session/model-recovery-notice.js +3 -3
  129. package/dist/app/components/session/new-session-settings-menu.js +11 -9
  130. package/dist/app/components/session/new-session-setup-strip.js +18 -18
  131. package/dist/app/components/session/sandbox-recovery-actions.js +3 -3
  132. package/dist/app/components/session/sandbox-switcher.js +10 -9
  133. package/dist/app/components/session/sandbox-workspace.js +47 -46
  134. package/dist/app/components/session/search-markdown-highlight.js +7 -7
  135. package/dist/app/components/session/search-results-view.js +8 -8
  136. package/dist/app/components/session/session-admin-access.js +13 -11
  137. package/dist/app/components/session/session-admission-notice.js +7 -5
  138. package/dist/app/components/session/session-avatar-picker.js +22 -20
  139. package/dist/app/components/session/session-avatar.js +16 -16
  140. package/dist/app/components/session/session-machine-access-notice.js +7 -5
  141. package/dist/app/components/session/session-profile-dialog.js +29 -27
  142. package/dist/app/components/session/session-profile-editor.js +30 -28
  143. package/dist/app/components/session/session-retention.js +10 -8
  144. package/dist/app/components/session/session-search-dialog.js +10 -10
  145. package/dist/app/components/session/session-skill-reviews.js +2 -1
  146. package/dist/app/components/session/session-skill-reviews.js.map +1 -1
  147. package/dist/app/components/session/session-tenancy-control.js +13 -11
  148. package/dist/app/components/session/session-tenancy-control.js.map +1 -1
  149. package/dist/app/components/session/session-unattended-setting.js +7 -5
  150. package/dist/app/components/session/session-usage-limit-section.js +11 -9
  151. package/dist/app/components/session/share-chat-dialog.js +9 -7
  152. package/dist/app/components/session/site-origin-link.js +3 -3
  153. package/dist/app/components/session/subagents.js +8 -8
  154. package/dist/app/components/session/subscription-account-indicator.js +6 -6
  155. package/dist/app/components/session-connectors-menu-body.js +4 -3
  156. package/dist/app/components/session-connectors-menu-body.js.map +1 -1
  157. package/dist/app/components/settings/row-select.js +7 -5
  158. package/dist/app/components/toaster.js +3 -2
  159. package/dist/app/components/transcription-settings.js +11 -9
  160. package/dist/app/components/ui/destructive-confirm.js +11 -9
  161. package/dist/app/components/usage/usage-entry.js +5 -5
  162. package/dist/app/components/window-bar.js +16 -14
  163. package/dist/app/components/workspace-composer-plus.js +22 -21
  164. package/dist/app/components/workspace-reach.js +6 -4
  165. package/dist/app/components/workspace-tenant-boundary.js +5 -4
  166. package/dist/app/embed/memory-navigation.js +3 -3
  167. package/dist/app/embed/session-app.js +211 -209
  168. package/dist/app/lib/actions/actions-provider.js +15 -13
  169. package/dist/app/lib/agent-capabilities.js +3 -3
  170. package/dist/app/lib/app-surfaces.js +7 -6
  171. package/dist/app/lib/archive-session.d.ts +9 -4
  172. package/dist/app/lib/archive-session.js +4 -2
  173. package/dist/app/lib/bot-templates.js +3 -2
  174. package/dist/app/lib/capabilities.js +3 -2
  175. package/dist/app/lib/codex-usage-query.js +2 -2
  176. package/dist/app/lib/composer-connectors.js +17 -16
  177. package/dist/app/lib/console-site.js +2 -2
  178. package/dist/app/lib/console-text.js +2 -2
  179. package/dist/app/lib/events.js +9 -9
  180. package/dist/app/lib/failed-session-copy.js +3 -3
  181. package/dist/app/lib/inbox.js +4 -2
  182. package/dist/app/lib/model-access-onboarding.js +3 -3
  183. package/dist/app/lib/move-chat-to-machine.js +3 -3
  184. package/dist/app/lib/navigation.js +2 -2
  185. package/dist/app/lib/session-branch-cache.js +6 -6
  186. package/dist/app/lib/session-create.js +4 -4
  187. package/dist/app/lib/session-group-pagination.js +6 -6
  188. package/dist/app/lib/session-hover-facts.js +13 -11
  189. package/dist/app/lib/session-model.js +2 -2
  190. package/dist/app/lib/session-rail.js +3 -3
  191. package/dist/app/lib/session-rename.js +3 -3
  192. package/dist/app/lib/session-restart-operation-controller.js +4 -3
  193. package/dist/app/lib/session-tenancy.js +3 -2
  194. package/dist/app/lib/session-usage-limit.js +3 -2
  195. package/dist/app/lib/sessions-group.js +5 -5
  196. package/dist/app/lib/site-publishing.js +3 -2
  197. package/dist/app/lib/site-tool-consent-dialog.js +9 -7
  198. package/dist/app/lib/site-tool-consent-dialog.js.map +1 -1
  199. package/dist/app/lib/site-tool-consent.js +1 -1
  200. package/dist/app/lib/subscription-plans.js +3 -2
  201. package/dist/app/lib/toast.js +2 -1
  202. package/dist/app/lib/turn-failure-analytics.js +4 -4
  203. package/dist/app/lib/use-duplicate-site.js +6 -5
  204. package/dist/app/lib/use-follow-up-repositories.js +6 -5
  205. package/dist/app/lib/use-workspace-integrations.js +4 -3
  206. package/dist/app/lib/use-workspace-machines.js +4 -4
  207. package/dist/app/lib/use-workspace-model-catalog.js +5 -4
  208. package/dist/app/lib/use-workspace-rigs.js +2 -2
  209. package/dist/app/lib/workspace-navigation-preference.js +4 -4
  210. package/dist/app/lib/workspace-scope-context.js +3 -3
  211. package/dist/app/routes/artifacts.js +67 -66
  212. package/dist/app/routes/artifacts.js.map +1 -1
  213. package/dist/app/routes/retained-artifact.js +42 -40
  214. package/dist/app/routes/retained-artifact.js.map +1 -1
  215. package/dist/app/routes/session-unavailable.js +8 -7
  216. package/dist/app/routes/session.js +119 -117
  217. package/dist/app/routes/sessions-index-hydration.js +5 -5
  218. package/dist/app/routes/sessions-index.js +104 -102
  219. package/dist/app/routes/site-view.js +67 -65
  220. package/dist/app/routes/site-view.js.map +1 -1
  221. package/dist/artifacts-document.js +4 -4
  222. package/dist/artifacts-presentation.js +4 -4
  223. package/dist/artifacts-spreadsheet.js +4 -4
  224. package/dist/artifacts.js +10 -10
  225. package/dist/automations.js +17 -15
  226. package/dist/automations.js.map +1 -1
  227. package/dist/browser-viewer-TC27OCIP.js +23 -0
  228. package/dist/chat-interactive-block-RWPQBHVS.js +18 -0
  229. package/dist/chunk-2BDT3UZQ.js +229 -0
  230. package/dist/chunk-2CLNIEK4.js +373 -0
  231. package/dist/chunk-2FSBSCZJ.js +451 -0
  232. package/dist/chunk-2I7HDP53.js +199 -0
  233. package/dist/chunk-2INLDVK3.js +15 -0
  234. package/dist/chunk-2KALVELR.js +126 -0
  235. package/dist/chunk-2M3J7ZWQ.js +418 -0
  236. package/dist/chunk-2OP6WLGV.js +708 -0
  237. package/dist/chunk-2RG7NIAS.js +2936 -0
  238. package/dist/chunk-2STUPWEL.js +135 -0
  239. package/dist/chunk-2YUOVM3G.js +271 -0
  240. package/dist/chunk-2Z3NQNTM.js +3670 -0
  241. package/dist/chunk-3CPWWGNK.js +920 -0
  242. package/dist/chunk-3ED2U6XE.js +37 -0
  243. package/dist/chunk-3GZA4BUW.js +216 -0
  244. package/dist/chunk-3IK6UYO6.js +1022 -0
  245. package/dist/chunk-3PZ7JZI2.js +431 -0
  246. package/dist/chunk-4DVJ6ONS.js +50 -0
  247. package/dist/chunk-4DVNUCRR.js +2386 -0
  248. package/dist/chunk-4DVNUCRR.js.map +1 -0
  249. package/dist/chunk-4E3ZJRTZ.js +41 -0
  250. package/dist/chunk-4SAWSRAA.js +141 -0
  251. package/dist/chunk-53AGXXZM.js +307 -0
  252. package/dist/chunk-54YW6SZZ.js +818 -0
  253. package/dist/chunk-57AZS3IE.js +2317 -0
  254. package/dist/chunk-5CPEEAFD.js +143 -0
  255. package/dist/chunk-5EWSRZ2Y.js +340 -0
  256. package/dist/chunk-5IE76VCY.js +387 -0
  257. package/dist/chunk-5NWEKLDZ.js +170 -0
  258. package/dist/chunk-5O2FCCHZ.js +198 -0
  259. package/dist/chunk-5QAY6K77.js +399 -0
  260. package/dist/chunk-5YKW2K6I.js +625 -0
  261. package/dist/chunk-5YKW2K6I.js.map +1 -0
  262. package/dist/chunk-6BCXNDEI.js +4116 -0
  263. package/dist/chunk-6BCXNDEI.js.map +1 -0
  264. package/dist/chunk-6DK6Z4UN.js +2599 -0
  265. package/dist/chunk-6DVCC7QS.js +702 -0
  266. package/dist/chunk-6JHU2UBS.js +2058 -0
  267. package/dist/chunk-6PZ7OBYU.js +490 -0
  268. package/dist/chunk-6WD2INST.js +539 -0
  269. package/dist/chunk-6WD2INST.js.map +1 -0
  270. package/dist/chunk-6WGRDRMA.js +163 -0
  271. package/dist/chunk-77WAKEAH.js +186 -0
  272. package/dist/chunk-7T2ZE3VT.js +5558 -0
  273. package/dist/chunk-7T2ZE3VT.js.map +1 -0
  274. package/dist/chunk-7TDO3CUM.js +393 -0
  275. package/dist/chunk-7TIX2UAR.js +247 -0
  276. package/dist/chunk-7V5REBCP.js +148 -0
  277. package/dist/chunk-7VMZGLYI.js +339 -0
  278. package/dist/chunk-7W37NS3I.js +236 -0
  279. package/dist/chunk-7X6SDK2C.js +111 -0
  280. package/dist/chunk-7ZNUHRP5.js +95 -0
  281. package/dist/chunk-A36PZALD.js +84 -0
  282. package/dist/chunk-AUI6VA63.js +107 -0
  283. package/dist/chunk-AW2MQB37.js +24 -0
  284. package/dist/chunk-AWKES45Y.js +198 -0
  285. package/dist/chunk-AXHZYXUV.js +132 -0
  286. package/dist/chunk-BHNSJVBC.js +129 -0
  287. package/dist/chunk-BJEJFISW.js +50 -0
  288. package/dist/chunk-BJFH6JI5.js +422 -0
  289. package/dist/chunk-BMICEQZQ.js +960 -0
  290. package/dist/chunk-BTLBYBLU.js +29 -0
  291. package/dist/chunk-BXBDYNRP.js +89 -0
  292. package/dist/chunk-C372BFOV.js +357 -0
  293. package/dist/chunk-C43KRXGA.js +234 -0
  294. package/dist/chunk-C43KRXGA.js.map +1 -0
  295. package/dist/chunk-CMKGILJK.js +4824 -0
  296. package/dist/chunk-CRAOSVHC.js +50 -0
  297. package/dist/chunk-CRU35QQH.js +281 -0
  298. package/dist/chunk-CUIWCGMA.js +172 -0
  299. package/dist/chunk-D5TWNFFE.js +38 -0
  300. package/dist/chunk-DF5EAHDN.js +4461 -0
  301. package/dist/chunk-DJAXC5OK.js +56 -0
  302. package/dist/chunk-DXBYWSL5.js +3550 -0
  303. package/dist/chunk-DXR5PDFP.js +84 -0
  304. package/dist/chunk-DZWARC4M.js +267 -0
  305. package/dist/chunk-DZXEDSQI.js +106 -0
  306. package/dist/chunk-E7XERZWC.js +48 -0
  307. package/dist/chunk-ECJBYNLJ.js +79 -0
  308. package/dist/chunk-EDI6SJ2N.js +43 -0
  309. package/dist/chunk-EWSOC6WF.js +114 -0
  310. package/dist/chunk-F2OPHAUN.js +103 -0
  311. package/dist/chunk-F4ISQGGM.js +81 -0
  312. package/dist/chunk-FO4LYKJL.js +197 -0
  313. package/dist/chunk-FPXASDG5.js +73 -0
  314. package/dist/chunk-FSOQDUCG.js +117 -0
  315. package/dist/chunk-FSOQDUCG.js.map +1 -0
  316. package/dist/chunk-FVXBNBHO.js +157 -0
  317. package/dist/chunk-FYWT2O76.js +34 -0
  318. package/dist/chunk-FYWT2O76.js.map +1 -0
  319. package/dist/chunk-FZC5N55X.js +981 -0
  320. package/dist/chunk-GAVYGBFI.js +99 -0
  321. package/dist/chunk-GFIMOUDT.js +846 -0
  322. package/dist/chunk-GFIMOUDT.js.map +1 -0
  323. package/dist/chunk-GKVJIDHF.js +33 -0
  324. package/dist/chunk-GVN5SZLX.js +212 -0
  325. package/dist/chunk-H3T7IWNA.js +134 -0
  326. package/dist/chunk-HAX4LCR5.js +261 -0
  327. package/dist/chunk-HC4JFZVU.js +121 -0
  328. package/dist/chunk-HEFPPMBQ.js +581 -0
  329. package/dist/chunk-HGKTHF2U.js +1356 -0
  330. package/dist/chunk-HGKTHF2U.js.map +1 -0
  331. package/dist/chunk-HNLR7Q4Z.js +83 -0
  332. package/dist/chunk-HSOXMJOT.js +12 -0
  333. package/dist/chunk-I4MRDSUF.js +281 -0
  334. package/dist/chunk-I4QEJ62Y.js +202 -0
  335. package/dist/chunk-I5B5L6Q4.js +56 -0
  336. package/dist/chunk-I5QZJODL.js +264 -0
  337. package/dist/chunk-I7ITSXSJ.js +603 -0
  338. package/dist/chunk-I7XIZRFD.js +390 -0
  339. package/dist/chunk-IDANQPRH.js +82 -0
  340. package/dist/chunk-IFB3WJ36.js +212 -0
  341. package/dist/chunk-IHTAKKTK.js +264 -0
  342. package/dist/chunk-IKXNLWAL.js +205 -0
  343. package/dist/chunk-IKXNLWAL.js.map +1 -0
  344. package/dist/chunk-ILDXWY37.js +173 -0
  345. package/dist/chunk-IMDQUHBJ.js +570 -0
  346. package/dist/chunk-IMZCQBOT.js +119 -0
  347. package/dist/chunk-IXPTECSC.js +403 -0
  348. package/dist/chunk-J255A3N5.js +71 -0
  349. package/dist/chunk-J5F5HPPW.js +141 -0
  350. package/dist/chunk-JDTGRRNU.js +5045 -0
  351. package/dist/chunk-JDTGRRNU.js.map +1 -0
  352. package/dist/chunk-JEA3QDX7.js +2469 -0
  353. package/dist/chunk-JEUPAVYY.js +156 -0
  354. package/dist/chunk-JKHKLL5W.js +194 -0
  355. package/dist/chunk-JQL7ZH6C.js +650 -0
  356. package/dist/chunk-JWB44UGJ.js +57 -0
  357. package/dist/chunk-JZ4NLCAP.js +333 -0
  358. package/dist/chunk-K2A5PXQ5.js +412 -0
  359. package/dist/chunk-K56XV3C3.js +623 -0
  360. package/dist/chunk-K6GAXXVA.js +23 -0
  361. package/dist/chunk-KCBMFSMS.js +199 -0
  362. package/dist/chunk-KF2FV3ZJ.js +268 -0
  363. package/dist/chunk-KJD65EJP.js +278 -0
  364. package/dist/chunk-KLEUWIMZ.js +386 -0
  365. package/dist/chunk-KODELWYT.js +309 -0
  366. package/dist/chunk-KRDR5RJD.js +83 -0
  367. package/dist/chunk-KUDGXAF7.js +914 -0
  368. package/dist/chunk-KY2R73CG.js +171 -0
  369. package/dist/chunk-KY2R73CG.js.map +1 -0
  370. package/dist/chunk-KYS77RPN.js +85 -0
  371. package/dist/chunk-L7YTNTIK.js +368 -0
  372. package/dist/chunk-LHPNABDH.js +686 -0
  373. package/dist/chunk-MFROMEKA.js +401 -0
  374. package/dist/chunk-MIHN76LX.js +2656 -0
  375. package/dist/chunk-MIYFS2XN.js +42 -0
  376. package/dist/chunk-MJUCFQMS.js +65 -0
  377. package/dist/chunk-MM4FNWI4.js +3064 -0
  378. package/dist/chunk-MNZG4OHU.js +790 -0
  379. package/dist/chunk-MVW6HNPI.js +250 -0
  380. package/dist/chunk-MVW6HNPI.js.map +1 -0
  381. package/dist/chunk-N6AACDUW.js +200 -0
  382. package/dist/chunk-NC55IFN3.js +781 -0
  383. package/dist/chunk-NC7PVOEK.js +98 -0
  384. package/dist/chunk-NCYMNCJO.js +70 -0
  385. package/dist/chunk-ND2BXV3P.js +259 -0
  386. package/dist/chunk-NDBTFUO6.js +272 -0
  387. package/dist/chunk-NDQJZ7HF.js +206 -0
  388. package/dist/chunk-NGJJJPZZ.js +162 -0
  389. package/dist/chunk-NJTSNNE7.js +251 -0
  390. package/dist/chunk-NPGISCU6.js +4159 -0
  391. package/dist/chunk-NPGISCU6.js.map +1 -0
  392. package/dist/chunk-NRTE7DNV.js +1270 -0
  393. package/dist/chunk-NULUNM7H.js +290 -0
  394. package/dist/chunk-NUNZS36W.js +227 -0
  395. package/dist/chunk-NW53H5RW.js +2424 -0
  396. package/dist/chunk-NXCMHIKI.js +263 -0
  397. package/dist/chunk-O3LKCBP5.js +159 -0
  398. package/dist/chunk-O4EA4F3W.js +103 -0
  399. package/dist/chunk-O4EA4F3W.js.map +1 -0
  400. package/dist/chunk-O4OOG3D6.js +116 -0
  401. package/dist/chunk-O4OOG3D6.js.map +1 -0
  402. package/dist/chunk-O6N4ABCA.js +376 -0
  403. package/dist/chunk-O732GAFC.js +112 -0
  404. package/dist/chunk-OF4TIKYC.js +690 -0
  405. package/dist/chunk-OMPVOMPP.js +70 -0
  406. package/dist/chunk-OPJJSKUK.js +118 -0
  407. package/dist/chunk-OPWCMA4D.js +196 -0
  408. package/dist/chunk-ORJPS5VN.js +1193 -0
  409. package/dist/chunk-OSY5K7L7.js +187 -0
  410. package/dist/chunk-OV6QJRT4.js +45 -0
  411. package/dist/chunk-OVKYVZMW.js +108 -0
  412. package/dist/chunk-OZCBM3UC.js +171 -0
  413. package/dist/chunk-P3A2EINJ.js +61 -0
  414. package/dist/chunk-PTAG4PDC.js +27 -0
  415. package/dist/chunk-PTF5B7TJ.js +298 -0
  416. package/dist/chunk-Q3DPEYX4.js +848 -0
  417. package/dist/chunk-Q6CGOPJD.js +215 -0
  418. package/dist/chunk-Q6CGOPJD.js.map +1 -0
  419. package/dist/chunk-QB2KMIDP.js +100 -0
  420. package/dist/chunk-QCSJ4CWE.js +1067 -0
  421. package/dist/chunk-QIOQ2NPQ.js +414 -0
  422. package/dist/chunk-QK5EFEUT.js +353 -0
  423. package/dist/chunk-QPQBLYQJ.js +41 -0
  424. package/dist/chunk-QPSGCC5D.js +184 -0
  425. package/dist/chunk-QZAAUQRN.js +474 -0
  426. package/dist/chunk-QZM6YDJW.js +489 -0
  427. package/dist/chunk-QZM6YDJW.js.map +1 -0
  428. package/dist/chunk-RGBI63KJ.js +188 -0
  429. package/dist/chunk-RLBKLAEY.js +138 -0
  430. package/dist/chunk-RMFKVOM7.js +304 -0
  431. package/dist/chunk-ROKQU7WG.js +258 -0
  432. package/dist/chunk-RPVREAU7.js +251 -0
  433. package/dist/chunk-RQKLF42C.js +723 -0
  434. package/dist/chunk-SC6RRD2D.js +38 -0
  435. package/dist/chunk-SC6RRD2D.js.map +1 -0
  436. package/dist/chunk-SEO7TICN.js +94 -0
  437. package/dist/chunk-SHHJCL7X.js +432 -0
  438. package/dist/chunk-SIRLACNZ.js +114 -0
  439. package/dist/chunk-SKPHMYAA.js +237 -0
  440. package/dist/chunk-SODC7T6L.js +1583 -0
  441. package/dist/chunk-SQJIKMN3.js +366 -0
  442. package/dist/chunk-SVINDKVW.js +26 -0
  443. package/dist/chunk-SYCDHPZF.js +335 -0
  444. package/dist/chunk-T2QX3FDP.js +133 -0
  445. package/dist/chunk-T3OWFVMS.js +1187 -0
  446. package/dist/chunk-T6XI5FLY.js +61 -0
  447. package/dist/chunk-T7OXJZCX.js +62 -0
  448. package/dist/chunk-TAT5USZN.js +353 -0
  449. package/dist/chunk-TPQTRNER.js +172 -0
  450. package/dist/chunk-TUIN4MB7.js +266 -0
  451. package/dist/chunk-TX3VECZU.js +71 -0
  452. package/dist/chunk-TXLIEOJX.js +9624 -0
  453. package/dist/chunk-U3DN4HEY.js +27 -0
  454. package/dist/chunk-U7XM7CB4.js +191 -0
  455. package/dist/chunk-UJK53QFL.js +140 -0
  456. package/dist/chunk-UMTXA2TH.js +319 -0
  457. package/dist/chunk-UPDSXFK5.js +199 -0
  458. package/dist/chunk-UTIAXH52.js +269 -0
  459. package/dist/chunk-UVN5TMHU.js +1184 -0
  460. package/dist/chunk-V4Z4B2E3.js +52 -0
  461. package/dist/chunk-V4Z4B2E3.js.map +1 -0
  462. package/dist/chunk-VGYXW3VG.js +246 -0
  463. package/dist/chunk-VS7AHPCZ.js +255 -0
  464. package/dist/chunk-VTTAJOQ7.js +121 -0
  465. package/dist/chunk-VWPOLUAO.js +99 -0
  466. package/dist/chunk-X3MWB2QU.js +3851 -0
  467. package/dist/chunk-X6KAJI3V.js +211 -0
  468. package/dist/chunk-XBLRHV5R.js +50 -0
  469. package/dist/chunk-XDFP2LMW.js +605 -0
  470. package/dist/chunk-XEQMZB3C.js +525 -0
  471. package/dist/chunk-XEYLT5VA.js +223 -0
  472. package/dist/chunk-XHIQ5I6N.js +918 -0
  473. package/dist/chunk-XLH7QY2R.js +378 -0
  474. package/dist/chunk-XWFAMUZQ.js +113 -0
  475. package/dist/chunk-Y4BB2KS2.js +294 -0
  476. package/dist/chunk-Y4BB2KS2.js.map +1 -0
  477. package/dist/chunk-Y4OBB2VN.js +84 -0
  478. package/dist/chunk-YCVD6CI3.js +234 -0
  479. package/dist/chunk-YENLNISG.js +270 -0
  480. package/dist/chunk-YIRVLKAX.js +351 -0
  481. package/dist/chunk-YL73CVNK.js +390 -0
  482. package/dist/chunk-YLS6QE5G.js +288 -0
  483. package/dist/chunk-YNF2OC54.js +366 -0
  484. package/dist/chunk-YNF2OC54.js.map +1 -0
  485. package/dist/chunk-YPWU5KPE.js +147 -0
  486. package/dist/chunk-YQXTDZSU.js +2984 -0
  487. package/dist/chunk-YSJEAAOL.js +178 -0
  488. package/dist/chunk-YWIFM7D7.js +499 -0
  489. package/dist/chunk-YWVI6ZMK.js +103 -0
  490. package/dist/chunk-Z4FMAFNH.js +847 -0
  491. package/dist/chunk-Z654FWNU.js +136 -0
  492. package/dist/chunk-Z7Y523PS.js +130 -0
  493. package/dist/chunk-ZD67RM6G.js +60 -0
  494. package/dist/chunk-ZEG4VPBL.js +187 -0
  495. package/dist/chunk-ZHDFQITM.js +283 -0
  496. package/dist/chunk-ZHDFQITM.js.map +1 -0
  497. package/dist/chunk-ZLYCOBHW.js +75 -0
  498. package/dist/chunk-ZNJ5MTXV.js +89 -0
  499. package/dist/chunk-ZSGY3H53.js +155 -0
  500. package/dist/chunk-ZTPXACWB.js +1788 -0
  501. package/dist/chunk-ZUA3JMI6.js +107 -0
  502. package/dist/chunk-ZYAZUPPV.js +559 -0
  503. package/dist/composer.js +8 -8
  504. package/dist/computer-viewer-TDDO25AV.js +21 -0
  505. package/dist/connect.js +12 -12
  506. package/dist/desktop-dictation.js +12 -10
  507. package/dist/desktop-dictation.js.map +1 -1
  508. package/dist/desktop.js +2 -2
  509. package/dist/editor.js +2 -2
  510. package/dist/embedded-new-voice-2G3VLPVQ.js +24 -0
  511. package/dist/embedded-voice-T5IWOWGD.js +24 -0
  512. package/dist/fleet-decision-row-WM64KXP3.js +361 -0
  513. package/dist/in-chat-connect-model.js +5 -5
  514. package/dist/index.js +51 -51
  515. package/dist/interaction.js +5 -5
  516. package/dist/machines.js +3 -3
  517. package/dist/meetings-recorder.js +1 -1
  518. package/dist/meetings.js +40 -32
  519. package/dist/meetings.js.map +1 -1
  520. package/dist/messages/en.d.ts +3 -0
  521. package/dist/messages.js +1 -1
  522. package/dist/model-policy-picker-menu-SMC6J6QN.js +22 -0
  523. package/dist/payment-page-card-G4U63KUV.js +223 -0
  524. package/dist/platform-activity-row-BUZGZAKZ.js +128 -0
  525. package/dist/queue-surface-implementation-4KUZ4PJV.js +908 -0
  526. package/dist/realtime.js +4 -4
  527. package/dist/recorder-host-WF2RRR56.js +69 -0
  528. package/dist/recorder-host-WF2RRR56.js.map +1 -0
  529. package/dist/recordings.js +3 -3
  530. package/dist/sandbox-files-ESDMOFSD.js +27 -0
  531. package/dist/session-app.js +211 -209
  532. package/dist/session-connect-cards-Q53KMMYY.js +25 -0
  533. package/dist/session-list-model.js +2 -2
  534. package/dist/session-realtime-CF3I35WJ.js +30 -0
  535. package/dist/session-realtime.js +2 -2
  536. package/dist/session-ui.js +33 -31
  537. package/dist/session.js +5 -5
  538. package/dist/sites.js +2 -2
  539. package/dist/terminal.js +2 -2
  540. package/dist/this-computer.js +3 -3
  541. package/dist/timeline-annotation-markers-CJK4RYZ4.js +157 -0
  542. package/dist/timeline-annotation-selection-67GF5H26.js +208 -0
  543. package/dist/timeline-annotations-dialog-ONJPQDJQ.js +283 -0
  544. package/dist/ui/access-list.js +11 -9
  545. package/dist/ui/access-list.js.map +1 -1
  546. package/dist/ui/api-error.d.ts +6 -3
  547. package/dist/ui/api-error.js +2 -1
  548. package/dist/ui/cadence-picker.js +6 -4
  549. package/dist/ui/choice-cards.js +5 -3
  550. package/dist/ui/confirm-dialog.js +2 -2
  551. package/dist/ui/copy-field.js +5 -3
  552. package/dist/ui/detail-page.js +2 -2
  553. package/dist/ui/detail-sheet.js +2 -2
  554. package/dist/ui/diff-view.js +4 -3
  555. package/dist/ui/disclosure.js +3 -3
  556. package/dist/ui/email-chips-input.js +5 -3
  557. package/dist/ui/error-message.js +2 -1
  558. package/dist/ui/error-reference.d.ts +15 -0
  559. package/dist/ui/error-text.d.ts +10 -0
  560. package/dist/ui/error-text.js +9 -0
  561. package/dist/ui/error-text.js.map +1 -0
  562. package/dist/ui/field.js +4 -2
  563. package/dist/ui/flush-form-page.js +8 -6
  564. package/dist/ui/form-dialog.js +7 -5
  565. package/dist/ui/list-row.js +3 -3
  566. package/dist/ui/load-failure.js +3 -2
  567. package/dist/ui/load-failure.js.map +1 -1
  568. package/dist/ui/notice.js +3 -1
  569. package/dist/ui/relative-time.js +2 -2
  570. package/dist/ui/revision-history.js +9 -7
  571. package/dist/ui/revision-history.js.map +1 -1
  572. package/dist/ui/role-select.js +10 -8
  573. package/dist/ui/segmented-control.js +4 -2
  574. package/dist/ui/select-menu.js +5 -3
  575. package/dist/ui/setting-row.js +3 -1
  576. package/dist/ui/switch.js +4 -2
  577. package/dist/ui/usage-meter.js +3 -3
  578. package/dist/ui/word-list-row.js +4 -2
  579. package/dist/usage.js +2 -2
  580. package/dist/workbench.js +4 -4
  581. package/package.json +5 -6
  582. package/src/app/app-state.tsx +126 -14
  583. package/src/app/components/artifacts/site-data.tsx +2 -2
  584. package/src/app/components/artifacts/site-settings.tsx +2 -2
  585. package/src/app/components/rail/session-list.tsx +7 -8
  586. package/src/app/components/rail/session-shell.tsx +3 -3
  587. package/src/app/components/repository-picker.tsx +8 -1
  588. package/src/app/components/session/model-context-inspector.tsx +2 -1
  589. package/src/app/components/session/session-admin-access.tsx +2 -2
  590. package/src/app/lib/actions/chat-operations.ts +4 -4
  591. package/src/app/lib/archive-session.test.tsx +265 -2
  592. package/src/app/lib/archive-session.tsx +175 -9
  593. package/src/app/lib/copy-link.ts +2 -2
  594. package/src/app/lib/inbox.tsx +2 -2
  595. package/src/app/lib/session-failure-toasts.ts +3 -2
  596. package/src/app/lib/toast.test.tsx +215 -0
  597. package/src/app/lib/toast.tsx +67 -2
  598. package/src/app/personal-github-reconnect.test.tsx +356 -0
  599. package/src/app/routes/artifacts.tsx +1 -2
  600. package/src/components/tool-action-review.tsx +14 -1
  601. package/src/meetings/delete-meeting-dialog.tsx +2 -1
  602. package/src/meetings/meeting-ask.tsx +2 -1
  603. package/src/meetings/meeting-detail-page.tsx +2 -1
  604. package/src/meetings/meeting-notes.tsx +2 -1
  605. package/src/meetings/meeting-settings.tsx +4 -1
  606. package/src/meetings/meeting-transcript.tsx +4 -1
  607. package/src/meetings/recorder-context.tsx +10 -0
  608. package/src/meetings/recorder-host.test.tsx +60 -2
  609. package/src/meetings/recorder-host.tsx +16 -3
  610. package/src/meetings/recorder-panel.tsx +2 -1
  611. package/src/meetings/recorder-workspace.test.tsx +26 -1
  612. package/src/messages/en.ts +6 -0
  613. package/src/ui/api-error.test.ts +29 -5
  614. package/src/ui/api-error.tsx +10 -4
  615. package/src/ui/error-message.tsx +8 -0
  616. package/src/ui/error-reference.test.ts +54 -0
  617. package/src/ui/error-reference.ts +51 -0
  618. package/src/ui/error-text.test.tsx +66 -0
  619. package/src/ui/error-text.tsx +49 -0
  620. package/src/ui/field.tsx +4 -1
  621. package/src/ui/notice.tsx +7 -2
  622. package/src/ui/setting-row.tsx +4 -1
  623. package/styles/app.css +12 -0
  624. package/styles/compiled.css +9 -0
  625. package/dist/browser-viewer-NOP5EAUO.js +0 -23
  626. package/dist/chat-interactive-block-G7O44JHR.js +0 -18
  627. package/dist/chunk-26RWVLRD.js +0 -135
  628. package/dist/chunk-2AHTY7OT.js +0 -247
  629. package/dist/chunk-2GDNWKSC.js +0 -3670
  630. package/dist/chunk-2JENKGCE.js +0 -339
  631. package/dist/chunk-2KYQC4T5.js +0 -155
  632. package/dist/chunk-2RREGDQH.js +0 -708
  633. package/dist/chunk-2T7DX6KR.js +0 -353
  634. package/dist/chunk-2VB2O4FQ.js +0 -920
  635. package/dist/chunk-2VTTKH23.js +0 -94
  636. package/dist/chunk-2XNG2KNT.js +0 -172
  637. package/dist/chunk-2YC6JQRO.js +0 -399
  638. package/dist/chunk-2ZVRJRXC.js +0 -27
  639. package/dist/chunk-35737UT4.js +0 -162
  640. package/dist/chunk-366XZ4PM.js +0 -41
  641. package/dist/chunk-36MIDGAH.js +0 -199
  642. package/dist/chunk-3FD76LXM.js +0 -212
  643. package/dist/chunk-3OVIXY4O.js +0 -213
  644. package/dist/chunk-3OVIXY4O.js.map +0 -1
  645. package/dist/chunk-3QNRBEYH.js +0 -432
  646. package/dist/chunk-3QX55WLC.js +0 -15
  647. package/dist/chunk-3USJPT2S.js +0 -1022
  648. package/dist/chunk-42CMQ5VR.js +0 -251
  649. package/dist/chunk-4LPOWQJY.js +0 -42
  650. package/dist/chunk-4NBTZRKT.js +0 -79
  651. package/dist/chunk-4OXI6HCV.js +0 -118
  652. package/dist/chunk-4SZZAFYQ.js +0 -2317
  653. package/dist/chunk-4TQL3WP2.js +0 -140
  654. package/dist/chunk-4Y6BK7IU.js +0 -196
  655. package/dist/chunk-4YD7YZC5.js +0 -373
  656. package/dist/chunk-5DTST3TP.js +0 -81
  657. package/dist/chunk-5FH5LQVS.js +0 -130
  658. package/dist/chunk-5KWMYPJV.js +0 -847
  659. package/dist/chunk-5MUJDC6C.js +0 -84
  660. package/dist/chunk-5QM2WPKV.js +0 -41
  661. package/dist/chunk-5WUN7XPD.js +0 -1184
  662. package/dist/chunk-64PO2WXU.js +0 -1067
  663. package/dist/chunk-6AHATAAY.js +0 -431
  664. package/dist/chunk-6ED2YWBT.js +0 -56
  665. package/dist/chunk-6GXVYAGR.js +0 -170
  666. package/dist/chunk-6H4SJBPE.js +0 -85
  667. package/dist/chunk-6MT3HHUB.js +0 -84
  668. package/dist/chunk-6UHCBH4G.js +0 -198
  669. package/dist/chunk-6WLX3NR3.js +0 -198
  670. package/dist/chunk-73NXYYWE.js +0 -112
  671. package/dist/chunk-76ERNKIZ.js +0 -603
  672. package/dist/chunk-776QZ573.js +0 -57
  673. package/dist/chunk-7BYWOFVH.js +0 -171
  674. package/dist/chunk-7O5CGGIQ.js +0 -108
  675. package/dist/chunk-7QOHRZ67.js +0 -251
  676. package/dist/chunk-7WIDB4PL.js +0 -2058
  677. package/dist/chunk-7WKP3DYJ.js +0 -37
  678. package/dist/chunk-7XOVTPDI.js +0 -227
  679. package/dist/chunk-AB5MBIXY.js +0 -281
  680. package/dist/chunk-ADNMXBCX.js +0 -1193
  681. package/dist/chunk-AFBJTUFK.js +0 -202
  682. package/dist/chunk-ALVRWCXE.js +0 -61
  683. package/dist/chunk-AOHU6O3M.js +0 -247
  684. package/dist/chunk-AOHU6O3M.js.map +0 -1
  685. package/dist/chunk-APW4T4SW.js +0 -270
  686. package/dist/chunk-AXBSYWKX.js +0 -2656
  687. package/dist/chunk-B2I5ZW35.js +0 -422
  688. package/dist/chunk-B3LMRTRF.js +0 -223
  689. package/dist/chunk-BE2XENG2.js +0 -292
  690. package/dist/chunk-BE2XENG2.js.map +0 -1
  691. package/dist/chunk-BF4SADKX.js +0 -29
  692. package/dist/chunk-BKP43KK4.js +0 -1788
  693. package/dist/chunk-BM3NEZ6X.js +0 -781
  694. package/dist/chunk-BT3BAGB5.js +0 -216
  695. package/dist/chunk-BTSYDIVJ.js +0 -357
  696. package/dist/chunk-BUBNGKWG.js +0 -70
  697. package/dist/chunk-BVUJV5WR.js +0 -126
  698. package/dist/chunk-BZO5ZMUP.js +0 -27
  699. package/dist/chunk-C3HUF3M2.js +0 -157
  700. package/dist/chunk-C5QCAOES.js +0 -264
  701. package/dist/chunk-CGK6ALQU.js +0 -159
  702. package/dist/chunk-CPYGO76Q.js +0 -335
  703. package/dist/chunk-CQH4FWYA.js +0 -490
  704. package/dist/chunk-CZP5QXNB.js +0 -234
  705. package/dist/chunk-D2TOWEYH.js +0 -266
  706. package/dist/chunk-D6L4GHRH.js +0 -340
  707. package/dist/chunk-DKT3N37I.js +0 -50
  708. package/dist/chunk-DMMJIFKA.js +0 -84
  709. package/dist/chunk-DO74DQC7.js +0 -26
  710. package/dist/chunk-DOFJZ2JU.js +0 -83
  711. package/dist/chunk-DSXVY5WZ.js +0 -119
  712. package/dist/chunk-E337C2VK.js +0 -82
  713. package/dist/chunk-E6NRSRBE.js +0 -114
  714. package/dist/chunk-E6SQKHAU.js +0 -114
  715. package/dist/chunk-E7UIVD7F.js +0 -236
  716. package/dist/chunk-EGBII4CP.js +0 -229
  717. package/dist/chunk-EILSAQVJ.js +0 -200
  718. package/dist/chunk-ELL6HSYR.js +0 -307
  719. package/dist/chunk-EUBGLFFR.js +0 -73
  720. package/dist/chunk-EW6RNWSH.js +0 -212
  721. package/dist/chunk-EYUT5Y6V.js +0 -2599
  722. package/dist/chunk-F7U3QPZ3.js +0 -304
  723. package/dist/chunk-FBTJKSTM.js +0 -1270
  724. package/dist/chunk-FC2FTSK3.js +0 -2424
  725. package/dist/chunk-FOGNA3BU.js +0 -148
  726. package/dist/chunk-FQFKHNC7.js +0 -650
  727. package/dist/chunk-FTCHM755.js +0 -50
  728. package/dist/chunk-FXSHP4JZ.js +0 -3550
  729. package/dist/chunk-G6ZZC543.js +0 -818
  730. package/dist/chunk-G7FU6PUA.js +0 -100
  731. package/dist/chunk-GA4YEAMX.js +0 -3851
  732. package/dist/chunk-GE33BGB7.js +0 -12
  733. package/dist/chunk-GQ67HSJY.js +0 -570
  734. package/dist/chunk-GXXZ3WAK.js +0 -106
  735. package/dist/chunk-H2TCRX3H.js +0 -237
  736. package/dist/chunk-HLL4PBO7.js +0 -60
  737. package/dist/chunk-HLOEPV5C.js +0 -259
  738. package/dist/chunk-HUAGBS4O.js +0 -56
  739. package/dist/chunk-I36GSRUJ.js +0 -211
  740. package/dist/chunk-I6VBHT7S.js +0 -261
  741. package/dist/chunk-ICNNNOXE.js +0 -333
  742. package/dist/chunk-ICX64J4U.js +0 -172
  743. package/dist/chunk-ID36Y46W.js +0 -5046
  744. package/dist/chunk-ID36Y46W.js.map +0 -1
  745. package/dist/chunk-IGVVXLKJ.js +0 -559
  746. package/dist/chunk-IKJLSBUI.js +0 -2984
  747. package/dist/chunk-IKMUFDVS.js +0 -50
  748. package/dist/chunk-IKUNOX7F.js +0 -255
  749. package/dist/chunk-ILKDYBON.js +0 -288
  750. package/dist/chunk-IVYJX3OY.js +0 -187
  751. package/dist/chunk-JCY4CMDH.js +0 -107
  752. package/dist/chunk-JJZPLGIP.js +0 -474
  753. package/dist/chunk-JW33RV4V.js +0 -143
  754. package/dist/chunk-JWPA6ZPZ.js +0 -351
  755. package/dist/chunk-JZ4QXS6D.js +0 -50
  756. package/dist/chunk-K42OUZQ3.js +0 -386
  757. package/dist/chunk-K5TOVX5A.js +0 -206
  758. package/dist/chunk-K63HGHZX.js +0 -99
  759. package/dist/chunk-K6R5T44I.js +0 -75
  760. package/dist/chunk-KHJ5PXFM.js +0 -914
  761. package/dist/chunk-KJZRQ55O.js +0 -2319
  762. package/dist/chunk-KJZRQ55O.js.map +0 -1
  763. package/dist/chunk-KKI55ZMW.js +0 -65
  764. package/dist/chunk-KRPLAAFP.js +0 -199
  765. package/dist/chunk-KVFEZDBO.js +0 -134
  766. package/dist/chunk-L4I665WK.js +0 -45
  767. package/dist/chunk-L4OF77LE.js +0 -110
  768. package/dist/chunk-L4OF77LE.js.map +0 -1
  769. package/dist/chunk-LA5T52RM.js +0 -70
  770. package/dist/chunk-LM2W5YAT.js +0 -401
  771. package/dist/chunk-LQ62ECE6.js +0 -390
  772. package/dist/chunk-LQDUHU3Y.js +0 -71
  773. package/dist/chunk-LRJIYTZW.js +0 -4157
  774. package/dist/chunk-LRJIYTZW.js.map +0 -1
  775. package/dist/chunk-LRN6GYAZ.js +0 -138
  776. package/dist/chunk-M4SDVTKJ.js +0 -790
  777. package/dist/chunk-MA6O7CM6.js +0 -99
  778. package/dist/chunk-MBIBB6GI.js +0 -197
  779. package/dist/chunk-MF3ZFB4H.js +0 -199
  780. package/dist/chunk-MJJGJMYJ.js +0 -98
  781. package/dist/chunk-MLJADQFI.js +0 -4824
  782. package/dist/chunk-MQG7RV3B.js +0 -62
  783. package/dist/chunk-MTTGSQA5.js +0 -186
  784. package/dist/chunk-MW7Y3T55.js +0 -525
  785. package/dist/chunk-MYUFMVCH.js +0 -121
  786. package/dist/chunk-N3OARGH2.js +0 -61
  787. package/dist/chunk-NB2HMRT2.js +0 -353
  788. package/dist/chunk-NFDFYWMV.js +0 -141
  789. package/dist/chunk-NWGNFN3N.js +0 -1187
  790. package/dist/chunk-NWJRPDIO.js +0 -840
  791. package/dist/chunk-NWJRPDIO.js.map +0 -1
  792. package/dist/chunk-NXWBBZJV.js +0 -267
  793. package/dist/chunk-NY2QWROL.js +0 -71
  794. package/dist/chunk-O2IOPP3R.js +0 -848
  795. package/dist/chunk-O2UWH5RG.js +0 -141
  796. package/dist/chunk-O5YWDLYF.js +0 -393
  797. package/dist/chunk-OBMCZO7E.js +0 -121
  798. package/dist/chunk-OD3DCCCB.js +0 -132
  799. package/dist/chunk-OMH7R6I3.js +0 -390
  800. package/dist/chunk-OSA5EQG5.js +0 -113
  801. package/dist/chunk-OSJ3MUTZ.js +0 -2936
  802. package/dist/chunk-OWAYJ2OV.js +0 -368
  803. package/dist/chunk-OYXBFSGK.js +0 -269
  804. package/dist/chunk-PC2EBA5G.js +0 -4116
  805. package/dist/chunk-PC2EBA5G.js.map +0 -1
  806. package/dist/chunk-PC2MVXIP.js +0 -363
  807. package/dist/chunk-PC2MVXIP.js.map +0 -1
  808. package/dist/chunk-PENGLDR5.js +0 -309
  809. package/dist/chunk-PSMAWRPL.js +0 -191
  810. package/dist/chunk-PW4IMTYR.js +0 -702
  811. package/dist/chunk-PW54V7T5.js +0 -387
  812. package/dist/chunk-Q2EXYSMO.js +0 -24
  813. package/dist/chunk-Q2XJK5I4.js +0 -51
  814. package/dist/chunk-Q2XJK5I4.js.map +0 -1
  815. package/dist/chunk-Q4EFRI6X.js +0 -258
  816. package/dist/chunk-Q52CXW6C.js +0 -48
  817. package/dist/chunk-Q6XQ2R37.js +0 -184
  818. package/dist/chunk-QAJ53XBW.js +0 -23
  819. package/dist/chunk-QDTKECT4.js +0 -129
  820. package/dist/chunk-QE3ZFGI3.js +0 -43
  821. package/dist/chunk-QHHSUR2Y.js +0 -298
  822. package/dist/chunk-QHNVNR7B.js +0 -173
  823. package/dist/chunk-QIK2Q6N5.js +0 -376
  824. package/dist/chunk-QWL4L366.js +0 -38
  825. package/dist/chunk-R3J2PTVQ.js +0 -690
  826. package/dist/chunk-RBRX5ZS3.js +0 -319
  827. package/dist/chunk-REX6JIC7.js +0 -33
  828. package/dist/chunk-RGZ7EEC3.js +0 -537
  829. package/dist/chunk-RGZ7EEC3.js.map +0 -1
  830. package/dist/chunk-RIPS7GFR.js +0 -960
  831. package/dist/chunk-RTBZNFNV.js +0 -1354
  832. package/dist/chunk-RTBZNFNV.js.map +0 -1
  833. package/dist/chunk-SKMNW4SW.js +0 -187
  834. package/dist/chunk-SRFARKXC.js +0 -623
  835. package/dist/chunk-SWIHWCTW.js +0 -4461
  836. package/dist/chunk-TA5CFTO4.js +0 -103
  837. package/dist/chunk-TF4ZVJLI.js +0 -156
  838. package/dist/chunk-TG7DADJR.js +0 -9624
  839. package/dist/chunk-TI4R2ZD5.js +0 -623
  840. package/dist/chunk-TI4R2ZD5.js.map +0 -1
  841. package/dist/chunk-TNKWOUWP.js +0 -412
  842. package/dist/chunk-TNUSPXPW.js +0 -5555
  843. package/dist/chunk-TNUSPXPW.js.map +0 -1
  844. package/dist/chunk-TNYFHKVV.js +0 -366
  845. package/dist/chunk-TPMZBOFH.js +0 -178
  846. package/dist/chunk-TW3LKRJF.js +0 -263
  847. package/dist/chunk-TZAO65I4.js +0 -83
  848. package/dist/chunk-U5EFEMYU.js +0 -89
  849. package/dist/chunk-U6M4LS3M.js +0 -378
  850. package/dist/chunk-UI4HI5QK.js +0 -918
  851. package/dist/chunk-UJDOWCQ3.js +0 -272
  852. package/dist/chunk-UJUQ2QOX.js +0 -581
  853. package/dist/chunk-UQ3IM6FY.js +0 -133
  854. package/dist/chunk-UYE47LO6.js +0 -246
  855. package/dist/chunk-VADHIT26.js +0 -89
  856. package/dist/chunk-VFQ3H6CO.js +0 -163
  857. package/dist/chunk-VGUN6VB2.js +0 -188
  858. package/dist/chunk-VGWWEVSD.js +0 -723
  859. package/dist/chunk-VIEFJ2DM.js +0 -2469
  860. package/dist/chunk-VLXM36VS.js +0 -268
  861. package/dist/chunk-W3BFRR2G.js +0 -499
  862. package/dist/chunk-W5MPXR3A.js +0 -981
  863. package/dist/chunk-W5OWKVZG.js +0 -136
  864. package/dist/chunk-W6FRORMX.js +0 -486
  865. package/dist/chunk-W6FRORMX.js.map +0 -1
  866. package/dist/chunk-W7XROSZO.js +0 -232
  867. package/dist/chunk-W7XROSZO.js.map +0 -1
  868. package/dist/chunk-WEZ5PXZP.js +0 -403
  869. package/dist/chunk-WHWUWN2X.js +0 -197
  870. package/dist/chunk-WHWUWN2X.js.map +0 -1
  871. package/dist/chunk-WLEDGIVS.js +0 -114
  872. package/dist/chunk-WLEDGIVS.js.map +0 -1
  873. package/dist/chunk-WNDAKLHG.js +0 -281
  874. package/dist/chunk-WTJ4PLMU.js +0 -103
  875. package/dist/chunk-WV2KPJUW.js +0 -107
  876. package/dist/chunk-X3VY5EGY.js +0 -277
  877. package/dist/chunk-X3VY5EGY.js.map +0 -1
  878. package/dist/chunk-XDBYWVCW.js +0 -418
  879. package/dist/chunk-XF7MA4U5.js +0 -36
  880. package/dist/chunk-XF7MA4U5.js.map +0 -1
  881. package/dist/chunk-XOSQP3YA.js +0 -605
  882. package/dist/chunk-XYBV4ZJQ.js +0 -271
  883. package/dist/chunk-YBKVGLQR.js +0 -147
  884. package/dist/chunk-YDCUBUWH.js +0 -1583
  885. package/dist/chunk-YG6NARQY.js +0 -51
  886. package/dist/chunk-YG6NARQY.js.map +0 -1
  887. package/dist/chunk-YSVD5HI4.js +0 -278
  888. package/dist/chunk-YT3WGNG6.js +0 -290
  889. package/dist/chunk-YYICQDK4.js +0 -414
  890. package/dist/chunk-YYLMZLI6.js +0 -686
  891. package/dist/chunk-ZAMTKG5U.js +0 -95
  892. package/dist/chunk-ZDLYSXKN.js +0 -111
  893. package/dist/chunk-ZG447FSS.js +0 -194
  894. package/dist/chunk-ZIT5KD4Q.js +0 -264
  895. package/dist/chunk-ZUDOVDKR.js +0 -3064
  896. package/dist/chunk-ZW2ECJ3A.js +0 -451
  897. package/dist/computer-viewer-LPZ763KF.js +0 -21
  898. package/dist/embedded-new-voice-YVMKSLKJ.js +0 -24
  899. package/dist/embedded-voice-BJPQFXSU.js +0 -24
  900. package/dist/fleet-decision-row-AA4H5CDT.js +0 -361
  901. package/dist/model-policy-picker-menu-HSMWVO4P.js +0 -22
  902. package/dist/payment-page-card-3LTSFJGN.js +0 -223
  903. package/dist/platform-activity-row-5VYV6TX4.js +0 -128
  904. package/dist/queue-surface-implementation-NXHZUKD2.js +0 -908
  905. package/dist/recorder-host-ZKRWTDBM.js +0 -57
  906. package/dist/recorder-host-ZKRWTDBM.js.map +0 -1
  907. package/dist/sandbox-files-YCMLQUFU.js +0 -27
  908. package/dist/session-connect-cards-KSQLMRM5.js +0 -25
  909. package/dist/session-realtime-ZR6JLG3Y.js +0 -30
  910. package/dist/timeline-annotation-markers-YAHDPWVG.js +0 -157
  911. package/dist/timeline-annotation-selection-KHXNCEJP.js +0 -208
  912. package/dist/timeline-annotations-dialog-Y4XD3N7B.js +0 -283
  913. /package/dist/{browser-viewer-NOP5EAUO.js.map → browser-viewer-TC27OCIP.js.map} +0 -0
  914. /package/dist/{chat-interactive-block-G7O44JHR.js.map → chat-interactive-block-RWPQBHVS.js.map} +0 -0
  915. /package/dist/{chunk-EGBII4CP.js.map → chunk-2BDT3UZQ.js.map} +0 -0
  916. /package/dist/{chunk-4YD7YZC5.js.map → chunk-2CLNIEK4.js.map} +0 -0
  917. /package/dist/{chunk-ZW2ECJ3A.js.map → chunk-2FSBSCZJ.js.map} +0 -0
  918. /package/dist/{chunk-KRPLAAFP.js.map → chunk-2I7HDP53.js.map} +0 -0
  919. /package/dist/{chunk-3QX55WLC.js.map → chunk-2INLDVK3.js.map} +0 -0
  920. /package/dist/{chunk-BVUJV5WR.js.map → chunk-2KALVELR.js.map} +0 -0
  921. /package/dist/{chunk-XDBYWVCW.js.map → chunk-2M3J7ZWQ.js.map} +0 -0
  922. /package/dist/{chunk-2RREGDQH.js.map → chunk-2OP6WLGV.js.map} +0 -0
  923. /package/dist/{chunk-OSJ3MUTZ.js.map → chunk-2RG7NIAS.js.map} +0 -0
  924. /package/dist/{chunk-26RWVLRD.js.map → chunk-2STUPWEL.js.map} +0 -0
  925. /package/dist/{chunk-XYBV4ZJQ.js.map → chunk-2YUOVM3G.js.map} +0 -0
  926. /package/dist/{chunk-2GDNWKSC.js.map → chunk-2Z3NQNTM.js.map} +0 -0
  927. /package/dist/{chunk-2VB2O4FQ.js.map → chunk-3CPWWGNK.js.map} +0 -0
  928. /package/dist/{chunk-7WKP3DYJ.js.map → chunk-3ED2U6XE.js.map} +0 -0
  929. /package/dist/{chunk-BT3BAGB5.js.map → chunk-3GZA4BUW.js.map} +0 -0
  930. /package/dist/{chunk-3USJPT2S.js.map → chunk-3IK6UYO6.js.map} +0 -0
  931. /package/dist/{chunk-6AHATAAY.js.map → chunk-3PZ7JZI2.js.map} +0 -0
  932. /package/dist/{chunk-JZ4QXS6D.js.map → chunk-4DVJ6ONS.js.map} +0 -0
  933. /package/dist/{chunk-5QM2WPKV.js.map → chunk-4E3ZJRTZ.js.map} +0 -0
  934. /package/dist/{chunk-NFDFYWMV.js.map → chunk-4SAWSRAA.js.map} +0 -0
  935. /package/dist/{chunk-ELL6HSYR.js.map → chunk-53AGXXZM.js.map} +0 -0
  936. /package/dist/{chunk-G6ZZC543.js.map → chunk-54YW6SZZ.js.map} +0 -0
  937. /package/dist/{chunk-4SZZAFYQ.js.map → chunk-57AZS3IE.js.map} +0 -0
  938. /package/dist/{chunk-JW33RV4V.js.map → chunk-5CPEEAFD.js.map} +0 -0
  939. /package/dist/{chunk-D6L4GHRH.js.map → chunk-5EWSRZ2Y.js.map} +0 -0
  940. /package/dist/{chunk-PW54V7T5.js.map → chunk-5IE76VCY.js.map} +0 -0
  941. /package/dist/{chunk-6GXVYAGR.js.map → chunk-5NWEKLDZ.js.map} +0 -0
  942. /package/dist/{chunk-6UHCBH4G.js.map → chunk-5O2FCCHZ.js.map} +0 -0
  943. /package/dist/{chunk-2YC6JQRO.js.map → chunk-5QAY6K77.js.map} +0 -0
  944. /package/dist/{chunk-EYUT5Y6V.js.map → chunk-6DK6Z4UN.js.map} +0 -0
  945. /package/dist/{chunk-PW4IMTYR.js.map → chunk-6DVCC7QS.js.map} +0 -0
  946. /package/dist/{chunk-7WIDB4PL.js.map → chunk-6JHU2UBS.js.map} +0 -0
  947. /package/dist/{chunk-CQH4FWYA.js.map → chunk-6PZ7OBYU.js.map} +0 -0
  948. /package/dist/{chunk-VFQ3H6CO.js.map → chunk-6WGRDRMA.js.map} +0 -0
  949. /package/dist/{chunk-MTTGSQA5.js.map → chunk-77WAKEAH.js.map} +0 -0
  950. /package/dist/{chunk-O5YWDLYF.js.map → chunk-7TDO3CUM.js.map} +0 -0
  951. /package/dist/{chunk-2AHTY7OT.js.map → chunk-7TIX2UAR.js.map} +0 -0
  952. /package/dist/{chunk-FOGNA3BU.js.map → chunk-7V5REBCP.js.map} +0 -0
  953. /package/dist/{chunk-2JENKGCE.js.map → chunk-7VMZGLYI.js.map} +0 -0
  954. /package/dist/{chunk-E7UIVD7F.js.map → chunk-7W37NS3I.js.map} +0 -0
  955. /package/dist/{chunk-ZDLYSXKN.js.map → chunk-7X6SDK2C.js.map} +0 -0
  956. /package/dist/{chunk-ZAMTKG5U.js.map → chunk-7ZNUHRP5.js.map} +0 -0
  957. /package/dist/{chunk-DMMJIFKA.js.map → chunk-A36PZALD.js.map} +0 -0
  958. /package/dist/{chunk-WV2KPJUW.js.map → chunk-AUI6VA63.js.map} +0 -0
  959. /package/dist/{chunk-Q2EXYSMO.js.map → chunk-AW2MQB37.js.map} +0 -0
  960. /package/dist/{chunk-6WLX3NR3.js.map → chunk-AWKES45Y.js.map} +0 -0
  961. /package/dist/{chunk-OD3DCCCB.js.map → chunk-AXHZYXUV.js.map} +0 -0
  962. /package/dist/{chunk-QDTKECT4.js.map → chunk-BHNSJVBC.js.map} +0 -0
  963. /package/dist/{chunk-FTCHM755.js.map → chunk-BJEJFISW.js.map} +0 -0
  964. /package/dist/{chunk-B2I5ZW35.js.map → chunk-BJFH6JI5.js.map} +0 -0
  965. /package/dist/{chunk-RIPS7GFR.js.map → chunk-BMICEQZQ.js.map} +0 -0
  966. /package/dist/{chunk-BF4SADKX.js.map → chunk-BTLBYBLU.js.map} +0 -0
  967. /package/dist/{chunk-U5EFEMYU.js.map → chunk-BXBDYNRP.js.map} +0 -0
  968. /package/dist/{chunk-BTSYDIVJ.js.map → chunk-C372BFOV.js.map} +0 -0
  969. /package/dist/{chunk-MLJADQFI.js.map → chunk-CMKGILJK.js.map} +0 -0
  970. /package/dist/{chunk-DKT3N37I.js.map → chunk-CRAOSVHC.js.map} +0 -0
  971. /package/dist/{chunk-WNDAKLHG.js.map → chunk-CRU35QQH.js.map} +0 -0
  972. /package/dist/{chunk-2XNG2KNT.js.map → chunk-CUIWCGMA.js.map} +0 -0
  973. /package/dist/{chunk-QWL4L366.js.map → chunk-D5TWNFFE.js.map} +0 -0
  974. /package/dist/{chunk-SWIHWCTW.js.map → chunk-DF5EAHDN.js.map} +0 -0
  975. /package/dist/{chunk-HUAGBS4O.js.map → chunk-DJAXC5OK.js.map} +0 -0
  976. /package/dist/{chunk-FXSHP4JZ.js.map → chunk-DXBYWSL5.js.map} +0 -0
  977. /package/dist/{chunk-5MUJDC6C.js.map → chunk-DXR5PDFP.js.map} +0 -0
  978. /package/dist/{chunk-NXWBBZJV.js.map → chunk-DZWARC4M.js.map} +0 -0
  979. /package/dist/{chunk-GXXZ3WAK.js.map → chunk-DZXEDSQI.js.map} +0 -0
  980. /package/dist/{chunk-Q52CXW6C.js.map → chunk-E7XERZWC.js.map} +0 -0
  981. /package/dist/{chunk-4NBTZRKT.js.map → chunk-ECJBYNLJ.js.map} +0 -0
  982. /package/dist/{chunk-QE3ZFGI3.js.map → chunk-EDI6SJ2N.js.map} +0 -0
  983. /package/dist/{chunk-E6NRSRBE.js.map → chunk-EWSOC6WF.js.map} +0 -0
  984. /package/dist/{chunk-TA5CFTO4.js.map → chunk-F2OPHAUN.js.map} +0 -0
  985. /package/dist/{chunk-5DTST3TP.js.map → chunk-F4ISQGGM.js.map} +0 -0
  986. /package/dist/{chunk-MBIBB6GI.js.map → chunk-FO4LYKJL.js.map} +0 -0
  987. /package/dist/{chunk-EUBGLFFR.js.map → chunk-FPXASDG5.js.map} +0 -0
  988. /package/dist/{chunk-C3HUF3M2.js.map → chunk-FVXBNBHO.js.map} +0 -0
  989. /package/dist/{chunk-W5MPXR3A.js.map → chunk-FZC5N55X.js.map} +0 -0
  990. /package/dist/{chunk-MA6O7CM6.js.map → chunk-GAVYGBFI.js.map} +0 -0
  991. /package/dist/{chunk-REX6JIC7.js.map → chunk-GKVJIDHF.js.map} +0 -0
  992. /package/dist/{chunk-EW6RNWSH.js.map → chunk-GVN5SZLX.js.map} +0 -0
  993. /package/dist/{chunk-KVFEZDBO.js.map → chunk-H3T7IWNA.js.map} +0 -0
  994. /package/dist/{chunk-I6VBHT7S.js.map → chunk-HAX4LCR5.js.map} +0 -0
  995. /package/dist/{chunk-OBMCZO7E.js.map → chunk-HC4JFZVU.js.map} +0 -0
  996. /package/dist/{chunk-UJUQ2QOX.js.map → chunk-HEFPPMBQ.js.map} +0 -0
  997. /package/dist/{chunk-DOFJZ2JU.js.map → chunk-HNLR7Q4Z.js.map} +0 -0
  998. /package/dist/{chunk-GE33BGB7.js.map → chunk-HSOXMJOT.js.map} +0 -0
  999. /package/dist/{chunk-AB5MBIXY.js.map → chunk-I4MRDSUF.js.map} +0 -0
  1000. /package/dist/{chunk-AFBJTUFK.js.map → chunk-I4QEJ62Y.js.map} +0 -0
  1001. /package/dist/{chunk-6ED2YWBT.js.map → chunk-I5B5L6Q4.js.map} +0 -0
  1002. /package/dist/{chunk-C5QCAOES.js.map → chunk-I5QZJODL.js.map} +0 -0
  1003. /package/dist/{chunk-76ERNKIZ.js.map → chunk-I7ITSXSJ.js.map} +0 -0
  1004. /package/dist/{chunk-OMH7R6I3.js.map → chunk-I7XIZRFD.js.map} +0 -0
  1005. /package/dist/{chunk-E337C2VK.js.map → chunk-IDANQPRH.js.map} +0 -0
  1006. /package/dist/{chunk-3FD76LXM.js.map → chunk-IFB3WJ36.js.map} +0 -0
  1007. /package/dist/{chunk-ZIT5KD4Q.js.map → chunk-IHTAKKTK.js.map} +0 -0
  1008. /package/dist/{chunk-QHNVNR7B.js.map → chunk-ILDXWY37.js.map} +0 -0
  1009. /package/dist/{chunk-GQ67HSJY.js.map → chunk-IMDQUHBJ.js.map} +0 -0
  1010. /package/dist/{chunk-DSXVY5WZ.js.map → chunk-IMZCQBOT.js.map} +0 -0
  1011. /package/dist/{chunk-WEZ5PXZP.js.map → chunk-IXPTECSC.js.map} +0 -0
  1012. /package/dist/{chunk-NY2QWROL.js.map → chunk-J255A3N5.js.map} +0 -0
  1013. /package/dist/{chunk-O2UWH5RG.js.map → chunk-J5F5HPPW.js.map} +0 -0
  1014. /package/dist/{chunk-VIEFJ2DM.js.map → chunk-JEA3QDX7.js.map} +0 -0
  1015. /package/dist/{chunk-TF4ZVJLI.js.map → chunk-JEUPAVYY.js.map} +0 -0
  1016. /package/dist/{chunk-ZG447FSS.js.map → chunk-JKHKLL5W.js.map} +0 -0
  1017. /package/dist/{chunk-FQFKHNC7.js.map → chunk-JQL7ZH6C.js.map} +0 -0
  1018. /package/dist/{chunk-776QZ573.js.map → chunk-JWB44UGJ.js.map} +0 -0
  1019. /package/dist/{chunk-ICNNNOXE.js.map → chunk-JZ4NLCAP.js.map} +0 -0
  1020. /package/dist/{chunk-TNKWOUWP.js.map → chunk-K2A5PXQ5.js.map} +0 -0
  1021. /package/dist/{chunk-SRFARKXC.js.map → chunk-K56XV3C3.js.map} +0 -0
  1022. /package/dist/{chunk-QAJ53XBW.js.map → chunk-K6GAXXVA.js.map} +0 -0
  1023. /package/dist/{chunk-MF3ZFB4H.js.map → chunk-KCBMFSMS.js.map} +0 -0
  1024. /package/dist/{chunk-VLXM36VS.js.map → chunk-KF2FV3ZJ.js.map} +0 -0
  1025. /package/dist/{chunk-YSVD5HI4.js.map → chunk-KJD65EJP.js.map} +0 -0
  1026. /package/dist/{chunk-K42OUZQ3.js.map → chunk-KLEUWIMZ.js.map} +0 -0
  1027. /package/dist/{chunk-PENGLDR5.js.map → chunk-KODELWYT.js.map} +0 -0
  1028. /package/dist/{chunk-TZAO65I4.js.map → chunk-KRDR5RJD.js.map} +0 -0
  1029. /package/dist/{chunk-KHJ5PXFM.js.map → chunk-KUDGXAF7.js.map} +0 -0
  1030. /package/dist/{chunk-6H4SJBPE.js.map → chunk-KYS77RPN.js.map} +0 -0
  1031. /package/dist/{chunk-OWAYJ2OV.js.map → chunk-L7YTNTIK.js.map} +0 -0
  1032. /package/dist/{chunk-YYLMZLI6.js.map → chunk-LHPNABDH.js.map} +0 -0
  1033. /package/dist/{chunk-LM2W5YAT.js.map → chunk-MFROMEKA.js.map} +0 -0
  1034. /package/dist/{chunk-AXBSYWKX.js.map → chunk-MIHN76LX.js.map} +0 -0
  1035. /package/dist/{chunk-4LPOWQJY.js.map → chunk-MIYFS2XN.js.map} +0 -0
  1036. /package/dist/{chunk-KKI55ZMW.js.map → chunk-MJUCFQMS.js.map} +0 -0
  1037. /package/dist/{chunk-ZUDOVDKR.js.map → chunk-MM4FNWI4.js.map} +0 -0
  1038. /package/dist/{chunk-M4SDVTKJ.js.map → chunk-MNZG4OHU.js.map} +0 -0
  1039. /package/dist/{chunk-EILSAQVJ.js.map → chunk-N6AACDUW.js.map} +0 -0
  1040. /package/dist/{chunk-BM3NEZ6X.js.map → chunk-NC55IFN3.js.map} +0 -0
  1041. /package/dist/{chunk-MJJGJMYJ.js.map → chunk-NC7PVOEK.js.map} +0 -0
  1042. /package/dist/{chunk-LA5T52RM.js.map → chunk-NCYMNCJO.js.map} +0 -0
  1043. /package/dist/{chunk-HLOEPV5C.js.map → chunk-ND2BXV3P.js.map} +0 -0
  1044. /package/dist/{chunk-UJDOWCQ3.js.map → chunk-NDBTFUO6.js.map} +0 -0
  1045. /package/dist/{chunk-K5TOVX5A.js.map → chunk-NDQJZ7HF.js.map} +0 -0
  1046. /package/dist/{chunk-35737UT4.js.map → chunk-NGJJJPZZ.js.map} +0 -0
  1047. /package/dist/{chunk-42CMQ5VR.js.map → chunk-NJTSNNE7.js.map} +0 -0
  1048. /package/dist/{chunk-FBTJKSTM.js.map → chunk-NRTE7DNV.js.map} +0 -0
  1049. /package/dist/{chunk-YT3WGNG6.js.map → chunk-NULUNM7H.js.map} +0 -0
  1050. /package/dist/{chunk-7XOVTPDI.js.map → chunk-NUNZS36W.js.map} +0 -0
  1051. /package/dist/{chunk-FC2FTSK3.js.map → chunk-NW53H5RW.js.map} +0 -0
  1052. /package/dist/{chunk-TW3LKRJF.js.map → chunk-NXCMHIKI.js.map} +0 -0
  1053. /package/dist/{chunk-CGK6ALQU.js.map → chunk-O3LKCBP5.js.map} +0 -0
  1054. /package/dist/{chunk-QIK2Q6N5.js.map → chunk-O6N4ABCA.js.map} +0 -0
  1055. /package/dist/{chunk-73NXYYWE.js.map → chunk-O732GAFC.js.map} +0 -0
  1056. /package/dist/{chunk-R3J2PTVQ.js.map → chunk-OF4TIKYC.js.map} +0 -0
  1057. /package/dist/{chunk-BUBNGKWG.js.map → chunk-OMPVOMPP.js.map} +0 -0
  1058. /package/dist/{chunk-4OXI6HCV.js.map → chunk-OPJJSKUK.js.map} +0 -0
  1059. /package/dist/{chunk-4Y6BK7IU.js.map → chunk-OPWCMA4D.js.map} +0 -0
  1060. /package/dist/{chunk-ADNMXBCX.js.map → chunk-ORJPS5VN.js.map} +0 -0
  1061. /package/dist/{chunk-SKMNW4SW.js.map → chunk-OSY5K7L7.js.map} +0 -0
  1062. /package/dist/{chunk-L4I665WK.js.map → chunk-OV6QJRT4.js.map} +0 -0
  1063. /package/dist/{chunk-7O5CGGIQ.js.map → chunk-OVKYVZMW.js.map} +0 -0
  1064. /package/dist/{chunk-7BYWOFVH.js.map → chunk-OZCBM3UC.js.map} +0 -0
  1065. /package/dist/{chunk-ALVRWCXE.js.map → chunk-P3A2EINJ.js.map} +0 -0
  1066. /package/dist/{chunk-BZO5ZMUP.js.map → chunk-PTAG4PDC.js.map} +0 -0
  1067. /package/dist/{chunk-QHHSUR2Y.js.map → chunk-PTF5B7TJ.js.map} +0 -0
  1068. /package/dist/{chunk-O2IOPP3R.js.map → chunk-Q3DPEYX4.js.map} +0 -0
  1069. /package/dist/{chunk-G7FU6PUA.js.map → chunk-QB2KMIDP.js.map} +0 -0
  1070. /package/dist/{chunk-64PO2WXU.js.map → chunk-QCSJ4CWE.js.map} +0 -0
  1071. /package/dist/{chunk-YYICQDK4.js.map → chunk-QIOQ2NPQ.js.map} +0 -0
  1072. /package/dist/{chunk-NB2HMRT2.js.map → chunk-QK5EFEUT.js.map} +0 -0
  1073. /package/dist/{chunk-366XZ4PM.js.map → chunk-QPQBLYQJ.js.map} +0 -0
  1074. /package/dist/{chunk-Q6XQ2R37.js.map → chunk-QPSGCC5D.js.map} +0 -0
  1075. /package/dist/{chunk-JJZPLGIP.js.map → chunk-QZAAUQRN.js.map} +0 -0
  1076. /package/dist/{chunk-VGUN6VB2.js.map → chunk-RGBI63KJ.js.map} +0 -0
  1077. /package/dist/{chunk-LRN6GYAZ.js.map → chunk-RLBKLAEY.js.map} +0 -0
  1078. /package/dist/{chunk-F7U3QPZ3.js.map → chunk-RMFKVOM7.js.map} +0 -0
  1079. /package/dist/{chunk-Q4EFRI6X.js.map → chunk-ROKQU7WG.js.map} +0 -0
  1080. /package/dist/{chunk-7QOHRZ67.js.map → chunk-RPVREAU7.js.map} +0 -0
  1081. /package/dist/{chunk-VGWWEVSD.js.map → chunk-RQKLF42C.js.map} +0 -0
  1082. /package/dist/{chunk-2VTTKH23.js.map → chunk-SEO7TICN.js.map} +0 -0
  1083. /package/dist/{chunk-3QNRBEYH.js.map → chunk-SHHJCL7X.js.map} +0 -0
  1084. /package/dist/{chunk-E6SQKHAU.js.map → chunk-SIRLACNZ.js.map} +0 -0
  1085. /package/dist/{chunk-H2TCRX3H.js.map → chunk-SKPHMYAA.js.map} +0 -0
  1086. /package/dist/{chunk-YDCUBUWH.js.map → chunk-SODC7T6L.js.map} +0 -0
  1087. /package/dist/{chunk-TNYFHKVV.js.map → chunk-SQJIKMN3.js.map} +0 -0
  1088. /package/dist/{chunk-DO74DQC7.js.map → chunk-SVINDKVW.js.map} +0 -0
  1089. /package/dist/{chunk-CPYGO76Q.js.map → chunk-SYCDHPZF.js.map} +0 -0
  1090. /package/dist/{chunk-UQ3IM6FY.js.map → chunk-T2QX3FDP.js.map} +0 -0
  1091. /package/dist/{chunk-NWGNFN3N.js.map → chunk-T3OWFVMS.js.map} +0 -0
  1092. /package/dist/{chunk-N3OARGH2.js.map → chunk-T6XI5FLY.js.map} +0 -0
  1093. /package/dist/{chunk-MQG7RV3B.js.map → chunk-T7OXJZCX.js.map} +0 -0
  1094. /package/dist/{chunk-2T7DX6KR.js.map → chunk-TAT5USZN.js.map} +0 -0
  1095. /package/dist/{chunk-ICX64J4U.js.map → chunk-TPQTRNER.js.map} +0 -0
  1096. /package/dist/{chunk-D2TOWEYH.js.map → chunk-TUIN4MB7.js.map} +0 -0
  1097. /package/dist/{chunk-LQDUHU3Y.js.map → chunk-TX3VECZU.js.map} +0 -0
  1098. /package/dist/{chunk-TG7DADJR.js.map → chunk-TXLIEOJX.js.map} +0 -0
  1099. /package/dist/{chunk-2ZVRJRXC.js.map → chunk-U3DN4HEY.js.map} +0 -0
  1100. /package/dist/{chunk-PSMAWRPL.js.map → chunk-U7XM7CB4.js.map} +0 -0
  1101. /package/dist/{chunk-4TQL3WP2.js.map → chunk-UJK53QFL.js.map} +0 -0
  1102. /package/dist/{chunk-RBRX5ZS3.js.map → chunk-UMTXA2TH.js.map} +0 -0
  1103. /package/dist/{chunk-36MIDGAH.js.map → chunk-UPDSXFK5.js.map} +0 -0
  1104. /package/dist/{chunk-OYXBFSGK.js.map → chunk-UTIAXH52.js.map} +0 -0
  1105. /package/dist/{chunk-5WUN7XPD.js.map → chunk-UVN5TMHU.js.map} +0 -0
  1106. /package/dist/{chunk-UYE47LO6.js.map → chunk-VGYXW3VG.js.map} +0 -0
  1107. /package/dist/{chunk-IKUNOX7F.js.map → chunk-VS7AHPCZ.js.map} +0 -0
  1108. /package/dist/{chunk-MYUFMVCH.js.map → chunk-VTTAJOQ7.js.map} +0 -0
  1109. /package/dist/{chunk-K63HGHZX.js.map → chunk-VWPOLUAO.js.map} +0 -0
  1110. /package/dist/{chunk-GA4YEAMX.js.map → chunk-X3MWB2QU.js.map} +0 -0
  1111. /package/dist/{chunk-I36GSRUJ.js.map → chunk-X6KAJI3V.js.map} +0 -0
  1112. /package/dist/{chunk-IKMUFDVS.js.map → chunk-XBLRHV5R.js.map} +0 -0
  1113. /package/dist/{chunk-XOSQP3YA.js.map → chunk-XDFP2LMW.js.map} +0 -0
  1114. /package/dist/{chunk-MW7Y3T55.js.map → chunk-XEQMZB3C.js.map} +0 -0
  1115. /package/dist/{chunk-B3LMRTRF.js.map → chunk-XEYLT5VA.js.map} +0 -0
  1116. /package/dist/{chunk-UI4HI5QK.js.map → chunk-XHIQ5I6N.js.map} +0 -0
  1117. /package/dist/{chunk-U6M4LS3M.js.map → chunk-XLH7QY2R.js.map} +0 -0
  1118. /package/dist/{chunk-OSA5EQG5.js.map → chunk-XWFAMUZQ.js.map} +0 -0
  1119. /package/dist/{chunk-6MT3HHUB.js.map → chunk-Y4OBB2VN.js.map} +0 -0
  1120. /package/dist/{chunk-CZP5QXNB.js.map → chunk-YCVD6CI3.js.map} +0 -0
  1121. /package/dist/{chunk-APW4T4SW.js.map → chunk-YENLNISG.js.map} +0 -0
  1122. /package/dist/{chunk-JWPA6ZPZ.js.map → chunk-YIRVLKAX.js.map} +0 -0
  1123. /package/dist/{chunk-LQ62ECE6.js.map → chunk-YL73CVNK.js.map} +0 -0
  1124. /package/dist/{chunk-ILKDYBON.js.map → chunk-YLS6QE5G.js.map} +0 -0
  1125. /package/dist/{chunk-YBKVGLQR.js.map → chunk-YPWU5KPE.js.map} +0 -0
  1126. /package/dist/{chunk-IKJLSBUI.js.map → chunk-YQXTDZSU.js.map} +0 -0
  1127. /package/dist/{chunk-TPMZBOFH.js.map → chunk-YSJEAAOL.js.map} +0 -0
  1128. /package/dist/{chunk-W3BFRR2G.js.map → chunk-YWIFM7D7.js.map} +0 -0
  1129. /package/dist/{chunk-WTJ4PLMU.js.map → chunk-YWVI6ZMK.js.map} +0 -0
  1130. /package/dist/{chunk-5KWMYPJV.js.map → chunk-Z4FMAFNH.js.map} +0 -0
  1131. /package/dist/{chunk-W5OWKVZG.js.map → chunk-Z654FWNU.js.map} +0 -0
  1132. /package/dist/{chunk-5FH5LQVS.js.map → chunk-Z7Y523PS.js.map} +0 -0
  1133. /package/dist/{chunk-HLL4PBO7.js.map → chunk-ZD67RM6G.js.map} +0 -0
  1134. /package/dist/{chunk-IVYJX3OY.js.map → chunk-ZEG4VPBL.js.map} +0 -0
  1135. /package/dist/{chunk-K6R5T44I.js.map → chunk-ZLYCOBHW.js.map} +0 -0
  1136. /package/dist/{chunk-VADHIT26.js.map → chunk-ZNJ5MTXV.js.map} +0 -0
  1137. /package/dist/{chunk-2KYQC4T5.js.map → chunk-ZSGY3H53.js.map} +0 -0
  1138. /package/dist/{chunk-BKP43KK4.js.map → chunk-ZTPXACWB.js.map} +0 -0
  1139. /package/dist/{chunk-JCY4CMDH.js.map → chunk-ZUA3JMI6.js.map} +0 -0
  1140. /package/dist/{chunk-IGVVXLKJ.js.map → chunk-ZYAZUPPV.js.map} +0 -0
  1141. /package/dist/{computer-viewer-LPZ763KF.js.map → computer-viewer-TDDO25AV.js.map} +0 -0
  1142. /package/dist/{embedded-new-voice-YVMKSLKJ.js.map → embedded-new-voice-2G3VLPVQ.js.map} +0 -0
  1143. /package/dist/{embedded-voice-BJPQFXSU.js.map → embedded-voice-T5IWOWGD.js.map} +0 -0
  1144. /package/dist/{fleet-decision-row-AA4H5CDT.js.map → fleet-decision-row-WM64KXP3.js.map} +0 -0
  1145. /package/dist/{model-policy-picker-menu-HSMWVO4P.js.map → model-policy-picker-menu-SMC6J6QN.js.map} +0 -0
  1146. /package/dist/{payment-page-card-3LTSFJGN.js.map → payment-page-card-G4U63KUV.js.map} +0 -0
  1147. /package/dist/{platform-activity-row-5VYV6TX4.js.map → platform-activity-row-BUZGZAKZ.js.map} +0 -0
  1148. /package/dist/{queue-surface-implementation-NXHZUKD2.js.map → queue-surface-implementation-4KUZ4PJV.js.map} +0 -0
  1149. /package/dist/{sandbox-files-YCMLQUFU.js.map → sandbox-files-ESDMOFSD.js.map} +0 -0
  1150. /package/dist/{session-connect-cards-KSQLMRM5.js.map → session-connect-cards-Q53KMMYY.js.map} +0 -0
  1151. /package/dist/{session-realtime-ZR6JLG3Y.js.map → session-realtime-CF3I35WJ.js.map} +0 -0
  1152. /package/dist/{timeline-annotation-markers-YAHDPWVG.js.map → timeline-annotation-markers-CJK4RYZ4.js.map} +0 -0
  1153. /package/dist/{timeline-annotation-selection-KHXNCEJP.js.map → timeline-annotation-selection-67GF5H26.js.map} +0 -0
  1154. /package/dist/{timeline-annotations-dialog-Y4XD3N7B.js.map → timeline-annotations-dialog-ONJPQDJQ.js.map} +0 -0
@@ -2,30 +2,32 @@
2
2
  import {
3
3
  DiffView,
4
4
  failedLoadParts
5
- } from "../chunk-SRFARKXC.js";
5
+ } from "../chunk-K56XV3C3.js";
6
6
  import {
7
7
  MetaChip
8
8
  } from "../chunk-SS3N75VI.js";
9
9
  import "../chunk-X6WZOHBI.js";
10
10
  import {
11
11
  ErrorMessage
12
- } from "../chunk-WHWUWN2X.js";
13
- import "../chunk-L4OF77LE.js";
12
+ } from "../chunk-IKXNLWAL.js";
13
+ import "../chunk-O4OOG3D6.js";
14
14
  import {
15
15
  Skeleton
16
16
  } from "../chunk-HJO32O7Z.js";
17
17
  import {
18
18
  InlineDisabledReason
19
- } from "../chunk-2VB2O4FQ.js";
19
+ } from "../chunk-3CPWWGNK.js";
20
20
  import {
21
21
  RelativeTime
22
- } from "../chunk-ELL6HSYR.js";
22
+ } from "../chunk-53AGXXZM.js";
23
23
  import "../chunk-5OTQA7CM.js";
24
- import "../chunk-AOHU6O3M.js";
24
+ import "../chunk-MVW6HNPI.js";
25
25
  import "../chunk-ZMBJPN4T.js";
26
26
  import {
27
27
  DisabledReason
28
28
  } from "../chunk-UX3XHFRX.js";
29
+ import "../chunk-V4Z4B2E3.js";
30
+ import "../chunk-FYWT2O76.js";
29
31
  import "../chunk-USG4XNMA.js";
30
32
  import {
31
33
  Button
@@ -36,7 +38,7 @@ import "../chunk-XEA5BCMA.js";
36
38
  import {
37
39
  cn
38
40
  } from "../chunk-TXS65BB2.js";
39
- import "../chunk-TNUSPXPW.js";
41
+ import "../chunk-7T2ZE3VT.js";
40
42
 
41
43
  // src/ui/revision-history.tsx
42
44
  import { useId, useState } from "react";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ui/revision-history.tsx"],"sourcesContent":["/* ----------------------------------------------------------------------------\n RevisionHistory - every saved version of a text, what each one changed, and\n Restore. Shared by knowledge entries, workspace instructions and\n organization identity.\n\n Restoring never deletes anything: it saves the old text as a new version,\n so it's reversible and confirms with a toast and Undo, not a dialog.\n\n Layouts:\n - \"stacked\" (default): a timeline; each version opens in place to show its\n changes. Fits a 520px sheet.\n - \"split\": versions on the left, the selected version's changes on the\n right. For pages and wide sheets.\n -------------------------------------------------------------------------- */\n\nimport { useId, useState, type ReactNode } from \"react\";\nimport { ChevronRightIcon, LoaderCircleIcon, RotateCcwIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/cn\";\nimport { Button } from \"./button\";\nimport { DiffView, failedLoadParts, type DiffFormat, type FailedLoad } from \"./diff-view\";\nimport { DisabledReason } from \"./disabled-reason\";\nimport { ErrorMessage } from \"./error-message\";\nimport { MetaChip } from \"./meta-chip\";\nimport { RelativeTime } from \"./relative-time\";\nimport { InlineDisabledReason } from \"./select-menu\";\nimport { Skeleton } from \"./skeleton\";\n\nexport interface Revision {\n id: string;\n /** Who saved it: a person, or \"Opengeni\" for an approved agent change. */\n author: string;\n /** When, as an ISO time. Shown as \"3 days ago\" with the exact time on hover. */\n createdAt?: string | undefined;\n /** Or a ready label, when there's no timestamp: \"Created 18 Sep\". */\n createdLabel?: string | undefined;\n /** One line: \"Added: Prefer small PRs.\" */\n summary: string;\n /** The full text of this version. */\n content: string;\n}\n\nexport type RevisionHistoryLayout = \"stacked\" | \"split\";\n\nexport interface RevisionHistoryProps {\n /** Newest first. The first one is the current version. */\n revisions: readonly Revision[];\n layout?: RevisionHistoryLayout | undefined;\n format?: DiffFormat | undefined;\n /** Restores a version by saving it again as the newest. Return a promise for the saving state. */\n onRestore?: ((revision: Revision) => void | Promise<unknown>) | undefined;\n /** Why versions can't be restored here, and who can. */\n restoreDisabledReason?: string | undefined;\n /** Which version starts open (stacked) or selected (split). Defaults to the newest. */\n defaultRevisionId?: string | undefined;\n /** The clock for \"3 days ago\". */\n now?: Date | undefined;\n /** Accessible name: \"Workspace instructions history\". */\n label?: string | undefined;\n loading?: boolean | undefined;\n /** What happened, what to do next, and an optional retry. */\n error?: FailedLoad | undefined;\n className?: string | undefined;\n}\n\n/** The text a version replaced: the one saved right before it, or nothing for the first. */\nexport function previousContent(revisions: readonly Revision[], index: number): string {\n return revisions[index + 1]?.content ?? \"\";\n}\n\nfunction When({ revision, now }: { revision: Revision; now?: Date | undefined }) {\n if (revision.createdAt) {\n return <RelativeTime date={revision.createdAt} now={now} focusable={false} />;\n }\n return <span>{revision.createdLabel}</span>;\n}\n\nfunction RestoreButton({\n revision,\n onRestore,\n disabledReason,\n}: {\n revision: Revision;\n onRestore?: ((revision: Revision) => void | Promise<unknown>) | undefined;\n disabledReason?: string | undefined;\n}) {\n const [pending, setPending] = useState(false);\n if (!onRestore) return null;\n const restore = async () => {\n const result = onRestore(revision);\n if (result && typeof (result as Promise<unknown>).then === \"function\") {\n setPending(true);\n try {\n await result;\n } finally {\n setPending(false);\n }\n }\n };\n // Not allowed: still focusable, and the reason shows on hover, focus and tap.\n return (\n <DisabledReason reason={disabledReason ?? \"\"} disabled={Boolean(disabledReason)}>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n disabled={pending}\n aria-label={`Restore this version: ${revision.summary}`}\n onClick={() => void restore()}\n className=\"shrink-0 pointer-coarse:min-h-11\"\n >\n {pending ? (\n <LoaderCircleIcon aria-hidden=\"true\" className=\"motion-safe:animate-spin\" />\n ) : (\n <RotateCcwIcon aria-hidden=\"true\" />\n )}\n {pending ? \"Restoring…\" : \"Restore\"}\n </Button>\n </DisabledReason>\n );\n}\n\n/** \"Current\" is a fact about the version, not a health status: a quiet chip. */\nfunction CurrentTag() {\n return <MetaChip variant=\"outline\">Current</MetaChip>;\n}\n\nfunction Stacked({\n revisions,\n format,\n onRestore,\n restoreDisabledReason,\n defaultRevisionId,\n now,\n}: RevisionHistoryProps & { format: DiffFormat }) {\n const [open, setOpen] = useState<Set<string>>(\n () => new Set([defaultRevisionId ?? revisions[0]?.id ?? \"\"]),\n );\n const baseId = useId();\n const toggle = (id: string) =>\n setOpen((current) => {\n const next = new Set(current);\n if (next.has(id)) next.delete(id);\n else next.add(id);\n return next;\n });\n\n return (\n <ol className=\"flex min-w-0 flex-col\">\n {revisions.map((revision, index) => {\n const isOpen = open.has(revision.id);\n const current = index === 0;\n const last = index === revisions.length - 1;\n const panelId = `${baseId}-${index}`;\n return (\n <li\n key={revision.id}\n className=\"relative grid min-w-0 grid-cols-[1.25rem_minmax(0,1fr)] gap-x-3\"\n >\n {/* The timeline: a dot per version, joined by a line. */}\n <span aria-hidden=\"true\" className=\"relative flex justify-center\">\n <span\n className={cn(\n \"relative z-10 mt-[18px] size-2.5 rounded-full border-2\",\n current ? \"border-brand bg-brand\" : \"border-border-strong bg-surface\",\n )}\n />\n {!last ? <span className=\"absolute top-[30px] bottom-0 w-px bg-border\" /> : null}\n {index > 0 ? <span className=\"absolute top-0 h-[18px] w-px bg-border\" /> : null}\n </span>\n <div className={cn(\"min-w-0\", !last && \"pb-2\")}>\n <div className=\"flex min-w-0 items-start gap-3 py-2\">\n <button\n type=\"button\"\n aria-expanded={isOpen}\n aria-controls={panelId}\n onClick={() => toggle(revision.id)}\n className=\"group/rev -mx-2 flex min-w-0 flex-1 items-start gap-2 rounded-[10px] px-2 py-1 text-left transition-colors duration-[120ms] hover:bg-surface-2 pointer-coarse:min-h-11\"\n >\n <ChevronRightIcon\n aria-hidden=\"true\"\n className={cn(\n \"mt-0.5 size-4 shrink-0 text-fg-subtle transition-transform duration-[120ms]\",\n isOpen && \"rotate-90\",\n )}\n />\n <span className=\"min-w-0\">\n <span className=\"block text-sm font-medium text-fg\">{revision.summary}</span>\n <span className=\"block text-xs leading-4.5 text-fg-muted\">\n {revision.author} · <When revision={revision} now={now} />\n </span>\n </span>\n </button>\n <div className=\"flex shrink-0 items-center pt-1\">\n {current ? (\n <CurrentTag />\n ) : (\n <RestoreButton\n revision={revision}\n onRestore={onRestore}\n disabledReason={restoreDisabledReason}\n />\n )}\n </div>\n </div>\n {isOpen ? (\n <div id={panelId} className=\"pb-2 pl-6\">\n <DiffView\n before={previousContent(revisions, index)}\n after={revision.content}\n format={format}\n size=\"sm\"\n hideStats\n label={`Changes in: ${revision.summary}`}\n />\n </div>\n ) : null}\n </div>\n </li>\n );\n })}\n </ol>\n );\n}\n\nfunction Split({\n revisions,\n format,\n onRestore,\n restoreDisabledReason,\n defaultRevisionId,\n now,\n}: RevisionHistoryProps & { format: DiffFormat }) {\n const [selectedId, setSelectedId] = useState(defaultRevisionId ?? revisions[0]?.id);\n const index = Math.max(\n 0,\n revisions.findIndex((revision) => revision.id === selectedId),\n );\n const selected = revisions[index];\n const listId = useId();\n return (\n <div className=\"grid min-w-0 gap-4 @2xl/history:grid-cols-[15rem_minmax(0,1fr)]\">\n <div\n role=\"listbox\"\n id={listId}\n aria-label=\"Versions\"\n aria-orientation=\"vertical\"\n className=\"flex min-w-0 flex-col gap-0.5\"\n onKeyDown={(event) => {\n if (event.key !== \"ArrowDown\" && event.key !== \"ArrowUp\") return;\n event.preventDefault();\n const next = Math.min(\n revisions.length - 1,\n Math.max(0, index + (event.key === \"ArrowDown\" ? 1 : -1)),\n );\n setSelectedId(revisions[next]!.id);\n (event.currentTarget.children[next] as HTMLElement | undefined)?.focus();\n }}\n >\n {revisions.map((revision, at) => {\n const active = at === index;\n return (\n <div\n key={revision.id}\n role=\"option\"\n aria-selected={active}\n tabIndex={active ? 0 : -1}\n onClick={() => setSelectedId(revision.id)}\n onKeyDown={(event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n setSelectedId(revision.id);\n }\n }}\n className={cn(\n \"relative min-w-0 cursor-pointer rounded-[10px] px-3 py-2 transition-colors duration-[120ms] pointer-coarse:min-h-11\",\n active ? \"bg-surface-2\" : \"hover:bg-surface-2/70\",\n )}\n >\n {active ? (\n // The selected marker every list uses (ListRow, nav): 2 x 16px brand bar.\n <span\n aria-hidden=\"true\"\n className=\"absolute top-1/2 left-0 h-4 w-0.5 -translate-y-1/2 rounded-full bg-brand\"\n />\n ) : null}\n <span className=\"flex min-w-0 items-center gap-2\">\n <span className=\"min-w-0 truncate text-sm font-medium text-fg\">\n {revision.summary}\n </span>\n </span>\n <span className=\"block truncate text-xs leading-4.5 text-fg-muted\">\n {revision.author} · <When revision={revision} now={now} />\n {at === 0 ? \" · Current\" : \"\"}\n </span>\n </div>\n );\n })}\n </div>\n {selected ? (\n <DiffView\n before={previousContent(revisions, index)}\n after={selected.content}\n format={format}\n title={selected.summary}\n meta={\n <>\n {selected.author} · <When revision={selected} now={now} />\n </>\n }\n actions={\n index === 0 ? (\n <CurrentTag />\n ) : (\n <RestoreButton\n revision={selected}\n onRestore={onRestore}\n disabledReason={restoreDisabledReason}\n />\n )\n }\n />\n ) : null}\n </div>\n );\n}\n\n/** Every saved version of a text, what each changed, and Restore. */\nexport function RevisionHistory(props: RevisionHistoryProps) {\n const {\n layout = \"stacked\",\n format = \"markdown\",\n revisions,\n restoreDisabledReason,\n loading,\n error,\n label = \"History\",\n className,\n } = props;\n let body: ReactNode;\n if (loading) {\n body = (\n <div aria-hidden=\"true\" className=\"flex flex-col gap-4 py-2\">\n {[0, 1, 2].map((row) => (\n <div key={row} className=\"flex items-center gap-3\">\n <Skeleton className=\"size-2.5 rounded-full bg-surface-3\" />\n <div className=\"flex flex-1 flex-col gap-1.5\">\n <Skeleton className=\"h-3.5 w-48 max-w-[70%] rounded-full bg-surface-3\" />\n <Skeleton className=\"h-3 w-32 max-w-[50%] rounded-full bg-surface-3\" />\n </div>\n </div>\n ))}\n </div>\n );\n } else if (error) {\n const failure = failedLoadParts(error);\n body = (\n <ErrorMessage\n title={error.message}\n details={failure.details}\n action={\n error.onRetry ? (\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n onClick={error.onRetry}\n className=\"pointer-coarse:min-h-11\"\n >\n Try again\n </Button>\n ) : undefined\n }\n >\n {failure.detail}\n </ErrorMessage>\n );\n } else if (revisions.length === 0) {\n body = <p className=\"text-sm text-fg-muted\">No versions yet. Saving creates the first one.</p>;\n } else {\n body =\n layout === \"split\" ? (\n <Split {...props} format={format} />\n ) : (\n <Stacked {...props} format={format} />\n );\n }\n return (\n <section\n aria-label={label}\n aria-busy={loading || undefined}\n data-layout={layout}\n className={cn(\"@container/history min-w-0\", className)}\n >\n {body}\n {restoreDisabledReason && !loading && !error && revisions.length > 1 ? (\n <div className=\"mt-3\">\n <InlineDisabledReason>{restoreDisabledReason}</InlineDisabledReason>\n </div>\n ) : null}\n </section>\n );\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/ui/revision-history.tsx"],"sourcesContent":["/* ----------------------------------------------------------------------------\n RevisionHistory - every saved version of a text, what each one changed, and\n Restore. Shared by knowledge entries, workspace instructions and\n organization identity.\n\n Restoring never deletes anything: it saves the old text as a new version,\n so it's reversible and confirms with a toast and Undo, not a dialog.\n\n Layouts:\n - \"stacked\" (default): a timeline; each version opens in place to show its\n changes. Fits a 520px sheet.\n - \"split\": versions on the left, the selected version's changes on the\n right. For pages and wide sheets.\n -------------------------------------------------------------------------- */\n\nimport { useId, useState, type ReactNode } from \"react\";\nimport { ChevronRightIcon, LoaderCircleIcon, RotateCcwIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/cn\";\nimport { Button } from \"./button\";\nimport { DiffView, failedLoadParts, type DiffFormat, type FailedLoad } from \"./diff-view\";\nimport { DisabledReason } from \"./disabled-reason\";\nimport { ErrorMessage } from \"./error-message\";\nimport { MetaChip } from \"./meta-chip\";\nimport { RelativeTime } from \"./relative-time\";\nimport { InlineDisabledReason } from \"./select-menu\";\nimport { Skeleton } from \"./skeleton\";\n\nexport interface Revision {\n id: string;\n /** Who saved it: a person, or \"Opengeni\" for an approved agent change. */\n author: string;\n /** When, as an ISO time. Shown as \"3 days ago\" with the exact time on hover. */\n createdAt?: string | undefined;\n /** Or a ready label, when there's no timestamp: \"Created 18 Sep\". */\n createdLabel?: string | undefined;\n /** One line: \"Added: Prefer small PRs.\" */\n summary: string;\n /** The full text of this version. */\n content: string;\n}\n\nexport type RevisionHistoryLayout = \"stacked\" | \"split\";\n\nexport interface RevisionHistoryProps {\n /** Newest first. The first one is the current version. */\n revisions: readonly Revision[];\n layout?: RevisionHistoryLayout | undefined;\n format?: DiffFormat | undefined;\n /** Restores a version by saving it again as the newest. Return a promise for the saving state. */\n onRestore?: ((revision: Revision) => void | Promise<unknown>) | undefined;\n /** Why versions can't be restored here, and who can. */\n restoreDisabledReason?: string | undefined;\n /** Which version starts open (stacked) or selected (split). Defaults to the newest. */\n defaultRevisionId?: string | undefined;\n /** The clock for \"3 days ago\". */\n now?: Date | undefined;\n /** Accessible name: \"Workspace instructions history\". */\n label?: string | undefined;\n loading?: boolean | undefined;\n /** What happened, what to do next, and an optional retry. */\n error?: FailedLoad | undefined;\n className?: string | undefined;\n}\n\n/** The text a version replaced: the one saved right before it, or nothing for the first. */\nexport function previousContent(revisions: readonly Revision[], index: number): string {\n return revisions[index + 1]?.content ?? \"\";\n}\n\nfunction When({ revision, now }: { revision: Revision; now?: Date | undefined }) {\n if (revision.createdAt) {\n return <RelativeTime date={revision.createdAt} now={now} focusable={false} />;\n }\n return <span>{revision.createdLabel}</span>;\n}\n\nfunction RestoreButton({\n revision,\n onRestore,\n disabledReason,\n}: {\n revision: Revision;\n onRestore?: ((revision: Revision) => void | Promise<unknown>) | undefined;\n disabledReason?: string | undefined;\n}) {\n const [pending, setPending] = useState(false);\n if (!onRestore) return null;\n const restore = async () => {\n const result = onRestore(revision);\n if (result && typeof (result as Promise<unknown>).then === \"function\") {\n setPending(true);\n try {\n await result;\n } finally {\n setPending(false);\n }\n }\n };\n // Not allowed: still focusable, and the reason shows on hover, focus and tap.\n return (\n <DisabledReason reason={disabledReason ?? \"\"} disabled={Boolean(disabledReason)}>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n disabled={pending}\n aria-label={`Restore this version: ${revision.summary}`}\n onClick={() => void restore()}\n className=\"shrink-0 pointer-coarse:min-h-11\"\n >\n {pending ? (\n <LoaderCircleIcon aria-hidden=\"true\" className=\"motion-safe:animate-spin\" />\n ) : (\n <RotateCcwIcon aria-hidden=\"true\" />\n )}\n {pending ? \"Restoring…\" : \"Restore\"}\n </Button>\n </DisabledReason>\n );\n}\n\n/** \"Current\" is a fact about the version, not a health status: a quiet chip. */\nfunction CurrentTag() {\n return <MetaChip variant=\"outline\">Current</MetaChip>;\n}\n\nfunction Stacked({\n revisions,\n format,\n onRestore,\n restoreDisabledReason,\n defaultRevisionId,\n now,\n}: RevisionHistoryProps & { format: DiffFormat }) {\n const [open, setOpen] = useState<Set<string>>(\n () => new Set([defaultRevisionId ?? revisions[0]?.id ?? \"\"]),\n );\n const baseId = useId();\n const toggle = (id: string) =>\n setOpen((current) => {\n const next = new Set(current);\n if (next.has(id)) next.delete(id);\n else next.add(id);\n return next;\n });\n\n return (\n <ol className=\"flex min-w-0 flex-col\">\n {revisions.map((revision, index) => {\n const isOpen = open.has(revision.id);\n const current = index === 0;\n const last = index === revisions.length - 1;\n const panelId = `${baseId}-${index}`;\n return (\n <li\n key={revision.id}\n className=\"relative grid min-w-0 grid-cols-[1.25rem_minmax(0,1fr)] gap-x-3\"\n >\n {/* The timeline: a dot per version, joined by a line. */}\n <span aria-hidden=\"true\" className=\"relative flex justify-center\">\n <span\n className={cn(\n \"relative z-10 mt-[18px] size-2.5 rounded-full border-2\",\n current ? \"border-brand bg-brand\" : \"border-border-strong bg-surface\",\n )}\n />\n {!last ? <span className=\"absolute top-[30px] bottom-0 w-px bg-border\" /> : null}\n {index > 0 ? <span className=\"absolute top-0 h-[18px] w-px bg-border\" /> : null}\n </span>\n <div className={cn(\"min-w-0\", !last && \"pb-2\")}>\n <div className=\"flex min-w-0 items-start gap-3 py-2\">\n <button\n type=\"button\"\n aria-expanded={isOpen}\n aria-controls={panelId}\n onClick={() => toggle(revision.id)}\n className=\"group/rev -mx-2 flex min-w-0 flex-1 items-start gap-2 rounded-[10px] px-2 py-1 text-left transition-colors duration-[120ms] hover:bg-surface-2 pointer-coarse:min-h-11\"\n >\n <ChevronRightIcon\n aria-hidden=\"true\"\n className={cn(\n \"mt-0.5 size-4 shrink-0 text-fg-subtle transition-transform duration-[120ms]\",\n isOpen && \"rotate-90\",\n )}\n />\n <span className=\"min-w-0\">\n <span className=\"block text-sm font-medium text-fg\">{revision.summary}</span>\n <span className=\"block text-xs leading-4.5 text-fg-muted\">\n {revision.author} · <When revision={revision} now={now} />\n </span>\n </span>\n </button>\n <div className=\"flex shrink-0 items-center pt-1\">\n {current ? (\n <CurrentTag />\n ) : (\n <RestoreButton\n revision={revision}\n onRestore={onRestore}\n disabledReason={restoreDisabledReason}\n />\n )}\n </div>\n </div>\n {isOpen ? (\n <div id={panelId} className=\"pb-2 pl-6\">\n <DiffView\n before={previousContent(revisions, index)}\n after={revision.content}\n format={format}\n size=\"sm\"\n hideStats\n label={`Changes in: ${revision.summary}`}\n />\n </div>\n ) : null}\n </div>\n </li>\n );\n })}\n </ol>\n );\n}\n\nfunction Split({\n revisions,\n format,\n onRestore,\n restoreDisabledReason,\n defaultRevisionId,\n now,\n}: RevisionHistoryProps & { format: DiffFormat }) {\n const [selectedId, setSelectedId] = useState(defaultRevisionId ?? revisions[0]?.id);\n const index = Math.max(\n 0,\n revisions.findIndex((revision) => revision.id === selectedId),\n );\n const selected = revisions[index];\n const listId = useId();\n return (\n <div className=\"grid min-w-0 gap-4 @2xl/history:grid-cols-[15rem_minmax(0,1fr)]\">\n <div\n role=\"listbox\"\n id={listId}\n aria-label=\"Versions\"\n aria-orientation=\"vertical\"\n className=\"flex min-w-0 flex-col gap-0.5\"\n onKeyDown={(event) => {\n if (event.key !== \"ArrowDown\" && event.key !== \"ArrowUp\") return;\n event.preventDefault();\n const next = Math.min(\n revisions.length - 1,\n Math.max(0, index + (event.key === \"ArrowDown\" ? 1 : -1)),\n );\n setSelectedId(revisions[next]!.id);\n (event.currentTarget.children[next] as HTMLElement | undefined)?.focus();\n }}\n >\n {revisions.map((revision, at) => {\n const active = at === index;\n return (\n <div\n key={revision.id}\n role=\"option\"\n aria-selected={active}\n tabIndex={active ? 0 : -1}\n onClick={() => setSelectedId(revision.id)}\n onKeyDown={(event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n setSelectedId(revision.id);\n }\n }}\n className={cn(\n \"relative min-w-0 cursor-pointer rounded-[10px] px-3 py-2 transition-colors duration-[120ms] pointer-coarse:min-h-11\",\n active ? \"bg-surface-2\" : \"hover:bg-surface-2/70\",\n )}\n >\n {active ? (\n // The selected marker every list uses (ListRow, nav): 2 x 16px brand bar.\n <span\n aria-hidden=\"true\"\n className=\"absolute top-1/2 left-0 h-4 w-0.5 -translate-y-1/2 rounded-full bg-brand\"\n />\n ) : null}\n <span className=\"flex min-w-0 items-center gap-2\">\n <span className=\"min-w-0 truncate text-sm font-medium text-fg\">\n {revision.summary}\n </span>\n </span>\n <span className=\"block truncate text-xs leading-4.5 text-fg-muted\">\n {revision.author} · <When revision={revision} now={now} />\n {at === 0 ? \" · Current\" : \"\"}\n </span>\n </div>\n );\n })}\n </div>\n {selected ? (\n <DiffView\n before={previousContent(revisions, index)}\n after={selected.content}\n format={format}\n title={selected.summary}\n meta={\n <>\n {selected.author} · <When revision={selected} now={now} />\n </>\n }\n actions={\n index === 0 ? (\n <CurrentTag />\n ) : (\n <RestoreButton\n revision={selected}\n onRestore={onRestore}\n disabledReason={restoreDisabledReason}\n />\n )\n }\n />\n ) : null}\n </div>\n );\n}\n\n/** Every saved version of a text, what each changed, and Restore. */\nexport function RevisionHistory(props: RevisionHistoryProps) {\n const {\n layout = \"stacked\",\n format = \"markdown\",\n revisions,\n restoreDisabledReason,\n loading,\n error,\n label = \"History\",\n className,\n } = props;\n let body: ReactNode;\n if (loading) {\n body = (\n <div aria-hidden=\"true\" className=\"flex flex-col gap-4 py-2\">\n {[0, 1, 2].map((row) => (\n <div key={row} className=\"flex items-center gap-3\">\n <Skeleton className=\"size-2.5 rounded-full bg-surface-3\" />\n <div className=\"flex flex-1 flex-col gap-1.5\">\n <Skeleton className=\"h-3.5 w-48 max-w-[70%] rounded-full bg-surface-3\" />\n <Skeleton className=\"h-3 w-32 max-w-[50%] rounded-full bg-surface-3\" />\n </div>\n </div>\n ))}\n </div>\n );\n } else if (error) {\n const failure = failedLoadParts(error);\n body = (\n <ErrorMessage\n title={error.message}\n details={failure.details}\n action={\n error.onRetry ? (\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n onClick={error.onRetry}\n className=\"pointer-coarse:min-h-11\"\n >\n Try again\n </Button>\n ) : undefined\n }\n >\n {failure.detail}\n </ErrorMessage>\n );\n } else if (revisions.length === 0) {\n body = <p className=\"text-sm text-fg-muted\">No versions yet. Saving creates the first one.</p>;\n } else {\n body =\n layout === \"split\" ? (\n <Split {...props} format={format} />\n ) : (\n <Stacked {...props} format={format} />\n );\n }\n return (\n <section\n aria-label={label}\n aria-busy={loading || undefined}\n data-layout={layout}\n className={cn(\"@container/history min-w-0\", className)}\n >\n {body}\n {restoreDisabledReason && !loading && !error && revisions.length > 1 ? (\n <div className=\"mt-3\">\n <InlineDisabledReason>{restoreDisabledReason}</InlineDisabledReason>\n </div>\n ) : null}\n </section>\n );\n}\n"],"mappings":"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","names":[]}
@@ -4,25 +4,27 @@ import {
4
4
  RoleSelect,
5
5
  needsEscalationConfirm,
6
6
  roleLabel
7
- } from "../chunk-OMH7R6I3.js";
8
- import "../chunk-IGVVXLKJ.js";
9
- import "../chunk-WHWUWN2X.js";
10
- import "../chunk-L4OF77LE.js";
7
+ } from "../chunk-I7XIZRFD.js";
8
+ import "../chunk-ZYAZUPPV.js";
9
+ import "../chunk-IKXNLWAL.js";
10
+ import "../chunk-O4OOG3D6.js";
11
11
  import "../chunk-HJO32O7Z.js";
12
12
  import "../chunk-HD5X76TP.js";
13
- import "../chunk-2VB2O4FQ.js";
13
+ import "../chunk-3CPWWGNK.js";
14
14
  import "../chunk-5OTQA7CM.js";
15
- import "../chunk-AOHU6O3M.js";
15
+ import "../chunk-MVW6HNPI.js";
16
16
  import "../chunk-ZMBJPN4T.js";
17
17
  import "../chunk-UX3XHFRX.js";
18
- import "../chunk-WLEDGIVS.js";
18
+ import "../chunk-FSOQDUCG.js";
19
+ import "../chunk-V4Z4B2E3.js";
20
+ import "../chunk-FYWT2O76.js";
19
21
  import "../chunk-USG4XNMA.js";
20
22
  import "../chunk-7QQN3KNP.js";
21
23
  import "../chunk-EDYVC3U3.js";
22
24
  import "../chunk-UD6AAZSC.js";
23
25
  import "../chunk-XEA5BCMA.js";
24
26
  import "../chunk-TXS65BB2.js";
25
- import "../chunk-TNUSPXPW.js";
27
+ import "../chunk-7T2ZE3VT.js";
26
28
  export {
27
29
  CUSTOM_ROLE_LABEL,
28
30
  RoleSelect,
@@ -1,9 +1,11 @@
1
1
  "use client";
2
2
  import {
3
3
  SegmentedControl
4
- } from "../chunk-VGUN6VB2.js";
5
- import "../chunk-PC2MVXIP.js";
4
+ } from "../chunk-RGBI63KJ.js";
5
+ import "../chunk-YNF2OC54.js";
6
6
  import "../chunk-UX3XHFRX.js";
7
+ import "../chunk-V4Z4B2E3.js";
8
+ import "../chunk-FYWT2O76.js";
7
9
  import "../chunk-UD6AAZSC.js";
8
10
  import "../chunk-XEA5BCMA.js";
9
11
  import "../chunk-TXS65BB2.js";
@@ -12,15 +12,17 @@ import {
12
12
  nativeOptionText,
13
13
  nextEnabledIndex,
14
14
  typeaheadIndex
15
- } from "../chunk-2VB2O4FQ.js";
15
+ } from "../chunk-3CPWWGNK.js";
16
16
  import "../chunk-5OTQA7CM.js";
17
- import "../chunk-AOHU6O3M.js";
17
+ import "../chunk-MVW6HNPI.js";
18
+ import "../chunk-V4Z4B2E3.js";
19
+ import "../chunk-FYWT2O76.js";
18
20
  import "../chunk-USG4XNMA.js";
19
21
  import "../chunk-EDYVC3U3.js";
20
22
  import "../chunk-UD6AAZSC.js";
21
23
  import "../chunk-XEA5BCMA.js";
22
24
  import "../chunk-TXS65BB2.js";
23
- import "../chunk-TNUSPXPW.js";
25
+ import "../chunk-7T2ZE3VT.js";
24
26
  export {
25
27
  ComboboxPanelPreview,
26
28
  ComboboxSelect,
@@ -10,8 +10,10 @@ import {
10
10
  joinIds,
11
11
  useSettingRowControl,
12
12
  useSettingRowField
13
- } from "../chunk-PC2MVXIP.js";
13
+ } from "../chunk-YNF2OC54.js";
14
14
  import "../chunk-UX3XHFRX.js";
15
+ import "../chunk-V4Z4B2E3.js";
16
+ import "../chunk-FYWT2O76.js";
15
17
  import "../chunk-UD6AAZSC.js";
16
18
  import "../chunk-XEA5BCMA.js";
17
19
  import "../chunk-TXS65BB2.js";
package/dist/ui/switch.js CHANGED
@@ -1,9 +1,11 @@
1
1
  "use client";
2
2
  import {
3
3
  Switch
4
- } from "../chunk-FOGNA3BU.js";
5
- import "../chunk-PC2MVXIP.js";
4
+ } from "../chunk-7V5REBCP.js";
5
+ import "../chunk-YNF2OC54.js";
6
6
  import "../chunk-UX3XHFRX.js";
7
+ import "../chunk-V4Z4B2E3.js";
8
+ import "../chunk-FYWT2O76.js";
7
9
  import "../chunk-EDYVC3U3.js";
8
10
  import "../chunk-UD6AAZSC.js";
9
11
  import "../chunk-XEA5BCMA.js";
@@ -10,13 +10,13 @@ import {
10
10
  usageLevel,
11
11
  usageResets,
12
12
  usageValueText
13
- } from "../chunk-UJUQ2QOX.js";
14
- import "../chunk-ELL6HSYR.js";
13
+ } from "../chunk-HEFPPMBQ.js";
14
+ import "../chunk-53AGXXZM.js";
15
15
  import "../chunk-UX3XHFRX.js";
16
16
  import "../chunk-UD6AAZSC.js";
17
17
  import "../chunk-XEA5BCMA.js";
18
18
  import "../chunk-TXS65BB2.js";
19
- import "../chunk-TNUSPXPW.js";
19
+ import "../chunk-7T2ZE3VT.js";
20
20
  export {
21
21
  USAGE_LOW_THRESHOLD,
22
22
  UsageMeter,
@@ -4,10 +4,12 @@ import {
4
4
  WORD_LIST_TERM_MAX,
5
5
  WordListRow,
6
6
  wordListTerms
7
- } from "../chunk-5DTST3TP.js";
7
+ } from "../chunk-F4ISQGGM.js";
8
8
  import "../chunk-DMSUSY36.js";
9
- import "../chunk-PC2MVXIP.js";
9
+ import "../chunk-YNF2OC54.js";
10
10
  import "../chunk-UX3XHFRX.js";
11
+ import "../chunk-V4Z4B2E3.js";
12
+ import "../chunk-FYWT2O76.js";
11
13
  import "../chunk-UD6AAZSC.js";
12
14
  import "../chunk-XEA5BCMA.js";
13
15
  import "../chunk-TXS65BB2.js";
package/dist/usage.js CHANGED
@@ -13,7 +13,7 @@ import {
13
13
  summarizeUsage,
14
14
  usagePercentLabel,
15
15
  useUsage
16
- } from "./chunk-NWGNFN3N.js";
16
+ } from "./chunk-T3OWFVMS.js";
17
17
  import {
18
18
  DEFAULT_ALLOWANCE_LABELS,
19
19
  DEFAULT_SESSION_USAGE_LIMIT_LABELS,
@@ -30,7 +30,7 @@ import "./chunk-RV3O5OCQ.js";
30
30
  import "./chunk-CM7LVUKC.js";
31
31
  import "./chunk-TVQCDDSZ.js";
32
32
  import "./chunk-TXS65BB2.js";
33
- import "./chunk-TNUSPXPW.js";
33
+ import "./chunk-7T2ZE3VT.js";
34
34
  export {
35
35
  DEFAULT_ALLOWANCE_LABELS,
36
36
  DEFAULT_SESSION_USAGE_LIMIT_LABELS,
package/dist/workbench.js CHANGED
@@ -11,16 +11,16 @@ import {
11
11
  import {
12
12
  enableDesktopViewer
13
13
  } from "./chunk-QIOARE4I.js";
14
- import "./chunk-K42OUZQ3.js";
15
- import "./chunk-5WUN7XPD.js";
14
+ import "./chunk-KLEUWIMZ.js";
15
+ import "./chunk-UVN5TMHU.js";
16
16
  import "./chunk-QV3DJVRZ.js";
17
17
  import "./chunk-YSRBFJMQ.js";
18
- import "./chunk-5KWMYPJV.js";
18
+ import "./chunk-Z4FMAFNH.js";
19
19
  import "./chunk-ZUWF4NF7.js";
20
20
  import "./chunk-TNEZNMSN.js";
21
21
  import "./chunk-5I4VRWBB.js";
22
22
  import "./chunk-TXS65BB2.js";
23
- import "./chunk-TNUSPXPW.js";
23
+ import "./chunk-7T2ZE3VT.js";
24
24
 
25
25
  // src/workbench.ts
26
26
  function enableWorkbench() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeni/react",
3
- "version": "6.5.2-canary.41607687019001",
3
+ "version": "6.7.0",
4
4
  "description": "React hooks and styled components for Opengeni: live session streaming, chat composer, message timeline, session status, and fleet views — token-themed (CSS variables), dark-first, built on Tailwind v4 + Radix + Motion.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -295,9 +295,9 @@
295
295
  "@dnd-kit/utilities": "3.2.2",
296
296
  "@fontsource-variable/noto-sans-arabic": "5.2.10",
297
297
  "@fontsource-variable/noto-sans-jp": "5.2.10",
298
- "@opengeni/connect": "6.5.2-canary.41607687019001",
299
- "@opengeni/contracts": "6.5.2-canary.41607687019001",
300
- "@opengeni/sdk": "6.5.2-canary.41607687019001",
298
+ "@opengeni/connect": "6.7.0",
299
+ "@opengeni/contracts": "6.7.0",
300
+ "@opengeni/sdk": "6.7.0",
301
301
  "@tanstack/react-virtual": "^3.14.11",
302
302
  "class-variance-authority": "^0.7.1",
303
303
  "clsx": "^2.1.1",
@@ -380,6 +380,5 @@
380
380
  },
381
381
  "engines": {
382
382
  "node": ">=18"
383
- },
384
- "gitHead": "041e773bc7a4e5e1ecd9f3667659f29f4599e441"
383
+ }
385
384
  }
@@ -233,6 +233,63 @@ export const GITHUB_STATUS_TOAST_ID = "opengeni-github-status";
233
233
  /** The one "Your GitHub account is unavailable" toast. */
234
234
  export const PERSONAL_GITHUB_STATUS_TOAST_ID = "opengeni-personal-github-status";
235
235
 
236
+ /** The one lasting "Reconnect your GitHub" toast. */
237
+ export const PERSONAL_GITHUB_RECONNECT_TOAST_ID = "opengeni-personal-github-reconnect";
238
+
239
+ /**
240
+ * Whether a personal GitHub status asks the person to reconnect: the stored
241
+ * grant stopped working (GitHub refused a refresh), not a disconnect.
242
+ */
243
+ function personalGitHubNeedsReconnect(
244
+ connection: PersonalGitHubConnectionStatusResponse["connection"] | null | undefined,
245
+ ): connection is NonNullable<PersonalGitHubConnectionStatusResponse["connection"]> {
246
+ return Boolean(connection && connection.status !== "active" && connection.status !== "revoked");
247
+ }
248
+
249
+ type PersonalGitHubReconnectToast = {
250
+ /** The connection (id:version) the toast last appeared for. */
251
+ shownFor: string | null;
252
+ };
253
+
254
+ /**
255
+ * One lasting toast per stale grant: it stays until the person reconnects or
256
+ * dismisses it, and the next background read does not bring it back.
257
+ */
258
+ function announcePersonalGitHubReconnect(
259
+ state: PersonalGitHubReconnectToast,
260
+ connection: NonNullable<PersonalGitHubConnectionStatusResponse["connection"]>,
261
+ onReconnect: () => void,
262
+ ): void {
263
+ const key = `${connection.id}:${connection.version}`;
264
+ if (state.shownFor === key) return;
265
+ state.shownFor = key;
266
+ const login =
267
+ typeof connection.metadata.githubLogin === "string" && connection.metadata.githubLogin
268
+ ? connection.metadata.githubLogin
269
+ : null;
270
+ showPersonalGitHubReconnectToast(login, onReconnect);
271
+ }
272
+
273
+ /** The lasting "Reconnect your GitHub" toast with its one action. */
274
+ export function showPersonalGitHubReconnectToast(
275
+ githubLogin: string | null,
276
+ onReconnect: () => void,
277
+ ): void {
278
+ toast.warning("Reconnect your GitHub", {
279
+ id: PERSONAL_GITHUB_RECONNECT_TOAST_ID,
280
+ description: `Opengeni can't work as ${githubLogin ? `@${githubLogin}` : "you"} until you reconnect.`,
281
+ duration: Infinity,
282
+ closeButton: true,
283
+ action: { label: "Reconnect", onClick: onReconnect },
284
+ });
285
+ }
286
+
287
+ function clearPersonalGitHubReconnectToast(state: PersonalGitHubReconnectToast): void {
288
+ if (state.shownFor === null) return;
289
+ state.shownFor = null;
290
+ toast.dismiss(PERSONAL_GITHUB_RECONNECT_TOAST_ID);
291
+ }
292
+
236
293
  export type SlackLinkPrepareController<Request> = ReturnType<
237
294
  typeof createSlackLinkPrepareController<Request>
238
295
  >;
@@ -469,6 +526,12 @@ export function useAppState(host: AppStateHost, appStateOptions: AppStateOptions
469
526
  const personalGitHubQuietRetry = useRef(createQuietRetry());
470
527
  const refreshGitHubRef = useRef<AppContextValue["refreshGitHub"]>(async () => {});
471
528
  const refreshPersonalGitHubRef = useRef<AppContextValue["refreshPersonalGitHub"]>(async () => {});
529
+ const personalGitHubReconnectToast = useRef<PersonalGitHubReconnectToast>({ shownFor: null });
530
+ // The toast reconnects the exact connection it was shown for.
531
+ const reconnectPersonalGitHubFromToast = useLatestCallback(
532
+ (workspaceId: string, connectionId: string) =>
533
+ void beginPersonalGitHubOAuth(workspaceId, true, connectionId),
534
+ );
472
535
  useEffect(
473
536
  () => () => {
474
537
  githubQuietRetry.current.reset();
@@ -1599,9 +1662,30 @@ export function useAppState(host: AppStateHost, appStateOptions: AppStateOptions
1599
1662
  setPersonalGitHubCatalogReady(true);
1600
1663
  setPersonalGitHubBusy(false);
1601
1664
  personalGitHubQuietRetry.current.reset();
1665
+ clearPersonalGitHubReconnectToast(personalGitHubReconnectToast.current);
1602
1666
  return;
1603
1667
  }
1604
1668
  setPersonalGitHubBusy(true);
1669
+ const clearPersonalCatalog = () => {
1670
+ setPersonalGitHubRepositories([]);
1671
+ setPersonalGitHubSelection(null);
1672
+ setSelectedPersonalGitHubRepoIds(new Set());
1673
+ setSelectedPersonalGitHubRepoRefs({});
1674
+ setPersonalGitHubCatalogReady(true);
1675
+ personalGitHubQuietRetry.current.reset();
1676
+ };
1677
+ const showReconnectState = (status: PersonalGitHubConnectionStatusResponse): boolean => {
1678
+ const connection = status.connection;
1679
+ if (!status.enabled || !personalGitHubNeedsReconnect(connection)) {
1680
+ // Reconnected, disconnected or turned off: nothing left to act on.
1681
+ clearPersonalGitHubReconnectToast(personalGitHubReconnectToast.current);
1682
+ return false;
1683
+ }
1684
+ announcePersonalGitHubReconnect(personalGitHubReconnectToast.current, connection, () =>
1685
+ reconnectPersonalGitHubFromToast(workspaceId, connection.id),
1686
+ );
1687
+ return true;
1688
+ };
1605
1689
  try {
1606
1690
  const status = await client.personalGitHubStatus(workspaceId);
1607
1691
  if (signal?.aborted || !ownsRefresh()) return;
@@ -1616,13 +1700,9 @@ export function useAppState(host: AppStateHost, appStateOptions: AppStateOptions
1616
1700
  ? current
1617
1701
  : null,
1618
1702
  );
1703
+ showReconnectState(status);
1619
1704
  if (!status.enabled || connection?.status !== "active") {
1620
- setPersonalGitHubRepositories([]);
1621
- setPersonalGitHubSelection(null);
1622
- setSelectedPersonalGitHubRepoIds(new Set());
1623
- setSelectedPersonalGitHubRepoRefs({});
1624
- setPersonalGitHubCatalogReady(true);
1625
- personalGitHubQuietRetry.current.reset();
1705
+ clearPersonalCatalog();
1626
1706
  return;
1627
1707
  }
1628
1708
  const repositories: PersonalGitHubRepositoryCatalogItem[] = [];
@@ -1672,6 +1752,23 @@ export function useAppState(host: AppStateHost, appStateOptions: AppStateOptions
1672
1752
  void refreshPersonalGitHubRef.current(workspaceId);
1673
1753
  }, workspaceId);
1674
1754
  if (!options?.userInitiated) return;
1755
+ } else {
1756
+ // GitHub may have just refused the stored grant, which turns the
1757
+ // connection into needs-reconnect. Read it again so the page shows
1758
+ // Reconnect in place (never "Connected · 0 repos") with one lasting
1759
+ // toast, instead of a passing error.
1760
+ const current = await client.personalGitHubStatus(workspaceId).catch(() => null);
1761
+ if (signal?.aborted || !ownsRefresh()) return;
1762
+ if (current) {
1763
+ setPersonalGitHubStatus(current);
1764
+ if (showReconnectState(current)) {
1765
+ clearPersonalCatalog();
1766
+ return;
1767
+ }
1768
+ }
1769
+ // Nothing for the person to do: a background read stays quiet, and
1770
+ // the next read tries again.
1771
+ if (!options?.userInitiated) return;
1675
1772
  }
1676
1773
  toast.error("Your GitHub account is unavailable", {
1677
1774
  id: PERSONAL_GITHUB_STATUS_TOAST_ID,
@@ -1681,22 +1778,26 @@ export function useAppState(host: AppStateHost, appStateOptions: AppStateOptions
1681
1778
  if (ownsRefresh()) setPersonalGitHubBusy(false);
1682
1779
  }
1683
1780
  },
1684
- [client],
1781
+ [client, reconnectPersonalGitHubFromToast],
1685
1782
  );
1686
1783
 
1687
1784
  useInsertionEffect(() => {
1688
1785
  refreshPersonalGitHubRef.current = refreshPersonalGitHub;
1689
1786
  }, [refreshPersonalGitHub]);
1690
1787
 
1691
- async function beginPersonalGitHubOAuth(workspaceId: string, reconnect: boolean): Promise<void> {
1692
- const connection = personalGitHubStatus?.connection;
1788
+ async function beginPersonalGitHubOAuth(
1789
+ workspaceId: string,
1790
+ reconnect: boolean,
1791
+ connectionId?: string,
1792
+ ): Promise<void> {
1793
+ const reconnectAccountId = connectionId ?? personalGitHubStatus?.connection?.id;
1693
1794
  try {
1694
1795
  const attempt = await client.beginConnect(workspaceId, {
1695
1796
  providerId: "github-personal",
1696
1797
  ownership: "personal",
1697
1798
  returnUrl: hostPage.href(),
1698
1799
  idempotencyKey: crypto.randomUUID(),
1699
- ...(reconnect && connection ? { reconnectAccountId: connection.id } : {}),
1800
+ ...(reconnect && reconnectAccountId ? { reconnectAccountId } : {}),
1700
1801
  });
1701
1802
  if (attempt.nextAction.type !== "authorize")
1702
1803
  throw new Error("GitHub did not return an authorization link");
@@ -1715,10 +1816,21 @@ export function useAppState(host: AppStateHost, appStateOptions: AppStateOptions
1715
1816
  if (!connection) return true;
1716
1817
  setPersonalGitHubBusy(true);
1717
1818
  try {
1718
- await client.disconnectPersonalGitHub(workspaceId, connection.id, {
1719
- expectedVersion: connection.version,
1720
- idempotencyKey: crypto.randomUUID(),
1721
- });
1819
+ const disconnect = (target: { id: string; version: number }) =>
1820
+ client.disconnectPersonalGitHub(workspaceId, target.id, {
1821
+ expectedVersion: target.version,
1822
+ idempotencyKey: crypto.randomUUID(),
1823
+ });
1824
+ try {
1825
+ await disconnect(connection);
1826
+ } catch (error) {
1827
+ if (!(error instanceof OpenGeniApiError && error.status === 409)) throw error;
1828
+ // The connection moved on while the page held it (a reconnect or a
1829
+ // token refresh finished meanwhile). Removing your own GitHub is still
1830
+ // what was asked: read the current connection and remove that one.
1831
+ const current = (await client.personalGitHubStatus(workspaceId)).connection;
1832
+ if (current && current.status !== "revoked") await disconnect(current);
1833
+ }
1722
1834
  await refreshPersonalGitHub(workspaceId, undefined, { userInitiated: true });
1723
1835
  toast.success("Your GitHub account was disconnected");
1724
1836
  return true;
@@ -26,7 +26,7 @@ import { SettingRow, SettingRowGroup } from "../../../ui/setting-row";
26
26
  import { Switch } from "../../../ui/switch";
27
27
  import { UsageMeter } from "../../../ui/usage-meter";
28
28
  import { formatBytes } from "../../lib/format";
29
- import { errorMessage } from "@opengeni/contracts/values";
29
+ import { userErrorText } from "../../../ui/api-error";
30
30
 
31
31
  export type SiteDataClient = Pick<
32
32
  OpenGeniBrowserClient,
@@ -399,7 +399,7 @@ function SiteDataCollection({
399
399
  });
400
400
  } catch (nextError) {
401
401
  toast.error("Couldn't export records", {
402
- description: errorMessage(nextError),
402
+ description: userErrorText(nextError),
403
403
  });
404
404
  } finally {
405
405
  setExporting(false);
@@ -26,7 +26,7 @@ import { isPersonalWorkspace } from "../../lib/managed-self-context";
26
26
  import { hasWorkspacePermission } from "../../lib/permissions";
27
27
  import { sitesClientConfig } from "../../lib/site-publishing";
28
28
  import { useDuplicateSite } from "../../lib/use-duplicate-site";
29
- import { errorMessage } from "@opengeni/contracts/values";
29
+ import { userErrorText } from "../../../ui/api-error";
30
30
 
31
31
  // Stands in for the Site while it loads so the audience hook keeps its order.
32
32
  const PLACEHOLDER_SITE: WorkspaceArtifact = {
@@ -108,7 +108,7 @@ export function useSiteManagement({
108
108
  return true;
109
109
  } catch (error) {
110
110
  toast.error(status === "archived" ? "Couldn't archive Site" : "Couldn't restore Site", {
111
- description: errorMessage(error),
111
+ description: userErrorText(error),
112
112
  });
113
113
  return false;
114
114
  } finally {