@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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/app/components/repository-picker.tsx"],"sourcesContent":["import {\n CheckIcon,\n ChevronDownIcon,\n GitBranchIcon,\n GitPullRequestIcon,\n Loader2Icon,\n LockIcon,\n PlusIcon,\n RefreshCwIcon,\n Settings2Icon,\n} from \"lucide-react\";\nimport { useEffect, useRef, useState, type ReactNode } from \"react\";\nimport { useAppHost } from \"../lib/app-host\";\nimport { toast } from \"../lib/toast\";\nimport { REPOSITORY_PANEL_CLASS } from \"./repository-picker-layout\";\nimport {\n ComposerMenuHeader,\n ComposerMenuRowsSkeleton,\n ComposerMenuSwitch,\n} from \"../../ui/composer-menu\";\nimport { MENU_BUTTON_CLASS, MENU_LABEL_CLASS, MENU_NOTE_CLASS } from \"../../ui/menu-styles\";\n\nimport {\n ManualRepositoryEditor,\n type ManualRepositoryAttachResult,\n} from \"./manual-repository-editor\";\nimport { RepositoryRefInput } from \"./repository-ref-input\";\nimport { Button } from \"../../ui/button\";\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from \"../../ui/collapsible\";\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger } from \"../../ui/dropdown-menu\";\nimport { Input } from \"../../ui/input\";\nimport { Label } from \"../../ui/label\";\nimport { MetaChip } from \"../../ui/meta-chip\";\nimport { SegmentedControl } from \"../../ui/segmented-control\";\nimport { userErrorText } from \"../../ui/api-error\";\nimport { ErrorText } from \"../../ui/error-text\";\nimport { repoCountLabel } from \"../lib/format\";\nimport { attachedManualRepositoryCount } from \"../lib/manual-repositories\";\nimport {\n gitHubRepositoryResource,\n isRepositoryResourceForGitHubRepo,\n sameRepositoryUri,\n type RepoDraft,\n type RepositoryGroup,\n} from \"../lib/session-tools\";\nimport { cn } from \"../lib/utils\";\nimport type {\n GitHubAppSetupMode,\n GitHubBindingStatus,\n GitHubInstallationBinding,\n GitHubRepository,\n PersonalGitHubConnectionStatusResponse,\n PersonalGitHubRepositoryCatalogItem,\n ResourceRef,\n} from \"../types\";\n\nexport function repositoryBindingPresentation(\n status: GitHubBindingStatus,\n installUrl: string | null,\n setupMode: GitHubAppSetupMode = \"operator\",\n): {\n setupDescription: string;\n emptyDescription: string;\n connectUrl: string | null;\n connectLabel: string;\n healthy: boolean;\n canRefresh: boolean;\n} {\n if (status === \"bound\") {\n return {\n setupDescription:\n setupMode === \"platform\"\n ? \"This workspace is connected to Opengeni's managed GitHub App.\"\n : \"This workspace has a live GitHub App binding with an explicit repository allowlist.\",\n emptyDescription:\n \"The Opengeni app is installed, but no repositories are shared with this workspace yet.\",\n connectUrl: installUrl,\n connectLabel: \"Install on another account\",\n healthy: true,\n canRefresh: true,\n };\n }\n if (status === \"unbound\") {\n return {\n setupDescription:\n setupMode === \"platform\"\n ? \"Install Opengeni on a GitHub account you own, or connect an existing installation.\"\n : \"GitHub App server credentials are configured, but this workspace has no usable installation binding.\",\n emptyDescription:\n setupMode === \"platform\"\n ? \"Connect as the personal account owner or an organization owner. GitHub repository administrators and collaborators cannot connect an installation.\"\n : \"GitHub App server credentials exist, but this workspace has no active installation binding. Connect as the personal owner or an organization owner; repository administrators and collaborators cannot bind.\",\n connectUrl: installUrl,\n connectLabel: setupMode === \"platform\" ? \"Install\" : \"Connect workspace App\",\n healthy: false,\n canRefresh: false,\n };\n }\n return {\n setupDescription:\n setupMode === \"platform\"\n ? \"GitHub is temporarily unavailable for this Opengeni deployment.\"\n : \"Create a prefilled app, add the generated values to your .env, then restart the API and worker.\",\n emptyDescription:\n setupMode === \"platform\"\n ? \"GitHub integration is unavailable for this Opengeni deployment.\"\n : \"GitHub App server credentials are not configured. App registration alone does not connect repositories.\",\n connectUrl: null,\n connectLabel: \"Connect GitHub\",\n healthy: false,\n canRefresh: false,\n };\n}\n\nexport type RepositoryContextPickerProps = {\n setupMode: GitHubAppSetupMode;\n configured: boolean;\n status: GitHubBindingStatus;\n installUrl: string | null;\n linkUrl: string | null;\n installations: GitHubInstallationBinding[];\n repositories: GitHubRepository[];\n personalGitHubStatus?: PersonalGitHubConnectionStatusResponse | null | undefined;\n personalGitHubRepositories?: PersonalGitHubRepositoryCatalogItem[] | undefined;\n selectedPersonalGitHubRepoIds?: Set<string> | undefined;\n selectedPersonalGitHubRepoRefs?: Record<string, string> | undefined;\n personalGitHubBusy?: boolean | undefined;\n onConnectPersonalGitHub?: (() => void) | undefined;\n onTogglePersonalGitHubRepo?: ((repo: PersonalGitHubRepositoryCatalogItem) => void) | undefined;\n onPersonalGitHubRefChange?: ((repositoryId: string, ref: string) => void) | undefined;\n groups: RepositoryGroup[];\n selectedRepoIds: Set<number>;\n selectedRepoRefs: Record<number, string>;\n manualRepos: RepoDraft[];\n manualOpen: boolean;\n org: string;\n pending: boolean;\n repoBusy: boolean;\n /**\n * The workspace's GitHub status or repository list failed to load and no\n * earlier list is shown. The menu says so instead of offering setup.\n */\n githubLoadFailed?: boolean | undefined;\n /**\n * A later refresh failed while the earlier list is still shown. The menu\n * keeps the list and says it couldn't update it, with \"Try again\".\n */\n githubUpdateFailed?: boolean | undefined;\n githubAppBusy: boolean;\n /**\n * Reloads both catalogs now (a manager's reload also syncs from GitHub). The\n * list refreshes itself on open and after GitHub flows; this backs the\n * \"Try again\" shown after a failed load.\n */\n onRefresh: () => Promise<void>;\n /** Passive open refresh. Caller owns provider-sync permissions and throttling. */\n onOpenRefresh?: (() => Promise<void>) | undefined;\n /**\n * The person is leaving to change GitHub access (on GitHub or the GitHub\n * settings page). The caller refreshes both catalogs, unthrottled, once they\n * are back.\n */\n onLeaveForGitHub?: (() => void) | undefined;\n /** False when the current principal cannot read either repository catalog. */\n refreshAllowed?: boolean | undefined;\n onToggleRepo: (repo: GitHubRepository) => void;\n onRefChange: (repoId: number, ref: string) => void;\n onManualOpenChange: (open: boolean) => void;\n onManualAdd: () => void;\n onManualUpdate: (id: number, patch: Partial<RepoDraft>) => void;\n onManualRemove: (id: number) => void;\n onManualAttach?: ((repository: RepoDraft) => Promise<ManualRepositoryAttachResult>) | undefined;\n onLoadGitHubBranches?:\n | ((repository: GitHubRepository) => Promise<import(\"../types\").GitHubRepositoryBranch[]>)\n | undefined;\n onLoadPersonalGitHubBranches?:\n | ((\n repository: PersonalGitHubRepositoryCatalogItem,\n ) => Promise<import(\"../types\").GitHubRepositoryBranch[]>)\n | undefined;\n onOrgChange: (value: string) => void;\n onStartGitHubApp: () => void;\n /**\n * Starts workspace App setup. The link is minted on click: `installUrl` only\n * gates whether this principal may connect, because a page-load link expires.\n */\n onConnectWorkspaceApp: () => void;\n /** Repositories already mounted on an additive surface cannot be removed or retargeted. */\n lockedRepoIds?: ReadonlySet<number> | undefined;\n /** Opens the chooser for which personal repositories Opengeni may use. */\n personalGitHubManageUrl?: string | undefined;\n /**\n * The workspace's GitHub settings, where people manage both ways of\n * connecting (their own GitHub and the Opengeni app): repositories,\n * installations and unlinking. The picker links here once anything is connected.\n */\n githubSettingsUrl?: string | undefined;\n /** Personal repositories already mounted on an additive surface cannot be removed or retargeted. */\n lockedPersonalGitHubRepoIds?: ReadonlySet<string> | undefined;\n /** Manual rows already mounted on an additive surface are rendered read-only. */\n lockedManualRepoIds?: ReadonlySet<number> | undefined;\n /** Mounted personal sources may outlive their currently authorized catalog entry. */\n unavailableMountedRepositories?: ReadonlyArray<{ uri: string; ref: string }> | undefined;\n /**\n * Switching a mounted repository off asks to remove it from the chat. Without\n * it, mounted repositories stay locked.\n */\n onRemoveMountedRepository?: ((target: MountedRepositoryTarget) => void) | undefined;\n /** Inline validation for pending manual repository additions. */\n validationError?: string | null | undefined;\n /** New-chat route used to explain immutable mounted follow-up resources. */\n newChatUrl?: string | undefined;\n /** Optional back control when embedded in the mobile “+” drill-in. */\n leading?: ReactNode | undefined;\n /** Extra classes on the bar trigger (e.g. `max-sm:hidden` when opened from +). */\n triggerClassName?: string | undefined;\n};\n\n/** A mounted repository row the person switched off. */\nexport type MountedRepositoryTarget =\n | { kind: \"app\"; repository: GitHubRepository }\n | { kind: \"personal\"; repository: PersonalGitHubRepositoryCatalogItem }\n | { kind: \"uri\"; uri: string };\n\n/** Shared picker body — desktop dropdown and mobile “+” drill-in. */\nexport function RepositoryContextMenuBody(props: RepositoryContextPickerProps) {\n const [search, setSearch] = useState(\"\");\n const [refreshError, setRefreshError] = useState<string | null>(null);\n const [refreshBusy, setRefreshBusy] = useState(false);\n const refreshedOnOpen = useRef(false);\n const openRefresh = useRef(props.onOpenRefresh);\n openRefresh.current = props.onOpenRefresh;\n useEffect(() => {\n let active = true;\n void Promise.resolve()\n .then(() => {\n if (!active || refreshedOnOpen.current || !openRefresh.current) return;\n refreshedOnOpen.current = true;\n return openRefresh.current();\n })\n .catch((error: unknown) => {\n if (active) setRefreshError(userErrorText(error));\n });\n return () => {\n active = false;\n };\n }, []);\n const matchesSearch = (name: string) => name.toLowerCase().includes(search.trim().toLowerCase());\n const personalRepositories = (props.personalGitHubRepositories ?? []).filter(\n (repository) => repository.selectedAccess !== null,\n );\n const manualCount = attachedManualRepositoryCount(props.manualRepos);\n const hasRepos = props.repositories.length > 0;\n const bindingPresentation = repositoryBindingPresentation(\n props.status,\n props.installUrl,\n props.setupMode,\n );\n const loadFailed = props.githubLoadFailed === true && !hasRepos && !props.repoBusy;\n const updateFailed = props.githubUpdateFailed === true && !props.repoBusy && !refreshBusy;\n const canRefresh =\n props.refreshAllowed !== false &&\n (bindingPresentation.canRefresh || loadFailed || props.personalGitHubStatus?.enabled === true);\n async function refreshList() {\n if (!canRefresh || props.repoBusy || refreshBusy) return;\n setRefreshBusy(true);\n setRefreshError(null);\n try {\n await props.onRefresh();\n } catch (error) {\n setRefreshError(userErrorText(error));\n } finally {\n setRefreshBusy(false);\n }\n }\n\n const personalEnabled = props.personalGitHubStatus?.enabled === true;\n const personalActive =\n personalEnabled && props.personalGitHubStatus?.connection?.status === \"active\";\n const personalLogin = personalActive\n ? githubLoginLabel(props.personalGitHubStatus?.connection?.metadata.githubLogin)\n : null;\n const allRowGroups = repositoryPickerRowGroups(props.groups, personalRepositories);\n const rowGroups = allRowGroups.flatMap((group) => {\n const rows = group.rows.filter((row) => matchesSearch(row.fullName));\n return rows.length > 0 ? [{ ...group, rows }] : [];\n });\n const appBound = props.status === \"bound\";\n // Nothing to pick yet: the ways to get repositories are the main content.\n const onboarding = allRowGroups.length === 0 && !props.repoBusy && !loadFailed;\n // A hosted workspace without the app gets one plain prompt, not the binding note.\n const connectPrompt = onboarding && props.setupMode === \"platform\" && props.status === \"unbound\";\n // Account management (choosing repositories, installing on more accounts,\n // unlinking) lives on the GitHub settings page; the picker links there once\n // anything is connected.\n const manageVisible =\n Boolean(props.githubSettingsUrl) &&\n (personalActive || appBound || props.installations.length > 0 || loadFailed);\n\n const onboardingEntries: ReactNode[] = [];\n if (onboarding && personalEnabled) {\n onboardingEntries.push(\n <div key=\"personal\" className=\"flex items-center justify-between gap-3 px-2.5 py-2\">\n <div className=\"min-w-0\">\n <div className=\"text-sm font-medium text-fg\">Your GitHub</div>\n <div className={cn(\"mt-0.5 text-xs text-fg-subtle\", personalActive && \"truncate\")}>\n {personalActive\n ? `${personalLogin} · ${repoCountLabel(personalRepositories.length)}`\n : \"Work appears under your name.\"}\n </div>\n </div>\n {personalActive ? (\n props.personalGitHubManageUrl ? (\n <Button asChild variant=\"ghost\" size=\"xs\">\n <AppPageLink href={props.personalGitHubManageUrl} onClick={props.onLeaveForGitHub}>\n Choose repos\n </AppPageLink>\n </Button>\n ) : null\n ) : (\n <Button\n type=\"button\"\n size=\"xs\"\n onClick={() => {\n props.onLeaveForGitHub?.();\n props.onConnectPersonalGitHub?.();\n }}\n disabled={props.pending || props.personalGitHubBusy || !props.onConnectPersonalGitHub}\n >\n Connect\n </Button>\n )}\n </div>,\n );\n }\n const operatorSetup = props.setupMode === \"operator\" && !props.configured;\n // An operator without the app yet keeps Create app even once other repositories are listed.\n if (\n (onboarding && !appBound && (props.setupMode === \"operator\" || props.status === \"unbound\")) ||\n (operatorSetup && !loadFailed)\n ) {\n const connectable = Boolean(bindingPresentation.connectUrl);\n onboardingEntries.push(\n <div key=\"app\" className=\"space-y-2 px-2.5 py-2\">\n <div className=\"flex items-center justify-between gap-3\">\n <div className=\"min-w-0\">\n <div className=\"text-sm font-medium text-fg\">Opengeni app</div>\n <div className=\"mt-0.5 text-xs leading-4.5 text-fg-subtle\">\n {props.setupMode === \"operator\"\n ? bindingPresentation.setupDescription\n : connectable\n ? \"Work appears as the Opengeni bot, shared with the workspace.\"\n : \"A workspace admin can install it.\"}\n </div>\n </div>\n {connectable && !operatorSetup ? (\n <Button\n type=\"button\"\n size=\"xs\"\n className=\"shrink-0\"\n // The connect dialog syncs the list itself when it completes.\n onClick={props.onConnectWorkspaceApp}\n disabled={props.pending}\n >\n {bindingPresentation.connectLabel}\n </Button>\n ) : null}\n </div>\n {operatorSetup ? (\n <div className=\"flex items-end gap-1.5\">\n <div className=\"min-w-0 flex-1\">\n <Label htmlFor=\"github-org-menu\" className=\"text-2xs text-fg-subtle\">\n Organization\n </Label>\n <Input\n id=\"github-org-menu\"\n value={props.org}\n onChange={(event) => props.onOrgChange(event.target.value)}\n placeholder=\"Optional org login\"\n disabled={props.githubAppBusy}\n className=\"mt-1 h-8 text-xs\"\n />\n </div>\n <Button\n type=\"button\"\n size=\"sm\"\n onClick={() => {\n props.onLeaveForGitHub?.();\n props.onStartGitHubApp();\n }}\n disabled={props.githubAppBusy}\n className=\"h-8 text-xs\"\n >\n {props.githubAppBusy ? (\n <Loader2Icon className=\"size-3.5 animate-spin\" />\n ) : (\n <GitPullRequestIcon className=\"size-3.5\" />\n )}\n Create app\n </Button>\n </div>\n ) : null}\n </div>,\n );\n }\n\n return (\n <div onKeyDown={(event) => event.stopPropagation()} className=\"flex min-h-0 flex-1 flex-col\">\n <ComposerMenuHeader title=\"Repositories\" leading={props.leading} />\n\n <div className=\"min-h-0 flex-1 overflow-y-auto overscroll-contain max-h-[min(calc(var(--radix-dropdown-menu-content-available-height,70vh)-3.5rem),620px)]\">\n <div className=\"space-y-1\">\n {props.repositories.length + (props.personalGitHubRepositories?.length ?? 0) > 5 ? (\n <Input\n aria-label=\"Search repositories\"\n placeholder=\"Search repositories…\"\n value={search}\n onChange={(event) => setSearch(event.target.value)}\n className=\"h-8 text-xs\"\n />\n ) : null}\n {search.trim() &&\n !props.repositories.some((repo) => matchesSearch(repo.fullName)) &&\n !personalRepositories.some((repo) => matchesSearch(repo.fullName)) ? (\n <p className={MENU_NOTE_CLASS}>No repositories match your search.</p>\n ) : null}\n {rowGroups.length > 0 ? (\n <section>\n {rowGroups.map((group) => (\n <div key={group.key} className=\"py-1\">\n <div className={cn(MENU_LABEL_CLASS, \"truncate\")}>{group.label}</div>\n <div>\n {group.rows.map((row) => (\n <RepositoryPickerRowView key={row.key} row={row} picker={props} />\n ))}\n </div>\n </div>\n ))}\n </section>\n ) : null}\n {personalActive && props.personalGitHubBusy && personalRepositories.length === 0 ? (\n <div className={cn(MENU_NOTE_CLASS, \"flex items-center gap-2\")}>\n <Loader2Icon className=\"size-4 animate-spin\" />\n Loading your repositories\n </div>\n ) : null}\n\n {hasRepos ? null : loadFailed ? (\n <div className=\"px-2.5 py-2\" role=\"status\">\n <p className=\"text-sm text-fg\">Couldn't load GitHub</p>\n <p className=\"mt-0.5 text-xs leading-4.5 text-fg-muted\">\n {canRefresh ? (\n <RetryLink onClick={() => void refreshList()} disabled={refreshBusy} />\n ) : (\n \"Your repositories show here once it loads.\"\n )}\n </p>\n </div>\n ) : props.repoBusy ? (\n // First load only: rows that hold the menu's size. A refresh with\n // repositories already listed updates them in place, quietly.\n allRowGroups.length > 0 ? null : (\n <ComposerMenuRowsSkeleton rows={4} label=\"Loading repositories\" />\n )\n ) : allRowGroups.length === 0 && !(personalActive && props.personalGitHubBusy) ? (\n connectPrompt ? (\n <p className=\"px-2.5 pt-2 pb-1 text-sm text-fg\">\n Connect GitHub to pick repositories.\n </p>\n ) : (\n <div className=\"px-2.5 py-2\">\n <p className=\"text-sm text-fg\">No repositories connected</p>\n <p className=\"mt-0.5 text-xs leading-4.5 text-fg-muted\">\n {bindingPresentation.emptyDescription}\n </p>\n </div>\n )\n ) : null}\n\n {onboardingEntries.length > 0 ? (\n <div className=\"space-y-1\">{onboardingEntries}</div>\n ) : null}\n\n {props.unavailableMountedRepositories?.map((repo) => (\n <div key={`${repo.uri}:${repo.ref}`} className=\"flex items-center gap-3 px-2.5 py-2\">\n <div className=\"min-w-0 flex-1\">\n <div className=\"truncate text-sm font-medium text-fg\" title={repo.uri}>\n {repo.uri}\n </div>\n <div className=\"truncate text-xs text-fg-subtle\">\n {repo.ref} ·{\" \"}\n {personalActive\n ? \"No longer shared\"\n : personalEnabled &&\n props.personalGitHubStatus?.connection &&\n !props.personalGitHubBusy\n ? \"Reconnect your GitHub\"\n : \"Unavailable\"}\n </div>\n </div>\n <MetaChip dot=\"idle\" rounded=\"full\">\n {props.onRemoveMountedRepository ? null : (\n <LockIcon className=\"size-3\" aria-hidden=\"true\" />\n )}\n In chat\n </MetaChip>\n <ComposerMenuSwitch\n checked\n locked={!props.onRemoveMountedRepository}\n disabled={props.pending}\n label={`${repo.uri} in this chat`}\n onCheckedChange={() =>\n props.onRemoveMountedRepository?.({ kind: \"uri\", uri: repo.uri })\n }\n />\n </div>\n ))}\n {props.manualRepos\n .filter((repo) => props.lockedManualRepoIds?.has(repo.id))\n .map((repo) => (\n <div key={repo.id} className=\"flex items-center gap-3 px-2.5 py-2\">\n <div className=\"min-w-0 flex-1\">\n <div className=\"truncate text-sm font-medium text-fg\" title={repo.url}>\n {repo.url}\n </div>\n <div className=\"truncate text-xs text-fg-subtle\">{repo.ref}</div>\n </div>\n <MetaChip dot=\"idle\" rounded=\"full\">\n {props.onRemoveMountedRepository ? null : (\n <LockIcon className=\"size-3\" aria-hidden=\"true\" />\n )}\n In chat\n </MetaChip>\n <ComposerMenuSwitch\n checked\n locked={!props.onRemoveMountedRepository}\n disabled={props.pending}\n label={`${repo.url} in this chat`}\n onCheckedChange={() =>\n props.onRemoveMountedRepository?.({ kind: \"uri\", uri: repo.url })\n }\n />\n </div>\n ))}\n\n {props.manualRepos.length === 0 ? (\n <button\n type=\"button\"\n onClick={props.onManualAdd}\n disabled={props.pending}\n className={MENU_BUTTON_CLASS}\n >\n <PlusIcon />\n Add repository URL\n </button>\n ) : (\n <Collapsible open={props.manualOpen} onOpenChange={props.onManualOpenChange}>\n <div className=\"border-t border-border/60 pt-1\">\n <div className=\"flex items-center justify-between gap-2 px-2.5 py-1\">\n <CollapsibleTrigger asChild>\n <button\n type=\"button\"\n className=\"flex min-h-8 min-w-0 flex-1 items-center gap-2 rounded-[10px] text-left text-sm text-fg pointer-coarse:min-h-11\"\n >\n <ChevronDownIcon\n className={cn(\n \"size-3.5 shrink-0 text-fg-subtle transition-transform\",\n props.manualOpen && \"rotate-180\",\n )}\n />\n <span className=\"truncate\">Add repository URL</span>\n {manualCount > 0 ? <MetaChip rounded=\"full\">{manualCount}</MetaChip> : null}\n </button>\n </CollapsibleTrigger>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"xs\"\n onClick={props.onManualAdd}\n disabled={props.pending}\n className=\"h-7 text-xs\"\n >\n <PlusIcon className=\"size-3\" />\n Add\n </Button>\n </div>\n\n <CollapsibleContent>\n <div className=\"space-y-2 border-t border-border p-3\">\n {props.manualRepos.every((repo) => props.lockedManualRepoIds?.has(repo.id)) ? (\n <p className=\"text-xs leading-5 text-fg-muted\">\n Public repositories only. Private ones come from your GitHub or the Opengeni\n app.\n </p>\n ) : (\n props.manualRepos\n .filter((repo) => !props.lockedManualRepoIds?.has(repo.id))\n .map((repo) => (\n <ManualRepositoryEditor\n key={repo.id}\n repository={repo}\n mounted={props.lockedManualRepoIds?.has(repo.id) === true}\n pending={props.pending}\n onUpdate={(patch) => props.onManualUpdate(repo.id, patch)}\n onRemove={() => props.onManualRemove(repo.id)}\n onAttach={\n props.onManualAttach ??\n (async () => {\n throw new Error(\"Repository attachment is unavailable.\");\n })\n }\n />\n ))\n )}\n {props.validationError ? (\n <p className=\"text-xs leading-5 text-status-failed\" role=\"alert\">\n {props.validationError}\n </p>\n ) : null}\n </div>\n </CollapsibleContent>\n </div>\n </Collapsible>\n )}\n {/* The list refreshes itself on open and after GitHub flows; only a failure offers a retry. */}\n {(refreshError || updateFailed) && !loadFailed ? (\n <p className=\"px-2.5 text-xs text-status-failed\" role=\"alert\">\n Couldn't update the list.\n {refreshError ? (\n <>\n {\" \"}\n <ErrorText>{refreshError}</ErrorText>\n </>\n ) : null}\n {canRefresh ? (\n <>\n {\" \"}\n <RetryLink onClick={() => void refreshList()} disabled={refreshBusy} />\n </>\n ) : null}\n </p>\n ) : null}\n {manageVisible && props.githubSettingsUrl ? (\n <div className=\"border-t border-border/60 pt-1\">\n <AppPageLink\n href={props.githubSettingsUrl}\n className={MENU_BUTTON_CLASS}\n onClick={props.onLeaveForGitHub}\n >\n <Settings2Icon />\n Manage GitHub access\n </AppPageLink>\n </div>\n ) : null}\n {props.newChatUrl &&\n (props.lockedRepoIds?.size ?? 0) +\n (props.lockedPersonalGitHubRepoIds?.size ?? 0) +\n (props.lockedManualRepoIds?.size ?? 0) >\n 0 ? (\n <p className=\"px-2.5 text-xs leading-4.5 text-fg-muted\">\n To change the branch of a repository already in this chat,{\" \"}\n <AppPageLink href={props.newChatUrl} className=\"og-link\">\n start a new chat\n </AppPageLink>\n .\n </p>\n ) : null}\n {props.validationError && (!props.manualOpen || props.manualRepos.length === 0) ? (\n <p className=\"px-2.5 text-xs text-status-failed\" role=\"alert\">\n {props.validationError}\n </p>\n ) : null}\n </div>\n </div>\n </div>\n );\n}\n\n/** One repository the picker can select, through the workspace App, your GitHub, or both. */\nexport type RepositoryPickerRow = {\n key: string;\n fullName: string;\n name: string;\n private: boolean;\n app: GitHubRepository | null;\n personal: PersonalGitHubRepositoryCatalogItem | null;\n};\n\nexport type RepositoryPickerRowGroup = {\n key: string;\n label: string;\n rows: RepositoryPickerRow[];\n};\n\nfunction repositoryOwner(fullName: string): string {\n return fullName.split(\"/\")[0] ?? fullName;\n}\n\n/**\n * Merges App and personal catalogs into one row per repository, grouped by\n * owner. App installations keep their order; a repository reachable both ways\n * is one row with both authorities.\n */\nexport function repositoryPickerRowGroups(\n groups: readonly RepositoryGroup[],\n personalRepositories: readonly PersonalGitHubRepositoryCatalogItem[],\n): RepositoryPickerRowGroup[] {\n const ordered: RepositoryPickerRowGroup[] = [];\n const byOwner = new Map<string, RepositoryPickerRowGroup>();\n const byRepository = new Map<string, RepositoryPickerRow>();\n const groupFor = (label: string) => {\n const key = label.toLowerCase();\n let group = byOwner.get(key);\n if (!group) {\n group = { key, label, rows: [] };\n byOwner.set(key, group);\n ordered.push(group);\n }\n return group;\n };\n for (const group of groups) {\n for (const repo of group.repositories) {\n const key = repo.fullName.toLowerCase();\n if (byRepository.has(key)) continue;\n const row: RepositoryPickerRow = {\n key,\n fullName: repo.fullName,\n name: repo.name,\n private: repo.private,\n app: repo,\n personal: null,\n };\n byRepository.set(key, row);\n groupFor(repositoryOwner(repo.fullName)).rows.push(row);\n }\n }\n for (const repo of personalRepositories) {\n if (repo.selectedAccess === null) continue;\n const key = repo.fullName.toLowerCase();\n const existing = byRepository.get(key);\n if (existing) {\n existing.personal ??= repo;\n continue;\n }\n const row: RepositoryPickerRow = {\n key,\n fullName: repo.fullName,\n name: repo.fullName.slice(repositoryOwner(repo.fullName).length + 1) || repo.fullName,\n private: repo.private,\n app: null,\n personal: repo,\n };\n byRepository.set(key, row);\n groupFor(repositoryOwner(repo.fullName)).rows.push(row);\n }\n return ordered;\n}\n\n/**\n * Which identity a new selection acts as: you when your GitHub can write to\n * the repository (or is the only way to reach it), otherwise the workspace App.\n */\nexport function defaultRepositoryIdentity(row: RepositoryPickerRow): \"personal\" | \"app\" {\n if (!row.personal) return \"app\";\n if (!row.app) return \"personal\";\n return row.personal.selectedAccess === \"write\" ? \"personal\" : \"app\";\n}\n\n/** Inline retry after a failed load or background update. */\nfunction RetryLink(props: { onClick: () => void; disabled: boolean }) {\n return (\n <button\n type=\"button\"\n className=\"og-link disabled:opacity-60\"\n onClick={props.onClick}\n disabled={props.disabled}\n >\n Try again\n </button>\n );\n}\n\n/**\n * A link to another app page. Goes through the host's navigation, so an\n * embedded session UI opens it beside the host page instead of resolving it\n * against the host's origin; plain anchor when no navigation is configured.\n */\nfunction AppPageLink(props: {\n href: string;\n className?: string | undefined;\n onClick?: (() => void) | undefined;\n children: ReactNode;\n}) {\n const HostLink = useAppHost().navigation?.Link;\n if (!HostLink) {\n return (\n <a href={props.href} className={props.className} onClick={props.onClick}>\n {props.children}\n </a>\n );\n }\n return (\n <HostLink href={props.href} className={props.className} onClick={props.onClick}>\n {props.children}\n </HostLink>\n );\n}\n\nfunction githubLoginLabel(login: unknown): string {\n return typeof login === \"string\" && login.length > 0 ? `@${login}` : \"Connected\";\n}\n\nfunction RepositoryPickerRowView(props: {\n row: RepositoryPickerRow;\n picker: RepositoryContextPickerProps;\n}) {\n const { row, picker } = props;\n const { app, personal } = row;\n const canUsePersonal = Boolean(personal && picker.onTogglePersonalGitHubRepo);\n const appLocked = app !== null && picker.lockedRepoIds?.has(app.id) === true;\n const personalLocked =\n personal !== null && picker.lockedPersonalGitHubRepoIds?.has(personal.repositoryId) === true;\n const appSelected = app !== null && picker.selectedRepoIds.has(app.id);\n const personalSelected =\n personal !== null && picker.selectedPersonalGitHubRepoIds?.has(personal.repositoryId) === true;\n const locked = appLocked || personalLocked;\n const checked = locked || appSelected || personalSelected;\n const actingAs: \"personal\" | \"app\" =\n personalLocked || personalSelected\n ? \"personal\"\n : appLocked || appSelected\n ? \"app\"\n : !app\n ? \"personal\"\n : canUsePersonal\n ? defaultRepositoryIdentity(row)\n : \"app\";\n const ref =\n actingAs === \"personal\" && personal\n ? (picker.selectedPersonalGitHubRepoRefs?.[personal.repositoryId] ?? personal.defaultBranch)\n : app\n ? (picker.selectedRepoRefs[app.id] ?? app.defaultBranch)\n : (personal?.defaultBranch ?? \"\");\n const defaultRef =\n actingAs === \"personal\" && personal ? personal.defaultBranch : (app?.defaultBranch ?? \"\");\n const personalBusy = picker.personalGitHubBusy === true;\n\n function select(identity: \"personal\" | \"app\") {\n if (identity === \"personal\" && personal) picker.onTogglePersonalGitHubRepo?.(personal);\n else if (app) picker.onToggleRepo(app);\n }\n function toggle() {\n if (locked) {\n if (personalLocked && personal) {\n picker.onRemoveMountedRepository?.({ kind: \"personal\", repository: personal });\n } else if (app) {\n picker.onRemoveMountedRepository?.({ kind: \"app\", repository: app });\n }\n return;\n }\n if (personalSelected && personal) picker.onTogglePersonalGitHubRepo?.(personal);\n else if (appSelected && app) picker.onToggleRepo(app);\n else select(actingAs);\n }\n // The new identity's selection replaces the other one; it keeps the ref.\n function switchIdentity(identity: \"personal\" | \"app\") {\n if (identity === actingAs || !app || !personal) return;\n if (identity === \"personal\") picker.onPersonalGitHubRefChange?.(personal.repositoryId, ref);\n else picker.onRefChange(app.id, ref);\n select(identity);\n }\n\n const rawLogin = picker.personalGitHubStatus?.connection?.metadata.githubLogin;\n const you = typeof rawLogin === \"string\" && rawLogin.length > 0 ? `You (@${rawLogin})` : \"You\";\n const showIdentityChoice = checked && !locked && app !== null && canUsePersonal;\n // With your GitHub connected there are two identities, so a selected\n // repository always says which one it works as. Without it there is only\n // the app, and nothing to explain.\n const showIdentity =\n checked &&\n !locked &&\n picker.personalGitHubStatus?.enabled === true &&\n picker.personalGitHubStatus.connection?.status === \"active\";\n const readOnly = actingAs === \"personal\" && personal?.selectedAccess === \"read\";\n // A selected row shows its branch in the field below; the subtitle would repeat it.\n const editing = checked && !locked;\n return (\n <div className=\"rounded-[10px] px-2.5 py-2 transition-colors hover:bg-hover\">\n <div className=\"flex w-full items-center gap-3 text-left\">\n <span className=\"min-w-0 flex-1\">\n <span className=\"flex min-w-0 items-center gap-1.5\">\n <span className=\"truncate text-sm font-medium text-fg\">{row.name}</span>\n {row.private ? <LockIcon className=\"size-3 shrink-0 text-fg-subtle\" /> : null}\n </span>\n {editing && !readOnly ? null : (\n <span className=\"mt-0.5 block truncate text-xs text-fg-subtle\">\n {editing ? \"Read only\" : readOnly ? `${ref} · Read only` : ref}\n </span>\n )}\n </span>\n {locked ? (\n <MetaChip dot=\"idle\" rounded=\"full\">\n {picker.onRemoveMountedRepository ? null : (\n <LockIcon className=\"size-3\" aria-hidden=\"true\" />\n )}\n In chat\n </MetaChip>\n ) : null}\n <ComposerMenuSwitch\n checked={checked}\n locked={locked && !picker.onRemoveMountedRepository}\n disabled={\n picker.pending ||\n (!locked &&\n actingAs === \"personal\" &&\n (personalBusy || !picker.onTogglePersonalGitHubRepo))\n }\n onCheckedChange={toggle}\n label={\n locked\n ? personalLocked\n ? `${row.fullName} in this chat as you`\n : `${row.fullName} in this chat`\n : `Select ${row.fullName}`\n }\n />\n </div>\n {checked && !locked ? (\n <div className=\"mt-1 space-y-1.5\">\n <RepositoryRefInput\n value={ref}\n defaultRef={defaultRef}\n label={`${row.fullName} ref`}\n compact\n onChange={(value) => {\n if (actingAs === \"personal\" && personal) {\n picker.onPersonalGitHubRefChange?.(personal.repositoryId, value);\n } else if (app) {\n picker.onRefChange(app.id, value);\n }\n }}\n disabled={picker.pending}\n loadBranches={\n actingAs === \"personal\" && personal\n ? picker.onLoadPersonalGitHubBranches?.bind(null, personal)\n : app\n ? picker.onLoadGitHubBranches?.bind(null, app)\n : undefined\n }\n />\n {showIdentityChoice ? (\n <div className=\"flex items-center gap-2\">\n <span className=\"shrink-0 text-xs text-fg-subtle\">Acts as</span>\n <SegmentedControl\n size=\"sm\"\n aria-label={`${row.fullName} acts as`}\n value={actingAs}\n disabled={picker.pending || personalBusy}\n onValueChange={switchIdentity}\n options={[\n { value: \"personal\", label: you },\n { value: \"app\", label: \"Opengeni app\" },\n ]}\n />\n </div>\n ) : showIdentity ? (\n <div className=\"flex items-center gap-2 text-xs\">\n <span className=\"shrink-0 text-fg-subtle\">Acts as</span>\n <span className=\"min-w-0 truncate text-fg-muted\">\n {actingAs === \"personal\" ? you : \"Opengeni app\"}\n </span>\n </div>\n ) : null}\n </div>\n ) : null}\n </div>\n );\n}\n\nexport function RepositoryContextPicker(props: RepositoryContextPickerProps) {\n const selectedInstalledCount = props.selectedRepoIds.size;\n const selectedPersonalCount = props.selectedPersonalGitHubRepoIds?.size ?? 0;\n const manualCount = attachedManualRepositoryCount(props.manualRepos);\n const selectedCount = selectedInstalledCount + selectedPersonalCount + manualCount;\n const bindingPresentation = repositoryBindingPresentation(\n props.status,\n props.installUrl,\n props.setupMode,\n );\n const personalGitHubActive = props.personalGitHubStatus?.connection?.status === \"active\";\n const selectedInstalled = props.repositories.filter((repo) => props.selectedRepoIds.has(repo.id));\n const selectedManual = props.manualRepos.filter(\n (repo) => repo.attached !== false && repo.url.trim().length > 0,\n );\n const selectedNames = [\n ...selectedInstalled.map((repo) => repo.fullName),\n ...selectedManual.map((repo) => repo.url.trim()),\n ...(props.personalGitHubRepositories ?? [])\n .filter((repo) => props.selectedPersonalGitHubRepoIds?.has(repo.repositoryId))\n .map((repo) => repo.fullName),\n ];\n const selectedLabel =\n selectedCount === 1 ? (selectedNames[0] ?? repoCountLabel(1)) : repoCountLabel(selectedCount);\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n disabled={props.pending}\n aria-label={\n selectedCount > 0\n ? `Repository context: ${selectedNames.join(\", \") || selectedLabel}`\n : \"Repository context\"\n }\n title={selectedCount > 0 ? selectedNames.join(\", \") || selectedLabel : \"Repositories\"}\n className={cn(\n \"h-8 max-w-[13rem] gap-1.5 rounded-full border border-transparent px-2.5 text-xs\",\n \"text-fg-muted hover:border-border hover:bg-surface-2 hover:text-fg\",\n selectedCount > 0 && \"border-brand/35 bg-brand/10 text-fg\",\n props.triggerClassName,\n )}\n >\n <GitBranchIcon className=\"size-3.5\" />\n <span className=\"truncate\">{selectedCount > 0 ? selectedLabel : \"Repos\"}</span>\n <span\n className={cn(\n \"size-1.5 shrink-0 rounded-full\",\n (bindingPresentation.healthy && props.githubLoadFailed !== true) ||\n personalGitHubActive\n ? \"bg-status-idle\"\n : \"bg-status-waiting\",\n )}\n aria-hidden=\"true\"\n />\n <ChevronDownIcon className=\"size-3 shrink-0\" />\n </Button>\n </DropdownMenuTrigger>\n\n <DropdownMenuContent\n align=\"start\"\n side=\"top\"\n sideOffset={8}\n className={REPOSITORY_PANEL_CLASS}\n >\n <RepositoryContextMenuBody {...props} />\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\nexport function ScheduledTaskRepositoryPicker(props: {\n status: GitHubBindingStatus;\n repositories: GitHubRepository[];\n groups: RepositoryGroup[];\n resources: ResourceRef[];\n busy: boolean;\n repoBusy: boolean;\n onRefresh: () => Promise<void>;\n onResourcesChange: (resources: ResourceRef[]) => void;\n}) {\n const repositoryResources = props.resources.filter(\n (resource): resource is Extract<ResourceRef, { kind: \"repository\" }> =>\n resource.kind === \"repository\",\n );\n const fileResources = props.resources.filter((resource) => resource.kind === \"file\");\n const preservedRepositoryResources = repositoryResources.filter(\n (resource) =>\n !props.repositories.some((repo) => isRepositoryResourceForGitHubRepo(resource, repo)),\n );\n function toggleRepo(repo: GitHubRepository) {\n const existing = props.resources.find(\n (resource) =>\n resource.kind === \"repository\" && isRepositoryResourceForGitHubRepo(resource, repo),\n );\n if (existing) {\n props.onResourcesChange(props.resources.filter((resource) => resource !== existing));\n return;\n }\n try {\n const nextResource = gitHubRepositoryResource(repo, repo.defaultBranch);\n props.onResourcesChange([\n ...props.resources.filter((resource) => !sameRepositoryUri(resource, nextResource.uri)),\n nextResource,\n ]);\n } catch (error) {\n toast.error(\"Couldn't select the repository\", { description: userErrorText(error) });\n }\n }\n\n function updateRef(repo: GitHubRepository, ref: string) {\n props.onResourcesChange(\n props.resources.map((resource) => {\n if (resource.kind !== \"repository\" || !isRepositoryResourceForGitHubRepo(resource, repo)) {\n return resource;\n }\n return { ...resource, ref };\n }),\n );\n }\n\n return (\n <section className=\"overflow-hidden rounded-lg border border-border bg-bg/25\">\n <div className=\"flex items-center justify-between gap-3 border-b border-border px-3 py-2\">\n <div>\n <div className=\"text-xs font-medium text-fg\">Repositories</div>\n <div className=\"mt-0.5 text-2xs text-fg-subtle\">\n {repoCountLabel(repositoryResources.length)} attached to this task\n </div>\n </div>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"xs\"\n onClick={() => void props.onRefresh()}\n disabled={props.status !== \"bound\" || props.repoBusy || props.busy}\n >\n <RefreshCwIcon className={cn(\"size-3\", props.repoBusy && \"animate-spin\")} />\n Refresh\n </Button>\n </div>\n\n {props.status !== \"bound\" ? (\n <div className=\"p-3 text-xs leading-5 text-fg-muted\">\n {props.status === \"disabled\"\n ? \"GitHub App server credentials are not configured.\"\n : \"GitHub App credentials exist, but this workspace has no active installation binding.\"}\n </div>\n ) : props.repoBusy ? (\n <div className=\"flex items-center gap-2 p-3 text-xs text-fg-muted\">\n <Loader2Icon className=\"size-3.5 animate-spin\" />\n Loading repositories\n </div>\n ) : props.repositories.length === 0 ? (\n <div className=\"p-3 text-xs leading-5 text-fg-muted\">\n The active binding currently shares no explicitly allowed repositories.\n </div>\n ) : (\n <div className=\"max-h-72 overflow-auto\">\n {props.groups.map((group) => (\n <div key={group.installationId} className=\"border-b border-border last:border-b-0\">\n <div className=\"flex items-center justify-between gap-3 bg-surface/45 px-3 py-1.5\">\n <div className=\"min-w-0 truncate text-2xs font-medium text-fg-muted\">\n {group.label}\n </div>\n <div className=\"shrink-0 text-2xs uppercase tracking-wide text-fg-subtle\">\n {group.repositories.length} repos\n </div>\n </div>\n <div className=\"divide-y divide-border/70\">\n {group.repositories.map((repo) => {\n const resource = repositoryResources.find((item) =>\n isRepositoryResourceForGitHubRepo(item, repo),\n );\n const checked = Boolean(resource);\n return (\n <div\n key={`${repo.installationId}:${repo.id}`}\n className=\"px-2 py-2 transition-colors hover:bg-hover\"\n >\n <button\n type=\"button\"\n onClick={() => toggleRepo(repo)}\n disabled={props.busy}\n aria-pressed={checked}\n aria-label={`Select ${repo.fullName} for the automation`}\n className=\"grid w-full grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-2 rounded-md text-left outline-hidden\"\n >\n <span\n className={cn(\n \"flex size-4 items-center justify-center rounded border\",\n checked\n ? \"border-brand bg-brand-strong text-brand-fg\"\n : \"border-border-strong bg-surface\",\n )}\n >\n {checked ? <CheckIcon className=\"size-3\" /> : null}\n </span>\n <span className=\"min-w-0\">\n <span className=\"flex min-w-0 items-center gap-1.5\">\n <span className=\"truncate text-xs font-medium text-fg\">\n {repo.fullName}\n </span>\n {repo.private ? (\n <LockIcon className=\"size-3 shrink-0 text-fg-subtle\" />\n ) : null}\n </span>\n <span className=\"mt-0.5 block truncate text-2xs text-fg-subtle\">\n default {repo.defaultBranch}\n </span>\n </span>\n {checked ? (\n <MetaChip dot=\"idle\" rounded=\"full\">\n Selected\n </MetaChip>\n ) : null}\n </button>\n {resource ? (\n <div className=\"mt-2 flex items-center gap-2 pl-6\">\n <GitBranchIcon className=\"size-3.5 shrink-0 text-fg-subtle\" />\n <Input\n value={resource.ref}\n onChange={(event) => updateRef(repo, event.target.value)}\n onClick={(event) => event.stopPropagation()}\n disabled={props.busy}\n placeholder={repo.defaultBranch}\n aria-label={`${repo.fullName} branch or ref for the automation`}\n className=\"h-7 text-xs\"\n />\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n </div>\n ))}\n </div>\n )}\n\n {preservedRepositoryResources.length > 0 || fileResources.length > 0 ? (\n <div className=\"border-t border-border px-3 py-2 text-2xs text-fg-subtle\">\n Preserving {preservedRepositoryResources.length} manual repository resource\n {preservedRepositoryResources.length === 1 ? \"\" : \"s\"}\n {fileResources.length > 0\n ? ` and ${fileResources.length} file resource${fileResources.length === 1 ? \"\" : \"s\"}`\n : \"\"}\n .\n </div>\n ) : null}\n </section>\n );\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,33 @@
1
+ "use client";
2
+ import {
3
+ BrandMark
4
+ } from "./chunk-TFD6JXHN.js";
5
+ import {
6
+ BillingClassMark
7
+ } from "./chunk-XLH7QY2R.js";
8
+
9
+ // src/app/components/billing-class-mark.tsx
10
+ import { jsx } from "react/jsx-runtime";
11
+ var openGeniGroupPresentation = {
12
+ opengeni_credits: { label: "Opengeni", icon: /* @__PURE__ */ jsx(BrandMark, {}) }
13
+ };
14
+ function BillingClassMark2(props) {
15
+ return /* @__PURE__ */ jsx(
16
+ BillingClassMark,
17
+ {
18
+ ...props,
19
+ presentation: props.billingClass === "opengeni_credits" ? {
20
+ ...openGeniGroupPresentation.opengeni_credits,
21
+ ...props.presentation,
22
+ label: props.presentation?.label ?? openGeniGroupPresentation.opengeni_credits?.label,
23
+ icon: props.presentation?.icon === void 0 ? openGeniGroupPresentation.opengeni_credits?.icon : props.presentation.icon
24
+ } : props.presentation
25
+ }
26
+ );
27
+ }
28
+
29
+ export {
30
+ openGeniGroupPresentation,
31
+ BillingClassMark2 as BillingClassMark
32
+ };
33
+ //# sourceMappingURL=chunk-GKVJIDHF.js.map
@@ -0,0 +1,212 @@
1
+ "use client";
2
+ import {
3
+ PreparedMcpSetupCard
4
+ } from "./chunk-BHNSJVBC.js";
5
+ import {
6
+ Label
7
+ } from "./chunk-YFHRNLOT.js";
8
+ import {
9
+ canAddWorkspaceIntegrations,
10
+ hasWorkspacePermission
11
+ } from "./chunk-H2ALCTWC.js";
12
+ import {
13
+ useAppContext
14
+ } from "./chunk-JDFDPMKX.js";
15
+ import {
16
+ Input
17
+ } from "./chunk-VPM3TXFC.js";
18
+ import {
19
+ apiErrorFacts,
20
+ userErrorText
21
+ } from "./chunk-O4OOG3D6.js";
22
+ import {
23
+ SessionCapabilityFrame
24
+ } from "./chunk-FO4LYKJL.js";
25
+ import {
26
+ Button
27
+ } from "./chunk-7QQN3KNP.js";
28
+
29
+ // src/app/components/capabilities/session-custom-mcp-card.tsx
30
+ import { useEffect, useRef, useState } from "react";
31
+ import { jsx, jsxs } from "react/jsx-runtime";
32
+ function SessionCustomMcpCard(props) {
33
+ const context = useAppContext();
34
+ if (props.item.setupRequest?.mcpSetup)
35
+ return /* @__PURE__ */ jsx(
36
+ PreparedMcpSetupCard,
37
+ {
38
+ ...props,
39
+ client: context.client,
40
+ actorId: context.accessContext?.subjectId ?? "",
41
+ canConfigure: hasWorkspacePermission(
42
+ context.accessContext,
43
+ props.workspaceId,
44
+ "connections:write"
45
+ )
46
+ }
47
+ );
48
+ return /* @__PURE__ */ jsx(LegacyCustomMcpCard, { ...props });
49
+ }
50
+ function LegacyCustomMcpCard({ item, workspaceId, onRegistered }) {
51
+ const context = useAppContext();
52
+ const proposal = item.setupRequest;
53
+ const [expanded, setExpanded] = useState(false);
54
+ const [name, setName] = useState(proposal.name);
55
+ const [url, setUrl] = useState(proposal.endpointUrl);
56
+ const [description, setDescription] = useState("");
57
+ const [busy, setBusy] = useState(false);
58
+ const [checking, setChecking] = useState(true);
59
+ const [error, setError] = useState(null);
60
+ const expandedRef = useRef(expanded);
61
+ expandedRef.current = expanded;
62
+ useEffect(() => {
63
+ let active = true;
64
+ void context.client.listCapabilities(workspaceId).then((catalog) => {
65
+ if (!active) return;
66
+ const existing = catalog.items.find(
67
+ (entry) => entry.kind === "mcp" && entry.endpointUrl === proposal.endpointUrl && !entry.stale
68
+ );
69
+ if (existing) onRegistered(existing.id, expandedRef.current);
70
+ }).catch(() => {
71
+ }).finally(() => {
72
+ if (active) setChecking(false);
73
+ });
74
+ return () => {
75
+ active = false;
76
+ };
77
+ }, [context.client, workspaceId, proposal.endpointUrl, onRegistered]);
78
+ const canManage = canAddWorkspaceIntegrations(
79
+ context.accessContext,
80
+ workspaceId,
81
+ context.workspaceMemberIntegrationSetup
82
+ );
83
+ const validUrl = (() => {
84
+ try {
85
+ const parsed = new URL(url.trim());
86
+ return parsed.protocol === "https:" && Boolean(parsed.hostname) && !parsed.username && !parsed.password && !parsed.hash && !parsed.search;
87
+ } catch {
88
+ return false;
89
+ }
90
+ })();
91
+ async function submit(event) {
92
+ event.preventDefault();
93
+ if (busy || checking || !canManage || !name.trim() || !validUrl) return;
94
+ setBusy(true);
95
+ setError(null);
96
+ try {
97
+ const existing = (await context.client.listCapabilities(workspaceId)).items.find(
98
+ (entry) => entry.kind === "mcp" && entry.endpointUrl === url.trim() && !entry.stale
99
+ );
100
+ if (existing) {
101
+ onRegistered(existing.id, true);
102
+ return;
103
+ }
104
+ const created = await context.client.createCapability(workspaceId, {
105
+ kind: "mcp",
106
+ source: "manual",
107
+ name: name.trim(),
108
+ endpointUrl: url.trim(),
109
+ ...description.trim() ? { description: description.trim() } : {}
110
+ });
111
+ onRegistered(created.id, true);
112
+ } catch (failure) {
113
+ try {
114
+ const matching = (await context.client.listCapabilities(workspaceId)).items.find(
115
+ (entry) => entry.kind === "mcp" && entry.endpointUrl === url.trim() && !entry.stale
116
+ );
117
+ if (matching) {
118
+ onRegistered(matching.id, true);
119
+ return;
120
+ }
121
+ } catch {
122
+ }
123
+ const status = apiErrorFacts(failure).status;
124
+ setError(
125
+ status !== void 0 && status < 500 ? `Couldn't add this server. ${userErrorText(failure)}` : "Couldn't confirm this server was added. Check Connections before trying again; the request may have succeeded."
126
+ );
127
+ } finally {
128
+ setBusy(false);
129
+ }
130
+ }
131
+ return /* @__PURE__ */ jsx(
132
+ SessionCapabilityFrame,
133
+ {
134
+ name: proposal.name,
135
+ subtitle: item.providerDomain,
136
+ logo: null,
137
+ typeLabel: "MCP server",
138
+ description: proposal.rationale,
139
+ clampDescription: true,
140
+ skill: false,
141
+ expanded,
142
+ complete: false,
143
+ actionLabel: "Review server",
144
+ note: "Review the server address before adding it. Setup will ask for any required credentials separately.",
145
+ onOpen: () => setExpanded(true),
146
+ onClose: () => setExpanded(false),
147
+ busy,
148
+ children: /* @__PURE__ */ jsxs("form", { className: "og-session-capability-setup", onSubmit: (event) => void submit(event), children: [
149
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-fg-muted", children: "This server was suggested by the agent. Check that you trust its address before adding it to this workspace." }),
150
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-1.5", children: [
151
+ /* @__PURE__ */ jsx(Label, { htmlFor: `mcp-name-${item.id}`, children: "Name" }),
152
+ /* @__PURE__ */ jsx(
153
+ Input,
154
+ {
155
+ id: `mcp-name-${item.id}`,
156
+ value: name,
157
+ maxLength: 256,
158
+ onChange: (event) => setName(event.target.value),
159
+ autoFocus: true
160
+ }
161
+ )
162
+ ] }),
163
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-1.5", children: [
164
+ /* @__PURE__ */ jsx(Label, { htmlFor: `mcp-url-${item.id}`, children: "Server URL" }),
165
+ /* @__PURE__ */ jsx(
166
+ Input,
167
+ {
168
+ id: `mcp-url-${item.id}`,
169
+ type: "url",
170
+ inputMode: "url",
171
+ value: url,
172
+ maxLength: 2048,
173
+ onChange: (event) => setUrl(event.target.value),
174
+ "aria-describedby": `mcp-url-help-${item.id}`
175
+ }
176
+ ),
177
+ /* @__PURE__ */ jsx("p", { id: `mcp-url-help-${item.id}`, className: "text-xs text-fg-muted", children: "HTTPS only. No query parameters or secrets in the URL; add credentials in the next step. Tools may receive data you choose to share." })
178
+ ] }),
179
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-1.5", children: [
180
+ /* @__PURE__ */ jsx(Label, { htmlFor: `mcp-description-${item.id}`, children: "Description (optional)" }),
181
+ /* @__PURE__ */ jsx(
182
+ Input,
183
+ {
184
+ id: `mcp-description-${item.id}`,
185
+ value: description,
186
+ onChange: (event) => setDescription(event.target.value),
187
+ placeholder: "What this connection is for"
188
+ }
189
+ )
190
+ ] }),
191
+ !canManage ? /* @__PURE__ */ jsx("p", { role: "status", className: "text-sm text-fg-muted", children: "Someone who can add connections here needs to add this server. You can share its URL with them." }) : null,
192
+ error ? /* @__PURE__ */ jsx("p", { role: "alert", className: "text-sm text-destructive", children: error }) : null,
193
+ /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2", children: [
194
+ /* @__PURE__ */ jsx(Button, { type: "button", variant: "ghost", onClick: () => setExpanded(false), children: "Cancel" }),
195
+ /* @__PURE__ */ jsx(
196
+ Button,
197
+ {
198
+ type: "submit",
199
+ disabled: !canManage || !name.trim() || !validUrl || busy || checking,
200
+ children: busy ? "Adding\u2026" : checking ? "Checking\u2026" : "Add MCP server"
201
+ }
202
+ )
203
+ ] })
204
+ ] })
205
+ }
206
+ );
207
+ }
208
+
209
+ export {
210
+ SessionCustomMcpCard
211
+ };
212
+ //# sourceMappingURL=chunk-GVN5SZLX.js.map
@@ -0,0 +1,134 @@
1
+ "use client";
2
+ import {
3
+ SearchText
4
+ } from "./chunk-72VDQKH4.js";
5
+ import {
6
+ MarkdownText
7
+ } from "./chunk-E7XERZWC.js";
8
+
9
+ // src/app/components/session/search-markdown-highlight.tsx
10
+ import { useLayoutEffect, useRef, useState } from "react";
11
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
12
+ var escapeRegex = (text) => text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
13
+ function matchAtOffset(text, query, offset) {
14
+ if (!query || !Number.isSafeInteger(offset) || offset < 0 || offset > text.length) return -1;
15
+ const expression = new RegExp(escapeRegex(query), "iyu");
16
+ expression.lastIndex = offset;
17
+ return expression.exec(text)?.index === offset ? offset : -1;
18
+ }
19
+ function selectedFormattedMessage(preview, match, query) {
20
+ if (preview.status !== "available" || typeof preview.text !== "string") return null;
21
+ if (preview.text.length > 12e3) return null;
22
+ return matchAtOffset(preview.text, query, match.messageMatchOffset) >= 0 ? preview.text : null;
23
+ }
24
+ var nextHighlight = 0;
25
+ function SearchMarkdown({
26
+ text,
27
+ query,
28
+ snippet,
29
+ offset
30
+ }) {
31
+ const body = useRef(null);
32
+ const name = useRef("");
33
+ const navigated = useRef(false);
34
+ if (!name.current) name.current = `og-session-search-${++nextHighlight}`;
35
+ const [sourceOnly, setSourceOnly] = useState(false);
36
+ const supported = typeof CSS !== "undefined" && Boolean(CSS.highlights) && typeof Highlight !== "undefined";
37
+ useLayoutEffect(() => {
38
+ const root = body.current;
39
+ if (!root || !supported || !query) return;
40
+ const highlightName = name.current;
41
+ const expression = new RegExp(escapeRegex(query), "giu");
42
+ const sourceHits = [...text.matchAll(expression)];
43
+ const ordinal = sourceHits.findIndex((hit) => hit.index === (offset ?? sourceHits[0]?.index));
44
+ navigated.current = false;
45
+ let frame = 0;
46
+ const update = () => {
47
+ const ranges = [];
48
+ const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, {
49
+ acceptNode(node) {
50
+ return node.parentElement?.closest("[data-og-image-placeholder]") ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;
51
+ }
52
+ });
53
+ let tooMany = false;
54
+ for (let node = walker.nextNode(); node; node = walker.nextNode()) {
55
+ const content = node.textContent ?? "";
56
+ for (const match of content.matchAll(expression)) {
57
+ if (ranges.length === 128) {
58
+ tooMany = true;
59
+ break;
60
+ }
61
+ const range = document.createRange();
62
+ range.setStart(node, match.index);
63
+ range.setEnd(node, match.index + match[0].length);
64
+ ranges.push(range);
65
+ }
66
+ if (tooMany) break;
67
+ }
68
+ const selected = !tooMany && sourceHits.length === ranges.length && ordinal >= 0 ? ranges[ordinal] : null;
69
+ if (selected) CSS.highlights.set(highlightName, new Highlight(selected));
70
+ else CSS.highlights.delete(highlightName);
71
+ setSourceOnly(!selected);
72
+ if (!selected || navigated.current) return;
73
+ const rect = selected.getBoundingClientRect();
74
+ const pane = root.closest("[data-search-preview-scroll]");
75
+ if (!pane || !rect.width && !rect.height) return;
76
+ const paneRect = pane.getBoundingClientRect();
77
+ if (rect.top < paneRect.top + 24 || rect.bottom > paneRect.bottom - 24)
78
+ pane.scrollTop += rect.top - paneRect.top - 80;
79
+ const cell = selected.startContainer.parentElement;
80
+ const horizontalScroller = cell?.closest('[tabindex="0"]');
81
+ if (horizontalScroller) {
82
+ const scrollerRect = horizontalScroller.getBoundingClientRect();
83
+ if (rect.left < scrollerRect.left + 8 || rect.right > scrollerRect.right - 8)
84
+ horizontalScroller.scrollLeft += rect.left - scrollerRect.left - 24;
85
+ }
86
+ navigated.current = true;
87
+ };
88
+ const schedule = () => {
89
+ cancelAnimationFrame(frame);
90
+ frame = requestAnimationFrame(update);
91
+ };
92
+ const observer = new MutationObserver(schedule);
93
+ observer.observe(root, {
94
+ childList: true,
95
+ subtree: true,
96
+ characterData: true
97
+ });
98
+ const resize = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(() => {
99
+ navigated.current = false;
100
+ schedule();
101
+ });
102
+ resize?.observe(root.closest("[data-search-preview-scroll]") ?? root);
103
+ schedule();
104
+ return () => {
105
+ observer.disconnect();
106
+ resize?.disconnect();
107
+ cancelAnimationFrame(frame);
108
+ CSS.highlights.delete(highlightName);
109
+ };
110
+ }, [text, query, offset, supported]);
111
+ if (!supported)
112
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
113
+ /* @__PURE__ */ jsxs("p", { className: "mb-3 text-xs text-fg-muted", children: [
114
+ "Match in message source: ",
115
+ /* @__PURE__ */ jsx(SearchText, { text: snippet, query })
116
+ ] }),
117
+ /* @__PURE__ */ jsx(MarkdownText, { text, compact: true, softLineBreaks: true, suppressImages: true })
118
+ ] });
119
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
120
+ /* @__PURE__ */ jsx("style", { children: `::highlight(${name.current}) { background: var(--og-color-accent-deep); color: var(--og-color-accent-fg); text-decoration: underline; }` }),
121
+ sourceOnly ? /* @__PURE__ */ jsxs("p", { className: "mb-3 text-xs text-fg-muted", children: [
122
+ "Match in message source: ",
123
+ /* @__PURE__ */ jsx(SearchText, { text: snippet, query })
124
+ ] }) : null,
125
+ /* @__PURE__ */ jsx("div", { ref: body, className: "min-w-0", children: /* @__PURE__ */ jsx(MarkdownText, { text, compact: true, softLineBreaks: true, suppressImages: true }) })
126
+ ] });
127
+ }
128
+
129
+ export {
130
+ matchAtOffset,
131
+ selectedFormattedMessage,
132
+ SearchMarkdown
133
+ };
134
+ //# sourceMappingURL=chunk-H3T7IWNA.js.map