@ashlr/hub 3.16.0 → 3.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/README.md +2 -2
- package/dist/authority-surface.json +5 -5
- package/dist/build-identity.json +2 -2
- package/dist/core/daemon/loop.js +1 -0
- package/dist/core/daemon/loop.js.map +1 -1
- package/dist/core/daemon/tick-hooks.d.ts +2 -0
- package/dist/core/daemon/tick-hooks.js.map +1 -1
- package/dist/core/fleet/tick-hooks-live.d.ts +2 -1
- package/dist/core/fleet/tick-hooks-live.js +49 -7
- package/dist/core/fleet/tick-hooks-live.js.map +1 -1
- package/dist/core/web/public/next/assets/ActionMenu-Bv-kQxD4.js +2 -0
- package/dist/core/web/public/next/assets/ActionMenu-Bv-kQxD4.js.map +1 -0
- package/dist/core/web/public/next/assets/Advanced-Be7Frv-G.js +2 -0
- package/dist/core/web/public/next/assets/Advanced-Be7Frv-G.js.map +1 -0
- package/dist/core/web/public/next/assets/AgentDetailScreen-DzqHmufO.js +2 -0
- package/dist/core/web/public/next/assets/AgentDetailScreen-DzqHmufO.js.map +1 -0
- package/dist/core/web/public/next/assets/AgentToolsSheet-D00kLnIq.js +2 -0
- package/dist/core/web/public/next/assets/AgentToolsSheet-D00kLnIq.js.map +1 -0
- package/dist/core/web/public/next/assets/AgentToolsStrip-CSus9Dr3.js +2 -0
- package/dist/core/web/public/next/assets/AgentToolsStrip-CSus9Dr3.js.map +1 -0
- package/dist/core/web/public/next/assets/AgentsScreen-WoR0oSLZ.js +2 -0
- package/dist/core/web/public/next/assets/AgentsScreen-WoR0oSLZ.js.map +1 -0
- package/dist/core/web/public/next/assets/AgentsSection-D5mKoOhH.js +3 -0
- package/dist/core/web/public/next/assets/AgentsSection-D5mKoOhH.js.map +1 -0
- package/dist/core/web/public/next/assets/App-Uy6lDpKw.js +8 -0
- package/dist/core/web/public/next/assets/App-Uy6lDpKw.js.map +1 -0
- package/dist/core/web/public/next/assets/AppsSection-Cfhmc4r3.js +2 -0
- package/dist/core/web/public/next/assets/AppsSection-Cfhmc4r3.js.map +1 -0
- package/dist/core/web/public/next/assets/AreaTrend-Bz3ETKPk.js +2 -0
- package/dist/core/web/public/next/assets/AreaTrend-Bz3ETKPk.js.map +1 -0
- package/dist/core/web/public/next/assets/AutomationsSection-D4K8db0o.js +2 -0
- package/dist/core/web/public/next/assets/AutomationsSection-D4K8db0o.js.map +1 -0
- package/dist/core/web/public/next/assets/AutonomyOffState-DUiNMgr8.js +3 -0
- package/dist/core/web/public/next/assets/AutonomyOffState-DUiNMgr8.js.map +1 -0
- package/dist/core/web/public/next/assets/AutonomySection-wxRZ7vSw.js +2 -0
- package/dist/core/web/public/next/assets/AutonomySection-wxRZ7vSw.js.map +1 -0
- package/dist/core/web/public/next/assets/AutonomyStatus-B-PCVnFO.js +2 -0
- package/dist/core/web/public/next/assets/AutonomyStatus-B-PCVnFO.js.map +1 -0
- package/dist/core/web/public/next/assets/BranchBar-Bs4r_Vh6.js +2 -0
- package/dist/core/web/public/next/assets/BranchBar-Bs4r_Vh6.js.map +1 -0
- package/dist/core/web/public/next/assets/BrowserPanel-BMQcviI1.js +7 -0
- package/dist/core/web/public/next/assets/BrowserPanel-BMQcviI1.js.map +1 -0
- package/dist/core/web/public/next/assets/BudgetControl-A4TEONtT.js +2 -0
- package/dist/core/web/public/next/assets/BudgetControl-A4TEONtT.js.map +1 -0
- package/dist/core/web/public/next/assets/Button-CMR_Op-0.js +2 -0
- package/dist/core/web/public/next/assets/Button-CMR_Op-0.js.map +1 -0
- package/dist/core/web/public/next/assets/CapacityStrip-B-2NDrA5.js +2 -0
- package/dist/core/web/public/next/assets/CapacityStrip-B-2NDrA5.js.map +1 -0
- package/dist/core/web/public/next/assets/ChangesPaneHost-CS5qGjwM.js +16 -0
- package/dist/core/web/public/next/assets/ChangesPaneHost-CS5qGjwM.js.map +1 -0
- package/dist/core/web/public/next/assets/ChartFrame-sZTnZkVd.js +2 -0
- package/dist/core/web/public/next/assets/ChartFrame-sZTnZkVd.js.map +1 -0
- package/dist/core/web/public/next/assets/ChatPanes-CicgTVpN.js +2 -0
- package/dist/core/web/public/next/assets/ChatPanes-CicgTVpN.js.map +1 -0
- package/dist/core/web/public/next/assets/ChatSection-Cc6sudpF.js +3 -0
- package/dist/core/web/public/next/assets/ChatSection-Cc6sudpF.js.map +1 -0
- package/dist/core/web/public/next/assets/ChecksPanel-BGWgv8Zb.js +5 -0
- package/dist/core/web/public/next/assets/ChecksPanel-BGWgv8Zb.js.map +1 -0
- package/dist/core/web/public/next/assets/CloudBudgetForm-CqsidwfU.js +2 -0
- package/dist/core/web/public/next/assets/CloudBudgetForm-CqsidwfU.js.map +1 -0
- package/dist/core/web/public/next/assets/CommandPalette-rwEZ20MN.js +3 -0
- package/dist/core/web/public/next/assets/CommandPalette-rwEZ20MN.js.map +1 -0
- package/dist/core/web/public/next/assets/CommandSection-C2CLkVXN.js +3 -0
- package/dist/core/web/public/next/assets/CommandSection-C2CLkVXN.js.map +1 -0
- package/dist/core/web/public/next/assets/CommandWorkflowForm-DAbPIdI3.js +9 -0
- package/dist/core/web/public/next/assets/CommandWorkflowForm-DAbPIdI3.js.map +1 -0
- package/dist/core/web/public/next/assets/CommandWorkflowPicker-fqHtzYXX.js +3 -0
- package/dist/core/web/public/next/assets/CommandWorkflowPicker-fqHtzYXX.js.map +1 -0
- package/dist/core/web/public/next/assets/CompareDialog-Cwfpaa8I.js +4 -0
- package/dist/core/web/public/next/assets/CompareDialog-Cwfpaa8I.js.map +1 -0
- package/dist/core/web/public/next/assets/ComputerControl-DU0cuVSY.js +2 -0
- package/dist/core/web/public/next/assets/ComputerControl-DU0cuVSY.js.map +1 -0
- package/dist/core/web/public/next/assets/ConfirmDialog-B_wCnbcC.js +2 -0
- package/dist/core/web/public/next/assets/ConfirmDialog-B_wCnbcC.js.map +1 -0
- package/dist/core/web/public/next/assets/DeleteChatDialog-CxMh53yX.js +2 -0
- package/dist/core/web/public/next/assets/DeleteChatDialog-CxMh53yX.js.map +1 -0
- package/dist/core/web/public/next/assets/DevinStopDialog-D9Bziccz.js +2 -0
- package/dist/core/web/public/next/assets/DevinStopDialog-D9Bziccz.js.map +1 -0
- package/dist/core/web/public/next/assets/Dialog-DI5D6Is2.js +2 -0
- package/dist/core/web/public/next/assets/Dialog-DI5D6Is2.js.map +1 -0
- package/dist/core/web/public/next/assets/DiffPane-Buo19Bqr.js +2 -0
- package/dist/core/web/public/next/assets/DiffPane-Buo19Bqr.js.map +1 -0
- package/dist/core/web/public/next/assets/DiffViewer-dO0RQoqA.js +2 -0
- package/dist/core/web/public/next/assets/DiffViewer-dO0RQoqA.js.map +1 -0
- package/dist/core/web/public/next/assets/DockHost-KJUHjoiG.js +2 -0
- package/dist/core/web/public/next/assets/DockHost-KJUHjoiG.js.map +1 -0
- package/dist/core/web/public/next/assets/EmptyState-C3BUt2Ev.js +2 -0
- package/dist/core/web/public/next/assets/EmptyState-C3BUt2Ev.js.map +1 -0
- package/dist/core/web/public/next/assets/Epistemic-DlG2QqKJ.js +2 -0
- package/dist/core/web/public/next/assets/Epistemic-DlG2QqKJ.js.map +1 -0
- package/dist/core/web/public/next/assets/EvidenceTimeline-D1GB9F-f.js +2 -0
- package/dist/core/web/public/next/assets/EvidenceTimeline-D1GB9F-f.js.map +1 -0
- package/dist/core/web/public/next/assets/FilesPane-icSP5vPt.js +2 -0
- package/dist/core/web/public/next/assets/FilesPane-icSP5vPt.js.map +1 -0
- package/dist/core/web/public/next/assets/FleetScreen-V_X8SeD3.js +2 -0
- package/dist/core/web/public/next/assets/FleetScreen-V_X8SeD3.js.map +1 -0
- package/dist/core/web/public/next/assets/FleetSection-xyhfpRJy.js +5 -0
- package/dist/core/web/public/next/assets/FleetSection-xyhfpRJy.js.map +1 -0
- package/dist/core/web/public/next/assets/Funnel-BlzQ5FOU.js +2 -0
- package/dist/core/web/public/next/assets/Funnel-BlzQ5FOU.js.map +1 -0
- package/dist/core/web/public/next/assets/GearTray-Dvu-ee-h.js +2 -0
- package/dist/core/web/public/next/assets/GearTray-Dvu-ee-h.js.map +1 -0
- package/dist/core/web/public/next/assets/GitDialogs-o0eCEqAN.js +2 -0
- package/dist/core/web/public/next/assets/GitDialogs-o0eCEqAN.js.map +1 -0
- package/dist/core/web/public/next/assets/GrowthSection-CyqJOzob.js +3 -0
- package/dist/core/web/public/next/assets/GrowthSection-CyqJOzob.js.map +1 -0
- package/dist/core/web/public/next/assets/HandoffDialog-0uTNyK99.js +2 -0
- package/dist/core/web/public/next/assets/HandoffDialog-0uTNyK99.js.map +1 -0
- package/dist/core/web/public/next/assets/HomeBody-DJjN3GTV.js +3 -0
- package/dist/core/web/public/next/assets/HomeBody-DJjN3GTV.js.map +1 -0
- package/dist/core/web/public/next/assets/HomeSeats-IJvjh9iH.js +2 -0
- package/dist/core/web/public/next/assets/HomeSeats-IJvjh9iH.js.map +1 -0
- package/dist/core/web/public/next/assets/Input-CsSZI8QC.js +2 -0
- package/dist/core/web/public/next/assets/Input-CsSZI8QC.js.map +1 -0
- package/dist/core/web/public/next/assets/LaunchDialog-DReYqlI0.js +9 -0
- package/dist/core/web/public/next/assets/LaunchDialog-DReYqlI0.js.map +1 -0
- package/dist/core/web/public/next/assets/LeaderCard-82indlOE.js +2 -0
- package/dist/core/web/public/next/assets/LeaderCard-82indlOE.js.map +1 -0
- package/dist/core/web/public/next/assets/LeaderConversation-8hDF6Gh3.js +3 -0
- package/dist/core/web/public/next/assets/LeaderConversation-8hDF6Gh3.js.map +1 -0
- package/dist/core/web/public/next/assets/LeaderScreen-BxPiwHcT.js +2 -0
- package/dist/core/web/public/next/assets/LeaderScreen-BxPiwHcT.js.map +1 -0
- package/dist/core/web/public/next/assets/LessonsPanel-BG558qil.js +2 -0
- package/dist/core/web/public/next/assets/LessonsPanel-BG558qil.js.map +1 -0
- package/dist/core/web/public/next/assets/LiveTimer-DUgUBr49.js +2 -0
- package/dist/core/web/public/next/assets/LiveTimer-DUgUBr49.js.map +1 -0
- package/dist/core/web/public/next/assets/LocalSeatBadge-D6U4Q2P3.js +2 -0
- package/dist/core/web/public/next/assets/LocalSeatBadge-D6U4Q2P3.js.map +1 -0
- package/dist/core/web/public/next/assets/MatrixHeatmap-Brn70z84.js +2 -0
- package/dist/core/web/public/next/assets/MatrixHeatmap-Brn70z84.js.map +1 -0
- package/dist/core/web/public/next/assets/McpSection-Dz8Ga2Rg.js +2 -0
- package/dist/core/web/public/next/assets/McpSection-Dz8Ga2Rg.js.map +1 -0
- package/dist/core/web/public/next/assets/MessageMarkdown-CQfYQaXB.js +3 -0
- package/dist/core/web/public/next/assets/MessageMarkdown-CQfYQaXB.js.map +1 -0
- package/dist/core/web/public/next/assets/MessageMarkdownRenderer-DPaNQMj8.js +72 -0
- package/dist/core/web/public/next/assets/MessageMarkdownRenderer-DPaNQMj8.js.map +1 -0
- package/dist/core/web/public/next/assets/Meter-TnD7Ris6.js +2 -0
- package/dist/core/web/public/next/assets/Meter-TnD7Ris6.js.map +1 -0
- package/dist/core/web/public/next/assets/MicButton-Dc9g2Z_E.js +2 -0
- package/dist/core/web/public/next/assets/MicButton-Dc9g2Z_E.js.map +1 -0
- package/dist/core/web/public/next/assets/MindSection-DGpYq8c7.js +3 -0
- package/dist/core/web/public/next/assets/MindSection-DGpYq8c7.js.map +1 -0
- package/dist/core/web/public/next/assets/MobileComposer-DbSZ2rxa.js +2 -0
- package/dist/core/web/public/next/assets/MobileComposer-DbSZ2rxa.js.map +1 -0
- package/dist/core/web/public/next/assets/MobileGuardSheet-qQJev_w3.js +2 -0
- package/dist/core/web/public/next/assets/MobileGuardSheet-qQJev_w3.js.map +1 -0
- package/dist/core/web/public/next/assets/MobileRuntime-BEnY4Uvs.js +3 -0
- package/dist/core/web/public/next/assets/MobileRuntime-BEnY4Uvs.js.map +1 -0
- package/dist/core/web/public/next/assets/MoreScreen-CG0E5S8G.js +2 -0
- package/dist/core/web/public/next/assets/MoreScreen-CG0E5S8G.js.map +1 -0
- package/dist/core/web/public/next/assets/MultiModelBar-DgMyP8IC.js +7 -0
- package/dist/core/web/public/next/assets/MultiModelBar-DgMyP8IC.js.map +1 -0
- package/dist/core/web/public/next/assets/MutationTokenDialog-T3r9EtHi.js +2 -0
- package/dist/core/web/public/next/assets/MutationTokenDialog-T3r9EtHi.js.map +1 -0
- package/dist/core/web/public/next/assets/NeedsYouDrawer-BDAcTlK8.js +3 -0
- package/dist/core/web/public/next/assets/NeedsYouDrawer-BDAcTlK8.js.map +1 -0
- package/dist/core/web/public/next/assets/NeedsYouList-BFubkjzF.js +2 -0
- package/dist/core/web/public/next/assets/NeedsYouList-BFubkjzF.js.map +1 -0
- package/dist/core/web/public/next/assets/NeedsYouScreen-B3Dk15T_.js +2 -0
- package/dist/core/web/public/next/assets/NeedsYouScreen-B3Dk15T_.js.map +1 -0
- package/dist/core/web/public/next/assets/NewAgentScreen-zf1bqGYC.js +2 -0
- package/dist/core/web/public/next/assets/NewAgentScreen-zf1bqGYC.js.map +1 -0
- package/dist/core/web/public/next/assets/NewChatDialog-el95cRTF.js +4 -0
- package/dist/core/web/public/next/assets/NewChatDialog-el95cRTF.js.map +1 -0
- package/dist/core/web/public/next/assets/OnboardingFlow-Bi8gZOuz.js +3 -0
- package/dist/core/web/public/next/assets/OnboardingFlow-Bi8gZOuz.js.map +1 -0
- package/dist/core/web/public/next/assets/OnboardingGate-CRexmMn5.js +3 -0
- package/dist/core/web/public/next/assets/OnboardingGate-CRexmMn5.js.map +1 -0
- package/dist/core/web/public/next/assets/PlaybooksSection-R2_wyVpQ.js +9 -0
- package/dist/core/web/public/next/assets/PlaybooksSection-R2_wyVpQ.js.map +1 -0
- package/dist/core/web/public/next/assets/PreviewPane-Djw_GJ20.js +2 -0
- package/dist/core/web/public/next/assets/PreviewPane-Djw_GJ20.js.map +1 -0
- package/dist/core/web/public/next/assets/ProviderLogo-DIfJXNWf.js +2 -0
- package/dist/core/web/public/next/assets/ProviderLogo-DIfJXNWf.js.map +1 -0
- package/dist/core/web/public/next/assets/RailStatus-B3eI2AaD.js +2 -0
- package/dist/core/web/public/next/assets/RailStatus-B3eI2AaD.js.map +1 -0
- package/dist/core/web/public/next/assets/ReasoningPane-ExT8XgQB.js +2 -0
- package/dist/core/web/public/next/assets/ReasoningPane-ExT8XgQB.js.map +1 -0
- package/dist/core/web/public/next/assets/ReasoningSheet-YF4OS4lM.js +2 -0
- package/dist/core/web/public/next/assets/ReasoningSheet-YF4OS4lM.js.map +1 -0
- package/dist/core/web/public/next/assets/RefreshIndicator-BJoefKSa.js +2 -0
- package/dist/core/web/public/next/assets/RefreshIndicator-BJoefKSa.js.map +1 -0
- package/dist/core/web/public/next/assets/RemoteMobileApp-C2SflRkm.js +2 -0
- package/dist/core/web/public/next/assets/RemoteMobileApp-C2SflRkm.js.map +1 -0
- package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-FkAdn3Sv.js +7 -0
- package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-FkAdn3Sv.js.map +1 -0
- package/dist/core/web/public/next/assets/ResourcesChrome-CFHrLqmA.js +3 -0
- package/dist/core/web/public/next/assets/ResourcesChrome-CFHrLqmA.js.map +1 -0
- package/dist/core/web/public/next/assets/ResourcesDrawer-DtnZgDr_.js +3 -0
- package/dist/core/web/public/next/assets/ResourcesDrawer-DtnZgDr_.js.map +1 -0
- package/dist/core/web/public/next/assets/RouteErrorBoundary-DTz5-ndE.js +2 -0
- package/dist/core/web/public/next/assets/RouteErrorBoundary-DTz5-ndE.js.map +1 -0
- package/dist/core/web/public/next/assets/RunInCloudAction-DvoDMV54.js +2 -0
- package/dist/core/web/public/next/assets/RunInCloudAction-DvoDMV54.js.map +1 -0
- package/dist/core/web/public/next/assets/RunInDevinAction-BwCkFxLX.js +2 -0
- package/dist/core/web/public/next/assets/RunInDevinAction-BwCkFxLX.js.map +1 -0
- package/dist/core/web/public/next/assets/ScreenHost-jdgnt5U2.js +3 -0
- package/dist/core/web/public/next/assets/ScreenHost-jdgnt5U2.js.map +1 -0
- package/dist/core/web/public/next/assets/SeatSelector-DnpH5D_D.js +3 -0
- package/dist/core/web/public/next/assets/SeatSelector-DnpH5D_D.js.map +1 -0
- package/dist/core/web/public/next/assets/Segmented-BECZDbsg.js +2 -0
- package/dist/core/web/public/next/assets/Segmented-BECZDbsg.js.map +1 -0
- package/dist/core/web/public/next/assets/Select-DjQDkPJU.js +2 -0
- package/dist/core/web/public/next/assets/Select-DjQDkPJU.js.map +1 -0
- package/dist/core/web/public/next/assets/SessionGate-CWuI8dDR.js +2 -0
- package/dist/core/web/public/next/assets/SessionGate-CWuI8dDR.js.map +1 -0
- package/dist/core/web/public/next/assets/SessionInsightChip-DRsIQu29.js +2 -0
- package/dist/core/web/public/next/assets/SessionInsightChip-DRsIQu29.js.map +1 -0
- package/dist/core/web/public/next/assets/SessionSearch-Bya3EXJl.js +2 -0
- package/dist/core/web/public/next/assets/SessionSearch-Bya3EXJl.js.map +1 -0
- package/dist/core/web/public/next/assets/SettingsSection-CXjiHNQb.js +2 -0
- package/dist/core/web/public/next/assets/SettingsSection-CXjiHNQb.js.map +1 -0
- package/dist/core/web/public/next/assets/SetupChecklist-YUMOJNbk.js +2 -0
- package/dist/core/web/public/next/assets/SetupChecklist-YUMOJNbk.js.map +1 -0
- package/dist/core/web/public/next/assets/ShadowDecisions-BP2WgGMi.js +3 -0
- package/dist/core/web/public/next/assets/ShadowDecisions-BP2WgGMi.js.map +1 -0
- package/dist/core/web/public/next/assets/Sheet-Czuz3h6A.js +2 -0
- package/dist/core/web/public/next/assets/Sheet-Czuz3h6A.js.map +1 -0
- package/dist/core/web/public/next/assets/ShortcutsOverlay-D_ICte5N.js +2 -0
- package/dist/core/web/public/next/assets/ShortcutsOverlay-D_ICte5N.js.map +1 -0
- package/dist/core/web/public/next/assets/Sidebar-CcI1_B9Y.js +3 -0
- package/dist/core/web/public/next/assets/Sidebar-CcI1_B9Y.js.map +1 -0
- package/dist/core/web/public/next/assets/SkipToContent-B0GAKhYQ.js +2 -0
- package/dist/core/web/public/next/assets/SkipToContent-B0GAKhYQ.js.map +1 -0
- package/dist/core/web/public/next/assets/Slider-Dzv55CNY.js +2 -0
- package/dist/core/web/public/next/assets/Slider-Dzv55CNY.js.map +1 -0
- package/dist/core/web/public/next/assets/SourcesPane-rxRCi7cL.js +2 -0
- package/dist/core/web/public/next/assets/SourcesPane-rxRCi7cL.js.map +1 -0
- package/dist/core/web/public/next/assets/SourcesPanel-LyMp7aLt.js +2 -0
- package/dist/core/web/public/next/assets/SourcesPanel-LyMp7aLt.js.map +1 -0
- package/dist/core/web/public/next/assets/StatTile-1_HPOflX.js +2 -0
- package/dist/core/web/public/next/assets/StatTile-1_HPOflX.js.map +1 -0
- package/dist/core/web/public/next/assets/StatusBadge-zR7YgIa8.js +2 -0
- package/dist/core/web/public/next/assets/StatusBadge-zR7YgIa8.js.map +1 -0
- package/dist/core/web/public/next/assets/StepBand-BGX2RpFV.js +2 -0
- package/dist/core/web/public/next/assets/StepBand-BGX2RpFV.js.map +1 -0
- package/dist/core/web/public/next/assets/Surface-BEToBKC3.js +2 -0
- package/dist/core/web/public/next/assets/Surface-BEToBKC3.js.map +1 -0
- package/dist/core/web/public/next/assets/Swimlane-DAf7u5p3.js +2 -0
- package/dist/core/web/public/next/assets/Swimlane-DAf7u5p3.js.map +1 -0
- package/dist/core/web/public/next/assets/Switch-mvc9lQcT.js +2 -0
- package/dist/core/web/public/next/assets/Switch-mvc9lQcT.js.map +1 -0
- package/dist/core/web/public/next/assets/Tag-Chqolzxz.js +2 -0
- package/dist/core/web/public/next/assets/Tag-Chqolzxz.js.map +1 -0
- package/dist/core/web/public/next/assets/TerminalPane-4wn3AxS0.js +3 -0
- package/dist/core/web/public/next/assets/TerminalPane-4wn3AxS0.js.map +1 -0
- package/dist/core/web/public/next/assets/TerminalPane-D7-O0ssr.js +26 -0
- package/dist/core/web/public/next/assets/TerminalPane-D7-O0ssr.js.map +1 -0
- package/dist/core/web/public/next/assets/ThinkingBlock-gWESdTxs.js +2 -0
- package/dist/core/web/public/next/assets/ThinkingBlock-gWESdTxs.js.map +1 -0
- package/dist/core/web/public/next/assets/UniverseConsoleApp-XqJvgt7b.js +2 -0
- package/dist/core/web/public/next/assets/UniverseConsoleApp-XqJvgt7b.js.map +1 -0
- package/dist/core/web/public/next/assets/UniverseView-D0j9HVku.js +9 -0
- package/dist/core/web/public/next/assets/UniverseView-D0j9HVku.js.map +1 -0
- package/dist/core/web/public/next/assets/UsageSection-DnSPo4Ua.js +3 -0
- package/dist/core/web/public/next/assets/UsageSection-DnSPo4Ua.js.map +1 -0
- package/dist/core/web/public/next/assets/UsePlaybookAction-71M3gO7g.js +2 -0
- package/dist/core/web/public/next/assets/UsePlaybookAction-71M3gO7g.js.map +1 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-DO84Xscn.js +3 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-DO84Xscn.js.map +1 -0
- package/dist/core/web/public/next/assets/VerseMobileApp-CrCDQcw5.js +3 -0
- package/dist/core/web/public/next/assets/VerseMobileApp-CrCDQcw5.js.map +1 -0
- package/dist/core/web/public/next/assets/VerseShared-CFE5B-IY.js +2 -0
- package/dist/core/web/public/next/assets/VerseShared-CFE5B-IY.js.map +1 -0
- package/dist/core/web/public/next/assets/VoiceHud-CumHX7If.js +2 -0
- package/dist/core/web/public/next/assets/VoiceHud-CumHX7If.js.map +1 -0
- package/dist/core/web/public/next/assets/VoiceInput-CWTVwTwV.js +2 -0
- package/dist/core/web/public/next/assets/VoiceInput-CWTVwTwV.js.map +1 -0
- package/dist/core/web/public/next/assets/WikiSection-BIGSx4z-.js +2 -0
- package/dist/core/web/public/next/assets/WikiSection-BIGSx4z-.js.map +1 -0
- package/dist/core/web/public/next/assets/Workspace-5sa9Xggd.js +6 -0
- package/dist/core/web/public/next/assets/Workspace-5sa9Xggd.js.map +1 -0
- package/dist/core/web/public/next/assets/actions-BPyW8QC-.js +2 -0
- package/dist/core/web/public/next/assets/actions-BPyW8QC-.js.map +1 -0
- package/dist/core/web/public/next/assets/agent-tools-client-Si2ncqwV.js +2 -0
- package/dist/core/web/public/next/assets/agent-tools-client-Si2ncqwV.js.map +1 -0
- package/dist/core/web/public/next/assets/agent-transcript-model-D-34Ll59.js +7 -0
- package/dist/core/web/public/next/assets/agent-transcript-model-D-34Ll59.js.map +1 -0
- package/dist/core/web/public/next/assets/agents-focus-E_TBTTmZ.js +2 -0
- package/dist/core/web/public/next/assets/agents-focus-E_TBTTmZ.js.map +1 -0
- package/dist/core/web/public/next/assets/app-version-y5sfMXiE.js +2 -0
- package/dist/core/web/public/next/assets/app-version-y5sfMXiE.js.map +1 -0
- package/dist/core/web/public/next/assets/apps-model-BnjwUIUH.js +2 -0
- package/dist/core/web/public/next/assets/apps-model-BnjwUIUH.js.map +1 -0
- package/dist/core/web/public/next/assets/ask-seat-CWE-jY2D.js +2 -0
- package/dist/core/web/public/next/assets/ask-seat-CWE-jY2D.js.map +1 -0
- package/dist/core/web/public/next/assets/authority-model-DVMxkDV4.js +2 -0
- package/dist/core/web/public/next/assets/authority-model-DVMxkDV4.js.map +1 -0
- package/dist/core/web/public/next/assets/automations-focus-B-lklYid.js +2 -0
- package/dist/core/web/public/next/assets/automations-focus-B-lklYid.js.map +1 -0
- package/dist/core/web/public/next/assets/budget-model-Bwv4MZSa.js +2 -0
- package/dist/core/web/public/next/assets/budget-model-Bwv4MZSa.js.map +1 -0
- package/dist/core/web/public/next/assets/budget-queries-t-Bdoly3.js +2 -0
- package/dist/core/web/public/next/assets/budget-queries-t-Bdoly3.js.map +1 -0
- package/dist/core/web/public/next/assets/capacity-strip-model-CJ5F-CtB.js +2 -0
- package/dist/core/web/public/next/assets/capacity-strip-model-CJ5F-CtB.js.map +1 -0
- package/dist/core/web/public/next/assets/charts-Di0_Q980.js +2 -0
- package/dist/core/web/public/next/assets/charts-Di0_Q980.js.map +1 -0
- package/dist/core/web/public/next/assets/chat-pane-data-5MDEsLff.js +2 -0
- package/dist/core/web/public/next/assets/chat-pane-data-5MDEsLff.js.map +1 -0
- package/dist/core/web/public/next/assets/checkpoint-queries-6thqsAiE.js +2 -0
- package/dist/core/web/public/next/assets/checkpoint-queries-6thqsAiE.js.map +1 -0
- package/dist/core/web/public/next/assets/cloud-model-CzKeuxfm.js +2 -0
- package/dist/core/web/public/next/assets/cloud-model-CzKeuxfm.js.map +1 -0
- package/dist/core/web/public/next/assets/cloud-queries-DrR_QeUK.js +2 -0
- package/dist/core/web/public/next/assets/cloud-queries-DrR_QeUK.js.map +1 -0
- package/dist/core/web/public/next/assets/command-catalog-COH2G2xv.js +2 -0
- package/dist/core/web/public/next/assets/command-catalog-COH2G2xv.js.map +1 -0
- package/dist/core/web/public/next/assets/composer-queries-GxFt1UQm.js +2 -0
- package/dist/core/web/public/next/assets/composer-queries-GxFt1UQm.js.map +1 -0
- package/dist/core/web/public/next/assets/composer-state-DTAoie2b.js +2 -0
- package/dist/core/web/public/next/assets/composer-state-DTAoie2b.js.map +1 -0
- package/dist/core/web/public/next/assets/connectivity-zM4_O-XZ.js +2 -0
- package/dist/core/web/public/next/assets/connectivity-zM4_O-XZ.js.map +1 -0
- package/dist/core/web/public/next/assets/context-model-CKXUZd0O.js +2 -0
- package/dist/core/web/public/next/assets/context-model-CKXUZd0O.js.map +1 -0
- package/dist/core/web/public/next/assets/context-model-DYkDKK6C.js +3 -0
- package/dist/core/web/public/next/assets/context-model-DYkDKK6C.js.map +1 -0
- package/dist/core/web/public/next/assets/context-queries-D0Aydl5L.js +2 -0
- package/dist/core/web/public/next/assets/context-queries-D0Aydl5L.js.map +1 -0
- package/dist/core/web/public/next/assets/control-queries-C5uQTzJi.js +2 -0
- package/dist/core/web/public/next/assets/control-queries-C5uQTzJi.js.map +1 -0
- package/dist/core/web/public/next/assets/copy-setup-IHGsNfkz.js +2 -0
- package/dist/core/web/public/next/assets/copy-setup-IHGsNfkz.js.map +1 -0
- package/dist/core/web/public/next/assets/deep-link-DgTIAuc2.js +2 -0
- package/dist/core/web/public/next/assets/deep-link-DgTIAuc2.js.map +1 -0
- package/dist/core/web/public/next/assets/device-permissions-BplZgouU.js +2 -0
- package/dist/core/web/public/next/assets/device-permissions-BplZgouU.js.map +1 -0
- package/dist/core/web/public/next/assets/devin-queries-Bltl6Jz2.js +2 -0
- package/dist/core/web/public/next/assets/devin-queries-Bltl6Jz2.js.map +1 -0
- package/dist/core/web/public/next/assets/dock-icons-DPXFt10d.js +2 -0
- package/dist/core/web/public/next/assets/dock-icons-DPXFt10d.js.map +1 -0
- package/dist/core/web/public/next/assets/dock-panes-DNSv-1Tq.js +2 -0
- package/dist/core/web/public/next/assets/dock-panes-DNSv-1Tq.js.map +1 -0
- package/dist/core/web/public/next/assets/fleet-control-queries-DZEa-aFz.js +2 -0
- package/dist/core/web/public/next/assets/fleet-control-queries-DZEa-aFz.js.map +1 -0
- package/dist/core/web/public/next/assets/fleet-model-D4n8ErhA.js +2 -0
- package/dist/core/web/public/next/assets/fleet-model-D4n8ErhA.js.map +1 -0
- package/dist/core/web/public/next/assets/fleet-queries-BO1MHMFz.js +2 -0
- package/dist/core/web/public/next/assets/fleet-queries-BO1MHMFz.js.map +1 -0
- package/dist/core/web/public/next/assets/fleet-state-yM0mV9_P.js +3 -0
- package/dist/core/web/public/next/assets/fleet-state-yM0mV9_P.js.map +1 -0
- package/dist/core/web/public/next/assets/focus-trap-C2rynI8q.js +2 -0
- package/dist/core/web/public/next/assets/focus-trap-C2rynI8q.js.map +1 -0
- package/dist/core/web/public/next/assets/format-V6IiIMAL.js +2 -0
- package/dist/core/web/public/next/assets/format-V6IiIMAL.js.map +1 -0
- package/dist/core/web/public/next/assets/git-model-rVA0Jd0g.js +5 -0
- package/dist/core/web/public/next/assets/git-model-rVA0Jd0g.js.map +1 -0
- package/dist/core/web/public/next/assets/global-CYfRwH6t.js +3 -0
- package/dist/core/web/public/next/assets/global-CYfRwH6t.js.map +1 -0
- package/dist/core/web/public/next/assets/guarded-action-A9ZsIE8S.js +3 -0
- package/dist/core/web/public/next/assets/guarded-action-A9ZsIE8S.js.map +1 -0
- package/dist/core/web/public/next/assets/guarded-runners-xMakDn92.js +2 -0
- package/dist/core/web/public/next/assets/guarded-runners-xMakDn92.js.map +1 -0
- package/dist/core/web/public/next/assets/headroom-C4dyfw7P.js +2 -0
- package/dist/core/web/public/next/assets/headroom-C4dyfw7P.js.map +1 -0
- package/dist/core/web/public/next/assets/health-queries-BHoSyIcL.js +2 -0
- package/dist/core/web/public/next/assets/health-queries-BHoSyIcL.js.map +1 -0
- package/dist/core/web/public/next/assets/icons-BBm_Cy62.js +2 -0
- package/dist/core/web/public/next/assets/icons-BBm_Cy62.js.map +1 -0
- package/dist/core/web/public/next/assets/index-_izD07R9.js +11 -0
- package/dist/core/web/public/next/assets/index-_izD07R9.js.map +1 -0
- package/dist/core/web/public/next/assets/jev-queries-D-AMM0sw.js +2 -0
- package/dist/core/web/public/next/assets/jev-queries-D-AMM0sw.js.map +1 -0
- package/dist/core/web/public/next/assets/ladder-queries-BIpJVqxu.js +2 -0
- package/dist/core/web/public/next/assets/ladder-queries-BIpJVqxu.js.map +1 -0
- package/dist/core/web/public/next/assets/leader-focus-Dh4gXTSi.js +2 -0
- package/dist/core/web/public/next/assets/leader-focus-Dh4gXTSi.js.map +1 -0
- package/dist/core/web/public/next/assets/live-model-D97AfBFz.js +2 -0
- package/dist/core/web/public/next/assets/live-model-D97AfBFz.js.map +1 -0
- package/dist/core/web/public/next/assets/mind.module-rVKz51LB.js +2 -0
- package/dist/core/web/public/next/assets/mind.module-rVKz51LB.js.map +1 -0
- package/dist/core/web/public/next/assets/mobile-actions-V26-lGbH.js +2 -0
- package/dist/core/web/public/next/assets/mobile-actions-V26-lGbH.js.map +1 -0
- package/dist/core/web/public/next/assets/mobile-toast-9-WQbWQu.js +2 -0
- package/dist/core/web/public/next/assets/mobile-toast-9-WQbWQu.js.map +1 -0
- package/dist/core/web/public/next/assets/multimodel-flows-D309YXSk.js +7 -0
- package/dist/core/web/public/next/assets/multimodel-flows-D309YXSk.js.map +1 -0
- package/dist/core/web/public/next/assets/multimodel-queries-BuslyWtq.js +2 -0
- package/dist/core/web/public/next/assets/multimodel-queries-BuslyWtq.js.map +1 -0
- package/dist/core/web/public/next/assets/mutations-B9AZoqNR.js +2 -0
- package/dist/core/web/public/next/assets/mutations-B9AZoqNR.js.map +1 -0
- package/dist/core/web/public/next/assets/nav-DC0ynjdb.js +2 -0
- package/dist/core/web/public/next/assets/nav-DC0ynjdb.js.map +1 -0
- package/dist/core/web/public/next/assets/needs-you-actions-BOHN9fg7.js +2 -0
- package/dist/core/web/public/next/assets/needs-you-actions-BOHN9fg7.js.map +1 -0
- package/dist/core/web/public/next/assets/needs-you-model-ChGg3r5r.js +2 -0
- package/dist/core/web/public/next/assets/needs-you-model-ChGg3r5r.js.map +1 -0
- package/dist/core/web/public/next/assets/open-terminal-5F1FNUEB.js +2 -0
- package/dist/core/web/public/next/assets/open-terminal-5F1FNUEB.js.map +1 -0
- package/dist/core/web/public/next/assets/open-terminal-request-SjPIZmAt.js +2 -0
- package/dist/core/web/public/next/assets/open-terminal-request-SjPIZmAt.js.map +1 -0
- package/dist/core/web/public/next/assets/overnight-queries-Dc46kMfg.js +2 -0
- package/dist/core/web/public/next/assets/overnight-queries-Dc46kMfg.js.map +1 -0
- package/dist/core/web/public/next/assets/palette-handoff-xkWF9v2M.js +2 -0
- package/dist/core/web/public/next/assets/palette-handoff-xkWF9v2M.js.map +1 -0
- package/dist/core/web/public/next/assets/panes-DOXM13lF.js +3 -0
- package/dist/core/web/public/next/assets/panes-DOXM13lF.js.map +1 -0
- package/dist/core/web/public/next/assets/path-display-C6BmdnBS.js +2 -0
- package/dist/core/web/public/next/assets/path-display-C6BmdnBS.js.map +1 -0
- package/dist/core/web/public/next/assets/percent-text-CSk89zQF.js +2 -0
- package/dist/core/web/public/next/assets/percent-text-CSk89zQF.js.map +1 -0
- package/dist/core/web/public/next/assets/playbook-composer-Bz-fFxXW.js +2 -0
- package/dist/core/web/public/next/assets/playbook-composer-Bz-fFxXW.js.map +1 -0
- package/dist/core/web/public/next/assets/playbook-focus-BXu0yrHF.js +2 -0
- package/dist/core/web/public/next/assets/playbook-focus-BXu0yrHF.js.map +1 -0
- package/dist/core/web/public/next/assets/playbooks-queries-Cpnl3avl.js +2 -0
- package/dist/core/web/public/next/assets/playbooks-queries-Cpnl3avl.js.map +1 -0
- package/dist/core/web/public/next/assets/preloaded-E_jepvvg.js +2 -0
- package/dist/core/web/public/next/assets/preloaded-E_jepvvg.js.map +1 -0
- package/dist/core/web/public/next/assets/primitives-Bynv7bPl.js +1 -0
- package/dist/core/web/public/next/assets/pwa-D2lyCiGV.js +2 -0
- package/dist/core/web/public/next/assets/pwa-D2lyCiGV.js.map +1 -0
- package/dist/core/web/public/next/assets/queries-C0Bs3TOo.js +2 -0
- package/dist/core/web/public/next/assets/queries-C0Bs3TOo.js.map +1 -0
- package/dist/core/web/public/next/assets/reasoning-pref-DDPtfTM3.js +2 -0
- package/dist/core/web/public/next/assets/reasoning-pref-DDPtfTM3.js.map +1 -0
- package/dist/core/web/public/next/assets/remote-session-Dj27m1xb.js +3 -0
- package/dist/core/web/public/next/assets/remote-session-Dj27m1xb.js.map +1 -0
- package/dist/core/web/public/next/assets/resolved-store-B2iJa5C2.js +2 -0
- package/dist/core/web/public/next/assets/resolved-store-B2iJa5C2.js.map +1 -0
- package/dist/core/web/public/next/assets/resources-queries-pVRhOTEt.js +2 -0
- package/dist/core/web/public/next/assets/resources-queries-pVRhOTEt.js.map +1 -0
- package/dist/core/web/public/next/assets/reveal-anchor-BAMmxMeu.js +2 -0
- package/dist/core/web/public/next/assets/reveal-anchor-BAMmxMeu.js.map +1 -0
- package/dist/core/web/public/next/assets/rolldown-runtime-hePW80VL.js +1 -0
- package/dist/core/web/public/next/assets/seat-readiness-a5B9iqP-.js +2 -0
- package/dist/core/web/public/next/assets/seat-readiness-a5B9iqP-.js.map +1 -0
- package/dist/core/web/public/next/assets/seat-subscription-Cut6eC-8.js +2 -0
- package/dist/core/web/public/next/assets/seat-subscription-Cut6eC-8.js.map +1 -0
- package/dist/core/web/public/next/assets/sheet-BxZSmdad.js +2 -0
- package/dist/core/web/public/next/assets/sheet-BxZSmdad.js.map +1 -0
- package/dist/core/web/public/next/assets/sidebar-model-COzIPSiP.js +2 -0
- package/dist/core/web/public/next/assets/sidebar-model-COzIPSiP.js.map +1 -0
- package/dist/core/web/public/next/assets/slots-BJc3RJkV.js +3 -0
- package/dist/core/web/public/next/assets/slots-BJc3RJkV.js.map +1 -0
- package/dist/core/web/public/next/assets/sources-queries-DCKiXNAt.js +4 -0
- package/dist/core/web/public/next/assets/sources-queries-DCKiXNAt.js.map +1 -0
- package/dist/core/web/public/next/assets/sse-It4xa040.js +2 -0
- package/dist/core/web/public/next/assets/sse-It4xa040.js.map +1 -0
- package/dist/core/web/public/next/assets/surface-data-NFl_uS--.js +2 -0
- package/dist/core/web/public/next/assets/surface-data-NFl_uS--.js.map +1 -0
- package/dist/core/web/public/next/assets/surface-prefetch-jMaLNI6z.js +2 -0
- package/dist/core/web/public/next/assets/surface-prefetch-jMaLNI6z.js.map +1 -0
- package/dist/core/web/public/next/assets/tasks-model-CbmPgWL8.js +2 -0
- package/dist/core/web/public/next/assets/tasks-model-CbmPgWL8.js.map +1 -0
- package/dist/core/web/public/next/assets/terminal-client-DTXAf2-x.js +2 -0
- package/dist/core/web/public/next/assets/terminal-client-DTXAf2-x.js.map +1 -0
- package/dist/core/web/public/next/assets/terminal-icons-qBCOwqu-.js +2 -0
- package/dist/core/web/public/next/assets/terminal-icons-qBCOwqu-.js.map +1 -0
- package/dist/core/web/public/next/assets/terminal-view-CksH3CsK.js +6 -0
- package/dist/core/web/public/next/assets/terminal-view-CksH3CsK.js.map +1 -0
- package/dist/core/web/public/next/assets/thread-data-C8z55msn.js +2 -0
- package/dist/core/web/public/next/assets/thread-data-C8z55msn.js.map +1 -0
- package/dist/core/web/public/next/assets/ui-parts-CcpmRBwj.js +2 -0
- package/dist/core/web/public/next/assets/ui-parts-CcpmRBwj.js.map +1 -0
- package/dist/core/web/public/next/assets/usage-queries-BxrTLCaJ.js +2 -0
- package/dist/core/web/public/next/assets/usage-queries-BxrTLCaJ.js.map +1 -0
- package/dist/core/web/public/next/assets/use-chat-activity-O8I0Ho0m.js +2 -0
- package/dist/core/web/public/next/assets/use-chat-activity-O8I0Ho0m.js.map +1 -0
- package/dist/core/web/public/next/assets/use-guarded-action-BZ6Bye9l.js +2 -0
- package/dist/core/web/public/next/assets/use-guarded-action-BZ6Bye9l.js.map +1 -0
- package/dist/core/web/public/next/assets/use-ticker-CUsNALmP.js +2 -0
- package/dist/core/web/public/next/assets/use-ticker-CUsNALmP.js.map +1 -0
- package/dist/core/web/public/next/assets/use-token-gate-DgnO9fbv.js +2 -0
- package/dist/core/web/public/next/assets/use-token-gate-DgnO9fbv.js.map +1 -0
- package/dist/core/web/public/next/assets/useAutoSeat-CIEXM-Q5.js +2 -0
- package/dist/core/web/public/next/assets/useAutoSeat-CIEXM-Q5.js.map +1 -0
- package/dist/core/web/public/next/assets/useOnboarding-BAmRBxkI.js +2 -0
- package/dist/core/web/public/next/assets/useOnboarding-BAmRBxkI.js.map +1 -0
- package/dist/core/web/public/next/assets/useSeatHealth-DPkSSddF.js +2 -0
- package/dist/core/web/public/next/assets/useSeatHealth-DPkSSddF.js.map +1 -0
- package/dist/core/web/public/next/assets/useSeatsRefresh-CpsRhfmt.js +2 -0
- package/dist/core/web/public/next/assets/useSeatsRefresh-CpsRhfmt.js.map +1 -0
- package/dist/core/web/public/next/assets/useVerseSession-DeW1iFpw.js +2 -0
- package/dist/core/web/public/next/assets/useVerseSession-DeW1iFpw.js.map +1 -0
- package/dist/core/web/public/next/assets/useVerseTranscript-CvUqjRmZ.js +2 -0
- package/dist/core/web/public/next/assets/useVerseTranscript-CvUqjRmZ.js.map +1 -0
- package/dist/core/web/public/next/assets/verse-bootstrap-query-ANtL2OPN.js +2 -0
- package/dist/core/web/public/next/assets/verse-bootstrap-query-ANtL2OPN.js.map +1 -0
- package/dist/core/web/public/next/assets/verse-icons-C92Qt7rh.js +2 -0
- package/dist/core/web/public/next/assets/verse-icons-C92Qt7rh.js.map +1 -0
- package/dist/core/web/public/next/assets/verse-model-DAOz9LrY.js +2 -0
- package/dist/core/web/public/next/assets/verse-model-DAOz9LrY.js.map +1 -0
- package/dist/core/web/public/next/assets/warmup-B2DWWeeC.js +3 -0
- package/dist/core/web/public/next/assets/warmup-B2DWWeeC.js.map +1 -0
- package/dist/core/web/public/next/assets/why-seat-model-Bn6O26JJ.js +2 -0
- package/dist/core/web/public/next/assets/why-seat-model-Bn6O26JJ.js.map +1 -0
- package/dist/core/web/public/next/assets/wiki-focus-CwC-yoT9.js +2 -0
- package/dist/core/web/public/next/assets/wiki-focus-CwC-yoT9.js.map +1 -0
- package/dist/core/web/public/next/assets/workspace-model-C-q_I8xN.js +2 -0
- package/dist/core/web/public/next/assets/workspace-model-C-q_I8xN.js.map +1 -0
- package/dist/core/web/public/next/index.html +2 -1
- package/dist/core/web/remote-gateway-policy.js +5 -0
- package/dist/core/web/remote-gateway-policy.js.map +1 -1
- package/dist/core/web/static.d.ts +4 -3
- package/dist/core/web/static.js +8 -5
- package/dist/core/web/static.js.map +1 -1
- package/dist/release-dependency-inventory.json +1 -1
- package/node_modules/fast-uri/index.js +20 -5
- package/node_modules/fast-uri/lib/utils.js +8 -1
- package/node_modules/fast-uri/package.json +1 -1
- package/node_modules/fast-uri/test/component-safe-serialization.test.js +58 -0
- package/node_modules/fast-uri/test/ipv6-validation.test.js +34 -0
- package/node_modules/ip-address/README.md +134 -134
- package/node_modules/ip-address/dist/address-error.d.ts +11 -0
- package/node_modules/ip-address/dist/address-error.js.map +1 -1
- package/node_modules/ip-address/dist/ipv4.d.ts +22 -6
- package/node_modules/ip-address/dist/ipv4.js +22 -6
- package/node_modules/ip-address/dist/ipv4.js.map +1 -1
- package/node_modules/ip-address/dist/ipv6.d.ts +26 -8
- package/node_modules/ip-address/dist/ipv6.js +46 -29
- package/node_modules/ip-address/dist/ipv6.js.map +1 -1
- package/node_modules/ip-address/dist/v6/constants.js +1 -0
- package/node_modules/ip-address/dist/v6/constants.js.map +1 -1
- package/node_modules/ip-address/package.json +1 -1
- package/package.json +5 -4
- package/dist/core/web/public/next/assets/ActionMenu-Bia8Re6u.js +0 -2
- package/dist/core/web/public/next/assets/ActionMenu-Bia8Re6u.js.map +0 -1
- package/dist/core/web/public/next/assets/Advanced-C1LtnA8c.js +0 -2
- package/dist/core/web/public/next/assets/Advanced-C1LtnA8c.js.map +0 -1
- package/dist/core/web/public/next/assets/AgentDetailScreen-DuoXrbol.js +0 -2
- package/dist/core/web/public/next/assets/AgentDetailScreen-DuoXrbol.js.map +0 -1
- package/dist/core/web/public/next/assets/AgentToolsSheet-Bdfk4SF-.js +0 -2
- package/dist/core/web/public/next/assets/AgentToolsSheet-Bdfk4SF-.js.map +0 -1
- package/dist/core/web/public/next/assets/AgentToolsStrip-BN1otiqC.js +0 -2
- package/dist/core/web/public/next/assets/AgentToolsStrip-BN1otiqC.js.map +0 -1
- package/dist/core/web/public/next/assets/AgentsScreen-BxHFaI48.js +0 -2
- package/dist/core/web/public/next/assets/AgentsScreen-BxHFaI48.js.map +0 -1
- package/dist/core/web/public/next/assets/AgentsSection-mYIA8Lyk.js +0 -3
- package/dist/core/web/public/next/assets/AgentsSection-mYIA8Lyk.js.map +0 -1
- package/dist/core/web/public/next/assets/App-DebYuj1v.js +0 -8
- package/dist/core/web/public/next/assets/App-DebYuj1v.js.map +0 -1
- package/dist/core/web/public/next/assets/AppsSection-W30duGQA.js +0 -2
- package/dist/core/web/public/next/assets/AppsSection-W30duGQA.js.map +0 -1
- package/dist/core/web/public/next/assets/AreaTrend-ZnnIjBGU.js +0 -2
- package/dist/core/web/public/next/assets/AreaTrend-ZnnIjBGU.js.map +0 -1
- package/dist/core/web/public/next/assets/AutomationsSection-B4N0V-vz.js +0 -2
- package/dist/core/web/public/next/assets/AutomationsSection-B4N0V-vz.js.map +0 -1
- package/dist/core/web/public/next/assets/AutonomyOffState-C9S_FXc0.js +0 -3
- package/dist/core/web/public/next/assets/AutonomyOffState-C9S_FXc0.js.map +0 -1
- package/dist/core/web/public/next/assets/AutonomySection-oMQfNEQN.js +0 -2
- package/dist/core/web/public/next/assets/AutonomySection-oMQfNEQN.js.map +0 -1
- package/dist/core/web/public/next/assets/AutonomyStatus-CdHOyhrV.js +0 -2
- package/dist/core/web/public/next/assets/AutonomyStatus-CdHOyhrV.js.map +0 -1
- package/dist/core/web/public/next/assets/BranchBar-Bo5b8-hr.js +0 -2
- package/dist/core/web/public/next/assets/BranchBar-Bo5b8-hr.js.map +0 -1
- package/dist/core/web/public/next/assets/BrowserPanel-D02omBK0.js +0 -7
- package/dist/core/web/public/next/assets/BrowserPanel-D02omBK0.js.map +0 -1
- package/dist/core/web/public/next/assets/BudgetControl-BtPTi8qI.js +0 -2
- package/dist/core/web/public/next/assets/BudgetControl-BtPTi8qI.js.map +0 -1
- package/dist/core/web/public/next/assets/Button-DP2ImS5n.js +0 -2
- package/dist/core/web/public/next/assets/Button-DP2ImS5n.js.map +0 -1
- package/dist/core/web/public/next/assets/CapacityStrip-ChYPcr23.js +0 -2
- package/dist/core/web/public/next/assets/CapacityStrip-ChYPcr23.js.map +0 -1
- package/dist/core/web/public/next/assets/ChangesPaneHost-C53_94Kn.js +0 -16
- package/dist/core/web/public/next/assets/ChangesPaneHost-C53_94Kn.js.map +0 -1
- package/dist/core/web/public/next/assets/ChartFrame-CtFLETWA.js +0 -2
- package/dist/core/web/public/next/assets/ChartFrame-CtFLETWA.js.map +0 -1
- package/dist/core/web/public/next/assets/ChatPanes-CyAK9VAi.js +0 -2
- package/dist/core/web/public/next/assets/ChatPanes-CyAK9VAi.js.map +0 -1
- package/dist/core/web/public/next/assets/ChatSection-DV9smoPe.js +0 -3
- package/dist/core/web/public/next/assets/ChatSection-DV9smoPe.js.map +0 -1
- package/dist/core/web/public/next/assets/ChecksPanel-B6T2sjc_.js +0 -5
- package/dist/core/web/public/next/assets/ChecksPanel-B6T2sjc_.js.map +0 -1
- package/dist/core/web/public/next/assets/CloudBudgetForm-D8RbdAC7.js +0 -2
- package/dist/core/web/public/next/assets/CloudBudgetForm-D8RbdAC7.js.map +0 -1
- package/dist/core/web/public/next/assets/CommandPalette-C04gGTES.js +0 -3
- package/dist/core/web/public/next/assets/CommandPalette-C04gGTES.js.map +0 -1
- package/dist/core/web/public/next/assets/CommandSection-Be8VFAEU.js +0 -3
- package/dist/core/web/public/next/assets/CommandSection-Be8VFAEU.js.map +0 -1
- package/dist/core/web/public/next/assets/CommandWorkflowForm-D5A7c2PE.js +0 -9
- package/dist/core/web/public/next/assets/CommandWorkflowForm-D5A7c2PE.js.map +0 -1
- package/dist/core/web/public/next/assets/CommandWorkflowPicker-CGrRWfzQ.js +0 -3
- package/dist/core/web/public/next/assets/CommandWorkflowPicker-CGrRWfzQ.js.map +0 -1
- package/dist/core/web/public/next/assets/CompareDialog-C2ryiEtF.js +0 -4
- package/dist/core/web/public/next/assets/CompareDialog-C2ryiEtF.js.map +0 -1
- package/dist/core/web/public/next/assets/ComputerControl-C4oW7Zim.js +0 -2
- package/dist/core/web/public/next/assets/ComputerControl-C4oW7Zim.js.map +0 -1
- package/dist/core/web/public/next/assets/ConfirmDialog-J8CszPmj.js +0 -2
- package/dist/core/web/public/next/assets/ConfirmDialog-J8CszPmj.js.map +0 -1
- package/dist/core/web/public/next/assets/DeleteChatDialog-BT5y9cR2.js +0 -2
- package/dist/core/web/public/next/assets/DeleteChatDialog-BT5y9cR2.js.map +0 -1
- package/dist/core/web/public/next/assets/DevinStopDialog-CADdSqha.js +0 -2
- package/dist/core/web/public/next/assets/DevinStopDialog-CADdSqha.js.map +0 -1
- package/dist/core/web/public/next/assets/Dialog-BYIKNPcH.js +0 -2
- package/dist/core/web/public/next/assets/Dialog-BYIKNPcH.js.map +0 -1
- package/dist/core/web/public/next/assets/DiffPane-D_CC9a5x.js +0 -2
- package/dist/core/web/public/next/assets/DiffPane-D_CC9a5x.js.map +0 -1
- package/dist/core/web/public/next/assets/DiffViewer-DjtLl7ro.js +0 -2
- package/dist/core/web/public/next/assets/DiffViewer-DjtLl7ro.js.map +0 -1
- package/dist/core/web/public/next/assets/DockHost-BHbosAjM.js +0 -2
- package/dist/core/web/public/next/assets/DockHost-BHbosAjM.js.map +0 -1
- package/dist/core/web/public/next/assets/EmptyState-BEXDoNZd.js +0 -2
- package/dist/core/web/public/next/assets/EmptyState-BEXDoNZd.js.map +0 -1
- package/dist/core/web/public/next/assets/Epistemic-BPBAmLNh.js +0 -2
- package/dist/core/web/public/next/assets/Epistemic-BPBAmLNh.js.map +0 -1
- package/dist/core/web/public/next/assets/EvidenceTimeline-D2nuo6Oo.js +0 -2
- package/dist/core/web/public/next/assets/EvidenceTimeline-D2nuo6Oo.js.map +0 -1
- package/dist/core/web/public/next/assets/FilesPane-BQBcWyxr.js +0 -2
- package/dist/core/web/public/next/assets/FilesPane-BQBcWyxr.js.map +0 -1
- package/dist/core/web/public/next/assets/FleetScreen-YXDuVwKd.js +0 -2
- package/dist/core/web/public/next/assets/FleetScreen-YXDuVwKd.js.map +0 -1
- package/dist/core/web/public/next/assets/FleetSection-D2M7u9zG.js +0 -5
- package/dist/core/web/public/next/assets/FleetSection-D2M7u9zG.js.map +0 -1
- package/dist/core/web/public/next/assets/Funnel-rnPUaoN7.js +0 -2
- package/dist/core/web/public/next/assets/Funnel-rnPUaoN7.js.map +0 -1
- package/dist/core/web/public/next/assets/GearTray-Cc14h572.js +0 -2
- package/dist/core/web/public/next/assets/GearTray-Cc14h572.js.map +0 -1
- package/dist/core/web/public/next/assets/GitDialogs-BSTlyNJR.js +0 -2
- package/dist/core/web/public/next/assets/GitDialogs-BSTlyNJR.js.map +0 -1
- package/dist/core/web/public/next/assets/GrowthSection-BK63EJn9.js +0 -3
- package/dist/core/web/public/next/assets/GrowthSection-BK63EJn9.js.map +0 -1
- package/dist/core/web/public/next/assets/HandoffDialog-DD4M-C7v.js +0 -2
- package/dist/core/web/public/next/assets/HandoffDialog-DD4M-C7v.js.map +0 -1
- package/dist/core/web/public/next/assets/HomeBody-OEhTpkk9.js +0 -3
- package/dist/core/web/public/next/assets/HomeBody-OEhTpkk9.js.map +0 -1
- package/dist/core/web/public/next/assets/HomeSeats-CJCxRUlD.js +0 -2
- package/dist/core/web/public/next/assets/HomeSeats-CJCxRUlD.js.map +0 -1
- package/dist/core/web/public/next/assets/Input-BEF-ScuG.js +0 -2
- package/dist/core/web/public/next/assets/Input-BEF-ScuG.js.map +0 -1
- package/dist/core/web/public/next/assets/LaunchDialog-CERI717u.js +0 -9
- package/dist/core/web/public/next/assets/LaunchDialog-CERI717u.js.map +0 -1
- package/dist/core/web/public/next/assets/LeaderCard-3P95vgVU.js +0 -2
- package/dist/core/web/public/next/assets/LeaderCard-3P95vgVU.js.map +0 -1
- package/dist/core/web/public/next/assets/LeaderConversation-DjZS2PrX.js +0 -3
- package/dist/core/web/public/next/assets/LeaderConversation-DjZS2PrX.js.map +0 -1
- package/dist/core/web/public/next/assets/LeaderScreen-Dw5jDfWv.js +0 -2
- package/dist/core/web/public/next/assets/LeaderScreen-Dw5jDfWv.js.map +0 -1
- package/dist/core/web/public/next/assets/LessonsPanel-Wy6TVWEv.js +0 -2
- package/dist/core/web/public/next/assets/LessonsPanel-Wy6TVWEv.js.map +0 -1
- package/dist/core/web/public/next/assets/LiveTimer-c18lVIBC.js +0 -2
- package/dist/core/web/public/next/assets/LiveTimer-c18lVIBC.js.map +0 -1
- package/dist/core/web/public/next/assets/LocalSeatBadge-BfUUuXE5.js +0 -2
- package/dist/core/web/public/next/assets/LocalSeatBadge-BfUUuXE5.js.map +0 -1
- package/dist/core/web/public/next/assets/MatrixHeatmap-DTOumwCS.js +0 -2
- package/dist/core/web/public/next/assets/MatrixHeatmap-DTOumwCS.js.map +0 -1
- package/dist/core/web/public/next/assets/McpSection-D9eJislZ.js +0 -2
- package/dist/core/web/public/next/assets/McpSection-D9eJislZ.js.map +0 -1
- package/dist/core/web/public/next/assets/MessageMarkdown-Dkw4V24c.js +0 -3
- package/dist/core/web/public/next/assets/MessageMarkdown-Dkw4V24c.js.map +0 -1
- package/dist/core/web/public/next/assets/MessageMarkdownRenderer-VOSfkJpd.js +0 -72
- package/dist/core/web/public/next/assets/MessageMarkdownRenderer-VOSfkJpd.js.map +0 -1
- package/dist/core/web/public/next/assets/Meter-dMqKBaVV.js +0 -2
- package/dist/core/web/public/next/assets/Meter-dMqKBaVV.js.map +0 -1
- package/dist/core/web/public/next/assets/MicButton-92I_NsaT.js +0 -2
- package/dist/core/web/public/next/assets/MicButton-92I_NsaT.js.map +0 -1
- package/dist/core/web/public/next/assets/MindSection-CaGckJiR.js +0 -3
- package/dist/core/web/public/next/assets/MindSection-CaGckJiR.js.map +0 -1
- package/dist/core/web/public/next/assets/MobileComposer-BOFWmkku.js +0 -2
- package/dist/core/web/public/next/assets/MobileComposer-BOFWmkku.js.map +0 -1
- package/dist/core/web/public/next/assets/MobileGuardSheet-CY3Iulte.js +0 -2
- package/dist/core/web/public/next/assets/MobileGuardSheet-CY3Iulte.js.map +0 -1
- package/dist/core/web/public/next/assets/MobileRuntime-C-GtV4jT.js +0 -3
- package/dist/core/web/public/next/assets/MobileRuntime-C-GtV4jT.js.map +0 -1
- package/dist/core/web/public/next/assets/MoreScreen-BaH8iEnb.js +0 -2
- package/dist/core/web/public/next/assets/MoreScreen-BaH8iEnb.js.map +0 -1
- package/dist/core/web/public/next/assets/MultiModelBar-7DHuXGht.js +0 -7
- package/dist/core/web/public/next/assets/MultiModelBar-7DHuXGht.js.map +0 -1
- package/dist/core/web/public/next/assets/MutationTokenDialog-D522NXsm.js +0 -2
- package/dist/core/web/public/next/assets/MutationTokenDialog-D522NXsm.js.map +0 -1
- package/dist/core/web/public/next/assets/NeedsYouDrawer-6ud1RHOU.js +0 -3
- package/dist/core/web/public/next/assets/NeedsYouDrawer-6ud1RHOU.js.map +0 -1
- package/dist/core/web/public/next/assets/NeedsYouList-E-yy-xKE.js +0 -2
- package/dist/core/web/public/next/assets/NeedsYouList-E-yy-xKE.js.map +0 -1
- package/dist/core/web/public/next/assets/NeedsYouScreen-D13Q7iU8.js +0 -2
- package/dist/core/web/public/next/assets/NeedsYouScreen-D13Q7iU8.js.map +0 -1
- package/dist/core/web/public/next/assets/NewAgentScreen-BLtU1u-d.js +0 -2
- package/dist/core/web/public/next/assets/NewAgentScreen-BLtU1u-d.js.map +0 -1
- package/dist/core/web/public/next/assets/NewChatDialog-BL15LCaj.js +0 -4
- package/dist/core/web/public/next/assets/NewChatDialog-BL15LCaj.js.map +0 -1
- package/dist/core/web/public/next/assets/OnboardingFlow-7LRC7FlX.js +0 -3
- package/dist/core/web/public/next/assets/OnboardingFlow-7LRC7FlX.js.map +0 -1
- package/dist/core/web/public/next/assets/OnboardingGate-DRlv8QZ5.js +0 -3
- package/dist/core/web/public/next/assets/OnboardingGate-DRlv8QZ5.js.map +0 -1
- package/dist/core/web/public/next/assets/PlaybooksSection-D_uQ-NB3.js +0 -9
- package/dist/core/web/public/next/assets/PlaybooksSection-D_uQ-NB3.js.map +0 -1
- package/dist/core/web/public/next/assets/PreviewPane-DubyNi8H.js +0 -2
- package/dist/core/web/public/next/assets/PreviewPane-DubyNi8H.js.map +0 -1
- package/dist/core/web/public/next/assets/ProviderLogo-CWrojWjI.js +0 -2
- package/dist/core/web/public/next/assets/ProviderLogo-CWrojWjI.js.map +0 -1
- package/dist/core/web/public/next/assets/RailStatus-xjOcjL0v.js +0 -2
- package/dist/core/web/public/next/assets/RailStatus-xjOcjL0v.js.map +0 -1
- package/dist/core/web/public/next/assets/ReasoningPane-M7ZfvEc5.js +0 -2
- package/dist/core/web/public/next/assets/ReasoningPane-M7ZfvEc5.js.map +0 -1
- package/dist/core/web/public/next/assets/ReasoningSheet-RLLj2oys.js +0 -2
- package/dist/core/web/public/next/assets/ReasoningSheet-RLLj2oys.js.map +0 -1
- package/dist/core/web/public/next/assets/RefreshIndicator-CEMRNruu.js +0 -2
- package/dist/core/web/public/next/assets/RefreshIndicator-CEMRNruu.js.map +0 -1
- package/dist/core/web/public/next/assets/RemoteMobileApp-BcXsVw0z.js +0 -2
- package/dist/core/web/public/next/assets/RemoteMobileApp-BcXsVw0z.js.map +0 -1
- package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-BC_Q_i0I.js +0 -7
- package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-BC_Q_i0I.js.map +0 -1
- package/dist/core/web/public/next/assets/ResourcesChrome-CPcTYvZR.js +0 -3
- package/dist/core/web/public/next/assets/ResourcesChrome-CPcTYvZR.js.map +0 -1
- package/dist/core/web/public/next/assets/ResourcesDrawer-C6VzGCSv.js +0 -3
- package/dist/core/web/public/next/assets/ResourcesDrawer-C6VzGCSv.js.map +0 -1
- package/dist/core/web/public/next/assets/RouteErrorBoundary-Cc9GsjZz.js +0 -2
- package/dist/core/web/public/next/assets/RouteErrorBoundary-Cc9GsjZz.js.map +0 -1
- package/dist/core/web/public/next/assets/RunInCloudAction-P_hDsqjX.js +0 -2
- package/dist/core/web/public/next/assets/RunInCloudAction-P_hDsqjX.js.map +0 -1
- package/dist/core/web/public/next/assets/RunInDevinAction-CfNpQCP3.js +0 -2
- package/dist/core/web/public/next/assets/RunInDevinAction-CfNpQCP3.js.map +0 -1
- package/dist/core/web/public/next/assets/ScreenHost-BBYihlNQ.js +0 -3
- package/dist/core/web/public/next/assets/ScreenHost-BBYihlNQ.js.map +0 -1
- package/dist/core/web/public/next/assets/SeatSelector-DSd_pxg2.js +0 -3
- package/dist/core/web/public/next/assets/SeatSelector-DSd_pxg2.js.map +0 -1
- package/dist/core/web/public/next/assets/Segmented-CtwuFlbY.js +0 -2
- package/dist/core/web/public/next/assets/Segmented-CtwuFlbY.js.map +0 -1
- package/dist/core/web/public/next/assets/Select-zXMdgblm.js +0 -2
- package/dist/core/web/public/next/assets/Select-zXMdgblm.js.map +0 -1
- package/dist/core/web/public/next/assets/SessionGate-88QiSoXo.js +0 -2
- package/dist/core/web/public/next/assets/SessionGate-88QiSoXo.js.map +0 -1
- package/dist/core/web/public/next/assets/SessionInsightChip-CaPvisvI.js +0 -2
- package/dist/core/web/public/next/assets/SessionInsightChip-CaPvisvI.js.map +0 -1
- package/dist/core/web/public/next/assets/SessionSearch-Ch3veGxY.js +0 -2
- package/dist/core/web/public/next/assets/SessionSearch-Ch3veGxY.js.map +0 -1
- package/dist/core/web/public/next/assets/SettingsSection-DLSYZEFc.js +0 -2
- package/dist/core/web/public/next/assets/SettingsSection-DLSYZEFc.js.map +0 -1
- package/dist/core/web/public/next/assets/SetupChecklist-DFAVVLpJ.js +0 -2
- package/dist/core/web/public/next/assets/SetupChecklist-DFAVVLpJ.js.map +0 -1
- package/dist/core/web/public/next/assets/ShadowDecisions-Gtrbo4US.js +0 -3
- package/dist/core/web/public/next/assets/ShadowDecisions-Gtrbo4US.js.map +0 -1
- package/dist/core/web/public/next/assets/Sheet-D72WH4mP.js +0 -2
- package/dist/core/web/public/next/assets/Sheet-D72WH4mP.js.map +0 -1
- package/dist/core/web/public/next/assets/ShortcutsOverlay-DKetDlCR.js +0 -2
- package/dist/core/web/public/next/assets/ShortcutsOverlay-DKetDlCR.js.map +0 -1
- package/dist/core/web/public/next/assets/Sidebar-CqOJle0q.js +0 -3
- package/dist/core/web/public/next/assets/Sidebar-CqOJle0q.js.map +0 -1
- package/dist/core/web/public/next/assets/SkipToContent-C7UObcP2.js +0 -2
- package/dist/core/web/public/next/assets/SkipToContent-C7UObcP2.js.map +0 -1
- package/dist/core/web/public/next/assets/Slider-Bi5q-21C.js +0 -2
- package/dist/core/web/public/next/assets/Slider-Bi5q-21C.js.map +0 -1
- package/dist/core/web/public/next/assets/SourcesPane-D7Raaor0.js +0 -2
- package/dist/core/web/public/next/assets/SourcesPane-D7Raaor0.js.map +0 -1
- package/dist/core/web/public/next/assets/SourcesPanel-CCSdY5Os.js +0 -2
- package/dist/core/web/public/next/assets/SourcesPanel-CCSdY5Os.js.map +0 -1
- package/dist/core/web/public/next/assets/StatTile-BS_dzInS.js +0 -2
- package/dist/core/web/public/next/assets/StatTile-BS_dzInS.js.map +0 -1
- package/dist/core/web/public/next/assets/StatusBadge-CJbb9DhR.js +0 -2
- package/dist/core/web/public/next/assets/StatusBadge-CJbb9DhR.js.map +0 -1
- package/dist/core/web/public/next/assets/StepBand-Bfj1YYTl.js +0 -2
- package/dist/core/web/public/next/assets/StepBand-Bfj1YYTl.js.map +0 -1
- package/dist/core/web/public/next/assets/Surface-CV-NXGIM.js +0 -2
- package/dist/core/web/public/next/assets/Surface-CV-NXGIM.js.map +0 -1
- package/dist/core/web/public/next/assets/Swimlane-DbUp4tjD.js +0 -2
- package/dist/core/web/public/next/assets/Swimlane-DbUp4tjD.js.map +0 -1
- package/dist/core/web/public/next/assets/Switch-BtEo9Cku.js +0 -2
- package/dist/core/web/public/next/assets/Switch-BtEo9Cku.js.map +0 -1
- package/dist/core/web/public/next/assets/Tag-CMFqY2MP.js +0 -2
- package/dist/core/web/public/next/assets/Tag-CMFqY2MP.js.map +0 -1
- package/dist/core/web/public/next/assets/TerminalPane-BCjlhc3t.js +0 -26
- package/dist/core/web/public/next/assets/TerminalPane-BCjlhc3t.js.map +0 -1
- package/dist/core/web/public/next/assets/TerminalPane-DIwGSCA9.js +0 -3
- package/dist/core/web/public/next/assets/TerminalPane-DIwGSCA9.js.map +0 -1
- package/dist/core/web/public/next/assets/ThinkingBlock-Db8qnuKz.js +0 -2
- package/dist/core/web/public/next/assets/ThinkingBlock-Db8qnuKz.js.map +0 -1
- package/dist/core/web/public/next/assets/UniverseConsoleApp-ksreONXM.js +0 -2
- package/dist/core/web/public/next/assets/UniverseConsoleApp-ksreONXM.js.map +0 -1
- package/dist/core/web/public/next/assets/UniverseView-CfT9Dsl7.js +0 -9
- package/dist/core/web/public/next/assets/UniverseView-CfT9Dsl7.js.map +0 -1
- package/dist/core/web/public/next/assets/UsageSection-DypcdQys.js +0 -3
- package/dist/core/web/public/next/assets/UsageSection-DypcdQys.js.map +0 -1
- package/dist/core/web/public/next/assets/UsePlaybookAction-Bxwqrpwe.js +0 -2
- package/dist/core/web/public/next/assets/UsePlaybookAction-Bxwqrpwe.js.map +0 -1
- package/dist/core/web/public/next/assets/VerseConsoleApp-kFOEmnGC.js +0 -3
- package/dist/core/web/public/next/assets/VerseConsoleApp-kFOEmnGC.js.map +0 -1
- package/dist/core/web/public/next/assets/VerseMobileApp-BTGF5yuZ.js +0 -3
- package/dist/core/web/public/next/assets/VerseMobileApp-BTGF5yuZ.js.map +0 -1
- package/dist/core/web/public/next/assets/VerseShared-_pMXKs8m.js +0 -2
- package/dist/core/web/public/next/assets/VerseShared-_pMXKs8m.js.map +0 -1
- package/dist/core/web/public/next/assets/VoiceHud-B_hiHfnQ.js +0 -2
- package/dist/core/web/public/next/assets/VoiceHud-B_hiHfnQ.js.map +0 -1
- package/dist/core/web/public/next/assets/VoiceInput-B7yrGchr.js +0 -2
- package/dist/core/web/public/next/assets/VoiceInput-B7yrGchr.js.map +0 -1
- package/dist/core/web/public/next/assets/WikiSection-BXu4aZyr.js +0 -2
- package/dist/core/web/public/next/assets/WikiSection-BXu4aZyr.js.map +0 -1
- package/dist/core/web/public/next/assets/Workspace-BYT3iuNM.js +0 -6
- package/dist/core/web/public/next/assets/Workspace-BYT3iuNM.js.map +0 -1
- package/dist/core/web/public/next/assets/actions-CyO4R-IO.js +0 -2
- package/dist/core/web/public/next/assets/actions-CyO4R-IO.js.map +0 -1
- package/dist/core/web/public/next/assets/agent-tools-client-FgVNokGh.js +0 -2
- package/dist/core/web/public/next/assets/agent-tools-client-FgVNokGh.js.map +0 -1
- package/dist/core/web/public/next/assets/agent-transcript-model-CRa_I3eR.js +0 -7
- package/dist/core/web/public/next/assets/agent-transcript-model-CRa_I3eR.js.map +0 -1
- package/dist/core/web/public/next/assets/agents-focus-D2hd-RNJ.js +0 -2
- package/dist/core/web/public/next/assets/agents-focus-D2hd-RNJ.js.map +0 -1
- package/dist/core/web/public/next/assets/app-version-DDlXX8-W.js +0 -2
- package/dist/core/web/public/next/assets/app-version-DDlXX8-W.js.map +0 -1
- package/dist/core/web/public/next/assets/apps-model-DLQgiczq.js +0 -2
- package/dist/core/web/public/next/assets/apps-model-DLQgiczq.js.map +0 -1
- package/dist/core/web/public/next/assets/ask-seat-zMpqJABI.js +0 -2
- package/dist/core/web/public/next/assets/ask-seat-zMpqJABI.js.map +0 -1
- package/dist/core/web/public/next/assets/authority-model-BvLFgPaX.js +0 -2
- package/dist/core/web/public/next/assets/authority-model-BvLFgPaX.js.map +0 -1
- package/dist/core/web/public/next/assets/automations-focus-zqI9oIl8.js +0 -2
- package/dist/core/web/public/next/assets/automations-focus-zqI9oIl8.js.map +0 -1
- package/dist/core/web/public/next/assets/budget-model-CKd0d1Cj.js +0 -2
- package/dist/core/web/public/next/assets/budget-model-CKd0d1Cj.js.map +0 -1
- package/dist/core/web/public/next/assets/budget-queries-q7mCG9Ek.js +0 -2
- package/dist/core/web/public/next/assets/budget-queries-q7mCG9Ek.js.map +0 -1
- package/dist/core/web/public/next/assets/capacity-strip-model-pdIEweaZ.js +0 -2
- package/dist/core/web/public/next/assets/capacity-strip-model-pdIEweaZ.js.map +0 -1
- package/dist/core/web/public/next/assets/charts-D3I0q4hG.js +0 -2
- package/dist/core/web/public/next/assets/charts-D3I0q4hG.js.map +0 -1
- package/dist/core/web/public/next/assets/chat-pane-data-DIDV7uIU.js +0 -2
- package/dist/core/web/public/next/assets/chat-pane-data-DIDV7uIU.js.map +0 -1
- package/dist/core/web/public/next/assets/checkpoint-queries-DjrDEsN-.js +0 -2
- package/dist/core/web/public/next/assets/checkpoint-queries-DjrDEsN-.js.map +0 -1
- package/dist/core/web/public/next/assets/cloud-model-DuboHWPT.js +0 -2
- package/dist/core/web/public/next/assets/cloud-model-DuboHWPT.js.map +0 -1
- package/dist/core/web/public/next/assets/cloud-queries-DQF1a_R-.js +0 -2
- package/dist/core/web/public/next/assets/cloud-queries-DQF1a_R-.js.map +0 -1
- package/dist/core/web/public/next/assets/command-catalog-BzHSIzIS.js +0 -2
- package/dist/core/web/public/next/assets/command-catalog-BzHSIzIS.js.map +0 -1
- package/dist/core/web/public/next/assets/composer-queries-BEYuD6Qr.js +0 -2
- package/dist/core/web/public/next/assets/composer-queries-BEYuD6Qr.js.map +0 -1
- package/dist/core/web/public/next/assets/composer-state-B4KVc2ZZ.js +0 -2
- package/dist/core/web/public/next/assets/composer-state-B4KVc2ZZ.js.map +0 -1
- package/dist/core/web/public/next/assets/connectivity-Svn7iy2K.js +0 -2
- package/dist/core/web/public/next/assets/connectivity-Svn7iy2K.js.map +0 -1
- package/dist/core/web/public/next/assets/context-model-C9EIuPJ_.js +0 -2
- package/dist/core/web/public/next/assets/context-model-C9EIuPJ_.js.map +0 -1
- package/dist/core/web/public/next/assets/context-model-DU3OPiBC.js +0 -3
- package/dist/core/web/public/next/assets/context-model-DU3OPiBC.js.map +0 -1
- package/dist/core/web/public/next/assets/context-queries-Cgb_XvRv.js +0 -2
- package/dist/core/web/public/next/assets/context-queries-Cgb_XvRv.js.map +0 -1
- package/dist/core/web/public/next/assets/control-queries-Clgsy_eH.js +0 -2
- package/dist/core/web/public/next/assets/control-queries-Clgsy_eH.js.map +0 -1
- package/dist/core/web/public/next/assets/copy-setup-C-hDt9sS.js +0 -2
- package/dist/core/web/public/next/assets/copy-setup-C-hDt9sS.js.map +0 -1
- package/dist/core/web/public/next/assets/deep-link-Cgvchdy7.js +0 -2
- package/dist/core/web/public/next/assets/deep-link-Cgvchdy7.js.map +0 -1
- package/dist/core/web/public/next/assets/device-permissions-JmqkyrDw.js +0 -2
- package/dist/core/web/public/next/assets/device-permissions-JmqkyrDw.js.map +0 -1
- package/dist/core/web/public/next/assets/devin-queries-DKgeD4_S.js +0 -2
- package/dist/core/web/public/next/assets/devin-queries-DKgeD4_S.js.map +0 -1
- package/dist/core/web/public/next/assets/dock-icons-CRHjXBWm.js +0 -2
- package/dist/core/web/public/next/assets/dock-icons-CRHjXBWm.js.map +0 -1
- package/dist/core/web/public/next/assets/dock-panes-C98u13Bi.js +0 -2
- package/dist/core/web/public/next/assets/dock-panes-C98u13Bi.js.map +0 -1
- package/dist/core/web/public/next/assets/fleet-control-queries-BLoc5Gza.js +0 -2
- package/dist/core/web/public/next/assets/fleet-control-queries-BLoc5Gza.js.map +0 -1
- package/dist/core/web/public/next/assets/fleet-model-CPTadBFK.js +0 -2
- package/dist/core/web/public/next/assets/fleet-model-CPTadBFK.js.map +0 -1
- package/dist/core/web/public/next/assets/fleet-queries-69WuY-dt.js +0 -2
- package/dist/core/web/public/next/assets/fleet-queries-69WuY-dt.js.map +0 -1
- package/dist/core/web/public/next/assets/fleet-state-CCdBRK-m.js +0 -3
- package/dist/core/web/public/next/assets/fleet-state-CCdBRK-m.js.map +0 -1
- package/dist/core/web/public/next/assets/focus-trap-C8MiYlLZ.js +0 -2
- package/dist/core/web/public/next/assets/focus-trap-C8MiYlLZ.js.map +0 -1
- package/dist/core/web/public/next/assets/format-CcEKjUou.js +0 -2
- package/dist/core/web/public/next/assets/format-CcEKjUou.js.map +0 -1
- package/dist/core/web/public/next/assets/git-model-DL3MwN93.js +0 -5
- package/dist/core/web/public/next/assets/git-model-DL3MwN93.js.map +0 -1
- package/dist/core/web/public/next/assets/global-BWc2NPzv.js +0 -3
- package/dist/core/web/public/next/assets/global-BWc2NPzv.js.map +0 -1
- package/dist/core/web/public/next/assets/guarded-action-BK2_U5ho.js +0 -3
- package/dist/core/web/public/next/assets/guarded-action-BK2_U5ho.js.map +0 -1
- package/dist/core/web/public/next/assets/guarded-runners-Q0UkoY3H.js +0 -2
- package/dist/core/web/public/next/assets/guarded-runners-Q0UkoY3H.js.map +0 -1
- package/dist/core/web/public/next/assets/headroom-CP99UxyV.js +0 -2
- package/dist/core/web/public/next/assets/headroom-CP99UxyV.js.map +0 -1
- package/dist/core/web/public/next/assets/health-queries-D8TwNTDQ.js +0 -2
- package/dist/core/web/public/next/assets/health-queries-D8TwNTDQ.js.map +0 -1
- package/dist/core/web/public/next/assets/icons-U34oiN9M.js +0 -2
- package/dist/core/web/public/next/assets/icons-U34oiN9M.js.map +0 -1
- package/dist/core/web/public/next/assets/index-BbDqdepe.js +0 -11
- package/dist/core/web/public/next/assets/index-BbDqdepe.js.map +0 -1
- package/dist/core/web/public/next/assets/jev-queries-CiQDnM5r.js +0 -2
- package/dist/core/web/public/next/assets/jev-queries-CiQDnM5r.js.map +0 -1
- package/dist/core/web/public/next/assets/ladder-queries-Cf64JB04.js +0 -2
- package/dist/core/web/public/next/assets/ladder-queries-Cf64JB04.js.map +0 -1
- package/dist/core/web/public/next/assets/leader-focus-azN19kfO.js +0 -2
- package/dist/core/web/public/next/assets/leader-focus-azN19kfO.js.map +0 -1
- package/dist/core/web/public/next/assets/live-model-DHX_2gOu.js +0 -2
- package/dist/core/web/public/next/assets/live-model-DHX_2gOu.js.map +0 -1
- package/dist/core/web/public/next/assets/mind.module-BJpuH2JT.js +0 -2
- package/dist/core/web/public/next/assets/mind.module-BJpuH2JT.js.map +0 -1
- package/dist/core/web/public/next/assets/mobile-actions-CvGouAAH.js +0 -2
- package/dist/core/web/public/next/assets/mobile-actions-CvGouAAH.js.map +0 -1
- package/dist/core/web/public/next/assets/mobile-toast-C_UP13GQ.js +0 -2
- package/dist/core/web/public/next/assets/mobile-toast-C_UP13GQ.js.map +0 -1
- package/dist/core/web/public/next/assets/multimodel-flows-C377w9oZ.js +0 -7
- package/dist/core/web/public/next/assets/multimodel-flows-C377w9oZ.js.map +0 -1
- package/dist/core/web/public/next/assets/multimodel-queries-_Y1QXAqq.js +0 -2
- package/dist/core/web/public/next/assets/multimodel-queries-_Y1QXAqq.js.map +0 -1
- package/dist/core/web/public/next/assets/mutations-DL4u2kRQ.js +0 -2
- package/dist/core/web/public/next/assets/mutations-DL4u2kRQ.js.map +0 -1
- package/dist/core/web/public/next/assets/nav-CM-mJcSq.js +0 -2
- package/dist/core/web/public/next/assets/nav-CM-mJcSq.js.map +0 -1
- package/dist/core/web/public/next/assets/needs-you-actions-DF2zEltF.js +0 -2
- package/dist/core/web/public/next/assets/needs-you-actions-DF2zEltF.js.map +0 -1
- package/dist/core/web/public/next/assets/needs-you-model-DqmU5YOe.js +0 -2
- package/dist/core/web/public/next/assets/needs-you-model-DqmU5YOe.js.map +0 -1
- package/dist/core/web/public/next/assets/open-terminal-BAnwAOoA.js +0 -2
- package/dist/core/web/public/next/assets/open-terminal-BAnwAOoA.js.map +0 -1
- package/dist/core/web/public/next/assets/open-terminal-request-f5_ItEpF.js +0 -2
- package/dist/core/web/public/next/assets/open-terminal-request-f5_ItEpF.js.map +0 -1
- package/dist/core/web/public/next/assets/overnight-queries-BP6viiM5.js +0 -2
- package/dist/core/web/public/next/assets/overnight-queries-BP6viiM5.js.map +0 -1
- package/dist/core/web/public/next/assets/palette-handoff-Bmq98lDl.js +0 -2
- package/dist/core/web/public/next/assets/palette-handoff-Bmq98lDl.js.map +0 -1
- package/dist/core/web/public/next/assets/panes-BjUzIDw6.js +0 -3
- package/dist/core/web/public/next/assets/panes-BjUzIDw6.js.map +0 -1
- package/dist/core/web/public/next/assets/path-display-HyxETV-f.js +0 -2
- package/dist/core/web/public/next/assets/path-display-HyxETV-f.js.map +0 -1
- package/dist/core/web/public/next/assets/playbook-composer-DwuBBP4I.js +0 -2
- package/dist/core/web/public/next/assets/playbook-composer-DwuBBP4I.js.map +0 -1
- package/dist/core/web/public/next/assets/playbook-focus-B9xzeUMw.js +0 -2
- package/dist/core/web/public/next/assets/playbook-focus-B9xzeUMw.js.map +0 -1
- package/dist/core/web/public/next/assets/playbooks-queries-C8j1Aswo.js +0 -2
- package/dist/core/web/public/next/assets/playbooks-queries-C8j1Aswo.js.map +0 -1
- package/dist/core/web/public/next/assets/preloaded-CLDUOHXJ.js +0 -2
- package/dist/core/web/public/next/assets/preloaded-CLDUOHXJ.js.map +0 -1
- package/dist/core/web/public/next/assets/primitives-BEXDE-HP.js +0 -1
- package/dist/core/web/public/next/assets/pwa-lVT_VRkK.js +0 -2
- package/dist/core/web/public/next/assets/pwa-lVT_VRkK.js.map +0 -1
- package/dist/core/web/public/next/assets/queries-T7ZUVqyA.js +0 -2
- package/dist/core/web/public/next/assets/queries-T7ZUVqyA.js.map +0 -1
- package/dist/core/web/public/next/assets/reasoning-pref-CWEri5xB.js +0 -2
- package/dist/core/web/public/next/assets/reasoning-pref-CWEri5xB.js.map +0 -1
- package/dist/core/web/public/next/assets/remote-session-BPULIfdG.js +0 -3
- package/dist/core/web/public/next/assets/remote-session-BPULIfdG.js.map +0 -1
- package/dist/core/web/public/next/assets/resolved-store-Ba-W6Uhy.js +0 -2
- package/dist/core/web/public/next/assets/resolved-store-Ba-W6Uhy.js.map +0 -1
- package/dist/core/web/public/next/assets/resources-queries-CKyXyaDY.js +0 -2
- package/dist/core/web/public/next/assets/resources-queries-CKyXyaDY.js.map +0 -1
- package/dist/core/web/public/next/assets/reveal-anchor-Djk1vGLl.js +0 -2
- package/dist/core/web/public/next/assets/reveal-anchor-Djk1vGLl.js.map +0 -1
- package/dist/core/web/public/next/assets/seat-readiness-CvEmMBol.js +0 -2
- package/dist/core/web/public/next/assets/seat-readiness-CvEmMBol.js.map +0 -1
- package/dist/core/web/public/next/assets/seat-subscription-BClqZwau.js +0 -2
- package/dist/core/web/public/next/assets/seat-subscription-BClqZwau.js.map +0 -1
- package/dist/core/web/public/next/assets/sheet-D0ciShoy.js +0 -2
- package/dist/core/web/public/next/assets/sheet-D0ciShoy.js.map +0 -1
- package/dist/core/web/public/next/assets/sidebar-model-BZ9Wh1lR.js +0 -2
- package/dist/core/web/public/next/assets/sidebar-model-BZ9Wh1lR.js.map +0 -1
- package/dist/core/web/public/next/assets/slots-m3L6Ints.js +0 -3
- package/dist/core/web/public/next/assets/slots-m3L6Ints.js.map +0 -1
- package/dist/core/web/public/next/assets/sources-queries-DeIlxb3A.js +0 -4
- package/dist/core/web/public/next/assets/sources-queries-DeIlxb3A.js.map +0 -1
- package/dist/core/web/public/next/assets/sse-CK65-Cun.js +0 -2
- package/dist/core/web/public/next/assets/sse-CK65-Cun.js.map +0 -1
- package/dist/core/web/public/next/assets/surface-data-DoN8peNV.js +0 -2
- package/dist/core/web/public/next/assets/surface-data-DoN8peNV.js.map +0 -1
- package/dist/core/web/public/next/assets/surface-prefetch-CVNIptSl.js +0 -2
- package/dist/core/web/public/next/assets/surface-prefetch-CVNIptSl.js.map +0 -1
- package/dist/core/web/public/next/assets/tasks-model-BueAhEAf.js +0 -2
- package/dist/core/web/public/next/assets/tasks-model-BueAhEAf.js.map +0 -1
- package/dist/core/web/public/next/assets/terminal-client-DO0eRhRi.js +0 -2
- package/dist/core/web/public/next/assets/terminal-client-DO0eRhRi.js.map +0 -1
- package/dist/core/web/public/next/assets/terminal-icons-COMoAiDd.js +0 -2
- package/dist/core/web/public/next/assets/terminal-icons-COMoAiDd.js.map +0 -1
- package/dist/core/web/public/next/assets/terminal-view-DkVXx7Xk.js +0 -6
- package/dist/core/web/public/next/assets/terminal-view-DkVXx7Xk.js.map +0 -1
- package/dist/core/web/public/next/assets/thread-data-Dq7QugaD.js +0 -2
- package/dist/core/web/public/next/assets/thread-data-Dq7QugaD.js.map +0 -1
- package/dist/core/web/public/next/assets/ui-parts-2JLq2ZSq.js +0 -2
- package/dist/core/web/public/next/assets/ui-parts-2JLq2ZSq.js.map +0 -1
- package/dist/core/web/public/next/assets/usage-queries-CDKUE4e0.js +0 -2
- package/dist/core/web/public/next/assets/usage-queries-CDKUE4e0.js.map +0 -1
- package/dist/core/web/public/next/assets/use-chat-activity-BaNWmI2A.js +0 -2
- package/dist/core/web/public/next/assets/use-chat-activity-BaNWmI2A.js.map +0 -1
- package/dist/core/web/public/next/assets/use-guarded-action-D4m4Mlzr.js +0 -2
- package/dist/core/web/public/next/assets/use-guarded-action-D4m4Mlzr.js.map +0 -1
- package/dist/core/web/public/next/assets/use-ticker-PQ_oYxn5.js +0 -2
- package/dist/core/web/public/next/assets/use-ticker-PQ_oYxn5.js.map +0 -1
- package/dist/core/web/public/next/assets/use-token-gate-_JPjMD5z.js +0 -2
- package/dist/core/web/public/next/assets/use-token-gate-_JPjMD5z.js.map +0 -1
- package/dist/core/web/public/next/assets/useAutoSeat-CkyqgwX9.js +0 -2
- package/dist/core/web/public/next/assets/useAutoSeat-CkyqgwX9.js.map +0 -1
- package/dist/core/web/public/next/assets/useOnboarding-3r8T1GBP.js +0 -2
- package/dist/core/web/public/next/assets/useOnboarding-3r8T1GBP.js.map +0 -1
- package/dist/core/web/public/next/assets/useSeatHealth-C08b9zut.js +0 -2
- package/dist/core/web/public/next/assets/useSeatHealth-C08b9zut.js.map +0 -1
- package/dist/core/web/public/next/assets/useSeatsRefresh-BGsdylUl.js +0 -2
- package/dist/core/web/public/next/assets/useSeatsRefresh-BGsdylUl.js.map +0 -1
- package/dist/core/web/public/next/assets/useVerseSession-0MnfpcHg.js +0 -2
- package/dist/core/web/public/next/assets/useVerseSession-0MnfpcHg.js.map +0 -1
- package/dist/core/web/public/next/assets/useVerseTranscript-B6wLDOv8.js +0 -2
- package/dist/core/web/public/next/assets/useVerseTranscript-B6wLDOv8.js.map +0 -1
- package/dist/core/web/public/next/assets/verse-bootstrap-query-BR5ypA8b.js +0 -2
- package/dist/core/web/public/next/assets/verse-bootstrap-query-BR5ypA8b.js.map +0 -1
- package/dist/core/web/public/next/assets/verse-icons-BQxBZk9k.js +0 -2
- package/dist/core/web/public/next/assets/verse-icons-BQxBZk9k.js.map +0 -1
- package/dist/core/web/public/next/assets/verse-model-CkF3q2IH.js +0 -2
- package/dist/core/web/public/next/assets/verse-model-CkF3q2IH.js.map +0 -1
- package/dist/core/web/public/next/assets/warmup-CqTK8yIn.js +0 -3
- package/dist/core/web/public/next/assets/warmup-CqTK8yIn.js.map +0 -1
- package/dist/core/web/public/next/assets/why-seat-model-Dh4-Ty9n.js +0 -2
- package/dist/core/web/public/next/assets/why-seat-model-Dh4-Ty9n.js.map +0 -1
- package/dist/core/web/public/next/assets/wiki-focus-CisQb_pM.js +0 -2
- package/dist/core/web/public/next/assets/wiki-focus-CisQb_pM.js.map +0 -1
- package/dist/core/web/public/next/assets/workspace-model-DRGckE8q.js +0 -2
- package/dist/core/web/public/next/assets/workspace-model-DRGckE8q.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentsSection-D5mKoOhH.js","names":[],"sources":["../../../../../../src/web-ui/routes/verse/agents/agents-model.ts","../../../../../../src/web-ui/routes/verse/agents/AgentDetails.tsx","../../../../../../src/web-ui/routes/verse/agents/NewAgentDialog.tsx","../../../../../../src/web-ui/routes/verse/agents/AgentsBoard.tsx","../../../../../../src/web-ui/routes/verse/sections/AgentsSection.tsx"],"sourcesContent":["/**\n * routes/verse/agents/agents-model.ts — the Agents board's pure half: columns,\n * keyboard movement, filters, labels, the seat roster for \"same task on N\n * seats\", and the spawn form's validation. No React, no fetch — table-tested.\n */\nimport {\n AGENT_COLUMNS,\n type AgentCard,\n type AgentColumn,\n type AgentSpend,\n} from '../../../../core/verse/agents/types.js';\nimport type { VerseSeat } from '../../../../core/verse/types.js';\nimport { groupSeats, seatUnavailableReason } from '../verse-model.js';\n\nexport type BoardColumns = Record<AgentColumn, AgentCard[]>;\n\nexport interface BoardFilter {\n repo: string | null;\n query: string;\n /** Hide Done older than this many ms (null = show every Done card). */\n doneWithinMs: number | null;\n}\n\nexport const DEFAULT_FILTER: BoardFilter = { repo: null, query: '', doneWithinMs: 3 * 24 * 60 * 60 * 1000 };\n\nexport function filterCards(cards: readonly AgentCard[], filter: BoardFilter, now: number): AgentCard[] {\n const q = filter.query.trim().toLowerCase();\n return cards.filter((c) => {\n if (filter.repo && c.repo !== filter.repo) return false;\n if (q && ![c.title, c.repo ?? '', c.branch ?? '', c.model ?? '', c.seatId ?? '', c.reasonText].some((s) => s.toLowerCase().includes(q))) return false;\n if (c.column === 'done' && filter.doneWithinMs !== null && !c.pinned) {\n const t = Date.parse(c.updatedAt);\n if (Number.isFinite(t) && now - t > filter.doneWithinMs) return false;\n }\n return true;\n });\n}\n\nexport function groupByColumn(cards: readonly AgentCard[]): BoardColumns {\n const out: BoardColumns = { working: [], 'needs-you': [], review: [], done: [] };\n for (const c of cards) out[c.column].push(c);\n return out;\n}\n\nexport function reposOf(cards: readonly AgentCard[]): string[] {\n return [...new Set(cards.map((c) => c.repo).filter((r): r is string => Boolean(r)))].sort((a, b) => a.localeCompare(b));\n}\n\n// ---------------------------------------------------------------------------\n// Keyboard movement: ↑/↓ (j/k) within a column, ←/→ (h/l) across columns\n// ---------------------------------------------------------------------------\n\nexport interface BoardCursor {\n column: AgentColumn;\n index: number;\n}\n\nexport type MoveDirection = 'up' | 'down' | 'left' | 'right' | 'first' | 'last';\n\n/** The next cursor. Empty columns are skipped sideways; the row is clamped to the new column. */\nexport function moveCursor(columns: BoardColumns, cursor: BoardCursor | null, dir: MoveDirection): BoardCursor | null {\n const nonEmpty = AGENT_COLUMNS.filter((c) => columns[c].length > 0);\n if (nonEmpty.length === 0) return null;\n if (!cursor || columns[cursor.column].length === 0) return { column: nonEmpty[0]!, index: 0 };\n const list = columns[cursor.column];\n const index = Math.min(cursor.index, list.length - 1);\n switch (dir) {\n case 'up':\n return { column: cursor.column, index: Math.max(0, index - 1) };\n case 'down':\n return { column: cursor.column, index: Math.min(list.length - 1, index + 1) };\n case 'first':\n return { column: cursor.column, index: 0 };\n case 'last':\n return { column: cursor.column, index: list.length - 1 };\n case 'left':\n case 'right': {\n const at = nonEmpty.indexOf(cursor.column);\n const step = dir === 'left' ? -1 : 1;\n const nextColumn = nonEmpty[at + step];\n if (!nextColumn) return { column: cursor.column, index };\n return { column: nextColumn, index: Math.min(index, columns[nextColumn].length - 1) };\n }\n }\n}\n\nexport function cardAt(columns: BoardColumns, cursor: BoardCursor | null): AgentCard | null {\n if (!cursor) return null;\n return columns[cursor.column][cursor.index] ?? null;\n}\n\n/** Where a card id sits now (cards move between polls; the cursor follows the card). */\nexport function locate(columns: BoardColumns, id: string): BoardCursor | null {\n for (const column of AGENT_COLUMNS) {\n const index = columns[column].findIndex((c) => c.id === id);\n if (index >= 0) return { column, index };\n }\n return null;\n}\n\n/**\n * \"Mark read\" targets: never a Needs-you card (marking read does not clear\n * something blocked on you), never one already read.\n */\nexport function markReadTargets(cards: readonly AgentCard[], ids?: ReadonlySet<string>): string[] {\n return cards.filter((c) => (!ids || ids.has(c.id)) && c.column !== 'needs-you' && c.unread && c.sessionId).map((c) => c.id);\n}\n\n// ---------------------------------------------------------------------------\n// Labels\n// ---------------------------------------------------------------------------\n\nexport function elapsedLabel(fromIso: string | null, now: number): string | null {\n if (!fromIso) return null;\n const t = Date.parse(fromIso);\n if (!Number.isFinite(t)) return null;\n const s = Math.max(0, Math.round((now - t) / 1000));\n if (s < 60) return `${s}s`;\n const m = Math.floor(s / 60);\n if (m < 60) return `${m}m ${String(s % 60).padStart(2, '0')}s`;\n const h = Math.floor(m / 60);\n if (h < 24) return `${h}h ${String(m % 60).padStart(2, '0')}m`;\n return `${Math.floor(h / 24)}d ${h % 24}h`;\n}\n\nexport function agoLabel(iso: string | null, now: number): string {\n if (!iso) return '';\n const t = Date.parse(iso);\n if (!Number.isFinite(t)) return '';\n const s = Math.max(0, Math.round((now - t) / 1000));\n if (s < 45) return 'just now';\n const m = Math.round(s / 60);\n if (m < 60) return `${m}m ago`;\n const h = Math.round(m / 60);\n if (h < 48) return `${h}h ago`;\n return `${Math.round(h / 24)}d ago`;\n}\n\nexport function usd(n: number): string {\n return n >= 100 ? `$${Math.round(n)}` : n >= 10 ? `$${n.toFixed(1)}` : `$${n.toFixed(2)}`;\n}\n\n/** \"$1.24 of $5\" / \"$0.80\" / \"12.4k tokens\" (no list price). */\nexport function spendLabel(spend: AgentSpend): string {\n if (spend.usd === null) return spend.tokens > 0 ? `${compactTokens(spend.tokens)} tokens` : '—';\n return spend.capUsd !== null ? `${usd(spend.usd)} of ${usd(spend.capUsd)}` : usd(spend.usd);\n}\n\nexport function spendTone(spend: AgentSpend): 'neutral' | 'warning' | 'danger' {\n if (spend.fraction === null) return 'neutral';\n if (spend.fraction >= 1) return 'danger';\n return spend.fraction >= 0.8 ? 'warning' : 'neutral';\n}\n\nexport function compactTokens(n: number): string {\n if (n < 1000) return String(n);\n if (n < 1_000_000) return `${(n / 1000).toFixed(n < 10_000 ? 1 : 0)}k`;\n return `${(n / 1_000_000).toFixed(1)}M`;\n}\n\nexport function ciLabel(card: AgentCard): string | null {\n const c = card.checks;\n if (!c) return null;\n if (!c.pr) return c.ci === 'unknown' ? null : c.dirty > 0 ? `${c.dirty} uncommitted` : c.ahead > 0 ? `${c.ahead} ahead` : null;\n const state = c.pr.state === 'merged' ? 'merged' : c.pr.state === 'closed' ? 'closed' : c.ci === 'passing' ? 'green' : c.ci === 'failing' ? 'red' : c.ci === 'pending' ? 'running' : 'no checks';\n return `#${c.pr.number} ${state}`;\n}\n\n// ---------------------------------------------------------------------------\n// Seats for \"same task on N seats\"\n// ---------------------------------------------------------------------------\n\nexport interface SeatRow {\n seatId: string;\n label: string;\n engine: VerseSeat['engine'];\n model: string | null;\n modelLabel: string | null;\n disabled: string | null;\n}\n\n/** Each seat with its first runnable model, in the picker's engine order. */\nexport function seatRows(seats: readonly VerseSeat[]): SeatRow[] {\n const rows: SeatRow[] = [];\n for (const group of groupSeats(seats)) {\n for (const seat of group.seats) {\n const seatReason = seatUnavailableReason(seat);\n const model = seat.models.find((m) => !(typeof m.unavailableReason === 'string' && m.unavailableReason.trim()));\n rows.push({\n seatId: seat.id,\n label: seat.label,\n engine: seat.engine,\n model: model?.id ?? null,\n modelLabel: model?.label ?? null,\n disabled: seatReason ?? (model ? null : 'No model on this seat can run right now.'),\n });\n }\n }\n return rows;\n}\n\nexport const MAX_FAN_OUT = 6;\n\nexport interface SpawnForm {\n root: string;\n title: string;\n prompt: string;\n seats: Array<{ seatId: string; model: string }>;\n isolate: boolean;\n planFirst: boolean;\n capText: string;\n autoFix: boolean;\n autoMerge: boolean;\n}\n\nexport type SpawnCheck = { ok: true; cap: number | null } | { ok: false; error: string };\n\nexport function checkSpawnForm(form: SpawnForm): SpawnCheck {\n if (!form.root) return { ok: false, error: 'Pick a repository.' };\n if (form.seats.length === 0) return { ok: false, error: 'Pick at least one seat.' };\n if (form.seats.length > MAX_FAN_OUT) return { ok: false, error: `At most ${MAX_FAN_OUT} seats at once.` };\n if (form.seats.length > 1 && !form.isolate) return { ok: false, error: 'Several seats on one task each need their own workspace.' };\n if (!form.prompt.trim()) return { ok: false, error: 'Say what the agent should do.' };\n if (form.autoMerge && !form.isolate) return { ok: false, error: 'Auto-merge needs the agent in its own workspace (its own branch).' };\n const capText = form.capText.trim().replace(/^\\$/, '');\n let cap: number | null = null;\n if (capText) {\n const n = Number(capText);\n if (!Number.isFinite(n) || n <= 0 || n > 10_000) return { ok: false, error: 'The spend cap is a dollar amount above 0.' };\n cap = Math.round(n * 100) / 100;\n }\n return { ok: true, cap };\n}\n\n/** A title from the prompt's first line when none was typed. */\nexport function titleFromPrompt(prompt: string): string {\n const first = prompt.trim().split('\\n')[0]?.trim() ?? '';\n const clean = first.replace(/[#*`>_]/g, '').trim();\n if (!clean) return 'Agent';\n return clean.length <= 60 ? clean : `${clean.slice(0, 57).replace(/\\s+\\S*$/, '')}…`;\n}\n","/**\n * routes/verse/agents/AgentDetails.tsx — one card's detail panel on the\n * Agents board: the plan to review and approve (Plan first), the held prompt,\n * the workspace's scripts (setup log, Run buttons), the spend cap, and the\n * Checks tab (ChecksPanel). Archive and Restore live here too.\n */\nimport { useEffect, useState } from 'react';\nimport type { AgentCard, ScriptRunRecord } from '../../../../core/verse/agents/types.js';\nimport { Button } from '../../../components/primitives/Button.js';\nimport { Input } from '../../../components/primitives/Input.js';\nimport { Segmented } from '../../../components/primitives/Segmented.js';\nimport { Switch } from '../../../components/primitives/Switch.js';\nimport { elapsedLabel, spendLabel, usd } from './agents-model.js';\nimport {\n archiveAgentCard,\n decideAgentPlan,\n fetchScriptLog,\n resolveAgentCard,\n restoreAgentCard,\n runAgentScript,\n sendHeldPrompt,\n stopAgentScript,\n updateAgentSettings,\n} from './agents-queries.js';\nimport { ChecksPanel } from './ChecksPanel.js';\nimport styles from './Agents.module.css';\n\ntype Tab = 'overview' | 'checks';\n\nexport interface AgentDetailsProps {\n card: AgentCard;\n now: number;\n busy: string | null;\n onClose: () => void;\n onChanged: () => void;\n act: (key: string, why: string, run: () => Promise<string | null>) => Promise<void>;\n onOpenChat: () => void;\n onOpenTerminal: () => void;\n onStop: () => void;\n}\n\nexport function AgentDetails({ card, now, busy, onClose, onChanged, act, onOpenChat, onOpenTerminal, onStop }: AgentDetailsProps) {\n const [tab, setTab] = useState<Tab>(card.reason === 'ci-failed' || card.reason === 'pr-open' ? 'checks' : 'overview');\n const [planText, setPlanText] = useState(card.plan?.text ?? '');\n const [capText, setCapText] = useState(card.spend.capUsd !== null ? String(card.spend.capUsd) : '');\n const agentId = card.agentId;\n\n useEffect(() => { setPlanText(card.plan?.text ?? ''); }, [card.plan?.text]);\n useEffect(() => { setCapText(card.spend.capUsd !== null ? String(card.spend.capUsd) : ''); }, [card.spend.capUsd]);\n\n const saveCap = () => {\n if (!agentId) return;\n const raw = capText.trim().replace(/^\\$/, '');\n const cap = raw === '' ? null : Number(raw);\n if (cap !== null && (!Number.isFinite(cap) || cap <= 0)) return;\n void act('cap', 'Change this agent’s spend cap', async () => {\n await updateAgentSettings(agentId, { spendCapUsd: cap });\n return cap === null ? 'Spend cap removed.' : `Spend cap set to ${usd(cap)}.`;\n });\n };\n\n const latestSetup = [...card.scripts].reverse().find((r) => r.kind === 'setup') ?? null;\n const runs = card.scripts.filter((r) => r.kind === 'run' && r.state === 'running');\n\n return (\n <aside className={styles.details} aria-label={`Details: ${card.title}`}>\n <header className={styles.detailsHead}>\n <div>\n <h3 className={styles.detailsTitle}>{card.title}</h3>\n <p className={styles.muted}>{card.reasonText}</p>\n </div>\n <Button size=\"sm\" variant=\"ghost\" onClick={onClose} aria-label=\"Close details\">Close</Button>\n </header>\n\n <div className={styles.detailsActions}>\n {card.sessionId ? <Button size=\"sm\" variant=\"subtle\" onClick={onOpenChat}>Open chat</Button> : null}\n {card.status === 'running' ? <Button size=\"sm\" variant=\"ghost\" onClick={onStop}>Stop</Button> : null}\n {card.reason === 'failed' ? (\n <Button size=\"sm\" variant=\"ghost\" busy={busy === `resolve:${card.id}`} onClick={() => void act(`resolve:${card.id}`, 'Resolve this failed turn', async () => { await resolveAgentCard(card.id); return 'Resolved: it leaves Needs you.'; })}>\n Resolve\n </Button>\n ) : null}\n {agentId && !card.archived ? (\n <Button size=\"sm\" variant=\"ghost\" busy={busy === 'archive'} onClick={() => void act('archive', 'Archive this agent (snapshot, then remove its worktree)', async () => { await archiveAgentCard(agentId); onClose(); return 'Archived. Its snapshot is kept — Restore brings it back.'; })}>\n Archive\n </Button>\n ) : null}\n {agentId && card.restorable ? (\n <Button size=\"sm\" variant=\"subtle\" busy={busy === 'restore'} onClick={() => void act('restore', 'Restore this agent’s workspace', async () => { await restoreAgentCard(agentId); return 'Restored.'; })}>\n Restore\n </Button>\n ) : null}\n </div>\n\n <Segmented\n aria-label=\"Detail view\"\n value={tab}\n onChange={(v) => setTab(v as Tab)}\n options={[{ value: 'overview', label: 'Overview' }, { value: 'checks', label: 'Checks' }]}\n />\n\n {tab === 'checks' ? (\n <ChecksPanel cardId={card.id} onChanged={onChanged} />\n ) : (\n <div className={styles.overview}>\n <dl className={styles.facts}>\n <div><dt>Seat</dt><dd>{card.seatId ?? '—'}{card.model ? ` · ${card.model}` : ''}</dd></div>\n <div><dt>Where</dt><dd className={styles.mono}>{card.repo ?? '—'}{card.branch ? ` · ${card.branch}` : ''}</dd></div>\n {card.workspacePath ? <div><dt>Workspace</dt><dd className={styles.mono}>{card.workspacePath}</dd></div> : null}\n {card.ports ? <div><dt>Ports</dt><dd>{card.ports.count > 0 ? `${card.ports.base}–${card.ports.base + card.ports.count - 1} (ASHLR_PORT)` : `ASHLR_PORT=${card.ports.base}`}</dd></div> : null}\n <div><dt>Spend</dt><dd>{spendLabel(card.spend)} <span className={styles.muted}>(API list price)</span></dd></div>\n {card.startedAt ? <div><dt>Running for</dt><dd>{elapsedLabel(card.startedAt, now)}</dd></div> : null}\n </dl>\n\n {card.plan && card.plan.state === 'awaiting-approval' && agentId ? (\n <section className={styles.planBox} aria-label=\"Plan for approval\">\n <h4 className={styles.smallHead}>Plan — edit, then approve</h4>\n <textarea className={styles.textarea} rows={12} value={planText} onChange={(e) => setPlanText(e.target.value)} />\n <div className={styles.formActions}>\n <Button size=\"sm\" variant=\"ghost\" busy={busy === 'plan:discard'} onClick={() => void act('plan:discard', 'Discard this plan', async () => { await decideAgentPlan(agentId, 'discard'); return 'Plan discarded. Nothing was changed.'; })}>\n Discard\n </Button>\n <Button size=\"sm\" variant=\"primary\" busy={busy === 'plan:approve'} onClick={() => void act('plan:approve', 'Approve the plan: the seat starts making the changes', async () => { await decideAgentPlan(agentId, 'approve', planText); return 'Approved — the agent is carrying it out.'; })}>\n Approve and run\n </Button>\n </div>\n </section>\n ) : card.plan ? (\n <p className={styles.hint}>Plan first: {card.plan.state === 'drafting' ? 'the seat is writing a plan.' : card.plan.state === 'approved' ? 'plan approved.' : 'on.'}</p>\n ) : null}\n\n {card.heldPrompt && agentId ? (\n <section className={styles.held}>\n <p className={styles.hint}>The first prompt is held until setup finishes.</p>\n <div className={styles.formActions}>\n <Button size=\"sm\" variant=\"ghost\" busy={busy === 'setup'} onClick={() => void act('setup', 'Run setup again', async () => { await runAgentScript(agentId, 'setup'); return 'Setup started again.'; })}>\n Rerun setup\n </Button>\n <Button size=\"sm\" variant=\"subtle\" busy={busy === 'send'} onClick={() => void act('send', 'Send the held prompt now, without setup', async () => { await sendHeldPrompt(agentId); return 'Sent.'; })}>\n Send anyway\n </Button>\n </div>\n </section>\n ) : null}\n\n {agentId && card.workspacePath ? (\n <section aria-label=\"Scripts\">\n <h4 className={styles.smallHead}>Workspace scripts</h4>\n <div className={styles.scriptButtons}>\n {card.runScripts.map((name, index) => (\n <Button key={name} size=\"sm\" variant=\"subtle\" busy={busy === `run:${index}`} onClick={() => void act(`run:${index}`, `Run “${name}” in this workspace`, async () => {\n const res = await runAgentScript(agentId, 'run', index);\n if (res.run.via === 'terminal') onOpenTerminal();\n return `${name} started${res.run.via === 'terminal' ? ' in a terminal tab' : ''}.`;\n })}>\n Run {name}\n </Button>\n ))}\n {card.runScripts.length === 0 ? <span className={styles.muted}>No run scripts in .ashlr/verse/workspace.json.</span> : null}\n </div>\n {runs.map((r) => (\n <div key={r.id} className={styles.runRow}>\n <span>{r.name} — running{r.via === 'terminal' ? ' in a terminal tab' : ''}</span>\n <Button size=\"sm\" variant=\"ghost\" onClick={() => void act(`stop:${r.id}`, `Stop ${r.name}`, async () => { await stopAgentScript(agentId, r.id); return `${r.name} stopped.`; })}>Stop</Button>\n </div>\n ))}\n {latestSetup ? <ScriptLog agentId={agentId} run={latestSetup} onOpenTerminal={onOpenTerminal} /> : null}\n </section>\n ) : null}\n\n {agentId ? (\n <section className={styles.capBox} aria-label=\"Spend cap\">\n <Input\n label=\"Spend cap (USD at API list price)\"\n size=\"sm\"\n value={capText}\n onChange={(e) => setCapText(e.target.value)}\n placeholder=\"none\"\n inputMode=\"decimal\"\n hint=\"Warns at 80%; at 100% the agent stops and takes no more turns until you raise it.\"\n />\n <Button size=\"sm\" variant=\"subtle\" onClick={saveCap} busy={busy === 'cap'}>Save cap</Button>\n <Switch\n checked={card.pinned}\n onChange={(v) => void act('pin', v ? 'Pin this agent' : 'Unpin this agent', async () => { await updateAgentSettings(agentId, { pinned: v }); return null; })}\n label=\"Pinned (never auto-archived)\"\n />\n </section>\n ) : null}\n\n {card.loopNote ? <p className={styles.loopNote} role=\"status\">{card.loopNote}</p> : null}\n </div>\n )}\n </aside>\n );\n}\n\nfunction ScriptLog({ agentId, run, onOpenTerminal }: { agentId: string; run: ScriptRunRecord; onOpenTerminal: () => void }) {\n const [text, setText] = useState<string | null>(null);\n useEffect(() => {\n if (run.via !== 'process') return undefined;\n const ctl = new AbortController();\n const load = () => fetchScriptLog(agentId, run.id, ctl.signal).then((l) => setText(l.text), () => undefined);\n void load();\n const t = run.state === 'running' ? setInterval(load, 2_000) : null;\n return () => { ctl.abort(); if (t) clearInterval(t); };\n }, [agentId, run.id, run.via, run.state]);\n const state = run.state === 'running' ? 'running' : run.state === 'ok' ? 'finished' : `failed${run.exitCode !== null ? ` (exit ${run.exitCode})` : ''}`;\n return (\n <div className={styles.setupLog}>\n <div className={styles.runRow}>\n <span>Setup {state}</span>\n {run.via === 'terminal' ? <Button size=\"sm\" variant=\"ghost\" onClick={onOpenTerminal}>Show terminal</Button> : null}\n </div>\n {run.via === 'process' && text ? <pre className={styles.log}>{text.slice(-8_000)}</pre> : null}\n </div>\n );\n}\n","/**\n * routes/verse/agents/NewAgentDialog.tsx — \"New agent\" in one action (⌘N on\n * the board) and \"Same task on several seats\" (⇧⌘N): pick the repo, the\n * seat(s), say what to do. Each agent gets its own git worktree on a\n * `verse/<slug>` branch under ~/.ashlr-worktrees, the repo's setup script\n * (from `.ashlr/verse/workspace.json`) runs in a terminal tab, and the prompt\n * goes out when setup is done.\n *\n * Before anything is created the dialog says what the repo's workspace.json\n * will do (setup, run buttons, files copied, ports) — nothing runs on a\n * surprise. Options: Plan first (the seat plans; you approve), a spend cap,\n * Auto-fix CI and Auto-merge when green.\n */\nimport { useEffect, useId, useMemo, useRef, useState, type FormEvent, type KeyboardEvent } from 'react';\nimport type { WorkspaceConfigRead } from '../../../../core/verse/agents/types.js';\nimport type { VerseProject, VerseSeat } from '../../../../core/verse/types.js';\nimport { Button } from '../../../components/primitives/Button.js';\nimport { Dialog } from '../../../components/primitives/Dialog.js';\nimport { Input } from '../../../components/primitives/Input.js';\nimport { Select } from '../../../components/primitives/Select.js';\nimport { Switch } from '../../../components/primitives/Switch.js';\nimport { defaultSeatChoice, SeatSelector, type SeatChoice } from '../SeatSelector.js';\nimport { ENGINE_LABEL } from '../verse-model.js';\nimport { checkSpawnForm, MAX_FAN_OUT, seatRows, titleFromPrompt, type SpawnForm } from './agents-model.js';\nimport { fetchWorkspaceConfig, type SpawnInput } from './agents-queries.js';\nimport styles from './Agents.module.css';\n\nexport interface NewAgentDialogProps {\n open: boolean;\n multi: boolean;\n projects: readonly VerseProject[];\n seats: readonly VerseSeat[];\n initialRoot: string | null;\n busy: boolean;\n error: string | null;\n onClose: () => void;\n /** One input per seat; the board runs them (token gate, progress, errors). */\n onSpawn: (inputs: SpawnInput[]) => void;\n}\n\nfunction configSummary(read: WorkspaceConfigRead): string {\n const c = read.config;\n const parts: string[] = [];\n parts.push(c.setup ? `setup: ${c.setup.length > 40 ? `${c.setup.slice(0, 40)}…` : c.setup}` : 'no setup script');\n if (c.run.length > 0) parts.push(`${c.run.length} run button${c.run.length === 1 ? '' : 's'} (${c.run.map((r) => r.name).join(', ')})`);\n if (c.copy.length > 0) parts.push(`copies ${c.copy.join(', ')} if present`);\n parts.push(c.ports > 0 ? `${c.ports} ports` : 'no ports');\n return `${read.source === 'file' ? '.ashlr/verse/workspace.json' : 'No workspace.json (defaults)'}: ${parts.join(' · ')}`;\n}\n\nexport function NewAgentDialog({ open, multi, projects, seats, initialRoot, busy, error, onClose, onSpawn }: NewAgentDialogProps) {\n const titleId = useId();\n const promptId = useId();\n const promptRef = useRef<HTMLTextAreaElement>(null);\n const sorted = useMemo(() => [...projects].sort((a, b) => Number(b.enrolled) - Number(a.enrolled) || a.name.localeCompare(b.name)), [projects]);\n const rows = useMemo(() => seatRows(seats), [seats]);\n const [root, setRoot] = useState('');\n const [seat, setSeat] = useState<SeatChoice | null>(null);\n const [picked, setPicked] = useState<Set<string>>(new Set());\n const [title, setTitle] = useState('');\n const [prompt, setPrompt] = useState('');\n const [isolate, setIsolate] = useState(true);\n const [planFirst, setPlanFirst] = useState(false);\n const [capText, setCapText] = useState('');\n const [autoFix, setAutoFix] = useState(false);\n const [autoMerge, setAutoMerge] = useState(false);\n const [local, setLocal] = useState<string | null>(null);\n const [config, setConfig] = useState<WorkspaceConfigRead | null>(null);\n\n // Reset on the open transition only (a roster refresh must not wipe a half-typed prompt).\n const prefill = useRef({ initialRoot, sorted, seats });\n prefill.current = { initialRoot, sorted, seats };\n useEffect(() => {\n if (!open) return;\n const p = prefill.current;\n setRoot(p.initialRoot && p.sorted.some((x) => x.path === p.initialRoot) ? p.initialRoot : p.sorted[0]?.path ?? '');\n const first = defaultSeatChoice(p.seats);\n setSeat(first);\n setPicked(new Set(first ? [first.seatId] : []));\n setTitle('');\n setPrompt('');\n setIsolate(true);\n setPlanFirst(false);\n setCapText('');\n setAutoFix(false);\n setAutoMerge(false);\n setLocal(null);\n }, [open]);\n\n useEffect(() => {\n if (!open || !root) return undefined;\n const ctl = new AbortController();\n setConfig(null);\n fetchWorkspaceConfig(root, ctl.signal).then((c) => setConfig(c), () => setConfig(null));\n return () => ctl.abort();\n }, [open, root]);\n\n const chosenSeats = useMemo(() => {\n if (!multi) return seat ? [seat] : [];\n return rows.filter((r) => picked.has(r.seatId) && r.model && !r.disabled).map((r) => ({ seatId: r.seatId, model: r.model! }));\n }, [multi, seat, rows, picked]);\n\n const submit = (e?: FormEvent) => {\n e?.preventDefault();\n const form: SpawnForm = { root, title, prompt, seats: chosenSeats, isolate: multi ? true : isolate, planFirst, capText, autoFix, autoMerge };\n const checked = checkSpawnForm(form);\n if (!checked.ok) {\n setLocal(checked.error);\n return;\n }\n setLocal(null);\n const baseTitle = title.trim() || titleFromPrompt(prompt);\n const labelOf = (seatId: string) => rows.find((r) => r.seatId === seatId)?.label ?? seatId;\n onSpawn(chosenSeats.map((s) => ({\n root,\n seatId: s.seatId,\n model: s.model,\n title: chosenSeats.length > 1 ? `${baseTitle} · ${labelOf(s.seatId)}` : baseTitle,\n prompt,\n isolate: form.isolate,\n planFirst,\n spendCapUsd: checked.cap,\n autoFix,\n autoMerge,\n })));\n };\n\n const onPromptKey = (e: KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === 'Enter' && (e.metaKey || e.ctrlKey)) {\n e.preventDefault();\n submit();\n }\n };\n\n const count = chosenSeats.length;\n return (\n <Dialog\n open={open}\n onClose={onClose}\n titleId={titleId}\n title={multi ? 'Same task on several seats' : 'New agent'}\n description={multi\n ? 'Each seat gets its own workspace and branch, and the same prompt. Compare what comes back.'\n : 'A chat with its own git worktree and branch, the repo’s setup, and its own ports.'}\n initialFocusRef={promptRef}\n widthClassName={styles.dialogWidth}\n >\n <form className={styles.form} onSubmit={submit}>\n <Select label=\"Repository\" value={root} onChange={(e) => setRoot(e.target.value)} disabled={busy}>\n {sorted.length === 0 ? <option value=\"\">No projects yet — open one in Chat first</option> : null}\n {sorted.map((p) => <option key={p.path} value={p.path}>{p.name}</option>)}\n </Select>\n {config ? <p className={styles.hint}>{configSummary(config)}{config.warnings.length ? ` — ${config.warnings[0]}` : ''}</p> : null}\n\n {multi ? (\n <fieldset className={styles.seatList} disabled={busy}>\n <legend>Seats ({count} of at most {MAX_FAN_OUT})</legend>\n {rows.map((r) => (\n <label key={r.seatId} className={styles.seatRow} data-disabled={r.disabled ? true : undefined}>\n <input\n type=\"checkbox\"\n checked={picked.has(r.seatId)}\n disabled={Boolean(r.disabled)}\n onChange={(e) => setPicked((prev) => {\n const next = new Set(prev);\n if (e.target.checked) next.add(r.seatId);\n else next.delete(r.seatId);\n return next;\n })}\n />\n <span>{r.label}</span>\n <span className={styles.muted}>{ENGINE_LABEL[r.engine]}{r.modelLabel ? ` · ${r.modelLabel}` : ''}</span>\n {r.disabled ? <span className={styles.muted}> — {r.disabled}</span> : null}\n </label>\n ))}\n </fieldset>\n ) : (\n <SeatSelector seats={seats} value={seat} onChange={setSeat} disabled={busy} label=\"Seat\" />\n )}\n\n <div className={styles.field}>\n <label htmlFor={promptId} className={styles.fieldLabel}>What should {count > 1 ? 'they' : 'it'} do?</label>\n <textarea\n id={promptId}\n ref={promptRef}\n className={styles.textarea}\n rows={5}\n value={prompt}\n onChange={(e) => setPrompt(e.target.value)}\n onKeyDown={onPromptKey}\n placeholder=\"Fix the login redirect loop and add a test for it.\"\n disabled={busy}\n />\n </div>\n <Input label=\"Title (optional)\" value={title} onChange={(e) => setTitle(e.target.value)} placeholder={prompt ? titleFromPrompt(prompt) : 'From the prompt'} disabled={busy} />\n\n <div className={styles.options}>\n {multi ? null : <Switch checked={isolate} onChange={setIsolate} label=\"Own workspace (worktree + branch)\" disabled={busy} />}\n <Switch checked={planFirst} onChange={setPlanFirst} label=\"Plan first — approve before it edits\" disabled={busy} />\n <Switch checked={autoFix} onChange={setAutoFix} label=\"Auto-fix CI\" disabled={busy} />\n <Switch checked={autoMerge} onChange={setAutoMerge} label=\"Auto-merge when green\" disabled={busy || (!multi && !isolate)} />\n <Input\n label=\"Spend cap (USD, at API list price)\"\n value={capText}\n onChange={(e) => setCapText(e.target.value)}\n placeholder=\"none\"\n inputMode=\"decimal\"\n size=\"sm\"\n hint=\"Warns at 80%, stops the agent at 100%.\"\n disabled={busy}\n />\n </div>\n {autoMerge ? (\n <p className={styles.hint}>\n Auto-merge squash-merges only a green, mergeable PR that touches no protected path (CI, manifests, lockfiles); ashlr-hub itself only when the grant’s self-land policy allows. GitHub’s branch rules still apply.\n </p>\n ) : null}\n\n {local || error ? <p className={styles.formError} role=\"alert\">{local ?? error}</p> : null}\n <div className={styles.formActions}>\n <Button variant=\"ghost\" onClick={onClose} disabled={busy}>Cancel</Button>\n <Button variant=\"primary\" type=\"submit\" busy={busy} disabled={count === 0 || !root}>\n {count > 1 ? `Start ${count} agents` : 'Start agent'}\n </Button>\n </div>\n <p className={styles.keyHint}>⌘ Return starts {count > 1 ? 'them' : 'it'}.</p>\n </form>\n </Dialog>\n );\n}\n","/**\n * routes/verse/agents/AgentsBoard.tsx — the Agents board (⌘6): every chat and\n * agent across repos as a card, in four columns by what it needs —\n * Working · Needs you · Ready for review · Done — with its seat and model,\n * repo and branch, how long it has been running, what it has spent, its\n * PR/CI, and the last thing it did.\n *\n * KEYS (while the board has focus): ←/→ or h/l between columns, ↑/↓ or j/k\n * within one, Enter opens the chat, Space the card's details, x selects,\n * e marks read, r resolves a failed turn, s stops, ⌘N new agent, ⇧⌘N the\n * same task on several seats. \"Mark read\" NEVER clears Needs you — a card\n * leaves that column when its cause is gone or you resolve it.\n *\n * Every write goes through the mutation token (useTokenGate). The board\n * polls while it is the visible surface; nothing here spends except what\n * the operator asks for (a new agent's prompt, an approved plan, Send).\n */\nimport { useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore, type KeyboardEvent } from 'react';\nimport { AGENT_COLUMN_LABEL, AGENT_COLUMNS, type AgentCard, type AgentColumn } from '../../../../core/verse/agents/types.js';\nimport { MutationTokenDialog } from '../../../components/auth/MutationTokenDialog.js';\nimport { Button } from '../../../components/primitives/Button.js';\nimport { EmptyState } from '../../../components/primitives/EmptyState.js';\nimport { Input } from '../../../components/primitives/Input.js';\nimport { Select } from '../../../components/primitives/Select.js';\nimport { useQuery, useRefetch } from '../../../data/hooks.js';\nimport { describeContextError, useTokenGate } from '../context/use-token-gate.js';\nimport { openPaneInChat } from '../dock/dock-store.js';\nimport { usePollWhileVisible, useSectionVisible } from '../shell/section-visibility.js';\nimport { ENGINE_LABEL } from '../verse-model.js';\nimport { cancelVerseTurn, verseBootstrapQuery } from '../verse-queries.js';\nimport { openVerseSession } from '../verse-ui-store.js';\nimport { getAgentsFocus, isAgentsFocusLive, subscribeAgentsFocus, takeAgentsFocus } from './agents-focus.js';\nimport {\n agoLabel,\n cardAt,\n ciLabel,\n DEFAULT_FILTER,\n elapsedLabel,\n filterCards,\n groupByColumn,\n locate,\n markReadTargets,\n moveCursor,\n reposOf,\n spendLabel,\n spendTone,\n type BoardCursor,\n type BoardFilter,\n type MoveDirection,\n} from './agents-model.js';\nimport {\n AGENTS_POLL_MS,\n agentsBoardQuery,\n bulkAgents,\n resolveAgentCard,\n spawnAgent,\n type BulkAction,\n type SpawnInput,\n} from './agents-queries.js';\nimport { AgentDetails } from './AgentDetails.js';\nimport { NewAgentDialog } from './NewAgentDialog.js';\nimport styles from './Agents.module.css';\n\ntype Notice = { tone: 'neutral' | 'danger'; text: string } | null;\n\nconst KEY_MOVES: Readonly<Record<string, MoveDirection>> = {\n ArrowUp: 'up', k: 'up', ArrowDown: 'down', j: 'down', ArrowLeft: 'left', h: 'left', ArrowRight: 'right', l: 'right', Home: 'first', End: 'last',\n};\n\nfunction useNow(intervalMs: number, active: boolean): number {\n const [now, setNow] = useState(() => Date.now());\n useEffect(() => {\n if (!active) return undefined;\n const t = setInterval(() => setNow(Date.now()), intervalMs);\n return () => clearInterval(t);\n }, [intervalMs, active]);\n return now;\n}\n\nexport function AgentsBoard() {\n const read = useQuery(agentsBoardQuery);\n const refetch = useRefetch(agentsBoardQuery);\n usePollWhileVisible(refetch, AGENTS_POLL_MS);\n const boot = useQuery(verseBootstrapQuery);\n const visible = useSectionVisible();\n const now = useNow(1_000, visible);\n const gate = useTokenGate();\n const [filter, setFilter] = useState<BoardFilter>(DEFAULT_FILTER);\n const [cursorId, setCursorId] = useState<string | null>(null);\n const [selected, setSelected] = useState<Set<string>>(new Set());\n const [detailsId, setDetailsId] = useState<string | null>(null);\n const [dialog, setDialog] = useState<{ open: boolean; multi: boolean }>({ open: false, multi: false });\n const [spawning, setSpawning] = useState(false);\n const [spawnError, setSpawnError] = useState<string | null>(null);\n const [notice, setNotice] = useState<Notice>(null);\n const [busy, setBusy] = useState<string | null>(null);\n const boardRef = useRef<HTMLDivElement>(null);\n\n const allCards = useMemo(() => read.data?.cards ?? [], [read.data]);\n // The clock ticks every second for the elapsed labels; the Done cut-off only needs minutes.\n const minute = Math.floor(now / 60_000);\n const cards = useMemo(() => filterCards(allCards, filter, minute * 60_000), [allCards, filter, minute]);\n const columns = useMemo(() => groupByColumn(cards), [cards]);\n const repos = useMemo(() => reposOf(allCards), [allCards]);\n const cursor: BoardCursor | null = cursorId ? locate(columns, cursorId) : null;\n const details = detailsId ? allCards.find((c) => c.id === detailsId) ?? null : null;\n\n // ⌘N / ⇧⌘N / ⌘K hand-off (agents-focus.ts).\n const focus = useSyncExternalStore(subscribeAgentsFocus, getAgentsFocus, getAgentsFocus);\n useEffect(() => {\n if (!focus) return;\n if (isAgentsFocusLive(focus)) {\n if (focus.kind === 'new' || focus.kind === 'new-multi') {\n setSpawnError(null);\n setDialog({ open: true, multi: focus.kind === 'new-multi' });\n } else if (focus.cardId) {\n setCursorId(focus.cardId);\n setDetailsId(focus.cardId);\n }\n }\n takeAgentsFocus(focus.seq);\n }, [focus]);\n\n const act = useCallback(async (key: string, why: string, run: () => Promise<string | null>) => {\n setBusy(key);\n setNotice(null);\n try {\n const message = await gate.run(why, run);\n if (message) setNotice({ tone: 'neutral', text: message });\n refetch();\n } catch (err) {\n setNotice({ tone: 'danger', text: describeContextError(err) });\n } finally {\n setBusy(null);\n }\n }, [gate, refetch]);\n\n const runBulk = (action: BulkAction, ids: string[], label: string) => {\n if (ids.length === 0) {\n setNotice({ tone: 'neutral', text: action === 'read' ? 'Nothing unread outside Needs you.' : 'Nothing selected.' });\n return;\n }\n void act(`bulk:${action}`, `${label} (${ids.length})`, async () => {\n const results = await bulkAgents(action, ids);\n const ok = results.filter((r) => r.ok).length;\n const skipped = results.filter((r) => r.skipped).length;\n const failed = results.filter((r) => !r.ok && !r.skipped);\n if (action === 'archive') setSelected(new Set());\n return `${label}: ${ok} done${skipped ? `, ${skipped} in Needs you left as they are` : ''}${failed.length ? `, ${failed.length} failed (${failed[0]!.error})` : ''}.`;\n });\n };\n\n const spawn = (inputs: SpawnInput[]) => {\n setSpawning(true);\n setSpawnError(null);\n void gate.run(inputs.length > 1 ? `Start ${inputs.length} agents` : 'Start an agent', async () => {\n const errors: string[] = [];\n let first: string | null = null;\n let archived = 0;\n // One at a time: each makes a worktree under the repo lock anyway.\n for (const input of inputs) {\n try {\n const res = await spawnAgent(input);\n first ??= res.agent.id;\n archived += res.archivedForCap.length;\n } catch (err) {\n errors.push(`${input.title}: ${describeContextError(err)}`);\n }\n }\n return { first, errors, archived, total: inputs.length };\n }).then((out) => {\n setSpawning(false);\n if (!out) return;\n refetch();\n if (out.errors.length === out.total) {\n setSpawnError(out.errors.join(' '));\n return;\n }\n setDialog({ open: false, multi: false });\n if (out.first) setCursorId(out.first);\n const started = out.total - out.errors.length;\n setNotice({\n tone: out.errors.length ? 'danger' : 'neutral',\n text: `Started ${started} agent${started === 1 ? '' : 's'}.${out.archived ? ` Archived ${out.archived} idle workspace${out.archived === 1 ? '' : 's'} to stay under the cap (restorable).` : ''}${out.errors.length ? ` ${out.errors.join(' ')}` : ''}`,\n });\n }, (err: unknown) => {\n setSpawning(false);\n setSpawnError(describeContextError(err));\n });\n };\n\n const openChat = (card: AgentCard) => {\n if (card.sessionId) openVerseSession(card.sessionId);\n };\n\n const onKey = (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.defaultPrevented || e.metaKey || e.ctrlKey || e.altKey) return;\n const target = e.target as HTMLElement;\n if (target.closest('input, textarea, select, [contenteditable=\"true\"]')) return;\n const move = KEY_MOVES[e.key];\n if (move) {\n e.preventDefault();\n const next = moveCursor(columns, cursor, move);\n const card = cardAt(columns, next);\n if (card) {\n setCursorId(card.id);\n boardRef.current?.querySelector<HTMLElement>(`[data-card-id=\"${CSS.escape(card.id)}\"]`)?.focus();\n }\n return;\n }\n const card = cardAt(columns, cursor);\n if (!card) return;\n switch (e.key) {\n case 'Enter':\n e.preventDefault();\n openChat(card);\n break;\n case ' ':\n e.preventDefault();\n setDetailsId((id) => (id === card.id ? null : card.id));\n break;\n case 'x':\n e.preventDefault();\n setSelected((prev) => {\n const next = new Set(prev);\n if (next.has(card.id)) next.delete(card.id);\n else next.add(card.id);\n return next;\n });\n break;\n case 'e':\n e.preventDefault();\n if (card.column === 'needs-you') setNotice({ tone: 'neutral', text: 'Needs you is not cleared by marking read — resolve it (r) or act on it.' });\n else runBulk('read', markReadTargets([card]), 'Mark read');\n break;\n case 'r':\n if (card.reason === 'failed') {\n e.preventDefault();\n void act(`resolve:${card.id}`, 'Resolve this failed turn', async () => { await resolveAgentCard(card.id); return null; });\n }\n break;\n case 's':\n if (card.status === 'running' || card.status === 'setup') {\n e.preventDefault();\n runBulk('stop', [card.id], 'Stop');\n }\n break;\n case 'Escape':\n if (detailsId || selected.size) {\n e.preventDefault();\n setDetailsId(null);\n setSelected(new Set());\n }\n break;\n default:\n break;\n }\n };\n\n const selectedIds = [...selected].filter((id) => allCards.some((c) => c.id === id));\n const counts = read.data?.counts;\n const projects = boot.data?.projects ?? [];\n const seats = boot.data?.seats ?? [];\n\n return (\n <section className={styles.section} aria-label=\"Agents\">\n <header className={styles.header}>\n <div className={styles.headerText}>\n <h2 className={styles.title}>Agents</h2>\n <p className={styles.lede}>\n {counts\n ? `${counts.working} working · ${counts['needs-you']} need you · ${counts.review} ready for review`\n : 'Every chat and agent, by what it needs.'}\n {read.data ? ` · ${read.data.liveWorkspaces} of ${read.data.cap} workspaces` : ''}\n </p>\n </div>\n <div className={styles.headerActions}>\n <Select aria-label=\"Repository\" size=\"sm\" value={filter.repo ?? ''} onChange={(e) => setFilter((f) => ({ ...f, repo: e.target.value || null }))}>\n <option value=\"\">All repos</option>\n {repos.map((r) => <option key={r} value={r}>{r}</option>)}\n </Select>\n <Input aria-label=\"Filter cards\" size=\"sm\" placeholder=\"Filter\" value={filter.query} onChange={(e) => setFilter((f) => ({ ...f, query: e.target.value }))} />\n <Button size=\"sm\" variant=\"ghost\" onClick={() => runBulk('read', markReadTargets(cards), 'Mark all read')} busy={busy === 'bulk:read'} title=\"Needs you is never cleared by this\">\n Mark all read\n </Button>\n <Button size=\"sm\" variant=\"subtle\" onClick={() => setDialog({ open: true, multi: true })} title=\"⇧⌘N\">Same task on N seats</Button>\n <Button size=\"sm\" variant=\"primary\" onClick={() => setDialog({ open: true, multi: false })} title=\"⌘N\">New agent</Button>\n </div>\n </header>\n\n {notice ? <p className={styles.banner} data-tone={notice.tone} role=\"status\">{notice.text}</p> : null}\n {read.error && !read.data ? <p className={styles.banner} data-tone=\"danger\" role=\"alert\">{describeContextError(read.error)}</p> : null}\n\n {selectedIds.length > 0 ? (\n <div className={styles.bulkBar} role=\"toolbar\" aria-label=\"Selected cards\">\n <span>{selectedIds.length} selected</span>\n <Button size=\"sm\" variant=\"ghost\" onClick={() => runBulk('read', markReadTargets(cards, new Set(selectedIds)), 'Mark read')}>Mark read</Button>\n <Button size=\"sm\" variant=\"ghost\" onClick={() => runBulk('stop', selectedIds, 'Stop')}>Stop</Button>\n <Button size=\"sm\" variant=\"ghost\" onClick={() => runBulk('pin', selectedIds, 'Pin')}>Pin</Button>\n <Button size=\"sm\" variant=\"ghost\" onClick={() => runBulk('unpin', selectedIds, 'Unpin')}>Unpin</Button>\n <Button size=\"sm\" variant=\"danger\" onClick={() => runBulk('archive', selectedIds, 'Archive')}>Archive</Button>\n <Button size=\"sm\" variant=\"ghost\" onClick={() => setSelected(new Set())}>Clear</Button>\n </div>\n ) : null}\n\n <div className={styles.body} data-details={details ? 'open' : undefined}>\n {read.data && allCards.length === 0 ? (\n <EmptyState\n title=\"No agents yet\"\n body=\"Start one with ⌘N: it gets its own worktree and branch, runs the repo’s setup, and shows up here while it works.\"\n action={<Button variant=\"primary\" size=\"sm\" onClick={() => setDialog({ open: true, multi: false })}>New agent</Button>}\n />\n ) : (\n <div className={styles.board} ref={boardRef} onKeyDown={onKey} aria-label=\"Agent board\" aria-keyshortcuts=\"ArrowLeft ArrowRight ArrowUp ArrowDown Enter Space x e r s\">\n {AGENT_COLUMNS.map((column) => (\n <BoardColumn\n key={column}\n column={column}\n cards={columns[column]}\n now={now}\n cursorId={cursor ? cardAt(columns, cursor)?.id ?? null : null}\n selected={selected}\n onFocusCard={(id) => setCursorId(id)}\n onOpen={openChat}\n onDetails={(id) => { setCursorId(id); setDetailsId((d) => (d === id ? null : id)); }}\n onToggleSelect={(id) => setSelected((prev) => {\n const next = new Set(prev);\n if (next.has(id)) next.delete(id);\n else next.add(id);\n return next;\n })}\n />\n ))}\n </div>\n )}\n {details ? (\n <AgentDetails\n card={details}\n now={now}\n onClose={() => setDetailsId(null)}\n onChanged={refetch}\n act={act}\n busy={busy}\n onOpenChat={() => openChat(details)}\n onOpenTerminal={() => { if (details.sessionId) { openVerseSession(details.sessionId); openPaneInChat('terminal', details.sessionId); } }}\n onStop={() => {\n const sessionId = details.sessionId;\n if (sessionId) void act('stop', 'Stop this agent’s turn', async () => { await cancelVerseTurn(sessionId); return null; });\n }}\n />\n ) : null}\n </div>\n <p className={styles.keyHint}>\n ←→↑↓ move · Enter open · Space details · x select · e mark read · r resolve · s stop · ⌘N new agent · ⇧⌘N same task on N seats\n </p>\n\n <NewAgentDialog\n open={dialog.open}\n multi={dialog.multi}\n projects={projects}\n seats={seats}\n initialRoot={null}\n busy={spawning}\n error={spawnError}\n onClose={() => { if (!spawning) setDialog({ open: false, multi: false }); }}\n onSpawn={spawn}\n />\n <MutationTokenDialog {...gate.dialog} tokenLabel=\"Mutation token\" tokenHelp=\"the mutation token ashlr verse printed\" />\n </section>\n );\n}\n\ninterface ColumnProps {\n column: AgentColumn;\n cards: AgentCard[];\n now: number;\n cursorId: string | null;\n selected: ReadonlySet<string>;\n onFocusCard: (id: string) => void;\n onOpen: (card: AgentCard) => void;\n onDetails: (id: string) => void;\n onToggleSelect: (id: string) => void;\n}\n\nfunction BoardColumn({ column, cards, now, cursorId, selected, onFocusCard, onOpen, onDetails, onToggleSelect }: ColumnProps) {\n return (\n <section className={styles.column} data-column={column} aria-label={`${AGENT_COLUMN_LABEL[column]}, ${cards.length}`}>\n <h3 className={styles.columnHead}>\n <span>{AGENT_COLUMN_LABEL[column]}</span>\n <span className={styles.count}>{cards.length}</span>\n </h3>\n <ul className={styles.cardList}>\n {cards.map((card) => (\n <li key={card.id}>\n <CardView\n card={card}\n now={now}\n active={card.id === cursorId}\n selected={selected.has(card.id)}\n onFocus={() => onFocusCard(card.id)}\n onOpen={() => onOpen(card)}\n onDetails={() => onDetails(card.id)}\n onToggleSelect={() => onToggleSelect(card.id)}\n />\n </li>\n ))}\n {cards.length === 0 ? <li className={styles.emptyColumn}>{column === 'needs-you' ? 'Nothing is waiting on you.' : '—'}</li> : null}\n </ul>\n </section>\n );\n}\n\ninterface CardViewProps {\n card: AgentCard;\n now: number;\n active: boolean;\n selected: boolean;\n onFocus: () => void;\n onOpen: () => void;\n onDetails: () => void;\n onToggleSelect: () => void;\n}\n\nexport function CardView({ card, now, active, selected, onFocus, onOpen, onDetails, onToggleSelect }: CardViewProps) {\n const time = card.startedAt ? elapsedLabel(card.startedAt, now) : agoLabel(card.updatedAt, now);\n const ci = ciLabel(card);\n const tone = spendTone(card.spend);\n return (\n <div\n className={styles.card}\n data-card-id={card.id}\n data-active={active || undefined}\n data-selected={selected || undefined}\n data-column={card.column}\n data-reason={card.reason}\n tabIndex={0}\n role=\"button\"\n aria-pressed={selected}\n aria-label={`${card.title}. ${card.reasonText}.${card.unread ? ' Unread.' : ''}`}\n onFocus={onFocus}\n onClick={(e) => {\n if (e.shiftKey || e.metaKey) onToggleSelect();\n else onDetails();\n }}\n onDoubleClick={onOpen}\n >\n <div className={styles.cardTop}>\n <input\n type=\"checkbox\"\n className={styles.cardCheck}\n checked={selected}\n aria-label={`Select ${card.title}`}\n onClick={(e) => e.stopPropagation()}\n onChange={onToggleSelect}\n tabIndex={-1}\n />\n {card.unread ? <span className={styles.unreadDot} aria-hidden=\"true\" /> : null}\n <span className={styles.cardTitle}>{card.title}</span>\n {card.pinned ? <span className={styles.pin} aria-label=\"Pinned\">•</span> : null}\n </div>\n <div className={styles.cardMeta}>\n {card.engine ? <span className={styles.seatChip} data-engine={card.engine}>{ENGINE_LABEL[card.engine]}{card.model ? ` · ${card.model}` : ''}</span> : null}\n {card.repo ? <span className={styles.muted}>{card.repo}{card.branch ? ` · ${card.branch}` : ''}</span> : null}\n </div>\n <div className={styles.cardReason} data-reason={card.reason}>{card.reasonText}</div>\n <div className={styles.cardStats}>\n {time ? <span title={card.startedAt ? 'Running for' : 'Last activity'}>{time}</span> : null}\n <span data-tone={tone} title=\"At API list price — an equivalent\">{spendLabel(card.spend)}</span>\n {ci ? <span>{ci}</span> : null}\n {card.autoFix ? <span className={styles.flag}>auto-fix</span> : null}\n {card.autoMerge ? <span className={styles.flag}>auto-merge</span> : null}\n </div>\n {card.lastActivity ? <div className={styles.cardLast}>{card.lastActivity}</div> : null}\n </div>\n );\n}\n","/**\n * routes/verse/sections/AgentsSection.tsx — the Agents board (⌘6, 3.16).\n * Takes no props, per the shell contract; its own lazy chunk (the section\n * glob in shell/section-modules.ts), so the board costs chat first paint\n * nothing.\n */\nimport { AgentsBoard } from '../agents/AgentsBoard.js';\n\nexport function AgentsSection() {\n return <AgentsBoard />;\n}\n"],"mappings":"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"}
|