@ashlr/hub 3.10.0 → 3.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +156 -0
- package/README.md +343 -82
- package/dist/authority-surface.json +109 -29
- package/dist/build-identity.json +2 -2
- package/dist/cli/cloud.d.ts +39 -0
- package/dist/cli/cloud.js +448 -0
- package/dist/cli/cloud.js.map +1 -0
- package/dist/cli/completions.js +4 -0
- package/dist/cli/completions.js.map +1 -1
- package/dist/cli/help.js +2 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +10 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/cloud/backlog.d.ts +17 -0
- package/dist/core/cloud/backlog.js +177 -0
- package/dist/core/cloud/backlog.js.map +1 -0
- package/dist/core/cloud/budget.d.ts +19 -0
- package/dist/core/cloud/budget.js +99 -0
- package/dist/core/cloud/budget.js.map +1 -0
- package/dist/core/cloud/checkout.d.ts +41 -0
- package/dist/core/cloud/checkout.js +168 -0
- package/dist/core/cloud/checkout.js.map +1 -0
- package/dist/core/cloud/cloud-api.d.ts +86 -0
- package/dist/core/cloud/cloud-api.js +599 -0
- package/dist/core/cloud/cloud-api.js.map +1 -0
- package/dist/core/cloud/delivery-contract.d.ts +25 -0
- package/dist/core/cloud/delivery-contract.js +138 -0
- package/dist/core/cloud/delivery-contract.js.map +1 -0
- package/dist/core/cloud/improvement-backlog.d.ts +11 -0
- package/dist/core/cloud/improvement-backlog.js +26 -0
- package/dist/core/cloud/improvement-backlog.js.map +1 -0
- package/dist/core/cloud/launcher.d.ts +68 -0
- package/dist/core/cloud/launcher.js +312 -0
- package/dist/core/cloud/launcher.js.map +1 -0
- package/dist/core/cloud/service.d.ts +51 -0
- package/dist/core/cloud/service.js +215 -0
- package/dist/core/cloud/service.js.map +1 -0
- package/dist/core/cloud/store.d.ts +41 -0
- package/dist/core/cloud/store.js +278 -0
- package/dist/core/cloud/store.js.map +1 -0
- package/dist/core/cloud/tracker.d.ts +30 -0
- package/dist/core/cloud/tracker.js +152 -0
- package/dist/core/cloud/tracker.js.map +1 -0
- package/dist/core/cloud/types.d.ts +233 -0
- package/dist/core/cloud/types.js +73 -0
- package/dist/core/cloud/types.js.map +1 -0
- package/dist/core/daemon/capacity-publisher.d.ts +19 -0
- package/dist/core/daemon/capacity-publisher.js +49 -2
- package/dist/core/daemon/capacity-publisher.js.map +1 -1
- package/dist/core/daemon/overnight-status.d.ts +13 -0
- package/dist/core/daemon/overnight-status.js +93 -8
- package/dist/core/daemon/overnight-status.js.map +1 -1
- package/dist/core/fleet/dispatch-router.js +26 -9
- package/dist/core/fleet/dispatch-router.js.map +1 -1
- package/dist/core/fleet/fleet-runtime-journal.js +12 -5
- package/dist/core/fleet/fleet-runtime-journal.js.map +1 -1
- package/dist/core/fleet/fleet-types.d.ts +13 -0
- package/dist/core/routing/budget-store.js +11 -5
- package/dist/core/routing/budget-store.js.map +1 -1
- package/dist/core/routing/capacity-history-api.d.ts +30 -0
- package/dist/core/routing/capacity-history-api.js +147 -0
- package/dist/core/routing/capacity-history-api.js.map +1 -0
- package/dist/core/routing/capacity-history-types.d.ts +63 -0
- package/dist/core/routing/capacity-history-types.js +18 -0
- package/dist/core/routing/capacity-history-types.js.map +1 -0
- package/dist/core/routing/capacity-history.d.ts +130 -0
- package/dist/core/routing/capacity-history.js +654 -0
- package/dist/core/routing/capacity-history.js.map +1 -0
- package/dist/core/routing/headroom.d.ts +5 -1
- package/dist/core/routing/headroom.js +82 -41
- package/dist/core/routing/headroom.js.map +1 -1
- package/dist/core/routing/router.d.ts +8 -1
- package/dist/core/routing/router.js +49 -16
- package/dist/core/routing/router.js.map +1 -1
- package/dist/core/routing/seat-reasons.d.ts +35 -0
- package/dist/core/routing/seat-reasons.js +48 -0
- package/dist/core/routing/seat-reasons.js.map +1 -0
- package/dist/core/routing/types.d.ts +37 -0
- package/dist/core/routing/types.js.map +1 -1
- package/dist/core/verse/activity-api.d.ts +3 -1
- package/dist/core/verse/activity-api.js +16 -1
- package/dist/core/verse/activity-api.js.map +1 -1
- package/dist/core/verse/activity.d.ts +7 -0
- package/dist/core/verse/activity.js +23 -0
- package/dist/core/verse/activity.js.map +1 -1
- package/dist/core/verse/fleet-history-types.d.ts +12 -4
- package/dist/core/verse/fleet-history-types.js +4 -2
- package/dist/core/verse/fleet-history-types.js.map +1 -1
- package/dist/core/verse/fleet-live-api.d.ts +14 -1
- package/dist/core/verse/fleet-live-api.js +31 -11
- package/dist/core/verse/fleet-live-api.js.map +1 -1
- package/dist/core/verse/preferences.d.ts +3 -1
- package/dist/core/verse/preferences.js +5 -2
- package/dist/core/verse/preferences.js.map +1 -1
- package/dist/core/verse/types.d.ts +5 -1
- package/dist/core/verse/types.js.map +1 -1
- package/dist/core/verse/verse-api.d.ts +1 -1
- package/dist/core/verse/verse-api.js +4 -1
- package/dist/core/verse/verse-api.js.map +1 -1
- package/dist/core/vision/leader-cloud.d.ts +63 -0
- package/dist/core/vision/leader-cloud.js +134 -0
- package/dist/core/vision/leader-cloud.js.map +1 -0
- package/dist/core/vision/leader.d.ts +6 -0
- package/dist/core/vision/leader.js +12 -1
- package/dist/core/vision/leader.js.map +1 -1
- package/dist/core/web/public/next/assets/{ActionMenu-DhbNne-M.js → ActionMenu-CQvNJvHY.js} +2 -2
- package/dist/core/web/public/next/assets/{ActionMenu-DhbNne-M.js.map → ActionMenu-CQvNJvHY.js.map} +1 -1
- package/dist/core/web/public/next/assets/Advanced-Bywv_iYR.css +1 -0
- package/dist/core/web/public/next/assets/Advanced-DEM93sKI.js +2 -0
- package/dist/core/web/public/next/assets/Advanced-DEM93sKI.js.map +1 -0
- package/dist/core/web/public/next/assets/{App-DyBg1v_q.js → App-CimXmK0L.js} +5 -5
- package/dist/core/web/public/next/assets/{App-DyBg1v_q.js.map → App-CimXmK0L.js.map} +1 -1
- package/dist/core/web/public/next/assets/AppsSection-D6U-dSj6.js +2 -0
- package/dist/core/web/public/next/assets/AppsSection-D6U-dSj6.js.map +1 -0
- package/dist/core/web/public/next/assets/AreaTrend-LD9lCPkT.js +2 -0
- package/dist/core/web/public/next/assets/AreaTrend-LD9lCPkT.js.map +1 -0
- package/dist/core/web/public/next/assets/AutonomySection-3V9pUyxm.js +2 -0
- package/dist/core/web/public/next/assets/{AutonomySection-CoMngwNB.js.map → AutonomySection-3V9pUyxm.js.map} +1 -1
- package/dist/core/web/public/next/assets/BranchBar-BZNQ50YE.css +1 -0
- package/dist/core/web/public/next/assets/BranchBar-U8UdpfEB.js +2 -0
- package/dist/core/web/public/next/assets/BranchBar-U8UdpfEB.js.map +1 -0
- package/dist/core/web/public/next/assets/BudgetControl-DOTlMSmW.js +2 -0
- package/dist/core/web/public/next/assets/BudgetControl-DOTlMSmW.js.map +1 -0
- package/dist/core/web/public/next/assets/BurnDown-x4PWH9JF.js +2 -0
- package/dist/core/web/public/next/assets/BurnDown-x4PWH9JF.js.map +1 -0
- package/dist/core/web/public/next/assets/{Button-0-nNbv1h.js → Button-DYv_KKxr.js} +2 -2
- package/dist/core/web/public/next/assets/{Button-0-nNbv1h.js.map → Button-DYv_KKxr.js.map} +1 -1
- package/dist/core/web/public/next/assets/CapacityStrip-C667yQe8.js +2 -0
- package/dist/core/web/public/next/assets/CapacityStrip-C667yQe8.js.map +1 -0
- package/dist/core/web/public/next/assets/CapacityStrip-Cc28CyWk.css +1 -0
- package/dist/core/web/public/next/assets/ChatSection-CCcIPpOq.js +3 -0
- package/dist/core/web/public/next/assets/{ChatSection-B9cdRKUh.js.map → ChatSection-CCcIPpOq.js.map} +1 -1
- package/dist/core/web/public/next/assets/CloudBudgetForm-DJeJvBEu.js +2 -0
- package/dist/core/web/public/next/assets/CloudBudgetForm-DJeJvBEu.js.map +1 -0
- package/dist/core/web/public/next/assets/{CommandPalette-GpeCSrPy.js → CommandPalette-FiD4N8XD.js} +2 -2
- package/dist/core/web/public/next/assets/{CommandPalette-GpeCSrPy.js.map → CommandPalette-FiD4N8XD.js.map} +1 -1
- package/dist/core/web/public/next/assets/CommandSection-DN8KwH-X.js +2 -0
- package/dist/core/web/public/next/assets/CommandSection-DN8KwH-X.js.map +1 -0
- package/dist/core/web/public/next/assets/Composer-ByzxOJK6.css +1 -0
- package/dist/core/web/public/next/assets/Composer.module-C8U73KdQ.js +2 -0
- package/dist/core/web/public/next/assets/{Composer.module-DJMdrqNt.js.map → Composer.module-C8U73KdQ.js.map} +1 -1
- package/dist/core/web/public/next/assets/DiffPane-BAvvbBsf.css +1 -0
- package/dist/core/web/public/next/assets/DiffPane-DLJ3gGGK.js +2 -0
- package/dist/core/web/public/next/assets/DiffPane-DLJ3gGGK.js.map +1 -0
- package/dist/core/web/public/next/assets/{DiffViewer-tOGWk0CA.js → DiffViewer-B7NWPjIO.js} +2 -2
- package/dist/core/web/public/next/assets/{DiffViewer-tOGWk0CA.js.map → DiffViewer-B7NWPjIO.js.map} +1 -1
- package/dist/core/web/public/next/assets/DockHost-B4RaYOET.css +1 -0
- package/dist/core/web/public/next/assets/DockHost-DvR-hPhZ.js +2 -0
- package/dist/core/web/public/next/assets/DockHost-DvR-hPhZ.js.map +1 -0
- package/dist/core/web/public/next/assets/{EmptyState-DdJ4CxtO.js → EmptyState-DhNgDDrF.js} +2 -2
- package/dist/core/web/public/next/assets/{EmptyState-DdJ4CxtO.js.map → EmptyState-DhNgDDrF.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Epistemic-BLjM5y_y.js → Epistemic-uARPnx9x.js} +2 -2
- package/dist/core/web/public/next/assets/{Epistemic-BLjM5y_y.js.map → Epistemic-uARPnx9x.js.map} +1 -1
- package/dist/core/web/public/next/assets/FleetSection-CFiWeOEs.css +1 -0
- package/dist/core/web/public/next/assets/FleetSection-D_zRBCub.js +3 -0
- package/dist/core/web/public/next/assets/FleetSection-D_zRBCub.js.map +1 -0
- package/dist/core/web/public/next/assets/Funnel-CL8uHONq.js +2 -0
- package/dist/core/web/public/next/assets/Funnel-CL8uHONq.js.map +1 -0
- package/dist/core/web/public/next/assets/GearTray-C7k4l_BW.js +2 -0
- package/dist/core/web/public/next/assets/GearTray-C7k4l_BW.js.map +1 -0
- package/dist/core/web/public/next/assets/GrowthSection-DwdNSGj8.js +2 -0
- package/dist/core/web/public/next/assets/GrowthSection-DwdNSGj8.js.map +1 -0
- package/dist/core/web/public/next/assets/HandoffDialog-FPVOqOMN.js +2 -0
- package/dist/core/web/public/next/assets/HandoffDialog-FPVOqOMN.js.map +1 -0
- package/dist/core/web/public/next/assets/{Input-CTu0CycC.js → Input-B9-VLcHS.js} +2 -2
- package/dist/core/web/public/next/assets/{Input-CTu0CycC.js.map → Input-B9-VLcHS.js.map} +1 -1
- package/dist/core/web/public/next/assets/{LeaderCard-BuSDeATv.js → LeaderCard-4R0BhDzT.js} +2 -2
- package/dist/core/web/public/next/assets/{LeaderCard-BuSDeATv.js.map → LeaderCard-4R0BhDzT.js.map} +1 -1
- package/dist/core/web/public/next/assets/{MatrixHeatmap-9dKgJ_pT.css → MatrixHeatmap-Bmnvo1l1.css} +1 -1
- package/dist/core/web/public/next/assets/MatrixHeatmap-DiuushcS.js +2 -0
- package/dist/core/web/public/next/assets/MatrixHeatmap-DiuushcS.js.map +1 -0
- package/dist/core/web/public/next/assets/McpSection-CJ__OJKl.js +2 -0
- package/dist/core/web/public/next/assets/{McpSection-1UncWBpW.js.map → McpSection-CJ__OJKl.js.map} +1 -1
- package/dist/core/web/public/next/assets/MessageMarkdown-Cgh5f1-Q.css +1 -0
- package/dist/core/web/public/next/assets/MessageMarkdown-qWKyJvAQ.js +3 -0
- package/dist/core/web/public/next/assets/{MessageMarkdown-C4pl9LI5.js.map → MessageMarkdown-qWKyJvAQ.js.map} +1 -1
- package/dist/core/web/public/next/assets/{MessageMarkdownRenderer-CZsF77ZM.js → MessageMarkdownRenderer-x05TrsrW.js} +2 -2
- package/dist/core/web/public/next/assets/{MessageMarkdownRenderer-CZsF77ZM.js.map → MessageMarkdownRenderer-x05TrsrW.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Meter-C18ciKz4.js → Meter-D-hncpkO.js} +2 -2
- package/dist/core/web/public/next/assets/{Meter-C18ciKz4.js.map → Meter-D-hncpkO.js.map} +1 -1
- package/dist/core/web/public/next/assets/MindSection-BjXHkQPS.js +2 -0
- package/dist/core/web/public/next/assets/MindSection-BjXHkQPS.js.map +1 -0
- package/dist/core/web/public/next/assets/MutationTokenDialog-SkRxqV_I.js +2 -0
- package/dist/core/web/public/next/assets/MutationTokenDialog-SkRxqV_I.js.map +1 -0
- package/dist/core/web/public/next/assets/NeedsYouDrawer-BpvidnM2.css +1 -0
- package/dist/core/web/public/next/assets/NeedsYouDrawer-rSd1ZHAR.js +2 -0
- package/dist/core/web/public/next/assets/NeedsYouDrawer-rSd1ZHAR.js.map +1 -0
- package/dist/core/web/public/next/assets/NeedsYouList-CG-nB1tr.js +2 -0
- package/dist/core/web/public/next/assets/NeedsYouList-CG-nB1tr.js.map +1 -0
- package/dist/core/web/public/next/assets/NeedsYouList-CruOt4JT.css +1 -0
- package/dist/core/web/public/next/assets/NewChatDialog-BeDQ1eW3.js +3 -0
- package/dist/core/web/public/next/assets/{NewChatDialog-B_BsS9pr.js.map → NewChatDialog-BeDQ1eW3.js.map} +1 -1
- package/dist/core/web/public/next/assets/OnboardingFlow-CkTZtt-m.js +2 -0
- package/dist/core/web/public/next/assets/{OnboardingFlow-CtCPpgoX.js.map → OnboardingFlow-CkTZtt-m.js.map} +1 -1
- package/dist/core/web/public/next/assets/PreviewPane-DoMsJSG3.css +1 -0
- package/dist/core/web/public/next/assets/PreviewPane-kzbbSK4u.js +2 -0
- package/dist/core/web/public/next/assets/PreviewPane-kzbbSK4u.js.map +1 -0
- package/dist/core/web/public/next/assets/RailStatus-D-t2gPae.js +2 -0
- package/dist/core/web/public/next/assets/RailStatus-D-t2gPae.js.map +1 -0
- package/dist/core/web/public/next/assets/{RefreshIndicator-CnhEovMZ.js → RefreshIndicator-BLnr9IOM.js} +2 -2
- package/dist/core/web/public/next/assets/{RefreshIndicator-CnhEovMZ.js.map → RefreshIndicator-BLnr9IOM.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-28gLwmwV.js → ResourcePoolConsoleApp-BeG0gBif.js} +4 -4
- package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-28gLwmwV.js.map → ResourcePoolConsoleApp-BeG0gBif.js.map} +1 -1
- package/dist/core/web/public/next/assets/ResourcesChrome-B3Z3O98t.css +1 -0
- package/dist/core/web/public/next/assets/ResourcesChrome-BzV6bkIa.js +3 -0
- package/dist/core/web/public/next/assets/ResourcesChrome-BzV6bkIa.js.map +1 -0
- package/dist/core/web/public/next/assets/ResourcesDrawer-CSKIO_wZ.css +1 -0
- package/dist/core/web/public/next/assets/ResourcesDrawer-o4ILHdep.js +2 -0
- package/dist/core/web/public/next/assets/ResourcesDrawer-o4ILHdep.js.map +1 -0
- package/dist/core/web/public/next/assets/{RouteErrorBoundary-AyUPCIb3.js → RouteErrorBoundary-C5SxA2Dg.js} +2 -2
- package/dist/core/web/public/next/assets/{RouteErrorBoundary-AyUPCIb3.js.map → RouteErrorBoundary-C5SxA2Dg.js.map} +1 -1
- package/dist/core/web/public/next/assets/RunInCloudAction-C3LBp7C4.js +2 -0
- package/dist/core/web/public/next/assets/RunInCloudAction-C3LBp7C4.js.map +1 -0
- package/dist/core/web/public/next/assets/SeatSelector-DpvvbjNm.js +3 -0
- package/dist/core/web/public/next/assets/{SeatSelector-DaUO-zoK.js.map → SeatSelector-DpvvbjNm.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Segmented-B_8c_83S.js → Segmented-BL40udoO.js} +2 -2
- package/dist/core/web/public/next/assets/{Segmented-B_8c_83S.js.map → Segmented-BL40udoO.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Select-Bl5g5Dt_.js → Select-FWLnAw_j.js} +2 -2
- package/dist/core/web/public/next/assets/{Select-Bl5g5Dt_.js.map → Select-FWLnAw_j.js.map} +1 -1
- package/dist/core/web/public/next/assets/{SessionInsightChip-w0I21q0c.js → SessionInsightChip-CWye87Ju.js} +2 -2
- package/dist/core/web/public/next/assets/{SessionInsightChip-w0I21q0c.js.map → SessionInsightChip-CWye87Ju.js.map} +1 -1
- package/dist/core/web/public/next/assets/SessionSearch-YvCHFUuN.js +2 -0
- package/dist/core/web/public/next/assets/{SessionSearch-B5aQ0BCM.js.map → SessionSearch-YvCHFUuN.js.map} +1 -1
- package/dist/core/web/public/next/assets/SettingsSection-Dr18upeE.js +2 -0
- package/dist/core/web/public/next/assets/SettingsSection-Dr18upeE.js.map +1 -0
- package/dist/core/web/public/next/assets/{Sheet-CVjk-cLI.js → Sheet-DZKcQXQg.js} +2 -2
- package/dist/core/web/public/next/assets/{Sheet-CVjk-cLI.js.map → Sheet-DZKcQXQg.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ShortcutsOverlay-BiBjnBcc.js → ShortcutsOverlay-BpDimdPq.js} +2 -2
- package/dist/core/web/public/next/assets/{ShortcutsOverlay-BiBjnBcc.js.map → ShortcutsOverlay-BpDimdPq.js.map} +1 -1
- package/dist/core/web/public/next/assets/Sidebar-BRc1vGDF.css +1 -0
- package/dist/core/web/public/next/assets/Sidebar-BoBzBEFX.js +3 -0
- package/dist/core/web/public/next/assets/Sidebar-BoBzBEFX.js.map +1 -0
- package/dist/core/web/public/next/assets/{Slider-BS9MU5ZV.js → Slider-DUMo9HDD.js} +2 -2
- package/dist/core/web/public/next/assets/{Slider-BS9MU5ZV.js.map → Slider-DUMo9HDD.js.map} +1 -1
- package/dist/core/web/public/next/assets/{StatusBadge-DAf-ArKE.js → StatusBadge-BwnBNFQr.js} +2 -2
- package/dist/core/web/public/next/assets/{StatusBadge-DAf-ArKE.js.map → StatusBadge-BwnBNFQr.js.map} +1 -1
- package/dist/core/web/public/next/assets/StepBand-PDXMIlRk.js +2 -0
- package/dist/core/web/public/next/assets/StepBand-PDXMIlRk.js.map +1 -0
- package/dist/core/web/public/next/assets/{Surface-CiYOdNKQ.js → Surface-B3TZVoER.js} +2 -2
- package/dist/core/web/public/next/assets/{Surface-CiYOdNKQ.js.map → Surface-B3TZVoER.js.map} +1 -1
- package/dist/core/web/public/next/assets/Swimlane-DR4OgON_.js +2 -0
- package/dist/core/web/public/next/assets/Swimlane-DR4OgON_.js.map +1 -0
- package/dist/core/web/public/next/assets/{Switch-BzRXtNPt.js → Switch-CcR5Llk5.js} +2 -2
- package/dist/core/web/public/next/assets/{Switch-BzRXtNPt.js.map → Switch-CcR5Llk5.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Tag-DEEbDz7T.js → Tag-_-K1h7Hk.js} +2 -2
- package/dist/core/web/public/next/assets/{Tag-DEEbDz7T.js.map → Tag-_-K1h7Hk.js.map} +1 -1
- package/dist/core/web/public/next/assets/TerminalPane-BwfMbnJz.css +1 -0
- package/dist/core/web/public/next/assets/TerminalPane-_1aH4ndN.js +7 -0
- package/dist/core/web/public/next/assets/TerminalPane-_1aH4ndN.js.map +1 -0
- package/dist/core/web/public/next/assets/UniverseConsoleApp-BUsq-inZ.js +2 -0
- package/dist/core/web/public/next/assets/{UniverseConsoleApp-DKqAf-eD.js.map → UniverseConsoleApp-BUsq-inZ.js.map} +1 -1
- package/dist/core/web/public/next/assets/{UniverseView-D6081LQL.js → UniverseView-Dogy_dsB.js} +2 -2
- package/dist/core/web/public/next/assets/{UniverseView-D6081LQL.js.map → UniverseView-Dogy_dsB.js.map} +1 -1
- package/dist/core/web/public/next/assets/UsageSection-DiX_dTyo.js +2 -0
- package/dist/core/web/public/next/assets/UsageSection-DiX_dTyo.js.map +1 -0
- package/dist/core/web/public/next/assets/UsageSection-DsB-Jqyl.css +1 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-Cxqr-3qc.css +1 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-WVeyJnW7.js +3 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-WVeyJnW7.js.map +1 -0
- package/dist/core/web/public/next/assets/Workspace-BYW9dm90.css +1 -0
- package/dist/core/web/public/next/assets/Workspace-BbxZHwQd.js +10 -0
- package/dist/core/web/public/next/assets/Workspace-BbxZHwQd.js.map +1 -0
- package/dist/core/web/public/next/assets/actions-Ddfg2iLl.css +1 -0
- package/dist/core/web/public/next/assets/actions-s2lfm_5k.js +2 -0
- package/dist/core/web/public/next/assets/actions-s2lfm_5k.js.map +1 -0
- package/dist/core/web/public/next/assets/apps-model-CDFvmsQV.js +2 -0
- package/dist/core/web/public/next/assets/apps-model-CDFvmsQV.js.map +1 -0
- package/dist/core/web/public/next/assets/{budget-queries-Dacv1VYP.js → budget-queries-wUshcovN.js} +2 -2
- package/dist/core/web/public/next/assets/{budget-queries-Dacv1VYP.js.map → budget-queries-wUshcovN.js.map} +1 -1
- package/dist/core/web/public/next/assets/calendar-day-BxBYHfX1.js +2 -0
- package/dist/core/web/public/next/assets/calendar-day-BxBYHfX1.js.map +1 -0
- package/dist/core/web/public/next/assets/capacity-strip-model-Bj_9ztzs.js +2 -0
- package/dist/core/web/public/next/assets/capacity-strip-model-Bj_9ztzs.js.map +1 -0
- package/dist/core/web/public/next/assets/charts-CMSgAUKn.js +2 -0
- package/dist/core/web/public/next/assets/charts-CMSgAUKn.js.map +1 -0
- package/dist/core/web/public/next/assets/cloud-C1KPNRHC.css +1 -0
- package/dist/core/web/public/next/assets/cloud-queries-CnV1yaNG.js +2 -0
- package/dist/core/web/public/next/assets/cloud-queries-CnV1yaNG.js.map +1 -0
- package/dist/core/web/public/next/assets/cloud.module-CiwatLj3.js +2 -0
- package/dist/core/web/public/next/assets/cloud.module-CiwatLj3.js.map +1 -0
- package/dist/core/web/public/next/assets/colors-BZ3a9wFf.js +2 -0
- package/dist/core/web/public/next/assets/colors-BZ3a9wFf.js.map +1 -0
- package/dist/core/web/public/next/assets/{command-bus-CpYuam1F.js → command-bus-DqimKCUY.js} +2 -2
- package/dist/core/web/public/next/assets/{command-bus-CpYuam1F.js.map → command-bus-DqimKCUY.js.map} +1 -1
- package/dist/core/web/public/next/assets/command-catalog-BdtDH93o.js +2 -0
- package/dist/core/web/public/next/assets/command-catalog-BdtDH93o.js.map +1 -0
- package/dist/core/web/public/next/assets/{composer-keys-CYz4U4Bg.js → composer-keys-DBRymxQn.js} +2 -2
- package/dist/core/web/public/next/assets/{composer-keys-CYz4U4Bg.js.map → composer-keys-DBRymxQn.js.map} +1 -1
- package/dist/core/web/public/next/assets/context-model-Dwd49-dp.js +2 -0
- package/dist/core/web/public/next/assets/context-model-Dwd49-dp.js.map +1 -0
- package/dist/core/web/public/next/assets/context-model-MT17V86_.js +2 -0
- package/dist/core/web/public/next/assets/context-model-MT17V86_.js.map +1 -0
- package/dist/core/web/public/next/assets/context-queries-xVKIeynP.js +2 -0
- package/dist/core/web/public/next/assets/context-queries-xVKIeynP.js.map +1 -0
- package/dist/core/web/public/next/assets/context.module-BijAfoJw.js +2 -0
- package/dist/core/web/public/next/assets/context.module-BijAfoJw.js.map +1 -0
- package/dist/core/web/public/next/assets/{control-queries-BGjarMm9.js → control-queries-DOZR-D8G.js} +2 -2
- package/dist/core/web/public/next/assets/{control-queries-BGjarMm9.js.map → control-queries-DOZR-D8G.js.map} +1 -1
- package/dist/core/web/public/next/assets/dark-since-DOMvtB_G.js +2 -0
- package/dist/core/web/public/next/assets/dark-since-DOMvtB_G.js.map +1 -0
- package/dist/core/web/public/next/assets/dock-icons-8EtARwUm.js +2 -0
- package/dist/core/web/public/next/assets/dock-icons-8EtARwUm.js.map +1 -0
- package/dist/core/web/public/next/assets/dock-panes-UKS-mXhr.js +2 -0
- package/dist/core/web/public/next/assets/{dock-panes-BNTLvX7G.js.map → dock-panes-UKS-mXhr.js.map} +1 -1
- package/dist/core/web/public/next/assets/{dock-store-_E5h6TEq.js → dock-store-BA1cHOYA.js} +2 -2
- package/dist/core/web/public/next/assets/{dock-store-_E5h6TEq.js.map → dock-store-BA1cHOYA.js.map} +1 -1
- package/dist/core/web/public/next/assets/fleet-model-CNe8Wh-s.js +2 -0
- package/dist/core/web/public/next/assets/fleet-model-CNe8Wh-s.js.map +1 -0
- package/dist/core/web/public/next/assets/fleet-queries-BSdRlUwJ.js +2 -0
- package/dist/core/web/public/next/assets/fleet-queries-BSdRlUwJ.js.map +1 -0
- package/dist/core/web/public/next/assets/format-B8DAVcn2.js +2 -0
- package/dist/core/web/public/next/assets/format-B8DAVcn2.js.map +1 -0
- package/dist/core/web/public/next/assets/format-DKrNjdwD.js +2 -0
- package/dist/core/web/public/next/assets/format-DKrNjdwD.js.map +1 -0
- package/dist/core/web/public/next/assets/{git-model-5v5xGobf.js → git-model-CivuBY_D.js} +2 -2
- package/dist/core/web/public/next/assets/{git-model-5v5xGobf.js.map → git-model-CivuBY_D.js.map} +1 -1
- package/dist/core/web/public/next/assets/global-Di2PUgj4.js +2 -0
- package/dist/core/web/public/next/assets/global-Di2PUgj4.js.map +1 -0
- package/dist/core/web/public/next/assets/{guarded-action-vOPc8v75.js → guarded-action-CvOHcqyH.js} +2 -2
- package/dist/core/web/public/next/assets/{guarded-action-vOPc8v75.js.map → guarded-action-CvOHcqyH.js.map} +1 -1
- package/dist/core/web/public/next/assets/{icons-DWb24OA6.js → icons-B_yuAgdN.js} +2 -2
- package/dist/core/web/public/next/assets/{icons-DWb24OA6.js.map → icons-B_yuAgdN.js.map} +1 -1
- package/dist/core/web/public/next/assets/{index-afDA8cwW.js → index-oAAq8XJa.js} +3 -3
- package/dist/core/web/public/next/assets/{index-afDA8cwW.js.map → index-oAAq8XJa.js.map} +1 -1
- package/dist/core/web/public/next/assets/live-model-DCw_IFRI.js +2 -0
- package/dist/core/web/public/next/assets/live-model-DCw_IFRI.js.map +1 -0
- package/dist/core/web/public/next/assets/local-model-DFyjKX0b.js +2 -0
- package/dist/core/web/public/next/assets/local-model-DFyjKX0b.js.map +1 -0
- package/dist/core/web/public/next/assets/mind-B9PzLcl0.css +1 -0
- package/dist/core/web/public/next/assets/mind.module-vnuJcwvD.js +2 -0
- package/dist/core/web/public/next/assets/mind.module-vnuJcwvD.js.map +1 -0
- package/dist/core/web/public/next/assets/mutations-Dpsql5t7.js +2 -0
- package/dist/core/web/public/next/assets/{mutations-C6E10SPX.js.map → mutations-Dpsql5t7.js.map} +1 -1
- package/dist/core/web/public/next/assets/{overnight-queries-CCGfiS-g.js → overnight-queries-X-44Gsw5.js} +2 -2
- package/dist/core/web/public/next/assets/{overnight-queries-CCGfiS-g.js.map → overnight-queries-X-44Gsw5.js.map} +1 -1
- package/dist/core/web/public/next/assets/pane-chrome-8JmEhHVD.css +1 -0
- package/dist/core/web/public/next/assets/pane-chrome.module-D7o-fVd0.js +2 -0
- package/dist/core/web/public/next/assets/pane-chrome.module-D7o-fVd0.js.map +1 -0
- package/dist/core/web/public/next/assets/primitives-BDIcUvob.js +1 -0
- package/dist/core/web/public/next/assets/{queries-BuYIEHst.js → queries-BA4rNGD-.js} +2 -2
- package/dist/core/web/public/next/assets/{queries-BuYIEHst.js.map → queries-BA4rNGD-.js.map} +1 -1
- package/dist/core/web/public/next/assets/{reasoning-pref-BVzGczV7.js → reasoning-pref-B9-DJUXP.js} +2 -2
- package/dist/core/web/public/next/assets/{reasoning-pref-BVzGczV7.js.map → reasoning-pref-B9-DJUXP.js.map} +1 -1
- package/dist/core/web/public/next/assets/seat-subscription-CH6fW4fJ.js +2 -0
- package/dist/core/web/public/next/assets/seat-subscription-CH6fW4fJ.js.map +1 -0
- package/dist/core/web/public/next/assets/{section-visibility-CSrsTcwK.js → section-visibility-qFqc_d4Z.js} +2 -2
- package/dist/core/web/public/next/assets/{section-visibility-CSrsTcwK.js.map → section-visibility-qFqc_d4Z.js.map} +1 -1
- package/dist/core/web/public/next/assets/{sidebar-model-C8fyqSQY.js → sidebar-model-M1GaQU5l.js} +2 -2
- package/dist/core/web/public/next/assets/{sidebar-model-C8fyqSQY.js.map → sidebar-model-M1GaQU5l.js.map} +1 -1
- package/dist/core/web/public/next/assets/slots-Ds9ZIqUL.js +3 -0
- package/dist/core/web/public/next/assets/{slots-W8gkmdfE.js.map → slots-Ds9ZIqUL.js.map} +1 -1
- package/dist/core/web/public/next/assets/surface-data-J52iIGMD.js +2 -0
- package/dist/core/web/public/next/assets/surface-data-J52iIGMD.js.map +1 -0
- package/dist/core/web/public/next/assets/surface-prefetch-CgZ-LEJK.js +2 -0
- package/dist/core/web/public/next/assets/surface-prefetch-CgZ-LEJK.js.map +1 -0
- package/dist/core/web/public/next/assets/tasks-model-ent8f0jZ.js +2 -0
- package/dist/core/web/public/next/assets/{tasks-model-CnYQzgxk.js.map → tasks-model-ent8f0jZ.js.map} +1 -1
- package/dist/core/web/public/next/assets/{terminal-icons-CxUYaWX9.js → terminal-icons-DJTK7QpR.js} +2 -2
- package/dist/core/web/public/next/assets/{terminal-icons-CxUYaWX9.js.map → terminal-icons-DJTK7QpR.js.map} +1 -1
- package/dist/core/web/public/next/assets/{tool-semantics-CTRuLF5j.js → tool-semantics-GX8ScuSH.js} +2 -2
- package/dist/core/web/public/next/assets/{tool-semantics-CTRuLF5j.js.map → tool-semantics-GX8ScuSH.js.map} +1 -1
- package/dist/core/web/public/next/assets/{turn-files-BvB5LLNw.js → turn-files-BPHQzYuH.js} +2 -2
- package/dist/core/web/public/next/assets/{turn-files-BvB5LLNw.js.map → turn-files-BPHQzYuH.js.map} +1 -1
- package/dist/core/web/public/next/assets/types-D5XOdyw8.js +2 -0
- package/dist/core/web/public/next/assets/types-D5XOdyw8.js.map +1 -0
- package/dist/core/web/public/next/assets/{usage-queries-CQOpeE1H.js → usage-queries-Bn8ccqyN.js} +2 -2
- package/dist/core/web/public/next/assets/{usage-queries-CQOpeE1H.js.map → usage-queries-Bn8ccqyN.js.map} +1 -1
- package/dist/core/web/public/next/assets/use-guarded-action-C2HlSzkz.js +2 -0
- package/dist/core/web/public/next/assets/use-guarded-action-C2HlSzkz.js.map +1 -0
- package/dist/core/web/public/next/assets/{use-ticker-hryPXnyp.js → use-ticker-BNc1H4ZC.js} +2 -2
- package/dist/core/web/public/next/assets/{use-ticker-hryPXnyp.js.map → use-ticker-BNc1H4ZC.js.map} +1 -1
- package/dist/core/web/public/next/assets/use-token-gate-B3IJL6bf.js +2 -0
- package/dist/core/web/public/next/assets/use-token-gate-B3IJL6bf.js.map +1 -0
- package/dist/core/web/public/next/assets/{useActivity-Cg_9-7nt.js → useActivity-Bk3XgXjL.js} +2 -2
- package/dist/core/web/public/next/assets/{useActivity-Cg_9-7nt.js.map → useActivity-Bk3XgXjL.js.map} +1 -1
- package/dist/core/web/public/next/assets/useChartWidth-BAtVgn2n.css +1 -0
- package/dist/core/web/public/next/assets/useChartWidth-lZ9PrQn0.js +2 -0
- package/dist/core/web/public/next/assets/useChartWidth-lZ9PrQn0.js.map +1 -0
- package/dist/core/web/public/next/assets/{useSeatsRefresh-4Ov9eT1F.js → useSeatsRefresh-CG4jczeL.js} +2 -2
- package/dist/core/web/public/next/assets/{useSeatsRefresh-4Ov9eT1F.js.map → useSeatsRefresh-CG4jczeL.js.map} +1 -1
- package/dist/core/web/public/next/assets/verse-model-D7NZQFAR.js +2 -0
- package/dist/core/web/public/next/assets/verse-model-D7NZQFAR.js.map +1 -0
- package/dist/core/web/public/next/assets/{verse-queries-BjQoOTwv.js → verse-queries-DvIJcn6Z.js} +2 -2
- package/dist/core/web/public/next/assets/{verse-queries-BjQoOTwv.js.map → verse-queries-DvIJcn6Z.js.map} +1 -1
- package/dist/core/web/public/next/assets/verse-store-DjBWj04q.js +3 -0
- package/dist/core/web/public/next/assets/verse-store-DjBWj04q.js.map +1 -0
- package/dist/core/web/public/next/assets/verse-ui-store-zafyzXKD.js +3 -0
- package/dist/core/web/public/next/assets/{verse-ui-store-KTTKfv-T.js.map → verse-ui-store-zafyzXKD.js.map} +1 -1
- package/dist/core/web/public/next/assets/{viewport-ZB86jdES.js → viewport-BEqGUoTA.js} +2 -2
- package/dist/core/web/public/next/assets/{viewport-ZB86jdES.js.map → viewport-BEqGUoTA.js.map} +1 -1
- package/dist/core/web/public/next/assets/warmup-BR6pxAKs.js +3 -0
- package/dist/core/web/public/next/assets/warmup-BR6pxAKs.js.map +1 -0
- package/dist/core/web/public/next/assets/{workspace-model-4hq_Mv3N.js → workspace-model-D_tWD5Wt.js} +2 -2
- package/dist/core/web/public/next/assets/{workspace-model-4hq_Mv3N.js.map → workspace-model-D_tWD5Wt.js.map} +1 -1
- package/dist/core/web/public/next/index.html +1 -1
- package/dist/release-dependency-inventory.json +1 -1
- package/package.json +1 -1
- package/dist/core/web/public/next/assets/Advanced-CHjxJt2z.css +0 -1
- package/dist/core/web/public/next/assets/Advanced-DM0DYibH.js +0 -2
- package/dist/core/web/public/next/assets/Advanced-DM0DYibH.js.map +0 -1
- package/dist/core/web/public/next/assets/AppsSection-CXxbfPJQ.js +0 -2
- package/dist/core/web/public/next/assets/AppsSection-CXxbfPJQ.js.map +0 -1
- package/dist/core/web/public/next/assets/AreaTrend-gUVXkfhf.js +0 -2
- package/dist/core/web/public/next/assets/AreaTrend-gUVXkfhf.js.map +0 -1
- package/dist/core/web/public/next/assets/AutonomySection-CoMngwNB.js +0 -2
- package/dist/core/web/public/next/assets/BranchBar-C-NovaXr.js +0 -2
- package/dist/core/web/public/next/assets/BranchBar-C-NovaXr.js.map +0 -1
- package/dist/core/web/public/next/assets/BranchBar-C9BpPVLr.css +0 -1
- package/dist/core/web/public/next/assets/BudgetControl-P5lMxHvQ.js +0 -2
- package/dist/core/web/public/next/assets/BudgetControl-P5lMxHvQ.js.map +0 -1
- package/dist/core/web/public/next/assets/BurnDown-4P1LDoCL.js +0 -2
- package/dist/core/web/public/next/assets/BurnDown-4P1LDoCL.js.map +0 -1
- package/dist/core/web/public/next/assets/CapacityStrip-D6Yyg4a1.js +0 -2
- package/dist/core/web/public/next/assets/CapacityStrip-D6Yyg4a1.js.map +0 -1
- package/dist/core/web/public/next/assets/CapacityStrip-wgFP9MUA.css +0 -1
- package/dist/core/web/public/next/assets/ChatSection-B9cdRKUh.js +0 -3
- package/dist/core/web/public/next/assets/CommandSection-BC0uXim_.js +0 -2
- package/dist/core/web/public/next/assets/CommandSection-BC0uXim_.js.map +0 -1
- package/dist/core/web/public/next/assets/Composer-CkcwbQhG.css +0 -1
- package/dist/core/web/public/next/assets/Composer.module-DJMdrqNt.js +0 -2
- package/dist/core/web/public/next/assets/DiffPane-5uLKa0au.js +0 -2
- package/dist/core/web/public/next/assets/DiffPane-5uLKa0au.js.map +0 -1
- package/dist/core/web/public/next/assets/DiffPane-Csboxnn0.css +0 -1
- package/dist/core/web/public/next/assets/DockHost-BGnTgdIb.css +0 -1
- package/dist/core/web/public/next/assets/DockHost-CBV_6Ehi.js +0 -2
- package/dist/core/web/public/next/assets/DockHost-CBV_6Ehi.js.map +0 -1
- package/dist/core/web/public/next/assets/FleetSection-DuJcQCGg.js +0 -3
- package/dist/core/web/public/next/assets/FleetSection-DuJcQCGg.js.map +0 -1
- package/dist/core/web/public/next/assets/FleetSection-w9AjqfTR.css +0 -1
- package/dist/core/web/public/next/assets/Funnel-qX3Hlbce.js +0 -2
- package/dist/core/web/public/next/assets/Funnel-qX3Hlbce.js.map +0 -1
- package/dist/core/web/public/next/assets/GearTray-kVGP1coG.js +0 -2
- package/dist/core/web/public/next/assets/GearTray-kVGP1coG.js.map +0 -1
- package/dist/core/web/public/next/assets/GrowthSection-CYxJ9MH5.js +0 -2
- package/dist/core/web/public/next/assets/GrowthSection-CYxJ9MH5.js.map +0 -1
- package/dist/core/web/public/next/assets/HandoffDialog-DHZo3Ev0.js +0 -2
- package/dist/core/web/public/next/assets/HandoffDialog-DHZo3Ev0.js.map +0 -1
- package/dist/core/web/public/next/assets/MatrixHeatmap-B_JWCjZx.js +0 -2
- package/dist/core/web/public/next/assets/MatrixHeatmap-B_JWCjZx.js.map +0 -1
- package/dist/core/web/public/next/assets/McpSection-1UncWBpW.js +0 -2
- package/dist/core/web/public/next/assets/MessageMarkdown-C4pl9LI5.js +0 -3
- package/dist/core/web/public/next/assets/MessageMarkdown-Czcl3L_Q.css +0 -1
- package/dist/core/web/public/next/assets/MindSection-C3fCw_fD.js +0 -2
- package/dist/core/web/public/next/assets/MindSection-C3fCw_fD.js.map +0 -1
- package/dist/core/web/public/next/assets/MutationTokenDialog-Dn0tzCrh.js +0 -2
- package/dist/core/web/public/next/assets/MutationTokenDialog-Dn0tzCrh.js.map +0 -1
- package/dist/core/web/public/next/assets/NeedsYouDrawer-CuNYJCJ0.js +0 -2
- package/dist/core/web/public/next/assets/NeedsYouDrawer-CuNYJCJ0.js.map +0 -1
- package/dist/core/web/public/next/assets/NeedsYouDrawer-SkhvvdLb.css +0 -1
- package/dist/core/web/public/next/assets/NewChatDialog-B_BsS9pr.js +0 -3
- package/dist/core/web/public/next/assets/OnboardingFlow-CtCPpgoX.js +0 -2
- package/dist/core/web/public/next/assets/PreviewPane-Cx6RRwzM.js +0 -2
- package/dist/core/web/public/next/assets/PreviewPane-Cx6RRwzM.js.map +0 -1
- package/dist/core/web/public/next/assets/PreviewPane-WQJFjSXe.css +0 -1
- package/dist/core/web/public/next/assets/RailStatus-BWs6xevj.js +0 -2
- package/dist/core/web/public/next/assets/RailStatus-BWs6xevj.js.map +0 -1
- package/dist/core/web/public/next/assets/SeatSelector-DaUO-zoK.js +0 -3
- package/dist/core/web/public/next/assets/SessionSearch-B5aQ0BCM.js +0 -2
- package/dist/core/web/public/next/assets/SettingsSection-CuESA30a.js +0 -2
- package/dist/core/web/public/next/assets/SettingsSection-CuESA30a.js.map +0 -1
- package/dist/core/web/public/next/assets/Sidebar-DfD8MNZt.css +0 -1
- package/dist/core/web/public/next/assets/Sidebar-q11dtYZf.js +0 -3
- package/dist/core/web/public/next/assets/Sidebar-q11dtYZf.js.map +0 -1
- package/dist/core/web/public/next/assets/StepBand-B1W7rU70.js +0 -2
- package/dist/core/web/public/next/assets/StepBand-B1W7rU70.js.map +0 -1
- package/dist/core/web/public/next/assets/Swimlane-BR40WVcj.js +0 -2
- package/dist/core/web/public/next/assets/Swimlane-BR40WVcj.js.map +0 -1
- package/dist/core/web/public/next/assets/TerminalPane-CPKUTD9K.js +0 -7
- package/dist/core/web/public/next/assets/TerminalPane-CPKUTD9K.js.map +0 -1
- package/dist/core/web/public/next/assets/TerminalPane-CmE2QL-Q.css +0 -1
- package/dist/core/web/public/next/assets/UniverseConsoleApp-DKqAf-eD.js +0 -2
- package/dist/core/web/public/next/assets/UsageSection-B6fR3cru.js +0 -2
- package/dist/core/web/public/next/assets/UsageSection-B6fR3cru.js.map +0 -1
- package/dist/core/web/public/next/assets/UsageSection-DwgNOYvi.css +0 -1
- package/dist/core/web/public/next/assets/VerseConsoleApp-C0V221WL.css +0 -1
- package/dist/core/web/public/next/assets/VerseConsoleApp-bjARLPwN.js +0 -3
- package/dist/core/web/public/next/assets/VerseConsoleApp-bjARLPwN.js.map +0 -1
- package/dist/core/web/public/next/assets/Workspace-DQXMVDf7.css +0 -1
- package/dist/core/web/public/next/assets/Workspace-DtJb5tiM.js +0 -10
- package/dist/core/web/public/next/assets/Workspace-DtJb5tiM.js.map +0 -1
- package/dist/core/web/public/next/assets/actions-Bszsdpms.js +0 -2
- package/dist/core/web/public/next/assets/actions-Bszsdpms.js.map +0 -1
- package/dist/core/web/public/next/assets/actions-Dug8YIf0.css +0 -1
- package/dist/core/web/public/next/assets/capacity-strip-model-BR539Ci8.js +0 -2
- package/dist/core/web/public/next/assets/capacity-strip-model-BR539Ci8.js.map +0 -1
- package/dist/core/web/public/next/assets/charts-D4NaLaXA.js +0 -2
- package/dist/core/web/public/next/assets/charts-D4NaLaXA.js.map +0 -1
- package/dist/core/web/public/next/assets/colors-B-vHsX1S.js +0 -2
- package/dist/core/web/public/next/assets/colors-B-vHsX1S.js.map +0 -1
- package/dist/core/web/public/next/assets/command-catalog-s3W6Z96D.js +0 -2
- package/dist/core/web/public/next/assets/command-catalog-s3W6Z96D.js.map +0 -1
- package/dist/core/web/public/next/assets/context-model-Bto3LZn2.js +0 -2
- package/dist/core/web/public/next/assets/context-model-Bto3LZn2.js.map +0 -1
- package/dist/core/web/public/next/assets/context-queries-DVdSLrYy.js +0 -2
- package/dist/core/web/public/next/assets/context-queries-DVdSLrYy.js.map +0 -1
- package/dist/core/web/public/next/assets/context.module-B_k02HNU.js +0 -2
- package/dist/core/web/public/next/assets/context.module-B_k02HNU.js.map +0 -1
- package/dist/core/web/public/next/assets/dock-icons-oG8d7mNZ.js +0 -2
- package/dist/core/web/public/next/assets/dock-icons-oG8d7mNZ.js.map +0 -1
- package/dist/core/web/public/next/assets/dock-panes-BNTLvX7G.js +0 -2
- package/dist/core/web/public/next/assets/fleet-model-ClBbQ0Uj.js +0 -2
- package/dist/core/web/public/next/assets/fleet-model-ClBbQ0Uj.js.map +0 -1
- package/dist/core/web/public/next/assets/format-BNYWGJat.js +0 -2
- package/dist/core/web/public/next/assets/format-BNYWGJat.js.map +0 -1
- package/dist/core/web/public/next/assets/global-DVgMguLr.js +0 -2
- package/dist/core/web/public/next/assets/global-DVgMguLr.js.map +0 -1
- package/dist/core/web/public/next/assets/live-model-Dm6ITHvX.js +0 -2
- package/dist/core/web/public/next/assets/live-model-Dm6ITHvX.js.map +0 -1
- package/dist/core/web/public/next/assets/mind-B-lYfSUJ.css +0 -1
- package/dist/core/web/public/next/assets/mind.module-BzhAlg3e.js +0 -2
- package/dist/core/web/public/next/assets/mind.module-BzhAlg3e.js.map +0 -1
- package/dist/core/web/public/next/assets/mutations-C6E10SPX.js +0 -2
- package/dist/core/web/public/next/assets/primitives-DQvYikjm.js +0 -1
- package/dist/core/web/public/next/assets/seat-subscription-CrWOV4Qc.js +0 -2
- package/dist/core/web/public/next/assets/seat-subscription-CrWOV4Qc.js.map +0 -1
- package/dist/core/web/public/next/assets/slots-W8gkmdfE.js +0 -3
- package/dist/core/web/public/next/assets/surface-data-ZtCegYMQ.js +0 -2
- package/dist/core/web/public/next/assets/surface-data-ZtCegYMQ.js.map +0 -1
- package/dist/core/web/public/next/assets/tasks-model-CnYQzgxk.js +0 -2
- package/dist/core/web/public/next/assets/types-Dypu22dp.js +0 -3
- package/dist/core/web/public/next/assets/types-Dypu22dp.js.map +0 -1
- package/dist/core/web/public/next/assets/use-guarded-action-CO_aAsed.js +0 -2
- package/dist/core/web/public/next/assets/use-guarded-action-CO_aAsed.js.map +0 -1
- package/dist/core/web/public/next/assets/use-token-gate-DYA2-ALC.js +0 -2
- package/dist/core/web/public/next/assets/use-token-gate-DYA2-ALC.js.map +0 -1
- package/dist/core/web/public/next/assets/useChartWidth-B8E5mJgM.css +0 -1
- package/dist/core/web/public/next/assets/useChartWidth-MEXvDxDL.js +0 -2
- package/dist/core/web/public/next/assets/useChartWidth-MEXvDxDL.js.map +0 -1
- package/dist/core/web/public/next/assets/verse-model-E98kXngO.js +0 -2
- package/dist/core/web/public/next/assets/verse-model-E98kXngO.js.map +0 -1
- package/dist/core/web/public/next/assets/verse-store-BgKx_YGs.js +0 -2
- package/dist/core/web/public/next/assets/verse-store-BgKx_YGs.js.map +0 -1
- package/dist/core/web/public/next/assets/verse-ui-store-KTTKfv-T.js +0 -3
package/dist/core/web/public/next/assets/{viewport-ZB86jdES.js.map → viewport-BEqGUoTA.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewport-
|
|
1
|
+
{"version":3,"file":"viewport-BEqGUoTA.js","names":[],"sources":["../../../../../../src/web-ui/routes/verse/shell/viewport.ts"],"sourcesContent":["/**\n * routes/verse/shell/viewport.ts — the workbench's width classes (unit C0).\n *\n * ONE set of breakpoints for every 3.10 surface, so the dock, the drawer, the\n * surfaces and the composer footer all change shape at the same widths\n * (SPEC-310C §1–§5):\n *\n * compact < 480 the phone layout the 375 screenshots show: one column,\n * bottom sheets (dock at 75vh), the composer footer folds\n * its pickers into a sheet, charts render at width 375.\n * medium 480–1023 the dock and the Needs-you drawer become sheets over\n * the chat instead of columns beside it.\n * wide ≥ 1024 the full workbench: rail, sidebar, transcript, dock.\n *\n * Read through matchMedia — the browser's own answer, which is also what the\n * test support mocks — never by polling window size.\n */\nimport { useMemo, useSyncExternalStore } from 'react';\n\nexport const VIEWPORT_BREAKPOINTS = Object.freeze({\n /** Below this width: the compact (phone) layout. */\n compact: 480,\n /** At or above this width: the wide workbench (dock as a column). */\n wide: 1024,\n});\n\nexport type ViewportClass = 'compact' | 'medium' | 'wide';\n\n/**\n * The two queries every class derives from. `max-width` uses .98 so the\n * compact and medium ranges meet without overlapping at fractional widths\n * (the same convention Bootstrap and Tailwind use for zoomed displays).\n */\nexport const VIEWPORT_QUERIES = Object.freeze({\n compact: `(max-width: ${VIEWPORT_BREAKPOINTS.compact - 0.02}px)`,\n wide: `(min-width: ${VIEWPORT_BREAKPOINTS.wide}px)`,\n});\n\n/** The class a width falls in (pure; for layout math and tests). */\nexport function viewportClassFor(width: number): ViewportClass {\n if (width < VIEWPORT_BREAKPOINTS.compact) return 'compact';\n if (width < VIEWPORT_BREAKPOINTS.wide) return 'medium';\n return 'wide';\n}\n\nfunction currentClass(): ViewportClass {\n if (typeof window === 'undefined') return 'wide';\n if (typeof window.matchMedia === 'function') {\n if (window.matchMedia(VIEWPORT_QUERIES.compact).matches) return 'compact';\n return window.matchMedia(VIEWPORT_QUERIES.wide).matches ? 'wide' : 'medium';\n }\n // jsdom without a mock, and old webviews: the window's own width.\n return viewportClassFor(window.innerWidth || VIEWPORT_BREAKPOINTS.wide);\n}\n\nfunction subscribe(onChange: () => void): () => void {\n if (typeof window === 'undefined') return () => {};\n if (typeof window.matchMedia !== 'function') {\n window.addEventListener('resize', onChange);\n return () => window.removeEventListener('resize', onChange);\n }\n const lists = [window.matchMedia(VIEWPORT_QUERIES.compact), window.matchMedia(VIEWPORT_QUERIES.wide)];\n for (const list of lists) list.addEventListener('change', onChange);\n return () => {\n for (const list of lists) list.removeEventListener('change', onChange);\n };\n}\n\nexport interface ViewportState {\n viewport: ViewportClass;\n /** < 480: phone layout. */\n compact: boolean;\n /** ≥ 1024: the full workbench. */\n wide: boolean;\n}\n\n/** The current width class; re-renders only when the CLASS changes, not on every resize. */\nexport function useViewport(): ViewportState {\n const viewport = useSyncExternalStore(subscribe, currentClass, () => 'wide' as const);\n return useMemo(() => ({ viewport, compact: viewport === 'compact', wide: viewport === 'wide' }), [viewport]);\n}\n\n/** Non-hook read, for event handlers and effects. */\nexport function readViewport(): ViewportClass {\n return currentClass();\n}\n"],"mappings":"8DAmBa,EAAuB,OAAO,OAAO,CAEhD,QAAS,IAET,KAAM,IACR,CAAC,EASY,EAAmB,OAAO,OAAO,CAC5C,QAAS,eAAe,EAAqB,QAAU,IAAK,KAC5D,KAAM,eAAe,EAAqB,KAAK,IACjD,CAAC,EAGD,SAAgB,EAAiB,EAA8B,CAG7D,OAFI,EAAQ,EAAqB,QAAgB,UAC7C,EAAQ,EAAqB,KAAa,SACvC,MACT,CAEA,SAAS,GAA8B,CAOrC,OANI,OAAO,OAAW,IAAoB,OACtC,OAAO,OAAO,YAAe,WAC3B,OAAO,WAAW,EAAiB,OAAO,CAAC,CAAC,QAAgB,UACzD,OAAO,WAAW,EAAiB,IAAI,CAAC,CAAC,QAAU,OAAS,SAG9D,EAAiB,OAAO,YAAc,EAAqB,IAAI,CACxE,CAEA,SAAS,EAAU,EAAkC,CACnD,GAAI,OAAO,OAAW,IAAa,UAAa,CAAC,EACjD,GAAI,OAAO,OAAO,YAAe,WAE/B,OADA,OAAO,iBAAiB,SAAU,CAAQ,MAC7B,OAAO,oBAAoB,SAAU,CAAQ,EAE5D,IAAM,EAAQ,CAAC,OAAO,WAAW,EAAiB,OAAO,EAAG,OAAO,WAAW,EAAiB,IAAI,CAAC,EACpG,IAAK,IAAM,KAAQ,EAAO,EAAK,iBAAiB,SAAU,CAAQ,EAClE,UAAa,CACX,IAAK,IAAM,KAAQ,EAAO,EAAK,oBAAoB,SAAU,CAAQ,CACvE,CACF,CAWA,SAAgB,GAA6B,CAC3C,IAAM,GAAA,EAAW,EAAA,qBAAA,CAAqB,EAAW,MAAoB,MAAe,EACpF,OAAA,EAAO,EAAA,QAAA,MAAe,CAAE,WAAU,QAAS,IAAa,UAAW,KAAM,IAAa,MAAO,GAAI,CAAC,CAAQ,CAAC,CAC7G"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/surface-prefetch-CgZ-LEJK.js","assets/global-Di2PUgj4.js","assets/index-oAAq8XJa.js","assets/global-_tOCFt9y.css","assets/queries-BA4rNGD-.js","assets/verse-queries-DvIJcn6Z.js","assets/workbench-types-DzN-5trg.js","assets/budget-queries-wUshcovN.js","assets/cloud-queries-CnV1yaNG.js","assets/useActivity-Bk3XgXjL.js","assets/section-visibility-qFqc_d4Z.js","assets/types-D5XOdyw8.js","assets/overnight-queries-X-44Gsw5.js","assets/format-B8DAVcn2.js","assets/format-DKrNjdwD.js","assets/VerseConsoleApp-WVeyJnW7.js","assets/RouteErrorBoundary-C5SxA2Dg.js","assets/MutationTokenDialog-SkRxqV_I.js","assets/MutationTokenDialog-Cum_DqQZ.css","assets/RouteErrorBoundary-6RMd_aZg.css","assets/command-catalog-BdtDH93o.js","assets/guarded-action-CvOHcqyH.js","assets/viewport-BEqGUoTA.js","assets/verse-ui-store-zafyzXKD.js","assets/dock-store-BA1cHOYA.js","assets/composer-keys-DBRymxQn.js","assets/command-bus-DqimKCUY.js","assets/icons-B_yuAgdN.js","assets/VerseConsoleApp-Cxqr-3qc.css","assets/verse-model-D7NZQFAR.js","assets/control-queries-DOZR-D8G.js","assets/mutations-Dpsql5t7.js","assets/surface-data-J52iIGMD.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./index-oAAq8XJa.js";import{n as t,u as n}from"./verse-ui-store-zafyzXKD.js";var r=[`pointerdown`,`keydown`,`wheel`,`touchstart`],i={capture:!0,passive:!0};function a(e={}){let t=e.win??window,n=e.doc??document,a=e.now??(()=>Date.now()),o=e.quietMs??2e3,s=Math.max(1,e.pollMs??250),c=e.busy??(()=>!1),l=e.timeoutMs??3e3,u=!1,d=a(),f=new Set,p=()=>{d=a()};for(let e of r)n.addEventListener(e,p,i);let m=()=>d+o-a(),h=()=>n.visibilityState!==`hidden`&&m()<=0&&!c();function g(){return u?Promise.resolve(!1):new Promise(e=>{let r=()=>void 0,i=()=>{r(),e(!1)},o=()=>{f.delete(i),e(!0)};f.add(i);let u=()=>{if(r=()=>void 0,n.visibilityState===`hidden`){let e=()=>{n.visibilityState!==`hidden`&&(n.removeEventListener(`visibilitychange`,e),d=a(),u())};n.addEventListener(`visibilitychange`,e),r=()=>n.removeEventListener(`visibilitychange`,e);return}let e=m();if(e>0||c()){let n=t.setTimeout(u,e>0?e:s);r=()=>t.clearTimeout(n);return}if(typeof t.requestIdleCallback==`function`){let e=t.requestIdleCallback(()=>h()?o():u(),{timeout:l});r=()=>t.cancelIdleCallback?.(e);return}o()};u()})}function _(e){return u?Promise.resolve(!1):new Promise(n=>{let r=0,i=()=>{t.clearTimeout(r),n(!1)};r=t.setTimeout(()=>{f.delete(i),n(!0)},e),f.add(i)})}function v(){if(!u){u=!0;for(let e of r)n.removeEventListener(e,p,i);for(let e of[...f])e();f.clear()}}return{wait:g,pause:_,cancel:v}}function o(e,t={}){let n=a(t),r=t.gapMs??400;return(async()=>{for(let[t,i]of e.entries()){if(t>0&&r>0&&!await n.pause(r)||!await n.wait())return;try{await i(n)}catch{}}n.cancel()})(),n.cancel}var s=()=>e(()=>import(`./surface-prefetch-CgZ-LEJK.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32]));function c(e,r={}){let i=e=>async()=>{await e()},a=t=>async r=>{if(n().mounted.includes(t))return;await e.loadSection(t);let{prefetchSurfaceData:i}=await s();await i(t,{beforeEach:()=>r.wait()})};return o([...e.overlays.map(i),...t.map(e=>a(e.id))],{busy:e.readsInFlight,...r})}export{c as warmUpAfterFirstPaint};
|
|
3
|
+
//# sourceMappingURL=warmup-BR6pxAKs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"mappings":"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","names":[],"ignoreList":[],"sources":["../../../../../../src/web-ui/routes/verse/shell/idle-prefetch.ts","../../../../../../src/web-ui/routes/verse/shell/warmup.ts"],"sourcesContent":["/**\n * routes/verse/shell/idle-prefetch.ts — run warm-up work in the gaps the\n * operator leaves, never in front of them (unit C1; review 3.10.1).\n *\n * createIdleGate() \"is the operator idle?\" as a promise: the window\n * is shown, no input for `quietMs`, none of the\n * operator's reads in flight (`busy`), and — where\n * the browser can tell — an idle callback;\n * runIdleSteps(steps) the steps one at a time: each waits for the gate,\n * and the next starts only after the previous one\n * has FINISHED (its promise settled) plus `gapMs`.\n *\n * WHY A GATE AND NOT A TIMER. WebKit — so the desktop app's WKWebView — has\n * no requestIdleCallback. 3.10.1 first fell back to fixed timers there (1.5 s,\n * then a step every 400 ms counted from each step's kickoff, not its end), so\n * the warm-up started ~9 reads in about a second whatever the operator was\n * doing, and a chat opened two seconds after launch queued behind the 90-day\n * history and the reasoning digest. The gate instead measures the two things\n * that matter: the operator's hands (pointer, keys, wheel, touch — observed\n * in the capture phase, passively, never delayed) and the operator's reads\n * (the caller's `busy`, which the shell wires to the query cache's gate).\n * Every wait re-checks both, so warm-up work yields the moment the operator\n * does something and resumes only after a fresh quiet period.\n *\n * A HIDDEN document runs nothing: a wait parks on `visibilitychange`, and\n * coming back counts as input (a fresh quiet period — the operator is about\n * to act). Cancel stops everything still pending — timers, idle callbacks,\n * the visibility and input listeners — and resolves every open wait `false`;\n * a step already running finishes on its own. The runner cancels its gate\n * when the last step is done, so a finished warm-up listens to nothing.\n *\n * LAZY ONLY. Framework- and dependency-free, and never imported statically by\n * VerseApp: shell/warmup.ts (itself loaded with import()) is its only user,\n * so none of this costs chat first-paint bytes (VerseApp.first-paint.test.ts).\n */\n\ntype IdleWindow = Pick<Window, 'setTimeout' | 'clearTimeout'> & {\n requestIdleCallback?: (cb: () => void, options?: { timeout: number }) => number;\n cancelIdleCallback?: (id: number) => void;\n};\n\ntype GateDocument = Pick<Document, 'visibilityState' | 'addEventListener' | 'removeEventListener'>;\n\nexport interface IdleGateOptions {\n /** No operator input for this long before anything runs. */\n quietMs?: number;\n /** How often a wait re-checks `busy` once the quiet period is met. */\n pollMs?: number;\n /** True while the operator's own work is in flight (the shell: the query cache's gate). */\n busy?: () => boolean;\n /** requestIdleCallback's deadline, where it exists. */\n timeoutMs?: number;\n /** Test seams. */\n win?: IdleWindow;\n doc?: GateDocument;\n now?: () => number;\n}\n\nexport interface IdleGate {\n /** Resolves true once the operator is idle; false if the gate is (or gets) cancelled first. */\n wait(): Promise<boolean>;\n /** A plain pause that cancel also ends (false). */\n pause(ms: number): Promise<boolean>;\n cancel(): void;\n}\n\nexport const IDLE_QUIET_MS = 2_000;\nexport const IDLE_POLL_MS = 250;\nexport const IDLE_TIMEOUT_MS = 3_000;\nexport const IDLE_STEP_GAP_MS = 400;\n\n/** What counts as the operator doing something. */\nexport const IDLE_INPUT_EVENTS = ['pointerdown', 'keydown', 'wheel', 'touchstart'] as const;\n\nconst LISTEN = { capture: true, passive: true } as const;\n\nexport function createIdleGate(options: IdleGateOptions = {}): IdleGate {\n const win = options.win ?? (window as IdleWindow);\n const doc = options.doc ?? document;\n const now = options.now ?? (() => Date.now());\n const quietMs = options.quietMs ?? IDLE_QUIET_MS;\n const pollMs = Math.max(1, options.pollMs ?? IDLE_POLL_MS);\n const busy = options.busy ?? (() => false);\n const timeoutMs = options.timeoutMs ?? IDLE_TIMEOUT_MS;\n\n let cancelled = false;\n // The gate is created at first paint: the quiet period counts from there.\n let lastInput = now();\n /** One abort per open wait / pause: disarms what it armed and settles it `false`. */\n const open = new Set<() => void>();\n\n const onInput = (): void => {\n lastInput = now();\n };\n for (const type of IDLE_INPUT_EVENTS) doc.addEventListener(type, onInput, LISTEN);\n\n const quietLeft = (): number => lastInput + quietMs - now();\n const idleNow = (): boolean => doc.visibilityState !== 'hidden' && quietLeft() <= 0 && !busy();\n\n function wait(): Promise<boolean> {\n if (cancelled) return Promise.resolve(false);\n return new Promise<boolean>((resolve) => {\n let disarm = (): void => undefined;\n const abort = (): void => {\n disarm();\n resolve(false);\n };\n const done = (): void => {\n open.delete(abort);\n resolve(true);\n };\n open.add(abort);\n\n const check = (): void => {\n disarm = () => undefined;\n if (doc.visibilityState === 'hidden') {\n const onShown = (): void => {\n if (doc.visibilityState === 'hidden') return;\n doc.removeEventListener('visibilitychange', onShown);\n lastInput = now();\n check();\n };\n doc.addEventListener('visibilitychange', onShown);\n disarm = () => doc.removeEventListener('visibilitychange', onShown);\n return;\n }\n const left = quietLeft();\n if (left > 0 || busy()) {\n const id = win.setTimeout(check, left > 0 ? left : pollMs);\n disarm = () => win.clearTimeout(id);\n return;\n }\n if (typeof win.requestIdleCallback === 'function') {\n // Input or a read may have started while the browser was busy: re-check on the way out.\n const id = win.requestIdleCallback(() => (idleNow() ? done() : check()), { timeout: timeoutMs });\n disarm = () => win.cancelIdleCallback?.(id);\n return;\n }\n done();\n };\n check();\n });\n }\n\n function pause(ms: number): Promise<boolean> {\n if (cancelled) return Promise.resolve(false);\n return new Promise<boolean>((resolve) => {\n let id = 0;\n const abort = (): void => {\n win.clearTimeout(id);\n resolve(false);\n };\n id = win.setTimeout(() => {\n open.delete(abort);\n resolve(true);\n }, ms);\n open.add(abort);\n });\n }\n\n function cancel(): void {\n if (cancelled) return;\n cancelled = true;\n for (const type of IDLE_INPUT_EVENTS) doc.removeEventListener(type, onInput, LISTEN);\n for (const abort of [...open]) abort();\n open.clear();\n }\n\n return { wait, pause, cancel };\n}\n\nexport type IdleStep = (gate: IdleGate) => void | Promise<void>;\n\nexport interface IdleStepsOptions extends IdleGateOptions {\n /** Pause after one step has finished before the next waits for the gate. */\n gapMs?: number;\n}\n\n/**\n * Run `steps` in order, each once the operator is idle and only after the\n * previous one has settled (plus `gapMs`). A step receives the gate so it can\n * wait again between its own pieces of work. A step that throws or rejects is\n * skipped, never fatal. Returns a cancel that stops every step not yet started\n * and every wait a running step is parked on.\n */\nexport function runIdleSteps(steps: readonly IdleStep[], options: IdleStepsOptions = {}): () => void {\n const gate = createIdleGate(options);\n const gapMs = options.gapMs ?? IDLE_STEP_GAP_MS;\n void (async () => {\n for (const [index, step] of steps.entries()) {\n if (index > 0 && gapMs > 0 && !(await gate.pause(gapMs))) return;\n if (!(await gate.wait())) return;\n try {\n await step(gate);\n } catch {\n // Warm-up only: a step that fails costs the operator a skeleton later, nothing more.\n }\n }\n gate.cancel();\n })();\n return gate.cancel;\n}\n","/**\n * routes/verse/shell/warmup.ts — what the shell warms after first paint, in\n * what order, and when (unit C1; review 3.10.1).\n *\n * 1. the overlay chunks, one at a time, so the first ⌘K / ⌘J / ⌘/ never\n * waits on the network;\n * 2. each rail surface not yet open, in rail order — its chunk (VerseApp's\n * one-per-tab load, so the first visit mounts it directly) and then the\n * reads it opens with (shell/surface-prefetch.ts, one read at a time).\n * A first visit then paints from cache instead of a skeleton.\n *\n * WHEN: every chunk and every read waits for the idle gate\n * (shell/idle-prefetch.ts): window shown, no operator input for a quiet\n * period, and NOTHING in the query cache's gate — no read of the operator's\n * running or queued. The warm-up therefore holds at most one of the gate's\n * four slots, never while the operator's own reads wait, and never in front\n * of the chat's first actions: a click or ⌘N restarts the quiet period, and\n * the reads it causes are waited out before the next warm-up read starts.\n *\n * LAZY ONLY. VerseApp loads this module with import() from a mount effect,\n * so neither the scheduler nor the surface table costs chat first-paint\n * bytes; the surface table is a further import() from here, at the first\n * surface step (VerseApp.first-paint.test.ts pins both).\n */\nimport { getVerseUiState, RAIL_SECTIONS, type VerseSectionId } from '../verse-ui-store.js';\nimport { runIdleSteps, type IdleGate, type IdleStep, type IdleStepsOptions } from './idle-prefetch.js';\n\nexport type WarmupOptions = IdleStepsOptions;\n\nexport interface WarmupDeps {\n /** VerseApp's one load per section (its lazy component shares it). */\n loadSection: (id: VerseSectionId) => Promise<unknown>;\n /** The overlay chunks, in the order they are worth having. */\n overlays: ReadonlyArray<() => Promise<unknown>>;\n /**\n * True while any read is running or queued in the query cache's gate\n * (VerseApp reads `queryGateStats`). Injected rather than imported: a\n * static data/cache.ts import from this chunk made the bundler split the\n * cache out of its shared first-paint chunk (+1.2 KB of chat critical JS,\n * more than moving the scheduler out saved).\n */\n readsInFlight: () => boolean;\n}\n\nconst importSurfacePrefetch = () => import('./surface-prefetch.js');\n\n/** Start the warm-up. Returns a cancel (VerseApp calls it on unmount). */\nexport function warmUpAfterFirstPaint(deps: WarmupDeps, options: WarmupOptions = {}): () => void {\n const overlay = (load: () => Promise<unknown>): IdleStep => async () => {\n await load();\n };\n const surface = (id: VerseSectionId): IdleStep => async (gate: IdleGate) => {\n // Already open: its reads are live, and its chunk is in.\n if (getVerseUiState().mounted.includes(id)) return;\n await deps.loadSection(id);\n const { prefetchSurfaceData } = await importSurfacePrefetch();\n await prefetchSurfaceData(id, { beforeEach: () => gate.wait() });\n };\n return runIdleSteps([...deps.overlays.map(overlay), ...RAIL_SECTIONS.map((s) => surface(s.id))], {\n busy: deps.readsInFlight,\n ...options,\n });\n}\n"],"file":"warmup-BR6pxAKs.js"}
|
package/dist/core/web/public/next/assets/{workspace-model-4hq_Mv3N.js → workspace-model-D_tWD5Wt.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{d as e}from"./verse-model-
|
|
2
|
-
//# sourceMappingURL=workspace-model-
|
|
1
|
+
import{d as e}from"./verse-model-D7NZQFAR.js";function t(e){if(e.git===null)return null;let t=[e.git.branch];return t.push(e.git.dirty===0?`clean`:`${e.git.dirty} changed`),e.git.ahead>0&&t.push(`${e.git.ahead} ahead`),e.git.behind>0&&t.push(`${e.git.behind} behind`),t.join(` · `)}function n(e){return e.exists?e.reachable?e.primary?`primary`:`extra`:`unreachable`:`missing`}function r(e){return e.exists?e.reachable?e.enrolled?null:`not enrolled — autonomous lane refuses it`:`this engine cannot reach it`:`missing on disk`}var i={critical:`Critical`,high:`High`,normal:`Normal`,low:`Low`},a=[`critical`,`high`,`normal`,`low`],o=`Priority orders the repositories the fleet already has. It never adds one — a repository that is not enrolled stays out of reach at every priority.`;function s(e,t){return t?.[e]??`normal`}function c(t,n){let r=t.trim();if(r.length===0)return{ok:!1,error:`Pick a primary folder.`,roots:[]};if(!e(r))return{ok:!1,error:`The primary folder must be an absolute path on this machine.`,roots:[]};let i=[r];for(let t of n){let n=t.trim();if(n.length!==0){if(!e(n))return{ok:!1,error:`Not an absolute path: ${n}`,roots:[]};i.includes(n)||i.push(n)}}return i.length>8?{ok:!1,error:`A workspace holds at most 8 folders.`,roots:[]}:{ok:!0,error:null,roots:i}}function l(e){return(e.roots.find(e=>e.primary)??e.roots[0])?.path??null}function u(e){return e.roots.length-1<=0?`1 folder`:`${e.roots.length} folders`}function d(e){let t=e.roots.find(e=>e.primary);return t?[t,...e.roots.filter(e=>e!==t)]:[...e.roots]}function f(e){return d(e).map(e=>e.path)}function p(e){return e==null||e===`claude`||e===`codex`||e===`local`}var m=`This seat’s CLI takes no additional-directory flag, so it will reach only the primary folder. The other folders will be unreachable — pick a Claude, Codex or local seat to use more than one.`;function h(e,t){return t<=1||p(e)?null:m}function g(e,t){return t<=1?null:h(e,t)??`The agent can read and write these folders for the life of this chat. Enrolment is separate — an unenrolled folder stays out of reach of the autonomous lane.`}var _=`Claude, Codex and local seats reach every folder here. A Grok seat reaches only the primary one.`;function v(e){let t=e.trim().replace(/[/\\]+$/,``),n=t.split(/[/\\]/).pop()??``;return n.length>0?n:t}function y(e,t){let[n=``,...r]=t,i=c(n,r);if(!i.ok)return{ok:!1,error:i.error,name:``,roots:[]};let a=e.trim(),o=a.length>0?a:v(i.roots[0]);return o.length===0?{ok:!1,error:`Give this project a name.`,name:``,roots:[]}:{ok:!0,error:null,name:o,roots:i.roots}}function b(e,t,n){let r=[...e],i=n===`up`?t-1:t+1;if(t<0||t>=r.length||i<0||i>=r.length)return r;let a=r[t];return r[t]=r[i],r[i]=a,r}function x(e){return e===0?`Primary folder`:`Folder ${e+1}`}export{f as _,v as a,b as c,t as d,x as f,l as g,y as h,a as i,s as l,c as m,i as n,h as o,n as p,o as r,g as s,_ as t,r as u,u as v};
|
|
2
|
+
//# sourceMappingURL=workspace-model-D_tWD5Wt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-model-4hq_Mv3N.js","names":[],"sources":["../../../../../../src/web-ui/routes/verse/workspace-model.ts"],"sourcesContent":["/**\n * routes/verse/workspace-model.ts — pure helpers for multi-root sessions.\n * No React, no I/O, so every rule below is testable without a DOM.\n *\n * The honesty rules these encode, and why each exists:\n *\n * - A root with no git repo shows \"not a git repo\", never a blank space where\n * a branch would be. An empty slot reads as \"clean on the default branch\".\n * - `dirty` is a COUNT of changed entries, so it is rendered as a count.\n * \"modified\" alone hides whether that is one file or forty.\n * - An unenrolled root says the autonomous lane refuses it, rather than\n * showing a warning that could be read as \"this chat cannot use it\" — it\n * can, and does.\n * - An unreachable root (a Grok seat, which has no additional-directory flag)\n * is listed and marked, never hidden. Hiding it would misrepresent the\n * workspace the operator chose.\n */\nimport type {\n VerseEngine,\n VerseRootPriority,\n VerseRootStatus,\n VerseSession,\n VerseWorkspace,\n VerseWorkspaceRoot,\n} from '../../data/api-types.js';\nimport { isAbsolutePath } from './verse-model.js';\n\n/** Hard cap, mirroring VERSE_MAX_WORKSPACE_ROOTS on the server. */\nexport const MAX_WORKSPACE_ROOTS = 8;\n\n/** Every root a session can reach, primary first. Mirrors `verseSessionRoots`. */\nexport function sessionRootPaths(session: Pick<VerseSession, 'projectPath' | 'extraRoots'>): string[] {\n const out = [session.projectPath];\n for (const root of session.extraRoots ?? []) {\n if (typeof root === 'string' && root.length > 0 && !out.includes(root)) out.push(root);\n }\n return out;\n}\n\n/** True when this session reaches more than its primary folder. */\nexport function isMultiRoot(session: Pick<VerseSession, 'projectPath' | 'extraRoots'>): boolean {\n return sessionRootPaths(session).length > 1;\n}\n\n/**\n * Short label for a session's folder scope: the primary's name, plus how many\n * more it carries. Used where only one line fits (a sidebar row, a pill).\n */\nexport function rootScopeLabel(\n session: Pick<VerseSession, 'projectPath' | 'extraRoots'>,\n primaryName: string,\n): string {\n const extra = sessionRootPaths(session).length - 1;\n return extra > 0 ? `${primaryName} +${extra}` : primaryName;\n}\n\n/**\n * One line of git identity for a root.\n *\n * Returns null when the root is not a repo, so the caller renders the \"not a\n * git repo\" wording ONCE rather than each caller inventing its own.\n */\nexport function rootGitLine(root: VerseRootStatus): string | null {\n if (root.git === null) return null;\n const parts = [root.git.branch];\n parts.push(root.git.dirty === 0 ? 'clean' : `${root.git.dirty} changed`);\n if (root.git.ahead > 0) parts.push(`${root.git.ahead} ahead`);\n if (root.git.behind > 0) parts.push(`${root.git.behind} behind`);\n return parts.join(' · ');\n}\n\nexport type RootTone = 'primary' | 'extra' | 'unreachable' | 'missing';\n\n/** Which visual treatment a root row gets. Missing beats unreachable. */\nexport function rootTone(root: VerseRootStatus): RootTone {\n if (!root.exists) return 'missing';\n if (!root.reachable) return 'unreachable';\n return root.primary ? 'primary' : 'extra';\n}\n\n/**\n * The plain-language caveat for one root, or null when there is nothing to\n * say. Word, never colour alone (DESIGN-V2 §6).\n */\nexport function rootCaveat(root: VerseRootStatus): string | null {\n if (!root.exists) return 'missing on disk';\n if (!root.reachable) return 'this engine cannot reach it';\n if (!root.enrolled) return 'not enrolled — autonomous lane refuses it';\n return null;\n}\n\n// ---------------------------------------------------------------------------\n// Priority\n// ---------------------------------------------------------------------------\n\nexport const ROOT_PRIORITY_LABEL: Record<VerseRootPriority, string> = {\n critical: 'Critical',\n high: 'High',\n normal: 'Normal',\n low: 'Low',\n};\n\nexport const ROOT_PRIORITY_ORDER: readonly VerseRootPriority[] =\n ['critical', 'high', 'normal', 'low'];\n\n/**\n * How a priority must be explained wherever it is offered.\n *\n * Priority orders what the autonomous lane already reaches. It is NOT a grant,\n * and the copy has to say so at the point of the choice — otherwise ranking a\n * repo `critical` reads as turning it on.\n */\nexport const ROOT_PRIORITY_NOTE =\n 'Priority orders the repositories the fleet already has. It never adds one — a repository that is not enrolled stays out of reach at every priority.';\n\n/**\n * Sort weight; lower sorts first. Mirrors `VERSE_ROOT_PRIORITY_RANK` on the\n * server so the list the operator re-ranks here and the list the autonomous\n * lane walks cannot be ordered differently.\n */\nexport const ROOT_PRIORITY_RANK: Record<VerseRootPriority, number> = {\n critical: 0,\n high: 1,\n normal: 2,\n low: 3,\n};\n\n/** A path's priority, treating an absent key as `normal` (as the server does). */\nexport function priorityOf(\n path: string,\n priorities: Readonly<Record<string, VerseRootPriority>> | undefined,\n): VerseRootPriority {\n return priorities?.[path] ?? 'normal';\n}\n\n/**\n * Paths most-important-first.\n *\n * STABLE: two paths at the same priority keep the order they were given, so\n * re-ranking one repo never silently shuffles the rest. Ordering only — this\n * neither adds nor removes a path.\n */\nexport function rankPathsByPriority(\n paths: readonly string[],\n priorities: Readonly<Record<string, VerseRootPriority>> | undefined,\n): string[] {\n return paths\n .map((path, index) => ({ path, index, rank: ROOT_PRIORITY_RANK[priorityOf(path, priorities)] }))\n .sort((a, b) => a.rank - b.rank || a.index - b.index)\n .map((entry) => entry.path);\n}\n\n// ---------------------------------------------------------------------------\n// Root-set editing (the new-chat dialog and the workspace editor share this)\n// ---------------------------------------------------------------------------\n\nexport interface RootSetValidation {\n ok: boolean;\n /** One message, or null when the set is usable. */\n error: string | null;\n /** The set as it would be sent: trimmed, de-duplicated, primary first. */\n roots: string[];\n}\n\n/**\n * Validate a root set typed by hand.\n *\n * COURTESY ONLY. The server re-checks every path against the same deny roots\n * the enrollment registry uses, and it is the authority — this cannot know the\n * real home directory behind a `~`, and it must not pretend to.\n */\nexport function validateRootSet(primary: string, extras: readonly string[]): RootSetValidation {\n const trimmedPrimary = primary.trim();\n if (trimmedPrimary.length === 0) {\n return { ok: false, error: 'Pick a primary folder.', roots: [] };\n }\n if (!isAbsolutePath(trimmedPrimary)) {\n return { ok: false, error: 'The primary folder must be an absolute path on this machine.', roots: [] };\n }\n const roots = [trimmedPrimary];\n for (const raw of extras) {\n const root = raw.trim();\n if (root.length === 0) continue;\n if (!isAbsolutePath(root)) {\n return { ok: false, error: `Not an absolute path: ${root}`, roots: [] };\n }\n if (roots.includes(root)) continue;\n roots.push(root);\n }\n if (roots.length > MAX_WORKSPACE_ROOTS) {\n return { ok: false, error: `A workspace holds at most ${MAX_WORKSPACE_ROOTS} folders.`, roots: [] };\n }\n return { ok: true, error: null, roots };\n}\n\n/** The primary root of a stored workspace (the one a session uses as its cwd). */\nexport function workspacePrimary(workspace: VerseWorkspace): string | null {\n return (workspace.roots.find((r) => r.primary) ?? workspace.roots[0])?.path ?? null;\n}\n\n/** \"service +2 folders\" — how a workspace reads in a picker. */\nexport function workspaceSummary(workspace: VerseWorkspace): string {\n const extra = workspace.roots.length - 1;\n if (extra <= 0) return '1 folder';\n return `${workspace.roots.length} folders`;\n}\n\n/**\n * A workspace's roots in SEND order: the primary first, then the rest as\n * stored.\n *\n * `VerseWorkspace.roots` is documented primary-first, but the flag is the\n * authority and an update replaces the set wholesale with \"first entry is\n * primary\". Normalising here means a reorder can never accidentally demote\n * the primary because a stored record listed it second.\n */\nexport function orderedWorkspaceRoots(workspace: VerseWorkspace): VerseWorkspaceRoot[] {\n const primary = workspace.roots.find((r) => r.primary);\n if (!primary) return [...workspace.roots];\n return [primary, ...workspace.roots.filter((r) => r !== primary)];\n}\n\n/** The same order, as the bare paths `updateVerseWorkspace` takes. */\nexport function workspaceRootPaths(workspace: VerseWorkspace): string[] {\n return orderedWorkspaceRoots(workspace).map((r) => r.path);\n}\n\n// ---------------------------------------------------------------------------\n// Which engines reach more than the primary folder\n// ---------------------------------------------------------------------------\n\n/**\n * Whether this engine's CLI takes an additional-directory flag.\n *\n * Mirrors `engineSupportsExtraRoots` in src/core/verse/workspaces.ts. Grok\n * exposes no such flag at all (checked on grok 0.2.118), so a Grok seat gets\n * its primary root and nothing else — and the UI has to SAY that at the point\n * the seat is chosen rather than let the operator discover it from a diff that\n * never applies.\n *\n * `null` (no seat picked yet) reaches everything: there is nothing to warn\n * about until a seat exists.\n */\nexport function engineReachesExtraRoots(engine: VerseEngine | null | undefined): boolean {\n if (engine === null || engine === undefined) return true;\n return engine === 'claude' || engine === 'codex' || engine === 'local';\n}\n\nexport const EXTRA_ROOTS_REACHABLE_NOTE =\n 'The agent can read and write these folders for the life of this chat. Enrolment is separate — an unenrolled folder stays out of reach of the autonomous lane.';\n\nexport const EXTRA_ROOTS_UNREACHABLE_NOTE =\n 'This seat’s CLI takes no additional-directory flag, so it will reach only the primary folder. The other folders will be unreachable — pick a Claude, Codex or local seat to use more than one.';\n\n/**\n * The caveat for handing `rootCount` folders to a seat, or null when there is\n * nothing to warn about. Only ever the BAD news, so a caller can render it as\n * a warning without having to decide which sentence it got.\n */\nexport function extraRootsCaveat(\n engine: VerseEngine | null | undefined,\n rootCount: number,\n): string | null {\n if (rootCount <= 1) return null;\n return engineReachesExtraRoots(engine) ? null : EXTRA_ROOTS_UNREACHABLE_NOTE;\n}\n\n/** The full note for a multi-folder set: the caveat when there is one, the\n * enrolment reminder otherwise. Null when only one folder is in play. */\nexport function extraRootsNote(\n engine: VerseEngine | null | undefined,\n rootCount: number,\n): string | null {\n if (rootCount <= 1) return null;\n return extraRootsCaveat(engine, rootCount) ?? EXTRA_ROOTS_REACHABLE_NOTE;\n}\n\n/** Said once wherever a multi-folder project is DEFINED, where no seat is\n * chosen yet and so no per-seat caveat can be given. */\nexport const MULTI_ROOT_ENGINE_NOTE =\n 'Claude, Codex and local seats reach every folder here. A Grok seat reaches only the primary one.';\n\n// ---------------------------------------------------------------------------\n// Saved projects (the create/edit form behind the workspace routes)\n// ---------------------------------------------------------------------------\n\n/** The folder's own name, used when the operator names nothing. */\nexport function defaultWorkspaceName(primaryPath: string): string {\n const trimmed = primaryPath.trim().replace(/[/\\\\]+$/, '');\n const base = trimmed.split(/[/\\\\]/).pop() ?? '';\n return base.length > 0 ? base : trimmed;\n}\n\nexport interface WorkspaceDraftValidation {\n ok: boolean;\n /** One message, or null when the draft is sendable. */\n error: string | null;\n /** The name as it would be sent — never empty when `ok`. */\n name: string;\n /** Trimmed, de-duplicated, primary first. */\n roots: string[];\n}\n\n/**\n * Validate a saved project before it is sent.\n *\n * COURTESY ONLY, exactly like `validateRootSet`: the server re-checks every\n * path against the enrollment registry's deny roots and is the authority.\n */\nexport function validateWorkspaceDraft(\n name: string,\n roots: readonly string[],\n): WorkspaceDraftValidation {\n const [primary = '', ...extras] = roots;\n const set = validateRootSet(primary, extras);\n if (!set.ok) return { ok: false, error: set.error, name: '', roots: [] };\n const trimmed = name.trim();\n const resolved = trimmed.length > 0 ? trimmed : defaultWorkspaceName(set.roots[0]!);\n if (resolved.length === 0) {\n return { ok: false, error: 'Give this project a name.', name: '', roots: [] };\n }\n return { ok: true, error: null, name: resolved, roots: set.roots };\n}\n\n/**\n * Move one entry up or down by one place.\n *\n * Returns a NEW array, and returns the order unchanged when the move would\n * fall off either end — so a caller can wire it to a button that is disabled\n * at the ends without the two disagreeing.\n */\nexport function moveRoot<T>(roots: readonly T[], index: number, direction: 'up' | 'down'): T[] {\n const next = [...roots];\n const target = direction === 'up' ? index - 1 : index + 1;\n if (index < 0 || index >= next.length || target < 0 || target >= next.length) return next;\n const moved = next[index]!;\n next[index] = next[target]!;\n next[target] = moved;\n return next;\n}\n\n/**\n * How the first row must be described. The first root IS the primary — it is\n * the session's cwd and the only folder a Grok seat reaches — so the reorder\n * control is not cosmetic and the label has to say what it does.\n */\nexport function rootRowLabel(index: number): string {\n return index === 0 ? 'Primary folder' : `Folder ${index + 1}`;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspace-model-D_tWD5Wt.js","names":[],"sources":["../../../../../../src/web-ui/routes/verse/workspace-model.ts"],"sourcesContent":["/**\n * routes/verse/workspace-model.ts — pure helpers for multi-root sessions.\n * No React, no I/O, so every rule below is testable without a DOM.\n *\n * The honesty rules these encode, and why each exists:\n *\n * - A root with no git repo shows \"not a git repo\", never a blank space where\n * a branch would be. An empty slot reads as \"clean on the default branch\".\n * - `dirty` is a COUNT of changed entries, so it is rendered as a count.\n * \"modified\" alone hides whether that is one file or forty.\n * - An unenrolled root says the autonomous lane refuses it, rather than\n * showing a warning that could be read as \"this chat cannot use it\" — it\n * can, and does.\n * - An unreachable root (a Grok seat, which has no additional-directory flag)\n * is listed and marked, never hidden. Hiding it would misrepresent the\n * workspace the operator chose.\n */\nimport type {\n VerseEngine,\n VerseRootPriority,\n VerseRootStatus,\n VerseSession,\n VerseWorkspace,\n VerseWorkspaceRoot,\n} from '../../data/api-types.js';\nimport { isAbsolutePath } from './verse-model.js';\n\n/** Hard cap, mirroring VERSE_MAX_WORKSPACE_ROOTS on the server. */\nexport const MAX_WORKSPACE_ROOTS = 8;\n\n/** Every root a session can reach, primary first. Mirrors `verseSessionRoots`. */\nexport function sessionRootPaths(session: Pick<VerseSession, 'projectPath' | 'extraRoots'>): string[] {\n const out = [session.projectPath];\n for (const root of session.extraRoots ?? []) {\n if (typeof root === 'string' && root.length > 0 && !out.includes(root)) out.push(root);\n }\n return out;\n}\n\n/** True when this session reaches more than its primary folder. */\nexport function isMultiRoot(session: Pick<VerseSession, 'projectPath' | 'extraRoots'>): boolean {\n return sessionRootPaths(session).length > 1;\n}\n\n/**\n * Short label for a session's folder scope: the primary's name, plus how many\n * more it carries. Used where only one line fits (a sidebar row, a pill).\n */\nexport function rootScopeLabel(\n session: Pick<VerseSession, 'projectPath' | 'extraRoots'>,\n primaryName: string,\n): string {\n const extra = sessionRootPaths(session).length - 1;\n return extra > 0 ? `${primaryName} +${extra}` : primaryName;\n}\n\n/**\n * One line of git identity for a root.\n *\n * Returns null when the root is not a repo, so the caller renders the \"not a\n * git repo\" wording ONCE rather than each caller inventing its own.\n */\nexport function rootGitLine(root: VerseRootStatus): string | null {\n if (root.git === null) return null;\n const parts = [root.git.branch];\n parts.push(root.git.dirty === 0 ? 'clean' : `${root.git.dirty} changed`);\n if (root.git.ahead > 0) parts.push(`${root.git.ahead} ahead`);\n if (root.git.behind > 0) parts.push(`${root.git.behind} behind`);\n return parts.join(' · ');\n}\n\nexport type RootTone = 'primary' | 'extra' | 'unreachable' | 'missing';\n\n/** Which visual treatment a root row gets. Missing beats unreachable. */\nexport function rootTone(root: VerseRootStatus): RootTone {\n if (!root.exists) return 'missing';\n if (!root.reachable) return 'unreachable';\n return root.primary ? 'primary' : 'extra';\n}\n\n/**\n * The plain-language caveat for one root, or null when there is nothing to\n * say. Word, never colour alone (DESIGN-V2 §6).\n */\nexport function rootCaveat(root: VerseRootStatus): string | null {\n if (!root.exists) return 'missing on disk';\n if (!root.reachable) return 'this engine cannot reach it';\n if (!root.enrolled) return 'not enrolled — autonomous lane refuses it';\n return null;\n}\n\n// ---------------------------------------------------------------------------\n// Priority\n// ---------------------------------------------------------------------------\n\nexport const ROOT_PRIORITY_LABEL: Record<VerseRootPriority, string> = {\n critical: 'Critical',\n high: 'High',\n normal: 'Normal',\n low: 'Low',\n};\n\nexport const ROOT_PRIORITY_ORDER: readonly VerseRootPriority[] =\n ['critical', 'high', 'normal', 'low'];\n\n/**\n * How a priority must be explained wherever it is offered.\n *\n * Priority orders what the autonomous lane already reaches. It is NOT a grant,\n * and the copy has to say so at the point of the choice — otherwise ranking a\n * repo `critical` reads as turning it on.\n */\nexport const ROOT_PRIORITY_NOTE =\n 'Priority orders the repositories the fleet already has. It never adds one — a repository that is not enrolled stays out of reach at every priority.';\n\n/**\n * Sort weight; lower sorts first. Mirrors `VERSE_ROOT_PRIORITY_RANK` on the\n * server so the list the operator re-ranks here and the list the autonomous\n * lane walks cannot be ordered differently.\n */\nexport const ROOT_PRIORITY_RANK: Record<VerseRootPriority, number> = {\n critical: 0,\n high: 1,\n normal: 2,\n low: 3,\n};\n\n/** A path's priority, treating an absent key as `normal` (as the server does). */\nexport function priorityOf(\n path: string,\n priorities: Readonly<Record<string, VerseRootPriority>> | undefined,\n): VerseRootPriority {\n return priorities?.[path] ?? 'normal';\n}\n\n/**\n * Paths most-important-first.\n *\n * STABLE: two paths at the same priority keep the order they were given, so\n * re-ranking one repo never silently shuffles the rest. Ordering only — this\n * neither adds nor removes a path.\n */\nexport function rankPathsByPriority(\n paths: readonly string[],\n priorities: Readonly<Record<string, VerseRootPriority>> | undefined,\n): string[] {\n return paths\n .map((path, index) => ({ path, index, rank: ROOT_PRIORITY_RANK[priorityOf(path, priorities)] }))\n .sort((a, b) => a.rank - b.rank || a.index - b.index)\n .map((entry) => entry.path);\n}\n\n// ---------------------------------------------------------------------------\n// Root-set editing (the new-chat dialog and the workspace editor share this)\n// ---------------------------------------------------------------------------\n\nexport interface RootSetValidation {\n ok: boolean;\n /** One message, or null when the set is usable. */\n error: string | null;\n /** The set as it would be sent: trimmed, de-duplicated, primary first. */\n roots: string[];\n}\n\n/**\n * Validate a root set typed by hand.\n *\n * COURTESY ONLY. The server re-checks every path against the same deny roots\n * the enrollment registry uses, and it is the authority — this cannot know the\n * real home directory behind a `~`, and it must not pretend to.\n */\nexport function validateRootSet(primary: string, extras: readonly string[]): RootSetValidation {\n const trimmedPrimary = primary.trim();\n if (trimmedPrimary.length === 0) {\n return { ok: false, error: 'Pick a primary folder.', roots: [] };\n }\n if (!isAbsolutePath(trimmedPrimary)) {\n return { ok: false, error: 'The primary folder must be an absolute path on this machine.', roots: [] };\n }\n const roots = [trimmedPrimary];\n for (const raw of extras) {\n const root = raw.trim();\n if (root.length === 0) continue;\n if (!isAbsolutePath(root)) {\n return { ok: false, error: `Not an absolute path: ${root}`, roots: [] };\n }\n if (roots.includes(root)) continue;\n roots.push(root);\n }\n if (roots.length > MAX_WORKSPACE_ROOTS) {\n return { ok: false, error: `A workspace holds at most ${MAX_WORKSPACE_ROOTS} folders.`, roots: [] };\n }\n return { ok: true, error: null, roots };\n}\n\n/** The primary root of a stored workspace (the one a session uses as its cwd). */\nexport function workspacePrimary(workspace: VerseWorkspace): string | null {\n return (workspace.roots.find((r) => r.primary) ?? workspace.roots[0])?.path ?? null;\n}\n\n/** \"service +2 folders\" — how a workspace reads in a picker. */\nexport function workspaceSummary(workspace: VerseWorkspace): string {\n const extra = workspace.roots.length - 1;\n if (extra <= 0) return '1 folder';\n return `${workspace.roots.length} folders`;\n}\n\n/**\n * A workspace's roots in SEND order: the primary first, then the rest as\n * stored.\n *\n * `VerseWorkspace.roots` is documented primary-first, but the flag is the\n * authority and an update replaces the set wholesale with \"first entry is\n * primary\". Normalising here means a reorder can never accidentally demote\n * the primary because a stored record listed it second.\n */\nexport function orderedWorkspaceRoots(workspace: VerseWorkspace): VerseWorkspaceRoot[] {\n const primary = workspace.roots.find((r) => r.primary);\n if (!primary) return [...workspace.roots];\n return [primary, ...workspace.roots.filter((r) => r !== primary)];\n}\n\n/** The same order, as the bare paths `updateVerseWorkspace` takes. */\nexport function workspaceRootPaths(workspace: VerseWorkspace): string[] {\n return orderedWorkspaceRoots(workspace).map((r) => r.path);\n}\n\n// ---------------------------------------------------------------------------\n// Which engines reach more than the primary folder\n// ---------------------------------------------------------------------------\n\n/**\n * Whether this engine's CLI takes an additional-directory flag.\n *\n * Mirrors `engineSupportsExtraRoots` in src/core/verse/workspaces.ts. Grok\n * exposes no such flag at all (checked on grok 0.2.118), so a Grok seat gets\n * its primary root and nothing else — and the UI has to SAY that at the point\n * the seat is chosen rather than let the operator discover it from a diff that\n * never applies.\n *\n * `null` (no seat picked yet) reaches everything: there is nothing to warn\n * about until a seat exists.\n */\nexport function engineReachesExtraRoots(engine: VerseEngine | null | undefined): boolean {\n if (engine === null || engine === undefined) return true;\n return engine === 'claude' || engine === 'codex' || engine === 'local';\n}\n\nexport const EXTRA_ROOTS_REACHABLE_NOTE =\n 'The agent can read and write these folders for the life of this chat. Enrolment is separate — an unenrolled folder stays out of reach of the autonomous lane.';\n\nexport const EXTRA_ROOTS_UNREACHABLE_NOTE =\n 'This seat’s CLI takes no additional-directory flag, so it will reach only the primary folder. The other folders will be unreachable — pick a Claude, Codex or local seat to use more than one.';\n\n/**\n * The caveat for handing `rootCount` folders to a seat, or null when there is\n * nothing to warn about. Only ever the BAD news, so a caller can render it as\n * a warning without having to decide which sentence it got.\n */\nexport function extraRootsCaveat(\n engine: VerseEngine | null | undefined,\n rootCount: number,\n): string | null {\n if (rootCount <= 1) return null;\n return engineReachesExtraRoots(engine) ? null : EXTRA_ROOTS_UNREACHABLE_NOTE;\n}\n\n/** The full note for a multi-folder set: the caveat when there is one, the\n * enrolment reminder otherwise. Null when only one folder is in play. */\nexport function extraRootsNote(\n engine: VerseEngine | null | undefined,\n rootCount: number,\n): string | null {\n if (rootCount <= 1) return null;\n return extraRootsCaveat(engine, rootCount) ?? EXTRA_ROOTS_REACHABLE_NOTE;\n}\n\n/** Said once wherever a multi-folder project is DEFINED, where no seat is\n * chosen yet and so no per-seat caveat can be given. */\nexport const MULTI_ROOT_ENGINE_NOTE =\n 'Claude, Codex and local seats reach every folder here. A Grok seat reaches only the primary one.';\n\n// ---------------------------------------------------------------------------\n// Saved projects (the create/edit form behind the workspace routes)\n// ---------------------------------------------------------------------------\n\n/** The folder's own name, used when the operator names nothing. */\nexport function defaultWorkspaceName(primaryPath: string): string {\n const trimmed = primaryPath.trim().replace(/[/\\\\]+$/, '');\n const base = trimmed.split(/[/\\\\]/).pop() ?? '';\n return base.length > 0 ? base : trimmed;\n}\n\nexport interface WorkspaceDraftValidation {\n ok: boolean;\n /** One message, or null when the draft is sendable. */\n error: string | null;\n /** The name as it would be sent — never empty when `ok`. */\n name: string;\n /** Trimmed, de-duplicated, primary first. */\n roots: string[];\n}\n\n/**\n * Validate a saved project before it is sent.\n *\n * COURTESY ONLY, exactly like `validateRootSet`: the server re-checks every\n * path against the enrollment registry's deny roots and is the authority.\n */\nexport function validateWorkspaceDraft(\n name: string,\n roots: readonly string[],\n): WorkspaceDraftValidation {\n const [primary = '', ...extras] = roots;\n const set = validateRootSet(primary, extras);\n if (!set.ok) return { ok: false, error: set.error, name: '', roots: [] };\n const trimmed = name.trim();\n const resolved = trimmed.length > 0 ? trimmed : defaultWorkspaceName(set.roots[0]!);\n if (resolved.length === 0) {\n return { ok: false, error: 'Give this project a name.', name: '', roots: [] };\n }\n return { ok: true, error: null, name: resolved, roots: set.roots };\n}\n\n/**\n * Move one entry up or down by one place.\n *\n * Returns a NEW array, and returns the order unchanged when the move would\n * fall off either end — so a caller can wire it to a button that is disabled\n * at the ends without the two disagreeing.\n */\nexport function moveRoot<T>(roots: readonly T[], index: number, direction: 'up' | 'down'): T[] {\n const next = [...roots];\n const target = direction === 'up' ? index - 1 : index + 1;\n if (index < 0 || index >= next.length || target < 0 || target >= next.length) return next;\n const moved = next[index]!;\n next[index] = next[target]!;\n next[target] = moved;\n return next;\n}\n\n/**\n * How the first row must be described. The first root IS the primary — it is\n * the session's cwd and the only folder a Grok seat reaches — so the reorder\n * control is not cosmetic and the label has to say what it does.\n */\nexport function rootRowLabel(index: number): string {\n return index === 0 ? 'Primary folder' : `Folder ${index + 1}`;\n}\n"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta name="color-scheme" content="light dark" />
|
|
7
7
|
<title>Ashlrverse — operator console</title>
|
|
8
8
|
<meta name="referrer" content="no-referrer" />
|
|
9
|
-
<script type="module" crossorigin src="/next/assets/index-
|
|
9
|
+
<script type="module" crossorigin src="/next/assets/index-oAAq8XJa.js"></script>
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
12
12
|
<div id="root"></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"algorithm":"sha256","assurance":"packaged-build-byte-observation","inventoryDigest":"ba22ebe0f715b641be2fc18c5247fa0bd67e3bff5d613701d25ce3ea6ef4c008","package":{"manifestSha256":"534253ad468f4a0f5e4c69bfa641864c1e32e9488ad75077831effd5b8cc78ea","name":"@ashlr/hub","version":"3.10.0"},"packages":[{"archiveModeSha256":"e593537ea027a53342e9c95325f3823e507298732511cd61c314537000cb008c","contentSha256":"39703185cd013059db3eb5ac351625fa9dfd1eef0509fb47ff04fcc0a4cec6f5","fileCount":25,"name":"@hono/node-server","path":"@hono/node-server","size":120353,"version":"2.0.12"},{"archiveModeSha256":"f331e808f8ff6d9d2e9cbf1ad1bc05f35c36b7ac1489084d24460c345a354819","contentSha256":"ef4367c4587f87b13b688ecafe7010c2764623bfbf1f386a1943d7392f545551","fileCount":13,"name":"@isaacs/fs-minipass","path":"@isaacs/fs-minipass","size":100617,"version":"4.0.1"},{"archiveModeSha256":"212ef6ab48b10cfc61481fdb4d517d5aefa8a9e78f321c9483e13f8f0854aade","contentSha256":"54ecfe6624026e35139d2f943de8626043145c82c1d6580882a4adf4ee6b3c90","fileCount":693,"name":"@modelcontextprotocol/sdk","path":"@modelcontextprotocol/sdk","size":4322438,"version":"1.30.0"},{"archiveModeSha256":"30bd56bd2c26086e14f1b0c58123fc916fea96c6c86f7bd8e7e2fba1526cb30f","contentSha256":"78052c66ba1f5f3d3310d2685ee84af5b060c6960c06eba5cb1d08da860019ff","fileCount":466,"name":"ajv","path":"@modelcontextprotocol/sdk/node_modules/ajv","size":1033496,"version":"8.20.0"},{"archiveModeSha256":"0e9ff2b53d7e42a61c51248833683dfc6b09c9726c3f0c50663af0a6b6f83fea","contentSha256":"18bc9ecab93292b6f357a0bef6b26e39e8d7b14c46fb9b1adc8a0826f7ad419b","fileCount":12,"name":"json-schema-traverse","path":"@modelcontextprotocol/sdk/node_modules/json-schema-traverse","size":22220,"version":"1.0.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"93bc4d919570486c9dac1184c65d89802a5d7e5e51d2ad2c9c79e9229b0d2bfd","fileCount":5,"name":"accepts","path":"accepts","size":16917,"version":"2.0.0"},{"archiveModeSha256":"338fe03444b2468ffb84fa0a62e4ad26985fbe9063f5b6500fc00baab52687a7","contentSha256":"a570e5cd740441f9e2ad9e20aab09d6ff5f01c54b5ca63889fb9cc65aa22ed38","fileCount":15,"name":"ajv-formats","path":"ajv-formats","size":56763,"version":"3.0.1"},{"archiveModeSha256":"30bd56bd2c26086e14f1b0c58123fc916fea96c6c86f7bd8e7e2fba1526cb30f","contentSha256":"78052c66ba1f5f3d3310d2685ee84af5b060c6960c06eba5cb1d08da860019ff","fileCount":466,"name":"ajv","path":"ajv-formats/node_modules/ajv","size":1033496,"version":"8.20.0"},{"archiveModeSha256":"0e9ff2b53d7e42a61c51248833683dfc6b09c9726c3f0c50663af0a6b6f83fea","contentSha256":"18bc9ecab93292b6f357a0bef6b26e39e8d7b14c46fb9b1adc8a0826f7ad419b","fileCount":12,"name":"json-schema-traverse","path":"ajv-formats/node_modules/json-schema-traverse","size":22220,"version":"1.0.0"},{"archiveModeSha256":"99258e0ccfd899459bc7f95949a5bec9039234f80f0a96cfbf7de4cfd9deaad9","contentSha256":"e6f71097d1bf22309cc2010ba116320dbe0b37b53af324631969ccef03817448","fileCount":10,"name":"body-parser","path":"body-parser","size":42536,"version":"2.3.0"},{"archiveModeSha256":"b06c6eaf0b12f13ca2978123c3bc1ee1a6f8bacabea1533868e34accee2145ec","contentSha256":"a90e26ff6b282c4ec28742358f45cffa2a4736aceb4abc7cb558bd6fc740f73b","fileCount":6,"name":"content-type","path":"body-parser/node_modules/content-type","size":20751,"version":"2.0.0"},{"archiveModeSha256":"51df0d122ab1b5f510d0a80e73a4d33fcb1ab44cf00e903f505c384be80528c8","contentSha256":"048d4140095d01f76e5d5a576d5a10de4e1cebcc64cab6ea49f14afc54939be6","fileCount":5,"name":"bytes","path":"bytes","size":12270,"version":"3.1.2"},{"archiveModeSha256":"df415aae8a21af7234f013c4d934c5074b07e617f6189084a43c78a49bafcb78","contentSha256":"870b383c07315fef9619399c2450297d079b1398583984a5ccb9cd2b1005cb59","fileCount":21,"name":"call-bind-apply-helpers","path":"call-bind-apply-helpers","size":15952,"version":"1.0.2"},{"archiveModeSha256":"fd4de57fefcfd077cce1a9e57bd1b208bf59a7da3ae9f25a7e787ab17b10490f","contentSha256":"01be39d7156b173ffe2869dcd589e2080dcf2f1bcbcfa2f20409582ccb21cfaf","fileCount":11,"name":"call-bound","path":"call-bound","size":17106,"version":"1.0.4"},{"archiveModeSha256":"155b84d16e5a3094314970a26a6b1a157604be8a208c32a0562ce579ec994c2c","contentSha256":"e1ec1eb1cc0367f01e1e8a9a8366d040942612a277ba4034707a130d6d70a0ce","fileCount":13,"name":"chownr","path":"chownr","size":22048,"version":"3.0.0"},{"archiveModeSha256":"9838afc4a08f6acf39bb46bba0c8cb523556b2fc61d2958c7bdcb1ae66ca13dd","contentSha256":"4f967d79760cd06bcfdbf918d30b3a77752d03e6e76582aeac4b3a81dcd6a6a9","fileCount":4,"name":"content-disposition","path":"content-disposition","size":19928,"version":"1.1.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"1ad93015c6082464b41e63397fc9ee739d6bb7cb93755c9fbef749cff39b8675","fileCount":5,"name":"content-type","path":"content-type","size":10471,"version":"1.0.5"},{"archiveModeSha256":"2048aee59eb971a928e2fcac3881a222b2c9140ec980dfd14756de04a3885902","contentSha256":"ca8dd7ddd6a3970df6e3efff74247cd6f985dfdcc596ac0f58cd50c5b88555e8","fileCount":5,"name":"cookie","path":"cookie","size":23382,"version":"0.7.2"},{"archiveModeSha256":"51df0d122ab1b5f510d0a80e73a4d33fcb1ab44cf00e903f505c384be80528c8","contentSha256":"360601ff3d56cfdb8de7d836940caa5d74a437474129017697aab4696fc84e03","fileCount":5,"name":"cookie-signature","path":"cookie-signature","size":4993,"version":"1.2.2"},{"archiveModeSha256":"3bf3b01496f9ce98ec5c58c595c317975f470de6da6599d5d405c60c294f12c6","contentSha256":"9a628bd867c40f8bd4753d84f5f364a5ce92fcdd73fb164977d566275580786e","fileCount":4,"name":"cors","path":"cors","size":19956,"version":"2.8.6"},{"archiveModeSha256":"0c4b2570bd695c455ca6e9f67aaabdf88b1d486e39e9e52f4b8cc0c595e08f33","contentSha256":"9666a5f3074e7ff71dab89ccc0fecd79699b6c68e85087cc3416e9b220e9369e","fileCount":9,"name":"cross-spawn","path":"cross-spawn","size":16094,"version":"7.0.6"},{"archiveModeSha256":"fd7ec5fdf7ea41f349416d375406faf41b35702e2e23f02d2c015acb72adc8f2","contentSha256":"e9f41fdd4e55dc936295270bdb7c994d9ad85dd2bd6f2fb3d46767a16ee1a03e","fileCount":7,"name":"debug","path":"debug","size":42793,"version":"4.4.3"},{"archiveModeSha256":"bb32a6d3c5b9088943cd629938024c4c8d207814db8194313063fe3844cbbc8c","contentSha256":"cfc74892a99b215bdc61d9817f90b235318267ddbf8a29ef52b2906d8b26e980","fileCount":6,"name":"depd","path":"depd","size":27117,"version":"2.0.0"},{"archiveModeSha256":"305af32d2ba2d5fe89c9acaa17537f1a06e7e131bf81112cb11d623fdbb9c6f1","contentSha256":"5c4728d83554a1fc2fd51c01cf2d30bb89adbe1c6469a52201eed72b68af0f91","fileCount":15,"name":"dunder-proto","path":"dunder-proto","size":13003,"version":"1.0.1"},{"archiveModeSha256":"9838afc4a08f6acf39bb46bba0c8cb523556b2fc61d2958c7bdcb1ae66ca13dd","contentSha256":"bae9f4988b2d279e16b4bb3e5527647300137f2978aef97f40acd1b453a8d5a7","fileCount":4,"name":"ee-first","path":"ee-first","size":6259,"version":"1.1.1"},{"archiveModeSha256":"9838afc4a08f6acf39bb46bba0c8cb523556b2fc61d2958c7bdcb1ae66ca13dd","contentSha256":"1c50e3d3cd38c66e1e462f0004781f789e59959aec798aef31f9a2f049d216e5","fileCount":4,"name":"encodeurl","path":"encodeurl","size":6980,"version":"2.0.0"},{"archiveModeSha256":"fd4de57fefcfd077cce1a9e57bd1b208bf59a7da3ae9f25a7e787ab17b10490f","contentSha256":"a2dd73d6e2d58eda48469112f2eacae1fec583f84f72643b3593c6092bd3e877","fileCount":11,"name":"es-define-property","path":"es-define-property","size":10217,"version":"1.0.1"},{"archiveModeSha256":"23a440c46333c31a4ae0a1ffdc2ec6db818da1c36a039abc189b118e1bcdc625","contentSha256":"fd08a46013bf09d90a2240c6a8a97f12ff7106507456c73e7db53f608b41214e","fileCount":22,"name":"es-errors","path":"es-errors","size":12324,"version":"1.3.0"},{"archiveModeSha256":"b6b95f08bcc5f254eddbff61393e6efa09637b9fe2996a163d3c2c71c28bb681","contentSha256":"893e26d760872fd0c233391eff242a717320d6b2d6ab004ad827d1dd6c517ea5","fileCount":16,"name":"es-object-atoms","path":"es-object-atoms","size":11967,"version":"1.1.2"},{"archiveModeSha256":"764d64b5de2e2faa2387d92a5ed5dcbc1822797787a67ee46e827d4d353a2cb5","contentSha256":"27b564cee7701979ecc9ba3ad9b57c4eb185ddfe14f6fbef7961b9d95fc51789","fileCount":4,"name":"escape-html","path":"escape-html","size":3660,"version":"1.0.3"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"53b09a946276069cc9e202851404809b0b27f9616f6398ba1ba053cf27a9b61f","fileCount":5,"name":"etag","path":"etag","size":10809,"version":"1.8.1"},{"archiveModeSha256":"15cc21147f13500c581198be8a82187d7d2cd38a2c23b9459c89f22990a5b971","contentSha256":"fda71ef638beebe2ebae12fe705f63cb2276d6b35564064714ad352727e6f0a9","fileCount":13,"name":"eventsource","path":"eventsource","size":147304,"version":"3.0.7"},{"archiveModeSha256":"57e54f8cb946a2072d2c928cce29ff71a0383916edbb50e97042f859f043677f","contentSha256":"57456c2bbbfd8965c4466cf8a120581c6de9c67c1e04bf815189370f5f76ec3f","fileCount":21,"name":"eventsource-parser","path":"eventsource-parser","size":123218,"version":"3.1.0"},{"archiveModeSha256":"e882878862f5bfd4ff0cb5120df0b9e29758544fabad522563cc91a5102513a0","contentSha256":"c4cccb2f6077128bc31e51f7f772663988796261352298821eea234de1f42281","fileCount":10,"name":"express","path":"express","size":75429,"version":"5.2.1"},{"archiveModeSha256":"0f783761dfb7c14c80535b5a3d2f282398f8621985ed04be794ef3144740784e","contentSha256":"332479fcc3eaa25713fa7df0d4e3a953b7a008fde6413d4278aa667d7e4473e1","fileCount":9,"name":"express-rate-limit","path":"express-rate-limit","size":146332,"version":"8.5.2"},{"archiveModeSha256":"78e09d25ac30efc25d5604344654f3158820dbd9d45a1900b9f44e0e500839cf","contentSha256":"5ca43c0737026213eee30eb17e40859c918af2ae30f16d3882fdfbd8bcb03afd","fileCount":11,"name":"fast-deep-equal","path":"fast-deep-equal","size":12966,"version":"3.1.3"},{"archiveModeSha256":"f75ddef45cc69b6bfbcad49bde00345a7e27f27d03cd67d1083d2a334122fc1a","contentSha256":"36e796ba92bcc878b9b3c6b939c0aa1dba25e4c2ed8609f0ed748aa17c80347e","fileCount":44,"name":"fast-uri","path":"fast-uri","size":215561,"version":"3.1.6"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"a184198d4d20e0177fd4f9e5d82bc40d34143c3a8279e7200511905b08e91d1a","fileCount":5,"name":"finalhandler","path":"finalhandler","size":18111,"version":"2.1.1"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"5a3882ea4acfd16ac4851f43587d6ab87fd08de45665981db6e8ee5944486118","fileCount":5,"name":"forwarded","path":"forwarded","size":5876,"version":"0.2.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"c3d3cc5e56026a726c20ed1d516509608bddb667d5cc999f01cd3971a92e4406","fileCount":5,"name":"fresh","path":"fresh","size":10289,"version":"2.0.0"},{"archiveModeSha256":"6f10ab8235c8a46f648cd17681016bf68595208a48d01f1351bd0b19bcb4301c","contentSha256":"8afcdc5f094efcac14509859ce70157ec7daff89642bc5d604b235f6917dd5b0","fileCount":12,"name":"function-bind","path":"function-bind","size":31427,"version":"1.1.2"},{"archiveModeSha256":"2d4c82c10091157e0f33c6a4a049ef4b2609c8f2a6d70882fa538122b54c1ce3","contentSha256":"1b862b6fe457cd272bb8bce8407ac7f972c857ac317189afe7a29ba378f0f6ac","fileCount":9,"name":"get-intrinsic","path":"get-intrinsic","size":46542,"version":"1.3.0"},{"archiveModeSha256":"995b5a61ce2e3cb963405de061067b699b48e90eb6ce2ac0d88e88bd9c38549a","contentSha256":"3dc759afa7e26cd60cc642b39bffcbd22dd574469e4ac2174cc9b57b97599f82","fileCount":15,"name":"get-proto","path":"get-proto","size":10840,"version":"1.0.1"},{"archiveModeSha256":"169ecf4d0c444e719e5bcd4e912e3ceb193138b5ab7eef8f727798759a4331d3","contentSha256":"6f2eeeb1483b34581df01b15d1b80b2b45be2c7ce06496c72a90351194858738","fileCount":12,"name":"gopd","path":"gopd","size":9869,"version":"1.2.0"},{"archiveModeSha256":"2f2262ae382d511cef7d373ff151a1a662ae623e50cb17d3a920d9e87593011d","contentSha256":"617f42cde01c4ca5a0bdab28f544a70e5f52c8707daad05016cb789193ba0554","fileCount":16,"name":"has-symbols","path":"has-symbols","size":23409,"version":"1.1.0"},{"archiveModeSha256":"35386dc8ee83de6dc1f61324623e1d9907205a1bd2fa66b02bc7c0429bdf85cc","contentSha256":"e6b281a2b3f6100d9b44f0916c797da53c254e8a38cb357134e80eddf5181a48","fileCount":10,"name":"hasown","path":"hasown","size":10332,"version":"2.0.4"},{"archiveModeSha256":"6c607d433127ab8aa7eae155e5777360167dc436457ed7fbfe66ff391f0988fa","contentSha256":"ab285a621121201b7aed9fa2a4447836246643db498bf1a4b71888d5fce36f83","fileCount":568,"name":"hono","path":"hono","size":1386244,"version":"4.13.5"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"b34d2d8fdbf41450767591b746eb2adaa4a22b59aa55c94ef0ce65ff1ba6fe6d","fileCount":5,"name":"http-errors","path":"http-errors","size":19064,"version":"2.0.1"},{"archiveModeSha256":"086f9d977a09c672ced4c2d703944875d8db454fe8fdd7fe8882f0888ed7c20f","contentSha256":"762b205b641d142557d0b3fb5d376d571e7823473661004f6cb319b7c0603976","fileCount":27,"name":"iconv-lite","path":"iconv-lite","size":343635,"version":"0.7.2"},{"archiveModeSha256":"7b3e1bd04c00f38ad3e4f4fb20e65a4eeb707527b4fd7c84ea7764cef9cebdff","contentSha256":"7c50865fdccbf6c6b44600a997d13c0c5c215ded131f0a4c98acd8d15694e632","fileCount":5,"name":"inherits","path":"inherits","size":3958,"version":"2.0.4"},{"archiveModeSha256":"3ef444401f83c959cfda73e7e9fd50d0796f6f141f36f458a3f132b362e6c375","contentSha256":"0e8533c4762708d8f61d9a21b3fa5f10d7f4907a36609490e71edaadb1186c1e","fileCount":30,"name":"ip-address","path":"ip-address","size":299533,"version":"10.4.0"},{"archiveModeSha256":"a710aacb72996fbfa6d514e678b50cfe4d17619a71648b516a3a09a96479c2c8","contentSha256":"272599141de35d28a1e92b1aec64154c866998a44310163040e6499b6ec1d9c3","fileCount":6,"name":"ipaddr.js","path":"ipaddr.js","size":42145,"version":"1.9.1"},{"archiveModeSha256":"969b492deb1f22a61f85cf9f98cc0f7c1984c3c0fd162d3ba5a600f0f6181ed8","contentSha256":"31aa30a6fbd5f134714c0ae7bc1e4c7a00b1c5bfabd2931e92618a4121bd6fa8","fileCount":6,"name":"is-promise","path":"is-promise","size":2958,"version":"4.0.0"},{"archiveModeSha256":"8f22f331a576ff070646bb75a80918007ff2b93be80520594930dd04865a6e44","contentSha256":"a560d4935c162172bd5feede21bc62536cec616c166de516cd5c367a7ca23f98","fileCount":8,"name":"isexe","path":"isexe","size":10956,"version":"2.0.0"},{"archiveModeSha256":"ec3d3c0b513b0905f208bc029bc355c1cf7038f95e2e7b1e2d19ddac26e374ea","contentSha256":"e3633b6af5ec16f6448989dd91dad2798a190e52e7a3d16d90ceca23d52c5b35","fileCount":88,"name":"jose","path":"jose","size":257736,"version":"6.2.3"},{"archiveModeSha256":"bdba5b2b7f19b131522a9af3d6cd30db94ee97690d535e5c3c84d1bce068c2a9","contentSha256":"efcb8d289875749e930bf8f745c132edf832c0f9a25768fcd97e129851288174","fileCount":9,"name":"json-schema-typed","path":"json-schema-typed","size":197188,"version":"8.0.2"},{"archiveModeSha256":"3353a1cbd727174e11aa6b1a8b1163caeb467c3ac3cad2ddb7d4c230da64bdd8","contentSha256":"251a6d99cfc3364a8732128487bbd422d3964f990fe1755b0b78046b65328731","fileCount":12,"name":"marked","path":"marked","size":469664,"version":"18.0.10"},{"archiveModeSha256":"74a40513091b687e690f49f4110e314302d0b8b3c9f196cf587c9d702c4cd7e9","contentSha256":"a4884adbf4399adaff50d30983c4afa402a1d15b56a371824ea5c7c7cab385fa","fileCount":38,"name":"math-intrinsics","path":"math-intrinsics","size":17323,"version":"1.1.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"1ec2d844bc07543d41a6ab6d78008dd2998877609cc16ba532204995fb4339c5","fileCount":5,"name":"media-typer","path":"media-typer","size":9256,"version":"1.1.0"},{"archiveModeSha256":"320af631be54ba1ce035560718a037511184c1d85329f83345fbe80f2527e8c9","contentSha256":"983f0d7028b74df8828007fabcab26e7f36e42fc7db74e321a110f6f40aa3fa7","fileCount":5,"name":"merge-descriptors","path":"merge-descriptors","size":4373,"version":"2.0.0"},{"archiveModeSha256":"2cb256014f7e1eda905b4809694ab3b06e8c1f1c5b78cb4de5da514e4e57659a","contentSha256":"c979d86230ca6688633d5ef7c89397f312c6d556a1964cb8dfe33596b8b548b9","fileCount":6,"name":"mime-db","path":"mime-db","size":225566,"version":"1.54.0"},{"archiveModeSha256":"20c4497e7b68189571962123cabb12dc852bb2346c45deed91c081c899659249","contentSha256":"28ee29177b736969ce0a555c11ae5275280510007a2670dcdd7ea6b1868f46c3","fileCount":6,"name":"mime-types","path":"mime-types","size":22871,"version":"3.0.2"},{"archiveModeSha256":"155b84d16e5a3094314970a26a6b1a157604be8a208c32a0562ce579ec994c2c","contentSha256":"46d898fe1f0594d49333d4bc32bce63349d6f124c78dfc3eda96c9f9b2f796fe","fileCount":13,"name":"minipass","path":"minipass","size":366791,"version":"7.1.3"},{"archiveModeSha256":"78b1977130401dbbba561837630370f3061275bb5a1963454b5f092e3cf208fe","contentSha256":"19c7cff62b036e6f0aad440e776cc94134bb6434c0c96939de864df88e2b0f21","fileCount":21,"name":"minizlib","path":"minizlib","size":117811,"version":"3.1.0"},{"archiveModeSha256":"20014b85b0431588ccd9c0e6c6afeffc10e21d0ee7de53e2ba2296fd52bb1a7c","contentSha256":"667f3d7d170cb303a69e67dc3a69a08255a3e5cfb8703f4904417b0362bc0d28","fileCount":4,"name":"ms","path":"ms","size":6721,"version":"2.1.3"},{"archiveModeSha256":"5602cdc50f925bdc25002fe3756f55c3e1117229d22c2b2c600e8ffca90295f6","contentSha256":"84851509ca06e7b5b721720762592fa23f696ba1d72172dbc1e692c1dfa7b567","fileCount":9,"name":"negotiator","path":"negotiator","size":28710,"version":"1.0.0"},{"archiveModeSha256":"99458992876825b1bc4dca80d075db820436a88fcf71baefbc25db39f52760e9","contentSha256":"501ecc61ad148476eb5316bad6418e95bb6ed9bfc794c23fcec15bc2c592ccf1","fileCount":4,"name":"object-assign","path":"object-assign","size":5493,"version":"4.1.1"},{"archiveModeSha256":"e3c2f2fe74f79d600564d5d6af9a6bd278aee46db5e0ec18493cdc9d895e0bbf","contentSha256":"7d76d46a138318bcabde842b6a8b994da11a2e3d2e8ecbc0f8780f50e17f2ca8","fileCount":34,"name":"object-inspect","path":"object-inspect","size":102920,"version":"1.13.4"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"ffb31d328870b95d8218c54f26f73d6e122847c7289052f57bf1569b0027593b","fileCount":5,"name":"on-finished","path":"on-finished","size":13679,"version":"2.4.1"},{"archiveModeSha256":"71f44c60c38bc2c3e17382504bf0dae39045eeec535cf6f4e1283e0514e8c2f4","contentSha256":"dc238bfc47820f9fb5bb56f1f3aae901657074482f52f91545784f041efb0210","fileCount":4,"name":"once","path":"once","size":4046,"version":"1.4.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"ca67e36d858cdb2f3a4eefd00d0bf7284143c1241b9ad06feec17799fc587638","fileCount":5,"name":"parseurl","path":"parseurl","size":10299,"version":"1.3.3"},{"archiveModeSha256":"320af631be54ba1ce035560718a037511184c1d85329f83345fbe80f2527e8c9","contentSha256":"a3945cbf1aaf19b6dba601c948b6522566517f9b9f4181c964d5a0d8ee34270e","fileCount":5,"name":"path-key","path":"path-key","size":4553,"version":"3.1.1"},{"archiveModeSha256":"1514e7595cbbb9d1902c24ce60454e544df780b8fc73b7967218c3491dd3cefb","contentSha256":"17d110a00db54cd903aba2283f1d027f5acfbf7ce0003590c3abeb6059b5d221","fileCount":6,"name":"path-to-regexp","path":"path-to-regexp","size":59680,"version":"8.4.2"},{"archiveModeSha256":"f0a8527de334749bd26e70302ee03517ec50ff590e93cb3ea9a45ce4124a3829","contentSha256":"d5a9fd4846acac4b5ce086c88eca29de645c535aeee06df4a99a69cf4317e397","fileCount":10,"name":"pkce-challenge","path":"pkce-challenge","size":18211,"version":"5.0.1"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"d05e2db9e9d803ea440dd46461d51f482ed09978f2688eeda51a5711f1f41320","fileCount":5,"name":"proxy-addr","path":"proxy-addr","size":15399,"version":"2.0.7"},{"archiveModeSha256":"5ab250cd90dfced7c9429dd43d78846951b7b961947594e9f5175faee4c88a56","contentSha256":"fc8bdb9e912132fa5d83b22283d4f7f816f2e24a36761387e13cd942024186c1","fileCount":20,"name":"qs","path":"qs","size":374851,"version":"6.16.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"d12cb812790fa7b85393df185775b6c9ad8d05fd313f2b31cfb817d6296b1888","fileCount":5,"name":"range-parser","path":"range-parser","size":8457,"version":"1.2.1"},{"archiveModeSha256":"42cc208595e23f148383e3b4292ce5922102522b8bfd5f77417b06d1306d7aa1","contentSha256":"8f8dedbaf8d48e5de26e87910168aa505b7403e4c7739edc953cf5b25240839c","fileCount":5,"name":"raw-body","path":"raw-body","size":18495,"version":"3.0.2"},{"archiveModeSha256":"99458992876825b1bc4dca80d075db820436a88fcf71baefbc25db39f52760e9","contentSha256":"4d281fcce32339c1f532a6e128db448b5d4c02ff371243a5c5696b40c86d3680","fileCount":4,"name":"require-from-string","path":"require-from-string","size":3422,"version":"2.0.2"},{"archiveModeSha256":"e09f32c46d1a5885aae361e487ce603fd60a9fbff1d5dcaab0f6236f971a9837","contentSha256":"99b97f87c5ffc0951428a30eea4a95cbe83f9a70122dbcc8a4b2e7634f8e8dcd","fileCount":7,"name":"router","path":"router","size":46851,"version":"2.2.0"},{"archiveModeSha256":"a462b8a4b54a0e6b8dcfc3d87612450f34478e7dc5845d4b16f239a578821a2c","contentSha256":"e075173c0c6569f0b806c5802462e19b25ed330b11040151ca5e0d8ea9e276d1","fileCount":7,"name":"safer-buffer","path":"safer-buffer","size":42299,"version":"2.1.2"},{"archiveModeSha256":"9838afc4a08f6acf39bb46bba0c8cb523556b2fc61d2958c7bdcb1ae66ca13dd","contentSha256":"3a396c8597fbbc013b13e4cf5dd7f05f798ee9809ad21d3966616d4f50964f02","fileCount":4,"name":"send","path":"send","size":32200,"version":"1.2.1"},{"archiveModeSha256":"9838afc4a08f6acf39bb46bba0c8cb523556b2fc61d2958c7bdcb1ae66ca13dd","contentSha256":"1724d9fc1a50078597419e4a1014f0d179522a46ed0e2a3a94b71f2f78575513","fileCount":4,"name":"serve-static","path":"serve-static","size":14335,"version":"2.2.1"},{"archiveModeSha256":"e1fd687bea7843794dae9ff84fa5a22ca00f6bea6583da85ed3e27d3d8444230","contentSha256":"db27148aba2fa1340dc867179dbccee745a7311c870a68bee4cea1e3fe2f3f8a","fileCount":6,"name":"setprototypeof","path":"setprototypeof","size":4025,"version":"1.2.0"},{"archiveModeSha256":"99458992876825b1bc4dca80d075db820436a88fcf71baefbc25db39f52760e9","contentSha256":"6754ac701a5f6a41aface06678b945984b2c4088d9c81a9beae10d2f236ebbad","fileCount":4,"name":"shebang-command","path":"shebang-command","size":2556,"version":"2.0.0"},{"archiveModeSha256":"320af631be54ba1ce035560718a037511184c1d85329f83345fbe80f2527e8c9","contentSha256":"a793c341e7bf38ef241be3075c0420da5b2c2df9c71b3aa64f16e8d80751acac","fileCount":5,"name":"shebang-regex","path":"shebang-regex","size":2828,"version":"3.0.0"},{"archiveModeSha256":"0e4409f8c28db8f2663ca9ff448e6029ee7e54e7d9d11f23f416dd0b83289589","contentSha256":"28e3e44b391a232fea118591ef73556f7f3bd207d35a4fa6c2d8b04bf11be322","fileCount":12,"name":"side-channel","path":"side-channel","size":22864,"version":"1.1.1"},{"archiveModeSha256":"d7170194465bf2624edfb7844fea886827d0f714bb09d49567d5c7a1c3ce78c0","contentSha256":"6959587507edce3ca38987daa64c966a2f802e6ef85b8c9f96e36b51b7d63752","fileCount":13,"name":"side-channel-list","path":"side-channel-list","size":16973,"version":"1.0.1"},{"archiveModeSha256":"0e4409f8c28db8f2663ca9ff448e6029ee7e54e7d9d11f23f416dd0b83289589","contentSha256":"c69ec67d49924576f5b78d598fe950d7a9464c1c61ad256cbebcda7641e1630a","fileCount":12,"name":"side-channel-map","path":"side-channel-map","size":13348,"version":"1.0.1"},{"archiveModeSha256":"0e4409f8c28db8f2663ca9ff448e6029ee7e54e7d9d11f23f416dd0b83289589","contentSha256":"3f830eae8141c06d7395d4c9ae072ae767e98aace4720762ebded0ae32fca96c","fileCount":12,"name":"side-channel-weakmap","path":"side-channel-weakmap","size":14667,"version":"1.0.2"},{"archiveModeSha256":"c0228c165b333628d8971a1ebdeb334786829db2fa1c9cb6ba374a9214cd4d11","contentSha256":"0b9e6a3e2e50328afbb9254550c688707172bd481eb1084c02af1456aa803249","fileCount":6,"name":"statuses","path":"statuses","size":12505,"version":"2.0.2"},{"archiveModeSha256":"fbfe9587c1875404cd616f4b49a10531431b12aed0b44210e21f3459beb3eacd","contentSha256":"6d854be5694f54f83a7cec190bcd141318a1c8a78df8b42ab64fbae2c5dc4518","fileCount":249,"name":"tar","path":"tar","size":2298662,"version":"7.5.22"},{"archiveModeSha256":"155b84d16e5a3094314970a26a6b1a157604be8a208c32a0562ce579ec994c2c","contentSha256":"7db31cac4d54315057535dd080e4423ab16e09e9161e8b83191c58e2a90f7ea5","fileCount":13,"name":"yallist","path":"tar/node_modules/yallist","size":80297,"version":"5.0.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"0c7b3b8db791f787793c0968ec6f6b9dc48d14783c4c34ada0e0475eb3c011d4","fileCount":5,"name":"toidentifier","path":"toidentifier","size":4685,"version":"1.0.1"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"79ce0363e01b714db55735699052b2534d0f6ef84d785b137323647cf779657a","fileCount":5,"name":"type-is","path":"type-is","size":21269,"version":"2.1.0"},{"archiveModeSha256":"b06c6eaf0b12f13ca2978123c3bc1ee1a6f8bacabea1533868e34accee2145ec","contentSha256":"a90e26ff6b282c4ec28742358f45cffa2a4736aceb4abc7cb558bd6fc740f73b","fileCount":6,"name":"content-type","path":"type-is/node_modules/content-type","size":20751,"version":"2.0.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"99534b97972283845db4ef41d39156d6720030a2307f2f0649a7f1c8fabf68c6","fileCount":5,"name":"unpipe","path":"unpipe","size":4311,"version":"1.0.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"880e12feeb6220ce4cdb0bd7f19ddb9d693666a77059502e9d667e06b3e04ce8","fileCount":5,"name":"vary","path":"vary","size":8747,"version":"1.1.2"},{"archiveModeSha256":"8fc892f4d8b9a44a1bfc252b556ebb01d424366ec71fb56f8b0fc2b81bbb5897","contentSha256":"dbe8a52a4c488ed54e7b60f93f89947ff828f9786a804b40a049152c35a47132","fileCount":5,"name":"which","path":"which","size":7308,"version":"2.0.2"},{"archiveModeSha256":"4b84777e08ccbe4ad45474b4248dc37be2c73b6467d369958cc06ca38507a13f","contentSha256":"4f5c30f228b020aca343e88dc0b15af855173a168663e687afd72c58cf586b99","fileCount":4,"name":"wrappy","path":"wrappy","size":2961,"version":"1.0.2"},{"archiveModeSha256":"b98a45815677c477e01457344c56184f50841e90f1f78c98f47d4f631140c4f3","contentSha256":"eaed4b517e605755ecde1e008133c5418c238657a3236735a1053f00b4a7e58b","fileCount":718,"name":"zod","path":"zod","size":4558122,"version":"4.4.3"},{"archiveModeSha256":"224107ce4653d3b406ca40837a05712425b14ff999773673d516eb31d8e9a34d","contentSha256":"d45857bb67c09b95d65c081b1afc095fcfd8d3e8d8bc3b57f645a1f369b1ea04","fileCount":130,"name":"zod-to-json-schema","path":"zod-to-json-schema","size":219264,"version":"3.25.2"}],"portability":"platform-independent-no-native-or-install-variance","rootDependencies":[{"name":"@modelcontextprotocol/sdk","requested":"^1.30.0"},{"name":"marked","requested":"18.0.10"},{"name":"tar","requested":"7.5.22"}],"schemaVersion":2}
|
|
1
|
+
{"algorithm":"sha256","assurance":"packaged-build-byte-observation","inventoryDigest":"f343c7069e2d9078c123030882678ba09300e5b624950c23845201d2e003a160","package":{"manifestSha256":"f7d6482bcdff881df07c0486b6f8ee442afed320559a76cc936d897859a3fa0a","name":"@ashlr/hub","version":"3.11.0"},"packages":[{"archiveModeSha256":"e593537ea027a53342e9c95325f3823e507298732511cd61c314537000cb008c","contentSha256":"39703185cd013059db3eb5ac351625fa9dfd1eef0509fb47ff04fcc0a4cec6f5","fileCount":25,"name":"@hono/node-server","path":"@hono/node-server","size":120353,"version":"2.0.12"},{"archiveModeSha256":"f331e808f8ff6d9d2e9cbf1ad1bc05f35c36b7ac1489084d24460c345a354819","contentSha256":"ef4367c4587f87b13b688ecafe7010c2764623bfbf1f386a1943d7392f545551","fileCount":13,"name":"@isaacs/fs-minipass","path":"@isaacs/fs-minipass","size":100617,"version":"4.0.1"},{"archiveModeSha256":"212ef6ab48b10cfc61481fdb4d517d5aefa8a9e78f321c9483e13f8f0854aade","contentSha256":"54ecfe6624026e35139d2f943de8626043145c82c1d6580882a4adf4ee6b3c90","fileCount":693,"name":"@modelcontextprotocol/sdk","path":"@modelcontextprotocol/sdk","size":4322438,"version":"1.30.0"},{"archiveModeSha256":"30bd56bd2c26086e14f1b0c58123fc916fea96c6c86f7bd8e7e2fba1526cb30f","contentSha256":"78052c66ba1f5f3d3310d2685ee84af5b060c6960c06eba5cb1d08da860019ff","fileCount":466,"name":"ajv","path":"@modelcontextprotocol/sdk/node_modules/ajv","size":1033496,"version":"8.20.0"},{"archiveModeSha256":"0e9ff2b53d7e42a61c51248833683dfc6b09c9726c3f0c50663af0a6b6f83fea","contentSha256":"18bc9ecab93292b6f357a0bef6b26e39e8d7b14c46fb9b1adc8a0826f7ad419b","fileCount":12,"name":"json-schema-traverse","path":"@modelcontextprotocol/sdk/node_modules/json-schema-traverse","size":22220,"version":"1.0.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"93bc4d919570486c9dac1184c65d89802a5d7e5e51d2ad2c9c79e9229b0d2bfd","fileCount":5,"name":"accepts","path":"accepts","size":16917,"version":"2.0.0"},{"archiveModeSha256":"338fe03444b2468ffb84fa0a62e4ad26985fbe9063f5b6500fc00baab52687a7","contentSha256":"a570e5cd740441f9e2ad9e20aab09d6ff5f01c54b5ca63889fb9cc65aa22ed38","fileCount":15,"name":"ajv-formats","path":"ajv-formats","size":56763,"version":"3.0.1"},{"archiveModeSha256":"30bd56bd2c26086e14f1b0c58123fc916fea96c6c86f7bd8e7e2fba1526cb30f","contentSha256":"78052c66ba1f5f3d3310d2685ee84af5b060c6960c06eba5cb1d08da860019ff","fileCount":466,"name":"ajv","path":"ajv-formats/node_modules/ajv","size":1033496,"version":"8.20.0"},{"archiveModeSha256":"0e9ff2b53d7e42a61c51248833683dfc6b09c9726c3f0c50663af0a6b6f83fea","contentSha256":"18bc9ecab93292b6f357a0bef6b26e39e8d7b14c46fb9b1adc8a0826f7ad419b","fileCount":12,"name":"json-schema-traverse","path":"ajv-formats/node_modules/json-schema-traverse","size":22220,"version":"1.0.0"},{"archiveModeSha256":"99258e0ccfd899459bc7f95949a5bec9039234f80f0a96cfbf7de4cfd9deaad9","contentSha256":"e6f71097d1bf22309cc2010ba116320dbe0b37b53af324631969ccef03817448","fileCount":10,"name":"body-parser","path":"body-parser","size":42536,"version":"2.3.0"},{"archiveModeSha256":"b06c6eaf0b12f13ca2978123c3bc1ee1a6f8bacabea1533868e34accee2145ec","contentSha256":"a90e26ff6b282c4ec28742358f45cffa2a4736aceb4abc7cb558bd6fc740f73b","fileCount":6,"name":"content-type","path":"body-parser/node_modules/content-type","size":20751,"version":"2.0.0"},{"archiveModeSha256":"51df0d122ab1b5f510d0a80e73a4d33fcb1ab44cf00e903f505c384be80528c8","contentSha256":"048d4140095d01f76e5d5a576d5a10de4e1cebcc64cab6ea49f14afc54939be6","fileCount":5,"name":"bytes","path":"bytes","size":12270,"version":"3.1.2"},{"archiveModeSha256":"df415aae8a21af7234f013c4d934c5074b07e617f6189084a43c78a49bafcb78","contentSha256":"870b383c07315fef9619399c2450297d079b1398583984a5ccb9cd2b1005cb59","fileCount":21,"name":"call-bind-apply-helpers","path":"call-bind-apply-helpers","size":15952,"version":"1.0.2"},{"archiveModeSha256":"fd4de57fefcfd077cce1a9e57bd1b208bf59a7da3ae9f25a7e787ab17b10490f","contentSha256":"01be39d7156b173ffe2869dcd589e2080dcf2f1bcbcfa2f20409582ccb21cfaf","fileCount":11,"name":"call-bound","path":"call-bound","size":17106,"version":"1.0.4"},{"archiveModeSha256":"155b84d16e5a3094314970a26a6b1a157604be8a208c32a0562ce579ec994c2c","contentSha256":"e1ec1eb1cc0367f01e1e8a9a8366d040942612a277ba4034707a130d6d70a0ce","fileCount":13,"name":"chownr","path":"chownr","size":22048,"version":"3.0.0"},{"archiveModeSha256":"9838afc4a08f6acf39bb46bba0c8cb523556b2fc61d2958c7bdcb1ae66ca13dd","contentSha256":"4f967d79760cd06bcfdbf918d30b3a77752d03e6e76582aeac4b3a81dcd6a6a9","fileCount":4,"name":"content-disposition","path":"content-disposition","size":19928,"version":"1.1.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"1ad93015c6082464b41e63397fc9ee739d6bb7cb93755c9fbef749cff39b8675","fileCount":5,"name":"content-type","path":"content-type","size":10471,"version":"1.0.5"},{"archiveModeSha256":"2048aee59eb971a928e2fcac3881a222b2c9140ec980dfd14756de04a3885902","contentSha256":"ca8dd7ddd6a3970df6e3efff74247cd6f985dfdcc596ac0f58cd50c5b88555e8","fileCount":5,"name":"cookie","path":"cookie","size":23382,"version":"0.7.2"},{"archiveModeSha256":"51df0d122ab1b5f510d0a80e73a4d33fcb1ab44cf00e903f505c384be80528c8","contentSha256":"360601ff3d56cfdb8de7d836940caa5d74a437474129017697aab4696fc84e03","fileCount":5,"name":"cookie-signature","path":"cookie-signature","size":4993,"version":"1.2.2"},{"archiveModeSha256":"3bf3b01496f9ce98ec5c58c595c317975f470de6da6599d5d405c60c294f12c6","contentSha256":"9a628bd867c40f8bd4753d84f5f364a5ce92fcdd73fb164977d566275580786e","fileCount":4,"name":"cors","path":"cors","size":19956,"version":"2.8.6"},{"archiveModeSha256":"0c4b2570bd695c455ca6e9f67aaabdf88b1d486e39e9e52f4b8cc0c595e08f33","contentSha256":"9666a5f3074e7ff71dab89ccc0fecd79699b6c68e85087cc3416e9b220e9369e","fileCount":9,"name":"cross-spawn","path":"cross-spawn","size":16094,"version":"7.0.6"},{"archiveModeSha256":"fd7ec5fdf7ea41f349416d375406faf41b35702e2e23f02d2c015acb72adc8f2","contentSha256":"e9f41fdd4e55dc936295270bdb7c994d9ad85dd2bd6f2fb3d46767a16ee1a03e","fileCount":7,"name":"debug","path":"debug","size":42793,"version":"4.4.3"},{"archiveModeSha256":"bb32a6d3c5b9088943cd629938024c4c8d207814db8194313063fe3844cbbc8c","contentSha256":"cfc74892a99b215bdc61d9817f90b235318267ddbf8a29ef52b2906d8b26e980","fileCount":6,"name":"depd","path":"depd","size":27117,"version":"2.0.0"},{"archiveModeSha256":"305af32d2ba2d5fe89c9acaa17537f1a06e7e131bf81112cb11d623fdbb9c6f1","contentSha256":"5c4728d83554a1fc2fd51c01cf2d30bb89adbe1c6469a52201eed72b68af0f91","fileCount":15,"name":"dunder-proto","path":"dunder-proto","size":13003,"version":"1.0.1"},{"archiveModeSha256":"9838afc4a08f6acf39bb46bba0c8cb523556b2fc61d2958c7bdcb1ae66ca13dd","contentSha256":"bae9f4988b2d279e16b4bb3e5527647300137f2978aef97f40acd1b453a8d5a7","fileCount":4,"name":"ee-first","path":"ee-first","size":6259,"version":"1.1.1"},{"archiveModeSha256":"9838afc4a08f6acf39bb46bba0c8cb523556b2fc61d2958c7bdcb1ae66ca13dd","contentSha256":"1c50e3d3cd38c66e1e462f0004781f789e59959aec798aef31f9a2f049d216e5","fileCount":4,"name":"encodeurl","path":"encodeurl","size":6980,"version":"2.0.0"},{"archiveModeSha256":"fd4de57fefcfd077cce1a9e57bd1b208bf59a7da3ae9f25a7e787ab17b10490f","contentSha256":"a2dd73d6e2d58eda48469112f2eacae1fec583f84f72643b3593c6092bd3e877","fileCount":11,"name":"es-define-property","path":"es-define-property","size":10217,"version":"1.0.1"},{"archiveModeSha256":"23a440c46333c31a4ae0a1ffdc2ec6db818da1c36a039abc189b118e1bcdc625","contentSha256":"fd08a46013bf09d90a2240c6a8a97f12ff7106507456c73e7db53f608b41214e","fileCount":22,"name":"es-errors","path":"es-errors","size":12324,"version":"1.3.0"},{"archiveModeSha256":"b6b95f08bcc5f254eddbff61393e6efa09637b9fe2996a163d3c2c71c28bb681","contentSha256":"893e26d760872fd0c233391eff242a717320d6b2d6ab004ad827d1dd6c517ea5","fileCount":16,"name":"es-object-atoms","path":"es-object-atoms","size":11967,"version":"1.1.2"},{"archiveModeSha256":"764d64b5de2e2faa2387d92a5ed5dcbc1822797787a67ee46e827d4d353a2cb5","contentSha256":"27b564cee7701979ecc9ba3ad9b57c4eb185ddfe14f6fbef7961b9d95fc51789","fileCount":4,"name":"escape-html","path":"escape-html","size":3660,"version":"1.0.3"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"53b09a946276069cc9e202851404809b0b27f9616f6398ba1ba053cf27a9b61f","fileCount":5,"name":"etag","path":"etag","size":10809,"version":"1.8.1"},{"archiveModeSha256":"15cc21147f13500c581198be8a82187d7d2cd38a2c23b9459c89f22990a5b971","contentSha256":"fda71ef638beebe2ebae12fe705f63cb2276d6b35564064714ad352727e6f0a9","fileCount":13,"name":"eventsource","path":"eventsource","size":147304,"version":"3.0.7"},{"archiveModeSha256":"57e54f8cb946a2072d2c928cce29ff71a0383916edbb50e97042f859f043677f","contentSha256":"57456c2bbbfd8965c4466cf8a120581c6de9c67c1e04bf815189370f5f76ec3f","fileCount":21,"name":"eventsource-parser","path":"eventsource-parser","size":123218,"version":"3.1.0"},{"archiveModeSha256":"e882878862f5bfd4ff0cb5120df0b9e29758544fabad522563cc91a5102513a0","contentSha256":"c4cccb2f6077128bc31e51f7f772663988796261352298821eea234de1f42281","fileCount":10,"name":"express","path":"express","size":75429,"version":"5.2.1"},{"archiveModeSha256":"0f783761dfb7c14c80535b5a3d2f282398f8621985ed04be794ef3144740784e","contentSha256":"332479fcc3eaa25713fa7df0d4e3a953b7a008fde6413d4278aa667d7e4473e1","fileCount":9,"name":"express-rate-limit","path":"express-rate-limit","size":146332,"version":"8.5.2"},{"archiveModeSha256":"78e09d25ac30efc25d5604344654f3158820dbd9d45a1900b9f44e0e500839cf","contentSha256":"5ca43c0737026213eee30eb17e40859c918af2ae30f16d3882fdfbd8bcb03afd","fileCount":11,"name":"fast-deep-equal","path":"fast-deep-equal","size":12966,"version":"3.1.3"},{"archiveModeSha256":"f75ddef45cc69b6bfbcad49bde00345a7e27f27d03cd67d1083d2a334122fc1a","contentSha256":"36e796ba92bcc878b9b3c6b939c0aa1dba25e4c2ed8609f0ed748aa17c80347e","fileCount":44,"name":"fast-uri","path":"fast-uri","size":215561,"version":"3.1.6"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"a184198d4d20e0177fd4f9e5d82bc40d34143c3a8279e7200511905b08e91d1a","fileCount":5,"name":"finalhandler","path":"finalhandler","size":18111,"version":"2.1.1"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"5a3882ea4acfd16ac4851f43587d6ab87fd08de45665981db6e8ee5944486118","fileCount":5,"name":"forwarded","path":"forwarded","size":5876,"version":"0.2.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"c3d3cc5e56026a726c20ed1d516509608bddb667d5cc999f01cd3971a92e4406","fileCount":5,"name":"fresh","path":"fresh","size":10289,"version":"2.0.0"},{"archiveModeSha256":"6f10ab8235c8a46f648cd17681016bf68595208a48d01f1351bd0b19bcb4301c","contentSha256":"8afcdc5f094efcac14509859ce70157ec7daff89642bc5d604b235f6917dd5b0","fileCount":12,"name":"function-bind","path":"function-bind","size":31427,"version":"1.1.2"},{"archiveModeSha256":"2d4c82c10091157e0f33c6a4a049ef4b2609c8f2a6d70882fa538122b54c1ce3","contentSha256":"1b862b6fe457cd272bb8bce8407ac7f972c857ac317189afe7a29ba378f0f6ac","fileCount":9,"name":"get-intrinsic","path":"get-intrinsic","size":46542,"version":"1.3.0"},{"archiveModeSha256":"995b5a61ce2e3cb963405de061067b699b48e90eb6ce2ac0d88e88bd9c38549a","contentSha256":"3dc759afa7e26cd60cc642b39bffcbd22dd574469e4ac2174cc9b57b97599f82","fileCount":15,"name":"get-proto","path":"get-proto","size":10840,"version":"1.0.1"},{"archiveModeSha256":"169ecf4d0c444e719e5bcd4e912e3ceb193138b5ab7eef8f727798759a4331d3","contentSha256":"6f2eeeb1483b34581df01b15d1b80b2b45be2c7ce06496c72a90351194858738","fileCount":12,"name":"gopd","path":"gopd","size":9869,"version":"1.2.0"},{"archiveModeSha256":"2f2262ae382d511cef7d373ff151a1a662ae623e50cb17d3a920d9e87593011d","contentSha256":"617f42cde01c4ca5a0bdab28f544a70e5f52c8707daad05016cb789193ba0554","fileCount":16,"name":"has-symbols","path":"has-symbols","size":23409,"version":"1.1.0"},{"archiveModeSha256":"35386dc8ee83de6dc1f61324623e1d9907205a1bd2fa66b02bc7c0429bdf85cc","contentSha256":"e6b281a2b3f6100d9b44f0916c797da53c254e8a38cb357134e80eddf5181a48","fileCount":10,"name":"hasown","path":"hasown","size":10332,"version":"2.0.4"},{"archiveModeSha256":"6c607d433127ab8aa7eae155e5777360167dc436457ed7fbfe66ff391f0988fa","contentSha256":"ab285a621121201b7aed9fa2a4447836246643db498bf1a4b71888d5fce36f83","fileCount":568,"name":"hono","path":"hono","size":1386244,"version":"4.13.5"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"b34d2d8fdbf41450767591b746eb2adaa4a22b59aa55c94ef0ce65ff1ba6fe6d","fileCount":5,"name":"http-errors","path":"http-errors","size":19064,"version":"2.0.1"},{"archiveModeSha256":"086f9d977a09c672ced4c2d703944875d8db454fe8fdd7fe8882f0888ed7c20f","contentSha256":"762b205b641d142557d0b3fb5d376d571e7823473661004f6cb319b7c0603976","fileCount":27,"name":"iconv-lite","path":"iconv-lite","size":343635,"version":"0.7.2"},{"archiveModeSha256":"7b3e1bd04c00f38ad3e4f4fb20e65a4eeb707527b4fd7c84ea7764cef9cebdff","contentSha256":"7c50865fdccbf6c6b44600a997d13c0c5c215ded131f0a4c98acd8d15694e632","fileCount":5,"name":"inherits","path":"inherits","size":3958,"version":"2.0.4"},{"archiveModeSha256":"3ef444401f83c959cfda73e7e9fd50d0796f6f141f36f458a3f132b362e6c375","contentSha256":"0e8533c4762708d8f61d9a21b3fa5f10d7f4907a36609490e71edaadb1186c1e","fileCount":30,"name":"ip-address","path":"ip-address","size":299533,"version":"10.4.0"},{"archiveModeSha256":"a710aacb72996fbfa6d514e678b50cfe4d17619a71648b516a3a09a96479c2c8","contentSha256":"272599141de35d28a1e92b1aec64154c866998a44310163040e6499b6ec1d9c3","fileCount":6,"name":"ipaddr.js","path":"ipaddr.js","size":42145,"version":"1.9.1"},{"archiveModeSha256":"969b492deb1f22a61f85cf9f98cc0f7c1984c3c0fd162d3ba5a600f0f6181ed8","contentSha256":"31aa30a6fbd5f134714c0ae7bc1e4c7a00b1c5bfabd2931e92618a4121bd6fa8","fileCount":6,"name":"is-promise","path":"is-promise","size":2958,"version":"4.0.0"},{"archiveModeSha256":"8f22f331a576ff070646bb75a80918007ff2b93be80520594930dd04865a6e44","contentSha256":"a560d4935c162172bd5feede21bc62536cec616c166de516cd5c367a7ca23f98","fileCount":8,"name":"isexe","path":"isexe","size":10956,"version":"2.0.0"},{"archiveModeSha256":"ec3d3c0b513b0905f208bc029bc355c1cf7038f95e2e7b1e2d19ddac26e374ea","contentSha256":"e3633b6af5ec16f6448989dd91dad2798a190e52e7a3d16d90ceca23d52c5b35","fileCount":88,"name":"jose","path":"jose","size":257736,"version":"6.2.3"},{"archiveModeSha256":"bdba5b2b7f19b131522a9af3d6cd30db94ee97690d535e5c3c84d1bce068c2a9","contentSha256":"efcb8d289875749e930bf8f745c132edf832c0f9a25768fcd97e129851288174","fileCount":9,"name":"json-schema-typed","path":"json-schema-typed","size":197188,"version":"8.0.2"},{"archiveModeSha256":"3353a1cbd727174e11aa6b1a8b1163caeb467c3ac3cad2ddb7d4c230da64bdd8","contentSha256":"251a6d99cfc3364a8732128487bbd422d3964f990fe1755b0b78046b65328731","fileCount":12,"name":"marked","path":"marked","size":469664,"version":"18.0.10"},{"archiveModeSha256":"74a40513091b687e690f49f4110e314302d0b8b3c9f196cf587c9d702c4cd7e9","contentSha256":"a4884adbf4399adaff50d30983c4afa402a1d15b56a371824ea5c7c7cab385fa","fileCount":38,"name":"math-intrinsics","path":"math-intrinsics","size":17323,"version":"1.1.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"1ec2d844bc07543d41a6ab6d78008dd2998877609cc16ba532204995fb4339c5","fileCount":5,"name":"media-typer","path":"media-typer","size":9256,"version":"1.1.0"},{"archiveModeSha256":"320af631be54ba1ce035560718a037511184c1d85329f83345fbe80f2527e8c9","contentSha256":"983f0d7028b74df8828007fabcab26e7f36e42fc7db74e321a110f6f40aa3fa7","fileCount":5,"name":"merge-descriptors","path":"merge-descriptors","size":4373,"version":"2.0.0"},{"archiveModeSha256":"2cb256014f7e1eda905b4809694ab3b06e8c1f1c5b78cb4de5da514e4e57659a","contentSha256":"c979d86230ca6688633d5ef7c89397f312c6d556a1964cb8dfe33596b8b548b9","fileCount":6,"name":"mime-db","path":"mime-db","size":225566,"version":"1.54.0"},{"archiveModeSha256":"20c4497e7b68189571962123cabb12dc852bb2346c45deed91c081c899659249","contentSha256":"28ee29177b736969ce0a555c11ae5275280510007a2670dcdd7ea6b1868f46c3","fileCount":6,"name":"mime-types","path":"mime-types","size":22871,"version":"3.0.2"},{"archiveModeSha256":"155b84d16e5a3094314970a26a6b1a157604be8a208c32a0562ce579ec994c2c","contentSha256":"46d898fe1f0594d49333d4bc32bce63349d6f124c78dfc3eda96c9f9b2f796fe","fileCount":13,"name":"minipass","path":"minipass","size":366791,"version":"7.1.3"},{"archiveModeSha256":"78b1977130401dbbba561837630370f3061275bb5a1963454b5f092e3cf208fe","contentSha256":"19c7cff62b036e6f0aad440e776cc94134bb6434c0c96939de864df88e2b0f21","fileCount":21,"name":"minizlib","path":"minizlib","size":117811,"version":"3.1.0"},{"archiveModeSha256":"20014b85b0431588ccd9c0e6c6afeffc10e21d0ee7de53e2ba2296fd52bb1a7c","contentSha256":"667f3d7d170cb303a69e67dc3a69a08255a3e5cfb8703f4904417b0362bc0d28","fileCount":4,"name":"ms","path":"ms","size":6721,"version":"2.1.3"},{"archiveModeSha256":"5602cdc50f925bdc25002fe3756f55c3e1117229d22c2b2c600e8ffca90295f6","contentSha256":"84851509ca06e7b5b721720762592fa23f696ba1d72172dbc1e692c1dfa7b567","fileCount":9,"name":"negotiator","path":"negotiator","size":28710,"version":"1.0.0"},{"archiveModeSha256":"99458992876825b1bc4dca80d075db820436a88fcf71baefbc25db39f52760e9","contentSha256":"501ecc61ad148476eb5316bad6418e95bb6ed9bfc794c23fcec15bc2c592ccf1","fileCount":4,"name":"object-assign","path":"object-assign","size":5493,"version":"4.1.1"},{"archiveModeSha256":"e3c2f2fe74f79d600564d5d6af9a6bd278aee46db5e0ec18493cdc9d895e0bbf","contentSha256":"7d76d46a138318bcabde842b6a8b994da11a2e3d2e8ecbc0f8780f50e17f2ca8","fileCount":34,"name":"object-inspect","path":"object-inspect","size":102920,"version":"1.13.4"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"ffb31d328870b95d8218c54f26f73d6e122847c7289052f57bf1569b0027593b","fileCount":5,"name":"on-finished","path":"on-finished","size":13679,"version":"2.4.1"},{"archiveModeSha256":"71f44c60c38bc2c3e17382504bf0dae39045eeec535cf6f4e1283e0514e8c2f4","contentSha256":"dc238bfc47820f9fb5bb56f1f3aae901657074482f52f91545784f041efb0210","fileCount":4,"name":"once","path":"once","size":4046,"version":"1.4.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"ca67e36d858cdb2f3a4eefd00d0bf7284143c1241b9ad06feec17799fc587638","fileCount":5,"name":"parseurl","path":"parseurl","size":10299,"version":"1.3.3"},{"archiveModeSha256":"320af631be54ba1ce035560718a037511184c1d85329f83345fbe80f2527e8c9","contentSha256":"a3945cbf1aaf19b6dba601c948b6522566517f9b9f4181c964d5a0d8ee34270e","fileCount":5,"name":"path-key","path":"path-key","size":4553,"version":"3.1.1"},{"archiveModeSha256":"1514e7595cbbb9d1902c24ce60454e544df780b8fc73b7967218c3491dd3cefb","contentSha256":"17d110a00db54cd903aba2283f1d027f5acfbf7ce0003590c3abeb6059b5d221","fileCount":6,"name":"path-to-regexp","path":"path-to-regexp","size":59680,"version":"8.4.2"},{"archiveModeSha256":"f0a8527de334749bd26e70302ee03517ec50ff590e93cb3ea9a45ce4124a3829","contentSha256":"d5a9fd4846acac4b5ce086c88eca29de645c535aeee06df4a99a69cf4317e397","fileCount":10,"name":"pkce-challenge","path":"pkce-challenge","size":18211,"version":"5.0.1"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"d05e2db9e9d803ea440dd46461d51f482ed09978f2688eeda51a5711f1f41320","fileCount":5,"name":"proxy-addr","path":"proxy-addr","size":15399,"version":"2.0.7"},{"archiveModeSha256":"5ab250cd90dfced7c9429dd43d78846951b7b961947594e9f5175faee4c88a56","contentSha256":"fc8bdb9e912132fa5d83b22283d4f7f816f2e24a36761387e13cd942024186c1","fileCount":20,"name":"qs","path":"qs","size":374851,"version":"6.16.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"d12cb812790fa7b85393df185775b6c9ad8d05fd313f2b31cfb817d6296b1888","fileCount":5,"name":"range-parser","path":"range-parser","size":8457,"version":"1.2.1"},{"archiveModeSha256":"42cc208595e23f148383e3b4292ce5922102522b8bfd5f77417b06d1306d7aa1","contentSha256":"8f8dedbaf8d48e5de26e87910168aa505b7403e4c7739edc953cf5b25240839c","fileCount":5,"name":"raw-body","path":"raw-body","size":18495,"version":"3.0.2"},{"archiveModeSha256":"99458992876825b1bc4dca80d075db820436a88fcf71baefbc25db39f52760e9","contentSha256":"4d281fcce32339c1f532a6e128db448b5d4c02ff371243a5c5696b40c86d3680","fileCount":4,"name":"require-from-string","path":"require-from-string","size":3422,"version":"2.0.2"},{"archiveModeSha256":"e09f32c46d1a5885aae361e487ce603fd60a9fbff1d5dcaab0f6236f971a9837","contentSha256":"99b97f87c5ffc0951428a30eea4a95cbe83f9a70122dbcc8a4b2e7634f8e8dcd","fileCount":7,"name":"router","path":"router","size":46851,"version":"2.2.0"},{"archiveModeSha256":"a462b8a4b54a0e6b8dcfc3d87612450f34478e7dc5845d4b16f239a578821a2c","contentSha256":"e075173c0c6569f0b806c5802462e19b25ed330b11040151ca5e0d8ea9e276d1","fileCount":7,"name":"safer-buffer","path":"safer-buffer","size":42299,"version":"2.1.2"},{"archiveModeSha256":"9838afc4a08f6acf39bb46bba0c8cb523556b2fc61d2958c7bdcb1ae66ca13dd","contentSha256":"3a396c8597fbbc013b13e4cf5dd7f05f798ee9809ad21d3966616d4f50964f02","fileCount":4,"name":"send","path":"send","size":32200,"version":"1.2.1"},{"archiveModeSha256":"9838afc4a08f6acf39bb46bba0c8cb523556b2fc61d2958c7bdcb1ae66ca13dd","contentSha256":"1724d9fc1a50078597419e4a1014f0d179522a46ed0e2a3a94b71f2f78575513","fileCount":4,"name":"serve-static","path":"serve-static","size":14335,"version":"2.2.1"},{"archiveModeSha256":"e1fd687bea7843794dae9ff84fa5a22ca00f6bea6583da85ed3e27d3d8444230","contentSha256":"db27148aba2fa1340dc867179dbccee745a7311c870a68bee4cea1e3fe2f3f8a","fileCount":6,"name":"setprototypeof","path":"setprototypeof","size":4025,"version":"1.2.0"},{"archiveModeSha256":"99458992876825b1bc4dca80d075db820436a88fcf71baefbc25db39f52760e9","contentSha256":"6754ac701a5f6a41aface06678b945984b2c4088d9c81a9beae10d2f236ebbad","fileCount":4,"name":"shebang-command","path":"shebang-command","size":2556,"version":"2.0.0"},{"archiveModeSha256":"320af631be54ba1ce035560718a037511184c1d85329f83345fbe80f2527e8c9","contentSha256":"a793c341e7bf38ef241be3075c0420da5b2c2df9c71b3aa64f16e8d80751acac","fileCount":5,"name":"shebang-regex","path":"shebang-regex","size":2828,"version":"3.0.0"},{"archiveModeSha256":"0e4409f8c28db8f2663ca9ff448e6029ee7e54e7d9d11f23f416dd0b83289589","contentSha256":"28e3e44b391a232fea118591ef73556f7f3bd207d35a4fa6c2d8b04bf11be322","fileCount":12,"name":"side-channel","path":"side-channel","size":22864,"version":"1.1.1"},{"archiveModeSha256":"d7170194465bf2624edfb7844fea886827d0f714bb09d49567d5c7a1c3ce78c0","contentSha256":"6959587507edce3ca38987daa64c966a2f802e6ef85b8c9f96e36b51b7d63752","fileCount":13,"name":"side-channel-list","path":"side-channel-list","size":16973,"version":"1.0.1"},{"archiveModeSha256":"0e4409f8c28db8f2663ca9ff448e6029ee7e54e7d9d11f23f416dd0b83289589","contentSha256":"c69ec67d49924576f5b78d598fe950d7a9464c1c61ad256cbebcda7641e1630a","fileCount":12,"name":"side-channel-map","path":"side-channel-map","size":13348,"version":"1.0.1"},{"archiveModeSha256":"0e4409f8c28db8f2663ca9ff448e6029ee7e54e7d9d11f23f416dd0b83289589","contentSha256":"3f830eae8141c06d7395d4c9ae072ae767e98aace4720762ebded0ae32fca96c","fileCount":12,"name":"side-channel-weakmap","path":"side-channel-weakmap","size":14667,"version":"1.0.2"},{"archiveModeSha256":"c0228c165b333628d8971a1ebdeb334786829db2fa1c9cb6ba374a9214cd4d11","contentSha256":"0b9e6a3e2e50328afbb9254550c688707172bd481eb1084c02af1456aa803249","fileCount":6,"name":"statuses","path":"statuses","size":12505,"version":"2.0.2"},{"archiveModeSha256":"fbfe9587c1875404cd616f4b49a10531431b12aed0b44210e21f3459beb3eacd","contentSha256":"6d854be5694f54f83a7cec190bcd141318a1c8a78df8b42ab64fbae2c5dc4518","fileCount":249,"name":"tar","path":"tar","size":2298662,"version":"7.5.22"},{"archiveModeSha256":"155b84d16e5a3094314970a26a6b1a157604be8a208c32a0562ce579ec994c2c","contentSha256":"7db31cac4d54315057535dd080e4423ab16e09e9161e8b83191c58e2a90f7ea5","fileCount":13,"name":"yallist","path":"tar/node_modules/yallist","size":80297,"version":"5.0.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"0c7b3b8db791f787793c0968ec6f6b9dc48d14783c4c34ada0e0475eb3c011d4","fileCount":5,"name":"toidentifier","path":"toidentifier","size":4685,"version":"1.0.1"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"79ce0363e01b714db55735699052b2534d0f6ef84d785b137323647cf779657a","fileCount":5,"name":"type-is","path":"type-is","size":21269,"version":"2.1.0"},{"archiveModeSha256":"b06c6eaf0b12f13ca2978123c3bc1ee1a6f8bacabea1533868e34accee2145ec","contentSha256":"a90e26ff6b282c4ec28742358f45cffa2a4736aceb4abc7cb558bd6fc740f73b","fileCount":6,"name":"content-type","path":"type-is/node_modules/content-type","size":20751,"version":"2.0.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"99534b97972283845db4ef41d39156d6720030a2307f2f0649a7f1c8fabf68c6","fileCount":5,"name":"unpipe","path":"unpipe","size":4311,"version":"1.0.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"880e12feeb6220ce4cdb0bd7f19ddb9d693666a77059502e9d667e06b3e04ce8","fileCount":5,"name":"vary","path":"vary","size":8747,"version":"1.1.2"},{"archiveModeSha256":"8fc892f4d8b9a44a1bfc252b556ebb01d424366ec71fb56f8b0fc2b81bbb5897","contentSha256":"dbe8a52a4c488ed54e7b60f93f89947ff828f9786a804b40a049152c35a47132","fileCount":5,"name":"which","path":"which","size":7308,"version":"2.0.2"},{"archiveModeSha256":"4b84777e08ccbe4ad45474b4248dc37be2c73b6467d369958cc06ca38507a13f","contentSha256":"4f5c30f228b020aca343e88dc0b15af855173a168663e687afd72c58cf586b99","fileCount":4,"name":"wrappy","path":"wrappy","size":2961,"version":"1.0.2"},{"archiveModeSha256":"b98a45815677c477e01457344c56184f50841e90f1f78c98f47d4f631140c4f3","contentSha256":"eaed4b517e605755ecde1e008133c5418c238657a3236735a1053f00b4a7e58b","fileCount":718,"name":"zod","path":"zod","size":4558122,"version":"4.4.3"},{"archiveModeSha256":"224107ce4653d3b406ca40837a05712425b14ff999773673d516eb31d8e9a34d","contentSha256":"d45857bb67c09b95d65c081b1afc095fcfd8d3e8d8bc3b57f645a1f369b1ea04","fileCount":130,"name":"zod-to-json-schema","path":"zod-to-json-schema","size":219264,"version":"3.25.2"}],"portability":"platform-independent-no-native-or-install-variance","rootDependencies":[{"name":"@modelcontextprotocol/sdk","requested":"^1.30.0"},{"name":"marked","requested":"18.0.10"},{"name":"tar","requested":"7.5.22"}],"schemaVersion":2}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
._panel_1lat4_12{border-top:1px solid var(--border-subtle);padding-block:var(--space-6)}._panel_1lat4_12:first-of-type{padding-top:var(--space-4);border-top:0}._panelHead_1lat4_15{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}._panelTitle_1lat4_16{font-family:var(--font-display);font-size:var(--text-xs-size);line-height:var(--text-xs-line);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-label,.06em);text-transform:uppercase;color:var(--text-tertiary)}._panelHeadSpaced_1lat4_25{margin-top:var(--space-6)}._panelNote_1lat4_26{font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--text-tertiary)}._panelActions_1lat4_27{align-items:center;gap:var(--space-2);display:flex}._status_1lat4_30{gap:var(--space-4);flex-direction:column;display:flex}._statusTop_1lat4_31{align-items:center;gap:var(--space-3) var(--space-5);flex-wrap:wrap;display:flex}._runState_1lat4_32{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--text-xl-size);line-height:var(--text-xl-line);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-display,-.02em);display:inline-flex}._runDot_1lat4_33{border-radius:var(--radius-full);background:var(--status-neutral-solid);flex-shrink:0;width:8px;height:8px}._runState_1lat4_32[data-state=running] ._runDot_1lat4_33{background:var(--status-running-solid)}._runState_1lat4_32[data-state=stopped] ._runDot_1lat4_33{background:var(--status-neutral-solid)}._runState_1lat4_32[data-state=unknown] ._runDot_1lat4_33{background:var(--status-unknown-solid)}._runState_1lat4_32[data-state=killed] ._runDot_1lat4_33{background:var(--status-danger-solid)}._facts_1lat4_39{gap:var(--space-3) var(--space-5);flex-wrap:wrap;display:flex}._fact_1lat4_39{flex-direction:column;gap:2px;min-width:0;display:flex}._factLabel_1lat4_41{font-family:var(--font-display);font-size:var(--text-2xs-size,11px);letter-spacing:var(--tracking-label,.06em);text-transform:uppercase;color:var(--text-tertiary)}._factValue_1lat4_42{font-family:var(--font-display);font-size:var(--text-sm-size);line-height:var(--text-sm-line);color:var(--text-primary);white-space:nowrap}._factValue_1lat4_42[data-tone=warning]{color:var(--status-warning-fg)}._factValue_1lat4_42[data-tone=danger]{color:var(--status-danger-fg)}._factValue_1lat4_42[data-tone=success]{color:var(--status-success-fg)}._factValue_1lat4_42[data-tone=unknown]{color:var(--status-unknown-fg)}._budget_1lat4_49{gap:var(--space-2);flex-direction:column;display:flex}._budgetLine_1lat4_50{justify-content:space-between;align-items:baseline;gap:var(--space-2);flex-wrap:wrap;display:flex}._budgetLabel_1lat4_51{font-family:var(--font-display);font-size:var(--text-sm-size);color:var(--text-primary)}._budgetNote_1lat4_52{font-size:var(--text-xs-size);color:var(--text-tertiary)}._meter_1lat4_53{--meter-color:var(--accent-500);background:var(--meter-track);height:2px;overflow:hidden}._meter_1lat4_53[data-state=warn]{--meter-color:var(--status-warning-solid)}._meter_1lat4_53[data-state=over],._meter_1lat4_53[data-state=stopped]{--meter-color:var(--status-danger-solid)}._meter_1lat4_53[data-state=unknown]{--meter-color:var(--status-unknown-solid)}._meterFill_1lat4_58{background:var(--meter-color);height:100%;transition:width var(--duration-base) var(--ease-decelerate)}._controls_1lat4_61{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}._button_1lat4_62{min-height:var(--density-row,32px);padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--text-sm-size);font-weight:var(--font-weight-medium);cursor:pointer}._button_1lat4_62:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-strong)}._button_1lat4_62:disabled{color:var(--text-disabled);cursor:not-allowed}._buttonPrimary_1lat4_76{border-color:var(--accent-500);color:var(--accent-600)}._buttonPrimary_1lat4_76:hover:not(:disabled){background:var(--bg-selected)}._emergency_1lat4_80{align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-default);flex-wrap:wrap;display:flex}._emergencyButton_1lat4_81{min-height:var(--density-row,32px);padding:0 var(--space-4);border:1px solid var(--status-danger-solid);border-radius:var(--radius-sm);background:var(--status-danger-bg);color:var(--status-danger-fg);font-family:var(--font-ui);font-size:var(--text-sm-size);font-weight:var(--font-weight-semibold);cursor:pointer}._emergencyButton_1lat4_81:hover:not(:disabled){border-color:var(--status-danger-fg);background:var(--status-danger-bg)}._emergencyButton_1lat4_81:disabled{border-color:var(--border-default);background:var(--bg-surface);color:var(--text-disabled);cursor:not-allowed}._emergencyNote_1lat4_102{min-width:220px;font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--text-secondary);flex:1}._capGrid_1lat4_105{gap:var(--space-4) var(--space-5);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}._cap_1lat4_105{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}._capLabel_1lat4_107{font-family:var(--font-display);font-size:var(--text-2xs-size,11px);letter-spacing:var(--tracking-label,.06em);text-transform:uppercase;color:var(--text-tertiary)}._capRow_1lat4_108{align-items:center;gap:var(--space-2);display:flex}._capInput_1lat4_109{min-width:0;min-height:var(--density-row,32px);padding:0 var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);font-family:var(--font-display);font-size:var(--text-sm-size);flex:1}._capInput_1lat4_109:focus-visible{border-color:var(--border-focus)}._capInput_1lat4_109:disabled{color:var(--text-disabled);background:var(--bg-canvas);cursor:not-allowed}._capInputInvalid_1lat4_123{border-color:var(--status-danger-solid)}._capUnit_1lat4_124{font-size:var(--text-xs-size);color:var(--text-tertiary);white-space:nowrap}._capHelp_1lat4_125{font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--text-tertiary)}._capUsage_1lat4_126{font-family:var(--font-display);font-size:var(--text-xs-size);color:var(--text-secondary)}._capError_1lat4_127{font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--status-danger-fg)}._actionNote_1lat4_130{margin-top:var(--space-3);font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--text-secondary)}._capApplied_1lat4_131{align-items:center;gap:var(--space-1);font-size:var(--text-xs-size);color:var(--status-success-fg);display:inline-flex}._capApplied_1lat4_131:before{content:"✓"}._repoList_1lat4_135{flex-direction:column;display:flex}._repoRow_1lat4_136{align-items:center;gap:var(--space-3);min-height:var(--density-row,32px);padding:var(--space-1) 0;border-bottom:1px solid var(--border-subtle);display:flex}._repoName_1lat4_137{font-family:var(--font-display);font-size:var(--text-sm-size);color:var(--text-primary);white-space:nowrap}._repoPath_1lat4_138{min-width:0;font-family:var(--font-mono);font-size:var(--text-xs-size);color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;text-align:left;direction:rtl;flex:1;overflow:hidden}._repoMissing_1lat4_139{align-items:center;gap:var(--space-1);font-size:var(--text-xs-size);color:var(--status-warning-fg);white-space:nowrap;display:inline-flex}._addRow_1lat4_140{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}._addInput_1lat4_141{min-width:240px;min-height:var(--density-row,32px);padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--text-xs-size);flex:1}._addInput_1lat4_141:focus-visible{border-color:var(--border-focus)}._tableScroll_1lat4_156{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);scrollbar-gutter:stable;max-height:520px;overflow:auto}._table_1lat4_156{border-collapse:collapse;width:100%;font-size:var(--text-xs-size);line-height:var(--text-xs-line)}._table_1lat4_156 th{font-family:var(--font-display);z-index:var(--z-sticky);padding:var(--space-2) var(--space-3);background:var(--bg-surface);border-bottom:1px solid var(--border-default);text-align:left;font-size:var(--text-2xs-size,11px);letter-spacing:var(--tracking-label,.06em);text-transform:uppercase;font-weight:var(--font-weight-semibold);color:var(--text-tertiary);white-space:nowrap;position:sticky;top:0}._table_1lat4_156 td{padding:var(--space-1) var(--space-3);border-bottom:1px solid var(--border-subtle);vertical-align:top}._table_1lat4_156 tbody tr:hover{background:var(--bg-hover)}._cellAction_1lat4_176{font-family:var(--font-mono);color:var(--text-primary);white-space:nowrap}._cellTime_1lat4_177{font-family:var(--font-display);color:var(--text-tertiary);white-space:nowrap}._cellSummary_1lat4_178{color:var(--text-secondary)}._cellRepo_1lat4_179{font-family:var(--font-mono);color:var(--text-tertiary);white-space:nowrap}._table_1lat4_156 tbody tr:hover ._cellTime_1lat4_177,._table_1lat4_156 tbody tr:hover ._cellRepo_1lat4_179{color:var(--text-secondary)}._resultTag_1lat4_188{align-items:center;gap:var(--space-1);font-family:var(--font-display);white-space:nowrap;display:inline-flex}._resultTag_1lat4_188:before{content:"•"}._resultTag_1lat4_188[data-result=ok]{color:var(--status-success-fg)}._resultTag_1lat4_188[data-result=refused]{color:var(--status-warning-fg)}._resultTag_1lat4_188[data-result=error]{color:var(--status-danger-fg)}._resultTag_1lat4_188[data-result=ok]:before{content:"✓"}._resultTag_1lat4_188[data-result=refused]:before{content:"⊘"}._resultTag_1lat4_188[data-result=error]:before{content:"✕"}._filters_1lat4_197{align-items:flex-end;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}._filterField_1lat4_198{gap:var(--space-1);flex-direction:column;display:flex}._filterLabel_1lat4_199{font-family:var(--font-display);font-size:var(--text-2xs-size,11px);letter-spacing:var(--tracking-label,.06em);text-transform:uppercase;color:var(--text-tertiary)}._filterField_1lat4_198 input{min-height:var(--density-row,32px);padding:0 var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--text-xs-size)}._filterSelect_1lat4_214>label{font-family:var(--font-display);font-size:var(--text-2xs-size,11px);letter-spacing:var(--tracking-label,.06em);text-transform:uppercase;font-weight:var(--font-weight-regular,400);color:var(--text-tertiary)}._filterField_1lat4_198 input[type=search]::-webkit-search-cancel-button{appearance:none}._checkList_1lat4_229{flex-direction:column;display:flex}._check_1lat4_229{gap:var(--space-1) var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--border-subtle);grid-template-columns:auto minmax(0,1fr);display:grid}._checkMark_1lat4_231{font-family:var(--font-display);font-size:var(--text-sm-size);grid-row:1/span 2}._check_1lat4_229[data-pass=true] ._checkMark_1lat4_231{color:var(--status-success-fg)}._check_1lat4_229[data-pass=false] ._checkMark_1lat4_231{color:var(--status-danger-fg)}._checkLabel_1lat4_234{font-size:var(--text-sm-size);line-height:var(--text-sm-line);color:var(--text-primary)}._checkDetail_1lat4_235{font-family:var(--font-mono);font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--text-tertiary)}._summaryColumns_1lat4_238{gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}._summaryList_1lat4_239{flex-direction:column;display:flex}._summaryRow_1lat4_240{align-items:baseline;gap:var(--space-3);min-height:var(--density-row,32px);padding:var(--space-1) 0;border-bottom:1px solid var(--border-subtle);display:flex}._summaryTitle_1lat4_241{min-width:0;font-size:var(--text-sm-size);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._summaryMeta_1lat4_242{font-family:var(--font-display);font-size:var(--text-xs-size);color:var(--text-tertiary);white-space:nowrap}._empty_1lat4_245{padding:var(--space-4) 0;font-size:var(--text-sm-size);line-height:var(--text-base-line);color:var(--text-secondary);max-width:62ch}._emptyStrong_1lat4_246{color:var(--text-primary);font-weight:var(--font-weight-medium)}._error_1lat4_247{padding:var(--space-3);border:1px solid var(--status-danger-solid);border-radius:var(--radius-sm);background:var(--status-danger-bg);color:var(--status-danger-fg);font-size:var(--text-sm-size);line-height:var(--text-sm-line)}._readOnly_1lat4_248{padding:var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-canvas);color:var(--text-secondary);font-size:var(--text-sm-size);line-height:var(--text-base-line)}._readOnly_1lat4_248 code{font-family:var(--font-mono);font-size:var(--text-xs-size)}._skeletons_1lat4_250{gap:var(--space-2);flex-direction:column;display:flex}._srOnly_1lat4_251{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) ._meterFill_1lat4_58{transition:none}}._runtimeTop_1lat4_266{align-items:center;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}._runtimeState_1lat4_267{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--text-base-size);line-height:var(--text-base-line);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-display,-.02em);display:inline-flex}._runtimeStateText_1lat4_268{white-space:nowrap}._runtimeState_1lat4_267[data-state=running] ._runDot_1lat4_33{background:var(--status-success-solid)}._runtimeState_1lat4_267[data-state=starting] ._runDot_1lat4_33,._runtimeState_1lat4_267[data-state=stopping] ._runDot_1lat4_33{background:var(--status-running-solid)}._runtimeState_1lat4_267[data-state=stopped] ._runDot_1lat4_33{background:var(--status-neutral-solid)}._runtimeState_1lat4_267[data-state=unknown] ._runDot_1lat4_33{background:var(--status-unknown-solid)}._factWide_1lat4_275{flex:260px;min-width:0}._factMono_1lat4_276{font-family:var(--font-mono);font-size:var(--text-xs-size);text-overflow:ellipsis;overflow:hidden}._capacityBlock_1lat4_280{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}._capacityHead_1lat4_281{align-items:flex-start;gap:var(--space-4);display:flex}._capacityBig_1lat4_282{min-width:2ch;font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:var(--text-3xl-size,30px);letter-spacing:var(--tracking-display,-.02em);line-height:1;font-weight:var(--font-weight-semibold);color:var(--text-primary);flex:none}._capacityBlock_1lat4_280[data-verdict=serialized] ._capacityBig_1lat4_282{color:var(--status-danger-fg)}._capacityBlock_1lat4_280[data-verdict=unknown] ._capacityBig_1lat4_282,._capacityBlock_1lat4_280[data-verdict=offline] ._capacityBig_1lat4_282{color:var(--text-tertiary)}._capacityWords_1lat4_296{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}._capacityHeadline_1lat4_297{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--text-sm-size);line-height:var(--text-sm-line);color:var(--text-primary);flex-wrap:wrap;display:flex}._capacityDetail_1lat4_298{font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--text-secondary);max-width:68ch}._evidence_1lat4_301{margin-top:var(--space-4);padding:var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-canvas)}._evidenceLead_1lat4_302{font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--text-secondary);margin-bottom:var(--space-3);max-width:68ch}._evidenceScroll_1lat4_303{overflow-x:auto}._evidenceTable_1lat4_304{border-collapse:collapse;width:100%;min-width:380px;font-size:var(--text-xs-size);line-height:var(--text-xs-line)}._evidenceTable_1lat4_304 th,._evidenceTable_1lat4_304 td{padding:var(--space-1) var(--space-2);text-align:left;border-bottom:1px solid var(--border-subtle)}._evidenceTable_1lat4_304 thead th{font-family:var(--font-display);font-size:var(--text-2xs-size,11px);letter-spacing:var(--tracking-label,.06em);text-transform:uppercase;color:var(--text-tertiary);font-weight:var(--font-weight-medium)}._evidenceTable_1lat4_304 tbody th{font-family:var(--font-display);color:var(--text-primary);font-weight:var(--font-weight-medium);white-space:nowrap}._evidenceTable_1lat4_304 tbody tr:last-child th,._evidenceTable_1lat4_304 tbody tr:last-child td{border-bottom:0}._evidenceNums_1lat4_309{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--text-secondary);white-space:nowrap}._evidenceCode_1lat4_310{font-family:var(--font-mono);font-size:var(--text-2xs-size,11px);color:var(--text-tertiary);overflow-wrap:anywhere}._utilisation_1lat4_312{gap:var(--space-2);margin-top:var(--space-5);flex-direction:column;display:flex}._toggleRow_1lat4_315{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}._toggleState_1lat4_316{align-items:center;gap:var(--space-2);display:inline-flex}._policyExplain_1lat4_317{margin-top:var(--space-3);font-size:var(--text-sm-size);line-height:var(--text-base-line);color:var(--text-secondary);max-width:68ch}._policyExplain_1lat4_317 strong{color:var(--text-primary);font-weight:var(--font-weight-semibold)}._impact_1lat4_320{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}._impactTitle_1lat4_321{font-family:var(--font-display);font-size:var(--text-2xs-size,11px);letter-spacing:var(--tracking-label,.06em);text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--space-2)}._impactSummary_1lat4_322{font-size:var(--text-sm-size);line-height:var(--text-base-line);color:var(--text-primary);max-width:68ch}._seatList_1lat4_323{margin-top:var(--space-3);flex-direction:column;display:flex}._seatRow_1lat4_324{gap:var(--space-1) var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--border-subtle);grid-template-columns:minmax(64px,auto) minmax(0,1fr);align-items:baseline;display:grid}._seatEngine_1lat4_325{font-family:var(--font-display);font-size:var(--text-2xs-size,11px);letter-spacing:var(--tracking-label,.06em);text-transform:uppercase;color:var(--text-secondary);border-left:2px solid var(--engine-color,var(--border-strong));padding-left:var(--space-2);white-space:nowrap}._seatEngine_1lat4_325[data-engine=claude]{--engine-color:var(--engine-claude)}._seatEngine_1lat4_325[data-engine=codex]{--engine-color:var(--engine-codex)}._seatEngine_1lat4_325[data-engine=grok]{--engine-color:var(--engine-grok)}._seatEngine_1lat4_325[data-engine=local]{--engine-color:var(--engine-local)}._seatLabel_1lat4_340{font-size:var(--text-sm-size);line-height:var(--text-sm-line);color:var(--text-primary);overflow-wrap:anywhere;min-width:0}._seatRefusal_1lat4_341{font-family:var(--font-mono);font-size:var(--text-2xs-size,11px);line-height:var(--text-xs-line);color:var(--text-tertiary);overflow-wrap:anywhere;grid-column:2}._pressure_1lat4_344{gap:var(--space-1);flex-direction:column;display:flex}._pressureHead_1lat4_345{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}._pressureHeadline_1lat4_346{font-family:var(--font-display);font-size:var(--text-lg-size);line-height:var(--text-lg-line);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-display,-.02em);color:var(--text-primary)}._pressure_1lat4_344[data-state=queued] ._pressureHeadline_1lat4_346{color:var(--status-warning-fg)}._pressure_1lat4_344[data-state=unknown] ._pressureHeadline_1lat4_346{color:var(--status-unknown-fg)}._pressureDetail_1lat4_349{font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--text-secondary);max-width:68ch}._fleetMeters_1lat4_351{align-items:end;gap:var(--space-3) var(--space-5);margin:var(--space-4) 0;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}._elapsedQualifier_1lat4_352{color:var(--text-tertiary);font-family:var(--font-ui);font-style:italic}._noteList_1lat4_353{gap:var(--space-1);margin-top:var(--space-3);flex-direction:column;list-style:none;display:flex}._repoStanding_1lat4_357{gap:var(--space-1);flex-wrap:wrap;align-items:center;display:inline-flex}._repoPriority_1lat4_364,._repoSection_1lat4_365,._repoOutsideFocus_1lat4_366{padding:0 var(--space-1);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);font-size:var(--text-2xs,.6875rem);color:var(--text-muted);white-space:nowrap;line-height:1.6}._repoPriority_1lat4_364{border-color:var(--accent);color:var(--text-default)}._repoOutsideFocus_1lat4_366{font-style:italic}._armedTop_8ujh1_22{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}._armedState_8ujh1_30{align-items:center;gap:var(--space-2);display:inline-flex}._haltRow_8ujh1_36{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}._haltNote_8ujh1_43{margin-top:var(--space-3);font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--text-secondary);max-width:68ch}._heavier_8ujh1_53{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-subtle);font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--text-tertiary);max-width:68ch}._heavier_8ujh1_53 strong{color:var(--text-secondary);font-weight:var(--font-weight-semibold)}._facts_8ujh1_69{gap:var(--space-3) var(--space-5);margin:var(--space-5) 0 0;flex-wrap:wrap;display:flex}._fact_8ujh1_69{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}._factWide_8ujh1_83{flex:26ch}._factLabel_8ujh1_87{font-family:var(--font-display);font-size:var(--text-2xs-size);letter-spacing:var(--tracking-label,.06em);text-transform:uppercase;color:var(--text-tertiary)}._factValue_8ujh1_95{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:var(--text-sm-size);line-height:var(--text-sm-line);color:var(--text-primary);overflow-wrap:anywhere;min-width:0;margin:0}._factMono_8ujh1_106{font-family:var(--font-mono);font-size:var(--text-xs-size)}._stop_8ujh1_112{gap:var(--space-2);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border-subtle);flex-direction:column;display:flex}._stopHead_8ujh1_121{justify-content:space-between;align-items:baseline;gap:var(--space-2);flex-wrap:wrap;display:flex}._stopHeadline_8ujh1_129{font-family:var(--font-display);font-size:var(--text-sm-size);line-height:var(--text-sm-line);font-weight:var(--font-weight-medium);color:var(--text-primary)}._stopRemaining_8ujh1_137{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--text-secondary);white-space:nowrap}._stopDetail_8ujh1_146{font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--text-tertiary);max-width:68ch}._ledger_8ujh1_154{margin-top:var(--space-5)}._ledgerTitle_8ujh1_158{align-items:baseline;gap:var(--space-2);font-family:var(--font-display);font-size:var(--text-2xs-size);letter-spacing:var(--tracking-label,.06em);text-transform:uppercase;font-weight:var(--font-weight-semibold);color:var(--text-tertiary);margin-bottom:var(--space-2);display:flex}._ledgerCount_8ujh1_171{font-variant-numeric:tabular-nums;letter-spacing:normal;color:var(--text-secondary)}._ledgerEmpty_8ujh1_177{font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--text-tertiary)}._ledgerList_8ujh1_183{flex-direction:column;list-style:none;display:flex}._ledgerRow_8ujh1_189{gap:var(--space-1) var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--border-subtle);transition:background-color var(--duration-fast) var(--ease-standard);grid-template-columns:minmax(8ch,auto) minmax(0,1fr);align-items:baseline;display:grid}._ledgerRow_8ujh1_189:hover{background:var(--bg-hover)}._ledgerRepo_8ujh1_203{font-family:var(--font-mono);font-size:var(--text-2xs-size);color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}._ledgerChange_8ujh1_212{font-size:var(--text-sm-size);line-height:var(--text-sm-line);color:var(--text-primary);overflow-wrap:anywhere;min-width:0}._ledgerMeta_8ujh1_222{font-family:var(--font-mono);font-size:var(--text-2xs-size);line-height:var(--text-xs-line);color:var(--text-tertiary);overflow-wrap:anywhere;grid-column:2}._form_8ujh1_232{align-items:flex-end;gap:var(--space-3) var(--space-5);flex-wrap:wrap;display:flex}._field_8ujh1_239{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}._fieldLabel_8ujh1_246{font-family:var(--font-display);font-size:var(--text-2xs-size);letter-spacing:var(--tracking-label,.06em);text-transform:uppercase;color:var(--text-tertiary)}._input_8ujh1_254{min-height:var(--control-h);min-width:10ch;padding:0 var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:var(--text-sm-size)}._input_8ujh1_254:focus-visible{border-color:var(--border-focus)}._input_8ujh1_254:disabled{color:var(--text-disabled);background:var(--bg-canvas);cursor:not-allowed}._rulePreview_8ujh1_277{margin-top:var(--space-3);font-family:var(--font-display);font-size:var(--text-sm-size);line-height:var(--text-sm-line);color:var(--text-primary)}._armRow_8ujh1_285{align-items:center;gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}._authorisation_8ujh1_17{margin-top:var(--space-5);padding:var(--space-3) var(--space-4);border-left:2px solid var(--border-strong);background:var(--bg-canvas);border-radius:0 var(--radius-sm) var(--radius-sm) 0}._authorisationTitle_8ujh1_305{font-family:var(--font-display);font-size:var(--text-2xs-size);letter-spacing:var(--tracking-label,.06em);text-transform:uppercase;font-weight:var(--font-weight-semibold);color:var(--text-tertiary);margin-bottom:var(--space-2)}._authorisationBody_8ujh1_315{font-size:var(--text-sm-size);line-height:var(--text-base-line);color:var(--text-secondary);max-width:68ch}._authorisationBody_8ujh1_315 strong{color:var(--text-primary);font-weight:var(--font-weight-semibold)}._authorisationCaveat_8ujh1_327{margin-top:var(--space-2);font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--status-warning-fg);max-width:68ch}._authorisationCaveat_8ujh1_327 strong{font-weight:var(--font-weight-semibold)}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) ._ledgerRow_8ujh1_189{transition:none}}._section_1vgpf_8{background:var(--bg-canvas);flex-direction:column;height:100%;min-height:0;display:flex}._header_1vgpf_10{justify-content:space-between;align-items:center;gap:var(--space-3);height:var(--strip-height);padding:0 var(--space-5);border-bottom:1px solid var(--border-subtle);background:var(--bg-surface);flex-shrink:0;display:flex}._title_1vgpf_23{font-family:var(--font-display);font-size:var(--text-md-size);line-height:var(--text-md-line);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-display,-.02em);color:var(--text-primary)}._headerActions_1vgpf_31{align-items:center;gap:var(--space-2);display:flex}._ghost_1vgpf_32{min-height:var(--control-h-sm);padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-ui);font-size:var(--text-xs-size);cursor:pointer;background:0 0;border:0}._ghost_1vgpf_32:hover{background:var(--bg-hover);color:var(--text-primary)}._scroll_1vgpf_45{scrollbar-gutter:stable;flex:1;min-height:0;overflow-y:auto}._measure_1vgpf_46{max-width:1040px;padding:var(--space-5) var(--space-5) var(--space-16);margin:0 auto}._banner_1vgpf_48{margin-bottom:var(--space-5);padding:var(--space-3) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary);font-size:var(--text-sm-size);line-height:var(--text-base-line)}._banner_1vgpf_48 code{font-family:var(--font-mono);font-size:var(--text-xs-size)}._bannerTitle_1vgpf_59{color:var(--text-primary);font-weight:var(--font-weight-medium);display:block}._failure_1vgpf_61{padding:var(--space-4);border:1px solid var(--status-danger-solid);border-radius:var(--radius-sm);background:var(--status-danger-bg);color:var(--status-danger-fg);font-size:var(--text-sm-size);line-height:var(--text-base-line)}._retry_1vgpf_70{margin-top:var(--space-3);min-height:var(--control-h-sm);padding:0 var(--space-3);border-radius:var(--radius-sm);color:inherit;font-family:var(--font-ui);font-size:var(--text-xs-size);cursor:pointer;background:0 0;border:1px solid}._loading_1vgpf_82{gap:var(--space-3);flex-direction:column;display:flex}@media (max-width:900px){._measure_1vgpf_46{padding:var(--space-4) var(--space-4) var(--space-12)}}._header_1vgpf_10{padding-left:max(var(--space-5), calc(var(--app-traffic-light-inset,0px) - var(--rail-width,56px)))}
|