@opengeni/react 6.7.0 → 6.8.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 +9 -9
- package/dist/app/components/Composer.js +20 -20
- package/dist/app/components/agent/agent-capability-picker.js +6 -6
- package/dist/app/components/artifacts/artifact-browse-controls.js +2 -2
- package/dist/app/components/artifacts/artifact-library.js +13 -13
- package/dist/app/components/artifacts/artifact-viewer.js +21 -21
- package/dist/app/components/artifacts/chat-interactive-block.js +14 -14
- package/dist/app/components/artifacts/copy-artifact-link.js +2 -2
- package/dist/app/components/artifacts/file-reach-dialog.js +7 -7
- package/dist/app/components/artifacts/inline-chat-image.js +22 -22
- package/dist/app/components/artifacts/retained-file-preview.js +23 -23
- package/dist/app/components/artifacts/retained-text-preview.js +3 -3
- package/dist/app/components/artifacts/site-actions.d.ts +43 -0
- package/dist/app/components/artifacts/site-actions.js +38 -0
- package/dist/app/components/artifacts/site-audience.js +5 -5
- package/dist/app/components/artifacts/site-conversations.js +13 -13
- package/dist/app/components/artifacts/site-data.js +14 -14
- package/dist/app/components/artifacts/site-publishing-page.js +31 -31
- package/dist/app/components/artifacts/site-publishing.js +25 -25
- package/dist/app/components/artifacts/site-settings.js +30 -30
- package/dist/app/components/artifacts/site-version-menu.js +3 -3
- package/dist/app/components/billing-class-mark.js +3 -3
- package/dist/app/components/bots/bot-launch-strip.js +23 -23
- package/dist/app/components/bots/bot-template-dialog.js +30 -30
- package/dist/app/components/bots/bot-template-shortcuts.js +23 -23
- package/dist/app/components/bots/bot-templates-page.js +37 -37
- package/dist/app/components/capabilities/capability-detail-sheet.js +9 -9
- package/dist/app/components/capabilities/capability-logo-source.js +14 -15
- package/dist/app/components/capabilities/connection-ownership-selector.js +4 -4
- package/dist/app/components/capabilities/connector-tool-permissions.js +4 -4
- package/dist/app/components/capabilities/detail-dialog.js +3 -3
- package/dist/app/components/capabilities/native-connect-setup.js +16 -17
- package/dist/app/components/capabilities/native-connect-setup.js.map +1 -1
- package/dist/app/components/capabilities/own-logins-shared-heads-up.js +3 -3
- package/dist/app/components/capabilities/prepared-mcp-setup-card.js +16 -17
- package/dist/app/components/capabilities/session-capability-card.js +49 -50
- package/dist/app/components/capabilities/session-capability-card.js.map +1 -1
- package/dist/app/components/capabilities/session-chrome-card.js +24 -25
- package/dist/app/components/capabilities/session-custom-mcp-card.js +17 -18
- package/dist/app/components/capabilities/session-github-card.js +17 -18
- package/dist/app/components/capabilities/session-machine-card.js +23 -24
- package/dist/app/components/capabilities/session-personal-github-card.js +15 -16
- package/dist/app/components/capabilities/session-plugin-card.js +9 -10
- package/dist/app/components/capabilities/use-connection-accounts.js +2 -2
- package/dist/app/components/command-menu/chat-status.js +19 -19
- package/dist/app/components/command-menu/chat-switcher.js +35 -35
- package/dist/app/components/command-menu/command-menu.js +42 -42
- package/dist/app/components/command-menu/shortcut-sheet.js +11 -11
- package/dist/app/components/composer-capabilities-menu-body.js +4 -4
- package/dist/app/components/composer-mobile-plus-panel.js +10 -10
- package/dist/app/components/composer-mobile-plus.js +3 -3
- package/dist/app/components/credit-required-gate.js +1 -1
- package/dist/app/components/credit-required-prompt.js +4 -4
- package/dist/app/components/credits/checkout-credits-celebration.js +3 -3
- package/dist/app/components/credits/checkout-return.js +3 -3
- 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/computer-use.js +2 -2
- package/dist/app/components/desktop/this-computer.js +5 -5
- package/dist/app/components/feedback.js +5 -5
- package/dist/app/components/github-app-connect-launcher.js +1 -1
- package/dist/app/components/machines/connect-machine-dialog.js +14 -14
- package/dist/app/components/markdown.js +7 -7
- package/dist/app/components/models/models-ui.js +6 -6
- package/dist/app/components/my-things.js +6 -6
- package/dist/app/components/own-where-it-works.js +5 -5
- package/dist/app/components/personal-resource-attachment-surface.js +4 -4
- package/dist/app/components/pickers.js +5 -5
- package/dist/app/components/rail/channel-create-dialog.js +5 -5
- package/dist/app/components/rail/project-glyph.js +23 -23
- package/dist/app/components/rail/project-profile.js +32 -32
- package/dist/app/components/rail/rail-context.js +1 -1
- package/dist/app/components/rail/rail-sections.js +70 -61
- package/dist/app/components/rail/session-header.js +54 -53
- package/dist/app/components/rail/session-list.js +68 -59
- package/dist/app/components/rail/session-row-content.js +4 -4
- package/dist/app/components/rail/session-row-hover-details.js +18 -18
- package/dist/app/components/rail/session-shell.js +89 -80
- package/dist/app/components/rail/site-session-group-heading.js +29 -12
- package/dist/app/components/session/agent-configuration-panel.js +14 -14
- package/dist/app/components/session/artifact-session-page.js +5 -5
- package/dist/app/components/session/banners.js +9 -9
- package/dist/app/components/session/console-new-conversation.js +43 -44
- package/dist/app/components/session/descendant-requests.js +39 -40
- package/dist/app/components/session/descendant-requests.js.map +1 -1
- package/dist/app/components/session/editable-artifacts-workspace.js +27 -27
- package/dist/app/components/session/failed-session-banner.js +9 -9
- package/dist/app/components/session/failure-recovery-boundary.js +3 -3
- package/dist/app/components/session/human-input-delegation-record.js +2 -2
- package/dist/app/components/session/human-input.js +37 -38
- package/dist/app/components/session/inspector.js +47 -48
- package/dist/app/components/session/inspector.js.map +1 -1
- package/dist/app/components/session/message-actions.js +5 -5
- package/dist/app/components/session/message-resource-attachments.js +13 -13
- package/dist/app/components/session/model-recovery-notice.js +3 -3
- package/dist/app/components/session/new-session-settings-menu.js +6 -6
- package/dist/app/components/session/new-session-setup-strip.js +24 -24
- package/dist/app/components/session/sandbox-recovery-actions.js +5 -5
- package/dist/app/components/session/sandbox-switcher.js +8 -8
- package/dist/app/components/session/sandbox-workspace.js +52 -53
- package/dist/app/components/session/search-markdown-highlight.js +8 -8
- package/dist/app/components/session/search-results-view.js +9 -9
- package/dist/app/components/session/session-admin-access.js +5 -5
- package/dist/app/components/session/session-admission-notice.js +4 -4
- package/dist/app/components/session/session-avatar-picker.js +24 -24
- package/dist/app/components/session/session-avatar.js +22 -22
- package/dist/app/components/session/session-machine-access-notice.js +4 -4
- package/dist/app/components/session/session-profile-dialog.js +29 -29
- package/dist/app/components/session/session-profile-editor.js +30 -30
- package/dist/app/components/session/session-retention.js +3 -3
- package/dist/app/components/session/session-search-dialog.js +11 -11
- package/dist/app/components/session/session-tenancy-control.js +4 -4
- package/dist/app/components/session/session-usage-limit-section.js +4 -4
- package/dist/app/components/session/share-chat-dialog.js +7 -7
- package/dist/app/components/session/subagents.js +12 -12
- package/dist/app/components/session/subscription-account-indicator.js +6 -6
- package/dist/app/components/settings/row-select.js +4 -4
- package/dist/app/components/transcription-settings.js +6 -6
- package/dist/app/components/ui/destructive-confirm.js +7 -7
- package/dist/app/components/usage/usage-entry.js +3 -3
- package/dist/app/components/window-bar.d.ts +3 -1
- package/dist/app/components/window-bar.js +13 -11
- package/dist/app/components/workspace-composer-plus.js +19 -20
- package/dist/app/components/workspace-reach.js +4 -4
- package/dist/app/embed/session-app.js +173 -167
- package/dist/app/lib/actions/actions-provider.js +9 -9
- package/dist/app/lib/agent-capabilities.js +3 -3
- package/dist/app/lib/codex-usage-query.js +2 -2
- package/dist/app/lib/composer-connectors.js +15 -16
- package/dist/app/lib/composer-send-blocking.d.ts +135 -1
- package/dist/app/lib/composer-send-blocking.js +30 -3
- package/dist/app/lib/console-site.js +2 -2
- package/dist/app/lib/console-text.js +2 -2
- package/dist/app/lib/copy-link.d.ts +2 -0
- package/dist/app/lib/events.js +15 -15
- package/dist/app/lib/failed-session-copy.js +4 -4
- package/dist/app/lib/model-access-onboarding.js +3 -3
- package/dist/app/lib/model-access.js +2 -2
- package/dist/app/lib/move-chat-to-machine.js +3 -3
- package/dist/app/lib/session-branch-cache.js +12 -12
- package/dist/app/lib/session-composer-readiness.d.ts +2 -2
- package/dist/app/lib/session-create.js +4 -4
- package/dist/app/lib/session-group-pagination.js +12 -12
- package/dist/app/lib/session-hover-facts.js +17 -17
- package/dist/app/lib/session-model.js +2 -2
- package/dist/app/lib/session-rail.js +9 -9
- package/dist/app/lib/session-rename.js +3 -3
- package/dist/app/lib/sessions-group.js +11 -11
- package/dist/app/lib/site-sidebar-bridge.d.ts +24 -0
- package/dist/app/lib/site-tool-consent-dialog.js +9 -10
- package/dist/app/lib/site-tool-consent-dialog.js.map +1 -1
- package/dist/app/lib/site-tool-consent.js +1 -1
- package/dist/app/lib/turn-failure-analytics.js +5 -5
- package/dist/app/lib/use-follow-up-repositories.js +5 -5
- package/dist/app/lib/use-workspace-machines.js +5 -5
- package/dist/app/lib/use-workspace-model-catalog.js +3 -3
- package/dist/app/lib/use-workspace-rigs.js +2 -2
- package/dist/app/lib/workspace-navigation-preference.js +4 -4
- package/dist/app/lib/workspace-scope-context.js +3 -3
- package/dist/app/routes/artifacts.js +69 -69
- package/dist/app/routes/retained-artifact.js +48 -48
- package/dist/app/routes/session.js +100 -101
- package/dist/app/routes/sessions-index-hydration.js +5 -5
- package/dist/app/routes/sessions-index.js +85 -85
- package/dist/app/routes/site-view.js +177 -85
- package/dist/app/routes/site-view.js.map +1 -1
- package/dist/artifacts-document.js +4 -4
- package/dist/artifacts-presentation.js +4 -4
- package/dist/artifacts-spreadsheet.js +4 -4
- package/dist/artifacts.js +13 -13
- package/dist/automations.js +12 -12
- package/dist/{browser-viewer-TC27OCIP.js → browser-viewer-ZHQDVHZ2.js} +5 -5
- package/dist/{chat-interactive-block-RWPQBHVS.js → chat-interactive-block-VSDD6X3M.js} +5 -5
- package/dist/{chunk-5MOJZORA.js → chunk-2EA4IRIP.js} +34 -3
- package/dist/chunk-2EA4IRIP.js.map +1 -0
- package/dist/{chunk-C43KRXGA.js → chunk-2GCHGWNE.js} +3 -3
- package/dist/{chunk-XLH7QY2R.js → chunk-2J77TWGH.js} +3 -3
- package/dist/{chunk-77WAKEAH.js → chunk-2OXSB2OL.js} +2 -2
- package/dist/{chunk-H3T7IWNA.js → chunk-2VJOSU4H.js} +2 -2
- package/dist/{chunk-N6AACDUW.js → chunk-34NV52R3.js} +4 -4
- package/dist/{chunk-L7YTNTIK.js → chunk-3CDJSKDW.js} +3 -3
- package/dist/{chunk-EWSOC6WF.js → chunk-3DRLCX5V.js} +2 -2
- package/dist/{chunk-JEUPAVYY.js → chunk-3L465FBR.js} +6 -6
- package/dist/{chunk-5NWEKLDZ.js → chunk-3NNAC43A.js} +2 -2
- package/dist/{chunk-EDI6SJ2N.js → chunk-3OK7Y6ES.js} +2 -2
- package/dist/{chunk-AWKES45Y.js → chunk-3PM3M2Q6.js} +2 -2
- package/dist/{chunk-I7XIZRFD.js → chunk-3PZ3LRPV.js} +3 -3
- package/dist/{chunk-AW2MQB37.js → chunk-44JWVYJB.js} +2 -2
- package/dist/{chunk-2M3J7ZWQ.js → chunk-467WDSOK.js} +2 -2
- package/dist/{chunk-UTIAXH52.js → chunk-477DTTMH.js} +3 -3
- package/dist/{chunk-J5F5HPPW.js → chunk-4BWMAGJJ.js} +3 -3
- package/dist/{chunk-YSJEAAOL.js → chunk-4F3AEJI6.js} +4 -4
- package/dist/{chunk-LHPNABDH.js → chunk-4JXPLTWV.js} +2 -2
- package/dist/{chunk-RQKLF42C.js → chunk-4K64EKM7.js} +4 -4
- package/dist/{chunk-NUNZS36W.js → chunk-4O2XWOLZ.js} +3 -3
- package/dist/{chunk-QB2KMIDP.js → chunk-4SJAEPM2.js} +2 -2
- package/dist/{chunk-6JHU2UBS.js → chunk-4Z5X7PLC.js} +3 -3
- package/dist/{chunk-2STUPWEL.js → chunk-54U6ZBEX.js} +3 -3
- package/dist/{chunk-XXSOHN35.js → chunk-5FLYHX5R.js} +2 -2
- package/dist/{chunk-MIYFS2XN.js → chunk-5MHMCE2G.js} +3 -3
- package/dist/{chunk-YWVI6ZMK.js → chunk-5MIBQ4P5.js} +2 -2
- package/dist/chunk-6B73WNLR.js +173 -0
- package/dist/chunk-6B73WNLR.js.map +1 -0
- package/dist/{chunk-5O2FCCHZ.js → chunk-6QK65ZWM.js} +3 -3
- package/dist/{chunk-RPVREAU7.js → chunk-736RUNIA.js} +4 -4
- package/dist/{chunk-2KALVELR.js → chunk-74CBR5YE.js} +3 -3
- package/dist/{chunk-5IE76VCY.js → chunk-752WXSDN.js} +2 -2
- package/dist/{chunk-OPJJSKUK.js → chunk-77B6UCNK.js} +6 -6
- package/dist/{chunk-SEO7TICN.js → chunk-77BHKC43.js} +1 -1
- package/dist/{chunk-ZUA3JMI6.js → chunk-77SYIH6O.js} +2 -2
- package/dist/{chunk-ILDXWY37.js → chunk-7AI4E7PV.js} +2 -2
- package/dist/{chunk-C372BFOV.js → chunk-7NLF35YL.js} +4 -4
- package/dist/{chunk-IFB3WJ36.js → chunk-7YTR3UFO.js} +4 -4
- package/dist/{chunk-BMICEQZQ.js → chunk-7Z76QP64.js} +3 -3
- package/dist/{chunk-YWIFM7D7.js → chunk-AAS7OWV6.js} +3 -3
- package/dist/{chunk-5QAY6K77.js → chunk-AB5IW227.js} +3 -3
- package/dist/{chunk-ZBIXBQNI.js → chunk-ABJZDRW2.js} +2 -2
- package/dist/{chunk-4DVJ6ONS.js → chunk-AH3DGOTK.js} +2 -2
- package/dist/{chunk-HGKTHF2U.js → chunk-AJBDAVX3.js} +8 -8
- package/dist/{chunk-5YKW2K6I.js → chunk-AJDGP2N4.js} +20 -20
- package/dist/{chunk-HD5X76TP.js → chunk-AQQT2FIC.js} +5 -5
- package/dist/chunk-AQQT2FIC.js.map +1 -0
- package/dist/{chunk-SC6RRD2D.js → chunk-ARTEEI2E.js} +11 -2
- package/dist/{chunk-SC6RRD2D.js.map → chunk-ARTEEI2E.js.map} +1 -1
- package/dist/{chunk-IXPTECSC.js → chunk-AVXDIRRW.js} +2 -2
- package/dist/{chunk-QK5EFEUT.js → chunk-BASI553K.js} +4 -4
- package/dist/{chunk-CRU35QQH.js → chunk-BFFNINCC.js} +108 -66
- package/dist/chunk-BFFNINCC.js.map +1 -0
- package/dist/{chunk-Z4FMAFNH.js → chunk-BQYRZIZ7.js} +2 -2
- package/dist/{chunk-DZXEDSQI.js → chunk-CEMSIU4Z.js} +5 -5
- package/dist/{chunk-FZC5N55X.js → chunk-CH4UQ4NO.js} +5 -5
- package/dist/{chunk-7X6SDK2C.js → chunk-CHU3RDV4.js} +3 -3
- package/dist/{chunk-Y4OBB2VN.js → chunk-CV4VVLPZ.js} +2 -2
- package/dist/{chunk-JQL7ZH6C.js → chunk-CXAN2FHF.js} +7 -7
- package/dist/{chunk-F2OPHAUN.js → chunk-CYDXCILL.js} +7 -7
- package/dist/{chunk-3PZ7JZI2.js → chunk-D3PTVN2I.js} +2 -2
- package/dist/{chunk-FPXASDG5.js → chunk-D5TIVCXG.js} +2 -2
- package/dist/{chunk-7W37NS3I.js → chunk-D74Z2N4K.js} +2 -2
- package/dist/{chunk-MNZG4OHU.js → chunk-DCEQCGVN.js} +2 -2
- package/dist/{chunk-ND2BXV3P.js → chunk-DEHLWZSI.js} +4 -4
- package/dist/{chunk-2YUOVM3G.js → chunk-DIP7YALH.js} +2 -2
- package/dist/{chunk-6PZ7OBYU.js → chunk-DLVIRJGK.js} +4 -4
- package/dist/{chunk-KLEUWIMZ.js → chunk-DQPIEQGP.js} +2 -2
- package/dist/{chunk-T2QX3FDP.js → chunk-DWJ6J3YW.js} +4 -4
- package/dist/{chunk-3CPWWGNK.js → chunk-E5KOWRDU.js} +2 -2
- package/dist/{chunk-6WGRDRMA.js → chunk-EBIVTDEG.js} +2 -2
- package/dist/{chunk-KUDGXAF7.js → chunk-EBTUPRRQ.js} +10 -10
- package/dist/{chunk-5CPEEAFD.js → chunk-EDDKPIIV.js} +2 -2
- package/dist/{chunk-TX3VECZU.js → chunk-EGKARC53.js} +2 -2
- package/dist/{chunk-JEA3QDX7.js → chunk-EKJHOWTZ.js} +4 -4
- package/dist/{chunk-UVN5TMHU.js → chunk-ESXAECZ3.js} +2 -2
- package/dist/{chunk-3SOIESJM.js → chunk-EWZ2RLNG.js} +2 -2
- package/dist/{chunk-CMKGILJK.js → chunk-FBA2NXYH.js} +4 -4
- package/dist/{chunk-O6N4ABCA.js → chunk-FER6EVIY.js} +2 -2
- package/dist/{chunk-DF5EAHDN.js → chunk-FLWQJDJ5.js} +5 -5
- package/dist/{chunk-PTAG4PDC.js → chunk-FNXCFIPW.js} +2 -2
- package/dist/chunk-FPSS23S4.js +36 -0
- package/dist/chunk-FPSS23S4.js.map +1 -0
- package/dist/{chunk-BJEJFISW.js → chunk-FSDQQQIA.js} +3 -3
- package/dist/{chunk-PTF5B7TJ.js → chunk-G5UQBTXY.js} +2 -2
- package/dist/{chunk-4E3ZJRTZ.js → chunk-G6ICCGJ3.js} +2 -2
- package/dist/{chunk-NRTE7DNV.js → chunk-GIWFLWXG.js} +4 -4
- package/dist/{chunk-MM4FNWI4.js → chunk-GMHIOYB7.js} +4 -4
- package/dist/{chunk-6DK6Z4UN.js → chunk-GOCODNQS.js} +3 -3
- package/dist/{chunk-TPQTRNER.js → chunk-GSCGKJNK.js} +2 -2
- package/dist/{chunk-7VMZGLYI.js → chunk-GTHCHCWW.js} +3 -3
- package/dist/{chunk-SQJIKMN3.js → chunk-GTRAH4FG.js} +2 -2
- package/dist/{chunk-ZYAZUPPV.js → chunk-GU7T2S5N.js} +3 -3
- package/dist/{chunk-JKHKLL5W.js → chunk-H6BX6WOW.js} +3 -3
- package/dist/{chunk-IMZCQBOT.js → chunk-H6MJFMHZ.js} +3 -3
- package/dist/{chunk-HSOXMJOT.js → chunk-HEGV4QMS.js} +2 -2
- package/dist/chunk-HROITVQJ.js +85 -0
- package/dist/chunk-HROITVQJ.js.map +1 -0
- package/dist/{chunk-OF4TIKYC.js → chunk-HTMQGS63.js} +17 -9
- package/dist/chunk-HTMQGS63.js.map +1 -0
- package/dist/{chunk-NC7PVOEK.js → chunk-HWVPLFIW.js} +2 -2
- package/dist/{chunk-IMDQUHBJ.js → chunk-HYEIA25Y.js} +2 -2
- package/dist/{chunk-ECJBYNLJ.js → chunk-ICAMYP5M.js} +2 -2
- package/dist/{chunk-DJAXC5OK.js → chunk-IFSXVU2S.js} +2 -2
- package/dist/{chunk-I4MRDSUF.js → chunk-IJR6VOLU.js} +3 -3
- package/dist/{chunk-YCVD6CI3.js → chunk-IN3VQFKS.js} +2 -2
- package/dist/{chunk-BJFH6JI5.js → chunk-IZXYFWA4.js} +13 -13
- package/dist/{chunk-MFROMEKA.js → chunk-J2BTILRR.js} +3 -3
- package/dist/{chunk-NCYMNCJO.js → chunk-J2WY42FA.js} +2 -2
- package/dist/{chunk-DGMR6JEJ.js → chunk-J4XSTXZP.js} +2 -2
- package/dist/{chunk-ZTPXACWB.js → chunk-JKL5S7UQ.js} +6 -6
- package/dist/{chunk-P77WNZDY.js → chunk-JMHEFZOB.js} +2 -2
- package/dist/{chunk-IDANQPRH.js → chunk-JV3UI7BH.js} +3 -3
- package/dist/{chunk-NW53H5RW.js → chunk-JV5ULONH.js} +166 -65
- package/dist/chunk-JV5ULONH.js.map +1 -0
- package/dist/{chunk-FVXBNBHO.js → chunk-K3D7IQQP.js} +6 -6
- package/dist/{chunk-XEQMZB3C.js → chunk-K4DQS2ML.js} +24 -6
- package/dist/chunk-K4DQS2ML.js.map +1 -0
- package/dist/{chunk-GKVJIDHF.js → chunk-KFNZZ2N6.js} +2 -2
- package/dist/{chunk-I4QEJ62Y.js → chunk-KI46GKMD.js} +7 -7
- package/dist/{chunk-SIRLACNZ.js → chunk-KO3OHHY2.js} +3 -3
- package/dist/{chunk-NULUNM7H.js → chunk-KUE5BOQE.js} +5 -5
- package/dist/{chunk-O3LKCBP5.js → chunk-LIJNVIT3.js} +3 -3
- package/dist/{chunk-JWB44UGJ.js → chunk-LIJPDVYP.js} +2 -2
- package/dist/{chunk-KYS77RPN.js → chunk-LPKJ77EK.js} +2 -2
- package/dist/{chunk-RMFKVOM7.js → chunk-LQKVNREV.js} +4 -4
- package/dist/{chunk-E7XERZWC.js → chunk-LTJFV2JI.js} +2 -2
- package/dist/{chunk-INXGSG3J.js → chunk-LVDNY5RC.js} +2 -2
- package/dist/{chunk-2INLDVK3.js → chunk-LVELUUK6.js} +2 -2
- package/dist/{chunk-TAT5USZN.js → chunk-M3FDGRB4.js} +3 -3
- package/dist/{chunk-5EWSRZ2Y.js → chunk-M3HGBO2Y.js} +1 -1
- package/dist/{chunk-J3DY5HWQ.js → chunk-M5IQVMLR.js} +4 -4
- package/dist/{chunk-53AGXXZM.js → chunk-MKDFYE2E.js} +2 -2
- package/dist/{chunk-4SAWSRAA.js → chunk-MRECRNVU.js} +5 -5
- package/dist/{chunk-2I7HDP53.js → chunk-MT2R57SF.js} +2 -2
- package/dist/{chunk-Z7Y523PS.js → chunk-MV2CLIO6.js} +6 -6
- package/dist/{chunk-JZ4NLCAP.js → chunk-MZY3VKKM.js} +2 -2
- package/dist/{chunk-YENLNISG.js → chunk-N3FM4BNA.js} +2 -2
- package/dist/{chunk-DZWARC4M.js → chunk-NFCS5WYC.js} +3 -3
- package/dist/{chunk-I5QZJODL.js → chunk-NQ2CPQJF.js} +3 -3
- package/dist/{chunk-6DVCC7QS.js → chunk-OBGOLHCP.js} +164 -43
- package/dist/chunk-OBGOLHCP.js.map +1 -0
- package/dist/{chunk-CUIWCGMA.js → chunk-OCXEY7HE.js} +2 -2
- package/dist/{chunk-VTTAJOQ7.js → chunk-OCXTTKVA.js} +2 -2
- package/dist/{chunk-KRDR5RJD.js → chunk-OGU73VUN.js} +2 -2
- package/dist/{chunk-YIRVLKAX.js → chunk-OI6VI6SU.js} +9 -9
- package/dist/{chunk-BHNSJVBC.js → chunk-OJWDNNW3.js} +5 -5
- package/dist/{chunk-X6KAJI3V.js → chunk-OK7BQMCI.js} +9 -9
- package/dist/{chunk-I5B5L6Q4.js → chunk-OOOSGPJL.js} +1 -1
- package/dist/chunk-OP2GD6QW.js +166 -0
- package/dist/chunk-OP2GD6QW.js.map +1 -0
- package/dist/{chunk-TUIN4MB7.js → chunk-ORV7EFSL.js} +4 -4
- package/dist/{chunk-JDTGRRNU.js → chunk-OSJ366KR.js} +49 -31
- package/dist/chunk-OSJ366KR.js.map +1 -0
- package/dist/{chunk-3IK6UYO6.js → chunk-OTW25A6I.js} +3 -3
- package/dist/{chunk-NPGISCU6.js → chunk-OWET7EY2.js} +16 -16
- package/dist/{chunk-CRAOSVHC.js → chunk-OXQ2SXVC.js} +2 -2
- package/dist/{chunk-3ED2U6XE.js → chunk-OYCK4JRS.js} +2 -2
- package/dist/{chunk-YQXTDZSU.js → chunk-OYOFPNLC.js} +4 -4
- package/dist/{chunk-4NQHXYMW.js → chunk-PD7NWM7V.js} +2 -2
- package/dist/{chunk-4YCA2Y73.js → chunk-PF2WU2IL.js} +3 -3
- package/dist/{chunk-Z654FWNU.js → chunk-PLYVGZIN.js} +2 -2
- package/dist/{chunk-MVW6HNPI.js → chunk-PRT4J2DL.js} +2 -2
- package/dist/{chunk-TXLIEOJX.js → chunk-PSM3CU7N.js} +111 -80
- package/dist/chunk-PSM3CU7N.js.map +1 -0
- package/dist/{chunk-OPWCMA4D.js → chunk-PUUEI4W3.js} +6 -6
- package/dist/{chunk-RLBKLAEY.js → chunk-PVB4YVDP.js} +2 -2
- package/dist/{chunk-NXCMHIKI.js → chunk-PWUSSSSL.js} +2 -2
- package/dist/{chunk-MJUCFQMS.js → chunk-PYB4BFEC.js} +3 -3
- package/dist/{chunk-2FSBSCZJ.js → chunk-PZKHST7A.js} +2 -2
- package/dist/{chunk-QZAAUQRN.js → chunk-Q5EZNBPI.js} +3 -3
- package/dist/{chunk-ZHDFQITM.js → chunk-Q5K2J5GG.js} +2 -2
- package/dist/{chunk-7T2ZE3VT.js → chunk-QPQ7R77C.js} +8 -1
- package/dist/chunk-QPQ7R77C.js.map +1 -0
- package/dist/{chunk-6BCXNDEI.js → chunk-QQIZMVAJ.js} +74 -60
- package/dist/chunk-QQIZMVAJ.js.map +1 -0
- package/dist/{chunk-OV6QJRT4.js → chunk-QRECBCJM.js} +2 -2
- package/dist/{chunk-3GZA4BUW.js → chunk-QURYQFDN.js} +2 -2
- package/dist/{chunk-VS7AHPCZ.js → chunk-R33SBMB7.js} +3 -3
- package/dist/{chunk-KCBMFSMS.js → chunk-R4JA5JFI.js} +3 -3
- package/dist/{chunk-HC4JFZVU.js → chunk-R5QAL43H.js} +2 -2
- package/dist/{chunk-QPSGCC5D.js → chunk-RGR57NYY.js} +2 -2
- package/dist/{chunk-XWFAMUZQ.js → chunk-RHXYO4H2.js} +2 -2
- package/dist/{chunk-Y4BB2KS2.js → chunk-RISUROBM.js} +7 -7
- package/dist/{chunk-U3DN4HEY.js → chunk-RMCLFSMX.js} +2 -2
- package/dist/{chunk-YK7756IF.js → chunk-RTZANSSC.js} +3 -3
- package/dist/{chunk-ZEG4VPBL.js → chunk-S27VZ5DO.js} +6 -6
- package/dist/{chunk-54YW6SZZ.js → chunk-SBXSKRFA.js} +3 -3
- package/dist/{chunk-HAX4LCR5.js → chunk-SFIXTOOJ.js} +3 -3
- package/dist/{chunk-QIOQ2NPQ.js → chunk-SGH7I7OY.js} +2 -2
- package/dist/{chunk-K2A5PXQ5.js → chunk-SJYTQLN3.js} +3 -3
- package/dist/{chunk-2Z3NQNTM.js → chunk-SK5S2PCK.js} +15 -15
- package/dist/{chunk-X3MWB2QU.js → chunk-SN2WENRP.js} +3 -3
- package/dist/{chunk-OSY5K7L7.js → chunk-SP44O3OU.js} +2 -2
- package/dist/{chunk-OZCBM3UC.js → chunk-SSR4ZX52.js} +2 -2
- package/dist/{chunk-QCSJ4CWE.js → chunk-SXGJL7UT.js} +14 -14
- package/dist/{chunk-NC55IFN3.js → chunk-T67LTMSW.js} +10 -10
- package/dist/{chunk-AXHZYXUV.js → chunk-TDTD66BK.js} +2 -2
- package/dist/{chunk-NGJJJPZZ.js → chunk-TK5FWVZR.js} +3 -3
- package/dist/{chunk-YPWU5KPE.js → chunk-TKQL7EDB.js} +56 -19
- package/dist/chunk-TKQL7EDB.js.map +1 -0
- package/dist/{chunk-2OP6WLGV.js → chunk-TNSJFZ6Q.js} +4 -4
- package/dist/{chunk-O732GAFC.js → chunk-U4LTPFD2.js} +2 -2
- package/dist/{chunk-4DVNUCRR.js → chunk-U5UGM5XD.js} +6 -6
- package/dist/{chunk-UJK53QFL.js → chunk-UBRQ3PQD.js} +2 -2
- package/dist/{chunk-SODC7T6L.js → chunk-UMX6DZME.js} +2 -2
- package/dist/{chunk-YLS6QE5G.js → chunk-UO35OEOX.js} +4 -4
- package/dist/{chunk-SHHJCL7X.js → chunk-UTRNLNCW.js} +3 -3
- package/dist/{chunk-HEFPPMBQ.js → chunk-UU5FBVRX.js} +2 -2
- package/dist/{chunk-GQXZPKK7.js → chunk-V6UOVHW3.js} +2 -2
- package/dist/{chunk-GVN5SZLX.js → chunk-VATYK3JQ.js} +3 -3
- package/dist/{chunk-7TIX2UAR.js → chunk-VCJQQYRE.js} +4 -4
- package/dist/{chunk-6WD2INST.js → chunk-WDASYY4S.js} +7 -7
- package/dist/{chunk-DXBYWSL5.js → chunk-WIFDNUKD.js} +3 -3
- package/dist/{chunk-RT7CJMER.js → chunk-WIXHUBQN.js} +2 -2
- package/dist/{chunk-57AZS3IE.js → chunk-WRMUXZ7C.js} +3 -3
- package/dist/{chunk-2CLNIEK4.js → chunk-WTSQUCHB.js} +3 -3
- package/dist/{chunk-OVKYVZMW.js → chunk-WXF2RTS4.js} +2 -2
- package/dist/{chunk-MIHN76LX.js → chunk-WYGTAQMX.js} +3 -3
- package/dist/{chunk-2RG7NIAS.js → chunk-X2QJXDE4.js} +10 -10
- package/dist/{chunk-GAVYGBFI.js → chunk-XMBOLFFS.js} +2 -2
- package/dist/{chunk-T7OXJZCX.js → chunk-XOIDUM2H.js} +1 -1
- package/dist/{chunk-ORJPS5VN.js → chunk-XUOYNJPB.js} +97 -37
- package/dist/chunk-XUOYNJPB.js.map +1 -0
- package/dist/{chunk-XHIQ5I6N.js → chunk-XVLEBB4Y.js} +2 -2
- package/dist/{chunk-Q3DPEYX4.js → chunk-XZCCEKPW.js} +7 -7
- package/dist/{chunk-T3OWFVMS.js → chunk-Y3XZEKDQ.js} +2 -2
- package/dist/{chunk-KODELWYT.js → chunk-YJSCLGAW.js} +3 -3
- package/dist/{chunk-ROKQU7WG.js → chunk-YMI27QPF.js} +2 -2
- package/dist/{chunk-U7XM7CB4.js → chunk-YNTLWCF4.js} +4 -4
- package/dist/{chunk-ZQCND77P.js → chunk-YRYF76OE.js} +2 -2
- package/dist/{chunk-2BDT3UZQ.js → chunk-ZAX4XQLN.js} +3 -3
- package/dist/{chunk-DXR5PDFP.js → chunk-ZBHGNE2J.js} +3 -3
- package/dist/{chunk-I7ITSXSJ.js → chunk-ZR5EKJT6.js} +2 -2
- package/dist/{chunk-IZXHMZQ6.js → chunk-ZW5YTIH3.js} +4 -4
- package/dist/components/artifacts/artifact-sandbox.d.ts +6 -1
- package/dist/components/artifacts/site-view.d.ts +4 -2
- package/dist/components/timeline-anchor.d.ts +8 -3
- package/dist/components/timeline-reading-progress.d.ts +1 -1
- package/dist/components/timeline-settlement.d.ts +1 -1
- package/dist/composer-messages.js +2 -2
- package/dist/composer.js +10 -10
- package/dist/{computer-viewer-TDDO25AV.js → computer-viewer-5LKRCEVQ.js} +5 -5
- package/dist/connect.js +13 -14
- package/dist/desktop-dictation.js +7 -7
- package/dist/desktop.js +2 -2
- package/dist/editor.js +2 -2
- package/dist/{embedded-new-voice-2G3VLPVQ.js → embedded-new-voice-GHJRY3YL.js} +5 -5
- package/dist/{embedded-voice-T5IWOWGD.js → embedded-voice-ASQXBSTX.js} +5 -5
- package/dist/{fleet-decision-row-WM64KXP3.js → fleet-decision-row-U7LDVBEM.js} +2 -2
- package/dist/in-chat-connect-model.js +5 -5
- package/dist/index.js +62 -63
- package/dist/interaction.js +6 -6
- package/dist/{latest-question-OX56OVQ5.js → latest-question-RNVF262Q.js} +5 -5
- package/dist/lib/format.d.ts +10 -0
- package/dist/machines.js +4 -4
- package/dist/meetings-recorder.js +1 -1
- package/dist/meetings.js +24 -24
- package/dist/messages/en.d.ts +7 -0
- package/dist/messages.js +1 -1
- package/dist/{model-policy-picker-menu-SMC6J6QN.js → model-policy-picker-menu-E6XKMFTA.js} +4 -4
- package/dist/{payment-page-card-G4U63KUV.js → payment-page-card-DJDKV2LW.js} +6 -5
- package/dist/{payment-page-card-G4U63KUV.js.map → payment-page-card-DJDKV2LW.js.map} +1 -1
- package/dist/{platform-activity-row-BUZGZAKZ.js → platform-activity-row-MSDCSMET.js} +17 -7
- package/dist/platform-activity-row-MSDCSMET.js.map +1 -0
- package/dist/{queue-surface-implementation-4KUZ4PJV.js → queue-surface-implementation-GUAIG6TK.js} +5 -5
- package/dist/realtime.js +4 -4
- package/dist/{recorder-host-WF2RRR56.js → recorder-host-2MYDJPQW.js} +4 -4
- package/dist/recordings.js +3 -3
- package/dist/{sandbox-files-ESDMOFSD.js → sandbox-files-W5W2LW4K.js} +6 -6
- package/dist/session-app.js +173 -167
- package/dist/{session-connect-cards-Q53KMMYY.js → session-connect-cards-HPH7JOZP.js} +9 -10
- package/dist/session-list-model.js +2 -2
- package/dist/{session-realtime-CF3I35WJ.js → session-realtime-SDTKFFIR.js} +3 -3
- package/dist/session-realtime-SDTKFFIR.js.map +1 -0
- package/dist/session-realtime.js +2 -2
- package/dist/session-ui.js +37 -38
- package/dist/session.js +9 -9
- package/dist/sites.js +2 -2
- package/dist/terminal.js +2 -2
- package/dist/this-computer.js +3 -3
- package/dist/timeline/shared.d.ts +2 -0
- package/dist/{timeline-annotation-markers-CJK4RYZ4.js → timeline-annotation-markers-FNILLWNU.js} +2 -2
- package/dist/{timeline-annotation-selection-67GF5H26.js → timeline-annotation-selection-MBCIDO2Q.js} +2 -2
- package/dist/{timeline-annotations-dialog-ONJPQDJQ.js → timeline-annotations-dialog-JPNKLOTE.js} +3 -3
- package/dist/timeline-model.js +6 -6
- package/dist/ui/access-list.js +6 -6
- package/dist/ui/cadence-picker.js +4 -4
- package/dist/ui/choice-cards.js +3 -3
- package/dist/ui/confirm-dialog.js +4 -4
- package/dist/ui/copy-field.js +3 -3
- package/dist/ui/detail-page.js +5 -5
- package/dist/ui/detail-sheet.js +4 -4
- package/dist/ui/dialog.js +2 -2
- package/dist/ui/disclosure.js +5 -5
- package/dist/ui/email-chips-input.js +3 -3
- package/dist/ui/field.js +2 -2
- package/dist/ui/flush-form-page.js +4 -4
- package/dist/ui/form-dialog.js +3 -3
- package/dist/ui/list-row.js +3 -3
- package/dist/ui/page-header.js +2 -2
- package/dist/ui/relative-time.js +2 -2
- package/dist/ui/revision-history.js +4 -4
- package/dist/ui/role-select.js +6 -6
- package/dist/ui/select-menu.js +3 -3
- package/dist/ui/sheet.js +2 -2
- package/dist/ui/usage-meter.js +3 -3
- package/dist/ui/window-bar-title.d.ts +7 -3
- package/dist/ui/window-bar-title.js +1 -1
- package/dist/usage.js +2 -2
- package/dist/workbench.js +4 -4
- package/package.json +4 -4
- package/src/app/components/artifacts/site-actions.tsx +105 -0
- package/src/app/components/rail/session-header-copy.test.tsx +172 -0
- package/src/app/components/rail/session-header.tsx +68 -12
- package/src/app/components/rail/session-list.tsx +20 -0
- package/src/app/components/rail/site-session-group-heading.test.tsx +210 -0
- package/src/app/components/rail/site-session-group-heading.tsx +119 -60
- package/src/app/components/session/failed-session-actions.test.tsx +4 -0
- package/src/app/components/window-bar.tsx +63 -15
- package/src/app/lib/composer-send-blocking.tsx +312 -1
- package/src/app/lib/copy-link.ts +10 -0
- package/src/app/lib/session-composer-readiness.ts +4 -3
- package/src/app/lib/site-sidebar-bridge.test.tsx +67 -0
- package/src/app/lib/site-sidebar-bridge.ts +57 -0
- package/src/app/routes/session.tsx +45 -12
- package/src/app/routes/sessions-index.tsx +164 -105
- package/src/app/routes/site-view.test.tsx +74 -6
- package/src/app/routes/site-view.tsx +135 -14
- package/src/components/approval-surface.tsx +78 -3
- package/src/components/artifacts/artifact-sandbox.tsx +27 -2
- package/src/components/artifacts/site-view.tsx +13 -1
- package/src/components/message-timeline.tsx +25 -52
- package/src/components/session-capability-frame.tsx +2 -30
- package/src/components/timeline-anchor.tsx +19 -14
- package/src/components/timeline-reading-progress.ts +1 -2
- package/src/components/timeline-settlement.ts +3 -3
- package/src/lib/format.ts +46 -1
- package/src/messages/en.ts +11 -0
- package/src/timeline/platform-activity-row.tsx +20 -8
- package/src/timeline/shared.tsx +203 -32
- package/src/ui/window-bar-title.test.tsx +37 -0
- package/src/ui/window-bar-title.tsx +13 -6
- package/styles/compiled.css +5 -0
- package/dist/chunk-5MOJZORA.js.map +0 -1
- package/dist/chunk-6BCXNDEI.js.map +0 -1
- package/dist/chunk-6DVCC7QS.js.map +0 -1
- package/dist/chunk-7T2ZE3VT.js.map +0 -1
- package/dist/chunk-AFRGP2VP.js +0 -17
- package/dist/chunk-AFRGP2VP.js.map +0 -1
- package/dist/chunk-CRU35QQH.js.map +0 -1
- package/dist/chunk-FO4LYKJL.js +0 -197
- package/dist/chunk-FO4LYKJL.js.map +0 -1
- package/dist/chunk-HD5X76TP.js.map +0 -1
- package/dist/chunk-JDTGRRNU.js.map +0 -1
- package/dist/chunk-NW53H5RW.js.map +0 -1
- package/dist/chunk-OF4TIKYC.js.map +0 -1
- package/dist/chunk-ORJPS5VN.js.map +0 -1
- package/dist/chunk-TXLIEOJX.js.map +0 -1
- package/dist/chunk-VBUVBHFJ.js +0 -16
- package/dist/chunk-VBUVBHFJ.js.map +0 -1
- package/dist/chunk-XEQMZB3C.js.map +0 -1
- package/dist/chunk-YPWU5KPE.js.map +0 -1
- package/dist/components/timeline-answer-follow.d.ts +0 -8
- package/dist/platform-activity-row-BUZGZAKZ.js.map +0 -1
- package/src/components/timeline-answer-follow.ts +0 -15
- /package/dist/{browser-viewer-TC27OCIP.js.map → app/components/artifacts/site-actions.js.map} +0 -0
- /package/dist/{chat-interactive-block-RWPQBHVS.js.map → browser-viewer-ZHQDVHZ2.js.map} +0 -0
- /package/dist/{computer-viewer-TDDO25AV.js.map → chat-interactive-block-VSDD6X3M.js.map} +0 -0
- /package/dist/{chunk-C43KRXGA.js.map → chunk-2GCHGWNE.js.map} +0 -0
- /package/dist/{chunk-XLH7QY2R.js.map → chunk-2J77TWGH.js.map} +0 -0
- /package/dist/{chunk-77WAKEAH.js.map → chunk-2OXSB2OL.js.map} +0 -0
- /package/dist/{chunk-H3T7IWNA.js.map → chunk-2VJOSU4H.js.map} +0 -0
- /package/dist/{chunk-N6AACDUW.js.map → chunk-34NV52R3.js.map} +0 -0
- /package/dist/{chunk-L7YTNTIK.js.map → chunk-3CDJSKDW.js.map} +0 -0
- /package/dist/{chunk-EWSOC6WF.js.map → chunk-3DRLCX5V.js.map} +0 -0
- /package/dist/{chunk-JEUPAVYY.js.map → chunk-3L465FBR.js.map} +0 -0
- /package/dist/{chunk-5NWEKLDZ.js.map → chunk-3NNAC43A.js.map} +0 -0
- /package/dist/{chunk-EDI6SJ2N.js.map → chunk-3OK7Y6ES.js.map} +0 -0
- /package/dist/{chunk-AWKES45Y.js.map → chunk-3PM3M2Q6.js.map} +0 -0
- /package/dist/{chunk-I7XIZRFD.js.map → chunk-3PZ3LRPV.js.map} +0 -0
- /package/dist/{chunk-AW2MQB37.js.map → chunk-44JWVYJB.js.map} +0 -0
- /package/dist/{chunk-2M3J7ZWQ.js.map → chunk-467WDSOK.js.map} +0 -0
- /package/dist/{chunk-UTIAXH52.js.map → chunk-477DTTMH.js.map} +0 -0
- /package/dist/{chunk-J5F5HPPW.js.map → chunk-4BWMAGJJ.js.map} +0 -0
- /package/dist/{chunk-YSJEAAOL.js.map → chunk-4F3AEJI6.js.map} +0 -0
- /package/dist/{chunk-LHPNABDH.js.map → chunk-4JXPLTWV.js.map} +0 -0
- /package/dist/{chunk-RQKLF42C.js.map → chunk-4K64EKM7.js.map} +0 -0
- /package/dist/{chunk-NUNZS36W.js.map → chunk-4O2XWOLZ.js.map} +0 -0
- /package/dist/{chunk-QB2KMIDP.js.map → chunk-4SJAEPM2.js.map} +0 -0
- /package/dist/{chunk-6JHU2UBS.js.map → chunk-4Z5X7PLC.js.map} +0 -0
- /package/dist/{chunk-2STUPWEL.js.map → chunk-54U6ZBEX.js.map} +0 -0
- /package/dist/{chunk-XXSOHN35.js.map → chunk-5FLYHX5R.js.map} +0 -0
- /package/dist/{chunk-MIYFS2XN.js.map → chunk-5MHMCE2G.js.map} +0 -0
- /package/dist/{chunk-YWVI6ZMK.js.map → chunk-5MIBQ4P5.js.map} +0 -0
- /package/dist/{chunk-5O2FCCHZ.js.map → chunk-6QK65ZWM.js.map} +0 -0
- /package/dist/{chunk-RPVREAU7.js.map → chunk-736RUNIA.js.map} +0 -0
- /package/dist/{chunk-2KALVELR.js.map → chunk-74CBR5YE.js.map} +0 -0
- /package/dist/{chunk-5IE76VCY.js.map → chunk-752WXSDN.js.map} +0 -0
- /package/dist/{chunk-OPJJSKUK.js.map → chunk-77B6UCNK.js.map} +0 -0
- /package/dist/{chunk-SEO7TICN.js.map → chunk-77BHKC43.js.map} +0 -0
- /package/dist/{chunk-ZUA3JMI6.js.map → chunk-77SYIH6O.js.map} +0 -0
- /package/dist/{chunk-ILDXWY37.js.map → chunk-7AI4E7PV.js.map} +0 -0
- /package/dist/{chunk-C372BFOV.js.map → chunk-7NLF35YL.js.map} +0 -0
- /package/dist/{chunk-IFB3WJ36.js.map → chunk-7YTR3UFO.js.map} +0 -0
- /package/dist/{chunk-BMICEQZQ.js.map → chunk-7Z76QP64.js.map} +0 -0
- /package/dist/{chunk-YWIFM7D7.js.map → chunk-AAS7OWV6.js.map} +0 -0
- /package/dist/{chunk-5QAY6K77.js.map → chunk-AB5IW227.js.map} +0 -0
- /package/dist/{chunk-ZBIXBQNI.js.map → chunk-ABJZDRW2.js.map} +0 -0
- /package/dist/{chunk-4DVJ6ONS.js.map → chunk-AH3DGOTK.js.map} +0 -0
- /package/dist/{chunk-HGKTHF2U.js.map → chunk-AJBDAVX3.js.map} +0 -0
- /package/dist/{chunk-5YKW2K6I.js.map → chunk-AJDGP2N4.js.map} +0 -0
- /package/dist/{chunk-IXPTECSC.js.map → chunk-AVXDIRRW.js.map} +0 -0
- /package/dist/{chunk-QK5EFEUT.js.map → chunk-BASI553K.js.map} +0 -0
- /package/dist/{chunk-Z4FMAFNH.js.map → chunk-BQYRZIZ7.js.map} +0 -0
- /package/dist/{chunk-DZXEDSQI.js.map → chunk-CEMSIU4Z.js.map} +0 -0
- /package/dist/{chunk-FZC5N55X.js.map → chunk-CH4UQ4NO.js.map} +0 -0
- /package/dist/{chunk-7X6SDK2C.js.map → chunk-CHU3RDV4.js.map} +0 -0
- /package/dist/{chunk-Y4OBB2VN.js.map → chunk-CV4VVLPZ.js.map} +0 -0
- /package/dist/{chunk-JQL7ZH6C.js.map → chunk-CXAN2FHF.js.map} +0 -0
- /package/dist/{chunk-F2OPHAUN.js.map → chunk-CYDXCILL.js.map} +0 -0
- /package/dist/{chunk-3PZ7JZI2.js.map → chunk-D3PTVN2I.js.map} +0 -0
- /package/dist/{chunk-FPXASDG5.js.map → chunk-D5TIVCXG.js.map} +0 -0
- /package/dist/{chunk-7W37NS3I.js.map → chunk-D74Z2N4K.js.map} +0 -0
- /package/dist/{chunk-MNZG4OHU.js.map → chunk-DCEQCGVN.js.map} +0 -0
- /package/dist/{chunk-ND2BXV3P.js.map → chunk-DEHLWZSI.js.map} +0 -0
- /package/dist/{chunk-2YUOVM3G.js.map → chunk-DIP7YALH.js.map} +0 -0
- /package/dist/{chunk-6PZ7OBYU.js.map → chunk-DLVIRJGK.js.map} +0 -0
- /package/dist/{chunk-KLEUWIMZ.js.map → chunk-DQPIEQGP.js.map} +0 -0
- /package/dist/{chunk-T2QX3FDP.js.map → chunk-DWJ6J3YW.js.map} +0 -0
- /package/dist/{chunk-3CPWWGNK.js.map → chunk-E5KOWRDU.js.map} +0 -0
- /package/dist/{chunk-6WGRDRMA.js.map → chunk-EBIVTDEG.js.map} +0 -0
- /package/dist/{chunk-KUDGXAF7.js.map → chunk-EBTUPRRQ.js.map} +0 -0
- /package/dist/{chunk-5CPEEAFD.js.map → chunk-EDDKPIIV.js.map} +0 -0
- /package/dist/{chunk-TX3VECZU.js.map → chunk-EGKARC53.js.map} +0 -0
- /package/dist/{chunk-JEA3QDX7.js.map → chunk-EKJHOWTZ.js.map} +0 -0
- /package/dist/{chunk-UVN5TMHU.js.map → chunk-ESXAECZ3.js.map} +0 -0
- /package/dist/{chunk-3SOIESJM.js.map → chunk-EWZ2RLNG.js.map} +0 -0
- /package/dist/{chunk-CMKGILJK.js.map → chunk-FBA2NXYH.js.map} +0 -0
- /package/dist/{chunk-O6N4ABCA.js.map → chunk-FER6EVIY.js.map} +0 -0
- /package/dist/{chunk-DF5EAHDN.js.map → chunk-FLWQJDJ5.js.map} +0 -0
- /package/dist/{chunk-PTAG4PDC.js.map → chunk-FNXCFIPW.js.map} +0 -0
- /package/dist/{chunk-BJEJFISW.js.map → chunk-FSDQQQIA.js.map} +0 -0
- /package/dist/{chunk-PTF5B7TJ.js.map → chunk-G5UQBTXY.js.map} +0 -0
- /package/dist/{chunk-4E3ZJRTZ.js.map → chunk-G6ICCGJ3.js.map} +0 -0
- /package/dist/{chunk-NRTE7DNV.js.map → chunk-GIWFLWXG.js.map} +0 -0
- /package/dist/{chunk-MM4FNWI4.js.map → chunk-GMHIOYB7.js.map} +0 -0
- /package/dist/{chunk-6DK6Z4UN.js.map → chunk-GOCODNQS.js.map} +0 -0
- /package/dist/{chunk-TPQTRNER.js.map → chunk-GSCGKJNK.js.map} +0 -0
- /package/dist/{chunk-7VMZGLYI.js.map → chunk-GTHCHCWW.js.map} +0 -0
- /package/dist/{chunk-SQJIKMN3.js.map → chunk-GTRAH4FG.js.map} +0 -0
- /package/dist/{chunk-ZYAZUPPV.js.map → chunk-GU7T2S5N.js.map} +0 -0
- /package/dist/{chunk-JKHKLL5W.js.map → chunk-H6BX6WOW.js.map} +0 -0
- /package/dist/{chunk-IMZCQBOT.js.map → chunk-H6MJFMHZ.js.map} +0 -0
- /package/dist/{chunk-HSOXMJOT.js.map → chunk-HEGV4QMS.js.map} +0 -0
- /package/dist/{chunk-NC7PVOEK.js.map → chunk-HWVPLFIW.js.map} +0 -0
- /package/dist/{chunk-IMDQUHBJ.js.map → chunk-HYEIA25Y.js.map} +0 -0
- /package/dist/{chunk-ECJBYNLJ.js.map → chunk-ICAMYP5M.js.map} +0 -0
- /package/dist/{chunk-DJAXC5OK.js.map → chunk-IFSXVU2S.js.map} +0 -0
- /package/dist/{chunk-I4MRDSUF.js.map → chunk-IJR6VOLU.js.map} +0 -0
- /package/dist/{chunk-YCVD6CI3.js.map → chunk-IN3VQFKS.js.map} +0 -0
- /package/dist/{chunk-BJFH6JI5.js.map → chunk-IZXYFWA4.js.map} +0 -0
- /package/dist/{chunk-MFROMEKA.js.map → chunk-J2BTILRR.js.map} +0 -0
- /package/dist/{chunk-NCYMNCJO.js.map → chunk-J2WY42FA.js.map} +0 -0
- /package/dist/{chunk-DGMR6JEJ.js.map → chunk-J4XSTXZP.js.map} +0 -0
- /package/dist/{chunk-ZTPXACWB.js.map → chunk-JKL5S7UQ.js.map} +0 -0
- /package/dist/{chunk-P77WNZDY.js.map → chunk-JMHEFZOB.js.map} +0 -0
- /package/dist/{chunk-IDANQPRH.js.map → chunk-JV3UI7BH.js.map} +0 -0
- /package/dist/{chunk-FVXBNBHO.js.map → chunk-K3D7IQQP.js.map} +0 -0
- /package/dist/{chunk-GKVJIDHF.js.map → chunk-KFNZZ2N6.js.map} +0 -0
- /package/dist/{chunk-I4QEJ62Y.js.map → chunk-KI46GKMD.js.map} +0 -0
- /package/dist/{chunk-SIRLACNZ.js.map → chunk-KO3OHHY2.js.map} +0 -0
- /package/dist/{chunk-NULUNM7H.js.map → chunk-KUE5BOQE.js.map} +0 -0
- /package/dist/{chunk-O3LKCBP5.js.map → chunk-LIJNVIT3.js.map} +0 -0
- /package/dist/{chunk-JWB44UGJ.js.map → chunk-LIJPDVYP.js.map} +0 -0
- /package/dist/{chunk-KYS77RPN.js.map → chunk-LPKJ77EK.js.map} +0 -0
- /package/dist/{chunk-RMFKVOM7.js.map → chunk-LQKVNREV.js.map} +0 -0
- /package/dist/{chunk-E7XERZWC.js.map → chunk-LTJFV2JI.js.map} +0 -0
- /package/dist/{chunk-INXGSG3J.js.map → chunk-LVDNY5RC.js.map} +0 -0
- /package/dist/{chunk-2INLDVK3.js.map → chunk-LVELUUK6.js.map} +0 -0
- /package/dist/{chunk-TAT5USZN.js.map → chunk-M3FDGRB4.js.map} +0 -0
- /package/dist/{chunk-5EWSRZ2Y.js.map → chunk-M3HGBO2Y.js.map} +0 -0
- /package/dist/{chunk-J3DY5HWQ.js.map → chunk-M5IQVMLR.js.map} +0 -0
- /package/dist/{chunk-53AGXXZM.js.map → chunk-MKDFYE2E.js.map} +0 -0
- /package/dist/{chunk-4SAWSRAA.js.map → chunk-MRECRNVU.js.map} +0 -0
- /package/dist/{chunk-2I7HDP53.js.map → chunk-MT2R57SF.js.map} +0 -0
- /package/dist/{chunk-Z7Y523PS.js.map → chunk-MV2CLIO6.js.map} +0 -0
- /package/dist/{chunk-JZ4NLCAP.js.map → chunk-MZY3VKKM.js.map} +0 -0
- /package/dist/{chunk-YENLNISG.js.map → chunk-N3FM4BNA.js.map} +0 -0
- /package/dist/{chunk-DZWARC4M.js.map → chunk-NFCS5WYC.js.map} +0 -0
- /package/dist/{chunk-I5QZJODL.js.map → chunk-NQ2CPQJF.js.map} +0 -0
- /package/dist/{chunk-CUIWCGMA.js.map → chunk-OCXEY7HE.js.map} +0 -0
- /package/dist/{chunk-VTTAJOQ7.js.map → chunk-OCXTTKVA.js.map} +0 -0
- /package/dist/{chunk-KRDR5RJD.js.map → chunk-OGU73VUN.js.map} +0 -0
- /package/dist/{chunk-YIRVLKAX.js.map → chunk-OI6VI6SU.js.map} +0 -0
- /package/dist/{chunk-BHNSJVBC.js.map → chunk-OJWDNNW3.js.map} +0 -0
- /package/dist/{chunk-X6KAJI3V.js.map → chunk-OK7BQMCI.js.map} +0 -0
- /package/dist/{chunk-I5B5L6Q4.js.map → chunk-OOOSGPJL.js.map} +0 -0
- /package/dist/{chunk-TUIN4MB7.js.map → chunk-ORV7EFSL.js.map} +0 -0
- /package/dist/{chunk-3IK6UYO6.js.map → chunk-OTW25A6I.js.map} +0 -0
- /package/dist/{chunk-NPGISCU6.js.map → chunk-OWET7EY2.js.map} +0 -0
- /package/dist/{chunk-CRAOSVHC.js.map → chunk-OXQ2SXVC.js.map} +0 -0
- /package/dist/{chunk-3ED2U6XE.js.map → chunk-OYCK4JRS.js.map} +0 -0
- /package/dist/{chunk-YQXTDZSU.js.map → chunk-OYOFPNLC.js.map} +0 -0
- /package/dist/{chunk-4NQHXYMW.js.map → chunk-PD7NWM7V.js.map} +0 -0
- /package/dist/{chunk-4YCA2Y73.js.map → chunk-PF2WU2IL.js.map} +0 -0
- /package/dist/{chunk-Z654FWNU.js.map → chunk-PLYVGZIN.js.map} +0 -0
- /package/dist/{chunk-MVW6HNPI.js.map → chunk-PRT4J2DL.js.map} +0 -0
- /package/dist/{chunk-OPWCMA4D.js.map → chunk-PUUEI4W3.js.map} +0 -0
- /package/dist/{chunk-RLBKLAEY.js.map → chunk-PVB4YVDP.js.map} +0 -0
- /package/dist/{chunk-NXCMHIKI.js.map → chunk-PWUSSSSL.js.map} +0 -0
- /package/dist/{chunk-MJUCFQMS.js.map → chunk-PYB4BFEC.js.map} +0 -0
- /package/dist/{chunk-2FSBSCZJ.js.map → chunk-PZKHST7A.js.map} +0 -0
- /package/dist/{chunk-QZAAUQRN.js.map → chunk-Q5EZNBPI.js.map} +0 -0
- /package/dist/{chunk-ZHDFQITM.js.map → chunk-Q5K2J5GG.js.map} +0 -0
- /package/dist/{chunk-OV6QJRT4.js.map → chunk-QRECBCJM.js.map} +0 -0
- /package/dist/{chunk-3GZA4BUW.js.map → chunk-QURYQFDN.js.map} +0 -0
- /package/dist/{chunk-VS7AHPCZ.js.map → chunk-R33SBMB7.js.map} +0 -0
- /package/dist/{chunk-KCBMFSMS.js.map → chunk-R4JA5JFI.js.map} +0 -0
- /package/dist/{chunk-HC4JFZVU.js.map → chunk-R5QAL43H.js.map} +0 -0
- /package/dist/{chunk-QPSGCC5D.js.map → chunk-RGR57NYY.js.map} +0 -0
- /package/dist/{chunk-XWFAMUZQ.js.map → chunk-RHXYO4H2.js.map} +0 -0
- /package/dist/{chunk-Y4BB2KS2.js.map → chunk-RISUROBM.js.map} +0 -0
- /package/dist/{chunk-U3DN4HEY.js.map → chunk-RMCLFSMX.js.map} +0 -0
- /package/dist/{chunk-YK7756IF.js.map → chunk-RTZANSSC.js.map} +0 -0
- /package/dist/{chunk-ZEG4VPBL.js.map → chunk-S27VZ5DO.js.map} +0 -0
- /package/dist/{chunk-54YW6SZZ.js.map → chunk-SBXSKRFA.js.map} +0 -0
- /package/dist/{chunk-HAX4LCR5.js.map → chunk-SFIXTOOJ.js.map} +0 -0
- /package/dist/{chunk-QIOQ2NPQ.js.map → chunk-SGH7I7OY.js.map} +0 -0
- /package/dist/{chunk-K2A5PXQ5.js.map → chunk-SJYTQLN3.js.map} +0 -0
- /package/dist/{chunk-2Z3NQNTM.js.map → chunk-SK5S2PCK.js.map} +0 -0
- /package/dist/{chunk-X3MWB2QU.js.map → chunk-SN2WENRP.js.map} +0 -0
- /package/dist/{chunk-OSY5K7L7.js.map → chunk-SP44O3OU.js.map} +0 -0
- /package/dist/{chunk-OZCBM3UC.js.map → chunk-SSR4ZX52.js.map} +0 -0
- /package/dist/{chunk-QCSJ4CWE.js.map → chunk-SXGJL7UT.js.map} +0 -0
- /package/dist/{chunk-NC55IFN3.js.map → chunk-T67LTMSW.js.map} +0 -0
- /package/dist/{chunk-AXHZYXUV.js.map → chunk-TDTD66BK.js.map} +0 -0
- /package/dist/{chunk-NGJJJPZZ.js.map → chunk-TK5FWVZR.js.map} +0 -0
- /package/dist/{chunk-2OP6WLGV.js.map → chunk-TNSJFZ6Q.js.map} +0 -0
- /package/dist/{chunk-O732GAFC.js.map → chunk-U4LTPFD2.js.map} +0 -0
- /package/dist/{chunk-4DVNUCRR.js.map → chunk-U5UGM5XD.js.map} +0 -0
- /package/dist/{chunk-UJK53QFL.js.map → chunk-UBRQ3PQD.js.map} +0 -0
- /package/dist/{chunk-SODC7T6L.js.map → chunk-UMX6DZME.js.map} +0 -0
- /package/dist/{chunk-YLS6QE5G.js.map → chunk-UO35OEOX.js.map} +0 -0
- /package/dist/{chunk-SHHJCL7X.js.map → chunk-UTRNLNCW.js.map} +0 -0
- /package/dist/{chunk-HEFPPMBQ.js.map → chunk-UU5FBVRX.js.map} +0 -0
- /package/dist/{chunk-GQXZPKK7.js.map → chunk-V6UOVHW3.js.map} +0 -0
- /package/dist/{chunk-GVN5SZLX.js.map → chunk-VATYK3JQ.js.map} +0 -0
- /package/dist/{chunk-7TIX2UAR.js.map → chunk-VCJQQYRE.js.map} +0 -0
- /package/dist/{chunk-6WD2INST.js.map → chunk-WDASYY4S.js.map} +0 -0
- /package/dist/{chunk-DXBYWSL5.js.map → chunk-WIFDNUKD.js.map} +0 -0
- /package/dist/{chunk-RT7CJMER.js.map → chunk-WIXHUBQN.js.map} +0 -0
- /package/dist/{chunk-57AZS3IE.js.map → chunk-WRMUXZ7C.js.map} +0 -0
- /package/dist/{chunk-2CLNIEK4.js.map → chunk-WTSQUCHB.js.map} +0 -0
- /package/dist/{chunk-OVKYVZMW.js.map → chunk-WXF2RTS4.js.map} +0 -0
- /package/dist/{chunk-MIHN76LX.js.map → chunk-WYGTAQMX.js.map} +0 -0
- /package/dist/{chunk-2RG7NIAS.js.map → chunk-X2QJXDE4.js.map} +0 -0
- /package/dist/{chunk-GAVYGBFI.js.map → chunk-XMBOLFFS.js.map} +0 -0
- /package/dist/{chunk-T7OXJZCX.js.map → chunk-XOIDUM2H.js.map} +0 -0
- /package/dist/{chunk-XHIQ5I6N.js.map → chunk-XVLEBB4Y.js.map} +0 -0
- /package/dist/{chunk-Q3DPEYX4.js.map → chunk-XZCCEKPW.js.map} +0 -0
- /package/dist/{chunk-T3OWFVMS.js.map → chunk-Y3XZEKDQ.js.map} +0 -0
- /package/dist/{chunk-KODELWYT.js.map → chunk-YJSCLGAW.js.map} +0 -0
- /package/dist/{chunk-ROKQU7WG.js.map → chunk-YMI27QPF.js.map} +0 -0
- /package/dist/{chunk-U7XM7CB4.js.map → chunk-YNTLWCF4.js.map} +0 -0
- /package/dist/{chunk-ZQCND77P.js.map → chunk-YRYF76OE.js.map} +0 -0
- /package/dist/{chunk-2BDT3UZQ.js.map → chunk-ZAX4XQLN.js.map} +0 -0
- /package/dist/{chunk-DXR5PDFP.js.map → chunk-ZBHGNE2J.js.map} +0 -0
- /package/dist/{chunk-I7ITSXSJ.js.map → chunk-ZR5EKJT6.js.map} +0 -0
- /package/dist/{chunk-IZXHMZQ6.js.map → chunk-ZW5YTIH3.js.map} +0 -0
- /package/dist/{embedded-new-voice-2G3VLPVQ.js.map → computer-viewer-5LKRCEVQ.js.map} +0 -0
- /package/dist/{embedded-voice-T5IWOWGD.js.map → embedded-new-voice-GHJRY3YL.js.map} +0 -0
- /package/dist/{model-policy-picker-menu-SMC6J6QN.js.map → embedded-voice-ASQXBSTX.js.map} +0 -0
- /package/dist/{fleet-decision-row-WM64KXP3.js.map → fleet-decision-row-U7LDVBEM.js.map} +0 -0
- /package/dist/{latest-question-OX56OVQ5.js.map → latest-question-RNVF262Q.js.map} +0 -0
- /package/dist/{sandbox-files-ESDMOFSD.js.map → model-policy-picker-menu-E6XKMFTA.js.map} +0 -0
- /package/dist/{queue-surface-implementation-4KUZ4PJV.js.map → queue-surface-implementation-GUAIG6TK.js.map} +0 -0
- /package/dist/{recorder-host-WF2RRR56.js.map → recorder-host-2MYDJPQW.js.map} +0 -0
- /package/dist/{session-connect-cards-Q53KMMYY.js.map → sandbox-files-W5W2LW4K.js.map} +0 -0
- /package/dist/{session-realtime-CF3I35WJ.js.map → session-connect-cards-HPH7JOZP.js.map} +0 -0
- /package/dist/{timeline-annotation-markers-CJK4RYZ4.js.map → timeline-annotation-markers-FNILLWNU.js.map} +0 -0
- /package/dist/{timeline-annotation-selection-67GF5H26.js.map → timeline-annotation-selection-MBCIDO2Q.js.map} +0 -0
- /package/dist/{timeline-annotations-dialog-ONJPQDJQ.js.map → timeline-annotations-dialog-JPNKLOTE.js.map} +0 -0
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import {
|
|
3
3
|
ModelPolicyPickerMenu,
|
|
4
4
|
ModelPolicyPickerPopover
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-WTSQUCHB.js";
|
|
6
|
+
import "./chunk-2J77TWGH.js";
|
|
7
7
|
import "./chunk-PNNTR6KP.js";
|
|
8
8
|
import "./chunk-WJPMYXKZ.js";
|
|
9
9
|
import "./chunk-VYT4POBH.js";
|
|
@@ -14,9 +14,9 @@ import "./chunk-AMHRWKKH.js";
|
|
|
14
14
|
import "./chunk-ZHC47M2B.js";
|
|
15
15
|
import "./chunk-MBSN5HHQ.js";
|
|
16
16
|
import "./chunk-TXS65BB2.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-QPQ7R77C.js";
|
|
18
18
|
export {
|
|
19
19
|
ModelPolicyPickerMenu,
|
|
20
20
|
ModelPolicyPickerPopover
|
|
21
21
|
};
|
|
22
|
-
//# sourceMappingURL=model-policy-picker-menu-
|
|
22
|
+
//# sourceMappingURL=model-policy-picker-menu-E6XKMFTA.js.map
|
|
@@ -5,23 +5,24 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
ActivityDisclosure,
|
|
7
7
|
BodyNote
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-OBGOLHCP.js";
|
|
9
9
|
import "./chunk-RZLBICR5.js";
|
|
10
10
|
import "./chunk-5XXRHX3V.js";
|
|
11
11
|
import "./chunk-YM45PLD6.js";
|
|
12
12
|
import "./chunk-UNI2IXRC.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-PEHTX3V7.js";
|
|
14
|
+
import "./chunk-XVLEBB4Y.js";
|
|
14
15
|
import {
|
|
15
16
|
Button
|
|
16
17
|
} from "./chunk-7QQN3KNP.js";
|
|
17
18
|
import "./chunk-UD6AAZSC.js";
|
|
18
19
|
import "./chunk-XEA5BCMA.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-2EA4IRIP.js";
|
|
20
21
|
import "./chunk-AZGAUBKR.js";
|
|
21
22
|
import "./chunk-TXS65BB2.js";
|
|
22
23
|
import {
|
|
23
24
|
useOpenGeniText
|
|
24
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-QPQ7R77C.js";
|
|
25
26
|
|
|
26
27
|
// src/timeline/payment-page-card.tsx
|
|
27
28
|
import { CheckIcon, CreditCardIcon, ExternalLinkIcon } from "lucide-react";
|
|
@@ -220,4 +221,4 @@ export {
|
|
|
220
221
|
PaymentPageCard,
|
|
221
222
|
nextPaymentCheckDelay
|
|
222
223
|
};
|
|
223
|
-
//# sourceMappingURL=payment-page-card-
|
|
224
|
+
//# sourceMappingURL=payment-page-card-DJDKV2LW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/timeline/payment-page-card.tsx"],"sourcesContent":["import type { BillingCheckoutStatus } from \"@opengeni/sdk\";\nimport { CheckIcon, CreditCardIcon, ExternalLinkIcon } from \"lucide-react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { Button } from \"../ui/button\";\nimport { useOpenGeniText } from \"../messages/runtime\";\nimport type { PaymentPage } from \"./payment-page\";\nimport { usePaymentPageActivity } from \"./payment-page-activity\";\nimport { ActivityDisclosure, BodyNote } from \"./shared\";\n\n/*\n * Checking a payment. Nothing is read before the person opens the page. After\n * that the card checks every 2 s for a minute, then every 15 s, for up to 30\n * minutes, and once whenever they come back to this tab. Stripe has no\n * \"cancelled\" state, so coming back to a page still open means they didn't\n * pay (yet): the regular checks stop, and the next return checks again. A\n * card opened earlier in this browser checks once when it's shown again.\n */\nconst FAST_CHECK_MS = 2_000;\nconst FAST_FOR_MS = 60_000;\nconst SLOW_CHECK_MS = 15_000;\nconst CHECK_FOR_MS = 30 * 60_000;\n\n/** How long until the next regular check, this long after the page opened; null once it's time to stop. */\nexport function nextPaymentCheckDelay(sinceOpened: number): number | null {\n if (sinceOpened >= CHECK_FOR_MS) return null;\n return sinceOpened < FAST_FOR_MS ? FAST_CHECK_MS : SLOW_CHECK_MS;\n}\n\n/*\n * How long a link works when nobody opened it here. Stripe Checkout expires a\n * day after it's created; a billing portal link, five minutes after it's\n * created unless it's being used.\n */\nconst CHECKOUT_LINK_MS = 24 * 60 * 60_000;\nconst PORTAL_LINK_MS = 5 * 60_000;\n\nconst OPENED_STORAGE_KEY = \"opengeni.paymentPagesOpened.v1\";\nconst OPENED_KEEP_MS = 7 * 24 * 60 * 60_000;\nconst OPENED_KEEP_COUNT = 50;\n\nfunction openedPages(): Record<string, number> {\n try {\n const parsed: unknown = JSON.parse(window.localStorage.getItem(OPENED_STORAGE_KEY) ?? \"{}\");\n if (!parsed || typeof parsed !== \"object\" || Array.isArray(parsed)) return {};\n return Object.fromEntries(\n Object.entries(parsed).filter(\n (entry): entry is [string, number] => typeof entry[1] === \"number\",\n ),\n );\n } catch {\n return {};\n }\n}\n\n/** When this browser opened the checkout's page, or 0. */\nfunction openedAt(checkoutSessionId: string | undefined): number {\n if (!checkoutSessionId || typeof window === \"undefined\") return 0;\n return openedPages()[checkoutSessionId] ?? 0;\n}\n\nfunction rememberOpened(checkoutSessionId: string, at: number): void {\n try {\n const kept = Object.entries({ ...openedPages(), [checkoutSessionId]: at })\n .filter(([, when]) => at - when < OPENED_KEEP_MS)\n .sort((a, b) => b[1] - a[1])\n .slice(0, OPENED_KEEP_COUNT);\n window.localStorage.setItem(OPENED_STORAGE_KEY, JSON.stringify(Object.fromEntries(kept)));\n } catch {\n // Storage full or off: only a reload forgets the page was opened.\n }\n}\n\ntype Standing =\n | { state: \"unknown\" }\n | { state: \"open\" }\n | { state: \"paid\"; status: BillingCheckoutStatus }\n | { state: \"expired\" };\n\nfunction standingOf(status: BillingCheckoutStatus): Standing {\n if (status.credit.state === \"granted\") return { state: \"paid\", status };\n if (status.status === \"expired\") return { state: \"expired\" };\n return { state: \"open\" };\n}\n\nfunction usd(amount: number): string {\n return new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n ...(Number.isInteger(amount) ? { maximumFractionDigits: 0 } : {}),\n }).format(amount);\n}\n\n/**\n * Watch one credits checkout once its page was opened (`opened`, ms since\n * epoch, or 0): see the timing above. `openedHere` is false for a page opened\n * before this card was shown, which checks once.\n */\nfunction useCheckoutStanding(\n page: PaymentPage,\n opened: number,\n openedHere: boolean,\n): { standing: Standing; checkFailed: boolean } {\n const { readCheckout, onCredited } = usePaymentPageActivity();\n const [standing, setStanding] = useState<Standing>({ state: \"unknown\" });\n // The last check failed: the card says it can't confirm instead of waiting on.\n const [checkFailed, setCheckFailed] = useState(false);\n const settled = standing.state === \"paid\" || standing.state === \"expired\";\n const onCreditedRef = useRef(onCredited);\n onCreditedRef.current = onCredited;\n const { checkoutSessionId, accountId } = page;\n\n useEffect(() => {\n if (!readCheckout || !checkoutSessionId || settled || opened === 0) return;\n const controller = new AbortController();\n let busy = false;\n let regular = openedHere;\n let timer: ReturnType<typeof setTimeout> | undefined;\n const schedule = () => {\n clearTimeout(timer);\n timer = undefined;\n const delay = regular ? nextPaymentCheckDelay(Date.now() - opened) : null;\n if (delay !== null) timer = setTimeout(() => void check(false), delay);\n };\n const check = async (returned: boolean) => {\n if (busy || controller.signal.aborted) return;\n busy = true;\n try {\n const status = await readCheckout({\n checkoutSessionId,\n accountId,\n signal: controller.signal,\n });\n if (controller.signal.aborted) return;\n const next = standingOf(status);\n setCheckFailed(false);\n setStanding(next);\n if (next.state === \"paid\") onCreditedRef.current?.(status);\n // Paid, credits on their way: keep checking until they land.\n if (status.status === \"complete\") regular = true;\n // Back here with the page still open: they cancelled or left it.\n else if (returned) regular = false;\n } catch (error) {\n if (controller.signal.aborted) return;\n setCheckFailed(true);\n // A refused or unknown checkout won't change by asking again; a\n // dropped connection might, so only that keeps the regular checks.\n if ((error as { retryable?: unknown } | null)?.retryable === false) regular = false;\n } finally {\n busy = false;\n if (!controller.signal.aborted) schedule();\n }\n };\n if (openedHere) schedule();\n else void check(false);\n const onReturn = () => {\n if (document.visibilityState === \"visible\") void check(true);\n };\n window.addEventListener(\"focus\", onReturn);\n document.addEventListener(\"visibilitychange\", onReturn);\n return () => {\n controller.abort();\n clearTimeout(timer);\n window.removeEventListener(\"focus\", onReturn);\n document.removeEventListener(\"visibilitychange\", onReturn);\n };\n }, [readCheckout, checkoutSessionId, accountId, settled, opened, openedHere]);\n\n return { standing, checkFailed };\n}\n\n/** Whether a page nobody opened here has outlived its link; flips when it does. */\nfunction useLinkExpired(page: PaymentPage, opened: number): boolean {\n const lifetime =\n opened > 0 || page.createdAt === undefined\n ? undefined\n : page.kind === \"portal\"\n ? PORTAL_LINK_MS\n : CHECKOUT_LINK_MS;\n const expiresAt = lifetime === undefined ? undefined : page.createdAt! + lifetime;\n const [now, setNow] = useState(() => Date.now());\n const expired = expiresAt !== undefined && now >= expiresAt;\n useEffect(() => {\n if (expiresAt === undefined || expired) return;\n const timer = setTimeout(() => setNow(Date.now()), Math.max(0, expiresAt - Date.now()));\n return () => clearTimeout(timer);\n }, [expiresAt, expired]);\n return expired;\n}\n\n/** A payment page an app action opened: one button that opens it, and for credits, the outcome. */\nexport function PaymentPageCard({ page }: { page: PaymentPage }) {\n const t = useOpenGeniText();\n const { readCheckout } = usePaymentPageActivity();\n const watched = page.kind === \"credits\" ? page.checkoutSessionId : undefined;\n const [opened, setOpened] = useState(() => openedAt(watched));\n const [openedHere, setOpenedHere] = useState(false);\n const { standing, checkFailed } = useCheckoutStanding(page, opened, openedHere);\n const linkExpired = useLinkExpired(page, opened);\n const amount = page.amountUsd !== undefined ? usd(page.amountUsd) : null;\n const confirmsHere = Boolean(watched && readCheckout);\n\n if (standing.state === \"paid\") {\n const added = usd(standing.status.credit.amountMicros / 1_000_000);\n const balance = standing.status.balance;\n return (\n // Its own row, so it starts closed and shows the balance.\n <ActivityDisclosure\n key=\"paid\"\n icon={<CheckIcon className=\"size-3.5\" />}\n iconTone=\"accent\"\n title={\n standing.status.credit.free\n ? t(\"timeline.paymentPage.creditsGotFree\", { amount: added })\n : t(\"timeline.paymentPage.creditsAdded\", { amount: added })\n }\n preview={\n balance\n ? t(\"timeline.paymentPage.balanceNow\", {\n balance: usd(balance.balanceMicros / 1_000_000),\n })\n : undefined\n }\n expandable={false}\n />\n );\n }\n\n const title =\n page.kind === \"credits\"\n ? amount\n ? t(\"timeline.paymentPage.payForCredits\", { amount })\n : t(\"timeline.paymentPage.buyCredits\")\n : page.kind === \"subscription\"\n ? t(\"timeline.paymentPage.subscribe\")\n : t(\"timeline.paymentPage.billingPortal\");\n const label =\n page.kind === \"credits\"\n ? amount\n ? t(\"timeline.paymentPage.payAmount\", { amount })\n : t(\"timeline.paymentPage.pay\")\n : page.kind === \"subscription\"\n ? t(\"timeline.paymentPage.continueToPayment\")\n : t(\"timeline.paymentPage.openBilling\");\n const hint =\n page.kind === \"portal\"\n ? t(\"timeline.paymentPage.opensBillingPage\")\n : confirmsHere\n ? opened > 0\n ? checkFailed\n ? t(\"timeline.paymentPage.checkFailed\")\n : t(\"timeline.paymentPage.waitingForPayment\")\n : t(\"timeline.paymentPage.opensSecurePageConfirms\")\n : t(\"timeline.paymentPage.opensSecurePage\");\n\n return (\n <ActivityDisclosure\n key=\"page\"\n icon={<CreditCardIcon className=\"size-3.5\" />}\n iconTone=\"accent\"\n title={title}\n defaultOpen\n >\n {standing.state === \"expired\" ? (\n <BodyNote>{t(\"timeline.paymentPage.expired\")}</BodyNote>\n ) : linkExpired ? (\n <BodyNote>{t(\"timeline.paymentPage.linkExpired\")}</BodyNote>\n ) : (\n <div className=\"flex flex-wrap items-center gap-x-3 gap-y-2 px-0.5\">\n <Button asChild size=\"sm\">\n <a\n href={page.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"pointer-coarse:min-h-10\"\n onClick={(event) => {\n event.stopPropagation();\n const now = Date.now();\n if (watched) rememberOpened(watched, now);\n setOpened(now);\n setOpenedHere(true);\n }}\n >\n {label}\n <ExternalLinkIcon className=\"size-3.5\" aria-hidden />\n </a>\n </Button>\n <span className=\"text-og-sm leading-5 text-og-fg-muted\">{hint}</span>\n </div>\n )}\n </ActivityDisclosure>\n );\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/timeline/payment-page-card.tsx"],"sourcesContent":["import type { BillingCheckoutStatus } from \"@opengeni/sdk\";\nimport { CheckIcon, CreditCardIcon, ExternalLinkIcon } from \"lucide-react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { Button } from \"../ui/button\";\nimport { useOpenGeniText } from \"../messages/runtime\";\nimport type { PaymentPage } from \"./payment-page\";\nimport { usePaymentPageActivity } from \"./payment-page-activity\";\nimport { ActivityDisclosure, BodyNote } from \"./shared\";\n\n/*\n * Checking a payment. Nothing is read before the person opens the page. After\n * that the card checks every 2 s for a minute, then every 15 s, for up to 30\n * minutes, and once whenever they come back to this tab. Stripe has no\n * \"cancelled\" state, so coming back to a page still open means they didn't\n * pay (yet): the regular checks stop, and the next return checks again. A\n * card opened earlier in this browser checks once when it's shown again.\n */\nconst FAST_CHECK_MS = 2_000;\nconst FAST_FOR_MS = 60_000;\nconst SLOW_CHECK_MS = 15_000;\nconst CHECK_FOR_MS = 30 * 60_000;\n\n/** How long until the next regular check, this long after the page opened; null once it's time to stop. */\nexport function nextPaymentCheckDelay(sinceOpened: number): number | null {\n if (sinceOpened >= CHECK_FOR_MS) return null;\n return sinceOpened < FAST_FOR_MS ? FAST_CHECK_MS : SLOW_CHECK_MS;\n}\n\n/*\n * How long a link works when nobody opened it here. Stripe Checkout expires a\n * day after it's created; a billing portal link, five minutes after it's\n * created unless it's being used.\n */\nconst CHECKOUT_LINK_MS = 24 * 60 * 60_000;\nconst PORTAL_LINK_MS = 5 * 60_000;\n\nconst OPENED_STORAGE_KEY = \"opengeni.paymentPagesOpened.v1\";\nconst OPENED_KEEP_MS = 7 * 24 * 60 * 60_000;\nconst OPENED_KEEP_COUNT = 50;\n\nfunction openedPages(): Record<string, number> {\n try {\n const parsed: unknown = JSON.parse(window.localStorage.getItem(OPENED_STORAGE_KEY) ?? \"{}\");\n if (!parsed || typeof parsed !== \"object\" || Array.isArray(parsed)) return {};\n return Object.fromEntries(\n Object.entries(parsed).filter(\n (entry): entry is [string, number] => typeof entry[1] === \"number\",\n ),\n );\n } catch {\n return {};\n }\n}\n\n/** When this browser opened the checkout's page, or 0. */\nfunction openedAt(checkoutSessionId: string | undefined): number {\n if (!checkoutSessionId || typeof window === \"undefined\") return 0;\n return openedPages()[checkoutSessionId] ?? 0;\n}\n\nfunction rememberOpened(checkoutSessionId: string, at: number): void {\n try {\n const kept = Object.entries({ ...openedPages(), [checkoutSessionId]: at })\n .filter(([, when]) => at - when < OPENED_KEEP_MS)\n .sort((a, b) => b[1] - a[1])\n .slice(0, OPENED_KEEP_COUNT);\n window.localStorage.setItem(OPENED_STORAGE_KEY, JSON.stringify(Object.fromEntries(kept)));\n } catch {\n // Storage full or off: only a reload forgets the page was opened.\n }\n}\n\ntype Standing =\n | { state: \"unknown\" }\n | { state: \"open\" }\n | { state: \"paid\"; status: BillingCheckoutStatus }\n | { state: \"expired\" };\n\nfunction standingOf(status: BillingCheckoutStatus): Standing {\n if (status.credit.state === \"granted\") return { state: \"paid\", status };\n if (status.status === \"expired\") return { state: \"expired\" };\n return { state: \"open\" };\n}\n\nfunction usd(amount: number): string {\n return new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n ...(Number.isInteger(amount) ? { maximumFractionDigits: 0 } : {}),\n }).format(amount);\n}\n\n/**\n * Watch one credits checkout once its page was opened (`opened`, ms since\n * epoch, or 0): see the timing above. `openedHere` is false for a page opened\n * before this card was shown, which checks once.\n */\nfunction useCheckoutStanding(\n page: PaymentPage,\n opened: number,\n openedHere: boolean,\n): { standing: Standing; checkFailed: boolean } {\n const { readCheckout, onCredited } = usePaymentPageActivity();\n const [standing, setStanding] = useState<Standing>({ state: \"unknown\" });\n // The last check failed: the card says it can't confirm instead of waiting on.\n const [checkFailed, setCheckFailed] = useState(false);\n const settled = standing.state === \"paid\" || standing.state === \"expired\";\n const onCreditedRef = useRef(onCredited);\n onCreditedRef.current = onCredited;\n const { checkoutSessionId, accountId } = page;\n\n useEffect(() => {\n if (!readCheckout || !checkoutSessionId || settled || opened === 0) return;\n const controller = new AbortController();\n let busy = false;\n let regular = openedHere;\n let timer: ReturnType<typeof setTimeout> | undefined;\n const schedule = () => {\n clearTimeout(timer);\n timer = undefined;\n const delay = regular ? nextPaymentCheckDelay(Date.now() - opened) : null;\n if (delay !== null) timer = setTimeout(() => void check(false), delay);\n };\n const check = async (returned: boolean) => {\n if (busy || controller.signal.aborted) return;\n busy = true;\n try {\n const status = await readCheckout({\n checkoutSessionId,\n accountId,\n signal: controller.signal,\n });\n if (controller.signal.aborted) return;\n const next = standingOf(status);\n setCheckFailed(false);\n setStanding(next);\n if (next.state === \"paid\") onCreditedRef.current?.(status);\n // Paid, credits on their way: keep checking until they land.\n if (status.status === \"complete\") regular = true;\n // Back here with the page still open: they cancelled or left it.\n else if (returned) regular = false;\n } catch (error) {\n if (controller.signal.aborted) return;\n setCheckFailed(true);\n // A refused or unknown checkout won't change by asking again; a\n // dropped connection might, so only that keeps the regular checks.\n if ((error as { retryable?: unknown } | null)?.retryable === false) regular = false;\n } finally {\n busy = false;\n if (!controller.signal.aborted) schedule();\n }\n };\n if (openedHere) schedule();\n else void check(false);\n const onReturn = () => {\n if (document.visibilityState === \"visible\") void check(true);\n };\n window.addEventListener(\"focus\", onReturn);\n document.addEventListener(\"visibilitychange\", onReturn);\n return () => {\n controller.abort();\n clearTimeout(timer);\n window.removeEventListener(\"focus\", onReturn);\n document.removeEventListener(\"visibilitychange\", onReturn);\n };\n }, [readCheckout, checkoutSessionId, accountId, settled, opened, openedHere]);\n\n return { standing, checkFailed };\n}\n\n/** Whether a page nobody opened here has outlived its link; flips when it does. */\nfunction useLinkExpired(page: PaymentPage, opened: number): boolean {\n const lifetime =\n opened > 0 || page.createdAt === undefined\n ? undefined\n : page.kind === \"portal\"\n ? PORTAL_LINK_MS\n : CHECKOUT_LINK_MS;\n const expiresAt = lifetime === undefined ? undefined : page.createdAt! + lifetime;\n const [now, setNow] = useState(() => Date.now());\n const expired = expiresAt !== undefined && now >= expiresAt;\n useEffect(() => {\n if (expiresAt === undefined || expired) return;\n const timer = setTimeout(() => setNow(Date.now()), Math.max(0, expiresAt - Date.now()));\n return () => clearTimeout(timer);\n }, [expiresAt, expired]);\n return expired;\n}\n\n/** A payment page an app action opened: one button that opens it, and for credits, the outcome. */\nexport function PaymentPageCard({ page }: { page: PaymentPage }) {\n const t = useOpenGeniText();\n const { readCheckout } = usePaymentPageActivity();\n const watched = page.kind === \"credits\" ? page.checkoutSessionId : undefined;\n const [opened, setOpened] = useState(() => openedAt(watched));\n const [openedHere, setOpenedHere] = useState(false);\n const { standing, checkFailed } = useCheckoutStanding(page, opened, openedHere);\n const linkExpired = useLinkExpired(page, opened);\n const amount = page.amountUsd !== undefined ? usd(page.amountUsd) : null;\n const confirmsHere = Boolean(watched && readCheckout);\n\n if (standing.state === \"paid\") {\n const added = usd(standing.status.credit.amountMicros / 1_000_000);\n const balance = standing.status.balance;\n return (\n // Its own row, so it starts closed and shows the balance.\n <ActivityDisclosure\n key=\"paid\"\n icon={<CheckIcon className=\"size-3.5\" />}\n iconTone=\"accent\"\n title={\n standing.status.credit.free\n ? t(\"timeline.paymentPage.creditsGotFree\", { amount: added })\n : t(\"timeline.paymentPage.creditsAdded\", { amount: added })\n }\n preview={\n balance\n ? t(\"timeline.paymentPage.balanceNow\", {\n balance: usd(balance.balanceMicros / 1_000_000),\n })\n : undefined\n }\n expandable={false}\n />\n );\n }\n\n const title =\n page.kind === \"credits\"\n ? amount\n ? t(\"timeline.paymentPage.payForCredits\", { amount })\n : t(\"timeline.paymentPage.buyCredits\")\n : page.kind === \"subscription\"\n ? t(\"timeline.paymentPage.subscribe\")\n : t(\"timeline.paymentPage.billingPortal\");\n const label =\n page.kind === \"credits\"\n ? amount\n ? t(\"timeline.paymentPage.payAmount\", { amount })\n : t(\"timeline.paymentPage.pay\")\n : page.kind === \"subscription\"\n ? t(\"timeline.paymentPage.continueToPayment\")\n : t(\"timeline.paymentPage.openBilling\");\n const hint =\n page.kind === \"portal\"\n ? t(\"timeline.paymentPage.opensBillingPage\")\n : confirmsHere\n ? opened > 0\n ? checkFailed\n ? t(\"timeline.paymentPage.checkFailed\")\n : t(\"timeline.paymentPage.waitingForPayment\")\n : t(\"timeline.paymentPage.opensSecurePageConfirms\")\n : t(\"timeline.paymentPage.opensSecurePage\");\n\n return (\n <ActivityDisclosure\n key=\"page\"\n icon={<CreditCardIcon className=\"size-3.5\" />}\n iconTone=\"accent\"\n title={title}\n defaultOpen\n >\n {standing.state === \"expired\" ? (\n <BodyNote>{t(\"timeline.paymentPage.expired\")}</BodyNote>\n ) : linkExpired ? (\n <BodyNote>{t(\"timeline.paymentPage.linkExpired\")}</BodyNote>\n ) : (\n <div className=\"flex flex-wrap items-center gap-x-3 gap-y-2 px-0.5\">\n <Button asChild size=\"sm\">\n <a\n href={page.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"pointer-coarse:min-h-10\"\n onClick={(event) => {\n event.stopPropagation();\n const now = Date.now();\n if (watched) rememberOpened(watched, now);\n setOpened(now);\n setOpenedHere(true);\n }}\n >\n {label}\n <ExternalLinkIcon className=\"size-3.5\" aria-hidden />\n </a>\n </Button>\n <span className=\"text-og-sm leading-5 text-og-fg-muted\">{hint}</span>\n </div>\n )}\n </ActivityDisclosure>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
} from "./chunk-RZLBICR5.js";
|
|
11
11
|
import {
|
|
12
12
|
useOpenGeniText
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-QPQ7R77C.js";
|
|
14
14
|
|
|
15
15
|
// src/timeline/platform-activity-row.tsx
|
|
16
16
|
function PlatformActivityRow({
|
|
@@ -72,20 +72,30 @@ function PlatformActivityRow({
|
|
|
72
72
|
const running = item.status === "running";
|
|
73
73
|
const duration = startupDuration(item.durationMs);
|
|
74
74
|
const detail = failed && !plainDetails ? item.detail : void 0;
|
|
75
|
+
const note = item.phase === "model_preparation" ? msg("timeline.platformActivityRow.includesOverlappingSandboxStartupCustom") : void 0;
|
|
75
76
|
return j(ActivityDisclosure, {
|
|
76
77
|
icon: j(BotIcon, { className: "size-3.5" }),
|
|
77
78
|
iconTone: failed ? "failed" : running ? "running" : "muted",
|
|
78
79
|
title: item.blockedReason ? STARTUP_WAIT_TITLES(msg)[item.blockedReason] : startupPhaseTitle(msg, item.phase, item.status, item.outcome),
|
|
79
|
-
preview:
|
|
80
|
+
preview: note,
|
|
80
81
|
running,
|
|
81
82
|
failed,
|
|
82
83
|
cancelled: item.status === "cancelled",
|
|
83
84
|
chip: duration ? { tone: failed ? "bad" : "muted", text: duration } : void 0,
|
|
84
85
|
expandable: Boolean(detail),
|
|
85
|
-
children: detail ?
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
86
|
+
children: detail ? [
|
|
87
|
+
// Open, the note leaves the row; it stays readable above the details.
|
|
88
|
+
note ? j(
|
|
89
|
+
"p",
|
|
90
|
+
{ className: "text-og-sm leading-5 text-og-fg-subtle", children: note },
|
|
91
|
+
"note"
|
|
92
|
+
) : null,
|
|
93
|
+
j(
|
|
94
|
+
PayloadBlock,
|
|
95
|
+
{ label: msg("timeline.platformActivityRow.details"), value: detail },
|
|
96
|
+
"detail"
|
|
97
|
+
)
|
|
98
|
+
] : void 0
|
|
89
99
|
});
|
|
90
100
|
}
|
|
91
101
|
function brainIcon(j, s) {
|
|
@@ -125,4 +135,4 @@ function lucideIcon(j, s, name, children) {
|
|
|
125
135
|
export {
|
|
126
136
|
PlatformActivityRow as default
|
|
127
137
|
};
|
|
128
|
-
//# sourceMappingURL=platform-activity-row-
|
|
138
|
+
//# sourceMappingURL=platform-activity-row-MSDCSMET.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/timeline/platform-activity-row.tsx"],"sourcesContent":["import {\n sandboxRowTitle,\n startupDuration,\n startupPhaseTitle,\n STARTUP_WAIT_TITLES,\n} from \"./platform-activity-presentation\";\nimport { useToolDetails } from \"./tool-details\";\nimport type { ReasoningItem, SandboxItem, StartupPhaseItem } from \"./types\";\nimport { useOpenGeniText } from \"../messages/runtime\";\n\ntype RowJsx = typeof import(\"react/jsx-runtime\").jsx;\ntype RowJsxs = typeof import(\"react/jsx-runtime\").jsxs;\n\nexport default function PlatformActivityRow({\n item,\n d: ActivityDisclosure,\n p: PayloadBlock,\n t: displayName,\n b: BotIcon,\n m: Markdown,\n j,\n s,\n}: {\n item: ReasoningItem | SandboxItem | StartupPhaseItem;\n d: typeof import(\"./shared\").ActivityDisclosure;\n p: typeof import(\"./shared\").PayloadBlock;\n t: (name: string) => string;\n b: typeof import(\"lucide-react\").BotIcon;\n m: typeof import(\"../components/markdown\").Markdown;\n j: RowJsx;\n s: RowJsxs;\n}) {\n const msg = useOpenGeniText();\n const plainDetails = useToolDetails() === \"plain\";\n if (item.kind === \"reasoning\") {\n return j(ActivityDisclosure, {\n icon: brainIcon(j, s),\n iconTone: \"muted\",\n title: item.streaming\n ? msg(\"timeline.platformActivityRow.thinking\")\n : j(\"span\", {\n className: \"font-normal italic text-og-fg-subtle\",\n children: msg(\"timeline.platformActivityRow.thought\"),\n }),\n running: item.streaming,\n compactPreview: item.text.replace(/\\*\\*|__|`/g, \"\").replace(/\\s+/g, \" \"),\n preview: j(\"span\", {\n className: \"og-reasoning-preview\",\n children: j(Markdown, { streaming: item.streaming, children: item.text }),\n }),\n children: j(\"div\", {\n className: \"text-og-base leading-6 text-og-fg-muted [&_strong]:text-og-fg-muted\",\n children: j(Markdown, { streaming: item.streaming, children: item.text }),\n }),\n });\n }\n if (item.kind === \"sandbox\") {\n return s(ActivityDisclosure, {\n icon: terminalIcon(j, s),\n iconTone:\n item.status === \"failed\" ? \"failed\" : item.status === \"running\" ? \"running\" : \"muted\",\n title: sandboxRowTitle(msg, item, displayName),\n running: item.status === \"running\",\n failed: item.status === \"failed\",\n cancelled: item.status === \"cancelled\",\n preview: item.command ?? undefined,\n children: [\n item.command\n ? j(\n PayloadBlock,\n { label: msg(\"timeline.platformActivityRow.command\"), value: item.command },\n \"command\",\n )\n : null,\n item.output\n ? j(\n PayloadBlock,\n { label: msg(\"timeline.platformActivityRow.output\"), value: item.output },\n \"output\",\n )\n : null,\n ],\n });\n }\n\n const failed = item.status === \"failed\";\n const running = item.status === \"running\";\n const duration = startupDuration(item.durationMs);\n // A failed step's recorded error is diagnostic detail: behind the row, never\n // its title, and absent where the host hides raw technical detail.\n const detail = failed && !plainDetails ? item.detail : undefined;\n const note =\n item.phase === \"model_preparation\"\n ? msg(\"timeline.platformActivityRow.includesOverlappingSandboxStartupCustom\")\n : undefined;\n return j(ActivityDisclosure, {\n icon: j(BotIcon, { className: \"size-3.5\" }),\n iconTone: failed ? \"failed\" : running ? \"running\" : \"muted\",\n title: item.blockedReason\n ? STARTUP_WAIT_TITLES(msg)[item.blockedReason]\n : startupPhaseTitle(msg, item.phase, item.status, item.outcome),\n preview: note,\n running,\n failed,\n cancelled: item.status === \"cancelled\",\n chip: duration ? { tone: failed ? \"bad\" : \"muted\", text: duration } : undefined,\n expandable: Boolean(detail),\n children: detail\n ? [\n // Open, the note leaves the row; it stays readable above the details.\n note\n ? j(\n \"p\",\n { className: \"text-og-sm leading-5 text-og-fg-subtle\", children: note },\n \"note\",\n )\n : null,\n j(\n PayloadBlock,\n { label: msg(\"timeline.platformActivityRow.details\"), value: detail },\n \"detail\",\n ),\n ]\n : undefined,\n });\n}\n\nfunction brainIcon(j: RowJsx, s: RowJsxs) {\n return lucideIcon(j, s, \"brain\", [\n j(\"path\", { d: \"M 12 18V5\" }, \"spine\"),\n j(\"path\", { d: \"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4\" }, \"center\"),\n j(\"path\", { d: \"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5\" }, \"top\"),\n j(\"path\", { d: \"M17.997 5.125a4 4 0 0 1 2.526 5.77\" }, \"upper-right\"),\n j(\"path\", { d: \"M18 18a4 4 0 0 0 2-7.464\" }, \"right\"),\n j(\"path\", { d: \"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517\" }, \"base\"),\n j(\"path\", { d: \"M6 18a4 4 0 0 1-2-7.464\" }, \"left\"),\n j(\"path\", { d: \"M6.003 5.125a4 4 0 0 0-2.526 5.77\" }, \"upper-left\"),\n ]);\n}\n\nfunction terminalIcon(j: RowJsx, s: RowJsxs) {\n return lucideIcon(j, s, \"square-terminal\", [\n j(\"path\", { d: \"m7 11 2-2-2-2\" }, \"prompt\"),\n j(\"path\", { d: \"M11 13h4\" }, \"cursor\"),\n j(\"rect\", { width: 18, height: 18, x: 3, y: 3, rx: 2, ry: 2 }, \"frame\"),\n ]);\n}\n\nfunction lucideIcon(j: RowJsx, s: RowJsxs, name: string, children: ReturnType<RowJsx>[]) {\n return s(\"svg\", {\n \"aria-hidden\": \"true\",\n className: `lucide lucide-${name} size-3.5`,\n fill: \"none\",\n height: 24,\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n viewBox: \"0 0 24 24\",\n width: 24,\n children,\n });\n}\n"],"mappings":"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","names":[]}
|
package/dist/{queue-surface-implementation-4KUZ4PJV.js → queue-surface-implementation-GUAIG6TK.js}
RENAMED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
import {
|
|
3
3
|
QueueErrorAlert,
|
|
4
4
|
QueueStoppingStatus
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-5MIBQ4P5.js";
|
|
6
6
|
import {
|
|
7
7
|
requestQueueDraftEdit
|
|
8
8
|
} from "./chunk-22GTC4MZ.js";
|
|
9
9
|
import {
|
|
10
10
|
TimelineAnnotationsChip
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-7YTR3UFO.js";
|
|
12
|
+
import "./chunk-MT2R57SF.js";
|
|
13
13
|
import "./chunk-LJUMYUBO.js";
|
|
14
14
|
import {
|
|
15
15
|
QUEUE_COLLAPSED_PREVIEW_CHARACTERS,
|
|
@@ -41,7 +41,7 @@ import "./chunk-CM7LVUKC.js";
|
|
|
41
41
|
import "./chunk-TXS65BB2.js";
|
|
42
42
|
import {
|
|
43
43
|
useOpenGeniText
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-QPQ7R77C.js";
|
|
45
45
|
|
|
46
46
|
// src/components/queue-surface-implementation.tsx
|
|
47
47
|
import {
|
|
@@ -905,4 +905,4 @@ export {
|
|
|
905
905
|
QueueSurface,
|
|
906
906
|
queueComposerCheckoutEnabled
|
|
907
907
|
};
|
|
908
|
-
//# sourceMappingURL=queue-surface-implementation-
|
|
908
|
+
//# sourceMappingURL=queue-surface-implementation-GUAIG6TK.js.map
|
package/dist/realtime.js
CHANGED
|
@@ -10,9 +10,9 @@ import {
|
|
|
10
10
|
SessionRealtimeControl,
|
|
11
11
|
useSessionCodexRealtime,
|
|
12
12
|
useWorkspaceRealtimeModelSelection
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-GIWFLWXG.js";
|
|
14
14
|
import "./chunk-6F34IWSA.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-2J77TWGH.js";
|
|
16
16
|
import "./chunk-PNNTR6KP.js";
|
|
17
17
|
import "./chunk-WJPMYXKZ.js";
|
|
18
18
|
import "./chunk-VYT4POBH.js";
|
|
@@ -29,13 +29,13 @@ import {
|
|
|
29
29
|
useRealtimeLanguagePreference,
|
|
30
30
|
useRealtimeModelSelection,
|
|
31
31
|
useSessionRealtime
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-ZR5EKJT6.js";
|
|
33
33
|
import "./chunk-TVQCDDSZ.js";
|
|
34
34
|
import "./chunk-AMHRWKKH.js";
|
|
35
35
|
import "./chunk-ZHC47M2B.js";
|
|
36
36
|
import "./chunk-MBSN5HHQ.js";
|
|
37
37
|
import "./chunk-TXS65BB2.js";
|
|
38
|
-
import "./chunk-
|
|
38
|
+
import "./chunk-QPQ7R77C.js";
|
|
39
39
|
export {
|
|
40
40
|
CodexRealtimeControl,
|
|
41
41
|
NewSessionRealtimeControl,
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import {
|
|
3
3
|
useRecorder
|
|
4
4
|
} from "./chunk-SPD4ULVB.js";
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
import "./chunk-PZKHST7A.js";
|
|
6
|
+
import "./chunk-UMX6DZME.js";
|
|
7
7
|
import "./chunk-RV3O5OCQ.js";
|
|
8
8
|
import "./chunk-CM7LVUKC.js";
|
|
9
9
|
import "./chunk-TVQCDDSZ.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-QPQ7R77C.js";
|
|
11
11
|
|
|
12
12
|
// src/meetings/recorder-host.tsx
|
|
13
13
|
import { useEffect, useLayoutEffect, useRef } from "react";
|
|
@@ -66,4 +66,4 @@ function RecorderHost({
|
|
|
66
66
|
export {
|
|
67
67
|
RecorderHost as default
|
|
68
68
|
};
|
|
69
|
-
//# sourceMappingURL=recorder-host-
|
|
69
|
+
//# sourceMappingURL=recorder-host-2MYDJPQW.js.map
|
package/dist/recordings.js
CHANGED
|
@@ -36,14 +36,14 @@ import {
|
|
|
36
36
|
transcriptNeedsCredits,
|
|
37
37
|
versionSummary,
|
|
38
38
|
withoutLiveMicrophoneEchoes
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-PZKHST7A.js";
|
|
40
40
|
import {
|
|
41
41
|
useVoiceInput
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-UMX6DZME.js";
|
|
43
43
|
import "./chunk-RV3O5OCQ.js";
|
|
44
44
|
import "./chunk-CM7LVUKC.js";
|
|
45
45
|
import "./chunk-TVQCDDSZ.js";
|
|
46
|
-
import "./chunk-
|
|
46
|
+
import "./chunk-QPQ7R77C.js";
|
|
47
47
|
export {
|
|
48
48
|
activeSegmentIndex,
|
|
49
49
|
defaultMeetingTitle,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
SandboxFiles
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-GMHIOYB7.js";
|
|
5
|
+
import "./chunk-RHXYO4H2.js";
|
|
6
|
+
import "./chunk-752WXSDN.js";
|
|
7
7
|
import "./chunk-B27E3V37.js";
|
|
8
8
|
import "./chunk-IWUGGOXA.js";
|
|
9
9
|
import "./chunk-OCN4S7WN.js";
|
|
@@ -14,14 +14,14 @@ import "./chunk-UD6AAZSC.js";
|
|
|
14
14
|
import "./chunk-XEA5BCMA.js";
|
|
15
15
|
import "./chunk-RV3O5OCQ.js";
|
|
16
16
|
import "./chunk-CM7LVUKC.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-DQPIEQGP.js";
|
|
18
18
|
import "./chunk-QV3DJVRZ.js";
|
|
19
19
|
import "./chunk-YSRBFJMQ.js";
|
|
20
20
|
import "./chunk-5I4VRWBB.js";
|
|
21
21
|
import "./chunk-TVQCDDSZ.js";
|
|
22
22
|
import "./chunk-TXS65BB2.js";
|
|
23
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-QPQ7R77C.js";
|
|
24
24
|
export {
|
|
25
25
|
SandboxFiles
|
|
26
26
|
};
|
|
27
|
-
//# sourceMappingURL=sandbox-files-
|
|
27
|
+
//# sourceMappingURL=sandbox-files-W5W2LW4K.js.map
|