@opengeni/react 4.6.1 → 4.6.2-canary.39853438886001
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 +13 -13
- package/dist/app/components/Composer.js +14 -14
- package/dist/app/components/artifacts/artifact-library.js +5 -5
- 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 +16 -16
- package/dist/app/components/artifacts/retained-text-preview.js +2 -2
- package/dist/app/components/artifacts/site-conversations.js +5 -4
- 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 +15 -15
- 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 +32 -31
- 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 +14 -14
- 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 +16 -15
- package/dist/app/components/command-menu/command-menu.js.map +1 -1
- package/dist/app/components/command-menu/shortcut-sheet.js +8 -8
- 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 +4 -4
- 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 +3 -3
- package/dist/app/components/rail/rail-sections.js +28 -27
- package/dist/app/components/rail/session-header.d.ts +6 -5
- package/dist/app/components/rail/session-header.js +20 -19
- package/dist/app/components/rail/session-list.js +27 -26
- package/dist/app/components/rail/session-row-hover-details.js +7 -6
- package/dist/app/components/rail/session-shell.js +51 -53
- package/dist/app/components/rail/site-session-group-heading.js +2 -1
- package/dist/app/components/session/agent-configuration-panel.js +6 -6
- package/dist/app/components/session/banners.js +6 -6
- package/dist/app/components/session/conversation-find.js +3 -3
- package/dist/app/components/session/editable-artifacts-workspace.js +17 -17
- package/dist/app/components/session/failed-session-banner.js +5 -5
- package/dist/app/components/session/human-input.js +26 -26
- package/dist/app/components/session/inspector.js +37 -37
- 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 +8 -8
- package/dist/app/components/session/sandbox-workspace.js +36 -36
- 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-tenancy-control.js +4 -4
- 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 +6 -5
- 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 +154 -156
- package/dist/app/lib/actions/actions-provider.js +8 -8
- 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 +5 -5
- 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 +50 -49
- package/dist/app/routes/artifacts.js.map +1 -1
- package/dist/app/routes/retained-artifact.js +23 -23
- package/dist/app/routes/session.js +92 -91
- package/dist/app/routes/sessions-index.js +52 -52
- package/dist/app/routes/site-view.js +35 -34
- 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-NPDL4W4Y.js → chunk-2MLJHNKJ.js} +108 -109
- package/dist/chunk-2MLJHNKJ.js.map +1 -0
- 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-BWKZEW6K.js → chunk-4T3E56NT.js} +3 -3
- package/dist/{chunk-4PC7LIQK.js → chunk-4ZMUWRFF.js} +3 -3
- package/dist/{chunk-TM2ZLY3Q.js → chunk-5OLFYSVG.js} +13 -13
- package/dist/{chunk-D4QOZXPM.js → chunk-5WBRM7V4.js} +5 -5
- package/dist/{chunk-GXK4CUAB.js → chunk-5WQKTT5Z.js} +2 -2
- 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-XDCZBOEY.js → chunk-6LGBGPBU.js} +1 -1
- package/dist/{chunk-FMATVQFW.js → chunk-6XXMG5YP.js} +9 -9
- 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-ZPZYYSHW.js → chunk-BVMDON5T.js} +8 -8
- package/dist/{chunk-EURDMOXZ.js → chunk-BYJZUCOQ.js} +2 -2
- package/dist/{chunk-BQWUXC55.js → chunk-CAVAVT5S.js} +9 -9
- 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-65K5LV4L.js → chunk-CTCOVPZU.js} +51 -50
- package/dist/{chunk-65K5LV4L.js.map → chunk-CTCOVPZU.js.map} +1 -1
- 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-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-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-FVCLVASD.js → chunk-FI3KRVOF.js} +24 -24
- 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-32HA7DXJ.js → chunk-GNBRB3DH.js} +25 -25
- package/dist/{chunk-CEQUNJJY.js → chunk-HPALK6LD.js} +2 -2
- package/dist/{chunk-LR7U3HCD.js → chunk-HPSATFLQ.js} +4 -4
- package/dist/{chunk-O4AWXTZQ.js → chunk-HUYLQW75.js} +6 -6
- package/dist/{chunk-PQCFW2KT.js → chunk-IDDHH5AQ.js} +29 -24
- package/dist/chunk-IDDHH5AQ.js.map +1 -0
- package/dist/{chunk-ZZUKJ5HQ.js → chunk-IG2ERMSB.js} +2 -2
- package/dist/{chunk-2SZ3KC5S.js → chunk-IMKIIS4Y.js} +2 -2
- package/dist/{chunk-CA64OZLZ.js → chunk-IRXPXDY5.js} +4 -4
- 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-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-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-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-MY6VZVCP.js → chunk-OAJX5CEL.js} +4 -4
- 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-JJ7VMIEQ.js → chunk-QCANSTLU.js} +64 -64
- 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-DAQG3C4W.js → chunk-R6JY22SG.js} +29 -29
- package/dist/{chunk-7OIBLMDP.js → chunk-RAQISW42.js} +2 -2
- package/dist/{chunk-DNLXQUBX.js → chunk-RLS6PTL4.js} +32 -44
- package/dist/chunk-RLS6PTL4.js.map +1 -0
- 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-6VITVQ23.js → chunk-SHJ5SQOW.js} +7 -7
- 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-GTR5NLVP.js → chunk-VCRQPLKS.js} +2 -2
- package/dist/{chunk-MHIYYHCL.js → chunk-VJU3ET7N.js} +12 -12
- package/dist/{chunk-RXMIXKB3.js → chunk-WGJUARF3.js} +13 -13
- 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-OHG2UQ2O.js → chunk-YWP2H7SX.js} +60 -22
- package/dist/chunk-YWP2H7SX.js.map +1 -0
- 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 +44 -44
- 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 +155 -157
- package/dist/{session-realtime-JXRLPNUH.js → session-realtime-OHBMODNX.js} +3 -3
- package/dist/session-realtime.js +2 -2
- package/dist/session-ui.js +26 -26
- package/dist/session.js +6 -6
- 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-BWKZEW6K.js.map → chunk-4T3E56NT.js.map} +0 -0
- /package/dist/{chunk-4PC7LIQK.js.map → chunk-4ZMUWRFF.js.map} +0 -0
- /package/dist/{chunk-TM2ZLY3Q.js.map → chunk-5OLFYSVG.js.map} +0 -0
- /package/dist/{chunk-D4QOZXPM.js.map → chunk-5WBRM7V4.js.map} +0 -0
- /package/dist/{chunk-GXK4CUAB.js.map → chunk-5WQKTT5Z.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-FMATVQFW.js.map → chunk-6XXMG5YP.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-ZPZYYSHW.js.map → chunk-BVMDON5T.js.map} +0 -0
- /package/dist/{chunk-EURDMOXZ.js.map → chunk-BYJZUCOQ.js.map} +0 -0
- /package/dist/{chunk-BQWUXC55.js.map → chunk-CAVAVT5S.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-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-FVCLVASD.js.map → chunk-FI3KRVOF.js.map} +0 -0
- /package/dist/{chunk-WWM7WVD2.js.map → chunk-GABFKHQE.js.map} +0 -0
- /package/dist/{chunk-32HA7DXJ.js.map → chunk-GNBRB3DH.js.map} +0 -0
- /package/dist/{chunk-CEQUNJJY.js.map → chunk-HPALK6LD.js.map} +0 -0
- /package/dist/{chunk-LR7U3HCD.js.map → chunk-HPSATFLQ.js.map} +0 -0
- /package/dist/{chunk-O4AWXTZQ.js.map → chunk-HUYLQW75.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-CA64OZLZ.js.map → chunk-IRXPXDY5.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-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-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-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-MY6VZVCP.js.map → chunk-OAJX5CEL.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-JJ7VMIEQ.js.map → chunk-QCANSTLU.js.map} +0 -0
- /package/dist/{chunk-DZH2HTTB.js.map → chunk-R27GW5WV.js.map} +0 -0
- /package/dist/{chunk-DAQG3C4W.js.map → chunk-R6JY22SG.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-6VITVQ23.js.map → chunk-SHJ5SQOW.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-MHIYYHCL.js.map → chunk-VJU3ET7N.js.map} +0 -0
- /package/dist/{chunk-RXMIXKB3.js.map → chunk-WGJUARF3.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
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
SessionCustomMcpCard
|
|
4
|
-
} from "../../../chunk-
|
|
5
|
-
import "../../../chunk-
|
|
4
|
+
} from "../../../chunk-3W7ROHN4.js";
|
|
5
|
+
import "../../../chunk-3U6K36QA.js";
|
|
6
6
|
import "../../../chunk-AF53CDFM.js";
|
|
7
7
|
import "../../../chunk-ECNX3UOI.js";
|
|
8
8
|
import "../../../chunk-WMSCYECP.js";
|
|
9
|
-
import "../../../chunk-
|
|
9
|
+
import "../../../chunk-CG6CJMIS.js";
|
|
10
10
|
import "../../../chunk-FIDD34ZF.js";
|
|
11
11
|
import "../../../chunk-74JEZLLQ.js";
|
|
12
12
|
import "../../../chunk-VYKW6TB2.js";
|
|
@@ -15,12 +15,12 @@ import "../../../chunk-L4OF77LE.js";
|
|
|
15
15
|
import "../../../chunk-W6KAUGXO.js";
|
|
16
16
|
import "../../../chunk-A3KMTJZS.js";
|
|
17
17
|
import "../../../chunk-HMU5IELG.js";
|
|
18
|
-
import "../../../chunk-
|
|
18
|
+
import "../../../chunk-OSJTLQXA.js";
|
|
19
19
|
import "../../../chunk-M357MHH3.js";
|
|
20
|
-
import "../../../chunk-
|
|
20
|
+
import "../../../chunk-6IIA63VD.js";
|
|
21
21
|
import "../../../chunk-CUUJROYT.js";
|
|
22
|
-
import "../../../chunk-
|
|
23
|
-
import "../../../chunk-
|
|
22
|
+
import "../../../chunk-KPL7EXS6.js";
|
|
23
|
+
import "../../../chunk-DXYARXK3.js";
|
|
24
24
|
import "../../../chunk-OYQQJL3J.js";
|
|
25
25
|
import "../../../chunk-RZLBICR5.js";
|
|
26
26
|
import "../../../chunk-H3LIIAGE.js";
|
|
@@ -30,13 +30,13 @@ import "../../../chunk-OB3YGXHQ.js";
|
|
|
30
30
|
import "../../../chunk-UNJPZGNK.js";
|
|
31
31
|
import "../../../chunk-PEHTX3V7.js";
|
|
32
32
|
import "../../../chunk-NRP4REXE.js";
|
|
33
|
-
import "../../../chunk-
|
|
33
|
+
import "../../../chunk-MASBMJ2M.js";
|
|
34
34
|
import "../../../chunk-J3BHDXQQ.js";
|
|
35
35
|
import "../../../chunk-XEA5BCMA.js";
|
|
36
36
|
import "../../../chunk-SJGAHTY5.js";
|
|
37
37
|
import "../../../chunk-4NHJ6EXL.js";
|
|
38
38
|
import "../../../chunk-TXS65BB2.js";
|
|
39
|
-
import "../../../chunk-
|
|
39
|
+
import "../../../chunk-ZEVJGMNB.js";
|
|
40
40
|
export {
|
|
41
41
|
SessionCustomMcpCard
|
|
42
42
|
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
SessionGitHubCapabilityCard
|
|
4
|
-
} from "../../../chunk-
|
|
4
|
+
} from "../../../chunk-X6JIGNLI.js";
|
|
5
5
|
import "../../../chunk-MOMM26UR.js";
|
|
6
6
|
import "../../../chunk-2LUBBDZV.js";
|
|
7
|
-
import "../../../chunk-
|
|
7
|
+
import "../../../chunk-UBXHP224.js";
|
|
8
8
|
import "../../../chunk-PVNI2KHS.js";
|
|
9
|
-
import "../../../chunk-
|
|
9
|
+
import "../../../chunk-WQ2RTQYO.js";
|
|
10
10
|
import "../../../chunk-A3MTTRCX.js";
|
|
11
11
|
import "../../../chunk-ECNX3UOI.js";
|
|
12
12
|
import "../../../chunk-FQQEZUSN.js";
|
|
@@ -25,12 +25,12 @@ import "../../../chunk-TREHTIBD.js";
|
|
|
25
25
|
import "../../../chunk-5OTQA7CM.js";
|
|
26
26
|
import "../../../chunk-WLEDGIVS.js";
|
|
27
27
|
import "../../../chunk-HMU5IELG.js";
|
|
28
|
-
import "../../../chunk-
|
|
28
|
+
import "../../../chunk-OSJTLQXA.js";
|
|
29
29
|
import "../../../chunk-M357MHH3.js";
|
|
30
|
-
import "../../../chunk-
|
|
30
|
+
import "../../../chunk-6IIA63VD.js";
|
|
31
31
|
import "../../../chunk-CUUJROYT.js";
|
|
32
|
-
import "../../../chunk-
|
|
33
|
-
import "../../../chunk-
|
|
32
|
+
import "../../../chunk-KPL7EXS6.js";
|
|
33
|
+
import "../../../chunk-DXYARXK3.js";
|
|
34
34
|
import "../../../chunk-OYQQJL3J.js";
|
|
35
35
|
import "../../../chunk-RZLBICR5.js";
|
|
36
36
|
import "../../../chunk-H3LIIAGE.js";
|
|
@@ -40,13 +40,13 @@ import "../../../chunk-OB3YGXHQ.js";
|
|
|
40
40
|
import "../../../chunk-UNJPZGNK.js";
|
|
41
41
|
import "../../../chunk-PEHTX3V7.js";
|
|
42
42
|
import "../../../chunk-NRP4REXE.js";
|
|
43
|
-
import "../../../chunk-
|
|
43
|
+
import "../../../chunk-MASBMJ2M.js";
|
|
44
44
|
import "../../../chunk-J3BHDXQQ.js";
|
|
45
45
|
import "../../../chunk-XEA5BCMA.js";
|
|
46
46
|
import "../../../chunk-SJGAHTY5.js";
|
|
47
47
|
import "../../../chunk-4NHJ6EXL.js";
|
|
48
48
|
import "../../../chunk-TXS65BB2.js";
|
|
49
|
-
import "../../../chunk-
|
|
49
|
+
import "../../../chunk-ZEVJGMNB.js";
|
|
50
50
|
export {
|
|
51
51
|
SessionGitHubCapabilityCard
|
|
52
52
|
};
|
|
@@ -4,22 +4,22 @@ import {
|
|
|
4
4
|
RepeatedMachineRequestNote,
|
|
5
5
|
SessionMachineCapabilityCard,
|
|
6
6
|
useAttachedChrome
|
|
7
|
-
} from "../../../chunk-
|
|
8
|
-
import "../../../chunk-
|
|
7
|
+
} from "../../../chunk-VJU3ET7N.js";
|
|
8
|
+
import "../../../chunk-LMYSYG6U.js";
|
|
9
9
|
import "../../../chunk-M27WO6W3.js";
|
|
10
10
|
import "../../../chunk-KV6GUPL2.js";
|
|
11
11
|
import "../../../chunk-VAIESMPY.js";
|
|
12
12
|
import "../../../chunk-2LUBBDZV.js";
|
|
13
13
|
import "../../../chunk-QZRDCFHI.js";
|
|
14
|
-
import "../../../chunk-
|
|
14
|
+
import "../../../chunk-UBXHP224.js";
|
|
15
15
|
import "../../../chunk-LEXPBQ56.js";
|
|
16
16
|
import "../../../chunk-J6WRB3VZ.js";
|
|
17
|
+
import "../../../chunk-J4OPEWC3.js";
|
|
18
|
+
import "../../../chunk-UL44R3W2.js";
|
|
17
19
|
import {
|
|
18
20
|
machineUseMessage
|
|
19
|
-
} from "../../../chunk-
|
|
20
|
-
import "../../../chunk-
|
|
21
|
-
import "../../../chunk-M7A226EQ.js";
|
|
22
|
-
import "../../../chunk-3MQM4ZOC.js";
|
|
21
|
+
} from "../../../chunk-3FL3F4WF.js";
|
|
22
|
+
import "../../../chunk-3Y6ZR2VN.js";
|
|
23
23
|
import "../../../chunk-L5HJ4UYB.js";
|
|
24
24
|
import "../../../chunk-FABYS4WM.js";
|
|
25
25
|
import "../../../chunk-EPCPGUIF.js";
|
|
@@ -32,7 +32,7 @@ import "../../../chunk-XSOPQZGH.js";
|
|
|
32
32
|
import "../../../chunk-ZMBJPN4T.js";
|
|
33
33
|
import "../../../chunk-HZUL2CUH.js";
|
|
34
34
|
import "../../../chunk-X6WZOHBI.js";
|
|
35
|
-
import "../../../chunk-
|
|
35
|
+
import "../../../chunk-CG6CJMIS.js";
|
|
36
36
|
import "../../../chunk-FIDD34ZF.js";
|
|
37
37
|
import "../../../chunk-74JEZLLQ.js";
|
|
38
38
|
import "../../../chunk-IZUAIHR4.js";
|
|
@@ -45,15 +45,15 @@ import "../../../chunk-KS57MLGE.js";
|
|
|
45
45
|
import "../../../chunk-TREHTIBD.js";
|
|
46
46
|
import "../../../chunk-5OTQA7CM.js";
|
|
47
47
|
import "../../../chunk-A3KMTJZS.js";
|
|
48
|
-
import "../../../chunk-
|
|
48
|
+
import "../../../chunk-ROLXYGT5.js";
|
|
49
49
|
import "../../../chunk-WLEDGIVS.js";
|
|
50
50
|
import "../../../chunk-HMU5IELG.js";
|
|
51
51
|
import "../../../chunk-CPLCSM6K.js";
|
|
52
|
-
import "../../../chunk-
|
|
52
|
+
import "../../../chunk-GABFKHQE.js";
|
|
53
53
|
import "../../../chunk-M357MHH3.js";
|
|
54
|
-
import "../../../chunk-
|
|
55
|
-
import "../../../chunk-
|
|
56
|
-
import "../../../chunk-
|
|
54
|
+
import "../../../chunk-KPL7EXS6.js";
|
|
55
|
+
import "../../../chunk-4T3E56NT.js";
|
|
56
|
+
import "../../../chunk-PR42VIVY.js";
|
|
57
57
|
import "../../../chunk-BOG2FED3.js";
|
|
58
58
|
import "../../../chunk-XV6ZYRHK.js";
|
|
59
59
|
import "../../../chunk-IGVL3ELX.js";
|
|
@@ -67,7 +67,7 @@ import "../../../chunk-TVQCDDSZ.js";
|
|
|
67
67
|
import "../../../chunk-SJGAHTY5.js";
|
|
68
68
|
import "../../../chunk-4NHJ6EXL.js";
|
|
69
69
|
import "../../../chunk-TXS65BB2.js";
|
|
70
|
-
import "../../../chunk-
|
|
70
|
+
import "../../../chunk-ZEVJGMNB.js";
|
|
71
71
|
export {
|
|
72
72
|
CONNECTED_MACHINE_LOGO,
|
|
73
73
|
RepeatedMachineRequestNote,
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
ChatStatusMarks,
|
|
4
4
|
useChatStatusRefresh
|
|
5
|
-
} from "../../../chunk-
|
|
5
|
+
} from "../../../chunk-IG2ERMSB.js";
|
|
6
6
|
import "../../../chunk-7EGWIME2.js";
|
|
7
7
|
import "../../../chunk-NML44AW2.js";
|
|
8
|
-
import "../../../chunk-
|
|
8
|
+
import "../../../chunk-RNU5CUPI.js";
|
|
9
9
|
import "../../../chunk-UBJWSGD4.js";
|
|
10
10
|
import "../../../chunk-K3TJNJSU.js";
|
|
11
11
|
import "../../../chunk-E36IC3LU.js";
|
|
@@ -13,12 +13,13 @@ import "../../../chunk-NS3HKFUX.js";
|
|
|
13
13
|
import "../../../chunk-KJJBQ3KV.js";
|
|
14
14
|
import "../../../chunk-IKQMSROV.js";
|
|
15
15
|
import "../../../chunk-A3MTTRCX.js";
|
|
16
|
-
import "../../../chunk-
|
|
16
|
+
import "../../../chunk-CG6CJMIS.js";
|
|
17
17
|
import "../../../chunk-W6KAUGXO.js";
|
|
18
18
|
import "../../../chunk-6NXQCOLD.js";
|
|
19
19
|
import "../../../chunk-A3KMTJZS.js";
|
|
20
20
|
import "../../../chunk-F2RMKGDQ.js";
|
|
21
|
-
import "../../../chunk-
|
|
21
|
+
import "../../../chunk-PPSVFNEA.js";
|
|
22
|
+
import "../../../chunk-GLCOKWLH.js";
|
|
22
23
|
import "../../../chunk-6AFSZKZA.js";
|
|
23
24
|
import "../../../chunk-AW3QEFOF.js";
|
|
24
25
|
import "../../../chunk-HEVQKE27.js";
|
|
@@ -33,7 +34,7 @@ import "../../../chunk-DHXKEJBH.js";
|
|
|
33
34
|
import "../../../chunk-CFEFYPNR.js";
|
|
34
35
|
import "../../../chunk-SJGAHTY5.js";
|
|
35
36
|
import "../../../chunk-4NHJ6EXL.js";
|
|
36
|
-
import "../../../chunk-
|
|
37
|
+
import "../../../chunk-ZEVJGMNB.js";
|
|
37
38
|
export {
|
|
38
39
|
ChatStatusMarks,
|
|
39
40
|
useChatStatusRefresh
|
|
@@ -9,6 +9,8 @@ export default function ChatSwitcher(props: {
|
|
|
9
9
|
currentChatId: string | null;
|
|
10
10
|
platform: ChordPlatform;
|
|
11
11
|
onHover(index: number): void;
|
|
12
|
+
/** The app learned about more chats; the list may grow at its end. */
|
|
13
|
+
onDirectoryChange(): void;
|
|
12
14
|
onPick(index: number): void;
|
|
13
15
|
onDismiss(): void;
|
|
14
16
|
}): import("react").ReactPortal | null;
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
ChatStatusMarks,
|
|
4
4
|
currentChatStatus,
|
|
5
5
|
useChatStatusRefresh
|
|
6
|
-
} from "../../../chunk-
|
|
6
|
+
} from "../../../chunk-IG2ERMSB.js";
|
|
7
7
|
import {
|
|
8
8
|
WorkspaceTag
|
|
9
9
|
} from "../../../chunk-IX3NMGIP.js";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
readChatDirectory,
|
|
17
17
|
useChatDirectoryVersion
|
|
18
18
|
} from "../../../chunk-NML44AW2.js";
|
|
19
|
-
import "../../../chunk-
|
|
19
|
+
import "../../../chunk-RNU5CUPI.js";
|
|
20
20
|
import "../../../chunk-UBJWSGD4.js";
|
|
21
21
|
import "../../../chunk-K3TJNJSU.js";
|
|
22
22
|
import "../../../chunk-E36IC3LU.js";
|
|
@@ -26,7 +26,7 @@ import "../../../chunk-IKQMSROV.js";
|
|
|
26
26
|
import {
|
|
27
27
|
cn
|
|
28
28
|
} from "../../../chunk-A3MTTRCX.js";
|
|
29
|
-
import "../../../chunk-
|
|
29
|
+
import "../../../chunk-CG6CJMIS.js";
|
|
30
30
|
import "../../../chunk-W6KAUGXO.js";
|
|
31
31
|
import {
|
|
32
32
|
formatRelativeTime
|
|
@@ -35,7 +35,8 @@ import "../../../chunk-KS57MLGE.js";
|
|
|
35
35
|
import "../../../chunk-6NXQCOLD.js";
|
|
36
36
|
import "../../../chunk-A3KMTJZS.js";
|
|
37
37
|
import "../../../chunk-F2RMKGDQ.js";
|
|
38
|
-
import "../../../chunk-
|
|
38
|
+
import "../../../chunk-PPSVFNEA.js";
|
|
39
|
+
import "../../../chunk-GLCOKWLH.js";
|
|
39
40
|
import "../../../chunk-6AFSZKZA.js";
|
|
40
41
|
import "../../../chunk-AW3QEFOF.js";
|
|
41
42
|
import "../../../chunk-HEVQKE27.js";
|
|
@@ -52,11 +53,11 @@ import "../../../chunk-CFEFYPNR.js";
|
|
|
52
53
|
import "../../../chunk-SJGAHTY5.js";
|
|
53
54
|
import "../../../chunk-4NHJ6EXL.js";
|
|
54
55
|
import "../../../chunk-TXS65BB2.js";
|
|
55
|
-
import "../../../chunk-
|
|
56
|
+
import "../../../chunk-ZEVJGMNB.js";
|
|
56
57
|
|
|
57
58
|
// src/app/components/command-menu/chat-switcher.tsx
|
|
58
59
|
import { MessageSquareIcon, PinIcon } from "lucide-react";
|
|
59
|
-
import { useEffect, useRef } from "react";
|
|
60
|
+
import { Fragment, useEffect, useRef } from "react";
|
|
60
61
|
import { createPortal } from "react-dom";
|
|
61
62
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
62
63
|
function chatIcon(record) {
|
|
@@ -64,14 +65,19 @@ function chatIcon(record) {
|
|
|
64
65
|
}
|
|
65
66
|
function ChatSwitcher(props) {
|
|
66
67
|
const listRef = useRef(null);
|
|
67
|
-
const { index, visible } = props.state;
|
|
68
|
+
const { index, visible, viewed } = props.state;
|
|
68
69
|
useChatStatusRefresh({
|
|
69
70
|
subjectId: props.subjectId,
|
|
70
71
|
workspaceId: props.workspaceId,
|
|
71
72
|
ids: props.state.ids,
|
|
72
73
|
active: true
|
|
73
74
|
});
|
|
74
|
-
useChatDirectoryVersion(props.subjectId);
|
|
75
|
+
const version = useChatDirectoryVersion(props.subjectId);
|
|
76
|
+
const onDirectoryChange = useRef(props.onDirectoryChange);
|
|
77
|
+
onDirectoryChange.current = props.onDirectoryChange;
|
|
78
|
+
useEffect(() => {
|
|
79
|
+
onDirectoryChange.current();
|
|
80
|
+
}, [version]);
|
|
75
81
|
useEffect(() => {
|
|
76
82
|
if (!visible) return;
|
|
77
83
|
listRef.current?.querySelector(`[data-switcher-index="${index}"]`)?.scrollIntoView({ block: "nearest" });
|
|
@@ -117,7 +123,7 @@ function ChatSwitcher(props) {
|
|
|
117
123
|
const selected = position === index;
|
|
118
124
|
const meta = id === props.currentChatId ? "Open now" : record?.updatedAt ? formatRelativeTime(record.updatedAt, { now }) : void 0;
|
|
119
125
|
const elsewhere = record && record.workspaceId !== props.workspaceId ? workspaceNames.get(record.workspaceId) ?? null : null;
|
|
120
|
-
|
|
126
|
+
const row = /* @__PURE__ */ jsxs(
|
|
121
127
|
"div",
|
|
122
128
|
{
|
|
123
129
|
id: `og-chat-switcher-${position}`,
|
|
@@ -156,6 +162,17 @@ function ChatSwitcher(props) {
|
|
|
156
162
|
},
|
|
157
163
|
id
|
|
158
164
|
);
|
|
165
|
+
return position === viewed && viewed > 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
166
|
+
/* @__PURE__ */ jsx(
|
|
167
|
+
"div",
|
|
168
|
+
{
|
|
169
|
+
role: "presentation",
|
|
170
|
+
className: "mt-1 border-t border-border px-2.5 pt-2.5 pb-1 text-xs leading-4.5 font-medium text-fg-muted",
|
|
171
|
+
children: "Recently active"
|
|
172
|
+
}
|
|
173
|
+
),
|
|
174
|
+
row
|
|
175
|
+
] }, id) : row;
|
|
159
176
|
})
|
|
160
177
|
}
|
|
161
178
|
),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/app/components/command-menu/chat-switcher.tsx"],"sourcesContent":["/**\n * The Control+Tab chat switcher's list: recently viewed chats in the middle of\n * the window while Control is held. The actions provider owns the keys and\n * the selection; this only draws it. Focus never moves here, so releasing\n * Control (and the chat being switched to) behaves exactly as without it.\n */\nimport { MessageSquareIcon, PinIcon, type LucideIcon } from \"lucide-react\";\nimport { useEffect, useRef } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport type { ChatRecord } from \"../../lib/actions/chat-directory\";\nimport { readChatDirectory, useChatDirectoryVersion } from \"../../lib/actions/chat-directory\";\nimport type { ChatSwitcherState } from \"../../lib/actions/chat-switcher\";\nimport type { ChordPlatform } from \"../../lib/actions/chords\";\nimport type { WorkspaceChoice } from \"../../lib/actions/registry\";\nimport { cn } from \"../../lib/utils\";\nimport { formatRelativeTime } from \"../../../ui/relative-time\";\nimport { currentChatStatus } from \"../../lib/actions/chat-status\";\nimport { ChatStatusMarks, useChatStatusRefresh } from \"./chat-status\";\nimport { Keycaps } from \"./keycaps\";\nimport { WorkspaceTag } from \"./workspace-tag\";\n\nfunction chatIcon(record: ChatRecord | undefined): LucideIcon {\n return record?.pinned ? PinIcon : MessageSquareIcon;\n}\n\nexport default function ChatSwitcher(props: {\n state: ChatSwitcherState;\n subjectId: string;\n workspaceId: string;\n workspaces: readonly WorkspaceChoice[];\n currentChatId: string | null;\n platform: ChordPlatform;\n onHover(index: number): void;\n onPick(index: number): void;\n onDismiss(): void;\n}) {\n const listRef = useRef<HTMLDivElement>(null);\n const { index, visible } = props.state;\n // Read statuses as soon as Control+Tab is pressed, before the list shows.\n useChatStatusRefresh({\n subjectId: props.subjectId,\n workspaceId: props.workspaceId,\n ids: props.state.ids,\n active: true,\n });\n useChatDirectoryVersion(props.subjectId);\n useEffect(() => {\n if (!visible) return;\n listRef.current\n ?.querySelector<HTMLElement>(`[data-switcher-index=\"${index}\"]`)\n ?.scrollIntoView({ block: \"nearest\" });\n }, [index, visible]);\n if (!visible || typeof document === \"undefined\") return null;\n const directory = readChatDirectory(props.subjectId, props.workspaceId);\n const now = Date.now();\n const sidebarIds = new Set([...directory.sidebarOrder, ...directory.pinnedOrder]);\n const workspaceNames = new Map(\n props.workspaces.map((workspace) => [workspace.id, workspace.name]),\n );\n const activeId = `og-chat-switcher-${index}`;\n return createPortal(\n <div\n data-og-chat-switcher=\"\"\n // A light dim, as under ⌘K, lifts the list off the chat behind it.\n className=\"fixed inset-0 z-50 flex items-center justify-center bg-black/15 p-4 animate-in fade-in-0 duration-[100ms] dark:bg-black/40\"\n // A click outside the list puts it away without switching.\n onPointerDown={(event) => {\n if (event.target === event.currentTarget) props.onDismiss();\n }}\n >\n <div\n className={cn(\n \"flex max-h-[min(480px,70dvh)] w-full max-w-[440px] flex-col overflow-hidden\",\n \"rounded-2xl border border-border bg-surface text-fg shadow-og-lg\",\n \"animate-in fade-in-0 zoom-in-98 duration-[100ms]\",\n )}\n >\n <div className=\"px-4 pt-3 pb-1 text-xs leading-4.5 font-medium text-fg-muted\">\n Recent chats\n </div>\n <div\n ref={listRef}\n role=\"listbox\"\n aria-label=\"Recent chats\"\n aria-activedescendant={activeId}\n className=\"min-h-0 flex-1 overflow-y-auto px-1.5 pb-1.5\"\n >\n {props.state.ids.map((id, position) => {\n const record = directory.rows.get(id);\n const Icon = chatIcon(record);\n const selected = position === index;\n const meta =\n id === props.currentChatId\n ? \"Open now\"\n : record?.updatedAt\n ? formatRelativeTime(record.updatedAt, { now })\n : undefined;\n // Chats in other workspaces say where they are.\n const elsewhere =\n record && record.workspaceId !== props.workspaceId\n ? (workspaceNames.get(record.workspaceId) ?? null)\n : null;\n return (\n <div\n key={id}\n id={`og-chat-switcher-${position}`}\n data-switcher-index={position}\n role=\"option\"\n aria-selected={selected}\n onPointerMove={() => {\n if (!selected) props.onHover(position);\n }}\n // Control+click is a right-click on a Mac: pick on release, and\n // keep the context menu away.\n onPointerUp={(event) => {\n if (event.button === 0) props.onPick(position);\n }}\n onContextMenu={(event) => event.preventDefault()}\n className={cn(\n \"flex min-h-9 w-full min-w-0 cursor-default items-center gap-2.5 rounded-[10px] px-2.5 py-1.5 text-sm text-fg-label select-none\",\n selected ? \"bg-hover text-fg\" : null,\n )}\n >\n <Icon\n aria-hidden=\"true\"\n className={cn(\"size-4 shrink-0\", selected ? \"text-fg\" : \"text-fg-muted\")}\n />\n <span className=\"min-w-0 flex-1 truncate\">{record?.title ?? \"Untitled chat\"}</span>\n {elsewhere ? <WorkspaceTag name={elsewhere} /> : null}\n <ChatStatusMarks\n status={record ? currentChatStatus(record, sidebarIds, now) : null}\n />\n {meta ? (\n <span className=\"shrink-0 text-xs text-fg-muted tabular-nums\">{meta}</span>\n ) : null}\n </div>\n );\n })}\n </div>\n <div className=\"flex shrink-0 items-center gap-4 border-t border-border px-4 py-2 text-xs text-fg-muted\">\n <span className=\"inline-flex items-center gap-1.5\">\n <Keycaps\n chord={{ code: \"Tab\", control: true, mod: props.platform !== \"mac\" }}\n platform={props.platform}\n />\n Next\n </span>\n <span className=\"inline-flex items-center gap-1.5\">\n <Keycaps\n chord={{ code: \"Tab\", control: true, mod: props.platform !== \"mac\", shift: true }}\n platform={props.platform}\n />\n Back\n </span>\n <span className=\"ml-auto\">Release to open</span>\n </div>\n </div>\n </div>,\n document.body,\n );\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/app/components/command-menu/chat-switcher.tsx"],"sourcesContent":["/**\n * The Control+Tab chat switcher's list: recently viewed chats in the middle of\n * the window while Control is held. The actions provider owns the keys and\n * the selection; this only draws it. Focus never moves here, so releasing\n * Control (and the chat being switched to) behaves exactly as without it.\n */\nimport { MessageSquareIcon, PinIcon, type LucideIcon } from \"lucide-react\";\nimport { Fragment, useEffect, useRef } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport type { ChatRecord } from \"../../lib/actions/chat-directory\";\nimport { readChatDirectory, useChatDirectoryVersion } from \"../../lib/actions/chat-directory\";\nimport type { ChatSwitcherState } from \"../../lib/actions/chat-switcher\";\nimport type { ChordPlatform } from \"../../lib/actions/chords\";\nimport type { WorkspaceChoice } from \"../../lib/actions/registry\";\nimport { cn } from \"../../lib/utils\";\nimport { formatRelativeTime } from \"../../../ui/relative-time\";\nimport { currentChatStatus } from \"../../lib/actions/chat-status\";\nimport { ChatStatusMarks, useChatStatusRefresh } from \"./chat-status\";\nimport { Keycaps } from \"./keycaps\";\nimport { WorkspaceTag } from \"./workspace-tag\";\n\nfunction chatIcon(record: ChatRecord | undefined): LucideIcon {\n return record?.pinned ? PinIcon : MessageSquareIcon;\n}\n\nexport default function ChatSwitcher(props: {\n state: ChatSwitcherState;\n subjectId: string;\n workspaceId: string;\n workspaces: readonly WorkspaceChoice[];\n currentChatId: string | null;\n platform: ChordPlatform;\n onHover(index: number): void;\n /** The app learned about more chats; the list may grow at its end. */\n onDirectoryChange(): void;\n onPick(index: number): void;\n onDismiss(): void;\n}) {\n const listRef = useRef<HTMLDivElement>(null);\n const { index, visible, viewed } = props.state;\n // Read statuses as soon as Control+Tab is pressed, before the list shows.\n useChatStatusRefresh({\n subjectId: props.subjectId,\n workspaceId: props.workspaceId,\n ids: props.state.ids,\n active: true,\n });\n const version = useChatDirectoryVersion(props.subjectId);\n const onDirectoryChange = useRef(props.onDirectoryChange);\n onDirectoryChange.current = props.onDirectoryChange;\n useEffect(() => {\n onDirectoryChange.current();\n }, [version]);\n useEffect(() => {\n if (!visible) return;\n listRef.current\n ?.querySelector<HTMLElement>(`[data-switcher-index=\"${index}\"]`)\n ?.scrollIntoView({ block: \"nearest\" });\n }, [index, visible]);\n if (!visible || typeof document === \"undefined\") return null;\n const directory = readChatDirectory(props.subjectId, props.workspaceId);\n const now = Date.now();\n const sidebarIds = new Set([...directory.sidebarOrder, ...directory.pinnedOrder]);\n const workspaceNames = new Map(\n props.workspaces.map((workspace) => [workspace.id, workspace.name]),\n );\n const activeId = `og-chat-switcher-${index}`;\n return createPortal(\n <div\n data-og-chat-switcher=\"\"\n // A light dim, as under ⌘K, lifts the list off the chat behind it.\n className=\"fixed inset-0 z-50 flex items-center justify-center bg-black/15 p-4 animate-in fade-in-0 duration-[100ms] dark:bg-black/40\"\n // A click outside the list puts it away without switching.\n onPointerDown={(event) => {\n if (event.target === event.currentTarget) props.onDismiss();\n }}\n >\n <div\n className={cn(\n \"flex max-h-[min(480px,70dvh)] w-full max-w-[440px] flex-col overflow-hidden\",\n \"rounded-2xl border border-border bg-surface text-fg shadow-og-lg\",\n \"animate-in fade-in-0 zoom-in-98 duration-[100ms]\",\n )}\n >\n <div className=\"px-4 pt-3 pb-1 text-xs leading-4.5 font-medium text-fg-muted\">\n Recent chats\n </div>\n <div\n ref={listRef}\n role=\"listbox\"\n aria-label=\"Recent chats\"\n aria-activedescendant={activeId}\n className=\"min-h-0 flex-1 overflow-y-auto px-1.5 pb-1.5\"\n >\n {props.state.ids.map((id, position) => {\n const record = directory.rows.get(id);\n const Icon = chatIcon(record);\n const selected = position === index;\n const meta =\n id === props.currentChatId\n ? \"Open now\"\n : record?.updatedAt\n ? formatRelativeTime(record.updatedAt, { now })\n : undefined;\n // Chats in other workspaces say where they are.\n const elsewhere =\n record && record.workspaceId !== props.workspaceId\n ? (workspaceNames.get(record.workspaceId) ?? null)\n : null;\n const row = (\n <div\n key={id}\n id={`og-chat-switcher-${position}`}\n data-switcher-index={position}\n role=\"option\"\n aria-selected={selected}\n onPointerMove={() => {\n if (!selected) props.onHover(position);\n }}\n // Control+click is a right-click on a Mac: pick on release, and\n // keep the context menu away.\n onPointerUp={(event) => {\n if (event.button === 0) props.onPick(position);\n }}\n onContextMenu={(event) => event.preventDefault()}\n className={cn(\n \"flex min-h-9 w-full min-w-0 cursor-default items-center gap-2.5 rounded-[10px] px-2.5 py-1.5 text-sm text-fg-label select-none\",\n selected ? \"bg-hover text-fg\" : null,\n )}\n >\n <Icon\n aria-hidden=\"true\"\n className={cn(\"size-4 shrink-0\", selected ? \"text-fg\" : \"text-fg-muted\")}\n />\n <span className=\"min-w-0 flex-1 truncate\">{record?.title ?? \"Untitled chat\"}</span>\n {elsewhere ? <WorkspaceTag name={elsewhere} /> : null}\n <ChatStatusMarks\n status={record ? currentChatStatus(record, sidebarIds, now) : null}\n />\n {meta ? (\n <span className=\"shrink-0 text-xs text-fg-muted tabular-nums\">{meta}</span>\n ) : null}\n </div>\n );\n // Past the chats the person opened, the list goes on by activity.\n return position === viewed && viewed > 0 ? (\n <Fragment key={id}>\n <div\n role=\"presentation\"\n className=\"mt-1 border-t border-border px-2.5 pt-2.5 pb-1 text-xs leading-4.5 font-medium text-fg-muted\"\n >\n Recently active\n </div>\n {row}\n </Fragment>\n ) : (\n row\n );\n })}\n </div>\n <div className=\"flex shrink-0 items-center gap-4 border-t border-border px-4 py-2 text-xs text-fg-muted\">\n <span className=\"inline-flex items-center gap-1.5\">\n <Keycaps\n chord={{ code: \"Tab\", control: true, mod: props.platform !== \"mac\" }}\n platform={props.platform}\n />\n Next\n </span>\n <span className=\"inline-flex items-center gap-1.5\">\n <Keycaps\n chord={{ code: \"Tab\", control: true, mod: props.platform !== \"mac\", shift: true }}\n platform={props.platform}\n />\n Back\n </span>\n <span className=\"ml-auto\">Release to open</span>\n </div>\n </div>\n </div>,\n document.body,\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -3,17 +3,17 @@ import {
|
|
|
3
3
|
ChatStatusMarks,
|
|
4
4
|
currentChatStatus,
|
|
5
5
|
useChatStatusRefresh
|
|
6
|
-
} from "../../../chunk-
|
|
6
|
+
} from "../../../chunk-IG2ERMSB.js";
|
|
7
7
|
import {
|
|
8
8
|
WorkspaceTag
|
|
9
9
|
} from "../../../chunk-IX3NMGIP.js";
|
|
10
|
-
import "../../../chunk-7EGWIME2.js";
|
|
11
10
|
import {
|
|
12
11
|
actionIcon,
|
|
13
12
|
actionTitle,
|
|
14
13
|
appActions,
|
|
15
14
|
useAppActions
|
|
16
|
-
} from "../../../chunk-
|
|
15
|
+
} from "../../../chunk-YWP2H7SX.js";
|
|
16
|
+
import "../../../chunk-7EGWIME2.js";
|
|
17
17
|
import {
|
|
18
18
|
Keycaps
|
|
19
19
|
} from "../../../chunk-OHGG2G3A.js";
|
|
@@ -25,21 +25,21 @@ import {
|
|
|
25
25
|
rememberChats,
|
|
26
26
|
useChatDirectoryVersion
|
|
27
27
|
} from "../../../chunk-NML44AW2.js";
|
|
28
|
-
import "../../../chunk-
|
|
29
|
-
import "../../../chunk-OSI2QWSL.js";
|
|
30
|
-
import "../../../chunk-CPKD2YGK.js";
|
|
31
|
-
import "../../../chunk-UBJWSGD4.js";
|
|
32
|
-
import "../../../chunk-K3TJNJSU.js";
|
|
33
|
-
import "../../../chunk-E36IC3LU.js";
|
|
34
|
-
import "../../../chunk-6VITVQ23.js";
|
|
28
|
+
import "../../../chunk-SHJ5SQOW.js";
|
|
35
29
|
import "../../../chunk-MMY23KS7.js";
|
|
30
|
+
import "../../../chunk-HQA6FUM5.js";
|
|
31
|
+
import "../../../chunk-WGPLDFEC.js";
|
|
36
32
|
import "../../../chunk-TXIIBNCA.js";
|
|
33
|
+
import "../../../chunk-O5S57N6H.js";
|
|
34
|
+
import "../../../chunk-OSI2QWSL.js";
|
|
37
35
|
import "../../../chunk-3RWVKGQM.js";
|
|
38
36
|
import "../../../chunk-XXZKL5UI.js";
|
|
39
37
|
import "../../../chunk-7ZEGSUR7.js";
|
|
40
|
-
import "../../../chunk-WGPLDFEC.js";
|
|
41
|
-
import "../../../chunk-HQA6FUM5.js";
|
|
42
38
|
import "../../../chunk-H5M33DAL.js";
|
|
39
|
+
import "../../../chunk-RNU5CUPI.js";
|
|
40
|
+
import "../../../chunk-UBJWSGD4.js";
|
|
41
|
+
import "../../../chunk-K3TJNJSU.js";
|
|
42
|
+
import "../../../chunk-E36IC3LU.js";
|
|
43
43
|
import "../../../chunk-NS3HKFUX.js";
|
|
44
44
|
import "../../../chunk-KJJBQ3KV.js";
|
|
45
45
|
import "../../../chunk-FABYS4WM.js";
|
|
@@ -52,7 +52,7 @@ import {
|
|
|
52
52
|
DialogPortal
|
|
53
53
|
} from "../../../chunk-HZUL2CUH.js";
|
|
54
54
|
import "../../../chunk-I7NCHCA7.js";
|
|
55
|
-
import "../../../chunk-
|
|
55
|
+
import "../../../chunk-CG6CJMIS.js";
|
|
56
56
|
import "../../../chunk-FIDD34ZF.js";
|
|
57
57
|
import "../../../chunk-74JEZLLQ.js";
|
|
58
58
|
import "../../../chunk-YG6NARQY.js";
|
|
@@ -74,7 +74,8 @@ import {
|
|
|
74
74
|
rankLabel,
|
|
75
75
|
rankWithKeywords
|
|
76
76
|
} from "../../../chunk-F2RMKGDQ.js";
|
|
77
|
-
import "../../../chunk-
|
|
77
|
+
import "../../../chunk-PPSVFNEA.js";
|
|
78
|
+
import "../../../chunk-GLCOKWLH.js";
|
|
78
79
|
import "../../../chunk-6AFSZKZA.js";
|
|
79
80
|
import "../../../chunk-AW3QEFOF.js";
|
|
80
81
|
import "../../../chunk-HEVQKE27.js";
|
|
@@ -92,7 +93,7 @@ import "../../../chunk-CFEFYPNR.js";
|
|
|
92
93
|
import "../../../chunk-SJGAHTY5.js";
|
|
93
94
|
import "../../../chunk-4NHJ6EXL.js";
|
|
94
95
|
import "../../../chunk-TXS65BB2.js";
|
|
95
|
-
import "../../../chunk-
|
|
96
|
+
import "../../../chunk-ZEVJGMNB.js";
|
|
96
97
|
|
|
97
98
|
// src/app/components/command-menu/command-menu.tsx
|
|
98
99
|
import {
|