@ashlr/hub 3.11.2 → 3.11.3
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 +8 -0
- package/dist/build-identity.json +2 -2
- package/dist/core/web/public/next/assets/{ActionMenu-_DhtX2gO.js → ActionMenu-FxXeRbPx.js} +2 -2
- package/dist/core/web/public/next/assets/{ActionMenu-_DhtX2gO.js.map → ActionMenu-FxXeRbPx.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Advanced-CAAfaBke.js → Advanced-D_eS4472.js} +2 -2
- package/dist/core/web/public/next/assets/{Advanced-CAAfaBke.js.map → Advanced-D_eS4472.js.map} +1 -1
- package/dist/core/web/public/next/assets/{App-BAywyjE8.js → App-Cj4zKbG3.js} +2 -2
- package/dist/core/web/public/next/assets/{App-BAywyjE8.js.map → App-Cj4zKbG3.js.map} +1 -1
- package/dist/core/web/public/next/assets/{AppsSection-CUypKeog.js → AppsSection-Ddu_RCQE.js} +2 -2
- package/dist/core/web/public/next/assets/{AppsSection-CUypKeog.js.map → AppsSection-Ddu_RCQE.js.map} +1 -1
- package/dist/core/web/public/next/assets/{AreaTrend-CblDqC8Q.js → AreaTrend-CDxrQU4b.js} +2 -2
- package/dist/core/web/public/next/assets/{AreaTrend-CblDqC8Q.js.map → AreaTrend-CDxrQU4b.js.map} +1 -1
- package/dist/core/web/public/next/assets/AutonomySection-DuQkHGD_.js +2 -0
- package/dist/core/web/public/next/assets/{AutonomySection-D3d8lYO3.js.map → AutonomySection-DuQkHGD_.js.map} +1 -1
- package/dist/core/web/public/next/assets/{BranchBar-DU0jAV1E.js → BranchBar-CLsvOcyK.js} +2 -2
- package/dist/core/web/public/next/assets/{BranchBar-DU0jAV1E.js.map → BranchBar-CLsvOcyK.js.map} +1 -1
- package/dist/core/web/public/next/assets/{BudgetControl-Mm1ZL4u6.js → BudgetControl-TL3FeZ1D.js} +2 -2
- package/dist/core/web/public/next/assets/{BudgetControl-Mm1ZL4u6.js.map → BudgetControl-TL3FeZ1D.js.map} +1 -1
- package/dist/core/web/public/next/assets/{BurnDown-C1fgcFqo.js → BurnDown-sFXkUGdB.js} +2 -2
- package/dist/core/web/public/next/assets/{BurnDown-C1fgcFqo.js.map → BurnDown-sFXkUGdB.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Button-DqgLUZvd.js → Button-HHXgoXGr.js} +2 -2
- package/dist/core/web/public/next/assets/{Button-DqgLUZvd.js.map → Button-HHXgoXGr.js.map} +1 -1
- package/dist/core/web/public/next/assets/{CapacityStrip-nWFHvqFB.js → CapacityStrip-qReu0RaF.js} +2 -2
- package/dist/core/web/public/next/assets/{CapacityStrip-nWFHvqFB.js.map → CapacityStrip-qReu0RaF.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ChatSection-DUZNpiVr.js → ChatSection-DZuZfTaC.js} +3 -3
- package/dist/core/web/public/next/assets/{ChatSection-DUZNpiVr.js.map → ChatSection-DZuZfTaC.js.map} +1 -1
- package/dist/core/web/public/next/assets/{CloudBudgetForm-2OW38o_C.js → CloudBudgetForm-DJbiT1wi.js} +2 -2
- package/dist/core/web/public/next/assets/{CloudBudgetForm-2OW38o_C.js.map → CloudBudgetForm-DJbiT1wi.js.map} +1 -1
- package/dist/core/web/public/next/assets/{CommandPalette-C5w2o1-r.js → CommandPalette-zYLFZRnj.js} +2 -2
- package/dist/core/web/public/next/assets/{CommandPalette-C5w2o1-r.js.map → CommandPalette-zYLFZRnj.js.map} +1 -1
- package/dist/core/web/public/next/assets/{CommandSection-Bx2knNqY.js → CommandSection-rIeMK5Ch.js} +2 -2
- package/dist/core/web/public/next/assets/{CommandSection-Bx2knNqY.js.map → CommandSection-rIeMK5Ch.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ConfirmDialog-B7ZwCQOX.js → ConfirmDialog-DLrLKM0c.js} +2 -2
- package/dist/core/web/public/next/assets/{ConfirmDialog-B7ZwCQOX.js.map → ConfirmDialog-DLrLKM0c.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Dialog-BpgcEW6b.js → Dialog-BS9Dxi3G.js} +2 -2
- package/dist/core/web/public/next/assets/{Dialog-BpgcEW6b.js.map → Dialog-BS9Dxi3G.js.map} +1 -1
- package/dist/core/web/public/next/assets/{DiffPane-DpqRUtCx.js → DiffPane-TOmUf3b2.js} +2 -2
- package/dist/core/web/public/next/assets/{DiffPane-DpqRUtCx.js.map → DiffPane-TOmUf3b2.js.map} +1 -1
- package/dist/core/web/public/next/assets/{DiffViewer-CoV5-nUf.js → DiffViewer-BpH56302.js} +2 -2
- package/dist/core/web/public/next/assets/{DiffViewer-CoV5-nUf.js.map → DiffViewer-BpH56302.js.map} +1 -1
- package/dist/core/web/public/next/assets/{DockHost-C0Pq7Jak.js → DockHost-DzkzR-HD.js} +2 -2
- package/dist/core/web/public/next/assets/{DockHost-C0Pq7Jak.js.map → DockHost-DzkzR-HD.js.map} +1 -1
- package/dist/core/web/public/next/assets/{EmptyState-DYW29ncw.js → EmptyState-BqR5YAmf.js} +2 -2
- package/dist/core/web/public/next/assets/{EmptyState-DYW29ncw.js.map → EmptyState-BqR5YAmf.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Epistemic-DVx6oHzp.js → Epistemic-dhvDTwAZ.js} +2 -2
- package/dist/core/web/public/next/assets/{Epistemic-DVx6oHzp.js.map → Epistemic-dhvDTwAZ.js.map} +1 -1
- package/dist/core/web/public/next/assets/{FleetSection-DSETviPK.js → FleetSection-ViAb549H.js} +3 -3
- package/dist/core/web/public/next/assets/{FleetSection-DSETviPK.js.map → FleetSection-ViAb549H.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Funnel-DxiGqJrt.js → Funnel-D2u7Wlzc.js} +2 -2
- package/dist/core/web/public/next/assets/{Funnel-DxiGqJrt.js.map → Funnel-D2u7Wlzc.js.map} +1 -1
- package/dist/core/web/public/next/assets/{GearTray-C3I89sIt.js → GearTray-Cb2npoxM.js} +2 -2
- package/dist/core/web/public/next/assets/{GearTray-C3I89sIt.js.map → GearTray-Cb2npoxM.js.map} +1 -1
- package/dist/core/web/public/next/assets/{GrowthSection-C3m2bPEz.js → GrowthSection-C5aDPs8B.js} +2 -2
- package/dist/core/web/public/next/assets/{GrowthSection-C3m2bPEz.js.map → GrowthSection-C5aDPs8B.js.map} +1 -1
- package/dist/core/web/public/next/assets/{HandoffDialog-Bjb96a0N.js → HandoffDialog-BF3AYg-X.js} +2 -2
- package/dist/core/web/public/next/assets/{HandoffDialog-Bjb96a0N.js.map → HandoffDialog-BF3AYg-X.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Input-ekTehVaH.js → Input-B5dmGLZx.js} +2 -2
- package/dist/core/web/public/next/assets/{Input-ekTehVaH.js.map → Input-B5dmGLZx.js.map} +1 -1
- package/dist/core/web/public/next/assets/{LeaderCard-85VBbbaZ.js → LeaderCard-DZrmjDbI.js} +2 -2
- package/dist/core/web/public/next/assets/{LeaderCard-85VBbbaZ.js.map → LeaderCard-DZrmjDbI.js.map} +1 -1
- package/dist/core/web/public/next/assets/{MatrixHeatmap-Bo8j0QPC.js → MatrixHeatmap-BgEUs2Eu.js} +2 -2
- package/dist/core/web/public/next/assets/{MatrixHeatmap-Bo8j0QPC.js.map → MatrixHeatmap-BgEUs2Eu.js.map} +1 -1
- package/dist/core/web/public/next/assets/McpSection-DZkiOuoq.js +2 -0
- package/dist/core/web/public/next/assets/{McpSection-DvHFaVyp.js.map → McpSection-DZkiOuoq.js.map} +1 -1
- package/dist/core/web/public/next/assets/{MessageMarkdown-fsY_ltVa.js → MessageMarkdown-BauY8ZTY.js} +3 -3
- package/dist/core/web/public/next/assets/{MessageMarkdown-fsY_ltVa.js.map → MessageMarkdown-BauY8ZTY.js.map} +1 -1
- package/dist/core/web/public/next/assets/{MessageMarkdownRenderer-DDdtu82l.js → MessageMarkdownRenderer-DLBNLfsn.js} +2 -2
- package/dist/core/web/public/next/assets/{MessageMarkdownRenderer-DDdtu82l.js.map → MessageMarkdownRenderer-DLBNLfsn.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Meter-CeGDXdDM.js → Meter-DNeocJnD.js} +2 -2
- package/dist/core/web/public/next/assets/{Meter-CeGDXdDM.js.map → Meter-DNeocJnD.js.map} +1 -1
- package/dist/core/web/public/next/assets/{MindSection-CDVhHvXl.js → MindSection-BvJXFjyX.js} +2 -2
- package/dist/core/web/public/next/assets/{MindSection-CDVhHvXl.js.map → MindSection-BvJXFjyX.js.map} +1 -1
- package/dist/core/web/public/next/assets/{MutationTokenDialog-DTQzEOHR.js → MutationTokenDialog-mxrw0Yvy.js} +2 -2
- package/dist/core/web/public/next/assets/{MutationTokenDialog-DTQzEOHR.js.map → MutationTokenDialog-mxrw0Yvy.js.map} +1 -1
- package/dist/core/web/public/next/assets/{NeedsYouDrawer-6AuN0BF3.js → NeedsYouDrawer-CO-Balfp.js} +2 -2
- package/dist/core/web/public/next/assets/{NeedsYouDrawer-6AuN0BF3.js.map → NeedsYouDrawer-CO-Balfp.js.map} +1 -1
- package/dist/core/web/public/next/assets/{NeedsYouList-ChnRmbSk.js → NeedsYouList-CzDZbzRD.js} +2 -2
- package/dist/core/web/public/next/assets/{NeedsYouList-ChnRmbSk.js.map → NeedsYouList-CzDZbzRD.js.map} +1 -1
- package/dist/core/web/public/next/assets/{NewChatDialog-B06E7sqg.js → NewChatDialog-B8eJjlFf.js} +2 -2
- package/dist/core/web/public/next/assets/{NewChatDialog-B06E7sqg.js.map → NewChatDialog-B8eJjlFf.js.map} +1 -1
- package/dist/core/web/public/next/assets/{OnboardingFlow-C2M3zov9.js → OnboardingFlow-Cij6KWat.js} +2 -2
- package/dist/core/web/public/next/assets/{OnboardingFlow-C2M3zov9.js.map → OnboardingFlow-Cij6KWat.js.map} +1 -1
- package/dist/core/web/public/next/assets/{PreviewPane-Bd6HsX1k.js → PreviewPane-BS-CleCd.js} +2 -2
- package/dist/core/web/public/next/assets/{PreviewPane-Bd6HsX1k.js.map → PreviewPane-BS-CleCd.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ProviderLogo-Bz7KR5j3.js → ProviderLogo-C5mBg8i0.js} +2 -2
- package/dist/core/web/public/next/assets/{ProviderLogo-Bz7KR5j3.js.map → ProviderLogo-C5mBg8i0.js.map} +1 -1
- package/dist/core/web/public/next/assets/{RailStatus-CctCuuLy.js → RailStatus-cPRyOmrk.js} +2 -2
- package/dist/core/web/public/next/assets/{RailStatus-CctCuuLy.js.map → RailStatus-cPRyOmrk.js.map} +1 -1
- package/dist/core/web/public/next/assets/{RefreshIndicator-CKY5BGdD.js → RefreshIndicator-CMwSCiz5.js} +2 -2
- package/dist/core/web/public/next/assets/{RefreshIndicator-CKY5BGdD.js.map → RefreshIndicator-CMwSCiz5.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-CspIsW_G.js → ResourcePoolConsoleApp-BFi1opsC.js} +2 -2
- package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-CspIsW_G.js.map → ResourcePoolConsoleApp-BFi1opsC.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ResourcesChrome-B7fHZ6zX.js → ResourcesChrome-BJCauW_t.js} +3 -3
- package/dist/core/web/public/next/assets/{ResourcesChrome-B7fHZ6zX.js.map → ResourcesChrome-BJCauW_t.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ResourcesDrawer-B7-N9n7-.js → ResourcesDrawer-BDecg6nO.js} +2 -2
- package/dist/core/web/public/next/assets/{ResourcesDrawer-B7-N9n7-.js.map → ResourcesDrawer-BDecg6nO.js.map} +1 -1
- package/dist/core/web/public/next/assets/{RouteErrorBoundary-C_B11J0s.js → RouteErrorBoundary-DYtwc2ja.js} +2 -2
- package/dist/core/web/public/next/assets/{RouteErrorBoundary-C_B11J0s.js.map → RouteErrorBoundary-DYtwc2ja.js.map} +1 -1
- package/dist/core/web/public/next/assets/{RunInCloudAction-_juw4EXd.js → RunInCloudAction-BEGEEM8O.js} +2 -2
- package/dist/core/web/public/next/assets/{RunInCloudAction-_juw4EXd.js.map → RunInCloudAction-BEGEEM8O.js.map} +1 -1
- package/dist/core/web/public/next/assets/{SeatSelector-D_YXvkPy.js → SeatSelector-CYHRR7Wp.js} +2 -2
- package/dist/core/web/public/next/assets/{SeatSelector-D_YXvkPy.js.map → SeatSelector-CYHRR7Wp.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Segmented-DnKP6rr7.js → Segmented-BE53BenI.js} +2 -2
- package/dist/core/web/public/next/assets/{Segmented-DnKP6rr7.js.map → Segmented-BE53BenI.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Select-DlbUupTX.js → Select-BwSGkHCS.js} +2 -2
- package/dist/core/web/public/next/assets/{Select-DlbUupTX.js.map → Select-BwSGkHCS.js.map} +1 -1
- package/dist/core/web/public/next/assets/{SessionGate-DnuTZACL.js → SessionGate-e0dFJm9d.js} +2 -2
- package/dist/core/web/public/next/assets/{SessionGate-DnuTZACL.js.map → SessionGate-e0dFJm9d.js.map} +1 -1
- package/dist/core/web/public/next/assets/{SessionInsightChip-C33-k-Q5.js → SessionInsightChip-CxlSyueJ.js} +2 -2
- package/dist/core/web/public/next/assets/{SessionInsightChip-C33-k-Q5.js.map → SessionInsightChip-CxlSyueJ.js.map} +1 -1
- package/dist/core/web/public/next/assets/{SessionSearch-DhhR9Csg.js → SessionSearch-_yp7S2TP.js} +2 -2
- package/dist/core/web/public/next/assets/{SessionSearch-DhhR9Csg.js.map → SessionSearch-_yp7S2TP.js.map} +1 -1
- package/dist/core/web/public/next/assets/{SettingsSection-C0xQvCz3.js → SettingsSection-wGnpWeGW.js} +2 -2
- package/dist/core/web/public/next/assets/{SettingsSection-C0xQvCz3.js.map → SettingsSection-wGnpWeGW.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Sheet-BvNYOYv5.js → Sheet-DVP2Mgy6.js} +2 -2
- package/dist/core/web/public/next/assets/{Sheet-BvNYOYv5.js.map → Sheet-DVP2Mgy6.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ShortcutsOverlay-1nUBVO-Z.js → ShortcutsOverlay-BcIcoClX.js} +2 -2
- package/dist/core/web/public/next/assets/{ShortcutsOverlay-1nUBVO-Z.js.map → ShortcutsOverlay-BcIcoClX.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Sidebar-YrVvvBNM.js → Sidebar-DjQOqPbm.js} +3 -3
- package/dist/core/web/public/next/assets/{Sidebar-YrVvvBNM.js.map → Sidebar-DjQOqPbm.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Slider-B2c-dbQb.js → Slider-BypUWjpH.js} +2 -2
- package/dist/core/web/public/next/assets/{Slider-B2c-dbQb.js.map → Slider-BypUWjpH.js.map} +1 -1
- package/dist/core/web/public/next/assets/{StatusBadge-Q9YYkijx.js → StatusBadge-HCZp416_.js} +2 -2
- package/dist/core/web/public/next/assets/{StatusBadge-Q9YYkijx.js.map → StatusBadge-HCZp416_.js.map} +1 -1
- package/dist/core/web/public/next/assets/{StepBand-Ci-C0GUG.js → StepBand-Duz1PUes.js} +2 -2
- package/dist/core/web/public/next/assets/{StepBand-Ci-C0GUG.js.map → StepBand-Duz1PUes.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Surface-DBovMq4P.js → Surface-B75lVfzm.js} +2 -2
- package/dist/core/web/public/next/assets/{Surface-DBovMq4P.js.map → Surface-B75lVfzm.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Swimlane-Cdc4TqDe.js → Swimlane-DGcIcnNA.js} +2 -2
- package/dist/core/web/public/next/assets/{Swimlane-Cdc4TqDe.js.map → Swimlane-DGcIcnNA.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Switch-CUrvzO2k.js → Switch-iveI-8NY.js} +2 -2
- package/dist/core/web/public/next/assets/{Switch-CUrvzO2k.js.map → Switch-iveI-8NY.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Tag-Bv8u6APt.js → Tag-DH15CUJp.js} +2 -2
- package/dist/core/web/public/next/assets/{Tag-Bv8u6APt.js.map → Tag-DH15CUJp.js.map} +1 -1
- package/dist/core/web/public/next/assets/{TerminalPane-BE4Xlqi5.js → TerminalPane-MQT-veKZ.js} +2 -2
- package/dist/core/web/public/next/assets/{TerminalPane-BE4Xlqi5.js.map → TerminalPane-MQT-veKZ.js.map} +1 -1
- package/dist/core/web/public/next/assets/{UniverseConsoleApp-BGwejf0m.js → UniverseConsoleApp-C8yQ0AaR.js} +2 -2
- package/dist/core/web/public/next/assets/{UniverseConsoleApp-BGwejf0m.js.map → UniverseConsoleApp-C8yQ0AaR.js.map} +1 -1
- package/dist/core/web/public/next/assets/{UniverseView-CgKa-WXC.js → UniverseView-_nPURPqe.js} +2 -2
- package/dist/core/web/public/next/assets/{UniverseView-CgKa-WXC.js.map → UniverseView-_nPURPqe.js.map} +1 -1
- package/dist/core/web/public/next/assets/{UsageSection-CazsHm1f.js → UsageSection-CqxRGJ40.js} +2 -2
- package/dist/core/web/public/next/assets/{UsageSection-CazsHm1f.js.map → UsageSection-CqxRGJ40.js.map} +1 -1
- package/dist/core/web/public/next/assets/{VerseConsoleApp-CTF3Shs0.js → VerseConsoleApp-DTjDpGCd.js} +3 -3
- package/dist/core/web/public/next/assets/{VerseConsoleApp-CTF3Shs0.js.map → VerseConsoleApp-DTjDpGCd.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Workspace-CgdyXiEV.js → Workspace-DfcFGzME.js} +5 -5
- package/dist/core/web/public/next/assets/{Workspace-CgdyXiEV.js.map → Workspace-DfcFGzME.js.map} +1 -1
- package/dist/core/web/public/next/assets/{actions-MtxBGS5B.js → actions-tWevL9HV.js} +2 -2
- package/dist/core/web/public/next/assets/{actions-MtxBGS5B.js.map → actions-tWevL9HV.js.map} +1 -1
- package/dist/core/web/public/next/assets/{budget-queries-CP7hgR-p.js → budget-queries-V3wcJVK_.js} +2 -2
- package/dist/core/web/public/next/assets/{budget-queries-CP7hgR-p.js.map → budget-queries-V3wcJVK_.js.map} +1 -1
- package/dist/core/web/public/next/assets/{capacity-strip-model-fHfu5cph.js → capacity-strip-model-BDbmQ3e3.js} +2 -2
- package/dist/core/web/public/next/assets/{capacity-strip-model-fHfu5cph.js.map → capacity-strip-model-BDbmQ3e3.js.map} +1 -1
- package/dist/core/web/public/next/assets/{charts-Bis9WSiS.js → charts-CfAjuKMv.js} +2 -2
- package/dist/core/web/public/next/assets/{charts-Bis9WSiS.js.map → charts-CfAjuKMv.js.map} +1 -1
- package/dist/core/web/public/next/assets/{cloud-queries-BsOepFz6.js → cloud-queries-Br_r0UAz.js} +2 -2
- package/dist/core/web/public/next/assets/{cloud-queries-BsOepFz6.js.map → cloud-queries-Br_r0UAz.js.map} +1 -1
- package/dist/core/web/public/next/assets/{cloud.module-DoFnr8ZH.js → cloud.module-ascz58c3.js} +2 -2
- package/dist/core/web/public/next/assets/{cloud.module-DoFnr8ZH.js.map → cloud.module-ascz58c3.js.map} +1 -1
- package/dist/core/web/public/next/assets/{command-bus-CMvbYP5K.js → command-bus-xYZoK9nQ.js} +2 -2
- package/dist/core/web/public/next/assets/{command-bus-CMvbYP5K.js.map → command-bus-xYZoK9nQ.js.map} +1 -1
- package/dist/core/web/public/next/assets/{context-model-Ci3Ch9t5.js → context-model-BC-HOmPo.js} +2 -2
- package/dist/core/web/public/next/assets/{context-model-Ci3Ch9t5.js.map → context-model-BC-HOmPo.js.map} +1 -1
- package/dist/core/web/public/next/assets/{context-model-CjiJTnf1.js → context-model-CIBmSugV.js} +2 -2
- package/dist/core/web/public/next/assets/{context-model-CjiJTnf1.js.map → context-model-CIBmSugV.js.map} +1 -1
- package/dist/core/web/public/next/assets/{context-queries-BDXT6LQ3.js → context-queries-CrPcHWTz.js} +2 -2
- package/dist/core/web/public/next/assets/{context-queries-BDXT6LQ3.js.map → context-queries-CrPcHWTz.js.map} +1 -1
- package/dist/core/web/public/next/assets/{control-queries-Dv-h1Clu.js → control-queries-CmgBgKV7.js} +2 -2
- package/dist/core/web/public/next/assets/{control-queries-Dv-h1Clu.js.map → control-queries-CmgBgKV7.js.map} +1 -1
- package/dist/core/web/public/next/assets/{dock-icons-t--Eugrd.js → dock-icons-CUh8dOxJ.js} +2 -2
- package/dist/core/web/public/next/assets/{dock-icons-t--Eugrd.js.map → dock-icons-CUh8dOxJ.js.map} +1 -1
- package/dist/core/web/public/next/assets/{dock-store-qIu7kSQE.js → dock-store-B2vlxqPu.js} +2 -2
- package/dist/core/web/public/next/assets/{dock-store-qIu7kSQE.js.map → dock-store-B2vlxqPu.js.map} +1 -1
- package/dist/core/web/public/next/assets/{fleet-model-IRbwfhkR.js → fleet-model-7i-FbzKI.js} +2 -2
- package/dist/core/web/public/next/assets/{fleet-model-IRbwfhkR.js.map → fleet-model-7i-FbzKI.js.map} +1 -1
- package/dist/core/web/public/next/assets/{fleet-queries-7FVNByX1.js → fleet-queries-DzGoqq8X.js} +2 -2
- package/dist/core/web/public/next/assets/{fleet-queries-7FVNByX1.js.map → fleet-queries-DzGoqq8X.js.map} +1 -1
- package/dist/core/web/public/next/assets/{focus-trap-QqQxQdvH.js → focus-trap-HtcoXeEq.js} +2 -2
- package/dist/core/web/public/next/assets/{focus-trap-QqQxQdvH.js.map → focus-trap-HtcoXeEq.js.map} +1 -1
- package/dist/core/web/public/next/assets/{format-CaMmVQCn.js → format-BkWdOQDL.js} +2 -2
- package/dist/core/web/public/next/assets/{format-CaMmVQCn.js.map → format-BkWdOQDL.js.map} +1 -1
- package/dist/core/web/public/next/assets/{git-model-B4S_GUNA.js → git-model-bk_RXh3y.js} +2 -2
- package/dist/core/web/public/next/assets/{git-model-B4S_GUNA.js.map → git-model-bk_RXh3y.js.map} +1 -1
- package/dist/core/web/public/next/assets/{global-BkNl4e6E.js → global-oEl9Qj8u.js} +2 -2
- package/dist/core/web/public/next/assets/{global-BkNl4e6E.js.map → global-oEl9Qj8u.js.map} +1 -1
- package/dist/core/web/public/next/assets/{guarded-action-DHiL8tY5.js → guarded-action-OzqcPjmh.js} +3 -3
- package/dist/core/web/public/next/assets/{guarded-action-DHiL8tY5.js.map → guarded-action-OzqcPjmh.js.map} +1 -1
- package/dist/core/web/public/next/assets/{guarded-runners-DmGEkM2P.js → guarded-runners-LHLXmXIk.js} +2 -2
- package/dist/core/web/public/next/assets/{guarded-runners-DmGEkM2P.js.map → guarded-runners-LHLXmXIk.js.map} +1 -1
- package/dist/core/web/public/next/assets/{icon-base-NtFmP2yB.js → icon-base-DvM1eI5V.js} +2 -2
- package/dist/core/web/public/next/assets/{icon-base-NtFmP2yB.js.map → icon-base-DvM1eI5V.js.map} +1 -1
- package/dist/core/web/public/next/assets/{icons-C5EFt_Ts.js → icons-DEQa2rTx.js} +2 -2
- package/dist/core/web/public/next/assets/{icons-C5EFt_Ts.js.map → icons-DEQa2rTx.js.map} +1 -1
- package/dist/core/web/public/next/assets/{index-DbDw9UAs.js → index-BVxOlseC.js} +3 -3
- package/dist/core/web/public/next/assets/{index-DbDw9UAs.js.map → index-BVxOlseC.js.map} +1 -1
- package/dist/core/web/public/next/assets/{live-model-DEwrl7_A.js → live-model-bmsJgnYD.js} +2 -2
- package/dist/core/web/public/next/assets/{live-model-DEwrl7_A.js.map → live-model-bmsJgnYD.js.map} +1 -1
- package/dist/core/web/public/next/assets/{mind.module-CLhqMQak.js → mind.module-gTGAuJt1.js} +2 -2
- package/dist/core/web/public/next/assets/{mind.module-CLhqMQak.js.map → mind.module-gTGAuJt1.js.map} +1 -1
- package/dist/core/web/public/next/assets/{mutations-Kvzsg-iK.js → mutations-C5S7okTW.js} +2 -2
- package/dist/core/web/public/next/assets/{mutations-Kvzsg-iK.js.map → mutations-C5S7okTW.js.map} +1 -1
- package/dist/core/web/public/next/assets/{nav-C0IunEYF.js → nav-NVtnuG7A.js} +2 -2
- package/dist/core/web/public/next/assets/{nav-C0IunEYF.js.map → nav-NVtnuG7A.js.map} +1 -1
- package/dist/core/web/public/next/assets/{overnight-queries-C_AfcL7q.js → overnight-queries-DGm3qL1b.js} +2 -2
- package/dist/core/web/public/next/assets/{overnight-queries-C_AfcL7q.js.map → overnight-queries-DGm3qL1b.js.map} +1 -1
- package/dist/core/web/public/next/assets/{preloaded-CctOitLu.js → preloaded-Cwf9rsnZ.js} +2 -2
- package/dist/core/web/public/next/assets/{preloaded-CctOitLu.js.map → preloaded-Cwf9rsnZ.js.map} +1 -1
- package/dist/core/web/public/next/assets/primitives-DyCKYSBG.js +1 -0
- package/dist/core/web/public/next/assets/{queries-THD05gHP.js → queries-CYisSAAB.js} +2 -2
- package/dist/core/web/public/next/assets/{queries-THD05gHP.js.map → queries-CYisSAAB.js.map} +1 -1
- package/dist/core/web/public/next/assets/{reasoning-pref-BVPu0SME.js → reasoning-pref-BUcFF_5G.js} +2 -2
- package/dist/core/web/public/next/assets/{reasoning-pref-BVPu0SME.js.map → reasoning-pref-BUcFF_5G.js.map} +1 -1
- package/dist/core/web/public/next/assets/{reveal-anchor-wCT5b4m3.js → reveal-anchor-D-tV8xau.js} +2 -2
- package/dist/core/web/public/next/assets/{reveal-anchor-wCT5b4m3.js.map → reveal-anchor-D-tV8xau.js.map} +1 -1
- package/dist/core/web/public/next/assets/{seat-subscription-CR_VylsK.js → seat-subscription-B-f9ViU2.js} +2 -2
- package/dist/core/web/public/next/assets/{seat-subscription-CR_VylsK.js.map → seat-subscription-B-f9ViU2.js.map} +1 -1
- package/dist/core/web/public/next/assets/{section-visibility-B0xXUQJ0.js → section-visibility-Yctxu-if.js} +2 -2
- package/dist/core/web/public/next/assets/{section-visibility-B0xXUQJ0.js.map → section-visibility-Yctxu-if.js.map} +1 -1
- package/dist/core/web/public/next/assets/{sidebar-model-C5wVXGpb.js → sidebar-model-DQ-FyBHW.js} +2 -2
- package/dist/core/web/public/next/assets/{sidebar-model-C5wVXGpb.js.map → sidebar-model-DQ-FyBHW.js.map} +1 -1
- package/dist/core/web/public/next/assets/{slots-DDd8cEoh.js → slots-BhP8b8tf.js} +3 -3
- package/dist/core/web/public/next/assets/{slots-DDd8cEoh.js.map → slots-BhP8b8tf.js.map} +1 -1
- package/dist/core/web/public/next/assets/{surface-data-BFxAlefI.js → surface-data-DTI7LjvH.js} +2 -2
- package/dist/core/web/public/next/assets/{surface-data-BFxAlefI.js.map → surface-data-DTI7LjvH.js.map} +1 -1
- package/dist/core/web/public/next/assets/surface-prefetch-CdUEBFrl.js +2 -0
- package/dist/core/web/public/next/assets/{surface-prefetch-CHusyO9q.js.map → surface-prefetch-CdUEBFrl.js.map} +1 -1
- package/dist/core/web/public/next/assets/{tasks-model-DvkWveXs.js → tasks-model-BKDNqmmt.js} +2 -2
- package/dist/core/web/public/next/assets/{tasks-model-DvkWveXs.js.map → tasks-model-BKDNqmmt.js.map} +1 -1
- package/dist/core/web/public/next/assets/{terminal-icons-Dp6pJgV2.js → terminal-icons-D2xe-aM1.js} +2 -2
- package/dist/core/web/public/next/assets/{terminal-icons-Dp6pJgV2.js.map → terminal-icons-D2xe-aM1.js.map} +1 -1
- package/dist/core/web/public/next/assets/{usage-queries-CUTmnegA.js → usage-queries-BZuAANlI.js} +2 -2
- package/dist/core/web/public/next/assets/{usage-queries-CUTmnegA.js.map → usage-queries-BZuAANlI.js.map} +1 -1
- package/dist/core/web/public/next/assets/{use-guarded-action-UCX2u1t1.js → use-guarded-action-Cf4MeNBa.js} +2 -2
- package/dist/core/web/public/next/assets/{use-guarded-action-UCX2u1t1.js.map → use-guarded-action-Cf4MeNBa.js.map} +1 -1
- package/dist/core/web/public/next/assets/{use-ticker-OXAjob3y.js → use-ticker-D9yi49my.js} +2 -2
- package/dist/core/web/public/next/assets/{use-ticker-OXAjob3y.js.map → use-ticker-D9yi49my.js.map} +1 -1
- package/dist/core/web/public/next/assets/{use-token-gate-CDDRAoKH.js → use-token-gate-DqrSXdX6.js} +2 -2
- package/dist/core/web/public/next/assets/{use-token-gate-CDDRAoKH.js.map → use-token-gate-DqrSXdX6.js.map} +1 -1
- package/dist/core/web/public/next/assets/{useChartWidth-D9M7kUw7.js → useChartWidth-owwodNVz.js} +2 -2
- package/dist/core/web/public/next/assets/{useChartWidth-D9M7kUw7.js.map → useChartWidth-owwodNVz.js.map} +1 -1
- package/dist/core/web/public/next/assets/{useSeatsRefresh-B2dCVcj9.js → useSeatsRefresh-DgFy-Ph4.js} +2 -2
- package/dist/core/web/public/next/assets/{useSeatsRefresh-B2dCVcj9.js.map → useSeatsRefresh-DgFy-Ph4.js.map} +1 -1
- package/dist/core/web/public/next/assets/{useVerseTranscript-BL3CljSI.js → useVerseTranscript-CDYrrWOO.js} +2 -2
- package/dist/core/web/public/next/assets/{useVerseTranscript-BL3CljSI.js.map → useVerseTranscript-CDYrrWOO.js.map} +1 -1
- package/dist/core/web/public/next/assets/{verse-icons-DASWdYuE.js → verse-icons-F9VwX07_.js} +2 -2
- package/dist/core/web/public/next/assets/{verse-icons-DASWdYuE.js.map → verse-icons-F9VwX07_.js.map} +1 -1
- package/dist/core/web/public/next/assets/{verse-model-BQ0Y2CSr.js → verse-model-DyCwZF-M.js} +2 -2
- package/dist/core/web/public/next/assets/{verse-model-BQ0Y2CSr.js.map → verse-model-DyCwZF-M.js.map} +1 -1
- package/dist/core/web/public/next/assets/{verse-ui-store-D7YXi63q.js → verse-ui-store-62DxpVHS.js} +3 -3
- package/dist/core/web/public/next/assets/{verse-ui-store-D7YXi63q.js.map → verse-ui-store-62DxpVHS.js.map} +1 -1
- package/dist/core/web/public/next/assets/{viewport-BYGH5EgA.js → viewport-nTubFCwf.js} +2 -2
- package/dist/core/web/public/next/assets/{viewport-BYGH5EgA.js.map → viewport-nTubFCwf.js.map} +1 -1
- package/dist/core/web/public/next/assets/{warmup-AsqwWCUi.js → warmup-HG5vYbsN.js} +3 -3
- package/dist/core/web/public/next/assets/{warmup-AsqwWCUi.js.map → warmup-HG5vYbsN.js.map} +1 -1
- package/dist/core/web/public/next/assets/{workspace-model-CXorJr0G.js → workspace-model-CbhdPhei.js} +2 -2
- package/dist/core/web/public/next/assets/{workspace-model-CXorJr0G.js.map → workspace-model-CbhdPhei.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/AutonomySection-D3d8lYO3.js +0 -2
- package/dist/core/web/public/next/assets/McpSection-DvHFaVyp.js +0 -2
- package/dist/core/web/public/next/assets/primitives-CbAGCNKt.js +0 -1
- package/dist/core/web/public/next/assets/surface-prefetch-CHusyO9q.js +0 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import{a as e,i as t,n,s as r,t as i}from"./index-DbDw9UAs.js";import{A as a,H as o,O as s,a as c,d as l,f as u,g as d,i as f,k as p,m,o as h,p as g,q as _,r as v,s as y,t as b,x}from"./global-BkNl4e6E.js";import{t as S}from"./Dialog-BpgcEW6b.js";import{n as C,r as w,t as T}from"./Epistemic-DVx6oHzp.js";import{n as E,r as ee,t as D}from"./StatusBadge-Q9YYkijx.js";import{C as te,_ as ne,a as O,b as re,c as ie,d as ae,f as oe,g as se,h as ce,i as le,l as k,m as ue,n as de,o as fe,p as pe,r as me,s as he,t as ge,u as _e,v as ve,y as ye}from"./queries-THD05gHP.js";import{i as be,n as xe,r as Se,t as Ce}from"./mutations-Kvzsg-iK.js";import{t as we}from"./MutationTokenDialog-DTQzEOHR.js";import{t as Te}from"./ConfirmDialog-B7ZwCQOX.js";import{n as Ee,r as De,t as Oe}from"./RouteErrorBoundary-C_B11J0s.js";import{r as ke,t as Ae}from"./UniverseView-CgKa-WXC.js";import{t as A}from"./RefreshIndicator-CKY5BGdD.js";import{l as je}from"./useChartWidth-D9M7kUw7.js";import{i as Me,n as Ne,t as Pe}from"./charts-Bis9WSiS.js";import{n as Fe,r as Ie,s as Le,t as Re}from"./format-DKrNjdwD.js";import{n as j}from"./BurnDown-C1fgcFqo.js";import{t as ze}from"./DiffViewer-CoV5-nUf.js";import{SessionGate as Be}from"./SessionGate-DnuTZACL.js";var M=r(e(),1),Ve=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,He=/^[\\/]{2}/;function Ue(e,t){return t+e.replace(/\\/g,`/`)}var We=`popstate`;function Ge(e){return typeof e==`object`&&!!e&&`pathname`in e&&`search`in e&&`hash`in e&&`state`in e&&`key`in e}function Ke(e={}){function t(e,t){let{pathname:n=`/`,search:r=``,hash:i=``}=Qe(e.location.hash.substring(1));return!n.startsWith(`/`)&&!n.startsWith(`.`)&&(n=`/`+n),Xe(``,{pathname:n,search:r,hash:i},t.state&&t.state.usr||null,t.state&&t.state.key||`default`)}function n(e,t){let n=e.document.querySelector(`base`),r=``;if(n&&n.getAttribute(`href`)){let t=e.location.href,n=t.indexOf(`#`);r=n===-1?t:t.slice(0,n)}return r+`#`+(typeof t==`string`?t:Ze(t))}function r(e,t){qe(e.pathname.charAt(0)===`/`,`relative pathnames are not supported in hash history.push(${JSON.stringify(t)})`)}return $e(t,n,r,e)}function N(e,t){if(e===!1||e==null)throw Error(t)}function qe(e,t){if(!e){typeof console<`u`&&console.warn(t);try{throw Error(t)}catch{}}}function Je(){return Math.random().toString(36).substring(2,10)}function Ye(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function Xe(e,t,n=null,r,i){return{pathname:typeof e==`string`?e:e.pathname,search:``,hash:``,...typeof t==`string`?Qe(t):t,state:n,key:t&&t.key||r||Je(),mask:i}}function Ze({pathname:e=`/`,search:t=``,hash:n=``}){return t&&t!==`?`&&(e+=t.charAt(0)===`?`?t:`?`+t),n&&n!==`#`&&(e+=n.charAt(0)===`#`?n:`#`+n),e}function Qe(e){let t={};if(e){let n=e.indexOf(`#`);n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf(`?`);r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function $e(e,t,n,r={}){let{window:i=document.defaultView,v5Compat:a=!1}=r,o=i.history,s=`POP`,c=null,l=u();l??(l=0,o.replaceState({...o.state,idx:l},``));function u(){return(o.state||{idx:null}).idx}function d(){s=`POP`;let e=u(),t=e==null?null:e-l;l=e,c&&c({action:s,location:h.location,delta:t})}function f(e,t){s=`PUSH`;let r=Ge(e)?e:Xe(h.location,e,t);n&&n(r,e),l=u()+1;let d=Ye(r,l),f=h.createHref(r.mask||r);try{o.pushState(d,``,f)}catch(e){if(e instanceof DOMException&&e.name===`DataCloneError`)throw e;i.location.assign(f)}a&&c&&c({action:s,location:h.location,delta:1})}function p(e,t){s=`REPLACE`;let r=Ge(e)?e:Xe(h.location,e,t);n&&n(r,e),l=u();let i=Ye(r,l),d=h.createHref(r.mask||r);o.replaceState(i,``,d),a&&c&&c({action:s,location:h.location,delta:0})}function m(e){return et(i,e)}let h={get action(){return s},get location(){return e(i,o)},listen(e){if(c)throw Error(`A history only accepts one active listener`);return i.addEventListener(We,d),c=e,()=>{i.removeEventListener(We,d),c=null}},createHref(e){return t(i,e)},createURL:m,encodeLocation(e){let t=m(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:f,replace:p,go(e){return o.go(e)}};return h}function et(e,t,n=!1){let r=`http://localhost`;e&&(r=e.location.origin===`null`?e.location.href:e.location.origin),N(r,`No window.location.(origin|href) available to create URL`);let i=typeof t==`string`?t:Ze(t);return i=i.replace(/ $/,`%20`),!n&&He.test(i)&&(i=r+i),new URL(i,r)}function tt(e,t,n=`/`){return nt(e,t,n,!1)}function nt(e,t,n,r,i){let a=xt((typeof t==`string`?Qe(t):t).pathname||`/`,n);if(a==null)return null;let o=i??rt(e),s=null,c=bt(a);for(let e=0;s==null&&e<o.length;++e)s=gt(o[e],c,r);return s}function rt(e){let t=it(e);return ot(t),t}function it(e,t=[],n=[],r=``,i=!1){let a=(e,a,o=i,s)=>{let c={relativePath:s===void 0?e.path||``:s,caseSensitive:e.caseSensitive===!0,childrenIndex:a,route:e};if(c.relativePath.startsWith(`/`)){if(!c.relativePath.startsWith(r)&&o)return;N(c.relativePath.startsWith(r),`Absolute route path "${c.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),c.relativePath=c.relativePath.slice(r.length)}let l=kt([r,c.relativePath]),u=n.concat(c);e.children&&e.children.length>0&&(N(e.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${l}".`),it(e.children,t,u,l,o)),(e.path!=null||e.index)&&t.push({path:l,score:mt(l,e.index),routesMeta:u.map((e,t)=>{let[n,r]=yt(e.relativePath,e.caseSensitive,t===u.length-1);return{...e,matcher:n,compiledParams:r}})})};return e.forEach((e,t)=>{if(e.path===``||!e.path?.includes(`?`))a(e,t);else for(let n of at(e.path))a(e,t,!0,n)}),t}function at(e){let t=e.split(`/`);if(t.length===0)return[];let[n,...r]=t,i=n.endsWith(`?`),a=n.replace(/\?$/,``);if(r.length===0)return i?[a,``]:[a];let o=at(r.join(`/`)),s=[];return s.push(...o.map(e=>e===``?a:[a,e].join(`/`))),i&&s.push(...o),s.map(t=>e.startsWith(`/`)&&t===``?`/`:t)}function ot(e){e.sort((e,t)=>e.score===t.score?ht(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)):t.score-e.score)}var st=/^:[\w-]+$/,ct=3,lt=2,ut=1,dt=10,ft=-2,pt=e=>e===`*`;function mt(e,t){let n=e.split(`/`),r=n.length;return n.some(pt)&&(r+=ft),t&&(r+=lt),n.filter(e=>!pt(e)).reduce((e,t)=>e+(st.test(t)?ct:t===``?ut:dt),r)}function ht(e,t){return e.length===t.length&&e.slice(0,-1).every((e,n)=>e===t[n])?e[e.length-1]-t[t.length-1]:0}function gt(e,t,n=!1){let{routesMeta:r}=e,i={},a=`/`,o=[];for(let e=0;e<r.length;++e){let s=r[e],c=e===r.length-1,l=a===`/`?t:t.slice(a.length)||`/`,u={path:s.relativePath,caseSensitive:s.caseSensitive,end:c},d=s.matcher&&s.compiledParams?vt(u,l,s.matcher,s.compiledParams):_t(u,l),f=s.route;if(!d&&c&&n&&!r[r.length-1].route.index&&(d=_t({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},l)),!d)return null;Object.assign(i,d.params),o.push({params:i,pathname:kt([a,d.pathname]),pathnameBase:jt(kt([a,d.pathnameBase])),route:f}),d.pathnameBase!==`/`&&(a=kt([a,d.pathnameBase]))}return o}function _t(e,t){typeof e==`string`&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=yt(e.path,e.caseSensitive,e.end);return vt(e,t,n,r)}function vt(e,t,n,r){let i=t.match(n);if(!i)return null;let a=i[0],o=At(a,1),s=i.slice(1);return{params:r.reduce((e,{paramName:t,isOptional:n},r)=>{if(t===`*`){let e=s[r]||``;o=At(a.slice(0,a.length-e.length),1)}let i=s[r];return e[t]=n&&!i?void 0:(i||``).replace(/%2F/g,`/`),e},{}),pathname:a,pathnameBase:o,pattern:e}}function yt(e,t=!1,n=!0){qe(e===`*`||!e.endsWith(`*`)||e.endsWith(`/*`),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,`/*`)}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,`/*`)}".`);let r=[],i=`^`+e.replace(/\/*\*?$/,``).replace(/^\/*/,`/`).replace(/[\\.*+^${}|()[\]]/g,`\\$&`).replace(/\/:([\w-]+)(\?)?/g,(e,t,n,i,a)=>{if(r.push({paramName:t,isOptional:n!=null}),n){let t=a.charAt(i+e.length);return t&&t!==`/`?`/([^\\/]*)`:`(?:/([^\\/]*))?`}return`/([^\\/]+)`}).replace(/\/([\w-]+)\?(\/|$)/g,`(/$1)?$2`);return e.endsWith(`*`)?(r.push({paramName:`*`}),i+=e===`*`||e===`/*`?`(.*)$`:`(?:\\/(.+)|\\/*)$`):n?i+=`\\/*$`:e!==``&&e!==`/`&&(i+=`(?:(?=\\/|$))`),[new RegExp(i,t?void 0:`i`),r]}function bt(e){try{return e.split(`/`).map(e=>decodeURIComponent(e).replace(/\//g,`%2F`)).join(`/`)}catch(t){return qe(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function xt(e,t){if(t===`/`)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith(`/`)?t.length-1:t.length,r=e.charAt(n);return r&&r!==`/`?null:e.slice(n)||`/`}function St(e,t=`/`){let{pathname:n,search:r=``,hash:i=``}=typeof e==`string`?Qe(e):e,a;return n?(n=Ot(n),a=n.startsWith(`/`)||n.startsWith(`\\`)?Ct(n.substring(1),`/`):Ct(n,t)):a=t,{pathname:a,search:Mt(r),hash:Nt(i)}}function Ct(e,t){let n=At(t).split(`/`);return e.split(`/`).forEach(e=>{e===`..`?n.length>1&&n.pop():e!==`.`&&n.push(e)}),n.length>1?n.join(`/`):`/`}function wt(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function Tt(e){return e.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function Et(e){let t=Tt(e);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function Dt(e,t,n,r=!1){let i;typeof e==`string`?i=Qe(e):(i={...e},N(!i.pathname||!i.pathname.includes(`?`),wt(`?`,`pathname`,`search`,i)),N(!i.pathname||!i.pathname.includes(`#`),wt(`#`,`pathname`,`hash`,i)),N(!i.search||!i.search.includes(`#`),wt(`#`,`search`,`hash`,i)));let a=e===``||i.pathname===``,o=a?`/`:i.pathname,s;if(o==null)s=n;else{let e=t.length-1;if(!r&&o.startsWith(`..`)){let t=o.split(`/`);for(;t[0]===`..`;)t.shift(),--e;i.pathname=t.join(`/`)}s=e>=0?t[e]:`/`}let c=St(i,s),l=o&&o!==`/`&&o.endsWith(`/`),u=(a||o===`.`)&&n.endsWith(`/`);return!c.pathname.endsWith(`/`)&&(l||u)&&(c.pathname+=`/`),c}var Ot=e=>e.replace(/[\\/]{2,}/g,`/`),kt=e=>Ot(e.join(`/`));function At(e,t=0){let n=e.length;for(;n>t&&e.charCodeAt(n-1)===47;)n--;return n===e.length?e:e.slice(0,n)}var jt=e=>At(e).replace(/^\/*/,`/`),Mt=e=>!e||e===`?`?``:e.startsWith(`?`)?e:`?`+e,Nt=e=>!e||e===`#`?``:e.startsWith(`#`)?e:`#`+e,Pt=class{constructor(e,t,n,r=!1){this.status=e,this.statusText=t||``,this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function Ft(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.internal==`boolean`&&`data`in e}function It(e){return kt(e.map(e=>e.route.path).filter(Boolean))||`/`}var Lt=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function Rt(e,t){let n=e;if(typeof n!=`string`||!Ve.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,i=!1;if(Lt)try{let e=new URL(window.location.href),r=He.test(n)?new URL(Ue(n,e.protocol)):new URL(n),a=xt(r.pathname,t);r.origin===e.origin&&a!=null?n=a+r.search+r.hash:i=!0}catch{qe(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:i,to:n}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);var zt=new URL(`http://localhost`);function Bt(e){if(e.createURL)return e.createURL(`/`);try{return new URL(e.createHref(`/`),zt)}catch{return zt}}function Vt(e,t){return e.origin===t.origin&&(e.origin!==`null`||e.protocol===t.protocol&&e.host===t.host)}function Ht(e,t){if(e.startsWith(`//`))return!0;let n=t.protocol.toLowerCase();return e.toLowerCase().startsWith(n)?t.host===``||e.slice(n.length).startsWith(`//`):!1}function Ut(e,t,n,r){let i=null;try{i=e==null?null:new URL(e,n)}catch{}let a=new URL(t,n),o=i!=null&&!Vt(i,n),s=!Vt(a,n);if(r===`reject`){if(o||s)throw Error(`External navigation is not allowed`)}else if(s&&(i==null||!Ht(e,i)||!Vt(i,a)))throw Error(`External navigation is not allowed`)}var Wt=[`POST`,`PUT`,`PATCH`,`DELETE`];new Set(Wt);var Gt=[`GET`,...Wt];new Set(Gt);var Kt=[`about:`,`blob:`,`chrome:`,`chrome-untrusted:`,`content:`,`data:`,`devtools:`,`file:`,`filesystem:`,`javascript:`];function qt(e){try{return Kt.includes(new URL(e).protocol)}catch{return!1}}var Jt=M.createContext(null);Jt.displayName=`DataRouter`;var Yt=M.createContext(null);Yt.displayName=`DataRouterState`;var Xt=M.createContext(!1);function Zt(){return M.useContext(Xt)}var Qt=M.createContext({isTransitioning:!1});Qt.displayName=`ViewTransition`;var $t=M.createContext(new Map);$t.displayName=`Fetchers`;var en=M.createContext(null);en.displayName=`Await`;var P=M.createContext(null);P.displayName=`Navigation`;var tn=M.createContext(null);tn.displayName=`Location`;var nn=M.createContext({outlet:null,matches:[],isDataRoute:!1});nn.displayName=`Route`;var rn=M.createContext(null);rn.displayName=`RouteError`;var an=`REACT_ROUTER_ERROR`,on=`REDIRECT`,sn=`ROUTE_ERROR_RESPONSE`;function cn(e){if(e.startsWith(`${an}:${on}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`&&typeof t.location==`string`&&typeof t.reloadDocument==`boolean`&&typeof t.replace==`boolean`)return t}catch{}}function ln(e){if(e.startsWith(`${an}:${sn}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`)return new Pt(t.status,t.statusText,t.data)}catch{}}function un(e,{relative:t}={}){N(dn(),`useHref() may be used only in the context of a <Router> component.`);let{basename:n,navigator:r}=M.useContext(P),{hash:i,pathname:a,search:o}=yn(e,{relative:t}),s=a;return n!==`/`&&(s=a===`/`?n:kt([n,a])),r.createHref({pathname:s,search:o,hash:i})}function dn(){return M.useContext(tn)!=null}function F(){return N(dn(),`useLocation() may be used only in the context of a <Router> component.`),M.useContext(tn).location}var fn=`You should call navigate() in a React.useEffect(), not when your component is first rendered.`;function pn(e){M.useContext(P).static||M.useLayoutEffect(e)}function mn(){let{isDataRoute:e}=M.useContext(nn);return e?In():hn()}function hn(){N(dn(),`useNavigate() may be used only in the context of a <Router> component.`);let e=M.useContext(Jt),{basename:t,navigator:n}=M.useContext(P),{matches:r}=M.useContext(nn),{pathname:i}=F(),a=JSON.stringify(Et(r)),o=M.useRef(!1);return pn(()=>{o.current=!0}),M.useCallback((r,s={})=>{if(qe(o.current,fn),!o.current)return;if(typeof r==`number`){n.go(r);return}let c=Dt(r,JSON.parse(a),i,s.relative===`path`);e==null&&t!==`/`&&(c.pathname=c.pathname===`/`?t:kt([t,c.pathname])),Ut(typeof r==`string`?r:Ze(r),n.createHref(c),Bt(n),`reject`),(s.replace?n.replace:n.push)(c,s.state,s)},[t,n,a,i,e])}var gn=M.createContext(null);function _n(e){let t=M.useContext(nn).outlet;return M.useMemo(()=>t&&M.createElement(gn.Provider,{value:e},t),[t,e])}function vn(){let{matches:e}=M.useContext(nn);return e[e.length-1]?.params??{}}function yn(e,{relative:t}={}){let{matches:n}=M.useContext(nn),{pathname:r}=F(),i=JSON.stringify(Et(n));return M.useMemo(()=>Dt(e,JSON.parse(i),r,t===`path`),[e,i,r,t])}function bn(e,t){return xn(e,t)}function xn(e,t,n){N(dn(),`useRoutes() may be used only in the context of a <Router> component.`);let{navigator:r}=M.useContext(P),{matches:i}=M.useContext(nn),a=i[i.length-1],o=a?a.params:{},s=a?a.pathname:`/`,c=a?a.pathnameBase:`/`,l=a&&a.route;{let e=l&&l.path||``;Rn(s,!l||e.endsWith(`*`)||e.endsWith(`*?`),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${s}" (under <Route path="${e}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
|
|
1
|
+
import{a as e,i as t,n,s as r,t as i}from"./index-BVxOlseC.js";import{A as a,H as o,O as s,a as c,d as l,f as u,g as d,i as f,k as p,m,o as h,p as g,q as _,r as v,s as y,t as b,x}from"./global-oEl9Qj8u.js";import{t as S}from"./Dialog-BS9Dxi3G.js";import{n as C,r as w,t as T}from"./Epistemic-dhvDTwAZ.js";import{n as E,r as ee,t as D}from"./StatusBadge-HCZp416_.js";import{C as te,_ as ne,a as O,b as re,c as ie,d as ae,f as oe,g as se,h as ce,i as le,l as k,m as ue,n as de,o as fe,p as pe,r as me,s as he,t as ge,u as _e,v as ve,y as ye}from"./queries-CYisSAAB.js";import{i as be,n as xe,r as Se,t as Ce}from"./mutations-C5S7okTW.js";import{t as we}from"./MutationTokenDialog-mxrw0Yvy.js";import{t as Te}from"./ConfirmDialog-DLrLKM0c.js";import{n as Ee,r as De,t as Oe}from"./RouteErrorBoundary-DYtwc2ja.js";import{r as ke,t as Ae}from"./UniverseView-_nPURPqe.js";import{t as A}from"./RefreshIndicator-CMwSCiz5.js";import{l as je}from"./useChartWidth-owwodNVz.js";import{i as Me,n as Ne,t as Pe}from"./charts-CfAjuKMv.js";import{n as Fe,r as Ie,s as Le,t as Re}from"./format-DKrNjdwD.js";import{n as j}from"./BurnDown-sFXkUGdB.js";import{t as ze}from"./DiffViewer-BpH56302.js";import{SessionGate as Be}from"./SessionGate-e0dFJm9d.js";var M=r(e(),1),Ve=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,He=/^[\\/]{2}/;function Ue(e,t){return t+e.replace(/\\/g,`/`)}var We=`popstate`;function Ge(e){return typeof e==`object`&&!!e&&`pathname`in e&&`search`in e&&`hash`in e&&`state`in e&&`key`in e}function Ke(e={}){function t(e,t){let{pathname:n=`/`,search:r=``,hash:i=``}=Qe(e.location.hash.substring(1));return!n.startsWith(`/`)&&!n.startsWith(`.`)&&(n=`/`+n),Xe(``,{pathname:n,search:r,hash:i},t.state&&t.state.usr||null,t.state&&t.state.key||`default`)}function n(e,t){let n=e.document.querySelector(`base`),r=``;if(n&&n.getAttribute(`href`)){let t=e.location.href,n=t.indexOf(`#`);r=n===-1?t:t.slice(0,n)}return r+`#`+(typeof t==`string`?t:Ze(t))}function r(e,t){qe(e.pathname.charAt(0)===`/`,`relative pathnames are not supported in hash history.push(${JSON.stringify(t)})`)}return $e(t,n,r,e)}function N(e,t){if(e===!1||e==null)throw Error(t)}function qe(e,t){if(!e){typeof console<`u`&&console.warn(t);try{throw Error(t)}catch{}}}function Je(){return Math.random().toString(36).substring(2,10)}function Ye(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function Xe(e,t,n=null,r,i){return{pathname:typeof e==`string`?e:e.pathname,search:``,hash:``,...typeof t==`string`?Qe(t):t,state:n,key:t&&t.key||r||Je(),mask:i}}function Ze({pathname:e=`/`,search:t=``,hash:n=``}){return t&&t!==`?`&&(e+=t.charAt(0)===`?`?t:`?`+t),n&&n!==`#`&&(e+=n.charAt(0)===`#`?n:`#`+n),e}function Qe(e){let t={};if(e){let n=e.indexOf(`#`);n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf(`?`);r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function $e(e,t,n,r={}){let{window:i=document.defaultView,v5Compat:a=!1}=r,o=i.history,s=`POP`,c=null,l=u();l??(l=0,o.replaceState({...o.state,idx:l},``));function u(){return(o.state||{idx:null}).idx}function d(){s=`POP`;let e=u(),t=e==null?null:e-l;l=e,c&&c({action:s,location:h.location,delta:t})}function f(e,t){s=`PUSH`;let r=Ge(e)?e:Xe(h.location,e,t);n&&n(r,e),l=u()+1;let d=Ye(r,l),f=h.createHref(r.mask||r);try{o.pushState(d,``,f)}catch(e){if(e instanceof DOMException&&e.name===`DataCloneError`)throw e;i.location.assign(f)}a&&c&&c({action:s,location:h.location,delta:1})}function p(e,t){s=`REPLACE`;let r=Ge(e)?e:Xe(h.location,e,t);n&&n(r,e),l=u();let i=Ye(r,l),d=h.createHref(r.mask||r);o.replaceState(i,``,d),a&&c&&c({action:s,location:h.location,delta:0})}function m(e){return et(i,e)}let h={get action(){return s},get location(){return e(i,o)},listen(e){if(c)throw Error(`A history only accepts one active listener`);return i.addEventListener(We,d),c=e,()=>{i.removeEventListener(We,d),c=null}},createHref(e){return t(i,e)},createURL:m,encodeLocation(e){let t=m(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:f,replace:p,go(e){return o.go(e)}};return h}function et(e,t,n=!1){let r=`http://localhost`;e&&(r=e.location.origin===`null`?e.location.href:e.location.origin),N(r,`No window.location.(origin|href) available to create URL`);let i=typeof t==`string`?t:Ze(t);return i=i.replace(/ $/,`%20`),!n&&He.test(i)&&(i=r+i),new URL(i,r)}function tt(e,t,n=`/`){return nt(e,t,n,!1)}function nt(e,t,n,r,i){let a=xt((typeof t==`string`?Qe(t):t).pathname||`/`,n);if(a==null)return null;let o=i??rt(e),s=null,c=bt(a);for(let e=0;s==null&&e<o.length;++e)s=gt(o[e],c,r);return s}function rt(e){let t=it(e);return ot(t),t}function it(e,t=[],n=[],r=``,i=!1){let a=(e,a,o=i,s)=>{let c={relativePath:s===void 0?e.path||``:s,caseSensitive:e.caseSensitive===!0,childrenIndex:a,route:e};if(c.relativePath.startsWith(`/`)){if(!c.relativePath.startsWith(r)&&o)return;N(c.relativePath.startsWith(r),`Absolute route path "${c.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),c.relativePath=c.relativePath.slice(r.length)}let l=kt([r,c.relativePath]),u=n.concat(c);e.children&&e.children.length>0&&(N(e.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${l}".`),it(e.children,t,u,l,o)),(e.path!=null||e.index)&&t.push({path:l,score:mt(l,e.index),routesMeta:u.map((e,t)=>{let[n,r]=yt(e.relativePath,e.caseSensitive,t===u.length-1);return{...e,matcher:n,compiledParams:r}})})};return e.forEach((e,t)=>{if(e.path===``||!e.path?.includes(`?`))a(e,t);else for(let n of at(e.path))a(e,t,!0,n)}),t}function at(e){let t=e.split(`/`);if(t.length===0)return[];let[n,...r]=t,i=n.endsWith(`?`),a=n.replace(/\?$/,``);if(r.length===0)return i?[a,``]:[a];let o=at(r.join(`/`)),s=[];return s.push(...o.map(e=>e===``?a:[a,e].join(`/`))),i&&s.push(...o),s.map(t=>e.startsWith(`/`)&&t===``?`/`:t)}function ot(e){e.sort((e,t)=>e.score===t.score?ht(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)):t.score-e.score)}var st=/^:[\w-]+$/,ct=3,lt=2,ut=1,dt=10,ft=-2,pt=e=>e===`*`;function mt(e,t){let n=e.split(`/`),r=n.length;return n.some(pt)&&(r+=ft),t&&(r+=lt),n.filter(e=>!pt(e)).reduce((e,t)=>e+(st.test(t)?ct:t===``?ut:dt),r)}function ht(e,t){return e.length===t.length&&e.slice(0,-1).every((e,n)=>e===t[n])?e[e.length-1]-t[t.length-1]:0}function gt(e,t,n=!1){let{routesMeta:r}=e,i={},a=`/`,o=[];for(let e=0;e<r.length;++e){let s=r[e],c=e===r.length-1,l=a===`/`?t:t.slice(a.length)||`/`,u={path:s.relativePath,caseSensitive:s.caseSensitive,end:c},d=s.matcher&&s.compiledParams?vt(u,l,s.matcher,s.compiledParams):_t(u,l),f=s.route;if(!d&&c&&n&&!r[r.length-1].route.index&&(d=_t({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},l)),!d)return null;Object.assign(i,d.params),o.push({params:i,pathname:kt([a,d.pathname]),pathnameBase:jt(kt([a,d.pathnameBase])),route:f}),d.pathnameBase!==`/`&&(a=kt([a,d.pathnameBase]))}return o}function _t(e,t){typeof e==`string`&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=yt(e.path,e.caseSensitive,e.end);return vt(e,t,n,r)}function vt(e,t,n,r){let i=t.match(n);if(!i)return null;let a=i[0],o=At(a,1),s=i.slice(1);return{params:r.reduce((e,{paramName:t,isOptional:n},r)=>{if(t===`*`){let e=s[r]||``;o=At(a.slice(0,a.length-e.length),1)}let i=s[r];return e[t]=n&&!i?void 0:(i||``).replace(/%2F/g,`/`),e},{}),pathname:a,pathnameBase:o,pattern:e}}function yt(e,t=!1,n=!0){qe(e===`*`||!e.endsWith(`*`)||e.endsWith(`/*`),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,`/*`)}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,`/*`)}".`);let r=[],i=`^`+e.replace(/\/*\*?$/,``).replace(/^\/*/,`/`).replace(/[\\.*+^${}|()[\]]/g,`\\$&`).replace(/\/:([\w-]+)(\?)?/g,(e,t,n,i,a)=>{if(r.push({paramName:t,isOptional:n!=null}),n){let t=a.charAt(i+e.length);return t&&t!==`/`?`/([^\\/]*)`:`(?:/([^\\/]*))?`}return`/([^\\/]+)`}).replace(/\/([\w-]+)\?(\/|$)/g,`(/$1)?$2`);return e.endsWith(`*`)?(r.push({paramName:`*`}),i+=e===`*`||e===`/*`?`(.*)$`:`(?:\\/(.+)|\\/*)$`):n?i+=`\\/*$`:e!==``&&e!==`/`&&(i+=`(?:(?=\\/|$))`),[new RegExp(i,t?void 0:`i`),r]}function bt(e){try{return e.split(`/`).map(e=>decodeURIComponent(e).replace(/\//g,`%2F`)).join(`/`)}catch(t){return qe(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function xt(e,t){if(t===`/`)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith(`/`)?t.length-1:t.length,r=e.charAt(n);return r&&r!==`/`?null:e.slice(n)||`/`}function St(e,t=`/`){let{pathname:n,search:r=``,hash:i=``}=typeof e==`string`?Qe(e):e,a;return n?(n=Ot(n),a=n.startsWith(`/`)||n.startsWith(`\\`)?Ct(n.substring(1),`/`):Ct(n,t)):a=t,{pathname:a,search:Mt(r),hash:Nt(i)}}function Ct(e,t){let n=At(t).split(`/`);return e.split(`/`).forEach(e=>{e===`..`?n.length>1&&n.pop():e!==`.`&&n.push(e)}),n.length>1?n.join(`/`):`/`}function wt(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function Tt(e){return e.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function Et(e){let t=Tt(e);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function Dt(e,t,n,r=!1){let i;typeof e==`string`?i=Qe(e):(i={...e},N(!i.pathname||!i.pathname.includes(`?`),wt(`?`,`pathname`,`search`,i)),N(!i.pathname||!i.pathname.includes(`#`),wt(`#`,`pathname`,`hash`,i)),N(!i.search||!i.search.includes(`#`),wt(`#`,`search`,`hash`,i)));let a=e===``||i.pathname===``,o=a?`/`:i.pathname,s;if(o==null)s=n;else{let e=t.length-1;if(!r&&o.startsWith(`..`)){let t=o.split(`/`);for(;t[0]===`..`;)t.shift(),--e;i.pathname=t.join(`/`)}s=e>=0?t[e]:`/`}let c=St(i,s),l=o&&o!==`/`&&o.endsWith(`/`),u=(a||o===`.`)&&n.endsWith(`/`);return!c.pathname.endsWith(`/`)&&(l||u)&&(c.pathname+=`/`),c}var Ot=e=>e.replace(/[\\/]{2,}/g,`/`),kt=e=>Ot(e.join(`/`));function At(e,t=0){let n=e.length;for(;n>t&&e.charCodeAt(n-1)===47;)n--;return n===e.length?e:e.slice(0,n)}var jt=e=>At(e).replace(/^\/*/,`/`),Mt=e=>!e||e===`?`?``:e.startsWith(`?`)?e:`?`+e,Nt=e=>!e||e===`#`?``:e.startsWith(`#`)?e:`#`+e,Pt=class{constructor(e,t,n,r=!1){this.status=e,this.statusText=t||``,this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function Ft(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.internal==`boolean`&&`data`in e}function It(e){return kt(e.map(e=>e.route.path).filter(Boolean))||`/`}var Lt=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function Rt(e,t){let n=e;if(typeof n!=`string`||!Ve.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,i=!1;if(Lt)try{let e=new URL(window.location.href),r=He.test(n)?new URL(Ue(n,e.protocol)):new URL(n),a=xt(r.pathname,t);r.origin===e.origin&&a!=null?n=a+r.search+r.hash:i=!0}catch{qe(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:i,to:n}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);var zt=new URL(`http://localhost`);function Bt(e){if(e.createURL)return e.createURL(`/`);try{return new URL(e.createHref(`/`),zt)}catch{return zt}}function Vt(e,t){return e.origin===t.origin&&(e.origin!==`null`||e.protocol===t.protocol&&e.host===t.host)}function Ht(e,t){if(e.startsWith(`//`))return!0;let n=t.protocol.toLowerCase();return e.toLowerCase().startsWith(n)?t.host===``||e.slice(n.length).startsWith(`//`):!1}function Ut(e,t,n,r){let i=null;try{i=e==null?null:new URL(e,n)}catch{}let a=new URL(t,n),o=i!=null&&!Vt(i,n),s=!Vt(a,n);if(r===`reject`){if(o||s)throw Error(`External navigation is not allowed`)}else if(s&&(i==null||!Ht(e,i)||!Vt(i,a)))throw Error(`External navigation is not allowed`)}var Wt=[`POST`,`PUT`,`PATCH`,`DELETE`];new Set(Wt);var Gt=[`GET`,...Wt];new Set(Gt);var Kt=[`about:`,`blob:`,`chrome:`,`chrome-untrusted:`,`content:`,`data:`,`devtools:`,`file:`,`filesystem:`,`javascript:`];function qt(e){try{return Kt.includes(new URL(e).protocol)}catch{return!1}}var Jt=M.createContext(null);Jt.displayName=`DataRouter`;var Yt=M.createContext(null);Yt.displayName=`DataRouterState`;var Xt=M.createContext(!1);function Zt(){return M.useContext(Xt)}var Qt=M.createContext({isTransitioning:!1});Qt.displayName=`ViewTransition`;var $t=M.createContext(new Map);$t.displayName=`Fetchers`;var en=M.createContext(null);en.displayName=`Await`;var P=M.createContext(null);P.displayName=`Navigation`;var tn=M.createContext(null);tn.displayName=`Location`;var nn=M.createContext({outlet:null,matches:[],isDataRoute:!1});nn.displayName=`Route`;var rn=M.createContext(null);rn.displayName=`RouteError`;var an=`REACT_ROUTER_ERROR`,on=`REDIRECT`,sn=`ROUTE_ERROR_RESPONSE`;function cn(e){if(e.startsWith(`${an}:${on}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`&&typeof t.location==`string`&&typeof t.reloadDocument==`boolean`&&typeof t.replace==`boolean`)return t}catch{}}function ln(e){if(e.startsWith(`${an}:${sn}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`)return new Pt(t.status,t.statusText,t.data)}catch{}}function un(e,{relative:t}={}){N(dn(),`useHref() may be used only in the context of a <Router> component.`);let{basename:n,navigator:r}=M.useContext(P),{hash:i,pathname:a,search:o}=yn(e,{relative:t}),s=a;return n!==`/`&&(s=a===`/`?n:kt([n,a])),r.createHref({pathname:s,search:o,hash:i})}function dn(){return M.useContext(tn)!=null}function F(){return N(dn(),`useLocation() may be used only in the context of a <Router> component.`),M.useContext(tn).location}var fn=`You should call navigate() in a React.useEffect(), not when your component is first rendered.`;function pn(e){M.useContext(P).static||M.useLayoutEffect(e)}function mn(){let{isDataRoute:e}=M.useContext(nn);return e?In():hn()}function hn(){N(dn(),`useNavigate() may be used only in the context of a <Router> component.`);let e=M.useContext(Jt),{basename:t,navigator:n}=M.useContext(P),{matches:r}=M.useContext(nn),{pathname:i}=F(),a=JSON.stringify(Et(r)),o=M.useRef(!1);return pn(()=>{o.current=!0}),M.useCallback((r,s={})=>{if(qe(o.current,fn),!o.current)return;if(typeof r==`number`){n.go(r);return}let c=Dt(r,JSON.parse(a),i,s.relative===`path`);e==null&&t!==`/`&&(c.pathname=c.pathname===`/`?t:kt([t,c.pathname])),Ut(typeof r==`string`?r:Ze(r),n.createHref(c),Bt(n),`reject`),(s.replace?n.replace:n.push)(c,s.state,s)},[t,n,a,i,e])}var gn=M.createContext(null);function _n(e){let t=M.useContext(nn).outlet;return M.useMemo(()=>t&&M.createElement(gn.Provider,{value:e},t),[t,e])}function vn(){let{matches:e}=M.useContext(nn);return e[e.length-1]?.params??{}}function yn(e,{relative:t}={}){let{matches:n}=M.useContext(nn),{pathname:r}=F(),i=JSON.stringify(Et(n));return M.useMemo(()=>Dt(e,JSON.parse(i),r,t===`path`),[e,i,r,t])}function bn(e,t){return xn(e,t)}function xn(e,t,n){N(dn(),`useRoutes() may be used only in the context of a <Router> component.`);let{navigator:r}=M.useContext(P),{matches:i}=M.useContext(nn),a=i[i.length-1],o=a?a.params:{},s=a?a.pathname:`/`,c=a?a.pathnameBase:`/`,l=a&&a.route;{let e=l&&l.path||``;Rn(s,!l||e.endsWith(`*`)||e.endsWith(`*?`),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${s}" (under <Route path="${e}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
|
|
2
2
|
|
|
3
3
|
Please change the parent <Route path="${e}"> to <Route path="${e===`/`?`*`:`${e}/*`}">.`)}let u=F(),d;if(t){let e=typeof t==`string`?Qe(t):t;N(c===`/`||e.pathname?.startsWith(c),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${c}" but pathname "${e.pathname}" was given in the \`location\` prop.`),d=e}else d=u;let f=d.pathname||`/`,p=f;if(c!==`/`){let e=c.replace(/^\//,``).split(`/`);p=`/`+f.replace(/^\//,``).split(`/`).slice(e.length).join(`/`)}let m=n&&n.state.matches.length?n.state.matches.map(e=>Object.assign(e,{route:n.manifest[e.route.id]||e.route})):tt(e,{pathname:p});qe(l||m!=null,`No routes matched location "${d.pathname}${d.search}${d.hash}" `),qe(m==null||m[m.length-1].route.element!==void 0||m[m.length-1].route.Component!==void 0||m[m.length-1].route.lazy!==void 0,`Matched leaf route at location "${d.pathname}${d.search}${d.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let h=On(m&&m.map(e=>Object.assign({},e,{params:Object.assign({},o,e.params),pathname:kt([c,r.encodeLocation?r.encodeLocation(e.pathname.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathname]),pathnameBase:e.pathnameBase===`/`?c:kt([c,r.encodeLocation?r.encodeLocation(e.pathnameBase.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathnameBase])})),i,n);return t&&h?M.createElement(tn.Provider,{value:{location:{pathname:`/`,search:``,hash:``,state:null,key:`default`,mask:void 0,...d},navigationType:`POP`}},h):h}function Sn(){let e=Fn(),t=Ft(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r=`rgba(200,200,200, 0.5)`,i={padding:`0.5rem`,backgroundColor:r},a={padding:`2px 4px`,backgroundColor:r},o=null;return console.error(`Error handled by React Router default ErrorBoundary:`,e),o=M.createElement(M.Fragment,null,M.createElement(`p`,null,`💿 Hey developer 👋`),M.createElement(`p`,null,`You can provide a way better UX than this when your app throws errors by providing your own `,M.createElement(`code`,{style:a},`ErrorBoundary`),` or`,` `,M.createElement(`code`,{style:a},`errorElement`),` prop on your route.`)),M.createElement(M.Fragment,null,M.createElement(`h2`,null,`Unexpected Application Error!`),M.createElement(`h3`,{style:{fontStyle:`italic`}},t),n?M.createElement(`pre`,{style:i},n):null,o)}var Cn=M.createElement(Sn,null),wn=class extends M.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!==`idle`&&e.revalidation===`idle`?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error===void 0?t.error:e.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error(`React Router caught the following error during render`,e)}render(){let e=this.state.error;if(this.context&&typeof e==`object`&&e&&`digest`in e&&typeof e.digest==`string`){let t=ln(e.digest);t&&(e=t)}let t=e===void 0?this.props.children:M.createElement(nn.Provider,{value:this.props.routeContext},M.createElement(rn.Provider,{value:e,children:this.props.component}));return this.context?M.createElement(En,{error:e},t):t}};wn.contextType=Xt;var Tn=new WeakMap;function En({children:e,error:t}){let{basename:n,navigator:r}=M.useContext(P);if(typeof t==`object`&&t&&`digest`in t&&typeof t.digest==`string`){let e=cn(t.digest);if(e){let i=Tn.get(t);if(i)throw i;let a=Rt(e.location,n),o=a.absoluteURL||a.to;if(Ut(e.location,o,Bt(r),`allow-explicit`),qt(o))throw Error(`Invalid redirect location`);if(Lt&&!Tn.get(t)){if(a.isExternal||e.reloadDocument)window.location.href=o;else{let n=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(a.to,{replace:e.replace}));throw Tn.set(t,n),n}}return M.createElement(`meta`,{httpEquiv:`refresh`,content:`0;url=${o}`})}}return e}function Dn({routeContext:e,match:t,children:n}){let r=M.useContext(Jt);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),M.createElement(nn.Provider,{value:e},n)}function On(e,t=[],n){let r=n?.state;if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let i=e,a=r?.errors;if(a!=null){let e=i.findIndex(e=>e.route.id&&a?.[e.route.id]!==void 0);N(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(a).join(`,`)}`),i=i.slice(0,Math.min(i.length,e+1))}let o=!1,s=-1;if(n&&r){o=r.renderFallback;for(let e=0;e<i.length;e++){let t=i[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(s=e),t.route.id){let{loaderData:e,errors:a}=r,c=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!a||a[t.route.id]===void 0);if(t.route.lazy||c){n.isStatic&&(o=!0),i=s>=0?i.slice(0,s+1):[i[0]];break}}}}let c=n?.onError,l=r&&c?(e,t)=>{c(e,{location:r.location,params:r.matches?.[0]?.params??{},pattern:It(r.matches),errorInfo:t})}:void 0;return i.reduceRight((e,n,c)=>{let u,d=!1,f=null,p=null;r&&(u=a&&n.route.id?a[n.route.id]:void 0,f=n.route.errorElement||Cn,o&&(s<0&&c===0?(Rn(`route-fallback`,!1,"No `HydrateFallback` element provided to render during initial hydration"),d=!0,p=null):s===c&&(d=!0,p=n.route.hydrateFallbackElement||null)));let m=t.concat(i.slice(0,c+1)),h=()=>{let t;return t=u?f:d?p:n.route.Component?M.createElement(n.route.Component,null):n.route.element?n.route.element:e,M.createElement(Dn,{match:n,routeContext:{outlet:e,matches:m,isDataRoute:r!=null},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||c===0)?M.createElement(wn,{location:r.location,revalidation:r.revalidation,component:f,error:u,children:h(),routeContext:{outlet:null,matches:m,isDataRoute:!0},onError:l}):h()},null)}function kn(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function An(e){let t=M.useContext(Jt);return N(t,kn(e)),t}function jn(e){let t=M.useContext(Yt);return N(t,kn(e)),t}function Mn(e){let t=M.useContext(nn);return N(t,kn(e)),t}function Nn(e){let t=Mn(e),n=t.matches[t.matches.length-1];return N(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function Pn(){return Nn(`useRouteId`)}function Fn(){let e=M.useContext(rn),t=jn(`useRouteError`),n=Nn(`useRouteError`);return e===void 0?t.errors?.[n]:e}function In(){let{router:e}=An(`useNavigate`),t=Nn(`useNavigate`),n=M.useRef(!1);return pn(()=>{n.current=!0}),M.useCallback(async(r,i={})=>{qe(n.current,fn),n.current&&(typeof r==`number`?await e.navigate(r):await e.navigate(r,{fromRouteId:t,...i}))},[e,t])}var Ln={};function Rn(e,t,n){!t&&!Ln[e]&&(Ln[e]=!0,qe(!1,n))}M.memo(zn);function zn({routes:e,manifest:t,future:n,state:r,isStatic:i,onError:a}){return xn(e,void 0,{manifest:t,state:r,isStatic:i,onError:a,future:n})}function Bn({to:e,replace:t,state:n,relative:r}){N(dn(),`<Navigate> may be used only in the context of a <Router> component.`);let{static:i,navigator:a}=M.useContext(P);qe(!i,`<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.`);let{matches:o}=M.useContext(nn),{pathname:s}=F(),c=mn(),l=Dt(e,Et(o),s,r===`path`);Ut(typeof e==`string`?e:Ze(e),a.createHref(l),Bt(a),`reject`);let u=JSON.stringify(l);return M.useEffect(()=>{c(JSON.parse(u),{replace:t,state:n,relative:r})},[c,u,r,t,n]),null}function Vn(e){return _n(e.context)}function I(e){N(!1,`A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.`)}function Hn({basename:e=`/`,children:t=null,location:n,navigationType:r=`POP`,navigator:i,static:a=!1,useTransitions:o}){N(!dn(),`You cannot render a <Router> inside another <Router>. You should never have more than one in your app.`);let s=e.replace(/^\/*/,`/`),c=M.useMemo(()=>({basename:s,navigator:i,static:a,useTransitions:o,future:{}}),[s,i,a,o]);typeof n==`string`&&(n=Qe(n));let{pathname:l=`/`,search:u=``,hash:d=``,state:f=null,key:p=`default`,mask:m}=n,h=M.useMemo(()=>{let e=xt(l,s);return e==null?null:{location:{pathname:e,search:u,hash:d,state:f,key:p,mask:m},navigationType:r}},[s,l,u,d,f,p,r,m]);return qe(h!=null,`<Router basename="${s}"> is not able to match the URL "${l}${u}${d}" because it does not start with the basename, so the <Router> won't render anything.`),h==null?null:M.createElement(P.Provider,{value:c},M.createElement(tn.Provider,{children:t,value:h}))}function Un({children:e,location:t}){return bn(Wn(e),t)}M.Component;function Wn(e,t=[]){let n=[];return M.Children.forEach(e,(e,r)=>{if(!M.isValidElement(e))return;let i=[...t,r];if(e.type===M.Fragment){n.push.apply(n,Wn(e.props.children,i));return}N(e.type===I,`[${typeof e.type==`string`?e.type:e.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),N(!e.props.index||!e.props.children,`An index route cannot have child routes.`);let a={id:e.props.id||i.join(`-`),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,middleware:e.props.middleware,loader:e.props.loader,action:e.props.action,hydrateFallbackElement:e.props.hydrateFallbackElement,HydrateFallback:e.props.HydrateFallback,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:e.props.hasErrorBoundary===!0||e.props.ErrorBoundary!=null||e.props.errorElement!=null,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(a.children=Wn(e.props.children,i)),n.push(a)}),n}var Gn=`get`,Kn=`application/x-www-form-urlencoded`;function qn(e){return typeof HTMLElement<`u`&&e instanceof HTMLElement}function Jn(e){return qn(e)&&e.tagName.toLowerCase()===`button`}function Yn(e){return qn(e)&&e.tagName.toLowerCase()===`form`}function Xn(e){return qn(e)&&e.tagName.toLowerCase()===`input`}function Zn(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Qn(e,t){return e.button===0&&(!t||t===`_self`)&&!Zn(e)}var $n=null;function er(){if($n===null)try{new FormData(document.createElement(`form`),0),$n=!1}catch{$n=!0}return $n}var tr=new Set([`application/x-www-form-urlencoded`,`multipart/form-data`,`text/plain`]);function nr(e){return e!=null&&!tr.has(e)?(qe(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Kn}"`),null):e}function rr(e,t){let n,r,i,a,o;if(Yn(e)){let o=e.getAttribute(`action`);r=o?xt(o,t):null,n=e.getAttribute(`method`)||Gn,i=nr(e.getAttribute(`enctype`))||Kn,a=new FormData(e)}else if(Jn(e)||Xn(e)&&(e.type===`submit`||e.type===`image`)){let o=e.form;if(o==null)throw Error(`Cannot submit a <button> or <input type="submit"> without a <form>`);let s=e.getAttribute(`formaction`)||o.getAttribute(`action`);if(r=s?xt(s,t):null,n=e.getAttribute(`formmethod`)||o.getAttribute(`method`)||Gn,i=nr(e.getAttribute(`formenctype`))||nr(o.getAttribute(`enctype`))||Kn,a=new FormData(o,e),!er()){let{name:t,type:n,value:r}=e;if(n===`image`){let e=t?`${t}.`:``;a.append(`${e}x`,`0`),a.append(`${e}y`,`0`)}else t&&a.append(t,r)}}else if(qn(e))throw Error(`Cannot submit element that is not <form>, <button>, or <input type="submit|image">`);else n=Gn,r=null,i=Kn,o=e;return a&&i===`text/plain`&&(o=a,a=void 0),{action:r,method:n.toLowerCase(),encType:i,formData:a,body:o}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);function ir(e,t){if(e===!1||e==null)throw Error(t)}function ar(e,t,n,r){let i=typeof e==`string`?new URL(e,typeof window>`u`?`server://singlefetch/`:window.location.origin):e;return i.pathname=n?i.pathname.endsWith(`/`)?`${i.pathname}_.${r}`:`${i.pathname}.${r}`:i.pathname===`/`?`_root.${r}`:t&&xt(i.pathname,t)===`/`?`${At(t)}/_root.${r}`:`${At(i.pathname)}.${r}`,i}async function or(e,t){if(e.id in t)return t[e.id];try{let n=await i(()=>import(e.module),[]);return t[e.id]=n,n}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function sr(e){return e!=null&&typeof e.page==`string`}function cr(e){return e==null?!1:e.href==null?e.rel===`preload`&&typeof e.imageSrcSet==`string`&&typeof e.imageSizes==`string`:typeof e.rel==`string`&&typeof e.href==`string`}async function lr(e,t,n){return mr((await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await or(r,n);return e.links?e.links():[]}return[]}))).flat(1).filter(cr).filter(e=>e.rel===`stylesheet`||e.rel===`preload`).map(e=>e.rel===`stylesheet`?{...e,rel:`prefetch`,as:`style`}:{...e,rel:`prefetch`}))}function ur(e,t,n,r,i,a){let o=(e,t)=>!n[t]||e.route.id!==n[t].route.id,s=(e,t)=>n[t].pathname!==e.pathname||n[t].route.path?.endsWith(`*`)&&n[t].params[`*`]!==e.params[`*`];return a===`assets`?t.filter((e,t)=>o(e,t)||s(e,t)):a===`data`?t.filter((t,a)=>{let c=r.routes[t.route.id];if(!c||!c.hasLoader)return!1;if(o(t,a)||s(t,a))return!0;if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if(typeof r==`boolean`)return r}return!0}):[]}function dr(e,t,{includeHydrateFallback:n}={}){return fr(e.map(e=>{let r=t.routes[e.route.id];if(!r)return[];let i=[r.module];return r.clientActionModule&&(i=i.concat(r.clientActionModule)),r.clientLoaderModule&&(i=i.concat(r.clientLoaderModule)),n&&r.hydrateFallbackModule&&(i=i.concat(r.hydrateFallbackModule)),r.imports&&(i=i.concat(r.imports)),i}).flat(1))}function fr(e){return[...new Set(e)]}function pr(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}function mr(e,t){let n=new Set,r=new Set(t);return e.reduce((e,i)=>{if(t&&!sr(i)&&i.as===`script`&&i.href&&r.has(i.href))return e;let a=JSON.stringify(pr(i));return n.has(a)||(n.add(a),e.push({key:a,link:i})),e},[])}function hr(){let e=M.useContext(Jt);return ir(e,`You must render this element inside a <DataRouterContext.Provider> element`),e}function gr(){let e=M.useContext(Yt);return ir(e,`You must render this element inside a <DataRouterStateContext.Provider> element`),e}var _r=M.createContext(void 0);_r.displayName=`FrameworkContext`;function vr(){let e=M.useContext(_r);return ir(e,`You must render this element inside a <HydratedRouter> element`),e}function yr(e,t){let n=M.useContext(_r),[r,i]=M.useState(!1),[a,o]=M.useState(!1),{onFocus:s,onBlur:c,onMouseEnter:l,onMouseLeave:u,onTouchStart:d}=t,f=M.useRef(null);M.useEffect(()=>{if(e===`render`&&o(!0),e===`viewport`){let e=new IntersectionObserver(e=>{e.forEach(e=>{o(e.isIntersecting)})},{threshold:.5});return f.current&&e.observe(f.current),()=>{e.disconnect()}}},[e]),M.useEffect(()=>{if(r){let e=setTimeout(()=>{o(!0)},100);return()=>{clearTimeout(e)}}},[r]);let p=()=>{i(!0)},m=()=>{i(!1),o(!1)};return n?e===`intent`?[a,f,{onFocus:br(s,p),onBlur:br(c,m),onMouseEnter:br(l,p),onMouseLeave:br(u,m),onTouchStart:br(d,p)}]:[a,f,{}]:[!1,f,{}]}function br(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function xr({page:e,...t}){let n=Zt(),{nonce:r}=vr(),{router:i}=hr(),a=M.useMemo(()=>tt(i.routes,e,i.basename),[i.routes,e,i.basename]);return a?(t.nonce==null&&r&&(t={...t,nonce:r}),n?M.createElement(Cr,{page:e,matches:a,...t}):M.createElement(wr,{page:e,matches:a,...t})):null}function Sr(e){let{manifest:t,routeModules:n}=vr(),[r,i]=M.useState([]);return M.useEffect(()=>{let r=!1;return lr(e,t,n).then(e=>{r||i(e)}),()=>{r=!0}},[e,t,n]),r}function Cr({page:e,matches:t,...n}){let r=F(),{future:i}=vr(),{basename:a}=hr(),o=M.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=ar(e,a,i.v8_trailingSlashAwareDataRequests,`rsc`),o=!1,s=[];for(let e of t)typeof e.route.shouldRevalidate==`function`?o=!0:s.push(e.route.id);return o&&s.length>0&&n.searchParams.set(`_routes`,s.join(`,`)),[n.pathname+n.search]},[a,i.v8_trailingSlashAwareDataRequests,e,r,t]);return M.createElement(M.Fragment,null,o.map(e=>M.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})))}function wr({page:e,matches:t,...n}){let r=F(),{future:i,manifest:a,routeModules:o}=vr(),{basename:s}=hr(),{loaderData:c,matches:l}=gr(),u=M.useMemo(()=>ur(e,t,l,a,r,`data`),[e,t,l,a,r]),d=M.useMemo(()=>ur(e,t,l,a,r,`assets`),[e,t,l,a,r]),f=M.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=new Set,l=!1;if(t.forEach(e=>{let t=a.routes[e.route.id];t&&t.hasLoader&&(!u.some(t=>t.route.id===e.route.id)&&e.route.id in c&&o[e.route.id]?.shouldRevalidate||t.hasClientLoader?l=!0:n.add(e.route.id))}),n.size===0)return[];let d=ar(e,s,i.v8_trailingSlashAwareDataRequests,`data`);return l&&n.size>0&&d.searchParams.set(`_routes`,t.filter(e=>n.has(e.route.id)).map(e=>e.route.id).join(`,`)),[d.pathname+d.search]},[s,i.v8_trailingSlashAwareDataRequests,c,r,a,u,t,e,o]),p=M.useMemo(()=>dr(d,a),[d,a]),m=Sr(d);return M.createElement(M.Fragment,null,f.map(e=>M.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})),p.map(e=>M.createElement(`link`,{key:e,rel:`modulepreload`,href:e,...n})),m.map(({key:e,link:t})=>M.createElement(`link`,{key:e,nonce:n.nonce,...t,crossOrigin:t.crossOrigin??n.crossOrigin})))}function Tr(...e){return t=>{e.forEach(e=>{typeof e==`function`?e(t):e!=null&&(e.current=t)})}}M.Component;var Er=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;try{Er&&(window.__reactRouterVersion=`7.18.4`)}catch{}function Dr({basename:e,children:t,useTransitions:n,window:r}){let i=M.useRef();i.current??=Ke({window:r,v5Compat:!0});let a=i.current,[o,s]=M.useState({action:a.action,location:a.location}),c=M.useCallback(e=>{n===!1?s(e):M.startTransition(()=>s(e))},[n]);return M.useLayoutEffect(()=>a.listen(c),[a,c]),M.createElement(Hn,{basename:e,children:t,location:o.location,navigationType:o.action,navigator:a,useTransitions:n})}var Or=M.forwardRef(function({onClick:e,discover:t=`render`,prefetch:n=`none`,relative:r,reloadDocument:i,replace:a,mask:o,state:s,target:c,to:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f,...p},m){let{basename:h,navigator:g,useTransitions:_}=M.useContext(P),v=typeof l==`string`&&Ve.test(l),y=Rt(l,h);l=y.to;let b=un(l,{relative:r}),x=F(),S=null;if(o){let e=Dt(o,[],x.mask?x.mask.pathname:`/`,!0);h!==`/`&&(e.pathname=e.pathname===`/`?h:kt([h,e.pathname])),S=g.createHref(e)}let[C,w,T]=yr(n,p),E=Nr(l,{replace:a,mask:o,state:s,target:c,preventScrollReset:u,relative:r,viewTransition:d,defaultShouldRevalidate:f,useTransitions:_});function ee(t){e&&e(t),t.defaultPrevented||E(t)}let D=!(y.isExternal||i),te=M.createElement(`a`,{...p,...T,href:(D?S:void 0)||y.absoluteURL||b,onClick:D?ee:e,ref:Tr(m,w),target:c,"data-discover":!v&&t===`render`?`true`:void 0});return C&&!v?M.createElement(M.Fragment,null,te,M.createElement(xr,{page:b})):te});Or.displayName=`Link`;var kr=M.forwardRef(function({"aria-current":e=`page`,caseSensitive:t=!1,className:n=``,end:r=!1,style:i,to:a,viewTransition:o,children:s,...c},l){let u=yn(a,{relative:c.relative}),d=F(),f=M.useContext(Yt),{navigator:p,basename:m}=M.useContext(P),h=f!=null&&Rr(u)&&o===!0,g=p.encodeLocation?p.encodeLocation(u).pathname:u.pathname,_=d.pathname,v=f&&f.navigation&&f.navigation.location?f.navigation.location.pathname:null;t||(_=_.toLowerCase(),v=v?v.toLowerCase():null,g=g.toLowerCase()),v&&m&&(v=xt(v,m)||v);let y=g!==`/`&&g.endsWith(`/`)?g.length-1:g.length,b=_===g||!r&&_.startsWith(g)&&_.charAt(y)===`/`,x=v!=null&&(v===g||!r&&v.startsWith(g)&&v.charAt(g.length)===`/`),S={isActive:b,isPending:x,isTransitioning:h},C=b?e:void 0,w;w=typeof n==`function`?n(S):[n,b?`active`:null,x?`pending`:null,h?`transitioning`:null].filter(Boolean).join(` `);let T=typeof i==`function`?i(S):i;return M.createElement(Or,{...c,"aria-current":C,className:w,ref:l,style:T,to:a,viewTransition:o},typeof s==`function`?s(S):s)});kr.displayName=`NavLink`;var Ar=M.forwardRef(({discover:e=`render`,fetcherKey:t,navigate:n,reloadDocument:r,replace:i,state:a,method:o=Gn,action:s,onSubmit:c,relative:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f,...p},m)=>{let{useTransitions:h}=M.useContext(P),g=Ir(),_=Lr(s,{relative:l}),v=o.toLowerCase()===`get`?`get`:`post`,y=typeof s==`string`&&Ve.test(s);return M.createElement(`form`,{ref:m,method:v,action:_,onSubmit:r?c:e=>{if(c&&c(e),e.defaultPrevented)return;e.preventDefault();let r=e.nativeEvent.submitter,s=r?.getAttribute(`formmethod`)||o,p=()=>g(r||e.currentTarget,{fetcherKey:t,method:s,navigate:n,replace:i,state:a,relative:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f});h&&n!==!1?M.startTransition(()=>p()):p()},...p,"data-discover":!y&&e===`render`?`true`:void 0})});Ar.displayName=`Form`;function jr(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Mr(e){let t=M.useContext(Jt);return N(t,jr(e)),t}function Nr(e,{target:t,replace:n,mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,defaultShouldRevalidate:c,useTransitions:l}={}){let u=mn(),d=F(),f=yn(e,{relative:o});return M.useCallback(p=>{if(Qn(p,t)){p.preventDefault();let t=n===void 0?Ze(d)===Ze(f):n,m=()=>u(e,{replace:t,mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,defaultShouldRevalidate:c});l?M.startTransition(()=>m()):m()}},[d,u,f,n,r,i,t,e,a,o,s,c,l])}var Pr=0,Fr=()=>`__${String(++Pr)}__`;function Ir(){let{router:e}=Mr(`useSubmit`),{basename:t}=M.useContext(P),n=Pn(),r=e.fetch,i=e.navigate;return M.useCallback(async(e,a={})=>{let{action:o,method:s,encType:c,formData:l,body:u}=rr(e,t);if(a.navigate===!1){let e=a.fetcherKey||Fr();await r(e,n,a.action||o,{defaultShouldRevalidate:a.defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,flushSync:a.flushSync})}else await i(a.action||o,{defaultShouldRevalidate:a.defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,replace:a.replace,state:a.state,fromRouteId:n,flushSync:a.flushSync,viewTransition:a.viewTransition})},[r,i,t,n])}function Lr(e,{relative:t}={}){let{basename:n}=M.useContext(P),r=M.useContext(nn);N(r,`useFormAction must be used inside a RouteContext`);let[i]=r.matches.slice(-1),a={...yn(e||`.`,{relative:t})},o=F();if(e==null){a.search=o.search;let e=new URLSearchParams(a.search),t=e.getAll(`index`);if(t.some(e=>e===``)){e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();a.search=n?`?${n}`:``}}return(!e||e===`.`)&&i.route.index&&(a.search=a.search?a.search.replace(/^\?/,`?index&`):`?index`),n!==`/`&&(a.pathname=a.pathname===`/`?n:kt([n,a.pathname])),Ze(a)}function Rr(e,{relative:t}={}){let n=M.useContext(Qt);N(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=Mr(`useViewTransitionState`),i=yn(e,{relative:t});if(!n.isTransitioning)return!1;let a=xt(n.currentLocation.pathname,r)||n.currentLocation.pathname,o=xt(n.nextLocation.pathname,r)||n.nextLocation.pathname;return _t(i.pathname,o)!=null||_t(i.pathname,a)!=null}var zr=[{id:`overview`,label:`Overview`,leaves:[{path:`/overview`,label:`Fleet Dashboard`,description:`Repos, activity, runs, swarms, MCP health, genome, and daemon status at a glance.`,implemented:!0},{path:`/agent-os`,label:`Agent OS`,description:`Authenticated, observation-only decision spine for capability runway and value bets.`,implemented:!0},{path:`/universe`,label:`Universe`,description:`Compare experiments, follow variant lineages, and inspect the retained population.`,implemented:!0}]},{id:`journal`,label:`Journal`,leaves:[{path:`/journal`,label:`Work Journal`,description:`Chronological, filterable, scrubable record of runs, merges, judge verdicts, and daemon ticks — with live streaming into any in-progress run.`,implemented:!0}]},{id:`work`,label:`Work`,leaves:[{path:`/work/runs`,label:`Runs`,description:`Dispatched goal runs and their token burn.`,implemented:!0},{path:`/work/swarms`,label:`Swarms`,description:`Multi-task DAG runs with live burndown.`,implemented:!0}]},{id:`inbox`,label:`Inbox`,leaves:[{path:`/inbox`,label:`Proposals`,description:`Review, filter, and approve/reject proposals — including history (rejected/approved).`,implemented:!0}]},{id:`control`,label:`Control`,leaves:[{path:`/control/daemon`,label:`Daemon`,description:`Autonomous operator state, spend, and direction mode.`,implemented:!0},{path:`/control/fleet`,label:`Fleet`,description:`Queue depth, lease health, and the kill switch.`,implemented:!0},{path:`/control/security`,label:`Security`,description:`Supply-chain / binshield findings from the cached backlog.`,implemented:!0}]},{id:`intelligence`,label:`Intelligence`,leaves:[{path:`/intelligence/pulse`,label:`Pulse`,description:`Activity rollups over the dashboard window.`,implemented:!0},{path:`/intelligence/genome`,label:`Genome`,description:`Cross-repo knowledge search and recall.`,implemented:!0},{path:`/intelligence/production`,label:`Production`,description:`Ships-per-day, judge verdicts, auto-merges.`,implemented:!0}]},{id:`portfolio`,label:`Portfolio`,leaves:[{path:`/portfolio`,label:`Portfolio`,description:`Org-level roll-up across enrolled repos.`,implemented:!0}]},{id:`goals`,label:`Goals`,leaves:[{path:`/goals`,label:`Goals`,description:`Active goals and milestone progress.`,implemented:!0}]}],Br=zr.flatMap(e=>e.leaves),Vr={sidebar:`_sidebar_vbjva_1`,brand:`_brand_vbjva_11`,brandMark:`_brandMark_vbjva_19`,group:`_group_vbjva_23`,groupLabel:`_groupLabel_vbjva_27`,leaves:`_leaves_vbjva_37`,link:`_link_vbjva_43`,active:`_active_vbjva_60`,soon:`_soon_vbjva_66`},L=n();function Hr(){return(0,L.jsxs)(`nav`,{className:Vr.sidebar,"aria-label":`Primary`,children:[(0,L.jsxs)(`div`,{className:Vr.brand,children:[(0,L.jsx)(`span`,{className:Vr.brandMark,"aria-hidden":`true`,children:`▲`}),(0,L.jsx)(`span`,{className:Vr.brandName,children:`ashlr`})]}),zr.map(e=>(0,L.jsxs)(`div`,{className:Vr.group,children:[(0,L.jsx)(`h2`,{className:Vr.groupLabel,children:e.label}),(0,L.jsx)(`ul`,{className:Vr.leaves,children:e.leaves.map(e=>(0,L.jsx)(`li`,{children:(0,L.jsxs)(kr,{to:e.path,className:({isActive:e})=>`${Vr.link} ${e?Vr.active:``}`,children:[e.label,e.implemented?null:(0,L.jsx)(`span`,{className:Vr.soon,children:`soon`})]})},e.path))})]},e.id))]})}var Ur=18e4,Wr=72e5,Gr=864e5;function Kr(e){let t=e.toLowerCase();return t.includes(`proposal`)||t.includes(`inbox`)?`/inbox`:t.includes(`security`)||t.includes(`audit`)?`/control/security`:t.includes(`evidence`)||t.includes(`fleet`)||t.includes(`queue`)?`/control/fleet`:`/control/daemon`}function qr(e){let t=[],n=Date.now();for(let r of e.fleet?.nextActions??[])t.push({id:`next-action-${r.id}`,category:`action-required`,severity:r.priority,title:r.label,detail:r.detail,ts:new Date(n).toISOString(),actionHref:Kr(r.id),actionLabel:`Inspect`});let r=e.fleet?.autonomousShipReadiness;r&&(r.verdict===`blocked`&&r.topBlocker?t.push({id:`readiness-blocked-${r.topBlocker.id}`,category:`readiness`,severity:r.topBlocker.severity,title:`Autonomous readiness is blocked`,detail:r.topBlocker.detail,ts:r.freshness.generatedAt,actionHref:`/control/fleet`,actionLabel:`Inspect fleet`}):r.verdict===`unknown`&&t.push({id:`readiness-unknown`,category:`readiness`,severity:`medium`,title:`Autonomous readiness is unknown`,detail:`Fresh, authoritative state is required before autonomous operation can be treated as clear.`,ts:r.freshness.generatedAt,actionHref:`/control/fleet`,actionLabel:`Inspect fleet`}));let i=e.control?.security;if(i?.available){if(i.counts.critical>0){let e=i.findings.find(e=>e.severity===`critical`);t.push({id:`security-critical`,category:`security`,severity:`critical`,title:`${i.counts.critical} critical security finding${i.counts.critical===1?``:`s`}`,detail:e?`${e.repo}: ${e.title}`:`See the security backlog for details.`,ts:new Date(n).toISOString(),actionHref:`/control/security`,actionLabel:`Review findings`})}else if(i.counts.high>0){let e=i.findings.find(e=>e.severity===`high`);t.push({id:`security-high`,category:`security`,severity:`high`,title:`${i.counts.high} high-severity security finding${i.counts.high===1?``:`s`}`,detail:e?`${e.repo}: ${e.title}`:`See the security backlog for details.`,ts:new Date(n).toISOString(),actionHref:`/control/security`,actionLabel:`Review findings`})}}for(let r of e.control?.limits??[])r.standing===`over`?t.push({id:`budget-over-${r.backend}-${r.window}`,category:`budget`,severity:`high`,title:`${r.backend} is over its ${r.window} limit`,detail:`${r.used.toLocaleString()} / ${r.max.toLocaleString()} used.`,ts:new Date(n).toISOString(),actionHref:`/control/daemon`,actionLabel:`Review usage`}):r.standing===`warn`&&t.push({id:`budget-warn-${r.backend}-${r.window}`,category:`budget`,severity:`medium`,title:`${r.backend} is approaching its ${r.window} limit`,detail:`${r.used.toLocaleString()} / ${r.max.toLocaleString()} used.`,ts:new Date(n).toISOString(),actionHref:`/control/daemon`,actionLabel:`Review usage`});let a=e.control?.daemon;if(a&&(a.sourceQuality.sourceState!==`healthy`||a.sourceQuality.complete===!1)){let e=a.sourceQuality.reason;t.push({id:`daemon-health-degraded`,category:`daemon-health`,severity:e===`missing`||e===`unavailable`?`high`:`medium`,title:`Daemon state cannot be confirmed`,detail:e?`Source: ${e}.`:`The daemon state source is degraded or incomplete.`,ts:new Date(n).toISOString(),actionHref:`/control/daemon`,actionLabel:`Inspect daemon`,sourceQuality:a.sourceQuality})}if(e.inbox&&e.inbox.pending>0){let r=e.inbox.proposals.reduce((e,t)=>{let n=new Date(t.createdAt).getTime();return e===null||n<e?n:e},null),i=r===null?0:n-r,a=i>Wr?`high`:`medium`;t.push({id:`proposal-backlog`,category:`proposal`,severity:a,title:`${e.inbox.pending} proposal${e.inbox.pending===1?``:`s`} awaiting review`,detail:i>Wr?`Oldest has been waiting ${Math.round(i/36e5)}h.`:`Approve, reject, or leave for autonomous handling per policy.`,ts:r===null?new Date(n).toISOString():new Date(r).toISOString(),actionHref:`/inbox`,actionLabel:`Open inbox`})}for(let r of e.runs??[]){if(r.status===`failed`||r.status===`aborted`){if(n-new Date(r.updatedAt).getTime()>Gr)continue;t.push({id:`run-failed-${r.id}`,category:`run`,severity:r.status===`failed`?`high`:`medium`,title:`Run ${r.status}: ${r.goal}`,detail:r.result??r.terminationReason??`Run ${r.id} ${r.status}.`,ts:r.updatedAt,actionHref:`/work/runs/${r.id}`,actionLabel:`Open run`});continue}if(r.status===`running`){let e=n-new Date(r.updatedAt).getTime();e>Ur&&t.push({id:`run-stalled-${r.id}`,category:`run`,severity:`medium`,title:`No update from a running run in ${Math.round(e/6e4)}m`,detail:r.goal,ts:r.updatedAt,actionHref:`/work/runs/${r.id}`,actionLabel:`Watch live`})}}return t}function Jr(e){let t={critical:0,high:1,medium:2,low:3,info:4};return[...e].sort((e,n)=>{let r=t[e.severity]-t[n.severity];return r===0?new Date(n.ts).getTime()-new Date(e.ts).getTime():r})}var Yr=`ashlr.notifications.mutedCategories.v1`,Xr=`ashlr.notifications.desktopEnabled.v1`;function Zr(){try{let e=localStorage.getItem(Yr);if(!e)return new Set;let t=JSON.parse(e);if(Array.isArray(t))return new Set(t)}catch{}return new Set}function Qr(e){try{localStorage.setItem(Yr,JSON.stringify([...e]))}catch{}}function $r(){try{return localStorage.getItem(Xr)===`1`}catch{return!1}}function ei(){return typeof Notification>`u`?`unsupported`:Notification.permission}var ti=Zr(),ni=[],ri=!1,ii=$r(),ai=new Set,oi={items:[],panelOpen:!1,mutedCategories:[...ti],desktopEnabled:ii,desktopPermission:ei()},si=new Set;function ci(){for(let e of si)e()}function li(){oi={items:Jr(ni.filter(e=>!ti.has(e.category))),panelOpen:ri,mutedCategories:[...ti],desktopEnabled:ii,desktopPermission:ei()},ci()}function ui(e){return si.add(e),()=>si.delete(e)}function di(){return oi}function fi(e){let t=new Set(ni.map(e=>e.id));if(ni=e,ii&&ei()===`granted`){for(let n of e)if(!ti.has(n.category)&&(n.severity===`critical`||n.severity===`high`)&&!(t.has(n.id)||ai.has(n.id))){ai.add(n.id);try{new Notification(n.title,{body:n.detail,tag:n.id})}catch{}}}for(let t of e)ai.add(t.id);li()}function pi(){ri=!0,li()}function mi(){ri=!1,li()}function hi(){ri=!ri,li()}function gi(e){return ti.has(e)}function _i(e,t){t?ti.add(e):ti.delete(e),Qr(ti),li()}async function vi(){if(typeof Notification>`u`)return`unsupported`;let e=Notification.permission;e==="default"&&(e=await Notification.requestPermission()),ii=e===`granted`;try{localStorage.setItem(Xr,ii?`1`:`0`)}catch{}return li(),e}function yi(){ii=!1;try{localStorage.setItem(Xr,`0`)}catch{}li()}function bi(){return(0,M.useSyncExternalStore)(ui,di,di)}var xi={bell:`_bell_c1uhc_1`,badge:`_badge_c1uhc_25`,badgeUrgent:`_badgeUrgent_c1uhc_41`};function Si(){let{items:e}=bi(),t=e.filter(e=>e.severity===`critical`||e.severity===`high`).length,n=e.length,r=(0,M.useRef)(t),[i,a]=(0,M.useState)(``);return(0,M.useEffect)(()=>{if(t>r.current){let e=t-r.current;a(`${e} new urgent notification${e===1?``:`s`}, ${t} urgent total.`)}r.current=t},[t]),(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`button`,{type:`button`,className:xi.bell,onClick:hi,"aria-haspopup":`dialog`,"aria-label":n===0?`Notifications, none open`:`Notifications, ${n} open, ${t} urgent`,children:[(0,L.jsx)(`span`,{"aria-hidden":`true`,children:`🔔`}),n>0?(0,L.jsx)(`span`,{className:`${xi.badge} ${t>0?xi.badgeUrgent:``}`,"aria-hidden":`true`,children:n>99?`99+`:n}):null]}),(0,L.jsx)(`div`,{"aria-live":`polite`,className:`visually-hidden`,children:i})]})}function Ci(e){switch(e){case`critical`:return`danger`;case`high`:return`warning`;case`medium`:return`running`;case`low`:return`neutral`;case`info`:return`info`}}var wi={"action-required":`Action required`,readiness:`Autonomous readiness`,security:`Security`,budget:`Budget & limits`,"daemon-health":`Daemon health`,proposal:`Proposals`,run:`Runs`,"log-source":`Log source`},Ti={item:`_item_1gxz9_1`,top:`_top_1gxz9_15`,category:`_category_1gxz9_21`,time:`_time_1gxz9_26`,title:`_title_1gxz9_32`,detail:`_detail_1gxz9_39`,actions:`_actions_1gxz9_45`,actionLink:`_actionLink_1gxz9_52`,muteBtn:`_muteBtn_1gxz9_58`};function Ei(e){let t=Math.max(0,Math.round((Date.now()-new Date(e).getTime())/1e3));if(t<5)return`just now`;if(t<60)return`${t}s ago`;let n=Math.round(t/60);if(n<60)return`${n}m ago`;let r=Math.round(n/60);return r<48?`${r}h ago`:`${Math.round(r/24)}d ago`}function Di({item:e}){let t=gi(e.category);return(0,L.jsxs)(`article`,{className:Ti.item,"data-focus-key":`notification-${e.id}`,children:[(0,L.jsxs)(`div`,{className:Ti.top,children:[(0,L.jsx)(E,{status:e.severity,tone:Ci(e.severity),children:e.severity.toUpperCase()}),(0,L.jsx)(`span`,{className:Ti.category,children:wi[e.category]}),(0,L.jsx)(`span`,{className:Ti.time,title:new Date(e.ts).toLocaleString(),children:Ei(e.ts)})]}),(0,L.jsx)(`h3`,{className:Ti.title,children:e.title}),(0,L.jsx)(`p`,{className:Ti.detail,children:e.sourceQuality?(0,L.jsx)(T,{quality:e.sourceQuality,label:e.title,children:e.detail}):e.detail}),(0,L.jsxs)(`div`,{className:Ti.actions,children:[e.actionHref?(0,L.jsx)(`a`,{className:Ti.actionLink,href:`#${e.actionHref}`,"data-focus-key":`notification-${e.id}-action`,children:e.actionLabel??`Open`}):null,(0,L.jsx)(`button`,{type:`button`,className:Ti.muteBtn,onClick:()=>_i(e.category,!t),"aria-pressed":t,children:t?`Unmute ${wi[e.category]}`:`Mute ${wi[e.category]}`})]})]})}function Oi(){let e=g(me),t=g(he),n=g(ve),r=g(ae),i=e.data,a=t.data,o=n.data,s=r.data;(0,M.useEffect)(()=>{fi(qr({control:i,fleet:a,runs:o,inbox:s}))},[i,a,o,s])}var ki={drawer:`_drawer_itt3q_1`,titleRow:`_titleRow_itt3q_16`,closeBtn:`_closeBtn_itt3q_23`,header:`_header_itt3q_37`,desktopToggle:`_desktopToggle_itt3q_42`,clear:`_clear_itt3q_57`,list:`_list_itt3q_66`,journalLink:`_journalLink_itt3q_77`};function Ai(){Oi();let{items:e,panelOpen:t,desktopEnabled:n,desktopPermission:r}=bi(),i=(0,M.useRef)(null);async function a(){n?yi():await vi()}return(0,L.jsxs)(S,{open:t,onClose:mi,titleId:`notification-center-title`,title:(0,L.jsxs)(`span`,{className:ki.titleRow,children:[(0,L.jsx)(`span`,{children:`Notifications`}),(0,L.jsx)(`button`,{type:`button`,ref:i,className:ki.closeBtn,onClick:mi,"aria-label":`Close notifications`,children:`×`})]}),widthClassName:ki.drawer,initialFocusRef:i,children:[(0,L.jsx)(`div`,{className:ki.header,children:(0,L.jsx)(`button`,{type:`button`,className:ki.desktopToggle,onClick:()=>void a(),disabled:r===`unsupported`||r===`denied`,children:r===`unsupported`?`Desktop alerts not supported in this browser`:r===`denied`?`Desktop alerts blocked in browser settings`:n?`🔔 Desktop alerts on`:`🔕 Desktop alerts off — enable`})}),e.length===0?(0,L.jsxs)(`div`,{className:ki.clear,children:[(0,L.jsx)(`strong`,{children:`Nothing needs you right now.`}),(0,L.jsx)(`span`,{children:`The fleet is operating within its observed authority.`})]}):(0,L.jsx)(`ul`,{className:ki.list,children:e.map(e=>(0,L.jsx)(`li`,{children:(0,L.jsx)(Di,{item:e})},e.id))}),(0,L.jsx)(`a`,{href:`#/journal`,className:ki.journalLink,onClick:mi,children:`See full history in the Work Journal →`})]})}var ji={topbar:`_topbar_nwlse_1`,paletteTrigger:`_paletteTrigger_nwlse_12`,kbd:`_kbd_nwlse_32`,actions:`_actions_nwlse_41`,lockedIndicator:`_lockedIndicator_nwlse_47`,lockBtn:`_lockBtn_nwlse_52`,themeBtn:`_themeBtn_nwlse_60`};function Mi({onOpenPalette:e}){let{theme:t,cycle:n}=d(),r=u();return(0,L.jsxs)(`header`,{className:ji.topbar,children:[(0,L.jsxs)(`button`,{type:`button`,className:ji.paletteTrigger,onClick:e,children:[(0,L.jsx)(`span`,{children:`Search or run a command`}),(0,L.jsx)(`kbd`,{className:ji.kbd,children:`⌘K`})]}),(0,L.jsxs)(`div`,{className:ji.actions,children:[(0,L.jsx)(Si,{}),r.hasHold?(0,L.jsx)(`button`,{type:`button`,className:ji.lockBtn,onClick:r.clear,title:`Lock actions now`,children:`🔓 Unlocked`}):(0,L.jsx)(`span`,{className:ji.lockedIndicator,title:`Actions require the dispatch token`,children:`🔒 Locked`}),(0,L.jsx)(`button`,{type:`button`,className:ji.themeBtn,onClick:n,"aria-label":`Theme: ${t}`,children:t===`system`?`🖥️`:t===`light`?`☀️`:`🌙`})]}),(0,L.jsx)(Ai,{})]})}var Ni=r(t(),1),Pi=Br.map(e=>({id:`nav:${e.path}`,title:e.label,subtitle:e.description,group:`Navigate`,run:t=>t(e.path)})),Fi=[{id:`action:pause-fleet`,title:`Pause fleet`,subtitle:`Engage the fleet kill switch`,group:`Actions`,keywords:[`stop`,`kill`,`halt`],requiresConfirm:{title:`Pause the fleet?`,body:`This engages the global kill switch. Autonomous dispatch halts fleet-wide until explicitly resumed.`,confirmLabel:`Yes, pause`},requiresMutationToken:!0,run:async()=>{await xe()}},{id:`action:resume-fleet`,title:`Resume fleet`,subtitle:`Clear the fleet kill switch`,group:`Actions`,keywords:[`start`,`unpause`],requiresConfirm:{title:`Resume the fleet?`,body:`This clears the global kill switch. Autonomous dispatch will resume across the fleet.`,confirmLabel:`Yes, resume`},requiresMutationToken:!0,run:async()=>{await be()}},{id:`action:open-notifications`,title:`Open notification centre`,subtitle:`What needs you right now, ranked by severity`,group:`Actions`,keywords:[`alerts`,`attention`,`bell`,`needs you`],run:()=>{pi()}},{id:`action:toggle-theme`,title:`Toggle theme`,subtitle:`Cycle system → light → dark`,group:`Actions`,keywords:[`dark mode`,`light mode`,`appearance`,`dark`,`light`],run:()=>{x()}},{id:`action:open-journal-today`,title:`Open journal — today`,subtitle:`Work journal filtered to today`,group:`Actions`,keywords:[`journal`,`today`,`log`,`history`],run:e=>{e(`/journal`,{state:{windowToday:!0}})}}],Ii=[...Pi,...Fi];function Li(){_(ve.key,ve.fetch),_(k.key,k.fetch);let e=_e({status:`all`,limit:500});_(e.key,e.fetch)}var Ri=5,zi=2;function Bi(e,t){return e.toLowerCase().includes(t)}function Vi(e){let t=e.trim().toLowerCase();if(t.length<zi)return[];let n=[],r=o(ve.key).data??[];for(let e of r){if(n.length>=Ri)break;(Bi(e.id,t)||Bi(e.goal,t))&&n.push({id:`jump:run:${e.id}`,title:e.goal,subtitle:`Run ${e.id} · ${e.status}`,group:`Jump to`,run:t=>t(`/work/runs/${e.id}`)})}let i=o(k.key).data??[],a=0;for(let e of i){if(a>=Ri)break;(Bi(e.id,t)||Bi(e.objective,t))&&(a++,n.push({id:`jump:goal:${e.id}`,title:e.objective,subtitle:`Goal ${e.id} · ${e.status}`,group:`Jump to`,run:e=>e(`/goals`)}))}let s=_e({status:`all`,limit:500}).key,c=o(s).data?.proposals??[],l=0;for(let e of c){if(l>=Ri)break;(Bi(e.id,t)||Bi(e.title,t))&&(l++,n.push({id:`jump:proposal:${e.id}`,title:e.title,subtitle:`Proposal ${e.id} · ${e.status}`,group:`Jump to`,run:t=>t(`/inbox/${encodeURIComponent(e.id)}`)}))}return n}var Hi=/^\/inbox\/([^/]+)$/;function Ui(e){let t=Hi.exec(e);if(!t)return[];let n=decodeURIComponent(t[1]),r=o(`proposal-detail-${n}`).data;return!r||r.status!==`pending`?[]:[{id:`action:approve-proposal:${n}`,title:`Approve "${r.title}"`,subtitle:`Writes the diff to disk and dispatches it`,group:`Actions`,keywords:[`approve`,`ship`,`proposal`],requiresConfirm:{title:`Approve this proposal?`,body:`"${r.title}" will be applied. This writes the diff to disk and dispatches it.`,confirmLabel:`Approve`},requiresMutationToken:!0,run:async()=>{await Ce(n)}},{id:`action:reject-proposal:${n}`,title:`Reject "${r.title}"`,subtitle:`Cannot be undone`,group:`Actions`,keywords:[`reject`,`decline`,`proposal`],requiresConfirm:{title:`Reject this proposal?`,body:`"${r.title}" will be rejected. This cannot be undone.`,confirmLabel:`Reject`,destructive:!0},requiresMutationToken:!0,run:async()=>{await Se(n)}}]}function Wi(e,t=[]){let n=e.trim().toLowerCase(),r=[...t,...Ii];return[...n?r.filter(e=>{let t=[e.title,e.subtitle??``,...e.keywords??[]].join(` `).toLowerCase();return n.split(/\s+/).every(e=>t.includes(e))}):r,...Vi(e)]}var Gi={backdrop:`_backdrop_1odjm_1`,panel:`_panel_1odjm_12`,input:`_input_1odjm_24`,list:`_list_1odjm_37`,item:`_item_1odjm_42`,active:`_active_1odjm_51`,itemTitle:`_itemTitle_1odjm_55`,itemSubtitle:`_itemSubtitle_1odjm_61`,itemGroup:`_itemGroup_1odjm_67`,empty:`_empty_1odjm_75`};function Ki(e){(0,M.useEffect)(()=>{function t(t){(t.metaKey||t.ctrlKey)&&t.key.toLowerCase()===`k`&&(t.preventDefault(),e(!0))}return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[e])}function qi({open:e,onClose:t}){let[n,r]=(0,M.useState)(``),[i,a]=(0,M.useState)(0),[o,s]=(0,M.useState)(null),[c,l]=(0,M.useState)(!1),[u,d]=(0,M.useState)(!1),f=(0,M.useRef)(null),m=(0,M.useId)(),h=mn(),g=F(),_=De(),v=(0,M.useMemo)(()=>e?Ui(g.pathname):[],[e,g.pathname]),y=(0,M.useMemo)(()=>Wi(n,v),[n,v]);(0,M.useEffect)(()=>{if(!e)return;let t=document.activeElement;r(``),a(0),Li();let n=requestAnimationFrame(()=>f.current?.focus());return()=>{cancelAnimationFrame(n),t?.focus()}},[e]),(0,M.useEffect)(()=>{a(0)},[n]),(0,M.useEffect)(()=>{a(e=>Math.min(e,Math.max(y.length-1,0)))},[y.length]);async function b(e){try{await e.run((e,t)=>h(e,t))}catch(e){_.show(e instanceof Error?e.message:`Command failed.`,`danger`)}finally{s(null)}}function x(e){if(t(),e.requiresConfirm){s(e),l(!0);return}if(e.requiresMutationToken&&!p()){s(e),d(!0);return}b(e)}function S(){l(!1),o&&(o.requiresMutationToken&&!p()?d(!0):b(o))}function C(){l(!1),s(null)}function w(e){if(e.key===`Escape`){t();return}if(e.key===`Tab`){e.preventDefault();return}if(e.key===`ArrowDown`)e.preventDefault(),a(e=>Math.min(e+1,y.length-1));else if(e.key===`ArrowUp`)e.preventDefault(),a(e=>Math.max(e-1,0));else if(e.key===`Enter`){e.preventDefault();let t=y[i];t&&x(t)}}return(0,L.jsxs)(L.Fragment,{children:[e?(0,Ni.createPortal)((0,L.jsx)(`div`,{className:Gi.backdrop,onMouseDown:e=>e.target===e.currentTarget&&t(),children:(0,L.jsxs)(`div`,{className:Gi.panel,role:`dialog`,"aria-modal":`true`,"aria-label":`Command palette`,children:[(0,L.jsx)(`input`,{ref:f,className:Gi.input,value:n,onChange:e=>r(e.target.value),onKeyDown:w,placeholder:`Navigate or run a command…`,role:`combobox`,"aria-expanded":`true`,"aria-controls":m,"aria-activedescendant":y[i]?`cmd-${y[i].id}`:void 0,autoComplete:`off`}),(0,L.jsx)(`ul`,{id:m,role:`listbox`,className:Gi.list,children:y.length===0?(0,L.jsx)(`li`,{className:Gi.empty,children:`No matching commands.`}):y.map((e,t)=>(0,L.jsxs)(`li`,{id:`cmd-${e.id}`,role:`option`,"aria-selected":t===i,className:`${Gi.item} ${t===i?Gi.active:``}`,onMouseEnter:()=>a(t),onMouseDown:t=>{t.preventDefault(),x(e)},children:[(0,L.jsx)(`span`,{className:Gi.itemTitle,children:e.title}),e.subtitle?(0,L.jsx)(`span`,{className:Gi.itemSubtitle,children:e.subtitle}):null,(0,L.jsx)(`span`,{className:Gi.itemGroup,children:e.group})]},e.id))})]})}),document.body):null,o?.requiresConfirm?(0,L.jsx)(Te,{open:c,onClose:C,title:o.requiresConfirm.title,body:o.requiresConfirm.body,confirmLabel:o.requiresConfirm.confirmLabel,destructive:o.requiresConfirm.destructive,onConfirm:S}):null,(0,L.jsx)(we,{open:u,onClose:()=>{d(!1),s(null)},onUnlocked:()=>{let e=o;d(!1),s(null),e&&b(e)},reason:o?`"${o.title}" requires the dispatch token.`:void 0})]})}var Ji={shell:`_shell_2db09_1`,body:`_body_2db09_9`,main:`_main_2db09_17`};function Yi(){let e=(0,M.useRef)(null),t=F(),[n,r]=(0,M.useState)(!1);return ke(t.pathname,e),Ki(r),(0,L.jsxs)(`div`,{className:Ji.shell,children:[(0,L.jsx)(Hr,{}),(0,L.jsxs)(`div`,{className:Ji.body,children:[(0,L.jsx)(Mi,{onOpenPalette:()=>r(!0)}),(0,L.jsx)(`main`,{ref:e,className:Ji.main,id:`main-content`,tabIndex:-1,children:(0,L.jsx)(Oe,{resetKey:t.pathname,children:(0,L.jsx)(Vn,{})})})]}),(0,L.jsx)(qi,{open:n,onClose:()=>r(!1)})]})}var Xi={wrap:`_wrap_152mr_1`,title:`_title_152mr_6`,description:`_description_152mr_13`,note:`_note_152mr_19`};function Zi({title:e,description:t}){return(0,L.jsxs)(`div`,{className:Xi.wrap,children:[(0,L.jsx)(`h1`,{className:Xi.title,children:e}),(0,L.jsx)(`p`,{className:Xi.description,children:t}),(0,L.jsx)(`p`,{className:Xi.note,children:`Not built yet — this route, its nav entry, and its ⌘K command all already work.`})]})}var Qi={grid:`_grid_1exd8_1`,stat:`_stat_1exd8_7`,statLabel:`_statLabel_1exd8_17`,statValue:`_statValue_1exd8_24`,statCaption:`_statCaption_1exd8_30`};function $i(){return(0,L.jsx)(v,{count:6})}function ea({label:e,value:t,caption:n}){return(0,L.jsxs)(`div`,{className:Qi.stat,children:[(0,L.jsx)(`span`,{className:Qi.statLabel,children:e}),(0,L.jsx)(`span`,{className:Qi.statValue,children:t}),n?(0,L.jsx)(`span`,{className:Qi.statCaption,children:n}):null]})}function ta({snapshot:e}){let t=e.mcp.filter(e=>e.ok).length;return(0,L.jsxs)(`div`,{className:Qi.grid,children:[(0,L.jsx)(ea,{label:`Repos`,value:String(e.repos.total),caption:`${e.repos.dirty} dirty · ${e.repos.stale} stale`}),(0,L.jsx)(ea,{label:`Tools`,value:`${e.tools.installed}/${e.tools.total}`,caption:`installed`}),(0,L.jsx)(ea,{label:`Activity`,value:String(e.activity.sessions),caption:`${e.activity.tokens.toLocaleString()} tok · $${e.activity.estCostUsd.toFixed(2)}`}),(0,L.jsx)(ea,{label:`MCP`,value:`${t}/${e.mcp.length}`,caption:`reachable`}),(0,L.jsx)(ea,{label:`Genome`,value:String(e.genome.entries),caption:`${e.genome.projects} projects`}),(0,L.jsx)(ea,{label:`Inbox`,value:String(e.inbox.pending),caption:`pending`})]})}var R={panel:`_panel_1gx0q_3`,panelHeader:`_panelHeader_1gx0q_10`,panelTitle:`_panelTitle_1gx0q_25`,panelBody:`_panelBody_1gx0q_33`,emptyState:`_emptyState_1gx0q_37`},na={table:`_table_78j3m_1`,statusCol:`_statusCol_78j3m_27`,tokensCol:`_tokensCol_78j3m_31`,goalLink:`_goalLink_78j3m_35`,tokens:`_tokens_78j3m_31`};function ra(){return(0,L.jsxs)(`details`,{className:R.panel,open:!0,"data-state-key":`fleet-dashboard-runs`,children:[(0,L.jsx)(`summary`,{className:R.panelHeader,children:(0,L.jsx)(`span`,{className:R.panelTitle,children:`Recent runs`})}),(0,L.jsxs)(`div`,{className:R.panelBody,children:[(0,L.jsx)(c,{}),(0,L.jsx)(c,{}),(0,L.jsx)(c,{})]})]})}function ia({runs:e}){return(0,L.jsxs)(`details`,{className:R.panel,open:!0,"data-state-key":`fleet-dashboard-runs`,children:[(0,L.jsxs)(`summary`,{className:R.panelHeader,children:[(0,L.jsx)(`span`,{className:R.panelTitle,children:`Recent runs`}),(0,L.jsx)(`span`,{className:`text-tertiary text-xs`,children:e.length})]}),(0,L.jsx)(`div`,{className:R.panelBody,children:e.length===0?(0,L.jsx)(`p`,{className:R.emptyState,children:`No runs yet.`}):(0,L.jsxs)(`table`,{className:na.table,children:[(0,L.jsx)(`thead`,{children:(0,L.jsxs)(`tr`,{children:[(0,L.jsx)(`th`,{scope:`col`,children:`Goal`}),(0,L.jsx)(`th`,{scope:`col`,className:na.statusCol,children:`Status`}),(0,L.jsx)(`th`,{scope:`col`,className:na.tokensCol,children:`Tokens`})]})}),(0,L.jsx)(`tbody`,{children:e.map(e=>(0,L.jsxs)(`tr`,{children:[(0,L.jsx)(`td`,{children:(0,L.jsx)(`a`,{href:`#/work/runs/${e.id}`,"data-focus-key":`run-${e.id}`,className:na.goalLink,title:e.goal,children:e.goal})}),(0,L.jsx)(`td`,{children:(0,L.jsx)(E,{status:e.status})}),(0,L.jsx)(`td`,{className:na.tokens,children:e.tokens.toLocaleString()})]},e.id))})]})})]})}var aa={list:`_list_1fq6m_1`,item:`_item_1fq6m_7`,itemHeader:`_itemHeader_1fq6m_13`,goal:`_goal_1fq6m_21`,burndown:`_burndown_1fq6m_42`,burndownTrack:`_burndownTrack_1fq6m_48`,burndownFill:`_burndownFill_1fq6m_56`,burndownLabel:`_burndownLabel_1fq6m_63`};function oa({swarms:e}){return(0,L.jsxs)(`details`,{className:R.panel,open:!0,"data-state-key":`fleet-dashboard-swarms`,children:[(0,L.jsxs)(`summary`,{className:R.panelHeader,children:[(0,L.jsx)(`span`,{className:R.panelTitle,children:`Swarms`}),(0,L.jsx)(`span`,{className:`text-tertiary text-xs`,children:e.length})]}),(0,L.jsx)(`div`,{className:R.panelBody,children:e.length===0?(0,L.jsx)(`p`,{className:R.emptyState,children:`No active swarms.`}):(0,L.jsx)(`ul`,{className:aa.list,children:e.map((e,t)=>{let n=e.tasksTotal>0?Math.round(e.tasksDone/e.tasksTotal*100):0;return(0,L.jsxs)(`li`,{className:aa.item,children:[(0,L.jsxs)(`a`,{href:`#/work/swarms/${e.id}`,"data-focus-key":`swarm-${e.id}`,className:aa.itemHeader,title:e.goal,children:[e.phase?(0,L.jsx)(D,{index:t}):null,(0,L.jsx)(`span`,{className:aa.goal,children:e.goal}),(0,L.jsx)(E,{status:e.status})]}),(0,L.jsxs)(`div`,{className:aa.burndown,children:[(0,L.jsx)(`div`,{className:aa.burndownTrack,children:(0,L.jsx)(`div`,{className:aa.burndownFill,style:{width:`${n}%`}})}),(0,L.jsxs)(`span`,{className:aa.burndownLabel,children:[e.tasksDone,`/`,e.tasksTotal,e.phase?` · ${e.phase}`:``]})]})]},e.id)})})})]})}var sa={grid:`_grid_qy4m7_1`};function ca(){return(0,L.jsxs)(`details`,{className:R.panel,open:!0,"data-state-key":`fleet-dashboard-daemon`,children:[(0,L.jsx)(`summary`,{className:R.panelHeader,children:(0,L.jsx)(`span`,{className:R.panelTitle,children:`Daemon`})}),(0,L.jsx)(`div`,{className:R.panelBody,children:(0,L.jsx)(f,{width:`40%`})})]})}function la({daemon:e}){return(0,L.jsxs)(`details`,{className:R.panel,open:!0,"data-state-key":`fleet-dashboard-daemon`,children:[(0,L.jsxs)(`summary`,{className:R.panelHeader,children:[(0,L.jsx)(`span`,{className:R.panelTitle,children:`Daemon`}),(0,L.jsx)(T,{quality:e.sourceQuality,label:`daemon state`,children:(0,L.jsx)(E,{status:e.running?`running`:`pending`,children:e.running?`running`:`stopped`})})]}),(0,L.jsx)(`div`,{className:R.panelBody,children:(0,L.jsxs)(`dl`,{className:sa.grid,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Runtime state`}),(0,L.jsx)(`dd`,{children:(0,L.jsx)(T,{quality:e.sourceQuality,label:`runtime state`,children:e.runtimeState})})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`PID`}),(0,L.jsx)(`dd`,{children:(0,L.jsx)(T,{quality:e.sourceQuality,label:`pid`,children:e.pid??`—`})})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Today's spend`}),(0,L.jsx)(`dd`,{children:(0,L.jsxs)(T,{quality:e.sourceQuality,label:`spend`,children:[`$`,e.todaySpentUsd.toFixed(2)]})})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Direction mode`}),(0,L.jsx)(`dd`,{children:(0,L.jsx)(T,{quality:e.sourceQuality,label:`direction mode`,children:e.activeDirectionMode??`none`})})]})]})})]})}var ua={view:`_view_1nttk_1`,header:`_header_1nttk_8`,title:`_title_1nttk_14`,freshness:`_freshness_1nttk_20`,freshnessLabel:`_freshnessLabel_1nttk_26`,panels:`_panels_1nttk_32`,error:`_error_1nttk_39`};function da(){let e=g(O),t=g(me);return(0,L.jsxs)(`div`,{className:ua.view,children:[(0,L.jsxs)(`header`,{className:ua.header,children:[(0,L.jsx)(`h1`,{className:ua.title,children:`Fleet Dashboard`}),(0,L.jsxs)(`div`,{className:ua.freshness,"aria-live":`polite`,children:[e.status===`refreshing`?(0,L.jsx)(A,{}):null,e.updatedAt?(0,L.jsxs)(`span`,{className:ua.freshnessLabel,children:[`Updated `,pa(e.updatedAt)]}):null]})]}),e.status===`loading`?(0,L.jsx)($i,{}):e.status===`error`?(0,L.jsx)(fa,{message:e.error?.message??`Failed to load snapshot.`}):e.data?(0,L.jsx)(ta,{snapshot:e.data}):null,(0,L.jsxs)(`div`,{className:ua.panels,children:[e.status===`loading`?(0,L.jsx)(ra,{}):e.data?(0,L.jsx)(ia,{runs:e.data.runs}):null,e.data?(0,L.jsx)(oa,{swarms:e.data.swarms}):null,t.status===`loading`?(0,L.jsx)(ca,{}):t.status===`error`?(0,L.jsx)(fa,{message:t.error?.message??`Failed to load control snapshot.`}):t.data?(0,L.jsx)(la,{daemon:t.data.daemon}):null]})]})}function fa({message:e}){return(0,L.jsx)(`div`,{className:ua.error,role:`alert`,children:e})}function pa(e){let t=Math.max(0,Math.round((Date.now()-e)/1e3));return t<5?`just now`:t<60?`${t}s ago`:`${Math.round(t/60)}m ago`}var ma={status:`connecting`,chunks:[],outputChunks:[],starts:[],stall:null,runDone:null,version:0};function ha(e){let t=e;try{return JSON.parse(t.data)}catch{return null}}function ga(e,t){let[n,r]=(0,M.useState)(ma);return(0,M.useEffect)(()=>{if(!t){r(ma);return}if(r(ma),typeof EventSource>`u`){r(e=>({...e,status:`unavailable`}));return}let n=`/api/run/${encodeURIComponent(e)}/events?client=${encodeURIComponent(s())}`,i=new EventSource(n,{withCredentials:!0});return i.onopen=()=>{r(e=>e.status===`unavailable`?e:{...e,status:`open`})},i.onerror=()=>{r(e=>e.status===`open`?e:{...e,status:`unavailable`})},i.addEventListener(`step-started`,e=>{let t=ha(e);t&&r(e=>({...e,starts:[...e.starts,t],version:e.version+1}))}),i.addEventListener(`step-output-chunk`,e=>{let t=ha(e);t&&r(e=>({...e,chunks:[...e.chunks,t],version:e.version+1}))}),i.addEventListener(`step-done`,()=>{r(e=>({...e,stall:null,version:e.version+1}))}),i.addEventListener(`output-chunk`,e=>{let t=ha(e);t&&r(e=>({...e,outputChunks:[...e.outputChunks,t],version:e.version+1}))}),i.addEventListener(`stall`,e=>{let t=ha(e);t&&r(e=>({...e,stall:{ageMs:t.ageMs,at:Date.now()},version:e.version+1}))}),i.addEventListener(`run-done`,e=>{let t=ha(e);r(e=>({...e,runDone:t??{status:`done`,result:null,terminationReason:null},stall:null,version:e.version+1}))}),()=>{i.close()}},[e,t]),n}var _a=2e3,va=_a*4;function ya(e){return e?`${e.status}:${e.steps.length}:${e.updatedAt}`:null}function ba(e){let t=(0,M.useMemo)(()=>ne(e),[e]),n=g(t),r=m(t),[i,a]=(0,M.useState)(null),[o,s]=(0,M.useState)(null),[,c]=(0,M.useState)(0),l=n.data?n.data.status!==`running`:!1,u=n.error instanceof h&&n.error.status===404,d=ga(e,!l&&!u),f=d.status===`open`?`sse`:`polling`,p=ya(n.data);(0,M.useEffect)(()=>{p!==null&&a(Date.now())},[p]),(0,M.useEffect)(()=>{if(l||u||f===`sse`)return;let e=setInterval(()=>{r(),s(Date.now()),c(e=>e+1)},_a);return()=>clearInterval(e)},[r,l,u,f]),(0,M.useEffect)(()=>{f===`sse`&&d.version!==0&&(r(),s(Date.now()))},[d.version,f,r]);let _=_a*6,v=f===`sse`&&d.stall!==null&&Date.now()-d.stall.at<_,y;return y=u?`not-found`:n.status===`error`&&n.data===void 0?`error`:n.status===`loading`?`connecting`:n.data?n.data.status===`running`?f===`sse`?v?`stalled`:`live`:i!==null&&Date.now()-i>va?`stalled`:`live`:`done`:`connecting`,{phase:y,run:n.data,error:n.error,lastChangedAt:i,lastPolledAt:o,pollNow:()=>{r(),s(Date.now())},transport:f,chunks:d.chunks,outputChunks:d.outputChunks,stallAgeMs:v?d.stall.ageMs:null}}var z={panel:`_panel_z6jlr_1`,header:`_header_z6jlr_12`,headerTop:`_headerTop_z6jlr_18`,title:`_title_z6jlr_25`,statRow:`_statRow_z6jlr_35`,banner:`_banner_z6jlr_53`,bannerWarning:`_bannerWarning_z6jlr_64`,bannerDanger:`_bannerDanger_z6jlr_69`,bannerDot:`_bannerDot_z6jlr_74`,livePulse:`_livePulse_z6jlr_1`,transcriptWrap:`_transcriptWrap_z6jlr_102`,transcript:`_transcript_z6jlr_102`,followButton:`_followButton_z6jlr_122`,empty:`_empty_z6jlr_151`,step:`_step_z6jlr_158`,stepKind:`_stepKind_z6jlr_171`,stepTime:`_stepTime_z6jlr_191`,stepTask:`_stepTask_z6jlr_195`,stepSummary:`_stepSummary_z6jlr_202`,stepUsage:`_stepUsage_z6jlr_207`},xa={plan:`Plan`,model:`Model`,tool:`Tool`,synthesize:`Synthesize`};function Sa(e,t){let n=new Date(e).getTime(),r=t?new Date(t).getTime():Date.now(),i=Math.max(0,Math.round((r-n)/1e3));return i<60?`${i}s`:`${Math.floor(i/60)}m ${i%60}s`}function Ca(e){try{return new Date(e).toLocaleTimeString(void 0,{hour12:!1})}catch{return e}}function wa({phase:e,lastChangedAt:t,stallAgeMs:n,transport:r,error:i}){if(e===`connecting`)return(0,L.jsxs)(`div`,{className:z.banner,role:`status`,children:[(0,L.jsx)(`span`,{className:z.bannerDot,"data-tone":`connecting`,"aria-hidden":`true`}),`Connecting to run…`]});if(e===`not-found`)return(0,L.jsxs)(`div`,{className:`${z.banner} ${z.bannerDanger}`,role:`alert`,children:[(0,L.jsx)(`span`,{className:z.bannerDot,"data-tone":`danger`,"aria-hidden":`true`}),`Run not found. It may have been pruned from disk since this link was opened.`]});if(e===`error`)return(0,L.jsxs)(`div`,{className:`${z.banner} ${z.bannerDanger}`,role:`alert`,children:[(0,L.jsx)(`span`,{className:z.bannerDot,"data-tone":`danger`,"aria-hidden":`true`}),`Stream disconnected`,i?`: ${i.message}`:``,`. Retrying every `,_a/1e3,`s…`]});if(e===`stalled`){let e=n===null?t===null?null:Math.round((Date.now()-t)/1e3):Math.round(n/1e3);return(0,L.jsxs)(`div`,{className:`${z.banner} ${z.bannerWarning}`,role:`status`,"aria-live":`polite`,children:[(0,L.jsx)(`span`,{className:z.bannerDot,"data-tone":`warning`,"aria-hidden":`true`}),`No change observed`,e===null?``:` in ${e}s`,` — this run may be stalled, or is simply quiet between steps. Still `,r===`sse`?`watching`:`polling`,`.`]})}return e===`live`?(0,L.jsxs)(`div`,{className:z.banner,role:`status`,children:[(0,L.jsx)(`span`,{className:z.bannerDot,"data-tone":`live`,"aria-hidden":`true`}),r===`sse`?`Live · streaming (server tail ~500ms)`:`Live · polling every ${_a/1e3}s (server refresh floor ~1.5s — this cannot be faster than that)`]}):(0,L.jsxs)(`div`,{className:z.banner,role:`status`,children:[(0,L.jsx)(`span`,{className:z.bannerDot,"data-tone":`done`,"aria-hidden":`true`}),`Run finished — no longer `,r===`sse`?`streaming`:`polling`,`.`]})}function Ta(){return(0,L.jsxs)(`div`,{className:z.panel,children:[(0,L.jsx)(f,{width:`40%`}),(0,L.jsx)(f,{width:`90%`}),(0,L.jsx)(f,{width:`70%`})]})}function Ea({runId:e}){let{phase:t,run:n,error:r,lastChangedAt:i,transport:a,stallAgeMs:o,outputChunks:s}=ba(e),c=(0,M.useRef)(null),l=(0,M.useRef)(!0),[u,d]=(0,M.useState)(!0),f=(0,M.useRef)(null),p=(0,M.useRef)(!0),[m,h]=(0,M.useState)(!0);(0,M.useEffect)(()=>{let e=c.current;e&&l.current&&(e.scrollTop=e.scrollHeight)},[n?.steps.length]),(0,M.useEffect)(()=>{let e=f.current;e&&p.current&&(e.scrollTop=e.scrollHeight)},[s.length]);function g(){let e=c.current;if(!e)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight<48;l.current=t,d(t)}function _(){let e=f.current;if(!e)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight<48;p.current=t,h(t)}function v(){l.current=!0,d(!0);let e=c.current;e&&(e.scrollTop=e.scrollHeight)}function y(){p.current=!0,h(!0);let e=f.current;e&&(e.scrollTop=e.scrollHeight)}return!n&&t===`connecting`?(0,L.jsx)(Ta,{}):(0,L.jsxs)(`div`,{className:z.panel,children:[(0,L.jsxs)(`header`,{className:z.header,children:[(0,L.jsxs)(`div`,{className:z.headerTop,children:[(0,L.jsx)(`h3`,{className:z.title,children:n?.goal??`Run ${e}`}),n?(0,L.jsx)(E,{status:n.status}):null]}),n?(0,L.jsxs)(`dl`,{className:z.statRow,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Elapsed`}),(0,L.jsx)(`dd`,{children:Sa(n.createdAt,n.status===`running`?void 0:n.updatedAt)})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Tokens`}),(0,L.jsxs)(`dd`,{children:[n.usage.tokensIn.toLocaleString(),` in / `,n.usage.tokensOut.toLocaleString(),` out`]})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Cost`}),(0,L.jsxs)(`dd`,{children:[`$`,n.usage.estCostUsd.toFixed(3)]})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Steps`}),(0,L.jsx)(`dd`,{children:n.steps.length})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Tasks`}),(0,L.jsxs)(`dd`,{children:[n.tasks.filter(e=>e.status===`done`).length,`/`,n.tasks.length]})]})]}):null]}),(0,L.jsx)(wa,{phase:t,lastChangedAt:i,stallAgeMs:o,transport:a,error:r}),s.length>0?(0,L.jsxs)(`div`,{className:z.transcriptWrap,children:[(0,L.jsx)(`div`,{ref:f,className:z.transcript,onScroll:_,tabIndex:0,role:`log`,"aria-label":`Live engine output`,"aria-live":m?`polite`:`off`,children:s.map((e,t)=>(0,L.jsxs)(`div`,{className:z.step,"data-focus-key":`run-output-chunk-${t}`,children:[(0,L.jsx)(`span`,{className:z.stepKind,"data-kind":e.kind,children:e.kind}),(0,L.jsx)(`span`,{className:z.stepTime,title:e.ts,children:Ca(e.ts)}),(0,L.jsx)(`span`,{className:z.stepTask,children:e.taskId??``}),(0,L.jsx)(`span`,{className:z.stepSummary,children:e.text})]},`${e.ts}-${t}`))}),m?null:(0,L.jsx)(`button`,{type:`button`,className:z.followButton,onClick:y,children:`↓ Follow`})]}):null,(0,L.jsxs)(`div`,{className:z.transcriptWrap,children:[(0,L.jsx)(`div`,{ref:c,className:z.transcript,onScroll:g,tabIndex:0,role:`log`,"aria-label":`Run step transcript`,"aria-live":u?`polite`:`off`,children:!n||n.steps.length===0?(0,L.jsx)(`p`,{className:z.empty,children:`No steps recorded yet.`}):n.steps.map((e,t)=>(0,L.jsxs)(`div`,{className:z.step,"data-focus-key":`run-stream-step-${t}`,children:[(0,L.jsx)(`span`,{className:z.stepKind,"data-kind":e.kind,children:xa[e.kind]??e.kind}),(0,L.jsx)(`span`,{className:z.stepTime,title:e.ts,children:Ca(e.ts)}),(0,L.jsx)(`span`,{className:z.stepTask,children:e.taskId}),(0,L.jsx)(`span`,{className:z.stepSummary,children:e.summary}),e.usage?(0,L.jsxs)(`span`,{className:z.stepUsage,children:[(e.usage.tokensIn+e.usage.tokensOut).toLocaleString(),` tok`]}):null]},`${e.ts}-${t}`))}),u?null:(0,L.jsx)(`button`,{type:`button`,className:z.followButton,onClick:v,children:`↓ Follow`})]})]})}var Da={strip:`_strip_21e8x_1`,label:`_label_21e8x_11`,list:`_list_21e8x_20`,watchBtn:`_watchBtn_21e8x_29`,pulse:`_pulse_21e8x_46`,dialogWidth:`_dialogWidth_21e8x_70`};function Oa(){let e=g(O),[t,n]=(0,M.useState)(null),r=(e.data?.runs??[]).filter(e=>e.status===`running`);return r.length===0?null:(0,L.jsxs)(`div`,{className:Da.strip,children:[(0,L.jsx)(`span`,{className:Da.label,children:`Live now`}),(0,L.jsx)(`ul`,{className:Da.list,"aria-live":`polite`,"aria-label":`Currently running`,children:r.map(e=>(0,L.jsx)(`li`,{children:(0,L.jsxs)(`button`,{type:`button`,className:Da.watchBtn,onClick:()=>n(e.id),children:[(0,L.jsx)(`span`,{className:Da.pulse,"aria-hidden":`true`}),e.goal]})},e.id))}),(0,L.jsx)(S,{open:t!==null,onClose:()=>n(null),titleId:`live-now-title`,title:`Watching live`,widthClassName:Da.dialogWidth,children:t?(0,L.jsx)(Ea,{runId:t}):null})]})}function ka(e){switch(e){case`merge`:return`merged`;case`dispatch`:return`running`;case`tick`:return`info`;default:return`pending`}}function Aa(e){let t=[];for(let[n,r]of(e.logs?.entries??[]).entries())t.push({id:`log-${r.ts}-${n}`,ts:r.ts,source:`daemon-tick`,title:r.kind===`merge`?`Daemon merge`:r.kind===`dispatch`?`Daemon dispatch`:`Daemon tick`,detail:r.msg+(r.dryRun?` (dry run)`:``),statusLabel:ka(r.kind),sourceQuality:e.logs?.sourceQuality});for(let[n,r]of(e.fleetActivity?.recentTicks??[]).entries())t.push({id:`fleet-tick-${r.ts}-${n}`,ts:r.ts,source:`daemon-tick`,title:`Fleet tick`,detail:[r.reason,r.directionReason].filter(Boolean).join(` — `)||`${r.merged} merged, $${r.spentUsd.toFixed(2)} spent`,statusLabel:r.dryRun?`pending`:`info`,sourceQuality:e.fleetActivity?.recentTicksSourceQuality});for(let[n,r]of(e.fleetActivity?.recentMerges??[]).entries())t.push({id:`merge-${r.ts}-${n}`,ts:r.ts,source:`merge`,title:`Merged in ${r.repo??`unknown repo`}`,detail:`${r.engine??`unknown engine`}${r.proposalId?` · proposal ${r.proposalId}`:``}`,repo:r.repo??void 0,statusLabel:`merged`,sourceQuality:e.fleetActivity?.recentMergesSourceQuality,drillIn:r.proposalId?{proposalId:r.proposalId}:void 0});for(let[n,r]of(e.fleetActivity?.recentActions??[]).entries())t.push({id:`action-${r.ts}-${n}`,ts:r.ts,source:`agent-action`,title:r.proseDigest??r.summary??r.action,detail:r.summary,repo:r.repo,statusLabel:r.outcome,sourceQuality:e.fleetActivity?.recentActionsSource,drillIn:r.proposalId?{proposalId:r.proposalId}:r.runId?{runId:r.runId}:void 0});for(let n of e.runs??[])t.push({id:`run-${n.id}`,ts:n.updatedAt,source:`run`,title:n.goal,detail:n.result??n.terminationReason??`${n.steps.length} step(s), ${n.tasks.length} task(s)`,statusLabel:n.status,drillIn:{runId:n.id}});for(let n of e.inbox?.proposals??[])t.push({id:`proposal-pending-${n.id}`,ts:n.createdAt,source:`proposal`,title:n.title,detail:`${n.kind} · ${n.origin}`,repo:n.repo,statusLabel:`pending`,drillIn:{proposalId:n.id}});return t.sort((e,t)=>new Date(t.ts).getTime()-new Date(e.ts).getTime()),t}function ja(e=new Date){let t=new Date(e.getFullYear(),e.getMonth(),e.getDate());return e.getTime()-t.getTime()}function Ma(e,t){let n=Date.now(),r=t.query.trim().toLowerCase();return e.filter(e=>!(!t.sources.has(e.source)||t.windowMs!==null&&n-new Date(e.ts).getTime()>t.windowMs||r&&!`${e.title} ${e.detail} ${e.repo??``} ${e.statusLabel}`.toLowerCase().includes(r)))}function Na(e,t){let n=Date.now(),r=36e5,i=[];for(let e=t-1;e>=0;e--)i.push({bucketStartMs:n-e*r,count:0});for(let a of e){let e=n-new Date(a.ts).getTime();if(e<0||e>t*r)continue;let o=t-1-Math.floor(e/r);o>=0&&o<i.length&&(i[o].count+=1)}return i}var Pa={bar:`_bar_1kce8_1`,search:`_search_1kce8_12`,sources:`_sources_1kce8_28`,sourceOption:`_sourceOption_1kce8_34`,windowSelect:`_windowSelect_1kce8_43`},Fa=[{value:`run`,label:`Runs`},{value:`merge`,label:`Merges`},{value:`proposal`,label:`Proposals`},{value:`agent-action`,label:`Agent actions`},{value:`daemon-tick`,label:`Daemon ticks`}],Ia=[{value:`1h`,label:`Last hour`,ms:36e5},{value:`today`,label:`Today`,ms:null,dynamic:!0},{value:`24h`,label:`Last 24h`,ms:864e5},{value:`7d`,label:`Last 7 days`,ms:6048e5},{value:`all`,label:`All available`,ms:null}];function La({sources:e,onSourcesChange:t,query:n,onQueryChange:r,windowValue:i,onWindowChange:a}){function o(n){let r=new Set(e);r.has(n)?r.delete(n):r.add(n),t(r)}return(0,L.jsxs)(`div`,{className:Pa.bar,children:[(0,L.jsx)(`input`,{type:`search`,className:Pa.search,placeholder:`Search title, detail, repo…`,value:n,onChange:e=>r(e.target.value),"aria-label":`Search the work journal`}),(0,L.jsx)(`div`,{className:Pa.sources,role:`group`,"aria-label":`Filter by source`,children:Fa.map(t=>(0,L.jsxs)(`label`,{className:Pa.sourceOption,children:[(0,L.jsx)(`input`,{type:`checkbox`,checked:e.has(t.value),onChange:()=>o(t.value)}),t.label]},t.value))}),(0,L.jsx)(`select`,{className:Pa.windowSelect,value:i,onChange:e=>{let t=Ia.find(t=>t.value===e.target.value);a(e.target.value,t?.dynamic?ja():t?.ms??null)},"aria-label":`Time window`,children:Ia.map(e=>(0,L.jsx)(`option`,{value:e.value,children:e.label},e.value))})]})}var Ra=new Set(Fa.map(e=>e.value)),za={strip:`_strip_h22ae_1`,bar:`_bar_h22ae_12`,fill:`_fill_h22ae_33`};function Ba({entries:e,hours:t,onScrubTo:n}){let r=Na(e,t),i=Math.max(1,...r.map(e=>e.count));return(0,L.jsx)(`div`,{className:za.strip,role:`group`,"aria-label":`Activity density over the last ${t} hours`,children:r.map(e=>{let t=Math.round(e.count/i*100),r=new Date(e.bucketStartMs).toLocaleTimeString(void 0,{hour:`numeric`});return(0,L.jsx)(`button`,{type:`button`,className:za.bar,onClick:()=>n(e.bucketStartMs),disabled:e.count===0,title:`${r}: ${e.count} entr${e.count===1?`y`:`ies`}`,"aria-label":`${r}: ${e.count} entries`,children:(0,L.jsx)(`span`,{className:za.fill,style:{height:`${Math.max(t,e.count>0?8:0)}%`}})},e.bucketStartMs)})})}var Va={detailBody:`_detailBody_bgyq9_1`,grid:`_grid_bgyq9_10`,rationale:`_rationale_bgyq9_27`,diffDetails:`_diffDetails_bgyq9_34`,diff:`_diff_bgyq9_34`,error:`_error_bgyq9_56`};function Ha({proposalId:e}){let t=g(ce(e));if(t.status===`loading`)return(0,L.jsx)(f,{width:`80%`});if(t.status===`error`)return(0,L.jsxs)(`p`,{className:Va.error,children:[`Could not load proposal `,e,`: `,t.error?.message??`not found on disk (it may have been pruned).`]});let n=t.data;return n?(0,L.jsxs)(`div`,{className:Va.detailBody,children:[(0,L.jsxs)(`dl`,{className:Va.grid,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Status`}),(0,L.jsx)(`dd`,{children:(0,L.jsx)(E,{status:n.status})})]}),n.riskClass?(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Risk`}),(0,L.jsx)(`dd`,{children:n.riskClass})]}):null,n.taste?(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Judge verdict`}),(0,L.jsxs)(`dd`,{children:[n.taste.verdict,` · alignment `,n.taste.alignment,`/10 · ambition `,n.taste.ambition,`/10 · design`,` `,n.taste.design,`/10`]})]}):null,n.decisionReason?(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Decision`}),(0,L.jsx)(`dd`,{children:n.decisionReason})]}):null,n.learningSource?(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Learning source`}),(0,L.jsx)(`dd`,{children:n.learningSource})]}):null]}),n.taste?.rationale?(0,L.jsx)(`p`,{className:Va.rationale,children:n.taste.rationale}):null,n.diff?(0,L.jsxs)(`details`,{className:Va.diffDetails,children:[(0,L.jsxs)(`summary`,{children:[`Diff (`,n.diff.split(`
|
|
4
4
|
`).length,` lines)`]}),(0,L.jsx)(`pre`,{className:Va.diff,children:n.diff})]}):(0,L.jsx)(`p`,{className:Va.error,children:`No diff recorded for this proposal.`})]}):null}function Ua({drillIn:e}){return e.runId?(0,L.jsx)(Ea,{runId:e.runId}):e.proposalId?(0,L.jsx)(Ha,{proposalId:e.proposalId}):null}var Wa={row:`_row_194dy_1`,summary:`_summary_194dy_9`,sourceTag:`_sourceTag_194dy_31`,when:`_when_194dy_53`,repo:`_repo_194dy_61`,title:`_title_194dy_70`,expandHint:`_expandHint_194dy_80`,body:`_body_194dy_86`,detailText:`_detailText_194dy_90`},Ga={"daemon-tick":`Daemon`,merge:`Merge`,"agent-action":`Agent`,run:`Run`,proposal:`Proposal`};function Ka(e){let t=new Date(e);return`${t.toLocaleDateString(void 0,{month:`short`,day:`numeric`})} ${t.toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`})}`}function qa({entry:e}){let t=!!e.drillIn,[n,r]=(0,M.useState)(!1);return(0,L.jsxs)(`details`,{className:Wa.row,"data-state-key":`journal-${e.id}`,onToggle:e=>r(e.currentTarget.open),children:[(0,L.jsxs)(`summary`,{className:Wa.summary,"data-focus-key":`journal-${e.id}`,children:[(0,L.jsx)(`span`,{className:Wa.sourceTag,"data-source":e.source,children:Ga[e.source]}),(0,L.jsx)(`span`,{className:Wa.when,title:e.ts,children:Ka(e.ts)}),(0,L.jsx)(E,{status:e.statusLabel}),e.repo?(0,L.jsx)(`span`,{className:Wa.repo,children:e.repo}):null,(0,L.jsx)(`span`,{className:Wa.title,children:e.title}),(0,L.jsx)(C,{quality:e.sourceQuality}),t?(0,L.jsx)(`span`,{className:Wa.expandHint,"aria-hidden":`true`,children:`why? ▾`}):null]}),(0,L.jsxs)(`div`,{className:Wa.body,children:[(0,L.jsx)(`p`,{className:Wa.detailText,children:e.detail}),n&&e.drillIn?(0,L.jsx)(Ua,{drillIn:e.drillIn}):null]})]})}var Ja={view:`_view_1omi1_1`,header:`_header_1omi1_9`,title:`_title_1omi1_16`,windowNote:`_windowNote_1omi1_23`,freshness:`_freshness_1omi1_30`,freshnessLabel:`_freshnessLabel_1omi1_37`,errorBanner:`_errorBanner_1omi1_42`,panel:`_panel_1omi1_50`,list:`_list_1omi1_57`,empty:`_empty_1omi1_63`},Ya=8e3;function Xa(e){let t=Math.max(0,Math.round((Date.now()-e)/1e3));return t<5?`just now`:t<60?`${t}s ago`:`${Math.round(t/60)}m ago`}function Za(){let e=F().state?.windowToday===!0,t=g(de),n=g(fe),r=g(ve),i=g(ae),a=m(de);(0,M.useEffect)(()=>{let e=setInterval(a,Ya);return()=>clearInterval(e)},[a]);let[o,s]=(0,M.useState)(new Set(Ra)),[l,u]=(0,M.useState)(``),[d,f]=(0,M.useState)(e?`today`:`24h`),[p,h]=(0,M.useState)(e?ja():864e5),_=(0,M.useMemo)(()=>Aa({logs:t.data,fleetActivity:n.data,runs:r.data,inbox:i.data}),[t.data,n.data,r.data,i.data]),v=(0,M.useMemo)(()=>Ma(_,{sources:o,query:l,windowMs:p}),[_,o,l,p]),y=(0,M.useRef)(new Map);function b(e){let t=v.find(t=>new Date(t.ts).getTime()<=e+36e5);t&&y.current.get(t.id)?.scrollIntoView({behavior:`smooth`,block:`center`})}let x=t.status===`loading`&&n.status===`loading`&&r.status===`loading`&&i.status===`loading`,S=[t,n,r,i].some(e=>e.status===`refreshing`),C=Math.max(t.updatedAt??0,n.updatedAt??0,r.updatedAt??0,i.updatedAt??0),w=[t.status===`error`?`daemon log: ${t.error?.message}`:null,n.status===`error`?`fleet activity: ${n.error?.message}`:null,r.status===`error`?`runs: ${r.error?.message}`:null,i.status===`error`?`inbox: ${i.error?.message}`:null].filter(e=>e!==null);return(0,L.jsxs)(`div`,{className:Ja.view,children:[(0,L.jsxs)(`header`,{className:Ja.header,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`h1`,{className:Ja.title,children:`Work Journal`}),(0,L.jsx)(`p`,{className:Ja.windowNote,children:`Merges the daemon log (last 200 lines), fleet activity (last ~20 merges/ticks/agent actions), recent runs (last 200), and the pending-proposal inbox. The read API does not expose the full on-disk history beyond this window.`})]}),(0,L.jsxs)(`div`,{className:Ja.freshness,"aria-live":`polite`,children:[S?(0,L.jsx)(A,{}):null,C>0?(0,L.jsxs)(`span`,{className:Ja.freshnessLabel,children:[`Updated `,Xa(C)]}):null]})]}),w.length>0?(0,L.jsxs)(`div`,{className:Ja.errorBanner,role:`alert`,children:[`Some sources failed to load: `,w.join(`; `)]}):null,(0,L.jsx)(Oa,{}),x?(0,L.jsxs)(`div`,{className:Ja.panel,children:[(0,L.jsx)(c,{}),(0,L.jsx)(c,{}),(0,L.jsx)(c,{}),(0,L.jsx)(c,{})]}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ba,{entries:_,hours:24,onScrubTo:b}),(0,L.jsx)(La,{sources:o,onSourcesChange:s,query:l,onQueryChange:u,windowValue:d,onWindowChange:(e,t)=>{f(e),h(t)}}),(0,L.jsx)(`div`,{className:Ja.panel,children:v.length===0?(0,L.jsx)(`p`,{className:Ja.empty,children:`Nothing matches the current filters in this window.`}):(0,L.jsx)(`ul`,{className:Ja.list,children:v.map(e=>(0,L.jsx)(`li`,{ref:t=>{t?y.current.set(e.id,t):y.current.delete(e.id)},children:(0,L.jsx)(qa,{entry:e})},e.id))})})]})]})}var Qa={view:`_view_7836g_1`,header:`_header_7836g_7`,title:`_title_7836g_15`,freshness:`_freshness_7836g_21`,freshnessLabel:`_freshnessLabel_7836g_27`,filterRow:`_filterRow_7836g_32`,windowGroup:`_windowGroup_7836g_38`,windowButton:`_windowButton_7836g_45`,windowButtonActive:`_windowButtonActive_7836g_64`,kpiGrid:`_kpiGrid_7836g_70`,chartsGrid:`_chartsGrid_7836g_76`,error:`_error_7836g_82`},$a=[`1d`,`7d`,`30d`],eo={ok:`success`,warn:`warning`,over:`danger`};function to(e){let t=e.replace(/\/+$/,``).split(`/`);return t[t.length-1]||e}function no(){let[e,t]=(0,M.useState)(`7d`),n=g(se(e));return(0,L.jsxs)(`div`,{className:Qa.view,children:[(0,L.jsxs)(`header`,{className:Qa.header,children:[(0,L.jsx)(`h1`,{className:Qa.title,children:`Pulse`}),(0,L.jsxs)(`div`,{className:Qa.freshness,"aria-live":`polite`,children:[n.status===`refreshing`?(0,L.jsx)(A,{}):null,n.updatedAt?(0,L.jsxs)(`span`,{className:Qa.freshnessLabel,children:[`Updated `,io(n.updatedAt)]}):null]})]}),(0,L.jsxs)(`div`,{className:Qa.filterRow,role:`group`,"aria-label":`Time window`,children:[(0,L.jsx)(`div`,{className:Qa.windowGroup,children:$a.map(n=>(0,L.jsx)(`button`,{type:`button`,className:`${Qa.windowButton} ${n===e?Qa.windowButtonActive:``}`,"aria-pressed":n===e,onClick:()=>t(n),children:n},n))}),n.data?(0,L.jsx)(E,{status:n.data.budget.level,tone:eo[n.data.budget.level],children:n.data.budget.message}):null]}),n.status===`loading`?(0,L.jsx)(v,{count:4}):n.status===`error`?(0,L.jsx)(`div`,{className:Qa.error,role:`alert`,children:n.error?.message??`Failed to load pulse data.`}):n.data?(0,L.jsx)(ro,{rollup:n.data}):null]})}function ro({rollup:e}){let t=[{id:`cost`,label:`Est. cost (USD)`,points:e.byDay.map(e=>({x:Date.parse(`${e.day}T00:00:00Z`),y:e.estCostUsd}))}],n=[...e.byProject].sort((e,t)=>t.estCostUsd-e.estCostUsd).slice(0,8),r=n.map(e=>({label:to(e.project),value:e.estCostUsd})),i=[...e.byModel].sort((e,t)=>t.estCostUsd-e.estCostUsd).slice(0,8),a=i.map(e=>({label:e.model,value:e.estCostUsd}));return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`div`,{className:Qa.kpiGrid,children:[(0,L.jsx)(j,{label:`Est. cost`,value:Le(e.totals.estCostUsd),caption:e.window}),(0,L.jsx)(j,{label:`Tokens`,value:Re(e.totals.tokensIn+e.totals.tokensOut),caption:`${Re(e.totals.tokensIn)} in / ${Re(e.totals.tokensOut)} out`}),(0,L.jsx)(j,{label:`Sessions`,value:String(e.totals.sessions)}),(0,L.jsx)(j,{label:`Commits`,value:String(e.totals.commits)})]}),(0,L.jsxs)(`div`,{className:Qa.chartsGrid,children:[(0,L.jsx)(Me,{title:`Cost over time`,description:`since ${new Date(e.since).toLocaleDateString()}`,empty:e.byDay.length===0,emptyMessage:`No activity recorded in this window.`,table:(0,L.jsx)(je,{caption:`Daily cost`,rowKey:e=>e.day,rows:e.byDay,columns:[{key:`day`,label:`Day`,render:e=>e.day},{key:`cost`,label:`Cost`,numeric:!0,render:e=>Le(e.estCostUsd)},{key:`sessions`,label:`Sessions`,numeric:!0,render:e=>String(e.sessions)}]}),children:(0,L.jsx)(Ne,{series:t,area:!0,ariaLabel:`Estimated cost over time`,formatX:e=>new Date(e).toLocaleDateString(void 0,{month:`short`,day:`numeric`}),formatY:e=>Le(e)})}),(0,L.jsx)(Me,{title:`Top projects by cost`,empty:r.length===0,emptyMessage:`No project activity in this window.`,table:(0,L.jsx)(je,{caption:`Cost by project`,rowKey:e=>e.project,rows:n,columns:[{key:`project`,label:`Project`,render:e=>to(e.project)},{key:`sessions`,label:`Sessions`,numeric:!0,render:e=>String(e.sessions)},{key:`commits`,label:`Commits`,numeric:!0,render:e=>String(e.commits)},{key:`cost`,label:`Cost`,numeric:!0,render:e=>Le(e.estCostUsd)}]}),children:(0,L.jsx)(Pe,{data:r,orientation:`horizontal`,ariaLabel:`Top projects by estimated cost`,formatValue:e=>Le(e)})}),(0,L.jsx)(Me,{title:`Cost by model`,empty:a.length===0,emptyMessage:`No model activity in this window.`,table:(0,L.jsx)(je,{caption:`Cost by model`,rowKey:e=>e.model,rows:i,columns:[{key:`model`,label:`Model`,render:e=>e.model},{key:`calls`,label:`Calls`,numeric:!0,render:e=>String(e.calls)},{key:`tokens`,label:`Tokens`,numeric:!0,render:e=>Re(e.tokensIn+e.tokensOut)},{key:`cost`,label:`Cost`,numeric:!0,render:e=>Le(e.estCostUsd)}]}),children:(0,L.jsx)(Pe,{data:a,ariaLabel:`Cost by model`,formatValue:e=>Le(e)})})]})]})}function io(e){let t=Math.max(0,Math.round((Date.now()-e)/1e3));return t<5?`just now`:t<60?`${t}s ago`:`${Math.round(t/60)}m ago`}var B={view:`_view_44i9i_1`,header:`_header_44i9i_7`,title:`_title_44i9i_15`,searchRow:`_searchRow_44i9i_21`,searchInput:`_searchInput_44i9i_27`,resultCount:`_resultCount_44i9i_43`,results:`_results_44i9i_48`,row:`_row_44i9i_57`,rowHeader:`_rowHeader_44i9i_64`,rowTitle:`_rowTitle_44i9i_72`,rowMeta:`_rowMeta_44i9i_78`,badge:`_badge_44i9i_87`,snippet:`_snippet_44i9i_97`,tags:`_tags_44i9i_107`,tag:`_tag_44i9i_107`,skeletons:`_skeletons_44i9i_123`,empty:`_empty_44i9i_129`,error:`_error_44i9i_136`},ao=50,oo=300;function so(e,t){let[n,r]=(0,M.useState)(e);return(0,M.useEffect)(()=>{let n=setTimeout(()=>r(e),t);return()=>clearTimeout(n)},[e,t]),n}function co(e,t=220){let n=e.trim();return n.length>t?`${n.slice(0,t-1)}…`:n}function lo(e){let t=Date.parse(e);if(Number.isNaN(t))return e;let n=Math.floor((Date.now()-t)/864e5);return n<=0?`today`:n===1?`yesterday`:n<30?`${n}d ago`:`${Math.floor(n/30)}mo ago`}function uo(){let[e,t]=(0,M.useState)(``),n=so(e,oo),r=g(ie(n)),i=n.trim().length>0,a=r.data,{rows:o,totalCount:s}=(0,M.useMemo)(()=>{if(!a)return{rows:[],totalCount:0};if(i)return{rows:a,totalCount:a.length};let e=a;return{rows:[...e].sort((e,t)=>Date.parse(t.ts)-Date.parse(e.ts)).slice(0,ao),totalCount:e.length}},[a,i]),l=(0,M.useMemo)(()=>{if(!a||i)return[];let e=a,t=new Map;for(let n of e){let e=n.project??`(unscoped)`;t.set(e,(t.get(e)??0)+1)}return[...t.entries()].sort((e,t)=>t[1]-e[1]).slice(0,8).map(([e,t])=>({label:e,value:t}))},[a,i]);return(0,L.jsxs)(`div`,{className:B.view,children:[(0,L.jsxs)(`header`,{className:B.header,children:[(0,L.jsx)(`h1`,{className:B.title,children:`Genome`}),(0,L.jsx)(`div`,{"aria-live":`polite`,children:r.status===`refreshing`?(0,L.jsx)(A,{}):null})]}),(0,L.jsxs)(`div`,{className:B.searchRow,children:[(0,L.jsx)(`input`,{type:`search`,className:B.searchInput,placeholder:`Search the genome (title, tags, body text)…`,value:e,onChange:e=>t(e.target.value),"aria-label":`Search cross-repo knowledge`}),a?(0,L.jsx)(`span`,{className:B.resultCount,children:i?`${s} match${s===1?``:`es`}`:`showing ${o.length} of ${s}`}):null]}),!i&&l.length>0?(0,L.jsx)(Me,{title:`Top projects by genome entries`,description:`browse mode — all loaded entries`,children:(0,L.jsx)(Pe,{data:l,orientation:`horizontal`,ariaLabel:`Top projects by genome entry count`,formatValue:e=>Re(e)})}):null,r.status===`loading`?(0,L.jsxs)(`div`,{className:B.skeletons,"aria-hidden":`true`,children:[(0,L.jsx)(c,{}),(0,L.jsx)(c,{}),(0,L.jsx)(c,{}),(0,L.jsx)(c,{})]}):r.status===`error`?(0,L.jsx)(`div`,{className:B.error,role:`alert`,children:r.error?.message??`Failed to load genome data.`}):o.length===0?(0,L.jsx)(`p`,{className:B.empty,children:i?`No genome entries match "${n}".`:`No genome entries recorded yet.`}):(0,L.jsx)(`ul`,{className:B.results,children:o.map(e=>{let t=oe(e)?e:null,n=t?t.entry:e;return(0,L.jsxs)(`li`,{className:B.row,children:[(0,L.jsxs)(`div`,{className:B.rowHeader,children:[(0,L.jsx)(`span`,{className:B.rowTitle,children:n.title}),(0,L.jsxs)(`span`,{className:B.rowMeta,children:[t?(0,L.jsxs)(`span`,{className:B.badge,children:[t.method,` · `,t.score.toFixed(2)]}):null,(0,L.jsx)(`span`,{children:lo(n.ts)})]})]}),(0,L.jsxs)(`div`,{className:B.rowMeta,children:[(0,L.jsx)(`span`,{className:B.badge,children:n.project??`unscoped`}),(0,L.jsx)(`span`,{className:B.badge,children:n.source})]}),(0,L.jsx)(`p`,{className:B.snippet,children:co(n.text)}),n.tags.length>0?(0,L.jsx)(`div`,{className:B.tags,children:n.tags.map(e=>(0,L.jsx)(`span`,{className:B.tag,children:e},e))}):null]},n.id)})})]})}var V={view:`_view_1frm3_1`,header:`_header_1frm3_7`,title:`_title_1frm3_15`,filterRow:`_filterRow_1frm3_21`,windowGroup:`_windowGroup_1frm3_27`,windowButton:`_windowButton_1frm3_34`,windowButtonActive:`_windowButtonActive_1frm3_53`,kpiGrid:`_kpiGrid_1frm3_59`,chartsGrid:`_chartsGrid_1frm3_65`,section:`_section_1frm3_71`,sectionTitle:`_sectionTitle_1frm3_77`,goalsList:`_goalsList_1frm3_83`,goalRow:`_goalRow_1frm3_92`,goalObjective:`_goalObjective_1frm3_102`,meterTrack:`_meterTrack_1frm3_107`,meterFill:`_meterFill_1frm3_115`,goalMeta:`_goalMeta_1frm3_121`,error:`_error_1frm3_126`,notAvailable:`_notAvailable_1frm3_135`},fo=[`7d`,`30d`,`all`];function po(e){return`${e.engine}:${e.model}`}function mo(){let[e,t]=(0,M.useState)(`30d`),n=g(O),r=g(pe(e)),i=n.data?.production;return(0,L.jsxs)(`div`,{className:V.view,children:[(0,L.jsxs)(`header`,{className:V.header,children:[(0,L.jsx)(`h1`,{className:V.title,children:`Production`}),(0,L.jsx)(`div`,{"aria-live":`polite`,children:n.status===`refreshing`||r.status===`refreshing`?(0,L.jsx)(A,{}):null})]}),n.status===`loading`?(0,L.jsx)(v,{count:4}):n.status===`error`?(0,L.jsx)(`div`,{className:V.error,role:`alert`,children:n.error?.message??`Failed to load production summary.`}):i?(0,L.jsx)(ho,{production:i}):(0,L.jsx)(`p`,{className:V.notAvailable,children:`Production summary not available on this server (older producer, or not yet populated).`}),(0,L.jsx)(`div`,{className:V.filterRow,role:`group`,"aria-label":`Model stats window`,children:(0,L.jsx)(`div`,{className:V.windowGroup,children:fo.map(n=>(0,L.jsx)(`button`,{type:`button`,className:`${V.windowButton} ${n===e?V.windowButtonActive:``}`,"aria-pressed":n===e,onClick:()=>t(n),children:n},n))})}),r.status===`loading`?(0,L.jsx)(v,{count:3}):r.status===`error`?(0,L.jsx)(`div`,{className:V.error,role:`alert`,children:r.error?.message??`Failed to load per-model stats.`}):r.data?(0,L.jsx)(go,{result:r.data}):null]})}function ho({production:e}){let t=e.judgeVerdicts24h,n=e.judgeFailures24h??{total:0,parse:0,network:0},r=[{label:`ship`,value:t.ship},{label:`review`,value:t.review},{label:`noise`,value:t.noise},{label:`harmful`,value:t.harmful}],i=e.shipsPerDayTrend.map(e=>({label:Fe(e.date),value:e.count})),a=e.shipsPerDayTrend.reduce((e,t)=>e+t.count,0),o=w(e.proposalSourceQuality),s=w(e.judgeTraceSourceQuality);return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`div`,{className:V.kpiGrid,children:[(0,L.jsx)(j,{label:`Proposals (24h)`,value:(0,L.jsx)(T,{quality:e.proposalSourceQuality,label:`proposals`,children:String(e.proposals24h.total)}),caption:(0,L.jsx)(T,{quality:e.proposalSourceQuality,label:`pending proposals`,children:`${e.proposals24h.pending} pending`})}),(0,L.jsx)(j,{label:`Auto-merges today`,value:(0,L.jsx)(T,{quality:e.proposalSourceQuality,label:`auto-merges`,children:String(e.autoMergesToday.count)})}),(0,L.jsx)(j,{label:`Judged (24h)`,value:(0,L.jsx)(T,{quality:e.judgeTraceSourceQuality,label:`judge verdicts`,children:String(t.total)})}),(0,L.jsx)(j,{label:`Judge failures (24h)`,value:(0,L.jsx)(T,{quality:e.judgeFailureSourceQuality,label:`judge failures`,children:String(n.total)}),caption:(0,L.jsx)(T,{quality:e.judgeFailureSourceQuality,children:`${n.parse} parse · ${n.network} network`})}),(0,L.jsx)(j,{label:`Active goals`,value:(0,L.jsx)(T,{quality:e.activeGoalsSourceQuality,label:`active goals`,children:String(e.activeGoals.length)})})]}),(0,L.jsxs)(`div`,{className:V.chartsGrid,children:[(0,L.jsxs)(Me,{title:`Ships per day`,description:`last 7 days`,empty:o&&i.length===0,emptyMessage:`No ship history recorded yet.`,table:o?(0,L.jsx)(je,{caption:`Ships per day`,rowKey:e=>e.label,rows:i,columns:[{key:`day`,label:`Day`,render:e=>e.label},{key:`count`,label:`Ships`,numeric:!0,render:e=>String(e.value??0)}]}):void 0,children:[o?a===0?(0,L.jsx)(`p`,{className:V.notAvailable,children:`0 ships in the last 7 days — this is the real number, not a loading state.`}):null:(0,L.jsx)(T,{quality:e.proposalSourceQuality,label:`ship history`,children:`ship history`}),o?(0,L.jsx)(Pe,{data:i,ariaLabel:`Ships per day, last 7 days`,formatValue:e=>String(e)}):null]}),(0,L.jsx)(Me,{title:`Judge verdict breakdown`,description:`last 24h`,empty:s&&t.total===0,emptyMessage:`No judge verdicts recorded in the last 24h.`,children:s?(0,L.jsx)(Pe,{data:r,ariaLabel:`Judge verdict breakdown, last 24h`,formatValue:e=>String(e)}):(0,L.jsx)(T,{quality:e.judgeTraceSourceQuality,label:`judge verdicts`,children:`judge verdicts`})})]}),w(e.activeGoalsSourceQuality)?e.activeGoals.length>0?(0,L.jsxs)(`div`,{className:V.section,children:[(0,L.jsx)(`h2`,{className:V.sectionTitle,children:`Active goals`}),(0,L.jsx)(`ul`,{className:V.goalsList,children:e.activeGoals.map(e=>{let t=e.totalMilestones>0?e.doneMilestones/e.totalMilestones:0;return(0,L.jsxs)(`li`,{className:V.goalRow,children:[(0,L.jsx)(`span`,{className:V.goalObjective,children:e.objective}),(0,L.jsx)(`div`,{className:V.meterTrack,children:(0,L.jsx)(`div`,{className:V.meterFill,style:{width:`${Math.round(t*100)}%`}})}),(0,L.jsxs)(`span`,{className:V.goalMeta,children:[e.doneMilestones,` / `,e.totalMilestones,` milestones`]})]},e.goalId)})})]}):null:(0,L.jsxs)(`div`,{className:V.section,children:[(0,L.jsx)(`h2`,{className:V.sectionTitle,children:`Active goals`}),(0,L.jsx)(T,{quality:e.activeGoalsSourceQuality,label:`active goals`,children:`active goals`})]})]})}function go({result:e}){let t=[...e.models].sort((e,t)=>t.dispatches-e.dispatches).slice(0,12),n=t.map(e=>({label:po(e),value:e.judged>0?e.shipRate:null}));return(0,L.jsx)(`div`,{className:V.chartsGrid,children:(0,L.jsx)(Me,{title:`Ship rate by model`,description:`judged proposals in the selected window`,empty:t.length===0,emptyMessage:`No dispatch history for this window.`,table:(0,L.jsx)(je,{caption:`Per-model economics`,rowKey:po,rows:t,columns:[{key:`model`,label:`Model`,render:e=>po(e)},{key:`dispatches`,label:`Dispatches`,numeric:!0,render:e=>String(e.dispatches)},{key:`shipRate`,label:`Ship rate`,numeric:!0,render:e=>e.judged>0?Ie(e.shipRate):`—`},{key:`merged`,label:`Merged`,numeric:!0,render:e=>String(e.merged)},{key:`costPerMerged`,label:`Cost / merge`,numeric:!0,render:e=>e.costPerMergedUsd===null?`—`:Le(e.costPerMergedUsd)},{key:`bestOfN`,label:`Best-of-N win rate`,numeric:!0,render:t=>t.bestOfNAvailable?(0,L.jsx)(T,{quality:e.bestOfNSource,label:`best-of-N win rate`,children:Ie(t.bestOfN.winRate)}):`—`}]}),children:(0,L.jsx)(Pe,{data:n,ariaLabel:`Ship rate by model`,formatValue:e=>Ie(e)})})})}var H={view:`_view_ruego_1`,header:`_header_ruego_7`,title:`_title_ruego_15`,freshness:`_freshness_ruego_21`,freshnessLabel:`_freshnessLabel_ruego_27`,kpiGrid:`_kpiGrid_ruego_32`,chartsGrid:`_chartsGrid_ruego_38`,section:`_section_ruego_44`,sectionTitle:`_sectionTitle_ruego_50`,list:`_list_ruego_56`,row:`_row_ruego_65`,rowTitle:`_rowTitle_ruego_75`,meterTrack:`_meterTrack_ruego_84`,meterFill:`_meterFill_ruego_92`,rowMeta:`_rowMeta_ruego_98`,effectiveness:`_effectiveness_ruego_103`,effectivenessHeadline:`_effectivenessHeadline_ruego_110`,error:`_error_ruego_116`,notAvailable:`_notAvailable_ruego_125`};function _o(e){let t=Math.max(0,Math.round((Date.now()-e)/1e3));return t<5?`just now`:t<60?`${t}s ago`:`${Math.round(t/60)}m ago`}function vo(){let e=g(ue),t=g(O);return(0,L.jsxs)(`div`,{className:H.view,children:[(0,L.jsxs)(`header`,{className:H.header,children:[(0,L.jsx)(`h1`,{className:H.title,children:`Portfolio`}),(0,L.jsxs)(`div`,{className:H.freshness,"aria-live":`polite`,children:[e.status===`refreshing`||t.status===`refreshing`?(0,L.jsx)(A,{}):null,e.updatedAt?(0,L.jsxs)(`span`,{className:H.freshnessLabel,children:[`Updated `,_o(e.updatedAt)]}):null]})]}),e.status===`loading`?(0,L.jsx)(v,{count:6}):e.status===`error`?(0,L.jsx)(`div`,{className:H.error,role:`alert`,children:e.error?.message??`Failed to load portfolio.`}):e.data===null?(0,L.jsx)(`p`,{className:H.notAvailable,children:`No portfolio roll-up available — either this server has no enrolled repos, or it predates the portfolio feature.`}):e.data?(0,L.jsx)(yo,{portfolio:e.data}):null]})}function yo({portfolio:e}){let{health:t,goalsInFlight:n,backlogTop:r,cost:i,effectiveness:a,today:o}=e,s=t.worstRepos.map(e=>({label:e.repo.split(`/`).filter(Boolean).pop()??e.repo,value:e.score}));return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`div`,{className:H.kpiGrid,children:[(0,L.jsx)(j,{label:`Portfolio health`,value:`${t.averageScore.toFixed(0)} (${t.averageGrade})`,caption:`${t.reposScored} repos scored`,delta:o.healthScoreDelta===null?null:{value:o.healthScoreDelta,goodWhenPositive:!0}}),(0,L.jsx)(j,{label:`Goals in flight`,value:String(n.length)}),(0,L.jsx)(j,{label:`Backlog top items`,value:String(r.length),delta:o.pendingProposalsDelta===null?null:{value:o.pendingProposalsDelta,versus:`pending proposals`}}),(0,L.jsx)(j,{label:`Spend`,value:Le(i.spentUsd),caption:`${i.window} window`,delta:o.spendUsdDelta===null?null:{value:o.spendUsdDelta,goodWhenPositive:!1}}),(0,L.jsx)(j,{label:`Local savings`,value:Le(i.localSavingsUsd)}),(0,L.jsx)(j,{label:`Projected monthly`,value:Le(i.projectedMonthlyUsd)})]}),a?(0,L.jsxs)(`div`,{className:H.effectiveness,children:[(0,L.jsx)(`p`,{className:H.effectivenessHeadline,children:a.headline}),(0,L.jsxs)(`span`,{className:H.rowMeta,children:[`Success rate `,Ie(a.successRate),a.effectivenessDeltaPct===null?``:` (${a.effectivenessDeltaPct>=0?`+`:``}${a.effectivenessDeltaPct.toFixed(1)}pp)`]})]}):null,(0,L.jsxs)(`div`,{className:H.chartsGrid,children:[(0,L.jsx)(Me,{title:`Worst-scoring repos`,empty:s.length===0,emptyMessage:`No enrolled repos scored yet.`,table:(0,L.jsx)(je,{caption:`Worst-scoring repos`,rowKey:e=>e.repo,rows:t.worstRepos,columns:[{key:`repo`,label:`Repo`,render:e=>e.repo},{key:`score`,label:`Score`,numeric:!0,render:e=>e.score.toFixed(0)},{key:`grade`,label:`Grade`,render:e=>e.grade}]}),children:(0,L.jsx)(Pe,{data:s,orientation:`horizontal`,ariaLabel:`Worst-scoring repos by health score`,formatValue:e=>e.toFixed(0)})}),(0,L.jsxs)(`div`,{className:H.section,children:[(0,L.jsx)(`h2`,{className:H.sectionTitle,children:`In-flight goals`}),n.length===0?(0,L.jsx)(`p`,{className:H.notAvailable,children:`No goals currently in flight.`}):(0,L.jsx)(`ul`,{className:H.list,children:n.map(e=>(0,L.jsxs)(`li`,{className:H.row,children:[(0,L.jsxs)(`span`,{className:H.rowTitle,children:[e.objective,(0,L.jsxs)(`span`,{className:H.rowMeta,children:[Math.round(e.fractionDone*100),`%`]})]}),(0,L.jsx)(`div`,{className:H.meterTrack,children:(0,L.jsx)(`div`,{className:H.meterFill,style:{width:`${Math.round(e.fractionDone*100)}%`}})}),(0,L.jsx)(`span`,{className:H.rowMeta,children:e.nextActionable?`Next: ${e.nextActionable}`:`Nothing actionable queued`})]},e.goalId))})]})]}),(0,L.jsxs)(`div`,{className:H.section,children:[(0,L.jsx)(`h2`,{className:H.sectionTitle,children:`Top backlog`}),r.length===0?(0,L.jsx)(`p`,{className:H.notAvailable,children:`Backlog is empty.`}):(0,L.jsx)(je,{caption:`Top backlog items`,rowKey:e=>e.title,rows:r,columns:[{key:`title`,label:`Item`,render:e=>e.title},{key:`repo`,label:`Repo`,render:e=>e.repo??`—`},{key:`score`,label:`Score`,numeric:!0,render:e=>e.score.toFixed(1)}]})]})]})}var U={view:`_view_1eb19_1`,header:`_header_1eb19_8`,title:`_title_1eb19_16`,freshness:`_freshness_1eb19_22`,count:`_count_1eb19_28`,filters:`_filters_1eb19_34`,field:`_field_1eb19_45`,fieldLabel:`_fieldLabel_1eb19_51`,input:`_input_1eb19_56`,select:`_select_1eb19_57`,clear:`_clear_1eb19_74`,tableWrap:`_tableWrap_1eb19_87`,table:`_table_1eb19_87`,statusCol:`_statusCol_1eb19_101`,engineCol:`_engineCol_1eb19_104`,providerCol:`_providerCol_1eb19_107`,tokensCol:`_tokensCol_1eb19_110`,costCol:`_costCol_1eb19_113`,stepsCol:`_stepsCol_1eb19_116`,createdCol:`_createdCol_1eb19_119`,row:`_row_1eb19_143`,sortHeader:`_sortHeader_1eb19_151`,goalLink:`_goalLink_1eb19_168`,numeric:`_numeric_1eb19_180`,date:`_date_1eb19_186`,empty:`_empty_1eb19_192`,error:`_error_1eb19_199`};function bo(e){return e.usage.tokensIn+e.usage.tokensOut}function xo(e,t){if(!t)return!0;let n=t.toLowerCase();return e.id.toLowerCase().includes(n)||e.goal.toLowerCase().includes(n)}function So(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function Co(){let e=(0,M.useRef)(null);ke(`/work/runs`,e);let t=mn(),n=g(ve),[r,i]=(0,M.useState)(0),a=(0,M.useRef)(new Map),[o,s]=(0,M.useState)(``),[l,u]=(0,M.useState)(`all`),[d,f]=(0,M.useState)(`all`),[p,m]=(0,M.useState)(`all`),[h,_]=(0,M.useState)(``),[v,y]=(0,M.useState)(`createdAt`),[b,x]=(0,M.useState)(`desc`),S=(0,M.useMemo)(()=>n.data??[],[n.data]),{statuses:C,engines:w,providers:T}=(0,M.useMemo)(()=>{let e=new Set,t=new Set,n=new Set;for(let r of S)e.add(r.status),t.add(r.engine),n.add(r.provider);return{statuses:Array.from(e).sort(),engines:Array.from(t).sort(),providers:Array.from(n).sort()}},[S]),ee=h?new Date(h).getTime():null,D=(0,M.useMemo)(()=>{let e=S.filter(e=>{if(l!==`all`&&e.status!==l||d!==`all`&&e.engine!==d||p!==`all`&&e.provider!==p)return!1;if(ee!==null){let t=new Date(e.createdAt).getTime();if(Number.isNaN(t)||t<ee)return!1}return!!xo(e,o.trim())});return e=[...e].sort((e,t)=>{let n=0;switch(v){case`createdAt`:n=e.createdAt.localeCompare(t.createdAt);break;case`updatedAt`:n=e.updatedAt.localeCompare(t.updatedAt);break;case`tokens`:n=bo(e)-bo(t);break;case`estCostUsd`:n=e.usage.estCostUsd-t.usage.estCostUsd;break;case`steps`:n=e.steps.length-t.steps.length;break;case`status`:n=e.status.localeCompare(t.status)}return b===`asc`?n:-n}),e},[S,l,d,p,ee,o,v,b]);(0,M.useEffect)(()=>{i(e=>Math.min(e,Math.max(D.length-1,0)))},[D.length]);function te(e){if(D.length!==0){if(e.key===`ArrowDown`){e.preventDefault();let t=Math.min(r+1,D.length-1);i(t),a.current.get(D[t].id)?.focus()}else if(e.key===`ArrowUp`){e.preventDefault();let t=Math.max(r-1,0);i(t),a.current.get(D[t].id)?.focus()}else if(e.key===`Enter`){let e=D[r];e&&t(`/work/runs/${e.id}`)}}}function ne(e){e===v?x(e=>e===`asc`?`desc`:`asc`):(y(e),x(`desc`))}function O(e){return e===v?b===`asc`?` ↑`:` ↓`:``}return(0,L.jsxs)(`div`,{ref:e,className:U.view,children:[(0,L.jsxs)(`header`,{className:U.header,children:[(0,L.jsx)(`h1`,{className:U.title,children:`Runs`}),(0,L.jsxs)(`div`,{className:U.freshness,"aria-live":`polite`,children:[n.status===`refreshing`?(0,L.jsx)(A,{}):null,(0,L.jsxs)(`span`,{className:U.count,children:[D.length,` of `,S.length,` runs (server caps at 200 most recent)`]})]})]}),(0,L.jsxs)(`form`,{className:U.filters,role:`search`,"aria-label":`Filter runs`,onSubmit:e=>e.preventDefault(),children:[(0,L.jsxs)(`label`,{className:U.field,children:[(0,L.jsx)(`span`,{className:U.fieldLabel,children:`Search`}),(0,L.jsx)(`input`,{type:`text`,className:U.input,placeholder:`goal or run id (e.g. repo/project name)`,value:o,onChange:e=>s(e.target.value)})]}),(0,L.jsxs)(`label`,{className:U.field,children:[(0,L.jsx)(`span`,{className:U.fieldLabel,children:`Status`}),(0,L.jsxs)(`select`,{className:U.select,value:l,onChange:e=>u(e.target.value),children:[(0,L.jsx)(`option`,{value:`all`,children:`All`}),C.map(e=>(0,L.jsx)(`option`,{value:e,children:e},e))]})]}),(0,L.jsxs)(`label`,{className:U.field,children:[(0,L.jsx)(`span`,{className:U.fieldLabel,children:`Engine`}),(0,L.jsxs)(`select`,{className:U.select,value:d,onChange:e=>f(e.target.value),children:[(0,L.jsx)(`option`,{value:`all`,children:`All`}),w.map(e=>(0,L.jsx)(`option`,{value:e,children:e},e))]})]}),(0,L.jsxs)(`label`,{className:U.field,children:[(0,L.jsx)(`span`,{className:U.fieldLabel,children:`Provider`}),(0,L.jsxs)(`select`,{className:U.select,value:p,onChange:e=>m(e.target.value),children:[(0,L.jsx)(`option`,{value:`all`,children:`All`}),T.map(e=>(0,L.jsx)(`option`,{value:e,children:e},e))]})]}),(0,L.jsxs)(`label`,{className:U.field,children:[(0,L.jsx)(`span`,{className:U.fieldLabel,children:`Since`}),(0,L.jsx)(`input`,{type:`date`,className:U.input,value:h,onChange:e=>_(e.target.value)})]}),(l!==`all`||d!==`all`||p!==`all`||h||o)&&(0,L.jsx)(`button`,{type:`button`,className:U.clear,onClick:()=>{s(``),u(`all`),f(`all`),m(`all`),_(``)},children:`Clear filters`})]}),n.status===`loading`?(0,L.jsxs)(`div`,{className:U.tableWrap,children:[(0,L.jsx)(c,{}),(0,L.jsx)(c,{}),(0,L.jsx)(c,{})]}):n.status===`error`?(0,L.jsx)(`div`,{className:U.error,role:`alert`,children:n.error?.message??`Failed to load runs.`}):D.length===0?(0,L.jsx)(`p`,{className:U.empty,children:`No runs match the current filters.`}):(0,L.jsx)(`div`,{className:U.tableWrap,children:(0,L.jsxs)(`table`,{className:U.table,onKeyDown:te,children:[(0,L.jsx)(`thead`,{children:(0,L.jsxs)(`tr`,{children:[(0,L.jsx)(`th`,{scope:`col`,children:`Goal`}),(0,L.jsx)(`th`,{scope:`col`,className:U.statusCol,children:(0,L.jsxs)(`button`,{type:`button`,className:U.sortHeader,onClick:()=>ne(`status`),children:[`Status`,O(`status`)]})}),(0,L.jsx)(`th`,{scope:`col`,className:U.engineCol,children:`Engine`}),(0,L.jsx)(`th`,{scope:`col`,className:U.providerCol,children:`Provider`}),(0,L.jsx)(`th`,{scope:`col`,className:U.tokensCol,children:(0,L.jsxs)(`button`,{type:`button`,className:U.sortHeader,onClick:()=>ne(`tokens`),children:[`Tokens in/out`,O(`tokens`)]})}),(0,L.jsx)(`th`,{scope:`col`,className:U.costCol,children:(0,L.jsxs)(`button`,{type:`button`,className:U.sortHeader,onClick:()=>ne(`estCostUsd`),children:[`Est cost`,O(`estCostUsd`)]})}),(0,L.jsx)(`th`,{scope:`col`,className:U.stepsCol,children:(0,L.jsxs)(`button`,{type:`button`,className:U.sortHeader,onClick:()=>ne(`steps`),children:[`Steps`,O(`steps`)]})}),(0,L.jsx)(`th`,{scope:`col`,className:U.createdCol,children:(0,L.jsxs)(`button`,{type:`button`,className:U.sortHeader,onClick:()=>ne(`createdAt`),children:[`Created`,O(`createdAt`)]})})]})}),(0,L.jsx)(`tbody`,{children:D.map((e,t)=>(0,L.jsxs)(`tr`,{ref:t=>{t?a.current.set(e.id,t):a.current.delete(e.id)},tabIndex:t===r?0:-1,onFocus:()=>i(t),"aria-current":t===r?`true`:void 0,className:U.row,children:[(0,L.jsx)(`td`,{children:(0,L.jsx)(Or,{to:`/work/runs/${e.id}`,"data-focus-key":`run-${e.id}`,className:U.goalLink,title:e.goal,tabIndex:-1,children:e.goal})}),(0,L.jsx)(`td`,{children:(0,L.jsx)(E,{status:e.status})}),(0,L.jsx)(`td`,{children:e.engine}),(0,L.jsx)(`td`,{children:e.provider}),(0,L.jsxs)(`td`,{className:U.numeric,children:[e.usage.tokensIn.toLocaleString(),` / `,e.usage.tokensOut.toLocaleString()]}),(0,L.jsxs)(`td`,{className:U.numeric,children:[`$`,e.usage.estCostUsd.toFixed(4)]}),(0,L.jsx)(`td`,{className:U.numeric,children:e.steps.length}),(0,L.jsx)(`td`,{className:U.date,children:So(e.createdAt)})]},e.id))})]})})]})}var W={view:`_view_16nop_1`,header:`_header_16nop_8`,eyebrow:`_eyebrow_16nop_16`,title:`_title_16nop_22`,freshness:`_freshness_16nop_29`,metaGrid:`_metaGrid_16nop_35`,numeric:`_numeric_16nop_55`,section:`_section_16nop_59`,sectionTitle:`_sectionTitle_16nop_65`,resultText:`_resultText_16nop_70`,taskList:`_taskList_16nop_79`,taskItem:`_taskItem_16nop_85`,taskHeader:`_taskHeader_16nop_98`,taskId:`_taskId_16nop_105`,taskGoal:`_taskGoal_16nop_111`,taskDeps:`_taskDeps_16nop_116`,depLink:`_depLink_16nop_122`,depMissing:`_depMissing_16nop_127`,taskError:`_taskError_16nop_132`,taskUsage:`_taskUsage_16nop_141`,stepList:`_stepList_16nop_148`,stepItem:`_stepItem_16nop_155`,stepTs:`_stepTs_16nop_164`,stepKind:`_stepKind_16nop_170`,stepTask:`_stepTask_16nop_176`,stepSummary:`_stepSummary_16nop_180`,empty:`_empty_16nop_185`,error:`_error_16nop_190`};function wo(e){if(!e)return`—`;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function To(e){return`task-${encodeURIComponent(e)}`}function Eo(){let{id:e}=vn(),t=(0,M.useRef)(null);ke(`/work/runs/${e??``}`,t);let n=g(ne(e??``));if(!e)return(0,L.jsx)(`div`,{className:W.view,children:(0,L.jsx)(`p`,{className:W.error,role:`alert`,children:`No run id in URL.`})});if(n.status===`loading`)return(0,L.jsxs)(`div`,{ref:t,className:W.view,children:[(0,L.jsx)(f,{width:`60%`}),(0,L.jsx)(f,{width:`30%`}),(0,L.jsx)(f,{width:`80%`})]});if(n.status===`error`||!n.data)return(0,L.jsx)(`div`,{ref:t,className:W.view,children:(0,L.jsx)(`p`,{className:W.error,role:`alert`,children:n.error?.message??`Run ${e} not found.`})});let r=n.data,i=new Map(r.tasks.map(e=>[e.id,e]));return(0,L.jsxs)(`div`,{ref:t,className:W.view,children:[(0,L.jsxs)(`header`,{className:W.header,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsxs)(`p`,{className:W.eyebrow,children:[`Run `,r.id]}),(0,L.jsx)(`h1`,{className:W.title,children:r.goal})]}),(0,L.jsxs)(`div`,{className:W.freshness,"aria-live":`polite`,children:[n.status===`refreshing`?(0,L.jsx)(A,{}):null,(0,L.jsx)(E,{status:r.status})]})]}),(0,L.jsxs)(`dl`,{className:W.metaGrid,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Engine`}),(0,L.jsx)(`dd`,{children:r.engine})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Provider`}),(0,L.jsx)(`dd`,{children:r.provider})]}),r.engineModel?(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Model`}),(0,L.jsx)(`dd`,{children:r.engineModel})]}):null,(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Tokens in / out`}),(0,L.jsxs)(`dd`,{className:W.numeric,children:[r.usage.tokensIn.toLocaleString(),` / `,r.usage.tokensOut.toLocaleString()]})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Est cost`}),(0,L.jsxs)(`dd`,{className:W.numeric,children:[`$`,r.usage.estCostUsd.toFixed(4)]})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Steps`}),(0,L.jsx)(`dd`,{className:W.numeric,children:r.usage.steps})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Budget (tokens / steps)`}),(0,L.jsxs)(`dd`,{className:W.numeric,children:[r.budget.maxTokens.toLocaleString(),` / `,r.budget.maxSteps]})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Created`}),(0,L.jsx)(`dd`,{children:wo(r.createdAt)})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Updated`}),(0,L.jsx)(`dd`,{children:wo(r.updatedAt)})]}),r.terminationReason?(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Termination reason`}),(0,L.jsx)(`dd`,{children:r.terminationReason})]}):null]}),r.result?(0,L.jsxs)(`section`,{className:W.section,children:[(0,L.jsx)(`h2`,{className:W.sectionTitle,children:`Result`}),(0,L.jsx)(`p`,{className:W.resultText,children:r.result})]}):null,(0,L.jsxs)(`section`,{className:W.section,children:[(0,L.jsxs)(`h2`,{className:W.sectionTitle,children:[`Tasks (`,r.tasks.length,`)`]}),r.tasks.length===0?(0,L.jsx)(`p`,{className:W.empty,children:`No tasks recorded.`}):(0,L.jsx)(`ul`,{className:W.taskList,children:r.tasks.map(e=>(0,L.jsxs)(`li`,{id:To(e.id),className:W.taskItem,tabIndex:-1,children:[(0,L.jsxs)(`div`,{className:W.taskHeader,children:[(0,L.jsx)(`span`,{className:W.taskId,children:e.id}),(0,L.jsx)(E,{status:e.status})]}),(0,L.jsx)(`p`,{className:W.taskGoal,children:e.goal}),e.deps.length>0?(0,L.jsxs)(`p`,{className:W.taskDeps,children:[`depends on:`,` `,e.deps.map((e,t)=>(0,L.jsxs)(`span`,{children:[t>0?`, `:``,i.has(e)?(0,L.jsx)(`a`,{href:`#${To(e)}`,className:W.depLink,children:e}):(0,L.jsxs)(`span`,{className:W.depMissing,children:[e,` (unresolved)`]})]},e))]}):null,e.error?(0,L.jsx)(`p`,{className:W.taskError,role:`alert`,children:e.error}):null,e.usage?(0,L.jsxs)(`p`,{className:W.taskUsage,children:[e.usage.tokensIn.toLocaleString(),` / `,e.usage.tokensOut.toLocaleString(),` tokens · $`,e.usage.estCostUsd.toFixed(4)]}):null]},e.id))})]}),(0,L.jsxs)(`section`,{className:W.section,children:[(0,L.jsxs)(`h2`,{className:W.sectionTitle,children:[`Step log (`,r.steps.length,`)`]}),r.steps.length===0?(0,L.jsx)(`p`,{className:W.empty,children:`No steps recorded.`}):(0,L.jsx)(`ol`,{className:W.stepList,children:r.steps.map((e,t)=>(0,L.jsxs)(`li`,{className:W.stepItem,children:[(0,L.jsx)(`span`,{className:W.stepTs,children:wo(e.ts)}),(0,L.jsx)(`span`,{className:W.stepKind,children:e.kind}),(0,L.jsx)(`span`,{className:W.stepTask,children:e.taskId?(0,L.jsx)(`a`,{href:`#${To(e.taskId)}`,className:W.depLink,children:e.taskId}):null}),(0,L.jsx)(`span`,{className:W.stepSummary,children:e.summary})]},`${e.ts}-${t}`))})]})]})}var G={view:`_view_1kj6a_1`,header:`_header_1kj6a_8`,title:`_title_1kj6a_16`,freshness:`_freshness_1kj6a_22`,count:`_count_1kj6a_28`,filters:`_filters_1kj6a_34`,field:`_field_1kj6a_45`,fieldLabel:`_fieldLabel_1kj6a_51`,input:`_input_1kj6a_56`,select:`_select_1kj6a_57`,listWrap:`_listWrap_1kj6a_73`,listHeader:`_listHeader_1kj6a_80`,sortHeader:`_sortHeader_1kj6a_90`,list:`_list_1kj6a_73`,item:`_item_1kj6a_112`,goalLink:`_goalLink_1kj6a_124`,goalText:`_goalText_1kj6a_140`,burndown:`_burndown_1kj6a_150`,burndownTrack:`_burndownTrack_1kj6a_156`,burndownFill:`_burndownFill_1kj6a_164`,burndownLabel:`_burndownLabel_1kj6a_170`,numeric:`_numeric_1kj6a_177`,date:`_date_1kj6a_184`,empty:`_empty_1kj6a_191`,error:`_error_1kj6a_198`};function Do(e){return e.tasks.filter(e=>e.status===`done`).length}function Oo(e){return Math.max(e.plan?.tasks.length??0,e.tasks.length)}function ko(e){return e.usage??{tokensIn:0,tokensOut:0,estCostUsd:0}}function Ao(e){let t=ko(e);return t.tokensIn+t.tokensOut}function jo(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function Mo(){let e=(0,M.useRef)(null);ke(`/work/swarms`,e);let t=g(re),n=(0,M.useMemo)(()=>t.data??[],[t.data]),[r,i]=(0,M.useState)(``),[a,o]=(0,M.useState)(`all`),[s,l]=(0,M.useState)(`createdAt`),[u,d]=(0,M.useState)(`desc`),f=(0,M.useMemo)(()=>Array.from(new Set(n.map(e=>e.status))).sort(),[n]),p=(0,M.useMemo)(()=>{let e=n.filter(e=>{if(a!==`all`&&e.status!==a)return!1;if(!r.trim())return!0;let t=r.trim().toLowerCase();return e.id.toLowerCase().includes(t)||e.goal.toLowerCase().includes(t)});return e=[...e].sort((e,t)=>{let n=0;switch(s){case`createdAt`:n=e.createdAt.localeCompare(t.createdAt);break;case`updatedAt`:n=e.updatedAt.localeCompare(t.updatedAt);break;case`progress`:n=(Oo(e)>0?Do(e)/Oo(e):0)-(Oo(t)>0?Do(t)/Oo(t):0);break;case`tokens`:n=Ao(e)-Ao(t);break;case`estCostUsd`:n=ko(e).estCostUsd-ko(t).estCostUsd}return u===`asc`?n:-n}),e},[n,a,r,s,u]);function m(e){e===s?d(e=>e===`asc`?`desc`:`asc`):(l(e),d(`desc`))}function h(e){return e===s?u===`asc`?` ↑`:` ↓`:``}return(0,L.jsxs)(`div`,{ref:e,className:G.view,children:[(0,L.jsxs)(`header`,{className:G.header,children:[(0,L.jsx)(`h1`,{className:G.title,children:`Swarms`}),(0,L.jsxs)(`div`,{className:G.freshness,"aria-live":`polite`,children:[t.status===`refreshing`?(0,L.jsx)(A,{}):null,(0,L.jsxs)(`span`,{className:G.count,children:[p.length,` of `,n.length,` swarms`]})]})]}),(0,L.jsxs)(`form`,{className:G.filters,role:`search`,"aria-label":`Filter swarms`,onSubmit:e=>e.preventDefault(),children:[(0,L.jsxs)(`label`,{className:G.field,children:[(0,L.jsx)(`span`,{className:G.fieldLabel,children:`Search`}),(0,L.jsx)(`input`,{type:`text`,className:G.input,placeholder:`goal or swarm id`,value:r,onChange:e=>i(e.target.value)})]}),(0,L.jsxs)(`label`,{className:G.field,children:[(0,L.jsx)(`span`,{className:G.fieldLabel,children:`Status`}),(0,L.jsxs)(`select`,{className:G.select,value:a,onChange:e=>o(e.target.value),children:[(0,L.jsx)(`option`,{value:`all`,children:`All`}),f.map(e=>(0,L.jsx)(`option`,{value:e,children:e},e))]})]})]}),t.status===`loading`?(0,L.jsxs)(`div`,{className:G.listWrap,children:[(0,L.jsx)(c,{}),(0,L.jsx)(c,{}),(0,L.jsx)(c,{})]}):t.status===`error`?(0,L.jsx)(`div`,{className:G.error,role:`alert`,children:t.error?.message??`Failed to load swarms.`}):p.length===0?(0,L.jsx)(`p`,{className:G.empty,children:`No swarms match the current filters.`}):(0,L.jsxs)(`div`,{className:G.listWrap,children:[(0,L.jsxs)(`div`,{className:G.listHeader,children:[(0,L.jsx)(`span`,{children:`Goal`}),(0,L.jsxs)(`button`,{type:`button`,className:G.sortHeader,onClick:()=>m(`progress`),children:[`Progress`,h(`progress`)]}),(0,L.jsxs)(`button`,{type:`button`,className:G.sortHeader,onClick:()=>m(`tokens`),children:[`Tokens`,h(`tokens`)]}),(0,L.jsxs)(`button`,{type:`button`,className:G.sortHeader,onClick:()=>m(`estCostUsd`),children:[`Cost`,h(`estCostUsd`)]}),(0,L.jsxs)(`button`,{type:`button`,className:G.sortHeader,onClick:()=>m(`createdAt`),children:[`Created`,h(`createdAt`)]})]}),(0,L.jsx)(`ul`,{className:G.list,children:p.map(e=>{let t=Do(e),n=Oo(e),r=n>0?Math.round(t/n*100):0,i=ko(e);return(0,L.jsxs)(`li`,{className:G.item,children:[(0,L.jsxs)(Or,{to:`/work/swarms/${e.id}`,"data-focus-key":`swarm-${e.id}`,className:G.goalLink,title:e.goal,children:[(0,L.jsx)(`span`,{className:G.goalText,children:e.goal}),(0,L.jsx)(E,{status:e.status})]}),(0,L.jsxs)(`div`,{className:G.burndown,children:[(0,L.jsx)(`div`,{className:G.burndownTrack,children:(0,L.jsx)(`div`,{className:G.burndownFill,style:{width:`${r}%`}})}),(0,L.jsxs)(`span`,{className:G.burndownLabel,children:[t,`/`,n]})]}),(0,L.jsxs)(`span`,{className:G.numeric,children:[i.tokensIn.toLocaleString(),`/`,i.tokensOut.toLocaleString()]}),(0,L.jsxs)(`span`,{className:G.numeric,children:[`$`,i.estCostUsd.toFixed(4)]}),(0,L.jsx)(`span`,{className:G.date,children:jo(e.createdAt)})]},e.id)})})]})]})}var No={svg:`_svg_2w2xr_1`,phaseLabel:`_phaseLabel_2w2xr_7`,edge:`_edge_2w2xr_14`,arrowHead:`_arrowHead_2w2xr_19`,nodeLink:`_nodeLink_2w2xr_23`,nodeRect:`_nodeRect_2w2xr_26`,nodeId:`_nodeId_2w2xr_31`,nodeGoal:`_nodeGoal_2w2xr_37`,neutral:`_neutral_2w2xr_45`,statusDot:`_statusDot_2w2xr_49`,info:`_info_2w2xr_53`,running:`_running_2w2xr_61`,success:`_success_2w2xr_69`,warning:`_warning_2w2xr_77`,danger:`_danger_2w2xr_85`,unknown:`_unknown_2w2xr_93`,empty:`_empty_2w2xr_105`},Po={scaffold:0,build:1,integrate:2,verify:3,review:4};function Fo(e,t){let n=new Map;for(let t of e?.tasks??[])n.set(t.id,{id:t.id,phase:t.phase,goal:t.goal,deps:t.deps,status:`pending`});for(let e of t){let t=n.get(e.id);n.set(e.id,{id:e.id,phase:e.phase||t?.phase||`build`,goal:t?.goal??``,deps:t?.deps??[],status:e.status})}return Array.from(n.values())}function Io(e,t){return e.length>t?`${e.slice(0,t-1)}…`:e}var Lo=140,Ro=48,zo=20;function Bo({tasks:e,taskAnchorPrefix:t=`dag-task`}){if(e.length===0)return(0,L.jsx)(`p`,{className:No.empty,children:`No tasks in this swarm.`});let n=new Map;for(let t of e){let e=t.phase||`build`,r=n.get(e)??[];r.push(t),n.set(e,r)}let r=Array.from(n.keys()).sort((e,t)=>(Po[e]??99)-(Po[t]??99)),i=new Map,a=zo;for(let e of r)i.set(e,a),a+=200;let o=a+zo,s=new Map;for(let e of r){let t=zo;for(let r of n.get(e)){let n=i.get(e);s.set(r.id,{x:n,y:t,cx:n+Lo/2,cy:t+Ro/2}),t+=68}}let c=Math.max(...Array.from(s.values()).map(e=>e.y+Ro))+40,l=[];for(let t of e){let e=s.get(t.id);if(e)for(let n of t.deps){let r=s.get(n);if(!r)continue;let i=r.x+Lo,a=r.cy,o=e.x,c=e.cy,u=(i+o)/2;l.push({key:`${n}->${t.id}`,d:`M ${i} ${a} C ${u} ${a}, ${u} ${c}, ${o} ${c}`})}}return(0,L.jsxs)(`svg`,{width:o,height:c,viewBox:`0 0 ${o} ${c}`,className:No.svg,role:`img`,"aria-label":`Swarm task dependency graph`,children:[(0,L.jsx)(`defs`,{children:(0,L.jsx)(`marker`,{id:`dag-arrow`,markerWidth:`8`,markerHeight:`8`,refX:`6`,refY:`3`,orient:`auto`,children:(0,L.jsx)(`path`,{d:`M0,0 L0,6 L8,3 z`,className:No.arrowHead})})}),r.map(e=>(0,L.jsx)(`text`,{x:i.get(e)+Lo/2,y:14,textAnchor:`middle`,className:No.phaseLabel,children:e},e)),l.map(e=>(0,L.jsx)(`path`,{d:e.d,className:No.edge,fill:`none`,markerEnd:`url(#dag-arrow)`},e.key)),e.map(e=>{let n=s.get(e.id);if(!n)return null;let r=ee(e.status);return(0,L.jsx)(`g`,{transform:`translate(${n.x},${n.y})`,children:(0,L.jsxs)(`a`,{href:`#${t}-${encodeURIComponent(e.id)}`,className:No.nodeLink,children:[(0,L.jsx)(`title`,{children:`${e.id} — ${e.goal} (${e.status})`}),(0,L.jsx)(`rect`,{width:Lo,height:Ro,rx:6,ry:6,className:`${No.nodeRect} ${No[r]}`}),(0,L.jsx)(`circle`,{cx:10,cy:Ro/2,r:4,className:`${No.statusDot} ${No[r]}`}),(0,L.jsx)(`text`,{x:20,y:17,className:No.nodeId,children:Io(e.id,18)}),(0,L.jsx)(`text`,{x:20,y:33,className:No.nodeGoal,children:Io(e.goal,20)})]})},e.id)})]})}var K={view:`_view_19up6_1`,header:`_header_19up6_8`,eyebrow:`_eyebrow_19up6_16`,title:`_title_19up6_22`,freshness:`_freshness_19up6_29`,burndownRow:`_burndownRow_19up6_35`,burndownTrack:`_burndownTrack_19up6_41`,burndownFill:`_burndownFill_19up6_49`,burndownLabel:`_burndownLabel_19up6_55`,metaGrid:`_metaGrid_19up6_62`,numeric:`_numeric_19up6_80`,mono:`_mono_19up6_84`,section:`_section_19up6_90`,sectionTitle:`_sectionTitle_19up6_96`,resultText:`_resultText_19up6_101`,escalationList:`_escalationList_19up6_110`,escalationItem:`_escalationItem_19up6_115`,escalationJson:`_escalationJson_19up6_120`,dagWrap:`_dagWrap_19up6_130`,taskList:`_taskList_19up6_138`,taskItem:`_taskItem_19up6_144`,taskHeader:`_taskHeader_19up6_157`,taskId:`_taskId_19up6_163`,taskPhase:`_taskPhase_19up6_169`,taskGoal:`_taskGoal_19up6_176`,taskDeps:`_taskDeps_19up6_181`,error:`_error_19up6_188`},Vo=`dag-task`;function Ho(e){if(!e)return`—`;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function Uo(){let{id:e}=vn(),t=(0,M.useRef)(null);ke(`/work/swarms/${e??``}`,t);let n=g(ye(e??``));if(!e)return(0,L.jsx)(`div`,{className:K.view,children:(0,L.jsx)(`p`,{className:K.error,role:`alert`,children:`No swarm id in URL.`})});if(n.status===`loading`)return(0,L.jsxs)(`div`,{ref:t,className:K.view,children:[(0,L.jsx)(f,{width:`60%`}),(0,L.jsx)(f,{width:`30%`}),(0,L.jsx)(f,{width:`80%`})]});if(n.status===`error`||!n.data)return(0,L.jsx)(`div`,{ref:t,className:K.view,children:(0,L.jsx)(`p`,{className:K.error,role:`alert`,children:n.error?.message??`Swarm ${e} not found.`})});let r=n.data,i=r.tasks.filter(e=>e.status===`done`).length,a=Math.max(r.plan?.tasks.length??0,r.tasks.length),o=a>0?Math.round(i/a*100):0,s=Fo(r.plan,r.tasks),c=r.usage??{tokensIn:0,tokensOut:0,estCostUsd:0};return(0,L.jsxs)(`div`,{ref:t,className:K.view,children:[(0,L.jsxs)(`header`,{className:K.header,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsxs)(`p`,{className:K.eyebrow,children:[`Swarm `,r.id]}),(0,L.jsx)(`h1`,{className:K.title,children:r.goal})]}),(0,L.jsxs)(`div`,{className:K.freshness,"aria-live":`polite`,children:[n.status===`refreshing`?(0,L.jsx)(A,{}):null,(0,L.jsx)(E,{status:r.status})]})]}),(0,L.jsxs)(`div`,{className:K.burndownRow,children:[(0,L.jsx)(`div`,{className:K.burndownTrack,children:(0,L.jsx)(`div`,{className:K.burndownFill,style:{width:`${o}%`}})}),(0,L.jsxs)(`span`,{className:K.burndownLabel,children:[i,`/`,a,` tasks done (`,o,`%)`]})]}),(0,L.jsxs)(`dl`,{className:K.metaGrid,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Tokens in / out`}),(0,L.jsxs)(`dd`,{className:K.numeric,children:[c.tokensIn.toLocaleString(),` / `,c.tokensOut.toLocaleString()]})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Est cost`}),(0,L.jsxs)(`dd`,{className:K.numeric,children:[`$`,c.estCostUsd.toFixed(4)]})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Parallelism`}),(0,L.jsx)(`dd`,{className:K.numeric,children:r.parallel})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Created`}),(0,L.jsx)(`dd`,{children:Ho(r.createdAt)})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Updated`}),(0,L.jsx)(`dd`,{children:Ho(r.updatedAt)})]}),r.project?(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Project`}),(0,L.jsx)(`dd`,{className:K.mono,children:r.project})]}):null]}),r.escalations&&r.escalations.length>0?(0,L.jsxs)(`section`,{className:K.section,children:[(0,L.jsxs)(`h2`,{className:K.sectionTitle,children:[`Escalations (`,r.escalations.length,`)`]}),(0,L.jsx)(`ul`,{className:K.escalationList,children:r.escalations.map((e,t)=>(0,L.jsx)(`li`,{className:K.escalationItem,children:(0,L.jsx)(`pre`,{className:K.escalationJson,children:JSON.stringify(e,null,2)})},t))})]}):null,r.result?(0,L.jsxs)(`section`,{className:K.section,children:[(0,L.jsx)(`h2`,{className:K.sectionTitle,children:`Result`}),(0,L.jsx)(`p`,{className:K.resultText,children:r.result})]}):null,(0,L.jsxs)(`section`,{className:K.section,children:[(0,L.jsx)(`h2`,{className:K.sectionTitle,children:`Task graph`}),(0,L.jsx)(`div`,{className:K.dagWrap,children:(0,L.jsx)(Bo,{tasks:s,taskAnchorPrefix:Vo})})]}),(0,L.jsxs)(`section`,{className:K.section,children:[(0,L.jsxs)(`h2`,{className:K.sectionTitle,children:[`Tasks (`,s.length,`)`]}),(0,L.jsx)(`ul`,{className:K.taskList,children:s.map(e=>(0,L.jsxs)(`li`,{id:`${Vo}-${e.id}`,"data-focus-key":`swarm-task-${e.id}`,className:K.taskItem,tabIndex:-1,children:[(0,L.jsxs)(`div`,{className:K.taskHeader,children:[(0,L.jsx)(`span`,{className:K.taskId,children:e.id}),(0,L.jsx)(`span`,{className:K.taskPhase,children:e.phase}),(0,L.jsx)(E,{status:e.status})]}),(0,L.jsx)(`p`,{className:K.taskGoal,children:e.goal}),e.deps.length>0?(0,L.jsxs)(`p`,{className:K.taskDeps,children:[`depends on: `,e.deps.join(`, `)]}):null]},e.id))})]})]})}var q={view:`_view_1bwoy_1`,header:`_header_1bwoy_8`,title:`_title_1bwoy_16`,freshness:`_freshness_1bwoy_22`,callout:`_callout_1bwoy_28`,calloutTitle:`_calloutTitle_1bwoy_39`,calloutBody:`_calloutBody_1bwoy_44`,calloutCommand:`_calloutCommand_1bwoy_48`,metaGrid:`_metaGrid_1bwoy_59`,section:`_section_1bwoy_77`,sectionTitle:`_sectionTitle_1bwoy_83`,serviceError:`_serviceError_1bwoy_88`,tickTableWrap:`_tickTableWrap_1bwoy_96`,tickTable:`_tickTable_1bwoy_96`,date:`_date_1bwoy_124`,numeric:`_numeric_1bwoy_130`,dryRun:`_dryRun_1bwoy_135`,empty:`_empty_1bwoy_140`,error:`_error_1bwoy_145`},Wo={missing:`No daemon state file has been written yet — the daemon may never have run on this machine.`,malformed:`The daemon state file exists but failed to parse.`,unreadable:`The daemon state file could not be read. This is also the exact signal produced when a state-recovery marker is present (a prior repair left a quarantine in progress) — the API does not distinguish the two cases, so treat this as "inspect before trusting displayed daemon state."`,inconsistent:`The daemon state file and the live lock/activity check disagree — the daemon may be mid-restart.`,unavailable:`The daemon state read path itself failed (I/O error or similar).`};function Go(e){if(!e)return`—`;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function Ko({quality:e}){let t=e.reason,n=Wo[t]??`Daemon state could not be verified.`;return(0,L.jsxs)(`section`,{className:q.callout,role:`alert`,children:[(0,L.jsxs)(`p`,{className:q.calloutTitle,children:[`Daemon state is unknown (`,t,`)`]}),(0,L.jsx)(`p`,{className:q.calloutBody,children:n}),(0,L.jsx)(`p`,{className:q.calloutBody,children:`Real remedy — preview or execute a state recovery from a terminal on this machine:`}),(0,L.jsx)(`pre`,{className:q.calloutCommand,children:`ashlr daemon recover-state --dry-run --expected-sha256 <sha256> [--json]
|
|
5
5
|
ashlr daemon recover-state --execute --plan-id <uuid> --plan-sha256 <sha256> --authorize <plan-sha256> [--json]`}),(0,L.jsx)(`p`,{className:q.calloutBody,children:`If a quarantine already exists and needs resolving instead:`}),(0,L.jsx)(`pre`,{className:q.calloutCommand,children:`ashlr daemon resolve-state --dry-run --quarantine-plan-id <uuid> --quarantine-receipt-sha256 <sha256> [--json]
|
|
6
6
|
ashlr daemon resolve-state --execute --plan-id <uuid> --plan-sha256 <sha256> --authorize <plan-sha256> --confirm <plan-sha256> [--json]`})]})}function qo(){let e=(0,M.useRef)(null);ke(`/control/daemon`,e);let t=g(me),n=g(le),r=t.data?.daemon,i=n.data;return(0,L.jsxs)(`div`,{ref:e,className:q.view,children:[(0,L.jsxs)(`header`,{className:q.header,children:[(0,L.jsx)(`h1`,{className:q.title,children:`Daemon`}),(0,L.jsxs)(`div`,{className:q.freshness,"aria-live":`polite`,children:[t.status===`refreshing`||n.status===`refreshing`?(0,L.jsx)(A,{}):null,r?(0,L.jsx)(T,{quality:r.sourceQuality,label:`daemon state`,children:(0,L.jsx)(E,{status:r.running?`running`:`pending`,children:r.running?`running`:`stopped`})}):null]})]}),t.status===`loading`?(0,L.jsx)(f,{width:`60%`}):t.status===`error`||!r?(0,L.jsx)(`p`,{className:q.error,role:`alert`,children:t.error?.message??`Failed to load control snapshot.`}):(0,L.jsxs)(L.Fragment,{children:[w(r.sourceQuality)?null:(0,L.jsx)(Ko,{quality:r.sourceQuality}),(0,L.jsxs)(`dl`,{className:q.metaGrid,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Runtime state`}),(0,L.jsx)(`dd`,{children:(0,L.jsx)(T,{quality:r.sourceQuality,label:`runtime state`,children:r.runtimeState})})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`PID`}),(0,L.jsx)(`dd`,{children:(0,L.jsx)(T,{quality:r.sourceQuality,label:`pid`,children:r.pid??`—`})})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Last tick`}),(0,L.jsx)(`dd`,{children:(0,L.jsx)(T,{quality:r.sourceQuality,label:`last tick`,children:Go(r.lastTickAt)})})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Today's spend`}),(0,L.jsx)(`dd`,{children:(0,L.jsxs)(T,{quality:r.sourceQuality,label:`spend`,children:[`$`,r.todaySpentUsd.toFixed(2)]})})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Direction mode`}),(0,L.jsx)(`dd`,{children:(0,L.jsx)(T,{quality:r.sourceQuality,label:`direction mode`,children:r.activeDirectionMode??`none`})})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Direction reason`}),(0,L.jsx)(`dd`,{children:(0,L.jsx)(T,{quality:r.sourceQuality,label:`direction reason`,children:r.activeDirectionReason??`—`})})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Autonomy control loop`}),(0,L.jsx)(`dd`,{children:(0,L.jsx)(T,{quality:r.sourceQuality,label:`autonomy control loop`,children:r.autonomyControlLoop?`enabled`:`disabled`})})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Autonomy control mode`}),(0,L.jsx)(`dd`,{children:(0,L.jsx)(T,{quality:r.sourceQuality,label:`autonomy control mode`,children:r.autonomyControlMode})})]})]}),(0,L.jsxs)(`section`,{className:q.section,children:[(0,L.jsx)(`h2`,{className:q.sectionTitle,children:`OS service`}),(0,L.jsxs)(`dl`,{className:q.metaGrid,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Registration state`}),(0,L.jsx)(`dd`,{children:r.service.registrationState})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Installed`}),(0,L.jsx)(`dd`,{children:r.service.installed?`yes`:`no`})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Running`}),(0,L.jsx)(`dd`,{children:r.service.running?`yes`:`no`})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Runtime state`}),(0,L.jsx)(`dd`,{children:r.service.runtimeState??`unknown`})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Platform`}),(0,L.jsx)(`dd`,{children:r.service.platformSpec})]})]}),r.service.errorLog?(0,L.jsx)(`p`,{className:q.serviceError,role:`alert`,children:r.service.errorLog}):null]})]}),(0,L.jsxs)(`section`,{className:q.section,children:[(0,L.jsx)(`h2`,{className:q.sectionTitle,children:`Recent ticks`}),n.status===`loading`?(0,L.jsx)(f,{width:`80%`}):!i||!i.ticks||i.ticks.length===0?(0,L.jsx)(`p`,{className:q.empty,children:`No tick history available.`}):(0,L.jsx)(`div`,{className:q.tickTableWrap,children:(0,L.jsxs)(`table`,{className:q.tickTable,children:[(0,L.jsx)(`thead`,{children:(0,L.jsxs)(`tr`,{children:[(0,L.jsx)(`th`,{scope:`col`,children:`Time`}),(0,L.jsx)(`th`,{scope:`col`,children:`Reason`}),(0,L.jsx)(`th`,{scope:`col`,children:`Items`}),(0,L.jsx)(`th`,{scope:`col`,children:`Proposals`}),(0,L.jsx)(`th`,{scope:`col`,children:`Spend`})]})}),(0,L.jsx)(`tbody`,{children:[...i.ticks].reverse().slice(0,20).map((e,t)=>(0,L.jsxs)(`tr`,{children:[(0,L.jsx)(`td`,{className:q.date,children:Go(e.ts)}),(0,L.jsxs)(`td`,{children:[e.reason,e.dryRun?(0,L.jsx)(`span`,{className:q.dryRun,children:` (dry-run)`}):null]}),(0,L.jsx)(`td`,{className:q.numeric,children:e.itemsConsidered}),(0,L.jsx)(`td`,{className:q.numeric,children:e.proposalsCreated}),(0,L.jsxs)(`td`,{className:q.numeric,children:[`$`,e.spentUsd.toFixed(4)]})]},`${e.ts}-${t}`))})]})})]})]})}var J={view:`_view_ssrhq_1`,header:`_header_ssrhq_8`,title:`_title_ssrhq_14`,freshness:`_freshness_ssrhq_20`,section:`_section_ssrhq_26`,sectionTitle:`_sectionTitle_ssrhq_32`,killSwitchRow:`_killSwitchRow_ssrhq_37`,pauseButton:`_pauseButton_ssrhq_47`,resumeButton:`_resumeButton_ssrhq_65`,mutationError:`_mutationError_ssrhq_83`,metaGrid:`_metaGrid_ssrhq_91`,numeric:`_numeric_ssrhq_109`,lockWarning:`_lockWarning_ssrhq_113`,tableWrap:`_tableWrap_ssrhq_117`,table:`_table_ssrhq_117`,mono:`_mono_ssrhq_144`,empty:`_empty_ssrhq_149`,error:`_error_ssrhq_154`,confirmBody:`_confirmBody_ssrhq_162`,confirmActions:`_confirmActions_ssrhq_168`,cancelButton:`_cancelButton_ssrhq_174`,confirmButton:`_confirmButton_ssrhq_186`};function Jo(e){if(!e)return`—`;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function Yo(){let e=(0,M.useRef)(null);ke(`/control/fleet`,e);let t=g(he),n=g(fe),r=u(),[i,a]=(0,M.useState)(null),[o,s]=(0,M.useState)(!1),[c,l]=(0,M.useState)(!1),[d,p]=(0,M.useState)(!1),[m,h]=(0,M.useState)(null);async function _(e){p(!0),h(null);try{e===`pause`?await xe():await be()}catch(e){h(e instanceof Error?e.message:String(e))}finally{p(!1),a(null)}}function v(e){h(null),a(e),s(!0)}function y(){s(!1),r.hasHold?i&&_(i):l(!0)}(0,M.useEffect)(()=>{c||i&&(r.hasHold?_(i):a(null))},[c]);let b=t.data,x=b?.killSwitch,C=x?{sourceState:x.sourceState,complete:x.sourceState===`healthy`,reason:x.reason}:void 0,w=b?.killed===!0;return(0,L.jsxs)(`div`,{ref:e,className:J.view,children:[(0,L.jsxs)(`header`,{className:J.header,children:[(0,L.jsx)(`h1`,{className:J.title,children:`Fleet`}),(0,L.jsx)(`div`,{className:J.freshness,"aria-live":`polite`,children:t.status===`refreshing`||n.status===`refreshing`?(0,L.jsx)(A,{}):null})]}),t.status===`loading`?(0,L.jsx)(f,{width:`60%`}):t.status===`error`||!b?(0,L.jsx)(`p`,{className:J.error,role:`alert`,children:t.error?.message??`Failed to load fleet status.`}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`section`,{className:J.section,children:[(0,L.jsx)(`h2`,{className:J.sectionTitle,children:`Kill switch`}),(0,L.jsx)(`div`,{className:J.killSwitchRow,children:(0,L.jsx)(T,{quality:C,label:`kill switch`,renderControl:()=>(0,L.jsx)(`button`,{type:`button`,className:w?J.resumeButton:J.pauseButton,onClick:()=>v(w?`resume`:`pause`),disabled:d,children:d?`Working…`:w?`Resume fleet`:`Pause fleet`}),children:(0,L.jsx)(E,{status:w?`paused`:`running`,children:w?`engaged — fleet paused`:`clear — fleet active`})})}),m?(0,L.jsx)(`p`,{className:J.mutationError,role:`alert`,children:m}):null]}),(0,L.jsxs)(`section`,{className:J.section,children:[(0,L.jsx)(`h2`,{className:J.sectionTitle,children:`Queue depth`}),(0,L.jsxs)(`dl`,{className:J.metaGrid,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Backlog items`}),(0,L.jsx)(`dd`,{className:J.numeric,children:b.queue.backlogItems})]}),b.queue.eligibleBacklogItems===void 0?null:(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Eligible`}),(0,L.jsx)(`dd`,{className:J.numeric,children:b.queue.eligibleBacklogItems})]}),b.queue.cooldownItems===void 0?null:(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Cooldown`}),(0,L.jsx)(`dd`,{className:J.numeric,children:b.queue.cooldownItems})]}),b.queue.pendingItems===void 0?null:(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Pending`}),(0,L.jsx)(`dd`,{className:J.numeric,children:b.queue.pendingItems})]}),b.queue.nextEligibleAt===void 0?null:(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Next eligible`}),(0,L.jsx)(`dd`,{children:Jo(b.queue.nextEligibleAt)})]})]})]}),(0,L.jsxs)(`section`,{className:J.section,children:[(0,L.jsx)(`h2`,{className:J.sectionTitle,children:`Lease health`}),b.queue.shared?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`dl`,{className:J.metaGrid,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Active claims`}),(0,L.jsx)(`dd`,{className:J.numeric,children:b.queue.shared.activeClaims})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Owned by this machine`}),(0,L.jsx)(`dd`,{className:J.numeric,children:b.queue.shared.ownedClaims})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Reclaimable (expired)`}),(0,L.jsx)(`dd`,{className:J.numeric,children:b.queue.shared.reclaimableClaims})]}),b.queue.shared.executingClaims===void 0?null:(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Executing`}),(0,L.jsx)(`dd`,{className:J.numeric,children:b.queue.shared.executingClaims})]}),b.queue.shared.ambiguousClaims===void 0?null:(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Ambiguous (needs reconciliation)`}),(0,L.jsx)(`dd`,{className:J.numeric,children:b.queue.shared.ambiguousClaims})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Next lease expiry`}),(0,L.jsx)(`dd`,{children:Jo(b.queue.shared.nextLeaseExpiryAt)})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Advisory lock`}),(0,L.jsxs)(`dd`,{children:[b.queue.shared.lock.present?b.queue.shared.lock.stale?`present, stale`:`present, healthy`:`absent`,b.queue.shared.lock.recoveryRequired?(0,L.jsx)(`span`,{className:J.lockWarning,children:` — recovery required`}):null]})]})]}),b.queue.shared.claimsByMachine.length>0?(0,L.jsx)(`div`,{className:J.tableWrap,children:(0,L.jsxs)(`table`,{className:J.table,children:[(0,L.jsx)(`thead`,{children:(0,L.jsxs)(`tr`,{children:[(0,L.jsx)(`th`,{scope:`col`,children:`Machine`}),(0,L.jsx)(`th`,{scope:`col`,children:`Active`}),(0,L.jsx)(`th`,{scope:`col`,children:`Expired`}),(0,L.jsx)(`th`,{scope:`col`,children:`Executing`})]})}),(0,L.jsx)(`tbody`,{children:b.queue.shared.claimsByMachine.map(e=>(0,L.jsxs)(`tr`,{children:[(0,L.jsx)(`td`,{className:J.mono,children:e.machineId}),(0,L.jsx)(`td`,{className:J.numeric,children:e.active}),(0,L.jsx)(`td`,{className:J.numeric,children:e.expired}),(0,L.jsx)(`td`,{className:J.numeric,children:e.executing??`—`})]},e.machineId))})]})}):null]}):(0,L.jsx)(`p`,{className:J.empty,children:`Shared fleet queue is not in use on this deployment.`})]})]}),(0,L.jsxs)(`section`,{className:J.section,children:[(0,L.jsx)(`h2`,{className:J.sectionTitle,children:`Recent activity`}),n.status===`loading`?(0,L.jsx)(f,{width:`70%`}):n.status===`error`||!n.data?(0,L.jsx)(`p`,{className:J.error,role:`alert`,children:n.error?.message??`Failed to load fleet activity.`}):(0,L.jsxs)(`dl`,{className:J.metaGrid,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Cooldown items`}),(0,L.jsx)(`dd`,{className:J.numeric,children:n.data.cooldownCount})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Engines ready`}),(0,L.jsxs)(`dd`,{className:J.numeric,children:[n.data.engineReadiness.filter(e=>e.installed&&e.authed===!0).length,` /`,` `,n.data.engineReadiness.length]})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Recent auto-merges`}),(0,L.jsx)(`dd`,{className:J.numeric,children:b?.merges.recent??`—`})]})]})]}),(0,L.jsxs)(S,{open:o,onClose:()=>{s(!1),a(null)},titleId:`fleet-kill-switch-confirm`,title:i===`resume`?`Resume the fleet?`:`Pause the fleet?`,children:[(0,L.jsx)(`p`,{className:J.confirmBody,children:i===`resume`?`This clears the global kill switch. Autonomous dispatch will resume across the fleet.`:`This engages the global kill switch. Autonomous dispatch halts fleet-wide until explicitly resumed.`}),(0,L.jsxs)(`div`,{className:J.confirmActions,children:[(0,L.jsx)(`button`,{type:`button`,className:J.cancelButton,onClick:()=>{s(!1),a(null)},children:`Cancel`}),(0,L.jsx)(`button`,{type:`button`,className:J.confirmButton,onClick:y,children:i===`resume`?`Yes, resume`:`Yes, pause`})]})]}),(0,L.jsx)(we,{open:c,onClose:()=>l(!1),reason:i===`resume`?`Resuming the fleet requires the dispatch token.`:`Pausing the fleet requires the dispatch token.`})]})}var Y={view:`_view_1fet3_1`,header:`_header_1fet3_8`,title:`_title_1fet3_14`,freshness:`_freshness_1fet3_20`,unavailable:`_unavailable_1fet3_26`,counts:`_counts_1fet3_35`,countTile:`_countTile_1fet3_41`,countValue:`_countValue_1fet3_51`,countLabel:`_countLabel_1fet3_57`,critical:`_critical_1fet3_64`,high:`_high_1fet3_65`,medium:`_medium_1fet3_68`,low:`_low_1fet3_71`,filters:`_filters_1fet3_75`,field:`_field_1fet3_86`,fieldLabel:`_fieldLabel_1fet3_92`,input:`_input_1fet3_97`,select:`_select_1fet3_98`,tableWrap:`_tableWrap_1fet3_114`,table:`_table_1fet3_114`,mono:`_mono_1fet3_141`,empty:`_empty_1fet3_146`,error:`_error_1fet3_153`},Xo={critical:`danger`,high:`danger`,medium:`warning`,low:`neutral`},Zo={critical:0,high:1,medium:2,low:3};function Qo(){let e=(0,M.useRef)(null);ke(`/control/security`,e);let t=g(me),n=t.data?.security,[r,i]=(0,M.useState)(``),[a,o]=(0,M.useState)(`all`),[s,c]=(0,M.useState)(`all`),l=(0,M.useMemo)(()=>Array.from(new Set((n?.findings??[]).map(e=>e.repo))).sort(),[n]),u=(0,M.useMemo)(()=>(n?.findings??[]).filter(e=>a===`all`||e.severity===a).filter(e=>s===`all`||e.repo===s).filter(e=>{if(!r.trim())return!0;let t=r.trim().toLowerCase();return e.title.toLowerCase().includes(t)||e.repo.toLowerCase().includes(t)}).sort((e,t)=>(Zo[e.severity]??9)-(Zo[t.severity]??9)),[n,a,s,r]);return(0,L.jsxs)(`div`,{ref:e,className:Y.view,children:[(0,L.jsxs)(`header`,{className:Y.header,children:[(0,L.jsx)(`h1`,{className:Y.title,children:`Security`}),(0,L.jsx)(`div`,{className:Y.freshness,"aria-live":`polite`,children:t.status===`refreshing`?(0,L.jsx)(A,{}):null})]}),t.status===`loading`?(0,L.jsx)(f,{width:`60%`}):t.status===`error`||!n?(0,L.jsx)(`p`,{className:Y.error,role:`alert`,children:t.error?.message??`Failed to load control snapshot.`}):n.available?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`div`,{className:Y.counts,children:[(0,L.jsxs)(`div`,{className:`${Y.countTile} ${Y.critical}`,children:[(0,L.jsx)(`span`,{className:Y.countValue,children:n.counts.critical}),(0,L.jsx)(`span`,{className:Y.countLabel,children:`Critical`})]}),(0,L.jsxs)(`div`,{className:`${Y.countTile} ${Y.high}`,children:[(0,L.jsx)(`span`,{className:Y.countValue,children:n.counts.high}),(0,L.jsx)(`span`,{className:Y.countLabel,children:`High`})]}),(0,L.jsxs)(`div`,{className:`${Y.countTile} ${Y.medium}`,children:[(0,L.jsx)(`span`,{className:Y.countValue,children:n.counts.medium}),(0,L.jsx)(`span`,{className:Y.countLabel,children:`Medium`})]}),(0,L.jsxs)(`div`,{className:`${Y.countTile} ${Y.low}`,children:[(0,L.jsx)(`span`,{className:Y.countValue,children:n.counts.low}),(0,L.jsx)(`span`,{className:Y.countLabel,children:`Low`})]})]}),(0,L.jsxs)(`form`,{className:Y.filters,role:`search`,"aria-label":`Filter findings`,onSubmit:e=>e.preventDefault(),children:[(0,L.jsxs)(`label`,{className:Y.field,children:[(0,L.jsx)(`span`,{className:Y.fieldLabel,children:`Search`}),(0,L.jsx)(`input`,{type:`text`,className:Y.input,placeholder:`title or repo`,value:r,onChange:e=>i(e.target.value)})]}),(0,L.jsxs)(`label`,{className:Y.field,children:[(0,L.jsx)(`span`,{className:Y.fieldLabel,children:`Severity`}),(0,L.jsxs)(`select`,{className:Y.select,value:a,onChange:e=>o(e.target.value),children:[(0,L.jsx)(`option`,{value:`all`,children:`All`}),(0,L.jsx)(`option`,{value:`critical`,children:`Critical`}),(0,L.jsx)(`option`,{value:`high`,children:`High`}),(0,L.jsx)(`option`,{value:`medium`,children:`Medium`}),(0,L.jsx)(`option`,{value:`low`,children:`Low`})]})]}),(0,L.jsxs)(`label`,{className:Y.field,children:[(0,L.jsx)(`span`,{className:Y.fieldLabel,children:`Repo`}),(0,L.jsxs)(`select`,{className:Y.select,value:s,onChange:e=>c(e.target.value),children:[(0,L.jsx)(`option`,{value:`all`,children:`All`}),l.map(e=>(0,L.jsx)(`option`,{value:e,children:e},e))]})]})]}),u.length===0?(0,L.jsx)(`p`,{className:Y.empty,children:`No findings match the current filters.`}):(0,L.jsx)(`div`,{className:Y.tableWrap,children:(0,L.jsxs)(`table`,{className:Y.table,children:[(0,L.jsx)(`thead`,{children:(0,L.jsxs)(`tr`,{children:[(0,L.jsx)(`th`,{scope:`col`,children:`Severity`}),(0,L.jsx)(`th`,{scope:`col`,children:`Repo`}),(0,L.jsx)(`th`,{scope:`col`,children:`Finding`})]})}),(0,L.jsx)(`tbody`,{children:u.map((e,t)=>(0,L.jsxs)(`tr`,{children:[(0,L.jsx)(`td`,{children:(0,L.jsx)(E,{status:e.severity,tone:Xo[e.severity]??`neutral`})}),(0,L.jsx)(`td`,{className:Y.mono,children:e.repo}),(0,L.jsx)(`td`,{children:e.title})]},`${e.repo}-${e.title}-${t}`))})]})})]}):(0,L.jsx)(`p`,{className:Y.unavailable,children:`No cached security data available — the backlog is absent, empty, or has no security-source findings. This is not the same as "clean": it means binshield hasn't produced cached findings for this fleet yet.`})]})}var X={view:`_view_1yeql_1`,header:`_header_1yeql_8`,title:`_title_1yeql_14`,freshness:`_freshness_1yeql_20`,count:`_count_1yeql_26`,missionCard:`_missionCard_1yeql_31`,sectionTitle:`_sectionTitle_1yeql_41`,missionState:`_missionState_1yeql_49`,sourceGrid:`_sourceGrid_1yeql_54`,list:`_list_1yeql_68`,goalCard:`_goalCard_1yeql_74`,goalHeader:`_goalHeader_1yeql_88`,goalObjective:`_goalObjective_1yeql_95`,progressRow:`_progressRow_1yeql_100`,progressTrack:`_progressTrack_1yeql_106`,progressFill:`_progressFill_1yeql_114`,progressLabel:`_progressLabel_1yeql_120`,nextActionable:`_nextActionable_1yeql_127`,mono:`_mono_1yeql_132`,milestoneList:`_milestoneList_1yeql_136`,milestoneItem:`_milestoneItem_1yeql_142`,milestoneTitle:`_milestoneTitle_1yeql_149`,noMilestones:`_noMilestones_1yeql_153`,empty:`_empty_1yeql_158`,error:`_error_1yeql_165`};function $o(){let e=(0,M.useRef)(null);ke(`/goals`,e);let t=g(k),n=g(te),r=t.data??[],i=n.data;return(0,L.jsxs)(`div`,{ref:e,className:X.view,children:[(0,L.jsxs)(`header`,{className:X.header,children:[(0,L.jsx)(`h1`,{className:X.title,children:`Goals`}),(0,L.jsxs)(`div`,{className:X.freshness,"aria-live":`polite`,children:[t.status===`refreshing`||n.status===`refreshing`?(0,L.jsx)(A,{}):null,(0,L.jsxs)(`span`,{className:X.count,children:[r.length,` goals`]})]})]}),n.status===`loading`?(0,L.jsx)(f,{width:`50%`}):n.status===`success`&&i?(0,L.jsxs)(`section`,{className:X.missionCard,children:[(0,L.jsx)(`h2`,{className:X.sectionTitle,children:`Mission state`}),(0,L.jsx)(`p`,{className:X.missionState,children:i.state}),(0,L.jsxs)(`dl`,{className:X.sourceGrid,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Briefing`}),(0,L.jsx)(`dd`,{children:(0,L.jsx)(T,{quality:i.sources.briefing??void 0,label:`briefing source`,children:`available`})})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Goals source`}),(0,L.jsx)(`dd`,{children:(0,L.jsx)(T,{quality:i.sources.goals??void 0,label:`goals source`,children:`available`})})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Enrollment`}),(0,L.jsx)(`dd`,{children:(0,L.jsx)(T,{quality:i.sources.enrollment??void 0,label:`enrollment source`,children:`available`})})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:`Proposals`}),(0,L.jsx)(`dd`,{children:(0,L.jsx)(T,{quality:i.sources.proposals??void 0,label:`proposals source`,children:`available`})})]})]})]}):null,t.status===`loading`?(0,L.jsxs)(`div`,{className:X.list,children:[(0,L.jsx)(f,{width:`90%`}),(0,L.jsx)(f,{width:`70%`})]}):t.status===`error`?(0,L.jsx)(`p`,{className:X.error,role:`alert`,children:t.error?.message??`Failed to load goals.`}):r.length===0?(0,L.jsx)(`p`,{className:X.empty,children:`No active goals.`}):(0,L.jsx)(`ul`,{className:X.list,children:r.map(e=>{let t=Math.round((e.progress.fractionDone??0)*100);return(0,L.jsxs)(`li`,{className:X.goalCard,"data-focus-key":`goal-${e.id}`,tabIndex:0,children:[(0,L.jsxs)(`div`,{className:X.goalHeader,children:[(0,L.jsx)(`h3`,{className:X.goalObjective,children:e.objective}),(0,L.jsx)(E,{status:e.status})]}),(0,L.jsxs)(`div`,{className:X.progressRow,children:[(0,L.jsx)(`div`,{className:X.progressTrack,children:(0,L.jsx)(`div`,{className:X.progressFill,style:{width:`${t}%`}})}),(0,L.jsxs)(`span`,{className:X.progressLabel,children:[t,`%`]})]}),e.progress.nextActionableId?(0,L.jsxs)(`p`,{className:X.nextActionable,children:[`Next actionable milestone id: `,(0,L.jsx)(`span`,{className:X.mono,children:e.progress.nextActionableId})]}):null,e.milestones.length>0?(0,L.jsx)(`ol`,{className:X.milestoneList,children:[...e.milestones].sort((e,t)=>e.order-t.order).map(e=>(0,L.jsxs)(`li`,{className:X.milestoneItem,children:[(0,L.jsx)(E,{status:e.status}),(0,L.jsx)(`span`,{className:X.milestoneTitle,children:e.title})]},e.title))}):(0,L.jsx)(`p`,{className:X.noMilestones,children:`No milestones yet.`})]},e.id)})})]})}var Z={list:`_list_1nh33_1`,filters:`_filters_1nh33_8`,filterField:`_filterField_1nh33_14`,filterLabel:`_filterLabel_1nh33_21`,summary:`_summary_1nh33_36`,batchBar:`_batchBar_1nh33_44`,batchApprove:`_batchApprove_1nh33_61`,batchReject:`_batchReject_1nh33_66`,skeletons:`_skeletons_1nh33_71`,error:`_error_1nh33_77`,empty:`_empty_1nh33_85`,table:`_table_1nh33_94`,checkboxCol:`_checkboxCol_1nh33_121`,repoCol:`_repoCol_1nh33_125`,kindCol:`_kindCol_1nh33_129`,ageCol:`_ageCol_1nh33_133`,statusCol:`_statusCol_1nh33_137`,whyCol:`_whyCol_1nh33_141`,row:`_row_1nh33_145`,rowActive:`_rowActive_1nh33_155`,titleLink:`_titleLink_1nh33_159`,repoCell:`_repoCell_1nh33_172`,age:`_age_1nh33_133`,why:`_why_1nh33_141`},es=[{value:`pending`,label:`Pending`},{value:`rejected`,label:`Rejected`},{value:`approved`,label:`Approved`},{value:`applied`,label:`Applied`},{value:`failed`,label:`Failed`},{value:`awaiting-host-merge`,label:`Awaiting host merge`},{value:`all`,label:`All statuses`}];function ts(e){let t=Date.parse(e);if(Number.isNaN(t))return`—`;let n=Math.max(0,Math.round((Date.now()-t)/1e3));if(n<60)return`${n}s`;let r=Math.round(n/60);if(r<60)return`${r}m`;let i=Math.round(r/60);return i<24?`${i}h`:`${Math.round(i/24)}d`}function ns({selectedId:e,onDispatchDisabled:t}){let[n,r]=(0,M.useState)(`pending`),[i,a]=(0,M.useState)(``),[o,s]=(0,M.useState)(``),[l,u]=(0,M.useState)(``),[d,f]=(0,M.useState)(new Set),[m,h]=(0,M.useState)(0),[_,v]=(0,M.useState)(null),[b,x]=(0,M.useState)(!1),[S,C]=(0,M.useState)(!1),[w,T]=(0,M.useState)(!1),[ee,D]=(0,M.useState)(null),te=(0,M.useRef)(null),ne=(0,M.useRef)(new Map),O=mn(),re=g(_e({status:n,since:i||void 0,limit:500})),ie=(0,M.useMemo)(()=>{let e=re.data?.proposals??[],t=o.trim().toLowerCase(),n=l.trim().toLowerCase();return e.filter(e=>!(t&&!e.title.toLowerCase().includes(t)&&!(e.summary??``).toLowerCase().includes(t)||n&&!(e.repo??``).toLowerCase().includes(n)))},[re.data,o,l]);(0,M.useEffect)(()=>{h(e=>Math.min(e,Math.max(ie.length-1,0)))},[ie.length]);function ae(e,t){t===`pending`&&f(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}function oe(e){if(ie.length!==0){if(e.key===`ArrowDown`){e.preventDefault();let t=Math.min(m+1,ie.length-1);h(t),ne.current.get(ie[t].id)?.focus()}else if(e.key===`ArrowUp`){e.preventDefault();let t=Math.max(m-1,0);h(t),ne.current.get(ie[t].id)?.focus()}else if(e.key===`Enter`){let e=ie[m];e&&O(`/inbox/${encodeURIComponent(e.id)}`)}else if(e.key===` `){let t=ie[m];t&&(e.preventDefault(),ae(t.id,t.status))}else e.key===`/`&&(e.preventDefault(),te.current?.focus())}}function se(e){d.size!==0&&(D(null),v(e),p()?C(!0):x(!0))}function ce(){x(!1),p()?C(!0):v(null)}async function le(){if(!_)return;T(!0),D(null);let e=Array.from(d),n=[];for(let r of e)try{_===`approve`?await Ce(r):await Se(r)}catch(e){if(e instanceof y){T(!1),C(!1),v(null),t();return}n.push(r)}T(!1),n.length>0?(D(`${n.length} of ${e.length} failed (already decided, or a transient error). Selection kept for retry.`),f(new Set(n))):(C(!1),v(null),f(new Set))}let k=d.size;return(0,L.jsxs)(`div`,{className:Z.list,children:[(0,L.jsxs)(`div`,{className:Z.filters,children:[(0,L.jsxs)(`label`,{className:Z.filterField,children:[(0,L.jsx)(`span`,{className:Z.filterLabel,children:`Status`}),(0,L.jsx)(`select`,{value:n,onChange:e=>r(e.target.value),children:es.map(e=>(0,L.jsx)(`option`,{value:e.value,children:e.label},e.value))})]}),(0,L.jsxs)(`label`,{className:Z.filterField,children:[(0,L.jsx)(`span`,{className:Z.filterLabel,children:`Since`}),(0,L.jsx)(`input`,{type:`date`,value:i,onChange:e=>a(e.target.value)})]}),(0,L.jsxs)(`label`,{className:Z.filterField,children:[(0,L.jsx)(`span`,{className:Z.filterLabel,children:`Repo`}),(0,L.jsx)(`input`,{type:`text`,placeholder:`filter by repo`,value:l,onChange:e=>u(e.target.value)})]}),(0,L.jsxs)(`label`,{className:Z.filterField,children:[(0,L.jsx)(`span`,{className:Z.filterLabel,children:`Search`}),(0,L.jsx)(`input`,{ref:te,type:`search`,placeholder:`title or summary — press / to focus`,value:o,onChange:e=>s(e.target.value)})]})]}),(0,L.jsxs)(`div`,{className:Z.summary,"aria-live":`polite`,children:[re.status===`refreshing`?(0,L.jsx)(A,{}):null,re.data?(0,L.jsxs)(`span`,{children:[ie.length,` shown of `,re.data.total,` total`,re.data.truncated?` · narrow filters to see more`:``]}):null]}),k>0?(0,L.jsxs)(`div`,{className:Z.batchBar,children:[(0,L.jsxs)(`span`,{children:[k,` selected`]}),(0,L.jsx)(`button`,{type:`button`,onClick:()=>f(new Set),children:`Clear`}),(0,L.jsxs)(`button`,{type:`button`,className:Z.batchReject,onClick:()=>se(`reject`),children:[`Reject `,k]}),(0,L.jsxs)(`button`,{type:`button`,className:Z.batchApprove,onClick:()=>se(`approve`),children:[`Approve `,k]})]}):null,re.status===`loading`?(0,L.jsxs)(`div`,{className:Z.skeletons,children:[(0,L.jsx)(c,{}),(0,L.jsx)(c,{}),(0,L.jsx)(c,{}),(0,L.jsx)(c,{})]}):re.status===`error`?(0,L.jsx)(`div`,{className:Z.error,role:`alert`,children:re.error?.message??`Failed to load proposals.`}):ie.length===0?(0,L.jsxs)(`p`,{className:Z.empty,children:[`No `,n===`all`?``:n+` `,`proposals match`,o||l?` this filter`:``,`.`]}):(0,L.jsxs)(`table`,{className:Z.table,role:`grid`,"aria-label":`Proposals`,onKeyDown:oe,children:[(0,L.jsx)(`thead`,{children:(0,L.jsxs)(`tr`,{children:[(0,L.jsx)(`th`,{scope:`col`,className:Z.checkboxCol}),(0,L.jsx)(`th`,{scope:`col`,children:`Title`}),(0,L.jsx)(`th`,{scope:`col`,className:Z.repoCol,children:`Repo`}),(0,L.jsx)(`th`,{scope:`col`,className:Z.kindCol,children:`Kind`}),(0,L.jsx)(`th`,{scope:`col`,className:Z.ageCol,children:`Age`}),(0,L.jsx)(`th`,{scope:`col`,className:Z.statusCol,children:`Status`}),(0,L.jsx)(`th`,{scope:`col`,className:Z.whyCol,children:`Why`})]})}),(0,L.jsx)(`tbody`,{children:ie.map((t,n)=>(0,L.jsxs)(`tr`,{ref:e=>{e?ne.current.set(t.id,e):ne.current.delete(t.id)},"data-focus-key":`proposal-${t.id}`,tabIndex:n===m?0:-1,className:`${Z.row} ${t.id===e?Z.rowActive:``}`,onFocus:()=>h(n),"aria-selected":t.id===e,children:[(0,L.jsx)(`td`,{className:Z.checkboxCol,children:(0,L.jsx)(`input`,{type:`checkbox`,checked:d.has(t.id),disabled:t.status!==`pending`,title:t.status===`pending`?void 0:`Only pending proposals can be approved/rejected`,onChange:()=>ae(t.id,t.status),onClick:e=>e.stopPropagation()})}),(0,L.jsx)(`td`,{children:(0,L.jsx)(Or,{to:`/inbox/${encodeURIComponent(t.id)}`,className:Z.titleLink,title:t.title,children:t.title})}),(0,L.jsx)(`td`,{className:Z.repoCell,title:t.repo??void 0,children:t.repo?t.repo.split(`/`).pop():`—`}),(0,L.jsx)(`td`,{children:t.kind}),(0,L.jsx)(`td`,{className:Z.age,children:ts(t.createdAt)}),(0,L.jsx)(`td`,{children:(0,L.jsx)(E,{status:t.status})}),(0,L.jsx)(`td`,{className:Z.why,title:t.decisionReason??void 0,children:t.decisionReason??`—`})]},t.id))})]}),(0,L.jsx)(we,{open:b,onClose:ce,reason:`${_===`approve`?`Approving`:`Rejecting`} ${k} proposals requires the dispatch token.`}),(0,L.jsx)(Te,{open:S,onClose:()=>{C(!1),v(null),D(null)},title:_===`approve`?`Approve ${k} proposals?`:`Reject ${k} proposals?`,body:_===`approve`?(0,L.jsxs)(L.Fragment,{children:[`This applies all `,k,` selected proposals to their repos now, one at a time. This cannot be undone from this dialog.`]}):(0,L.jsxs)(L.Fragment,{children:[`This rejects all `,k,` selected proposals. They stay visible in history as rejected.`]}),confirmLabel:_===`approve`?`Approve ${k}`:`Reject ${k}`,destructive:_===`reject`,busy:w,error:ee,onConfirm:()=>void le()})]})}var Q={panel:`_panel_1n6q8_1`,error:`_error_1n6q8_8`,header:`_header_1n6q8_16`,titleRow:`_titleRow_1n6q8_22`,title:`_title_1n6q8_22`,metaRow:`_metaRow_1n6q8_35`,metaItem:`_metaItem_1n6q8_44`,riskBadge:`_riskBadge_1n6q8_48`,risk_low:`_risk_low_1n6q8_54`,risk_medium:`_risk_medium_1n6q8_55`,risk_high:`_risk_high_1n6q8_56`,summary:`_summary_1n6q8_58`,evidence:`_evidence_1n6q8_64`,evidenceRow:`_evidenceRow_1n6q8_74`,evidenceLabel:`_evidenceLabel_1n6q8_81`,muted:`_muted_1n6q8_89`,rationaleNote:`_rationaleNote_1n6q8_94`,failedChecks:`_failedChecks_1n6q8_101`,diffSection:`_diffSection_1n6q8_107`,actions:`_actions_1n6q8_111`,actionConsequence:`_actionConsequence_1n6q8_124`,actionError:`_actionError_1n6q8_133`,rejectButton:`_rejectButton_1n6q8_144`,approveButton:`_approveButton_1n6q8_165`,decided:`_decided_1n6q8_176`},rs={"judge-ship-would-merge":{label:`Ship (would merge)`,tone:`success`},"judge-ship-review-required":{label:`Ship (review required)`,tone:`success`},"judge-review":{label:`Review`,tone:`warning`},"judge-noise":{label:`Noise`,tone:`neutral`},"judge-harmful":{label:`Harmful`,tone:`danger`},"judge-verdict-unrecognized":{label:`Unrecognized verdict`,tone:`unknown`},"judge-parse-failure":{label:`Judge parse failure — not a review`,tone:`unknown`},"judge-network-failure":{label:`Judge network failure — not a review`,tone:`unknown`}};function is(e){let t=e.filter(e=>e.action===`judged`&&e.judgeReasonCode);return t.length===0?null:t.reduce((e,t)=>Date.parse(t.ts)>Date.parse(e.ts)?t:e)}function as(e){if(!e)return`—`;let t=Date.parse(e);if(Number.isNaN(t))return`—`;let n=Math.max(0,Math.round((Date.now()-t)/1e3));if(n<60)return`${n}s ago`;let r=Math.round(n/60);if(r<60)return`${r}m ago`;let i=Math.round(r/60);return i<24?`${i}h ago`:`${Math.round(i/24)}d ago`}function os(e,t){let n=t&&t.length>0?t:`the target repository`;return e===`pr`?`Approving pushes a branch to ${n}'s remote and opens a real pull request. Other people can see it immediately, and it cannot be undone from here.`:e===`patch`?`Approving writes this diff to ${n} on disk now. Nothing is pushed, but the working tree changes.`:`Approving applies this ${e} proposal to ${n} now.`}function ss({id:e,onDispatchDisabled:t}){let n=g(ce(e)),[r,i]=(0,M.useState)(null),[a,o]=(0,M.useState)(!1),[s,c]=(0,M.useState)(!1),[l,u]=(0,M.useState)(!1),[d,m]=(0,M.useState)(null);function h(e){m(null),i(e),p()?c(!0):o(!0)}function _(){o(!1),p()?c(!0):i(null)}async function v(){if(r){u(!0),m(null);try{r===`approve`?await Ce(e):await Se(e),c(!1),i(null)}catch(e){e instanceof y?(c(!1),i(null),t()):m(e instanceof Error?e.message:`Action failed. Try again.`)}finally{u(!1)}}}if(n.status===`loading`)return(0,L.jsxs)(`div`,{className:Q.panel,children:[(0,L.jsx)(f,{width:`60%`}),(0,L.jsx)(f,{width:`30%`}),(0,L.jsx)(f,{width:`90%`})]});if(n.status===`error`||!n.data)return(0,L.jsx)(`div`,{className:Q.error,role:`alert`,children:n.error?.message??`Failed to load this proposal.`});let b=n.data,x=b.decisionEvidence,S=is(x.decisions),C=S?.judgeReasonCode?rs[S.judgeReasonCode]:null,w=b.status===`pending`;return(0,L.jsxs)(`div`,{className:Q.panel,children:[(0,L.jsxs)(`header`,{className:Q.header,children:[(0,L.jsxs)(`div`,{className:Q.titleRow,children:[(0,L.jsx)(`h2`,{className:Q.title,children:b.title}),n.status===`refreshing`?(0,L.jsx)(A,{}):null]}),(0,L.jsxs)(`div`,{className:Q.metaRow,children:[(0,L.jsx)(E,{status:b.status}),(0,L.jsx)(`span`,{className:Q.metaItem,children:b.kind}),(0,L.jsx)(`span`,{className:Q.metaItem,title:b.repo??void 0,children:b.repo??`no repo`}),(0,L.jsxs)(`span`,{className:Q.metaItem,children:[`created `,as(b.createdAt)]}),b.decidedAt?(0,L.jsxs)(`span`,{className:Q.metaItem,children:[`decided `,as(b.decidedAt)]}):null,b.riskClass?(0,L.jsxs)(`span`,{className:`${Q.riskBadge} ${Q[`risk_${b.riskClass}`]}`,children:[b.riskClass,` risk`]}):null]}),b.summary?(0,L.jsx)(`p`,{className:Q.summary,children:b.summary}):null]}),(0,L.jsxs)(`section`,{className:Q.evidence,"aria-label":`Evidence`,children:[(0,L.jsxs)(`div`,{className:Q.evidenceRow,children:[(0,L.jsx)(`span`,{className:Q.evidenceLabel,children:`Judge verdict`}),(0,L.jsx)(T,{quality:x.sourceQuality,label:`judge verdict`,children:C?(0,L.jsx)(E,{status:S.judgeReasonCode,tone:C.tone,children:C.label}):(0,L.jsx)(`span`,{className:Q.muted,children:`not yet judged`})})]}),S?.judgeRationaleState?(0,L.jsxs)(`p`,{className:Q.rationaleNote,children:[`Model rationale:`,` `,S.judgeRationaleState===`not-persisted`?`not persisted`:`legacy (redacted)`]}):null,b.decisionReason?(0,L.jsxs)(`div`,{className:Q.evidenceRow,children:[(0,L.jsx)(`span`,{className:Q.evidenceLabel,children:`Decision reason`}),(0,L.jsx)(`span`,{children:b.decisionReason})]}):null,b.verifyResult?(0,L.jsxs)(`div`,{className:Q.evidenceRow,children:[(0,L.jsx)(`span`,{className:Q.evidenceLabel,children:`Verification`}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(E,{status:b.verifyResult.passed?`success`:`failed`,children:b.verifyResult.passed?`passed`:`failed`}),b.verifyResult.ran&&b.verifyResult.ran.length>0?(0,L.jsxs)(`span`,{className:Q.muted,children:[` · ran `,b.verifyResult.ran.map(e=>e.kind).join(`, `)]}):null,b.verifyResult.failed&&b.verifyResult.failed.length>0?(0,L.jsxs)(`p`,{className:Q.failedChecks,children:[`Failed: `,b.verifyResult.failed.join(`, `)]}):null]})]}):null,b.evidenceOutcome?(0,L.jsxs)(`div`,{className:Q.evidenceRow,children:[(0,L.jsx)(`span`,{className:Q.evidenceLabel,children:`Gates`}),(0,L.jsxs)(`span`,{className:Q.muted,children:[b.evidenceOutcome.gateCount??0,` gate`,b.evidenceOutcome.gateCount===1?``:`s`,b.evidenceOutcome.policyAction?` · policy: ${b.evidenceOutcome.policyAction}`:``,b.evidenceOutcome.trustBasis?` · trust: ${b.evidenceOutcome.trustBasis}`:``]})]}):null,b.result?(0,L.jsxs)(`div`,{className:Q.evidenceRow,children:[(0,L.jsx)(`span`,{className:Q.evidenceLabel,children:`Result`}),(0,L.jsx)(`span`,{children:b.result})]}):null]}),(0,L.jsx)(`section`,{className:Q.diffSection,"aria-label":`Diff`,children:(0,L.jsx)(ze,{diff:b.diff,proposalKind:b.kind})}),w?(0,L.jsxs)(`footer`,{className:Q.actions,children:[d&&!s?(0,L.jsx)(`p`,{className:Q.actionError,role:`alert`,children:d}):null,(0,L.jsx)(`p`,{className:Q.actionConsequence,children:os(b.kind,b.repo)}),(0,L.jsx)(`button`,{type:`button`,className:Q.rejectButton,onClick:()=>h(`reject`),children:`Reject`}),(0,L.jsx)(`button`,{type:`button`,className:Q.approveButton,onClick:()=>h(`approve`),children:`Approve`})]}):(0,L.jsxs)(`footer`,{className:Q.decided,children:[`This proposal is already `,(0,L.jsx)(`strong`,{children:b.status}),` — no further action available.`]}),(0,L.jsx)(we,{open:a,onClose:_,reason:r===`approve`?`Approving a proposal mutates the fleet and requires the dispatch token.`:`Rejecting a proposal requires the dispatch token.`}),(0,L.jsx)(Te,{open:s,onClose:()=>{c(!1),i(null),m(null)},title:r===`approve`?`Approve this proposal?`:`Reject this proposal?`,body:r===`approve`?(0,L.jsxs)(L.Fragment,{children:[`This applies `,(0,L.jsx)(`strong`,{children:b.title}),` to `,(0,L.jsx)(`code`,{children:b.repo}),` now.`,` `,os(b.kind,b.repo),` Review the diff above before confirming.`]}):(0,L.jsxs)(L.Fragment,{children:[`This rejects `,(0,L.jsx)(`strong`,{children:b.title}),` and discards it. It stays visible in history (status: rejected) but will never be applied. Nothing is written to `,(0,L.jsx)(`code`,{children:b.repo}),`.`]}),confirmLabel:r===`approve`?b.kind===`pr`?`Approve and open the pull request`:`Approve and apply`:`Reject`,destructive:r===`approve`,busy:l,error:d,onConfirm:()=>void v()})]})}var cs={view:`_view_19z5m_1`,header:`_header_19z5m_8`,title:`_title_19z5m_14`,subtitle:`_subtitle_19z5m_20`,dispatchBanner:`_dispatchBanner_19z5m_25`,layout:`_layout_19z5m_39`,listPane:`_listPane_19z5m_57`,detailPane:`_detailPane_19z5m_61`,emptyDetail:`_emptyDetail_19z5m_69`,hint:`_hint_19z5m_81`};function ls(){let{id:e}=vn(),[t,n]=(0,M.useState)(!1);return(0,L.jsxs)(`div`,{className:cs.view,children:[(0,L.jsxs)(`header`,{className:cs.header,children:[(0,L.jsx)(`h1`,{className:cs.title,children:`Inbox`}),(0,L.jsx)(`p`,{className:cs.subtitle,children:`Review proposals, inspect diffs and judge evidence, approve or reject.`})]}),t?(0,L.jsxs)(`div`,{className:cs.dispatchBanner,role:`alert`,children:[`This server was started without `,(0,L.jsx)(`code`,{children:`--allow-dispatch`}),`, so approve/reject are read-only right now. Restart `,(0,L.jsx)(`code`,{children:`ashlr serve --allow-dispatch`}),` to enable them. Browsing and diff review still work.`]}):null,(0,L.jsxs)(`div`,{className:cs.layout,children:[(0,L.jsx)(`div`,{className:cs.listPane,children:(0,L.jsx)(ns,{selectedId:e??null,onDispatchDisabled:()=>n(!0)})}),(0,L.jsx)(`div`,{className:cs.detailPane,children:e?(0,L.jsx)(ss,{id:e,onDispatchDisabled:()=>n(!0)}):(0,L.jsxs)(`div`,{className:cs.emptyDetail,children:[(0,L.jsx)(`p`,{children:`Select a proposal to review its diff and evidence.`}),(0,L.jsx)(`p`,{className:cs.hint,children:`↑/↓ to move · Enter to open · Space to select · / to search`})]})})]})]})}var $={cockpit:`_cockpit_1km3b_1`,decisionSpine:`_decisionSpine_1km3b_9`,mission:`_mission_1km3b_18`,titleLine:`_titleLine_1km3b_25`,revision:`_revision_1km3b_39`,northStar:`_northStar_1km3b_44`,bottleneck:`_bottleneck_1km3b_52`,nextActionLabel:`_nextActionLabel_1km3b_60`,fieldLabel:`_fieldLabel_1km3b_61`,nextAction:`_nextAction_1km3b_60`,exception:`_exception_1km3b_79`,attention:`_attention_1km3b_84`,clear:`_clear_1km3b_89`,spectrum:`_spectrum_1km3b_106`,bets:`_bets_1km3b_107`,sectionHeading:`_sectionHeading_1km3b_113`,capabilityList:`_capabilityList_1km3b_133`,betList:`_betList_1km3b_134`,capabilityLane:`_capabilityLane_1km3b_141`,bet:`_bet_1km3b_107`,laneIdentity:`_laneIdentity_1km3b_155`,laneName:`_laneName_1km3b_162`,headroomTrack:`_headroomTrack_1km3b_167`,headroomFill:`_headroomFill_1km3b_174`,ample:`_ample_1km3b_181`,usable:`_usable_1km3b_182`,tight:`_tight_1km3b_183`,none:`_none_1km3b_184`,unknown:`_unknown_1km3b_185`,allocation:`_allocation_1km3b_187`,reset:`_reset_1km3b_188`,betAllocation:`_betAllocation_1km3b_189`,assurance:`_assurance_1km3b_190`,betDecision:`_betDecision_1km3b_216`,betEvidence:`_betEvidence_1km3b_217`,betThesis:`_betThesis_1km3b_227`,empty:`_empty_1km3b_251`,omitted:`_omitted_1km3b_252`,authorityNote:`_authorityNote_1km3b_253`};function us(e){return e===`complete`?`success`:e===`pending`?`running`:e===`incomplete`?`warning`:`unknown`}function ds(e){return e===`ready`?`success`:e===`tight`?`warning`:e===`unavailable`?`danger`:`unknown`}function fs(e){return e===`continue`?`running`:e===`observing`?`info`:`warning`}function ps(e){return e===`effective`?`success`:e===`refuted`?`danger`:e===`pending`?`running`:`unknown`}function ms({capability:e}){return(0,L.jsxs)(`li`,{className:$.capabilityLane,children:[(0,L.jsxs)(`div`,{className:$.laneIdentity,children:[(0,L.jsx)(`span`,{className:$.laneName,children:e.label}),(0,L.jsx)(E,{status:e.state,tone:ds(e.state)})]}),(0,L.jsx)(`div`,{className:$.headroomTrack,role:`img`,"aria-label":`${e.label} headroom: ${e.headroom}`,children:(0,L.jsx)(`span`,{className:`${$.headroomFill} ${$[e.headroom]}`})}),(0,L.jsx)(`span`,{className:$.allocation,children:e.allocationLabel}),(0,L.jsx)(`span`,{className:$.reset,"data-urgency":e.resetUrgency,children:e.resetLabel})]})}function hs({bet:e}){return(0,L.jsxs)(`li`,{className:$.bet,children:[(0,L.jsxs)(`div`,{className:$.betDecision,children:[(0,L.jsx)(E,{status:e.decision,tone:fs(e.decision)}),(0,L.jsx)(`span`,{className:$.assurance,children:e.assurance})]}),(0,L.jsxs)(`div`,{className:$.betThesis,children:[(0,L.jsx)(`h3`,{children:e.title}),(0,L.jsx)(`p`,{children:e.valueCase})]}),(0,L.jsx)(`span`,{className:$.betAllocation,children:e.allocationLabel}),(0,L.jsxs)(`div`,{className:$.betEvidence,children:[(0,L.jsxs)(`span`,{children:[(0,L.jsx)(`span`,{className:$.fieldLabel,children:`Outcome`}),(0,L.jsx)(E,{status:e.outcome.state,tone:ps(e.outcome.state),children:e.outcome.label})]}),(0,L.jsxs)(`span`,{children:[(0,L.jsx)(`span`,{className:$.fieldLabel,children:`Evidence`}),(0,L.jsx)(E,{status:e.evidence.state,tone:us(e.evidence.state),children:e.evidence.label})]})]})]})}function gs({snapshot:e}){let t=e.activeValueBets.slice(0,3),n=Math.max(0,e.activeValueBets.length-t.length),r=e.nextAction;return(0,L.jsxs)(`section`,{className:$.cockpit,"aria-labelledby":`agent-os-title`,children:[(0,L.jsxs)(`header`,{className:$.decisionSpine,children:[(0,L.jsxs)(`div`,{className:$.mission,children:[(0,L.jsxs)(`div`,{className:$.titleLine,children:[(0,L.jsx)(`h2`,{id:`agent-os-title`,children:`Agent OS`}),(0,L.jsx)(E,{status:e.sourceState,tone:e.sourceState===`healthy`?`success`:e.sourceState===`degraded`?`warning`:`unknown`}),(0,L.jsx)(`span`,{className:$.revision,children:e.livingEndState.revisionLabel})]}),(0,L.jsx)(`p`,{className:$.northStar,children:e.livingEndState.northStar}),(0,L.jsxs)(`p`,{className:$.bottleneck,children:[(0,L.jsx)(`span`,{children:`Current bottleneck`}),e.livingEndState.currentBottleneck]})]}),(0,L.jsxs)(`aside`,{className:`${$.nextAction} ${r?$[r.kind]:$.clear}`,"aria-label":`Exception-first next action`,children:[(0,L.jsx)(`span`,{className:$.nextActionLabel,children:`Next action`}),(0,L.jsx)(`strong`,{children:r?.title??`No verified next action available`}),(0,L.jsx)(`p`,{children:r?.reason??`No exception or clearance evidence was provided.`}),r?(0,L.jsxs)(E,{status:r.evidenceState,tone:us(r.evidenceState),children:[r.evidenceState,` evidence`]}):null]})]}),(0,L.jsxs)(`section`,{className:$.spectrum,"aria-labelledby":`capability-spectrum-title`,children:[(0,L.jsxs)(`div`,{className:$.sectionHeading,children:[(0,L.jsx)(`h3`,{id:`capability-spectrum-title`,children:`Capability spectrum`}),(0,L.jsx)(`p`,{children:`Usable model runway, ordered by reset urgency`})]}),e.capabilitySpectrum.length>0?(0,L.jsx)(`ul`,{className:$.capabilityList,children:e.capabilitySpectrum.map(e=>(0,L.jsx)(ms,{capability:e},e.lane))}):(0,L.jsx)(`p`,{className:$.empty,children:`Capability evidence is not available.`})]}),(0,L.jsxs)(`section`,{className:$.bets,"aria-labelledby":`active-value-bets-title`,children:[(0,L.jsxs)(`div`,{className:$.sectionHeading,children:[(0,L.jsx)(`h3`,{id:`active-value-bets-title`,children:`Active value bets`}),(0,L.jsxs)(`p`,{children:[t.length,` of 3 portfolio slots visible`]})]}),t.length>0?(0,L.jsx)(`ol`,{className:$.betList,children:t.map(e=>(0,L.jsx)(hs,{bet:e},e.key))}):(0,L.jsx)(`p`,{className:$.empty,children:`No active value bet is verified.`}),n>0?(0,L.jsxs)(`p`,{className:$.omitted,children:[n,` lower-ranked `,n===1?`bet is`:`bets are`,` held outside this view.`]}):null]}),(0,L.jsx)(`p`,{className:$.authorityNote,children:`Observation only. This view cannot dispatch, merge, release, deploy, or change policy.`})]})}var _s={view:`_view_k4f4y_1`,header:`_header_k4f4y_8`,eyebrow:`_eyebrow_k4f4y_15`,title:`_title_k4f4y_24`,subtitle:`_subtitle_k4f4y_31`,freshness:`_freshness_k4f4y_37`,loading:`_loading_k4f4y_44`,unavailable:`_unavailable_k4f4y_45`,unavailableHeading:`_unavailableHeading_k4f4y_75`,boundary:`_boundary_k4f4y_82`};function vs(e){return e.authority===`observation-only`&&e.sameUserTamperResistant===!1&&e.rollbackProtected===!1&&e.historicalAuthority===!1&&e.executionAuthority===!1&&e.proposalAuthority===!1&&e.mergeAuthority===!1&&e.deployAuthority===!1&&e.publicationAuthority===!1&&e.externalMutationAuthority===!1}function ys(e){return e.reason?e.reason:e.sourceState===`missing`?`No authenticated Agent OS snapshot has been recorded.`:e.authentication===`authenticated`?e.sameUserTamperResistant===!1?vs(e)?e.complete?e.snapshot?`The Agent OS snapshot is degraded.`:`No verified Agent OS snapshot is available.`:`The snapshot chain is incomplete.`:`The response crossed the observation-only authority boundary.`:`The response made an unsupported same-user tamper-resistance claim.`:`Snapshot authentication is unavailable or invalid.`}function bs(e){return e.sourceState===`healthy`&&e.complete&&e.authentication===`authenticated`&&vs(e)&&e.snapshot!==null?`success`:e.sourceState===`degraded`||e.authentication===`invalid`||!vs(e)?`warning`:`unknown`}function xs(){let e=(0,M.useRef)(null);ke(`/agent-os`,e);let t=g(ge),n=t.data,r=n?.sourceState===`healthy`&&n.complete&&n.authentication===`authenticated`&&vs(n)&&n.snapshot!==null;return(0,L.jsxs)(`div`,{ref:e,className:_s.view,children:[(0,L.jsxs)(`header`,{className:_s.header,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`p`,{className:_s.eyebrow,children:`Overview`}),(0,L.jsx)(`h1`,{className:_s.title,children:`Agent-native engineering OS`}),(0,L.jsx)(`p`,{className:_s.subtitle,children:`Authenticated fleet intelligence. Observation only.`})]}),(0,L.jsxs)(`div`,{className:_s.freshness,"aria-live":`polite`,children:[t.status===`refreshing`?(0,L.jsx)(A,{}):null,n?(0,L.jsx)(E,{status:n.sourceState,tone:bs(n),children:n.sourceState}):null]})]}),t.status===`loading`?(0,L.jsxs)(`section`,{className:_s.loading,"aria-label":`Loading Agent OS snapshot`,children:[(0,L.jsx)(f,{width:`65%`}),(0,L.jsx)(f,{width:`90%`}),(0,L.jsx)(f,{width:`75%`})]}):t.status===`error`?(0,L.jsxs)(`section`,{className:_s.unavailable,role:`alert`,children:[(0,L.jsx)(`h2`,{children:`Agent OS snapshot unavailable`}),(0,L.jsx)(`p`,{children:t.error?.message??`The read-only Agent OS endpoint could not be reached.`}),(0,L.jsx)(`p`,{className:_s.boundary,children:`No capability, value, or next-action values are inferred when the source cannot be read.`})]}):n&&r&&n.snapshot?(0,L.jsx)(gs,{snapshot:n.snapshot}):n?(0,L.jsxs)(`section`,{className:_s.unavailable,role:`status`,children:[(0,L.jsxs)(`div`,{className:_s.unavailableHeading,children:[(0,L.jsx)(`h2`,{children:n.sourceState===`missing`?`No Agent OS snapshot yet`:`Agent OS snapshot degraded`}),(0,L.jsx)(E,{status:n.authentication,tone:n.authentication===`authenticated`?`success`:`warning`})]}),(0,L.jsx)(`p`,{children:ys(n)}),(0,L.jsx)(`p`,{className:_s.boundary,children:`The cockpit remains hidden until a complete authenticated observation-only snapshot is available.`})]}):(0,L.jsxs)(`section`,{className:_s.unavailable,role:`status`,children:[(0,L.jsx)(`h2`,{children:`Agent OS snapshot unavailable`}),(0,L.jsx)(`p`,{children:`No response was provided by the read-only Agent OS endpoint.`})]})]})}function Ss(){return(0,L.jsx)(Un,{children:(0,L.jsxs)(I,{element:(0,L.jsx)(Yi,{}),children:[(0,L.jsx)(I,{index:!0,element:(0,L.jsx)(Bn,{to:`/overview`,replace:!0})}),Br.map(e=>e.implemented?null:(0,L.jsx)(I,{path:e.path,element:(0,L.jsx)(Zi,{title:e.label,description:e.description})},e.path)),(0,L.jsx)(I,{path:`/overview`,element:(0,L.jsx)(da,{})}),(0,L.jsx)(I,{path:`/agent-os`,element:(0,L.jsx)(xs,{})}),(0,L.jsx)(I,{path:`/universe`,element:(0,L.jsx)(Ae,{})}),(0,L.jsx)(I,{path:`/journal`,element:(0,L.jsx)(Za,{})}),(0,L.jsx)(I,{path:`/intelligence/pulse`,element:(0,L.jsx)(no,{})}),(0,L.jsx)(I,{path:`/intelligence/genome`,element:(0,L.jsx)(uo,{})}),(0,L.jsx)(I,{path:`/intelligence/production`,element:(0,L.jsx)(mo,{})}),(0,L.jsx)(I,{path:`/portfolio`,element:(0,L.jsx)(vo,{})}),(0,L.jsx)(I,{path:`/work/runs`,element:(0,L.jsx)(Co,{})}),(0,L.jsx)(I,{path:`/work/runs/:id`,element:(0,L.jsx)(Eo,{})}),(0,L.jsx)(I,{path:`/work/swarms`,element:(0,L.jsx)(Mo,{})}),(0,L.jsx)(I,{path:`/work/swarms/:id`,element:(0,L.jsx)(Uo,{})}),(0,L.jsx)(I,{path:`/control/daemon`,element:(0,L.jsx)(qo,{})}),(0,L.jsx)(I,{path:`/control/fleet`,element:(0,L.jsx)(Yo,{})}),(0,L.jsx)(I,{path:`/control/security`,element:(0,L.jsx)(Qo,{})}),(0,L.jsx)(I,{path:`/goals`,element:(0,L.jsx)($o,{})}),(0,L.jsx)(I,{path:`/inbox`,element:(0,L.jsx)(ls,{})}),(0,L.jsx)(I,{path:`/inbox/:id`,element:(0,L.jsx)(ls,{})}),(0,L.jsx)(I,{path:`*`,element:(0,L.jsx)(Bn,{to:`/overview`,replace:!0})})]})})}function Cs(e){(0,M.useEffect)(()=>{if(e!==`checking`)return;let t=!1;return _(O.key,O.fetch).then(()=>{if(t)return;let e=o(O.key);a(e.status===`success`)}),()=>{t=!0}},[e])}function ws(){let e=l();return Cs(e),(0,L.jsx)(Ee,{children:e===`checking`?(0,L.jsx)(`div`,{"aria-live":`polite`,className:`visually-hidden`,children:`Checking for an existing session…`}):e===`unauthenticated`?(0,L.jsx)(Be,{}):(0,L.jsxs)(Dr,{children:[(0,L.jsx)(b,{}),(0,L.jsx)(Ss,{})]})})}export{ws as App};
|
|
7
|
-
//# sourceMappingURL=App-
|
|
7
|
+
//# sourceMappingURL=App-Cj4zKbG3.js.map
|