@opengeni/react 4.6.1 → 4.6.2-canary.39854174564001
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.
- package/dist/app/app-state.js +5 -5
- package/dist/app/components/Composer.js +14 -14
- package/dist/app/components/artifacts/artifact-library.js +2 -2
- package/dist/app/components/artifacts/chat-interactive-block.js +10 -10
- package/dist/app/components/artifacts/inline-chat-image.js +14 -14
- package/dist/app/components/artifacts/retained-file-preview.js +15 -15
- package/dist/app/components/artifacts/retained-text-preview.js +2 -2
- package/dist/app/components/artifacts/site-conversations.js +4 -3
- package/dist/app/components/artifacts/site-data.js +2 -2
- package/dist/app/components/artifacts/site-publishing.js +11 -11
- package/dist/app/components/artifacts/site-settings.js +12 -12
- package/dist/app/components/billing-class-mark.js +3 -3
- package/dist/app/components/capabilities/capability-detail-sheet.js +2 -2
- package/dist/app/components/capabilities/capability-logo-source.js +7 -7
- package/dist/app/components/capabilities/native-connect-readiness.js +1 -0
- package/dist/app/components/capabilities/native-connect-readiness.js.map +1 -1
- package/dist/app/components/capabilities/native-connect-setup.js +6 -6
- package/dist/app/components/capabilities/perform-capability-action.js +2 -1
- package/dist/app/components/capabilities/prepared-mcp-setup-card.js +8 -8
- package/dist/app/components/capabilities/session-capability-card.js +28 -27
- package/dist/app/components/capabilities/session-capability-card.js.map +1 -1
- package/dist/app/components/capabilities/session-chrome-card.js +14 -14
- package/dist/app/components/capabilities/session-custom-mcp-card.js +9 -9
- package/dist/app/components/capabilities/session-github-card.js +9 -9
- package/dist/app/components/capabilities/session-machine-card.js +13 -13
- package/dist/app/components/command-menu/chat-status.js +6 -5
- package/dist/app/components/command-menu/chat-switcher.d.ts +2 -0
- package/dist/app/components/command-menu/chat-switcher.js +26 -9
- package/dist/app/components/command-menu/chat-switcher.js.map +1 -1
- package/dist/app/components/command-menu/command-menu.js +9 -8
- package/dist/app/components/command-menu/command-menu.js.map +1 -1
- package/dist/app/components/command-menu/shortcut-sheet.js +4 -4
- package/dist/app/components/composer-mobile-plus-panel.js +5 -5
- package/dist/app/components/composer-mobile-plus.js +1 -1
- package/dist/app/components/credit-required-gate.js +1 -1
- package/dist/app/components/credit-required-prompt.js +3 -3
- package/dist/app/components/desktop/app-shots.js +5 -5
- package/dist/app/components/desktop/this-computer.js +4 -4
- package/dist/app/components/feedback.js +3 -3
- package/dist/app/components/github-app-connect-launcher.js +1 -1
- package/dist/app/components/machines/connect-machine-dialog.js +3 -3
- package/dist/app/components/markdown.js +4 -4
- package/dist/app/components/models/models-ui.js +2 -2
- package/dist/app/components/pickers.js +5 -5
- package/dist/app/components/rail/rail-context.js +1 -1
- package/dist/app/components/rail/rail-sections.js +15 -14
- package/dist/app/components/rail/session-header.d.ts +6 -5
- package/dist/app/components/rail/session-header.js +11 -10
- package/dist/app/components/rail/session-list.js +14 -13
- package/dist/app/components/rail/session-row-hover-details.js +7 -6
- package/dist/app/components/rail/session-shell.js +30 -32
- package/dist/app/components/rail/site-session-group-heading.js +2 -1
- package/dist/app/components/session/agent-configuration-panel.js +3 -3
- package/dist/app/components/session/banners.js +6 -6
- package/dist/app/components/session/editable-artifacts-workspace.js +12 -12
- package/dist/app/components/session/failed-session-banner.js +4 -4
- package/dist/app/components/session/human-input.js +24 -24
- package/dist/app/components/session/inspector.js +30 -30
- package/dist/app/components/session/message-actions.js +3 -3
- package/dist/app/components/session/message-resource-attachments.js +5 -5
- package/dist/app/components/session/model-recovery-notice.js +3 -3
- package/dist/app/components/session/new-session-settings-menu.js +4 -4
- package/dist/app/components/session/sandbox-switcher.js +7 -7
- package/dist/app/components/session/sandbox-workspace.js +33 -33
- package/dist/app/components/session/search-markdown-highlight.js +5 -5
- package/dist/app/components/session/search-results-view.js +6 -6
- package/dist/app/components/session/session-admission-notice.js +4 -4
- package/dist/app/components/session/session-machine-access-notice.js +4 -4
- package/dist/app/components/session/session-search-dialog.js +6 -6
- package/dist/app/components/session/session-usage-limit-section.js +3 -3
- package/dist/app/components/session/session-wait-status.js +2 -1
- package/dist/app/components/session/session-wait-status.js.map +1 -1
- package/dist/app/components/session/subagents.js +5 -4
- package/dist/app/components/session/subscription-account-indicator.d.ts +35 -0
- package/dist/app/components/session/{codex-account-indicator.js → subscription-account-indicator.js} +23 -10
- package/dist/app/components/session/subscription-account-menu.d.ts +11 -12
- package/dist/app/components/session/subscription-account-menu.js +1 -1
- package/dist/app/components/session/subscription-account.d.ts +105 -0
- package/dist/app/components/usage/usage-entry.js +3 -3
- package/dist/app/components/workspace-composer-plus.js +10 -10
- package/dist/app/embed/session-app.js +92 -94
- package/dist/app/lib/actions/actions-provider.js +4 -4
- package/dist/app/lib/actions/chat-switcher.d.ts +19 -7
- package/dist/app/lib/codex-usage-query.js +2 -2
- package/dist/app/lib/composer-connectors.js +8 -8
- package/dist/app/lib/console-text.js +2 -2
- package/dist/app/lib/drive-connect-return.d.ts +26 -0
- package/dist/app/lib/drive-connect-return.js +16 -0
- package/dist/app/lib/events.js +7 -7
- package/dist/app/lib/failed-session-copy.js +3 -3
- package/dist/app/lib/model-access-onboarding.js +3 -3
- package/dist/app/lib/move-chat-to-machine.js +3 -3
- package/dist/app/lib/session-branch-cache.js +6 -5
- package/dist/app/lib/session-group-pagination.js +6 -5
- package/dist/app/lib/session-hover-facts.js +6 -5
- package/dist/app/lib/session-rail.js +2 -1
- package/dist/app/lib/sessions-group.js +5 -4
- package/dist/app/lib/turn-failure-analytics.js +4 -4
- package/dist/app/lib/use-workspace-machines.js +4 -4
- package/dist/app/lib/use-workspace-model-catalog.js +3 -3
- package/dist/app/lib/use-workspace-rigs.js +2 -2
- package/dist/app/lib/workspace-navigation-preference.js +4 -4
- package/dist/app/lib/workspace-scope-context.js +3 -3
- package/dist/app/routes/artifacts.js +26 -25
- package/dist/app/routes/artifacts.js.map +1 -1
- package/dist/app/routes/retained-artifact.js +15 -15
- package/dist/app/routes/session.js +64 -63
- package/dist/app/routes/sessions-index.js +41 -41
- package/dist/app/routes/site-view.js +30 -29
- package/dist/app/routes/site-view.js.map +1 -1
- package/dist/artifacts-document.js +4 -4
- package/dist/artifacts-presentation.js +4 -4
- package/dist/artifacts-spreadsheet.js +4 -4
- package/dist/artifacts.js +10 -10
- package/dist/{browser-viewer-YQC6BFMS.js → browser-viewer-VKIAULG7.js} +4 -4
- package/dist/{chat-interactive-block-Z22YHDRU.js → chat-interactive-block-JGYSW4KB.js} +5 -5
- package/dist/{chunk-WN2MIB4Q.js → chunk-22V2QCEM.js} +2 -2
- package/dist/{chunk-SJPAKWWP.js → chunk-2BISI664.js} +2 -2
- package/dist/{chunk-O5UOCMH4.js → chunk-2LPJVEWY.js} +3 -3
- package/dist/{chunk-JI6WPLZB.js → chunk-2SBCOGQN.js} +4 -4
- package/dist/{chunk-6JF7C3U3.js → chunk-2WERWWSS.js} +2 -2
- package/dist/{chunk-4XKT4ENZ.js → chunk-2Y3QL3DA.js} +4 -4
- package/dist/{chunk-KVMFT6FN.js → chunk-3FL3F4WF.js} +2 -2
- package/dist/{chunk-4VJOZJDV.js → chunk-3JPQAIYJ.js} +2 -2
- package/dist/{chunk-27EORKJ4.js → chunk-3N4LNBJF.js} +2 -2
- package/dist/{chunk-7JZSFJHB.js → chunk-3OJU3RUR.js} +2 -2
- package/dist/{chunk-NV5OYV3G.js → chunk-3U6K36QA.js} +5 -5
- package/dist/{chunk-MDRLP5DO.js → chunk-3W7ROHN4.js} +3 -3
- package/dist/{chunk-3MQM4ZOC.js → chunk-3Y6ZR2VN.js} +3 -3
- package/dist/{chunk-HXZIX7MR.js → chunk-47AB65IO.js} +4 -4
- package/dist/{chunk-DNYD7AUG.js → chunk-4BOLIZ7Y.js} +3 -3
- package/dist/{chunk-4XO346BW.js → chunk-4FBJFQFU.js} +2 -2
- package/dist/{chunk-DAQG3C4W.js → chunk-4HM6YDBX.js} +3 -3
- package/dist/{chunk-BWKZEW6K.js → chunk-4T3E56NT.js} +3 -3
- package/dist/{chunk-4PC7LIQK.js → chunk-4ZMUWRFF.js} +3 -3
- package/dist/{chunk-O4AWXTZQ.js → chunk-52XIYULR.js} +3 -3
- package/dist/{chunk-GXK4CUAB.js → chunk-5WQKTT5Z.js} +2 -2
- package/dist/{chunk-MHIYYHCL.js → chunk-5ZAHAUWD.js} +10 -10
- package/dist/{chunk-6N7W3TOV.js → chunk-63BPMTBM.js} +2 -2
- package/dist/{chunk-R5YZ3ROM.js → chunk-63PQKTTT.js} +2 -2
- package/dist/{chunk-WLZVXCPZ.js → chunk-6GO6WN22.js} +3 -3
- package/dist/{chunk-6PQBKMUL.js → chunk-6IIA63VD.js} +11 -7
- package/dist/chunk-6IIA63VD.js.map +1 -0
- package/dist/{chunk-PQCFW2KT.js → chunk-6IRDW7K3.js} +18 -13
- package/dist/chunk-6IRDW7K3.js.map +1 -0
- package/dist/{chunk-XDCZBOEY.js → chunk-6LGBGPBU.js} +1 -1
- package/dist/{chunk-D4QOZXPM.js → chunk-7ITDATTP.js} +2 -2
- package/dist/{chunk-M5E3CKSE.js → chunk-7QWWE5XL.js} +2 -2
- package/dist/{chunk-RABKQFTA.js → chunk-A2HCAMRH.js} +2 -2
- package/dist/{chunk-6K3WNTRI.js → chunk-AODISQO6.js} +2 -2
- package/dist/{chunk-C6JL6PBL.js → chunk-AQDRH6VF.js} +3 -3
- package/dist/{chunk-72XEFLMD.js → chunk-ASWINLSW.js} +2 -2
- package/dist/{chunk-DNLXQUBX.js → chunk-B746OUJC.js} +24 -36
- package/dist/chunk-B746OUJC.js.map +1 -0
- package/dist/{chunk-FVCLVASD.js → chunk-B7ZKSROO.js} +24 -24
- package/dist/{chunk-EURDMOXZ.js → chunk-BYJZUCOQ.js} +2 -2
- package/dist/{chunk-ZWACUOU5.js → chunk-CDBGAAJY.js} +3 -3
- package/dist/chunk-CDBGAAJY.js.map +1 -0
- package/dist/{chunk-BPD4IJBG.js → chunk-CG6CJMIS.js} +2 -2
- package/dist/{chunk-B254JG72.js → chunk-CQX24PT7.js} +2 -2
- package/dist/{chunk-HJTTDLF6.js → chunk-CY3NO4JN.js} +4 -4
- package/dist/{chunk-OLUG4IFF.js → chunk-D2RLPRSG.js} +2 -2
- package/dist/{chunk-74NIHMAT.js → chunk-D653JH6D.js} +3 -3
- package/dist/{chunk-FMATVQFW.js → chunk-DA6EQDFR.js} +6 -6
- package/dist/{chunk-2LUO22FR.js → chunk-DAI5CTQF.js} +4 -4
- package/dist/{chunk-HTKVYEVB.js → chunk-DBM4ZXDN.js} +2 -2
- package/dist/{chunk-MB2DTUEG.js → chunk-DNYKLU3K.js} +4 -4
- package/dist/{chunk-NPDL4W4Y.js → chunk-DT53LBQN.js} +44 -45
- package/dist/chunk-DT53LBQN.js.map +1 -0
- package/dist/{chunk-26P7B46A.js → chunk-DXYARXK3.js} +3 -3
- package/dist/{chunk-JQKURO3S.js → chunk-E4MQRQ6Z.js} +2 -2
- package/dist/{chunk-KW53DBY7.js → chunk-EBW2E32G.js} +2 -2
- package/dist/{chunk-O73DRA77.js → chunk-ENKBO7FC.js} +4 -4
- package/dist/{chunk-32HA7DXJ.js → chunk-EQNGX77H.js} +11 -11
- package/dist/{chunk-CA64OZLZ.js → chunk-FAPYRTG6.js} +4 -4
- package/dist/{chunk-WWM7WVD2.js → chunk-GABFKHQE.js} +2 -2
- package/dist/chunk-GLCOKWLH.js +42 -0
- package/dist/chunk-GLCOKWLH.js.map +1 -0
- package/dist/{chunk-OHG2UQ2O.js → chunk-GNM3OY36.js} +51 -13
- package/dist/chunk-GNM3OY36.js.map +1 -0
- package/dist/{chunk-JJ7VMIEQ.js → chunk-H2GTWX4D.js} +14 -14
- package/dist/{chunk-LR7U3HCD.js → chunk-HPSATFLQ.js} +4 -4
- package/dist/{chunk-TM2ZLY3Q.js → chunk-I56TUH3Z.js} +13 -13
- package/dist/{chunk-ZZUKJ5HQ.js → chunk-IG2ERMSB.js} +2 -2
- package/dist/{chunk-2SZ3KC5S.js → chunk-IMKIIS4Y.js} +2 -2
- package/dist/{chunk-I57HZMMA.js → chunk-IXIE3H43.js} +2 -2
- package/dist/{chunk-OWJD3V4V.js → chunk-J3YQ3554.js} +2 -2
- package/dist/{chunk-BCFHMBMK.js → chunk-J5HZBHU4.js} +7 -7
- package/dist/{chunk-UHMMRQGU.js → chunk-KD7GNHOP.js} +3 -3
- package/dist/{chunk-RXMIXKB3.js → chunk-KIKAVZOW.js} +2 -2
- package/dist/{chunk-X7Z4B5GK.js → chunk-KPL7EXS6.js} +2 -2
- package/dist/{chunk-GTR2WUBA.js → chunk-KX6M5CJI.js} +1 -1
- package/dist/{chunk-CYO5HL4C.js → chunk-KYL2BPS2.js} +2 -2
- package/dist/{chunk-ZPZYYSHW.js → chunk-L7EAQGWN.js} +5 -5
- package/dist/{chunk-QLDMF7MH.js → chunk-LC5HE7PZ.js} +2 -2
- package/dist/{chunk-3SMJ2BIQ.js → chunk-LGD5RESZ.js} +7 -33
- package/dist/chunk-LGD5RESZ.js.map +1 -0
- package/dist/{chunk-4ICPJZAB.js → chunk-LMYSYG6U.js} +2 -2
- package/dist/{chunk-3ZZOE4SN.js → chunk-LOCDYMD6.js} +4 -4
- package/dist/{chunk-DNWBLT4U.js → chunk-MASBMJ2M.js} +2 -2
- package/dist/{chunk-6VITVQ23.js → chunk-MTYE2PPR.js} +1 -1
- package/dist/{chunk-NZMQDUOD.js → chunk-MU6HYDNF.js} +5 -5
- package/dist/{chunk-GMVKCEBG.js → chunk-MY6QEDZ2.js} +2 -2
- package/dist/{chunk-SK57RWSA.js → chunk-MZGKQ5WV.js} +2 -2
- package/dist/{chunk-HSQRYJ4P.js → chunk-N52SFH2K.js} +2 -2
- package/dist/{chunk-CEQUNJJY.js → chunk-NDCP5TVN.js} +2 -2
- package/dist/{chunk-MY6VZVCP.js → chunk-OAJX5CEL.js} +4 -4
- package/dist/{chunk-BQWUXC55.js → chunk-OBBLVC2W.js} +9 -9
- package/dist/{chunk-IWIMIRV3.js → chunk-OSJTLQXA.js} +9 -4
- package/dist/chunk-OSJTLQXA.js.map +1 -0
- package/dist/{chunk-FH75NNLB.js → chunk-OZ5NAXCP.js} +2 -2
- package/dist/{chunk-PEGNFZ3F.js → chunk-P5S777YI.js} +2 -2
- package/dist/{chunk-LY6727IF.js → chunk-PPSVFNEA.js} +1 -1
- package/dist/{chunk-K4FDZVMQ.js → chunk-PR42VIVY.js} +2 -2
- package/dist/{chunk-I74J2UZ2.js → chunk-PWMZCW4H.js} +8 -8
- package/dist/{chunk-6YDXUE5H.js → chunk-PYA2O3WS.js} +2 -2
- package/dist/{chunk-GUIZDI5T.js → chunk-Q2PA4KZS.js} +2 -2
- package/dist/{chunk-DZH2HTTB.js → chunk-R27GW5WV.js} +1 -1
- package/dist/chunk-R4U4EWZG.js +414 -0
- package/dist/chunk-R4U4EWZG.js.map +1 -0
- package/dist/{chunk-7OIBLMDP.js → chunk-RAQISW42.js} +2 -2
- package/dist/{chunk-CPKD2YGK.js → chunk-RNU5CUPI.js} +2 -2
- package/dist/{chunk-467VRP4E.js → chunk-RO5YZQHZ.js} +3 -3
- package/dist/{chunk-SSZROOOI.js → chunk-ROLXYGT5.js} +2 -2
- package/dist/{chunk-F4B2YYCN.js → chunk-TAWFXRXB.js} +3 -3
- package/dist/{chunk-G3FU2IF7.js → chunk-TB7UW5BB.js} +3 -3
- package/dist/{chunk-NF6Q4XTN.js → chunk-TQF2I5SY.js} +3 -3
- package/dist/{chunk-MM7OKOTE.js → chunk-UBXHP224.js} +43 -18
- package/dist/chunk-UBXHP224.js.map +1 -0
- package/dist/{chunk-M7A226EQ.js → chunk-UL44R3W2.js} +2 -2
- package/dist/{chunk-65K5LV4L.js → chunk-UQKBV22P.js} +21 -20
- package/dist/{chunk-65K5LV4L.js.map → chunk-UQKBV22P.js.map} +1 -1
- package/dist/{chunk-GTR5NLVP.js → chunk-VCRQPLKS.js} +2 -2
- package/dist/{chunk-NWSAF6P5.js → chunk-WJDH7CH5.js} +22 -1
- package/dist/chunk-WJDH7CH5.js.map +1 -0
- package/dist/{chunk-LG67ZNRU.js → chunk-WK2ZCTUF.js} +2 -2
- package/dist/{chunk-XGE75VPK.js → chunk-WNARM3LY.js} +3 -3
- package/dist/{chunk-RNBH5TSM.js → chunk-WQ2RTQYO.js} +2 -2
- package/dist/chunk-X5XEYQ4B.js +84 -0
- package/dist/chunk-X5XEYQ4B.js.map +1 -0
- package/dist/{chunk-W57QFLQD.js → chunk-X6JIGNLI.js} +4 -4
- package/dist/{chunk-CKA4SJRK.js → chunk-XIQDCQX7.js} +2 -2
- package/dist/{chunk-AJ7PY4FJ.js → chunk-Y3GCG6CA.js} +2 -2
- package/dist/{chunk-2K27S6LK.js → chunk-Y565N5ZJ.js} +24 -7
- package/dist/chunk-Y565N5ZJ.js.map +1 -0
- package/dist/{chunk-ZRB4M3GG.js → chunk-YC5KH7ZB.js} +3 -3
- package/dist/{chunk-4RY64KQY.js → chunk-YJUKLLNP.js} +2 -2
- package/dist/{chunk-24POWVUY.js → chunk-ZDJNRRVS.js} +4 -4
- package/dist/{chunk-S6WJ6TUT.js → chunk-ZEVJGMNB.js} +2 -2
- package/dist/chunk-ZEVJGMNB.js.map +1 -0
- package/dist/{chunk-M7YEZR6X.js → chunk-ZITMDA4C.js} +2 -2
- package/dist/components/model-policy-picker.d.ts +2 -0
- package/dist/composer.js +6 -6
- package/dist/{computer-viewer-BWVNDFTO.js → computer-viewer-6CRLWQHP.js} +5 -5
- package/dist/connect.js +6 -6
- package/dist/connection-service-presentation.d.ts +1 -4
- package/dist/desktop.js +2 -2
- package/dist/editor.js +2 -2
- package/dist/{embedded-new-voice-GBXSZ3TO.js → embedded-new-voice-KILV3RYM.js} +5 -5
- package/dist/{embedded-voice-MGI7EK7C.js → embedded-voice-GHDRLCFX.js} +5 -5
- package/dist/{fleet-decision-row-35S3GAUN.js → fleet-decision-row-DQXRRBT7.js} +2 -2
- package/dist/index.js +36 -36
- package/dist/interaction.js +5 -5
- package/dist/machines.js +3 -3
- package/dist/messages/en.d.ts +1 -1
- package/dist/messages.js +1 -1
- package/dist/{model-policy-picker-menu-KP53N6UJ.js → model-policy-picker-menu-5ALKUJMR.js} +4 -4
- package/dist/{platform-activity-row-ISMXR7NJ.js → platform-activity-row-227C764Z.js} +2 -2
- package/dist/{queue-surface-implementation-ULW7DDJA.js → queue-surface-implementation-H3NOBXU5.js} +5 -5
- package/dist/realtime.js +4 -4
- package/dist/{sandbox-files-QYSD4XCZ.js → sandbox-files-5FEOHUMD.js} +6 -6
- package/dist/session-app.js +92 -94
- package/dist/{session-realtime-JXRLPNUH.js → session-realtime-OHBMODNX.js} +3 -3
- package/dist/session-realtime.js +2 -2
- package/dist/session-ui.js +24 -24
- package/dist/session.js +5 -5
- package/dist/sites.js +2 -2
- package/dist/terminal.js +2 -2
- package/dist/this-computer.js +3 -3
- package/dist/timeline/connector-logo-index.d.ts +19 -0
- package/dist/{timeline-annotation-markers-OJYKHBEO.js → timeline-annotation-markers-NDHS7MCK.js} +2 -2
- package/dist/{timeline-annotation-selection-6OAZLXFU.js → timeline-annotation-selection-DRQSTJOV.js} +2 -2
- package/dist/{timeline-annotations-dialog-5M6DP5FX.js → timeline-annotations-dialog-G6J5ZJKN.js} +3 -3
- package/dist/timeline-model.d.ts +2 -0
- package/dist/timeline-model.js +9 -1
- package/dist/ui/list-row.js +1 -1
- package/dist/usage.js +2 -2
- package/dist/workbench.js +4 -4
- package/package.json +4 -4
- package/src/app/components/capabilities/native-connect-readiness.tsx +1 -0
- package/src/app/components/capabilities/perform-capability-action.test.ts +67 -0
- package/src/app/components/capabilities/perform-capability-action.tsx +28 -0
- package/src/app/components/command-menu/chat-switcher.tsx +25 -4
- package/src/app/components/rail/session-header.test.tsx +73 -2
- package/src/app/components/rail/session-header.tsx +20 -12
- package/src/app/components/rail/session-shell.tsx +10 -18
- package/src/app/components/session/subscription-account-indicator.test.ts +239 -0
- package/src/app/components/session/subscription-account-indicator.tsx +361 -0
- package/src/app/components/session/subscription-account-menu.tsx +21 -43
- package/src/app/components/session/subscription-account.test.ts +314 -0
- package/src/app/components/session/subscription-account.ts +354 -0
- package/src/app/lib/actions/actions-provider.tsx +11 -0
- package/src/app/lib/actions/actions.test.ts +59 -4
- package/src/app/lib/actions/chat-switcher.ts +73 -20
- package/src/app/lib/drive-connect-return.test.ts +183 -0
- package/src/app/lib/drive-connect-return.tsx +116 -0
- package/src/app/routes/session.tsx +12 -14
- package/src/app/routes/sessions-index.tsx +1 -0
- package/src/components/model-policy-picker-menu.tsx +25 -4
- package/src/components/model-policy-picker.tsx +2 -0
- package/src/components/session-mcp-capability-card.tsx +13 -4
- package/src/connection-service-presentation.ts +6 -1
- package/src/messages/en.ts +1 -1
- package/src/timeline/connector-logo-index.test.ts +46 -0
- package/src/timeline/connector-logo-index.ts +68 -0
- package/src/timeline-model.ts +6 -0
- package/src/ui/list-row.tsx +38 -10
- package/styles/compiled.css +13 -0
- package/dist/app/components/session/codex-account-indicator.d.ts +0 -9
- package/dist/app/components/session/model-account-indicator.d.ts +0 -10
- package/dist/app/components/session/model-account-indicator.js +0 -34
- package/dist/app/components/session/model-account-usage.d.ts +0 -8
- package/dist/app/components/session/model-account-usage.js +0 -8
- package/dist/chunk-2K27S6LK.js.map +0 -1
- package/dist/chunk-3SMJ2BIQ.js.map +0 -1
- package/dist/chunk-6PQBKMUL.js.map +0 -1
- package/dist/chunk-7H2D4VNU.js +0 -150
- package/dist/chunk-7H2D4VNU.js.map +0 -1
- package/dist/chunk-DNLXQUBX.js.map +0 -1
- package/dist/chunk-HCCSAECI.js +0 -132
- package/dist/chunk-HCCSAECI.js.map +0 -1
- package/dist/chunk-IWIMIRV3.js.map +0 -1
- package/dist/chunk-M77ZQE5T.js +0 -58
- package/dist/chunk-M77ZQE5T.js.map +0 -1
- package/dist/chunk-MM7OKOTE.js.map +0 -1
- package/dist/chunk-NPDL4W4Y.js.map +0 -1
- package/dist/chunk-NWSAF6P5.js.map +0 -1
- package/dist/chunk-OHG2UQ2O.js.map +0 -1
- package/dist/chunk-PQCFW2KT.js.map +0 -1
- package/dist/chunk-S6WJ6TUT.js.map +0 -1
- package/dist/chunk-ZWACUOU5.js.map +0 -1
- package/dist/session-realtime-JXRLPNUH.js.map +0 -1
- package/src/app/components/session/codex-account-indicator.tsx +0 -207
- package/src/app/components/session/model-account-indicator.tsx +0 -189
- package/src/app/components/session/model-account-usage.test.ts +0 -59
- package/src/app/components/session/model-account-usage.tsx +0 -89
- /package/dist/app/components/session/{codex-account-indicator.js.map → subscription-account-indicator.js.map} +0 -0
- /package/dist/app/{components/session/model-account-indicator.js.map → lib/drive-connect-return.js.map} +0 -0
- /package/dist/{app/components/session/model-account-usage.js.map → browser-viewer-VKIAULG7.js.map} +0 -0
- /package/dist/{browser-viewer-YQC6BFMS.js.map → chat-interactive-block-JGYSW4KB.js.map} +0 -0
- /package/dist/{chunk-WN2MIB4Q.js.map → chunk-22V2QCEM.js.map} +0 -0
- /package/dist/{chunk-SJPAKWWP.js.map → chunk-2BISI664.js.map} +0 -0
- /package/dist/{chunk-O5UOCMH4.js.map → chunk-2LPJVEWY.js.map} +0 -0
- /package/dist/{chunk-JI6WPLZB.js.map → chunk-2SBCOGQN.js.map} +0 -0
- /package/dist/{chunk-6JF7C3U3.js.map → chunk-2WERWWSS.js.map} +0 -0
- /package/dist/{chunk-4XKT4ENZ.js.map → chunk-2Y3QL3DA.js.map} +0 -0
- /package/dist/{chunk-KVMFT6FN.js.map → chunk-3FL3F4WF.js.map} +0 -0
- /package/dist/{chunk-4VJOZJDV.js.map → chunk-3JPQAIYJ.js.map} +0 -0
- /package/dist/{chunk-27EORKJ4.js.map → chunk-3N4LNBJF.js.map} +0 -0
- /package/dist/{chunk-7JZSFJHB.js.map → chunk-3OJU3RUR.js.map} +0 -0
- /package/dist/{chunk-NV5OYV3G.js.map → chunk-3U6K36QA.js.map} +0 -0
- /package/dist/{chunk-MDRLP5DO.js.map → chunk-3W7ROHN4.js.map} +0 -0
- /package/dist/{chunk-3MQM4ZOC.js.map → chunk-3Y6ZR2VN.js.map} +0 -0
- /package/dist/{chunk-HXZIX7MR.js.map → chunk-47AB65IO.js.map} +0 -0
- /package/dist/{chunk-DNYD7AUG.js.map → chunk-4BOLIZ7Y.js.map} +0 -0
- /package/dist/{chunk-4XO346BW.js.map → chunk-4FBJFQFU.js.map} +0 -0
- /package/dist/{chunk-DAQG3C4W.js.map → chunk-4HM6YDBX.js.map} +0 -0
- /package/dist/{chunk-BWKZEW6K.js.map → chunk-4T3E56NT.js.map} +0 -0
- /package/dist/{chunk-4PC7LIQK.js.map → chunk-4ZMUWRFF.js.map} +0 -0
- /package/dist/{chunk-O4AWXTZQ.js.map → chunk-52XIYULR.js.map} +0 -0
- /package/dist/{chunk-GXK4CUAB.js.map → chunk-5WQKTT5Z.js.map} +0 -0
- /package/dist/{chunk-MHIYYHCL.js.map → chunk-5ZAHAUWD.js.map} +0 -0
- /package/dist/{chunk-6N7W3TOV.js.map → chunk-63BPMTBM.js.map} +0 -0
- /package/dist/{chunk-R5YZ3ROM.js.map → chunk-63PQKTTT.js.map} +0 -0
- /package/dist/{chunk-WLZVXCPZ.js.map → chunk-6GO6WN22.js.map} +0 -0
- /package/dist/{chunk-XDCZBOEY.js.map → chunk-6LGBGPBU.js.map} +0 -0
- /package/dist/{chunk-D4QOZXPM.js.map → chunk-7ITDATTP.js.map} +0 -0
- /package/dist/{chunk-M5E3CKSE.js.map → chunk-7QWWE5XL.js.map} +0 -0
- /package/dist/{chunk-RABKQFTA.js.map → chunk-A2HCAMRH.js.map} +0 -0
- /package/dist/{chunk-6K3WNTRI.js.map → chunk-AODISQO6.js.map} +0 -0
- /package/dist/{chunk-C6JL6PBL.js.map → chunk-AQDRH6VF.js.map} +0 -0
- /package/dist/{chunk-72XEFLMD.js.map → chunk-ASWINLSW.js.map} +0 -0
- /package/dist/{chunk-FVCLVASD.js.map → chunk-B7ZKSROO.js.map} +0 -0
- /package/dist/{chunk-EURDMOXZ.js.map → chunk-BYJZUCOQ.js.map} +0 -0
- /package/dist/{chunk-BPD4IJBG.js.map → chunk-CG6CJMIS.js.map} +0 -0
- /package/dist/{chunk-B254JG72.js.map → chunk-CQX24PT7.js.map} +0 -0
- /package/dist/{chunk-HJTTDLF6.js.map → chunk-CY3NO4JN.js.map} +0 -0
- /package/dist/{chunk-OLUG4IFF.js.map → chunk-D2RLPRSG.js.map} +0 -0
- /package/dist/{chunk-74NIHMAT.js.map → chunk-D653JH6D.js.map} +0 -0
- /package/dist/{chunk-FMATVQFW.js.map → chunk-DA6EQDFR.js.map} +0 -0
- /package/dist/{chunk-2LUO22FR.js.map → chunk-DAI5CTQF.js.map} +0 -0
- /package/dist/{chunk-HTKVYEVB.js.map → chunk-DBM4ZXDN.js.map} +0 -0
- /package/dist/{chunk-MB2DTUEG.js.map → chunk-DNYKLU3K.js.map} +0 -0
- /package/dist/{chunk-26P7B46A.js.map → chunk-DXYARXK3.js.map} +0 -0
- /package/dist/{chunk-JQKURO3S.js.map → chunk-E4MQRQ6Z.js.map} +0 -0
- /package/dist/{chunk-KW53DBY7.js.map → chunk-EBW2E32G.js.map} +0 -0
- /package/dist/{chunk-O73DRA77.js.map → chunk-ENKBO7FC.js.map} +0 -0
- /package/dist/{chunk-32HA7DXJ.js.map → chunk-EQNGX77H.js.map} +0 -0
- /package/dist/{chunk-CA64OZLZ.js.map → chunk-FAPYRTG6.js.map} +0 -0
- /package/dist/{chunk-WWM7WVD2.js.map → chunk-GABFKHQE.js.map} +0 -0
- /package/dist/{chunk-JJ7VMIEQ.js.map → chunk-H2GTWX4D.js.map} +0 -0
- /package/dist/{chunk-LR7U3HCD.js.map → chunk-HPSATFLQ.js.map} +0 -0
- /package/dist/{chunk-TM2ZLY3Q.js.map → chunk-I56TUH3Z.js.map} +0 -0
- /package/dist/{chunk-ZZUKJ5HQ.js.map → chunk-IG2ERMSB.js.map} +0 -0
- /package/dist/{chunk-2SZ3KC5S.js.map → chunk-IMKIIS4Y.js.map} +0 -0
- /package/dist/{chunk-I57HZMMA.js.map → chunk-IXIE3H43.js.map} +0 -0
- /package/dist/{chunk-OWJD3V4V.js.map → chunk-J3YQ3554.js.map} +0 -0
- /package/dist/{chunk-BCFHMBMK.js.map → chunk-J5HZBHU4.js.map} +0 -0
- /package/dist/{chunk-UHMMRQGU.js.map → chunk-KD7GNHOP.js.map} +0 -0
- /package/dist/{chunk-RXMIXKB3.js.map → chunk-KIKAVZOW.js.map} +0 -0
- /package/dist/{chunk-X7Z4B5GK.js.map → chunk-KPL7EXS6.js.map} +0 -0
- /package/dist/{chunk-GTR2WUBA.js.map → chunk-KX6M5CJI.js.map} +0 -0
- /package/dist/{chunk-CYO5HL4C.js.map → chunk-KYL2BPS2.js.map} +0 -0
- /package/dist/{chunk-ZPZYYSHW.js.map → chunk-L7EAQGWN.js.map} +0 -0
- /package/dist/{chunk-QLDMF7MH.js.map → chunk-LC5HE7PZ.js.map} +0 -0
- /package/dist/{chunk-4ICPJZAB.js.map → chunk-LMYSYG6U.js.map} +0 -0
- /package/dist/{chunk-3ZZOE4SN.js.map → chunk-LOCDYMD6.js.map} +0 -0
- /package/dist/{chunk-DNWBLT4U.js.map → chunk-MASBMJ2M.js.map} +0 -0
- /package/dist/{chunk-6VITVQ23.js.map → chunk-MTYE2PPR.js.map} +0 -0
- /package/dist/{chunk-NZMQDUOD.js.map → chunk-MU6HYDNF.js.map} +0 -0
- /package/dist/{chunk-GMVKCEBG.js.map → chunk-MY6QEDZ2.js.map} +0 -0
- /package/dist/{chunk-SK57RWSA.js.map → chunk-MZGKQ5WV.js.map} +0 -0
- /package/dist/{chunk-HSQRYJ4P.js.map → chunk-N52SFH2K.js.map} +0 -0
- /package/dist/{chunk-CEQUNJJY.js.map → chunk-NDCP5TVN.js.map} +0 -0
- /package/dist/{chunk-MY6VZVCP.js.map → chunk-OAJX5CEL.js.map} +0 -0
- /package/dist/{chunk-BQWUXC55.js.map → chunk-OBBLVC2W.js.map} +0 -0
- /package/dist/{chunk-FH75NNLB.js.map → chunk-OZ5NAXCP.js.map} +0 -0
- /package/dist/{chunk-PEGNFZ3F.js.map → chunk-P5S777YI.js.map} +0 -0
- /package/dist/{chunk-LY6727IF.js.map → chunk-PPSVFNEA.js.map} +0 -0
- /package/dist/{chunk-K4FDZVMQ.js.map → chunk-PR42VIVY.js.map} +0 -0
- /package/dist/{chunk-I74J2UZ2.js.map → chunk-PWMZCW4H.js.map} +0 -0
- /package/dist/{chunk-6YDXUE5H.js.map → chunk-PYA2O3WS.js.map} +0 -0
- /package/dist/{chunk-GUIZDI5T.js.map → chunk-Q2PA4KZS.js.map} +0 -0
- /package/dist/{chunk-DZH2HTTB.js.map → chunk-R27GW5WV.js.map} +0 -0
- /package/dist/{chunk-7OIBLMDP.js.map → chunk-RAQISW42.js.map} +0 -0
- /package/dist/{chunk-CPKD2YGK.js.map → chunk-RNU5CUPI.js.map} +0 -0
- /package/dist/{chunk-467VRP4E.js.map → chunk-RO5YZQHZ.js.map} +0 -0
- /package/dist/{chunk-SSZROOOI.js.map → chunk-ROLXYGT5.js.map} +0 -0
- /package/dist/{chunk-F4B2YYCN.js.map → chunk-TAWFXRXB.js.map} +0 -0
- /package/dist/{chunk-G3FU2IF7.js.map → chunk-TB7UW5BB.js.map} +0 -0
- /package/dist/{chunk-NF6Q4XTN.js.map → chunk-TQF2I5SY.js.map} +0 -0
- /package/dist/{chunk-M7A226EQ.js.map → chunk-UL44R3W2.js.map} +0 -0
- /package/dist/{chunk-GTR5NLVP.js.map → chunk-VCRQPLKS.js.map} +0 -0
- /package/dist/{chunk-LG67ZNRU.js.map → chunk-WK2ZCTUF.js.map} +0 -0
- /package/dist/{chunk-XGE75VPK.js.map → chunk-WNARM3LY.js.map} +0 -0
- /package/dist/{chunk-RNBH5TSM.js.map → chunk-WQ2RTQYO.js.map} +0 -0
- /package/dist/{chunk-W57QFLQD.js.map → chunk-X6JIGNLI.js.map} +0 -0
- /package/dist/{chunk-CKA4SJRK.js.map → chunk-XIQDCQX7.js.map} +0 -0
- /package/dist/{chunk-AJ7PY4FJ.js.map → chunk-Y3GCG6CA.js.map} +0 -0
- /package/dist/{chunk-ZRB4M3GG.js.map → chunk-YC5KH7ZB.js.map} +0 -0
- /package/dist/{chunk-4RY64KQY.js.map → chunk-YJUKLLNP.js.map} +0 -0
- /package/dist/{chunk-24POWVUY.js.map → chunk-ZDJNRRVS.js.map} +0 -0
- /package/dist/{chunk-M7YEZR6X.js.map → chunk-ZITMDA4C.js.map} +0 -0
- /package/dist/{chat-interactive-block-Z22YHDRU.js.map → computer-viewer-6CRLWQHP.js.map} +0 -0
- /package/dist/{computer-viewer-BWVNDFTO.js.map → embedded-new-voice-KILV3RYM.js.map} +0 -0
- /package/dist/{embedded-new-voice-GBXSZ3TO.js.map → embedded-voice-GHDRLCFX.js.map} +0 -0
- /package/dist/{fleet-decision-row-35S3GAUN.js.map → fleet-decision-row-DQXRRBT7.js.map} +0 -0
- /package/dist/{embedded-voice-MGI7EK7C.js.map → model-policy-picker-menu-5ALKUJMR.js.map} +0 -0
- /package/dist/{platform-activity-row-ISMXR7NJ.js.map → platform-activity-row-227C764Z.js.map} +0 -0
- /package/dist/{queue-surface-implementation-ULW7DDJA.js.map → queue-surface-implementation-H3NOBXU5.js.map} +0 -0
- /package/dist/{model-policy-picker-menu-KP53N6UJ.js.map → sandbox-files-5FEOHUMD.js.map} +0 -0
- /package/dist/{sandbox-files-QYSD4XCZ.js.map → session-realtime-OHBMODNX.js.map} +0 -0
- /package/dist/{timeline-annotation-markers-OJYKHBEO.js.map → timeline-annotation-markers-NDHS7MCK.js.map} +0 -0
- /package/dist/{timeline-annotation-selection-6OAZLXFU.js.map → timeline-annotation-selection-DRQSTJOV.js.map} +0 -0
- /package/dist/{timeline-annotations-dialog-5M6DP5FX.js.map → timeline-annotations-dialog-G6J5ZJKN.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/app/components/rail/session-shell.tsx"],"sourcesContent":["// The session shell every session surface renders: the left rail (fixed and\n// resizable on desktop, an overlay drawer on phones), the canvas top strip with\n// the session header on session routes, and the canvas itself. Surface-owned\n// sections (workspace switcher, navigation extras, footer, banners) come in as\n// slots, so the web app and embeds share one shell and differ only in what they\n// put in it.\nimport type { SessionSummary } from \"@opengeni/sdk\";\nimport { MenuIcon, MessagesSquareIcon, Settings2Icon } from \"lucide-react\";\nimport {\n useCallback,\n useContext,\n useEffect,\n lazy,\n useId,\n useRef,\n useState,\n useSyncExternalStore,\n Suspense,\n type PointerEvent as ReactPointerEvent,\n type ReactNode,\n type RefObject,\n} from \"react\";\nimport { toast } from \"../../lib/toast\";\n\nimport { findPickerRow } from \"../../../model-policy\";\nimport { useLastStartedTurnPolicy } from \"../../../hooks/use-last-started-turn-policy\";\nimport { useSessionLineage } from \"../../../hooks/use-session-lineage\";\nimport { BrandMark, Wordmark } from \"../brand-mark\";\nimport { SessionHeader } from \"./session-header\";\nimport { SessionStartupProvider } from \"../../../lib/session-startup\";\nimport {\n requestSessionUsageLimitEditor,\n sessionUsageLimitCapability,\n} from \"../../lib/session-usage-limit\";\nimport { RAIL_DEFAULT_WIDTH, RAIL_MAX_WIDTH, RAIL_MIN_WIDTH, useRail } from \"./rail-context\";\nimport { CollapsedSessionsButton, SessionList } from \"./session-list\";\nimport {\n PrimaryNav,\n RailHeader,\n SessionShellSlotsContext,\n type SessionShellSlots,\n} from \"./rail-sections\";\n\nexport {\n PrimaryNav,\n RailHeader,\n SessionShellSlotsProvider,\n type SessionShellSlots,\n} from \"./rail-sections\";\nimport {\n SessionComputeIndicator,\n sessionSupportsFleetSwitching,\n} from \"../session/sandbox-switcher\";\nimport { SubscriptionAccountIndicator } from \"../session/subscription-account-indicator\";\nimport { subscriptionAccountProvider } from \"../session/subscription-account\";\nimport { PrivateSessionIndicator } from \"../session/private-session-indicator\";\nimport { Button } from \"../../../ui/button\";\nimport { Sheet, SheetContent, SheetDescription, SheetTitle } from \"../../../ui/sheet\";\nimport { TooltipProvider } from \"../../../ui/tooltip\";\nimport { Link, useNavigate, useRouterState } from \"../../lib/navigation\";\nimport { useWorkspaceModelCatalog } from \"../../lib/use-workspace-model-catalog\";\nimport { useAppContext } from \"../../app-context\";\nimport { isPersonalWorkspace } from \"../../lib/managed-self-context\";\nimport { isIntelligenceEffort } from \"../../lib/session-tools\";\nimport { useSessionRepliesMute } from \"../../lib/inbox\";\nimport { useSessionAdminAccess } from \"../session/session-admin-access\";\nimport { applySessionArchiveProjection } from \"../../lib/session-pagination\";\nimport { notifySessionListChanged } from \"../../lib/session-list-invalidation\";\nimport type { Session } from \"../../types\";\nimport { cn } from \"../../lib/utils\";\nimport { windowControlsInPage } from \"../../lib/desktop\";\nimport { useSessionUiFeature } from \"../../lib/session-ui-features\";\nimport { useUiEventTarget } from \"../../lib/ui-events\";\n\nconst LazySessionTenancyRouteControl = lazy(() =>\n import(\"../session/session-tenancy-control\").then(({ SessionTenancyRouteControl }) => ({\n default: SessionTenancyRouteControl,\n })),\n);\n\n/** The rail body — shared between the fixed desktop column and the mobile drawer. */\nexport function RailBody() {\n const rail = useRail();\n const { switcher, mobileWorkspacePanel, railFooter } = useContext(SessionShellSlotsContext);\n const [mobileSection, setMobileSection] = useState<\"sessions\" | \"workspace\">(\"sessions\");\n const sessionsTabRef = useRef<HTMLButtonElement>(null);\n const workspaceTabRef = useRef<HTMLButtonElement>(null);\n // Unique per app, so two apps on one page never share these ids.\n const mobileNavId = `mobile-nav-${useId().replaceAll(\":\", \"\")}`;\n useEffect(() => {\n if (rail.drawerOpen) setMobileSection(\"sessions\");\n }, [rail.drawerOpen]);\n const moveMobileTab = (section: \"sessions\" | \"workspace\") => {\n setMobileSection(section);\n window.requestAnimationFrame(() =>\n (section === \"sessions\" ? sessionsTabRef : workspaceTabRef).current?.focus(),\n );\n };\n return (\n <div\n data-rail\n className=\"og-rail-glow isolate flex h-full min-h-0 flex-col overflow-hidden pt-[env(safe-area-inset-top)]\"\n >\n {/* Native macOS controls sit over this row. Keep it outside the clipped\n viewport so navigation cannot scroll underneath them. */}\n {windowControlsInPage ? (\n <div data-rail-window-controls className=\"relative z-10 shrink-0 pb-3\">\n <RailHeader showSwitcher={false} />\n </div>\n ) : null}\n <div\n data-rail-scroll-viewport\n className=\"relative z-0 min-h-0 flex-1 overflow-x-hidden overflow-y-auto overscroll-y-contain\"\n >\n <div className=\"flex min-h-full flex-col\">\n {!windowControlsInPage ? <RailHeader /> : null}\n\n {rail.collapsed || windowControlsInPage ? switcher : null}\n\n {rail.isMobile && mobileWorkspacePanel ? (\n <>\n <div\n role=\"tablist\"\n aria-label=\"Navigation section\"\n onKeyDown={(event) => {\n if (event.key === \"ArrowLeft\" || event.key === \"Home\") {\n event.preventDefault();\n moveMobileTab(\"sessions\");\n } else if (event.key === \"ArrowRight\" || event.key === \"End\") {\n event.preventDefault();\n moveMobileTab(\"workspace\");\n }\n }}\n className=\"mx-3 mt-3 grid shrink-0 grid-cols-2 rounded-lg bg-surface-2/70 p-1\"\n >\n <button\n ref={sessionsTabRef}\n id={`${mobileNavId}-tab-sessions`}\n type=\"button\"\n role=\"tab\"\n aria-selected={mobileSection === \"sessions\"}\n aria-controls={`${mobileNavId}-panel-sessions`}\n tabIndex={mobileSection === \"sessions\" ? 0 : -1}\n onClick={() => setMobileSection(\"sessions\")}\n className={cn(\n \"flex h-10 items-center justify-center gap-2 rounded-md text-sm font-normal transition-colors\",\n mobileSection === \"sessions\"\n ? \"bg-surface-3 text-fg shadow-sm\"\n : \"text-fg-label hover:text-fg\",\n )}\n >\n <MessagesSquareIcon className=\"size-4\" />\n Sessions\n </button>\n <button\n ref={workspaceTabRef}\n id={`${mobileNavId}-tab-workspace`}\n type=\"button\"\n role=\"tab\"\n aria-selected={mobileSection === \"workspace\"}\n aria-controls={`${mobileNavId}-panel-workspace`}\n tabIndex={mobileSection === \"workspace\" ? 0 : -1}\n onClick={() => setMobileSection(\"workspace\")}\n className={cn(\n \"flex h-10 items-center justify-center gap-2 rounded-md text-sm font-normal transition-colors\",\n mobileSection === \"workspace\"\n ? \"bg-surface-3 text-fg shadow-sm\"\n : \"text-fg-label hover:text-fg\",\n )}\n >\n <Settings2Icon className=\"size-4\" />\n Workspace\n </button>\n </div>\n {mobileSection === \"sessions\" ? (\n <div\n id={`${mobileNavId}-panel-sessions`}\n role=\"tabpanel\"\n aria-labelledby={`${mobileNavId}-tab-sessions`}\n className=\"mt-2 flex shrink-0 flex-col\"\n >\n <PrimaryNav />\n <SessionList />\n </div>\n ) : (\n <div\n id={`${mobileNavId}-panel-workspace`}\n role=\"tabpanel\"\n aria-labelledby={`${mobileNavId}-tab-workspace`}\n className=\"mt-2 flex shrink-0 flex-col border-t border-border pt-2\"\n >\n {mobileWorkspacePanel}\n </div>\n )}\n </>\n ) : (\n <>\n {/* Sessions are the primary object. Workspace administration remains\n secondary on desktop and becomes its own screen on phones. */}\n <PrimaryNav />\n <div className=\"mt-2 flex shrink-0 flex-col\">\n {rail.collapsed ? <CollapsedSessionsButton /> : <SessionList />}\n </div>\n </>\n )}\n </div>\n </div>\n {/* Keep the persistent controls above the scroll viewport, including\n session-row actions with their own stacking levels. The footer is a\n sibling of the clipped viewport, so it can stay transparent and let\n the rail glow run to the bottom edge. */}\n {railFooter ? (\n <div data-rail-footer className=\"relative z-10 shrink-0 border-t border-border\">\n {railFooter}\n </div>\n ) : null}\n </div>\n );\n}\n\n/**\n * The drag handle on the expanded rail's right edge. A quiet, wide-ish hit area\n * straddling the border: at rest it's invisible (the border is the only line);\n * on hover it thickens into a stronger line, and while dragging it wears the\n * brand tint. Double-click snaps back to the default width. Keyboard users get\n * the collapse toggle elsewhere; this is a pointer affordance (hidden from the\n * a11y tree beyond its separator role + label).\n */\nfunction RailResizeHandle({\n onStart,\n active,\n}: {\n onStart: (event: ReactPointerEvent) => void;\n active: boolean;\n}) {\n const rail = useRail();\n return (\n <div\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-label=\"Resize sidebar\"\n onPointerDown={onStart}\n onDoubleClick={() => rail.setWidth(RAIL_DEFAULT_WIDTH)}\n className=\"group absolute inset-y-0 -right-1 z-20 w-2 cursor-col-resize touch-none select-none\"\n >\n <span\n className={cn(\n \"absolute inset-y-0 right-1 w-px transition-[width,background-color] duration-150\",\n active\n ? \"w-0.5 bg-brand/70\"\n : \"bg-transparent group-hover:w-0.5 group-hover:bg-border-strong\",\n )}\n />\n </div>\n );\n}\n\nconst NO_SLOTS: SessionShellSlots = {};\n\nexport function SessionShell({\n children,\n slots = NO_SLOTS,\n}: {\n children: ReactNode;\n slots?: SessionShellSlots | undefined;\n}) {\n return (\n <SessionShellSlotsContext.Provider value={slots}>\n <SessionShellFrame>{children}</SessionShellFrame>\n </SessionShellSlotsContext.Provider>\n );\n}\n\nfunction SessionShellFrame({ children }: { children: ReactNode }) {\n const rail = useRail();\n const chatList = useSessionUiFeature(\"chatList\");\n const context = useAppContext();\n const { canvasBanners } = useContext(SessionShellSlotsContext);\n const pathname = useRouterState({\n select: (state) => state.location.pathname,\n });\n // Focus returns here when the mobile drawer closes (D9.1): the drawer is a\n // controlled Sheet with no in-tree trigger, so radix can't restore focus on\n // its own — we point it back at the hamburger that opened it.\n const hamburgerRef = rail.drawerTriggerRef;\n\n // Live width while the reader drags the resize handle. Held locally (not in\n // context) so we don't write localStorage on every pointer move — the chosen\n // width is committed once on pointer-up. `null` means \"not resizing\".\n const [liveWidth, setLiveWidth] = useState<number | null>(null);\n const resizing = liveWidth !== null;\n // Teardown for an in-progress drag (remove window listeners + reset body\n // styles). Held in a ref so an unmount / route change MID-DRAG can run it —\n // otherwise the listeners and the col-resize cursor / no-select body styles\n // linger until an unrelated pointer release elsewhere.\n const endResizeRef = useRef<(() => void) | null>(null);\n const startResize = useCallback(\n (event: ReactPointerEvent) => {\n // Ignore anything but a primary-button / touch drag.\n if (event.button !== 0) {\n return;\n }\n event.preventDefault();\n const startX = event.clientX;\n const startWidth = rail.width;\n const clamp = (w: number) =>\n Math.min(RAIL_MAX_WIDTH, Math.max(RAIL_MIN_WIDTH, Math.round(w)));\n setLiveWidth(startWidth);\n document.body.style.userSelect = \"none\";\n document.body.style.cursor = \"col-resize\";\n const onMove = (moveEvent: PointerEvent) =>\n setLiveWidth(clamp(startWidth + (moveEvent.clientX - startX)));\n const teardown = () => {\n window.removeEventListener(\"pointermove\", onMove);\n window.removeEventListener(\"pointerup\", onUp);\n document.body.style.userSelect = \"\";\n document.body.style.cursor = \"\";\n endResizeRef.current = null;\n };\n const onUp = (upEvent: PointerEvent) => {\n rail.setWidth(clamp(startWidth + (upEvent.clientX - startX)));\n setLiveWidth(null);\n teardown();\n };\n endResizeRef.current = teardown;\n window.addEventListener(\"pointermove\", onMove);\n window.addEventListener(\"pointerup\", onUp);\n },\n [rail],\n );\n // Unmount / route-change mid-drag: run the drag teardown so listeners and\n // body styles never leak.\n useEffect(() => () => endResizeRef.current?.(), []);\n\n // Close the mobile drawer on route change.\n useEffect(() => {\n if (rail.drawerOpen) {\n rail.setDrawerOpen(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pathname]);\n\n return (\n <TooltipProvider delayDuration={300}>\n <div\n className=\"flex h-full min-h-0 w-full flex-1 overflow-hidden\"\n // Lets page chrome (the desktop title bar) follow the rail without a\n // document-wide `:has()` selector.\n data-rail-collapsed={chatList && !rail.isMobile && rail.collapsed ? \"true\" : undefined}\n >\n {/* Fixed desktop rail — user-resizable when expanded. */}\n {chatList && !rail.isMobile ? (\n <nav\n aria-label=\"Primary\"\n data-collapsed={rail.collapsed}\n style={rail.collapsed ? undefined : { width: resizing ? liveWidth! : rail.width }}\n className={cn(\n \"relative shrink-0 border-r border-border\",\n // Animate the collapse/expand toggle, but never while dragging — a\n // transition there would lag the handle behind the pointer.\n !resizing && \"motion-safe:transition-[width] motion-safe:duration-150\",\n rail.collapsed && \"w-[56px]\",\n )}\n >\n <RailBody />\n {/* The drag handle only exists on the expanded desktop rail; the\n collapsed strip and the mobile drawer are fixed-width. */}\n {!rail.collapsed ? <RailResizeHandle onStart={startResize} active={resizing} /> : null}\n </nav>\n ) : null}\n\n {/* Mobile overlay drawer. */}\n {chatList && rail.isMobile ? (\n <Sheet open={rail.drawerOpen} onOpenChange={rail.setDrawerOpen}>\n <SheetContent\n side=\"left\"\n showCloseButton={false}\n aria-label=\"Session navigation\"\n className=\"w-screen max-w-none gap-0 p-0 sm:w-[380px] sm:max-w-[90vw]\"\n onCloseAutoFocus={(event) => {\n event.preventDefault();\n rail.restoreDrawerFocus();\n }}\n >\n <SheetTitle className=\"sr-only\">Session navigation</SheetTitle>\n <SheetDescription className=\"sr-only\">\n Browse workspace sessions or open Workspace.\n </SheetDescription>\n <nav aria-label=\"Primary\" className=\"h-full\">\n <RailBody />\n </nav>\n </SheetContent>\n </Sheet>\n ) : null}\n\n {/* Main canvas. */}\n <div data-canvas className=\"flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden\">\n <SessionStartupProvider session={context.session}>\n <CanvasTopStrip hamburgerRef={hamburgerRef} />\n {canvasBanners}\n <div className=\"flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden\">{children}</div>\n </SessionStartupProvider>\n </div>\n </div>\n </TooltipProvider>\n );\n}\n\n/**\n * The slim canvas top strip. On mobile it always shows (hamburger + brand). On\n * session routes it also carries the session title/status, the connection and\n * lock pills, and the inspector toggle — moved here from the old top header.\n */\nfunction CanvasTopStrip({ hamburgerRef }: { hamburgerRef: RefObject<HTMLButtonElement | null> }) {\n const rail = useRail();\n const chatList = useSessionUiFeature(\"chatList\");\n const brand = useSessionUiFeature(\"brand\");\n const context = useAppContext();\n const pathname = useRouterState({\n select: (state) => state.location.pathname,\n });\n const isSessionRoute = /\\/sessions\\/[^/]+/.test(pathname);\n const showSessionActions = Boolean(context.session) && isSessionRoute;\n const sharedFeed = useSyncExternalStore(\n context.sessionEventFeedStore.subscribe,\n context.sessionEventFeedStore.getSnapshot,\n context.sessionEventFeedStore.getSnapshot,\n );\n const sessionEvents =\n sharedFeed && sharedFeed.sessionId === context.session?.id ? sharedFeed.events : [];\n // The route owns the only session stream. An empty shared feed is still an\n // authoritative shared feed, so this header can never fall back to self-streaming.\n const lineage = useSessionLineage(context.session?.id ?? null, {\n events: sessionEvents,\n pollIntervalMs: 30_000,\n });\n const ancestors = lineage.lineage?.ancestors ?? [];\n\n // On desktop, the strip only renders when there is something to show.\n if (!rail.isMobile && !showSessionActions) {\n return null;\n }\n\n const hamburger =\n chatList && rail.isMobile ? (\n <Button\n ref={hamburgerRef}\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label=\"Open navigation\"\n onClick={() => {\n // On phones the workspace inspector is also a full-screen surface.\n // Make the two overlays mutually exclusive instead of stacking one\n // modal beneath another and trapping the navigation out of sight.\n context.setInspectorOpen(false);\n rail.setDrawerOpen(true);\n }}\n className=\"size-11\"\n >\n <MenuIcon className=\"size-4\" />\n </Button>\n ) : null;\n\n // Session route: the full identity + status header (its own bar). The live\n // sandbox switcher and codex indicator flow in as slots so the header stays a\n // pure, screenshot-testable component.\n if (showSessionActions && context.session) {\n // Both schedule facts come from one read, so a newer lineage never pairs\n // with an older session read (an older server sends no upcoming flag).\n const lineageSchedules = lineage.lineage?.sessionHasSchedules;\n return (\n <SessionRouteHeader\n session={{\n ...context.session,\n ...(lineageSchedules === undefined\n ? {}\n : {\n hasSchedules: lineageSchedules,\n hasUpcomingSchedules:\n lineage.lineage?.sessionHasUpcomingSchedules ?? lineageSchedules,\n }),\n }}\n ancestors={ancestors}\n lineageLoading={lineage.loading}\n lineageError={lineage.error}\n events={sessionEvents}\n hamburger={hamburger}\n />\n );\n }\n\n // Mobile, off a session route: the slim brand strip. A host without\n // Opengeni's brand keeps only the menu button, or no strip at all.\n if (!brand && !hamburger) return null;\n return (\n <header className=\"flex h-12 shrink-0 items-center gap-3 border-b border-border bg-canvas/75 px-3 backdrop-blur sm:px-4\">\n {hamburger}\n {brand ? (\n <Link\n to=\"/workspaces/$workspaceId/sessions\"\n params={{ workspaceId: rail.workspaceId }}\n className=\"flex items-center gap-2 text-fg\"\n >\n <BrandMark className=\"w-5\" />\n <Wordmark className=\"text-[17px]\" />\n </Link>\n ) : null}\n </header>\n );\n}\n\n/** Session-route header: last-admitted model·effort, not the composer next pick. */\nfunction SessionRouteHeader({\n session,\n ancestors,\n lineageLoading,\n lineageError,\n events,\n hamburger,\n}: {\n session: Session;\n ancestors: SessionSummary[];\n lineageLoading: boolean;\n lineageError: Error | null;\n events: import(\"@opengeni/sdk\").SessionEvent[];\n hamburger: ReactNode;\n}) {\n const uiEvents = useUiEventTarget(\"document\");\n const rail = useRail();\n const context = useAppContext();\n const lastStarted = useLastStartedTurnPolicy(session.id, {\n events,\n pollIntervalMs: 15_000,\n includeServingModel: true,\n });\n const lastStartedModel = lastStarted.policy?.model;\n const lastStartedReasoningEffort = isIntelligenceEffort(lastStarted.policy?.reasoningEffort)\n ? lastStarted.policy.reasoningEffort\n : undefined;\n const lastStartedLatencyMode = lastStarted.policy?.latencyMode;\n // Wait for last-started fetch before trusting session.model — creation default\n // can be a different rail than the newest admitted turn.\n const policyReady = !lastStarted.loading;\n const displayModelId = policyReady ? lastStartedModel || session.model : session.model;\n const navigate = useNavigate();\n const catalog = useWorkspaceModelCatalog(session.workspaceId);\n const selectedRow = findPickerRow(catalog.rows, displayModelId);\n const policyLoading = lastStarted.loading || catalog.loading;\n const accountProvider = subscriptionAccountProvider(\n displayModelId,\n selectedRow?.catalog.credentialSource,\n );\n const repliesMute = useSessionRepliesMute(session);\n const sessionAdminAccess = useSessionAdminAccess(session);\n const adminAccess = useSessionUiFeature(\"adminAccess\") ? sessionAdminAccess : null;\n const dock = useSessionUiFeature(\"dock\");\n const archiveInFlight = useRef(false);\n const onArchive = useCallback(\n async (target: Session, archived: boolean) => {\n if (archiveInFlight.current) return;\n const accepted = context.captureWorkspaceInvocation(target.workspaceId);\n if (!accepted) return;\n archiveInFlight.current = true;\n try {\n const updated = await context.client.updateSessionArchive(target.workspaceId, target.id, {\n archived,\n expectedVersion: target.archiveVersion ?? 0,\n });\n if (!context.ownsWorkspaceInvocation(target.workspaceId, accepted)) return;\n context.setSession((current) =>\n current?.id === updated.id && current.workspaceId === updated.workspaceId\n ? applySessionArchiveProjection(current, updated)\n : current,\n );\n notifySessionListChanged({\n workspaceId: target.workspaceId,\n sessionId: target.id,\n archived: updated.archived,\n });\n toast.success(updated.archived ? \"Chat archived.\" : \"Chat restored.\");\n } catch (error) {\n if (!context.ownsWorkspaceInvocation(target.workspaceId, accepted)) return;\n toast.error(archived ? \"Couldn't archive the chat.\" : \"Couldn't restore the chat.\", {\n description: error instanceof Error ? error.message : String(error),\n });\n } finally {\n archiveInFlight.current = false;\n }\n },\n [context],\n );\n\n return (\n <SessionHeader\n session={session}\n ancestors={ancestors}\n onOpenSchedule={\n session.hasSchedules\n ? () =>\n void navigate({\n to: \"/workspaces/$workspaceId/schedules\",\n params: { workspaceId: session.workspaceId },\n search: { targetSessionId: session.id },\n })\n : null\n }\n lineageLoading={lineageLoading}\n lineageError={lineageError}\n connectionState={context.connectionState}\n status={session.status}\n keyAuthRequired={context.keyAuthRequired}\n onForgetAccessKey={context.forgetAccessKey}\n inspectorOpen={context.inspectorOpen}\n onToggleInspector={\n dock\n ? () => {\n if (!context.inspectorOpen && rail.isMobile) rail.setDrawerOpen(false);\n context.setInspectorOpen((open) => !open);\n }\n : undefined\n }\n onRename={context.updateSessionTitle}\n onPin={(target, pinned) =>\n context.updateSessionPin(target.workspaceId, target.id, pinned, target.pinVersion ?? 0)\n }\n onArchive={onArchive}\n repliesMute={repliesMute}\n adminAccess={adminAccess}\n onOpenUsageLimit={\n // The editor lives in the session panel's Agent tab.\n sessionUsageLimitCapability(context.clientConfig) === \"absent\" || !dock\n ? null\n : () => requestSessionUsageLimitEditor(uiEvents)\n }\n leading={hamburger}\n lastStartedModel={lastStartedModel}\n lastStartedReasoningEffort={lastStartedReasoningEffort}\n lastStartedLatencyMode={lastStartedLatencyMode}\n billingClass={selectedRow?.billingClass}\n modelLabel={selectedRow?.label}\n modelLogoUrl={selectedRow?.catalog.logoUrl}\n policyLoading={policyLoading}\n accessSlot={\n session.tenancy ? (\n <Suspense fallback={null}>\n <LazySessionTenancyRouteControl session={session} events={events} />\n </Suspense>\n ) : isPersonalWorkspace(\n context.workspaces.find((candidate) => candidate.id === session.workspaceId) ?? null,\n context.managedSelfContext,\n ) ? (\n // Without a tenancy record there is no access control to show, but a\n // Personal workspace chat is still private: say so, read-only.\n <PrivateSessionIndicator />\n ) : null\n }\n sandboxSlot={\n sessionSupportsFleetSwitching(session.sandboxBackend) ? (\n <SessionComputeIndicator sessionId={session.id} sandboxBackend={session.sandboxBackend} />\n ) : null\n }\n accountSlot={\n policyReady && accountProvider ? (\n <SubscriptionAccountIndicator\n workspaceId={session.workspaceId}\n sessionId={session.id}\n organizationId={\n context.workspaces.find((candidate) => candidate.id === session.workspaceId)\n ?.accountId ?? null\n }\n provider={accountProvider}\n servingTurnId={lastStarted.policy?.turnId}\n events={events}\n />\n ) : null\n }\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,SAAS,UAAU,oBAAoB,qBAAqB;AAC5D;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AAsFG,SAaE,UAbF,KA4BM,YA5BN;AAjCV,IAAM,iCAAiC;AAAA,EAAK,MAC1C,OAAO,qDAAoC,EAAE,KAAK,CAAC,EAAE,2BAA2B,OAAO;AAAA,IACrF,SAAS;AAAA,EACX,EAAE;AACJ;AAGO,SAAS,WAAW;AACzB,QAAM,OAAO,QAAQ;AACrB,QAAM,EAAE,UAAU,sBAAsB,WAAW,IAAI,WAAW,wBAAwB;AAC1F,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAmC,UAAU;AACvF,QAAM,iBAAiB,OAA0B,IAAI;AACrD,QAAM,kBAAkB,OAA0B,IAAI;AAEtD,QAAM,cAAc,cAAc,MAAM,EAAE,WAAW,KAAK,EAAE,CAAC;AAC7D,YAAU,MAAM;AACd,QAAI,KAAK,WAAY,kBAAiB,UAAU;AAAA,EAClD,GAAG,CAAC,KAAK,UAAU,CAAC;AACpB,QAAM,gBAAgB,CAAC,YAAsC;AAC3D,qBAAiB,OAAO;AACxB,WAAO;AAAA,MAAsB,OAC1B,YAAY,aAAa,iBAAiB,iBAAiB,SAAS,MAAM;AAAA,IAC7E;AAAA,EACF;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAS;AAAA,MACT,WAAU;AAAA,MAIT;AAAA,+BACC,oBAAC,SAAI,6BAAyB,MAAC,WAAU,+BACvC,8BAAC,cAAW,cAAc,OAAO,GACnC,IACE;AAAA,QACJ;AAAA,UAAC;AAAA;AAAA,YACC,6BAAyB;AAAA,YACzB,WAAU;AAAA,YAEV,+BAAC,SAAI,WAAU,4BACZ;AAAA,eAAC,uBAAuB,oBAAC,cAAW,IAAK;AAAA,cAEzC,KAAK,aAAa,uBAAuB,WAAW;AAAA,cAEpD,KAAK,YAAY,uBAChB,iCACE;AAAA;AAAA,kBAAC;AAAA;AAAA,oBACC,MAAK;AAAA,oBACL,cAAW;AAAA,oBACX,WAAW,CAAC,UAAU;AACpB,0BAAI,MAAM,QAAQ,eAAe,MAAM,QAAQ,QAAQ;AACrD,8BAAM,eAAe;AACrB,sCAAc,UAAU;AAAA,sBAC1B,WAAW,MAAM,QAAQ,gBAAgB,MAAM,QAAQ,OAAO;AAC5D,8BAAM,eAAe;AACrB,sCAAc,WAAW;AAAA,sBAC3B;AAAA,oBACF;AAAA,oBACA,WAAU;AAAA,oBAEV;AAAA;AAAA,wBAAC;AAAA;AAAA,0BACC,KAAK;AAAA,0BACL,IAAI,GAAG,WAAW;AAAA,0BAClB,MAAK;AAAA,0BACL,MAAK;AAAA,0BACL,iBAAe,kBAAkB;AAAA,0BACjC,iBAAe,GAAG,WAAW;AAAA,0BAC7B,UAAU,kBAAkB,aAAa,IAAI;AAAA,0BAC7C,SAAS,MAAM,iBAAiB,UAAU;AAAA,0BAC1C,WAAW;AAAA,4BACT;AAAA,4BACA,kBAAkB,aACd,mCACA;AAAA,0BACN;AAAA,0BAEA;AAAA,gDAAC,sBAAmB,WAAU,UAAS;AAAA,4BAAE;AAAA;AAAA;AAAA,sBAE3C;AAAA,sBACA;AAAA,wBAAC;AAAA;AAAA,0BACC,KAAK;AAAA,0BACL,IAAI,GAAG,WAAW;AAAA,0BAClB,MAAK;AAAA,0BACL,MAAK;AAAA,0BACL,iBAAe,kBAAkB;AAAA,0BACjC,iBAAe,GAAG,WAAW;AAAA,0BAC7B,UAAU,kBAAkB,cAAc,IAAI;AAAA,0BAC9C,SAAS,MAAM,iBAAiB,WAAW;AAAA,0BAC3C,WAAW;AAAA,4BACT;AAAA,4BACA,kBAAkB,cACd,mCACA;AAAA,0BACN;AAAA,0BAEA;AAAA,gDAAC,iBAAc,WAAU,UAAS;AAAA,4BAAE;AAAA;AAAA;AAAA,sBAEtC;AAAA;AAAA;AAAA,gBACF;AAAA,gBACC,kBAAkB,aACjB;AAAA,kBAAC;AAAA;AAAA,oBACC,IAAI,GAAG,WAAW;AAAA,oBAClB,MAAK;AAAA,oBACL,mBAAiB,GAAG,WAAW;AAAA,oBAC/B,WAAU;AAAA,oBAEV;AAAA,0CAAC,cAAW;AAAA,sBACZ,oBAAC,eAAY;AAAA;AAAA;AAAA,gBACf,IAEA;AAAA,kBAAC;AAAA;AAAA,oBACC,IAAI,GAAG,WAAW;AAAA,oBAClB,MAAK;AAAA,oBACL,mBAAiB,GAAG,WAAW;AAAA,oBAC/B,WAAU;AAAA,oBAET;AAAA;AAAA,gBACH;AAAA,iBAEJ,IAEA,iCAGE;AAAA,oCAAC,cAAW;AAAA,gBACZ,oBAAC,SAAI,WAAU,+BACZ,eAAK,YAAY,oBAAC,2BAAwB,IAAK,oBAAC,eAAY,GAC/D;AAAA,iBACF;AAAA,eAEJ;AAAA;AAAA,QACF;AAAA,QAKC,aACC,oBAAC,SAAI,oBAAgB,MAAC,WAAU,iDAC7B,sBACH,IACE;AAAA;AAAA;AAAA,EACN;AAEJ;AAUA,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA;AACF,GAGG;AACD,QAAM,OAAO,QAAQ;AACrB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,oBAAiB;AAAA,MACjB,cAAW;AAAA,MACX,eAAe;AAAA,MACf,eAAe,MAAM,KAAK,SAAS,kBAAkB;AAAA,MACrD,WAAU;AAAA,MAEV;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA,SACI,sBACA;AAAA,UACN;AAAA;AAAA,MACF;AAAA;AAAA,EACF;AAEJ;AAEA,IAAM,WAA8B,CAAC;AAE9B,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA,QAAQ;AACV,GAGG;AACD,SACE,oBAAC,yBAAyB,UAAzB,EAAkC,OAAO,OACxC,8BAAC,qBAAmB,UAAS,GAC/B;AAEJ;AAEA,SAAS,kBAAkB,EAAE,SAAS,GAA4B;AAChE,QAAM,OAAO,QAAQ;AACrB,QAAM,WAAW,oBAAoB,UAAU;AAC/C,QAAM,UAAU,cAAc;AAC9B,QAAM,EAAE,cAAc,IAAI,WAAW,wBAAwB;AAC7D,QAAM,WAAW,eAAe;AAAA,IAC9B,QAAQ,CAAC,UAAU,MAAM,SAAS;AAAA,EACpC,CAAC;AAID,QAAM,eAAe,KAAK;AAK1B,QAAM,CAAC,WAAW,YAAY,IAAI,SAAwB,IAAI;AAC9D,QAAM,WAAW,cAAc;AAK/B,QAAM,eAAe,OAA4B,IAAI;AACrD,QAAM,cAAc;AAAA,IAClB,CAAC,UAA6B;AAE5B,UAAI,MAAM,WAAW,GAAG;AACtB;AAAA,MACF;AACA,YAAM,eAAe;AACrB,YAAM,SAAS,MAAM;AACrB,YAAM,aAAa,KAAK;AACxB,YAAM,QAAQ,CAAC,MACb,KAAK,IAAI,gBAAgB,KAAK,IAAI,gBAAgB,KAAK,MAAM,CAAC,CAAC,CAAC;AAClE,mBAAa,UAAU;AACvB,eAAS,KAAK,MAAM,aAAa;AACjC,eAAS,KAAK,MAAM,SAAS;AAC7B,YAAM,SAAS,CAAC,cACd,aAAa,MAAM,cAAc,UAAU,UAAU,OAAO,CAAC;AAC/D,YAAM,WAAW,MAAM;AACrB,eAAO,oBAAoB,eAAe,MAAM;AAChD,eAAO,oBAAoB,aAAa,IAAI;AAC5C,iBAAS,KAAK,MAAM,aAAa;AACjC,iBAAS,KAAK,MAAM,SAAS;AAC7B,qBAAa,UAAU;AAAA,MACzB;AACA,YAAM,OAAO,CAAC,YAA0B;AACtC,aAAK,SAAS,MAAM,cAAc,QAAQ,UAAU,OAAO,CAAC;AAC5D,qBAAa,IAAI;AACjB,iBAAS;AAAA,MACX;AACA,mBAAa,UAAU;AACvB,aAAO,iBAAiB,eAAe,MAAM;AAC7C,aAAO,iBAAiB,aAAa,IAAI;AAAA,IAC3C;AAAA,IACA,CAAC,IAAI;AAAA,EACP;AAGA,YAAU,MAAM,MAAM,aAAa,UAAU,GAAG,CAAC,CAAC;AAGlD,YAAU,MAAM;AACd,QAAI,KAAK,YAAY;AACnB,WAAK,cAAc,KAAK;AAAA,IAC1B;AAAA,EAEF,GAAG,CAAC,QAAQ,CAAC;AAEb,SACE,oBAAC,mBAAgB,eAAe,KAC9B;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MAGV,uBAAqB,YAAY,CAAC,KAAK,YAAY,KAAK,YAAY,SAAS;AAAA,MAG5E;AAAA,oBAAY,CAAC,KAAK,WACjB;AAAA,UAAC;AAAA;AAAA,YACC,cAAW;AAAA,YACX,kBAAgB,KAAK;AAAA,YACrB,OAAO,KAAK,YAAY,SAAY,EAAE,OAAO,WAAW,YAAa,KAAK,MAAM;AAAA,YAChF,WAAW;AAAA,cACT;AAAA;AAAA;AAAA,cAGA,CAAC,YAAY;AAAA,cACb,KAAK,aAAa;AAAA,YACpB;AAAA,YAEA;AAAA,kCAAC,YAAS;AAAA,cAGT,CAAC,KAAK,YAAY,oBAAC,oBAAiB,SAAS,aAAa,QAAQ,UAAU,IAAK;AAAA;AAAA;AAAA,QACpF,IACE;AAAA,QAGH,YAAY,KAAK,WAChB,oBAAC,SAAM,MAAM,KAAK,YAAY,cAAc,KAAK,eAC/C;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,iBAAiB;AAAA,YACjB,cAAW;AAAA,YACX,WAAU;AAAA,YACV,kBAAkB,CAAC,UAAU;AAC3B,oBAAM,eAAe;AACrB,mBAAK,mBAAmB;AAAA,YAC1B;AAAA,YAEA;AAAA,kCAAC,cAAW,WAAU,WAAU,gCAAkB;AAAA,cAClD,oBAAC,oBAAiB,WAAU,WAAU,0DAEtC;AAAA,cACA,oBAAC,SAAI,cAAW,WAAU,WAAU,UAClC,8BAAC,YAAS,GACZ;AAAA;AAAA;AAAA,QACF,GACF,IACE;AAAA,QAGJ,oBAAC,SAAI,eAAW,MAAC,WAAU,wDACzB,+BAAC,0BAAuB,SAAS,QAAQ,SACvC;AAAA,8BAAC,kBAAe,cAA4B;AAAA,UAC3C;AAAA,UACD,oBAAC,SAAI,WAAU,wDAAwD,UAAS;AAAA,WAClF,GACF;AAAA;AAAA;AAAA,EACF,GACF;AAEJ;AAOA,SAAS,eAAe,EAAE,aAAa,GAA0D;AAC/F,QAAM,OAAO,QAAQ;AACrB,QAAM,WAAW,oBAAoB,UAAU;AAC/C,QAAM,QAAQ,oBAAoB,OAAO;AACzC,QAAM,UAAU,cAAc;AAC9B,QAAM,WAAW,eAAe;AAAA,IAC9B,QAAQ,CAAC,UAAU,MAAM,SAAS;AAAA,EACpC,CAAC;AACD,QAAM,iBAAiB,oBAAoB,KAAK,QAAQ;AACxD,QAAM,qBAAqB,QAAQ,QAAQ,OAAO,KAAK;AACvD,QAAM,aAAa;AAAA,IACjB,QAAQ,sBAAsB;AAAA,IAC9B,QAAQ,sBAAsB;AAAA,IAC9B,QAAQ,sBAAsB;AAAA,EAChC;AACA,QAAM,gBACJ,cAAc,WAAW,cAAc,QAAQ,SAAS,KAAK,WAAW,SAAS,CAAC;AAGpF,QAAM,UAAU,kBAAkB,QAAQ,SAAS,MAAM,MAAM;AAAA,IAC7D,QAAQ;AAAA,IACR,gBAAgB;AAAA,EAClB,CAAC;AACD,QAAM,YAAY,QAAQ,SAAS,aAAa,CAAC;AAGjD,MAAI,CAAC,KAAK,YAAY,CAAC,oBAAoB;AACzC,WAAO;AAAA,EACT;AAEA,QAAM,YACJ,YAAY,KAAK,WACf;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,cAAW;AAAA,MACX,SAAS,MAAM;AAIb,gBAAQ,iBAAiB,KAAK;AAC9B,aAAK,cAAc,IAAI;AAAA,MACzB;AAAA,MACA,WAAU;AAAA,MAEV,8BAAC,YAAS,WAAU,UAAS;AAAA;AAAA,EAC/B,IACE;AAKN,MAAI,sBAAsB,QAAQ,SAAS;AAGzC,UAAM,mBAAmB,QAAQ,SAAS;AAC1C,WACE;AAAA,MAAC;AAAA;AAAA,QACC,SAAS;AAAA,UACP,GAAG,QAAQ;AAAA,UACX,GAAI,qBAAqB,SACrB,CAAC,IACD;AAAA,YACE,cAAc;AAAA,YACd,sBACE,QAAQ,SAAS,+BAA+B;AAAA,UACpD;AAAA,QACN;AAAA,QACA;AAAA,QACA,gBAAgB,QAAQ;AAAA,QACxB,cAAc,QAAQ;AAAA,QACtB,QAAQ;AAAA,QACR;AAAA;AAAA,IACF;AAAA,EAEJ;AAIA,MAAI,CAAC,SAAS,CAAC,UAAW,QAAO;AACjC,SACE,qBAAC,YAAO,WAAU,wGACf;AAAA;AAAA,IACA,QACC;AAAA,MAAC;AAAA;AAAA,QACC,IAAG;AAAA,QACH,QAAQ,EAAE,aAAa,KAAK,YAAY;AAAA,QACxC,WAAU;AAAA,QAEV;AAAA,8BAAC,aAAU,WAAU,OAAM;AAAA,UAC3B,oBAAC,YAAS,WAAU,eAAc;AAAA;AAAA;AAAA,IACpC,IACE;AAAA,KACN;AAEJ;AAGA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAOG;AACD,QAAM,WAAW,iBAAiB,UAAU;AAC5C,QAAM,OAAO,QAAQ;AACrB,QAAM,UAAU,cAAc;AAC9B,QAAM,cAAc,yBAAyB,QAAQ,IAAI;AAAA,IACvD;AAAA,IACA,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,EACvB,CAAC;AACD,QAAM,mBAAmB,YAAY,QAAQ;AAC7C,QAAM,6BAA6B,qBAAqB,YAAY,QAAQ,eAAe,IACvF,YAAY,OAAO,kBACnB;AACJ,QAAM,yBAAyB,YAAY,QAAQ;AAGnD,QAAM,cAAc,CAAC,YAAY;AACjC,QAAM,iBAAiB,cAAc,oBAAoB,QAAQ,QAAQ,QAAQ;AACjF,QAAM,WAAW,YAAY;AAC7B,QAAM,UAAU,yBAAyB,QAAQ,WAAW;AAC5D,QAAM,cAAc,cAAc,QAAQ,MAAM,cAAc;AAC9D,QAAM,gBAAgB,YAAY,WAAW,QAAQ;AACrD,QAAM,kBAAkB;AAAA,IACtB;AAAA,IACA,aAAa,QAAQ;AAAA,EACvB;AACA,QAAM,cAAc,sBAAsB,OAAO;AACjD,QAAM,qBAAqB,sBAAsB,OAAO;AACxD,QAAM,cAAc,oBAAoB,aAAa,IAAI,qBAAqB;AAC9E,QAAM,OAAO,oBAAoB,MAAM;AACvC,QAAM,kBAAkB,OAAO,KAAK;AACpC,QAAM,YAAY;AAAA,IAChB,OAAO,QAAiB,aAAsB;AAC5C,UAAI,gBAAgB,QAAS;AAC7B,YAAM,WAAW,QAAQ,2BAA2B,OAAO,WAAW;AACtE,UAAI,CAAC,SAAU;AACf,sBAAgB,UAAU;AAC1B,UAAI;AACF,cAAM,UAAU,MAAM,QAAQ,OAAO,qBAAqB,OAAO,aAAa,OAAO,IAAI;AAAA,UACvF;AAAA,UACA,iBAAiB,OAAO,kBAAkB;AAAA,QAC5C,CAAC;AACD,YAAI,CAAC,QAAQ,wBAAwB,OAAO,aAAa,QAAQ,EAAG;AACpE,gBAAQ;AAAA,UAAW,CAAC,YAClB,SAAS,OAAO,QAAQ,MAAM,QAAQ,gBAAgB,QAAQ,cAC1D,8BAA8B,SAAS,OAAO,IAC9C;AAAA,QACN;AACA,iCAAyB;AAAA,UACvB,aAAa,OAAO;AAAA,UACpB,WAAW,OAAO;AAAA,UAClB,UAAU,QAAQ;AAAA,QACpB,CAAC;AACD,cAAM,QAAQ,QAAQ,WAAW,mBAAmB,gBAAgB;AAAA,MACtE,SAAS,OAAO;AACd,YAAI,CAAC,QAAQ,wBAAwB,OAAO,aAAa,QAAQ,EAAG;AACpE,cAAM,MAAM,WAAW,+BAA+B,8BAA8B;AAAA,UAClF,aAAa,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,QACpE,CAAC;AAAA,MACH,UAAE;AACA,wBAAgB,UAAU;AAAA,MAC5B;AAAA,IACF;AAAA,IACA,CAAC,OAAO;AAAA,EACV;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,gBACE,QAAQ,eACJ,MACE,KAAK,SAAS;AAAA,QACZ,IAAI;AAAA,QACJ,QAAQ,EAAE,aAAa,QAAQ,YAAY;AAAA,QAC3C,QAAQ,EAAE,iBAAiB,QAAQ,GAAG;AAAA,MACxC,CAAC,IACH;AAAA,MAEN;AAAA,MACA;AAAA,MACA,iBAAiB,QAAQ;AAAA,MACzB,QAAQ,QAAQ;AAAA,MAChB,iBAAiB,QAAQ;AAAA,MACzB,mBAAmB,QAAQ;AAAA,MAC3B,eAAe,QAAQ;AAAA,MACvB,mBACE,OACI,MAAM;AACJ,YAAI,CAAC,QAAQ,iBAAiB,KAAK,SAAU,MAAK,cAAc,KAAK;AACrE,gBAAQ,iBAAiB,CAAC,SAAS,CAAC,IAAI;AAAA,MAC1C,IACA;AAAA,MAEN,UAAU,QAAQ;AAAA,MAClB,OAAO,CAAC,QAAQ,WACd,QAAQ,iBAAiB,OAAO,aAAa,OAAO,IAAI,QAAQ,OAAO,cAAc,CAAC;AAAA,MAExF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,QAEE,4BAA4B,QAAQ,YAAY,MAAM,YAAY,CAAC,OAC/D,OACA,MAAM,+BAA+B,QAAQ;AAAA;AAAA,MAEnD,SAAS;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAc,aAAa;AAAA,MAC3B,YAAY,aAAa;AAAA,MACzB,cAAc,aAAa,QAAQ;AAAA,MACnC;AAAA,MACA,YACE,QAAQ,UACN,oBAAC,YAAS,UAAU,MAClB,8BAAC,kCAA+B,SAAkB,QAAgB,GACpE,IACE;AAAA,QACA,QAAQ,WAAW,KAAK,CAAC,cAAc,UAAU,OAAO,QAAQ,WAAW,KAAK;AAAA,QAChF,QAAQ;AAAA,MACV;AAAA;AAAA;AAAA,QAGA,oBAAC,2BAAwB;AAAA,UACvB;AAAA,MAEN,aACE,8BAA8B,QAAQ,cAAc,IAClD,oBAAC,2BAAwB,WAAW,QAAQ,IAAI,gBAAgB,QAAQ,gBAAgB,IACtF;AAAA,MAEN,aACE,eAAe,kBACb;AAAA,QAAC;AAAA;AAAA,UACC,aAAa,QAAQ;AAAA,UACrB,WAAW,QAAQ;AAAA,UACnB,gBACE,QAAQ,WAAW,KAAK,CAAC,cAAc,UAAU,OAAO,QAAQ,WAAW,GACvE,aAAa;AAAA,UAEnB,UAAU;AAAA,UACV,eAAe,YAAY,QAAQ;AAAA,UACnC;AAAA;AAAA,MACF,IACE;AAAA;AAAA,EAER;AAEJ;","names":[]}
|
|
@@ -2,24 +2,24 @@
|
|
|
2
2
|
import {
|
|
3
3
|
requestQueueDraftEdit
|
|
4
4
|
} from "./chunk-22GTC4MZ.js";
|
|
5
|
-
import {
|
|
6
|
-
SESSION_STATUS_META,
|
|
7
|
-
StatusDot
|
|
8
|
-
} from "./chunk-FH75NNLB.js";
|
|
9
5
|
import {
|
|
10
6
|
ProviderRecoveryNotice
|
|
11
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-MZGKQ5WV.js";
|
|
12
8
|
import {
|
|
13
9
|
UserMessageBody,
|
|
14
10
|
UserMessageDisclosureProvider
|
|
15
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-4BOLIZ7Y.js";
|
|
16
12
|
import {
|
|
17
13
|
MessageSenderContext,
|
|
18
14
|
MessageSenderSlot
|
|
19
15
|
} from "./chunk-KDQAWRYZ.js";
|
|
16
|
+
import {
|
|
17
|
+
SESSION_STATUS_META,
|
|
18
|
+
StatusDot
|
|
19
|
+
} from "./chunk-OZ5NAXCP.js";
|
|
20
20
|
import {
|
|
21
21
|
OpenGeniProvider
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-XIQDCQX7.js";
|
|
23
23
|
import {
|
|
24
24
|
ActivityNoteTextContext,
|
|
25
25
|
ActivityRail,
|
|
@@ -54,24 +54,24 @@ import {
|
|
|
54
54
|
useFoldMemory,
|
|
55
55
|
useStartupDetails,
|
|
56
56
|
useTurnSettleOpen
|
|
57
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-J5HZBHU4.js";
|
|
58
58
|
import {
|
|
59
59
|
ChatComposer
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-TAWFXRXB.js";
|
|
61
61
|
import {
|
|
62
62
|
TimelineAnnotationCards,
|
|
63
63
|
TimelineAnnotationsChip
|
|
64
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-LOCDYMD6.js";
|
|
65
65
|
import {
|
|
66
66
|
TimelineAnnotationSourceRootContext
|
|
67
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-LC5HE7PZ.js";
|
|
68
68
|
import {
|
|
69
69
|
invokeOlderHistoryLoaderWithReceiptCapture,
|
|
70
70
|
useGoal,
|
|
71
71
|
useNewConversation,
|
|
72
72
|
useSessionConversation,
|
|
73
73
|
useSessionReadAcknowledgement
|
|
74
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-52XIYULR.js";
|
|
75
75
|
import {
|
|
76
76
|
buildTimeline,
|
|
77
77
|
compactionFailureDetails,
|
|
@@ -97,7 +97,7 @@ import {
|
|
|
97
97
|
isTimelineSearchTarget,
|
|
98
98
|
useSecretsUi,
|
|
99
99
|
useTimelineSearchNavigation
|
|
100
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-DXYARXK3.js";
|
|
101
101
|
import {
|
|
102
102
|
prefersReducedMotion
|
|
103
103
|
} from "./chunk-OYQQJL3J.js";
|
|
@@ -125,7 +125,7 @@ import {
|
|
|
125
125
|
} from "./chunk-4U7SHFQ2.js";
|
|
126
126
|
import {
|
|
127
127
|
ThisComputerCard
|
|
128
|
-
} from "./chunk-
|
|
128
|
+
} from "./chunk-PR42VIVY.js";
|
|
129
129
|
import {
|
|
130
130
|
QUESTION_NAV_MARGIN_PX,
|
|
131
131
|
answersFromDrafts,
|
|
@@ -181,7 +181,7 @@ import {
|
|
|
181
181
|
} from "./chunk-IGVL3ELX.js";
|
|
182
182
|
import {
|
|
183
183
|
ModelPolicyPicker
|
|
184
|
-
} from "./chunk-
|
|
184
|
+
} from "./chunk-CDBGAAJY.js";
|
|
185
185
|
import {
|
|
186
186
|
LightboxProvider,
|
|
187
187
|
ShimmerText,
|
|
@@ -189,7 +189,7 @@ import {
|
|
|
189
189
|
TooltipContent,
|
|
190
190
|
TooltipProvider,
|
|
191
191
|
TooltipTrigger
|
|
192
|
-
} from "./chunk-
|
|
192
|
+
} from "./chunk-MASBMJ2M.js";
|
|
193
193
|
import {
|
|
194
194
|
useErrorMessage
|
|
195
195
|
} from "./chunk-CM7LVUKC.js";
|
|
@@ -207,7 +207,7 @@ import {
|
|
|
207
207
|
import {
|
|
208
208
|
SingleSendWording,
|
|
209
209
|
useOpenGeniText
|
|
210
|
-
} from "./chunk-
|
|
210
|
+
} from "./chunk-ZEVJGMNB.js";
|
|
211
211
|
|
|
212
212
|
// src/components/human-input-form.tsx
|
|
213
213
|
import { ChevronDownIcon, ChevronUpIcon, MessageCircleQuestionIcon } from "lucide-react";
|
|
@@ -2859,8 +2859,8 @@ function SessionUsageLimitRow({ stop }) {
|
|
|
2859
2859
|
|
|
2860
2860
|
// src/components/message-timeline.tsx
|
|
2861
2861
|
import { Fragment as Fragment5, jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
2862
|
-
var TimelineAnnotationSelection = lazy(() => import("./timeline-annotation-selection-
|
|
2863
|
-
var TimelineAnnotationMarkers = lazy(() => import("./timeline-annotation-markers-
|
|
2862
|
+
var TimelineAnnotationSelection = lazy(() => import("./timeline-annotation-selection-DRQSTJOV.js"));
|
|
2863
|
+
var TimelineAnnotationMarkers = lazy(() => import("./timeline-annotation-markers-NDHS7MCK.js"));
|
|
2864
2864
|
var PIN_THRESHOLD_PX = 48;
|
|
2865
2865
|
var JUMP_TO_LATEST_CATCHUP_DEBT_PX = 240;
|
|
2866
2866
|
var NAV_BUTTON_CLASS = "pointer-events-auto relative inline-flex size-8 items-center justify-center rounded-full border border-og-border bg-og-surface-3/90 text-og-fg-muted shadow-og-md backdrop-blur hover:border-og-border-strong hover:text-og-fg focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-og-accent pointer-coarse:before:absolute pointer-coarse:before:-inset-1.5 pointer-coarse:before:content-['']";
|
|
@@ -8028,7 +8028,7 @@ function useRealtimeVoiceModels(client, workspaceId, enabled) {
|
|
|
8028
8028
|
useEffect11(() => {
|
|
8029
8029
|
if (!enabled || !workspaceId) return;
|
|
8030
8030
|
const controller = new AbortController();
|
|
8031
|
-
void import("./session-realtime-
|
|
8031
|
+
void import("./session-realtime-OHBMODNX.js").then(async ({ loadRealtimeModelCatalog }) => {
|
|
8032
8032
|
const models = await loadRealtimeModelCatalog(
|
|
8033
8033
|
client,
|
|
8034
8034
|
workspaceId,
|
|
@@ -8940,9 +8940,9 @@ function GoalChrome({
|
|
|
8940
8940
|
});
|
|
8941
8941
|
return /* @__PURE__ */ jsx16(SessionChrome, { ...chrome, goal });
|
|
8942
8942
|
}
|
|
8943
|
-
var LazyEmbeddedRealtimeVoice = lazy2(() => import("./embedded-voice-
|
|
8943
|
+
var LazyEmbeddedRealtimeVoice = lazy2(() => import("./embedded-voice-GHDRLCFX.js"));
|
|
8944
8944
|
var LazyChatInteractiveBlock = lazy2(
|
|
8945
|
-
() => import("./chat-interactive-block-
|
|
8945
|
+
() => import("./chat-interactive-block-JGYSW4KB.js").then((module) => ({
|
|
8946
8946
|
default: module.ChatInteractiveBlock
|
|
8947
8947
|
}))
|
|
8948
8948
|
);
|
|
@@ -9052,7 +9052,7 @@ function useComposerTranscription(client, workspaceId, capability) {
|
|
|
9052
9052
|
import { OpenGeniApiError as OpenGeniApiError3 } from "@opengeni/sdk";
|
|
9053
9053
|
import { lazy as lazy3, Suspense as Suspense4, useRef as useRef12 } from "react";
|
|
9054
9054
|
import { Fragment as Fragment8, jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
9055
|
-
var LazyNewVoice = lazy3(() => import("./embedded-new-voice-
|
|
9055
|
+
var LazyNewVoice = lazy3(() => import("./embedded-new-voice-KILV3RYM.js"));
|
|
9056
9056
|
var DEFAULT_LABELS = (t) => ({
|
|
9057
9057
|
title: t("newConversation.howCanIHelp"),
|
|
9058
9058
|
placeholder: t("newConversation.askAnything"),
|
|
@@ -9227,4 +9227,4 @@ export {
|
|
|
9227
9227
|
NewConversation,
|
|
9228
9228
|
NewConversationView
|
|
9229
9229
|
};
|
|
9230
|
-
//# sourceMappingURL=chunk-
|
|
9230
|
+
//# sourceMappingURL=chunk-B7ZKSROO.js.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
classifyProviderFailure,
|
|
4
4
|
failedSessionCopy
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-63PQKTTT.js";
|
|
6
6
|
import {
|
|
7
7
|
setTurnFailureStepSink
|
|
8
8
|
} from "./chunk-NK63ZTSD.js";
|
|
@@ -168,4 +168,4 @@ export {
|
|
|
168
168
|
createTurnFailureJourney,
|
|
169
169
|
turnFailureJourney
|
|
170
170
|
};
|
|
171
|
-
//# sourceMappingURL=chunk-
|
|
171
|
+
//# sourceMappingURL=chunk-BYJZUCOQ.js.map
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
} from "./chunk-TXS65BB2.js";
|
|
32
32
|
import {
|
|
33
33
|
useOpenGeniText
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-ZEVJGMNB.js";
|
|
35
35
|
|
|
36
36
|
// src/components/model-policy-picker.tsx
|
|
37
37
|
import { modelDisplayName, modelLogoUrl } from "@opengeni/sdk/model-display";
|
|
@@ -54,7 +54,7 @@ import {
|
|
|
54
54
|
} from "react";
|
|
55
55
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
56
56
|
var LazyModelPolicyPickerMenu = lazy(
|
|
57
|
-
() => import("./model-policy-picker-menu-
|
|
57
|
+
() => import("./model-policy-picker-menu-5ALKUJMR.js").then(({ ModelPolicyPickerPopover }) => ({
|
|
58
58
|
default: ModelPolicyPickerPopover
|
|
59
59
|
}))
|
|
60
60
|
);
|
|
@@ -356,4 +356,4 @@ export {
|
|
|
356
356
|
PickerAnimatedPage,
|
|
357
357
|
ModelPolicyPicker
|
|
358
358
|
};
|
|
359
|
-
//# sourceMappingURL=chunk-
|
|
359
|
+
//# sourceMappingURL=chunk-CDBGAAJY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/model-policy-picker.tsx"],"sourcesContent":["import { ClaudeMark } from \"./claude-mark\";\nimport { GrokMark } from \"./grok-mark\";\nimport { ChatGptMark, ModelMark, modelHasMark } from \"./model-mark\";\nimport { modelDisplayName, modelLogoUrl } from \"@opengeni/sdk/model-display\";\nimport type { ClientModel, LatencyMode, ReasoningEffort } from \"@opengeni/sdk\";\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n Globe2Icon,\n KeyRoundIcon,\n SparklesIcon,\n ZapIcon,\n} from \"lucide-react\";\nimport { motion, useReducedMotion } from \"motion/react\";\nimport {\n Suspense,\n lazy,\n useMemo,\n useId,\n useState,\n type CSSProperties,\n type ReactNode,\n} from \"react\";\nimport { cn } from \"../lib/cn\";\nimport {\n billingClassForMissingSelection,\n defaultModelPolicyPickerMessages,\n effectiveRows as sharedEffectiveRows,\n groupPresentationFor,\n SCOPED_BILLING_HINTS,\n type ModelPickerGroupPresentation,\n type ModelPolicyPickerMessages,\n} from \"../model-picker-model\";\nimport { MENU_CHEVRON_CLASS } from \"../lib/menu-styles\";\nimport { usePortalTokenSource, usePortalTokenStyle } from \"../lib/use-portal-token-style\";\nimport {\n findPickerRow,\n labelReasoningEffort,\n modelOffersEffortChoice,\n type PickerBillingClass,\n type PickerModelRow,\n} from \"../model-policy\";\nimport { useOpenGeniText, type OpenGeniText } from \"../messages/runtime\";\n\nconst LazyModelPolicyPickerMenu = lazy(() =>\n import(\"./model-policy-picker-menu\").then(({ ModelPolicyPickerPopover }) => ({\n default: ModelPolicyPickerPopover,\n })),\n);\n\ntype ClientPickerModelRow = PickerModelRow<ClientModel>;\n\n/** Presentation only; never changes model identity, billing or availability. */\nexport type ModelPolicyPickerGroupPresentation = ModelPickerGroupPresentation<ReactNode>;\n\nexport { defaultModelPolicyPickerMessages, groupPresentationFor, SCOPED_BILLING_HINTS };\nexport type { ModelPolicyPickerMessages };\n\nexport type ModelPolicyPickerProps = {\n /** Host branding for payment-source groups, shared by menu and trigger. */\n groupPresentation?: ModelPolicyPickerGroupPresentation | undefined;\n /** Lightweight deployment models. Catalog rows take precedence when supplied. */\n models?: ClientModel[] | undefined;\n /** Warn only when the draft actually contains images this model cannot view. */\n hasImageAttachments?: boolean | undefined;\n /** Catalog-backed rows with availability and billing-class truth. */\n rows?: PickerModelRow[] | undefined;\n model: string;\n effort: ReasoningEffort;\n latencyMode: LatencyMode;\n disabled?: boolean | undefined;\n loading?: boolean | undefined;\n error?: string | null | undefined;\n /** Controlled menu state. Omit for the built-in uncontrolled behavior. */\n open?: boolean | undefined;\n /** Initial menu state when `open` is uncontrolled. */\n defaultOpen?: boolean | undefined;\n onOpenChange?: ((open: boolean) => void) | undefined;\n /** Non-Codex models stay visible but cannot be selected. */\n codexOnly?: boolean | undefined;\n /** Identity of the current session scope. */\n sessionKey?: string | undefined;\n /** Prefer bottom on new-chat surfaces and top for bottom-docked composers. */\n menuSide?: \"top\" | \"bottom\" | undefined;\n /**\n * Default true: show models the way people choose them, with clean names,\n * maker marks, one \"API keys\" group for organization- and workspace-connected\n * keys, and one row for identical copies. Models settings passes false to\n * keep its scope-aware presentation (raw catalog labels, scoped groups).\n */\n collapseScopes?: boolean | undefined;\n /** Hide latency controls on surfaces whose saved policy does not include latency. */\n allowLatencyMode?: boolean | undefined;\n /** Hide effort and latency controls when the saved policy chooses only a model identity. */\n allowModelOptions?: boolean | undefined;\n /** Settings → Models. Shown when the catalog has no model that can run. */\n connectModelsHref?: string | undefined;\n /** The deployment offers Claude subscriptions; the connect panel lists Claude too. */\n claudeSubscriptionAvailable?: boolean | undefined;\n /** Classes for the portalled menu surface. Prefer --og-* tokens for theming. */\n contentClassName?: string | undefined;\n /** Inline styles for the portalled menu, applied after inherited --og-* tokens. */\n contentStyle?: CSSProperties | undefined;\n className?: string | undefined;\n /**\n * \"pill\" (default) is the composer's quiet rounded trigger with the effort.\n * \"field\" is a settings control: a bordered rectangle with the model name\n * and `triggerMeta` (for example the payer) in muted text. The effort stays\n * in the menu.\n */\n triggerStyle?: \"pill\" | \"field\" | undefined;\n /** Muted text after the model name in the \"field\" trigger. */\n triggerMeta?: ReactNode;\n messages?: Partial<ModelPolicyPickerMessages> | undefined;\n onModelChange: (modelId: string) => void;\n onEffortChange: (effort: ReasoningEffort) => void;\n onLatencyModeChange: (latencyMode: LatencyMode) => void;\n};\n\nconst SLIDE_EASE = [0.22, 1, 0.36, 1] as const;\n\nexport function BillingClassMark(props: {\n billingClass: PickerBillingClass;\n presentation?: ModelPolicyPickerGroupPresentation[PickerBillingClass] | undefined;\n className?: string | undefined;\n \"aria-label\"?: string | undefined;\n}) {\n const t = useOpenGeniText();\n const labels: Record<PickerBillingClass, string> = {\n opengeni_credits: t(\"modelPolicyPicker.models\"),\n external: t(\"modelPolicyPicker.externalProvider\"),\n codex_subscription: t(\"modelPolicyPicker.codex\"),\n supergrok_subscription: \"SuperGrok\",\n claude_subscription: t(\"modelPolicyPicker.claude\"),\n byok: t(\"modelPolicyPicker.apiKey\"),\n organization_byok: t(\"modelPolicyPicker.apiKey\"),\n };\n if (props.presentation?.icon === null) return null;\n const label = props[\"aria-label\"] ?? props.presentation?.label ?? labels[props.billingClass];\n const accessibility =\n label.length === 0\n ? { \"aria-hidden\": true as const }\n : { role: \"img\" as const, \"aria-label\": label };\n const shell = cn(\n \"inline-flex size-3.5 shrink-0 items-center justify-center overflow-hidden text-og-fg-subtle [&>svg]:size-full [&>img]:size-full\",\n props.className,\n );\n const mark = \"size-3.5\";\n return (\n <span\n className={shell}\n data-testid={`billing-class-icon-${props.billingClass}`}\n {...accessibility}\n >\n {props.presentation?.icon !== undefined ? (\n props.presentation.icon\n ) : props.billingClass === \"opengeni_credits\" ? (\n <SparklesIcon className={mark} aria-hidden />\n ) : props.billingClass === \"external\" ? (\n <Globe2Icon className={mark} aria-hidden />\n ) : props.billingClass === \"codex_subscription\" ? (\n <ChatGptMark className={mark} />\n ) : props.billingClass === \"claude_subscription\" ? (\n <ClaudeMark className={mark} />\n ) : props.billingClass === \"supergrok_subscription\" ? (\n <GrokMark className={mark} />\n ) : (\n <KeyRoundIcon className={mark} aria-hidden />\n )}\n </span>\n );\n}\n\n/**\n * The trigger shows who makes the chosen model. Subscription rails already\n * carry their maker's mark (ChatGPT, Claude, Grok). Configured catalog logos win\n * in collapsed model presentation; otherwise explicit host branding wins and models show\n * the maker's logo instead of a generic key, falling back to the group mark.\n */\nfunction SelectedModelMark(input: {\n props: ModelPolicyPickerProps;\n selected: ClientPickerModelRow | null;\n}) {\n const t = useOpenGeniText();\n const billingClass =\n input.selected?.billingClass ?? billingClassForMissingSelection(input.props.model);\n const presentation = groupPresentationFor(input.props, billingClass);\n const model = input.selected?.catalog ?? input.props.model;\n if (input.props.collapseScopes === false) {\n return (\n <BillingClassMark\n billingClass={billingClass}\n presentation={presentation}\n aria-label={presentation?.label ?? SCOPED_MARK_LABELS(t)[billingClass]}\n className=\"text-og-fg\"\n />\n );\n }\n if (modelLogoUrl(model)) {\n return <ModelMark model={model} className=\"text-og-fg\" />;\n }\n if (\n presentation?.icon !== undefined ||\n BRANDED_BILLING_CLASSES.has(billingClass) ||\n !modelHasMark(model)\n ) {\n return (\n <BillingClassMark\n billingClass={billingClass}\n presentation={presentation}\n className=\"text-og-fg\"\n />\n );\n }\n return <ModelMark model={model} className=\"text-og-fg\" />;\n}\n\nconst SCOPED_MARK_LABELS = (t: OpenGeniText): Partial<Record<PickerBillingClass, string>> => ({\n byok: t(\"modelPolicyPicker.workspaceProviderAccount\"),\n organization_byok: t(\"modelPolicyPicker.organizationProviderAccount\"),\n});\n\n/** A selection the catalog no longer lists: its clean name (settings keep the id). */\nfunction fallbackName(props: ModelPolicyPickerProps): string {\n return props.collapseScopes === false ? props.model : modelDisplayName(props.model);\n}\n\nconst BRANDED_BILLING_CLASSES: ReadonlySet<PickerBillingClass> = new Set([\n \"codex_subscription\",\n \"claude_subscription\",\n \"supergrok_subscription\",\n]);\n\nexport function effectiveRows(\n t: OpenGeniText,\n props: ModelPolicyPickerProps,\n): ClientPickerModelRow[] {\n return sharedEffectiveRows(t, props);\n}\n\nexport function PickerNavRow(props: {\n label: string;\n hint?: string | undefined;\n icon?: ReactNode;\n trailing?: ReactNode;\n showChevron?: boolean | undefined;\n disabled?: boolean | undefined;\n title?: string | undefined;\n description?: string | undefined;\n active?: boolean | undefined;\n testId?: string | undefined;\n onClick: () => void;\n}) {\n return (\n <button\n type=\"button\"\n disabled={props.disabled}\n title={props.title}\n aria-description={props.description}\n onClick={props.onClick}\n data-testid={props.testId}\n className={cn(\n // The one menu row (lib/menu-styles.ts), with density tokens for embedders.\n \"flex min-h-8 w-full cursor-pointer items-center gap-2.5 rounded-og-md px-[var(--og-model-picker-row-padding-x)] py-[var(--og-model-picker-row-padding-y)] text-left text-og-fg outline-hidden transition-colors duration-[120ms] hover:bg-og-hover focus-visible:bg-og-hover focus-visible:outline-2 focus-visible:-outline-offset-2! focus-visible:outline-og-accent/55 pointer-coarse:min-h-11\",\n props.disabled && \"cursor-not-allowed opacity-50\",\n )}\n >\n {props.icon}\n <span className=\"min-w-0 flex-1\">\n <span className=\"block truncate text-og-menu\">{props.label}</span>\n {props.hint ? (\n <span className=\"mt-0.5 block truncate text-og-sm text-og-fg-muted\">{props.hint}</span>\n ) : null}\n </span>\n {props.trailing ? <span className=\"ml-auto shrink-0\">{props.trailing}</span> : null}\n {props.showChevron === false ? null : <ChevronRightIcon className={MENU_CHEVRON_CLASS} />}\n </button>\n );\n}\n\nexport function PickerBackHeader(props: {\n label: string;\n icon?: ReactNode;\n onBack: () => void;\n trailing?: ReactNode;\n}) {\n return (\n <div className=\"mb-1.5 flex min-h-9 items-center gap-1 border-b border-og-border pb-1.5\">\n <button\n type=\"button\"\n onClick={props.onBack}\n data-testid=\"model-picker-back\"\n className=\"flex min-h-8 min-w-0 flex-1 cursor-pointer items-center gap-1 rounded-og-md pr-2.5 text-left text-og-fg outline-hidden transition-colors duration-[120ms] hover:bg-og-hover focus-visible:outline-2 focus-visible:-outline-offset-2! focus-visible:outline-og-accent/55 pointer-coarse:min-h-11\"\n >\n <span className=\"flex size-8 shrink-0 items-center justify-center text-og-fg-muted\">\n <ChevronLeftIcon className=\"size-4\" />\n </span>\n {props.icon}\n <span className=\"min-w-0 flex-1 truncate text-og-menu font-medium\">{props.label}</span>\n </button>\n {props.trailing ? <div className=\"relative z-10 shrink-0\">{props.trailing}</div> : null}\n </div>\n );\n}\n\nexport function PickerAnimatedPage(props: {\n pageKey: string;\n direction: 1 | -1;\n children: ReactNode;\n}) {\n const reduceMotion = useReducedMotion();\n return (\n <motion.div\n key={props.pageKey}\n initial={reduceMotion ? false : { x: props.direction * 14, opacity: 0 }}\n animate={{ x: 0, opacity: 1 }}\n transition={{ duration: reduceMotion ? 0 : 0.18, ease: SLIDE_EASE }}\n className=\"w-full\"\n >\n {props.children}\n </motion.div>\n );\n}\n\n/** @internal Shared controlled/uncontrolled state seam. */\nexport function useModelPolicyPickerState(props: ModelPolicyPickerProps) {\n const t = useOpenGeniText();\n const [uncontrolledOpen, setUncontrolledOpen] = useState(props.defaultOpen ?? false);\n const open = props.open ?? uncontrolledOpen;\n const setOpen = (next: boolean) => {\n if (props.open === undefined) setUncontrolledOpen(next);\n props.onOpenChange?.(next);\n };\n return { open, setOpen, rows: effectiveRows(t, props) };\n}\n\nexport function ModelPolicyPicker(props: ModelPolicyPickerProps) {\n const t = useOpenGeniText();\n const contentId = useId();\n const trigger = usePortalTokenSource<HTMLButtonElement>();\n const portalStyle = usePortalTokenStyle(trigger.source);\n const messages = useMemo(\n () => ({ ...defaultModelPolicyPickerMessages(t), ...props.messages }),\n [props.messages, t],\n );\n const { open, setOpen, rows } = useModelPolicyPickerState(props);\n const selected = findPickerRow(rows, props.model);\n const needsModel =\n !rows.some((row) => row.selectable) && (rows.length > 0 || Boolean(props.connectModelsHref));\n const selectedDescription = needsModel\n ? messages.connectTitle\n : [selected?.label ?? fallbackName(props), labelReasoningEffort(t, props.effort)].join(\" · \");\n\n if (props.loading) {\n return (\n <span\n className={cn(\n \"og-root inline-flex h-8 w-40 shrink-0 animate-pulse rounded-full bg-og-surface-2\",\n props.triggerStyle === \"field\" && \"w-[180px] rounded-og-md\",\n props.className,\n )}\n aria-label={messages.loading}\n data-testid=\"model-picker-loading\"\n />\n );\n }\n if (props.triggerStyle === \"field\") {\n return (\n <>\n <button\n ref={trigger.ref}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n aria-controls={open ? contentId : undefined}\n data-state={open ? \"open\" : \"closed\"}\n data-trigger-style=\"field\"\n onClick={() => setOpen(!open)}\n disabled={props.disabled}\n aria-label={messages.label}\n aria-description={selectedDescription}\n className={cn(\n \"og-root inline-flex h-8 min-w-[180px] max-w-full items-center gap-2 rounded-og-md border border-og-border bg-og-surface px-2.5 text-sm text-og-fg outline-hidden transition-colors hover:bg-og-surface-2 focus-visible:ring-2 focus-visible:ring-og-accent/40 disabled:cursor-not-allowed disabled:opacity-50\",\n props.className,\n )}\n >\n {needsModel ? (\n <SparklesIcon className=\"size-3.5 shrink-0\" aria-hidden />\n ) : (\n <SelectedModelMark props={props} selected={selected} />\n )}\n <span className=\"min-w-0 truncate font-medium\">\n {needsModel ? messages.connectTitle : (selected?.label ?? fallbackName(props))}\n </span>\n {props.triggerMeta && !needsModel ? (\n <span className=\"min-w-0 shrink-[9999] truncate text-og-fg-muted\">\n {props.triggerMeta}\n </span>\n ) : null}\n <ChevronDownIcon className=\"ml-auto size-3.5 shrink-0 text-og-fg-muted\" />\n </button>\n {open ? (\n <Suspense fallback={null}>\n <LazyModelPolicyPickerMenu\n {...props}\n anchor={trigger.currentRef}\n contentId={contentId}\n portalStyle={portalStyle}\n onOpenChange={setOpen}\n />\n </Suspense>\n ) : null}\n </>\n );\n }\n return (\n <>\n <button\n ref={trigger.ref}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n aria-controls={open ? contentId : undefined}\n data-state={open ? \"open\" : \"closed\"}\n onClick={() => setOpen(!open)}\n disabled={props.disabled}\n aria-label={messages.label}\n aria-description={selectedDescription}\n className={cn(\n // Phone: the composer row also carries attach, dictate, voice, pause\n // and send, so the pill drops its chevron and tightens its padding\n // to keep the model's short name readable.\n \"og-root og-model-policy-trigger inline-flex h-[var(--og-model-picker-trigger-height)] min-w-0 max-w-64 overflow-hidden items-center gap-1 rounded-full border px-2.5 text-og-control outline-hidden transition-colors focus-visible:ring-2 focus-visible:ring-og-accent/40 disabled:cursor-not-allowed disabled:opacity-50 max-sm:h-11 max-sm:max-w-[7.5rem] max-sm:gap-0.5 max-sm:px-1.5\",\n // With no usable model the pill is the one thing that unblocks the\n // composer, so it takes the primary wash and always keeps its place.\n // Otherwise, when even the bare icon has no room (a narrow phone whose\n // row also offers Queue or Steer while the agent works), the pill\n // steps aside instead of painting over its neighbours, and returns\n // once the row has room.\n needsModel\n ? \"border-og-primary-border bg-og-primary text-og-primary-fg hover:bg-og-primary-hover\"\n : \"border-transparent text-og-fg-muted hover:border-og-border hover:bg-og-surface-2 hover:text-og-fg @max-[2rem]/model-controls:hidden\",\n props.className,\n )}\n >\n {needsModel ? (\n <SparklesIcon className=\"size-3.5 shrink-0\" aria-hidden />\n ) : (\n <SelectedModelMark props={props} selected={selected} />\n )}\n <span className=\"og-model-policy-label-full min-w-0 truncate font-medium text-og-fg max-sm:hidden @max-[20rem]/model-controls:hidden\">\n {needsModel ? messages.connectTitle : (selected?.label ?? fallbackName(props))}\n </span>\n <span className=\"og-model-policy-label-short min-w-0 truncate font-medium text-og-fg sm:hidden @max-[20rem]/model-controls:block @max-[8rem]/model-controls:hidden\">\n {needsModel\n ? messages.connectTitle\n : (selected?.shortLabel ?? selected?.label ?? fallbackName(props))}\n </span>\n {selected && !needsModel && modelOffersEffortChoice(selected.catalog) ? (\n <span\n className=\"og-model-policy-effort min-w-0 shrink-[9999] truncate\"\n title={labelReasoningEffort(t, props.effort)}\n >\n {labelReasoningEffort(t, props.effort)}\n </span>\n ) : null}\n {props.latencyMode === \"fast\" && !needsModel ? (\n <ZapIcon\n className=\"size-3.5 shrink-0 fill-current stroke-current text-og-fg\"\n aria-label={messages.fast}\n data-testid=\"model-picker-fast-icon\"\n />\n ) : null}\n {props.latencyMode === \"ultrafast\" && !needsModel ? (\n <span\n role=\"img\"\n className=\"flex shrink-0 -space-x-1.5 text-og-fg\"\n aria-label={messages.ultrafast}\n data-testid=\"model-picker-ultrafast-icon\"\n >\n <ZapIcon className=\"size-3.5 fill-current stroke-current\" aria-hidden />\n <ZapIcon className=\"size-3.5 fill-current stroke-current\" aria-hidden />\n </span>\n ) : null}\n <ChevronDownIcon className=\"og-model-policy-chevron size-3 shrink-0 max-sm:hidden\" />\n </button>\n\n {open ? (\n <Suspense fallback={null}>\n <LazyModelPolicyPickerMenu\n {...props}\n anchor={trigger.currentRef}\n contentId={contentId}\n portalStyle={portalStyle}\n onOpenChange={setOpen}\n />\n </Suspense>\n ) : null}\n </>\n );\n}\n"],"mappings":"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","names":["effectiveRows"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
createOpenGeniText
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-ZEVJGMNB.js";
|
|
5
5
|
|
|
6
6
|
// src/app/lib/console-text.tsx
|
|
7
7
|
var t = createOpenGeniText();
|
|
@@ -9,4 +9,4 @@ var t = createOpenGeniText();
|
|
|
9
9
|
export {
|
|
10
10
|
t
|
|
11
11
|
};
|
|
12
|
-
//# sourceMappingURL=chunk-
|
|
12
|
+
//# sourceMappingURL=chunk-CG6CJMIS.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
ProviderRecoveryNotice
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-MZGKQ5WV.js";
|
|
5
5
|
|
|
6
6
|
// src/app/components/session/model-recovery-notice.tsx
|
|
7
7
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -12,4 +12,4 @@ function ModelRecoveryNotice({ recovery }) {
|
|
|
12
12
|
export {
|
|
13
13
|
ModelRecoveryNotice
|
|
14
14
|
};
|
|
15
|
-
//# sourceMappingURL=chunk-
|
|
15
|
+
//# sourceMappingURL=chunk-CQX24PT7.js.map
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
} from "./chunk-4NTPH5M6.js";
|
|
6
6
|
import {
|
|
7
7
|
openGeniGroupPresentation
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-ZITMDA4C.js";
|
|
9
9
|
import {
|
|
10
10
|
cn
|
|
11
11
|
} from "./chunk-A3MTTRCX.js";
|
|
@@ -28,10 +28,10 @@ import {
|
|
|
28
28
|
} from "./chunk-HMU5IELG.js";
|
|
29
29
|
import {
|
|
30
30
|
ModelPolicyPickerMenu
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-Y565N5ZJ.js";
|
|
32
32
|
import {
|
|
33
33
|
ModelPolicyPicker
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-CDBGAAJY.js";
|
|
35
35
|
|
|
36
36
|
// src/app/components/pickers.tsx
|
|
37
37
|
import { ChevronDownIcon, PlugIcon } from "lucide-react";
|
|
@@ -175,4 +175,4 @@ export {
|
|
|
175
175
|
sessionToolSelectionSummary,
|
|
176
176
|
SessionToolPicker
|
|
177
177
|
};
|
|
178
|
-
//# sourceMappingURL=chunk-
|
|
178
|
+
//# sourceMappingURL=chunk-CY3NO4JN.js.map
|
|
@@ -49,7 +49,7 @@ import {
|
|
|
49
49
|
} from "./chunk-4U7SHFQ2.js";
|
|
50
50
|
import {
|
|
51
51
|
useOpenGeniText
|
|
52
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-ZEVJGMNB.js";
|
|
53
53
|
|
|
54
54
|
// src/app/components/session/session-usage-limit-section.tsx
|
|
55
55
|
import {
|
|
@@ -409,4 +409,4 @@ export {
|
|
|
409
409
|
sessionHref,
|
|
410
410
|
SessionUsageLimitSection
|
|
411
411
|
};
|
|
412
|
-
//# sourceMappingURL=chunk-
|
|
412
|
+
//# sourceMappingURL=chunk-D2RLPRSG.js.map
|
|
@@ -14,13 +14,13 @@ import {
|
|
|
14
14
|
editableArtifactStatusLabel,
|
|
15
15
|
useArtifactSubmissions,
|
|
16
16
|
useEditableArtifactView
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-TB7UW5BB.js";
|
|
18
18
|
import {
|
|
19
19
|
cn
|
|
20
20
|
} from "./chunk-TXS65BB2.js";
|
|
21
21
|
import {
|
|
22
22
|
useOpenGeniText
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-ZEVJGMNB.js";
|
|
24
24
|
|
|
25
25
|
// src/components/artifacts/presentation-editor.tsx
|
|
26
26
|
import {
|
|
@@ -3547,4 +3547,4 @@ export {
|
|
|
3547
3547
|
PresentationProjectionArtifactSurface,
|
|
3548
3548
|
EditablePresentationArtifactSurface
|
|
3549
3549
|
};
|
|
3550
|
-
//# sourceMappingURL=chunk-
|
|
3550
|
+
//# sourceMappingURL=chunk-D653JH6D.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
EmptyQueueStateSurface
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-Y3GCG6CA.js";
|
|
5
5
|
import {
|
|
6
6
|
useWorkspaceSessions
|
|
7
7
|
} from "./chunk-V3K4RQO7.js";
|
|
@@ -10,13 +10,13 @@ import {
|
|
|
10
10
|
SessionConversation,
|
|
11
11
|
SessionProxyScope,
|
|
12
12
|
useHostTheme
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-B7ZKSROO.js";
|
|
14
14
|
import {
|
|
15
15
|
useClientConfigFlags
|
|
16
16
|
} from "./chunk-XV6ZYRHK.js";
|
|
17
17
|
import {
|
|
18
18
|
notifyObserver
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-IXIE3H43.js";
|
|
20
20
|
import {
|
|
21
21
|
usePolledValue
|
|
22
22
|
} from "./chunk-2KO2G3RI.js";
|
|
@@ -35,13 +35,13 @@ import {
|
|
|
35
35
|
} from "./chunk-TXS65BB2.js";
|
|
36
36
|
import {
|
|
37
37
|
useOpenGeniText
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-ZEVJGMNB.js";
|
|
39
39
|
|
|
40
40
|
// src/components/queue-surface.tsx
|
|
41
41
|
import { Loader2Icon } from "lucide-react";
|
|
42
42
|
import { lazy, Suspense } from "react";
|
|
43
43
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
44
|
-
var loadQueueSurface = () => import("./queue-surface-implementation-
|
|
44
|
+
var loadQueueSurface = () => import("./queue-surface-implementation-H3NOBXU5.js");
|
|
45
45
|
var QueueSurface = createQueueSurface(loadQueueSurface);
|
|
46
46
|
function createQueueSurface(loadImplementation) {
|
|
47
47
|
const LazyQueueSurface = lazy(async () => ({
|
|
@@ -789,4 +789,4 @@ export {
|
|
|
789
789
|
SessionCommands,
|
|
790
790
|
StartupTimings
|
|
791
791
|
};
|
|
792
|
-
//# sourceMappingURL=chunk-
|
|
792
|
+
//# sourceMappingURL=chunk-DA6EQDFR.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
PierreFile
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-3JPQAIYJ.js";
|
|
5
5
|
import {
|
|
6
6
|
useThemeType
|
|
7
7
|
} from "./chunk-B27E3V37.js";
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
} from "./chunk-OYQQJL3J.js";
|
|
11
11
|
import {
|
|
12
12
|
CodeEditor
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-2BISI664.js";
|
|
14
14
|
import {
|
|
15
15
|
MENU_BUTTON_CLASS,
|
|
16
16
|
MENU_SEPARATOR_CLASS,
|
|
@@ -35,7 +35,7 @@ import {
|
|
|
35
35
|
import {
|
|
36
36
|
createOpenGeniText,
|
|
37
37
|
useOpenGeniText
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-ZEVJGMNB.js";
|
|
39
39
|
|
|
40
40
|
// src/components/sandbox-files.tsx
|
|
41
41
|
import { FileCode2Icon, FileWarningIcon, LoaderCircleIcon } from "lucide-react";
|
|
@@ -3061,4 +3061,4 @@ export {
|
|
|
3061
3061
|
FileBrowser,
|
|
3062
3062
|
SandboxFiles
|
|
3063
3063
|
};
|
|
3064
|
-
//# sourceMappingURL=chunk-
|
|
3064
|
+
//# sourceMappingURL=chunk-DAI5CTQF.js.map
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
ListRow,
|
|
14
14
|
ListRowSkeleton,
|
|
15
15
|
RowList
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-UBXHP224.js";
|
|
17
17
|
import {
|
|
18
18
|
DetailMeta
|
|
19
19
|
} from "./chunk-NIITHJEE.js";
|
|
@@ -518,4 +518,4 @@ export {
|
|
|
518
518
|
SiteDataPanel,
|
|
519
519
|
siteSqlSummary
|
|
520
520
|
};
|
|
521
|
-
//# sourceMappingURL=chunk-
|
|
521
|
+
//# sourceMappingURL=chunk-DBM4ZXDN.js.map
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
shouldSteerOnKey,
|
|
7
7
|
shouldSubmitOnKey
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-IXIE3H43.js";
|
|
9
9
|
import {
|
|
10
10
|
defaultChatComposerMessages
|
|
11
11
|
} from "./chunk-7RRMTSCI.js";
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
TooltipProvider,
|
|
24
24
|
TooltipTrigger,
|
|
25
25
|
useLightboxOptional
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-MASBMJ2M.js";
|
|
27
27
|
import {
|
|
28
28
|
groupPickerRowsByBillingClass
|
|
29
29
|
} from "./chunk-CFEFYPNR.js";
|
|
@@ -42,7 +42,7 @@ import {
|
|
|
42
42
|
import {
|
|
43
43
|
singleSendText,
|
|
44
44
|
useOpenGeniText
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-ZEVJGMNB.js";
|
|
46
46
|
|
|
47
47
|
// src/commands/registry.ts
|
|
48
48
|
import { formatErrorMessage } from "@opengeni/sdk";
|
|
@@ -5026,4 +5026,4 @@ export {
|
|
|
5026
5026
|
useVoiceInput,
|
|
5027
5027
|
ComposerTranscriptionControl
|
|
5028
5028
|
};
|
|
5029
|
-
//# sourceMappingURL=chunk-
|
|
5029
|
+
//# sourceMappingURL=chunk-DNYKLU3K.js.map
|