@ashlr/hub 3.10.0 → 3.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +156 -0
- package/README.md +343 -82
- package/dist/authority-surface.json +109 -29
- package/dist/build-identity.json +2 -2
- package/dist/cli/cloud.d.ts +39 -0
- package/dist/cli/cloud.js +448 -0
- package/dist/cli/cloud.js.map +1 -0
- package/dist/cli/completions.js +4 -0
- package/dist/cli/completions.js.map +1 -1
- package/dist/cli/help.js +2 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +10 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/cloud/backlog.d.ts +17 -0
- package/dist/core/cloud/backlog.js +177 -0
- package/dist/core/cloud/backlog.js.map +1 -0
- package/dist/core/cloud/budget.d.ts +19 -0
- package/dist/core/cloud/budget.js +99 -0
- package/dist/core/cloud/budget.js.map +1 -0
- package/dist/core/cloud/checkout.d.ts +41 -0
- package/dist/core/cloud/checkout.js +168 -0
- package/dist/core/cloud/checkout.js.map +1 -0
- package/dist/core/cloud/cloud-api.d.ts +86 -0
- package/dist/core/cloud/cloud-api.js +599 -0
- package/dist/core/cloud/cloud-api.js.map +1 -0
- package/dist/core/cloud/delivery-contract.d.ts +25 -0
- package/dist/core/cloud/delivery-contract.js +138 -0
- package/dist/core/cloud/delivery-contract.js.map +1 -0
- package/dist/core/cloud/improvement-backlog.d.ts +11 -0
- package/dist/core/cloud/improvement-backlog.js +26 -0
- package/dist/core/cloud/improvement-backlog.js.map +1 -0
- package/dist/core/cloud/launcher.d.ts +68 -0
- package/dist/core/cloud/launcher.js +312 -0
- package/dist/core/cloud/launcher.js.map +1 -0
- package/dist/core/cloud/service.d.ts +51 -0
- package/dist/core/cloud/service.js +215 -0
- package/dist/core/cloud/service.js.map +1 -0
- package/dist/core/cloud/store.d.ts +41 -0
- package/dist/core/cloud/store.js +278 -0
- package/dist/core/cloud/store.js.map +1 -0
- package/dist/core/cloud/tracker.d.ts +30 -0
- package/dist/core/cloud/tracker.js +152 -0
- package/dist/core/cloud/tracker.js.map +1 -0
- package/dist/core/cloud/types.d.ts +233 -0
- package/dist/core/cloud/types.js +73 -0
- package/dist/core/cloud/types.js.map +1 -0
- package/dist/core/daemon/capacity-publisher.d.ts +19 -0
- package/dist/core/daemon/capacity-publisher.js +49 -2
- package/dist/core/daemon/capacity-publisher.js.map +1 -1
- package/dist/core/daemon/overnight-status.d.ts +13 -0
- package/dist/core/daemon/overnight-status.js +93 -8
- package/dist/core/daemon/overnight-status.js.map +1 -1
- package/dist/core/fleet/dispatch-router.js +26 -9
- package/dist/core/fleet/dispatch-router.js.map +1 -1
- package/dist/core/fleet/fleet-runtime-journal.js +12 -5
- package/dist/core/fleet/fleet-runtime-journal.js.map +1 -1
- package/dist/core/fleet/fleet-types.d.ts +13 -0
- package/dist/core/routing/budget-store.js +11 -5
- package/dist/core/routing/budget-store.js.map +1 -1
- package/dist/core/routing/capacity-history-api.d.ts +30 -0
- package/dist/core/routing/capacity-history-api.js +147 -0
- package/dist/core/routing/capacity-history-api.js.map +1 -0
- package/dist/core/routing/capacity-history-types.d.ts +63 -0
- package/dist/core/routing/capacity-history-types.js +18 -0
- package/dist/core/routing/capacity-history-types.js.map +1 -0
- package/dist/core/routing/capacity-history.d.ts +130 -0
- package/dist/core/routing/capacity-history.js +654 -0
- package/dist/core/routing/capacity-history.js.map +1 -0
- package/dist/core/routing/headroom.d.ts +5 -1
- package/dist/core/routing/headroom.js +82 -41
- package/dist/core/routing/headroom.js.map +1 -1
- package/dist/core/routing/router.d.ts +8 -1
- package/dist/core/routing/router.js +49 -16
- package/dist/core/routing/router.js.map +1 -1
- package/dist/core/routing/seat-reasons.d.ts +35 -0
- package/dist/core/routing/seat-reasons.js +48 -0
- package/dist/core/routing/seat-reasons.js.map +1 -0
- package/dist/core/routing/types.d.ts +37 -0
- package/dist/core/routing/types.js.map +1 -1
- package/dist/core/verse/activity-api.d.ts +3 -1
- package/dist/core/verse/activity-api.js +16 -1
- package/dist/core/verse/activity-api.js.map +1 -1
- package/dist/core/verse/activity.d.ts +7 -0
- package/dist/core/verse/activity.js +23 -0
- package/dist/core/verse/activity.js.map +1 -1
- package/dist/core/verse/fleet-history-types.d.ts +12 -4
- package/dist/core/verse/fleet-history-types.js +4 -2
- package/dist/core/verse/fleet-history-types.js.map +1 -1
- package/dist/core/verse/fleet-live-api.d.ts +14 -1
- package/dist/core/verse/fleet-live-api.js +31 -11
- package/dist/core/verse/fleet-live-api.js.map +1 -1
- package/dist/core/verse/preferences.d.ts +3 -1
- package/dist/core/verse/preferences.js +5 -2
- package/dist/core/verse/preferences.js.map +1 -1
- package/dist/core/verse/types.d.ts +5 -1
- package/dist/core/verse/types.js.map +1 -1
- package/dist/core/verse/verse-api.d.ts +1 -1
- package/dist/core/verse/verse-api.js +4 -1
- package/dist/core/verse/verse-api.js.map +1 -1
- package/dist/core/vision/leader-cloud.d.ts +63 -0
- package/dist/core/vision/leader-cloud.js +134 -0
- package/dist/core/vision/leader-cloud.js.map +1 -0
- package/dist/core/vision/leader.d.ts +6 -0
- package/dist/core/vision/leader.js +12 -1
- package/dist/core/vision/leader.js.map +1 -1
- package/dist/core/web/public/next/assets/{ActionMenu-DhbNne-M.js → ActionMenu-CQvNJvHY.js} +2 -2
- package/dist/core/web/public/next/assets/{ActionMenu-DhbNne-M.js.map → ActionMenu-CQvNJvHY.js.map} +1 -1
- package/dist/core/web/public/next/assets/Advanced-Bywv_iYR.css +1 -0
- package/dist/core/web/public/next/assets/Advanced-DEM93sKI.js +2 -0
- package/dist/core/web/public/next/assets/Advanced-DEM93sKI.js.map +1 -0
- package/dist/core/web/public/next/assets/{App-DyBg1v_q.js → App-CimXmK0L.js} +5 -5
- package/dist/core/web/public/next/assets/{App-DyBg1v_q.js.map → App-CimXmK0L.js.map} +1 -1
- package/dist/core/web/public/next/assets/AppsSection-D6U-dSj6.js +2 -0
- package/dist/core/web/public/next/assets/AppsSection-D6U-dSj6.js.map +1 -0
- package/dist/core/web/public/next/assets/AreaTrend-LD9lCPkT.js +2 -0
- package/dist/core/web/public/next/assets/AreaTrend-LD9lCPkT.js.map +1 -0
- package/dist/core/web/public/next/assets/AutonomySection-3V9pUyxm.js +2 -0
- package/dist/core/web/public/next/assets/{AutonomySection-CoMngwNB.js.map → AutonomySection-3V9pUyxm.js.map} +1 -1
- package/dist/core/web/public/next/assets/BranchBar-BZNQ50YE.css +1 -0
- package/dist/core/web/public/next/assets/BranchBar-U8UdpfEB.js +2 -0
- package/dist/core/web/public/next/assets/BranchBar-U8UdpfEB.js.map +1 -0
- package/dist/core/web/public/next/assets/BudgetControl-DOTlMSmW.js +2 -0
- package/dist/core/web/public/next/assets/BudgetControl-DOTlMSmW.js.map +1 -0
- package/dist/core/web/public/next/assets/BurnDown-x4PWH9JF.js +2 -0
- package/dist/core/web/public/next/assets/BurnDown-x4PWH9JF.js.map +1 -0
- package/dist/core/web/public/next/assets/{Button-0-nNbv1h.js → Button-DYv_KKxr.js} +2 -2
- package/dist/core/web/public/next/assets/{Button-0-nNbv1h.js.map → Button-DYv_KKxr.js.map} +1 -1
- package/dist/core/web/public/next/assets/CapacityStrip-C667yQe8.js +2 -0
- package/dist/core/web/public/next/assets/CapacityStrip-C667yQe8.js.map +1 -0
- package/dist/core/web/public/next/assets/CapacityStrip-Cc28CyWk.css +1 -0
- package/dist/core/web/public/next/assets/ChatSection-CCcIPpOq.js +3 -0
- package/dist/core/web/public/next/assets/{ChatSection-B9cdRKUh.js.map → ChatSection-CCcIPpOq.js.map} +1 -1
- package/dist/core/web/public/next/assets/CloudBudgetForm-DJeJvBEu.js +2 -0
- package/dist/core/web/public/next/assets/CloudBudgetForm-DJeJvBEu.js.map +1 -0
- package/dist/core/web/public/next/assets/{CommandPalette-GpeCSrPy.js → CommandPalette-FiD4N8XD.js} +2 -2
- package/dist/core/web/public/next/assets/{CommandPalette-GpeCSrPy.js.map → CommandPalette-FiD4N8XD.js.map} +1 -1
- package/dist/core/web/public/next/assets/CommandSection-DN8KwH-X.js +2 -0
- package/dist/core/web/public/next/assets/CommandSection-DN8KwH-X.js.map +1 -0
- package/dist/core/web/public/next/assets/Composer-ByzxOJK6.css +1 -0
- package/dist/core/web/public/next/assets/Composer.module-C8U73KdQ.js +2 -0
- package/dist/core/web/public/next/assets/{Composer.module-DJMdrqNt.js.map → Composer.module-C8U73KdQ.js.map} +1 -1
- package/dist/core/web/public/next/assets/DiffPane-BAvvbBsf.css +1 -0
- package/dist/core/web/public/next/assets/DiffPane-DLJ3gGGK.js +2 -0
- package/dist/core/web/public/next/assets/DiffPane-DLJ3gGGK.js.map +1 -0
- package/dist/core/web/public/next/assets/{DiffViewer-tOGWk0CA.js → DiffViewer-B7NWPjIO.js} +2 -2
- package/dist/core/web/public/next/assets/{DiffViewer-tOGWk0CA.js.map → DiffViewer-B7NWPjIO.js.map} +1 -1
- package/dist/core/web/public/next/assets/DockHost-B4RaYOET.css +1 -0
- package/dist/core/web/public/next/assets/DockHost-DvR-hPhZ.js +2 -0
- package/dist/core/web/public/next/assets/DockHost-DvR-hPhZ.js.map +1 -0
- package/dist/core/web/public/next/assets/{EmptyState-DdJ4CxtO.js → EmptyState-DhNgDDrF.js} +2 -2
- package/dist/core/web/public/next/assets/{EmptyState-DdJ4CxtO.js.map → EmptyState-DhNgDDrF.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Epistemic-BLjM5y_y.js → Epistemic-uARPnx9x.js} +2 -2
- package/dist/core/web/public/next/assets/{Epistemic-BLjM5y_y.js.map → Epistemic-uARPnx9x.js.map} +1 -1
- package/dist/core/web/public/next/assets/FleetSection-CFiWeOEs.css +1 -0
- package/dist/core/web/public/next/assets/FleetSection-D_zRBCub.js +3 -0
- package/dist/core/web/public/next/assets/FleetSection-D_zRBCub.js.map +1 -0
- package/dist/core/web/public/next/assets/Funnel-CL8uHONq.js +2 -0
- package/dist/core/web/public/next/assets/Funnel-CL8uHONq.js.map +1 -0
- package/dist/core/web/public/next/assets/GearTray-C7k4l_BW.js +2 -0
- package/dist/core/web/public/next/assets/GearTray-C7k4l_BW.js.map +1 -0
- package/dist/core/web/public/next/assets/GrowthSection-DwdNSGj8.js +2 -0
- package/dist/core/web/public/next/assets/GrowthSection-DwdNSGj8.js.map +1 -0
- package/dist/core/web/public/next/assets/HandoffDialog-FPVOqOMN.js +2 -0
- package/dist/core/web/public/next/assets/HandoffDialog-FPVOqOMN.js.map +1 -0
- package/dist/core/web/public/next/assets/{Input-CTu0CycC.js → Input-B9-VLcHS.js} +2 -2
- package/dist/core/web/public/next/assets/{Input-CTu0CycC.js.map → Input-B9-VLcHS.js.map} +1 -1
- package/dist/core/web/public/next/assets/{LeaderCard-BuSDeATv.js → LeaderCard-4R0BhDzT.js} +2 -2
- package/dist/core/web/public/next/assets/{LeaderCard-BuSDeATv.js.map → LeaderCard-4R0BhDzT.js.map} +1 -1
- package/dist/core/web/public/next/assets/{MatrixHeatmap-9dKgJ_pT.css → MatrixHeatmap-Bmnvo1l1.css} +1 -1
- package/dist/core/web/public/next/assets/MatrixHeatmap-DiuushcS.js +2 -0
- package/dist/core/web/public/next/assets/MatrixHeatmap-DiuushcS.js.map +1 -0
- package/dist/core/web/public/next/assets/McpSection-CJ__OJKl.js +2 -0
- package/dist/core/web/public/next/assets/{McpSection-1UncWBpW.js.map → McpSection-CJ__OJKl.js.map} +1 -1
- package/dist/core/web/public/next/assets/MessageMarkdown-Cgh5f1-Q.css +1 -0
- package/dist/core/web/public/next/assets/MessageMarkdown-qWKyJvAQ.js +3 -0
- package/dist/core/web/public/next/assets/{MessageMarkdown-C4pl9LI5.js.map → MessageMarkdown-qWKyJvAQ.js.map} +1 -1
- package/dist/core/web/public/next/assets/{MessageMarkdownRenderer-CZsF77ZM.js → MessageMarkdownRenderer-x05TrsrW.js} +2 -2
- package/dist/core/web/public/next/assets/{MessageMarkdownRenderer-CZsF77ZM.js.map → MessageMarkdownRenderer-x05TrsrW.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Meter-C18ciKz4.js → Meter-D-hncpkO.js} +2 -2
- package/dist/core/web/public/next/assets/{Meter-C18ciKz4.js.map → Meter-D-hncpkO.js.map} +1 -1
- package/dist/core/web/public/next/assets/MindSection-BjXHkQPS.js +2 -0
- package/dist/core/web/public/next/assets/MindSection-BjXHkQPS.js.map +1 -0
- package/dist/core/web/public/next/assets/MutationTokenDialog-SkRxqV_I.js +2 -0
- package/dist/core/web/public/next/assets/MutationTokenDialog-SkRxqV_I.js.map +1 -0
- package/dist/core/web/public/next/assets/NeedsYouDrawer-BpvidnM2.css +1 -0
- package/dist/core/web/public/next/assets/NeedsYouDrawer-rSd1ZHAR.js +2 -0
- package/dist/core/web/public/next/assets/NeedsYouDrawer-rSd1ZHAR.js.map +1 -0
- package/dist/core/web/public/next/assets/NeedsYouList-CG-nB1tr.js +2 -0
- package/dist/core/web/public/next/assets/NeedsYouList-CG-nB1tr.js.map +1 -0
- package/dist/core/web/public/next/assets/NeedsYouList-CruOt4JT.css +1 -0
- package/dist/core/web/public/next/assets/NewChatDialog-BeDQ1eW3.js +3 -0
- package/dist/core/web/public/next/assets/{NewChatDialog-B_BsS9pr.js.map → NewChatDialog-BeDQ1eW3.js.map} +1 -1
- package/dist/core/web/public/next/assets/OnboardingFlow-CkTZtt-m.js +2 -0
- package/dist/core/web/public/next/assets/{OnboardingFlow-CtCPpgoX.js.map → OnboardingFlow-CkTZtt-m.js.map} +1 -1
- package/dist/core/web/public/next/assets/PreviewPane-DoMsJSG3.css +1 -0
- package/dist/core/web/public/next/assets/PreviewPane-kzbbSK4u.js +2 -0
- package/dist/core/web/public/next/assets/PreviewPane-kzbbSK4u.js.map +1 -0
- package/dist/core/web/public/next/assets/RailStatus-D-t2gPae.js +2 -0
- package/dist/core/web/public/next/assets/RailStatus-D-t2gPae.js.map +1 -0
- package/dist/core/web/public/next/assets/{RefreshIndicator-CnhEovMZ.js → RefreshIndicator-BLnr9IOM.js} +2 -2
- package/dist/core/web/public/next/assets/{RefreshIndicator-CnhEovMZ.js.map → RefreshIndicator-BLnr9IOM.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-28gLwmwV.js → ResourcePoolConsoleApp-BeG0gBif.js} +4 -4
- package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-28gLwmwV.js.map → ResourcePoolConsoleApp-BeG0gBif.js.map} +1 -1
- package/dist/core/web/public/next/assets/ResourcesChrome-B3Z3O98t.css +1 -0
- package/dist/core/web/public/next/assets/ResourcesChrome-BzV6bkIa.js +3 -0
- package/dist/core/web/public/next/assets/ResourcesChrome-BzV6bkIa.js.map +1 -0
- package/dist/core/web/public/next/assets/ResourcesDrawer-CSKIO_wZ.css +1 -0
- package/dist/core/web/public/next/assets/ResourcesDrawer-o4ILHdep.js +2 -0
- package/dist/core/web/public/next/assets/ResourcesDrawer-o4ILHdep.js.map +1 -0
- package/dist/core/web/public/next/assets/{RouteErrorBoundary-AyUPCIb3.js → RouteErrorBoundary-C5SxA2Dg.js} +2 -2
- package/dist/core/web/public/next/assets/{RouteErrorBoundary-AyUPCIb3.js.map → RouteErrorBoundary-C5SxA2Dg.js.map} +1 -1
- package/dist/core/web/public/next/assets/RunInCloudAction-C3LBp7C4.js +2 -0
- package/dist/core/web/public/next/assets/RunInCloudAction-C3LBp7C4.js.map +1 -0
- package/dist/core/web/public/next/assets/SeatSelector-DpvvbjNm.js +3 -0
- package/dist/core/web/public/next/assets/{SeatSelector-DaUO-zoK.js.map → SeatSelector-DpvvbjNm.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Segmented-B_8c_83S.js → Segmented-BL40udoO.js} +2 -2
- package/dist/core/web/public/next/assets/{Segmented-B_8c_83S.js.map → Segmented-BL40udoO.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Select-Bl5g5Dt_.js → Select-FWLnAw_j.js} +2 -2
- package/dist/core/web/public/next/assets/{Select-Bl5g5Dt_.js.map → Select-FWLnAw_j.js.map} +1 -1
- package/dist/core/web/public/next/assets/{SessionInsightChip-w0I21q0c.js → SessionInsightChip-CWye87Ju.js} +2 -2
- package/dist/core/web/public/next/assets/{SessionInsightChip-w0I21q0c.js.map → SessionInsightChip-CWye87Ju.js.map} +1 -1
- package/dist/core/web/public/next/assets/SessionSearch-YvCHFUuN.js +2 -0
- package/dist/core/web/public/next/assets/{SessionSearch-B5aQ0BCM.js.map → SessionSearch-YvCHFUuN.js.map} +1 -1
- package/dist/core/web/public/next/assets/SettingsSection-Dr18upeE.js +2 -0
- package/dist/core/web/public/next/assets/SettingsSection-Dr18upeE.js.map +1 -0
- package/dist/core/web/public/next/assets/{Sheet-CVjk-cLI.js → Sheet-DZKcQXQg.js} +2 -2
- package/dist/core/web/public/next/assets/{Sheet-CVjk-cLI.js.map → Sheet-DZKcQXQg.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ShortcutsOverlay-BiBjnBcc.js → ShortcutsOverlay-BpDimdPq.js} +2 -2
- package/dist/core/web/public/next/assets/{ShortcutsOverlay-BiBjnBcc.js.map → ShortcutsOverlay-BpDimdPq.js.map} +1 -1
- package/dist/core/web/public/next/assets/Sidebar-BRc1vGDF.css +1 -0
- package/dist/core/web/public/next/assets/Sidebar-BoBzBEFX.js +3 -0
- package/dist/core/web/public/next/assets/Sidebar-BoBzBEFX.js.map +1 -0
- package/dist/core/web/public/next/assets/{Slider-BS9MU5ZV.js → Slider-DUMo9HDD.js} +2 -2
- package/dist/core/web/public/next/assets/{Slider-BS9MU5ZV.js.map → Slider-DUMo9HDD.js.map} +1 -1
- package/dist/core/web/public/next/assets/{StatusBadge-DAf-ArKE.js → StatusBadge-BwnBNFQr.js} +2 -2
- package/dist/core/web/public/next/assets/{StatusBadge-DAf-ArKE.js.map → StatusBadge-BwnBNFQr.js.map} +1 -1
- package/dist/core/web/public/next/assets/StepBand-PDXMIlRk.js +2 -0
- package/dist/core/web/public/next/assets/StepBand-PDXMIlRk.js.map +1 -0
- package/dist/core/web/public/next/assets/{Surface-CiYOdNKQ.js → Surface-B3TZVoER.js} +2 -2
- package/dist/core/web/public/next/assets/{Surface-CiYOdNKQ.js.map → Surface-B3TZVoER.js.map} +1 -1
- package/dist/core/web/public/next/assets/Swimlane-DR4OgON_.js +2 -0
- package/dist/core/web/public/next/assets/Swimlane-DR4OgON_.js.map +1 -0
- package/dist/core/web/public/next/assets/{Switch-BzRXtNPt.js → Switch-CcR5Llk5.js} +2 -2
- package/dist/core/web/public/next/assets/{Switch-BzRXtNPt.js.map → Switch-CcR5Llk5.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Tag-DEEbDz7T.js → Tag-_-K1h7Hk.js} +2 -2
- package/dist/core/web/public/next/assets/{Tag-DEEbDz7T.js.map → Tag-_-K1h7Hk.js.map} +1 -1
- package/dist/core/web/public/next/assets/TerminalPane-BwfMbnJz.css +1 -0
- package/dist/core/web/public/next/assets/TerminalPane-_1aH4ndN.js +7 -0
- package/dist/core/web/public/next/assets/TerminalPane-_1aH4ndN.js.map +1 -0
- package/dist/core/web/public/next/assets/UniverseConsoleApp-BUsq-inZ.js +2 -0
- package/dist/core/web/public/next/assets/{UniverseConsoleApp-DKqAf-eD.js.map → UniverseConsoleApp-BUsq-inZ.js.map} +1 -1
- package/dist/core/web/public/next/assets/{UniverseView-D6081LQL.js → UniverseView-Dogy_dsB.js} +2 -2
- package/dist/core/web/public/next/assets/{UniverseView-D6081LQL.js.map → UniverseView-Dogy_dsB.js.map} +1 -1
- package/dist/core/web/public/next/assets/UsageSection-DiX_dTyo.js +2 -0
- package/dist/core/web/public/next/assets/UsageSection-DiX_dTyo.js.map +1 -0
- package/dist/core/web/public/next/assets/UsageSection-DsB-Jqyl.css +1 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-Cxqr-3qc.css +1 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-WVeyJnW7.js +3 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-WVeyJnW7.js.map +1 -0
- package/dist/core/web/public/next/assets/Workspace-BYW9dm90.css +1 -0
- package/dist/core/web/public/next/assets/Workspace-BbxZHwQd.js +10 -0
- package/dist/core/web/public/next/assets/Workspace-BbxZHwQd.js.map +1 -0
- package/dist/core/web/public/next/assets/actions-Ddfg2iLl.css +1 -0
- package/dist/core/web/public/next/assets/actions-s2lfm_5k.js +2 -0
- package/dist/core/web/public/next/assets/actions-s2lfm_5k.js.map +1 -0
- package/dist/core/web/public/next/assets/apps-model-CDFvmsQV.js +2 -0
- package/dist/core/web/public/next/assets/apps-model-CDFvmsQV.js.map +1 -0
- package/dist/core/web/public/next/assets/{budget-queries-Dacv1VYP.js → budget-queries-wUshcovN.js} +2 -2
- package/dist/core/web/public/next/assets/{budget-queries-Dacv1VYP.js.map → budget-queries-wUshcovN.js.map} +1 -1
- package/dist/core/web/public/next/assets/calendar-day-BxBYHfX1.js +2 -0
- package/dist/core/web/public/next/assets/calendar-day-BxBYHfX1.js.map +1 -0
- package/dist/core/web/public/next/assets/capacity-strip-model-Bj_9ztzs.js +2 -0
- package/dist/core/web/public/next/assets/capacity-strip-model-Bj_9ztzs.js.map +1 -0
- package/dist/core/web/public/next/assets/charts-CMSgAUKn.js +2 -0
- package/dist/core/web/public/next/assets/charts-CMSgAUKn.js.map +1 -0
- package/dist/core/web/public/next/assets/cloud-C1KPNRHC.css +1 -0
- package/dist/core/web/public/next/assets/cloud-queries-CnV1yaNG.js +2 -0
- package/dist/core/web/public/next/assets/cloud-queries-CnV1yaNG.js.map +1 -0
- package/dist/core/web/public/next/assets/cloud.module-CiwatLj3.js +2 -0
- package/dist/core/web/public/next/assets/cloud.module-CiwatLj3.js.map +1 -0
- package/dist/core/web/public/next/assets/colors-BZ3a9wFf.js +2 -0
- package/dist/core/web/public/next/assets/colors-BZ3a9wFf.js.map +1 -0
- package/dist/core/web/public/next/assets/{command-bus-CpYuam1F.js → command-bus-DqimKCUY.js} +2 -2
- package/dist/core/web/public/next/assets/{command-bus-CpYuam1F.js.map → command-bus-DqimKCUY.js.map} +1 -1
- package/dist/core/web/public/next/assets/command-catalog-BdtDH93o.js +2 -0
- package/dist/core/web/public/next/assets/command-catalog-BdtDH93o.js.map +1 -0
- package/dist/core/web/public/next/assets/{composer-keys-CYz4U4Bg.js → composer-keys-DBRymxQn.js} +2 -2
- package/dist/core/web/public/next/assets/{composer-keys-CYz4U4Bg.js.map → composer-keys-DBRymxQn.js.map} +1 -1
- package/dist/core/web/public/next/assets/context-model-Dwd49-dp.js +2 -0
- package/dist/core/web/public/next/assets/context-model-Dwd49-dp.js.map +1 -0
- package/dist/core/web/public/next/assets/context-model-MT17V86_.js +2 -0
- package/dist/core/web/public/next/assets/context-model-MT17V86_.js.map +1 -0
- package/dist/core/web/public/next/assets/context-queries-xVKIeynP.js +2 -0
- package/dist/core/web/public/next/assets/context-queries-xVKIeynP.js.map +1 -0
- package/dist/core/web/public/next/assets/context.module-BijAfoJw.js +2 -0
- package/dist/core/web/public/next/assets/context.module-BijAfoJw.js.map +1 -0
- package/dist/core/web/public/next/assets/{control-queries-BGjarMm9.js → control-queries-DOZR-D8G.js} +2 -2
- package/dist/core/web/public/next/assets/{control-queries-BGjarMm9.js.map → control-queries-DOZR-D8G.js.map} +1 -1
- package/dist/core/web/public/next/assets/dark-since-DOMvtB_G.js +2 -0
- package/dist/core/web/public/next/assets/dark-since-DOMvtB_G.js.map +1 -0
- package/dist/core/web/public/next/assets/dock-icons-8EtARwUm.js +2 -0
- package/dist/core/web/public/next/assets/dock-icons-8EtARwUm.js.map +1 -0
- package/dist/core/web/public/next/assets/dock-panes-UKS-mXhr.js +2 -0
- package/dist/core/web/public/next/assets/{dock-panes-BNTLvX7G.js.map → dock-panes-UKS-mXhr.js.map} +1 -1
- package/dist/core/web/public/next/assets/{dock-store-_E5h6TEq.js → dock-store-BA1cHOYA.js} +2 -2
- package/dist/core/web/public/next/assets/{dock-store-_E5h6TEq.js.map → dock-store-BA1cHOYA.js.map} +1 -1
- package/dist/core/web/public/next/assets/fleet-model-CNe8Wh-s.js +2 -0
- package/dist/core/web/public/next/assets/fleet-model-CNe8Wh-s.js.map +1 -0
- package/dist/core/web/public/next/assets/fleet-queries-BSdRlUwJ.js +2 -0
- package/dist/core/web/public/next/assets/fleet-queries-BSdRlUwJ.js.map +1 -0
- package/dist/core/web/public/next/assets/format-B8DAVcn2.js +2 -0
- package/dist/core/web/public/next/assets/format-B8DAVcn2.js.map +1 -0
- package/dist/core/web/public/next/assets/format-DKrNjdwD.js +2 -0
- package/dist/core/web/public/next/assets/format-DKrNjdwD.js.map +1 -0
- package/dist/core/web/public/next/assets/{git-model-5v5xGobf.js → git-model-CivuBY_D.js} +2 -2
- package/dist/core/web/public/next/assets/{git-model-5v5xGobf.js.map → git-model-CivuBY_D.js.map} +1 -1
- package/dist/core/web/public/next/assets/global-Di2PUgj4.js +2 -0
- package/dist/core/web/public/next/assets/global-Di2PUgj4.js.map +1 -0
- package/dist/core/web/public/next/assets/{guarded-action-vOPc8v75.js → guarded-action-CvOHcqyH.js} +2 -2
- package/dist/core/web/public/next/assets/{guarded-action-vOPc8v75.js.map → guarded-action-CvOHcqyH.js.map} +1 -1
- package/dist/core/web/public/next/assets/{icons-DWb24OA6.js → icons-B_yuAgdN.js} +2 -2
- package/dist/core/web/public/next/assets/{icons-DWb24OA6.js.map → icons-B_yuAgdN.js.map} +1 -1
- package/dist/core/web/public/next/assets/{index-afDA8cwW.js → index-oAAq8XJa.js} +3 -3
- package/dist/core/web/public/next/assets/{index-afDA8cwW.js.map → index-oAAq8XJa.js.map} +1 -1
- package/dist/core/web/public/next/assets/live-model-DCw_IFRI.js +2 -0
- package/dist/core/web/public/next/assets/live-model-DCw_IFRI.js.map +1 -0
- package/dist/core/web/public/next/assets/local-model-DFyjKX0b.js +2 -0
- package/dist/core/web/public/next/assets/local-model-DFyjKX0b.js.map +1 -0
- package/dist/core/web/public/next/assets/mind-B9PzLcl0.css +1 -0
- package/dist/core/web/public/next/assets/mind.module-vnuJcwvD.js +2 -0
- package/dist/core/web/public/next/assets/mind.module-vnuJcwvD.js.map +1 -0
- package/dist/core/web/public/next/assets/mutations-Dpsql5t7.js +2 -0
- package/dist/core/web/public/next/assets/{mutations-C6E10SPX.js.map → mutations-Dpsql5t7.js.map} +1 -1
- package/dist/core/web/public/next/assets/{overnight-queries-CCGfiS-g.js → overnight-queries-X-44Gsw5.js} +2 -2
- package/dist/core/web/public/next/assets/{overnight-queries-CCGfiS-g.js.map → overnight-queries-X-44Gsw5.js.map} +1 -1
- package/dist/core/web/public/next/assets/pane-chrome-8JmEhHVD.css +1 -0
- package/dist/core/web/public/next/assets/pane-chrome.module-D7o-fVd0.js +2 -0
- package/dist/core/web/public/next/assets/pane-chrome.module-D7o-fVd0.js.map +1 -0
- package/dist/core/web/public/next/assets/primitives-BDIcUvob.js +1 -0
- package/dist/core/web/public/next/assets/{queries-BuYIEHst.js → queries-BA4rNGD-.js} +2 -2
- package/dist/core/web/public/next/assets/{queries-BuYIEHst.js.map → queries-BA4rNGD-.js.map} +1 -1
- package/dist/core/web/public/next/assets/{reasoning-pref-BVzGczV7.js → reasoning-pref-B9-DJUXP.js} +2 -2
- package/dist/core/web/public/next/assets/{reasoning-pref-BVzGczV7.js.map → reasoning-pref-B9-DJUXP.js.map} +1 -1
- package/dist/core/web/public/next/assets/seat-subscription-CH6fW4fJ.js +2 -0
- package/dist/core/web/public/next/assets/seat-subscription-CH6fW4fJ.js.map +1 -0
- package/dist/core/web/public/next/assets/{section-visibility-CSrsTcwK.js → section-visibility-qFqc_d4Z.js} +2 -2
- package/dist/core/web/public/next/assets/{section-visibility-CSrsTcwK.js.map → section-visibility-qFqc_d4Z.js.map} +1 -1
- package/dist/core/web/public/next/assets/{sidebar-model-C8fyqSQY.js → sidebar-model-M1GaQU5l.js} +2 -2
- package/dist/core/web/public/next/assets/{sidebar-model-C8fyqSQY.js.map → sidebar-model-M1GaQU5l.js.map} +1 -1
- package/dist/core/web/public/next/assets/slots-Ds9ZIqUL.js +3 -0
- package/dist/core/web/public/next/assets/{slots-W8gkmdfE.js.map → slots-Ds9ZIqUL.js.map} +1 -1
- package/dist/core/web/public/next/assets/surface-data-J52iIGMD.js +2 -0
- package/dist/core/web/public/next/assets/surface-data-J52iIGMD.js.map +1 -0
- package/dist/core/web/public/next/assets/surface-prefetch-CgZ-LEJK.js +2 -0
- package/dist/core/web/public/next/assets/surface-prefetch-CgZ-LEJK.js.map +1 -0
- package/dist/core/web/public/next/assets/tasks-model-ent8f0jZ.js +2 -0
- package/dist/core/web/public/next/assets/{tasks-model-CnYQzgxk.js.map → tasks-model-ent8f0jZ.js.map} +1 -1
- package/dist/core/web/public/next/assets/{terminal-icons-CxUYaWX9.js → terminal-icons-DJTK7QpR.js} +2 -2
- package/dist/core/web/public/next/assets/{terminal-icons-CxUYaWX9.js.map → terminal-icons-DJTK7QpR.js.map} +1 -1
- package/dist/core/web/public/next/assets/{tool-semantics-CTRuLF5j.js → tool-semantics-GX8ScuSH.js} +2 -2
- package/dist/core/web/public/next/assets/{tool-semantics-CTRuLF5j.js.map → tool-semantics-GX8ScuSH.js.map} +1 -1
- package/dist/core/web/public/next/assets/{turn-files-BvB5LLNw.js → turn-files-BPHQzYuH.js} +2 -2
- package/dist/core/web/public/next/assets/{turn-files-BvB5LLNw.js.map → turn-files-BPHQzYuH.js.map} +1 -1
- package/dist/core/web/public/next/assets/types-D5XOdyw8.js +2 -0
- package/dist/core/web/public/next/assets/types-D5XOdyw8.js.map +1 -0
- package/dist/core/web/public/next/assets/{usage-queries-CQOpeE1H.js → usage-queries-Bn8ccqyN.js} +2 -2
- package/dist/core/web/public/next/assets/{usage-queries-CQOpeE1H.js.map → usage-queries-Bn8ccqyN.js.map} +1 -1
- package/dist/core/web/public/next/assets/use-guarded-action-C2HlSzkz.js +2 -0
- package/dist/core/web/public/next/assets/use-guarded-action-C2HlSzkz.js.map +1 -0
- package/dist/core/web/public/next/assets/{use-ticker-hryPXnyp.js → use-ticker-BNc1H4ZC.js} +2 -2
- package/dist/core/web/public/next/assets/{use-ticker-hryPXnyp.js.map → use-ticker-BNc1H4ZC.js.map} +1 -1
- package/dist/core/web/public/next/assets/use-token-gate-B3IJL6bf.js +2 -0
- package/dist/core/web/public/next/assets/use-token-gate-B3IJL6bf.js.map +1 -0
- package/dist/core/web/public/next/assets/{useActivity-Cg_9-7nt.js → useActivity-Bk3XgXjL.js} +2 -2
- package/dist/core/web/public/next/assets/{useActivity-Cg_9-7nt.js.map → useActivity-Bk3XgXjL.js.map} +1 -1
- package/dist/core/web/public/next/assets/useChartWidth-BAtVgn2n.css +1 -0
- package/dist/core/web/public/next/assets/useChartWidth-lZ9PrQn0.js +2 -0
- package/dist/core/web/public/next/assets/useChartWidth-lZ9PrQn0.js.map +1 -0
- package/dist/core/web/public/next/assets/{useSeatsRefresh-4Ov9eT1F.js → useSeatsRefresh-CG4jczeL.js} +2 -2
- package/dist/core/web/public/next/assets/{useSeatsRefresh-4Ov9eT1F.js.map → useSeatsRefresh-CG4jczeL.js.map} +1 -1
- package/dist/core/web/public/next/assets/verse-model-D7NZQFAR.js +2 -0
- package/dist/core/web/public/next/assets/verse-model-D7NZQFAR.js.map +1 -0
- package/dist/core/web/public/next/assets/{verse-queries-BjQoOTwv.js → verse-queries-DvIJcn6Z.js} +2 -2
- package/dist/core/web/public/next/assets/{verse-queries-BjQoOTwv.js.map → verse-queries-DvIJcn6Z.js.map} +1 -1
- package/dist/core/web/public/next/assets/verse-store-DjBWj04q.js +3 -0
- package/dist/core/web/public/next/assets/verse-store-DjBWj04q.js.map +1 -0
- package/dist/core/web/public/next/assets/verse-ui-store-zafyzXKD.js +3 -0
- package/dist/core/web/public/next/assets/{verse-ui-store-KTTKfv-T.js.map → verse-ui-store-zafyzXKD.js.map} +1 -1
- package/dist/core/web/public/next/assets/{viewport-ZB86jdES.js → viewport-BEqGUoTA.js} +2 -2
- package/dist/core/web/public/next/assets/{viewport-ZB86jdES.js.map → viewport-BEqGUoTA.js.map} +1 -1
- package/dist/core/web/public/next/assets/warmup-BR6pxAKs.js +3 -0
- package/dist/core/web/public/next/assets/warmup-BR6pxAKs.js.map +1 -0
- package/dist/core/web/public/next/assets/{workspace-model-4hq_Mv3N.js → workspace-model-D_tWD5Wt.js} +2 -2
- package/dist/core/web/public/next/assets/{workspace-model-4hq_Mv3N.js.map → workspace-model-D_tWD5Wt.js.map} +1 -1
- package/dist/core/web/public/next/index.html +1 -1
- package/dist/release-dependency-inventory.json +1 -1
- package/package.json +1 -1
- package/dist/core/web/public/next/assets/Advanced-CHjxJt2z.css +0 -1
- package/dist/core/web/public/next/assets/Advanced-DM0DYibH.js +0 -2
- package/dist/core/web/public/next/assets/Advanced-DM0DYibH.js.map +0 -1
- package/dist/core/web/public/next/assets/AppsSection-CXxbfPJQ.js +0 -2
- package/dist/core/web/public/next/assets/AppsSection-CXxbfPJQ.js.map +0 -1
- package/dist/core/web/public/next/assets/AreaTrend-gUVXkfhf.js +0 -2
- package/dist/core/web/public/next/assets/AreaTrend-gUVXkfhf.js.map +0 -1
- package/dist/core/web/public/next/assets/AutonomySection-CoMngwNB.js +0 -2
- package/dist/core/web/public/next/assets/BranchBar-C-NovaXr.js +0 -2
- package/dist/core/web/public/next/assets/BranchBar-C-NovaXr.js.map +0 -1
- package/dist/core/web/public/next/assets/BranchBar-C9BpPVLr.css +0 -1
- package/dist/core/web/public/next/assets/BudgetControl-P5lMxHvQ.js +0 -2
- package/dist/core/web/public/next/assets/BudgetControl-P5lMxHvQ.js.map +0 -1
- package/dist/core/web/public/next/assets/BurnDown-4P1LDoCL.js +0 -2
- package/dist/core/web/public/next/assets/BurnDown-4P1LDoCL.js.map +0 -1
- package/dist/core/web/public/next/assets/CapacityStrip-D6Yyg4a1.js +0 -2
- package/dist/core/web/public/next/assets/CapacityStrip-D6Yyg4a1.js.map +0 -1
- package/dist/core/web/public/next/assets/CapacityStrip-wgFP9MUA.css +0 -1
- package/dist/core/web/public/next/assets/ChatSection-B9cdRKUh.js +0 -3
- package/dist/core/web/public/next/assets/CommandSection-BC0uXim_.js +0 -2
- package/dist/core/web/public/next/assets/CommandSection-BC0uXim_.js.map +0 -1
- package/dist/core/web/public/next/assets/Composer-CkcwbQhG.css +0 -1
- package/dist/core/web/public/next/assets/Composer.module-DJMdrqNt.js +0 -2
- package/dist/core/web/public/next/assets/DiffPane-5uLKa0au.js +0 -2
- package/dist/core/web/public/next/assets/DiffPane-5uLKa0au.js.map +0 -1
- package/dist/core/web/public/next/assets/DiffPane-Csboxnn0.css +0 -1
- package/dist/core/web/public/next/assets/DockHost-BGnTgdIb.css +0 -1
- package/dist/core/web/public/next/assets/DockHost-CBV_6Ehi.js +0 -2
- package/dist/core/web/public/next/assets/DockHost-CBV_6Ehi.js.map +0 -1
- package/dist/core/web/public/next/assets/FleetSection-DuJcQCGg.js +0 -3
- package/dist/core/web/public/next/assets/FleetSection-DuJcQCGg.js.map +0 -1
- package/dist/core/web/public/next/assets/FleetSection-w9AjqfTR.css +0 -1
- package/dist/core/web/public/next/assets/Funnel-qX3Hlbce.js +0 -2
- package/dist/core/web/public/next/assets/Funnel-qX3Hlbce.js.map +0 -1
- package/dist/core/web/public/next/assets/GearTray-kVGP1coG.js +0 -2
- package/dist/core/web/public/next/assets/GearTray-kVGP1coG.js.map +0 -1
- package/dist/core/web/public/next/assets/GrowthSection-CYxJ9MH5.js +0 -2
- package/dist/core/web/public/next/assets/GrowthSection-CYxJ9MH5.js.map +0 -1
- package/dist/core/web/public/next/assets/HandoffDialog-DHZo3Ev0.js +0 -2
- package/dist/core/web/public/next/assets/HandoffDialog-DHZo3Ev0.js.map +0 -1
- package/dist/core/web/public/next/assets/MatrixHeatmap-B_JWCjZx.js +0 -2
- package/dist/core/web/public/next/assets/MatrixHeatmap-B_JWCjZx.js.map +0 -1
- package/dist/core/web/public/next/assets/McpSection-1UncWBpW.js +0 -2
- package/dist/core/web/public/next/assets/MessageMarkdown-C4pl9LI5.js +0 -3
- package/dist/core/web/public/next/assets/MessageMarkdown-Czcl3L_Q.css +0 -1
- package/dist/core/web/public/next/assets/MindSection-C3fCw_fD.js +0 -2
- package/dist/core/web/public/next/assets/MindSection-C3fCw_fD.js.map +0 -1
- package/dist/core/web/public/next/assets/MutationTokenDialog-Dn0tzCrh.js +0 -2
- package/dist/core/web/public/next/assets/MutationTokenDialog-Dn0tzCrh.js.map +0 -1
- package/dist/core/web/public/next/assets/NeedsYouDrawer-CuNYJCJ0.js +0 -2
- package/dist/core/web/public/next/assets/NeedsYouDrawer-CuNYJCJ0.js.map +0 -1
- package/dist/core/web/public/next/assets/NeedsYouDrawer-SkhvvdLb.css +0 -1
- package/dist/core/web/public/next/assets/NewChatDialog-B_BsS9pr.js +0 -3
- package/dist/core/web/public/next/assets/OnboardingFlow-CtCPpgoX.js +0 -2
- package/dist/core/web/public/next/assets/PreviewPane-Cx6RRwzM.js +0 -2
- package/dist/core/web/public/next/assets/PreviewPane-Cx6RRwzM.js.map +0 -1
- package/dist/core/web/public/next/assets/PreviewPane-WQJFjSXe.css +0 -1
- package/dist/core/web/public/next/assets/RailStatus-BWs6xevj.js +0 -2
- package/dist/core/web/public/next/assets/RailStatus-BWs6xevj.js.map +0 -1
- package/dist/core/web/public/next/assets/SeatSelector-DaUO-zoK.js +0 -3
- package/dist/core/web/public/next/assets/SessionSearch-B5aQ0BCM.js +0 -2
- package/dist/core/web/public/next/assets/SettingsSection-CuESA30a.js +0 -2
- package/dist/core/web/public/next/assets/SettingsSection-CuESA30a.js.map +0 -1
- package/dist/core/web/public/next/assets/Sidebar-DfD8MNZt.css +0 -1
- package/dist/core/web/public/next/assets/Sidebar-q11dtYZf.js +0 -3
- package/dist/core/web/public/next/assets/Sidebar-q11dtYZf.js.map +0 -1
- package/dist/core/web/public/next/assets/StepBand-B1W7rU70.js +0 -2
- package/dist/core/web/public/next/assets/StepBand-B1W7rU70.js.map +0 -1
- package/dist/core/web/public/next/assets/Swimlane-BR40WVcj.js +0 -2
- package/dist/core/web/public/next/assets/Swimlane-BR40WVcj.js.map +0 -1
- package/dist/core/web/public/next/assets/TerminalPane-CPKUTD9K.js +0 -7
- package/dist/core/web/public/next/assets/TerminalPane-CPKUTD9K.js.map +0 -1
- package/dist/core/web/public/next/assets/TerminalPane-CmE2QL-Q.css +0 -1
- package/dist/core/web/public/next/assets/UniverseConsoleApp-DKqAf-eD.js +0 -2
- package/dist/core/web/public/next/assets/UsageSection-B6fR3cru.js +0 -2
- package/dist/core/web/public/next/assets/UsageSection-B6fR3cru.js.map +0 -1
- package/dist/core/web/public/next/assets/UsageSection-DwgNOYvi.css +0 -1
- package/dist/core/web/public/next/assets/VerseConsoleApp-C0V221WL.css +0 -1
- package/dist/core/web/public/next/assets/VerseConsoleApp-bjARLPwN.js +0 -3
- package/dist/core/web/public/next/assets/VerseConsoleApp-bjARLPwN.js.map +0 -1
- package/dist/core/web/public/next/assets/Workspace-DQXMVDf7.css +0 -1
- package/dist/core/web/public/next/assets/Workspace-DtJb5tiM.js +0 -10
- package/dist/core/web/public/next/assets/Workspace-DtJb5tiM.js.map +0 -1
- package/dist/core/web/public/next/assets/actions-Bszsdpms.js +0 -2
- package/dist/core/web/public/next/assets/actions-Bszsdpms.js.map +0 -1
- package/dist/core/web/public/next/assets/actions-Dug8YIf0.css +0 -1
- package/dist/core/web/public/next/assets/capacity-strip-model-BR539Ci8.js +0 -2
- package/dist/core/web/public/next/assets/capacity-strip-model-BR539Ci8.js.map +0 -1
- package/dist/core/web/public/next/assets/charts-D4NaLaXA.js +0 -2
- package/dist/core/web/public/next/assets/charts-D4NaLaXA.js.map +0 -1
- package/dist/core/web/public/next/assets/colors-B-vHsX1S.js +0 -2
- package/dist/core/web/public/next/assets/colors-B-vHsX1S.js.map +0 -1
- package/dist/core/web/public/next/assets/command-catalog-s3W6Z96D.js +0 -2
- package/dist/core/web/public/next/assets/command-catalog-s3W6Z96D.js.map +0 -1
- package/dist/core/web/public/next/assets/context-model-Bto3LZn2.js +0 -2
- package/dist/core/web/public/next/assets/context-model-Bto3LZn2.js.map +0 -1
- package/dist/core/web/public/next/assets/context-queries-DVdSLrYy.js +0 -2
- package/dist/core/web/public/next/assets/context-queries-DVdSLrYy.js.map +0 -1
- package/dist/core/web/public/next/assets/context.module-B_k02HNU.js +0 -2
- package/dist/core/web/public/next/assets/context.module-B_k02HNU.js.map +0 -1
- package/dist/core/web/public/next/assets/dock-icons-oG8d7mNZ.js +0 -2
- package/dist/core/web/public/next/assets/dock-icons-oG8d7mNZ.js.map +0 -1
- package/dist/core/web/public/next/assets/dock-panes-BNTLvX7G.js +0 -2
- package/dist/core/web/public/next/assets/fleet-model-ClBbQ0Uj.js +0 -2
- package/dist/core/web/public/next/assets/fleet-model-ClBbQ0Uj.js.map +0 -1
- package/dist/core/web/public/next/assets/format-BNYWGJat.js +0 -2
- package/dist/core/web/public/next/assets/format-BNYWGJat.js.map +0 -1
- package/dist/core/web/public/next/assets/global-DVgMguLr.js +0 -2
- package/dist/core/web/public/next/assets/global-DVgMguLr.js.map +0 -1
- package/dist/core/web/public/next/assets/live-model-Dm6ITHvX.js +0 -2
- package/dist/core/web/public/next/assets/live-model-Dm6ITHvX.js.map +0 -1
- package/dist/core/web/public/next/assets/mind-B-lYfSUJ.css +0 -1
- package/dist/core/web/public/next/assets/mind.module-BzhAlg3e.js +0 -2
- package/dist/core/web/public/next/assets/mind.module-BzhAlg3e.js.map +0 -1
- package/dist/core/web/public/next/assets/mutations-C6E10SPX.js +0 -2
- package/dist/core/web/public/next/assets/primitives-DQvYikjm.js +0 -1
- package/dist/core/web/public/next/assets/seat-subscription-CrWOV4Qc.js +0 -2
- package/dist/core/web/public/next/assets/seat-subscription-CrWOV4Qc.js.map +0 -1
- package/dist/core/web/public/next/assets/slots-W8gkmdfE.js +0 -3
- package/dist/core/web/public/next/assets/surface-data-ZtCegYMQ.js +0 -2
- package/dist/core/web/public/next/assets/surface-data-ZtCegYMQ.js.map +0 -1
- package/dist/core/web/public/next/assets/tasks-model-CnYQzgxk.js +0 -2
- package/dist/core/web/public/next/assets/types-Dypu22dp.js +0 -3
- package/dist/core/web/public/next/assets/types-Dypu22dp.js.map +0 -1
- package/dist/core/web/public/next/assets/use-guarded-action-CO_aAsed.js +0 -2
- package/dist/core/web/public/next/assets/use-guarded-action-CO_aAsed.js.map +0 -1
- package/dist/core/web/public/next/assets/use-token-gate-DYA2-ALC.js +0 -2
- package/dist/core/web/public/next/assets/use-token-gate-DYA2-ALC.js.map +0 -1
- package/dist/core/web/public/next/assets/useChartWidth-B8E5mJgM.css +0 -1
- package/dist/core/web/public/next/assets/useChartWidth-MEXvDxDL.js +0 -2
- package/dist/core/web/public/next/assets/useChartWidth-MEXvDxDL.js.map +0 -1
- package/dist/core/web/public/next/assets/verse-model-E98kXngO.js +0 -2
- package/dist/core/web/public/next/assets/verse-model-E98kXngO.js.map +0 -1
- package/dist/core/web/public/next/assets/verse-store-BgKx_YGs.js +0 -2
- package/dist/core/web/public/next/assets/verse-store-BgKx_YGs.js.map +0 -1
- package/dist/core/web/public/next/assets/verse-ui-store-KTTKfv-T.js +0 -3
package/README.md
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
<a id="ashlr-universe"></a>
|
|
2
2
|
|
|
3
|
-
#
|
|
3
|
+
# Ashlr Verse
|
|
4
4
|
|
|
5
|
-
**
|
|
5
|
+
**One console for every coding agent you run: your subscriptions, your local models, Claude cloud sessions and a fleet that merges only inside a scope you sign.**
|
|
6
6
|
|
|
7
|
-
**[verse.ashlr.ai](https://verse.ashlr.ai)**
|
|
8
|
-
behind one surface, plus a local model that keeps working after the quota runs out.
|
|
7
|
+
**[verse.ashlr.ai](https://verse.ashlr.ai)**
|
|
9
8
|
|
|
10
9
|
|
|
11
10
|

|
|
@@ -17,34 +16,283 @@ behind one surface, plus a local model that keeps working after the quota runs o
|
|
|
17
16
|
|
|
18
17
|
---
|
|
19
18
|
|
|
20
|
-
## What is
|
|
19
|
+
## What it is
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
**Ashlr Verse** is an operator console for coding agents. Every Claude, Codex
|
|
22
|
+
and Grok account you own becomes a *seat*, and so does every tool-capable local
|
|
23
|
+
model. You chat with any of them in one workbench. You watch and bound an
|
|
24
|
+
autonomous fleet that works your enrolled repositories. And you hand work to
|
|
25
|
+
Claude Code cloud sessions that keep running on your Claude credits after the
|
|
26
|
+
subscription window is spent.
|
|
27
|
+
|
|
28
|
+
It ships as a macOS desktop app and as the `ashlr` CLI (`@ashlr/hub`), which
|
|
29
|
+
serves the same console in a browser on macOS, Linux and Windows. Under the
|
|
30
|
+
console is the Hub kernel: the CLI, the Universe experiment runtime and
|
|
31
|
+
account-aware resource pools.
|
|
32
|
+
|
|
33
|
+
Names stay compatible. The repository is `ashlr-hub`, the package is
|
|
34
|
+
`@ashlr/hub`, the command is `ashlr`, and experiments remain `ashlr universe`
|
|
35
|
+
with the `@ashlr/hub/universe` SDK. "Ashlrverse" is the wider project; existing
|
|
36
|
+
manifests, schemas and stores need no naming migration.
|
|
37
|
+
|
|
38
|
+
The user guide is [`docs/VERSE.md`](https://github.com/ashlrai/ashlr-hub/blob/master/docs/VERSE.md).
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## The desktop app (macOS)
|
|
43
|
+
|
|
44
|
+
The desktop app is a native window around Verse, with a menu-bar item,
|
|
45
|
+
notifications while it is hidden, a Dock badge for Needs-you items and the
|
|
46
|
+
Terminal pane in the chat dock. It bundles the `ashlr` CLI, so it needs no
|
|
47
|
+
separate Node.js install to run.
|
|
48
|
+
|
|
49
|
+
### Install
|
|
50
|
+
|
|
51
|
+
There is no public installer and the build is unsigned. You build it once on
|
|
52
|
+
your Mac and keep it in the Dock. The full sequence, prerequisites (Rust with
|
|
53
|
+
`tauri-cli` 2, Bun, Node, Xcode command line tools) and the checks that the
|
|
54
|
+
bundle carries the current assets are in
|
|
55
|
+
[Desktop app](https://github.com/ashlrai/ashlr-hub/blob/master/docs/VERSE.md#desktop-app-macos).
|
|
56
|
+
In short, from the repository root:
|
|
57
|
+
|
|
58
|
+
```sh
|
|
59
|
+
npm ci
|
|
60
|
+
npm run build:binary # the CLI as one executable, web assets included
|
|
61
|
+
node desktop/scripts/prepare-sidecar.mjs # stage it inside the app
|
|
62
|
+
cd desktop && npm run icons && CI=true cargo tauri build
|
|
63
|
+
rm -rf /Applications/Ashlr.app
|
|
64
|
+
cp -R src-tauri/target/release/bundle/macos/Ashlr.app /Applications/
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Run all of those steps every time. A bare `cargo tauri build` wraps a new shell
|
|
68
|
+
around whatever web assets an earlier build left behind.
|
|
69
|
+
|
|
70
|
+
### Open
|
|
71
|
+
|
|
72
|
+
The first time, right-click `Ashlr.app` and choose **Open**, because the build is
|
|
73
|
+
unsigned. After that it opens normally. A small launch window says what is
|
|
74
|
+
happening while the bundled server starts on `127.0.0.1:7777`. The Verse window
|
|
75
|
+
then opens with its tokens already handed over, so there is nothing to paste.
|
|
76
|
+
Closing the window hides it to the menu bar; **Quit** stops the server.
|
|
77
|
+
|
|
78
|
+
On first launch a two-minute tour shows which seats this Mac can use, whether
|
|
79
|
+
there is a local model, and the three ways to stop things.
|
|
80
|
+
|
|
81
|
+
### Sign in your seats
|
|
82
|
+
|
|
83
|
+
A seat is one account and the CLI that drives it, pinned to its own profile so a
|
|
84
|
+
turn can never land on the wrong account. Verse never asks for or stores a
|
|
85
|
+
credential; each vendor CLI signs itself in.
|
|
86
|
+
|
|
87
|
+
1. **Prepare a private profile** for each account. For the Claude seat the cloud
|
|
88
|
+
lane uses:
|
|
89
|
+
|
|
90
|
+
```sh
|
|
91
|
+
ashlr resources profile prepare --provider claude \
|
|
92
|
+
--directory ~/.ashlr/native-profiles/claude-a \
|
|
93
|
+
--executable /absolute/path/to/the/claude/binary --json
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Use `--provider codex` or `--provider grok` for those accounts, with a new
|
|
97
|
+
directory each time. Nothing is signed in yet.
|
|
98
|
+
2. **Sign in** with the `loginCommand` the command printed: `auth login
|
|
99
|
+
--claudeai` for Claude, `login` for Codex, `--no-auto-update login --oauth`
|
|
100
|
+
for Grok. Finish the vendor's browser flow as the intended account.
|
|
101
|
+
3. **List the account** in `~/.ashlr/account-connections/connections.json`,
|
|
102
|
+
using the `command` from step 1:
|
|
103
|
+
|
|
104
|
+
```json
|
|
105
|
+
{
|
|
106
|
+
"schemaVersion": 1,
|
|
107
|
+
"intervalMs": 30000,
|
|
108
|
+
"accounts": [
|
|
109
|
+
{ "id": "claude-a", "label": "Claude Max", "provider": "claude",
|
|
110
|
+
"command": ["/absolute/node", "/Users/you/.ashlr/native-profiles/claude-a/launcher.mjs"] }
|
|
111
|
+
]
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
4. **Reopen Verse.** The account appears as a seat in the composer and in
|
|
116
|
+
**Apps & Accounts**, which shows its health, windows and resets. A background
|
|
117
|
+
sweep checks every seat every 10 minutes with status commands only.
|
|
118
|
+
**Reconnect** opens the seat's own login in Terminal.
|
|
119
|
+
|
|
120
|
+
Local models need no sign-in. If Ollama is running, every tag that supports tool
|
|
121
|
+
use becomes a local seat. The account commissioning details, including how to
|
|
122
|
+
check identity and quota, are in
|
|
123
|
+
[Resource Pools](docs/RESOURCE-POOLS.md#commission-native-accounts-and-local-capacity).
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## The CLI
|
|
128
|
+
|
|
129
|
+
The same console runs from the CLI on macOS, Linux and Windows. It needs Node.js
|
|
130
|
+
22.15 or newer and Git.
|
|
131
|
+
|
|
132
|
+
```sh
|
|
133
|
+
npm install -g @ashlr/hub
|
|
134
|
+
ashlr --version
|
|
135
|
+
ashlr verse # start the server and open http://127.0.0.1:7777/verse/
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
`ashlr verse` prints two tokens. Paste the **read token** into the page once. It
|
|
139
|
+
asks for the **mutation token** the first time you start a chat or change
|
|
140
|
+
something. The server listens on `127.0.0.1` only, and neither token is written
|
|
141
|
+
to disk. `ashlr verse --no-open --json` prints one machine-readable line instead
|
|
142
|
+
of the banner.
|
|
143
|
+
|
|
144
|
+
What differs from the desktop app: the chat dock's Terminal pane needs the
|
|
145
|
+
desktop app's runtime (the browser gets **Open in Terminal.app** instead), and
|
|
146
|
+
the custody helper behind autonomy is macOS-only (a Secure Enclave key and Touch
|
|
147
|
+
ID).
|
|
148
|
+
|
|
149
|
+
---
|
|
27
150
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
151
|
+
## Quickstart
|
|
152
|
+
|
|
153
|
+
1. **Install** the desktop app or the CLI (above), and open Verse.
|
|
154
|
+
2. **Sign in your seats** (above). Start `ollama serve` for local seats.
|
|
155
|
+
3. **Open a project.** **New chat** (⌘N) picks a seat and a folder; in the
|
|
156
|
+
desktop app **Choose folder…** opens the native picker. Saving a folder as a
|
|
157
|
+
project never enrolls it for unattended work.
|
|
158
|
+
4. **Chat.** The composer takes attachments, `@` files and `/` commands, and
|
|
159
|
+
queues up to 3 turns while one runs. The context meter shows the model's real
|
|
160
|
+
window and compaction point; **Continue in a fresh chat** hands off with a
|
|
161
|
+
note built without a model call. ⌘K reaches every chat, action and seat; ⌘J
|
|
162
|
+
opens Needs you.
|
|
163
|
+
5. **Optionally run the local fast lane.** `ashlr local-runtime start --slots 4`
|
|
164
|
+
starts llama-server with batching slots, and
|
|
165
|
+
`ASHLR_VERSE_LOCAL_DISPATCH=llama-server` in Verse's environment sends local
|
|
166
|
+
turns to it. Model discovery stays on Ollama.
|
|
167
|
+
6. **Optionally hand work to the cloud.** **New cloud task** on Command, or
|
|
168
|
+
`ashlr cloud launch "<task>" --repo owner/name` ([cloud lane](#the-cloud-lane)).
|
|
169
|
+
7. **Optionally turn on autonomy** with the one-time setup below.
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Turn on autonomy: the one-time `ashlr authority setup`
|
|
174
|
+
|
|
175
|
+
Autonomy ships **dormant**. Nothing merges, and no standing grant exists, until
|
|
176
|
+
you run the guided setup once on your Mac. Until a grant is signed, live fleet
|
|
177
|
+
ticks refuse: the compiled daemon and conductor trust roots are empty, and a
|
|
178
|
+
signed standing grant is the only other way a tick is admitted. The dry run
|
|
179
|
+
still works.
|
|
180
|
+
|
|
181
|
+
```sh
|
|
182
|
+
ashlr authority setup --dry-run # print every step and what it would do
|
|
183
|
+
ashlr authority setup # do them, pausing only where you must act
|
|
184
|
+
ashlr authority status # grant, switch, Stop, rollout stage, ledger, custody
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
`setup` performs each step it can and **pauses only for the steps marked ✋**,
|
|
188
|
+
which no agent may do. It prints exactly what it did and can be re-run safely.
|
|
189
|
+
|
|
190
|
+
1. ✋ **Install the custody helper:** `sudo scripts/install-custody.sh`
|
|
191
|
+
(root-owned, in `/usr/local/libexec/`).
|
|
192
|
+
2. ✋ **Create the Secure Enclave key** (Touch ID). The private key never leaves
|
|
193
|
+
this Mac's Secure Enclave.
|
|
194
|
+
3. ✋ **Compile the public key in.** Setup opens a PR adding it to
|
|
195
|
+
`src/core/authority/trust-roots.ts`. You merge it, run `npm run build`,
|
|
196
|
+
install the release as usual and restart the daemon.
|
|
197
|
+
4. ✋ **Create the `ashlr-fleet` GitHub App** (one browser page) and **install
|
|
198
|
+
it** on the enrolled repos (one more click). Its private key goes straight
|
|
199
|
+
into the custody Keychain item; the PEM never touches disk.
|
|
200
|
+
5. ✋ **Store a Claude token:** run `claude setup-token` and paste it when
|
|
201
|
+
asked. Only tool-less judge and Leader calls ever see it.
|
|
202
|
+
6. **Apply the rulesets** (`ashlr authority protect --print`, then `--apply`):
|
|
203
|
+
required checks, no force-push or deletion, and bypass for your admin role
|
|
204
|
+
but never for the App.
|
|
205
|
+
7. **Create the canary** repository `fleet-canary` with its CI workflow, using
|
|
206
|
+
your own `gh` login (the App cannot write workflows).
|
|
207
|
+
8. ✋ **Retire the old key.** Confirm moving `~/.ashlr/activation/` out of
|
|
208
|
+
`~/.ashlr`; archive it offline, then delete it.
|
|
209
|
+
9. **Rotate the provenance HMAC key** (`ashlr authority rotate-provenance`).
|
|
210
|
+
10. ✋ **Sign the first grant** (Touch ID) and, optionally, set the switch to
|
|
211
|
+
Autonomous. The grant starts on the shadow stage of its rollout ladder.
|
|
212
|
+
|
|
213
|
+
After that, the only recurring step is one Touch ID every 30 days, or after a
|
|
214
|
+
deploy that changes authority code.
|
|
215
|
+
|
|
216
|
+
**What a grant allows.** A standing grant names the repositories, engines, risk
|
|
217
|
+
and size caps, spend ceiling and Leader classes, and is valid for at most 30
|
|
218
|
+
days. Effective policy is the minimum of the grant, the config and compiled
|
|
219
|
+
ceilings (medium risk, 10 files / 300 lines, 24 merges per repo per day).
|
|
220
|
+
Lowering never asks: the switch (Off, Propose, Autonomous) goes down instantly,
|
|
221
|
+
**Stop** writes `~/.ashlr/KILL`, and **Revoke** needs a new grant to resume.
|
|
222
|
+
Every merge happens on GitHub, pinned to the head SHA, after the gates and a
|
|
223
|
+
judge from a different model family. CI and a fresh re-run watch it for two
|
|
224
|
+
hours, and a red merge is reverted automatically. The full model is in
|
|
225
|
+
[`docs/STANDING-AUTHORITY.md`](https://github.com/ashlrai/ashlr-hub/blob/master/docs/STANDING-AUTHORITY.md).
|
|
226
|
+
|
|
227
|
+
**Budget modes** decide how much of each seat autonomy may use. They are set in
|
|
228
|
+
`~/.ashlr/budget.json` and from the budget pill on Command. Under **balanced**
|
|
229
|
+
(the default), Claude keeps 40 % of its weekly window for you, and autonomy
|
|
230
|
+
never uses it while its five-hour window is above 70 %. Grok keeps no reserve.
|
|
231
|
+
Local models are free and unlimited. **all-in** drops the reserves, and
|
|
232
|
+
**reserve** keeps 85 % of every paid window for you. Codex is off for autonomy
|
|
233
|
+
until you switch it on. A seat whose usage cannot be read is never eligible.
|
|
234
|
+
Your own chats ignore reserves.
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## Resources, on every page
|
|
239
|
+
|
|
240
|
+
Press **⌘.** (or click the tab on the right edge, or run "Show resources" from ⌘K) to open the Resources drawer:
|
|
241
|
+
every Claude, Codex and Grok account with its live 5-hour and weekly windows, the share kept for you, reset times
|
|
242
|
+
and Reconnect / Check again; your local models with runtime state and context windows; and your cloud credits.
|
|
243
|
+
It opens over your work or pins as a column beside it, and a dot on the edge tab tells you at a glance whether
|
|
244
|
+
everything is usable.
|
|
245
|
+
|
|
246
|
+
## The cloud lane
|
|
247
|
+
|
|
248
|
+
New in 3.11. Verse can start **Claude Code cloud sessions** (claude.ai/code) and
|
|
249
|
+
track what they deliver. They run on your Claude account, including its cloud
|
|
250
|
+
credits, so they keep working after the subscription window is spent.
|
|
251
|
+
|
|
252
|
+
- **Start one** from Command (**New cloud task**), from a chat (**Run in cloud**
|
|
253
|
+
in the composer's ⋯ sheet), or with `ashlr cloud launch "<task>"`. Verse can
|
|
254
|
+
also work through its own improvement backlog: **Improve Verse** launches the
|
|
255
|
+
next item now, and with self-improvement on the server launches at most 4 a
|
|
256
|
+
day on its own.
|
|
257
|
+
- **Every task delivers to GitHub.** Verse cannot read a session back, so each
|
|
258
|
+
task pushes the branch `ashlr-cloud/<taskId>` and opens a **draft** PR with a
|
|
259
|
+
report block. Verse follows it with `gh` and lists it in Needs you when the PR
|
|
260
|
+
is open. **Nothing in the lane merges.**
|
|
261
|
+
- **Spend is an estimate, and is labelled as one.** Claude does not expose the
|
|
262
|
+
credit balance. Verse counts $3 per launched session against $250 by default,
|
|
263
|
+
and you correct it after checking
|
|
264
|
+
[claude.ai/settings/usage](https://claude.ai/settings/usage). Limits: 4 at
|
|
265
|
+
once, 20 a day, and self-improvement stops at a $40 reserve.
|
|
266
|
+
- **It launches only as the `claude-a` seat**, signed in with a claude.ai
|
|
267
|
+
account. Cloud sessions refuse API keys.
|
|
268
|
+
- **Turn it off:** `ashlr cloud budget --self-improve off` stops launches Verse
|
|
269
|
+
starts itself, and `ASHLR_CLOUD_AUTO=0` stops the background scheduler.
|
|
270
|
+
|
|
271
|
+
How it works, the delivery contract, the budget math and every failure code:
|
|
272
|
+
[`docs/CLOUD.md`](https://github.com/ashlrai/ashlr-hub/blob/master/docs/CLOUD.md).
|
|
273
|
+
|
|
274
|
+
---
|
|
31
275
|
|
|
32
|
-
|
|
33
|
-
evaluate against a fixed comparator, retain the best result in each niche, and
|
|
34
|
-
reuse those winners as later-generation parents. Provider-backed generation and
|
|
35
|
-
resource routing are separately configured; ecosystem projects remain independent.
|
|
276
|
+
## Reference
|
|
36
277
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
schemas and stores do not need a naming migration.
|
|
278
|
+
The sections below document the Hub underneath the console: the Universe
|
|
279
|
+
experiment kernel, resource pools, and the legacy enrolled-repository fleet with
|
|
280
|
+
its dashboard and CLI.
|
|
41
281
|
|
|
42
|
-
###
|
|
282
|
+
### Universe experiments
|
|
283
|
+
|
|
284
|
+
Universe turns a pinned Git seed, an objective and a resource budget into
|
|
285
|
+
competing, evaluated artifacts. It runs isolated variants, freezes their
|
|
286
|
+
artifacts, evaluates them against a fixed comparator, keeps the best result in
|
|
287
|
+
each niche, and reuses those winners as parents in later generations. Its
|
|
288
|
+
[North Star](docs/NORTH-STAR.md) is useful accepted engineering changes per token
|
|
289
|
+
and hour, not more generated code.
|
|
43
290
|
|
|
44
291
|
Start with the [executable demo](docs/DEMO.md): two generations, three competing
|
|
45
292
|
variants, seven correctness cases, two retained niches and a deliberately broken
|
|
46
|
-
candidate that must lose. It runs real code without a model account. The
|
|
47
|
-
transformations are scripted, so
|
|
293
|
+
candidate that must lose. It runs real code without a model account. The
|
|
294
|
+
candidate transformations are scripted, so it demonstrates the mechanism, not AI
|
|
295
|
+
productivity.
|
|
48
296
|
|
|
49
297
|

|
|
50
298
|
|
|
@@ -52,14 +300,7 @@ Recorded deterministic fixture at source `914ebd1f566c0dc4f0a95479d9c4f464289e73
|
|
|
52
300
|
Arrows show parent reuse; byte reductions are not measured AI engineering yield.
|
|
53
301
|
Read the [demo evidence and reproduction guide](docs/DEMO.md#recorded-example).
|
|
54
302
|
|
|
55
|
-
|
|
56
|
-
adds a space-themed landing page and interactive lineage replay of that recorded
|
|
57
|
-
experiment. It is credential-free presentation code, not a live fleet dashboard;
|
|
58
|
-
its [original artwork and provenance](https://github.com/ashlrai/ashlr-hub/blob/master/examples/universe-site/ASSETS.md)
|
|
59
|
-
are included so contributors can reproduce the experience.
|
|
60
|
-
|
|
61
|
-
From a trusted checkout on **macOS with Node.js 24+ and Git**, install and build
|
|
62
|
-
locally, then create a fresh private experiment store:
|
|
303
|
+
From a trusted checkout on **macOS with Node.js 24+ and Git**:
|
|
63
304
|
|
|
64
305
|
```sh
|
|
65
306
|
npm ci
|
|
@@ -69,17 +310,9 @@ node bin/ashlr universe demo --root "$ASHLR_DEMO_ROOT" --json
|
|
|
69
310
|
node bin/ashlr universe console --root "$ASHLR_DEMO_ROOT"
|
|
70
311
|
```
|
|
71
312
|
|
|
72
|
-
Open the printed loopback URL and enter its private read token to inspect
|
|
73
|
-
parents and the evidence graph. The console observes; it does not launch
|
|
74
|
-
|
|
75
|
-
and executes bounded sandboxed code. See the [demo guide](docs/DEMO.md) for expected
|
|
76
|
-
results, prerequisites and recovery. No GitHub Actions are needed.
|
|
77
|
-
|
|
78
|
-
**Source and distribution are different.** This checkout describes the 3.4.0
|
|
79
|
-
development line. On 2026-09-09, npm `latest` and `candidate` both resolve to
|
|
80
|
-
`@ashlr/hub@3.3.2`; installing that package does not install this Universe demo.
|
|
81
|
-
See the [release record](https://github.com/ashlrai/ashlr-hub/blob/master/docs/RELEASING.md) before choosing an artifact. Neither
|
|
82
|
-
source availability nor a successful demo commissions an unattended provider fleet.
|
|
313
|
+
Open the printed loopback URL and enter its private read token to inspect
|
|
314
|
+
trials, parents and the evidence graph. The console observes; it does not launch
|
|
315
|
+
work. See the [demo guide](docs/DEMO.md) for expected results and recovery.
|
|
83
316
|
|
|
84
317
|
| Build your next step | Guide |
|
|
85
318
|
|---------------------|-------|
|
|
@@ -89,39 +322,55 @@ source availability nor a successful demo commissions an unattended provider fle
|
|
|
89
322
|
| Run a verified package independently of this checkout | [Pinned local runtime](docs/ASHLR-UNIVERSE.md#install-a-pinned-local-runtime) |
|
|
90
323
|
| Understand the components or contribute | [Architecture](docs/ARCHITECTURE.md#current-runtime-map) · [Documentation map](docs/README.md) |
|
|
91
324
|
|
|
92
|
-
###
|
|
325
|
+
### Resource pools
|
|
93
326
|
|
|
94
|
-
For explicitly enrolled account and local-model tasks, the
|
|
95
|
-
[resource pool runner](docs/RESOURCE-POOLS.md) combines quota windows, rolling
|
|
96
|
-
caps
|
|
327
|
+
For explicitly enrolled account and local-model tasks, the
|
|
328
|
+
[resource pool runner](docs/RESOURCE-POOLS.md) combines quota windows, rolling
|
|
329
|
+
task caps and shared-account concurrency before dispatch. `ashlr resources pool`
|
|
97
330
|
records assignments and reported usage without switching credentials or starting
|
|
98
|
-
a daemon. It is separate from Universe's evaluator
|
|
99
|
-
unattended multi-account fleet.
|
|
331
|
+
a daemon. It is separate from Universe's evaluator.
|
|
100
332
|
|
|
101
|
-
|
|
333
|
+
`ashlr resources pool console` opens its
|
|
102
334
|
[operations desk](docs/RESOURCE-POOLS.md#operate-the-resource-console): account
|
|
103
335
|
capacity lanes, routing exclusions, dispatch activity and token evidence. Adding
|
|
104
336
|
`--execute --workspace /absolute/worktree` enables a durable foreground queue with
|
|
105
|
-
task submission, pause/resume, cancellation and session-local output.
|
|
106
|
-
separates owned dispatches from reservations with unknown process liveness.
|
|
337
|
+
task submission, pause/resume, cancellation and session-local output.
|
|
107
338
|
|
|
108
|
-
|
|
339
|
+
### The legacy enrolled-repository fleet
|
|
109
340
|
|
|
110
|
-
|
|
341
|
+
ashlr-hub also contains the original autonomous fleet for enrolled repositories.
|
|
342
|
+
In the current production build its compiled daemon and conductor trust roots are
|
|
343
|
+
empty, so live non-dry fleet execution is dormant unless a standing grant (above)
|
|
344
|
+
admits the tick; verified dry-run, status and local-console paths remain
|
|
345
|
+
available.
|
|
111
346
|
|
|
112
|
-
|
|
347
|
+
When admitted, the fleet scans your backlog, dispatches sandboxed agent swarms
|
|
348
|
+
across multiple backends (local Ollama/LM Studio, Claude Code, Codex, any
|
|
349
|
+
OpenAI-compatible API), and deposits proposed diffs into an **Approval Inbox**.
|
|
350
|
+
Without a grant, nothing touches a branch until you explicitly approve it. The
|
|
351
|
+
kill-switch is a single file.
|
|
352
|
+
|
|
353
|
+
It is also a local harness: one CLI and web dashboard that indexes your enrolled
|
|
354
|
+
projects, aggregates your MCP servers into a single gateway, tracks real spend,
|
|
355
|
+
and provides `ashlr run` / `ashlr swarm` for ad-hoc work.
|
|
113
356
|
|
|
114
357
|
### Authority defaults
|
|
115
358
|
|
|
116
|
-
|
|
359
|
+
Without a standing grant, first activation stops at observation: run
|
|
360
|
+
`ashlr preflight`, enroll a repo, and complete a dry-run. Empty compiled trust
|
|
361
|
+
roots refuse live non-dry daemon and conductor effects, and resident service
|
|
362
|
+
mutation has no production authority. No dry-run or readiness result widens
|
|
363
|
+
runtime authority.
|
|
117
364
|
|
|
118
365
|
| Path | Default | Required authority | Possible outward effect |
|
|
119
366
|
|------|---------|--------------------|-------------------------|
|
|
120
|
-
| Daemon generation | **Dormant in production** | A separately provisioned compiled trust root; the shipped roots are empty | Dry-run/status only; live non-dry dispatch refuses before effects |
|
|
367
|
+
| Daemon generation | **Dormant in production** | A signed standing grant (`ashlr authority setup`) or a separately provisioned compiled trust root; the shipped roots are empty | Dry-run/status only; live non-dry dispatch refuses before effects |
|
|
368
|
+
| Standing-grant merge | **Off until setup** | A Touch ID-signed grant, the merge gates and a cross-family judge | Merge on GitHub pinned to the head SHA, watched for two hours and reverted if red |
|
|
121
369
|
| Inbox apply | Manual | Explicit `ashlr inbox approve`, confirmation, enrollment, kill-switch clear | Applies to a dedicated local branch; never silently edits the working tree |
|
|
122
370
|
| Protected PR submit | Operator-invoked | Explicit `ashlr inbox submit`, caller confirmation, signed frontier provenance, fresh verification, and live protected-remote evidence | Opens one review PR; never merges `main` or contacts a model. `--yes` is caller intent, not an authenticated human receipt. |
|
|
123
|
-
|
|
|
371
|
+
| Legacy autonomous merge | **Off** | `foundry.autoMerge.enabled: true` plus the selected tier, judge-backed verification, or evidence authority gates | Local merge or protected remote PR, depending on policy; every refusal is fail-closed |
|
|
124
372
|
| Judge-free evidence merge | **Off** | Base- and diff-bound deterministic verification, signed provenance/evidence, strict scope/risk policy, and live protected-branch checks | Protected remote PR handoff only; no local fallback, self-target merge, partial capture, or build/CI/manifest change |
|
|
373
|
+
| Cloud task | Operator-invoked, or self-improvement under its budget | The cloud budget gates and a signed-in `claude-a` seat | A draft PR on `ashlr-cloud/<taskId>`; never merges |
|
|
125
374
|
| Deploy | Never performed by the daemon | Explicit `ashlr ship --deploy <target> --confirm` after pre-ship checks | Runs the selected production deploy command |
|
|
126
375
|
| OS service mutation | **Temporarily unavailable** | No production install/reinstall/repair/restart authority is currently issued | Existing services expose status and uninstall only; no live one-shot or resident start is admitted |
|
|
127
376
|
|
|
@@ -129,9 +378,9 @@ No successful test, model verdict, or proposal record grants deployment or servi
|
|
|
129
378
|
|
|
130
379
|
---
|
|
131
380
|
|
|
132
|
-
##
|
|
381
|
+
## The legacy autonomous loop
|
|
133
382
|
|
|
134
|
-
Most AI coding tools are request-response: you ask, the model answers. Ashlr's source architecture defines a **continuous autonomous loop
|
|
383
|
+
Most AI coding tools are request-response: you ask, the model answers. Ashlr's source architecture defines a **continuous autonomous loop**. Without a signed standing grant, the current production entrypoints keep its non-dry daemon and conductor effects dormant because their compiled trust roots are empty:
|
|
135
384
|
|
|
136
385
|
```
|
|
137
386
|
End-State Spec (your vision)
|
|
@@ -147,7 +396,7 @@ End-State Spec (your vision)
|
|
|
147
396
|
→ Scorecard feedback (outcomes feed learned routing)
|
|
148
397
|
```
|
|
149
398
|
|
|
150
|
-
**What this architecture unlocks once an independently provisioned runtime admits it:**
|
|
399
|
+
**What this architecture unlocks once a standing grant or an independently provisioned runtime admits it:**
|
|
151
400
|
|
|
152
401
|
- The fleet works your backlog while you sleep.
|
|
153
402
|
- You review proposals with `ashlr inbox`, not a chat window.
|
|
@@ -169,7 +418,7 @@ separate [execution boundaries](docs/ARCHITECTURE.md#current-runtime-map).
|
|
|
169
418
|
|
|
170
419
|
---
|
|
171
420
|
|
|
172
|
-
##
|
|
421
|
+
## Legacy fleet quickstart
|
|
173
422
|
|
|
174
423
|
For Universe experiments and the resource fleet map, follow the
|
|
175
424
|
[current-source quickstart](docs/QUICKSTART.md#run-the-current-universe-kernel).
|
|
@@ -179,20 +428,9 @@ have a separate [commissioning procedure](docs/RESOURCE-POOLS.md#commission-nati
|
|
|
179
428
|
The instructions below cover the **general Hub and legacy fleet configuration**.
|
|
180
429
|
They do not install an unreleased source feature or activate the dormant daemon.
|
|
181
430
|
|
|
182
|
-
###
|
|
183
|
-
|
|
184
|
-
- Node.js 22.15+
|
|
185
|
-
- Git
|
|
186
|
-
- A configured backend only for commands that invoke a model; no model is required for the deterministic Universe demo or saved-evidence inspection
|
|
187
|
-
|
|
188
|
-
### Install
|
|
189
|
-
|
|
190
|
-
```sh
|
|
191
|
-
npm install -g @ashlr/hub
|
|
192
|
-
ashlr --version
|
|
193
|
-
```
|
|
431
|
+
### Install from source
|
|
194
432
|
|
|
195
|
-
|
|
433
|
+
The npm install is [above](#the-cli). To run from a checkout instead:
|
|
196
434
|
|
|
197
435
|
```sh
|
|
198
436
|
git clone https://github.com/ashlrai/ashlr-hub
|
|
@@ -241,8 +479,9 @@ Prints what the fleet would work on. Creates no proposals, spends $0.
|
|
|
241
479
|
ashlr daemon start --once
|
|
242
480
|
```
|
|
243
481
|
|
|
244
|
-
|
|
245
|
-
proposal creation because its compiled daemon
|
|
482
|
+
Without a signed standing grant, the current production build refuses this
|
|
483
|
+
non-dry command before dispatch or proposal creation because its compiled daemon
|
|
484
|
+
trust roots are empty. Use
|
|
246
485
|
`ashlr daemon status`, the dry-run above, and Mission Control for verified
|
|
247
486
|
observation. A test-only injected trust root is not production activation.
|
|
248
487
|
|
|
@@ -506,6 +745,12 @@ next actions point at work the daemon can select now instead of phantom backlog.
|
|
|
506
745
|
|
|
507
746
|
| Command | What it does |
|
|
508
747
|
|---------|-------------|
|
|
748
|
+
| `ashlr verse [--port N] [--no-open] [--json]` | Start the Verse console at `127.0.0.1:7777/verse/` |
|
|
749
|
+
| `ashlr authority setup/status/switch/stop/grant/revoke/ledger` | Standing authority: the one-time setup, Touch ID grants, the autonomy switch, Stop and the ledger |
|
|
750
|
+
| `ashlr leader show/run/tick/veto` | The Leader: latest memo, a run when due, due class-B actions, veto |
|
|
751
|
+
| `ashlr cloud launch/list/refresh/improve/budget/backlog` | The cloud lane: Claude Code cloud sessions, their budget and the self-improvement backlog |
|
|
752
|
+
| `ashlr local-runtime start/stop/status` | Supervised llama-server with batching slots for local seats |
|
|
753
|
+
| `ashlr resources profile prepare/repin` | Prepare or re-pin a private native profile for one account |
|
|
509
754
|
| `ashlr setup` | First-activation checks; currently nonzero because resident service mutation is restricted |
|
|
510
755
|
| `ashlr onboard <repo>` | Enroll one repo with walkthrough + dry run |
|
|
511
756
|
| `ashlr enroll add/remove/list` | Manage enrolled repos |
|
|
@@ -589,7 +834,15 @@ Full invariant set: [`docs/SPEC-V4-FOUNDRY.md`](https://github.com/ashlrai/ashlr
|
|
|
589
834
|
├── foundry/
|
|
590
835
|
│ └── provenance.key # HMAC signing key (0600, per-machine, never transmitted)
|
|
591
836
|
├── audit/ # Append-only confinement + action audit log
|
|
592
|
-
|
|
837
|
+
├── manager/ # Manager judge scorecards
|
|
838
|
+
├── native-profiles/ # One private profile per seat (launcher, command.json, native state)
|
|
839
|
+
├── account-connections/ # connections.json: the seats Verse lists
|
|
840
|
+
├── verse/ # Verse sessions, workspaces, project memory, attachments
|
|
841
|
+
├── authority/ # Standing grants and the hash-chained ledger
|
|
842
|
+
├── budget.json # Budget mode and per-seat overrides
|
|
843
|
+
├── routing/
|
|
844
|
+
│ └── capacity-history.jsonl # Seat window readings behind the burn-downs
|
|
845
|
+
└── cloud/ # Cloud tasks, cloud budget, backlog and launch checkouts
|
|
593
846
|
```
|
|
594
847
|
|
|
595
848
|
Per-repo memory lives in `<repo>/.ashlrcode/genome/`. The CLI is the sole writer of `~/.ashlr/`.
|
|
@@ -697,11 +950,15 @@ preflight soft-warns *consider locus.firm for production* (non-blocking).
|
|
|
697
950
|
| **v5** (M50–M55) | Open Fleet — declarative engine registry, tri-tier trust, OS confinement, fleet intelligence, self-improving fleet, goal/loop conductor | Shipped |
|
|
698
951
|
| **v5.1** (M320–M324) | Claude 5 Model Intelligence — Sonnet 5 workhorse routing, Fable 5 judge with Opus fallback, per-model ROI telemetry, cost-aware learned routing | Shipped |
|
|
699
952
|
| **v6** (M331–M340) | Verification-First — verify-to-green repair loop, real-world outcome watcher, multi-model best-of-N, gateway shadow activation program, Models dashboard tab, SWE-bench regression gate | Shipped |
|
|
953
|
+
| **3.5–3.8** | Ashlr Verse — the operator console, local seats on llama.cpp, a native folder picker, bounded run windows, local-only that actually prevents spend | Shipped |
|
|
954
|
+
| **3.9** | Context — windows read from each CLI, visible compaction, standard and expansive modes, continue in a fresh chat, shared project memory | Shipped |
|
|
955
|
+
| **3.10** | Autonomy with custody and the workbench — Touch ID grants, budget modes, the Leader, five surfaces, ⌘K and ⌘J, the dock, live reasoning, charts, burn-down history | Shipped |
|
|
956
|
+
| **3.11** | The cloud lane — Claude Code cloud sessions on Claude credits, with an estimated budget and self-improvement — and the Resources drawer (⌘.) | Current |
|
|
700
957
|
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
not release evidence.
|
|
958
|
+
Releases are built and published locally (GitHub Actions is off); the procedure
|
|
959
|
+
is in [Releasing without CI](https://github.com/ashlrai/ashlr-hub/blob/master/docs/RELEASING-LOCALLY.md).
|
|
960
|
+
A version is published only once `npm view @ashlr/hub version` confirms it;
|
|
961
|
+
repository or changelog state alone is not release evidence.
|
|
705
962
|
|
|
706
963
|
---
|
|
707
964
|
|
|
@@ -718,6 +975,10 @@ Star and source-maintainer references. Start with these canonical guides:
|
|
|
718
975
|
|
|
719
976
|
| Doc | What it covers |
|
|
720
977
|
|-----|----------------|
|
|
978
|
+
| [`docs/VERSE.md`](https://github.com/ashlrai/ashlr-hub/blob/master/docs/VERSE.md) | The Verse user guide: surfaces, chat workbench, seats, autonomy, the cloud lane, the desktop app |
|
|
979
|
+
| [`docs/CLOUD.md`](https://github.com/ashlrai/ashlr-hub/blob/master/docs/CLOUD.md) | The cloud lane: launch mechanics, delivery contract, estimated budget, self-improvement, failure codes |
|
|
980
|
+
| [`docs/VERSE-CONTEXT.md`](https://github.com/ashlrai/ashlr-hub/blob/master/docs/VERSE-CONTEXT.md) | Context windows, compaction, standard and expansive modes, handoff and shared memory |
|
|
981
|
+
| [`docs/STANDING-AUTHORITY.md`](https://github.com/ashlrai/ashlr-hub/blob/master/docs/STANDING-AUTHORITY.md) | Touch ID grants, the rollout ladder, merge gates and the ledger |
|
|
721
982
|
| [`docs/NORTH-STAR.md`](docs/NORTH-STAR.md) | Target outcome: verified engineering yield, evolving objectives and independent ecosystem products |
|
|
722
983
|
| [`docs/QUICKSTART.md`](docs/QUICKSTART.md) | Run the current local kernel, inspect results and choose the correct commissioning path |
|
|
723
984
|
| [`docs/ASHLR-UNIVERSE.md`](docs/ASHLR-UNIVERSE.md) | Experiments, campaigns, portfolio orchestration, evidence graphs and pinned local runtime |
|