@opengeni/react 4.2.1-canary.39642758903001 → 4.3.1
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 +27 -27
- package/dist/app/components/Composer.js +27 -26
- package/dist/app/components/agent/agent-capability-picker.js +5 -5
- package/dist/app/components/artifacts/artifact-library.js +19 -19
- package/dist/app/components/artifacts/chat-interactive-block.js +16 -16
- package/dist/app/components/artifacts/inline-chat-image.js +31 -30
- package/dist/app/components/artifacts/retained-file-preview.js +35 -34
- package/dist/app/components/artifacts/retained-text-preview.js +5 -5
- package/dist/app/components/artifacts/site-audience.js +5 -5
- package/dist/app/components/artifacts/site-conversations.js +24 -22
- package/dist/app/components/artifacts/site-data.js +20 -20
- package/dist/app/components/artifacts/site-publishing.js +39 -39
- package/dist/app/components/artifacts/site-settings.js +48 -48
- package/dist/app/components/billing-class-mark.js +5 -5
- package/dist/app/components/capabilities/capability-detail-sheet.js +9 -9
- package/dist/app/components/capabilities/capability-logo-source.js +13 -12
- package/dist/app/components/capabilities/connection-account-picker.js +2 -2
- package/dist/app/components/capabilities/connector-tool-permissions.js +5 -5
- package/dist/app/components/capabilities/native-connect-setup.js +14 -13
- package/dist/app/components/capabilities/native-connect-setup.js.map +1 -1
- package/dist/app/components/capabilities/perform-capability-action.js +3 -3
- package/dist/app/components/capabilities/prepared-mcp-setup-card.js +15 -14
- package/dist/app/components/capabilities/session-capability-card.js +78 -77
- package/dist/app/components/capabilities/session-capability-card.js.map +1 -1
- package/dist/app/components/capabilities/session-custom-mcp-card.js +20 -19
- package/dist/app/components/capabilities/session-github-card.js +25 -24
- package/dist/app/components/capabilities/session-machine-card.js +38 -38
- package/dist/app/components/capabilities/use-capabilities-catalog.js +3 -3
- package/dist/app/components/capabilities/use-connection-accounts.js +1 -1
- package/dist/app/components/command-menu/chat-switcher.d.ts +12 -0
- package/dist/app/components/command-menu/chat-switcher.js +142 -0
- package/dist/app/components/command-menu/chat-switcher.js.map +1 -0
- package/dist/app/components/command-menu/command-menu.d.ts +15 -0
- package/dist/app/components/command-menu/command-menu.js +812 -0
- package/dist/app/components/command-menu/command-menu.js.map +1 -0
- package/dist/app/components/command-menu/keycaps.d.ts +21 -0
- package/dist/app/components/command-menu/keycaps.js +12 -0
- package/dist/app/components/command-menu/shortcut-sheet.d.ts +12 -0
- package/dist/app/components/command-menu/shortcut-sheet.js +150 -0
- package/dist/app/components/command-menu/shortcut-sheet.js.map +1 -0
- package/dist/app/components/composer-capabilities-menu-body.js +3 -3
- package/dist/app/components/composer-mobile-plus-panel.js +21 -21
- package/dist/app/components/composer-mobile-plus.js +3 -3
- package/dist/app/components/credit-required-gate.js +1 -1
- package/dist/app/components/credit-required-prompt.js +16 -16
- package/dist/app/components/credits/coupon-redeem.js +2 -2
- package/dist/app/components/credits/credit-refusal-notice.d.ts +18 -0
- package/dist/app/components/credits/credit-refusal-notice.js +17 -0
- package/dist/app/components/cross-slot-deep-link-recovery.js +1 -1
- package/dist/app/components/desktop/app-shots.js +6 -6
- package/dist/app/components/desktop/this-computer.js +4 -4
- package/dist/app/components/feedback.js +5 -5
- package/dist/app/components/follow-up-repository-menu-body.js +7 -7
- package/dist/app/components/follow-up-repository-picker.js +3 -3
- package/dist/app/components/github-app-connect-launcher.js +1 -1
- package/dist/app/components/knowledge/agent-learning-settings.js +6 -6
- package/dist/app/components/machines/connect-machine-dialog.js +18 -18
- package/dist/app/components/manual-repository-editor.js +2 -2
- package/dist/app/components/markdown.js +10 -9
- package/dist/app/components/message-context-pills.js +2 -2
- package/dist/app/components/models/models-ui.js +10 -10
- package/dist/app/components/pickers.js +10 -10
- package/dist/app/components/rail/rail-context.d.ts +6 -0
- package/dist/app/components/rail/rail-context.js +3 -3
- package/dist/app/components/rail/rail-sections.js +61 -55
- package/dist/app/components/rail/session-browse-order-controls.js +2 -2
- package/dist/app/components/rail/session-header.js +50 -36
- package/dist/app/components/rail/session-list.js +59 -52
- package/dist/app/components/rail/session-row-hover-details.js +25 -23
- package/dist/app/components/rail/session-shell.js +96 -91
- package/dist/app/components/repository-picker.js +7 -7
- package/dist/app/components/secrets/session-secrets-panel.js +4 -4
- package/dist/app/components/session/agent-configuration-panel.js +34 -34
- package/dist/app/components/session/banners.js +12 -11
- package/dist/app/components/session/codex-account-indicator.js +12 -12
- package/dist/app/components/session/composer-menu-radio.js +2 -2
- package/dist/app/components/session/conversation-find.js +1 -1
- package/dist/app/components/session/editable-artifacts-workspace.js +45 -45
- package/dist/app/components/session/failed-session-banner.js +12 -12
- package/dist/app/components/session/human-input.js +48 -47
- package/dist/app/components/session/inspector.js +80 -79
- package/dist/app/components/session/inspector.js.map +1 -1
- package/dist/app/components/session/message-actions.js +5 -5
- package/dist/app/components/session/message-resource-attachments.js +21 -20
- package/dist/app/components/session/message-resource-attachments.js.map +1 -1
- package/dist/app/components/session/model-account-indicator.js +11 -11
- package/dist/app/components/session/model-context-inspector.js +2 -2
- package/dist/app/components/session/model-recovery-notice.js +3 -3
- package/dist/app/components/session/new-session-settings-menu.js +13 -13
- package/dist/app/components/session/sandbox-switcher.js +16 -16
- package/dist/app/components/session/sandbox-workspace.js +68 -67
- package/dist/app/components/session/search-markdown-highlight.js +11 -10
- package/dist/app/components/session/search-results-view.js +12 -11
- package/dist/app/components/session/session-admin-access.js +11 -11
- package/dist/app/components/session/session-retention.js +4 -4
- package/dist/app/components/session/session-search-dialog.d.ts +5 -0
- package/dist/app/components/session/session-search-dialog.js +22 -12
- package/dist/app/components/session/session-search-dialog.js.map +1 -1
- package/dist/app/components/session/session-skill-reviews.js +3 -3
- package/dist/app/components/session/session-tenancy-control.js +25 -25
- package/dist/app/components/session/session-usage-limit-section.js +9 -9
- package/dist/app/components/session/session-wait-status.js +11 -9
- package/dist/app/components/session/session-wait-status.js.map +1 -1
- package/dist/app/components/session/subagents.js +17 -15
- package/dist/app/components/session/subscription-account-menu.js +2 -2
- package/dist/app/components/session-connectors-menu-body.js +6 -6
- package/dist/app/components/settings/row-select.js +1 -1
- package/dist/app/components/transcription-settings.js +2 -2
- package/dist/app/components/ui/destructive-confirm.js +8 -8
- package/dist/app/components/usage/usage-entry.js +6 -6
- package/dist/app/components/workspace-composer-plus.js +22 -21
- package/dist/app/embed/session-app.js +264 -258
- package/dist/app/lib/actions/actions-provider.d.ts +30 -0
- package/dist/app/lib/actions/actions-provider.js +32 -0
- package/dist/app/lib/actions/chat-directory.d.ts +30 -0
- package/dist/app/lib/actions/chat-operations.d.ts +11 -0
- package/dist/app/lib/actions/chat-switcher.d.ts +31 -0
- package/dist/app/lib/actions/chords.d.ts +40 -0
- package/dist/app/lib/actions/events.d.ts +6 -0
- package/dist/app/lib/actions/rank.d.ts +17 -0
- package/dist/app/lib/actions/registry.d.ts +71 -0
- package/dist/app/lib/codex-usage-query.js +3 -3
- package/dist/app/lib/composer-connectors.js +14 -13
- package/dist/app/lib/console-text.js +2 -2
- package/dist/app/lib/credit-coverage.d.ts +21 -0
- package/dist/app/lib/credit-coverage.js +15 -0
- package/dist/app/lib/deployment-free-model.js +2 -2
- package/dist/app/lib/events.js +19 -18
- package/dist/app/lib/failed-session-copy.js +5 -5
- package/dist/app/lib/free-credit-gap.d.ts +9 -0
- package/dist/app/lib/free-credit-gap.js +4 -2
- package/dist/app/lib/integration-connect-analytics.d.ts +1 -1
- package/dist/app/lib/integration-connect-analytics.js +1 -1
- package/dist/app/lib/integration-connect-redirect.js +1 -1
- package/dist/app/lib/model-access-onboarding.js +4 -4
- package/dist/app/lib/model-policy.js +1 -1
- package/dist/app/lib/models-route.d.ts +6 -2
- package/dist/app/lib/models-route.js +6 -3
- package/dist/app/lib/models-route.js.map +1 -1
- package/dist/app/lib/move-chat-to-machine.js +3 -3
- package/dist/app/lib/session-branch-cache.js +15 -13
- package/dist/app/lib/session-create.js +2 -2
- package/dist/app/lib/session-group-pagination.js +15 -13
- package/dist/app/lib/session-hover-facts.js +16 -14
- package/dist/app/lib/session-model.js +3 -3
- package/dist/app/lib/session-rail.js +11 -9
- package/dist/app/lib/session-rename.js +3 -3
- package/dist/app/lib/session-search-route.d.ts +1 -1
- package/dist/app/lib/session-search-route.js +1 -1
- package/dist/app/lib/session-ui-features.d.ts +11 -3
- package/dist/app/lib/session-ui-features.js +1 -1
- package/dist/app/lib/sessions-group.js +15 -13
- package/dist/app/lib/turn-failure-analytics.js +7 -7
- package/dist/app/lib/unavailable-session-model.js +2 -2
- package/dist/app/lib/use-duplicate-site.js +2 -2
- package/dist/app/lib/use-follow-up-repositories.js +3 -3
- package/dist/app/lib/use-workspace-machines.js +8 -8
- package/dist/app/lib/use-workspace-model-catalog.js +6 -6
- package/dist/app/lib/use-workspace-rigs.js +4 -4
- package/dist/app/lib/workspace-navigation-preference.js +5 -5
- package/dist/app/lib/workspace-scope-context.js +4 -4
- package/dist/app/routes/artifacts.js +124 -122
- package/dist/app/routes/artifacts.js.map +1 -1
- package/dist/app/routes/retained-artifact.js +69 -68
- package/dist/app/routes/retained-artifact.js.map +1 -1
- package/dist/app/routes/session-unavailable.js +3 -3
- package/dist/app/routes/session.js +168 -166
- package/dist/app/routes/sessions-index-hydration.js +3 -3
- package/dist/app/routes/sessions-index.js +122 -116
- 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 +39 -39
- package/dist/{browser-viewer-ZRFZX3VN.js → browser-viewer-HPUMK7UP.js} +7 -7
- package/dist/{chat-interactive-block-HUMYWVCK.js → chat-interactive-block-22PPECCT.js} +6 -6
- package/dist/{chunk-GVIQ7H62.js → chunk-2LUBBDZV.js} +5 -5
- package/dist/{chunk-SWWYYGQO.js → chunk-325C2TCI.js} +5 -2
- package/dist/chunk-325C2TCI.js.map +1 -0
- package/dist/{chunk-XMMVIY7B.js → chunk-3CCJWHQY.js} +2 -2
- package/dist/{chunk-XS2FZ6DX.js → chunk-3F5ZPIWI.js} +2 -2
- package/dist/{chunk-72US6QNB.js → chunk-3J2YZRY5.js} +2 -2
- package/dist/{chunk-D4YQF4E3.js → chunk-3SMJ2BIQ.js} +2 -2
- package/dist/{chunk-TBJINQXA.js → chunk-3WCYK36X.js} +17 -17
- package/dist/{chunk-WPCF34V6.js → chunk-3WG3CRL7.js} +14 -14
- package/dist/{chunk-JI5BYQKO.js → chunk-3X46PNBX.js} +14 -14
- package/dist/{chunk-UO36FC3S.js → chunk-46I7MMAL.js} +6 -2
- package/dist/chunk-46I7MMAL.js.map +1 -0
- package/dist/{chunk-PBK44WJC.js → chunk-4GJ37O6G.js} +2 -2
- package/dist/chunk-4IWBQUQU.js +152 -0
- package/dist/chunk-4IWBQUQU.js.map +1 -0
- package/dist/{chunk-LEXPBQ56.js → chunk-4SKJX3C4.js} +6 -6
- package/dist/{chunk-ZA6YD2LW.js → chunk-57SYK776.js} +2 -2
- package/dist/{chunk-22LBKJDE.js → chunk-5DIAN5GQ.js} +12 -12
- package/dist/{chunk-LJ3TDK2L.js → chunk-5FA455GR.js} +4 -4
- package/dist/{chunk-N2BEUKXT.js → chunk-5FBZDEHE.js} +228 -228
- package/dist/chunk-5FBZDEHE.js.map +1 -0
- package/dist/{chunk-YPR5INHV.js → chunk-5X3E2Z3D.js} +4 -4
- package/dist/{chunk-OXNWZTEU.js → chunk-5ZJCL6X4.js} +5 -5
- package/dist/{chunk-62OAZ4LO.js → chunk-6C5GQQMC.js} +12 -12
- package/dist/{chunk-VGITH57T.js → chunk-6ERTXDZM.js} +4 -4
- package/dist/{chunk-ZQ7XQZCF.js → chunk-6FX73Y4I.js} +8 -8
- package/dist/{chunk-QZO2KK2F.js → chunk-6P44NG6Y.js} +2 -2
- package/dist/{chunk-N2DDJLTM.js → chunk-6T7Y33JA.js} +3 -3
- package/dist/{chunk-RBAGC2MJ.js → chunk-75VE5QUS.js} +22 -22
- package/dist/{chunk-MRXOGI3O.js → chunk-77CUDSHG.js} +9 -9
- package/dist/{chunk-F2GXK2Z6.js → chunk-7G446JFO.js} +431 -348
- package/dist/chunk-7G446JFO.js.map +1 -0
- package/dist/{chunk-GZ65XQR5.js → chunk-7T7FHSGS.js} +3 -3
- package/dist/{chunk-YGAH34CD.js → chunk-A3S26JSP.js} +8 -8
- package/dist/{chunk-GYPAO6RS.js → chunk-A664GSDM.js} +8 -8
- package/dist/{chunk-JSZSNMDR.js → chunk-ASUYLXKO.js} +2 -2
- package/dist/{chunk-RTK7SUPL.js → chunk-AUUJLVA3.js} +7 -7
- package/dist/{chunk-OOTBYSCA.js → chunk-BBWKPNJB.js} +5 -5
- package/dist/{chunk-BGZIMIUU.js → chunk-BCUYWOQU.js} +2 -2
- package/dist/{chunk-EKN4N4LS.js → chunk-BDFMNJZJ.js} +2 -2
- package/dist/{chunk-YZKGOWCC.js → chunk-BIDXQAGO.js} +2 -2
- package/dist/{chunk-Q2UUANHF.js → chunk-BIKAJ4DY.js} +5 -5
- package/dist/{chunk-5IQBF2X3.js → chunk-BJPJ2OUX.js} +3 -3
- package/dist/{chunk-EY2EMHZW.js → chunk-BPM2OTYK.js} +8 -8
- package/dist/{chunk-MT4TBRQB.js → chunk-BSWS2RUZ.js} +2 -2
- package/dist/{chunk-T7YD3VGK.js → chunk-C52MNKXU.js} +12 -12
- package/dist/{chunk-THNW33K7.js → chunk-CEUDV4OA.js} +18 -18
- package/dist/{chunk-GRLPRM56.js → chunk-CFEFYPNR.js} +8 -2
- package/dist/chunk-CFEFYPNR.js.map +1 -0
- package/dist/{chunk-LHGIS6SZ.js → chunk-CVK74BH7.js} +2 -2
- package/dist/{chunk-DFO2UCYG.js → chunk-CW5I65ZX.js} +11 -11
- package/dist/chunk-DKNTQDVL.js +86 -0
- package/dist/chunk-DKNTQDVL.js.map +1 -0
- package/dist/{chunk-SKRLKQEG.js → chunk-DOSC2HRQ.js} +79 -79
- package/dist/{chunk-KVB6XDLP.js → chunk-DPJ2CWVN.js} +2 -2
- package/dist/{chunk-4J6V4DH7.js → chunk-DXMRO2MU.js} +3 -3
- package/dist/{chunk-42I4O4WQ.js → chunk-EE55IDDR.js} +26 -26
- package/dist/{chunk-2RA6XABP.js → chunk-EEERTLFF.js} +12 -12
- package/dist/{chunk-PTOTKUKO.js → chunk-EEO744XR.js} +8 -8
- package/dist/{chunk-LD3HVI2J.js → chunk-EMFGBAQL.js} +6 -6
- package/dist/{chunk-FQGUK4ST.js → chunk-ENPJKVMN.js} +38 -38
- package/dist/{chunk-HDHK3SXK.js → chunk-EU6RLHMP.js} +4 -4
- package/dist/{chunk-G7VLL3PG.js → chunk-F2YABPRJ.js} +13 -4
- package/dist/chunk-F2YABPRJ.js.map +1 -0
- package/dist/{chunk-MRUWRQBX.js → chunk-FET6XHGS.js} +2 -2
- package/dist/{chunk-M6KUY3YH.js → chunk-FIICQA55.js} +2 -2
- package/dist/{chunk-NLWLCYCT.js → chunk-FTZXCPE3.js} +19 -19
- package/dist/{chunk-FN2KA3MJ.js → chunk-FUS76DO4.js} +3 -3
- package/dist/{chunk-AM4IIPWI.js → chunk-G7N5NPRJ.js} +2 -2
- package/dist/{chunk-CCQ7YKOD.js → chunk-GBYZ6653.js} +2 -2
- package/dist/{chunk-SOOWLNC5.js → chunk-GJUPLSC5.js} +330 -109
- package/dist/chunk-GJUPLSC5.js.map +1 -0
- package/dist/{chunk-YKKVIJVX.js → chunk-GQDSC6QZ.js} +5 -5
- package/dist/chunk-GQGNRL2L.js +53 -0
- package/dist/chunk-GQGNRL2L.js.map +1 -0
- package/dist/{chunk-5X6JP75Q.js → chunk-GRSODLVO.js} +4 -4
- package/dist/{chunk-73YP3R5X.js → chunk-GSESCQFY.js} +4 -4
- package/dist/{chunk-KWB5U3ZT.js → chunk-GWRW4N3T.js} +199 -137
- package/dist/chunk-GWRW4N3T.js.map +1 -0
- package/dist/{chunk-RTR7RNG4.js → chunk-GYRU4PNM.js} +9 -7
- package/dist/{chunk-RTR7RNG4.js.map → chunk-GYRU4PNM.js.map} +1 -1
- package/dist/{chunk-MZLEBFUZ.js → chunk-GZD6VBIK.js} +3 -3
- package/dist/{chunk-IZR2QRFF.js → chunk-H3HH5AHS.js} +4 -4
- package/dist/{chunk-DN3TKURW.js → chunk-H3LIIAGE.js} +4 -54
- package/dist/chunk-H3LIIAGE.js.map +1 -0
- package/dist/{chunk-NPLEQMNM.js → chunk-H5GWAG4I.js} +7 -5
- package/dist/{chunk-NPLEQMNM.js.map → chunk-H5GWAG4I.js.map} +1 -1
- package/dist/{chunk-OJPUVUB6.js → chunk-HAOZCLLA.js} +3 -3
- package/dist/{chunk-ZBHDGAYL.js → chunk-HEFE4OZJ.js} +2 -2
- package/dist/{chunk-WTG34JVA.js → chunk-HI75UTI6.js} +2 -2
- package/dist/{chunk-OMBIG3NC.js → chunk-HM633ROV.js} +14 -14
- package/dist/{chunk-WDFZWSKD.js → chunk-HRIP4M6H.js} +3 -3
- package/dist/{chunk-A2BCW6CQ.js → chunk-HU2DRFFI.js} +3 -3
- package/dist/{chunk-PO35PBAB.js → chunk-HVH7FFJH.js} +2 -2
- package/dist/{chunk-EG7KNUF7.js → chunk-HYTXTKST.js} +18 -18
- package/dist/{chunk-TFHG75A4.js → chunk-I4XMDFUJ.js} +7 -7
- package/dist/{chunk-IZHVZZQA.js → chunk-ICAUYWSL.js} +9 -9
- package/dist/{chunk-ZSERYHHT.js → chunk-IDMXEPHL.js} +150 -150
- package/dist/chunk-IDMXEPHL.js.map +1 -0
- package/dist/{chunk-DCLPWYP3.js → chunk-IEVPJ3G6.js} +2 -2
- package/dist/{chunk-EVWZHDSF.js → chunk-IKH3VTA4.js} +2 -2
- package/dist/{chunk-L5UCO2UV.js → chunk-ILBSBZGC.js} +13 -4
- package/dist/chunk-ILBSBZGC.js.map +1 -0
- package/dist/{chunk-IO6K6UYJ.js → chunk-IQ64BNAG.js} +4 -2
- package/dist/chunk-IQ64BNAG.js.map +1 -0
- package/dist/{chunk-TYHLEFD2.js → chunk-IZJNMRIR.js} +9 -9
- package/dist/{chunk-D2SR3TEB.js → chunk-J243WGUA.js} +2 -2
- package/dist/{chunk-QGSGIYE3.js → chunk-J2C6LB6W.js} +4 -4
- package/dist/{chunk-MT6TRTXF.js → chunk-J5MEDX7C.js} +9 -9
- package/dist/{chunk-6QHUKBJP.js → chunk-J7SKOO44.js} +2 -2
- package/dist/{chunk-W2QK7PYS.js → chunk-JAAST75A.js} +11 -11
- package/dist/{chunk-NQCMS4AJ.js → chunk-JQCGPTZ6.js} +9 -9
- package/dist/chunk-JRJUSKDY.js +832 -0
- package/dist/chunk-JRJUSKDY.js.map +1 -0
- package/dist/{chunk-CMUXJHGH.js → chunk-JRSCWQMC.js} +9 -9
- package/dist/{chunk-Q4OHNGGB.js → chunk-JRXHSVD5.js} +4 -4
- package/dist/{chunk-SD2K5ZN5.js → chunk-JXYLDT6X.js} +4 -4
- package/dist/{chunk-S3M5WCZW.js → chunk-KA4LV7G6.js} +35 -50
- package/dist/chunk-KA4LV7G6.js.map +1 -0
- package/dist/{chunk-IXX6ZOL2.js → chunk-KGTMHEAP.js} +7 -7
- package/dist/{chunk-22OBGVEJ.js → chunk-KOXVGPW4.js} +3 -3
- package/dist/{chunk-NOZ5CGZE.js → chunk-L5GPPMUB.js} +2 -2
- package/dist/{chunk-KIHYJM5F.js → chunk-LXJT4WAW.js} +58 -58
- package/dist/{chunk-KIHYJM5F.js.map → chunk-LXJT4WAW.js.map} +1 -1
- package/dist/{chunk-4FOOHMTU.js → chunk-LY6727IF.js} +1 -1
- package/dist/{chunk-PT7MTXRE.js → chunk-MAOCN7J6.js} +2 -2
- package/dist/{chunk-4K2JSJNX.js → chunk-MB5LZVDO.js} +2 -2
- package/dist/chunk-MF464AKA.js +139 -0
- package/dist/chunk-MF464AKA.js.map +1 -0
- package/dist/{chunk-UYSZKDQY.js → chunk-MK54JLE4.js} +1 -1
- package/dist/chunk-MK54JLE4.js.map +1 -0
- package/dist/{chunk-5LES64PP.js → chunk-MKOQAVOE.js} +21 -21
- package/dist/{chunk-BMV2SNYX.js → chunk-MUPWNSEJ.js} +18 -18
- package/dist/{chunk-Y5TRG22C.js → chunk-NRXIECWC.js} +2 -2
- package/dist/{chunk-GOE7G5JX.js → chunk-NWSAF6P5.js} +2 -2
- package/dist/chunk-OB3YGXHQ.js +158 -0
- package/dist/chunk-OB3YGXHQ.js.map +1 -0
- package/dist/{chunk-DUM363VS.js → chunk-OFZQJNF6.js} +5 -5
- package/dist/{chunk-CKN5QPEL.js → chunk-OMF7POEY.js} +2 -2
- package/dist/{chunk-MVXKO2BD.js → chunk-OXD6ET34.js} +1 -1
- package/dist/{chunk-47JUEVME.js → chunk-PALX6HWV.js} +21 -21
- package/dist/{chunk-B6OGSG7I.js → chunk-PE3BLBDT.js} +3 -3
- package/dist/{chunk-RVISSNVE.js → chunk-PMZKJOG6.js} +15 -15
- package/dist/{chunk-CESAMXWX.js → chunk-PQUTMG3S.js} +2 -2
- package/dist/{chunk-7VFCOKPG.js → chunk-PWBGODZU.js} +3 -3
- package/dist/{chunk-MOPAXD2H.js → chunk-QCADUTYX.js} +2 -2
- package/dist/{chunk-CT5FBO7E.js → chunk-RPOUJI25.js} +1 -1
- package/dist/{chunk-VE3FKXJ7.js → chunk-RUSXEE7X.js} +35 -32
- package/dist/chunk-RUSXEE7X.js.map +1 -0
- package/dist/{chunk-WKHYOS72.js → chunk-RW4GFE56.js} +3 -3
- package/dist/{chunk-FH4GO7HO.js → chunk-RYLVVDR7.js} +1 -1
- package/dist/{chunk-QZRDCFHI.js → chunk-S66SBBFQ.js} +5 -5
- package/dist/{chunk-CQJFIPAH.js → chunk-S7TNV2I7.js} +14 -14
- package/dist/{chunk-ZBQSIGGR.js → chunk-SC773IMJ.js} +13 -13
- package/dist/{chunk-RZV7SXED.js → chunk-SF3M27AN.js} +37 -12
- package/dist/chunk-SF3M27AN.js.map +1 -0
- package/dist/{chunk-FBJ2HK7A.js → chunk-SGPJ3YS2.js} +20 -20
- package/dist/{chunk-A2EWJQXX.js → chunk-SM5QX6UK.js} +4 -4
- package/dist/chunk-SWCLN6JE.js +40 -0
- package/dist/chunk-SWCLN6JE.js.map +1 -0
- package/dist/{chunk-OS3EQOIS.js → chunk-T4F5TW2X.js} +29 -24
- package/dist/chunk-T4F5TW2X.js.map +1 -0
- package/dist/{chunk-RKZWCTXV.js → chunk-TAEKDMEF.js} +2 -2
- package/dist/{chunk-6AVCAUGL.js → chunk-TASEV25T.js} +3 -3
- package/dist/{chunk-3XOISKZC.js → chunk-TLGDPMUX.js} +6 -6
- package/dist/{chunk-MOF3XSUM.js → chunk-TREHTIBD.js} +3 -2
- package/dist/chunk-TREHTIBD.js.map +1 -0
- package/dist/{chunk-HUQHJSPV.js → chunk-TTPXGD5S.js} +68 -33
- package/dist/chunk-TTPXGD5S.js.map +1 -0
- package/dist/{chunk-NFCYIZHX.js → chunk-TXIIBNCA.js} +7 -3
- package/dist/{chunk-NFCYIZHX.js.map → chunk-TXIIBNCA.js.map} +1 -1
- package/dist/{chunk-5IUW34PG.js → chunk-TY3QYPJ6.js} +7 -7
- package/dist/{chunk-VQFR4EU4.js → chunk-U3JK5VJV.js} +2 -2
- package/dist/{chunk-2AWMJO54.js → chunk-U42P3RMZ.js} +5 -5
- package/dist/{chunk-2RIUMV7S.js → chunk-UBIJBLUK.js} +234 -234
- package/dist/chunk-UBIJBLUK.js.map +1 -0
- package/dist/{chunk-GUU75DES.js → chunk-UEJTOPLW.js} +8 -8
- package/dist/{chunk-QWCTYLMD.js → chunk-URDONAEJ.js} +240 -204
- package/dist/chunk-URDONAEJ.js.map +1 -0
- package/dist/{chunk-OZOEWLGR.js → chunk-UT6JAORE.js} +4 -4
- package/dist/{chunk-5TELOQA6.js → chunk-UTHPUINA.js} +3 -3
- package/dist/{chunk-SOV7DTTU.js → chunk-V6HZ2HJZ.js} +67 -67
- package/dist/{chunk-SOV7DTTU.js.map → chunk-V6HZ2HJZ.js.map} +1 -1
- package/dist/{chunk-26RQ6JBR.js → chunk-VBVCNH6D.js} +5 -5
- package/dist/{chunk-P646DND6.js → chunk-VCMQPCME.js} +2 -2
- package/dist/{chunk-LV7FMIMM.js → chunk-VGUHAHHV.js} +2 -2
- package/dist/{chunk-GYVXARCY.js → chunk-VIBPFVU4.js} +41 -41
- package/dist/{chunk-KHPOKZ6Z.js → chunk-VMAC66JX.js} +6 -6
- package/dist/{chunk-SHKRS6I5.js → chunk-VRPNETPK.js} +3 -3
- package/dist/{chunk-6U4J6RVS.js → chunk-WCHW4XN7.js} +14 -14
- package/dist/{chunk-CJH6QUQJ.js → chunk-WD3UXNJV.js} +3 -3
- package/dist/{chunk-H5EVWF6L.js → chunk-WR67FJMX.js} +4 -4
- package/dist/{chunk-XLIJ36RG.js → chunk-WRMQ7EX4.js} +5 -5
- package/dist/{chunk-VVFWOBAM.js → chunk-WTJUKYB2.js} +15 -16
- package/dist/chunk-WTJUKYB2.js.map +1 -0
- package/dist/{chunk-7KLCFJ5G.js → chunk-X4PPGXQG.js} +2 -2
- package/dist/{chunk-ZE2JTVCQ.js → chunk-X5BMQXFD.js} +11 -11
- package/dist/{chunk-OYJY4Y4A.js → chunk-XFNLU7EW.js} +14 -7
- package/dist/chunk-XFNLU7EW.js.map +1 -0
- package/dist/{chunk-UECU6LZI.js → chunk-XXRBOSWV.js} +3 -3
- package/dist/{chunk-SPKAIDWX.js → chunk-XZEFCPBL.js} +2 -2
- package/dist/{chunk-EZ5NYRHK.js → chunk-YL6N7QLA.js} +5 -5
- package/dist/{chunk-Q2ZJOECN.js → chunk-YMVTIV5L.js} +19 -19
- package/dist/chunk-YMVTIV5L.js.map +1 -0
- package/dist/{chunk-VAIESMPY.js → chunk-YVBHGMKC.js} +4 -4
- package/dist/{chunk-AR62NQXE.js → chunk-Z2S5VQG7.js} +2 -2
- package/dist/{chunk-2MXUB3ZO.js → chunk-Z5OGTWMZ.js} +15 -2
- package/dist/chunk-Z5OGTWMZ.js.map +1 -0
- package/dist/{chunk-7UQJEADK.js → chunk-ZL2O4BYP.js} +2 -2
- package/dist/{chunk-FOOITLHR.js → chunk-ZZHBT5WQ.js} +2 -2
- package/dist/{chunk-X6VJQJYY.js → chunk-ZZWHKC6A.js} +3 -3
- package/dist/components/timeline-annotation-shared.d.ts +1 -9
- package/dist/composer-messages.js +2 -2
- package/dist/composer.js +15 -15
- package/dist/{computer-viewer-D4NHQB5D.js → computer-viewer-S6TE6TN7.js} +8 -8
- package/dist/connect.js +12 -11
- package/dist/desktop.js +2 -2
- package/dist/editor.js +2 -2
- package/dist/{embedded-new-voice-X4ZW6SY4.js → embedded-new-voice-ZDZPGX25.js} +8 -8
- package/dist/{embedded-voice-4OD6Z3HU.js → embedded-voice-FKCUXSJO.js} +8 -8
- package/dist/{fleet-decision-row-5UCJXTDP.js → fleet-decision-row-VCGWYJAV.js} +2 -2
- package/dist/hooks/page-wake.d.ts +21 -0
- package/dist/hooks/use-session-events.d.ts +1 -0
- package/dist/index.js +206 -205
- package/dist/interaction.js +9 -9
- package/dist/{latest-question-VGVNUGAU.js → latest-question-SINEV4U6.js} +3 -3
- package/dist/lib/format.d.ts +3 -2
- package/dist/machines.js +6 -6
- package/dist/messages/en.d.ts +12 -3
- package/dist/messages.js +1 -1
- package/dist/model-picker-model.js +2 -2
- package/dist/{model-policy-picker-menu-XOPYY6YA.js → model-policy-picker-menu-66JPM3G5.js} +6 -6
- package/dist/model-policy-picker-menu-66JPM3G5.js.map +1 -0
- package/dist/model-policy.js +1 -1
- package/dist/native-previews.js +3 -3
- package/dist/{platform-activity-row-56XOVTRA.js → platform-activity-row-LU5WABI2.js} +2 -2
- package/dist/{queue-surface-implementation-OZDOBJ6W.js → queue-surface-implementation-Y4OUVS7N.js} +8 -7
- package/dist/{queue-surface-implementation-OZDOBJ6W.js.map → queue-surface-implementation-Y4OUVS7N.js.map} +1 -1
- package/dist/realtime.js +7 -7
- package/dist/{sandbox-files-LJCR437H.js → sandbox-files-NBIVKVCZ.js} +11 -11
- package/dist/sandbox-files-NBIVKVCZ.js.map +1 -0
- package/dist/session-app.js +266 -260
- package/dist/session-list-model.js +3 -3
- package/dist/{session-realtime-UISLBZ4A.js → session-realtime-3PALSNMJ.js} +3 -3
- package/dist/session-realtime-3PALSNMJ.js.map +1 -0
- package/dist/session-realtime.js +2 -2
- package/dist/session-ui.js +62 -61
- package/dist/session.d.ts +1 -1
- package/dist/session.js +17 -17
- package/dist/sites.js +2 -2
- package/dist/terminal.js +2 -2
- package/dist/this-computer.js +3 -3
- package/dist/timeline/annotation-model.d.ts +48 -0
- package/dist/{timeline-annotation-markers-ACT7XRMW.js → timeline-annotation-markers-6526H2NM.js} +11 -9
- package/dist/{timeline-annotation-markers-ACT7XRMW.js.map → timeline-annotation-markers-6526H2NM.js.map} +1 -1
- package/dist/{timeline-annotation-selection-2IA7T5VR.js → timeline-annotation-selection-KV5SM6TA.js} +16 -62
- package/dist/timeline-annotation-selection-KV5SM6TA.js.map +1 -0
- package/dist/{timeline-annotations-dialog-W5B2HMYY.js → timeline-annotations-dialog-7CDHWC7Y.js} +12 -10
- package/dist/{timeline-annotations-dialog-W5B2HMYY.js.map → timeline-annotations-dialog-7CDHWC7Y.js.map} +1 -1
- package/dist/timeline-model.d.ts +3 -0
- package/dist/timeline-model.js +40 -14
- package/dist/ui/access-list.js +24 -24
- package/dist/ui/choice-cards.js +2 -2
- package/dist/ui/composer-menu-action.js +2 -2
- package/dist/ui/context-menu.d.ts +3 -1
- package/dist/ui/context-menu.js +3 -1
- package/dist/ui/detail-page.js +3 -3
- package/dist/ui/detail-sheet.js +3 -3
- package/dist/ui/diff-view.js +3 -3
- package/dist/ui/disclosure.js +5 -5
- package/dist/ui/dropdown-menu.js +1 -1
- package/dist/ui/flush-form-page.js +5 -5
- package/dist/ui/form-dialog.js +4 -4
- package/dist/ui/list-row.js +5 -5
- package/dist/ui/load-failure.js +3 -3
- package/dist/ui/page-actions.js +3 -3
- package/dist/ui/revision-history.js +11 -11
- package/dist/ui/role-select.js +8 -8
- package/dist/ui/segmented-control.js +1 -1
- package/dist/ui/settings-nav.js +3 -3
- package/dist/ui/toolbar.js +3 -3
- package/dist/usage.js +2 -2
- package/dist/workbench.js +11 -11
- package/package.json +4 -4
- package/src/app/app-state.tsx +2 -1
- package/src/app/components/command-menu/chat-switcher.tsx +135 -0
- package/src/app/components/command-menu/command-menu.tsx +840 -0
- package/src/app/components/command-menu/keycaps.tsx +56 -0
- package/src/app/components/command-menu/shortcut-sheet.tsx +155 -0
- package/src/app/components/credits/credit-refusal-notice.test.tsx +132 -0
- package/src/app/components/credits/credit-refusal-notice.tsx +92 -0
- package/src/app/components/rail/rail-context.tsx +28 -5
- package/src/app/components/rail/rail-sections.tsx +3 -5
- package/src/app/components/rail/session-header-mute.test.tsx +23 -1
- package/src/app/components/rail/session-header.test.tsx +21 -2
- package/src/app/components/rail/session-header.tsx +31 -1
- package/src/app/components/rail/session-list.tsx +89 -16
- package/src/app/components/rail/session-shell.tsx +0 -14
- package/src/app/components/session/session-search-dialog.tsx +12 -1
- package/src/app/embed/session-app.tsx +6 -3
- package/src/app/lib/actions/actions-provider.tsx +486 -0
- package/src/app/lib/actions/actions.test.ts +249 -0
- package/src/app/lib/actions/chat-directory.ts +231 -0
- package/src/app/lib/actions/chat-operations.ts +145 -0
- package/src/app/lib/actions/chat-switcher.ts +62 -0
- package/src/app/lib/actions/chords.ts +185 -0
- package/src/app/lib/actions/events.ts +10 -0
- package/src/app/lib/actions/rank.ts +119 -0
- package/src/app/lib/actions/registry.ts +333 -0
- package/src/app/lib/credit-coverage.test.ts +83 -0
- package/src/app/lib/credit-coverage.tsx +48 -0
- package/src/app/lib/free-credit-gap.test.ts +32 -1
- package/src/app/lib/free-credit-gap.tsx +32 -2
- package/src/app/lib/integration-connect-analytics.test.ts +1 -0
- package/src/app/lib/integration-connect-analytics.tsx +4 -0
- package/src/app/lib/models-route.test.ts +18 -0
- package/src/app/lib/models-route.tsx +26 -4
- package/src/app/lib/session-search-route.tsx +6 -1
- package/src/app/lib/session-ui-features.tsx +28 -9
- package/src/app/routes/session.tsx +74 -16
- package/src/app/routes/sessions-index.tsx +83 -4
- package/src/components/timeline-annotation-selection.tsx +9 -64
- package/src/components/timeline-annotation-shared.ts +9 -57
- package/src/hooks/page-wake.ts +80 -0
- package/src/hooks/use-session-events.ts +309 -81
- package/src/lib/format.ts +3 -2
- package/src/messages/en.ts +13 -3
- package/src/model-picker-model.ts +3 -0
- package/src/model-policy.ts +9 -1
- package/src/session.ts +1 -0
- package/src/timeline/annotation-model.ts +217 -0
- package/src/timeline/projection.ts +27 -21
- package/src/timeline-model.ts +14 -0
- package/src/ui/context-menu.tsx +16 -0
- package/src/ui/dropdown-menu.tsx +4 -1
- package/src/ui/segmented-control.tsx +3 -0
- package/styles/compiled.css +92 -0
- package/dist/app/lib/keyboard-shortcuts.d.ts +0 -51
- package/dist/app/lib/keyboard-shortcuts.js +0 -16
- package/dist/chunk-2MXUB3ZO.js.map +0 -1
- package/dist/chunk-2RIUMV7S.js.map +0 -1
- package/dist/chunk-53IXIUYP.js +0 -39
- package/dist/chunk-53IXIUYP.js.map +0 -1
- package/dist/chunk-DN3TKURW.js.map +0 -1
- package/dist/chunk-F2GXK2Z6.js.map +0 -1
- package/dist/chunk-G7VLL3PG.js.map +0 -1
- package/dist/chunk-GRLPRM56.js.map +0 -1
- package/dist/chunk-HUQHJSPV.js.map +0 -1
- package/dist/chunk-IO6K6UYJ.js.map +0 -1
- package/dist/chunk-KWB5U3ZT.js.map +0 -1
- package/dist/chunk-L5UCO2UV.js.map +0 -1
- package/dist/chunk-MOF3XSUM.js.map +0 -1
- package/dist/chunk-N2BEUKXT.js.map +0 -1
- package/dist/chunk-OS3EQOIS.js.map +0 -1
- package/dist/chunk-OYJY4Y4A.js.map +0 -1
- package/dist/chunk-Q2ZJOECN.js.map +0 -1
- package/dist/chunk-QWCTYLMD.js.map +0 -1
- package/dist/chunk-RZV7SXED.js.map +0 -1
- package/dist/chunk-S3M5WCZW.js.map +0 -1
- package/dist/chunk-SOOWLNC5.js.map +0 -1
- package/dist/chunk-SWWYYGQO.js.map +0 -1
- package/dist/chunk-UO36FC3S.js.map +0 -1
- package/dist/chunk-UYSZKDQY.js.map +0 -1
- package/dist/chunk-VE3FKXJ7.js.map +0 -1
- package/dist/chunk-VVFWOBAM.js.map +0 -1
- package/dist/chunk-ZSERYHHT.js.map +0 -1
- package/dist/timeline-annotation-selection-2IA7T5VR.js.map +0 -1
- package/src/app/lib/keyboard-shortcuts.test.ts +0 -47
- package/src/app/lib/keyboard-shortcuts.tsx +0 -58
- /package/dist/app/{lib/keyboard-shortcuts.js.map → components/command-menu/keycaps.js.map} +0 -0
- /package/dist/{browser-viewer-ZRFZX3VN.js.map → app/components/credits/credit-refusal-notice.js.map} +0 -0
- /package/dist/{chat-interactive-block-HUMYWVCK.js.map → app/lib/actions/actions-provider.js.map} +0 -0
- /package/dist/{computer-viewer-D4NHQB5D.js.map → app/lib/credit-coverage.js.map} +0 -0
- /package/dist/{embedded-new-voice-X4ZW6SY4.js.map → browser-viewer-HPUMK7UP.js.map} +0 -0
- /package/dist/{embedded-voice-4OD6Z3HU.js.map → chat-interactive-block-22PPECCT.js.map} +0 -0
- /package/dist/{chunk-GVIQ7H62.js.map → chunk-2LUBBDZV.js.map} +0 -0
- /package/dist/{chunk-XMMVIY7B.js.map → chunk-3CCJWHQY.js.map} +0 -0
- /package/dist/{chunk-XS2FZ6DX.js.map → chunk-3F5ZPIWI.js.map} +0 -0
- /package/dist/{chunk-72US6QNB.js.map → chunk-3J2YZRY5.js.map} +0 -0
- /package/dist/{chunk-D4YQF4E3.js.map → chunk-3SMJ2BIQ.js.map} +0 -0
- /package/dist/{chunk-TBJINQXA.js.map → chunk-3WCYK36X.js.map} +0 -0
- /package/dist/{chunk-WPCF34V6.js.map → chunk-3WG3CRL7.js.map} +0 -0
- /package/dist/{chunk-JI5BYQKO.js.map → chunk-3X46PNBX.js.map} +0 -0
- /package/dist/{chunk-PBK44WJC.js.map → chunk-4GJ37O6G.js.map} +0 -0
- /package/dist/{chunk-LEXPBQ56.js.map → chunk-4SKJX3C4.js.map} +0 -0
- /package/dist/{chunk-ZA6YD2LW.js.map → chunk-57SYK776.js.map} +0 -0
- /package/dist/{chunk-22LBKJDE.js.map → chunk-5DIAN5GQ.js.map} +0 -0
- /package/dist/{chunk-LJ3TDK2L.js.map → chunk-5FA455GR.js.map} +0 -0
- /package/dist/{chunk-YPR5INHV.js.map → chunk-5X3E2Z3D.js.map} +0 -0
- /package/dist/{chunk-OXNWZTEU.js.map → chunk-5ZJCL6X4.js.map} +0 -0
- /package/dist/{chunk-62OAZ4LO.js.map → chunk-6C5GQQMC.js.map} +0 -0
- /package/dist/{chunk-VGITH57T.js.map → chunk-6ERTXDZM.js.map} +0 -0
- /package/dist/{chunk-ZQ7XQZCF.js.map → chunk-6FX73Y4I.js.map} +0 -0
- /package/dist/{chunk-QZO2KK2F.js.map → chunk-6P44NG6Y.js.map} +0 -0
- /package/dist/{chunk-N2DDJLTM.js.map → chunk-6T7Y33JA.js.map} +0 -0
- /package/dist/{chunk-RBAGC2MJ.js.map → chunk-75VE5QUS.js.map} +0 -0
- /package/dist/{chunk-MRXOGI3O.js.map → chunk-77CUDSHG.js.map} +0 -0
- /package/dist/{chunk-GZ65XQR5.js.map → chunk-7T7FHSGS.js.map} +0 -0
- /package/dist/{chunk-YGAH34CD.js.map → chunk-A3S26JSP.js.map} +0 -0
- /package/dist/{chunk-GYPAO6RS.js.map → chunk-A664GSDM.js.map} +0 -0
- /package/dist/{chunk-JSZSNMDR.js.map → chunk-ASUYLXKO.js.map} +0 -0
- /package/dist/{chunk-RTK7SUPL.js.map → chunk-AUUJLVA3.js.map} +0 -0
- /package/dist/{chunk-OOTBYSCA.js.map → chunk-BBWKPNJB.js.map} +0 -0
- /package/dist/{chunk-BGZIMIUU.js.map → chunk-BCUYWOQU.js.map} +0 -0
- /package/dist/{chunk-EKN4N4LS.js.map → chunk-BDFMNJZJ.js.map} +0 -0
- /package/dist/{chunk-YZKGOWCC.js.map → chunk-BIDXQAGO.js.map} +0 -0
- /package/dist/{chunk-Q2UUANHF.js.map → chunk-BIKAJ4DY.js.map} +0 -0
- /package/dist/{chunk-5IQBF2X3.js.map → chunk-BJPJ2OUX.js.map} +0 -0
- /package/dist/{chunk-EY2EMHZW.js.map → chunk-BPM2OTYK.js.map} +0 -0
- /package/dist/{chunk-MT4TBRQB.js.map → chunk-BSWS2RUZ.js.map} +0 -0
- /package/dist/{chunk-T7YD3VGK.js.map → chunk-C52MNKXU.js.map} +0 -0
- /package/dist/{chunk-THNW33K7.js.map → chunk-CEUDV4OA.js.map} +0 -0
- /package/dist/{chunk-LHGIS6SZ.js.map → chunk-CVK74BH7.js.map} +0 -0
- /package/dist/{chunk-DFO2UCYG.js.map → chunk-CW5I65ZX.js.map} +0 -0
- /package/dist/{chunk-SKRLKQEG.js.map → chunk-DOSC2HRQ.js.map} +0 -0
- /package/dist/{chunk-KVB6XDLP.js.map → chunk-DPJ2CWVN.js.map} +0 -0
- /package/dist/{chunk-4J6V4DH7.js.map → chunk-DXMRO2MU.js.map} +0 -0
- /package/dist/{chunk-42I4O4WQ.js.map → chunk-EE55IDDR.js.map} +0 -0
- /package/dist/{chunk-2RA6XABP.js.map → chunk-EEERTLFF.js.map} +0 -0
- /package/dist/{chunk-PTOTKUKO.js.map → chunk-EEO744XR.js.map} +0 -0
- /package/dist/{chunk-LD3HVI2J.js.map → chunk-EMFGBAQL.js.map} +0 -0
- /package/dist/{chunk-FQGUK4ST.js.map → chunk-ENPJKVMN.js.map} +0 -0
- /package/dist/{chunk-HDHK3SXK.js.map → chunk-EU6RLHMP.js.map} +0 -0
- /package/dist/{chunk-MRUWRQBX.js.map → chunk-FET6XHGS.js.map} +0 -0
- /package/dist/{chunk-M6KUY3YH.js.map → chunk-FIICQA55.js.map} +0 -0
- /package/dist/{chunk-NLWLCYCT.js.map → chunk-FTZXCPE3.js.map} +0 -0
- /package/dist/{chunk-FN2KA3MJ.js.map → chunk-FUS76DO4.js.map} +0 -0
- /package/dist/{chunk-AM4IIPWI.js.map → chunk-G7N5NPRJ.js.map} +0 -0
- /package/dist/{chunk-CCQ7YKOD.js.map → chunk-GBYZ6653.js.map} +0 -0
- /package/dist/{chunk-YKKVIJVX.js.map → chunk-GQDSC6QZ.js.map} +0 -0
- /package/dist/{chunk-5X6JP75Q.js.map → chunk-GRSODLVO.js.map} +0 -0
- /package/dist/{chunk-73YP3R5X.js.map → chunk-GSESCQFY.js.map} +0 -0
- /package/dist/{chunk-MZLEBFUZ.js.map → chunk-GZD6VBIK.js.map} +0 -0
- /package/dist/{chunk-IZR2QRFF.js.map → chunk-H3HH5AHS.js.map} +0 -0
- /package/dist/{chunk-OJPUVUB6.js.map → chunk-HAOZCLLA.js.map} +0 -0
- /package/dist/{chunk-ZBHDGAYL.js.map → chunk-HEFE4OZJ.js.map} +0 -0
- /package/dist/{chunk-WTG34JVA.js.map → chunk-HI75UTI6.js.map} +0 -0
- /package/dist/{chunk-OMBIG3NC.js.map → chunk-HM633ROV.js.map} +0 -0
- /package/dist/{chunk-WDFZWSKD.js.map → chunk-HRIP4M6H.js.map} +0 -0
- /package/dist/{chunk-A2BCW6CQ.js.map → chunk-HU2DRFFI.js.map} +0 -0
- /package/dist/{chunk-PO35PBAB.js.map → chunk-HVH7FFJH.js.map} +0 -0
- /package/dist/{chunk-EG7KNUF7.js.map → chunk-HYTXTKST.js.map} +0 -0
- /package/dist/{chunk-TFHG75A4.js.map → chunk-I4XMDFUJ.js.map} +0 -0
- /package/dist/{chunk-IZHVZZQA.js.map → chunk-ICAUYWSL.js.map} +0 -0
- /package/dist/{chunk-DCLPWYP3.js.map → chunk-IEVPJ3G6.js.map} +0 -0
- /package/dist/{chunk-EVWZHDSF.js.map → chunk-IKH3VTA4.js.map} +0 -0
- /package/dist/{chunk-TYHLEFD2.js.map → chunk-IZJNMRIR.js.map} +0 -0
- /package/dist/{chunk-D2SR3TEB.js.map → chunk-J243WGUA.js.map} +0 -0
- /package/dist/{chunk-QGSGIYE3.js.map → chunk-J2C6LB6W.js.map} +0 -0
- /package/dist/{chunk-MT6TRTXF.js.map → chunk-J5MEDX7C.js.map} +0 -0
- /package/dist/{chunk-6QHUKBJP.js.map → chunk-J7SKOO44.js.map} +0 -0
- /package/dist/{chunk-W2QK7PYS.js.map → chunk-JAAST75A.js.map} +0 -0
- /package/dist/{chunk-NQCMS4AJ.js.map → chunk-JQCGPTZ6.js.map} +0 -0
- /package/dist/{chunk-CMUXJHGH.js.map → chunk-JRSCWQMC.js.map} +0 -0
- /package/dist/{chunk-Q4OHNGGB.js.map → chunk-JRXHSVD5.js.map} +0 -0
- /package/dist/{chunk-SD2K5ZN5.js.map → chunk-JXYLDT6X.js.map} +0 -0
- /package/dist/{chunk-IXX6ZOL2.js.map → chunk-KGTMHEAP.js.map} +0 -0
- /package/dist/{chunk-22OBGVEJ.js.map → chunk-KOXVGPW4.js.map} +0 -0
- /package/dist/{chunk-NOZ5CGZE.js.map → chunk-L5GPPMUB.js.map} +0 -0
- /package/dist/{chunk-4FOOHMTU.js.map → chunk-LY6727IF.js.map} +0 -0
- /package/dist/{chunk-PT7MTXRE.js.map → chunk-MAOCN7J6.js.map} +0 -0
- /package/dist/{chunk-4K2JSJNX.js.map → chunk-MB5LZVDO.js.map} +0 -0
- /package/dist/{chunk-5LES64PP.js.map → chunk-MKOQAVOE.js.map} +0 -0
- /package/dist/{chunk-BMV2SNYX.js.map → chunk-MUPWNSEJ.js.map} +0 -0
- /package/dist/{chunk-Y5TRG22C.js.map → chunk-NRXIECWC.js.map} +0 -0
- /package/dist/{chunk-GOE7G5JX.js.map → chunk-NWSAF6P5.js.map} +0 -0
- /package/dist/{chunk-DUM363VS.js.map → chunk-OFZQJNF6.js.map} +0 -0
- /package/dist/{chunk-CKN5QPEL.js.map → chunk-OMF7POEY.js.map} +0 -0
- /package/dist/{chunk-MVXKO2BD.js.map → chunk-OXD6ET34.js.map} +0 -0
- /package/dist/{chunk-47JUEVME.js.map → chunk-PALX6HWV.js.map} +0 -0
- /package/dist/{chunk-B6OGSG7I.js.map → chunk-PE3BLBDT.js.map} +0 -0
- /package/dist/{chunk-RVISSNVE.js.map → chunk-PMZKJOG6.js.map} +0 -0
- /package/dist/{chunk-CESAMXWX.js.map → chunk-PQUTMG3S.js.map} +0 -0
- /package/dist/{chunk-7VFCOKPG.js.map → chunk-PWBGODZU.js.map} +0 -0
- /package/dist/{chunk-MOPAXD2H.js.map → chunk-QCADUTYX.js.map} +0 -0
- /package/dist/{chunk-CT5FBO7E.js.map → chunk-RPOUJI25.js.map} +0 -0
- /package/dist/{chunk-WKHYOS72.js.map → chunk-RW4GFE56.js.map} +0 -0
- /package/dist/{chunk-FH4GO7HO.js.map → chunk-RYLVVDR7.js.map} +0 -0
- /package/dist/{chunk-QZRDCFHI.js.map → chunk-S66SBBFQ.js.map} +0 -0
- /package/dist/{chunk-CQJFIPAH.js.map → chunk-S7TNV2I7.js.map} +0 -0
- /package/dist/{chunk-ZBQSIGGR.js.map → chunk-SC773IMJ.js.map} +0 -0
- /package/dist/{chunk-FBJ2HK7A.js.map → chunk-SGPJ3YS2.js.map} +0 -0
- /package/dist/{chunk-A2EWJQXX.js.map → chunk-SM5QX6UK.js.map} +0 -0
- /package/dist/{chunk-RKZWCTXV.js.map → chunk-TAEKDMEF.js.map} +0 -0
- /package/dist/{chunk-6AVCAUGL.js.map → chunk-TASEV25T.js.map} +0 -0
- /package/dist/{chunk-3XOISKZC.js.map → chunk-TLGDPMUX.js.map} +0 -0
- /package/dist/{chunk-5IUW34PG.js.map → chunk-TY3QYPJ6.js.map} +0 -0
- /package/dist/{chunk-VQFR4EU4.js.map → chunk-U3JK5VJV.js.map} +0 -0
- /package/dist/{chunk-2AWMJO54.js.map → chunk-U42P3RMZ.js.map} +0 -0
- /package/dist/{chunk-GUU75DES.js.map → chunk-UEJTOPLW.js.map} +0 -0
- /package/dist/{chunk-OZOEWLGR.js.map → chunk-UT6JAORE.js.map} +0 -0
- /package/dist/{chunk-5TELOQA6.js.map → chunk-UTHPUINA.js.map} +0 -0
- /package/dist/{chunk-26RQ6JBR.js.map → chunk-VBVCNH6D.js.map} +0 -0
- /package/dist/{chunk-P646DND6.js.map → chunk-VCMQPCME.js.map} +0 -0
- /package/dist/{chunk-LV7FMIMM.js.map → chunk-VGUHAHHV.js.map} +0 -0
- /package/dist/{chunk-GYVXARCY.js.map → chunk-VIBPFVU4.js.map} +0 -0
- /package/dist/{chunk-KHPOKZ6Z.js.map → chunk-VMAC66JX.js.map} +0 -0
- /package/dist/{chunk-SHKRS6I5.js.map → chunk-VRPNETPK.js.map} +0 -0
- /package/dist/{chunk-6U4J6RVS.js.map → chunk-WCHW4XN7.js.map} +0 -0
- /package/dist/{chunk-CJH6QUQJ.js.map → chunk-WD3UXNJV.js.map} +0 -0
- /package/dist/{chunk-H5EVWF6L.js.map → chunk-WR67FJMX.js.map} +0 -0
- /package/dist/{chunk-XLIJ36RG.js.map → chunk-WRMQ7EX4.js.map} +0 -0
- /package/dist/{chunk-7KLCFJ5G.js.map → chunk-X4PPGXQG.js.map} +0 -0
- /package/dist/{chunk-ZE2JTVCQ.js.map → chunk-X5BMQXFD.js.map} +0 -0
- /package/dist/{chunk-UECU6LZI.js.map → chunk-XXRBOSWV.js.map} +0 -0
- /package/dist/{chunk-SPKAIDWX.js.map → chunk-XZEFCPBL.js.map} +0 -0
- /package/dist/{chunk-EZ5NYRHK.js.map → chunk-YL6N7QLA.js.map} +0 -0
- /package/dist/{chunk-VAIESMPY.js.map → chunk-YVBHGMKC.js.map} +0 -0
- /package/dist/{chunk-AR62NQXE.js.map → chunk-Z2S5VQG7.js.map} +0 -0
- /package/dist/{chunk-7UQJEADK.js.map → chunk-ZL2O4BYP.js.map} +0 -0
- /package/dist/{chunk-FOOITLHR.js.map → chunk-ZZHBT5WQ.js.map} +0 -0
- /package/dist/{chunk-X6VJQJYY.js.map → chunk-ZZWHKC6A.js.map} +0 -0
- /package/dist/{model-policy-picker-menu-XOPYY6YA.js.map → computer-viewer-S6TE6TN7.js.map} +0 -0
- /package/dist/{sandbox-files-LJCR437H.js.map → embedded-new-voice-ZDZPGX25.js.map} +0 -0
- /package/dist/{session-realtime-UISLBZ4A.js.map → embedded-voice-FKCUXSJO.js.map} +0 -0
- /package/dist/{fleet-decision-row-5UCJXTDP.js.map → fleet-decision-row-VCGWYJAV.js.map} +0 -0
- /package/dist/{latest-question-VGVNUGAU.js.map → latest-question-SINEV4U6.js.map} +0 -0
- /package/dist/{platform-activity-row-56XOVTRA.js.map → platform-activity-row-LU5WABI2.js.map} +0 -0
|
@@ -2,43 +2,43 @@
|
|
|
2
2
|
import {
|
|
3
3
|
OPEN_WORKSTREAM_CONTROL_EVENT
|
|
4
4
|
} from "./chunk-3IWPC6O3.js";
|
|
5
|
-
import {
|
|
6
|
-
shouldSteerOnKey,
|
|
7
|
-
shouldSubmitOnKey
|
|
8
|
-
} from "./chunk-5IQBF2X3.js";
|
|
9
|
-
import {
|
|
10
|
-
defaultChatComposerMessages
|
|
11
|
-
} from "./chunk-MOPAXD2H.js";
|
|
12
|
-
import {
|
|
13
|
-
COMPOSER_VOICE_INPUT_START_EVENT,
|
|
14
|
-
composerVoiceEventScope
|
|
15
|
-
} from "./chunk-NX4ADH73.js";
|
|
16
5
|
import {
|
|
17
6
|
Tooltip,
|
|
18
7
|
TooltipContent,
|
|
19
8
|
TooltipProvider,
|
|
20
9
|
TooltipTrigger,
|
|
21
10
|
useLightboxOptional
|
|
22
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-NRXIECWC.js";
|
|
23
12
|
import {
|
|
24
|
-
|
|
25
|
-
|
|
13
|
+
COMPOSER_VOICE_INPUT_START_EVENT,
|
|
14
|
+
composerVoiceEventScope
|
|
15
|
+
} from "./chunk-NX4ADH73.js";
|
|
26
16
|
import {
|
|
27
17
|
ComposerResponsiveContext
|
|
28
18
|
} from "./chunk-XEA5BCMA.js";
|
|
19
|
+
import {
|
|
20
|
+
shouldSteerOnKey,
|
|
21
|
+
shouldSubmitOnKey
|
|
22
|
+
} from "./chunk-BJPJ2OUX.js";
|
|
23
|
+
import {
|
|
24
|
+
groupPickerRowsByBillingClass
|
|
25
|
+
} from "./chunk-CFEFYPNR.js";
|
|
26
|
+
import {
|
|
27
|
+
defaultChatComposerMessages
|
|
28
|
+
} from "./chunk-QCADUTYX.js";
|
|
29
29
|
import {
|
|
30
30
|
useErrorMessage
|
|
31
31
|
} from "./chunk-CM7LVUKC.js";
|
|
32
32
|
import {
|
|
33
33
|
composerSubmissionErrorMessage
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-MK54JLE4.js";
|
|
35
35
|
import {
|
|
36
36
|
cn
|
|
37
37
|
} from "./chunk-TXS65BB2.js";
|
|
38
38
|
import {
|
|
39
39
|
singleSendText,
|
|
40
40
|
useOpenGeniText
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-F2YABPRJ.js";
|
|
42
42
|
|
|
43
43
|
// src/commands/registry.ts
|
|
44
44
|
import { formatErrorMessage } from "@opengeni/sdk";
|
|
@@ -5016,4 +5016,4 @@ export {
|
|
|
5016
5016
|
useVoiceInput,
|
|
5017
5017
|
ComposerTranscriptionControl
|
|
5018
5018
|
};
|
|
5019
|
-
//# sourceMappingURL=chunk-
|
|
5019
|
+
//# sourceMappingURL=chunk-3WCYK36X.js.map
|
|
@@ -10,46 +10,46 @@ import {
|
|
|
10
10
|
import {
|
|
11
11
|
cn
|
|
12
12
|
} from "./chunk-A3MTTRCX.js";
|
|
13
|
-
import {
|
|
14
|
-
SegmentedControl
|
|
15
|
-
} from "./chunk-SWWYYGQO.js";
|
|
16
13
|
import {
|
|
17
14
|
HelpLink,
|
|
18
15
|
HelpTip,
|
|
19
16
|
InlineHelp
|
|
20
17
|
} from "./chunk-GQPRDEHX.js";
|
|
18
|
+
import {
|
|
19
|
+
SegmentedControl
|
|
20
|
+
} from "./chunk-325C2TCI.js";
|
|
21
21
|
import {
|
|
22
22
|
SettingRow
|
|
23
23
|
} from "./chunk-XSOPQZGH.js";
|
|
24
|
+
import {
|
|
25
|
+
Field,
|
|
26
|
+
TextInput
|
|
27
|
+
} from "./chunk-XNTW77T6.js";
|
|
24
28
|
import {
|
|
25
29
|
StatusDot
|
|
26
30
|
} from "./chunk-X6WZOHBI.js";
|
|
27
|
-
import {
|
|
28
|
-
hasWorkspacePermission
|
|
29
|
-
} from "./chunk-OWQBERKV.js";
|
|
30
31
|
import {
|
|
31
32
|
toast
|
|
32
33
|
} from "./chunk-YG6NARQY.js";
|
|
34
|
+
import {
|
|
35
|
+
hasWorkspacePermission
|
|
36
|
+
} from "./chunk-OWQBERKV.js";
|
|
33
37
|
import {
|
|
34
38
|
useAppContext
|
|
35
39
|
} from "./chunk-W6KAUGXO.js";
|
|
36
40
|
import {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
} from "./chunk-XNTW77T6.js";
|
|
41
|
+
Button
|
|
42
|
+
} from "./chunk-HMU5IELG.js";
|
|
40
43
|
import {
|
|
41
44
|
Skeleton
|
|
42
45
|
} from "./chunk-HY7EYWIG.js";
|
|
43
|
-
import {
|
|
44
|
-
Button
|
|
45
|
-
} from "./chunk-HMU5IELG.js";
|
|
46
46
|
import {
|
|
47
47
|
DEFAULT_SESSION_USAGE_LIMIT_LABELS,
|
|
48
48
|
summarizeSessionUsageLimit
|
|
49
49
|
} from "./chunk-4U7SHFQ2.js";
|
|
50
50
|
import {
|
|
51
51
|
useOpenGeniText
|
|
52
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-F2YABPRJ.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-3WG3CRL7.js.map
|
|
@@ -3,16 +3,16 @@ import {
|
|
|
3
3
|
RadioGroup,
|
|
4
4
|
RadioRow,
|
|
5
5
|
useFocusCheckedRow
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import {
|
|
8
|
-
useWorkspaceRigs
|
|
9
|
-
} from "./chunk-HZXH4XYA.js";
|
|
6
|
+
} from "./chunk-Z2S5VQG7.js";
|
|
10
7
|
import {
|
|
11
8
|
isMachineComputeSelectable
|
|
12
9
|
} from "./chunk-3O3ZUGMX.js";
|
|
10
|
+
import {
|
|
11
|
+
useWorkspaceRigs
|
|
12
|
+
} from "./chunk-HZXH4XYA.js";
|
|
13
13
|
import {
|
|
14
14
|
useWorkspaceMachines
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-U3JK5VJV.js";
|
|
16
16
|
import {
|
|
17
17
|
cn
|
|
18
18
|
} from "./chunk-A3MTTRCX.js";
|
|
@@ -21,22 +21,22 @@ import {
|
|
|
21
21
|
} from "./chunk-O2LGEYG4.js";
|
|
22
22
|
import {
|
|
23
23
|
t
|
|
24
|
-
} from "./chunk-
|
|
25
|
-
import {
|
|
26
|
-
userErrorText
|
|
27
|
-
} from "./chunk-L4OF77LE.js";
|
|
28
|
-
import {
|
|
29
|
-
Button
|
|
30
|
-
} from "./chunk-HMU5IELG.js";
|
|
24
|
+
} from "./chunk-MAOCN7J6.js";
|
|
31
25
|
import {
|
|
32
26
|
MENU_LABEL_CLASS,
|
|
33
27
|
MENU_NOTE_CLASS,
|
|
34
28
|
MENU_SEPARATOR_CLASS,
|
|
35
29
|
MENU_SURFACE_CLASS
|
|
36
30
|
} from "./chunk-5OTQA7CM.js";
|
|
31
|
+
import {
|
|
32
|
+
Button
|
|
33
|
+
} from "./chunk-HMU5IELG.js";
|
|
34
|
+
import {
|
|
35
|
+
userErrorText
|
|
36
|
+
} from "./chunk-L4OF77LE.js";
|
|
37
37
|
import {
|
|
38
38
|
MACHINES_SESSION_POLL_MS
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-DXMRO2MU.js";
|
|
40
40
|
import {
|
|
41
41
|
machineDisplayName,
|
|
42
42
|
sessionSandboxLabel
|
|
@@ -252,4 +252,4 @@ export {
|
|
|
252
252
|
SessionRunsOnMenuBody,
|
|
253
253
|
SessionComputeIndicator
|
|
254
254
|
};
|
|
255
|
-
//# sourceMappingURL=chunk-
|
|
255
|
+
//# sourceMappingURL=chunk-3X46PNBX.js.map
|
|
@@ -34,7 +34,9 @@ var MODEL_CONNECTION_CLASSES = [
|
|
|
34
34
|
"anthropic",
|
|
35
35
|
"claude_subscription",
|
|
36
36
|
"opper",
|
|
37
|
-
"elevenlabs"
|
|
37
|
+
"elevenlabs",
|
|
38
|
+
"openai",
|
|
39
|
+
"azure_openai"
|
|
38
40
|
];
|
|
39
41
|
var INTEGRATION_CONNECT_METHODS = [
|
|
40
42
|
"oauth",
|
|
@@ -101,6 +103,8 @@ function modelConnectionClass(provider) {
|
|
|
101
103
|
case "supergrok":
|
|
102
104
|
case "openrouter":
|
|
103
105
|
case "opper":
|
|
106
|
+
case "openai":
|
|
107
|
+
case "azure_openai":
|
|
104
108
|
case "anthropic":
|
|
105
109
|
case "claude_subscription":
|
|
106
110
|
case "elevenlabs":
|
|
@@ -296,4 +300,4 @@ export {
|
|
|
296
300
|
useIntegrationConnectJourney,
|
|
297
301
|
beginModelConnectJourney
|
|
298
302
|
};
|
|
299
|
-
//# sourceMappingURL=chunk-
|
|
303
|
+
//# sourceMappingURL=chunk-46I7MMAL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/app/lib/integration-connect-analytics.tsx"],"sourcesContent":["// Consent-gated integration connect journey (PostHog through\n// `captureAnalyticsEvent`). Every connect flow for an integration,\n// capability, or model provider reports\n//\n// integration_connect_started{integration_class, method}\n// integration_connect_finished{integration_class, method, outcome}\n//\n// `integration_class` reuses the closed provider classes of the server\n// lifecycle facts (`connection.created` and `model.connected` in\n// @opengeni/contracts product-lifecycle-facts), so browser funnels join the\n// server facts. Only closed values leave the browser: never a provider\n// domain, account, URL, error text, or identifier.\n//\n// Outcomes: `connected`, `denied` (the person or provider refused\n// authorization), `provider_error`, `cancelled` (the person cancelled or\n// closed the authorization window), `abandoned` (best effort: the setup\n// dialog was closed, the page was left, or the person came back from a\n// provider redirect without an outcome), and `outcome_unknown`.\nimport type { PRODUCT_LIFECYCLE_FACT_ATTRIBUTES } from \"@opengeni/contracts\";\nimport { useCallback, useEffect, useRef } from \"react\";\n\nimport { captureAnalyticsEvent } from \"./analytics-observer\";\nimport {\n takeIntegrationConnectReturn,\n type IntegrationConnectReturn,\n} from \"./integration-connect-return\";\n\ntype ConnectionClass = (typeof PRODUCT_LIFECYCLE_FACT_ATTRIBUTES)[\"connection.created\"][number];\ntype ModelClass = (typeof PRODUCT_LIFECYCLE_FACT_ATTRIBUTES)[\"model.connected\"][number];\n\n/** The `connection.created` provider classes (a test keeps them identical). */\nexport const INTEGRATION_CONNECTION_CLASSES = [\n \"slack\",\n \"github\",\n \"gitlab\",\n \"azure_devops\",\n \"bitbucket\",\n \"google\",\n \"microsoft\",\n \"linear\",\n \"atlassian\",\n \"notion\",\n \"supabase\",\n \"datadog\",\n \"posthog\",\n \"openai\",\n \"x\",\n \"other\",\n] as const satisfies readonly ConnectionClass[];\n\n/** The `model.connected` provider classes (a test keeps them identical). */\nexport const MODEL_CONNECTION_CLASSES = [\n \"codex\",\n \"supergrok\",\n \"vercel_gateway\",\n \"openrouter\",\n \"anthropic\",\n \"claude_subscription\",\n \"opper\",\n \"elevenlabs\",\n \"openai\",\n \"azure_openai\",\n] as const satisfies readonly ModelClass[];\n\nexport type IntegrationClass = ConnectionClass | ModelClass;\n\nexport const INTEGRATION_CONNECT_METHODS = [\n \"oauth\",\n \"api_key\",\n \"device_code\",\n \"app_install\",\n \"custom\",\n] as const;\nexport type IntegrationConnectMethod = (typeof INTEGRATION_CONNECT_METHODS)[number];\n\nexport const INTEGRATION_CONNECT_OUTCOMES = [\n \"connected\",\n \"denied\",\n \"provider_error\",\n \"cancelled\",\n \"abandoned\",\n \"outcome_unknown\",\n] as const;\nexport type IntegrationConnectOutcome = (typeof INTEGRATION_CONNECT_OUTCOMES)[number];\n\nconst DOMAIN_CLASSES: ReadonlyArray<readonly [ConnectionClass, readonly string[]]> = [\n [\"slack\", [\"slack.com\"]],\n [\"github\", [\"github.com\"]],\n [\"gitlab\", [\"gitlab.com\"]],\n [\"azure_devops\", [\"dev.azure.com\", \"visualstudio.com\"]],\n [\"bitbucket\", [\"bitbucket.org\"]],\n [\"google\", [\"google.com\", \"googleapis.com\"]],\n [\"microsoft\", [\"microsoft.com\", \"office.com\", \"microsoftonline.com\"]],\n [\"linear\", [\"linear.app\"]],\n [\"atlassian\", [\"atlassian.com\", \"atlassian.net\"]],\n [\"notion\", [\"notion.so\", \"notion.com\"]],\n [\"supabase\", [\"supabase.com\", \"supabase.co\"]],\n [\"datadog\", [\"datadoghq.com\", \"datadog.com\", \"datadoghq.eu\"]],\n [\"posthog\", [\"posthog.com\"]],\n [\"openai\", [\"openai.com\", \"chatgpt.com\"]],\n [\"x\", [\"x.com\", \"twitter.com\"]],\n];\n\n/**\n * The provider class of a connection domain or MCP host, mirroring\n * `opengeni_private.product_lifecycle_connection_class` (migration 0532).\n */\nexport function integrationClassFromDomain(domain: string | null | undefined): ConnectionClass {\n let host = (domain ?? \"\").trim().toLowerCase();\n try {\n if (host.includes(\"/\")) host = new URL(host).hostname;\n } catch {\n return \"other\";\n }\n for (const [integrationClass, roots] of DOMAIN_CLASSES) {\n if (\n roots.some((root) =>\n integrationClass === \"azure_devops\" && root === \"dev.azure.com\"\n ? host === root\n : host === root || host.endsWith(`.${root}`),\n )\n ) {\n return integrationClass;\n }\n }\n return \"other\";\n}\n\nconst CONNECT_PROVIDER_CLASSES: ReadonlyArray<readonly [RegExp, ConnectionClass]> = [\n [/^slack(-|$)/, \"slack\"],\n [/^github(-|$)/, \"github\"],\n [/^(google-drive|gmail)(-|$)/, \"google\"],\n [/^(microsoft|outlook|onedrive)(-|$)/, \"microsoft\"],\n [/^atlassian(-|$)/, \"atlassian\"],\n [/^x$/, \"x\"],\n];\n\n/** The provider class of a Connect API `providerId` (for example `slack-bot`). */\nexport function integrationClassFromConnectProvider(providerId: string): ConnectionClass {\n return CONNECT_PROVIDER_CLASSES.find(([pattern]) => pattern.test(providerId))?.[1] ?? \"other\";\n}\n\n/** The `model.connected` class of a model provider name used in the console. */\nexport function modelConnectionClass(provider: string): ModelClass | null {\n switch (provider) {\n case \"codex\":\n case \"supergrok\":\n case \"openrouter\":\n case \"opper\":\n case \"openai\":\n case \"azure_openai\":\n case \"anthropic\":\n case \"claude_subscription\":\n case \"elevenlabs\":\n return provider;\n case \"ai-gateway\":\n case \"vercel_gateway\":\n case \"vercel_ai_gateway\":\n case \"gateway\":\n return \"vercel_gateway\";\n default:\n return null;\n }\n}\n\n/** The outcome of a failed connect request or authorization. */\nexport function integrationConnectErrorOutcome(error: unknown): IntegrationConnectOutcome {\n const name =\n typeof error === \"object\" && error !== null ? (error as { name?: unknown }).name : undefined;\n if (name === \"AbortError\" || name === \"ConnectPopupClosedError\") return \"cancelled\";\n const status =\n typeof error === \"object\" && error !== null\n ? (error as { status?: unknown }).status\n : undefined;\n if (typeof status === \"number\" && status >= 400 && status < 600) return \"provider_error\";\n return \"outcome_unknown\";\n}\n\n/** The outcome of a settled Connect API attempt, or null while it is still in progress. */\nexport function connectAttemptOutcome(attempt: {\n state: string;\n error?: { code: string } | undefined;\n}): IntegrationConnectOutcome | null {\n switch (attempt.state) {\n case \"complete\":\n return \"connected\";\n case \"cancelled\":\n return \"cancelled\";\n case \"expired\":\n return \"abandoned\";\n case \"uncertain\":\n return \"outcome_unknown\";\n case \"failed\":\n return /denied/i.test(attempt.error?.code ?? \"\") ? \"denied\" : \"provider_error\";\n default:\n return null;\n }\n}\n\nexport type IntegrationConnectTracker = {\n /** Report the outcome. Only the first call reports. */\n finish(outcome: IntegrationConnectOutcome): void;\n /**\n * The page is about to leave for the provider. The journey finishes when\n * the browser returns (see `captureIntegrationConnectReturn`), so leaving\n * the page is not reported as `abandoned`.\n */\n redirecting(options?: { returnsWithOutcome?: boolean | undefined }): void;\n};\n\ntype Capture = (\n name: \"integration_connect_started\" | \"integration_connect_finished\",\n properties: Record<string, string>,\n) => boolean;\n\nconst REDIRECT_MARKER_KEY = \"opengeni.analytics.integrationConnect\";\nconst REDIRECT_MARKER_MAX_AGE_MS = 60 * 60_000;\ntype RedirectMarker = {\n integrationClass: IntegrationClass;\n method: IntegrationConnectMethod;\n returnsWithOutcome: boolean;\n startedAt: number;\n};\n\nconst pending = new Set<{ abandon(): void }>();\nlet pageHideInstalled = false;\n\nfunction installPageHide(): void {\n if (pageHideInstalled || typeof window === \"undefined\") return;\n pageHideInstalled = true;\n window.addEventListener(\"pagehide\", () => {\n for (const tracker of [...pending]) tracker.abandon();\n });\n}\n\nfunction sessionStore(): Storage | null {\n try {\n return typeof window === \"undefined\" ? null : window.sessionStorage;\n } catch {\n return null;\n }\n}\n\n/**\n * Start a connect journey. `capture` defaults to the consent-gated product\n * analytics; when collection is not allowed nothing is reported or stored.\n */\nexport function beginIntegrationConnect(\n integrationClass: IntegrationClass,\n method: IntegrationConnectMethod,\n options: {\n capture?: Capture | undefined;\n storage?: Storage | null | undefined;\n now?: (() => number) | undefined;\n } = {},\n): IntegrationConnectTracker {\n const capture: Capture = options.capture ?? captureAnalyticsEvent;\n const properties = { integration_class: integrationClass, method };\n let accepted = false;\n try {\n accepted = capture(\"integration_connect_started\", properties);\n } catch {\n accepted = false;\n }\n let settled = false;\n const entry = { abandon: () => finish(\"abandoned\") };\n function finish(outcome: IntegrationConnectOutcome) {\n if (settled) return;\n settled = true;\n pending.delete(entry);\n if (!accepted) return;\n try {\n capture(\"integration_connect_finished\", { ...properties, outcome });\n } catch {\n // Optional telemetry cannot fail product work.\n }\n }\n if (accepted) {\n pending.add(entry);\n installPageHide();\n }\n return {\n finish,\n redirecting({ returnsWithOutcome = true } = {}) {\n if (settled) return;\n settled = true;\n pending.delete(entry);\n if (!accepted) return;\n const marker: RedirectMarker = {\n integrationClass,\n method,\n returnsWithOutcome,\n startedAt: (options.now ?? Date.now)(),\n };\n try {\n (options.storage === undefined ? sessionStore() : options.storage)?.setItem(\n REDIRECT_MARKER_KEY,\n JSON.stringify(marker),\n );\n } catch {\n // Without the marker the return still reports its outcome as `other`.\n }\n },\n };\n}\n\nfunction readRedirectMarker(storage: Storage | null, now: number): RedirectMarker | null {\n if (!storage) return null;\n let raw: string | null = null;\n try {\n raw = storage.getItem(REDIRECT_MARKER_KEY);\n storage.removeItem(REDIRECT_MARKER_KEY);\n } catch {\n return null;\n }\n if (!raw) return null;\n try {\n const marker = JSON.parse(raw) as Partial<RedirectMarker>;\n const known: readonly string[] = [\n ...INTEGRATION_CONNECTION_CLASSES,\n ...MODEL_CONNECTION_CLASSES,\n ];\n if (\n typeof marker.integrationClass !== \"string\" ||\n !known.includes(marker.integrationClass) ||\n !INTEGRATION_CONNECT_METHODS.includes(marker.method as IntegrationConnectMethod) ||\n typeof marker.startedAt !== \"number\" ||\n now - marker.startedAt > REDIRECT_MARKER_MAX_AGE_MS\n ) {\n return null;\n }\n return marker as RedirectMarker;\n } catch {\n return null;\n }\n}\n\nconst RETURN_CLASSES: Partial<Record<IntegrationConnectReturn[\"parameter\"], ConnectionClass>> = {\n slack: \"slack\",\n google_drive: \"google\",\n atlassian: \"atlassian\",\n github_personal_oauth: \"github\",\n github: \"github\",\n};\n\n/** The closed outcome of a provider return parameter. */\nexport function integrationConnectReturnOutcome(\n value: IntegrationConnectReturn,\n): IntegrationConnectOutcome {\n if ([\"success\", \"connected\", \"complete\"].includes(value.status)) return \"connected\";\n // A GitHub install request waits on an organization owner; nothing failed yet.\n if (value.parameter === \"github\" && value.status === \"requested\") return \"outcome_unknown\";\n const reason = value.reason ?? \"\";\n if (/denied/i.test(reason)) return \"denied\";\n if (/cancel/i.test(reason)) return \"cancelled\";\n if (/^(state_expired|missing_code)$/.test(reason)) return \"abandoned\";\n if (/timeout/i.test(reason)) return \"outcome_unknown\";\n return \"provider_error\";\n}\n\n/**\n * Finish a redirect connect journey once analytics collection is active:\n * report the outcome of the provider return parameters this document loaded\n * with, or `abandoned` (`outcome_unknown` for flows whose return carries no\n * outcome) when a redirect started in this tab and the person came back\n * without one.\n */\nexport function captureIntegrationConnectReturn(\n options: {\n returned?: IntegrationConnectReturn | null | undefined;\n capture?: Capture | undefined;\n storage?: Storage | null | undefined;\n now?: (() => number) | undefined;\n } = {},\n): void {\n const returned =\n options.returned === undefined ? takeIntegrationConnectReturn() : options.returned;\n const marker = readRedirectMarker(\n options.storage === undefined ? sessionStore() : options.storage,\n (options.now ?? Date.now)(),\n );\n if (!returned && !marker) return;\n const capture: Capture = options.capture ?? captureAnalyticsEvent;\n const integrationClass: IntegrationClass =\n marker?.integrationClass ??\n (returned\n ? (RETURN_CLASSES[returned.parameter] ??\n (returned.providerDomain ? integrationClassFromDomain(returned.providerDomain) : \"other\"))\n : \"other\");\n const outcome: IntegrationConnectOutcome = returned\n ? integrationConnectReturnOutcome(returned)\n : marker?.returnsWithOutcome\n ? \"abandoned\"\n : \"outcome_unknown\";\n try {\n capture(\"integration_connect_finished\", {\n integration_class: integrationClass,\n method: marker?.method ?? (returned?.parameter === \"github\" ? \"app_install\" : \"oauth\"),\n outcome,\n });\n } catch {\n // Optional telemetry cannot fail product work.\n }\n}\n\n/**\n * A connect journey bound to a mounted setup surface: started on mount,\n * `abandoned` when it unmounts before `finish` was called.\n */\nexport function useIntegrationConnectJourney(\n integrationClass: IntegrationClass,\n method: IntegrationConnectMethod,\n): (outcome: IntegrationConnectOutcome) => void {\n const tracker = useRef<IntegrationConnectTracker | null>(null);\n useEffect(() => {\n const started = beginIntegrationConnect(integrationClass, method);\n tracker.current = started;\n return () => {\n started.finish(\"abandoned\");\n if (tracker.current === started) tracker.current = null;\n };\n }, [integrationClass, method]);\n return useCallback((outcome) => tracker.current?.finish(outcome), []);\n}\n\n/**\n * A model-provider connect journey with the outcome vocabulary of\n * `trackModelConnection`, for flows that have no workspace-scoped tracker\n * (organization connections, Claude). `expired` is reported as `abandoned`.\n */\nexport function beginModelConnectJourney(\n provider: string,\n method: IntegrationConnectMethod,\n): (outcome: \"connected\" | \"expired\" | \"denied\" | \"outcome_unknown\") => void {\n const tracker = beginIntegrationConnect(modelConnectionClass(provider) ?? \"other\", method);\n return (outcome) => tracker.finish(outcome === \"expired\" ? \"abandoned\" : outcome);\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
mergeSessionForRail
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-TASEV25T.js";
|
|
5
5
|
|
|
6
6
|
// src/app/lib/session-branch-cache.tsx
|
|
7
7
|
function sessionBranchSummaryKey(session, readRevision = 0) {
|
|
@@ -183,4 +183,4 @@ export {
|
|
|
183
183
|
sessionBranchNeedsHydration,
|
|
184
184
|
sessionBranchSummaryDecision
|
|
185
185
|
};
|
|
186
|
-
//# sourceMappingURL=chunk-
|
|
186
|
+
//# sourceMappingURL=chunk-4GJ37O6G.js.map
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
sessionDisplayTitle
|
|
4
|
+
} from "./chunk-J2C6LB6W.js";
|
|
5
|
+
|
|
6
|
+
// src/app/lib/actions/chat-directory.ts
|
|
7
|
+
import { useSyncExternalStore } from "react";
|
|
8
|
+
var RECENT_LIMIT = 30;
|
|
9
|
+
var directories = /* @__PURE__ */ new Map();
|
|
10
|
+
var listeners = /* @__PURE__ */ new Map();
|
|
11
|
+
function key(subjectId, workspaceId) {
|
|
12
|
+
return `${subjectId}\0${workspaceId}`;
|
|
13
|
+
}
|
|
14
|
+
function storageKey(subjectId, workspaceId) {
|
|
15
|
+
return `opengeni.recentChats.${subjectId}.${workspaceId}`;
|
|
16
|
+
}
|
|
17
|
+
function readStoredRecent(subjectId, workspaceId) {
|
|
18
|
+
if (typeof window === "undefined") return [];
|
|
19
|
+
try {
|
|
20
|
+
const raw = window.localStorage.getItem(storageKey(subjectId, workspaceId));
|
|
21
|
+
const parsed = raw ? JSON.parse(raw) : [];
|
|
22
|
+
if (!Array.isArray(parsed)) return [];
|
|
23
|
+
return parsed.filter(
|
|
24
|
+
(item) => typeof item === "object" && item !== null && typeof item.id === "string" && typeof item.title === "string" && typeof item.at === "number"
|
|
25
|
+
);
|
|
26
|
+
} catch {
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function directory(subjectId, workspaceId) {
|
|
31
|
+
const id = key(subjectId, workspaceId);
|
|
32
|
+
let state = directories.get(id);
|
|
33
|
+
if (!state) {
|
|
34
|
+
const stored = readStoredRecent(subjectId, workspaceId);
|
|
35
|
+
state = {
|
|
36
|
+
rows: new Map(
|
|
37
|
+
stored.map((item) => [
|
|
38
|
+
item.id,
|
|
39
|
+
{
|
|
40
|
+
id: item.id,
|
|
41
|
+
workspaceId,
|
|
42
|
+
title: item.title,
|
|
43
|
+
updatedAt: item.at,
|
|
44
|
+
pinned: false,
|
|
45
|
+
archived: false,
|
|
46
|
+
row: null
|
|
47
|
+
}
|
|
48
|
+
])
|
|
49
|
+
),
|
|
50
|
+
recent: stored.map((item) => item.id),
|
|
51
|
+
sidebarOrder: [],
|
|
52
|
+
pinnedOrder: [],
|
|
53
|
+
version: 0
|
|
54
|
+
};
|
|
55
|
+
directories.set(id, state);
|
|
56
|
+
}
|
|
57
|
+
return state;
|
|
58
|
+
}
|
|
59
|
+
function emit(subjectId, workspaceId) {
|
|
60
|
+
const state = directory(subjectId, workspaceId);
|
|
61
|
+
state.version += 1;
|
|
62
|
+
for (const listener of listeners.get(key(subjectId, workspaceId)) ?? []) listener();
|
|
63
|
+
}
|
|
64
|
+
function persistRecent(subjectId, workspaceId, state) {
|
|
65
|
+
if (typeof window === "undefined") return;
|
|
66
|
+
const stored = state.recent.flatMap((id) => {
|
|
67
|
+
const record = state.rows.get(id);
|
|
68
|
+
return record ? [{ id, title: record.title, at: record.updatedAt }] : [];
|
|
69
|
+
});
|
|
70
|
+
try {
|
|
71
|
+
window.localStorage.setItem(storageKey(subjectId, workspaceId), JSON.stringify(stored));
|
|
72
|
+
} catch {
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function chatRecordFromRow(row) {
|
|
76
|
+
return {
|
|
77
|
+
id: row.id,
|
|
78
|
+
workspaceId: row.workspaceId,
|
|
79
|
+
title: sessionDisplayTitle(row),
|
|
80
|
+
updatedAt: Date.parse(row.updatedAt) || 0,
|
|
81
|
+
pinned: Boolean(row.pinned),
|
|
82
|
+
archived: Boolean(row.archived),
|
|
83
|
+
row
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
function rememberChats(subjectId, workspaceId, rows) {
|
|
87
|
+
if (rows.length === 0) return;
|
|
88
|
+
const state = directory(subjectId, workspaceId);
|
|
89
|
+
let changed = false;
|
|
90
|
+
for (const row of rows) {
|
|
91
|
+
if (row.workspaceId !== workspaceId) continue;
|
|
92
|
+
const next = chatRecordFromRow(row);
|
|
93
|
+
const current = state.rows.get(row.id);
|
|
94
|
+
if (current?.row === row || current && current.row && current.title === next.title && current.updatedAt === next.updatedAt && current.pinned === next.pinned && current.archived === next.archived) {
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
state.rows.set(row.id, next);
|
|
98
|
+
changed = true;
|
|
99
|
+
}
|
|
100
|
+
if (changed) emit(subjectId, workspaceId);
|
|
101
|
+
}
|
|
102
|
+
function recordChatVisit(subjectId, workspaceId, row) {
|
|
103
|
+
const state = directory(subjectId, workspaceId);
|
|
104
|
+
const record = { ...chatRecordFromRow(row), updatedAt: Date.now() };
|
|
105
|
+
const previous = state.rows.get(row.id);
|
|
106
|
+
state.rows.set(row.id, previous?.row && !record.row ? { ...previous, ...record } : record);
|
|
107
|
+
if (state.recent[0] !== row.id) {
|
|
108
|
+
state.recent = [row.id, ...state.recent.filter((id) => id !== row.id)].slice(0, RECENT_LIMIT);
|
|
109
|
+
}
|
|
110
|
+
persistRecent(subjectId, workspaceId, state);
|
|
111
|
+
emit(subjectId, workspaceId);
|
|
112
|
+
}
|
|
113
|
+
function setSidebarOrder(subjectId, workspaceId, order, pinnedOrder) {
|
|
114
|
+
const state = directory(subjectId, workspaceId);
|
|
115
|
+
if (state.sidebarOrder.length === order.length && state.sidebarOrder.every((id, index) => id === order[index]) && state.pinnedOrder.length === pinnedOrder.length && state.pinnedOrder.every((id, index) => id === pinnedOrder[index])) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
state.sidebarOrder = [...order];
|
|
119
|
+
state.pinnedOrder = [...pinnedOrder];
|
|
120
|
+
emit(subjectId, workspaceId);
|
|
121
|
+
}
|
|
122
|
+
function readChatDirectory(subjectId, workspaceId) {
|
|
123
|
+
return directory(subjectId, workspaceId);
|
|
124
|
+
}
|
|
125
|
+
function subscribe(subjectId, workspaceId, listener) {
|
|
126
|
+
const id = key(subjectId, workspaceId);
|
|
127
|
+
let set = listeners.get(id);
|
|
128
|
+
if (!set) {
|
|
129
|
+
set = /* @__PURE__ */ new Set();
|
|
130
|
+
listeners.set(id, set);
|
|
131
|
+
}
|
|
132
|
+
set.add(listener);
|
|
133
|
+
return () => {
|
|
134
|
+
set.delete(listener);
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
function useChatDirectoryVersion(subjectId, workspaceId) {
|
|
138
|
+
return useSyncExternalStore(
|
|
139
|
+
(listener) => subscribe(subjectId, workspaceId, listener),
|
|
140
|
+
() => directory(subjectId, workspaceId).version,
|
|
141
|
+
() => 0
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export {
|
|
146
|
+
rememberChats,
|
|
147
|
+
recordChatVisit,
|
|
148
|
+
setSidebarOrder,
|
|
149
|
+
readChatDirectory,
|
|
150
|
+
useChatDirectoryVersion
|
|
151
|
+
};
|
|
152
|
+
//# sourceMappingURL=chunk-4IWBQUQU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/app/lib/actions/chat-directory.ts"],"sourcesContent":["/**\n * What the app already knows about chats, so the command menu can answer\n * instantly: rows the sidebar has loaded, the chats someone opened recently\n * (kept across reloads), and the sidebar's visible order for next and previous\n * chat. It is a cache for speed, never a source of authority: opening a chat\n * still goes through the normal authorized reads.\n */\nimport { useSyncExternalStore } from \"react\";\nimport { sessionDisplayTitle, type SessionListRow } from \"../../../session-list-model\";\n\nexport type ChatRecord = {\n id: string;\n workspaceId: string;\n title: string;\n updatedAt: number;\n pinned: boolean;\n archived: boolean;\n /** Present when the app holds a full or list row, needed for pin and archive. */\n row: SessionListRow | null;\n};\n\ntype DirectoryState = {\n rows: Map<string, ChatRecord>;\n /** Recently opened chat ids, most recent first. */\n recent: string[];\n /** Sidebar order of visible chats (pinned first), for next and previous. */\n sidebarOrder: string[];\n pinnedOrder: string[];\n version: number;\n};\n\nconst RECENT_LIMIT = 30;\nconst directories = new Map<string, DirectoryState>();\nconst listeners = new Map<string, Set<() => void>>();\n\nfunction key(subjectId: string, workspaceId: string): string {\n return `${subjectId}\\u0000${workspaceId}`;\n}\n\nfunction storageKey(subjectId: string, workspaceId: string): string {\n return `opengeni.recentChats.${subjectId}.${workspaceId}`;\n}\n\ntype StoredRecent = { id: string; title: string; at: number };\n\nfunction readStoredRecent(subjectId: string, workspaceId: string): StoredRecent[] {\n if (typeof window === \"undefined\") return [];\n try {\n const raw = window.localStorage.getItem(storageKey(subjectId, workspaceId));\n const parsed: unknown = raw ? JSON.parse(raw) : [];\n if (!Array.isArray(parsed)) return [];\n return parsed.filter(\n (item): item is StoredRecent =>\n typeof item === \"object\" &&\n item !== null &&\n typeof (item as StoredRecent).id === \"string\" &&\n typeof (item as StoredRecent).title === \"string\" &&\n typeof (item as StoredRecent).at === \"number\",\n );\n } catch {\n return [];\n }\n}\n\nfunction directory(subjectId: string, workspaceId: string): DirectoryState {\n const id = key(subjectId, workspaceId);\n let state = directories.get(id);\n if (!state) {\n const stored = readStoredRecent(subjectId, workspaceId);\n state = {\n rows: new Map(\n stored.map((item) => [\n item.id,\n {\n id: item.id,\n workspaceId,\n title: item.title,\n updatedAt: item.at,\n pinned: false,\n archived: false,\n row: null,\n },\n ]),\n ),\n recent: stored.map((item) => item.id),\n sidebarOrder: [],\n pinnedOrder: [],\n version: 0,\n };\n directories.set(id, state);\n }\n return state;\n}\n\nfunction emit(subjectId: string, workspaceId: string): void {\n const state = directory(subjectId, workspaceId);\n state.version += 1;\n for (const listener of listeners.get(key(subjectId, workspaceId)) ?? []) listener();\n}\n\nfunction persistRecent(subjectId: string, workspaceId: string, state: DirectoryState): void {\n if (typeof window === \"undefined\") return;\n const stored: StoredRecent[] = state.recent.flatMap((id) => {\n const record = state.rows.get(id);\n return record ? [{ id, title: record.title, at: record.updatedAt }] : [];\n });\n try {\n window.localStorage.setItem(storageKey(subjectId, workspaceId), JSON.stringify(stored));\n } catch {\n // Storage full or blocked: recent chats then last only for this page.\n }\n}\n\nexport function chatRecordFromRow(row: SessionListRow): ChatRecord {\n return {\n id: row.id,\n workspaceId: row.workspaceId,\n title: sessionDisplayTitle(row),\n updatedAt: Date.parse(row.updatedAt) || 0,\n pinned: Boolean(row.pinned),\n archived: Boolean(row.archived),\n row,\n };\n}\n\n/** Remember rows the app has read (sidebar pages, search results, the open chat). */\nexport function rememberChats(\n subjectId: string,\n workspaceId: string,\n rows: readonly SessionListRow[],\n): void {\n if (rows.length === 0) return;\n const state = directory(subjectId, workspaceId);\n let changed = false;\n for (const row of rows) {\n if (row.workspaceId !== workspaceId) continue;\n const next = chatRecordFromRow(row);\n const current = state.rows.get(row.id);\n if (\n current?.row === row ||\n (current &&\n current.row &&\n current.title === next.title &&\n current.updatedAt === next.updatedAt &&\n current.pinned === next.pinned &&\n current.archived === next.archived)\n ) {\n continue;\n }\n state.rows.set(row.id, next);\n changed = true;\n }\n if (changed) emit(subjectId, workspaceId);\n}\n\n/** The chat was opened: move it to the front of the recent list. */\nexport function recordChatVisit(subjectId: string, workspaceId: string, row: SessionListRow): void {\n const state = directory(subjectId, workspaceId);\n const record = { ...chatRecordFromRow(row), updatedAt: Date.now() };\n const previous = state.rows.get(row.id);\n state.rows.set(row.id, previous?.row && !record.row ? { ...previous, ...record } : record);\n if (state.recent[0] !== row.id) {\n state.recent = [row.id, ...state.recent.filter((id) => id !== row.id)].slice(0, RECENT_LIMIT);\n }\n persistRecent(subjectId, workspaceId, state);\n emit(subjectId, workspaceId);\n}\n\n/** A chat was deleted or is no longer reachable: forget it. */\nexport function forgetChat(subjectId: string, workspaceId: string, chatId: string): void {\n const state = directory(subjectId, workspaceId);\n if (!state.rows.delete(chatId) && !state.recent.includes(chatId)) return;\n state.recent = state.recent.filter((id) => id !== chatId);\n persistRecent(subjectId, workspaceId, state);\n emit(subjectId, workspaceId);\n}\n\n/** The sidebar reports the chats it shows, in order, so next and previous follow it. */\nexport function setSidebarOrder(\n subjectId: string,\n workspaceId: string,\n order: readonly string[],\n pinnedOrder: readonly string[],\n): void {\n const state = directory(subjectId, workspaceId);\n if (\n state.sidebarOrder.length === order.length &&\n state.sidebarOrder.every((id, index) => id === order[index]) &&\n state.pinnedOrder.length === pinnedOrder.length &&\n state.pinnedOrder.every((id, index) => id === pinnedOrder[index])\n ) {\n return;\n }\n state.sidebarOrder = [...order];\n state.pinnedOrder = [...pinnedOrder];\n emit(subjectId, workspaceId);\n}\n\nexport type ChatDirectorySnapshot = Readonly<{\n rows: ReadonlyMap<string, ChatRecord>;\n recent: readonly string[];\n sidebarOrder: readonly string[];\n pinnedOrder: readonly string[];\n version: number;\n}>;\n\nexport function readChatDirectory(subjectId: string, workspaceId: string): ChatDirectorySnapshot {\n return directory(subjectId, workspaceId);\n}\n\nfunction subscribe(subjectId: string, workspaceId: string, listener: () => void): () => void {\n const id = key(subjectId, workspaceId);\n let set = listeners.get(id);\n if (!set) {\n set = new Set();\n listeners.set(id, set);\n }\n set.add(listener);\n return () => {\n set.delete(listener);\n };\n}\n\n/** Re-renders when the directory changes; read the snapshot through `readChatDirectory`. */\nexport function useChatDirectoryVersion(subjectId: string, workspaceId: string): number {\n return useSyncExternalStore(\n (listener) => subscribe(subjectId, workspaceId, listener),\n () => directory(subjectId, workspaceId).version,\n () => 0,\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -2,9 +2,6 @@
|
|
|
2
2
|
import {
|
|
3
3
|
SECTION_TITLE_CLASS
|
|
4
4
|
} from "./chunk-J6WRB3VZ.js";
|
|
5
|
-
import {
|
|
6
|
-
LogoTileSizeProvider
|
|
7
|
-
} from "./chunk-FQQEZUSN.js";
|
|
8
5
|
import {
|
|
9
6
|
Sheet,
|
|
10
7
|
SheetClose,
|
|
@@ -13,11 +10,14 @@ import {
|
|
|
13
10
|
SheetTrigger
|
|
14
11
|
} from "./chunk-6KELG2EG.js";
|
|
15
12
|
import {
|
|
16
|
-
|
|
17
|
-
} from "./chunk-
|
|
13
|
+
LogoTileSizeProvider
|
|
14
|
+
} from "./chunk-FQQEZUSN.js";
|
|
18
15
|
import {
|
|
19
16
|
Button
|
|
20
17
|
} from "./chunk-HMU5IELG.js";
|
|
18
|
+
import {
|
|
19
|
+
Skeleton
|
|
20
|
+
} from "./chunk-HY7EYWIG.js";
|
|
21
21
|
import {
|
|
22
22
|
containedPortal
|
|
23
23
|
} from "./chunk-J3BHDXQQ.js";
|
|
@@ -473,4 +473,4 @@ export {
|
|
|
473
473
|
DetailFooterConfirm,
|
|
474
474
|
DetailSkeleton
|
|
475
475
|
};
|
|
476
|
-
//# sourceMappingURL=chunk-
|
|
476
|
+
//# sourceMappingURL=chunk-4SKJX3C4.js.map
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from "./chunk-XEA5BCMA.js";
|
|
8
8
|
import {
|
|
9
9
|
useOpenGeniText
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-F2YABPRJ.js";
|
|
11
11
|
|
|
12
12
|
// src/components/session-capability-frame.tsx
|
|
13
13
|
import { CheckIcon, InfoIcon, ShieldCheckIcon, XIcon } from "lucide-react";
|
|
@@ -152,4 +152,4 @@ function SessionCapabilityFrame({
|
|
|
152
152
|
export {
|
|
153
153
|
SessionCapabilityFrame
|
|
154
154
|
};
|
|
155
|
-
//# sourceMappingURL=chunk-
|
|
155
|
+
//# sourceMappingURL=chunk-57SYK776.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
RadioGroup,
|
|
4
4
|
RadioRow,
|
|
5
5
|
useFocusCheckedRow
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-Z2S5VQG7.js";
|
|
7
7
|
import {
|
|
8
8
|
isMachineComputeSelectable
|
|
9
9
|
} from "./chunk-3O3ZUGMX.js";
|
|
@@ -23,26 +23,26 @@ import {
|
|
|
23
23
|
ComposerMenuHeader
|
|
24
24
|
} from "./chunk-O2LGEYG4.js";
|
|
25
25
|
import {
|
|
26
|
-
|
|
27
|
-
} from "./chunk-
|
|
26
|
+
DropdownMenuItem
|
|
27
|
+
} from "./chunk-TREHTIBD.js";
|
|
28
28
|
import {
|
|
29
29
|
rememberedMachineFolder,
|
|
30
30
|
workspaceDefaultRigOptionLabel
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-WRMQ7EX4.js";
|
|
32
32
|
import {
|
|
33
33
|
t
|
|
34
|
-
} from "./chunk-
|
|
35
|
-
import {
|
|
36
|
-
Button
|
|
37
|
-
} from "./chunk-HMU5IELG.js";
|
|
38
|
-
import {
|
|
39
|
-
DropdownMenuItem
|
|
40
|
-
} from "./chunk-MOF3XSUM.js";
|
|
34
|
+
} from "./chunk-MAOCN7J6.js";
|
|
41
35
|
import {
|
|
42
36
|
MENU_LABEL_CLASS,
|
|
43
37
|
MENU_NOTE_CLASS,
|
|
44
38
|
MENU_SEPARATOR_CLASS
|
|
45
39
|
} from "./chunk-5OTQA7CM.js";
|
|
40
|
+
import {
|
|
41
|
+
Notice
|
|
42
|
+
} from "./chunk-WLEDGIVS.js";
|
|
43
|
+
import {
|
|
44
|
+
Button
|
|
45
|
+
} from "./chunk-HMU5IELG.js";
|
|
46
46
|
import {
|
|
47
47
|
DEFAULT_SESSION_USAGE_LIMIT_LABELS
|
|
48
48
|
} from "./chunk-4U7SHFQ2.js";
|
|
@@ -493,4 +493,4 @@ export {
|
|
|
493
493
|
VisibilityMenuBody,
|
|
494
494
|
UsageLimitMenuBody
|
|
495
495
|
};
|
|
496
|
-
//# sourceMappingURL=chunk-
|
|
496
|
+
//# sourceMappingURL=chunk-5DIAN5GQ.js.map
|
|
@@ -5,14 +5,14 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
cn
|
|
7
7
|
} from "./chunk-A3MTTRCX.js";
|
|
8
|
-
import {
|
|
9
|
-
ConnectorAction
|
|
10
|
-
} from "./chunk-QZO2KK2F.js";
|
|
11
8
|
import {
|
|
12
9
|
ComposerMenuHeader,
|
|
13
10
|
ComposerMenuRowsSkeleton,
|
|
14
11
|
ComposerMenuSwitchIndicator
|
|
15
12
|
} from "./chunk-O2LGEYG4.js";
|
|
13
|
+
import {
|
|
14
|
+
ConnectorAction
|
|
15
|
+
} from "./chunk-6P44NG6Y.js";
|
|
16
16
|
import {
|
|
17
17
|
MENU_BACK_BUTTON_CLASS,
|
|
18
18
|
MENU_CHECK_SLOT_CLASS,
|
|
@@ -275,4 +275,4 @@ export {
|
|
|
275
275
|
SessionSecretsMenuBody,
|
|
276
276
|
sessionSecretsRows
|
|
277
277
|
};
|
|
278
|
-
//# sourceMappingURL=chunk-
|
|
278
|
+
//# sourceMappingURL=chunk-5FA455GR.js.map
|