@ashlr/hub 3.16.0 → 3.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/README.md +2 -2
- package/dist/authority-surface.json +5 -5
- package/dist/build-identity.json +2 -2
- package/dist/core/daemon/loop.js +1 -0
- package/dist/core/daemon/loop.js.map +1 -1
- package/dist/core/daemon/tick-hooks.d.ts +2 -0
- package/dist/core/daemon/tick-hooks.js.map +1 -1
- package/dist/core/fleet/tick-hooks-live.d.ts +2 -1
- package/dist/core/fleet/tick-hooks-live.js +49 -7
- package/dist/core/fleet/tick-hooks-live.js.map +1 -1
- package/dist/core/web/public/next/assets/ActionMenu-Bv-kQxD4.js +2 -0
- package/dist/core/web/public/next/assets/ActionMenu-Bv-kQxD4.js.map +1 -0
- package/dist/core/web/public/next/assets/Advanced-Be7Frv-G.js +2 -0
- package/dist/core/web/public/next/assets/Advanced-Be7Frv-G.js.map +1 -0
- package/dist/core/web/public/next/assets/AgentDetailScreen-DzqHmufO.js +2 -0
- package/dist/core/web/public/next/assets/AgentDetailScreen-DzqHmufO.js.map +1 -0
- package/dist/core/web/public/next/assets/AgentToolsSheet-D00kLnIq.js +2 -0
- package/dist/core/web/public/next/assets/AgentToolsSheet-D00kLnIq.js.map +1 -0
- package/dist/core/web/public/next/assets/AgentToolsStrip-CSus9Dr3.js +2 -0
- package/dist/core/web/public/next/assets/AgentToolsStrip-CSus9Dr3.js.map +1 -0
- package/dist/core/web/public/next/assets/AgentsScreen-WoR0oSLZ.js +2 -0
- package/dist/core/web/public/next/assets/AgentsScreen-WoR0oSLZ.js.map +1 -0
- package/dist/core/web/public/next/assets/AgentsSection-D5mKoOhH.js +3 -0
- package/dist/core/web/public/next/assets/AgentsSection-D5mKoOhH.js.map +1 -0
- package/dist/core/web/public/next/assets/App-Uy6lDpKw.js +8 -0
- package/dist/core/web/public/next/assets/App-Uy6lDpKw.js.map +1 -0
- package/dist/core/web/public/next/assets/AppsSection-Cfhmc4r3.js +2 -0
- package/dist/core/web/public/next/assets/AppsSection-Cfhmc4r3.js.map +1 -0
- package/dist/core/web/public/next/assets/AreaTrend-Bz3ETKPk.js +2 -0
- package/dist/core/web/public/next/assets/AreaTrend-Bz3ETKPk.js.map +1 -0
- package/dist/core/web/public/next/assets/AutomationsSection-D4K8db0o.js +2 -0
- package/dist/core/web/public/next/assets/AutomationsSection-D4K8db0o.js.map +1 -0
- package/dist/core/web/public/next/assets/AutonomyOffState-DUiNMgr8.js +3 -0
- package/dist/core/web/public/next/assets/AutonomyOffState-DUiNMgr8.js.map +1 -0
- package/dist/core/web/public/next/assets/AutonomySection-wxRZ7vSw.js +2 -0
- package/dist/core/web/public/next/assets/AutonomySection-wxRZ7vSw.js.map +1 -0
- package/dist/core/web/public/next/assets/AutonomyStatus-B-PCVnFO.js +2 -0
- package/dist/core/web/public/next/assets/AutonomyStatus-B-PCVnFO.js.map +1 -0
- package/dist/core/web/public/next/assets/BranchBar-Bs4r_Vh6.js +2 -0
- package/dist/core/web/public/next/assets/BranchBar-Bs4r_Vh6.js.map +1 -0
- package/dist/core/web/public/next/assets/BrowserPanel-BMQcviI1.js +7 -0
- package/dist/core/web/public/next/assets/BrowserPanel-BMQcviI1.js.map +1 -0
- package/dist/core/web/public/next/assets/BudgetControl-A4TEONtT.js +2 -0
- package/dist/core/web/public/next/assets/BudgetControl-A4TEONtT.js.map +1 -0
- package/dist/core/web/public/next/assets/Button-CMR_Op-0.js +2 -0
- package/dist/core/web/public/next/assets/Button-CMR_Op-0.js.map +1 -0
- package/dist/core/web/public/next/assets/CapacityStrip-B-2NDrA5.js +2 -0
- package/dist/core/web/public/next/assets/CapacityStrip-B-2NDrA5.js.map +1 -0
- package/dist/core/web/public/next/assets/ChangesPaneHost-CS5qGjwM.js +16 -0
- package/dist/core/web/public/next/assets/ChangesPaneHost-CS5qGjwM.js.map +1 -0
- package/dist/core/web/public/next/assets/ChartFrame-sZTnZkVd.js +2 -0
- package/dist/core/web/public/next/assets/ChartFrame-sZTnZkVd.js.map +1 -0
- package/dist/core/web/public/next/assets/ChatPanes-CicgTVpN.js +2 -0
- package/dist/core/web/public/next/assets/ChatPanes-CicgTVpN.js.map +1 -0
- package/dist/core/web/public/next/assets/ChatSection-Cc6sudpF.js +3 -0
- package/dist/core/web/public/next/assets/ChatSection-Cc6sudpF.js.map +1 -0
- package/dist/core/web/public/next/assets/ChecksPanel-BGWgv8Zb.js +5 -0
- package/dist/core/web/public/next/assets/ChecksPanel-BGWgv8Zb.js.map +1 -0
- package/dist/core/web/public/next/assets/CloudBudgetForm-CqsidwfU.js +2 -0
- package/dist/core/web/public/next/assets/CloudBudgetForm-CqsidwfU.js.map +1 -0
- package/dist/core/web/public/next/assets/CommandPalette-rwEZ20MN.js +3 -0
- package/dist/core/web/public/next/assets/CommandPalette-rwEZ20MN.js.map +1 -0
- package/dist/core/web/public/next/assets/CommandSection-C2CLkVXN.js +3 -0
- package/dist/core/web/public/next/assets/CommandSection-C2CLkVXN.js.map +1 -0
- package/dist/core/web/public/next/assets/CommandWorkflowForm-DAbPIdI3.js +9 -0
- package/dist/core/web/public/next/assets/CommandWorkflowForm-DAbPIdI3.js.map +1 -0
- package/dist/core/web/public/next/assets/CommandWorkflowPicker-fqHtzYXX.js +3 -0
- package/dist/core/web/public/next/assets/CommandWorkflowPicker-fqHtzYXX.js.map +1 -0
- package/dist/core/web/public/next/assets/CompareDialog-Cwfpaa8I.js +4 -0
- package/dist/core/web/public/next/assets/CompareDialog-Cwfpaa8I.js.map +1 -0
- package/dist/core/web/public/next/assets/ComputerControl-DU0cuVSY.js +2 -0
- package/dist/core/web/public/next/assets/ComputerControl-DU0cuVSY.js.map +1 -0
- package/dist/core/web/public/next/assets/ConfirmDialog-B_wCnbcC.js +2 -0
- package/dist/core/web/public/next/assets/ConfirmDialog-B_wCnbcC.js.map +1 -0
- package/dist/core/web/public/next/assets/DeleteChatDialog-CxMh53yX.js +2 -0
- package/dist/core/web/public/next/assets/DeleteChatDialog-CxMh53yX.js.map +1 -0
- package/dist/core/web/public/next/assets/DevinStopDialog-D9Bziccz.js +2 -0
- package/dist/core/web/public/next/assets/DevinStopDialog-D9Bziccz.js.map +1 -0
- package/dist/core/web/public/next/assets/Dialog-DI5D6Is2.js +2 -0
- package/dist/core/web/public/next/assets/Dialog-DI5D6Is2.js.map +1 -0
- package/dist/core/web/public/next/assets/DiffPane-Buo19Bqr.js +2 -0
- package/dist/core/web/public/next/assets/DiffPane-Buo19Bqr.js.map +1 -0
- package/dist/core/web/public/next/assets/DiffViewer-dO0RQoqA.js +2 -0
- package/dist/core/web/public/next/assets/DiffViewer-dO0RQoqA.js.map +1 -0
- package/dist/core/web/public/next/assets/DockHost-KJUHjoiG.js +2 -0
- package/dist/core/web/public/next/assets/DockHost-KJUHjoiG.js.map +1 -0
- package/dist/core/web/public/next/assets/EmptyState-C3BUt2Ev.js +2 -0
- package/dist/core/web/public/next/assets/EmptyState-C3BUt2Ev.js.map +1 -0
- package/dist/core/web/public/next/assets/Epistemic-DlG2QqKJ.js +2 -0
- package/dist/core/web/public/next/assets/Epistemic-DlG2QqKJ.js.map +1 -0
- package/dist/core/web/public/next/assets/EvidenceTimeline-D1GB9F-f.js +2 -0
- package/dist/core/web/public/next/assets/EvidenceTimeline-D1GB9F-f.js.map +1 -0
- package/dist/core/web/public/next/assets/FilesPane-icSP5vPt.js +2 -0
- package/dist/core/web/public/next/assets/FilesPane-icSP5vPt.js.map +1 -0
- package/dist/core/web/public/next/assets/FleetScreen-V_X8SeD3.js +2 -0
- package/dist/core/web/public/next/assets/FleetScreen-V_X8SeD3.js.map +1 -0
- package/dist/core/web/public/next/assets/FleetSection-xyhfpRJy.js +5 -0
- package/dist/core/web/public/next/assets/FleetSection-xyhfpRJy.js.map +1 -0
- package/dist/core/web/public/next/assets/Funnel-BlzQ5FOU.js +2 -0
- package/dist/core/web/public/next/assets/Funnel-BlzQ5FOU.js.map +1 -0
- package/dist/core/web/public/next/assets/GearTray-Dvu-ee-h.js +2 -0
- package/dist/core/web/public/next/assets/GearTray-Dvu-ee-h.js.map +1 -0
- package/dist/core/web/public/next/assets/GitDialogs-o0eCEqAN.js +2 -0
- package/dist/core/web/public/next/assets/GitDialogs-o0eCEqAN.js.map +1 -0
- package/dist/core/web/public/next/assets/GrowthSection-CyqJOzob.js +3 -0
- package/dist/core/web/public/next/assets/GrowthSection-CyqJOzob.js.map +1 -0
- package/dist/core/web/public/next/assets/HandoffDialog-0uTNyK99.js +2 -0
- package/dist/core/web/public/next/assets/HandoffDialog-0uTNyK99.js.map +1 -0
- package/dist/core/web/public/next/assets/HomeBody-DJjN3GTV.js +3 -0
- package/dist/core/web/public/next/assets/HomeBody-DJjN3GTV.js.map +1 -0
- package/dist/core/web/public/next/assets/HomeSeats-IJvjh9iH.js +2 -0
- package/dist/core/web/public/next/assets/HomeSeats-IJvjh9iH.js.map +1 -0
- package/dist/core/web/public/next/assets/Input-CsSZI8QC.js +2 -0
- package/dist/core/web/public/next/assets/Input-CsSZI8QC.js.map +1 -0
- package/dist/core/web/public/next/assets/LaunchDialog-DReYqlI0.js +9 -0
- package/dist/core/web/public/next/assets/LaunchDialog-DReYqlI0.js.map +1 -0
- package/dist/core/web/public/next/assets/LeaderCard-82indlOE.js +2 -0
- package/dist/core/web/public/next/assets/LeaderCard-82indlOE.js.map +1 -0
- package/dist/core/web/public/next/assets/LeaderConversation-8hDF6Gh3.js +3 -0
- package/dist/core/web/public/next/assets/LeaderConversation-8hDF6Gh3.js.map +1 -0
- package/dist/core/web/public/next/assets/LeaderScreen-BxPiwHcT.js +2 -0
- package/dist/core/web/public/next/assets/LeaderScreen-BxPiwHcT.js.map +1 -0
- package/dist/core/web/public/next/assets/LessonsPanel-BG558qil.js +2 -0
- package/dist/core/web/public/next/assets/LessonsPanel-BG558qil.js.map +1 -0
- package/dist/core/web/public/next/assets/LiveTimer-DUgUBr49.js +2 -0
- package/dist/core/web/public/next/assets/LiveTimer-DUgUBr49.js.map +1 -0
- package/dist/core/web/public/next/assets/LocalSeatBadge-D6U4Q2P3.js +2 -0
- package/dist/core/web/public/next/assets/LocalSeatBadge-D6U4Q2P3.js.map +1 -0
- package/dist/core/web/public/next/assets/MatrixHeatmap-Brn70z84.js +2 -0
- package/dist/core/web/public/next/assets/MatrixHeatmap-Brn70z84.js.map +1 -0
- package/dist/core/web/public/next/assets/McpSection-Dz8Ga2Rg.js +2 -0
- package/dist/core/web/public/next/assets/McpSection-Dz8Ga2Rg.js.map +1 -0
- package/dist/core/web/public/next/assets/MessageMarkdown-CQfYQaXB.js +3 -0
- package/dist/core/web/public/next/assets/MessageMarkdown-CQfYQaXB.js.map +1 -0
- package/dist/core/web/public/next/assets/MessageMarkdownRenderer-DPaNQMj8.js +72 -0
- package/dist/core/web/public/next/assets/MessageMarkdownRenderer-DPaNQMj8.js.map +1 -0
- package/dist/core/web/public/next/assets/Meter-TnD7Ris6.js +2 -0
- package/dist/core/web/public/next/assets/Meter-TnD7Ris6.js.map +1 -0
- package/dist/core/web/public/next/assets/MicButton-Dc9g2Z_E.js +2 -0
- package/dist/core/web/public/next/assets/MicButton-Dc9g2Z_E.js.map +1 -0
- package/dist/core/web/public/next/assets/MindSection-DGpYq8c7.js +3 -0
- package/dist/core/web/public/next/assets/MindSection-DGpYq8c7.js.map +1 -0
- package/dist/core/web/public/next/assets/MobileComposer-DbSZ2rxa.js +2 -0
- package/dist/core/web/public/next/assets/MobileComposer-DbSZ2rxa.js.map +1 -0
- package/dist/core/web/public/next/assets/MobileGuardSheet-qQJev_w3.js +2 -0
- package/dist/core/web/public/next/assets/MobileGuardSheet-qQJev_w3.js.map +1 -0
- package/dist/core/web/public/next/assets/MobileRuntime-BEnY4Uvs.js +3 -0
- package/dist/core/web/public/next/assets/MobileRuntime-BEnY4Uvs.js.map +1 -0
- package/dist/core/web/public/next/assets/MoreScreen-CG0E5S8G.js +2 -0
- package/dist/core/web/public/next/assets/MoreScreen-CG0E5S8G.js.map +1 -0
- package/dist/core/web/public/next/assets/MultiModelBar-DgMyP8IC.js +7 -0
- package/dist/core/web/public/next/assets/MultiModelBar-DgMyP8IC.js.map +1 -0
- package/dist/core/web/public/next/assets/MutationTokenDialog-T3r9EtHi.js +2 -0
- package/dist/core/web/public/next/assets/MutationTokenDialog-T3r9EtHi.js.map +1 -0
- package/dist/core/web/public/next/assets/NeedsYouDrawer-BDAcTlK8.js +3 -0
- package/dist/core/web/public/next/assets/NeedsYouDrawer-BDAcTlK8.js.map +1 -0
- package/dist/core/web/public/next/assets/NeedsYouList-BFubkjzF.js +2 -0
- package/dist/core/web/public/next/assets/NeedsYouList-BFubkjzF.js.map +1 -0
- package/dist/core/web/public/next/assets/NeedsYouScreen-B3Dk15T_.js +2 -0
- package/dist/core/web/public/next/assets/NeedsYouScreen-B3Dk15T_.js.map +1 -0
- package/dist/core/web/public/next/assets/NewAgentScreen-zf1bqGYC.js +2 -0
- package/dist/core/web/public/next/assets/NewAgentScreen-zf1bqGYC.js.map +1 -0
- package/dist/core/web/public/next/assets/NewChatDialog-el95cRTF.js +4 -0
- package/dist/core/web/public/next/assets/NewChatDialog-el95cRTF.js.map +1 -0
- package/dist/core/web/public/next/assets/OnboardingFlow-Bi8gZOuz.js +3 -0
- package/dist/core/web/public/next/assets/OnboardingFlow-Bi8gZOuz.js.map +1 -0
- package/dist/core/web/public/next/assets/OnboardingGate-CRexmMn5.js +3 -0
- package/dist/core/web/public/next/assets/OnboardingGate-CRexmMn5.js.map +1 -0
- package/dist/core/web/public/next/assets/PlaybooksSection-R2_wyVpQ.js +9 -0
- package/dist/core/web/public/next/assets/PlaybooksSection-R2_wyVpQ.js.map +1 -0
- package/dist/core/web/public/next/assets/PreviewPane-Djw_GJ20.js +2 -0
- package/dist/core/web/public/next/assets/PreviewPane-Djw_GJ20.js.map +1 -0
- package/dist/core/web/public/next/assets/ProviderLogo-DIfJXNWf.js +2 -0
- package/dist/core/web/public/next/assets/ProviderLogo-DIfJXNWf.js.map +1 -0
- package/dist/core/web/public/next/assets/RailStatus-B3eI2AaD.js +2 -0
- package/dist/core/web/public/next/assets/RailStatus-B3eI2AaD.js.map +1 -0
- package/dist/core/web/public/next/assets/ReasoningPane-ExT8XgQB.js +2 -0
- package/dist/core/web/public/next/assets/ReasoningPane-ExT8XgQB.js.map +1 -0
- package/dist/core/web/public/next/assets/ReasoningSheet-YF4OS4lM.js +2 -0
- package/dist/core/web/public/next/assets/ReasoningSheet-YF4OS4lM.js.map +1 -0
- package/dist/core/web/public/next/assets/RefreshIndicator-BJoefKSa.js +2 -0
- package/dist/core/web/public/next/assets/RefreshIndicator-BJoefKSa.js.map +1 -0
- package/dist/core/web/public/next/assets/RemoteMobileApp-C2SflRkm.js +2 -0
- package/dist/core/web/public/next/assets/RemoteMobileApp-C2SflRkm.js.map +1 -0
- package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-FkAdn3Sv.js +7 -0
- package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-FkAdn3Sv.js.map +1 -0
- package/dist/core/web/public/next/assets/ResourcesChrome-CFHrLqmA.js +3 -0
- package/dist/core/web/public/next/assets/ResourcesChrome-CFHrLqmA.js.map +1 -0
- package/dist/core/web/public/next/assets/ResourcesDrawer-DtnZgDr_.js +3 -0
- package/dist/core/web/public/next/assets/ResourcesDrawer-DtnZgDr_.js.map +1 -0
- package/dist/core/web/public/next/assets/RouteErrorBoundary-DTz5-ndE.js +2 -0
- package/dist/core/web/public/next/assets/RouteErrorBoundary-DTz5-ndE.js.map +1 -0
- package/dist/core/web/public/next/assets/RunInCloudAction-DvoDMV54.js +2 -0
- package/dist/core/web/public/next/assets/RunInCloudAction-DvoDMV54.js.map +1 -0
- package/dist/core/web/public/next/assets/RunInDevinAction-BwCkFxLX.js +2 -0
- package/dist/core/web/public/next/assets/RunInDevinAction-BwCkFxLX.js.map +1 -0
- package/dist/core/web/public/next/assets/ScreenHost-jdgnt5U2.js +3 -0
- package/dist/core/web/public/next/assets/ScreenHost-jdgnt5U2.js.map +1 -0
- package/dist/core/web/public/next/assets/SeatSelector-DnpH5D_D.js +3 -0
- package/dist/core/web/public/next/assets/SeatSelector-DnpH5D_D.js.map +1 -0
- package/dist/core/web/public/next/assets/Segmented-BECZDbsg.js +2 -0
- package/dist/core/web/public/next/assets/Segmented-BECZDbsg.js.map +1 -0
- package/dist/core/web/public/next/assets/Select-DjQDkPJU.js +2 -0
- package/dist/core/web/public/next/assets/Select-DjQDkPJU.js.map +1 -0
- package/dist/core/web/public/next/assets/SessionGate-CWuI8dDR.js +2 -0
- package/dist/core/web/public/next/assets/SessionGate-CWuI8dDR.js.map +1 -0
- package/dist/core/web/public/next/assets/SessionInsightChip-DRsIQu29.js +2 -0
- package/dist/core/web/public/next/assets/SessionInsightChip-DRsIQu29.js.map +1 -0
- package/dist/core/web/public/next/assets/SessionSearch-Bya3EXJl.js +2 -0
- package/dist/core/web/public/next/assets/SessionSearch-Bya3EXJl.js.map +1 -0
- package/dist/core/web/public/next/assets/SettingsSection-CXjiHNQb.js +2 -0
- package/dist/core/web/public/next/assets/SettingsSection-CXjiHNQb.js.map +1 -0
- package/dist/core/web/public/next/assets/SetupChecklist-YUMOJNbk.js +2 -0
- package/dist/core/web/public/next/assets/SetupChecklist-YUMOJNbk.js.map +1 -0
- package/dist/core/web/public/next/assets/ShadowDecisions-BP2WgGMi.js +3 -0
- package/dist/core/web/public/next/assets/ShadowDecisions-BP2WgGMi.js.map +1 -0
- package/dist/core/web/public/next/assets/Sheet-Czuz3h6A.js +2 -0
- package/dist/core/web/public/next/assets/Sheet-Czuz3h6A.js.map +1 -0
- package/dist/core/web/public/next/assets/ShortcutsOverlay-D_ICte5N.js +2 -0
- package/dist/core/web/public/next/assets/ShortcutsOverlay-D_ICte5N.js.map +1 -0
- package/dist/core/web/public/next/assets/Sidebar-CcI1_B9Y.js +3 -0
- package/dist/core/web/public/next/assets/Sidebar-CcI1_B9Y.js.map +1 -0
- package/dist/core/web/public/next/assets/SkipToContent-B0GAKhYQ.js +2 -0
- package/dist/core/web/public/next/assets/SkipToContent-B0GAKhYQ.js.map +1 -0
- package/dist/core/web/public/next/assets/Slider-Dzv55CNY.js +2 -0
- package/dist/core/web/public/next/assets/Slider-Dzv55CNY.js.map +1 -0
- package/dist/core/web/public/next/assets/SourcesPane-rxRCi7cL.js +2 -0
- package/dist/core/web/public/next/assets/SourcesPane-rxRCi7cL.js.map +1 -0
- package/dist/core/web/public/next/assets/SourcesPanel-LyMp7aLt.js +2 -0
- package/dist/core/web/public/next/assets/SourcesPanel-LyMp7aLt.js.map +1 -0
- package/dist/core/web/public/next/assets/StatTile-1_HPOflX.js +2 -0
- package/dist/core/web/public/next/assets/StatTile-1_HPOflX.js.map +1 -0
- package/dist/core/web/public/next/assets/StatusBadge-zR7YgIa8.js +2 -0
- package/dist/core/web/public/next/assets/StatusBadge-zR7YgIa8.js.map +1 -0
- package/dist/core/web/public/next/assets/StepBand-BGX2RpFV.js +2 -0
- package/dist/core/web/public/next/assets/StepBand-BGX2RpFV.js.map +1 -0
- package/dist/core/web/public/next/assets/Surface-BEToBKC3.js +2 -0
- package/dist/core/web/public/next/assets/Surface-BEToBKC3.js.map +1 -0
- package/dist/core/web/public/next/assets/Swimlane-DAf7u5p3.js +2 -0
- package/dist/core/web/public/next/assets/Swimlane-DAf7u5p3.js.map +1 -0
- package/dist/core/web/public/next/assets/Switch-mvc9lQcT.js +2 -0
- package/dist/core/web/public/next/assets/Switch-mvc9lQcT.js.map +1 -0
- package/dist/core/web/public/next/assets/Tag-Chqolzxz.js +2 -0
- package/dist/core/web/public/next/assets/Tag-Chqolzxz.js.map +1 -0
- package/dist/core/web/public/next/assets/TerminalPane-4wn3AxS0.js +3 -0
- package/dist/core/web/public/next/assets/TerminalPane-4wn3AxS0.js.map +1 -0
- package/dist/core/web/public/next/assets/TerminalPane-D7-O0ssr.js +26 -0
- package/dist/core/web/public/next/assets/TerminalPane-D7-O0ssr.js.map +1 -0
- package/dist/core/web/public/next/assets/ThinkingBlock-gWESdTxs.js +2 -0
- package/dist/core/web/public/next/assets/ThinkingBlock-gWESdTxs.js.map +1 -0
- package/dist/core/web/public/next/assets/UniverseConsoleApp-XqJvgt7b.js +2 -0
- package/dist/core/web/public/next/assets/UniverseConsoleApp-XqJvgt7b.js.map +1 -0
- package/dist/core/web/public/next/assets/UniverseView-D0j9HVku.js +9 -0
- package/dist/core/web/public/next/assets/UniverseView-D0j9HVku.js.map +1 -0
- package/dist/core/web/public/next/assets/UsageSection-DnSPo4Ua.js +3 -0
- package/dist/core/web/public/next/assets/UsageSection-DnSPo4Ua.js.map +1 -0
- package/dist/core/web/public/next/assets/UsePlaybookAction-71M3gO7g.js +2 -0
- package/dist/core/web/public/next/assets/UsePlaybookAction-71M3gO7g.js.map +1 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-DO84Xscn.js +3 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-DO84Xscn.js.map +1 -0
- package/dist/core/web/public/next/assets/VerseMobileApp-CrCDQcw5.js +3 -0
- package/dist/core/web/public/next/assets/VerseMobileApp-CrCDQcw5.js.map +1 -0
- package/dist/core/web/public/next/assets/VerseShared-CFE5B-IY.js +2 -0
- package/dist/core/web/public/next/assets/VerseShared-CFE5B-IY.js.map +1 -0
- package/dist/core/web/public/next/assets/VoiceHud-CumHX7If.js +2 -0
- package/dist/core/web/public/next/assets/VoiceHud-CumHX7If.js.map +1 -0
- package/dist/core/web/public/next/assets/VoiceInput-CWTVwTwV.js +2 -0
- package/dist/core/web/public/next/assets/VoiceInput-CWTVwTwV.js.map +1 -0
- package/dist/core/web/public/next/assets/WikiSection-BIGSx4z-.js +2 -0
- package/dist/core/web/public/next/assets/WikiSection-BIGSx4z-.js.map +1 -0
- package/dist/core/web/public/next/assets/Workspace-5sa9Xggd.js +6 -0
- package/dist/core/web/public/next/assets/Workspace-5sa9Xggd.js.map +1 -0
- package/dist/core/web/public/next/assets/actions-BPyW8QC-.js +2 -0
- package/dist/core/web/public/next/assets/actions-BPyW8QC-.js.map +1 -0
- package/dist/core/web/public/next/assets/agent-tools-client-Si2ncqwV.js +2 -0
- package/dist/core/web/public/next/assets/agent-tools-client-Si2ncqwV.js.map +1 -0
- package/dist/core/web/public/next/assets/agent-transcript-model-D-34Ll59.js +7 -0
- package/dist/core/web/public/next/assets/agent-transcript-model-D-34Ll59.js.map +1 -0
- package/dist/core/web/public/next/assets/agents-focus-E_TBTTmZ.js +2 -0
- package/dist/core/web/public/next/assets/agents-focus-E_TBTTmZ.js.map +1 -0
- package/dist/core/web/public/next/assets/app-version-y5sfMXiE.js +2 -0
- package/dist/core/web/public/next/assets/app-version-y5sfMXiE.js.map +1 -0
- package/dist/core/web/public/next/assets/apps-model-BnjwUIUH.js +2 -0
- package/dist/core/web/public/next/assets/apps-model-BnjwUIUH.js.map +1 -0
- package/dist/core/web/public/next/assets/ask-seat-CWE-jY2D.js +2 -0
- package/dist/core/web/public/next/assets/ask-seat-CWE-jY2D.js.map +1 -0
- package/dist/core/web/public/next/assets/authority-model-DVMxkDV4.js +2 -0
- package/dist/core/web/public/next/assets/authority-model-DVMxkDV4.js.map +1 -0
- package/dist/core/web/public/next/assets/automations-focus-B-lklYid.js +2 -0
- package/dist/core/web/public/next/assets/automations-focus-B-lklYid.js.map +1 -0
- package/dist/core/web/public/next/assets/budget-model-Bwv4MZSa.js +2 -0
- package/dist/core/web/public/next/assets/budget-model-Bwv4MZSa.js.map +1 -0
- package/dist/core/web/public/next/assets/budget-queries-t-Bdoly3.js +2 -0
- package/dist/core/web/public/next/assets/budget-queries-t-Bdoly3.js.map +1 -0
- package/dist/core/web/public/next/assets/capacity-strip-model-CJ5F-CtB.js +2 -0
- package/dist/core/web/public/next/assets/capacity-strip-model-CJ5F-CtB.js.map +1 -0
- package/dist/core/web/public/next/assets/charts-Di0_Q980.js +2 -0
- package/dist/core/web/public/next/assets/charts-Di0_Q980.js.map +1 -0
- package/dist/core/web/public/next/assets/chat-pane-data-5MDEsLff.js +2 -0
- package/dist/core/web/public/next/assets/chat-pane-data-5MDEsLff.js.map +1 -0
- package/dist/core/web/public/next/assets/checkpoint-queries-6thqsAiE.js +2 -0
- package/dist/core/web/public/next/assets/checkpoint-queries-6thqsAiE.js.map +1 -0
- package/dist/core/web/public/next/assets/cloud-model-CzKeuxfm.js +2 -0
- package/dist/core/web/public/next/assets/cloud-model-CzKeuxfm.js.map +1 -0
- package/dist/core/web/public/next/assets/cloud-queries-DrR_QeUK.js +2 -0
- package/dist/core/web/public/next/assets/cloud-queries-DrR_QeUK.js.map +1 -0
- package/dist/core/web/public/next/assets/command-catalog-COH2G2xv.js +2 -0
- package/dist/core/web/public/next/assets/command-catalog-COH2G2xv.js.map +1 -0
- package/dist/core/web/public/next/assets/composer-queries-GxFt1UQm.js +2 -0
- package/dist/core/web/public/next/assets/composer-queries-GxFt1UQm.js.map +1 -0
- package/dist/core/web/public/next/assets/composer-state-DTAoie2b.js +2 -0
- package/dist/core/web/public/next/assets/composer-state-DTAoie2b.js.map +1 -0
- package/dist/core/web/public/next/assets/connectivity-zM4_O-XZ.js +2 -0
- package/dist/core/web/public/next/assets/connectivity-zM4_O-XZ.js.map +1 -0
- package/dist/core/web/public/next/assets/context-model-CKXUZd0O.js +2 -0
- package/dist/core/web/public/next/assets/context-model-CKXUZd0O.js.map +1 -0
- package/dist/core/web/public/next/assets/context-model-DYkDKK6C.js +3 -0
- package/dist/core/web/public/next/assets/context-model-DYkDKK6C.js.map +1 -0
- package/dist/core/web/public/next/assets/context-queries-D0Aydl5L.js +2 -0
- package/dist/core/web/public/next/assets/context-queries-D0Aydl5L.js.map +1 -0
- package/dist/core/web/public/next/assets/control-queries-C5uQTzJi.js +2 -0
- package/dist/core/web/public/next/assets/control-queries-C5uQTzJi.js.map +1 -0
- package/dist/core/web/public/next/assets/copy-setup-IHGsNfkz.js +2 -0
- package/dist/core/web/public/next/assets/copy-setup-IHGsNfkz.js.map +1 -0
- package/dist/core/web/public/next/assets/deep-link-DgTIAuc2.js +2 -0
- package/dist/core/web/public/next/assets/deep-link-DgTIAuc2.js.map +1 -0
- package/dist/core/web/public/next/assets/device-permissions-BplZgouU.js +2 -0
- package/dist/core/web/public/next/assets/device-permissions-BplZgouU.js.map +1 -0
- package/dist/core/web/public/next/assets/devin-queries-Bltl6Jz2.js +2 -0
- package/dist/core/web/public/next/assets/devin-queries-Bltl6Jz2.js.map +1 -0
- package/dist/core/web/public/next/assets/dock-icons-DPXFt10d.js +2 -0
- package/dist/core/web/public/next/assets/dock-icons-DPXFt10d.js.map +1 -0
- package/dist/core/web/public/next/assets/dock-panes-DNSv-1Tq.js +2 -0
- package/dist/core/web/public/next/assets/dock-panes-DNSv-1Tq.js.map +1 -0
- package/dist/core/web/public/next/assets/fleet-control-queries-DZEa-aFz.js +2 -0
- package/dist/core/web/public/next/assets/fleet-control-queries-DZEa-aFz.js.map +1 -0
- package/dist/core/web/public/next/assets/fleet-model-D4n8ErhA.js +2 -0
- package/dist/core/web/public/next/assets/fleet-model-D4n8ErhA.js.map +1 -0
- package/dist/core/web/public/next/assets/fleet-queries-BO1MHMFz.js +2 -0
- package/dist/core/web/public/next/assets/fleet-queries-BO1MHMFz.js.map +1 -0
- package/dist/core/web/public/next/assets/fleet-state-yM0mV9_P.js +3 -0
- package/dist/core/web/public/next/assets/fleet-state-yM0mV9_P.js.map +1 -0
- package/dist/core/web/public/next/assets/focus-trap-C2rynI8q.js +2 -0
- package/dist/core/web/public/next/assets/focus-trap-C2rynI8q.js.map +1 -0
- package/dist/core/web/public/next/assets/format-V6IiIMAL.js +2 -0
- package/dist/core/web/public/next/assets/format-V6IiIMAL.js.map +1 -0
- package/dist/core/web/public/next/assets/git-model-rVA0Jd0g.js +5 -0
- package/dist/core/web/public/next/assets/git-model-rVA0Jd0g.js.map +1 -0
- package/dist/core/web/public/next/assets/global-CYfRwH6t.js +3 -0
- package/dist/core/web/public/next/assets/global-CYfRwH6t.js.map +1 -0
- package/dist/core/web/public/next/assets/guarded-action-A9ZsIE8S.js +3 -0
- package/dist/core/web/public/next/assets/guarded-action-A9ZsIE8S.js.map +1 -0
- package/dist/core/web/public/next/assets/guarded-runners-xMakDn92.js +2 -0
- package/dist/core/web/public/next/assets/guarded-runners-xMakDn92.js.map +1 -0
- package/dist/core/web/public/next/assets/headroom-C4dyfw7P.js +2 -0
- package/dist/core/web/public/next/assets/headroom-C4dyfw7P.js.map +1 -0
- package/dist/core/web/public/next/assets/health-queries-BHoSyIcL.js +2 -0
- package/dist/core/web/public/next/assets/health-queries-BHoSyIcL.js.map +1 -0
- package/dist/core/web/public/next/assets/icons-BBm_Cy62.js +2 -0
- package/dist/core/web/public/next/assets/icons-BBm_Cy62.js.map +1 -0
- package/dist/core/web/public/next/assets/index-_izD07R9.js +11 -0
- package/dist/core/web/public/next/assets/index-_izD07R9.js.map +1 -0
- package/dist/core/web/public/next/assets/jev-queries-D-AMM0sw.js +2 -0
- package/dist/core/web/public/next/assets/jev-queries-D-AMM0sw.js.map +1 -0
- package/dist/core/web/public/next/assets/ladder-queries-BIpJVqxu.js +2 -0
- package/dist/core/web/public/next/assets/ladder-queries-BIpJVqxu.js.map +1 -0
- package/dist/core/web/public/next/assets/leader-focus-Dh4gXTSi.js +2 -0
- package/dist/core/web/public/next/assets/leader-focus-Dh4gXTSi.js.map +1 -0
- package/dist/core/web/public/next/assets/live-model-D97AfBFz.js +2 -0
- package/dist/core/web/public/next/assets/live-model-D97AfBFz.js.map +1 -0
- package/dist/core/web/public/next/assets/mind.module-rVKz51LB.js +2 -0
- package/dist/core/web/public/next/assets/mind.module-rVKz51LB.js.map +1 -0
- package/dist/core/web/public/next/assets/mobile-actions-V26-lGbH.js +2 -0
- package/dist/core/web/public/next/assets/mobile-actions-V26-lGbH.js.map +1 -0
- package/dist/core/web/public/next/assets/mobile-toast-9-WQbWQu.js +2 -0
- package/dist/core/web/public/next/assets/mobile-toast-9-WQbWQu.js.map +1 -0
- package/dist/core/web/public/next/assets/multimodel-flows-D309YXSk.js +7 -0
- package/dist/core/web/public/next/assets/multimodel-flows-D309YXSk.js.map +1 -0
- package/dist/core/web/public/next/assets/multimodel-queries-BuslyWtq.js +2 -0
- package/dist/core/web/public/next/assets/multimodel-queries-BuslyWtq.js.map +1 -0
- package/dist/core/web/public/next/assets/mutations-B9AZoqNR.js +2 -0
- package/dist/core/web/public/next/assets/mutations-B9AZoqNR.js.map +1 -0
- package/dist/core/web/public/next/assets/nav-DC0ynjdb.js +2 -0
- package/dist/core/web/public/next/assets/nav-DC0ynjdb.js.map +1 -0
- package/dist/core/web/public/next/assets/needs-you-actions-BOHN9fg7.js +2 -0
- package/dist/core/web/public/next/assets/needs-you-actions-BOHN9fg7.js.map +1 -0
- package/dist/core/web/public/next/assets/needs-you-model-ChGg3r5r.js +2 -0
- package/dist/core/web/public/next/assets/needs-you-model-ChGg3r5r.js.map +1 -0
- package/dist/core/web/public/next/assets/open-terminal-5F1FNUEB.js +2 -0
- package/dist/core/web/public/next/assets/open-terminal-5F1FNUEB.js.map +1 -0
- package/dist/core/web/public/next/assets/open-terminal-request-SjPIZmAt.js +2 -0
- package/dist/core/web/public/next/assets/open-terminal-request-SjPIZmAt.js.map +1 -0
- package/dist/core/web/public/next/assets/overnight-queries-Dc46kMfg.js +2 -0
- package/dist/core/web/public/next/assets/overnight-queries-Dc46kMfg.js.map +1 -0
- package/dist/core/web/public/next/assets/palette-handoff-xkWF9v2M.js +2 -0
- package/dist/core/web/public/next/assets/palette-handoff-xkWF9v2M.js.map +1 -0
- package/dist/core/web/public/next/assets/panes-DOXM13lF.js +3 -0
- package/dist/core/web/public/next/assets/panes-DOXM13lF.js.map +1 -0
- package/dist/core/web/public/next/assets/path-display-C6BmdnBS.js +2 -0
- package/dist/core/web/public/next/assets/path-display-C6BmdnBS.js.map +1 -0
- package/dist/core/web/public/next/assets/percent-text-CSk89zQF.js +2 -0
- package/dist/core/web/public/next/assets/percent-text-CSk89zQF.js.map +1 -0
- package/dist/core/web/public/next/assets/playbook-composer-Bz-fFxXW.js +2 -0
- package/dist/core/web/public/next/assets/playbook-composer-Bz-fFxXW.js.map +1 -0
- package/dist/core/web/public/next/assets/playbook-focus-BXu0yrHF.js +2 -0
- package/dist/core/web/public/next/assets/playbook-focus-BXu0yrHF.js.map +1 -0
- package/dist/core/web/public/next/assets/playbooks-queries-Cpnl3avl.js +2 -0
- package/dist/core/web/public/next/assets/playbooks-queries-Cpnl3avl.js.map +1 -0
- package/dist/core/web/public/next/assets/preloaded-E_jepvvg.js +2 -0
- package/dist/core/web/public/next/assets/preloaded-E_jepvvg.js.map +1 -0
- package/dist/core/web/public/next/assets/primitives-Bynv7bPl.js +1 -0
- package/dist/core/web/public/next/assets/pwa-D2lyCiGV.js +2 -0
- package/dist/core/web/public/next/assets/pwa-D2lyCiGV.js.map +1 -0
- package/dist/core/web/public/next/assets/queries-C0Bs3TOo.js +2 -0
- package/dist/core/web/public/next/assets/queries-C0Bs3TOo.js.map +1 -0
- package/dist/core/web/public/next/assets/reasoning-pref-DDPtfTM3.js +2 -0
- package/dist/core/web/public/next/assets/reasoning-pref-DDPtfTM3.js.map +1 -0
- package/dist/core/web/public/next/assets/remote-session-Dj27m1xb.js +3 -0
- package/dist/core/web/public/next/assets/remote-session-Dj27m1xb.js.map +1 -0
- package/dist/core/web/public/next/assets/resolved-store-B2iJa5C2.js +2 -0
- package/dist/core/web/public/next/assets/resolved-store-B2iJa5C2.js.map +1 -0
- package/dist/core/web/public/next/assets/resources-queries-pVRhOTEt.js +2 -0
- package/dist/core/web/public/next/assets/resources-queries-pVRhOTEt.js.map +1 -0
- package/dist/core/web/public/next/assets/reveal-anchor-BAMmxMeu.js +2 -0
- package/dist/core/web/public/next/assets/reveal-anchor-BAMmxMeu.js.map +1 -0
- package/dist/core/web/public/next/assets/rolldown-runtime-hePW80VL.js +1 -0
- package/dist/core/web/public/next/assets/seat-readiness-a5B9iqP-.js +2 -0
- package/dist/core/web/public/next/assets/seat-readiness-a5B9iqP-.js.map +1 -0
- package/dist/core/web/public/next/assets/seat-subscription-Cut6eC-8.js +2 -0
- package/dist/core/web/public/next/assets/seat-subscription-Cut6eC-8.js.map +1 -0
- package/dist/core/web/public/next/assets/sheet-BxZSmdad.js +2 -0
- package/dist/core/web/public/next/assets/sheet-BxZSmdad.js.map +1 -0
- package/dist/core/web/public/next/assets/sidebar-model-COzIPSiP.js +2 -0
- package/dist/core/web/public/next/assets/sidebar-model-COzIPSiP.js.map +1 -0
- package/dist/core/web/public/next/assets/slots-BJc3RJkV.js +3 -0
- package/dist/core/web/public/next/assets/slots-BJc3RJkV.js.map +1 -0
- package/dist/core/web/public/next/assets/sources-queries-DCKiXNAt.js +4 -0
- package/dist/core/web/public/next/assets/sources-queries-DCKiXNAt.js.map +1 -0
- package/dist/core/web/public/next/assets/sse-It4xa040.js +2 -0
- package/dist/core/web/public/next/assets/sse-It4xa040.js.map +1 -0
- package/dist/core/web/public/next/assets/surface-data-NFl_uS--.js +2 -0
- package/dist/core/web/public/next/assets/surface-data-NFl_uS--.js.map +1 -0
- package/dist/core/web/public/next/assets/surface-prefetch-jMaLNI6z.js +2 -0
- package/dist/core/web/public/next/assets/surface-prefetch-jMaLNI6z.js.map +1 -0
- package/dist/core/web/public/next/assets/tasks-model-CbmPgWL8.js +2 -0
- package/dist/core/web/public/next/assets/tasks-model-CbmPgWL8.js.map +1 -0
- package/dist/core/web/public/next/assets/terminal-client-DTXAf2-x.js +2 -0
- package/dist/core/web/public/next/assets/terminal-client-DTXAf2-x.js.map +1 -0
- package/dist/core/web/public/next/assets/terminal-icons-qBCOwqu-.js +2 -0
- package/dist/core/web/public/next/assets/terminal-icons-qBCOwqu-.js.map +1 -0
- package/dist/core/web/public/next/assets/terminal-view-CksH3CsK.js +6 -0
- package/dist/core/web/public/next/assets/terminal-view-CksH3CsK.js.map +1 -0
- package/dist/core/web/public/next/assets/thread-data-C8z55msn.js +2 -0
- package/dist/core/web/public/next/assets/thread-data-C8z55msn.js.map +1 -0
- package/dist/core/web/public/next/assets/ui-parts-CcpmRBwj.js +2 -0
- package/dist/core/web/public/next/assets/ui-parts-CcpmRBwj.js.map +1 -0
- package/dist/core/web/public/next/assets/usage-queries-BxrTLCaJ.js +2 -0
- package/dist/core/web/public/next/assets/usage-queries-BxrTLCaJ.js.map +1 -0
- package/dist/core/web/public/next/assets/use-chat-activity-O8I0Ho0m.js +2 -0
- package/dist/core/web/public/next/assets/use-chat-activity-O8I0Ho0m.js.map +1 -0
- package/dist/core/web/public/next/assets/use-guarded-action-BZ6Bye9l.js +2 -0
- package/dist/core/web/public/next/assets/use-guarded-action-BZ6Bye9l.js.map +1 -0
- package/dist/core/web/public/next/assets/use-ticker-CUsNALmP.js +2 -0
- package/dist/core/web/public/next/assets/use-ticker-CUsNALmP.js.map +1 -0
- package/dist/core/web/public/next/assets/use-token-gate-DgnO9fbv.js +2 -0
- package/dist/core/web/public/next/assets/use-token-gate-DgnO9fbv.js.map +1 -0
- package/dist/core/web/public/next/assets/useAutoSeat-CIEXM-Q5.js +2 -0
- package/dist/core/web/public/next/assets/useAutoSeat-CIEXM-Q5.js.map +1 -0
- package/dist/core/web/public/next/assets/useOnboarding-BAmRBxkI.js +2 -0
- package/dist/core/web/public/next/assets/useOnboarding-BAmRBxkI.js.map +1 -0
- package/dist/core/web/public/next/assets/useSeatHealth-DPkSSddF.js +2 -0
- package/dist/core/web/public/next/assets/useSeatHealth-DPkSSddF.js.map +1 -0
- package/dist/core/web/public/next/assets/useSeatsRefresh-CpsRhfmt.js +2 -0
- package/dist/core/web/public/next/assets/useSeatsRefresh-CpsRhfmt.js.map +1 -0
- package/dist/core/web/public/next/assets/useVerseSession-DeW1iFpw.js +2 -0
- package/dist/core/web/public/next/assets/useVerseSession-DeW1iFpw.js.map +1 -0
- package/dist/core/web/public/next/assets/useVerseTranscript-CvUqjRmZ.js +2 -0
- package/dist/core/web/public/next/assets/useVerseTranscript-CvUqjRmZ.js.map +1 -0
- package/dist/core/web/public/next/assets/verse-bootstrap-query-ANtL2OPN.js +2 -0
- package/dist/core/web/public/next/assets/verse-bootstrap-query-ANtL2OPN.js.map +1 -0
- package/dist/core/web/public/next/assets/verse-icons-C92Qt7rh.js +2 -0
- package/dist/core/web/public/next/assets/verse-icons-C92Qt7rh.js.map +1 -0
- package/dist/core/web/public/next/assets/verse-model-DAOz9LrY.js +2 -0
- package/dist/core/web/public/next/assets/verse-model-DAOz9LrY.js.map +1 -0
- package/dist/core/web/public/next/assets/warmup-B2DWWeeC.js +3 -0
- package/dist/core/web/public/next/assets/warmup-B2DWWeeC.js.map +1 -0
- package/dist/core/web/public/next/assets/why-seat-model-Bn6O26JJ.js +2 -0
- package/dist/core/web/public/next/assets/why-seat-model-Bn6O26JJ.js.map +1 -0
- package/dist/core/web/public/next/assets/wiki-focus-CwC-yoT9.js +2 -0
- package/dist/core/web/public/next/assets/wiki-focus-CwC-yoT9.js.map +1 -0
- package/dist/core/web/public/next/assets/workspace-model-C-q_I8xN.js +2 -0
- package/dist/core/web/public/next/assets/workspace-model-C-q_I8xN.js.map +1 -0
- package/dist/core/web/public/next/index.html +2 -1
- package/dist/core/web/remote-gateway-policy.js +5 -0
- package/dist/core/web/remote-gateway-policy.js.map +1 -1
- package/dist/core/web/static.d.ts +4 -3
- package/dist/core/web/static.js +8 -5
- package/dist/core/web/static.js.map +1 -1
- package/dist/release-dependency-inventory.json +1 -1
- package/node_modules/fast-uri/index.js +20 -5
- package/node_modules/fast-uri/lib/utils.js +8 -1
- package/node_modules/fast-uri/package.json +1 -1
- package/node_modules/fast-uri/test/component-safe-serialization.test.js +58 -0
- package/node_modules/fast-uri/test/ipv6-validation.test.js +34 -0
- package/node_modules/ip-address/README.md +134 -134
- package/node_modules/ip-address/dist/address-error.d.ts +11 -0
- package/node_modules/ip-address/dist/address-error.js.map +1 -1
- package/node_modules/ip-address/dist/ipv4.d.ts +22 -6
- package/node_modules/ip-address/dist/ipv4.js +22 -6
- package/node_modules/ip-address/dist/ipv4.js.map +1 -1
- package/node_modules/ip-address/dist/ipv6.d.ts +26 -8
- package/node_modules/ip-address/dist/ipv6.js +46 -29
- package/node_modules/ip-address/dist/ipv6.js.map +1 -1
- package/node_modules/ip-address/dist/v6/constants.js +1 -0
- package/node_modules/ip-address/dist/v6/constants.js.map +1 -1
- package/node_modules/ip-address/package.json +1 -1
- package/package.json +5 -4
- package/dist/core/web/public/next/assets/ActionMenu-Bia8Re6u.js +0 -2
- package/dist/core/web/public/next/assets/ActionMenu-Bia8Re6u.js.map +0 -1
- package/dist/core/web/public/next/assets/Advanced-C1LtnA8c.js +0 -2
- package/dist/core/web/public/next/assets/Advanced-C1LtnA8c.js.map +0 -1
- package/dist/core/web/public/next/assets/AgentDetailScreen-DuoXrbol.js +0 -2
- package/dist/core/web/public/next/assets/AgentDetailScreen-DuoXrbol.js.map +0 -1
- package/dist/core/web/public/next/assets/AgentToolsSheet-Bdfk4SF-.js +0 -2
- package/dist/core/web/public/next/assets/AgentToolsSheet-Bdfk4SF-.js.map +0 -1
- package/dist/core/web/public/next/assets/AgentToolsStrip-BN1otiqC.js +0 -2
- package/dist/core/web/public/next/assets/AgentToolsStrip-BN1otiqC.js.map +0 -1
- package/dist/core/web/public/next/assets/AgentsScreen-BxHFaI48.js +0 -2
- package/dist/core/web/public/next/assets/AgentsScreen-BxHFaI48.js.map +0 -1
- package/dist/core/web/public/next/assets/AgentsSection-mYIA8Lyk.js +0 -3
- package/dist/core/web/public/next/assets/AgentsSection-mYIA8Lyk.js.map +0 -1
- package/dist/core/web/public/next/assets/App-DebYuj1v.js +0 -8
- package/dist/core/web/public/next/assets/App-DebYuj1v.js.map +0 -1
- package/dist/core/web/public/next/assets/AppsSection-W30duGQA.js +0 -2
- package/dist/core/web/public/next/assets/AppsSection-W30duGQA.js.map +0 -1
- package/dist/core/web/public/next/assets/AreaTrend-ZnnIjBGU.js +0 -2
- package/dist/core/web/public/next/assets/AreaTrend-ZnnIjBGU.js.map +0 -1
- package/dist/core/web/public/next/assets/AutomationsSection-B4N0V-vz.js +0 -2
- package/dist/core/web/public/next/assets/AutomationsSection-B4N0V-vz.js.map +0 -1
- package/dist/core/web/public/next/assets/AutonomyOffState-C9S_FXc0.js +0 -3
- package/dist/core/web/public/next/assets/AutonomyOffState-C9S_FXc0.js.map +0 -1
- package/dist/core/web/public/next/assets/AutonomySection-oMQfNEQN.js +0 -2
- package/dist/core/web/public/next/assets/AutonomySection-oMQfNEQN.js.map +0 -1
- package/dist/core/web/public/next/assets/AutonomyStatus-CdHOyhrV.js +0 -2
- package/dist/core/web/public/next/assets/AutonomyStatus-CdHOyhrV.js.map +0 -1
- package/dist/core/web/public/next/assets/BranchBar-Bo5b8-hr.js +0 -2
- package/dist/core/web/public/next/assets/BranchBar-Bo5b8-hr.js.map +0 -1
- package/dist/core/web/public/next/assets/BrowserPanel-D02omBK0.js +0 -7
- package/dist/core/web/public/next/assets/BrowserPanel-D02omBK0.js.map +0 -1
- package/dist/core/web/public/next/assets/BudgetControl-BtPTi8qI.js +0 -2
- package/dist/core/web/public/next/assets/BudgetControl-BtPTi8qI.js.map +0 -1
- package/dist/core/web/public/next/assets/Button-DP2ImS5n.js +0 -2
- package/dist/core/web/public/next/assets/Button-DP2ImS5n.js.map +0 -1
- package/dist/core/web/public/next/assets/CapacityStrip-ChYPcr23.js +0 -2
- package/dist/core/web/public/next/assets/CapacityStrip-ChYPcr23.js.map +0 -1
- package/dist/core/web/public/next/assets/ChangesPaneHost-C53_94Kn.js +0 -16
- package/dist/core/web/public/next/assets/ChangesPaneHost-C53_94Kn.js.map +0 -1
- package/dist/core/web/public/next/assets/ChartFrame-CtFLETWA.js +0 -2
- package/dist/core/web/public/next/assets/ChartFrame-CtFLETWA.js.map +0 -1
- package/dist/core/web/public/next/assets/ChatPanes-CyAK9VAi.js +0 -2
- package/dist/core/web/public/next/assets/ChatPanes-CyAK9VAi.js.map +0 -1
- package/dist/core/web/public/next/assets/ChatSection-DV9smoPe.js +0 -3
- package/dist/core/web/public/next/assets/ChatSection-DV9smoPe.js.map +0 -1
- package/dist/core/web/public/next/assets/ChecksPanel-B6T2sjc_.js +0 -5
- package/dist/core/web/public/next/assets/ChecksPanel-B6T2sjc_.js.map +0 -1
- package/dist/core/web/public/next/assets/CloudBudgetForm-D8RbdAC7.js +0 -2
- package/dist/core/web/public/next/assets/CloudBudgetForm-D8RbdAC7.js.map +0 -1
- package/dist/core/web/public/next/assets/CommandPalette-C04gGTES.js +0 -3
- package/dist/core/web/public/next/assets/CommandPalette-C04gGTES.js.map +0 -1
- package/dist/core/web/public/next/assets/CommandSection-Be8VFAEU.js +0 -3
- package/dist/core/web/public/next/assets/CommandSection-Be8VFAEU.js.map +0 -1
- package/dist/core/web/public/next/assets/CommandWorkflowForm-D5A7c2PE.js +0 -9
- package/dist/core/web/public/next/assets/CommandWorkflowForm-D5A7c2PE.js.map +0 -1
- package/dist/core/web/public/next/assets/CommandWorkflowPicker-CGrRWfzQ.js +0 -3
- package/dist/core/web/public/next/assets/CommandWorkflowPicker-CGrRWfzQ.js.map +0 -1
- package/dist/core/web/public/next/assets/CompareDialog-C2ryiEtF.js +0 -4
- package/dist/core/web/public/next/assets/CompareDialog-C2ryiEtF.js.map +0 -1
- package/dist/core/web/public/next/assets/ComputerControl-C4oW7Zim.js +0 -2
- package/dist/core/web/public/next/assets/ComputerControl-C4oW7Zim.js.map +0 -1
- package/dist/core/web/public/next/assets/ConfirmDialog-J8CszPmj.js +0 -2
- package/dist/core/web/public/next/assets/ConfirmDialog-J8CszPmj.js.map +0 -1
- package/dist/core/web/public/next/assets/DeleteChatDialog-BT5y9cR2.js +0 -2
- package/dist/core/web/public/next/assets/DeleteChatDialog-BT5y9cR2.js.map +0 -1
- package/dist/core/web/public/next/assets/DevinStopDialog-CADdSqha.js +0 -2
- package/dist/core/web/public/next/assets/DevinStopDialog-CADdSqha.js.map +0 -1
- package/dist/core/web/public/next/assets/Dialog-BYIKNPcH.js +0 -2
- package/dist/core/web/public/next/assets/Dialog-BYIKNPcH.js.map +0 -1
- package/dist/core/web/public/next/assets/DiffPane-D_CC9a5x.js +0 -2
- package/dist/core/web/public/next/assets/DiffPane-D_CC9a5x.js.map +0 -1
- package/dist/core/web/public/next/assets/DiffViewer-DjtLl7ro.js +0 -2
- package/dist/core/web/public/next/assets/DiffViewer-DjtLl7ro.js.map +0 -1
- package/dist/core/web/public/next/assets/DockHost-BHbosAjM.js +0 -2
- package/dist/core/web/public/next/assets/DockHost-BHbosAjM.js.map +0 -1
- package/dist/core/web/public/next/assets/EmptyState-BEXDoNZd.js +0 -2
- package/dist/core/web/public/next/assets/EmptyState-BEXDoNZd.js.map +0 -1
- package/dist/core/web/public/next/assets/Epistemic-BPBAmLNh.js +0 -2
- package/dist/core/web/public/next/assets/Epistemic-BPBAmLNh.js.map +0 -1
- package/dist/core/web/public/next/assets/EvidenceTimeline-D2nuo6Oo.js +0 -2
- package/dist/core/web/public/next/assets/EvidenceTimeline-D2nuo6Oo.js.map +0 -1
- package/dist/core/web/public/next/assets/FilesPane-BQBcWyxr.js +0 -2
- package/dist/core/web/public/next/assets/FilesPane-BQBcWyxr.js.map +0 -1
- package/dist/core/web/public/next/assets/FleetScreen-YXDuVwKd.js +0 -2
- package/dist/core/web/public/next/assets/FleetScreen-YXDuVwKd.js.map +0 -1
- package/dist/core/web/public/next/assets/FleetSection-D2M7u9zG.js +0 -5
- package/dist/core/web/public/next/assets/FleetSection-D2M7u9zG.js.map +0 -1
- package/dist/core/web/public/next/assets/Funnel-rnPUaoN7.js +0 -2
- package/dist/core/web/public/next/assets/Funnel-rnPUaoN7.js.map +0 -1
- package/dist/core/web/public/next/assets/GearTray-Cc14h572.js +0 -2
- package/dist/core/web/public/next/assets/GearTray-Cc14h572.js.map +0 -1
- package/dist/core/web/public/next/assets/GitDialogs-BSTlyNJR.js +0 -2
- package/dist/core/web/public/next/assets/GitDialogs-BSTlyNJR.js.map +0 -1
- package/dist/core/web/public/next/assets/GrowthSection-BK63EJn9.js +0 -3
- package/dist/core/web/public/next/assets/GrowthSection-BK63EJn9.js.map +0 -1
- package/dist/core/web/public/next/assets/HandoffDialog-DD4M-C7v.js +0 -2
- package/dist/core/web/public/next/assets/HandoffDialog-DD4M-C7v.js.map +0 -1
- package/dist/core/web/public/next/assets/HomeBody-OEhTpkk9.js +0 -3
- package/dist/core/web/public/next/assets/HomeBody-OEhTpkk9.js.map +0 -1
- package/dist/core/web/public/next/assets/HomeSeats-CJCxRUlD.js +0 -2
- package/dist/core/web/public/next/assets/HomeSeats-CJCxRUlD.js.map +0 -1
- package/dist/core/web/public/next/assets/Input-BEF-ScuG.js +0 -2
- package/dist/core/web/public/next/assets/Input-BEF-ScuG.js.map +0 -1
- package/dist/core/web/public/next/assets/LaunchDialog-CERI717u.js +0 -9
- package/dist/core/web/public/next/assets/LaunchDialog-CERI717u.js.map +0 -1
- package/dist/core/web/public/next/assets/LeaderCard-3P95vgVU.js +0 -2
- package/dist/core/web/public/next/assets/LeaderCard-3P95vgVU.js.map +0 -1
- package/dist/core/web/public/next/assets/LeaderConversation-DjZS2PrX.js +0 -3
- package/dist/core/web/public/next/assets/LeaderConversation-DjZS2PrX.js.map +0 -1
- package/dist/core/web/public/next/assets/LeaderScreen-Dw5jDfWv.js +0 -2
- package/dist/core/web/public/next/assets/LeaderScreen-Dw5jDfWv.js.map +0 -1
- package/dist/core/web/public/next/assets/LessonsPanel-Wy6TVWEv.js +0 -2
- package/dist/core/web/public/next/assets/LessonsPanel-Wy6TVWEv.js.map +0 -1
- package/dist/core/web/public/next/assets/LiveTimer-c18lVIBC.js +0 -2
- package/dist/core/web/public/next/assets/LiveTimer-c18lVIBC.js.map +0 -1
- package/dist/core/web/public/next/assets/LocalSeatBadge-BfUUuXE5.js +0 -2
- package/dist/core/web/public/next/assets/LocalSeatBadge-BfUUuXE5.js.map +0 -1
- package/dist/core/web/public/next/assets/MatrixHeatmap-DTOumwCS.js +0 -2
- package/dist/core/web/public/next/assets/MatrixHeatmap-DTOumwCS.js.map +0 -1
- package/dist/core/web/public/next/assets/McpSection-D9eJislZ.js +0 -2
- package/dist/core/web/public/next/assets/McpSection-D9eJislZ.js.map +0 -1
- package/dist/core/web/public/next/assets/MessageMarkdown-Dkw4V24c.js +0 -3
- package/dist/core/web/public/next/assets/MessageMarkdown-Dkw4V24c.js.map +0 -1
- package/dist/core/web/public/next/assets/MessageMarkdownRenderer-VOSfkJpd.js +0 -72
- package/dist/core/web/public/next/assets/MessageMarkdownRenderer-VOSfkJpd.js.map +0 -1
- package/dist/core/web/public/next/assets/Meter-dMqKBaVV.js +0 -2
- package/dist/core/web/public/next/assets/Meter-dMqKBaVV.js.map +0 -1
- package/dist/core/web/public/next/assets/MicButton-92I_NsaT.js +0 -2
- package/dist/core/web/public/next/assets/MicButton-92I_NsaT.js.map +0 -1
- package/dist/core/web/public/next/assets/MindSection-CaGckJiR.js +0 -3
- package/dist/core/web/public/next/assets/MindSection-CaGckJiR.js.map +0 -1
- package/dist/core/web/public/next/assets/MobileComposer-BOFWmkku.js +0 -2
- package/dist/core/web/public/next/assets/MobileComposer-BOFWmkku.js.map +0 -1
- package/dist/core/web/public/next/assets/MobileGuardSheet-CY3Iulte.js +0 -2
- package/dist/core/web/public/next/assets/MobileGuardSheet-CY3Iulte.js.map +0 -1
- package/dist/core/web/public/next/assets/MobileRuntime-C-GtV4jT.js +0 -3
- package/dist/core/web/public/next/assets/MobileRuntime-C-GtV4jT.js.map +0 -1
- package/dist/core/web/public/next/assets/MoreScreen-BaH8iEnb.js +0 -2
- package/dist/core/web/public/next/assets/MoreScreen-BaH8iEnb.js.map +0 -1
- package/dist/core/web/public/next/assets/MultiModelBar-7DHuXGht.js +0 -7
- package/dist/core/web/public/next/assets/MultiModelBar-7DHuXGht.js.map +0 -1
- package/dist/core/web/public/next/assets/MutationTokenDialog-D522NXsm.js +0 -2
- package/dist/core/web/public/next/assets/MutationTokenDialog-D522NXsm.js.map +0 -1
- package/dist/core/web/public/next/assets/NeedsYouDrawer-6ud1RHOU.js +0 -3
- package/dist/core/web/public/next/assets/NeedsYouDrawer-6ud1RHOU.js.map +0 -1
- package/dist/core/web/public/next/assets/NeedsYouList-E-yy-xKE.js +0 -2
- package/dist/core/web/public/next/assets/NeedsYouList-E-yy-xKE.js.map +0 -1
- package/dist/core/web/public/next/assets/NeedsYouScreen-D13Q7iU8.js +0 -2
- package/dist/core/web/public/next/assets/NeedsYouScreen-D13Q7iU8.js.map +0 -1
- package/dist/core/web/public/next/assets/NewAgentScreen-BLtU1u-d.js +0 -2
- package/dist/core/web/public/next/assets/NewAgentScreen-BLtU1u-d.js.map +0 -1
- package/dist/core/web/public/next/assets/NewChatDialog-BL15LCaj.js +0 -4
- package/dist/core/web/public/next/assets/NewChatDialog-BL15LCaj.js.map +0 -1
- package/dist/core/web/public/next/assets/OnboardingFlow-7LRC7FlX.js +0 -3
- package/dist/core/web/public/next/assets/OnboardingFlow-7LRC7FlX.js.map +0 -1
- package/dist/core/web/public/next/assets/OnboardingGate-DRlv8QZ5.js +0 -3
- package/dist/core/web/public/next/assets/OnboardingGate-DRlv8QZ5.js.map +0 -1
- package/dist/core/web/public/next/assets/PlaybooksSection-D_uQ-NB3.js +0 -9
- package/dist/core/web/public/next/assets/PlaybooksSection-D_uQ-NB3.js.map +0 -1
- package/dist/core/web/public/next/assets/PreviewPane-DubyNi8H.js +0 -2
- package/dist/core/web/public/next/assets/PreviewPane-DubyNi8H.js.map +0 -1
- package/dist/core/web/public/next/assets/ProviderLogo-CWrojWjI.js +0 -2
- package/dist/core/web/public/next/assets/ProviderLogo-CWrojWjI.js.map +0 -1
- package/dist/core/web/public/next/assets/RailStatus-xjOcjL0v.js +0 -2
- package/dist/core/web/public/next/assets/RailStatus-xjOcjL0v.js.map +0 -1
- package/dist/core/web/public/next/assets/ReasoningPane-M7ZfvEc5.js +0 -2
- package/dist/core/web/public/next/assets/ReasoningPane-M7ZfvEc5.js.map +0 -1
- package/dist/core/web/public/next/assets/ReasoningSheet-RLLj2oys.js +0 -2
- package/dist/core/web/public/next/assets/ReasoningSheet-RLLj2oys.js.map +0 -1
- package/dist/core/web/public/next/assets/RefreshIndicator-CEMRNruu.js +0 -2
- package/dist/core/web/public/next/assets/RefreshIndicator-CEMRNruu.js.map +0 -1
- package/dist/core/web/public/next/assets/RemoteMobileApp-BcXsVw0z.js +0 -2
- package/dist/core/web/public/next/assets/RemoteMobileApp-BcXsVw0z.js.map +0 -1
- package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-BC_Q_i0I.js +0 -7
- package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-BC_Q_i0I.js.map +0 -1
- package/dist/core/web/public/next/assets/ResourcesChrome-CPcTYvZR.js +0 -3
- package/dist/core/web/public/next/assets/ResourcesChrome-CPcTYvZR.js.map +0 -1
- package/dist/core/web/public/next/assets/ResourcesDrawer-C6VzGCSv.js +0 -3
- package/dist/core/web/public/next/assets/ResourcesDrawer-C6VzGCSv.js.map +0 -1
- package/dist/core/web/public/next/assets/RouteErrorBoundary-Cc9GsjZz.js +0 -2
- package/dist/core/web/public/next/assets/RouteErrorBoundary-Cc9GsjZz.js.map +0 -1
- package/dist/core/web/public/next/assets/RunInCloudAction-P_hDsqjX.js +0 -2
- package/dist/core/web/public/next/assets/RunInCloudAction-P_hDsqjX.js.map +0 -1
- package/dist/core/web/public/next/assets/RunInDevinAction-CfNpQCP3.js +0 -2
- package/dist/core/web/public/next/assets/RunInDevinAction-CfNpQCP3.js.map +0 -1
- package/dist/core/web/public/next/assets/ScreenHost-BBYihlNQ.js +0 -3
- package/dist/core/web/public/next/assets/ScreenHost-BBYihlNQ.js.map +0 -1
- package/dist/core/web/public/next/assets/SeatSelector-DSd_pxg2.js +0 -3
- package/dist/core/web/public/next/assets/SeatSelector-DSd_pxg2.js.map +0 -1
- package/dist/core/web/public/next/assets/Segmented-CtwuFlbY.js +0 -2
- package/dist/core/web/public/next/assets/Segmented-CtwuFlbY.js.map +0 -1
- package/dist/core/web/public/next/assets/Select-zXMdgblm.js +0 -2
- package/dist/core/web/public/next/assets/Select-zXMdgblm.js.map +0 -1
- package/dist/core/web/public/next/assets/SessionGate-88QiSoXo.js +0 -2
- package/dist/core/web/public/next/assets/SessionGate-88QiSoXo.js.map +0 -1
- package/dist/core/web/public/next/assets/SessionInsightChip-CaPvisvI.js +0 -2
- package/dist/core/web/public/next/assets/SessionInsightChip-CaPvisvI.js.map +0 -1
- package/dist/core/web/public/next/assets/SessionSearch-Ch3veGxY.js +0 -2
- package/dist/core/web/public/next/assets/SessionSearch-Ch3veGxY.js.map +0 -1
- package/dist/core/web/public/next/assets/SettingsSection-DLSYZEFc.js +0 -2
- package/dist/core/web/public/next/assets/SettingsSection-DLSYZEFc.js.map +0 -1
- package/dist/core/web/public/next/assets/SetupChecklist-DFAVVLpJ.js +0 -2
- package/dist/core/web/public/next/assets/SetupChecklist-DFAVVLpJ.js.map +0 -1
- package/dist/core/web/public/next/assets/ShadowDecisions-Gtrbo4US.js +0 -3
- package/dist/core/web/public/next/assets/ShadowDecisions-Gtrbo4US.js.map +0 -1
- package/dist/core/web/public/next/assets/Sheet-D72WH4mP.js +0 -2
- package/dist/core/web/public/next/assets/Sheet-D72WH4mP.js.map +0 -1
- package/dist/core/web/public/next/assets/ShortcutsOverlay-DKetDlCR.js +0 -2
- package/dist/core/web/public/next/assets/ShortcutsOverlay-DKetDlCR.js.map +0 -1
- package/dist/core/web/public/next/assets/Sidebar-CqOJle0q.js +0 -3
- package/dist/core/web/public/next/assets/Sidebar-CqOJle0q.js.map +0 -1
- package/dist/core/web/public/next/assets/SkipToContent-C7UObcP2.js +0 -2
- package/dist/core/web/public/next/assets/SkipToContent-C7UObcP2.js.map +0 -1
- package/dist/core/web/public/next/assets/Slider-Bi5q-21C.js +0 -2
- package/dist/core/web/public/next/assets/Slider-Bi5q-21C.js.map +0 -1
- package/dist/core/web/public/next/assets/SourcesPane-D7Raaor0.js +0 -2
- package/dist/core/web/public/next/assets/SourcesPane-D7Raaor0.js.map +0 -1
- package/dist/core/web/public/next/assets/SourcesPanel-CCSdY5Os.js +0 -2
- package/dist/core/web/public/next/assets/SourcesPanel-CCSdY5Os.js.map +0 -1
- package/dist/core/web/public/next/assets/StatTile-BS_dzInS.js +0 -2
- package/dist/core/web/public/next/assets/StatTile-BS_dzInS.js.map +0 -1
- package/dist/core/web/public/next/assets/StatusBadge-CJbb9DhR.js +0 -2
- package/dist/core/web/public/next/assets/StatusBadge-CJbb9DhR.js.map +0 -1
- package/dist/core/web/public/next/assets/StepBand-Bfj1YYTl.js +0 -2
- package/dist/core/web/public/next/assets/StepBand-Bfj1YYTl.js.map +0 -1
- package/dist/core/web/public/next/assets/Surface-CV-NXGIM.js +0 -2
- package/dist/core/web/public/next/assets/Surface-CV-NXGIM.js.map +0 -1
- package/dist/core/web/public/next/assets/Swimlane-DbUp4tjD.js +0 -2
- package/dist/core/web/public/next/assets/Swimlane-DbUp4tjD.js.map +0 -1
- package/dist/core/web/public/next/assets/Switch-BtEo9Cku.js +0 -2
- package/dist/core/web/public/next/assets/Switch-BtEo9Cku.js.map +0 -1
- package/dist/core/web/public/next/assets/Tag-CMFqY2MP.js +0 -2
- package/dist/core/web/public/next/assets/Tag-CMFqY2MP.js.map +0 -1
- package/dist/core/web/public/next/assets/TerminalPane-BCjlhc3t.js +0 -26
- package/dist/core/web/public/next/assets/TerminalPane-BCjlhc3t.js.map +0 -1
- package/dist/core/web/public/next/assets/TerminalPane-DIwGSCA9.js +0 -3
- package/dist/core/web/public/next/assets/TerminalPane-DIwGSCA9.js.map +0 -1
- package/dist/core/web/public/next/assets/ThinkingBlock-Db8qnuKz.js +0 -2
- package/dist/core/web/public/next/assets/ThinkingBlock-Db8qnuKz.js.map +0 -1
- package/dist/core/web/public/next/assets/UniverseConsoleApp-ksreONXM.js +0 -2
- package/dist/core/web/public/next/assets/UniverseConsoleApp-ksreONXM.js.map +0 -1
- package/dist/core/web/public/next/assets/UniverseView-CfT9Dsl7.js +0 -9
- package/dist/core/web/public/next/assets/UniverseView-CfT9Dsl7.js.map +0 -1
- package/dist/core/web/public/next/assets/UsageSection-DypcdQys.js +0 -3
- package/dist/core/web/public/next/assets/UsageSection-DypcdQys.js.map +0 -1
- package/dist/core/web/public/next/assets/UsePlaybookAction-Bxwqrpwe.js +0 -2
- package/dist/core/web/public/next/assets/UsePlaybookAction-Bxwqrpwe.js.map +0 -1
- package/dist/core/web/public/next/assets/VerseConsoleApp-kFOEmnGC.js +0 -3
- package/dist/core/web/public/next/assets/VerseConsoleApp-kFOEmnGC.js.map +0 -1
- package/dist/core/web/public/next/assets/VerseMobileApp-BTGF5yuZ.js +0 -3
- package/dist/core/web/public/next/assets/VerseMobileApp-BTGF5yuZ.js.map +0 -1
- package/dist/core/web/public/next/assets/VerseShared-_pMXKs8m.js +0 -2
- package/dist/core/web/public/next/assets/VerseShared-_pMXKs8m.js.map +0 -1
- package/dist/core/web/public/next/assets/VoiceHud-B_hiHfnQ.js +0 -2
- package/dist/core/web/public/next/assets/VoiceHud-B_hiHfnQ.js.map +0 -1
- package/dist/core/web/public/next/assets/VoiceInput-B7yrGchr.js +0 -2
- package/dist/core/web/public/next/assets/VoiceInput-B7yrGchr.js.map +0 -1
- package/dist/core/web/public/next/assets/WikiSection-BXu4aZyr.js +0 -2
- package/dist/core/web/public/next/assets/WikiSection-BXu4aZyr.js.map +0 -1
- package/dist/core/web/public/next/assets/Workspace-BYT3iuNM.js +0 -6
- package/dist/core/web/public/next/assets/Workspace-BYT3iuNM.js.map +0 -1
- package/dist/core/web/public/next/assets/actions-CyO4R-IO.js +0 -2
- package/dist/core/web/public/next/assets/actions-CyO4R-IO.js.map +0 -1
- package/dist/core/web/public/next/assets/agent-tools-client-FgVNokGh.js +0 -2
- package/dist/core/web/public/next/assets/agent-tools-client-FgVNokGh.js.map +0 -1
- package/dist/core/web/public/next/assets/agent-transcript-model-CRa_I3eR.js +0 -7
- package/dist/core/web/public/next/assets/agent-transcript-model-CRa_I3eR.js.map +0 -1
- package/dist/core/web/public/next/assets/agents-focus-D2hd-RNJ.js +0 -2
- package/dist/core/web/public/next/assets/agents-focus-D2hd-RNJ.js.map +0 -1
- package/dist/core/web/public/next/assets/app-version-DDlXX8-W.js +0 -2
- package/dist/core/web/public/next/assets/app-version-DDlXX8-W.js.map +0 -1
- package/dist/core/web/public/next/assets/apps-model-DLQgiczq.js +0 -2
- package/dist/core/web/public/next/assets/apps-model-DLQgiczq.js.map +0 -1
- package/dist/core/web/public/next/assets/ask-seat-zMpqJABI.js +0 -2
- package/dist/core/web/public/next/assets/ask-seat-zMpqJABI.js.map +0 -1
- package/dist/core/web/public/next/assets/authority-model-BvLFgPaX.js +0 -2
- package/dist/core/web/public/next/assets/authority-model-BvLFgPaX.js.map +0 -1
- package/dist/core/web/public/next/assets/automations-focus-zqI9oIl8.js +0 -2
- package/dist/core/web/public/next/assets/automations-focus-zqI9oIl8.js.map +0 -1
- package/dist/core/web/public/next/assets/budget-model-CKd0d1Cj.js +0 -2
- package/dist/core/web/public/next/assets/budget-model-CKd0d1Cj.js.map +0 -1
- package/dist/core/web/public/next/assets/budget-queries-q7mCG9Ek.js +0 -2
- package/dist/core/web/public/next/assets/budget-queries-q7mCG9Ek.js.map +0 -1
- package/dist/core/web/public/next/assets/capacity-strip-model-pdIEweaZ.js +0 -2
- package/dist/core/web/public/next/assets/capacity-strip-model-pdIEweaZ.js.map +0 -1
- package/dist/core/web/public/next/assets/charts-D3I0q4hG.js +0 -2
- package/dist/core/web/public/next/assets/charts-D3I0q4hG.js.map +0 -1
- package/dist/core/web/public/next/assets/chat-pane-data-DIDV7uIU.js +0 -2
- package/dist/core/web/public/next/assets/chat-pane-data-DIDV7uIU.js.map +0 -1
- package/dist/core/web/public/next/assets/checkpoint-queries-DjrDEsN-.js +0 -2
- package/dist/core/web/public/next/assets/checkpoint-queries-DjrDEsN-.js.map +0 -1
- package/dist/core/web/public/next/assets/cloud-model-DuboHWPT.js +0 -2
- package/dist/core/web/public/next/assets/cloud-model-DuboHWPT.js.map +0 -1
- package/dist/core/web/public/next/assets/cloud-queries-DQF1a_R-.js +0 -2
- package/dist/core/web/public/next/assets/cloud-queries-DQF1a_R-.js.map +0 -1
- package/dist/core/web/public/next/assets/command-catalog-BzHSIzIS.js +0 -2
- package/dist/core/web/public/next/assets/command-catalog-BzHSIzIS.js.map +0 -1
- package/dist/core/web/public/next/assets/composer-queries-BEYuD6Qr.js +0 -2
- package/dist/core/web/public/next/assets/composer-queries-BEYuD6Qr.js.map +0 -1
- package/dist/core/web/public/next/assets/composer-state-B4KVc2ZZ.js +0 -2
- package/dist/core/web/public/next/assets/composer-state-B4KVc2ZZ.js.map +0 -1
- package/dist/core/web/public/next/assets/connectivity-Svn7iy2K.js +0 -2
- package/dist/core/web/public/next/assets/connectivity-Svn7iy2K.js.map +0 -1
- package/dist/core/web/public/next/assets/context-model-C9EIuPJ_.js +0 -2
- package/dist/core/web/public/next/assets/context-model-C9EIuPJ_.js.map +0 -1
- package/dist/core/web/public/next/assets/context-model-DU3OPiBC.js +0 -3
- package/dist/core/web/public/next/assets/context-model-DU3OPiBC.js.map +0 -1
- package/dist/core/web/public/next/assets/context-queries-Cgb_XvRv.js +0 -2
- package/dist/core/web/public/next/assets/context-queries-Cgb_XvRv.js.map +0 -1
- package/dist/core/web/public/next/assets/control-queries-Clgsy_eH.js +0 -2
- package/dist/core/web/public/next/assets/control-queries-Clgsy_eH.js.map +0 -1
- package/dist/core/web/public/next/assets/copy-setup-C-hDt9sS.js +0 -2
- package/dist/core/web/public/next/assets/copy-setup-C-hDt9sS.js.map +0 -1
- package/dist/core/web/public/next/assets/deep-link-Cgvchdy7.js +0 -2
- package/dist/core/web/public/next/assets/deep-link-Cgvchdy7.js.map +0 -1
- package/dist/core/web/public/next/assets/device-permissions-JmqkyrDw.js +0 -2
- package/dist/core/web/public/next/assets/device-permissions-JmqkyrDw.js.map +0 -1
- package/dist/core/web/public/next/assets/devin-queries-DKgeD4_S.js +0 -2
- package/dist/core/web/public/next/assets/devin-queries-DKgeD4_S.js.map +0 -1
- package/dist/core/web/public/next/assets/dock-icons-CRHjXBWm.js +0 -2
- package/dist/core/web/public/next/assets/dock-icons-CRHjXBWm.js.map +0 -1
- package/dist/core/web/public/next/assets/dock-panes-C98u13Bi.js +0 -2
- package/dist/core/web/public/next/assets/dock-panes-C98u13Bi.js.map +0 -1
- package/dist/core/web/public/next/assets/fleet-control-queries-BLoc5Gza.js +0 -2
- package/dist/core/web/public/next/assets/fleet-control-queries-BLoc5Gza.js.map +0 -1
- package/dist/core/web/public/next/assets/fleet-model-CPTadBFK.js +0 -2
- package/dist/core/web/public/next/assets/fleet-model-CPTadBFK.js.map +0 -1
- package/dist/core/web/public/next/assets/fleet-queries-69WuY-dt.js +0 -2
- package/dist/core/web/public/next/assets/fleet-queries-69WuY-dt.js.map +0 -1
- package/dist/core/web/public/next/assets/fleet-state-CCdBRK-m.js +0 -3
- package/dist/core/web/public/next/assets/fleet-state-CCdBRK-m.js.map +0 -1
- package/dist/core/web/public/next/assets/focus-trap-C8MiYlLZ.js +0 -2
- package/dist/core/web/public/next/assets/focus-trap-C8MiYlLZ.js.map +0 -1
- package/dist/core/web/public/next/assets/format-CcEKjUou.js +0 -2
- package/dist/core/web/public/next/assets/format-CcEKjUou.js.map +0 -1
- package/dist/core/web/public/next/assets/git-model-DL3MwN93.js +0 -5
- package/dist/core/web/public/next/assets/git-model-DL3MwN93.js.map +0 -1
- package/dist/core/web/public/next/assets/global-BWc2NPzv.js +0 -3
- package/dist/core/web/public/next/assets/global-BWc2NPzv.js.map +0 -1
- package/dist/core/web/public/next/assets/guarded-action-BK2_U5ho.js +0 -3
- package/dist/core/web/public/next/assets/guarded-action-BK2_U5ho.js.map +0 -1
- package/dist/core/web/public/next/assets/guarded-runners-Q0UkoY3H.js +0 -2
- package/dist/core/web/public/next/assets/guarded-runners-Q0UkoY3H.js.map +0 -1
- package/dist/core/web/public/next/assets/headroom-CP99UxyV.js +0 -2
- package/dist/core/web/public/next/assets/headroom-CP99UxyV.js.map +0 -1
- package/dist/core/web/public/next/assets/health-queries-D8TwNTDQ.js +0 -2
- package/dist/core/web/public/next/assets/health-queries-D8TwNTDQ.js.map +0 -1
- package/dist/core/web/public/next/assets/icons-U34oiN9M.js +0 -2
- package/dist/core/web/public/next/assets/icons-U34oiN9M.js.map +0 -1
- package/dist/core/web/public/next/assets/index-BbDqdepe.js +0 -11
- package/dist/core/web/public/next/assets/index-BbDqdepe.js.map +0 -1
- package/dist/core/web/public/next/assets/jev-queries-CiQDnM5r.js +0 -2
- package/dist/core/web/public/next/assets/jev-queries-CiQDnM5r.js.map +0 -1
- package/dist/core/web/public/next/assets/ladder-queries-Cf64JB04.js +0 -2
- package/dist/core/web/public/next/assets/ladder-queries-Cf64JB04.js.map +0 -1
- package/dist/core/web/public/next/assets/leader-focus-azN19kfO.js +0 -2
- package/dist/core/web/public/next/assets/leader-focus-azN19kfO.js.map +0 -1
- package/dist/core/web/public/next/assets/live-model-DHX_2gOu.js +0 -2
- package/dist/core/web/public/next/assets/live-model-DHX_2gOu.js.map +0 -1
- package/dist/core/web/public/next/assets/mind.module-BJpuH2JT.js +0 -2
- package/dist/core/web/public/next/assets/mind.module-BJpuH2JT.js.map +0 -1
- package/dist/core/web/public/next/assets/mobile-actions-CvGouAAH.js +0 -2
- package/dist/core/web/public/next/assets/mobile-actions-CvGouAAH.js.map +0 -1
- package/dist/core/web/public/next/assets/mobile-toast-C_UP13GQ.js +0 -2
- package/dist/core/web/public/next/assets/mobile-toast-C_UP13GQ.js.map +0 -1
- package/dist/core/web/public/next/assets/multimodel-flows-C377w9oZ.js +0 -7
- package/dist/core/web/public/next/assets/multimodel-flows-C377w9oZ.js.map +0 -1
- package/dist/core/web/public/next/assets/multimodel-queries-_Y1QXAqq.js +0 -2
- package/dist/core/web/public/next/assets/multimodel-queries-_Y1QXAqq.js.map +0 -1
- package/dist/core/web/public/next/assets/mutations-DL4u2kRQ.js +0 -2
- package/dist/core/web/public/next/assets/mutations-DL4u2kRQ.js.map +0 -1
- package/dist/core/web/public/next/assets/nav-CM-mJcSq.js +0 -2
- package/dist/core/web/public/next/assets/nav-CM-mJcSq.js.map +0 -1
- package/dist/core/web/public/next/assets/needs-you-actions-DF2zEltF.js +0 -2
- package/dist/core/web/public/next/assets/needs-you-actions-DF2zEltF.js.map +0 -1
- package/dist/core/web/public/next/assets/needs-you-model-DqmU5YOe.js +0 -2
- package/dist/core/web/public/next/assets/needs-you-model-DqmU5YOe.js.map +0 -1
- package/dist/core/web/public/next/assets/open-terminal-BAnwAOoA.js +0 -2
- package/dist/core/web/public/next/assets/open-terminal-BAnwAOoA.js.map +0 -1
- package/dist/core/web/public/next/assets/open-terminal-request-f5_ItEpF.js +0 -2
- package/dist/core/web/public/next/assets/open-terminal-request-f5_ItEpF.js.map +0 -1
- package/dist/core/web/public/next/assets/overnight-queries-BP6viiM5.js +0 -2
- package/dist/core/web/public/next/assets/overnight-queries-BP6viiM5.js.map +0 -1
- package/dist/core/web/public/next/assets/palette-handoff-Bmq98lDl.js +0 -2
- package/dist/core/web/public/next/assets/palette-handoff-Bmq98lDl.js.map +0 -1
- package/dist/core/web/public/next/assets/panes-BjUzIDw6.js +0 -3
- package/dist/core/web/public/next/assets/panes-BjUzIDw6.js.map +0 -1
- package/dist/core/web/public/next/assets/path-display-HyxETV-f.js +0 -2
- package/dist/core/web/public/next/assets/path-display-HyxETV-f.js.map +0 -1
- package/dist/core/web/public/next/assets/playbook-composer-DwuBBP4I.js +0 -2
- package/dist/core/web/public/next/assets/playbook-composer-DwuBBP4I.js.map +0 -1
- package/dist/core/web/public/next/assets/playbook-focus-B9xzeUMw.js +0 -2
- package/dist/core/web/public/next/assets/playbook-focus-B9xzeUMw.js.map +0 -1
- package/dist/core/web/public/next/assets/playbooks-queries-C8j1Aswo.js +0 -2
- package/dist/core/web/public/next/assets/playbooks-queries-C8j1Aswo.js.map +0 -1
- package/dist/core/web/public/next/assets/preloaded-CLDUOHXJ.js +0 -2
- package/dist/core/web/public/next/assets/preloaded-CLDUOHXJ.js.map +0 -1
- package/dist/core/web/public/next/assets/primitives-BEXDE-HP.js +0 -1
- package/dist/core/web/public/next/assets/pwa-lVT_VRkK.js +0 -2
- package/dist/core/web/public/next/assets/pwa-lVT_VRkK.js.map +0 -1
- package/dist/core/web/public/next/assets/queries-T7ZUVqyA.js +0 -2
- package/dist/core/web/public/next/assets/queries-T7ZUVqyA.js.map +0 -1
- package/dist/core/web/public/next/assets/reasoning-pref-CWEri5xB.js +0 -2
- package/dist/core/web/public/next/assets/reasoning-pref-CWEri5xB.js.map +0 -1
- package/dist/core/web/public/next/assets/remote-session-BPULIfdG.js +0 -3
- package/dist/core/web/public/next/assets/remote-session-BPULIfdG.js.map +0 -1
- package/dist/core/web/public/next/assets/resolved-store-Ba-W6Uhy.js +0 -2
- package/dist/core/web/public/next/assets/resolved-store-Ba-W6Uhy.js.map +0 -1
- package/dist/core/web/public/next/assets/resources-queries-CKyXyaDY.js +0 -2
- package/dist/core/web/public/next/assets/resources-queries-CKyXyaDY.js.map +0 -1
- package/dist/core/web/public/next/assets/reveal-anchor-Djk1vGLl.js +0 -2
- package/dist/core/web/public/next/assets/reveal-anchor-Djk1vGLl.js.map +0 -1
- package/dist/core/web/public/next/assets/seat-readiness-CvEmMBol.js +0 -2
- package/dist/core/web/public/next/assets/seat-readiness-CvEmMBol.js.map +0 -1
- package/dist/core/web/public/next/assets/seat-subscription-BClqZwau.js +0 -2
- package/dist/core/web/public/next/assets/seat-subscription-BClqZwau.js.map +0 -1
- package/dist/core/web/public/next/assets/sheet-D0ciShoy.js +0 -2
- package/dist/core/web/public/next/assets/sheet-D0ciShoy.js.map +0 -1
- package/dist/core/web/public/next/assets/sidebar-model-BZ9Wh1lR.js +0 -2
- package/dist/core/web/public/next/assets/sidebar-model-BZ9Wh1lR.js.map +0 -1
- package/dist/core/web/public/next/assets/slots-m3L6Ints.js +0 -3
- package/dist/core/web/public/next/assets/slots-m3L6Ints.js.map +0 -1
- package/dist/core/web/public/next/assets/sources-queries-DeIlxb3A.js +0 -4
- package/dist/core/web/public/next/assets/sources-queries-DeIlxb3A.js.map +0 -1
- package/dist/core/web/public/next/assets/sse-CK65-Cun.js +0 -2
- package/dist/core/web/public/next/assets/sse-CK65-Cun.js.map +0 -1
- package/dist/core/web/public/next/assets/surface-data-DoN8peNV.js +0 -2
- package/dist/core/web/public/next/assets/surface-data-DoN8peNV.js.map +0 -1
- package/dist/core/web/public/next/assets/surface-prefetch-CVNIptSl.js +0 -2
- package/dist/core/web/public/next/assets/surface-prefetch-CVNIptSl.js.map +0 -1
- package/dist/core/web/public/next/assets/tasks-model-BueAhEAf.js +0 -2
- package/dist/core/web/public/next/assets/tasks-model-BueAhEAf.js.map +0 -1
- package/dist/core/web/public/next/assets/terminal-client-DO0eRhRi.js +0 -2
- package/dist/core/web/public/next/assets/terminal-client-DO0eRhRi.js.map +0 -1
- package/dist/core/web/public/next/assets/terminal-icons-COMoAiDd.js +0 -2
- package/dist/core/web/public/next/assets/terminal-icons-COMoAiDd.js.map +0 -1
- package/dist/core/web/public/next/assets/terminal-view-DkVXx7Xk.js +0 -6
- package/dist/core/web/public/next/assets/terminal-view-DkVXx7Xk.js.map +0 -1
- package/dist/core/web/public/next/assets/thread-data-Dq7QugaD.js +0 -2
- package/dist/core/web/public/next/assets/thread-data-Dq7QugaD.js.map +0 -1
- package/dist/core/web/public/next/assets/ui-parts-2JLq2ZSq.js +0 -2
- package/dist/core/web/public/next/assets/ui-parts-2JLq2ZSq.js.map +0 -1
- package/dist/core/web/public/next/assets/usage-queries-CDKUE4e0.js +0 -2
- package/dist/core/web/public/next/assets/usage-queries-CDKUE4e0.js.map +0 -1
- package/dist/core/web/public/next/assets/use-chat-activity-BaNWmI2A.js +0 -2
- package/dist/core/web/public/next/assets/use-chat-activity-BaNWmI2A.js.map +0 -1
- package/dist/core/web/public/next/assets/use-guarded-action-D4m4Mlzr.js +0 -2
- package/dist/core/web/public/next/assets/use-guarded-action-D4m4Mlzr.js.map +0 -1
- package/dist/core/web/public/next/assets/use-ticker-PQ_oYxn5.js +0 -2
- package/dist/core/web/public/next/assets/use-ticker-PQ_oYxn5.js.map +0 -1
- package/dist/core/web/public/next/assets/use-token-gate-_JPjMD5z.js +0 -2
- package/dist/core/web/public/next/assets/use-token-gate-_JPjMD5z.js.map +0 -1
- package/dist/core/web/public/next/assets/useAutoSeat-CkyqgwX9.js +0 -2
- package/dist/core/web/public/next/assets/useAutoSeat-CkyqgwX9.js.map +0 -1
- package/dist/core/web/public/next/assets/useOnboarding-3r8T1GBP.js +0 -2
- package/dist/core/web/public/next/assets/useOnboarding-3r8T1GBP.js.map +0 -1
- package/dist/core/web/public/next/assets/useSeatHealth-C08b9zut.js +0 -2
- package/dist/core/web/public/next/assets/useSeatHealth-C08b9zut.js.map +0 -1
- package/dist/core/web/public/next/assets/useSeatsRefresh-BGsdylUl.js +0 -2
- package/dist/core/web/public/next/assets/useSeatsRefresh-BGsdylUl.js.map +0 -1
- package/dist/core/web/public/next/assets/useVerseSession-0MnfpcHg.js +0 -2
- package/dist/core/web/public/next/assets/useVerseSession-0MnfpcHg.js.map +0 -1
- package/dist/core/web/public/next/assets/useVerseTranscript-B6wLDOv8.js +0 -2
- package/dist/core/web/public/next/assets/useVerseTranscript-B6wLDOv8.js.map +0 -1
- package/dist/core/web/public/next/assets/verse-bootstrap-query-BR5ypA8b.js +0 -2
- package/dist/core/web/public/next/assets/verse-bootstrap-query-BR5ypA8b.js.map +0 -1
- package/dist/core/web/public/next/assets/verse-icons-BQxBZk9k.js +0 -2
- package/dist/core/web/public/next/assets/verse-icons-BQxBZk9k.js.map +0 -1
- package/dist/core/web/public/next/assets/verse-model-CkF3q2IH.js +0 -2
- package/dist/core/web/public/next/assets/verse-model-CkF3q2IH.js.map +0 -1
- package/dist/core/web/public/next/assets/warmup-CqTK8yIn.js +0 -3
- package/dist/core/web/public/next/assets/warmup-CqTK8yIn.js.map +0 -1
- package/dist/core/web/public/next/assets/why-seat-model-Dh4-Ty9n.js +0 -2
- package/dist/core/web/public/next/assets/why-seat-model-Dh4-Ty9n.js.map +0 -1
- package/dist/core/web/public/next/assets/wiki-focus-CisQb_pM.js +0 -2
- package/dist/core/web/public/next/assets/wiki-focus-CisQb_pM.js.map +0 -1
- package/dist/core/web/public/next/assets/workspace-model-DRGckE8q.js +0 -2
- package/dist/core/web/public/next/assets/workspace-model-DRGckE8q.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveTimer-DUgUBr49.js","names":[],"sources":["../../../../../../src/web-ui/routes/verse/chat/LiveStatus.module.css","../../../../../../src/web-ui/routes/verse/chat/LiveStatus.tsx","../../../../../../src/web-ui/routes/verse/chat/LiveTimer.tsx"],"sourcesContent":["/**\n * The live line sits where the caret used to: under the running turn, on\n * the reading measure, in tertiary text with tabular figures. Colour means\n * state only — the running pulse — and a notice is a 2px rule in the warning\n * colour with its kind in words (DESIGN §6: never colour alone).\n */\n.live {\n display: flex;\n flex-direction: column;\n gap: var(--space-2);\n min-width: 0;\n}\n\n.line {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n min-height: var(--control-h-sm);\n min-width: 0;\n color: var(--text-tertiary);\n font-size: var(--text-sm-size);\n}\n\n.pulse {\n width: 8px;\n height: 8px;\n flex: none;\n border-radius: var(--radius-full);\n background: var(--status-running-solid);\n animation: live-pulse 1.4s var(--ease-standard) infinite;\n}\n.live[data-phase='waiting'] .pulse { background: var(--border-strong); }\n\n.text {\n display: inline-flex;\n align-items: baseline;\n gap: var(--space-2);\n min-width: 0;\n flex: 1 1 auto;\n overflow: hidden;\n white-space: nowrap;\n}\n.word { color: var(--text-secondary); font-weight: var(--font-weight-medium); }\n.sep { color: var(--text-tertiary); }\n.figure {\n font-family: var(--font-display);\n font-variant-numeric: tabular-nums;\n}\n.detail {\n font-family: var(--font-mono);\n font-size: var(--text-xs-size);\n color: var(--text-secondary);\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n}\n\n.stop {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--space-2);\n min-height: var(--control-h-xs);\n padding: 0 var(--space-2);\n border: 1px solid transparent;\n border-radius: var(--radius-sm);\n background: transparent;\n color: var(--text-secondary);\n font-size: var(--text-xs-size);\n cursor: pointer;\n transition: color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);\n}\n.stop:hover { color: var(--text-primary); background: var(--bg-hover); border-color: var(--border-default); }\n.stop:active { background: var(--bg-active); }\n.stopIcon {\n width: 8px;\n height: 8px;\n border-radius: 1px;\n background: currentColor;\n}\n\n.notice {\n display: flex;\n gap: var(--space-2);\n margin: 0;\n padding-left: var(--space-3);\n border-left: 2px solid var(--status-warning-solid);\n color: var(--text-secondary);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line-relaxed);\n overflow-wrap: anywhere;\n}\n.notice[data-kind='preflight'] { border-left-color: var(--status-info-solid); }\n.noticeWord { color: var(--status-warning-fg); font-weight: var(--font-weight-medium); white-space: nowrap; }\n.notice[data-kind='preflight'] .noticeWord { color: var(--status-info-fg); }\n.noticeText { min-width: 0; }\n\n@keyframes live-pulse { 50% { opacity: 0.3; } }\n\n@media (prefers-reduced-motion: reduce) {\n :root:not([data-motion=\"full\"]) .pulse { animation: none; }\n}\n:root[data-motion=\"reduce\"] .pulse { animation: none; }\n\n@media (max-width: 480px) {\n /* 3.10: one line above the composer, beside the tasks chip — the text\n ellipsises (its detail first) rather than wrapping Stop onto a row of\n its own. */\n .line { flex-wrap: nowrap; }\n}\n","/**\n * routes/verse/chat/LiveStatus.tsx — the line under a running turn (V3.10):\n *\n * ● Running · 14s · npm test Stop\n * ● Writing · 1m 3s · 38 tok/s Stop\n *\n * It replaces the bare caret that used to be the ONLY live signal: a turn\n * that had been silently retrying an overloaded API for four minutes looked\n * exactly like one that was about to answer.\n *\n * Sources, best first:\n * 1. transient `progress` frames (phase, server-measured elapsed, tok/s);\n * 2. the transcript itself — a pending tool call means \"running that\n * tool\", a streaming bubble means \"writing\" — so a server that sends no\n * progress frames still gets an honest line;\n * 3. the turn's own start stamp for the clock.\n * A figure nobody measured (tok/s, the tool) is left out, never guessed.\n *\n * Under it, when the engine says so, one plumbing notice: an API retry, a\n * failed preflight (e.g. Ollama not answering), or the no-output watchdog.\n * It clears itself once output resumes (verse-store livePersisted).\n *\n * Accessibility: the visible line ticks every second, so it is NOT a live\n * region; a visually hidden status announces only phase/tool changes, and a\n * notice is announced once when it appears.\n */\nimport { memo, useEffect, useState } from 'react';\nimport type { VerseProgressPhase, VerseStatusKind } from '../../../../core/verse/types.js';\nimport { summarizeToolInput } from '../verse-model.js';\nimport type { TranscriptItem, VerseLiveState } from '../verse-store.js';\nimport { inputPath, useDisplayPath } from './path-display.js';\nimport styles from './LiveStatus.module.css';\n\nexport interface LivePhase {\n phase: VerseProgressPhase;\n /** What the phase is about: the running command/path, when known. */\n detail: string | null;\n /** 3.10.1: the file the running call names, drawn relative to the chat's roots. */\n path?: string | null;\n}\n\n/**\n * What the transcript says the running turn is doing right now — the\n * fallback for a server that sends no `progress` frames, and the source of\n * the tool's human-readable argument even when one does.\n */\nexport function derivePhaseFromTranscript(items: readonly TranscriptItem[], live: Pick<VerseLiveState, 'thinking'>): LivePhase {\n for (let i = items.length - 1; i >= 0; i -= 1) {\n const item = items[i]!;\n if (item.kind === 'user') break;\n if (item.kind === 'tool') {\n if (item.result === null) return { phase: 'tool', detail: summarizeToolInput(item.input) || item.name, path: inputPath(item.input) };\n break;\n }\n if (item.kind === 'assistant' && item.streaming) return { phase: 'writing', detail: null };\n if (item.kind === 'assistant' || item.kind === 'thinking') break;\n }\n if (live.thinking) return { phase: 'thinking', detail: null };\n return { phase: 'waiting', detail: null };\n}\n\nconst PHASE_WORD: Record<VerseProgressPhase, string> = {\n thinking: 'Thinking',\n tool: 'Running',\n writing: 'Writing',\n waiting: 'Waiting',\n};\n\nconst NOTICE_WORD: Record<VerseStatusKind, string> = {\n retry: 'Retrying',\n preflight: 'Preflight',\n watchdog: 'Still running',\n};\n\n/** \"14s\" / \"1m 3s\" / \"1h 2m\". */\nexport function formatLiveElapsed(ms: number): string {\n if (!Number.isFinite(ms) || ms < 0) return '0s';\n const s = Math.floor(ms / 1000);\n if (s < 60) return `${s}s`;\n const m = Math.floor(s / 60);\n if (m < 60) return `${m}m ${s % 60}s`;\n return `${Math.floor(m / 60)}h ${m % 60}m`;\n}\n\nexport interface LiveStatusLine {\n phase: VerseProgressPhase;\n word: string;\n elapsedMs: number | null;\n detail: string | null;\n rate: string | null;\n}\n\n/** Pure: the parts of the line at clock time `now` (exported for tests). */\nexport function liveStatusLine(live: VerseLiveState, derived: LivePhase, now: number): LiveStatusLine {\n const progress = live.progress;\n // The transcript knows a tool call is pending before (or without) a\n // progress frame saying so, and it knows the call's argument; a progress\n // frame knows about reasoning and waiting, which the transcript cannot see.\n const phase: VerseProgressPhase = derived.phase === 'tool' || derived.phase === 'writing'\n ? derived.phase\n : progress?.phase ?? derived.phase;\n const elapsedMs = progress\n ? progress.elapsedMs + Math.max(0, now - progress.receivedAt)\n : live.startedAt !== null ? Math.max(0, now - live.startedAt) : null;\n const detail = phase === 'tool' ? derived.detail ?? progress?.tool ?? null : null;\n const tps = progress?.tokPerSec ?? null;\n const rate = (phase === 'writing' || phase === 'thinking') && tps !== null && tps > 0 ? `${tps >= 10 ? Math.round(tps) : tps.toFixed(1)} tok/s` : null;\n return { phase, word: PHASE_WORD[phase], elapsedMs, detail, rate };\n}\n\nexport interface LiveStatusProps {\n live: VerseLiveState;\n derived: LivePhase;\n onStop?: () => void;\n /**\n * 3.10: above the composer the engine's notice goes to the notice slot\n * (one notice at a time, in priority order), so the line omits it.\n */\n showNotice?: boolean;\n}\n\nexport const LiveStatus = memo(function LiveStatus({ live, derived, onStop, showNotice = true }: LiveStatusProps) {\n const [now, setNow] = useState(() => Date.now());\n // The clock only; never a request. Re-armed per turn.\n useEffect(() => {\n setNow(Date.now());\n const id = setInterval(() => setNow(Date.now()), 1000);\n return () => clearInterval(id);\n }, [live.turnId]);\n\n const show = useDisplayPath();\n const computed = liveStatusLine(live, derived, now);\n // A running Read names its file as the transcript does — relative, not the\n // head of an absolute path (chat/path-display.ts); the full path is the title.\n const line = computed.phase === 'tool' && derived.path ? { ...computed, detail: show(derived.path) } : computed;\n const spoken = line.detail ? `${line.word}: ${line.detail}` : line.word;\n const notice = showNotice ? live.notice : null;\n\n return (\n <div className={styles.live} data-phase={line.phase}>\n <div className={styles.line}>\n <span className={styles.pulse} aria-hidden=\"true\" />\n <span className={styles.text} aria-hidden=\"true\">\n <span className={styles.word}>{line.word}</span>\n {line.elapsedMs !== null ? <><span className={styles.sep}>·</span><span className={styles.figure}>{formatLiveElapsed(line.elapsedMs)}</span></> : null}\n {line.detail ? <><span className={styles.sep}>·</span><span className={styles.detail} title={derived.path ?? line.detail}>{line.detail}</span></> : null}\n {line.rate ? <><span className={styles.sep}>·</span><span className={styles.figure}>{line.rate}</span></> : null}\n </span>\n <span className=\"visually-hidden\" role=\"status\">{spoken}</span>\n {onStop ? (\n <button type=\"button\" className={styles.stop} onClick={onStop} aria-label=\"Stop this turn\" title=\"Stop this turn (⌘.)\">\n <span className={styles.stopIcon} aria-hidden=\"true\" />Stop\n </button>\n ) : null}\n </div>\n {notice ? (\n <p className={styles.notice} data-kind={notice.kind} role=\"status\">\n <span className={styles.noticeWord}>{NOTICE_WORD[notice.kind]}</span>\n <span className={styles.noticeText}>{notice.message}</span>\n </p>\n ) : null}\n </div>\n );\n});\n","/**\n * routes/verse/chat/LiveTimer.tsx — \"12s\", counting, for anything running\n * (unit C2): a pending tool row, an activity group, a running chat in the\n * sidebar, a task in the Tasks pane.\n *\n * ONE shared one-second clock for every timer on the page. A long session\n * can show dozens of running rows at once (a group of parallel tool calls,\n * the sidebar's running chats, the tasks list); a `setInterval` each would\n * be dozens of timers re-rendering out of phase. Subscribers join a single\n * interval that exists only while at least one of them is mounted, and all\n * of them tick on the same beat.\n *\n * It is a clock, never a request (SPEC-310A §0: no polling faster than 2 s —\n * this polls nothing).\n */\nimport { useSyncExternalStore } from 'react';\nimport { formatLiveElapsed } from './LiveStatus.js';\n\nconst listeners = new Set<() => void>();\nlet timer: ReturnType<typeof setInterval> | null = null;\nlet now = Date.now();\n\nfunction subscribe(listener: () => void): () => void {\n listeners.add(listener);\n if (timer === null) {\n now = Date.now();\n timer = setInterval(() => {\n now = Date.now();\n for (const l of [...listeners]) l();\n }, 1000);\n }\n return () => {\n listeners.delete(listener);\n if (listeners.size === 0 && timer !== null) {\n clearInterval(timer);\n timer = null;\n }\n };\n}\n\nfunction snapshot(): number {\n return now;\n}\n\nconst idle = () => () => {};\n// A constant: useSyncExternalStore requires a stable snapshot between\n// renders, and `Date.now` as a snapshot would loop.\nconst idleSnapshot = () => 0;\n\n/**\n * The shared clock (ms). While `active` is false the component does not\n * subscribe at all — a settled row costs nothing — and reads the wall clock\n * once per render instead.\n */\nexport function useSecondClock(active = true): number {\n const tick = useSyncExternalStore(active ? subscribe : idle, active ? snapshot : idleSnapshot, active ? snapshot : idleSnapshot);\n // A freshly mounted subscriber must not show the clock as it stood when the\n // previous beat fired (up to a second stale): take the later of the two.\n return Math.max(tick, Date.now());\n}\n\n/** Parse an ISO stamp or client-clock ms into ms; null when unusable. */\nexport function startMs(since: string | number | null | undefined): number | null {\n if (typeof since === 'number') return Number.isFinite(since) ? since : null;\n if (typeof since !== 'string') return null;\n const ms = Date.parse(since);\n return Number.isFinite(ms) ? ms : null;\n}\n\nexport interface LiveTimerProps {\n /** ISO start stamp or client-clock ms. Unparseable → renders nothing (an unknown start is not \"0s\"). */\n since: string | number | null | undefined;\n className?: string;\n /** Spoken label prefix, e.g. \"running for\". Omit to hide the timer from assistive tech (it ticks every second). */\n label?: string;\n}\n\nexport function LiveTimer({ since, className, label }: LiveTimerProps) {\n const start = startMs(since);\n const clock = useSecondClock(start !== null);\n if (start === null) return null;\n const text = formatLiveElapsed(Math.max(0, clock - start));\n return (\n <span className={className} data-live-timer=\"\" aria-hidden={label ? undefined : true}\n aria-label={label ? `${label} ${text}` : undefined} role={label ? 'timer' : undefined}>\n {text}\n </span>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,s as n}from"./index-_izD07R9.js";import{l as r}from"./global-CYfRwH6t.js";import{j as i}from"./verse-model-DAOz9LrY.js";import{a,s as o}from"./multimodel-queries-BuslyWtq.js";import{t as s}from"./multimodel.module-ZpbCvfp1.js";var c=e(n(),1),l=t();function u({seatId:e,projectPath:t}){let n=r(a({projectPath:t})).data??null,[u,d]=(0,c.useState)({busy:!1,text:null,error:!1}),f=e?n?.local.find(t=>t.seatId===e)??null:null,p=n?.localOnly.on===!0;if(!f&&!p)return null;async function m(e){d({busy:!0,text:null,error:!1});try{let t=await o(e);d({busy:!1,error:!t.ok,text:t.ok?`Warm${t.tokPerSec?` — ${t.tokPerSec} tok/s`:``}${t.loadMs?`, loaded in ${(t.loadMs/1e3).toFixed(1)} s`:``}.`:t.error??`Could not warm it.`})}catch(e){d({busy:!1,error:!0,text:e instanceof Error?e.message:`Could not warm it.`})}}return(0,l.jsxs)(`div`,{className:s.bar,role:`group`,"aria-label":`Local model`,children:[p?(0,l.jsx)(`span`,{className:`${s.chip} ${s.chipWarn}`,title:n?.localOnly.reason??void 0,children:`Local-only repo — Auto keeps it on local models`}):null,f?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(`span`,{className:`${s.chip} ${f.private?s.chipPrivate:``}`,children:f.private?`Runs on this Mac — private`:`Local runtime (not loopback)`}),f.contextWindow?(0,l.jsxs)(`span`,{className:s.meter,children:[i(f.contextWindow),` context`]}):null,(0,l.jsx)(`span`,{className:s.meter,children:f.tokPerSec?`${f.tokPerSec} tok/s${f.tokPerSecSource===`turn`?` (end to end)`:``}`:`speed not measured yet`}),(0,l.jsx)(`button`,{type:`button`,className:s.chip,disabled:u.busy,onClick:()=>{m(f.seatId)},children:u.busy?`Warming…`:`Warm up`})]}):null,u.text?(0,l.jsx)(`span`,{className:`${s.notice} ${u.error?s.noticeError:``}`,role:u.error?`alert`:`status`,children:u.text}):null]})}export{u as LocalSeatBadge,u as default};
|
|
2
|
+
//# sourceMappingURL=LocalSeatBadge-D6U4Q2P3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalSeatBadge-D6U4Q2P3.js","names":[],"sources":["../../../../../../src/web-ui/routes/verse/multimodel/LocalSeatBadge.tsx"],"sourcesContent":["/**\n * routes/verse/multimodel/LocalSeatBadge.tsx — what a local model IS, where a\n * seat is chosen (the new-chat dialog): runs on this Mac and stays private,\n * its context window, its measured speed, and Warm up (load it now so the\n * first turn does not pay the cold start). Also says when the chosen folder\n * is a local-only repo, so a remote seat is not picked for it by habit.\n *\n * Lazy: only rendered when a local seat is chosen or the repo is local-only.\n */\nimport { useState } from 'react';\nimport { useQuery } from '../../../data/hooks.js';\nimport { formatTokens } from '../verse-readouts.js';\nimport { multimodelContextQuery, warmLocalSeat } from './multimodel-queries.js';\nimport styles from './multimodel.module.css';\n\nexport function LocalSeatBadge({ seatId, projectPath }: { seatId: string | null; projectPath: string | null }) {\n const context = useQuery(multimodelContextQuery({ projectPath })).data ?? null;\n const [state, setState] = useState<{ busy: boolean; text: string | null; error: boolean }>({ busy: false, text: null, error: false });\n const badge = seatId ? context?.local.find((b) => b.seatId === seatId) ?? null : null;\n const localOnly = context?.localOnly.on === true;\n if (!badge && !localOnly) return null;\n\n async function warm(id: string) {\n setState({ busy: true, text: null, error: false });\n try {\n const r = await warmLocalSeat(id);\n setState({ busy: false, error: !r.ok, text: r.ok ? `Warm${r.tokPerSec ? ` — ${r.tokPerSec} tok/s` : ''}${r.loadMs ? `, loaded in ${(r.loadMs / 1000).toFixed(1)} s` : ''}.` : r.error ?? 'Could not warm it.' });\n } catch (err) {\n setState({ busy: false, error: true, text: err instanceof Error ? err.message : 'Could not warm it.' });\n }\n }\n\n return (\n <div className={styles.bar} role=\"group\" aria-label=\"Local model\">\n {localOnly ? (\n <span className={`${styles.chip} ${styles.chipWarn}`} title={context?.localOnly.reason ?? undefined}>\n Local-only repo — Auto keeps it on local models\n </span>\n ) : null}\n {badge ? (\n <>\n <span className={`${styles.chip} ${badge.private ? styles.chipPrivate : ''}`}>\n {badge.private ? 'Runs on this Mac — private' : 'Local runtime (not loopback)'}\n </span>\n {badge.contextWindow ? <span className={styles.meter}>{formatTokens(badge.contextWindow)} context</span> : null}\n <span className={styles.meter}>\n {badge.tokPerSec ? `${badge.tokPerSec} tok/s${badge.tokPerSecSource === 'turn' ? ' (end to end)' : ''}` : 'speed not measured yet'}\n </span>\n <button type=\"button\" className={styles.chip} disabled={state.busy} onClick={() => { void warm(badge.seatId); }}>\n {state.busy ? 'Warming…' : 'Warm up'}\n </button>\n </>\n ) : null}\n {state.text ? <span className={`${styles.notice} ${state.error ? styles.noticeError : ''}`} role={state.error ? 'alert' : 'status'}>{state.text}</span> : null}\n </div>\n );\n}\n\nexport default LocalSeatBadge;\n"],"mappings":"yTAeA,SAAgB,EAAe,CAAE,SAAQ,eAAsE,CAC7G,IAAM,EAAU,EAAS,EAAuB,CAAE,aAAY,CAAC,CAAC,CAAC,CAAC,MAAQ,KACpE,CAAC,EAAO,IAAA,EAAY,EAAA,SAAA,CAAiE,CAAE,KAAM,GAAO,KAAM,KAAM,MAAO,EAAM,CAAC,EAC9H,EAAQ,EAAS,GAAS,MAAM,KAAM,GAAM,EAAE,SAAW,CAAM,GAAK,KAAO,KAC3E,EAAY,GAAS,UAAU,KAAO,GAC5C,GAAI,CAAC,GAAS,CAAC,EAAW,OAAO,KAEjC,eAAe,EAAK,EAAY,CAC9B,EAAS,CAAE,KAAM,GAAM,KAAM,KAAM,MAAO,EAAM,CAAC,EACjD,GAAI,CACF,IAAM,EAAI,MAAM,EAAc,CAAE,EAChC,EAAS,CAAE,KAAM,GAAO,MAAO,CAAC,EAAE,GAAI,KAAM,EAAE,GAAK,OAAO,EAAE,UAAY,MAAM,EAAE,UAAU,QAAU,KAAK,EAAE,OAAS,gBAAgB,EAAE,OAAS,IAAA,CAAM,QAAQ,CAAC,EAAE,IAAM,GAAG,GAAK,EAAE,OAAS,oBAAqB,CAAC,CACjN,OAAS,EAAK,CACZ,EAAS,CAAE,KAAM,GAAO,MAAO,GAAM,KAAM,aAAe,MAAQ,EAAI,QAAU,oBAAqB,CAAC,CACxG,CACF,CAEA,OACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,EAAO,IAAK,KAAK,QAAQ,aAAW,cAApD,SAAA,CACG,GACC,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAW,GAAG,EAAO,KAAK,GAAG,EAAO,WAAY,MAAO,GAAS,UAAU,QAAU,IAAA,GAAW,SAAA,iDAE/F,CAAA,EACJ,KACH,GACC,EAAA,EAAA,KAAA,CAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAW,GAAG,EAAO,KAAK,GAAG,EAAM,QAAU,EAAO,YAAc,KACrE,SAAA,EAAM,QAAU,6BAA+B,8BAC5C,CAAA,EACL,EAAM,eAAgB,EAAA,EAAA,KAAA,CAAC,OAAD,CAAM,UAAW,EAAO,MAAxB,SAAA,CAAgC,EAAa,EAAM,aAAa,EAAE,UAAc,CAAI,CAAA,EAAA,MAC3G,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAW,EAAO,MACrB,SAAA,EAAM,UAAY,GAAG,EAAM,UAAU,QAAQ,EAAM,kBAAoB,OAAS,gBAAkB,KAAO,wBACtG,CAAA,GACN,EAAA,EAAA,IAAA,CAAC,SAAD,CAAQ,KAAK,SAAS,UAAW,EAAO,KAAM,SAAU,EAAM,KAAM,YAAe,CAAE,EAAU,EAAM,MAAM,CAAG,EAC3G,SAAA,EAAM,KAAO,WAAa,SACrB,CAAA,CACR,CAAA,CAAA,EACA,KACH,EAAM,MAAO,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAW,GAAG,EAAO,OAAO,GAAG,EAAM,MAAQ,EAAO,YAAc,KAAM,KAAM,EAAM,MAAQ,QAAU,SAAW,SAAA,EAAM,IAAW,CAAA,EAAI,IACvJ,GAET"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,s as n}from"./index-_izD07R9.js";import{B as r,H as i,T as a,V as o,W as s,h as c,i as l,m as u,n as ee,r as d,t as f,z as p}from"./ChartFrame-sZTnZkVd.js";import{_ as m,c as h,g,h as _,l as v,m as y,u as b,y as x}from"./colors-DvK0wMHH.js";import{i as S,t as C}from"./format-D7nBg2bn.js";var w=e(n(),1),T={gauge:`_gauge_1y0vx_1`,readout:`_readout_1y0vx_8`,value:`_value_1y0vx_18`,unknownValue:`_unknownValue_1y0vx_24`,state:`_state_1y0vx_30`,caption:`_caption_1y0vx_43`,fit:`_fit_1y0vx_49`},E=t(),D={ok:`within limits`,warn:`near the limit`,danger:`at the limit`,unknown:`unknown`};function te(e){let[t,n]=(0,w.useState)(0),[r,i]=(0,w.useState)(null);return(0,w.useLayoutEffect)(()=>{e.current!==r&&i(e.current)}),(0,w.useLayoutEffect)(()=>{let e=r;if(!e)return;let t=()=>{let t=Math.floor(e.getBoundingClientRect().width);n(e=>e===t?e:t)};if(t(),typeof ResizeObserver>`u`)return;let i=0,a=new ResizeObserver(()=>{cancelAnimationFrame(i),i=requestAnimationFrame(t)});return a.observe(e),()=>{cancelAnimationFrame(i),a.disconnect()}},[r]),t}function ne(e,t){return e>0?Math.max(112,Math.min(t,Math.floor(e))):t}function O(e){return e===`danger`?x(`danger`):e===`warn`?x(`warning`):h}function k({title:e,description:t,caveat:n,status:r,value:i,warnAt:l=.7,dangerAt:d=.9,marker:p,caption:m,size:h=180,formatValue:g=e=>S(e),showState:_=!0}){let v=(0,w.useId)(),x=y((0,w.useId)()),C=(0,w.useRef)(null),k=ne(te(C),h),A=_?c(i,l,d):i===null?`unknown`:`ok`,j=Math.max(10,Math.round(k/12)),M=k/2-j/2-2,N=k/2,P=k/2,F=k/2+j/2+4,I=i===null?`unknown`:g(i),L=i===null?`${e}: unknown`:_?`${e}: ${I}, ${D[A]}`:`${e}: ${I}`,R=[{key:`value`,label:`Used`,value:I},..._?[{key:`state`,label:`State`,value:D[A]},{key:`warn`,label:`Warning at`,value:g(l)},{key:`danger`,label:`Limit at`,value:g(d)}]:[],...p?[{key:`marker`,label:p.label,value:g(p.value)}]:[]],z=[{key:`label`,label:`Measure`,render:e=>e.label},{key:`value`,label:`Value`,numeric:!0,render:e=>e.value}],B=p?a(N,P,M+j/2+3,Math.PI*(1-Math.min(1,Math.max(0,p.value)))):null,V=p?a(N,P,M-j/2-3,Math.PI*(1-Math.min(1,Math.max(0,p.value)))):null;return(0,E.jsx)(f,{title:e,description:t,caveat:n,status:r??{kind:`ready`},skeleton:`gauge`,table:(0,E.jsx)(ee,{caption:e,columns:z,rows:R,rowKey:e=>e.key}),children:(0,E.jsx)(`div`,{ref:C,className:T.fit,children:(0,E.jsxs)(`div`,{className:T.gauge,role:`meter`,"aria-label":e,"aria-valuemin":0,"aria-valuemax":1,"aria-valuenow":i===null?void 0:Math.min(1,Math.max(0,i)),"aria-valuetext":L,"aria-describedby":m?v:void 0,"data-severity":A,children:[(0,E.jsxs)(`svg`,{className:s.svg,width:k,height:F,viewBox:`0 0 ${k} ${F}`,"aria-hidden":`true`,children:[(0,E.jsx)(`defs`,{children:(0,E.jsx)(o,{id:x})}),(0,E.jsx)(`path`,{"data-role":`track`,d:u(N,P,M,0,1),fill:`none`,stroke:i===null?`url(#${x})`:b,strokeWidth:j,strokeLinecap:`round`}),i!==null&&i>0?(0,E.jsx)(`path`,{"data-role":`fill`,d:u(N,P,M,0,Math.min(1,i)),fill:`none`,stroke:O(A),strokeWidth:j,strokeLinecap:`round`}):null,B&&V?(0,E.jsx)(`line`,{"data-role":`marker`,x1:V.x,y1:V.y,x2:B.x,y2:B.y,stroke:`var(--text-primary)`,strokeWidth:2,strokeLinecap:`round`}):null]}),(0,E.jsxs)(`div`,{className:T.readout,children:[(0,E.jsx)(`span`,{className:i===null?T.unknownValue:T.value,children:I}),_&&A!==`unknown`?(0,E.jsx)(`span`,{className:T.state,children:D[A]}):null,m?(0,E.jsx)(`span`,{id:v,className:T.caption,children:m}):null,p?(0,E.jsxs)(`span`,{className:T.caption,children:[p.label,`: `,g(p.value)]}):null]})]})})})}var A={scroll:`_scroll_1j5ed_3`,focus:`_focus_1j5ed_8`,num:`_num_1j5ed_17`};function j(e,t,n){let r=(t,n)=>{let r=e[t]?.[n];return r==null||!Number.isFinite(r)?null:r},i=e=>{let t=e.filter(e=>e!==null);return t.length?t.reduce((e,t)=>e+t,0):null},a=Array.from({length:t},(e,t)=>i(Array.from({length:n},(e,n)=>r(t,n)))),o=Array.from({length:n},(e,n)=>i(Array.from({length:t},(e,t)=>r(t,n)))),s=0;for(let e=0;e<t;e++)for(let t=0;t<n;t++)s=Math.max(s,r(e,t)??0);return{rows:a,columns:o,max:s,grand:i(a)}}var M=26,N=40,P=2,F=22,I=56;function L({title:e,description:t,caveat:n,status:a,rows:c,columns:u,values:h,unit:b=``,formatValue:x=C,showTotals:S=!0,defaultView:T,actions:D,width:te,ariaLabel:ne}){let O=(0,w.useRef)(null),k=l(O,te),L=d(),[R,z]=(0,w.useState)(null),B=(0,w.useId)(),V=y((0,w.useId)()),re=b?` ${b}`:``,H=j(h,c.length,u.length),ie=H.grand!==null,ae=a??(c.length===0||u.length===0?{kind:`empty`}:ie?{kind:`ready`}:{kind:`unknown`,reason:`no cell in this matrix was measured.`}),U=Math.max(72,Math.min(150,Math.round(k*.24))),oe=S?74:0,W=S?N*.6:0,se=k-U-oe,G=Math.max(F,Math.min(112,Math.floor(se/Math.max(1,u.length))-P)),K=Math.max(F,Math.min(I,30)),q=U,J=W+M,Y=q+u.length*(G+P)+oe,ce=J+c.length*32,le=Math.max(1,...H.rows.map(e=>e??0)),ue=Math.max(1,...H.columns.map(e=>e??0)),de=G>=28,fe=Math.floor(U/(7*L)),X=(e,t)=>{let n=h[e]?.[t];return n==null||!Number.isFinite(n)?null:n},pe=e=>H.max>0?e/H.max:0,me=e=>e===null?`url(#${V})`:e<=0?_(0):g(pe(e)),he=e=>m(e<=0?0:pe(e)),ge=(e,t)=>{let n=X(e,t);return`${c[e].label} × ${u[t].label}: ${n===null?`not measured`:`${x(n)}${re}`}`};function _e(e){if(c.length===0||u.length===0)return;let t=R??{r:0,c:0},n=null;e.key===`ArrowRight`?n={r:t.r,c:t.c+1}:e.key===`ArrowLeft`?n={r:t.r,c:t.c-1}:e.key===`ArrowDown`?n={r:t.r+1,c:t.c}:e.key===`ArrowUp`?n={r:t.r-1,c:t.c}:e.key===`Home`?n={r:t.r,c:0}:e.key===`End`&&(n={r:t.r,c:u.length-1}),n&&(e.preventDefault(),z({r:Math.max(0,Math.min(c.length-1,n.r)),c:Math.max(0,Math.min(u.length-1,n.c))}))}let Z=null;for(let e=0;e<c.length;e++)for(let t=0;t<u.length;t++){let n=X(e,t);n!==null&&(!Z||n>Z.v)&&(Z={r:e,c:t,v:n})}let Q=c.length*u.length-h.flat().filter(e=>e!=null).length,ve=ne??`${e}: ${c.length} × ${u.length} grid, ${H.grand===null?`nothing measured`:`${x(H.grand)}${re} in total`}`+(Z&&Z.v>0?`; most in ${c[Z.r].label} × ${u[Z.c].label} (${x(Z.v)})`:``)+(Q>0?`; ${Q} cell${Q===1?``:`s`} not measured`:``)+`.`,ye=c.map((e,t)=>({id:e.id,label:e.label,index:t})),be=[{key:`__row`,label:``,render:e=>e.label},...u.map((e,t)=>({key:e.id,label:e.label,numeric:!0,render:e=>{let n=X(e.index,t);return n===null?`—`:x(n)}})),{key:`__total`,label:`Total`,numeric:!0,render:e=>H.rows[e.index]===null?`—`:x(H.rows[e.index])}],$=R;return(0,E.jsx)(f,{title:e,description:t,caveat:n,status:ae,skeleton:`heat`,defaultView:T,actions:D,table:(0,E.jsx)(ee,{caption:e,columns:be,rows:ye,rowKey:e=>e.id}),footer:(0,E.jsxs)(`div`,{className:s.legend,"aria-hidden":`true`,children:[(0,E.jsx)(`span`,{className:s.legendItem,children:`0`}),[0,1,2,3,4].map(e=>(0,E.jsx)(`span`,{className:s.swatch,style:{background:e===0?_(0):g(e/4)}},e)),(0,E.jsx)(`span`,{className:s.legendItem,children:H.max>0?x(H.max):`more`}),Q>0?(0,E.jsxs)(`span`,{className:s.legendItem,children:[(0,E.jsx)(`span`,{className:s.swatchHatch}),`not measured`]}):null]}),children:(0,E.jsxs)(`div`,{ref:O,className:`${s.plotWrap} ${s.focusable} ${A.scroll}`,tabIndex:0,role:`group`,"aria-label":`${e}. Use the arrow keys to move between cells.`,"aria-describedby":B,onFocus:()=>z(e=>e??{r:0,c:0}),onBlur:()=>z(null),onKeyDown:_e,children:[(0,E.jsxs)(`svg`,{className:s.svg,width:Y,height:ce,viewBox:`0 0 ${Y} ${ce}`,role:`img`,"aria-label":ve,children:[(0,E.jsx)(`defs`,{children:(0,E.jsx)(o,{id:V})}),S?u.map((e,t)=>{let n=H.columns[t]??null,r=n===null?0:Math.max(n>0?2:0,n/ue*(W-4)),i=q+t*(G+P);return(0,E.jsx)(`g`,{"data-col-total":e.id,children:n===null?null:(0,E.jsx)(`rect`,{x:i+G*.2,y:W-r,width:G*.6,height:r,rx:2,fill:v})},`ct-${e.id}`)}):null,u.map((e,t)=>{let n=q+t*(G+P),i=Math.max(2,Math.floor((G-(e.engine?22:0))/7));return(0,E.jsxs)(`g`,{children:[e.engine?(0,E.jsx)(r,{engine:e.engine,x:n+2,y:W+5,height:14}):null,(0,E.jsx)(`text`,{className:s.label,x:n+(e.engine?24:G/2),y:W+M/2,dy:`0.32em`,textAnchor:e.engine?`start`:`middle`,children:e.label.length>i?`${e.label.slice(0,i-1)}…`:e.label})]},`ch-${e.id}`)}),c.map((e,t)=>{let n=J+t*32,r=H.rows[t]??null,i=r===null?0:Math.max(r>0?2:0,r/le*N),a=q+u.length*(G+P)+6;return(0,E.jsxs)(`g`,{"data-row":e.id,children:[(0,E.jsx)(`text`,{className:s.label,x:U-8,y:n+K/2,dy:`0.32em`,textAnchor:`end`,children:e.label.length>fe?`${e.label.slice(0,fe-1)}…`:e.label}),u.map((r,i)=>{let a=X(t,i),o=q+i*(G+P),c=$?.r===t&&$.c===i;return(0,E.jsxs)(`g`,{children:[(0,E.jsx)(`rect`,{"data-cell":`${e.id}:${r.id}`,"data-value":a===null?`unknown`:a,className:`${a===null?s.unknownMark:``} ${c?A.focus:``}`,x:a===null?o+.5:o,y:a===null?n+.5:n,width:a===null?G-1:G,height:a===null?29:K,rx:3,fill:me(a),onPointerEnter:()=>z({r:t,c:i}),onPointerLeave:()=>z(null)}),de&&a!==null?(0,E.jsx)(`text`,{"data-cell-value":`${e.id}:${r.id}`,className:A.num,x:o+G/2,y:n+K/2,dy:`0.32em`,textAnchor:`middle`,fill:he(a),children:x(a)}):null]},r.id)}),S?(0,E.jsxs)(`g`,{"data-row-total":e.id,children:[r===null?null:(0,E.jsx)(`rect`,{x:a,y:n+K*.25,width:i,height:K*.5,rx:2,fill:v}),(0,E.jsx)(`text`,{className:s.tick,x:a+i+4,y:n+K/2,dy:`0.32em`,children:r===null?`—`:x(r)})]}):null]},e.id)})]}),(0,E.jsx)(`span`,{id:B,className:s.srOnly,"aria-live":`polite`,children:$?ge($.r,$.c):``}),$?(0,E.jsx)(p,{left:i(q+$.c*(G+P)+G/2,Y,80),top:J+$.r*32,title:`${c[$.r].label} × ${u[$.c].label}`,rows:[{key:`v`,label:b||`Value`,value:X($.r,$.c)===null?null:x(X($.r,$.c))}]}):null]})})}export{k as n,L as t};
|
|
2
|
+
//# sourceMappingURL=MatrixHeatmap-Brn70z84.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MatrixHeatmap-Brn70z84.js","names":[],"sources":["../../../../../../src/web-ui/components/charts/Gauge.module.css","../../../../../../src/web-ui/components/charts/Gauge.tsx","../../../../../../src/web-ui/components/charts/MatrixHeatmap.module.css","../../../../../../src/web-ui/components/charts/MatrixHeatmap.tsx"],"sourcesContent":[".gauge {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--space-1);\n}\n\n.readout {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 2px;\n margin-top: calc(-1 * var(--space-6));\n text-align: center;\n}\n\n/* Proportional figures for a standalone number (tabular only in columns). */\n.value {\n font-size: var(--text-2xl-size);\n font-weight: var(--font-weight-semibold);\n color: var(--text-primary);\n}\n\n.unknownValue {\n font-size: var(--text-lg-size, var(--text-sm-size));\n font-weight: var(--font-weight-medium);\n color: var(--status-unknown-fg);\n}\n\n.state {\n font-size: var(--text-xs-size);\n color: var(--text-secondary);\n}\n\n.gauge[data-severity='warn'] .state {\n color: var(--status-warning-fg);\n}\n\n.gauge[data-severity='danger'] .state {\n color: var(--status-danger-fg);\n}\n\n.caption {\n font-size: var(--text-xs-size);\n color: var(--text-tertiary);\n}\n\n/* V3.10: the measuring box — full card width, so the arc can size to it. */\n.fit {\n width: 100%;\n min-width: 0;\n display: flex;\n justify-content: center;\n}\n","/**\n * components/charts/Gauge.tsx — one fraction on a 180° arc: how much of a\n * window is used, how close a cap is. The fill carries SEVERITY (accent →\n * warning → danger at the thresholds) over a track that is a lighter step of\n * the same ramp; an optional marker shows a line that matters (e.g. the\n * reserve kept for interactive use). The number and a words-first state label\n * sit under the arc, so severity is never colour alone.\n *\n * Honesty: `null` is UNKNOWN — an empty track and \"unknown\", never 0%. Values\n * past 100% are drawn full and printed as they are (\"112%\").\n *\n * Semantics: role=\"meter\" with aria-valuenow/min/max/valuetext.\n */\nimport { useId, useLayoutEffect, useRef, useState } from 'react';\nimport { CHART_SEQUENTIAL, CHART_TRACK, hatchPatternId, toneColor } from './colors.js';\nimport { HatchPattern } from './ChartParts.js';\nimport { ChartFrame, type ChartStatus } from './ChartFrame.js';\nimport { TableView, type TableColumn } from './TableView.js';\nimport { gaugeArc, gaugeSeverity, polar, type GaugeSeverity } from './chart-math.js';\nimport { formatPercent } from './format.js';\nimport plot from './plot.module.css';\nimport styles from './Gauge.module.css';\n\nexport interface GaugeProps {\n title: string;\n description?: string;\n caveat?: string;\n status?: ChartStatus;\n /** Fraction used, 0..1 (may exceed 1). null = unknown. */\n value: number | null;\n /** Severity thresholds as fractions (defaults 0.7 / 0.9). */\n warnAt?: number;\n dangerAt?: number;\n /** A reference line on the arc, e.g. { value: 0.6, label: 'Autonomy cap' }. */\n marker?: { value: number; label: string };\n /** Words under the number, e.g. \"resets in 2h\". */\n caption?: string;\n /**\n * The LARGEST diameter in px (default 180). V3.10: the gauge fits its\n * container — two gauges side by side at 375 px each shrink (never below\n * MIN_GAUGE_SIZE) instead of widening the page.\n */\n size?: number;\n formatValue?: (fraction: number) => string;\n /**\n * Print the severity words (\"near the limit\"). Default true. Set false for\n * a fraction where higher is BETTER (a hit rate): the fill stays one\n * quantity hue and no limit language is used.\n */\n showState?: boolean;\n}\n\nconst SEVERITY_LABEL: Record<GaugeSeverity, string> = {\n ok: 'within limits',\n warn: 'near the limit',\n danger: 'at the limit',\n unknown: 'unknown',\n};\n\n/** Smallest diameter a gauge draws at; below it the readout would collide with the arc. */\nexport const MIN_GAUGE_SIZE = 112;\n\n/** The container's measured width (0 until laid out: jsdom, a hidden tab). */\nfunction useContainerWidth(ref: React.RefObject<HTMLElement | null>): number {\n const [width, setWidth] = useState(0);\n // Track the node: the gauge mounts after a loading frame (see useChartWidth).\n const [node, setNode] = useState<HTMLElement | null>(null);\n // Runs after every render on purpose (ref.current is not a dependency React\n // can see); the equality guard makes it settle in one pass, never a loop.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useLayoutEffect(() => {\n if (ref.current !== node) setNode(ref.current);\n });\n useLayoutEffect(() => {\n const el = node;\n if (!el) return undefined;\n const read = (): void => {\n const w = Math.floor(el.getBoundingClientRect().width);\n setWidth((prev) => (prev === w ? prev : w));\n };\n read();\n if (typeof ResizeObserver === 'undefined') return undefined;\n let frame = 0;\n const observer = new ResizeObserver(() => {\n cancelAnimationFrame(frame);\n frame = requestAnimationFrame(read);\n });\n observer.observe(el);\n return () => {\n cancelAnimationFrame(frame);\n observer.disconnect();\n };\n }, [node]);\n return width;\n}\n\n/** Diameter for a container: the largest that fits, clamped to [MIN_GAUGE_SIZE, max]. */\nexport function gaugeDiameter(containerWidth: number, max: number): number {\n if (!(containerWidth > 0)) return max;\n return Math.max(MIN_GAUGE_SIZE, Math.min(max, Math.floor(containerWidth)));\n}\n\nfunction severityColor(severity: GaugeSeverity): string {\n if (severity === 'danger') return toneColor('danger');\n if (severity === 'warn') return toneColor('warning');\n return CHART_SEQUENTIAL;\n}\n\ninterface Row {\n key: string;\n label: string;\n value: string;\n}\n\nexport function Gauge({\n title,\n description,\n caveat,\n status,\n value,\n warnAt = 0.7,\n dangerAt = 0.9,\n marker,\n caption,\n size: maxSize = 180,\n formatValue = (f) => formatPercent(f),\n showState = true,\n}: GaugeProps) {\n const captionId = useId();\n const hatchId = hatchPatternId(useId());\n const fitRef = useRef<HTMLDivElement>(null);\n const size = gaugeDiameter(useContainerWidth(fitRef), maxSize);\n const severity = showState ? gaugeSeverity(value, warnAt, dangerAt) : value === null ? 'unknown' : 'ok';\n const stroke = Math.max(10, Math.round(size / 12));\n const r = size / 2 - stroke / 2 - 2;\n const cx = size / 2;\n const cy = size / 2;\n const h = size / 2 + stroke / 2 + 4;\n const valueText = value === null ? 'unknown' : formatValue(value);\n const spoken = value === null ? `${title}: unknown` : showState ? `${title}: ${valueText}, ${SEVERITY_LABEL[severity]}` : `${title}: ${valueText}`;\n\n const rows: Row[] = [\n { key: 'value', label: 'Used', value: valueText },\n ...(showState\n ? [\n { key: 'state', label: 'State', value: SEVERITY_LABEL[severity] },\n { key: 'warn', label: 'Warning at', value: formatValue(warnAt) },\n { key: 'danger', label: 'Limit at', value: formatValue(dangerAt) },\n ]\n : []),\n ...(marker ? [{ key: 'marker', label: marker.label, value: formatValue(marker.value) }] : []),\n ];\n const columns: TableColumn<Row>[] = [\n { key: 'label', label: 'Measure', render: (row) => row.label },\n { key: 'value', label: 'Value', numeric: true, render: (row) => row.value },\n ];\n\n const markerOuter = marker ? polar(cx, cy, r + stroke / 2 + 3, Math.PI * (1 - Math.min(1, Math.max(0, marker.value)))) : null;\n const markerInner = marker ? polar(cx, cy, r - stroke / 2 - 3, Math.PI * (1 - Math.min(1, Math.max(0, marker.value)))) : null;\n\n return (\n <ChartFrame\n title={title}\n description={description}\n caveat={caveat}\n status={status ?? { kind: 'ready' }}\n skeleton=\"gauge\"\n table={<TableView caption={title} columns={columns} rows={rows} rowKey={(row) => row.key} />}\n >\n <div ref={fitRef} className={styles.fit}>\n <div\n className={styles.gauge}\n role=\"meter\"\n aria-label={title}\n aria-valuemin={0}\n aria-valuemax={1}\n aria-valuenow={value === null ? undefined : Math.min(1, Math.max(0, value))}\n aria-valuetext={spoken}\n aria-describedby={caption ? captionId : undefined}\n data-severity={severity}\n >\n <svg className={plot.svg} width={size} height={h} viewBox={`0 0 ${size} ${h}`} aria-hidden=\"true\">\n <defs>\n <HatchPattern id={hatchId} />\n </defs>\n {/* Unknown: the track is hatched, not the pale ramp step a \"little\" value would get. */}\n <path\n data-role=\"track\"\n d={gaugeArc(cx, cy, r, 0, 1)}\n fill=\"none\"\n stroke={value === null ? `url(#${hatchId})` : CHART_TRACK}\n strokeWidth={stroke}\n strokeLinecap=\"round\"\n />\n {value !== null && value > 0 ? (\n <path\n data-role=\"fill\"\n d={gaugeArc(cx, cy, r, 0, Math.min(1, value))}\n fill=\"none\"\n stroke={severityColor(severity)}\n strokeWidth={stroke}\n strokeLinecap=\"round\"\n />\n ) : null}\n {markerOuter && markerInner ? (\n <line\n data-role=\"marker\"\n x1={markerInner.x}\n y1={markerInner.y}\n x2={markerOuter.x}\n y2={markerOuter.y}\n stroke=\"var(--text-primary)\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n />\n ) : null}\n </svg>\n <div className={styles.readout}>\n <span className={value === null ? styles.unknownValue : styles.value}>{valueText}</span>\n {showState && severity !== 'unknown' ? <span className={styles.state}>{SEVERITY_LABEL[severity]}</span> : null}\n {caption ? <span id={captionId} className={styles.caption}>{caption}</span> : null}\n {marker ? <span className={styles.caption}>{marker.label}: {formatValue(marker.value)}</span> : null}\n </div>\n </div>\n </div>\n </ChartFrame>\n );\n}\n","/* MatrixHeatmap — horizontal scroll when a wide matrix meets a narrow card,\n the focused-cell ring, and in-cell numbers. Tokens only. */\n.scroll {\n overflow-x: auto;\n overscroll-behavior-x: contain;\n}\n\n.focus {\n stroke: var(--border-focus);\n stroke-width: 2;\n}\n\n/* In-cell numbers: the fill is set per cell (colors.ts quantityInk, by the\n cell's luminance), so this class must NOT set one — a CSS fill would beat\n the attribute. Never a stroke / halo: paint-order stroke around dark text\n on a dark cell turned the glyphs into blobs. */\n.num {\n font-family: var(--font-ui);\n font-size: var(--text-xs-size);\n font-weight: var(--font-weight-medium);\n font-variant-numeric: tabular-nums;\n stroke: none;\n pointer-events: none;\n}\n","/**\n * components/charts/MatrixHeatmap.tsx — a rows × columns grid of counts\n * (V3.10, SPEC-310C §5 Mind: insight KIND × ENGINE, faceted per repo;\n * r5/visual.md §2 \"MatrixHeatmap\").\n *\n * Encoding, one meaning per mark:\n * - a KNOWN value is a step of the fixed azure quantity ramp\n * (colors.ts quantityColor) — a TRUE ZERO is the faint heat-0 cell;\n * - an UNKNOWN value (null: nothing was measured for that cell, e.g. an\n * engine with no recorded reasoning) is the 45° unknown hatch with an\n * outline — never the palest step, which would claim \"a little\";\n * - row and column TOTALS sit in the margins as bars (right and top), so\n * \"which kind dominates\" reads without adding cells in your head.\n * A column may carry an engine: its header gets the 2px tick + monogram.\n *\n * Keyboard: the grid is one tab stop; arrows move a cell, Home/End jump\n * along the row; the focused cell is announced. The Table view has every\n * cell and both totals. At 375 px callers usually start on the table\n * (`defaultView=\"table\"`, SPEC-310C §5 \"Mind's matrix shows as a table\").\n */\nimport { useId, useRef, useState, type KeyboardEvent, type ReactNode } from 'react';\nimport { CHART_SEQUENTIAL_SOFT, hatchPatternId, heatColor, quantityColor, quantityInk, type ChartEngine } from './colors.js';\nimport { ChartFrame, type ChartStatus, type ChartView } from './ChartFrame.js';\nimport { ChartTooltip, EngineTick, HatchPattern, clampTooltipLeft } from './ChartParts.js';\nimport { TableView, type TableColumn } from './TableView.js';\nimport { formatCompact } from './format.js';\nimport { useChartWidth } from './useChartWidth.js';\nimport { useTextScale } from './useTextScale.js';\nimport plot from './plot.module.css';\nimport styles from './MatrixHeatmap.module.css';\n\nexport interface MatrixAxisItem {\n id: string;\n label: string;\n /** Column-only: the engine this column stands for (tick + monogram in the header). */\n engine?: ChartEngine;\n}\n\nexport interface MatrixHeatmapProps {\n title: string;\n description?: string;\n caveat?: string;\n status?: ChartStatus;\n rows: MatrixAxisItem[];\n columns: MatrixAxisItem[];\n /** values[rowIndex][columnIndex]; null = not measured. */\n values: ReadonlyArray<ReadonlyArray<number | null>>;\n /** Unit word for spoken text and the table (\"insights\"). */\n unit?: string;\n formatValue?: (v: number) => string;\n /** Row / column totals as margin bars (default true). */\n showTotals?: boolean;\n defaultView?: ChartView;\n /** Extra header controls (e.g. the repo facet picker). */\n actions?: ReactNode;\n width?: number;\n ariaLabel?: string;\n}\n\ninterface Totals {\n rows: (number | null)[];\n columns: (number | null)[];\n max: number;\n grand: number | null;\n}\n\n/** Sum known values; a line with NO known value has an unknown (null) total, never 0. */\nexport function matrixTotals(values: ReadonlyArray<ReadonlyArray<number | null>>, rows: number, columns: number): Totals {\n const cell = (r: number, c: number): number | null => {\n const v = values[r]?.[c];\n return v === undefined || v === null || !Number.isFinite(v) ? null : v;\n };\n const sum = (xs: (number | null)[]): number | null => {\n const known = xs.filter((x): x is number => x !== null);\n return known.length ? known.reduce((a, b) => a + b, 0) : null;\n };\n const rowTotals = Array.from({ length: rows }, (_, r) => sum(Array.from({ length: columns }, (_, c) => cell(r, c))));\n const colTotals = Array.from({ length: columns }, (_, c) => sum(Array.from({ length: rows }, (_, r) => cell(r, c))));\n let max = 0;\n for (let r = 0; r < rows; r++) for (let c = 0; c < columns; c++) max = Math.max(max, cell(r, c) ?? 0);\n return { rows: rowTotals, columns: colTotals, max, grand: sum(rowTotals) };\n}\n\nconst HEADER_H = 26;\nconst MARGIN_BAR = 40;\nconst GAP = 2;\nconst MIN_CELL = 22;\nconst MAX_CELL = 56;\n\nexport function MatrixHeatmap({\n title,\n description,\n caveat,\n status,\n rows,\n columns,\n values,\n unit = '',\n formatValue = formatCompact,\n showTotals = true,\n defaultView,\n actions,\n width: fixedWidth,\n ariaLabel,\n}: MatrixHeatmapProps) {\n const wrapRef = useRef<HTMLDivElement>(null);\n const width = useChartWidth(wrapRef, fixedWidth);\n const textScale = useTextScale();\n const [focus, setFocus] = useState<{ r: number; c: number } | null>(null);\n const liveId = useId();\n const hatchId = hatchPatternId(useId());\n const unitText = unit ? ` ${unit}` : '';\n\n const totals = matrixTotals(values, rows.length, columns.length);\n const anyKnown = totals.grand !== null;\n const resolvedStatus: ChartStatus = status ?? (rows.length === 0 || columns.length === 0\n ? { kind: 'empty' }\n : anyKnown ? { kind: 'ready' } : { kind: 'unknown', reason: 'no cell in this matrix was measured.' });\n\n const labelW = Math.max(72, Math.min(150, Math.round(width * 0.24)));\n const marginRight = showTotals ? MARGIN_BAR + 34 : 0;\n const marginTop = showTotals ? MARGIN_BAR * 0.6 : 0;\n const avail = width - labelW - marginRight;\n const cellW = Math.max(MIN_CELL, Math.min(MAX_CELL * 2, Math.floor(avail / Math.max(1, columns.length)) - GAP));\n const cellH = Math.max(MIN_CELL, Math.min(MAX_CELL, 30));\n const gridX = labelW;\n const gridY = marginTop + HEADER_H;\n const svgW = gridX + columns.length * (cellW + GAP) + marginRight;\n const svgH = gridY + rows.length * (cellH + GAP);\n const rowTotalMax = Math.max(1, ...totals.rows.map((t) => t ?? 0));\n const colTotalMax = Math.max(1, ...totals.columns.map((t) => t ?? 0));\n const showNumbers = cellW >= 28;\n // 7 px a character at 12 px text, scaled to the Display size.\n const labelChars = Math.floor(labelW / (7 * textScale));\n\n const cellValue = (r: number, c: number): number | null => {\n const v = values[r]?.[c];\n return v === undefined || v === null || !Number.isFinite(v) ? null : v;\n };\n const fraction = (v: number): number => (totals.max > 0 ? v / totals.max : 0);\n const fill = (v: number | null): string => (v === null ? `url(#${hatchId})` : v <= 0 ? heatColor(0) : quantityColor(fraction(v)));\n // A true zero sits on the faint heat-0 cell, the palest ground there is.\n const cellInk = (v: number): string => (v <= 0 ? quantityInk(0) : quantityInk(fraction(v)));\n const describe = (r: number, c: number): string => {\n const v = cellValue(r, c);\n return `${rows[r]!.label} × ${columns[c]!.label}: ${v === null ? 'not measured' : `${formatValue(v)}${unitText}`}`;\n };\n\n function onKey(e: KeyboardEvent<HTMLDivElement>): void {\n if (rows.length === 0 || columns.length === 0) return;\n const cur = focus ?? { r: 0, c: 0 };\n let next: { r: number; c: number } | null = null;\n if (e.key === 'ArrowRight') next = { r: cur.r, c: cur.c + 1 };\n else if (e.key === 'ArrowLeft') next = { r: cur.r, c: cur.c - 1 };\n else if (e.key === 'ArrowDown') next = { r: cur.r + 1, c: cur.c };\n else if (e.key === 'ArrowUp') next = { r: cur.r - 1, c: cur.c };\n else if (e.key === 'Home') next = { r: cur.r, c: 0 };\n else if (e.key === 'End') next = { r: cur.r, c: columns.length - 1 };\n if (!next) return;\n e.preventDefault();\n setFocus({ r: Math.max(0, Math.min(rows.length - 1, next.r)), c: Math.max(0, Math.min(columns.length - 1, next.c)) });\n }\n\n let peak: { r: number; c: number; v: number } | null = null;\n for (let r = 0; r < rows.length; r++) for (let c = 0; c < columns.length; c++) {\n const v = cellValue(r, c);\n if (v !== null && (!peak || v > peak.v)) peak = { r, c, v };\n }\n const unknownCells = rows.length * columns.length - values.flat().filter((v) => v !== null && v !== undefined).length;\n const summary = ariaLabel ?? `${title}: ${rows.length} × ${columns.length} grid, ${totals.grand === null ? 'nothing measured' : `${formatValue(totals.grand)}${unitText} in total`}` +\n (peak && peak.v > 0 ? `; most in ${rows[peak.r]!.label} × ${columns[peak.c]!.label} (${formatValue(peak.v)})` : '') +\n (unknownCells > 0 ? `; ${unknownCells} cell${unknownCells === 1 ? '' : 's'} not measured` : '') + '.';\n\n interface TableRow { id: string; label: string; index: number }\n const tableRows: TableRow[] = rows.map((r, index) => ({ id: r.id, label: r.label, index }));\n const tableColumns: TableColumn<TableRow>[] = [\n { key: '__row', label: '', render: (r) => r.label },\n ...columns.map((c, ci) => ({\n key: c.id,\n label: c.label,\n numeric: true,\n render: (r: TableRow) => {\n const v = cellValue(r.index, ci);\n return v === null ? '—' : formatValue(v);\n },\n })),\n { key: '__total', label: 'Total', numeric: true, render: (r) => (totals.rows[r.index] === null ? '—' : formatValue(totals.rows[r.index]!)) },\n ];\n\n const focusCell = focus;\n\n return (\n <ChartFrame\n title={title}\n description={description}\n caveat={caveat}\n status={resolvedStatus}\n skeleton=\"heat\"\n defaultView={defaultView}\n actions={actions}\n table={<TableView caption={title} columns={tableColumns} rows={tableRows} rowKey={(r) => r.id} />}\n footer={\n <div className={plot.legend} aria-hidden=\"true\">\n <span className={plot.legendItem}>0</span>\n {[0, 1, 2, 3, 4].map((i) => (\n <span key={i} className={plot.swatch} style={{ background: i === 0 ? heatColor(0) : quantityColor(i / 4) }} />\n ))}\n <span className={plot.legendItem}>{totals.max > 0 ? formatValue(totals.max) : 'more'}</span>\n {unknownCells > 0 ? (\n <span className={plot.legendItem}>\n <span className={plot.swatchHatch} />\n not measured\n </span>\n ) : null}\n </div>\n }\n >\n <div\n ref={wrapRef}\n className={`${plot.plotWrap} ${plot.focusable} ${styles.scroll}`}\n tabIndex={0}\n role=\"group\"\n aria-label={`${title}. Use the arrow keys to move between cells.`}\n aria-describedby={liveId}\n onFocus={() => setFocus((f) => f ?? { r: 0, c: 0 })}\n onBlur={() => setFocus(null)}\n onKeyDown={onKey}\n >\n <svg className={plot.svg} width={svgW} height={svgH} viewBox={`0 0 ${svgW} ${svgH}`} role=\"img\" aria-label={summary}>\n <defs>\n <HatchPattern id={hatchId} />\n </defs>\n {/* Column totals (top margin) */}\n {showTotals\n ? columns.map((c, ci) => {\n const t = totals.columns[ci] ?? null;\n const h = t === null ? 0 : Math.max(t > 0 ? 2 : 0, (t / colTotalMax) * (marginTop - 4));\n const x = gridX + ci * (cellW + GAP);\n return (\n <g key={`ct-${c.id}`} data-col-total={c.id}>\n {t === null ? null : <rect x={x + cellW * 0.2} y={marginTop - h} width={cellW * 0.6} height={h} rx={2} fill={CHART_SEQUENTIAL_SOFT} />}\n </g>\n );\n })\n : null}\n {/* Column headers */}\n {columns.map((c, ci) => {\n const x = gridX + ci * (cellW + GAP);\n const chars = Math.max(2, Math.floor((cellW - (c.engine ? 22 : 0)) / 7));\n return (\n <g key={`ch-${c.id}`}>\n {c.engine ? <EngineTick engine={c.engine} x={x + 2} y={marginTop + 5} height={HEADER_H - 12} /> : null}\n <text className={plot.label} x={x + (c.engine ? 24 : cellW / 2)} y={marginTop + HEADER_H / 2} dy=\"0.32em\" textAnchor={c.engine ? 'start' : 'middle'}>\n {c.label.length > chars ? `${c.label.slice(0, chars - 1)}…` : c.label}\n </text>\n </g>\n );\n })}\n {rows.map((row, ri) => {\n const y = gridY + ri * (cellH + GAP);\n const t = totals.rows[ri] ?? null;\n const barW = t === null ? 0 : Math.max(t > 0 ? 2 : 0, (t / rowTotalMax) * MARGIN_BAR);\n const barX = gridX + columns.length * (cellW + GAP) + 6;\n return (\n <g key={row.id} data-row={row.id}>\n <text className={plot.label} x={labelW - 8} y={y + cellH / 2} dy=\"0.32em\" textAnchor=\"end\">\n {row.label.length > labelChars ? `${row.label.slice(0, labelChars - 1)}…` : row.label}\n </text>\n {columns.map((col, ci) => {\n const v = cellValue(ri, ci);\n const x = gridX + ci * (cellW + GAP);\n const isFocus = focusCell?.r === ri && focusCell.c === ci;\n return (\n <g key={col.id}>\n <rect\n data-cell={`${row.id}:${col.id}`}\n data-value={v === null ? 'unknown' : v}\n className={`${v === null ? plot.unknownMark : ''} ${isFocus ? styles.focus : ''}`}\n x={v === null ? x + 0.5 : x}\n y={v === null ? y + 0.5 : y}\n width={v === null ? cellW - 1 : cellW}\n height={v === null ? cellH - 1 : cellH}\n rx={3}\n fill={fill(v)}\n onPointerEnter={() => setFocus({ r: ri, c: ci })}\n onPointerLeave={() => setFocus(null)}\n />\n {showNumbers && v !== null ? (\n // Plain fill picked by the cell's luminance (colors.ts\n // quantityInk) — no halo: a surface stroke around text\n // on a dark cell smeared \"1\" into a blob.\n <text data-cell-value={`${row.id}:${col.id}`} className={styles.num} x={x + cellW / 2} y={y + cellH / 2} dy=\"0.32em\" textAnchor=\"middle\" fill={cellInk(v)}>\n {formatValue(v)}\n </text>\n ) : null}\n </g>\n );\n })}\n {showTotals ? (\n <g data-row-total={row.id}>\n {t === null ? null : <rect x={barX} y={y + cellH * 0.25} width={barW} height={cellH * 0.5} rx={2} fill={CHART_SEQUENTIAL_SOFT} />}\n <text className={plot.tick} x={barX + barW + 4} y={y + cellH / 2} dy=\"0.32em\">\n {t === null ? '—' : formatValue(t)}\n </text>\n </g>\n ) : null}\n </g>\n );\n })}\n </svg>\n <span id={liveId} className={plot.srOnly} aria-live=\"polite\">\n {focusCell ? describe(focusCell.r, focusCell.c) : ''}\n </span>\n {focusCell ? (\n <ChartTooltip\n left={clampTooltipLeft(gridX + focusCell.c * (cellW + GAP) + cellW / 2, svgW, 80)}\n top={gridY + focusCell.r * (cellH + GAP)}\n title={`${rows[focusCell.r]!.label} × ${columns[focusCell.c]!.label}`}\n rows={[{ key: 'v', label: unit || 'Value', value: cellValue(focusCell.r, focusCell.c) === null ? null : formatValue(cellValue(focusCell.r, focusCell.c)!) }]}\n />\n ) : null}\n </div>\n </ChartFrame>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"McpSection-Dz8Ga2Rg.js","names":[],"sources":["../../../../../../src/web-ui/routes/verse/sections/McpSection.tsx"],"sourcesContent":["/**\n * routes/verse/sections/McpSection.tsx — the legacy MCP entry point, folded\n * into Apps & Accounts (SPEC-310C §0.1 \"MCP moves into Apps\", §4).\n *\n * MCP is no longer a section of its own: its per-seat view, the standing\n * caveat (Claude and local seats load none), the drift alert and — new — the\n * Add flow all live in the MCP SERVERS group of the Apps page. This file stays\n * only so a shell that still routes `mcp` (a stored v2 `section: 'mcp'`, or\n * C1's `fallbackModules: ['McpSection']` while AppsSection is loading) lands\n * on that group instead of on a \"missing section\" notice. It renders the same\n * page — one implementation, never two MCP views that could drift.\n */\nimport { AppsSection } from './AppsSection.js';\n\nexport function McpSection() {\n return <AppsSection focusGroup=\"mcp-servers\" />;\n}\n"],"mappings":"0GAcA,SAAgB,GAAa,CAC3B,OAAO,EAAA,EAAA,IAAA,CAAC,EAAD,CAAa,WAAW,aAAe,CAAA,CAChD"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MessageMarkdownRenderer-DPaNQMj8.js","assets/deep-link-DgTIAuc2.js","assets/VerseConsoleApp-DO84Xscn.js","assets/global-CYfRwH6t.js","assets/RouteErrorBoundary-DTz5-ndE.js","assets/SkipToContent-B0GAKhYQ.js","assets/percent-text-CSk89zQF.js","assets/VerseShared-CFE5B-IY.js","assets/verse-bootstrap-query-ANtL2OPN.js","assets/open-terminal-request-SjPIZmAt.js","assets/global-1SED_aTT.css","assets/RouteErrorBoundary-DdxhTdZ6.css","assets/SkipToContent-c02H5dmz.css","assets/VerseConsoleApp-C5481fH5.css","assets/Transcript-DLeoLRca.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,s as n,t as r}from"./index-_izD07R9.js";import{t as i}from"./Transcript.module-CzROOZJo.js";var a=e(n(),1),o=t(),s=null,c=null;function l(){return c??=r(()=>import(`./MessageMarkdownRenderer-DPaNQMj8.js`).then(e=>e.t).then(e=>s=e,e=>{throw c=null,e}),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14])),c}typeof window<`u`&&l().catch(()=>void 0);function u(){let[e,t]=(0,a.useState)(s);return(0,a.useEffect)(()=>{if(e)return;let n=!0;return l().then(e=>{n&&t(e)},()=>void 0),()=>{n=!1}},[e]),e}function d({text:e}){return(0,o.jsx)(`div`,{className:i.markdown,"data-markdown-pending":``,children:(0,o.jsx)(`p`,{style:{whiteSpace:`pre-wrap`},children:e})})}var f=(0,a.memo)(function({text:e,streaming:t=!1}){let n=u();return n?(0,o.jsx)(n.RenderedMarkdown,{text:e,streaming:t}):(0,o.jsx)(d,{text:e})});export{f as t};
|
|
3
|
+
//# sourceMappingURL=MessageMarkdown-CQfYQaXB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"mappings":";kLA2BI,EAAkC,KAClC,EAA0C,KAM9C,SAAgB,GAAgD,CAS9D,MARA,WAAY,OAAO,wCAA+B,cAAC,KAChD,GAAS,EAAW,EACpB,GAAiB,CAGhB,KADA,GAAU,KACJ,CACR,CACF,yDACO,CACT,CAGI,OAAO,OAAW,KAAa,EAA0B,CAAC,CAAC,UAAY,MAAS,EAEpF,SAAS,GAAqC,CAC5C,GAAM,CAAC,EAAK,MAAU,YAAgC,CAAQ,EAO9D,OANA,mBAAgB,CACd,GAAI,EAAK,OACT,IAAI,EAAO,GAEX,OADA,EAAqB,CAAC,CAAC,KAAM,GAAM,CAAM,GAAM,EAAO,CAAC,CAAG,MAAS,MAAS,MAC/D,CAAE,EAAO,EAAO,CAC/B,EAAG,CAAC,CAAG,CAAC,EACD,CACT,CAGA,SAAS,EAAa,CAAE,QAA0B,CAChD,OACE,SAAC,MAAD,CAAK,UAAW,EAAO,SAAU,wBAAsB,GACrD,mBAAC,IAAD,CAAG,MAAO,CAAE,WAAY,UAAW,EAAI,UAAQ,EAC5C,EAET,CAMA,IAAa,KAAkB,QAAK,SAAyB,CAAE,OAAM,YAAY,IAAgD,CAC/H,IAAM,EAAM,EAAY,EACxB,OAAO,GAAM,SAAC,EAAI,iBAAL,CAA4B,OAAiB,WAAY,IAAI,SAAC,EAAD,CAAoB,MAAO,EACvG,CAAC","names":[],"ignoreList":[],"sources":["../../../../../../src/web-ui/routes/verse/MessageMarkdown.tsx"],"sourcesContent":["/**\n * routes/verse/MessageMarkdown.tsx — assistant text rendered as Markdown.\n *\n * This file is the light half. The renderer — marked + DOMPurify plus the\n * streaming block cache, ~70 KB minified — lives in MessageMarkdownRenderer\n * and loads as its own chunk (3.10 first paint, SPEC-310A §1: the chat's\n * critical JS was 658 KB against a 350 KB budget, and this was the largest\n * piece the transcript did not need in order to show text).\n *\n * Until the renderer is in, a message shows as PLAIN TEXT (React text, never\n * HTML — model output is untrusted, and nothing unsanitized can reach the\n * DOM on this path either). The download starts when this module evaluates,\n * so on a real load the renderer is usually in before the first message\n * mounts; once in, every mount renders Markdown synchronously. If the chunk\n * fails to load, the text stays plain (still complete and readable) and the\n * next mount asks again.\n *\n * The pure helpers (splitStreamingBlocks, appendInlineText, codeLanguage)\n * live in markdown-stream.ts and are re-exported here for existing importers.\n */\nimport { memo, useEffect, useState } from 'react';\nimport styles from './Transcript.module.css';\n\nexport { appendInlineText, codeLanguage, splitStreamingBlocks, type StreamingSplit } from './markdown-stream.js';\n\ntype RendererModule = typeof import('./MessageMarkdownRenderer.js');\n\nlet renderer: RendererModule | null = null;\nlet pending: Promise<RendererModule> | null = null;\n\n/**\n * Load (once) the Markdown renderer chunk. Exported so a caller that needs\n * Markdown synchronously — a test, a print path — can await it first.\n */\nexport function loadMarkdownRenderer(): Promise<RendererModule> {\n pending ??= import('./MessageMarkdownRenderer.js').then(\n (mod) => (renderer = mod),\n (err: unknown) => {\n // Not cached: a transient failure must not pin every message to plain text for the tab's life.\n pending = null;\n throw err;\n },\n );\n return pending;\n}\n\n// Start now, in parallel with whatever else the transcript is waiting on.\nif (typeof window !== 'undefined') void loadMarkdownRenderer().catch(() => undefined);\n\nfunction useRenderer(): RendererModule | null {\n const [mod, setMod] = useState<RendererModule | null>(renderer);\n useEffect(() => {\n if (mod) return undefined;\n let live = true;\n loadMarkdownRenderer().then((m) => { if (live) setMod(m); }, () => undefined);\n return () => { live = false; };\n }, [mod]);\n return mod;\n}\n\n/** The message before the renderer lands: all of it, as text, in the Markdown box's typography. */\nfunction PlainMessage({ text }: { text: string }) {\n return (\n <div className={styles.markdown} data-markdown-pending=\"\">\n <p style={{ whiteSpace: 'pre-wrap' }}>{text}</p>\n </div>\n );\n}\n\n/**\n * Memoized: a finished message re-renders only when its text changes, so a\n * token streaming into the NEXT reply never re-parses this one.\n */\nexport const MessageMarkdown = memo(function MessageMarkdown({ text, streaming = false }: { text: string; streaming?: boolean }) {\n const mod = useRenderer();\n return mod ? <mod.RenderedMarkdown text={text} streaming={streaming} /> : <PlainMessage text={text} />;\n});\n"],"file":"MessageMarkdown-CQfYQaXB.js"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-hePW80VL.js";import{n,s as r}from"./index-_izD07R9.js";import{r as i}from"./deep-link-DgTIAuc2.js";import{n as a}from"./open-terminal-request-SjPIZmAt.js";import{t as o}from"./Transcript.module-CzROOZJo.js";function s(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function c(e){if(Array.isArray(e))return e}function l(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t!==0)for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function u(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
2
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function d(e,t){return c(e)||l(e,t)||f(e,t)||u()}function f(e,t){if(e){if(typeof e==`string`)return s(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}var ee=Object.entries,p=Object.setPrototypeOf,te=Object.isFrozen,ne=Object.getPrototypeOf,re=Object.getOwnPropertyDescriptor,m=Object.freeze,h=Object.seal,ie=Object.create,ae=typeof Reflect<`u`&&Reflect,oe=ae.apply,se=ae.construct;m||=function(e){return e},h||=function(e){return e},oe||=function(e,t){var n=[...arguments].slice(2);return e.apply(t,n)},se||=function(e){return new e(...[...arguments].slice(1))};var ce=y(Array.prototype.forEach),le=y(Array.prototype.lastIndexOf),ue=y(Array.prototype.pop),de=y(Array.prototype.push),fe=y(Array.prototype.splice),pe=Array.isArray,me=y(String.prototype.toLowerCase),he=y(String.prototype.toString),ge=y(String.prototype.match),_e=y(String.prototype.replace),ve=y(String.prototype.indexOf),ye=y(String.prototype.trim),g=y(Number.prototype.toString),be=y(Boolean.prototype.toString),xe=typeof BigInt>`u`?null:y(BigInt.prototype.toString),Se=typeof Symbol>`u`?null:y(Symbol.prototype.toString),_=y(Object.prototype.hasOwnProperty),Ce=y(Object.prototype.toString),v=y(RegExp.prototype.test),we=Te(TypeError);function y(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return oe(e,t,n)}}function Te(e){return function(){return se(e,[...arguments])}}function b(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:me;if(p&&p(e,null),!pe(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(te(t)||(t[r]=e),i=e)}e[i]=!0}return e}function Ee(e){for(let t=0;t<e.length;t++)_(e,t)||(e[t]=null);return e}function x(e){let t=ie(null);for(let r of ee(e)){var n=d(r,2);let i=n[0],a=n[1];_(e,i)&&(t[i]=pe(a)?Ee(a):a&&typeof a==`object`&&a.constructor===Object?x(a):a)}return t}function De(e){switch(typeof e){case`string`:return e;case`number`:return g(e);case`boolean`:return be(e);case`bigint`:return xe?xe(e):`0`;case`symbol`:return Se?Se(e):`Symbol()`;case`undefined`:return Ce(e);case`function`:case`object`:{if(e===null)return Ce(e);let t=e,n=S(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:Ce(e)}return Ce(e)}default:return Ce(e)}}function S(e,t){for(;e!==null;){let n=re(e,t);if(n){if(n.get)return y(n.get);if(typeof n.value==`function`)return y(n.value)}e=ne(e)}function n(){return null}return n}function Oe(e){try{return v(e,``),!0}catch{return!1}}var ke=m(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),Ae=m(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),je=m([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),Me=m([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),Ne=m(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),Pe=m([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),Fe=m([`#text`]),Ie=m(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.command.commandfor.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns`.split(`.`)),Le=m(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dominant-baseline.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.pointer-events.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-orientation.text-rendering.textlength.type.u1.u2.unicode.values.vector-effect.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),Re=m(`accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),ze=m([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),Be=h(/{{[\w\W]*|^[\w\W]*}}/g),Ve=h(/<%[\w\W]*|^[\w\W]*%>/g),He=h(/\${[\w\W]*/g),Ue=h(/^data-[\-\w.\u00B7-\uFFFF]+$/),We=h(/^aria-[\-\w]+$/),Ge=h(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Ke=h(/^(?:\w+script|data):/i),qe=h(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Je=h(/^html$/i),Ye=h(/^[a-z][.\w]*(-[.\w]+)+$/i),Xe=h(/<[/\w!]/g),Ze=h(/<[/\w]/g),Qe=h(/<\/no(script|embed|frames)/i),$e=h(/\/>/i),C={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},et=[`style`,`script`,`xmp`,`iframe`,`noembed`,`noframes`,`plaintext`,`noscript`],tt=m(b({},et)),nt=function(){let e={};return ce(et,t=>{e[t]=h(RegExp(`</`+t+`(?=[\\t\\n\\f\\r />])`,`i`))}),m(e)}(),rt=function(){return typeof window>`u`?null:window},it=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},at=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},w=function(e,t,n,r){return _(e,t)&&pe(e[t])?b(r.base?x(r.base):{},e[t],r.transform):n},ot=function(e,t,n){let r=_(e,t)?e[t]:void 0;return r&&typeof r==`object`?x(r):n()};function st(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:rt(),t=e=>st(e);if(t.version=`3.4.15`,t.removed=[],!e||!e.document||e.document.nodeType!==C.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=S(d,`cloneNode`),p=S(d,`remove`),te=S(d,`removeAttributeNode`),ne=S(d,`nextSibling`),re=S(d,`childNodes`),ae=S(d,`parentNode`),oe=S(d,`shadowRoot`),se=S(d,`attributes`),g=o&&o.prototype?S(o.prototype,`nodeType`):null,be=o&&o.prototype?S(o.prototype,`nodeName`):null,xe=o&&o.prototype?S(o.prototype,`ownerDocument`):null,Se=function(e){return g?g(e):e.nodeType},Ce=function(e){return be?be(e):e.nodeName};if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let y,Te=``,Ee,et=!1,ct=0,lt=function(){if(ct>0)throw we(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},T=function(e){lt(),ct++;try{return y.createHTML(e)}finally{ct--}},ut=function(e){lt(),ct++;try{return y.createScriptURL(e)}finally{ct--}},E=function(){return et||=(Ee=it(u,i),!0),Ee},D=n,O=D.implementation,dt=D.createNodeIterator,k=D.createDocumentFragment,ft=D.getElementsByTagName,pt=r.importNode,A=at();t.isSupported=typeof ee==`function`&&typeof ae==`function`&&O&&O.createHTMLDocument!==void 0;let mt=Be,ht=Ve,gt=He,_t=Ue,vt=We,yt=Ke,bt=qe,xt=Ye,St=Ge,j=null,Ct=b({},[...ke,...Ae,...je,...Ne,...Fe]),M=null,wt=b({},[...Ie,...Le,...Re,...ze]),N=Object.seal(ie(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Tt=null,Et=null,P=Object.seal(ie(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Dt=!0,Ot=!0,kt=!1,At=!0,F=!1,I=!0,L=!1,jt=!1,R=null,z=null,Mt=!1,Nt=!1,Pt=!1,Ft=!1,It=!0,Lt=!1,Rt=`user-content-`,zt=!0,Bt=!1,Vt={},Ht=null,Ut=b({},`annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),Wt=null,Gt=b({},[`audio`,`video`,`img`,`source`,`image`,`track`]),Kt=null,qt=b({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),Jt=`http://www.w3.org/1998/Math/MathML`,Yt=`http://www.w3.org/2000/svg`,B=`http://www.w3.org/1999/xhtml`,Xt=B,Zt=!1,Qt=null,$t=b({},[Jt,Yt,B],he),en=m([`mi`,`mo`,`mn`,`ms`,`mtext`]),tn=b({},en),nn=m([`annotation-xml`]),rn=b({},nn),an=b({},[`title`,`style`,`font`,`a`,`script`]),on=null,sn=[`application/xhtml+xml`,`text/html`],V=null,H=null,cn=n.createElement(`form`),ln=function(e){return e instanceof RegExp||e instanceof Function},un=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(H&&H===e)return;(!e||typeof e!=`object`)&&(e={}),e=x(e),on=sn.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,V=on===`application/xhtml+xml`?he:me,j=w(e,`ALLOWED_TAGS`,Ct,{transform:V}),M=w(e,`ALLOWED_ATTR`,wt,{transform:V}),Qt=w(e,`ALLOWED_NAMESPACES`,$t,{transform:he}),Kt=w(e,`ADD_URI_SAFE_ATTR`,qt,{transform:V,base:qt}),Wt=w(e,`ADD_DATA_URI_TAGS`,Gt,{transform:V,base:Gt}),Ht=w(e,`FORBID_CONTENTS`,Ut,{transform:V}),Tt=w(e,`FORBID_TAGS`,x({}),{transform:V}),Et=w(e,`FORBID_ATTR`,x({}),{transform:V}),Vt=_(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?x(e.USE_PROFILES):e.USE_PROFILES:!1,Dt=e.ALLOW_ARIA_ATTR!==!1,Ot=e.ALLOW_DATA_ATTR!==!1,kt=e.ALLOW_UNKNOWN_PROTOCOLS||!1,At=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,F=e.SAFE_FOR_TEMPLATES||!1,I=e.SAFE_FOR_XML!==!1,L=e.WHOLE_DOCUMENT||!1,Nt=e.RETURN_DOM||!1,Pt=e.RETURN_DOM_FRAGMENT||!1,Ft=e.RETURN_TRUSTED_TYPE||!1,Mt=e.FORCE_BODY||!1,It=e.SANITIZE_DOM!==!1,Lt=e.SANITIZE_NAMED_PROPS||!1,zt=e.KEEP_CONTENT!==!1,Bt=e.IN_PLACE||!1,St=Oe(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:Ge,Xt=typeof e.NAMESPACE==`string`?e.NAMESPACE:B,tn=ot(e,`MATHML_TEXT_INTEGRATION_POINTS`,()=>b({},en)),rn=ot(e,`HTML_INTEGRATION_POINTS`,()=>b({},nn));let t=ot(e,`CUSTOM_ELEMENT_HANDLING`,()=>ie(null));if(N=ie(null),_(t,`tagNameCheck`)&&ln(t.tagNameCheck)&&(N.tagNameCheck=t.tagNameCheck),_(t,`attributeNameCheck`)&&ln(t.attributeNameCheck)&&(N.attributeNameCheck=t.attributeNameCheck),_(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(N.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),h(N),F&&(Ot=!1),Pt&&(Nt=!0),Vt&&(j=b({},Fe),M=ie(null),Vt.html===!0&&(b(j,ke),b(M,Ie)),Vt.svg===!0&&(b(j,Ae),b(M,Le),b(M,ze)),Vt.svgFilters===!0&&(b(j,je),b(M,Le),b(M,ze)),Vt.mathMl===!0&&(b(j,Ne),b(M,Re),b(M,ze))),P.tagCheck=null,P.attributeCheck=null,_(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?P.tagCheck=e.ADD_TAGS:pe(e.ADD_TAGS)&&(j===Ct&&(j=x(j)),b(j,e.ADD_TAGS,V))),_(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?P.attributeCheck=e.ADD_ATTR:pe(e.ADD_ATTR)&&(M===wt&&(M=x(M)),b(M,e.ADD_ATTR,V))),_(e,`ADD_FORBID_CONTENTS`)&&pe(e.ADD_FORBID_CONTENTS)&&(Ht===Ut&&(Ht=x(Ht)),b(Ht,e.ADD_FORBID_CONTENTS,V)),zt&&(j[`#text`]=!0),L&&b(j,[`html`,`head`,`body`]),j.table&&(b(j,[`tbody`]),delete Tt.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw we(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw we(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=y;y=e.TRUSTED_TYPES_POLICY;try{Te=T(``)}catch(e){throw y=t,e}}else e.TRUSTED_TYPES_POLICY===null?(y=void 0,Te=``):(y===void 0&&(y=E()),y&&typeof Te==`string`&&(Te=T(``)));m&&m(e),H=e},dn=b({},[...Ae,...je,...Me]),fn=b({},[...Ne,...Pe]),U=function(e,t,n){return t.namespaceURI===B?e===`svg`:t.namespaceURI===Jt?e===`svg`&&(n===`annotation-xml`||tn[n]):!!dn[e]},pn=function(e,t,n){return t.namespaceURI===B?e===`math`:t.namespaceURI===Yt?e===`math`&&rn[n]:!!fn[e]},mn=function(e,t,n){return t.namespaceURI===Yt&&!rn[n]||t.namespaceURI===Jt&&!tn[n]?!1:!fn[e]&&(an[e]||!dn[e])},W=function(e){let t=ae(e);(!t||!t.tagName)&&(t={namespaceURI:Xt,tagName:`template`});let n=me(e.tagName),r=me(t.tagName);return Qt[e.namespaceURI]?e.namespaceURI===Yt?U(n,t,r):e.namespaceURI===Jt?pn(n,t,r):e.namespaceURI===B?mn(n,t,r):!!(on===`application/xhtml+xml`&&Qt[e.namespaceURI]):!1},G=function(e){de(t.removed,{element:e});try{ae(e).removeChild(e)}catch{if(p(e),!ae(e))throw we(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},hn=function(e,t,n){try{te(e,t)}catch{try{e.removeAttribute(n)}catch{}}},gn=function(e){vn(e);let t=re(e);if(t){let e=[];ce(t,t=>{de(e,t)}),ce(e,e=>{try{p(e)}catch{}})}let n=se(e);if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;typeof i==`string`&&hn(e,r,i)}},K=function(e,n,r){if(!r)try{r=n.getAttributeNode(e)}catch{r=null}de(t.removed,{attribute:r||null,from:n});try{r?te(n,r):n.removeAttribute(e)}catch{try{n.removeAttribute(e)}catch{}}if(e===`is`){if(Nt||Pt)try{G(n)}catch{}else try{n.setAttribute(e,``)}catch{}}},_n=function(e){let t=se(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;typeof i!=`string`||M[V(i)]||hn(e,r,i)}},vn=function(e){let t=[e];for(;t.length>0;){let e=t.pop();Se(e)===C.element&&_n(e);let n=re(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}},q=function(e,t){return I?e===`patchsrc`||e===`for`&&t!==`label`&&t!==`output`:!1},yn=function(e){if(!I)return;let t=[e];for(;t.length>0;){let e=t.pop(),n=Se(e);if(n===C.processingInstruction||n===C.comment&&v(Ze,e.data)){try{p(e)}catch{}continue}if(n===C.element){let t=e,n=V(Ce(e));try{t.hasAttribute&&t.hasAttribute(`patchsrc`)&&t.removeAttribute(`patchsrc`),t.hasAttribute&&t.hasAttribute(`for`)&&q(`for`,n)&&t.removeAttribute(`for`)}catch{}}let r=re(e);if(r)for(let e=r.length-1;e>=0;--e)t.push(r[e])}},bn=function(e){let t=null,r=null;if(Mt)e=`<remove></remove>`+e;else{let t=ge(e,/^[\r\n\t ]+/);r=t&&t[0]}on===`application/xhtml+xml`&&Xt===B&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=y?T(e):e;if(Xt===B)try{t=new l().parseFromString(i,on)}catch{}if(!t||!t.documentElement){t=O.createDocument(Xt,`template`,null);try{t.documentElement.innerHTML=Zt?Te:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),Xt===B?ft.call(t,L?`html`:`body`)[0]:L?t.documentElement:a},J=function(e){let t=xe?xe(e):e.ownerDocument;return dt.call(t||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},Y=function(e){return e=_e(e,mt,` `),e=_e(e,ht,` `),e=_e(e,gt,` `),e},X=function(e){e.normalize();let t=xe?xe(e):e.ownerDocument,n=dt.call(t||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),r=n.nextNode();for(;r;)r.data=Y(r.data),r=n.nextNode();let i=e.querySelectorAll?.call(e,`template`);i&&ce(i,e=>{xn(e.content)&&X(e.content)})},Z=function(e){let t=be?be(e):null;return typeof t!=`string`||V(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==se(e)||typeof e.removeAttribute!=`function`||typeof e.removeAttributeNode!=`function`||typeof e.getAttributeNode!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==g(e)||e.childNodes!==re(e)},xn=function(e){if(!g||typeof e!=`object`||!e)return!1;try{return g(e)===C.documentFragment}catch{return!1}},Q=function(e){if(!g||typeof e!=`object`||!e)return!1;try{return typeof g(e)==`number`}catch{return!1}};function $(e,n,r){e.length!==0&&ce(e,e=>{e.call(t,n,r,H)})}let Sn=function(e,t){return!!(I&&e.hasChildNodes()&&!Q(e.firstElementChild)&&v(Xe,e.textContent)&&v(Xe,e.innerHTML)||I&&e.namespaceURI===B&&tt[t]&&(Q(e.firstElementChild)||typeof e.textContent==`string`&&v(nt[t],e.textContent))||e.nodeType===C.processingInstruction||I&&e.nodeType===C.comment&&v(Ze,e.data))},Cn=function(e,t){return e instanceof RegExp?v(e,t):e instanceof Function&&!!e(t,...[...arguments].slice(2))},wn=function(e,t,n){if(!Tt[t]&&An(t)&&Cn(N.tagNameCheck,t))return!1;if(zt&&!Ht[t]){let t=ae(e),r=re(e);if(r&&t){let i=r.length;for(let a=i-1;a>=0;--a){let i=e===n?f(r[a],!0):r[a];t.insertBefore(i,ne(e))}}}return G(e),!0},Tn=function(e,t,n,r){return e.length===0?t:t===n||t===r?x(t):t},En=function(e,t){return e===t||ae(e)!==null?!1:(Bt&&vn(e),!0)},Dn=function(e,n){if($(A.beforeSanitizeElements,e,null),En(e,n))return!0;if(Z(e))return G(e),!0;let r=V(Ce(e));if(j=Tn(A.uponSanitizeElement,j,Ct,R),$(A.uponSanitizeElement,e,{tagName:r,allowedTags:j}),En(e,n))return!0;if(Sn(e,r))return G(e),!0;if(Tt[r]||!(P.tagCheck instanceof Function&&P.tagCheck(r))&&!j[r]){let t=wn(e,r,n);return t===!1&&$(A.afterSanitizeElements,e,null),t}if(Se(e)===C.element&&!W(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&v(Qe,e.innerHTML))return G(e),!0;if(F&&e.nodeType===C.text){let n=Y(e.textContent);e.textContent!==n&&(de(t.removed,{element:e.cloneNode()}),e.textContent=n)}return $(A.afterSanitizeElements,e,null),!1},On=function(e,t,r){if(Et[t]||q(t,e)||It&&(t===`id`||t===`name`)&&(r in n||r in cn))return!1;let i=M[t]||P.attributeCheck instanceof Function&&P.attributeCheck(t,e);return Ot&&v(_t,t)||Dt&&v(vt,t)?!0:i?Kt[t]||v(St,_e(r,bt,``))||(t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&ve(r,`data:`)===0&&Wt[e]||kt&&!v(yt,_e(r,bt,``))?!0:!r:An(e)&&Cn(N.tagNameCheck,e)&&Cn(N.attributeNameCheck,t,e)||t===`is`&&N.allowCustomizedBuiltInElements&&Cn(N.tagNameCheck,r)},kn=b({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),An=function(e){return!kn[me(e)]&&v(xt,e)},jn=function(e,t,n,r){if(y&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return T(r);case`TrustedScriptURL`:return ut(r)}return r},Mn=function(e,t,n,r){try{return n?e.setAttributeNS(n,t,r):e.setAttribute(t,r),!Z(e)||(G(e),!1)}catch{return K(t,e),!1}},Nn=function(e){$(A.beforeSanitizeAttributes,e,null);let n=e.attributes;if(!n||Z(e))return;M=Tn(A.uponSanitizeAttribute,M,wt,z);let r={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:M,forceKeepAttr:void 0},i=n.length,a=V(e.nodeName);for(;i--;){let o=n[i],s=o.name,c=o.namespaceURI,l=o.value,u=V(s),d=l,f=s===`value`?d:ye(d),ee=!1;if(r.attrName=u,r.attrValue=f,r.keepAttr=!0,r.forceKeepAttr=void 0,$(A.uponSanitizeAttribute,e,r),f=r.attrValue,Lt&&(u===`id`||u===`name`)&&ve(f,Rt)!==0&&(K(s,e,o),f=Rt+f,ee=!0),I&&v(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,f)){K(s,e,o);continue}if(u===`attributename`&&ge(f,`href`)){K(s,e,o);continue}if(!r.forceKeepAttr){if(!r.keepAttr){K(s,e,o);continue}if(!At&&v($e,f)){K(s,e,o);continue}if(F&&(f=Y(f)),!On(a,u,f)){K(s,e,o);continue}f=jn(a,u,c,f),f!==d&&Mn(e,s,c,f)&&ee&&ue(t.removed)}}$(A.afterSanitizeAttributes,e,null)},Pn=function(e){let t=null,n=J(e);for($(A.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if($(A.uponSanitizeShadowNode,t,null),Dn(t,e),Nn(t),xn(t.content)&&Pn(t.content),Se(t)===C.element){let e=oe(t);xn(e)&&(Fn(e),Pn(e))}$(A.afterSanitizeShadowDOM,e,null)},Fn=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){Pn(e.shadow);continue}let n=e.node,r=Se(n)===C.element,i=re(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=be?be(n):null;if(typeof e==`string`&&V(e)===`template`){let e=n.content;xn(e)&&t.push({node:e,shadow:null})}}if(r){let e=oe(n);xn(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(Zt=!e,Zt&&(e=`<!-->`),typeof e!=`string`&&!Q(e)&&(e=De(e),typeof e!=`string`))throw we(`dirty is not a string, aborting`);if(!t.isSupported)return e;jt?(j=R,M=z):un(n),(A.uponSanitizeElement.length>0||A.uponSanitizeAttribute.length>0)&&(j=x(j)),A.uponSanitizeAttribute.length>0&&(M=x(M)),t.removed=[];let c=Bt&&typeof e!=`string`&&Q(e);if(c){yn(e);let t=Ce(e);if(typeof t==`string`){let n=V(t);if(!j[n]||Tt[n])throw gn(e),we(`root node is forbidden and cannot be sanitized in-place`)}if(Z(e))throw gn(e),we(`root node is clobbered and cannot be sanitized in-place`);try{Fn(e)}catch(t){throw gn(e),t}}else if(Q(e))i=bn(`<!---->`),a=i.ownerDocument.importNode(e,!0),a.nodeType===C.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),Fn(i);else{if(!Nt&&!F&&!L&&e.indexOf(`<`)===-1)return y&&Ft?T(e):e;if(i=bn(e),!i)return Nt?null:Ft?Te:``}i&&Mt&&G(i.firstChild);let l=c?e:i;try{let e=J(l);for(;o=e.nextNode();)Dn(o,l),Nn(o),xn(o.content)&&Pn(o.content)}catch(n){throw c&&(gn(e),ce(t.removed,e=>{e.element&&vn(e.element)})),n}if(c)return ce(t.removed,e=>{e.element&&vn(e.element)}),F&&X(e),e;if(Nt){if(F&&X(i),Pt)for(s=k.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(M.shadowroot||M.shadowrootmode)&&(s=pt.call(r,s,!0)),s}let u=L?i.outerHTML:i.innerHTML;return L&&j[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&v(Je,i.ownerDocument.doctype.name)&&(u=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
|
|
3
|
+
`+u),F&&(u=Y(u)),y&&Ft?T(u):u},t.setConfig=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};un(e),jt=!0,R=j,z=M},t.clearConfig=function(){H=null,jt=!1,R=null,z=null,y=Ee,Te=``},t.isValidAttribute=function(e,t,n){H||un({});let r=V(e),i=V(t);return On(r,i,n)},t.addHook=function(e,t){typeof t==`function`&&_(A,e)&&de(A[e],t)},t.removeHook=function(e,t){if(_(A,e)){if(t!==void 0){let n=le(A[e],t);return n===-1?void 0:fe(A[e],n,1)[0]}return ue(A[e])}},t.removeHooks=function(e){_(A,e)&&(A[e]=[])},t.removeAllHooks=function(){A=at()},t}var ct=st();function lt(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var T=lt();function ut(e){T=e}var E={exec:()=>null};function D(e){let t=[];return n=>{let r=Math.max(0,Math.min(3,n-1)),i=t[r];return i||(i=e(r),t[r]=i),i}}function O(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(k.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var dt=((e=``)=>{try{return!!RegExp(`(?<=1)(?<!1)`+e)}catch{return!1}})(),k={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:D(e=>RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:D(e=>RegExp(`^ {0,${e}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),fencesBeginRegex:D(e=>RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:D(e=>RegExp(`^ {0,${e}}#`)),htmlBeginRegex:D(e=>RegExp(`^ {0,${e}}<(?:[a-z].*>|!--)`,`i`)),blockquoteBeginRegex:D(e=>RegExp(`^ {0,${e}}>`))},ft=/^(?:[ \t]*(?:\n|$))+/,pt=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,A=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,mt=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,ht=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,gt=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,_t=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,vt=O(_t).replace(/bull/g,gt).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),yt=O(_t).replace(/bull/g,gt).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),bt=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,xt=/^[^\n]+/,St=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,j=O(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,St).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Ct=O(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,gt).getRegex(),M=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,wt=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,N=O(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,wt).replace(`tag`,M).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Tt=e=>O(bt).replace(`hr`,mt).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,e).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,M).getRegex(),Et=Tt(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),P=Tt(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),Dt={blockquote:O(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,P).getRegex(),code:pt,def:j,fences:A,heading:ht,hr:mt,html:N,lheading:vt,list:Ct,newline:ft,paragraph:Et,table:E,text:xt},Ot=O(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,mt).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,M).getRegex(),kt={...Dt,lheading:yt,table:Ot,paragraph:O(bt).replace(`hr`,mt).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,Ot).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,M).getRegex()},At={...Dt,html:O(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,wt).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:E,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:O(bt).replace(`hr`,mt).replace(`heading`,` *#{1,6} *[^
|
|
4
|
+
]`).replace(`lheading`,vt).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},F=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,I=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,L=/^( {2,}|\\)\n(?!\s*$)/,jt=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,R=/[\p{P}\p{S}]/u,z=/[\s\p{P}\p{S}]/u,Mt=/[^\s\p{P}\p{S}]/u,Nt=O(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,z).getRegex(),Pt=/[\p{Pi}\p{Ps}"']/u,Ft=/(?!~)[\p{P}\p{S}]/u,It=/(?!~)[\s\p{P}\p{S}]/u,Lt=/(?:[^\s\p{P}\p{S}]|~)/u,Rt=O(/link|precode-code|html/,`g`).replace(`link`,/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace(`precode-`,dt?"(?<!`)()":"(^^|[^`])").replace(`code`,/(?<b>`+)[^`]+\k<b>(?!`)/).replace(`html`,/<(?! )[^<>]*?>/).getRegex(),zt=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,Bt=O(zt,`u`).replace(/punct/g,R).getRegex(),Vt=O(zt,`u`).replace(/punct/g,Ft).getRegex(),Ht=O(/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,`u`).replace(/openQuote/g,Pt).replace(/punct/g,R).getRegex(),Ut=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,Wt=O(Ut,`gu`).replace(/notPunctSpace/g,Mt).replace(/punctSpace/g,z).replace(/punct/g,R).getRegex(),Gt=O(Ut,`gu`).replace(/notPunctSpace/g,Lt).replace(/punctSpace/g,It).replace(/punct/g,Ft).getRegex(),Kt=O(`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,Mt).replace(/punctSpace/g,z).replace(/punct/g,R).getRegex(),qt=O(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,Mt).replace(/punctSpace/g,z).replace(/punct/g,R).getRegex(),Jt=O(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,Mt).replace(/punctSpace/g,z).replace(/punct/g,R).getRegex(),Yt=O(/^~~?(?:((?!~)punct)|[^\s~])/,`u`).replace(/punct/g,R).getRegex(),B=O(`^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,Mt).replace(/punctSpace/g,z).replace(/punct/g,R).getRegex(),Xt=O(/\\(punct)/,`gu`).replace(/punct/g,R).getRegex(),Zt=O(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace(`scheme`,/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(`email`,/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Qt=O(wt).replace(`(?:-->|$)`,`-->`).getRegex(),$t=O(`^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>`).replace(`comment`,Qt).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),en=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,tn=O(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace(`label`,en).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),nn=O(/^!?\[(label)\]\[(ref)\]/).replace(`label`,en).replace(`ref`,St).getRegex(),rn=O(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,St).getRegex(),an=O(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,nn).replace(`nolink`,rn).getRegex(),on=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,sn={_backpedal:E,anyPunctuation:Xt,autolink:Zt,blockSkip:Rt,br:L,code:I,del:E,delLDelim:E,delRDelim:E,emStrongLDelim:Bt,emStrongRDelimAst:Wt,emStrongRDelimUnd:qt,escape:F,link:tn,nolink:rn,punctuation:Nt,reflink:nn,reflinkSearch:an,tag:$t,text:jt,url:E},V={...sn,emStrongLDelim:Ht,emStrongRDelimAst:Kt,emStrongRDelimUnd:Jt,link:O(/^!?\[(label)\]\((.*?)\)/).replace(`label`,en).getRegex(),reflink:O(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,en).getRegex()},H={...sn,emStrongRDelimAst:Gt,emStrongLDelim:Vt,delLDelim:Yt,delRDelim:B,url:O(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace(`protocol`,on).replace(`email`,/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:O(/^(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace(`protocol`,on).getRegex()},cn={...H,br:O(L).replace(`{2,}`,`*`).getRegex(),text:O(H.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},ln={normal:Dt,gfm:kt,pedantic:At},un={normal:sn,gfm:H,breaks:cn,pedantic:V},dn={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`},fn=e=>dn[e];function U(e,t){if(t){if(k.escapeTest.test(e))return e.replace(k.escapeReplace,fn)}else if(k.escapeTestNoEncode.test(e))return e.replace(k.escapeReplaceNoEncode,fn);return e}function pn(e){try{e=encodeURI(e).replace(k.percentDecode,`%`)}catch{return null}return e}function mn(e,t){let n=e.replace(k.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(k.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t){if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(``)}for(;r<n.length;r++)n[r]=n[r].trim().replace(k.slashPipe,`|`);return n}function W(e,t,n){let r=e.length;if(r===0)return``;let i=0;for(;i<r;){let a=e.charAt(r-i-1);if(a===t&&!n)i++;else if(a!==t&&n)i++;else break}return e.slice(0,r-i)}function G(e){let t=e.split(`
|
|
5
|
+
`),n=t.length-1;for(;n>=0&&k.blankLine.test(t[n]);)n--;return t.length-n<=2?e:t.slice(0,n+1).join(`
|
|
6
|
+
`)}function hn(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]===`\\`)r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return n>0?-2:-1}function gn(e,t=0){let n=t,r=``;for(let t of e)if(t===` `){let e=4-n%4;r+=` `.repeat(e),n+=e}else r+=t,n++;return r}function K(e,t,n,r,i){let a=t.href,o=t.title||null,s=e[1].replace(i.other.outputLinkReplace,`$1`);r.state.inLink=!0;let c={type:e[0].charAt(0)===`!`?`image`:`link`,raw:n,href:a,title:o,text:s,tokens:r.inlineTokens(s)};return r.state.inLink=!1,c}function _n(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(`
|
|
7
|
+
`).map(e=>{let t=e.match(n.other.beginningSpace);if(t===null)return e;let[r]=t;return r.length>=i.length?e.slice(i.length):e}).join(`
|
|
8
|
+
`)}var vn=class{options;rules;lexer;constructor(e){this.options=e||T}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:`space`,raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=this.options.pedantic?t[0]:G(t[0]);return{type:`code`,raw:e,codeBlockStyle:`indented`,text:e.replace(this.rules.other.codeRemoveIndent,``)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],n=_n(e,t[3]||``,this.rules);return{type:`code`,raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,`$1`):t[2],text:n}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let t=W(e,`#`);(this.options.pedantic||!t||this.rules.other.endingSpaceChar.test(t))&&(e=t.trim())}return{type:`heading`,raw:W(t[0],`
|
|
9
|
+
`),depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:`hr`,raw:W(t[0],`
|
|
10
|
+
`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let e=W(t[0],`
|
|
11
|
+
`).split(`
|
|
12
|
+
`),n=``,r=``,i=[];for(;e.length>0;){let t=!1,a=[],o=0;for(;o<e.length;o++)if(this.rules.other.blockquoteStart.test(e[o]))a.push(e[o]),t=!0;else if(!t)a.push(e[o]);else break;e=e.slice(o);let s=a.join(`
|
|
13
|
+
`),c=s.replace(this.rules.other.blockquoteSetextReplace,`
|
|
14
|
+
$1`).replace(this.rules.other.blockquoteSetextReplace2,``);n=n?`${n}
|
|
15
|
+
${s}`:s,r=r?`${r}
|
|
16
|
+
${c}`:c;let l=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,i,!0),this.lexer.state.top=l,e.length===0)break;let u=i.at(-1);if(u?.type===`code`)break;if(u?.type===`blockquote`){let t=u,a=e.join(`
|
|
17
|
+
`),o=t.raw+`
|
|
18
|
+
`+a.replace(this.rules.other.blockquoteSetextReplace2,``),s=this.blockquote(o);i[i.length-1]=s,n=`${n}
|
|
19
|
+
${a}`,r=r.substring(0,r.length-t.text.length)+s.text;break}if(u?.type===`list`){let t=u,a=t.raw+`
|
|
20
|
+
`+e.join(`
|
|
21
|
+
`),o=this.list(a);i[i.length-1]=o,n=n.substring(0,n.length-u.raw.length)+o.raw,r=r.substring(0,r.length-t.raw.length)+o.raw,e=a.substring(i.at(-1).raw.length).split(`
|
|
22
|
+
`);continue}}return{type:`blockquote`,raw:n,tokens:i,text:r}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),r=n.length>1,i={type:`list`,raw:``,ordered:r,start:r?+n.slice(0,-1):``,loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:`[*+-]`);let a=this.rules.other.listItemRegex(n),o=!1;for(;e;){let n=!1,r=``,s=``;if(!(t=a.exec(e))||this.rules.block.hr.test(e))break;r=t[0],e=e.substring(r.length);let c=gn(t[2].split(`
|
|
23
|
+
`,1)[0],t[1].length),l=e.split(`
|
|
24
|
+
`,1)[0],u=!c.trim(),d=0;if(this.options.pedantic?(d=2,s=c.trimStart()):u?d=t[1].length+1:(d=c.search(this.rules.other.nonSpaceChar),d=d>4?1:d,s=c.slice(d),d+=t[1].length),u&&this.rules.other.blankLine.test(l)&&(r+=l+`
|
|
25
|
+
`,e=e.substring(l.length+1),n=!0),!n){let t=this.rules.other.nextBulletRegex(d),n=this.rules.other.hrRegex(d),i=this.rules.other.fencesBeginRegex(d),a=this.rules.other.headingBeginRegex(d),o=this.rules.other.htmlBeginRegex(d),f=this.rules.other.blockquoteBeginRegex(d);for(;e;){let ee=e.split(`
|
|
26
|
+
`,1)[0],p;if(l=ee,this.options.pedantic?(l=l.replace(this.rules.other.listReplaceNesting,` `),p=l):p=l.replace(this.rules.other.tabCharGlobal,` `),i.test(l)||a.test(l)||o.test(l)||f.test(l)||t.test(l)||n.test(l))break;if(p.search(this.rules.other.nonSpaceChar)>=d||!l.trim())s+=`
|
|
27
|
+
`+p.slice(d);else{if(u||c.replace(this.rules.other.tabCharGlobal,` `).search(this.rules.other.nonSpaceChar)>=4||i.test(c)||a.test(c)||n.test(c))break;s+=`
|
|
28
|
+
`+l}u=!l.trim(),r+=ee+`
|
|
29
|
+
`,e=e.substring(ee.length+1),c=p.slice(d)}}i.loose||(o?i.loose=!0:this.rules.other.doubleBlankLine.test(r)&&(o=!0)),i.items.push({type:`list_item`,raw:r,task:!!this.options.gfm&&this.rules.other.listIsTask.test(s),loose:!1,text:s,tokens:[]}),i.raw+=r}let s=i.items.at(-1);if(s)s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let e of i.items)if(this.lexer.state.top=!1,e.tokens=this.lexer.blockTokens(e.text,[]),!i.loose){let t=e.tokens.filter(e=>e.type===`space`);i.loose=t.length>0&&t.some(e=>this.rules.other.anyLine.test(e.raw))}for(let e of i.items){let t=e.tokens[0];if(e.task&&(t?.type===`text`||t?.type===`paragraph`)){e.text=e.text.replace(this.rules.other.listReplaceTask,``),t.raw=t.raw.replace(this.rules.other.listReplaceTask,``),t.text=t.text.replace(this.rules.other.listReplaceTask,``);for(let e=this.lexer.inlineQueue.length-1;e>=0;e--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[e].src)){this.lexer.inlineQueue[e].src=this.lexer.inlineQueue[e].src.replace(this.rules.other.listReplaceTask,``);break}let n=this.rules.other.listTaskCheckbox.exec(e.raw);if(n){let t={type:`checkbox`,raw:n[0]+` `,checked:n[0]!==`[ ]`};e.checked=t.checked,i.loose?e.tokens[0]&&[`paragraph`,`text`].includes(e.tokens[0].type)&&`tokens`in e.tokens[0]&&e.tokens[0].tokens?(e.tokens[0].raw=t.raw+e.tokens[0].raw,e.tokens[0].text=t.raw+e.tokens[0].text,e.tokens[0].tokens.unshift(t)):e.tokens.unshift({type:`paragraph`,raw:t.raw,text:t.raw,tokens:[t]}):e.tokens.unshift(t)}}else e.task&&=!1}if(i.loose)for(let e of i.items){e.loose=!0;for(let t of e.tokens)t.type===`text`&&(t.type=`paragraph`)}return i}}html(e){let t=this.rules.block.html.exec(e);if(t){let e=G(t[0]);return{type:`html`,block:!0,raw:e,pre:t[1]===`pre`||t[1]===`script`||t[1]===`style`,text:e}}}def(e){let t=this.rules.block.def.exec(e);if(t){let e=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal,` `),n=t[2]?t[2].replace(this.rules.other.hrefBrackets,`$1`).replace(this.rules.inline.anyPunctuation,`$1`):``,r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,`$1`):t[3];return{type:`def`,tag:e,raw:W(t[0],`
|
|
30
|
+
`),href:n,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=mn(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,``).split(`|`),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,``).split(`
|
|
31
|
+
`):[],a={type:`table`,raw:W(t[0],`
|
|
32
|
+
`),header:[],align:[],rows:[]};if(n.length===r.length){for(let e of r)this.rules.other.tableAlignRight.test(e)?a.align.push(`right`):this.rules.other.tableAlignCenter.test(e)?a.align.push(`center`):this.rules.other.tableAlignLeft.test(e)?a.align.push(`left`):a.align.push(null);for(let e=0;e<n.length;e++)a.header.push({text:n[e],tokens:this.lexer.inline(n[e]),header:!0,align:a.align[e]});for(let e of i)a.rows.push(mn(e,a.header.length).map((e,t)=>({text:e,tokens:this.lexer.inline(e),header:!1,align:a.align[t]})));return a}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let e=t[1].trim();return{type:`heading`,raw:W(t[0],`
|
|
33
|
+
`),depth:t[2].charAt(0)===`=`?1:2,text:e,tokens:this.lexer.inline(e)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let e=t[1].charAt(t[1].length-1)===`
|
|
34
|
+
`?t[1].slice(0,-1):t[1];return{type:`paragraph`,raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:`text`,raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:`escape`,raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:`html`,raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let t=W(e.slice(0,-1),`\\`);if((e.length-t.length)%2==0)return}else{let e=hn(t[2],`()`);if(e===-2)return;if(e>-1){let n=(t[0].indexOf(`!`)===0?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=``}}let n=t[2],r=``;if(this.options.pedantic){let e=this.rules.other.pedanticHrefTitle.exec(n);e&&(n=e[1],r=e[3])}else r=t[3]?t[3].slice(1,-1):``;return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(n=this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?n.slice(1):n.slice(1,-1)),K(t,{href:n&&n.replace(this.rules.inline.anyPunctuation,`$1`),title:r&&r.replace(this.rules.inline.anyPunctuation,`$1`)},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let e=t[(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,` `).toLowerCase()];if(!e){let e=n[0].charAt(0);return{type:`text`,raw:e,text:e}}return K(n,e,n[0],this.lexer,this.rules)}}emStrong(e,t,n=``){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,a,o,s=i,c=0,l=r[0][0],u=n===l,d=l===`*`?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,t=t.slice(-1*e.length+i);(r=d.exec(t))!==null;){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a)continue;if(o=[...a].length,r[3]||r[4]){s+=o;continue}if(r[5]||r[6]){if(i%3&&!((i+o)%3)){c+=o;continue}if(u)break}if(s-=o,s>0)continue;o=Math.min(o,o+s+c);let t=[...r[0]][0].length,n=e.slice(0,i+r.index+t+o);if(Math.min(i,o)%2){let e=n.slice(1,-1);return{type:`em`,raw:n,text:e,tokens:this.lexer.inlineTokens(e)}}let l=n.slice(2,-2);return{type:`strong`,raw:n,text:l,tokens:this.lexer.inlineTokens(l)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal,` `),n=this.rules.other.nonSpaceChar.test(e),r=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return n&&r&&(e=e.substring(1,e.length-1)),{type:`codespan`,raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:`br`,raw:t[0]}}del(e,t,n=``){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let n=[...r[0]].length-1,i,a,o=n,s=this.rules.inline.delRDelim;for(s.lastIndex=0,t=t.slice(-1*e.length+n);(r=s.exec(t))!==null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i||(a=[...i].length,a!==n))continue;if(r[3]||r[4]){o+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o);let t=[...r[0]][0].length,s=e.slice(0,n+r.index+t+a),c=s.slice(n,-n);return{type:`del`,raw:s,text:c,tokens:this.lexer.inlineTokens(c)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,n;return t[2]===`@`?(e=t[1],n=`mailto:`+e):(e=t[1],n=e),{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if(t[2]===`@`)e=t[0],n=`mailto:`+e;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??``;while(r!==t[0]);e=t[0],n=t[1]===`www.`?`http://`+t[0]:t[0]}return{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e=this.lexer.state.inRawBlock;return{type:`text`,raw:t[0],text:t[0],escaped:e}}}},q=class e{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||T,this.options.tokenizer=this.options.tokenizer||new vn,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:k,block:ln.normal,inline:un.normal};this.options.pedantic?(t.block=ln.pedantic,t.inline=un.pedantic):this.options.gfm&&(t.block=ln.gfm,t.inline=this.options.breaks?un.breaks:un.gfm),this.tokenizer.rules=t}static get rules(){return{block:ln,inline:un}}static lex(t,n){return new e(n).lex(t)}static lexInline(t,n){return new e(n).inlineTokens(t)}lex(e){e=e.replace(k.carriageReturn,`
|
|
35
|
+
`),this.blockTokens(e,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let t=this.inlineQueue[e];this.inlineTokens(t.src,t.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(k.tabCharGlobal,` `).replace(k.spaceLine,``));let r=1/0;for(;e;){if(e.length<r)r=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}let i;if(this.options.extensions?.block?.some(n=>(i=n.call({lexer:this},e,t))?(e=e.substring(i.raw.length),t.push(i),!0):!1))continue;if(i=this.tokenizer.space(e)){e=e.substring(i.raw.length);let n=t.at(-1);i.raw.length===1&&n!==void 0?n.raw+=`
|
|
36
|
+
`:t.push(i);continue}if(i=this.tokenizer.code(e)){e=e.substring(i.raw.length);let n=t.at(-1);n?.type===`paragraph`||n?.type===`text`?(n.raw+=(n.raw.endsWith(`
|
|
37
|
+
`)?``:`
|
|
38
|
+
`)+i.raw,n.text+=`
|
|
39
|
+
`+i.text,this.inlineQueue.at(-1).src=n.text):t.push(i);continue}if(i=this.tokenizer.fences(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.heading(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.hr(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.blockquote(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.list(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.html(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.def(e)){e=e.substring(i.raw.length);let n=t.at(-1);n?.type===`paragraph`||n?.type===`text`?(n.raw+=(n.raw.endsWith(`
|
|
40
|
+
`)?``:`
|
|
41
|
+
`)+i.raw,n.text+=`
|
|
42
|
+
`+i.raw,this.inlineQueue.at(-1).src=n.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title},t.push(i));continue}if(i=this.tokenizer.table(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.lheading(e)){e=e.substring(i.raw.length),t.push(i);continue}let a=e;if(this.options.extensions?.startBlock){let t=1/0,n=e.slice(1),r;this.options.extensions.startBlock.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(a=e.substring(0,t+1))}if(this.state.top&&(i=this.tokenizer.paragraph(a))){let r=t.at(-1);n&&r?.type===`paragraph`?(r.raw+=(r.raw.endsWith(`
|
|
43
|
+
`)?``:`
|
|
44
|
+
`)+i.raw,r.text+=`
|
|
45
|
+
`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):t.push(i),n=a.length!==e.length,e=e.substring(i.raw.length);continue}if(i=this.tokenizer.text(e)){e=e.substring(i.raw.length);let n=t.at(-1);n?.type===`text`?(n.raw+=(n.raw.endsWith(`
|
|
46
|
+
`)?``:`
|
|
47
|
+
`)+i.raw,n.text+=`
|
|
48
|
+
`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=n.text):t.push(i);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let n=e;if(this.tokens.links){let e=Object.keys(this.tokens.links);e.length>0&&(n=n.replace(this.tokenizer.rules.inline.reflinkSearch,t=>e.includes(t.slice(t.lastIndexOf(`[`)+1,-1))?`[`+`a`.repeat(t.length-2)+`]`:t))}n=n.replace(this.tokenizer.rules.inline.anyPunctuation,e=>`+`.repeat(e.length)),n=n.replace(this.tokenizer.rules.inline.blockSkip,(e,t,n)=>{let r=n?n.length:0;return e.slice(0,r)+`[`+`a`.repeat(e.length-r-2)+`]`}),n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let r=!1,i=``,a=1/0;for(;e;){if(e.length<a)a=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}r||(i=``),r=!1;let o;if(this.options.extensions?.inline?.some(n=>(o=n.call({lexer:this},e,t))?(e=e.substring(o.raw.length),t.push(o),!0):!1))continue;if(o=this.tokenizer.escape(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.tag(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.link(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(o.raw.length);let n=t.at(-1);o.type===`text`&&n?.type===`text`?(n.raw+=o.raw,n.text+=o.text):t.push(o);continue}if(o=this.tokenizer.emStrong(e,n,i)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.codespan(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.br(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.del(e,n,i)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.autolink(e)){e=e.substring(o.raw.length),t.push(o);continue}if(!this.state.inLink&&(o=this.tokenizer.url(e))){e=e.substring(o.raw.length),t.push(o);continue}let s=e;if(this.options.extensions?.startInline){let t=1/0,n=e.slice(1),r;this.options.extensions.startInline.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(s=e.substring(0,t+1))}if(o=this.tokenizer.inlineText(s)){e=e.substring(o.raw.length),o.raw.slice(-1)!==`_`&&(i=o.raw.slice(-1)),r=!0;let n=t.at(-1);n?.type===`text`?(n.raw+=o.raw,n.text+=o.text):t.push(o);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t=`Infinite loop on byte: `+e;if(this.options.silent)console.error(t);else throw Error(t)}},yn=class{options;parser;constructor(e){this.options=e||T}space(e){return``}code({text:e,lang:t,escaped:n}){let r=(t||``).match(k.notSpaceStart)?.[0],i=e.replace(k.endingNewline,``)+`
|
|
49
|
+
`;return r?`<pre><code class="language-`+U(r)+`">`+(n?i:U(i,!0))+`</code></pre>
|
|
50
|
+
`:`<pre><code>`+(n?i:U(i,!0))+`</code></pre>
|
|
51
|
+
`}blockquote({tokens:e}){return`<blockquote>
|
|
52
|
+
${this.parser.parse(e)}</blockquote>
|
|
53
|
+
`}html({text:e}){return e}def(e){return``}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>
|
|
54
|
+
`}hr(e){return`<hr>
|
|
55
|
+
`}list(e){let t=e.ordered,n=e.start,r=``;for(let t=0;t<e.items.length;t++){let n=e.items[t];r+=this.listitem(n)}let i=t?`ol`:`ul`,a=t&&n!==1?` start="`+n+`"`:``;return`<`+i+a+`>
|
|
56
|
+
`+r+`</`+i+`>
|
|
57
|
+
`}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>
|
|
58
|
+
`}checkbox({checked:e}){return`<input `+(e?`checked="" `:``)+`disabled="" type="checkbox"> `}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>
|
|
59
|
+
`}table(e){let t=``,n=``;for(let t=0;t<e.header.length;t++)n+=this.tablecell(e.header[t]);t+=this.tablerow({text:n});let r=``;for(let t=0;t<e.rows.length;t++){let i=e.rows[t];n=``;for(let e=0;e<i.length;e++)n+=this.tablecell(i[e]);r+=this.tablerow({text:n})}return r&&=`<tbody>${r}</tbody>`,`<table>
|
|
60
|
+
<thead>
|
|
61
|
+
`+t+`</thead>
|
|
62
|
+
`+r+`</table>
|
|
63
|
+
`}tablerow({text:e}){return`<tr>
|
|
64
|
+
${e}</tr>
|
|
65
|
+
`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?`th`:`td`;return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>
|
|
66
|
+
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${U(e,!0)}</code>`}br(e){return`<br>`}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=pn(e);if(i===null)return r;e=i;let a=`<a href="`+e+`"`;return t&&(a+=` title="`+U(t)+`"`),a+=`>`+r+`</a>`,a}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=pn(e);if(i===null)return U(n);e=i;let a=`<img src="${e}" alt="${U(n)}"`;return t&&(a+=` title="${U(t)}"`),a+=`>`,a}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:U(e.text)}},bn=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return``+e}image({text:e}){return``+e}br(){return``}checkbox({raw:e}){return e}},J=class e{options;renderer;textRenderer;constructor(e){this.options=e||T,this.options.renderer=this.options.renderer||new yn,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new bn}static parse(t,n){return new e(n).parse(t)}static parseInline(t,n){return new e(n).parseInline(t)}parse(e){this.renderer.parser=this;let t=``;for(let n=0;n<e.length;n++){let r=e[n];if(this.options.extensions?.renderers?.[r.type]){let e=r,n=this.options.extensions.renderers[e.type].call({parser:this},e);if(n!==!1||![`space`,`hr`,`heading`,`code`,`table`,`blockquote`,`list`,`checkbox`,`html`,`def`,`paragraph`,`text`].includes(e.type)){t+=n||``;continue}}let i=r;switch(i.type){case`space`:t+=this.renderer.space(i);break;case`hr`:t+=this.renderer.hr(i);break;case`heading`:t+=this.renderer.heading(i);break;case`code`:t+=this.renderer.code(i);break;case`table`:t+=this.renderer.table(i);break;case`blockquote`:t+=this.renderer.blockquote(i);break;case`list`:t+=this.renderer.list(i);break;case`checkbox`:t+=this.renderer.checkbox(i);break;case`html`:t+=this.renderer.html(i);break;case`def`:t+=this.renderer.def(i);break;case`paragraph`:t+=this.renderer.paragraph(i);break;case`text`:t+=this.renderer.text(i);break;default:{let e=`Token with "`+i.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=this.options.extensions.renderers[i.type].call({parser:this},i);if(e!==!1||![`escape`,`html`,`link`,`image`,`checkbox`,`strong`,`em`,`codespan`,`br`,`del`,`text`].includes(i.type)){n+=e||``;continue}}let a=i;switch(a.type){case`escape`:n+=t.text(a);break;case`html`:n+=t.html(a);break;case`link`:n+=t.link(a);break;case`image`:n+=t.image(a);break;case`checkbox`:n+=t.checkbox(a);break;case`strong`:n+=t.strong(a);break;case`em`:n+=t.em(a);break;case`codespan`:n+=t.codespan(a);break;case`br`:n+=t.br(a);break;case`del`:n+=t.del(a);break;case`text`:n+=t.text(a);break;default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}},Y=class{options;block;constructor(e){this.options=e||T}static passThroughHooks=new Set([`preprocess`,`postprocess`,`processAllTokens`,`emStrongMask`]);static passThroughHooksRespectAsync=new Set([`preprocess`,`postprocess`,`processAllTokens`]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?q.lex:q.lexInline}provideParser(e=this.block){return e?J.parse:J.parseInline}},X=new class{defaults=lt();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=J;Renderer=yn;TextRenderer=bn;Lexer=q;Tokenizer=vn;Hooks=Y;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case`table`:{let e=r;for(let r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case`list`:{let e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(r=>{let i=e[r].flat(1/0);n=n.concat(this.walkTokens(i,t))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error(`extension name required`);if(`renderer`in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return r===!1&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if(`tokenizer`in e){if(!e.level||e.level!==`block`&&e.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&(e.level===`block`?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:e.level===`inline`&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}`childTokens`in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new yn(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if([`options`,`parser`].includes(n))continue;let r=n,i=e.renderer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n||``}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new vn(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if([`options`,`rules`,`lexer`].includes(n))continue;let r=n,i=e.tokenizer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new Y;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if([`options`,`block`].includes(n))continue;let r=n,i=e.hooks[r],a=t[r];t[r]=Y.passThroughHooks.has(n)?e=>{if(this.defaults.async&&Y.passThroughHooksRespectAsync.has(n))return(async()=>{let n=await i.call(t,e);return a.call(t,n)})();let r=i.call(t,e);return a.call(t,r)}:(...e)=>{if(this.defaults.async)return(async()=>{let n=await i.apply(t,e);return n===!1&&(n=await a.apply(t,e)),n})();let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return q.lex(e,t??this.defaults)}parser(e,t){return J.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return a(Error(`marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.`));if(typeof t>`u`||t===null)return a(Error(`marked(): input parameter is undefined or null`));if(typeof t!=`string`)return a(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(t)+`, string expected`));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let n=i.hooks?await i.hooks.preprocess(t):t,r=await(i.hooks?await i.hooks.provideLexer(e):e?q.lex:q.lexInline)(n,i),a=i.hooks?await i.hooks.processAllTokens(r):r;i.walkTokens&&await Promise.all(this.walkTokens(a,i.walkTokens));let o=await(i.hooks?await i.hooks.provideParser(e):e?J.parse:J.parseInline)(a,i);return i.hooks?await i.hooks.postprocess(o):o})().catch(a);try{i.hooks&&(t=i.hooks.preprocess(t));let n=(i.hooks?i.hooks.provideLexer(e):e?q.lex:q.lexInline)(t,i);i.hooks&&(n=i.hooks.processAllTokens(n)),i.walkTokens&&this.walkTokens(n,i.walkTokens);let r=(i.hooks?i.hooks.provideParser(e):e?J.parse:J.parseInline)(n,i);return i.hooks&&(r=i.hooks.postprocess(r)),r}catch(e){return a(e)}}}onError(e,t){return n=>{if(n.message+=`
|
|
67
|
+
Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+U(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function Z(e,t){return X.parse(e,t)}Z.options=Z.setOptions=function(e){return X.setOptions(e),Z.defaults=X.defaults,ut(Z.defaults),Z},Z.getDefaults=lt,Z.defaults=T;function xn(...e){return X.use(...e),Z.defaults=X.defaults,ut(Z.defaults),Z}Z.use=xn,Z.walkTokens=function(e,t){return X.walkTokens(e,t)},Z.parseInline=X.parseInline,Z.Parser=J,Z.parser=J.parse,Z.Renderer=yn,Z.TextRenderer=bn,Z.Lexer=q,Z.lexer=q.lex,Z.Tokenizer=vn,Z.Hooks=Y,Z.parse=Z,Z.options,Z.setOptions,Z.walkTokens,Z.parseInline,J.parse,q.lex;var Q=t(r(),1);function $(e){return/(?:^|\s)(?:language|lang)-([\w+#.-]+)/.exec(e?.className??``)?.[1]??``}var Sn=/^ {0,3}(`{3,}|~{3,})/;function Cn(e){let t=[],n=e.split(`
|
|
68
|
+
`),r=[],i=null;for(let e=0;e<n.length;e+=1){let a=n[e],o=e===n.length-1,s=Sn.exec(a)?.[1]??null;if(i===null&&s!==null?i=s:i!==null&&s!==null&&s[0]===i[0]&&s.length>=i.length&&a.trim()===s&&!o&&(i=null),i===null&&a.trim()===``&&!o){r.length>0&&t.push(r.join(`
|
|
69
|
+
`)),r=[];continue}r.push(a)}return{done:t,tail:r.join(`
|
|
70
|
+
`),tailInFence:i!==null}}var wn=/(`+)([^`]+?)\1|\*\*(?=\S)([^*\n]+?)(?<=\S)\*\*|__(?=\S)([^_\n]+?)(?<=\S)__|(?<![\w*])\*(?=\S)([^*\n]+?)(?<=\S)\*(?![\w*])|(?<![\w_])_(?=\S)([^_\n]+?)(?<=\S)_(?![\w_])/g;function Tn(e,t){let n=e.ownerDocument,r=0;wn.lastIndex=0;for(let i=wn.exec(t);i!==null;i=wn.exec(t)){i.index>r&&e.append(n.createTextNode(t.slice(r,i.index)));let a,o;i[2]===void 0?i[3]===void 0?i[4]===void 0?i[5]===void 0?(a=`em`,o=i[6]??``):(a=`em`,o=i[5]):(a=`strong`,o=i[4]):(a=`strong`,o=i[3]):(a=`code`,o=i[2]);let s=n.createElement(a);s.textContent=o,e.append(s),r=i.index+i[0].length}r<t.length&&e.append(n.createTextNode(t.slice(r)))}var En=e({RenderedMarkdown:()=>Vn,renderMarkdown:()=>jn}),Dn=n(),On=!1;function kn(){On||(On=!0,ct.addHook(`afterSanitizeAttributes`,e=>{if(e.tagName===`A`){let t=e.getAttribute(`href`);if(t!==null&&/^\s*verse:/i.test(t)){i(t)?e.setAttribute(`data-verse-terminal`,``):e.removeAttribute(`href`),e.removeAttribute(`target`);return}e.setAttribute(`target`,`_blank`),e.setAttribute(`rel`,`noopener noreferrer`)}}))}var An={USE_PROFILES:{html:!0},ADD_ATTR:[`target`],ALLOWED_URI_REGEXP:/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|verse:\/\/terminal\/t-[a-z0-9]{1,32}(?:\/b-\d{1,9})?\/?$|[^a-z]|[a-z+.-]+(?:[^a-z+.\-:]|$))/i,FORBID_TAGS:[`style`,`form`,`input`,`button`,`iframe`,`object`,`embed`]};function jn(e){kn();let t=Z.parse(e,{async:!1,gfm:!0,breaks:!1});return ct.sanitize(t,An)}var Mn=`Copy`,Nn=`Copied`;function Pn(e){for(let t of e.querySelectorAll(`pre`)){if(t.querySelector(`[data-code-head]`)||t.hasAttribute(`data-stream-tail`))continue;let e=document.createElement(`div`);e.className=o.codeHead??``,e.setAttribute(`data-code-head`,``);let n=$(t.querySelector(`code`)),r=document.createElement(`span`);r.className=o.codeLang??``,r.textContent=n,e.append(r);let i=document.createElement(`button`);i.type=`button`,i.className=o.copy??``,i.setAttribute(`data-copy`,``),i.setAttribute(`aria-label`,`Copy code`),i.textContent=Mn,e.append(i),t.prepend(e)}}function Fn(e){let t=e.target?.closest?.(`a[href]`);if(!t)return!1;let n=i(t.getAttribute(`href`)??``);return n?(e.preventDefault(),a({tabId:n.tabId,blockId:n.blockId}),!0):!1}function In(e){Fn(e)||Ln(e)}function Ln(e){let t=e.target?.closest(`[data-copy]`);if(!t)return;e.preventDefault();let n=t.closest(`pre`),r=n?.querySelector(`code`),i=n?.querySelector(`[data-code-head]`);Hn(r?r.textContent??``:Array.from(n?.childNodes??[]).filter(e=>e!==i).map(e=>e.textContent??``).join(``)).then(e=>{t.textContent=e?Nn:`Copy failed`,setTimeout(()=>{t.textContent=Mn},1500)})}var Rn=400;function zn({text:e}){let t=(0,Q.useRef)(null),n=(0,Q.useRef)(new Map),r=(0,Q.useRef)(null),i=(0,Q.useMemo)(()=>Cn(e),[e]),a=i.done.length===0?``:`${i.done.length}:${i.done[i.done.length-1].length}`,s=(0,Q.useMemo)(()=>{let e=n.current;return i.done.map(t=>{let n=e.get(t);return n===void 0&&(n=jn(t),e.size>=Rn&&e.clear(),e.set(t,n)),n}).join(``)},[a]);return(0,Q.useEffect)(()=>{let e=t.current;e&&(e.innerHTML=s,Pn(e),r.current=null)},[s]),(0,Q.useEffect)(()=>{let e=t.current;if(!e)return;let n=i.tailInFence,a=r.current;if((!a||a.parentNode!==e||a.tagName===`PRE`!==n)&&(a?.remove(),a=document.createElement(n?`pre`:`p`),a.setAttribute(`data-stream-tail`,``),e.append(a),r.current=a),a.replaceChildren(),n){let e=document.createElement(`code`),t=i.tail.indexOf(`
|
|
71
|
+
`);e.textContent=t===-1?``:i.tail.slice(t+1),a.append(e)}else a.style.whiteSpace=`pre-wrap`,Tn(a,i.tail)},[i,s]),(0,Dn.jsx)(`div`,{ref:t,className:`${o.markdown} ${o.streaming}`,onClick:In,"data-markdown-streaming":``})}function Bn({text:e}){let t=(0,Q.useMemo)(()=>jn(e),[e]),n=(0,Q.useRef)(null);return(0,Q.useEffect)(()=>{let e=n.current;e&&Pn(e)},[t]),(0,Dn.jsx)(`div`,{ref:n,className:o.markdown,onClick:In,dangerouslySetInnerHTML:{__html:t}})}function Vn({text:e,streaming:t}){return t?(0,Dn.jsx)(zn,{text:e},`streaming`):(0,Dn.jsx)(Bn,{text:e},`final`)}async function Hn(e){try{if(navigator.clipboard?.writeText)return await navigator.clipboard.writeText(e),!0}catch{}try{let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.position=`fixed`,t.style.opacity=`0`,document.body.append(t),t.select();let n=document.execCommand(`copy`);return t.remove(),n}catch{return!1}}export{jn as n,En as t};
|
|
72
|
+
//# sourceMappingURL=MessageMarkdownRenderer-DPaNQMj8.js.map
|