@opengeni/react 4.4.1 → 4.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/app-state.js +25 -25
- package/dist/app/components/Composer.js +27 -27
- package/dist/app/components/agent/agent-capability-picker.js +4 -4
- package/dist/app/components/artifacts/artifact-browse-controls.js +3 -3
- package/dist/app/components/artifacts/artifact-library.js +19 -19
- package/dist/app/components/artifacts/artifact-page-chrome.js +2 -2
- package/dist/app/components/artifacts/chat-interactive-block.js +15 -15
- package/dist/app/components/artifacts/inline-chat-image.js +30 -29
- package/dist/app/components/artifacts/retained-file-preview.js +34 -33
- package/dist/app/components/artifacts/retained-text-preview.js +5 -5
- package/dist/app/components/artifacts/site-audience.js +4 -4
- package/dist/app/components/artifacts/site-conversations.js +20 -19
- package/dist/app/components/artifacts/site-data.js +18 -18
- package/dist/app/components/artifacts/site-publishing.js +39 -39
- package/dist/app/components/artifacts/site-settings.js +46 -46
- package/dist/app/components/billing-class-mark.js +5 -5
- package/dist/app/components/capabilities/capability-detail-sheet.js +8 -8
- package/dist/app/components/capabilities/capability-logo-source.js +11 -11
- package/dist/app/components/capabilities/connector-tool-permissions.js +4 -4
- package/dist/app/components/capabilities/native-connect-setup.js +14 -14
- package/dist/app/components/capabilities/perform-capability-action.js +1 -1
- package/dist/app/components/capabilities/prepared-mcp-setup-card.js +15 -15
- package/dist/app/components/capabilities/session-capability-card.js +77 -75
- package/dist/app/components/capabilities/session-capability-card.js.map +1 -1
- package/dist/app/components/capabilities/session-chrome-card.js +35 -33
- package/dist/app/components/capabilities/session-custom-mcp-card.js +19 -19
- package/dist/app/components/capabilities/session-github-card.js +22 -22
- package/dist/app/components/capabilities/session-machine-card.js +34 -32
- 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-status.js +15 -14
- package/dist/app/components/command-menu/chat-switcher.js +16 -15
- package/dist/app/components/command-menu/chat-switcher.js.map +1 -1
- package/dist/app/components/command-menu/command-menu.js +32 -110
- package/dist/app/components/command-menu/command-menu.js.map +1 -1
- package/dist/app/components/command-menu/shortcut-sheet.js +15 -15
- package/dist/app/components/composer-capabilities-menu-body.js +3 -3
- package/dist/app/components/composer-mobile-plus-panel.js +17 -17
- 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 +9 -9
- package/dist/app/components/credits/coupon-redeem.js +2 -2
- package/dist/app/components/credits/credit-refusal-notice.js +2 -2
- 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 +4 -4
- package/dist/app/components/follow-up-repository-menu-body.js +4 -4
- package/dist/app/components/follow-up-repository-picker.js +1 -1
- package/dist/app/components/github-app-connect-launcher.js +2 -2
- package/dist/app/components/in-app-help-link.js +2 -2
- package/dist/app/components/knowledge/agent-learning-settings.js +3 -3
- package/dist/app/components/machines/connect-machine-dialog.js +18 -18
- package/dist/app/components/markdown.js +8 -8
- package/dist/app/components/message-context-pills.js +2 -2
- package/dist/app/components/models/models-ui.js +8 -8
- package/dist/app/components/new-session-starters.js +2 -2
- package/dist/app/components/pickers.js +8 -8
- package/dist/app/components/rail/rail-context.js +3 -3
- package/dist/app/components/rail/rail-sections.js +65 -62
- package/dist/app/components/rail/session-header.js +48 -47
- package/dist/app/components/rail/session-list.js +64 -61
- package/dist/app/components/rail/session-row-content.d.ts +6 -2
- package/dist/app/components/rail/session-row-content.js +1 -1
- package/dist/app/components/rail/session-row-hover-details.js +20 -19
- package/dist/app/components/rail/session-shell.js +104 -101
- package/dist/app/components/rail/site-session-group-heading.d.ts +7 -1
- package/dist/app/components/rail/site-session-group-heading.js +20 -3
- package/dist/app/components/repository-picker.js +4 -4
- package/dist/app/components/secrets/session-secrets-panel.js +3 -3
- package/dist/app/components/session/agent-configuration-panel.js +33 -33
- package/dist/app/components/session/artifact-link-boundary.js +2 -2
- package/dist/app/components/session/artifact-session-page.js +5 -5
- package/dist/app/components/session/banners.js +10 -10
- package/dist/app/components/session/codex-account-indicator.js +11 -11
- package/dist/app/components/session/editable-artifacts-workspace.js +44 -44
- package/dist/app/components/session/failed-session-banner.js +10 -10
- package/dist/app/components/session/human-input.js +57 -53
- package/dist/app/components/session/inspector.js +94 -90
- package/dist/app/components/session/inspector.js.map +1 -1
- package/dist/app/components/session/message-actions.js +4 -4
- package/dist/app/components/session/message-resource-attachments.js +20 -19
- 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 +9 -9
- package/dist/app/components/session/sandbox-switcher.js +16 -16
- package/dist/app/components/session/sandbox-workspace.js +81 -77
- package/dist/app/components/session/search-markdown-highlight.js +9 -9
- package/dist/app/components/session/search-results-view.js +10 -10
- package/dist/app/components/session/session-admin-access.js +8 -8
- package/dist/app/components/session/session-admission-notice.js +6 -6
- package/dist/app/components/session/session-machine-access-notice.js +6 -6
- package/dist/app/components/session/session-retention.js +4 -4
- package/dist/app/components/session/session-search-dialog.js +11 -11
- package/dist/app/components/session/session-skill-reviews.js +1 -1
- package/dist/app/components/session/session-tenancy-control.d.ts +2 -0
- package/dist/app/components/session/session-tenancy-control.js +40 -25
- package/dist/app/components/session/session-tenancy-control.js.map +1 -1
- package/dist/app/components/session/session-usage-limit-section.js +11 -11
- package/dist/app/components/session/session-wait-status.js +9 -8
- package/dist/app/components/session/session-wait-status.js.map +1 -1
- package/dist/app/components/session/site-origin-link.d.ts +1 -0
- package/dist/app/components/session/site-origin-link.js +2 -2
- package/dist/app/components/session/subagents.js +16 -15
- package/dist/app/components/session-connectors-menu-body.js +5 -5
- package/dist/app/components/settings/row-select.js +3 -3
- package/dist/app/components/transcription-settings.js +4 -4
- package/dist/app/components/ui/destructive-confirm.js +6 -6
- package/dist/app/components/usage/usage-entry.js +8 -8
- package/dist/app/components/workspace-composer-plus.js +21 -21
- package/dist/app/embed/memory-navigation.js +2 -2
- package/dist/app/embed/session-app.js +256 -250
- package/dist/app/lib/actions/actions-provider.js +15 -15
- package/dist/app/lib/actions/held-modifier.d.ts +11 -0
- package/dist/app/lib/app-surfaces.js +2 -2
- package/dist/app/lib/codex-usage-query.js +6 -6
- package/dist/app/lib/composer-connectors.js +12 -12
- package/dist/app/lib/console-site.d.ts +6 -0
- package/dist/app/lib/console-site.js +14 -0
- package/dist/app/lib/console-text.js +2 -2
- package/dist/app/lib/events.js +17 -16
- 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/navigation.d.ts +5 -0
- package/dist/app/lib/navigation.js +1 -1
- package/dist/app/lib/routes.d.ts +17 -0
- package/dist/app/lib/routes.js +9 -3
- package/dist/app/lib/session-branch-cache.js +13 -12
- package/dist/app/lib/session-deep-link.js +2 -2
- package/dist/app/lib/session-failure-toasts.d.ts +8 -0
- package/dist/app/lib/session-group-pagination.js +13 -12
- package/dist/app/lib/session-hover-facts.js +14 -13
- package/dist/app/lib/session-model.js +3 -3
- package/dist/app/lib/session-rail.js +9 -8
- package/dist/app/lib/session-rename.js +3 -3
- package/dist/app/lib/session-ui-features.d.ts +6 -1
- package/dist/app/lib/session-ui-features.js +1 -1
- package/dist/app/lib/sessions-group.d.ts +43 -3
- package/dist/app/lib/sessions-group.js +21 -14
- package/dist/app/lib/shared-query.js +3 -3
- package/dist/app/lib/site-opened.d.ts +6 -0
- package/dist/app/lib/site-opened.js +10 -0
- package/dist/app/lib/turn-failure-analytics.js +4 -4
- package/dist/app/lib/use-duplicate-site.js +3 -3
- package/dist/app/lib/use-follow-up-repositories.js +4 -4
- package/dist/app/lib/use-session-list-hint-refresh.d.ts +20 -2
- package/dist/app/lib/use-session-list-hint-refresh.js +5 -1
- package/dist/app/lib/use-workspace-machines.js +6 -6
- package/dist/app/lib/use-workspace-model-catalog.js +7 -7
- package/dist/app/lib/use-workspace-rigs.js +8 -8
- 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 +132 -149
- package/dist/app/routes/artifacts.js.map +1 -1
- package/dist/app/routes/retained-artifact.js +63 -62
- package/dist/app/routes/retained-artifact.js.map +1 -1
- package/dist/app/routes/session-unavailable.js +7 -5
- package/dist/app/routes/session.js +170 -166
- package/dist/app/routes/sessions-index.js +110 -108
- package/dist/app/routes/site-view.d.ts +11 -0
- package/dist/app/routes/site-view.js +597 -0
- package/dist/app/routes/site-view.js.map +1 -0
- 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-RYYQSRTC.js → browser-viewer-QMCNV4RI.js} +9 -7
- package/dist/{chat-interactive-block-ABCRKXJ4.js → chat-interactive-block-PMIAUXSO.js} +6 -6
- package/dist/{chunk-TGVVEGZG.js → chunk-22FFOHPT.js} +9 -9
- package/dist/chunk-22GTC4MZ.js +15 -0
- package/dist/chunk-22GTC4MZ.js.map +1 -0
- package/dist/{chunk-Z5WMLJKI.js → chunk-22JFMNMF.js} +92 -4
- package/dist/chunk-22JFMNMF.js.map +1 -0
- package/dist/{chunk-UHFWF6ZU.js → chunk-2FPS5H2D.js} +2 -2
- package/dist/{chunk-NAWXARTY.js → chunk-2KO2G3RI.js} +72 -6
- package/dist/chunk-2KO2G3RI.js.map +1 -0
- package/dist/{chunk-5POTDNQT.js → chunk-2NC7NZCE.js} +6 -6
- package/dist/{chunk-ZKYYZH6L.js → chunk-2QBYDGWO.js} +9 -9
- package/dist/{chunk-TWXIFWBD.js → chunk-34EU25RL.js} +2 -2
- package/dist/{chunk-R63QEVPK.js → chunk-35BC2FU2.js} +16 -16
- package/dist/{chunk-PTGRFAMH.js → chunk-3ABPIUCK.js} +2 -2
- package/dist/{chunk-S4SC5SSV.js → chunk-3GU7AWG7.js} +18 -18
- package/dist/{chunk-722UO6YQ.js → chunk-3PEXVG4D.js} +2 -2
- package/dist/{chunk-63VGE4OH.js → chunk-3RMKPHBL.js} +3 -3
- package/dist/{chunk-6JKZILLF.js → chunk-3RQUWFZT.js} +67 -67
- package/dist/{chunk-6JKZILLF.js.map → chunk-3RQUWFZT.js.map} +1 -1
- package/dist/{chunk-RQDFYQHA.js → chunk-3STBLX4O.js} +9 -9
- package/dist/{chunk-S4EZ3JUB.js → chunk-3X5FKDYQ.js} +23 -23
- package/dist/{chunk-KTRKZRID.js → chunk-4GLLWX33.js} +11 -11
- package/dist/{chunk-ROQOVH4N.js → chunk-4HEXNAFI.js} +20 -20
- package/dist/chunk-4HEXNAFI.js.map +1 -0
- package/dist/{chunk-SD2K5ZN5.js → chunk-4LPA25NQ.js} +4 -4
- package/dist/{chunk-KWKGBGAF.js → chunk-4RMN4E2Y.js} +9 -9
- package/dist/{chunk-X7ASQHR6.js → chunk-4SAGYEVB.js} +2 -2
- package/dist/{chunk-HTT3FB7T.js → chunk-4VK2R5QC.js} +3 -3
- package/dist/{chunk-DDK4WFJ3.js → chunk-4XQC7VLT.js} +9 -9
- package/dist/{chunk-IVOA3DXA.js → chunk-4YXAQMTD.js} +12 -12
- package/dist/{chunk-HOJGAJAB.js → chunk-52WK2GGK.js} +8 -8
- package/dist/{chunk-NYZQ7LO7.js → chunk-552UYIQ7.js} +20 -20
- package/dist/{chunk-LEXPBQ56.js → chunk-5DSKMG2I.js} +4 -4
- package/dist/{chunk-WNG757ID.js → chunk-5FA455GR.js} +4 -4
- package/dist/{chunk-HWDGJFM4.js → chunk-5FEN3KYH.js} +11 -11
- package/dist/{chunk-OSVHU2WU.js → chunk-5JHRMUAZ.js} +12 -12
- package/dist/{chunk-PM3OSANE.js → chunk-5MJHH72T.js} +14 -3
- package/dist/chunk-5MJHH72T.js.map +1 -0
- package/dist/{chunk-RKB2Z457.js → chunk-5VGJXWQ2.js} +2 -2
- package/dist/{chunk-GFUUFM2O.js → chunk-5W6ZDKRR.js} +6 -6
- package/dist/{chunk-6PQNLL4E.js → chunk-5W7KJ5NQ.js} +37 -37
- package/dist/{chunk-Q35YZVDZ.js → chunk-5Y2FPLZE.js} +9 -9
- package/dist/{chunk-6W3LF3DB.js → chunk-5YFY4SFC.js} +2 -12
- package/dist/chunk-5YFY4SFC.js.map +1 -0
- package/dist/{chunk-F3NERYBQ.js → chunk-62VER7O4.js} +6 -6
- package/dist/{chunk-FBMU3VK5.js → chunk-6DCEDIF6.js} +2 -2
- package/dist/{chunk-LE2EDBXU.js → chunk-73WI7FL2.js} +18 -18
- package/dist/chunk-756MKA2J.js +45 -0
- package/dist/chunk-756MKA2J.js.map +1 -0
- package/dist/{chunk-ZRJCGBVV.js → chunk-7FJMRJDG.js} +2 -2
- package/dist/{chunk-7KGKDWWR.js → chunk-7HFLYNWN.js} +2 -2
- package/dist/{chunk-72J6C2AJ.js → chunk-7KIENXRE.js} +2 -2
- package/dist/{chunk-CBY5CXBD.js → chunk-7NPCEBZE.js} +5 -5
- package/dist/{chunk-46VBQG2D.js → chunk-7P4AQMGA.js} +13 -13
- package/dist/{chunk-X7L4H4VG.js → chunk-7TCT7KPQ.js} +742 -644
- package/dist/chunk-7TCT7KPQ.js.map +1 -0
- package/dist/{chunk-CVG4FILQ.js → chunk-7XO7YKPC.js} +280 -1035
- package/dist/chunk-7XO7YKPC.js.map +1 -0
- package/dist/{chunk-S7PVL7XH.js → chunk-A4BD4ZVB.js} +4 -4
- package/dist/{chunk-EF5SYXAY.js → chunk-ACL2V2KE.js} +30 -22
- package/dist/chunk-ACL2V2KE.js.map +1 -0
- package/dist/{chunk-73SOCVLS.js → chunk-AIEXYO2X.js} +3 -3
- package/dist/{chunk-U7TC2XJQ.js → chunk-AJPW3SV4.js} +3 -3
- package/dist/{chunk-HRJQAFKR.js → chunk-AX6YJA5U.js} +2 -2
- package/dist/{chunk-P5WABK2H.js → chunk-BCM7C3MJ.js} +9 -9
- package/dist/{chunk-DT7BORXG.js → chunk-BMJTNPWK.js} +2 -2
- package/dist/{chunk-HIHO2QE7.js → chunk-BT2MVGHT.js} +2 -2
- package/dist/{chunk-3XOISKZC.js → chunk-BXQYAAVE.js} +4 -4
- package/dist/{chunk-IBTXYLBW.js → chunk-CCFWY4GF.js} +2 -2
- package/dist/{chunk-ZOC3OP6F.js → chunk-CCR33J7L.js} +2 -2
- package/dist/{chunk-GTQ3SNEI.js → chunk-CD3MO3IC.js} +2 -2
- package/dist/{chunk-WSMYOLHG.js → chunk-CDEXRJB6.js} +5 -5
- package/dist/{chunk-3GLAPCVI.js → chunk-CFFNT2OY.js} +8 -8
- package/dist/{chunk-HO5Y2OOX.js → chunk-CMLJSF2F.js} +10 -10
- package/dist/{chunk-RA3FNMWF.js → chunk-CP7ZQHBW.js} +10 -10
- package/dist/{chunk-IOKSNX74.js → chunk-D5OWJZQR.js} +2 -2
- package/dist/{chunk-SQGXMHJO.js → chunk-DGLRZMXL.js} +3 -3
- package/dist/{chunk-GNEHAPKV.js → chunk-DJFTH2DI.js} +3 -3
- package/dist/{chunk-HQG4SLTE.js → chunk-DYJGYGPB.js} +2 -2
- package/dist/{chunk-4EAF3HSD.js → chunk-EJ7WARW7.js} +2 -2
- package/dist/{chunk-3AA6RNGE.js → chunk-ENS6E4RZ.js} +2 -2
- package/dist/{chunk-OOEO4MKY.js → chunk-EPWD4KRA.js} +2 -2
- package/dist/{chunk-PN66T6JA.js → chunk-EQE3MNQN.js} +5 -5
- package/dist/{chunk-TSBE4KOQ.js → chunk-EWL6NDOO.js} +3 -3
- package/dist/{chunk-OO2T63BY.js → chunk-EYS4ZOF5.js} +2 -2
- package/dist/{chunk-7CZTKBTI.js → chunk-FDAV72IX.js} +5 -5
- package/dist/{chunk-AG7VGUIW.js → chunk-FFNPUSVO.js} +7 -7
- package/dist/{chunk-P5T36BA3.js → chunk-FRP64DEK.js} +2 -2
- package/dist/{chunk-KBF3SE7G.js → chunk-FSP334UU.js} +2 -2
- package/dist/{chunk-BSX2R4CW.js → chunk-FTX5CNHA.js} +4 -4
- package/dist/{chunk-O756O2I7.js → chunk-FWOBNL2A.js} +1 -1
- package/dist/{chunk-6NIB2KGJ.js → chunk-FWYEZ3LE.js} +33 -33
- package/dist/{chunk-DLOYMWUQ.js → chunk-G4HQUBO4.js} +7 -7
- package/dist/{chunk-CSHBR2IZ.js → chunk-GDLDBR6B.js} +2 -2
- package/dist/chunk-GGV4NSG3.js +792 -0
- package/dist/chunk-GGV4NSG3.js.map +1 -0
- package/dist/{chunk-U36PO27Q.js → chunk-GHHM6WN4.js} +3 -3
- package/dist/{chunk-OANSIX34.js → chunk-GRSODLVO.js} +4 -4
- package/dist/{chunk-4R3JCVID.js → chunk-GT7JFQ4E.js} +410 -153
- package/dist/chunk-GT7JFQ4E.js.map +1 -0
- package/dist/{chunk-EU6XSQFM.js → chunk-GXW2I2M2.js} +2 -2
- package/dist/{chunk-5JEIDFPD.js → chunk-GZS37O3G.js} +1 -1
- package/dist/{chunk-XFNLU7EW.js → chunk-H5M33DAL.js} +15 -6
- package/dist/chunk-H5M33DAL.js.map +1 -0
- package/dist/{chunk-HNYJEAES.js → chunk-HQWVDQXW.js} +7 -7
- package/dist/{chunk-YXOKAG66.js → chunk-HU6JTNWF.js} +2 -2
- package/dist/{chunk-QRVNI5V6.js → chunk-I6KIQKU6.js} +3 -3
- package/dist/{chunk-APU42QDI.js → chunk-IBA5FMRE.js} +115 -111
- package/dist/chunk-IBA5FMRE.js.map +1 -0
- package/dist/{chunk-BNUPYHHZ.js → chunk-IDXTASGN.js} +4 -4
- package/dist/{chunk-KF3MF6FP.js → chunk-IECRGM6K.js} +3 -2
- package/dist/chunk-IECRGM6K.js.map +1 -0
- package/dist/chunk-IJYL5BZM.js +38 -0
- package/dist/chunk-IJYL5BZM.js.map +1 -0
- package/dist/{chunk-L6RXRRN3.js → chunk-ILDOW2IQ.js} +3 -3
- package/dist/{chunk-VUHPA3XQ.js → chunk-ITX2TB4K.js} +6 -6
- package/dist/{chunk-BXRIQZAH.js → chunk-J22HD2PB.js} +5 -5
- package/dist/{chunk-U47YDYLQ.js → chunk-J5MEDX7C.js} +8 -8
- package/dist/{chunk-F6LBGYS6.js → chunk-J7FBBLHF.js} +35 -35
- package/dist/{chunk-5JZYPZ72.js → chunk-JFK7NTEA.js} +4 -4
- package/dist/chunk-JFK7NTEA.js.map +1 -0
- package/dist/{chunk-QZRDCFHI.js → chunk-JM4HQPAI.js} +5 -5
- package/dist/{chunk-PIVGX42P.js → chunk-JNY5MT3I.js} +2 -2
- package/dist/{chunk-XWWXIZFP.js → chunk-JO6R5EXF.js} +7 -7
- package/dist/{chunk-NWZW2WHN.js → chunk-JQCGPTZ6.js} +9 -9
- package/dist/chunk-JRSNCSZN.js +37 -0
- package/dist/chunk-JRSNCSZN.js.map +1 -0
- package/dist/{chunk-OR37STQZ.js → chunk-KEXYBG7Q.js} +3 -3
- package/dist/{chunk-AZVANYMB.js → chunk-KUNFUSZ7.js} +2 -2
- package/dist/{chunk-DXZNDKQD.js → chunk-LEEJBZ5B.js} +2 -2
- package/dist/{chunk-STUCI6QA.js → chunk-LEKBNKLD.js} +1 -1
- package/dist/{chunk-STUCI6QA.js.map → chunk-LEKBNKLD.js.map} +1 -1
- package/dist/{chunk-AOLE4IRZ.js → chunk-LF5CBAOS.js} +5 -5
- package/dist/{chunk-BJIZ7PL7.js → chunk-LHLK7FUA.js} +145 -29
- package/dist/chunk-LHLK7FUA.js.map +1 -0
- package/dist/{chunk-RIMKJBCD.js → chunk-LMPTC4CX.js} +2 -2
- package/dist/{chunk-3KVWXKD6.js → chunk-LQ47YL6E.js} +2 -2
- package/dist/{chunk-RSNYGEVZ.js → chunk-LT4J7RHI.js} +13 -13
- package/dist/{chunk-U3HSFCON.js → chunk-MCTTONOW.js} +28 -28
- package/dist/{chunk-7DU35P5J.js → chunk-MIECLOQC.js} +9 -9
- package/dist/{chunk-FM4OUCC2.js → chunk-MOKYT3X3.js} +3 -3
- package/dist/{chunk-GZ64CASI.js → chunk-MVZYNZXE.js} +5 -4
- package/dist/chunk-MVZYNZXE.js.map +1 -0
- package/dist/{chunk-L7YURQI2.js → chunk-MXLKI7BI.js} +3 -3
- package/dist/{chunk-XRRSFQEV.js → chunk-NAZZLAWX.js} +2 -2
- package/dist/{chunk-UWJ5P5CU.js → chunk-NEK4WB5P.js} +3 -3
- package/dist/{chunk-6L7U46Y2.js → chunk-NKNVIO66.js} +2 -2
- package/dist/{chunk-JKUICTLM.js → chunk-NLAFNMPK.js} +2 -2
- package/dist/{chunk-4LKNIGHB.js → chunk-O2SBHS2N.js} +2 -2
- package/dist/{chunk-DWPOQ3S5.js → chunk-OTMWHZBY.js} +2 -2
- package/dist/{chunk-JTN3T4QN.js → chunk-PCFK7HKD.js} +14 -14
- package/dist/{chunk-VVCDB2T7.js → chunk-PCJLH45G.js} +3 -3
- package/dist/{chunk-PZ24CYDO.js → chunk-PFAUGEV5.js} +2 -2
- package/dist/{chunk-HGMWMK5K.js → chunk-PO3BH3KQ.js} +2 -2
- package/dist/{chunk-B74GSYR6.js → chunk-PUTS4DYW.js} +2 -2
- package/dist/{chunk-JSIDLTTG.js → chunk-PZ2V2XIK.js} +2 -2
- package/dist/{chunk-TMEQPODK.js → chunk-PZ37VDB5.js} +2 -2
- package/dist/{chunk-Q35DT6I6.js → chunk-QFMLAT7L.js} +234 -225
- package/dist/chunk-QFMLAT7L.js.map +1 -0
- package/dist/{chunk-LVONK3YQ.js → chunk-QRKTESVE.js} +2 -2
- package/dist/{chunk-HT5WSUC7.js → chunk-QXEDIDBZ.js} +3 -3
- package/dist/{chunk-WURSS6MP.js → chunk-R66YMYJU.js} +2 -2
- package/dist/{chunk-HDHK3SXK.js → chunk-RFLYID6H.js} +5 -5
- package/dist/{chunk-ADJJQSYC.js → chunk-RIYZFKIM.js} +39 -37
- package/dist/chunk-RIYZFKIM.js.map +1 -0
- package/dist/{chunk-JK7C5A4I.js → chunk-RQNZDTKT.js} +19 -19
- package/dist/{chunk-EHCUFCXM.js → chunk-RYSRFAHN.js} +32 -22
- package/dist/chunk-RYSRFAHN.js.map +1 -0
- package/dist/{chunk-I6VUUEXH.js → chunk-S2U4CDAC.js} +150 -150
- package/dist/chunk-S2U4CDAC.js.map +1 -0
- package/dist/{chunk-ST22GONV.js → chunk-S37GP7LX.js} +19 -19
- package/dist/{chunk-A2EWJQXX.js → chunk-SM5QX6UK.js} +4 -4
- package/dist/{chunk-FBE6AIIW.js → chunk-SOKNCW5U.js} +2 -2
- package/dist/{chunk-4W7VISE7.js → chunk-SSOO4GWN.js} +193 -194
- package/dist/chunk-SSOO4GWN.js.map +1 -0
- package/dist/{chunk-UP4BE32Y.js → chunk-SY2AAZNB.js} +5 -5
- package/dist/{chunk-33TPANCR.js → chunk-TFK4KFKA.js} +4 -4
- package/dist/{chunk-4432A3HQ.js → chunk-TIQPKOFW.js} +4 -4
- package/dist/{chunk-HPPKLBTJ.js → chunk-TJQDL3JH.js} +2 -2
- package/dist/chunk-TL7BOFFL.js +89 -0
- package/dist/chunk-TL7BOFFL.js.map +1 -0
- package/dist/{chunk-FD4Q5KFL.js → chunk-TLL22FFO.js} +2 -2
- package/dist/{chunk-QM5H4FPT.js → chunk-TV6BWONY.js} +3 -3
- package/dist/{chunk-4VKA5O7T.js → chunk-U6MPB3K6.js} +4 -4
- package/dist/{chunk-XOFUXMPP.js → chunk-ULJAOMJA.js} +2 -2
- package/dist/chunk-ULYQEFNH.js +529 -0
- package/dist/chunk-ULYQEFNH.js.map +1 -0
- package/dist/{chunk-H5EVWF6L.js → chunk-UNNJUJVD.js} +2 -2
- package/dist/{chunk-RGW24ZZM.js → chunk-UP7I3W6O.js} +51 -49
- package/dist/chunk-UP7I3W6O.js.map +1 -0
- package/dist/{chunk-5MZTJMZ3.js → chunk-UUGR3X5I.js} +17 -11
- package/dist/chunk-UUGR3X5I.js.map +1 -0
- package/dist/{chunk-Z6DKXQG7.js → chunk-UXXFMF4X.js} +2 -2
- package/dist/{chunk-OBQVTCTW.js → chunk-UYNCMZX5.js} +4 -4
- package/dist/{chunk-RGPYMHKI.js → chunk-V3K4RQO7.js} +9 -3
- package/dist/chunk-V3K4RQO7.js.map +1 -0
- package/dist/{chunk-KZHW27BV.js → chunk-V4QZ7UBK.js} +2 -2
- package/dist/{chunk-SUVEDKE2.js → chunk-VH5EGTH2.js} +3 -3
- package/dist/{chunk-MYNUBDU7.js → chunk-VYKW6TB2.js} +1 -1
- package/dist/chunk-VYKW6TB2.js.map +1 -0
- package/dist/{chunk-QEJTQTF5.js → chunk-W6T5HR3Z.js} +3 -3
- package/dist/{chunk-VP62LPLW.js → chunk-WCMG4HYI.js} +10 -10
- package/dist/{chunk-GZLLDA6P.js → chunk-WEFN327U.js} +2 -2
- package/dist/{chunk-7BST7BA6.js → chunk-WKHUZIOW.js} +1 -1
- package/dist/{chunk-ANHUMDJX.js → chunk-WNDTLK44.js} +2 -2
- package/dist/{chunk-2DS4UOYQ.js → chunk-WSZQNTVN.js} +2 -2
- package/dist/{chunk-GALB2G3W.js → chunk-X2AH4DRF.js} +2 -2
- package/dist/{chunk-Z2DAWUO3.js → chunk-XMNUZUUA.js} +6 -6
- package/dist/{chunk-GAIM5RNE.js → chunk-XN7NSPE6.js} +3 -3
- package/dist/chunk-XV6ZYRHK.js +59 -0
- package/dist/chunk-XV6ZYRHK.js.map +1 -0
- package/dist/{chunk-FLGUVRR7.js → chunk-Y5BSA3I7.js} +5 -5
- package/dist/{chunk-WRLWLGEF.js → chunk-Y5E3XQ2S.js} +25 -2
- package/dist/{chunk-WRLWLGEF.js.map → chunk-Y5E3XQ2S.js.map} +1 -1
- package/dist/{chunk-QCD5Y7K5.js → chunk-YEROLKOA.js} +16 -16
- package/dist/{chunk-NDF3SH3X.js → chunk-YJPKDRI2.js} +15 -15
- package/dist/{chunk-TQGJN5UZ.js → chunk-YV56F4UP.js} +318 -700
- package/dist/chunk-YV56F4UP.js.map +1 -0
- package/dist/{chunk-VAIESMPY.js → chunk-YVBHGMKC.js} +4 -4
- package/dist/{chunk-AD22P5X3.js → chunk-YXA2EKV3.js} +3 -3
- package/dist/{chunk-FDNJVZRE.js → chunk-YYCOSTUU.js} +17 -17
- package/dist/{chunk-NLMTNEWW.js → chunk-Z6E6TUAE.js} +2 -2
- package/dist/{chunk-BJW7G6EF.js → chunk-Z7IGO5EA.js} +3 -3
- package/dist/{chunk-NCX5SAQY.js → chunk-ZEIFJ6PX.js} +5 -5
- package/dist/{chunk-JRXHSVD5.js → chunk-ZS2UQ3DV.js} +65 -8
- package/dist/chunk-ZS2UQ3DV.js.map +1 -0
- package/dist/{chunk-4EONHNJU.js → chunk-ZVVT72MT.js} +2 -2
- package/dist/components/browser-viewer.d.ts +1 -1
- package/dist/composer.js +13 -13
- package/dist/{computer-viewer-KEDVLD42.js → computer-viewer-25AJIDYA.js} +9 -9
- package/dist/connect.js +10 -10
- package/dist/desktop.js +2 -2
- package/dist/editor.js +2 -2
- package/dist/{embedded-new-voice-LFHWWYD2.js → embedded-new-voice-RZZEJT6M.js} +7 -7
- package/dist/{embedded-voice-6QS4ANNX.js → embedded-voice-6OKSSPLW.js} +7 -7
- package/dist/{fleet-decision-row-QNSTP3VX.js → fleet-decision-row-NN2HXDX3.js} +2 -2
- package/dist/hooks/internal.d.ts +38 -0
- package/dist/hooks/use-client-config-flags.d.ts +12 -0
- package/dist/hooks/use-workspace-sessions.d.ts +10 -1
- package/dist/index.js +233 -227
- package/dist/interaction.js +11 -9
- package/dist/interaction.js.map +1 -1
- package/dist/{latest-question-AW3PPDUM.js → latest-question-2PFWQSSG.js} +4 -3
- package/dist/{latest-question-AW3PPDUM.js.map → latest-question-2PFWQSSG.js.map} +1 -1
- package/dist/machines.js +5 -5
- package/dist/messages/en.d.ts +3 -3
- package/dist/messages.js +1 -1
- package/dist/{model-policy-picker-menu-CURJ247L.js → model-policy-picker-menu-VVFGGAI6.js} +6 -6
- package/dist/native-previews.js +3 -3
- package/dist/{platform-activity-row-BMXXNZKX.js → platform-activity-row-ENQVIFTL.js} +2 -2
- package/dist/{queue-surface-implementation-2X5AXB6I.js → queue-surface-implementation-4SHOQPQQ.js} +10 -8
- package/dist/{queue-surface-implementation-2X5AXB6I.js.map → queue-surface-implementation-4SHOQPQQ.js.map} +1 -1
- package/dist/realtime.js +6 -6
- package/dist/{sandbox-files-4FBG3GS2.js → sandbox-files-CCOTGXXA.js} +11 -11
- package/dist/sandbox-files-CCOTGXXA.js.map +1 -0
- package/dist/session-app.js +258 -252
- package/dist/session-list-model.d.ts +1 -0
- package/dist/session-list-model.js +8 -2
- package/dist/{session-realtime-2XIB254N.js → session-realtime-JNKDSGH7.js} +3 -3
- package/dist/session-realtime-JNKDSGH7.js.map +1 -0
- package/dist/session-realtime.js +2 -2
- package/dist/session-ui.js +76 -71
- package/dist/session.js +24 -22
- package/dist/sites.js +2 -2
- package/dist/terminal.js +2 -2
- package/dist/this-computer.js +3 -3
- package/dist/timeline/invoked-tool.d.ts +5 -0
- package/dist/timeline/tool-display-name.d.ts +2 -2
- package/dist/timeline/tool-icon.d.ts +14 -0
- package/dist/timeline/tool-presentation.d.ts +8 -3
- package/dist/{timeline-annotation-markers-X4K2IEOO.js → timeline-annotation-markers-KHNYNY2J.js} +5 -5
- package/dist/{timeline-annotation-selection-MEHBW676.js → timeline-annotation-selection-AXEDJHBP.js} +7 -7
- package/dist/{timeline-annotations-dialog-U2FPQ3UY.js → timeline-annotations-dialog-AV4ZBXRC.js} +9 -9
- package/dist/timeline-model.js +25 -23
- package/dist/ui/access-list.js +18 -18
- package/dist/ui/cadence-picker.js +2 -2
- package/dist/ui/choice-cards.js +2 -2
- package/dist/ui/detail-page.js +2 -2
- package/dist/ui/detail-sheet.js +2 -2
- package/dist/ui/diff-view.js +2 -2
- package/dist/ui/disclosure.js +4 -4
- package/dist/ui/flush-form-page.js +3 -3
- package/dist/ui/form-dialog.js +2 -2
- package/dist/ui/list-row.js +4 -4
- package/dist/ui/revision-history.js +11 -11
- package/dist/ui/role-select.js +7 -7
- package/dist/ui/select-menu.js +2 -2
- package/dist/ui/settings-nav.js +3 -3
- package/dist/usage.js +3 -3
- package/dist/workbench.js +11 -11
- package/package.json +4 -4
- package/src/app/app-state.tsx +3 -1
- package/src/app/components/capabilities/session-machine-card.tsx +9 -2
- package/src/app/components/rail/session-list.tsx +254 -44
- package/src/app/components/rail/session-row-content.tsx +24 -2
- package/src/app/components/rail/session-shell.tsx +14 -9
- package/src/app/components/rail/site-session-group-heading.tsx +59 -20
- package/src/app/components/session/session-tenancy-control.tsx +18 -0
- package/src/app/components/session/site-origin-link.test.tsx +73 -0
- package/src/app/components/session/site-origin-link.tsx +4 -2
- package/src/app/embed/memory-navigation.tsx +1 -0
- package/src/app/lib/actions/held-modifier.test.ts +101 -0
- package/src/app/lib/actions/held-modifier.ts +108 -0
- package/src/app/lib/console-site.tsx +38 -0
- package/src/app/lib/navigation.tsx +4 -0
- package/src/app/lib/routes.tsx +42 -0
- package/src/app/lib/session-failure-toasts.ts +26 -0
- package/src/app/lib/session-ui-features.tsx +18 -4
- package/src/app/lib/sessions-group.tsx +219 -30
- package/src/app/lib/site-opened.tsx +48 -0
- package/src/app/lib/site-session-groups.test.ts +173 -6
- package/src/app/lib/site-view-routes.test.ts +55 -0
- package/src/app/lib/use-session-list-hint-refresh.tsx +44 -4
- package/src/app/routes/artifacts.tsx +2 -29
- package/src/app/routes/session-transient-failures.test.tsx +343 -0
- package/src/app/routes/session-unavailable.tsx +74 -3
- package/src/app/routes/session.tsx +4 -13
- package/src/app/routes/sessions-index.tsx +13 -9
- package/src/app/routes/site-view.test.tsx +476 -0
- package/src/app/routes/site-view.tsx +583 -0
- package/src/components/browser-viewer.tsx +16 -2
- package/src/hooks/internal.ts +129 -6
- package/src/hooks/use-client-config-flags.ts +8 -0
- package/src/hooks/use-session-events.ts +83 -9
- package/src/hooks/use-workspace-sessions.ts +21 -1
- package/src/messages/en.ts +3 -3
- package/src/session-list-model.ts +4 -0
- package/src/timeline/activity-rail.tsx +3 -2
- package/src/timeline/invoked-tool.ts +14 -4
- package/src/timeline/projection.ts +11 -6
- package/src/timeline/rolling-activity.tsx +6 -2
- package/src/timeline/tool-display-name.ts +2 -2
- package/src/timeline/tool-icon.tsx +165 -0
- package/src/timeline/tool-presentation.ts +207 -48
- package/src/timeline/tool-renderers.tsx +1 -70
- package/styles/compiled.css +38 -0
- package/dist/chunk-22ZBT6CN.js +0 -50
- package/dist/chunk-22ZBT6CN.js.map +0 -1
- package/dist/chunk-4R3JCVID.js.map +0 -1
- package/dist/chunk-4W7VISE7.js.map +0 -1
- package/dist/chunk-5JZYPZ72.js.map +0 -1
- package/dist/chunk-5MZTJMZ3.js.map +0 -1
- package/dist/chunk-6W3LF3DB.js.map +0 -1
- package/dist/chunk-ADJJQSYC.js.map +0 -1
- package/dist/chunk-APU42QDI.js.map +0 -1
- package/dist/chunk-BJIZ7PL7.js.map +0 -1
- package/dist/chunk-CVG4FILQ.js.map +0 -1
- package/dist/chunk-EF5SYXAY.js.map +0 -1
- package/dist/chunk-EHCUFCXM.js.map +0 -1
- package/dist/chunk-GZ64CASI.js.map +0 -1
- package/dist/chunk-I6VUUEXH.js.map +0 -1
- package/dist/chunk-JRXHSVD5.js.map +0 -1
- package/dist/chunk-KF3MF6FP.js.map +0 -1
- package/dist/chunk-MYNUBDU7.js.map +0 -1
- package/dist/chunk-NAWXARTY.js.map +0 -1
- package/dist/chunk-PM3OSANE.js.map +0 -1
- package/dist/chunk-Q35DT6I6.js.map +0 -1
- package/dist/chunk-R25ZKOZR.js +0 -24
- package/dist/chunk-R25ZKOZR.js.map +0 -1
- package/dist/chunk-RGPYMHKI.js.map +0 -1
- package/dist/chunk-RGW24ZZM.js.map +0 -1
- package/dist/chunk-ROQOVH4N.js.map +0 -1
- package/dist/chunk-TQGJN5UZ.js.map +0 -1
- package/dist/chunk-X7L4H4VG.js.map +0 -1
- package/dist/chunk-XFNLU7EW.js.map +0 -1
- package/dist/chunk-Z5WMLJKI.js.map +0 -1
- /package/dist/{browser-viewer-RYYQSRTC.js.map → app/lib/console-site.js.map} +0 -0
- /package/dist/{chat-interactive-block-ABCRKXJ4.js.map → app/lib/site-opened.js.map} +0 -0
- /package/dist/{computer-viewer-KEDVLD42.js.map → browser-viewer-QMCNV4RI.js.map} +0 -0
- /package/dist/{embedded-new-voice-LFHWWYD2.js.map → chat-interactive-block-PMIAUXSO.js.map} +0 -0
- /package/dist/{chunk-TGVVEGZG.js.map → chunk-22FFOHPT.js.map} +0 -0
- /package/dist/{chunk-UHFWF6ZU.js.map → chunk-2FPS5H2D.js.map} +0 -0
- /package/dist/{chunk-5POTDNQT.js.map → chunk-2NC7NZCE.js.map} +0 -0
- /package/dist/{chunk-ZKYYZH6L.js.map → chunk-2QBYDGWO.js.map} +0 -0
- /package/dist/{chunk-TWXIFWBD.js.map → chunk-34EU25RL.js.map} +0 -0
- /package/dist/{chunk-R63QEVPK.js.map → chunk-35BC2FU2.js.map} +0 -0
- /package/dist/{chunk-PTGRFAMH.js.map → chunk-3ABPIUCK.js.map} +0 -0
- /package/dist/{chunk-S4SC5SSV.js.map → chunk-3GU7AWG7.js.map} +0 -0
- /package/dist/{chunk-722UO6YQ.js.map → chunk-3PEXVG4D.js.map} +0 -0
- /package/dist/{chunk-63VGE4OH.js.map → chunk-3RMKPHBL.js.map} +0 -0
- /package/dist/{chunk-RQDFYQHA.js.map → chunk-3STBLX4O.js.map} +0 -0
- /package/dist/{chunk-S4EZ3JUB.js.map → chunk-3X5FKDYQ.js.map} +0 -0
- /package/dist/{chunk-KTRKZRID.js.map → chunk-4GLLWX33.js.map} +0 -0
- /package/dist/{chunk-SD2K5ZN5.js.map → chunk-4LPA25NQ.js.map} +0 -0
- /package/dist/{chunk-KWKGBGAF.js.map → chunk-4RMN4E2Y.js.map} +0 -0
- /package/dist/{chunk-X7ASQHR6.js.map → chunk-4SAGYEVB.js.map} +0 -0
- /package/dist/{chunk-HTT3FB7T.js.map → chunk-4VK2R5QC.js.map} +0 -0
- /package/dist/{chunk-DDK4WFJ3.js.map → chunk-4XQC7VLT.js.map} +0 -0
- /package/dist/{chunk-IVOA3DXA.js.map → chunk-4YXAQMTD.js.map} +0 -0
- /package/dist/{chunk-HOJGAJAB.js.map → chunk-52WK2GGK.js.map} +0 -0
- /package/dist/{chunk-NYZQ7LO7.js.map → chunk-552UYIQ7.js.map} +0 -0
- /package/dist/{chunk-LEXPBQ56.js.map → chunk-5DSKMG2I.js.map} +0 -0
- /package/dist/{chunk-WNG757ID.js.map → chunk-5FA455GR.js.map} +0 -0
- /package/dist/{chunk-HWDGJFM4.js.map → chunk-5FEN3KYH.js.map} +0 -0
- /package/dist/{chunk-OSVHU2WU.js.map → chunk-5JHRMUAZ.js.map} +0 -0
- /package/dist/{chunk-RKB2Z457.js.map → chunk-5VGJXWQ2.js.map} +0 -0
- /package/dist/{chunk-GFUUFM2O.js.map → chunk-5W6ZDKRR.js.map} +0 -0
- /package/dist/{chunk-6PQNLL4E.js.map → chunk-5W7KJ5NQ.js.map} +0 -0
- /package/dist/{chunk-Q35YZVDZ.js.map → chunk-5Y2FPLZE.js.map} +0 -0
- /package/dist/{chunk-F3NERYBQ.js.map → chunk-62VER7O4.js.map} +0 -0
- /package/dist/{chunk-FBMU3VK5.js.map → chunk-6DCEDIF6.js.map} +0 -0
- /package/dist/{chunk-LE2EDBXU.js.map → chunk-73WI7FL2.js.map} +0 -0
- /package/dist/{chunk-ZRJCGBVV.js.map → chunk-7FJMRJDG.js.map} +0 -0
- /package/dist/{chunk-7KGKDWWR.js.map → chunk-7HFLYNWN.js.map} +0 -0
- /package/dist/{chunk-72J6C2AJ.js.map → chunk-7KIENXRE.js.map} +0 -0
- /package/dist/{chunk-CBY5CXBD.js.map → chunk-7NPCEBZE.js.map} +0 -0
- /package/dist/{chunk-46VBQG2D.js.map → chunk-7P4AQMGA.js.map} +0 -0
- /package/dist/{chunk-S7PVL7XH.js.map → chunk-A4BD4ZVB.js.map} +0 -0
- /package/dist/{chunk-73SOCVLS.js.map → chunk-AIEXYO2X.js.map} +0 -0
- /package/dist/{chunk-U7TC2XJQ.js.map → chunk-AJPW3SV4.js.map} +0 -0
- /package/dist/{chunk-HRJQAFKR.js.map → chunk-AX6YJA5U.js.map} +0 -0
- /package/dist/{chunk-P5WABK2H.js.map → chunk-BCM7C3MJ.js.map} +0 -0
- /package/dist/{chunk-DT7BORXG.js.map → chunk-BMJTNPWK.js.map} +0 -0
- /package/dist/{chunk-HIHO2QE7.js.map → chunk-BT2MVGHT.js.map} +0 -0
- /package/dist/{chunk-3XOISKZC.js.map → chunk-BXQYAAVE.js.map} +0 -0
- /package/dist/{chunk-IBTXYLBW.js.map → chunk-CCFWY4GF.js.map} +0 -0
- /package/dist/{chunk-ZOC3OP6F.js.map → chunk-CCR33J7L.js.map} +0 -0
- /package/dist/{chunk-GTQ3SNEI.js.map → chunk-CD3MO3IC.js.map} +0 -0
- /package/dist/{chunk-WSMYOLHG.js.map → chunk-CDEXRJB6.js.map} +0 -0
- /package/dist/{chunk-3GLAPCVI.js.map → chunk-CFFNT2OY.js.map} +0 -0
- /package/dist/{chunk-HO5Y2OOX.js.map → chunk-CMLJSF2F.js.map} +0 -0
- /package/dist/{chunk-RA3FNMWF.js.map → chunk-CP7ZQHBW.js.map} +0 -0
- /package/dist/{chunk-IOKSNX74.js.map → chunk-D5OWJZQR.js.map} +0 -0
- /package/dist/{chunk-SQGXMHJO.js.map → chunk-DGLRZMXL.js.map} +0 -0
- /package/dist/{chunk-GNEHAPKV.js.map → chunk-DJFTH2DI.js.map} +0 -0
- /package/dist/{chunk-HQG4SLTE.js.map → chunk-DYJGYGPB.js.map} +0 -0
- /package/dist/{chunk-4EAF3HSD.js.map → chunk-EJ7WARW7.js.map} +0 -0
- /package/dist/{chunk-3AA6RNGE.js.map → chunk-ENS6E4RZ.js.map} +0 -0
- /package/dist/{chunk-OOEO4MKY.js.map → chunk-EPWD4KRA.js.map} +0 -0
- /package/dist/{chunk-PN66T6JA.js.map → chunk-EQE3MNQN.js.map} +0 -0
- /package/dist/{chunk-TSBE4KOQ.js.map → chunk-EWL6NDOO.js.map} +0 -0
- /package/dist/{chunk-OO2T63BY.js.map → chunk-EYS4ZOF5.js.map} +0 -0
- /package/dist/{chunk-7CZTKBTI.js.map → chunk-FDAV72IX.js.map} +0 -0
- /package/dist/{chunk-AG7VGUIW.js.map → chunk-FFNPUSVO.js.map} +0 -0
- /package/dist/{chunk-P5T36BA3.js.map → chunk-FRP64DEK.js.map} +0 -0
- /package/dist/{chunk-KBF3SE7G.js.map → chunk-FSP334UU.js.map} +0 -0
- /package/dist/{chunk-BSX2R4CW.js.map → chunk-FTX5CNHA.js.map} +0 -0
- /package/dist/{chunk-O756O2I7.js.map → chunk-FWOBNL2A.js.map} +0 -0
- /package/dist/{chunk-6NIB2KGJ.js.map → chunk-FWYEZ3LE.js.map} +0 -0
- /package/dist/{chunk-DLOYMWUQ.js.map → chunk-G4HQUBO4.js.map} +0 -0
- /package/dist/{chunk-CSHBR2IZ.js.map → chunk-GDLDBR6B.js.map} +0 -0
- /package/dist/{chunk-U36PO27Q.js.map → chunk-GHHM6WN4.js.map} +0 -0
- /package/dist/{chunk-OANSIX34.js.map → chunk-GRSODLVO.js.map} +0 -0
- /package/dist/{chunk-EU6XSQFM.js.map → chunk-GXW2I2M2.js.map} +0 -0
- /package/dist/{chunk-5JEIDFPD.js.map → chunk-GZS37O3G.js.map} +0 -0
- /package/dist/{chunk-HNYJEAES.js.map → chunk-HQWVDQXW.js.map} +0 -0
- /package/dist/{chunk-YXOKAG66.js.map → chunk-HU6JTNWF.js.map} +0 -0
- /package/dist/{chunk-QRVNI5V6.js.map → chunk-I6KIQKU6.js.map} +0 -0
- /package/dist/{chunk-BNUPYHHZ.js.map → chunk-IDXTASGN.js.map} +0 -0
- /package/dist/{chunk-L6RXRRN3.js.map → chunk-ILDOW2IQ.js.map} +0 -0
- /package/dist/{chunk-VUHPA3XQ.js.map → chunk-ITX2TB4K.js.map} +0 -0
- /package/dist/{chunk-BXRIQZAH.js.map → chunk-J22HD2PB.js.map} +0 -0
- /package/dist/{chunk-U47YDYLQ.js.map → chunk-J5MEDX7C.js.map} +0 -0
- /package/dist/{chunk-F6LBGYS6.js.map → chunk-J7FBBLHF.js.map} +0 -0
- /package/dist/{chunk-QZRDCFHI.js.map → chunk-JM4HQPAI.js.map} +0 -0
- /package/dist/{chunk-PIVGX42P.js.map → chunk-JNY5MT3I.js.map} +0 -0
- /package/dist/{chunk-XWWXIZFP.js.map → chunk-JO6R5EXF.js.map} +0 -0
- /package/dist/{chunk-NWZW2WHN.js.map → chunk-JQCGPTZ6.js.map} +0 -0
- /package/dist/{chunk-OR37STQZ.js.map → chunk-KEXYBG7Q.js.map} +0 -0
- /package/dist/{chunk-AZVANYMB.js.map → chunk-KUNFUSZ7.js.map} +0 -0
- /package/dist/{chunk-DXZNDKQD.js.map → chunk-LEEJBZ5B.js.map} +0 -0
- /package/dist/{chunk-AOLE4IRZ.js.map → chunk-LF5CBAOS.js.map} +0 -0
- /package/dist/{chunk-RIMKJBCD.js.map → chunk-LMPTC4CX.js.map} +0 -0
- /package/dist/{chunk-3KVWXKD6.js.map → chunk-LQ47YL6E.js.map} +0 -0
- /package/dist/{chunk-RSNYGEVZ.js.map → chunk-LT4J7RHI.js.map} +0 -0
- /package/dist/{chunk-U3HSFCON.js.map → chunk-MCTTONOW.js.map} +0 -0
- /package/dist/{chunk-7DU35P5J.js.map → chunk-MIECLOQC.js.map} +0 -0
- /package/dist/{chunk-FM4OUCC2.js.map → chunk-MOKYT3X3.js.map} +0 -0
- /package/dist/{chunk-L7YURQI2.js.map → chunk-MXLKI7BI.js.map} +0 -0
- /package/dist/{chunk-XRRSFQEV.js.map → chunk-NAZZLAWX.js.map} +0 -0
- /package/dist/{chunk-UWJ5P5CU.js.map → chunk-NEK4WB5P.js.map} +0 -0
- /package/dist/{chunk-6L7U46Y2.js.map → chunk-NKNVIO66.js.map} +0 -0
- /package/dist/{chunk-JKUICTLM.js.map → chunk-NLAFNMPK.js.map} +0 -0
- /package/dist/{chunk-4LKNIGHB.js.map → chunk-O2SBHS2N.js.map} +0 -0
- /package/dist/{chunk-DWPOQ3S5.js.map → chunk-OTMWHZBY.js.map} +0 -0
- /package/dist/{chunk-JTN3T4QN.js.map → chunk-PCFK7HKD.js.map} +0 -0
- /package/dist/{chunk-VVCDB2T7.js.map → chunk-PCJLH45G.js.map} +0 -0
- /package/dist/{chunk-PZ24CYDO.js.map → chunk-PFAUGEV5.js.map} +0 -0
- /package/dist/{chunk-HGMWMK5K.js.map → chunk-PO3BH3KQ.js.map} +0 -0
- /package/dist/{chunk-B74GSYR6.js.map → chunk-PUTS4DYW.js.map} +0 -0
- /package/dist/{chunk-JSIDLTTG.js.map → chunk-PZ2V2XIK.js.map} +0 -0
- /package/dist/{chunk-TMEQPODK.js.map → chunk-PZ37VDB5.js.map} +0 -0
- /package/dist/{chunk-LVONK3YQ.js.map → chunk-QRKTESVE.js.map} +0 -0
- /package/dist/{chunk-HT5WSUC7.js.map → chunk-QXEDIDBZ.js.map} +0 -0
- /package/dist/{chunk-WURSS6MP.js.map → chunk-R66YMYJU.js.map} +0 -0
- /package/dist/{chunk-HDHK3SXK.js.map → chunk-RFLYID6H.js.map} +0 -0
- /package/dist/{chunk-JK7C5A4I.js.map → chunk-RQNZDTKT.js.map} +0 -0
- /package/dist/{chunk-ST22GONV.js.map → chunk-S37GP7LX.js.map} +0 -0
- /package/dist/{chunk-A2EWJQXX.js.map → chunk-SM5QX6UK.js.map} +0 -0
- /package/dist/{chunk-FBE6AIIW.js.map → chunk-SOKNCW5U.js.map} +0 -0
- /package/dist/{chunk-UP4BE32Y.js.map → chunk-SY2AAZNB.js.map} +0 -0
- /package/dist/{chunk-33TPANCR.js.map → chunk-TFK4KFKA.js.map} +0 -0
- /package/dist/{chunk-4432A3HQ.js.map → chunk-TIQPKOFW.js.map} +0 -0
- /package/dist/{chunk-HPPKLBTJ.js.map → chunk-TJQDL3JH.js.map} +0 -0
- /package/dist/{chunk-FD4Q5KFL.js.map → chunk-TLL22FFO.js.map} +0 -0
- /package/dist/{chunk-QM5H4FPT.js.map → chunk-TV6BWONY.js.map} +0 -0
- /package/dist/{chunk-4VKA5O7T.js.map → chunk-U6MPB3K6.js.map} +0 -0
- /package/dist/{chunk-XOFUXMPP.js.map → chunk-ULJAOMJA.js.map} +0 -0
- /package/dist/{chunk-H5EVWF6L.js.map → chunk-UNNJUJVD.js.map} +0 -0
- /package/dist/{chunk-Z6DKXQG7.js.map → chunk-UXXFMF4X.js.map} +0 -0
- /package/dist/{chunk-OBQVTCTW.js.map → chunk-UYNCMZX5.js.map} +0 -0
- /package/dist/{chunk-KZHW27BV.js.map → chunk-V4QZ7UBK.js.map} +0 -0
- /package/dist/{chunk-SUVEDKE2.js.map → chunk-VH5EGTH2.js.map} +0 -0
- /package/dist/{chunk-QEJTQTF5.js.map → chunk-W6T5HR3Z.js.map} +0 -0
- /package/dist/{chunk-VP62LPLW.js.map → chunk-WCMG4HYI.js.map} +0 -0
- /package/dist/{chunk-GZLLDA6P.js.map → chunk-WEFN327U.js.map} +0 -0
- /package/dist/{chunk-7BST7BA6.js.map → chunk-WKHUZIOW.js.map} +0 -0
- /package/dist/{chunk-ANHUMDJX.js.map → chunk-WNDTLK44.js.map} +0 -0
- /package/dist/{chunk-2DS4UOYQ.js.map → chunk-WSZQNTVN.js.map} +0 -0
- /package/dist/{chunk-GALB2G3W.js.map → chunk-X2AH4DRF.js.map} +0 -0
- /package/dist/{chunk-Z2DAWUO3.js.map → chunk-XMNUZUUA.js.map} +0 -0
- /package/dist/{chunk-GAIM5RNE.js.map → chunk-XN7NSPE6.js.map} +0 -0
- /package/dist/{chunk-FLGUVRR7.js.map → chunk-Y5BSA3I7.js.map} +0 -0
- /package/dist/{chunk-QCD5Y7K5.js.map → chunk-YEROLKOA.js.map} +0 -0
- /package/dist/{chunk-NDF3SH3X.js.map → chunk-YJPKDRI2.js.map} +0 -0
- /package/dist/{chunk-VAIESMPY.js.map → chunk-YVBHGMKC.js.map} +0 -0
- /package/dist/{chunk-AD22P5X3.js.map → chunk-YXA2EKV3.js.map} +0 -0
- /package/dist/{chunk-FDNJVZRE.js.map → chunk-YYCOSTUU.js.map} +0 -0
- /package/dist/{chunk-NLMTNEWW.js.map → chunk-Z6E6TUAE.js.map} +0 -0
- /package/dist/{chunk-BJW7G6EF.js.map → chunk-Z7IGO5EA.js.map} +0 -0
- /package/dist/{chunk-NCX5SAQY.js.map → chunk-ZEIFJ6PX.js.map} +0 -0
- /package/dist/{chunk-4EONHNJU.js.map → chunk-ZVVT72MT.js.map} +0 -0
- /package/dist/{embedded-voice-6QS4ANNX.js.map → computer-viewer-25AJIDYA.js.map} +0 -0
- /package/dist/{model-policy-picker-menu-CURJ247L.js.map → embedded-new-voice-RZZEJT6M.js.map} +0 -0
- /package/dist/{sandbox-files-4FBG3GS2.js.map → embedded-voice-6OKSSPLW.js.map} +0 -0
- /package/dist/{fleet-decision-row-QNSTP3VX.js.map → fleet-decision-row-NN2HXDX3.js.map} +0 -0
- /package/dist/{session-realtime-2XIB254N.js.map → model-policy-picker-menu-VVFGGAI6.js.map} +0 -0
- /package/dist/{platform-activity-row-BMXXNZKX.js.map → platform-activity-row-ENQVIFTL.js.map} +0 -0
- /package/dist/{timeline-annotation-markers-X4K2IEOO.js.map → timeline-annotation-markers-KHNYNY2J.js.map} +0 -0
- /package/dist/{timeline-annotation-selection-MEHBW676.js.map → timeline-annotation-selection-AXEDJHBP.js.map} +0 -0
- /package/dist/{timeline-annotations-dialog-U2FPQ3UY.js.map → timeline-annotations-dialog-AV4ZBXRC.js.map} +0 -0
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from "./chunk-TXS65BB2.js";
|
|
8
8
|
import {
|
|
9
9
|
useOpenGeniText
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-JFK7NTEA.js";
|
|
11
11
|
|
|
12
12
|
// src/components/code-editor.tsx
|
|
13
13
|
import { Loader2Icon, SaveIcon } from "lucide-react";
|
|
@@ -383,4 +383,4 @@ export {
|
|
|
383
383
|
languageForPath,
|
|
384
384
|
CodeEditor
|
|
385
385
|
};
|
|
386
|
-
//# sourceMappingURL=chunk-
|
|
386
|
+
//# sourceMappingURL=chunk-UXXFMF4X.js.map
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
} from "./chunk-TXS65BB2.js";
|
|
11
11
|
import {
|
|
12
12
|
useOpenGeniText
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-JFK7NTEA.js";
|
|
14
14
|
|
|
15
15
|
// src/timeline/screenshot-lightbox.tsx
|
|
16
16
|
import { ChevronLeftIcon, ChevronRightIcon, DownloadIcon, XIcon } from "lucide-react";
|
|
@@ -485,10 +485,10 @@ export {
|
|
|
485
485
|
useLightbox,
|
|
486
486
|
useLightboxOptional,
|
|
487
487
|
LightboxProvider,
|
|
488
|
+
ShimmerText,
|
|
488
489
|
TooltipProvider,
|
|
489
490
|
Tooltip,
|
|
490
491
|
TooltipTrigger,
|
|
491
|
-
TooltipContent
|
|
492
|
-
ShimmerText
|
|
492
|
+
TooltipContent
|
|
493
493
|
};
|
|
494
|
-
//# sourceMappingURL=chunk-
|
|
494
|
+
//# sourceMappingURL=chunk-UYNCMZX5.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
usePolledValue
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-2KO2G3RI.js";
|
|
5
5
|
import {
|
|
6
6
|
useOpenGeni
|
|
7
7
|
} from "./chunk-TVQCDDSZ.js";
|
|
@@ -24,6 +24,7 @@ function useWorkspaceSessions(options = {}) {
|
|
|
24
24
|
const archivedOnly = options.archivedOnly;
|
|
25
25
|
const sortBy = options.sortBy;
|
|
26
26
|
const archiveStatus = options.archiveStatus;
|
|
27
|
+
const siteConversations = options.siteConversations;
|
|
27
28
|
const enabled = options.enabled ?? true;
|
|
28
29
|
const nextReadRevision = useRef(0);
|
|
29
30
|
const nextReadGeneration = useRef(0);
|
|
@@ -43,7 +44,8 @@ function useWorkspaceSessions(options = {}) {
|
|
|
43
44
|
includePinned === false ? "no-pins" : "",
|
|
44
45
|
archivedOnly ? "archived" : "active",
|
|
45
46
|
sortBy ?? "",
|
|
46
|
-
archiveStatus ?? ""
|
|
47
|
+
archiveStatus ?? "",
|
|
48
|
+
siteConversations ?? ""
|
|
47
49
|
].join("\0");
|
|
48
50
|
const previousQueryKey = useRef(queryKey);
|
|
49
51
|
const queryKeyTransition = previousQueryKey.current !== queryKey;
|
|
@@ -67,6 +69,7 @@ function useWorkspaceSessions(options = {}) {
|
|
|
67
69
|
...archivedOnly ? { archivedOnly: true } : {},
|
|
68
70
|
...sortBy ? { sortBy } : {},
|
|
69
71
|
...archiveStatus ? { archiveStatus } : {},
|
|
72
|
+
...siteConversations ? { siteConversations } : {},
|
|
70
73
|
signal
|
|
71
74
|
};
|
|
72
75
|
const page2 = projection === "summary" ? client.listSessionSummaryPage ? await client.listSessionSummaryPage(workspaceId, query) : await client.listSessionPage(workspaceId, query).then(async (full) => {
|
|
@@ -102,6 +105,7 @@ function useWorkspaceSessions(options = {}) {
|
|
|
102
105
|
archivedOnly,
|
|
103
106
|
sortBy,
|
|
104
107
|
archiveStatus,
|
|
108
|
+
siteConversations,
|
|
105
109
|
queryKey
|
|
106
110
|
]
|
|
107
111
|
);
|
|
@@ -120,6 +124,8 @@ function useWorkspaceSessions(options = {}) {
|
|
|
120
124
|
pinned,
|
|
121
125
|
pinnedTruncated: page?.pinnedTruncated ?? false,
|
|
122
126
|
totals: page?.totals ?? null,
|
|
127
|
+
siteGroups: page?.siteGroups ?? null,
|
|
128
|
+
siteGroupsTruncated: page?.siteGroupsTruncated === true,
|
|
123
129
|
nextCursor: page?.nextCursor ?? null,
|
|
124
130
|
// `usePolledValue` clears the old data and starts the new request in an
|
|
125
131
|
// effect. During that query-key transition render, its old loading flag
|
|
@@ -136,4 +142,4 @@ function useWorkspaceSessions(options = {}) {
|
|
|
136
142
|
export {
|
|
137
143
|
useWorkspaceSessions
|
|
138
144
|
};
|
|
139
|
-
//# sourceMappingURL=chunk-
|
|
145
|
+
//# sourceMappingURL=chunk-V3K4RQO7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/use-workspace-sessions.ts"],"sourcesContent":["import type {\n Session,\n SessionListEntry,\n SessionListTotals,\n SiteConversationGroup,\n} from \"@opengeni/sdk\";\nimport { useCallback, useEffect, useRef } from \"react\";\nimport { useOpenGeni, type ClientOverride } from \"../provider\";\nimport { usePolledValue } from \"./internal\";\n\nexport type UseWorkspaceSessionsOptions = ClientOverride & {\n includeTotals?: boolean | undefined;\n needsYouOnly?: boolean | undefined;\n /** Only read-only sessions moved to the idle-session archive. */\n contentArchivedOnly?: boolean | undefined;\n /** Only workstreams the signed-in person started or messaged. */\n mineOnly?: boolean | undefined;\n /** Compact list records; detail reads remain full sessions. */\n projection?: \"summary\" | undefined;\n limit?: number | undefined;\n parentSessionId?: string | null | undefined;\n cursor?: string | undefined;\n search?: string | undefined;\n /** Return only the complete personal pinned projection. */\n pinsOnly?: boolean | undefined;\n /** Skip pinned details when the pinned section is loaded separately. */\n includePinned?: boolean | undefined;\n archivedOnly?: boolean | undefined;\n sortBy?: \"updatedAt\" | \"createdAt\" | \"name\" | undefined;\n archiveStatus?: \"active\" | \"archived\" | \"all\" | undefined;\n /**\n * Conversations that run inside a Site: `include` lists them as rows,\n * `group` (root pages) returns them as `siteGroups` instead.\n */\n siteConversations?: \"include\" | \"group\" | undefined;\n /** Refresh interval (ms) for fleet/manager views. Off by default. */\n pollIntervalMs?: number | undefined;\n enabled?: boolean | undefined;\n /** Optional shared causal clock invoked when each network read starts. */\n beginRead?: (() => number) | undefined;\n};\n\nexport type UseWorkspaceSessionsResult<T extends Session | SessionListEntry = Session> = {\n /**\n * All visible rows, with pins first. This preserves the pre-pinning hook\n * contract for consumers that only read `sessions`.\n */\n sessions: T[];\n /** The complete personal pinned section, also present in `sessions`. */\n pinned: T[];\n /** True when the server omitted older pins from its bounded pinned section. */\n pinnedTruncated: boolean;\n totals: SessionListTotals | null;\n /** Complete Site rows for a `group` page; null when not requested or unsupported. */\n siteGroups: SiteConversationGroup[] | null;\n /** True when the server omitted Site rows beyond its bound. */\n siteGroupsTruncated: boolean;\n nextCursor: string | null;\n loading: boolean;\n error: Error | null;\n /** Monotonic revision of accepted authoritative list-page reads. */\n readRevision: number;\n /** Causal generation captured when the accepted network read started. */\n readGeneration: number;\n refresh: () => Promise<void>;\n};\n\n/** List the workspace's sessions — the data behind fleet and manager views. */\nexport function useWorkspaceSessions(\n options: UseWorkspaceSessionsOptions & { projection: \"summary\" },\n): UseWorkspaceSessionsResult<SessionListEntry>;\nexport function useWorkspaceSessions(\n options?: UseWorkspaceSessionsOptions & { projection?: undefined },\n): UseWorkspaceSessionsResult;\nexport function useWorkspaceSessions(\n options: UseWorkspaceSessionsOptions,\n): UseWorkspaceSessionsResult<Session | SessionListEntry>;\nexport function useWorkspaceSessions(\n options: UseWorkspaceSessionsOptions = {},\n): UseWorkspaceSessionsResult<Session | SessionListEntry> {\n const { client, workspaceId } = useOpenGeni(options);\n const projection = options.projection;\n const includeTotals = options.includeTotals;\n const needsYouOnly = options.needsYouOnly;\n const contentArchivedOnly = options.contentArchivedOnly;\n const mineOnly = options.mineOnly;\n const limit = options.limit;\n const parentSessionId = options.parentSessionId;\n const cursor = options.cursor;\n const search = options.search;\n const pinsOnly = options.pinsOnly;\n const includePinned = options.includePinned;\n const archivedOnly = options.archivedOnly;\n const sortBy = options.sortBy;\n const archiveStatus = options.archiveStatus;\n const siteConversations = options.siteConversations;\n const enabled = options.enabled ?? true;\n const nextReadRevision = useRef(0);\n const nextReadGeneration = useRef(0);\n const beginRead = options.beginRead;\n const queryKey = [\n workspaceId,\n projection ?? \"full\",\n includeTotals ? \"totals\" : \"\",\n needsYouOnly ? \"needs-you\" : \"\",\n contentArchivedOnly ? \"read-only\" : \"\",\n mineOnly ? \"mine\" : \"\",\n limit ?? \"\",\n parentSessionId === null ? \"null\" : (parentSessionId ?? \"\"),\n cursor ?? \"\",\n search ?? \"\",\n pinsOnly ? \"1\" : \"\",\n includePinned === false ? \"no-pins\" : \"\",\n archivedOnly ? \"archived\" : \"active\",\n sortBy ?? \"\",\n archiveStatus ?? \"\",\n siteConversations ?? \"\",\n ].join(\"\\u0000\");\n const previousQueryKey = useRef(queryKey);\n const queryKeyTransition = previousQueryKey.current !== queryKey;\n useEffect(() => {\n previousQueryKey.current = queryKey;\n }, [queryKey]);\n const load = useCallback(\n async (signal?: AbortSignal) => {\n const readGeneration = beginRead?.() ?? ++nextReadGeneration.current;\n const query = {\n ...(includeTotals ? { includeTotals: true } : {}),\n ...(needsYouOnly ? { needsYouOnly: true } : {}),\n ...(contentArchivedOnly ? { contentArchivedOnly: true } : {}),\n ...(mineOnly ? { mineOnly: true } : {}),\n ...(limit !== undefined ? { limit } : {}),\n ...(parentSessionId !== undefined ? { parentSessionId } : {}),\n ...(cursor !== undefined ? { cursor } : {}),\n ...(search !== undefined ? { search } : {}),\n ...(pinsOnly ? { pinsOnly: true } : {}),\n ...(includePinned === false ? { includePinned: false } : {}),\n ...(archivedOnly ? { archivedOnly: true } : {}),\n ...(sortBy ? { sortBy } : {}),\n ...(archiveStatus ? { archiveStatus } : {}),\n ...(siteConversations ? { siteConversations } : {}),\n signal,\n };\n const page =\n projection === \"summary\"\n ? client.listSessionSummaryPage\n ? await client.listSessionSummaryPage(workspaceId, query)\n : await client.listSessionPage(workspaceId, query).then(async (full) => {\n const { sessionListEntry } = await import(\"@opengeni/sdk/session-list-entries\");\n return {\n ...full,\n pinned: full.pinned.map(sessionListEntry),\n sessions: full.sessions.map(sessionListEntry),\n };\n })\n : await client.listSessionPage(workspaceId, query);\n return {\n queryKey,\n page,\n revision: ++nextReadRevision.current,\n readGeneration,\n };\n },\n [\n beginRead,\n client,\n workspaceId,\n projection,\n includeTotals,\n needsYouOnly,\n contentArchivedOnly,\n mineOnly,\n limit,\n parentSessionId,\n cursor,\n search,\n pinsOnly,\n includePinned,\n archivedOnly,\n sortBy,\n archiveStatus,\n siteConversations,\n queryKey,\n ],\n );\n const state = usePolledValue(load, {\n pollIntervalMs: options.pollIntervalMs,\n enabled,\n });\n // usePolledValue drops stale async completions, while the explicit query key\n // also prevents the previous query's cached value from painting for the one\n // render before its loader-change effect clears state.\n const page = state.data?.queryKey === queryKey ? state.data.page : null;\n const pinned = page?.pinned ?? [];\n const ordinary = page?.sessions ?? [];\n return {\n // The old hook returned every visible session. Keep that public behavior\n // while exposing `pinned` separately for the compact section. The API page\n // itself continues to paginate only `ordinary` rows via nextCursor.\n sessions: [...pinned, ...ordinary],\n pinned,\n pinnedTruncated: page?.pinnedTruncated ?? false,\n totals: page?.totals ?? null,\n siteGroups: page?.siteGroups ?? null,\n siteGroupsTruncated: page?.siteGroupsTruncated === true,\n nextCursor: page?.nextCursor ?? null,\n // `usePolledValue` clears the old data and starts the new request in an\n // effect. During that query-key transition render, its old loading flag\n // can still be false; expose loading immediately so consumers do not\n // announce a transient false zero-match result.\n loading:\n enabled &&\n (state.loading ||\n queryKeyTransition ||\n (state.data !== null && state.data.queryKey !== queryKey)),\n error: state.error,\n readRevision: page ? (state.data?.revision ?? 0) : 0,\n readGeneration: page ? (state.data?.readGeneration ?? 0) : 0,\n refresh: state.refresh,\n };\n}\n"],"mappings":";;;;;;;;;AAMA,SAAS,aAAa,WAAW,cAAc;AAuExC,SAAS,qBACd,UAAuC,CAAC,GACgB;AACxD,QAAM,EAAE,QAAQ,YAAY,IAAI,YAAY,OAAO;AACnD,QAAM,aAAa,QAAQ;AAC3B,QAAM,gBAAgB,QAAQ;AAC9B,QAAM,eAAe,QAAQ;AAC7B,QAAM,sBAAsB,QAAQ;AACpC,QAAM,WAAW,QAAQ;AACzB,QAAM,QAAQ,QAAQ;AACtB,QAAM,kBAAkB,QAAQ;AAChC,QAAM,SAAS,QAAQ;AACvB,QAAM,SAAS,QAAQ;AACvB,QAAM,WAAW,QAAQ;AACzB,QAAM,gBAAgB,QAAQ;AAC9B,QAAM,eAAe,QAAQ;AAC7B,QAAM,SAAS,QAAQ;AACvB,QAAM,gBAAgB,QAAQ;AAC9B,QAAM,oBAAoB,QAAQ;AAClC,QAAM,UAAU,QAAQ,WAAW;AACnC,QAAM,mBAAmB,OAAO,CAAC;AACjC,QAAM,qBAAqB,OAAO,CAAC;AACnC,QAAM,YAAY,QAAQ;AAC1B,QAAM,WAAW;AAAA,IACf;AAAA,IACA,cAAc;AAAA,IACd,gBAAgB,WAAW;AAAA,IAC3B,eAAe,cAAc;AAAA,IAC7B,sBAAsB,cAAc;AAAA,IACpC,WAAW,SAAS;AAAA,IACpB,SAAS;AAAA,IACT,oBAAoB,OAAO,SAAU,mBAAmB;AAAA,IACxD,UAAU;AAAA,IACV,UAAU;AAAA,IACV,WAAW,MAAM;AAAA,IACjB,kBAAkB,QAAQ,YAAY;AAAA,IACtC,eAAe,aAAa;AAAA,IAC5B,UAAU;AAAA,IACV,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,EACvB,EAAE,KAAK,IAAQ;AACf,QAAM,mBAAmB,OAAO,QAAQ;AACxC,QAAM,qBAAqB,iBAAiB,YAAY;AACxD,YAAU,MAAM;AACd,qBAAiB,UAAU;AAAA,EAC7B,GAAG,CAAC,QAAQ,CAAC;AACb,QAAM,OAAO;AAAA,IACX,OAAO,WAAyB;AAC9B,YAAM,iBAAiB,YAAY,KAAK,EAAE,mBAAmB;AAC7D,YAAM,QAAQ;AAAA,QACZ,GAAI,gBAAgB,EAAE,eAAe,KAAK,IAAI,CAAC;AAAA,QAC/C,GAAI,eAAe,EAAE,cAAc,KAAK,IAAI,CAAC;AAAA,QAC7C,GAAI,sBAAsB,EAAE,qBAAqB,KAAK,IAAI,CAAC;AAAA,QAC3D,GAAI,WAAW,EAAE,UAAU,KAAK,IAAI,CAAC;AAAA,QACrC,GAAI,UAAU,SAAY,EAAE,MAAM,IAAI,CAAC;AAAA,QACvC,GAAI,oBAAoB,SAAY,EAAE,gBAAgB,IAAI,CAAC;AAAA,QAC3D,GAAI,WAAW,SAAY,EAAE,OAAO,IAAI,CAAC;AAAA,QACzC,GAAI,WAAW,SAAY,EAAE,OAAO,IAAI,CAAC;AAAA,QACzC,GAAI,WAAW,EAAE,UAAU,KAAK,IAAI,CAAC;AAAA,QACrC,GAAI,kBAAkB,QAAQ,EAAE,eAAe,MAAM,IAAI,CAAC;AAAA,QAC1D,GAAI,eAAe,EAAE,cAAc,KAAK,IAAI,CAAC;AAAA,QAC7C,GAAI,SAAS,EAAE,OAAO,IAAI,CAAC;AAAA,QAC3B,GAAI,gBAAgB,EAAE,cAAc,IAAI,CAAC;AAAA,QACzC,GAAI,oBAAoB,EAAE,kBAAkB,IAAI,CAAC;AAAA,QACjD;AAAA,MACF;AACA,YAAMA,QACJ,eAAe,YACX,OAAO,yBACL,MAAM,OAAO,uBAAuB,aAAa,KAAK,IACtD,MAAM,OAAO,gBAAgB,aAAa,KAAK,EAAE,KAAK,OAAO,SAAS;AACpE,cAAM,EAAE,iBAAiB,IAAI,MAAM,OAAO,oCAAoC;AAC9E,eAAO;AAAA,UACL,GAAG;AAAA,UACH,QAAQ,KAAK,OAAO,IAAI,gBAAgB;AAAA,UACxC,UAAU,KAAK,SAAS,IAAI,gBAAgB;AAAA,QAC9C;AAAA,MACF,CAAC,IACH,MAAM,OAAO,gBAAgB,aAAa,KAAK;AACrD,aAAO;AAAA,QACL;AAAA,QACA,MAAAA;AAAA,QACA,UAAU,EAAE,iBAAiB;AAAA,QAC7B;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,QAAM,QAAQ,eAAe,MAAM;AAAA,IACjC,gBAAgB,QAAQ;AAAA,IACxB;AAAA,EACF,CAAC;AAID,QAAM,OAAO,MAAM,MAAM,aAAa,WAAW,MAAM,KAAK,OAAO;AACnE,QAAM,SAAS,MAAM,UAAU,CAAC;AAChC,QAAM,WAAW,MAAM,YAAY,CAAC;AACpC,SAAO;AAAA;AAAA;AAAA;AAAA,IAIL,UAAU,CAAC,GAAG,QAAQ,GAAG,QAAQ;AAAA,IACjC;AAAA,IACA,iBAAiB,MAAM,mBAAmB;AAAA,IAC1C,QAAQ,MAAM,UAAU;AAAA,IACxB,YAAY,MAAM,cAAc;AAAA,IAChC,qBAAqB,MAAM,wBAAwB;AAAA,IACnD,YAAY,MAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,IAKhC,SACE,YACC,MAAM,WACL,sBACC,MAAM,SAAS,QAAQ,MAAM,KAAK,aAAa;AAAA,IACpD,OAAO,MAAM;AAAA,IACb,cAAc,OAAQ,MAAM,MAAM,YAAY,IAAK;AAAA,IACnD,gBAAgB,OAAQ,MAAM,MAAM,kBAAkB,IAAK;AAAA,IAC3D,SAAS,MAAM;AAAA,EACjB;AACF;","names":["page"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
isCodexProductModel
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-22JFMNMF.js";
|
|
5
5
|
|
|
6
6
|
// src/app/lib/session-model.tsx
|
|
7
7
|
function resolveSessionComposerModel(input) {
|
|
@@ -14,4 +14,4 @@ function resolveSessionComposerModel(input) {
|
|
|
14
14
|
export {
|
|
15
15
|
resolveSessionComposerModel
|
|
16
16
|
};
|
|
17
|
-
//# sourceMappingURL=chunk-
|
|
17
|
+
//# sourceMappingURL=chunk-V4QZ7UBK.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
SearchMarkdown
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-ZVVT72MT.js";
|
|
5
5
|
import {
|
|
6
6
|
SearchText
|
|
7
7
|
} from "./chunk-72VDQKH4.js";
|
|
8
8
|
import {
|
|
9
9
|
MarkdownText
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-HU6JTNWF.js";
|
|
11
11
|
import {
|
|
12
12
|
cn
|
|
13
13
|
} from "./chunk-A3MTTRCX.js";
|
|
@@ -266,4 +266,4 @@ export {
|
|
|
266
266
|
SearchResultsView,
|
|
267
267
|
SearchPreviewView
|
|
268
268
|
};
|
|
269
|
-
//# sourceMappingURL=chunk-
|
|
269
|
+
//# sourceMappingURL=chunk-VH5EGTH2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/app/lib/navigation.tsx"],"sourcesContent":["// Navigation for the session UI, independent of any one router. The web app\n// backs it with its TanStack router (see `configurePageAppHost`), so links,\n// history and URLs there are exactly the router's own. An embed backs it with\n// its own routing or in-memory state.\nimport type { AnchorHTMLAttributes, ComponentType, ReactNode, Ref } from \"react\";\n\nimport { useAppHost } from \"./app-host\";\n\n/** History state the session UI writes and reads. */\nexport type NavigationHistoryState = {\n /** Set only on the Settings \"Back to sessions\" link that reopens this session. */\n restoredSessionId?: string | undefined;\n [key: string]: unknown;\n};\n\nexport type NavigationLocation = Readonly<{\n pathname: string;\n search: Record<string, unknown>;\n searchStr: string;\n hash: string;\n href: string;\n state: NavigationHistoryState;\n}>;\n\nexport type NavigationState = Readonly<{ location: NavigationLocation }>;\n\nexport type NavigationSearch = Record<string, unknown>;\nexport type NavigationParams = Record<string, string>;\n\n/** A value, `(previous) => next`, or `true` to keep the current one. */\nexport type NavigationUpdater<T> = true | T | ((previous: T) => T);\n\nexport type NavigateOptions = {\n /** A route path such as `/workspaces/$workspaceId`, filled from `params`. */\n to?: string | undefined;\n from?: string | undefined;\n params?: NavigationUpdater<NavigationParams> | undefined;\n search?: NavigationUpdater<NavigationSearch> | undefined;\n hash?: NavigationUpdater<string> | undefined;\n state?: NavigationUpdater<NavigationHistoryState> | undefined;\n replace?: boolean | undefined;\n resetScroll?: boolean | undefined;\n ignoreBlocker?: boolean | undefined;\n reloadDocument?: boolean | undefined;\n href?: string | undefined;\n};\n\nexport type NavigateFunction = (options: NavigateOptions) => Promise<void>;\n\nexport type LinkProps = NavigateOptions &\n Omit<AnchorHTMLAttributes<HTMLAnchorElement>, \"href\" | \"children\"> & {\n children?:\n | ReactNode\n | ((state: { isActive: boolean; isTransitioning: boolean }) => ReactNode)\n | undefined;\n preload?: false | \"intent\" | \"viewport\" | \"render\" | undefined;\n disabled?: boolean | undefined;\n /** When the link counts as the current page (`aria-current`); the router's default otherwise. */\n activeOptions?:\n | { exact?: boolean | undefined; includeSearch?: boolean | undefined }\n | undefined;\n ref?: Ref<HTMLAnchorElement> | undefined;\n };\n\n/**\n * The page around the session UI, for flows that leave it or return to it\n * (provider authorization, checkout, connect returns). The web app maps these\n * to `window.location` and `history`; an embed keeps the host page untouched.\n */\nexport type PageHost = Readonly<{\n /** Absolute URL of the console page being shown. */\n href: () => string;\n /** The console origin that app paths (`/workspaces/...`) resolve against. */\n origin: () => string;\n /** The page's query, where authorization and connect returns land. */\n readQuery: () => URLSearchParams;\n /** Replaces the page's query after handling a return, without a navigation. */\n replaceQuery: (query: URLSearchParams, options?: { keepHistoryState?: boolean }) => void;\n /**\n * Leaves for a URL: an external flow, or an app page outside the session UI.\n * An embed opens it beside the host page instead of replacing it.\n */\n assign: (url: string, options?: { replace?: boolean }) => void;\n /**\n * True when `assign` opens outside URLs beside the page rather than leaving\n * it (an embed), so a flow that leaves for checkout stays here and waits.\n */\n opensBeside: boolean;\n /** Opens a URL beside the page (a file, an image, a provider page). */\n open: (url: string) => void;\n /**\n * Opens an empty tab inside a click, for a URL known only after an await\n * (checkout, a freshly signed link). Null when the browser blocks it or the\n * host shows URLs its own way; the caller then leaves through `assign`.\n */\n openTab: () => Window | null;\n}>;\n\nexport type NavigationHost = Readonly<{\n useNavigate: () => NavigateFunction;\n useLocation: () => NavigationLocation;\n useRouterState: <T>(options: { select: (state: NavigationState) => T }) => T;\n /** Live, non-reactive read for event handlers. */\n useRouter: () => { readonly state: NavigationState };\n useSearch: (options: { strict: false }) => NavigationSearch;\n Link: ComponentType<LinkProps>;\n stringifySearch: (search: NavigationSearch) => string;\n page: PageHost;\n}>;\n\n/**\n * The browser window as the page: the default when nothing scopes another one,\n * and what a host that owns the URL (the web app) passes as its `page`.\n */\nexport const browserPage: PageHost = {\n href: () => window.location.href,\n origin: () => window.location.origin,\n readQuery: () => new URLSearchParams(window.location.search),\n replaceQuery: (query, options) =>\n window.history.replaceState(\n options?.keepHistoryState ? window.history.state : null,\n \"\",\n `${window.location.pathname}${query.size ? `?${query}` : \"\"}`,\n ),\n assign: (url, options) =>\n options?.replace ? window.location.replace(url) : window.location.assign(url),\n opensBeside: false,\n open: (url) => void window.open(url, \"_blank\", \"noopener,noreferrer\"),\n openTab: openBlankTab,\n};\n\n/** An empty new tab with no handle back to this page, or null when blocked. */\nexport function openBlankTab(): Window | null {\n let tab: Window | null = null;\n try {\n tab = window.open(\"\", \"_blank\");\n } catch {\n return null;\n }\n if (tab) tab.opener = null;\n return tab;\n}\n\nfunction useNavigationHost(): NavigationHost {\n const host = useAppHost().navigation;\n if (!host) throw new Error(\"Opengeni navigation is not configured\");\n return host;\n}\n\nexport function useNavigate(): NavigateFunction {\n return useNavigationHost().useNavigate();\n}\n\nexport function useLocation(): NavigationLocation {\n return useNavigationHost().useLocation();\n}\n\nexport function useRouterState<T>(options: { select: (state: NavigationState) => T }): T {\n return useNavigationHost().useRouterState(options);\n}\n\nexport function useRouter(): { readonly state: NavigationState } {\n return useNavigationHost().useRouter();\n}\n\nexport function useSearch(options: { strict: false }): NavigationSearch {\n return useNavigationHost().useSearch(options);\n}\n\nexport function Link(props: LinkProps) {\n const HostLink = useNavigationHost().Link;\n return <HostLink {...props} />;\n}\n\n/** The page around the session UI; the browser window unless a host scopes another. */\nexport function usePage(): PageHost {\n return useAppHost().navigation?.page ?? browserPage;\n}\n\n/** The host's search serializer (`?a=1&b=%22x%22`), for hrefs built outside `Link`. */\nexport function useStringifySearch(): (search: NavigationSearch) => string {\n return useNavigationHost().stringifySearch;\n}\n"],"mappings":";;;;;;AA2KS;AAzDF,IAAM,cAAwB;AAAA,EACnC,MAAM,MAAM,OAAO,SAAS;AAAA,EAC5B,QAAQ,MAAM,OAAO,SAAS;AAAA,EAC9B,WAAW,MAAM,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAAA,EAC3D,cAAc,CAAC,OAAO,YACpB,OAAO,QAAQ;AAAA,IACb,SAAS,mBAAmB,OAAO,QAAQ,QAAQ;AAAA,IACnD;AAAA,IACA,GAAG,OAAO,SAAS,QAAQ,GAAG,MAAM,OAAO,IAAI,KAAK,KAAK,EAAE;AAAA,EAC7D;AAAA,EACF,QAAQ,CAAC,KAAK,YACZ,SAAS,UAAU,OAAO,SAAS,QAAQ,GAAG,IAAI,OAAO,SAAS,OAAO,GAAG;AAAA,EAC9E,aAAa;AAAA,EACb,MAAM,CAAC,QAAQ,KAAK,OAAO,KAAK,KAAK,UAAU,qBAAqB;AAAA,EACpE,SAAS;AACX;AAGO,SAAS,eAA8B;AAC5C,MAAI,MAAqB;AACzB,MAAI;AACF,UAAM,OAAO,KAAK,IAAI,QAAQ;AAAA,EAChC,QAAQ;AACN,WAAO;AAAA,EACT;AACA,MAAI,IAAK,KAAI,SAAS;AACtB,SAAO;AACT;AAEA,SAAS,oBAAoC;AAC3C,QAAM,OAAO,WAAW,EAAE;AAC1B,MAAI,CAAC,KAAM,OAAM,IAAI,MAAM,uCAAuC;AAClE,SAAO;AACT;AAEO,SAAS,cAAgC;AAC9C,SAAO,kBAAkB,EAAE,YAAY;AACzC;AAEO,SAAS,cAAkC;AAChD,SAAO,kBAAkB,EAAE,YAAY;AACzC;AAEO,SAAS,eAAkB,SAAuD;AACvF,SAAO,kBAAkB,EAAE,eAAe,OAAO;AACnD;AAEO,SAAS,YAAiD;AAC/D,SAAO,kBAAkB,EAAE,UAAU;AACvC;AAEO,SAAS,UAAU,SAA8C;AACtE,SAAO,kBAAkB,EAAE,UAAU,OAAO;AAC9C;AAEO,SAAS,KAAK,OAAkB;AACrC,QAAM,WAAW,kBAAkB,EAAE;AACrC,SAAO,oBAAC,YAAU,GAAG,OAAO;AAC9B;AAGO,SAAS,UAAoB;AAClC,SAAO,WAAW,EAAE,YAAY,QAAQ;AAC1C;AAGO,SAAS,qBAA2D;AACzE,SAAO,kBAAkB,EAAE;AAC7B;","names":[]}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
import {
|
|
3
3
|
deniesRetainedView,
|
|
4
4
|
useRetainedSessionView
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-34EU25RL.js";
|
|
6
6
|
import {
|
|
7
7
|
projectionReadThrough,
|
|
8
8
|
useDebouncedCallback,
|
|
9
9
|
usePolledValue,
|
|
10
10
|
useSessionEventTrigger
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-2KO2G3RI.js";
|
|
12
12
|
import {
|
|
13
13
|
useEmbeddedSessionLineage
|
|
14
14
|
} from "./chunk-TVQCDDSZ.js";
|
|
@@ -145,4 +145,4 @@ export {
|
|
|
145
145
|
isLineageRefreshEvent,
|
|
146
146
|
useSessionLineage
|
|
147
147
|
};
|
|
148
|
-
//# sourceMappingURL=chunk-
|
|
148
|
+
//# sourceMappingURL=chunk-W6T5HR3Z.js.map
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
ListRow,
|
|
18
18
|
ListRowSkeleton,
|
|
19
19
|
RowList
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-JQCGPTZ6.js";
|
|
21
21
|
import {
|
|
22
22
|
clearGitHubInstallRequest,
|
|
23
23
|
readGitHubInstallRequest,
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
} from "./chunk-PVNI2KHS.js";
|
|
26
26
|
import {
|
|
27
27
|
capabilityLogoSource
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-7FJMRJDG.js";
|
|
29
29
|
import {
|
|
30
30
|
cn
|
|
31
31
|
} from "./chunk-A3MTTRCX.js";
|
|
@@ -38,6 +38,9 @@ import {
|
|
|
38
38
|
import {
|
|
39
39
|
repositoryDisplayName
|
|
40
40
|
} from "./chunk-L6Y4ALSM.js";
|
|
41
|
+
import {
|
|
42
|
+
usePage
|
|
43
|
+
} from "./chunk-VYKW6TB2.js";
|
|
41
44
|
import {
|
|
42
45
|
hasWorkspacePermission
|
|
43
46
|
} from "./chunk-FIDD34ZF.js";
|
|
@@ -45,23 +48,20 @@ import {
|
|
|
45
48
|
isPersonalWorkspace
|
|
46
49
|
} from "./chunk-74JEZLLQ.js";
|
|
47
50
|
import {
|
|
48
|
-
|
|
49
|
-
} from "./chunk-
|
|
51
|
+
useAppContext
|
|
52
|
+
} from "./chunk-W6KAUGXO.js";
|
|
50
53
|
import {
|
|
51
54
|
userErrorText
|
|
52
55
|
} from "./chunk-L4OF77LE.js";
|
|
53
56
|
import {
|
|
54
|
-
|
|
55
|
-
} from "./chunk-
|
|
57
|
+
SessionCapabilityFrame
|
|
58
|
+
} from "./chunk-AX6YJA5U.js";
|
|
56
59
|
import {
|
|
57
60
|
Notice
|
|
58
61
|
} from "./chunk-WLEDGIVS.js";
|
|
59
62
|
import {
|
|
60
63
|
Button
|
|
61
64
|
} from "./chunk-HMU5IELG.js";
|
|
62
|
-
import {
|
|
63
|
-
SessionCapabilityFrame
|
|
64
|
-
} from "./chunk-HRJQAFKR.js";
|
|
65
65
|
|
|
66
66
|
// src/app/components/capabilities/session-github-card.tsx
|
|
67
67
|
import { ArrowUpRightIcon, BookMarkedIcon, CheckIcon, Loader2Icon, LockIcon } from "lucide-react";
|
|
@@ -740,4 +740,4 @@ function repositoryGroups(rows, accountLabel) {
|
|
|
740
740
|
export {
|
|
741
741
|
SessionGitHubCapabilityCard
|
|
742
742
|
};
|
|
743
|
-
//# sourceMappingURL=chunk-
|
|
743
|
+
//# sourceMappingURL=chunk-WCMG4HYI.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
usePolledValue
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-2KO2G3RI.js";
|
|
5
5
|
import {
|
|
6
6
|
useOpenGeni
|
|
7
7
|
} from "./chunk-TVQCDDSZ.js";
|
|
@@ -106,4 +106,4 @@ export {
|
|
|
106
106
|
useVaultFieldVersions,
|
|
107
107
|
useSessionSecrets
|
|
108
108
|
};
|
|
109
|
-
//# sourceMappingURL=chunk-
|
|
109
|
+
//# sourceMappingURL=chunk-WEFN327U.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
mcpToolLeaf
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-LEKBNKLD.js";
|
|
5
5
|
|
|
6
6
|
// src/timeline/presented-image.ts
|
|
7
7
|
import { normalizeMcpOutput, parseSandboxFileArtifactReceipt } from "@opengeni/sdk";
|
|
@@ -48,4 +48,4 @@ export {
|
|
|
48
48
|
isPatchFilename,
|
|
49
49
|
timelineGroupContainsPresentedImage
|
|
50
50
|
};
|
|
51
|
-
//# sourceMappingURL=chunk-
|
|
51
|
+
//# sourceMappingURL=chunk-WNDTLK44.js.map
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from "./chunk-TXS65BB2.js";
|
|
12
12
|
import {
|
|
13
13
|
useOpenGeniText
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-JFK7NTEA.js";
|
|
15
15
|
|
|
16
16
|
// src/types/machines.ts
|
|
17
17
|
function connectionStatusForState(state) {
|
|
@@ -2551,4 +2551,4 @@ export {
|
|
|
2551
2551
|
EnrollmentDeviceFlow,
|
|
2552
2552
|
EnrollmentConsent
|
|
2553
2553
|
};
|
|
2554
|
-
//# sourceMappingURL=chunk-
|
|
2554
|
+
//# sourceMappingURL=chunk-WSZQNTVN.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
SelectMenu
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-TFK4KFKA.js";
|
|
5
5
|
import {
|
|
6
6
|
useSettingRowField
|
|
7
7
|
} from "./chunk-XSOPQZGH.js";
|
|
@@ -24,4 +24,4 @@ function RowSelect(props) {
|
|
|
24
24
|
export {
|
|
25
25
|
RowSelect
|
|
26
26
|
};
|
|
27
|
-
//# sourceMappingURL=chunk-
|
|
27
|
+
//# sourceMappingURL=chunk-X2AH4DRF.js.map
|
|
@@ -5,21 +5,21 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
SettingRow
|
|
7
7
|
} from "./chunk-XSOPQZGH.js";
|
|
8
|
-
import {
|
|
9
|
-
hasWorkspacePermission
|
|
10
|
-
} from "./chunk-FIDD34ZF.js";
|
|
11
8
|
import {
|
|
12
9
|
toast
|
|
13
10
|
} from "./chunk-YG6NARQY.js";
|
|
14
11
|
import {
|
|
15
|
-
|
|
16
|
-
} from "./chunk-
|
|
12
|
+
hasWorkspacePermission
|
|
13
|
+
} from "./chunk-FIDD34ZF.js";
|
|
17
14
|
import {
|
|
18
15
|
useAppContext
|
|
19
16
|
} from "./chunk-W6KAUGXO.js";
|
|
20
17
|
import {
|
|
21
18
|
RelativeTime
|
|
22
19
|
} from "./chunk-XG57V2BN.js";
|
|
20
|
+
import {
|
|
21
|
+
apiErrorFacts
|
|
22
|
+
} from "./chunk-L4OF77LE.js";
|
|
23
23
|
import {
|
|
24
24
|
Notice
|
|
25
25
|
} from "./chunk-WLEDGIVS.js";
|
|
@@ -150,4 +150,4 @@ export {
|
|
|
150
150
|
ReadOnlySessionNotice,
|
|
151
151
|
KeepActiveSetting
|
|
152
152
|
};
|
|
153
|
-
//# sourceMappingURL=chunk-
|
|
153
|
+
//# sourceMappingURL=chunk-XMNUZUUA.js.map
|
|
@@ -7,10 +7,10 @@ import {
|
|
|
7
7
|
} from "./chunk-3SMJ2BIQ.js";
|
|
8
8
|
import {
|
|
9
9
|
BillingClassMark
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-PO3BH3KQ.js";
|
|
11
11
|
import {
|
|
12
12
|
useSessionModelAccount
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-BMJTNPWK.js";
|
|
14
14
|
|
|
15
15
|
// src/app/components/session/model-account-indicator.tsx
|
|
16
16
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -129,4 +129,4 @@ function ModelAccountIndicator({
|
|
|
129
129
|
export {
|
|
130
130
|
ModelAccountIndicator
|
|
131
131
|
};
|
|
132
|
-
//# sourceMappingURL=chunk-
|
|
132
|
+
//# sourceMappingURL=chunk-XN7NSPE6.js.map
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
cachedClientConfigRead
|
|
4
|
+
} from "./chunk-IGVL3ELX.js";
|
|
5
|
+
|
|
6
|
+
// src/hooks/use-client-config-flags.ts
|
|
7
|
+
import { useEffect, useState } from "react";
|
|
8
|
+
var INITIAL_FLAGS = {
|
|
9
|
+
loaded: false,
|
|
10
|
+
uploads: false,
|
|
11
|
+
modelSelection: false,
|
|
12
|
+
sandboxFiles: false,
|
|
13
|
+
defaultReasoningEffort: null,
|
|
14
|
+
artifacts: true,
|
|
15
|
+
sessionCreation: true,
|
|
16
|
+
archive: true,
|
|
17
|
+
voiceInput: null,
|
|
18
|
+
realtimeVoice: false,
|
|
19
|
+
realtimeVoiceOffered: false,
|
|
20
|
+
browserExtension: null
|
|
21
|
+
};
|
|
22
|
+
function useClientConfigFlags(client) {
|
|
23
|
+
const [flags, setFlags] = useState(INITIAL_FLAGS);
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
if (typeof client.getClientConfig !== "function") return;
|
|
26
|
+
let live = true;
|
|
27
|
+
cachedClientConfigRead(client).then(
|
|
28
|
+
(config) => {
|
|
29
|
+
if (live) {
|
|
30
|
+
setFlags({
|
|
31
|
+
loaded: true,
|
|
32
|
+
uploads: config.fileUploads?.enabled === true,
|
|
33
|
+
// Only an explicit offer shows end users the picker.
|
|
34
|
+
modelSelection: config.modelSelection === true,
|
|
35
|
+
sandboxFiles: config.sandboxFiles !== false,
|
|
36
|
+
defaultReasoningEffort: config.defaultReasoningEffort ?? null,
|
|
37
|
+
artifacts: config.artifacts !== false,
|
|
38
|
+
sessionCreation: config.sessionCreation !== false,
|
|
39
|
+
archive: config.archive !== false,
|
|
40
|
+
voiceInput: config.voiceInput?.available === true ? config.voiceInput : null,
|
|
41
|
+
realtimeVoice: config.realtimeVoice !== false,
|
|
42
|
+
realtimeVoiceOffered: config.realtimeVoice === true,
|
|
43
|
+
browserExtension: config.browserExtension ?? null
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
() => void 0
|
|
48
|
+
);
|
|
49
|
+
return () => {
|
|
50
|
+
live = false;
|
|
51
|
+
};
|
|
52
|
+
}, [client]);
|
|
53
|
+
return flags;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export {
|
|
57
|
+
useClientConfigFlags
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=chunk-XV6ZYRHK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/use-client-config-flags.ts"],"sourcesContent":["import type { ClientVoiceInputConfig, ReasoningEffort } from \"@opengeni/sdk\";\nimport { useEffect, useState } from \"react\";\nimport { cachedClientConfigRead } from \"../lib/client-config-read\";\n\n/** The client-config fields the stock conversation and chat read. */\nexport type ClientConfigFlagsSource = {\n getClientConfig: () => Promise<{\n fileUploads?: { enabled?: boolean };\n modelSelection?: boolean | undefined;\n sandboxFiles?: boolean | undefined;\n defaultReasoningEffort?: ReasoningEffort | undefined;\n artifacts?: unknown;\n sessionCreation?: boolean | undefined;\n archive?: boolean | undefined;\n voiceInput?: ClientVoiceInputConfig | undefined;\n realtimeVoice?: boolean | undefined;\n browserExtension?: { name: string; installUrl: string } | undefined;\n }>;\n};\n\nexport type ClientConfigFlags = {\n /** Whether the config has loaded. Proxy capability flags stay `true` until it says otherwise. */\n loaded: boolean;\n uploads: boolean;\n modelSelection: boolean;\n sandboxFiles: boolean;\n defaultReasoningEffort: ReasoningEffort | null;\n /**\n * Inline Site previews and the artifact viewer. `false` only when a session\n * proxy says it does not serve them; native deployments omit the flag.\n */\n artifacts: boolean;\n /** Browser chat creation. `false` only when a session proxy has no `createSession` hook. */\n sessionCreation: boolean;\n /** Chat archive/restore. `false` only when a session proxy disables it. */\n archive: boolean;\n /** Native voice input when the deployment can transcribe, else null. */\n voiceInput: ClientVoiceInputConfig | null;\n /**\n * Live voice. `false` until the config loads and when a session proxy turns\n * it off; availability otherwise comes from the realtime model catalog.\n */\n realtimeVoice: boolean;\n /**\n * The host explicitly offers live voice to end users (a session proxy with\n * `realtimeVoice: true`). Embedded conversations show the voice button only\n * then or when their `realtimeVoice` prop is `true`.\n */\n realtimeVoiceOffered: boolean;\n /**\n * The Chrome extension the deployment offers for people's own Chrome, or\n * null until the config loads or when the server doesn't say (Opengeni Browser).\n */\n browserExtension: { name: string; installUrl: string } | null;\n};\n\nconst INITIAL_FLAGS: ClientConfigFlags = {\n loaded: false,\n uploads: false,\n modelSelection: false,\n sandboxFiles: false,\n defaultReasoningEffort: null,\n artifacts: true,\n sessionCreation: true,\n archive: true,\n voiceInput: null,\n realtimeVoice: false,\n realtimeVoiceOffered: false,\n browserExtension: null,\n};\n\n/** Deployment and session-proxy capabilities from the client config. */\nexport function useClientConfigFlags(\n client: Partial<ClientConfigFlagsSource> | ClientConfigFlagsSource,\n): ClientConfigFlags {\n const [flags, setFlags] = useState<ClientConfigFlags>(INITIAL_FLAGS);\n useEffect(() => {\n // Custom clients without a config read keep the defaults.\n if (typeof client.getClientConfig !== \"function\") return;\n let live = true;\n // One read per client: the chat, its list, the new-chat composer and the\n // conversation all ask, and behind a session proxy each read is a round trip.\n cachedClientConfigRead(client as ClientConfigFlagsSource).then(\n (config) => {\n if (live) {\n setFlags({\n loaded: true,\n uploads: config.fileUploads?.enabled === true,\n // Only an explicit offer shows end users the picker.\n modelSelection: config.modelSelection === true,\n sandboxFiles: config.sandboxFiles !== false,\n defaultReasoningEffort: config.defaultReasoningEffort ?? null,\n artifacts: config.artifacts !== false,\n sessionCreation: config.sessionCreation !== false,\n archive: config.archive !== false,\n voiceInput: config.voiceInput?.available === true ? config.voiceInput : null,\n realtimeVoice: config.realtimeVoice !== false,\n realtimeVoiceOffered: config.realtimeVoice === true,\n browserExtension: config.browserExtension ?? null,\n });\n }\n },\n () => undefined,\n );\n return () => {\n live = false;\n };\n }, [client]);\n return flags;\n}\n"],"mappings":";;;;;;AACA,SAAS,WAAW,gBAAgB;AAuDpC,IAAM,gBAAmC;AAAA,EACvC,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,wBAAwB;AAAA,EACxB,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,sBAAsB;AAAA,EACtB,kBAAkB;AACpB;AAGO,SAAS,qBACd,QACmB;AACnB,QAAM,CAAC,OAAO,QAAQ,IAAI,SAA4B,aAAa;AACnE,YAAU,MAAM;AAEd,QAAI,OAAO,OAAO,oBAAoB,WAAY;AAClD,QAAI,OAAO;AAGX,2BAAuB,MAAiC,EAAE;AAAA,MACxD,CAAC,WAAW;AACV,YAAI,MAAM;AACR,mBAAS;AAAA,YACP,QAAQ;AAAA,YACR,SAAS,OAAO,aAAa,YAAY;AAAA;AAAA,YAEzC,gBAAgB,OAAO,mBAAmB;AAAA,YAC1C,cAAc,OAAO,iBAAiB;AAAA,YACtC,wBAAwB,OAAO,0BAA0B;AAAA,YACzD,WAAW,OAAO,cAAc;AAAA,YAChC,iBAAiB,OAAO,oBAAoB;AAAA,YAC5C,SAAS,OAAO,YAAY;AAAA,YAC5B,YAAY,OAAO,YAAY,cAAc,OAAO,OAAO,aAAa;AAAA,YACxE,eAAe,OAAO,kBAAkB;AAAA,YACxC,sBAAsB,OAAO,kBAAkB;AAAA,YAC/C,kBAAkB,OAAO,oBAAoB;AAAA,UAC/C,CAAC;AAAA,QACH;AAAA,MACF;AAAA,MACA,MAAM;AAAA,IACR;AACA,WAAO,MAAM;AACX,aAAO;AAAA,IACT;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AACX,SAAO;AACT;","names":[]}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
ComposerUsageNotice
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-5Y2FPLZE.js";
|
|
5
5
|
import {
|
|
6
6
|
useAppShotTarget
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-AIEXYO2X.js";
|
|
8
8
|
import {
|
|
9
9
|
MessageContextPills
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-SM5QX6UK.js";
|
|
11
11
|
import {
|
|
12
12
|
useAppContext
|
|
13
13
|
} from "./chunk-W6KAUGXO.js";
|
|
14
14
|
import {
|
|
15
15
|
ChatComposer
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-YXA2EKV3.js";
|
|
17
17
|
import {
|
|
18
18
|
useFileAttachments
|
|
19
19
|
} from "./chunk-I6FIXEL4.js";
|
|
@@ -79,4 +79,4 @@ export {
|
|
|
79
79
|
useDraftAttachments,
|
|
80
80
|
ConsoleComposer
|
|
81
81
|
};
|
|
82
|
-
//# sourceMappingURL=chunk-
|
|
82
|
+
//# sourceMappingURL=chunk-Y5BSA3I7.js.map
|
|
@@ -40,6 +40,26 @@ function artifactReturnSearch(search) {
|
|
|
40
40
|
tab: search.tab === "versions" || search.tab === "conversations" || search.tab === "data" || search.tab === "settings" ? search.tab : void 0
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
|
+
var UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu;
|
|
44
|
+
function siteViewSearch(search) {
|
|
45
|
+
return {
|
|
46
|
+
conversation: typeof search.conversation === "string" && UUID.test(search.conversation) ? search.conversation : void 0
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function workspaceSitePath(workspaceId, siteId, conversation) {
|
|
50
|
+
const path = `${workspacePath(workspaceId)}/sites/${encodeURIComponent(siteId)}`;
|
|
51
|
+
return conversation ? `${path}?conversation=${encodeURIComponent(conversation)}` : path;
|
|
52
|
+
}
|
|
53
|
+
function railRouteSelection(location) {
|
|
54
|
+
const session = /\/sessions\/([^/]+)/u.exec(location.pathname);
|
|
55
|
+
if (session) return { sessionId: session[1] ?? null, siteId: null };
|
|
56
|
+
const site = /^\/workspaces\/[^/]+\/sites\/([^/]+)\/?$/u.exec(location.pathname);
|
|
57
|
+
if (!site || !UUID.test(site[1] ?? "")) return { sessionId: null, siteId: null };
|
|
58
|
+
return {
|
|
59
|
+
sessionId: siteViewSearch(location.search).conversation ?? null,
|
|
60
|
+
siteId: site[1].toLowerCase()
|
|
61
|
+
};
|
|
62
|
+
}
|
|
43
63
|
|
|
44
64
|
export {
|
|
45
65
|
workspacePath,
|
|
@@ -51,6 +71,9 @@ export {
|
|
|
51
71
|
workspaceSettingsPath,
|
|
52
72
|
orgSettingsPath,
|
|
53
73
|
parseCheckoutOutcome,
|
|
54
|
-
artifactReturnSearch
|
|
74
|
+
artifactReturnSearch,
|
|
75
|
+
siteViewSearch,
|
|
76
|
+
workspaceSitePath,
|
|
77
|
+
railRouteSelection
|
|
55
78
|
};
|
|
56
|
-
//# sourceMappingURL=chunk-
|
|
79
|
+
//# sourceMappingURL=chunk-Y5E3XQ2S.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/app/lib/routes.tsx"],"sourcesContent":["// Canonical console paths. Everything is workspace-scoped; there are no\n// legacy unscoped session URLs.\n\nexport function workspacePath(workspaceId: string): string {\n return `/workspaces/${encodeURIComponent(workspaceId)}`;\n}\n\nexport function workspaceSessionsPath(workspaceId: string): string {\n return `${workspacePath(workspaceId)}/sessions`;\n}\n\n/** Back-compat name: the old \"agent\" home is now the sessions index. */\nexport function workspaceAgentPath(workspaceId: string): string {\n return workspaceSessionsPath(workspaceId);\n}\n\nexport function workspaceSessionPath(workspaceId: string, sessionId: string): string {\n return `${workspaceSessionsPath(workspaceId)}/${encodeURIComponent(sessionId)}`;\n}\n\n/** First-class durable workspace memory surface. */\nexport function workspaceMemoryPath(workspaceId: string): string {\n return `${workspacePath(workspaceId)}/memory`;\n}\n\n/** Workspace Insights — usage, spend, live ops (preview surface). */\nexport function workspaceInsightsPath(workspaceId: string): string {\n return `${workspacePath(workspaceId)}/insights`;\n}\n\n/** Workspace settings: workspace name, API keys, environments link, danger zone. */\nexport function workspaceSettingsPath(workspaceId: string): string {\n return `${workspacePath(workspaceId)}/settings`;\n}\n\n/** Organization (formerly \"account\") settings: billing, usage, plan, members. */\nexport function orgSettingsPath(workspaceId: string): string {\n return `${workspacePath(workspaceId)}/organization`;\n}\n\n// Stripe Checkout may return directly to organization billing or through the\n// API's `/billing` fallback. Keep only known outcome values for the balance\n// confirmation; a stray `?checkout=foo` never renders one.\nexport type CheckoutOutcome = \"success\" | \"cancelled\";\n\nexport function parseCheckoutOutcome(search: Record<string, unknown>): CheckoutOutcome | undefined {\n return search.checkout === \"success\" || search.checkout === \"cancelled\"\n ? search.checkout\n : undefined;\n}\n\n/** Full-page artifact return context belongs to route assembly, not the session graph. */\nexport type ArtifactReturnSearch = {\n fromSession?: string | undefined;\n kind?: \"site\" | \"image\" | \"document\" | \"spreadsheet\" | \"presentation\" | \"file\" | undefined;\n q?: string | undefined;\n sort?: \"newest\" | \"title\" | undefined;\n status?: \"archived\" | undefined;\n /**\n * Opened from the Artifacts list: show the artifact's detail page with the\n * list's previous/next controls. Without it (a link from a chat, a\n * notification, a copied or pasted URL) the artifact opens straight in its\n * full view, and leaving the full view shows the detail page.\n */\n browse?: boolean | undefined;\n /**\n * A Site's own sub-page. `publish` is kept for links made before Publish to\n * web moved into the Site's Settings tab, and opens that tab.\n */\n view?: \"publish\" | undefined;\n /** A Site page's tab other than the Site itself. */\n tab?: SiteDetailTab | undefined;\n};\n\nexport type SiteDetailTab = \"versions\" | \"conversations\" | \"data\" | \"settings\";\n\nexport function artifactReturnSearch(search: Record<string, unknown>): ArtifactReturnSearch {\n // Router match search merges validation over raw input. An omitted key would\n // leave an invalid raw fromSession available to useSearch() consumers.\n return {\n fromSession:\n typeof search.fromSession === \"string\" &&\n /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu.test(search.fromSession)\n ? search.fromSession\n : undefined,\n kind:\n search.kind === \"site\" ||\n search.kind === \"image\" ||\n search.kind === \"document\" ||\n search.kind === \"spreadsheet\" ||\n search.kind === \"presentation\" ||\n search.kind === \"file\"\n ? search.kind\n : undefined,\n q: typeof search.q === \"string\" ? search.q.slice(0, 500) || undefined : undefined,\n sort: search.sort === \"newest\" || search.sort === \"title\" ? search.sort : undefined,\n status: search.status === \"archived\" ? \"archived\" : undefined,\n browse: search.browse === true ? true : undefined,\n view: search.view === \"publish\" ? \"publish\" : undefined,\n tab:\n search.tab === \"versions\" ||\n search.tab === \"conversations\" ||\n search.tab === \"data\" ||\n search.tab === \"settings\"\n ? search.tab\n : undefined,\n };\n}\n"],"mappings":";;;AAGO,SAAS,cAAc,aAA6B;AACzD,SAAO,eAAe,mBAAmB,WAAW,CAAC;AACvD;AAEO,SAAS,sBAAsB,aAA6B;AACjE,SAAO,GAAG,cAAc,WAAW,CAAC;AACtC;AAGO,SAAS,mBAAmB,aAA6B;AAC9D,SAAO,sBAAsB,WAAW;AAC1C;AAEO,SAAS,qBAAqB,aAAqB,WAA2B;AACnF,SAAO,GAAG,sBAAsB,WAAW,CAAC,IAAI,mBAAmB,SAAS,CAAC;AAC/E;AAGO,SAAS,oBAAoB,aAA6B;AAC/D,SAAO,GAAG,cAAc,WAAW,CAAC;AACtC;AAGO,SAAS,sBAAsB,aAA6B;AACjE,SAAO,GAAG,cAAc,WAAW,CAAC;AACtC;AAGO,SAAS,sBAAsB,aAA6B;AACjE,SAAO,GAAG,cAAc,WAAW,CAAC;AACtC;AAGO,SAAS,gBAAgB,aAA6B;AAC3D,SAAO,GAAG,cAAc,WAAW,CAAC;AACtC;AAOO,SAAS,qBAAqB,QAA8D;AACjG,SAAO,OAAO,aAAa,aAAa,OAAO,aAAa,cACxD,OAAO,WACP;AACN;AA2BO,SAAS,qBAAqB,QAAuD;AAG1F,SAAO;AAAA,IACL,aACE,OAAO,OAAO,gBAAgB,YAC9B,mEAAmE,KAAK,OAAO,WAAW,IACtF,OAAO,cACP;AAAA,IACN,MACE,OAAO,SAAS,UAChB,OAAO,SAAS,WAChB,OAAO,SAAS,cAChB,OAAO,SAAS,iBAChB,OAAO,SAAS,kBAChB,OAAO,SAAS,SACZ,OAAO,OACP;AAAA,IACN,GAAG,OAAO,OAAO,MAAM,WAAW,OAAO,EAAE,MAAM,GAAG,GAAG,KAAK,SAAY;AAAA,IACxE,MAAM,OAAO,SAAS,YAAY,OAAO,SAAS,UAAU,OAAO,OAAO;AAAA,IAC1E,QAAQ,OAAO,WAAW,aAAa,aAAa;AAAA,IACpD,QAAQ,OAAO,WAAW,OAAO,OAAO;AAAA,IACxC,MAAM,OAAO,SAAS,YAAY,YAAY;AAAA,IAC9C,KACE,OAAO,QAAQ,cACf,OAAO,QAAQ,mBACf,OAAO,QAAQ,UACf,OAAO,QAAQ,aACX,OAAO,MACP;AAAA,EACR;AACF;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/app/lib/routes.tsx"],"sourcesContent":["// Canonical console paths. Everything is workspace-scoped; there are no\n// legacy unscoped session URLs.\n\nexport function workspacePath(workspaceId: string): string {\n return `/workspaces/${encodeURIComponent(workspaceId)}`;\n}\n\nexport function workspaceSessionsPath(workspaceId: string): string {\n return `${workspacePath(workspaceId)}/sessions`;\n}\n\n/** Back-compat name: the old \"agent\" home is now the sessions index. */\nexport function workspaceAgentPath(workspaceId: string): string {\n return workspaceSessionsPath(workspaceId);\n}\n\nexport function workspaceSessionPath(workspaceId: string, sessionId: string): string {\n return `${workspaceSessionsPath(workspaceId)}/${encodeURIComponent(sessionId)}`;\n}\n\n/** First-class durable workspace memory surface. */\nexport function workspaceMemoryPath(workspaceId: string): string {\n return `${workspacePath(workspaceId)}/memory`;\n}\n\n/** Workspace Insights — usage, spend, live ops (preview surface). */\nexport function workspaceInsightsPath(workspaceId: string): string {\n return `${workspacePath(workspaceId)}/insights`;\n}\n\n/** Workspace settings: workspace name, API keys, environments link, danger zone. */\nexport function workspaceSettingsPath(workspaceId: string): string {\n return `${workspacePath(workspaceId)}/settings`;\n}\n\n/** Organization (formerly \"account\") settings: billing, usage, plan, members. */\nexport function orgSettingsPath(workspaceId: string): string {\n return `${workspacePath(workspaceId)}/organization`;\n}\n\n// Stripe Checkout may return directly to organization billing or through the\n// API's `/billing` fallback. Keep only known outcome values for the balance\n// confirmation; a stray `?checkout=foo` never renders one.\nexport type CheckoutOutcome = \"success\" | \"cancelled\";\n\nexport function parseCheckoutOutcome(search: Record<string, unknown>): CheckoutOutcome | undefined {\n return search.checkout === \"success\" || search.checkout === \"cancelled\"\n ? search.checkout\n : undefined;\n}\n\n/** Full-page artifact return context belongs to route assembly, not the session graph. */\nexport type ArtifactReturnSearch = {\n fromSession?: string | undefined;\n kind?: \"site\" | \"image\" | \"document\" | \"spreadsheet\" | \"presentation\" | \"file\" | undefined;\n q?: string | undefined;\n sort?: \"newest\" | \"title\" | undefined;\n status?: \"archived\" | undefined;\n /**\n * Opened from the Artifacts list: show the artifact's detail page with the\n * list's previous/next controls. Without it (a link from a chat, a\n * notification, a copied or pasted URL) the artifact opens straight in its\n * full view, and leaving the full view shows the detail page.\n */\n browse?: boolean | undefined;\n /**\n * A Site's own sub-page. `publish` is kept for links made before Publish to\n * web moved into the Site's Settings tab, and opens that tab.\n */\n view?: \"publish\" | undefined;\n /** A Site page's tab other than the Site itself. */\n tab?: SiteDetailTab | undefined;\n};\n\nexport type SiteDetailTab = \"versions\" | \"conversations\" | \"data\" | \"settings\";\n\nexport function artifactReturnSearch(search: Record<string, unknown>): ArtifactReturnSearch {\n // Router match search merges validation over raw input. An omitted key would\n // leave an invalid raw fromSession available to useSearch() consumers.\n return {\n fromSession:\n typeof search.fromSession === \"string\" &&\n /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu.test(search.fromSession)\n ? search.fromSession\n : undefined,\n kind:\n search.kind === \"site\" ||\n search.kind === \"image\" ||\n search.kind === \"document\" ||\n search.kind === \"spreadsheet\" ||\n search.kind === \"presentation\" ||\n search.kind === \"file\"\n ? search.kind\n : undefined,\n q: typeof search.q === \"string\" ? search.q.slice(0, 500) || undefined : undefined,\n sort: search.sort === \"newest\" || search.sort === \"title\" ? search.sort : undefined,\n status: search.status === \"archived\" ? \"archived\" : undefined,\n browse: search.browse === true ? true : undefined,\n view: search.view === \"publish\" ? \"publish\" : undefined,\n tab:\n search.tab === \"versions\" ||\n search.tab === \"conversations\" ||\n search.tab === \"data\" ||\n search.tab === \"settings\"\n ? search.tab\n : undefined,\n };\n}\n\nconst UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu;\n\n/** The Site view: the Site with its conversations beside it, one of them open. */\nexport type SiteViewSearch = { conversation?: string | undefined };\n\nexport function siteViewSearch(search: Record<string, unknown>): SiteViewSearch {\n return {\n conversation:\n typeof search.conversation === \"string\" && UUID.test(search.conversation)\n ? search.conversation\n : undefined,\n };\n}\n\nexport function workspaceSitePath(\n workspaceId: string,\n siteId: string,\n conversation?: string | undefined,\n): string {\n const path = `${workspacePath(workspaceId)}/sites/${encodeURIComponent(siteId)}`;\n return conversation ? `${path}?conversation=${encodeURIComponent(conversation)}` : path;\n}\n\n/**\n * What the rail marks as open for a location: a session page's session, or a\n * Site view's Site and its selected conversation.\n */\nexport function railRouteSelection(location: {\n pathname: string;\n search: Record<string, unknown>;\n}): { sessionId: string | null; siteId: string | null } {\n const session = /\\/sessions\\/([^/]+)/u.exec(location.pathname);\n if (session) return { sessionId: session[1] ?? null, siteId: null };\n const site = /^\\/workspaces\\/[^/]+\\/sites\\/([^/]+)\\/?$/u.exec(location.pathname);\n // Site ids are UUIDs; anything else (including a malformed escape) is no Site.\n if (!site || !UUID.test(site[1] ?? \"\")) return { sessionId: null, siteId: null };\n return {\n sessionId: siteViewSearch(location.search).conversation ?? null,\n siteId: site[1]!.toLowerCase(),\n };\n}\n"],"mappings":";;;AAGO,SAAS,cAAc,aAA6B;AACzD,SAAO,eAAe,mBAAmB,WAAW,CAAC;AACvD;AAEO,SAAS,sBAAsB,aAA6B;AACjE,SAAO,GAAG,cAAc,WAAW,CAAC;AACtC;AAGO,SAAS,mBAAmB,aAA6B;AAC9D,SAAO,sBAAsB,WAAW;AAC1C;AAEO,SAAS,qBAAqB,aAAqB,WAA2B;AACnF,SAAO,GAAG,sBAAsB,WAAW,CAAC,IAAI,mBAAmB,SAAS,CAAC;AAC/E;AAGO,SAAS,oBAAoB,aAA6B;AAC/D,SAAO,GAAG,cAAc,WAAW,CAAC;AACtC;AAGO,SAAS,sBAAsB,aAA6B;AACjE,SAAO,GAAG,cAAc,WAAW,CAAC;AACtC;AAGO,SAAS,sBAAsB,aAA6B;AACjE,SAAO,GAAG,cAAc,WAAW,CAAC;AACtC;AAGO,SAAS,gBAAgB,aAA6B;AAC3D,SAAO,GAAG,cAAc,WAAW,CAAC;AACtC;AAOO,SAAS,qBAAqB,QAA8D;AACjG,SAAO,OAAO,aAAa,aAAa,OAAO,aAAa,cACxD,OAAO,WACP;AACN;AA2BO,SAAS,qBAAqB,QAAuD;AAG1F,SAAO;AAAA,IACL,aACE,OAAO,OAAO,gBAAgB,YAC9B,mEAAmE,KAAK,OAAO,WAAW,IACtF,OAAO,cACP;AAAA,IACN,MACE,OAAO,SAAS,UAChB,OAAO,SAAS,WAChB,OAAO,SAAS,cAChB,OAAO,SAAS,iBAChB,OAAO,SAAS,kBAChB,OAAO,SAAS,SACZ,OAAO,OACP;AAAA,IACN,GAAG,OAAO,OAAO,MAAM,WAAW,OAAO,EAAE,MAAM,GAAG,GAAG,KAAK,SAAY;AAAA,IACxE,MAAM,OAAO,SAAS,YAAY,OAAO,SAAS,UAAU,OAAO,OAAO;AAAA,IAC1E,QAAQ,OAAO,WAAW,aAAa,aAAa;AAAA,IACpD,QAAQ,OAAO,WAAW,OAAO,OAAO;AAAA,IACxC,MAAM,OAAO,SAAS,YAAY,YAAY;AAAA,IAC9C,KACE,OAAO,QAAQ,cACf,OAAO,QAAQ,mBACf,OAAO,QAAQ,UACf,OAAO,QAAQ,aACX,OAAO,MACP;AAAA,EACR;AACF;AAEA,IAAM,OAAO;AAKN,SAAS,eAAe,QAAiD;AAC9E,SAAO;AAAA,IACL,cACE,OAAO,OAAO,iBAAiB,YAAY,KAAK,KAAK,OAAO,YAAY,IACpE,OAAO,eACP;AAAA,EACR;AACF;AAEO,SAAS,kBACd,aACA,QACA,cACQ;AACR,QAAM,OAAO,GAAG,cAAc,WAAW,CAAC,UAAU,mBAAmB,MAAM,CAAC;AAC9E,SAAO,eAAe,GAAG,IAAI,iBAAiB,mBAAmB,YAAY,CAAC,KAAK;AACrF;AAMO,SAAS,mBAAmB,UAGqB;AACtD,QAAM,UAAU,uBAAuB,KAAK,SAAS,QAAQ;AAC7D,MAAI,QAAS,QAAO,EAAE,WAAW,QAAQ,CAAC,KAAK,MAAM,QAAQ,KAAK;AAClE,QAAM,OAAO,4CAA4C,KAAK,SAAS,QAAQ;AAE/E,MAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE,EAAG,QAAO,EAAE,WAAW,MAAM,QAAQ,KAAK;AAC/E,SAAO;AAAA,IACL,WAAW,eAAe,SAAS,MAAM,EAAE,gBAAgB;AAAA,IAC3D,QAAQ,KAAK,CAAC,EAAG,YAAY;AAAA,EAC/B;AACF;","names":[]}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
ListRow,
|
|
4
|
-
ListRowSkeleton,
|
|
5
|
-
RowList
|
|
6
|
-
} from "./chunk-NWZW2WHN.js";
|
|
7
2
|
import {
|
|
8
3
|
Toolbar,
|
|
9
4
|
ToolbarGroup,
|
|
10
5
|
ToolbarSearch
|
|
11
6
|
} from "./chunk-BBWKPNJB.js";
|
|
12
7
|
import {
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
ListRow,
|
|
9
|
+
ListRowSkeleton,
|
|
10
|
+
RowList
|
|
11
|
+
} from "./chunk-JQCGPTZ6.js";
|
|
15
12
|
import {
|
|
16
|
-
|
|
17
|
-
} from "./chunk-
|
|
13
|
+
sessionStateLabel
|
|
14
|
+
} from "./chunk-CD3MO3IC.js";
|
|
18
15
|
import {
|
|
19
16
|
SegmentedControl
|
|
20
17
|
} from "./chunk-325C2TCI.js";
|
|
18
|
+
import {
|
|
19
|
+
EmptyState
|
|
20
|
+
} from "./chunk-5CIUQX6D.js";
|
|
21
21
|
import {
|
|
22
22
|
LogoTile
|
|
23
23
|
} from "./chunk-FQQEZUSN.js";
|
|
@@ -26,22 +26,22 @@ import {
|
|
|
26
26
|
} from "./chunk-YG6NARQY.js";
|
|
27
27
|
import {
|
|
28
28
|
useNavigate
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-VYKW6TB2.js";
|
|
30
|
+
import {
|
|
31
|
+
useAppContext
|
|
32
|
+
} from "./chunk-W6KAUGXO.js";
|
|
30
33
|
import {
|
|
31
34
|
userErrorText
|
|
32
35
|
} from "./chunk-L4OF77LE.js";
|
|
33
36
|
import {
|
|
34
|
-
|
|
35
|
-
} from "./chunk-
|
|
37
|
+
sessionDisplayTitle
|
|
38
|
+
} from "./chunk-22JFMNMF.js";
|
|
36
39
|
import {
|
|
37
40
|
Notice
|
|
38
41
|
} from "./chunk-WLEDGIVS.js";
|
|
39
42
|
import {
|
|
40
43
|
Button
|
|
41
44
|
} from "./chunk-HMU5IELG.js";
|
|
42
|
-
import {
|
|
43
|
-
sessionDisplayTitle
|
|
44
|
-
} from "./chunk-Z5WMLJKI.js";
|
|
45
45
|
|
|
46
46
|
// src/app/components/artifacts/site-conversations.tsx
|
|
47
47
|
import { useCallback, useEffect, useRef, useState } from "react";
|
|
@@ -248,4 +248,4 @@ export {
|
|
|
248
248
|
SiteConversations,
|
|
249
249
|
SiteConversationsPanel
|
|
250
250
|
};
|
|
251
|
-
//# sourceMappingURL=chunk-
|
|
251
|
+
//# sourceMappingURL=chunk-YEROLKOA.js.map
|