@ashlr/hub 3.11.5 → 3.13.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 +153 -0
- package/README.md +29 -16
- package/dist/authority-surface.json +91 -45
- package/dist/build-identity.json +2 -2
- package/dist/cli/authority.d.ts +145 -33
- package/dist/cli/authority.js +1196 -313
- package/dist/cli/authority.js.map +1 -1
- package/dist/cli/cloud.js +12 -3
- package/dist/cli/cloud.js.map +1 -1
- package/dist/core/authority/protected-paths.js +11 -0
- package/dist/core/authority/protected-paths.js.map +1 -1
- package/dist/core/authority/resident.d.ts +101 -0
- package/dist/core/authority/resident.js +246 -0
- package/dist/core/authority/resident.js.map +1 -0
- package/dist/core/authority/trust-roots.js +7 -1
- package/dist/core/authority/trust-roots.js.map +1 -1
- package/dist/core/authority/types.d.ts +43 -0
- package/dist/core/authority/types.js +6 -0
- package/dist/core/authority/types.js.map +1 -1
- package/dist/core/cloud/budget.js +11 -1
- package/dist/core/cloud/budget.js.map +1 -1
- package/dist/core/cloud/cloud-api.d.ts +25 -2
- package/dist/core/cloud/cloud-api.js +139 -5
- package/dist/core/cloud/cloud-api.js.map +1 -1
- package/dist/core/cloud/pr-actions.d.ts +93 -0
- package/dist/core/cloud/pr-actions.js +436 -0
- package/dist/core/cloud/pr-actions.js.map +1 -0
- package/dist/core/cloud/pr-preview.d.ts +128 -0
- package/dist/core/cloud/pr-preview.js +228 -0
- package/dist/core/cloud/pr-preview.js.map +1 -0
- package/dist/core/cloud/store.d.ts +2 -0
- package/dist/core/cloud/store.js +28 -0
- package/dist/core/cloud/store.js.map +1 -1
- package/dist/core/cloud/timeline-api.d.ts +24 -0
- package/dist/core/cloud/timeline-api.js +46 -0
- package/dist/core/cloud/timeline-api.js.map +1 -0
- package/dist/core/cloud/timeline-types.d.ts +62 -0
- package/dist/core/cloud/timeline-types.js +36 -0
- package/dist/core/cloud/timeline-types.js.map +1 -0
- package/dist/core/cloud/timeline.d.ts +102 -0
- package/dist/core/cloud/timeline.js +919 -0
- package/dist/core/cloud/timeline.js.map +1 -0
- package/dist/core/cloud/tracker.js +67 -0
- package/dist/core/cloud/tracker.js.map +1 -1
- package/dist/core/cloud/types.d.ts +38 -0
- package/dist/core/cloud/types.js +1 -1
- package/dist/core/cloud/types.js.map +1 -1
- package/dist/core/daemon/service-install-authority.d.ts +10 -2
- package/dist/core/daemon/service-install-authority.js +14 -5
- package/dist/core/daemon/service-install-authority.js.map +1 -1
- package/dist/core/daemon/service.d.ts +15 -0
- package/dist/core/daemon/service.js +26 -0
- package/dist/core/daemon/service.js.map +1 -1
- package/dist/core/fleet/cloud-intake.d.ts +95 -0
- package/dist/core/fleet/cloud-intake.js +557 -0
- package/dist/core/fleet/cloud-intake.js.map +1 -0
- package/dist/core/fleet/dispatch-router.d.ts +13 -0
- package/dist/core/fleet/dispatch-router.js +32 -8
- package/dist/core/fleet/dispatch-router.js.map +1 -1
- package/dist/core/fleet/fleet-merge-state.d.ts +10 -0
- package/dist/core/fleet/fleet-merge-state.js.map +1 -1
- package/dist/core/fleet/host-merge.d.ts +5 -0
- package/dist/core/fleet/host-merge.js +11 -0
- package/dist/core/fleet/host-merge.js.map +1 -1
- package/dist/core/fleet/merge-gates.d.ts +8 -0
- package/dist/core/fleet/merge-gates.js +25 -5
- package/dist/core/fleet/merge-gates.js.map +1 -1
- package/dist/core/fleet/standing-merge-pass.js +30 -0
- package/dist/core/fleet/standing-merge-pass.js.map +1 -1
- package/dist/core/fleet/tick-hooks-live.d.ts +9 -0
- package/dist/core/fleet/tick-hooks-live.js +44 -5
- package/dist/core/fleet/tick-hooks-live.js.map +1 -1
- package/dist/core/fleet/verify-check-run.d.ts +90 -0
- package/dist/core/fleet/verify-check-run.js +274 -0
- package/dist/core/fleet/verify-check-run.js.map +1 -0
- package/dist/core/routing/budget-api.d.ts +11 -0
- package/dist/core/routing/budget-api.js +64 -8
- package/dist/core/routing/budget-api.js.map +1 -1
- package/dist/core/routing/budget-store.d.ts +22 -1
- package/dist/core/routing/budget-store.js +22 -8
- package/dist/core/routing/budget-store.js.map +1 -1
- package/dist/core/universe/builtins/preparation/manifest.json +1 -1
- package/dist/core/universe/builtins/preparation/preparation-bridge.mjs +8 -2
- package/dist/core/universe/builtins/preparation/preparation-verification-fixtures.mjs +7 -1
- package/dist/core/verse/account-health.js +9 -3
- package/dist/core/verse/account-health.js.map +1 -1
- package/dist/core/verse/activity-api.d.ts +5 -1
- package/dist/core/verse/activity-api.js +62 -14
- package/dist/core/verse/activity-api.js.map +1 -1
- package/dist/core/verse/authority-api.d.ts +9 -1
- package/dist/core/verse/authority-api.js +82 -2
- package/dist/core/verse/authority-api.js.map +1 -1
- package/dist/core/verse/seat-readiness.d.ts +25 -0
- package/dist/core/verse/seat-readiness.js +43 -6
- package/dist/core/verse/seat-readiness.js.map +1 -1
- package/dist/core/verse/verse-api.d.ts +3 -1
- package/dist/core/verse/verse-api.js +6 -0
- package/dist/core/verse/verse-api.js.map +1 -1
- package/dist/core/web/public/next/assets/{ActionMenu-DffwPklw.js → ActionMenu-Dwjk6rUQ.js} +2 -2
- package/dist/core/web/public/next/assets/{ActionMenu-DffwPklw.js.map → ActionMenu-Dwjk6rUQ.js.map} +1 -1
- package/dist/core/web/public/next/assets/Advanced-cVYTAsfB.js +2 -0
- package/dist/core/web/public/next/assets/{Advanced-CxzE6ekM.js.map → Advanced-cVYTAsfB.js.map} +1 -1
- package/dist/core/web/public/next/assets/App-IsaWDsdF.js +7 -0
- package/dist/core/web/public/next/assets/{App-DFlp-vdv.js.map → App-IsaWDsdF.js.map} +1 -1
- package/dist/core/web/public/next/assets/AppsSection-DDqeSrty.js +2 -0
- package/dist/core/web/public/next/assets/{AppsSection-Ct2O605-.js.map → AppsSection-DDqeSrty.js.map} +1 -1
- package/dist/core/web/public/next/assets/{AreaTrend-o-GLl2Is.js → AreaTrend-C32rUaxm.js} +2 -2
- package/dist/core/web/public/next/assets/{AreaTrend-o-GLl2Is.js.map → AreaTrend-C32rUaxm.js.map} +1 -1
- package/dist/core/web/public/next/assets/AutonomyOffState-CmSSTHVe.css +1 -0
- package/dist/core/web/public/next/assets/AutonomyOffState-CpFYS3tQ.js +3 -0
- package/dist/core/web/public/next/assets/AutonomyOffState-CpFYS3tQ.js.map +1 -0
- package/dist/core/web/public/next/assets/AutonomySection-Dwn8UtOy.js +2 -0
- package/dist/core/web/public/next/assets/{AutonomySection-BTg7yVa1.js.map → AutonomySection-Dwn8UtOy.js.map} +1 -1
- package/dist/core/web/public/next/assets/{BranchBar-BjPFtGsj.js → BranchBar-ISZ7xUCj.js} +2 -2
- package/dist/core/web/public/next/assets/{BranchBar-BjPFtGsj.js.map → BranchBar-ISZ7xUCj.js.map} +1 -1
- package/dist/core/web/public/next/assets/BudgetControl-BARVp-En.js +2 -0
- package/dist/core/web/public/next/assets/BudgetControl-BARVp-En.js.map +1 -0
- package/dist/core/web/public/next/assets/{Button-OjVJSrFq.js → Button-DtE0rlWD.js} +2 -2
- package/dist/core/web/public/next/assets/{Button-OjVJSrFq.js.map → Button-DtE0rlWD.js.map} +1 -1
- package/dist/core/web/public/next/assets/{CapacityStrip-Bx4c3dxD.js → CapacityStrip-DKbKA_Aa.js} +2 -2
- package/dist/core/web/public/next/assets/{CapacityStrip-Bx4c3dxD.js.map → CapacityStrip-DKbKA_Aa.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ChartFrame-B_w2Siqg.js → ChartFrame-DK_BDXCt.js} +2 -2
- package/dist/core/web/public/next/assets/{ChartFrame-B_w2Siqg.js.map → ChartFrame-DK_BDXCt.js.map} +1 -1
- package/dist/core/web/public/next/assets/ChatSection-C9myY4ei.js +3 -0
- package/dist/core/web/public/next/assets/ChatSection-C9myY4ei.js.map +1 -0
- package/dist/core/web/public/next/assets/{CloudBudgetForm-5Gf4iAok.js → CloudBudgetForm-CvjK4Oh6.js} +2 -2
- package/dist/core/web/public/next/assets/{CloudBudgetForm-5Gf4iAok.js.map → CloudBudgetForm-CvjK4Oh6.js.map} +1 -1
- package/dist/core/web/public/next/assets/{CommandPalette-iTpk6I8r.js → CommandPalette-DzPsth0u.js} +2 -2
- package/dist/core/web/public/next/assets/{CommandPalette-iTpk6I8r.js.map → CommandPalette-DzPsth0u.js.map} +1 -1
- package/dist/core/web/public/next/assets/CommandSection-Brp73iox.js +3 -0
- package/dist/core/web/public/next/assets/CommandSection-Brp73iox.js.map +1 -0
- package/dist/core/web/public/next/assets/{ConfirmDialog-_S9iE-cJ.js → ConfirmDialog-CLUhzaBj.js} +2 -2
- package/dist/core/web/public/next/assets/{ConfirmDialog-_S9iE-cJ.js.map → ConfirmDialog-CLUhzaBj.js.map} +1 -1
- package/dist/core/web/public/next/assets/{DeleteChatDialog-KUYUygiA.js → DeleteChatDialog-C_eDhV8b.js} +2 -2
- package/dist/core/web/public/next/assets/{DeleteChatDialog-KUYUygiA.js.map → DeleteChatDialog-C_eDhV8b.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Dialog-BuIaG6HF.js → Dialog-BRd_B9OE.js} +2 -2
- package/dist/core/web/public/next/assets/{Dialog-BuIaG6HF.js.map → Dialog-BRd_B9OE.js.map} +1 -1
- package/dist/core/web/public/next/assets/{DiffPane-De4IQt82.js → DiffPane-Cpr9soB2.js} +2 -2
- package/dist/core/web/public/next/assets/{DiffPane-De4IQt82.js.map → DiffPane-Cpr9soB2.js.map} +1 -1
- package/dist/core/web/public/next/assets/{DiffViewer-B75t6Ile.js → DiffViewer-CNwd0W3Q.js} +2 -2
- package/dist/core/web/public/next/assets/{DiffViewer-B75t6Ile.js.map → DiffViewer-CNwd0W3Q.js.map} +1 -1
- package/dist/core/web/public/next/assets/DockHost-BcEq2qaS.js +2 -0
- package/dist/core/web/public/next/assets/{DockHost-BPqyhtCP.js.map → DockHost-BcEq2qaS.js.map} +1 -1
- package/dist/core/web/public/next/assets/{EmptyState-DXkT4vhW.js → EmptyState-DsN1H6MC.js} +2 -2
- package/dist/core/web/public/next/assets/{EmptyState-DXkT4vhW.js.map → EmptyState-DsN1H6MC.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Epistemic-CfqFe_aP.js → Epistemic-fycQTBRO.js} +2 -2
- package/dist/core/web/public/next/assets/{Epistemic-CfqFe_aP.js.map → Epistemic-fycQTBRO.js.map} +1 -1
- package/dist/core/web/public/next/assets/EvidenceTimeline-PBDAiSuG.css +1 -0
- package/dist/core/web/public/next/assets/EvidenceTimeline-sCCAdnBK.js +2 -0
- package/dist/core/web/public/next/assets/EvidenceTimeline-sCCAdnBK.js.map +1 -0
- package/dist/core/web/public/next/assets/{FleetSection-B7f-XBiX.js → FleetSection-BG8iGraG.js} +3 -3
- package/dist/core/web/public/next/assets/{FleetSection-B7f-XBiX.js.map → FleetSection-BG8iGraG.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Funnel-pXYySwXQ.js → Funnel-B88_wpA4.js} +2 -2
- package/dist/core/web/public/next/assets/{Funnel-pXYySwXQ.js.map → Funnel-B88_wpA4.js.map} +1 -1
- package/dist/core/web/public/next/assets/{GearTray-gj6lT7ba.js → GearTray-CpDt0xwj.js} +2 -2
- package/dist/core/web/public/next/assets/{GearTray-gj6lT7ba.js.map → GearTray-CpDt0xwj.js.map} +1 -1
- package/dist/core/web/public/next/assets/{GrowthSection-D8e9m9Wy.js → GrowthSection-BvZezOsX.js} +2 -2
- package/dist/core/web/public/next/assets/{GrowthSection-D8e9m9Wy.js.map → GrowthSection-BvZezOsX.js.map} +1 -1
- package/dist/core/web/public/next/assets/{HandoffDialog-VfKxKhxF.js → HandoffDialog-B1G6gQyk.js} +2 -2
- package/dist/core/web/public/next/assets/{HandoffDialog-VfKxKhxF.js.map → HandoffDialog-B1G6gQyk.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Input-u1YR_Ogl.js → Input-CI0yBHmn.js} +2 -2
- package/dist/core/web/public/next/assets/{Input-u1YR_Ogl.js.map → Input-CI0yBHmn.js.map} +1 -1
- package/dist/core/web/public/next/assets/{LeaderCard-BDELBrnx.js → LeaderCard-BxxiEg4e.js} +2 -2
- package/dist/core/web/public/next/assets/{LeaderCard-BDELBrnx.js.map → LeaderCard-BxxiEg4e.js.map} +1 -1
- package/dist/core/web/public/next/assets/{MatrixHeatmap-NKLF2srR.js → MatrixHeatmap-iPFEU2Tv.js} +2 -2
- package/dist/core/web/public/next/assets/{MatrixHeatmap-NKLF2srR.js.map → MatrixHeatmap-iPFEU2Tv.js.map} +1 -1
- package/dist/core/web/public/next/assets/McpSection-nuXer4K-.js +2 -0
- package/dist/core/web/public/next/assets/{McpSection-D1tDvlRa.js.map → McpSection-nuXer4K-.js.map} +1 -1
- package/dist/core/web/public/next/assets/{MessageMarkdown-DlfLEJxu.js → MessageMarkdown-BCe4TsXk.js} +3 -3
- package/dist/core/web/public/next/assets/{MessageMarkdown-DlfLEJxu.js.map → MessageMarkdown-BCe4TsXk.js.map} +1 -1
- package/dist/core/web/public/next/assets/{MessageMarkdownRenderer-BYZzI115.js → MessageMarkdownRenderer-DL3LU5kL.js} +2 -2
- package/dist/core/web/public/next/assets/{MessageMarkdownRenderer-BYZzI115.js.map → MessageMarkdownRenderer-DL3LU5kL.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Meter-BSVhU43Q.js → Meter-b69LM0mU.js} +2 -2
- package/dist/core/web/public/next/assets/{Meter-BSVhU43Q.js.map → Meter-b69LM0mU.js.map} +1 -1
- package/dist/core/web/public/next/assets/{MindSection-lqV2e_Sq.js → MindSection-Dc5v5rH3.js} +2 -2
- package/dist/core/web/public/next/assets/{MindSection-lqV2e_Sq.js.map → MindSection-Dc5v5rH3.js.map} +1 -1
- package/dist/core/web/public/next/assets/{MutationTokenDialog-CLGP72g6.js → MutationTokenDialog-Bm34BNVV.js} +2 -2
- package/dist/core/web/public/next/assets/{MutationTokenDialog-CLGP72g6.js.map → MutationTokenDialog-Bm34BNVV.js.map} +1 -1
- package/dist/core/web/public/next/assets/NeedsYouDrawer-N1cWJjpz.js +3 -0
- package/dist/core/web/public/next/assets/NeedsYouDrawer-N1cWJjpz.js.map +1 -0
- package/dist/core/web/public/next/assets/NeedsYouList-CH6Mq-E_.css +1 -0
- package/dist/core/web/public/next/assets/NeedsYouList-D5Kk549g.js +2 -0
- package/dist/core/web/public/next/assets/{NeedsYouList-eBOlJr0b.js.map → NeedsYouList-D5Kk549g.js.map} +1 -1
- package/dist/core/web/public/next/assets/{NewChatDialog-DoYTH26M.js → NewChatDialog-BqFTWgHU.js} +2 -2
- package/dist/core/web/public/next/assets/{NewChatDialog-DoYTH26M.js.map → NewChatDialog-BqFTWgHU.js.map} +1 -1
- package/dist/core/web/public/next/assets/OnboardingFlow-DcDsguAM.js +3 -0
- package/dist/core/web/public/next/assets/OnboardingFlow-DcDsguAM.js.map +1 -0
- package/dist/core/web/public/next/assets/OnboardingGate-BZafM1Vf.js +3 -0
- package/dist/core/web/public/next/assets/{OnboardingGate-DrDEVBqw.js.map → OnboardingGate-BZafM1Vf.js.map} +1 -1
- package/dist/core/web/public/next/assets/{PreviewPane-ULN673zm.js → PreviewPane-zT3gK9TD.js} +2 -2
- package/dist/core/web/public/next/assets/{PreviewPane-ULN673zm.js.map → PreviewPane-zT3gK9TD.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ProviderLogo-8WaUjTlN.js → ProviderLogo-AwHn2sKm.js} +2 -2
- package/dist/core/web/public/next/assets/{ProviderLogo-8WaUjTlN.js.map → ProviderLogo-AwHn2sKm.js.map} +1 -1
- package/dist/core/web/public/next/assets/{RailStatus-Ckw9nvYU.js → RailStatus-xHrovWvI.js} +2 -2
- package/dist/core/web/public/next/assets/{RailStatus-Ckw9nvYU.js.map → RailStatus-xHrovWvI.js.map} +1 -1
- package/dist/core/web/public/next/assets/{RefreshIndicator-DGubF4vR.js → RefreshIndicator-SEFZlMB2.js} +2 -2
- package/dist/core/web/public/next/assets/{RefreshIndicator-DGubF4vR.js.map → RefreshIndicator-SEFZlMB2.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-BahEaY4d.js → ResourcePoolConsoleApp-CAxPQ4sZ.js} +3 -3
- package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-BahEaY4d.js.map → ResourcePoolConsoleApp-CAxPQ4sZ.js.map} +1 -1
- package/dist/core/web/public/next/assets/ResourcesChrome-BnhnEdJe.js +3 -0
- package/dist/core/web/public/next/assets/{ResourcesChrome-C2ZrA7la.js.map → ResourcesChrome-BnhnEdJe.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ResourcesDrawer-BC93fzwQ.js → ResourcesDrawer-BAFGodny.js} +2 -2
- package/dist/core/web/public/next/assets/{ResourcesDrawer-BC93fzwQ.js.map → ResourcesDrawer-BAFGodny.js.map} +1 -1
- package/dist/core/web/public/next/assets/{RouteErrorBoundary-BvhHNpE_.js → RouteErrorBoundary-C8WGiixc.js} +2 -2
- package/dist/core/web/public/next/assets/{RouteErrorBoundary-BvhHNpE_.js.map → RouteErrorBoundary-C8WGiixc.js.map} +1 -1
- package/dist/core/web/public/next/assets/{RunInCloudAction-Dywfnw0C.js → RunInCloudAction-1-IPLYhf.js} +2 -2
- package/dist/core/web/public/next/assets/{RunInCloudAction-Dywfnw0C.js.map → RunInCloudAction-1-IPLYhf.js.map} +1 -1
- package/dist/core/web/public/next/assets/{SeatSelector-CH7hTgwy.js → SeatSelector-DpwNiX8F.js} +2 -2
- package/dist/core/web/public/next/assets/{SeatSelector-CH7hTgwy.js.map → SeatSelector-DpwNiX8F.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Segmented-Wynbg0F5.js → Segmented-Wt1ATod9.js} +2 -2
- package/dist/core/web/public/next/assets/{Segmented-Wynbg0F5.js.map → Segmented-Wt1ATod9.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Select-DMyLCkId.js → Select-By-V9lMc.js} +2 -2
- package/dist/core/web/public/next/assets/{Select-DMyLCkId.js.map → Select-By-V9lMc.js.map} +1 -1
- package/dist/core/web/public/next/assets/{SessionGate-8RtQFWeZ.js → SessionGate-WROS02tK.js} +2 -2
- package/dist/core/web/public/next/assets/{SessionGate-8RtQFWeZ.js.map → SessionGate-WROS02tK.js.map} +1 -1
- package/dist/core/web/public/next/assets/{SessionInsightChip-zBJbKv2L.js → SessionInsightChip-DNUcruwp.js} +2 -2
- package/dist/core/web/public/next/assets/{SessionInsightChip-zBJbKv2L.js.map → SessionInsightChip-DNUcruwp.js.map} +1 -1
- package/dist/core/web/public/next/assets/{SessionSearch-DfJIcxxM.js → SessionSearch-UHtt7a8f.js} +2 -2
- package/dist/core/web/public/next/assets/{SessionSearch-DfJIcxxM.js.map → SessionSearch-UHtt7a8f.js.map} +1 -1
- package/dist/core/web/public/next/assets/{SettingsSection-Da9RYyH5.js → SettingsSection-Bf74l0Gj.js} +2 -2
- package/dist/core/web/public/next/assets/{SettingsSection-Da9RYyH5.js.map → SettingsSection-Bf74l0Gj.js.map} +1 -1
- package/dist/core/web/public/next/assets/SetupChecklist-BhZpFLsj.css +1 -0
- package/dist/core/web/public/next/assets/SetupChecklist-CzpEcfOl.js +2 -0
- package/dist/core/web/public/next/assets/SetupChecklist-CzpEcfOl.js.map +1 -0
- package/dist/core/web/public/next/assets/{Sheet-DhXyIDmq.js → Sheet-HkBOBMTT.js} +2 -2
- package/dist/core/web/public/next/assets/{Sheet-DhXyIDmq.js.map → Sheet-HkBOBMTT.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ShortcutsOverlay-Bi5f-wUw.js → ShortcutsOverlay-DiigiT8H.js} +2 -2
- package/dist/core/web/public/next/assets/{ShortcutsOverlay-Bi5f-wUw.js.map → ShortcutsOverlay-DiigiT8H.js.map} +1 -1
- package/dist/core/web/public/next/assets/Sidebar-C9YtBYVZ.js +3 -0
- package/dist/core/web/public/next/assets/Sidebar-C9YtBYVZ.js.map +1 -0
- package/dist/core/web/public/next/assets/{Slider-Bd9YFWEV.js → Slider-DaEDws-b.js} +2 -2
- package/dist/core/web/public/next/assets/{Slider-Bd9YFWEV.js.map → Slider-DaEDws-b.js.map} +1 -1
- package/dist/core/web/public/next/assets/{StatTile-DScTd3c-.js → StatTile-CTX41O6y.js} +2 -2
- package/dist/core/web/public/next/assets/{StatTile-DScTd3c-.js.map → StatTile-CTX41O6y.js.map} +1 -1
- package/dist/core/web/public/next/assets/{StatusBadge-DQ1UtQAJ.js → StatusBadge-CXG3iNL4.js} +2 -2
- package/dist/core/web/public/next/assets/{StatusBadge-DQ1UtQAJ.js.map → StatusBadge-CXG3iNL4.js.map} +1 -1
- package/dist/core/web/public/next/assets/{StepBand-BB3IJxhr.js → StepBand-jJTqYIdX.js} +2 -2
- package/dist/core/web/public/next/assets/{StepBand-BB3IJxhr.js.map → StepBand-jJTqYIdX.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Surface-DWMtQe3Q.js → Surface-5bNA08tK.js} +2 -2
- package/dist/core/web/public/next/assets/{Surface-DWMtQe3Q.js.map → Surface-5bNA08tK.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Swimlane-DcENqtdp.js → Swimlane-LrslsGxw.js} +2 -2
- package/dist/core/web/public/next/assets/{Swimlane-DcENqtdp.js.map → Swimlane-LrslsGxw.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Switch-CenChEYf.js → Switch-BmCzfFnu.js} +2 -2
- package/dist/core/web/public/next/assets/{Switch-CenChEYf.js.map → Switch-BmCzfFnu.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Tag-D4k5E3u0.js → Tag-WSUIaMVy.js} +2 -2
- package/dist/core/web/public/next/assets/{Tag-D4k5E3u0.js.map → Tag-WSUIaMVy.js.map} +1 -1
- package/dist/core/web/public/next/assets/{TerminalPane-DCQTukcE.js → TerminalPane-BVFgYX6K.js} +5 -5
- package/dist/core/web/public/next/assets/{TerminalPane-DCQTukcE.js.map → TerminalPane-BVFgYX6K.js.map} +1 -1
- package/dist/core/web/public/next/assets/{UniverseConsoleApp-DsuWT0pi.js → UniverseConsoleApp-BpphLqoz.js} +2 -2
- package/dist/core/web/public/next/assets/{UniverseConsoleApp-DsuWT0pi.js.map → UniverseConsoleApp-BpphLqoz.js.map} +1 -1
- package/dist/core/web/public/next/assets/{UniverseView-DyI5ApsA.js → UniverseView-DbpbSMwO.js} +4 -4
- package/dist/core/web/public/next/assets/{UniverseView-DyI5ApsA.js.map → UniverseView-DbpbSMwO.js.map} +1 -1
- package/dist/core/web/public/next/assets/{UsageSection-Imr28nwK.js → UsageSection-CUlaKtws.js} +3 -3
- package/dist/core/web/public/next/assets/{UsageSection-Imr28nwK.js.map → UsageSection-CUlaKtws.js.map} +1 -1
- package/dist/core/web/public/next/assets/VerseConsoleApp-DXDv1aOi.js +3 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-DXDv1aOi.js.map +1 -0
- package/dist/core/web/public/next/assets/{Workspace-CpxBO98E.js → Workspace-RXy0pqp6.js} +5 -5
- package/dist/core/web/public/next/assets/{Workspace-CpxBO98E.js.map → Workspace-RXy0pqp6.js.map} +1 -1
- package/dist/core/web/public/next/assets/{actions-DE8NoWV_.js → actions-BZTidCXZ.js} +2 -2
- package/dist/core/web/public/next/assets/{actions-DE8NoWV_.js.map → actions-BZTidCXZ.js.map} +1 -1
- package/dist/core/web/public/next/assets/{apps-model-CFGCUu9p.js → apps-model-CHO133qt.js} +2 -2
- package/dist/core/web/public/next/assets/{apps-model-CFGCUu9p.js.map → apps-model-CHO133qt.js.map} +1 -1
- package/dist/core/web/public/next/assets/{authority-model-CmnfJzmM.js → authority-model-8NeAEwAF.js} +2 -2
- package/dist/core/web/public/next/assets/{authority-model-CmnfJzmM.js.map → authority-model-8NeAEwAF.js.map} +1 -1
- package/dist/core/web/public/next/assets/{budget-queries-DjrPRFwl.js → budget-queries-DFF-3ICg.js} +2 -2
- package/dist/core/web/public/next/assets/{budget-queries-DjrPRFwl.js.map → budget-queries-DFF-3ICg.js.map} +1 -1
- package/dist/core/web/public/next/assets/{capacity-strip-model-C7cdQnuK.js → capacity-strip-model-5ViUgUlP.js} +2 -2
- package/dist/core/web/public/next/assets/{capacity-strip-model-C7cdQnuK.js.map → capacity-strip-model-5ViUgUlP.js.map} +1 -1
- package/dist/core/web/public/next/assets/{charts-DUD_jprE.js → charts-CzxWrZn7.js} +2 -2
- package/dist/core/web/public/next/assets/{charts-DUD_jprE.js.map → charts-CzxWrZn7.js.map} +1 -1
- package/dist/core/web/public/next/assets/cloud-model-CfRydq8N.js +2 -0
- package/dist/core/web/public/next/assets/{cloud-model-DoxBMDvx.js.map → cloud-model-CfRydq8N.js.map} +1 -1
- package/dist/core/web/public/next/assets/{cloud-queries-CTGvO-k-.js → cloud-queries-DmptbjS8.js} +2 -2
- package/dist/core/web/public/next/assets/{cloud-queries-CTGvO-k-.js.map → cloud-queries-DmptbjS8.js.map} +1 -1
- package/dist/core/web/public/next/assets/{command-catalog-CmrHNFzh.js → command-catalog-ffCAijVY.js} +2 -2
- package/dist/core/web/public/next/assets/{command-catalog-CmrHNFzh.js.map → command-catalog-ffCAijVY.js.map} +1 -1
- package/dist/core/web/public/next/assets/{context-model-2Owp2jYF.js → context-model-Bb15chFt.js} +2 -2
- package/dist/core/web/public/next/assets/{context-model-2Owp2jYF.js.map → context-model-Bb15chFt.js.map} +1 -1
- package/dist/core/web/public/next/assets/{context-model-9xywbXxX.js → context-model-CDeyP0cA.js} +2 -2
- package/dist/core/web/public/next/assets/{context-model-9xywbXxX.js.map → context-model-CDeyP0cA.js.map} +1 -1
- package/dist/core/web/public/next/assets/{context-queries-wvcRnV-I.js → context-queries-_9bFWb9v.js} +2 -2
- package/dist/core/web/public/next/assets/{context-queries-wvcRnV-I.js.map → context-queries-_9bFWb9v.js.map} +1 -1
- package/dist/core/web/public/next/assets/{control-queries-DB6Kh7UN.js → control-queries-CXtmZZH6.js} +2 -2
- package/dist/core/web/public/next/assets/{control-queries-DB6Kh7UN.js.map → control-queries-CXtmZZH6.js.map} +1 -1
- package/dist/core/web/public/next/assets/copy-setup-BIp0iaiZ.js +2 -0
- package/dist/core/web/public/next/assets/copy-setup-BIp0iaiZ.js.map +1 -0
- package/dist/core/web/public/next/assets/{dock-icons-BBUGl4tE.js → dock-icons-Cc43W7r4.js} +2 -2
- package/dist/core/web/public/next/assets/{dock-icons-BBUGl4tE.js.map → dock-icons-Cc43W7r4.js.map} +1 -1
- package/dist/core/web/public/next/assets/{fleet-model-BRfRWkZl.js → fleet-model-DOK8ZtEt.js} +2 -2
- package/dist/core/web/public/next/assets/{fleet-model-BRfRWkZl.js.map → fleet-model-DOK8ZtEt.js.map} +1 -1
- package/dist/core/web/public/next/assets/{fleet-queries-tU6UEXN2.js → fleet-queries-BeEAqD6y.js} +2 -2
- package/dist/core/web/public/next/assets/{fleet-queries-tU6UEXN2.js.map → fleet-queries-BeEAqD6y.js.map} +1 -1
- package/dist/core/web/public/next/assets/{focus-trap-BGOceFvj.js → focus-trap-ChZ5EFfM.js} +2 -2
- package/dist/core/web/public/next/assets/{focus-trap-BGOceFvj.js.map → focus-trap-ChZ5EFfM.js.map} +1 -1
- package/dist/core/web/public/next/assets/format-BmH2yWL6.js +2 -0
- package/dist/core/web/public/next/assets/format-BmH2yWL6.js.map +1 -0
- package/dist/core/web/public/next/assets/{git-model-53iRLInY.js → git-model-BFwAVbxF.js} +2 -2
- package/dist/core/web/public/next/assets/{git-model-53iRLInY.js.map → git-model-BFwAVbxF.js.map} +1 -1
- package/dist/core/web/public/next/assets/global-y_exIyAP.js +2 -0
- package/dist/core/web/public/next/assets/{global-CXHHMz9o.js.map → global-y_exIyAP.js.map} +1 -1
- package/dist/core/web/public/next/assets/{guarded-runners-B8zFVBVZ.js → guarded-runners-Cd4POBtI.js} +2 -2
- package/dist/core/web/public/next/assets/{guarded-runners-B8zFVBVZ.js.map → guarded-runners-Cd4POBtI.js.map} +1 -1
- package/dist/core/web/public/next/assets/{icons-D4s-jlxX.js → icons-CygCEFWs.js} +2 -2
- package/dist/core/web/public/next/assets/{icons-D4s-jlxX.js.map → icons-CygCEFWs.js.map} +1 -1
- package/dist/core/web/public/next/assets/{index-BG177cPN.js → index-CyK31YRm.js} +3 -3
- package/dist/core/web/public/next/assets/{index-BG177cPN.js.map → index-CyK31YRm.js.map} +1 -1
- package/dist/core/web/public/next/assets/{live-model-CEf01wrW.js → live-model-D7hilYFk.js} +2 -2
- package/dist/core/web/public/next/assets/live-model-D7hilYFk.js.map +1 -0
- package/dist/core/web/public/next/assets/{mind.module-D_xk6HIQ.js → mind.module-B15k0Y9q.js} +2 -2
- package/dist/core/web/public/next/assets/{mind.module-D_xk6HIQ.js.map → mind.module-B15k0Y9q.js.map} +1 -1
- package/dist/core/web/public/next/assets/mutations-CWlxEMEm.js +2 -0
- package/dist/core/web/public/next/assets/{mutations-CbTSofVH.js.map → mutations-CWlxEMEm.js.map} +1 -1
- package/dist/core/web/public/next/assets/{nav-CmZcbPFJ.js → nav-mimleI0R.js} +2 -2
- package/dist/core/web/public/next/assets/{nav-CmZcbPFJ.js.map → nav-mimleI0R.js.map} +1 -1
- package/dist/core/web/public/next/assets/{overnight-queries-CR0b_j-V.js → overnight-queries-DJ4mZKSj.js} +2 -2
- package/dist/core/web/public/next/assets/{overnight-queries-CR0b_j-V.js.map → overnight-queries-DJ4mZKSj.js.map} +1 -1
- package/dist/core/web/public/next/assets/primitives-DMijqcu0.js +1 -0
- package/dist/core/web/public/next/assets/{queries-rvRsAGW2.js → queries-Bw1McHTj.js} +2 -2
- package/dist/core/web/public/next/assets/{queries-rvRsAGW2.js.map → queries-Bw1McHTj.js.map} +1 -1
- package/dist/core/web/public/next/assets/{reasoning-pref-DMPQkujg.js → reasoning-pref-KkhI_5-j.js} +2 -2
- package/dist/core/web/public/next/assets/{reasoning-pref-DMPQkujg.js.map → reasoning-pref-KkhI_5-j.js.map} +1 -1
- package/dist/core/web/public/next/assets/{reveal-anchor-BKk2wZZZ.js → reveal-anchor-CCCx_kfT.js} +2 -2
- package/dist/core/web/public/next/assets/{reveal-anchor-BKk2wZZZ.js.map → reveal-anchor-CCCx_kfT.js.map} +1 -1
- package/dist/core/web/public/next/assets/{seat-subscription-CLn2ReSZ.js → seat-subscription-BhUUz7VL.js} +2 -2
- package/dist/core/web/public/next/assets/{seat-subscription-CLn2ReSZ.js.map → seat-subscription-BhUUz7VL.js.map} +1 -1
- package/dist/core/web/public/next/assets/{sidebar-model-CjQLvdag.js → sidebar-model-Dcd437cf.js} +2 -2
- package/dist/core/web/public/next/assets/{sidebar-model-CjQLvdag.js.map → sidebar-model-Dcd437cf.js.map} +1 -1
- package/dist/core/web/public/next/assets/{slots-DRxNosZg.js → slots-BL_J5mmV.js} +3 -3
- package/dist/core/web/public/next/assets/{slots-DRxNosZg.js.map → slots-BL_J5mmV.js.map} +1 -1
- package/dist/core/web/public/next/assets/{surface-data-DshUC_TU.js → surface-data-C3UAQ4QX.js} +2 -2
- package/dist/core/web/public/next/assets/{surface-data-DshUC_TU.js.map → surface-data-C3UAQ4QX.js.map} +1 -1
- package/dist/core/web/public/next/assets/surface-prefetch-BXKjPsV5.js +2 -0
- package/dist/core/web/public/next/assets/{surface-prefetch-DO8r4ttQ.js.map → surface-prefetch-BXKjPsV5.js.map} +1 -1
- package/dist/core/web/public/next/assets/{tasks-model-BKPFZAmZ.js → tasks-model-CzHvclVm.js} +2 -2
- package/dist/core/web/public/next/assets/{tasks-model-BKPFZAmZ.js.map → tasks-model-CzHvclVm.js.map} +1 -1
- package/dist/core/web/public/next/assets/{terminal-icons-DoeQkP3y.js → terminal-icons-BwgQTQP0.js} +2 -2
- package/dist/core/web/public/next/assets/{terminal-icons-DoeQkP3y.js.map → terminal-icons-BwgQTQP0.js.map} +1 -1
- package/dist/core/web/public/next/assets/types-IYKrYLku.js +2 -0
- package/dist/core/web/public/next/assets/types-IYKrYLku.js.map +1 -0
- package/dist/core/web/public/next/assets/{usage-queries-MnUeYzwp.js → usage-queries-pXxvy54x.js} +2 -2
- package/dist/core/web/public/next/assets/{usage-queries-MnUeYzwp.js.map → usage-queries-pXxvy54x.js.map} +1 -1
- package/dist/core/web/public/next/assets/{use-guarded-action-P12MfNwU.js → use-guarded-action-EgVWjM5c.js} +2 -2
- package/dist/core/web/public/next/assets/{use-guarded-action-P12MfNwU.js.map → use-guarded-action-EgVWjM5c.js.map} +1 -1
- package/dist/core/web/public/next/assets/{use-ticker-DIvAZ4Ey.js → use-ticker-BoqFxRFG.js} +2 -2
- package/dist/core/web/public/next/assets/{use-ticker-DIvAZ4Ey.js.map → use-ticker-BoqFxRFG.js.map} +1 -1
- package/dist/core/web/public/next/assets/{use-token-gate-DfEja7Wr.js → use-token-gate-DSNIIpI6.js} +2 -2
- package/dist/core/web/public/next/assets/{use-token-gate-DfEja7Wr.js.map → use-token-gate-DSNIIpI6.js.map} +1 -1
- package/dist/core/web/public/next/assets/{useOnboarding-CkOHadqC.js → useOnboarding-Bk0VnkxQ.js} +2 -2
- package/dist/core/web/public/next/assets/{useOnboarding-CkOHadqC.js.map → useOnboarding-Bk0VnkxQ.js.map} +1 -1
- package/dist/core/web/public/next/assets/{useSeatsRefresh-BDlbDlIU.js → useSeatsRefresh-q7Id9RcW.js} +2 -2
- package/dist/core/web/public/next/assets/{useSeatsRefresh-BDlbDlIU.js.map → useSeatsRefresh-q7Id9RcW.js.map} +1 -1
- package/dist/core/web/public/next/assets/{useVerseTranscript-BGtA55k2.js → useVerseTranscript-CqH51rt9.js} +2 -2
- package/dist/core/web/public/next/assets/{useVerseTranscript-BGtA55k2.js.map → useVerseTranscript-CqH51rt9.js.map} +1 -1
- package/dist/core/web/public/next/assets/{verse-icons-wOet9JZy.js → verse-icons-DsG1dOQx.js} +2 -2
- package/dist/core/web/public/next/assets/{verse-icons-wOet9JZy.js.map → verse-icons-DsG1dOQx.js.map} +1 -1
- package/dist/core/web/public/next/assets/{verse-model-CSzzdyu2.js → verse-model-JTuvRBVK.js} +2 -2
- package/dist/core/web/public/next/assets/{verse-model-CSzzdyu2.js.map → verse-model-JTuvRBVK.js.map} +1 -1
- package/dist/core/web/public/next/assets/{warmup-CecO_Nk0.js → warmup-Bv1RumVq.js} +3 -3
- package/dist/core/web/public/next/assets/{warmup-CecO_Nk0.js.map → warmup-Bv1RumVq.js.map} +1 -1
- package/dist/core/web/public/next/assets/why-seat-model-Cau8qG6O.js +2 -0
- package/dist/core/web/public/next/assets/why-seat-model-Cau8qG6O.js.map +1 -0
- package/dist/core/web/public/next/assets/{workspace-model-BdIVybKr.js → workspace-model-D-SLfads.js} +2 -2
- package/dist/core/web/public/next/assets/{workspace-model-BdIVybKr.js.map → workspace-model-D-SLfads.js.map} +1 -1
- package/dist/core/web/public/next/index.html +1 -1
- package/dist/release-dependency-inventory.json +1 -1
- package/docs/AUTONOMY-GAP.md +1 -1
- package/package.json +1 -1
- package/dist/core/web/public/next/assets/Advanced-CxzE6ekM.js +0 -2
- package/dist/core/web/public/next/assets/App-DFlp-vdv.js +0 -7
- package/dist/core/web/public/next/assets/AppsSection-Ct2O605-.js +0 -2
- package/dist/core/web/public/next/assets/AutonomyOffState-CXhXpsim.js +0 -2
- package/dist/core/web/public/next/assets/AutonomyOffState-CXhXpsim.js.map +0 -1
- package/dist/core/web/public/next/assets/AutonomyOffState-DmbE71vI.css +0 -1
- package/dist/core/web/public/next/assets/AutonomySection-BTg7yVa1.js +0 -2
- package/dist/core/web/public/next/assets/BudgetControl-ng6swoZp.js +0 -2
- package/dist/core/web/public/next/assets/BudgetControl-ng6swoZp.js.map +0 -1
- package/dist/core/web/public/next/assets/ChatSection-Bisj9R6E.js +0 -3
- package/dist/core/web/public/next/assets/ChatSection-Bisj9R6E.js.map +0 -1
- package/dist/core/web/public/next/assets/CommandSection-D8ZihzvE.js +0 -2
- package/dist/core/web/public/next/assets/CommandSection-D8ZihzvE.js.map +0 -1
- package/dist/core/web/public/next/assets/DockHost-BPqyhtCP.js +0 -2
- package/dist/core/web/public/next/assets/McpSection-D1tDvlRa.js +0 -2
- package/dist/core/web/public/next/assets/NeedsYouDrawer-D992XTOn.js +0 -2
- package/dist/core/web/public/next/assets/NeedsYouDrawer-D992XTOn.js.map +0 -1
- package/dist/core/web/public/next/assets/NeedsYouList-CruOt4JT.css +0 -1
- package/dist/core/web/public/next/assets/NeedsYouList-eBOlJr0b.js +0 -2
- package/dist/core/web/public/next/assets/OnboardingFlow-D3yfITK1.js +0 -2
- package/dist/core/web/public/next/assets/OnboardingFlow-D3yfITK1.js.map +0 -1
- package/dist/core/web/public/next/assets/OnboardingGate-DrDEVBqw.js +0 -3
- package/dist/core/web/public/next/assets/ResourcesChrome-C2ZrA7la.js +0 -3
- package/dist/core/web/public/next/assets/Sidebar-BuO3sViG.js +0 -3
- package/dist/core/web/public/next/assets/Sidebar-BuO3sViG.js.map +0 -1
- package/dist/core/web/public/next/assets/VerseConsoleApp-DeuBEvAO.js +0 -3
- package/dist/core/web/public/next/assets/VerseConsoleApp-DeuBEvAO.js.map +0 -1
- package/dist/core/web/public/next/assets/cloud-model-DoxBMDvx.js +0 -2
- package/dist/core/web/public/next/assets/copy-setup-CJQhFl-4.js +0 -2
- package/dist/core/web/public/next/assets/copy-setup-CJQhFl-4.js.map +0 -1
- package/dist/core/web/public/next/assets/format-DEAaVF6X.js +0 -2
- package/dist/core/web/public/next/assets/format-DEAaVF6X.js.map +0 -1
- package/dist/core/web/public/next/assets/global-CXHHMz9o.js +0 -2
- package/dist/core/web/public/next/assets/live-model-CEf01wrW.js.map +0 -1
- package/dist/core/web/public/next/assets/mutations-CbTSofVH.js +0 -2
- package/dist/core/web/public/next/assets/primitives-DNI-uJBd.js +0 -1
- package/dist/core/web/public/next/assets/surface-prefetch-DO8r4ttQ.js +0 -2
- package/dist/core/web/public/next/assets/types-D5XOdyw8.js +0 -2
- package/dist/core/web/public/next/assets/types-D5XOdyw8.js.map +0 -1
- package/dist/core/web/public/next/assets/why-seat-model-D68ZA7G8.js +0 -2
- package/dist/core/web/public/next/assets/why-seat-model-D68ZA7G8.js.map +0 -1
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloud PR preview (3.13) — what the standing merge gates would say about a
|
|
3
|
+
* cloud task's pull request, computed from its SHA-pinned diff, so Needs-you
|
|
4
|
+
* can triage it: land it, close it, or bring it up to date.
|
|
5
|
+
*
|
|
6
|
+
* PURE: the diff, GitHub's view of the PR and the live policy come in; a
|
|
7
|
+
* verdict comes out. Fetching them is pr-actions.ts's job.
|
|
8
|
+
*
|
|
9
|
+
* NOTHING IS REIMPLEMENTED. Each diff check is the gate function the
|
|
10
|
+
* standing merge pass runs (standing-merge-pass.ts evaluateProposal):
|
|
11
|
+
*
|
|
12
|
+
* protected paths evaluateG1 (selfRepo for ashlr-hub)
|
|
13
|
+
* tampering evaluateG1b
|
|
14
|
+
* risk and size classifyRisk + measureAutoMergeDiffScope → evaluateG2,
|
|
15
|
+
* against the grant's caps (effectiveScopeCaps) — or the
|
|
16
|
+
* compiled STANDING_GRANT_CEILINGS when no grant covers
|
|
17
|
+
* the repo, the loosest any grant can ever be
|
|
18
|
+
* report vs diff turnIntegrity(claim, changedFileCountFromDiff) → evaluateG4
|
|
19
|
+
*
|
|
20
|
+
* and GitHub's own state stands in for the rest a human would look at
|
|
21
|
+
* (conflicts, behind base, required checks — the G7 "no checks ⇒ owner lane"
|
|
22
|
+
* rule included).
|
|
23
|
+
*
|
|
24
|
+
* WHAT THIS IS NOT: a landing decision. G0 (authority), G3 (verification off
|
|
25
|
+
* the current base), G5 and G6 (judge) run only inside the standing pass, and
|
|
26
|
+
* cloud PRs do not enter it yet (automatic landing arrives with cloud
|
|
27
|
+
* intake). `wouldAutoLand` means "every check the gates can make from the
|
|
28
|
+
* diff and GitHub passes" — the list Mason would otherwise read himself. The
|
|
29
|
+
* Tier-1 test-import half of G1 needs a checkout and is not run here; the
|
|
30
|
+
* other G1 rules, including every Tier-1 source path, are.
|
|
31
|
+
*/
|
|
32
|
+
import { changedFileCountFromDiff, turnIntegrity } from '../classify/completion-claims.js';
|
|
33
|
+
import { STANDING_GRANT_CEILINGS } from '../authority/types.js';
|
|
34
|
+
import { measureAutoMergeDiffScope } from '../foundry/automerge-diff-scope.js';
|
|
35
|
+
import { classifyRisk } from '../inbox/merge.js';
|
|
36
|
+
import { evaluateG1, evaluateG1b, evaluateG2, evaluateG4 } from '../fleet/merge-gates.js';
|
|
37
|
+
import { MERGE_RISK_RANK } from '../fleet/fleet-types.js';
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
// Wire shapes (GET /api/verse/cloud/previews; web imports these as types only)
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
export const VERSE_CLOUD_PREVIEWS_PATH = '/api/verse/cloud/previews';
|
|
42
|
+
/** Needs-you id of a cloud task's PR item (cloud-api.ts cloudNeedsYouItems). */
|
|
43
|
+
export function cloudPrItemId(taskId) {
|
|
44
|
+
return `fleet:owner-lane-pr:cloud-${taskId}`;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* The compiled ceilings as a policy: what the loosest grant could allow. A
|
|
48
|
+
* preview without a grant is still judged against real bounds, never none.
|
|
49
|
+
*/
|
|
50
|
+
export function ceilingPolicy(repo, selfRepo) {
|
|
51
|
+
const c = STANDING_GRANT_CEILINGS;
|
|
52
|
+
return {
|
|
53
|
+
repo: {
|
|
54
|
+
nameWithOwner: repo,
|
|
55
|
+
stage: 'merge',
|
|
56
|
+
enforcement: 'server',
|
|
57
|
+
maxRisk: c.maxRisk,
|
|
58
|
+
maxFiles: c.maxFiles,
|
|
59
|
+
maxLines: c.maxLines,
|
|
60
|
+
maxMergesPerDay: c.maxMergesPerRepoPerDay,
|
|
61
|
+
selfRepo: selfRepo ? 'merge-non-authority' : null,
|
|
62
|
+
},
|
|
63
|
+
merge: {
|
|
64
|
+
maxFiles: c.maxFiles,
|
|
65
|
+
maxLines: c.maxLines,
|
|
66
|
+
selfRepo: 'merge-non-authority',
|
|
67
|
+
localAuthored: { ...c.localAuthored },
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* The claim a cloud report makes, in completion-claims' vocabulary. `done`
|
|
73
|
+
* and `partial` say work was done; `blocked` and `no-change` say none was —
|
|
74
|
+
* a diff under either is the "silent change" G4 refuses. No report asserts
|
|
75
|
+
* nothing (`unknown`, which G4 lets pass: it is not evidence either way).
|
|
76
|
+
*/
|
|
77
|
+
export function claimOfReport(report) {
|
|
78
|
+
if (!report)
|
|
79
|
+
return 'unknown';
|
|
80
|
+
if (report.status === 'done' || report.status === 'partial')
|
|
81
|
+
return 'claims-change';
|
|
82
|
+
return 'reports-blocked';
|
|
83
|
+
}
|
|
84
|
+
const plural = (n, one, many) => `${n} ${n === 1 ? one : many}`;
|
|
85
|
+
/** The diff-only checks (protected, tamper, scope, claims). Cached per head SHA by pr-actions.ts. */
|
|
86
|
+
export function cloudPrDiffChecks(input) {
|
|
87
|
+
if (input.diff === null) {
|
|
88
|
+
return [{ id: 'protected', ok: false, text: 'Diff unavailable' }];
|
|
89
|
+
}
|
|
90
|
+
const diff = input.diff;
|
|
91
|
+
const scope = measureAutoMergeDiffScope(diff);
|
|
92
|
+
const out = [];
|
|
93
|
+
const g1 = evaluateG1({ paths: scope.ok ? scope.touchedPaths : null, selfRepo: input.selfRepo });
|
|
94
|
+
if (g1.verdict === 'pass')
|
|
95
|
+
out.push({ id: 'protected', ok: true, text: 'No protected paths' });
|
|
96
|
+
else if (g1.hits.length > 0) {
|
|
97
|
+
const more = g1.hits.length > 1 ? ` +${g1.hits.length - 1}` : '';
|
|
98
|
+
out.push({ id: 'protected', ok: false, text: `Protected: ${g1.hits[0].path}${more}` });
|
|
99
|
+
}
|
|
100
|
+
else
|
|
101
|
+
out.push({ id: 'protected', ok: false, text: 'Diff unreadable' });
|
|
102
|
+
const g1b = evaluateG1b(diff);
|
|
103
|
+
out.push(g1b.verdict === 'pass'
|
|
104
|
+
? { id: 'tamper', ok: true, text: 'No test tampering' }
|
|
105
|
+
: { id: 'tamper', ok: false, text: g1b.code === 'test-tamper' ? 'Test tampering' : 'Tampering not ruled out' });
|
|
106
|
+
// classifyRisk reads only the diff; the rest of a Proposal is irrelevant here.
|
|
107
|
+
const risk = classifyRisk({ diff });
|
|
108
|
+
const policy = input.policy ?? ceilingPolicy(input.repo, input.selfRepo);
|
|
109
|
+
const g2 = evaluateG2({
|
|
110
|
+
partial: false,
|
|
111
|
+
// A cloud PR has no fleet proposal to sign; its identity is the pinned
|
|
112
|
+
// task branch and PR (tracker.ts). Provenance is the standing pass's
|
|
113
|
+
// question once cloud intake exists, not the preview's.
|
|
114
|
+
provenance: { ok: true },
|
|
115
|
+
risk,
|
|
116
|
+
scope: scope.ok ? { files: scope.files, changedLines: scope.changedLines } : null,
|
|
117
|
+
repoPolicy: policy.repo,
|
|
118
|
+
mergePolicy: policy.merge,
|
|
119
|
+
config: {},
|
|
120
|
+
// Claude cloud sessions are frontier-authored.
|
|
121
|
+
producerLocal: false,
|
|
122
|
+
});
|
|
123
|
+
const riskWord = `${risk[0].toUpperCase()}${risk.slice(1)} risk`;
|
|
124
|
+
if (!scope.ok)
|
|
125
|
+
out.push({ id: 'scope', ok: false, text: 'Diff unmeasurable' });
|
|
126
|
+
else if (g2.verdict === 'pass') {
|
|
127
|
+
out.push({ id: 'scope', ok: true, text: `${riskWord} · ${plural(scope.files, 'file', 'files')} · ${plural(scope.changedLines, 'line', 'lines')}` });
|
|
128
|
+
}
|
|
129
|
+
else if (risk === 'high') {
|
|
130
|
+
out.push({ id: 'scope', ok: false, text: 'High risk' });
|
|
131
|
+
}
|
|
132
|
+
else if (MERGE_RISK_RANK[risk] > MERGE_RISK_RANK[g2.caps.maxRisk]) {
|
|
133
|
+
// G2's own order: risk, then files, then lines.
|
|
134
|
+
out.push({ id: 'scope', ok: false, text: `${riskWord} (cap ${g2.caps.maxRisk})` });
|
|
135
|
+
}
|
|
136
|
+
else if (scope.files > g2.caps.maxFiles) {
|
|
137
|
+
out.push({ id: 'scope', ok: false, text: `${plural(scope.files, 'file', 'files')} (cap ${g2.caps.maxFiles})` });
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
out.push({ id: 'scope', ok: false, text: `${plural(scope.changedLines, 'line', 'lines')} (cap ${g2.caps.maxLines})` });
|
|
141
|
+
}
|
|
142
|
+
const g4 = evaluateG4({
|
|
143
|
+
integrity: turnIntegrity(claimOfReport(input.report), changedFileCountFromDiff(diff)),
|
|
144
|
+
claim: claimOfReport(input.report),
|
|
145
|
+
classifier: 'heuristic',
|
|
146
|
+
});
|
|
147
|
+
if (g4.verdict !== 'pass')
|
|
148
|
+
out.push({ id: 'claims', ok: false, text: "Report doesn't match diff" });
|
|
149
|
+
else
|
|
150
|
+
out.push({ id: 'claims', ok: true, text: input.report ? 'Report matches diff' : 'No report' });
|
|
151
|
+
return out;
|
|
152
|
+
}
|
|
153
|
+
// ---------------------------------------------------------------------------
|
|
154
|
+
// GitHub checks and the verdict
|
|
155
|
+
// ---------------------------------------------------------------------------
|
|
156
|
+
export function isBehind(github) {
|
|
157
|
+
return (github.behindBy !== null && github.behindBy > 0) || github.mergeStateStatus === 'BEHIND';
|
|
158
|
+
}
|
|
159
|
+
export function cloudPrGithubChecks(github, baseBranch) {
|
|
160
|
+
const out = [];
|
|
161
|
+
if (github.mergeable === 'MERGEABLE' && github.mergeStateStatus !== 'DIRTY')
|
|
162
|
+
out.push({ id: 'conflicts', ok: true, text: 'No conflicts' });
|
|
163
|
+
else if (github.mergeable === 'CONFLICTING' || github.mergeStateStatus === 'DIRTY')
|
|
164
|
+
out.push({ id: 'conflicts', ok: false, text: `Conflicts with ${baseBranch}` });
|
|
165
|
+
else
|
|
166
|
+
out.push({ id: 'conflicts', ok: false, text: 'GitHub still checking' });
|
|
167
|
+
if (isBehind(github)) {
|
|
168
|
+
out.push({ id: 'behind', ok: false, text: github.behindBy && github.behindBy > 0 ? `${plural(github.behindBy, 'commit', 'commits')} behind` : `Behind ${baseBranch}` });
|
|
169
|
+
}
|
|
170
|
+
else if (github.behindBy === null)
|
|
171
|
+
out.push({ id: 'behind', ok: false, text: `Not compared with ${baseBranch}` });
|
|
172
|
+
else
|
|
173
|
+
out.push({ id: 'behind', ok: true, text: `Up to date with ${baseBranch}` });
|
|
174
|
+
const ci = {
|
|
175
|
+
green: { id: 'ci', ok: true, text: 'Checks green' },
|
|
176
|
+
red: { id: 'ci', ok: false, text: 'Checks failing' },
|
|
177
|
+
pending: { id: 'ci', ok: false, text: 'Checks running' },
|
|
178
|
+
// G7: a PR with no checks is never landed automatically.
|
|
179
|
+
none: { id: 'ci', ok: false, text: 'No checks reported' },
|
|
180
|
+
};
|
|
181
|
+
out.push(ci[github.checks]);
|
|
182
|
+
return out;
|
|
183
|
+
}
|
|
184
|
+
/** Land's own refusals (pr-actions.ts landCloudPr enforces the same). */
|
|
185
|
+
export function landRefusal(github, diffChecks, baseBranch) {
|
|
186
|
+
if (github.state !== 'OPEN')
|
|
187
|
+
return `The pull request is ${github.state === 'MERGED' ? 'already merged' : 'closed'}.`;
|
|
188
|
+
const protectedCheck = diffChecks.find((c) => c.id === 'protected');
|
|
189
|
+
if (!protectedCheck || !protectedCheck.ok) {
|
|
190
|
+
return protectedCheck && protectedCheck.text.startsWith('Protected: ')
|
|
191
|
+
? `It touches a protected path (${protectedCheck.text.slice('Protected: '.length)}); land it on GitHub after review.`
|
|
192
|
+
: 'Its diff could not be checked for protected paths.';
|
|
193
|
+
}
|
|
194
|
+
if (github.mergeable === 'CONFLICTING' || github.mergeStateStatus === 'DIRTY')
|
|
195
|
+
return `It conflicts with ${baseBranch}.`;
|
|
196
|
+
if (github.mergeable !== 'MERGEABLE')
|
|
197
|
+
return 'GitHub has not finished checking whether it can merge. Try again in a minute.';
|
|
198
|
+
return null;
|
|
199
|
+
}
|
|
200
|
+
export function cloudPrPreview(input) {
|
|
201
|
+
const checks = [...input.diffChecks, ...cloudPrGithubChecks(input.github, input.baseBranch)];
|
|
202
|
+
const failing = checks.filter((c) => !c.ok);
|
|
203
|
+
const wouldAutoLand = failing.length === 0 && input.github.state === 'OPEN';
|
|
204
|
+
const scope = checks.find((c) => c.id === 'scope');
|
|
205
|
+
const refusal = landRefusal(input.github, input.diffChecks, input.baseBranch);
|
|
206
|
+
let reason;
|
|
207
|
+
if (input.github.state !== 'OPEN')
|
|
208
|
+
reason = refusal ?? 'The pull request is not open.';
|
|
209
|
+
else if (wouldAutoLand)
|
|
210
|
+
reason = `Clean: ${scope ? scope.text.replace(/ · /g, ', ').toLowerCase() : 'every check passes'}, checks green.`;
|
|
211
|
+
else
|
|
212
|
+
reason = `Held: ${failing.slice(0, 2).map((c) => c.text.charAt(0).toLowerCase() + c.text.slice(1)).join('; ')}${failing.length > 2 ? ` (+${failing.length - 2} more)` : ''}.`;
|
|
213
|
+
return {
|
|
214
|
+
taskId: input.taskId,
|
|
215
|
+
itemId: cloudPrItemId(input.taskId),
|
|
216
|
+
prNumber: input.prNumber,
|
|
217
|
+
headSha: input.github.headSha,
|
|
218
|
+
baseBranch: input.baseBranch,
|
|
219
|
+
open: input.github.state === 'OPEN',
|
|
220
|
+
wouldAutoLand,
|
|
221
|
+
reason,
|
|
222
|
+
landable: refusal === null ? { ok: true, reason: null } : { ok: false, reason: refusal },
|
|
223
|
+
behind: isBehind(input.github),
|
|
224
|
+
checks,
|
|
225
|
+
computedAt: input.now.toISOString(),
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=pr-preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pr-preview.js","sourceRoot":"","sources":["../../../src/core/cloud/pr-preview.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,8 @@ export declare const CLOUD_BUDGET_LIMITS: Readonly<{
|
|
|
15
15
|
maxConcurrent: 20;
|
|
16
16
|
maxSessionsPerDay: 500;
|
|
17
17
|
maxSelfImprovePerDay: 100;
|
|
18
|
+
/** At least one: zero would stop self-improvement for good — the enabled switch does that, visibly. */
|
|
19
|
+
maxSelfImproveOpenPrs: 50;
|
|
18
20
|
}>;
|
|
19
21
|
/** `$ASHLR_HOME` when it is absolute, else `~/.ashlr` (resolved per call so a test HOME is honoured). */
|
|
20
22
|
export declare function ashlrHome(): string;
|
package/dist/core/cloud/store.js
CHANGED
|
@@ -51,6 +51,8 @@ export const CLOUD_BUDGET_LIMITS = Object.freeze({
|
|
|
51
51
|
maxConcurrent: 20,
|
|
52
52
|
maxSessionsPerDay: 500,
|
|
53
53
|
maxSelfImprovePerDay: 100,
|
|
54
|
+
/** At least one: zero would stop self-improvement for good — the enabled switch does that, visibly. */
|
|
55
|
+
maxSelfImproveOpenPrs: 50,
|
|
54
56
|
});
|
|
55
57
|
// ---------------------------------------------------------------------------
|
|
56
58
|
// Paths
|
|
@@ -121,6 +123,29 @@ function isDeliveryPin(value, repo) {
|
|
|
121
123
|
return false;
|
|
122
124
|
return value['url'].toLowerCase() === `https://github.com/${repo}/pull/${value['number']}`.toLowerCase();
|
|
123
125
|
}
|
|
126
|
+
/** 3.13: a fleet App PR in the task's own repo (the intake never supersedes across repos). */
|
|
127
|
+
function isSupersededBy(value, repo) {
|
|
128
|
+
return isRecord(value)
|
|
129
|
+
&& isString(value['repo']) && value['repo'].toLowerCase() === repo.toLowerCase()
|
|
130
|
+
&& Number.isSafeInteger(value['number']) && value['number'] >= 1;
|
|
131
|
+
}
|
|
132
|
+
const SHA1_HEX = /^[0-9a-f]{40}$/;
|
|
133
|
+
const SHA256_HEX = /^[0-9a-f]{64}$/;
|
|
134
|
+
/** Inbox proposal ids are filename stems; the fleet merge state keys on the same shape. */
|
|
135
|
+
const PROPOSAL_ID = /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/;
|
|
136
|
+
/** 3.13: the intake memo — either a filed proposal (id + diff hash) or a refusal code, for one head. */
|
|
137
|
+
function isIntakeMemo(value) {
|
|
138
|
+
if (!isRecord(value) || !isString(value['headSha']) || !SHA1_HEX.test(value['headSha']))
|
|
139
|
+
return false;
|
|
140
|
+
if (!isString(value['at']) || !Number.isFinite(Date.parse(value['at'])))
|
|
141
|
+
return false;
|
|
142
|
+
const proposalId = value['proposalId'];
|
|
143
|
+
const diffHash = value['diffHash'];
|
|
144
|
+
const refused = value['refused'];
|
|
145
|
+
const filed = isString(proposalId) && PROPOSAL_ID.test(proposalId) && isString(diffHash) && SHA256_HEX.test(diffHash) && refused === null;
|
|
146
|
+
const declined = proposalId === null && diffHash === null && isString(refused) && refused.length > 0 && refused.length <= 200;
|
|
147
|
+
return filed || declined;
|
|
148
|
+
}
|
|
124
149
|
/** Structural check of a persisted task. Hand-edited or foreign files fail it and are skipped by readers. */
|
|
125
150
|
export function isCloudTask(value) {
|
|
126
151
|
if (!isRecord(value))
|
|
@@ -147,6 +172,8 @@ export function isCloudTask(value) {
|
|
|
147
172
|
&& (value['pr'] === null || isPr(value['pr']))
|
|
148
173
|
&& (value['report'] === null || isReport(value['report']))
|
|
149
174
|
&& (value['deliveryPin'] === undefined || isDeliveryPin(value['deliveryPin'], value['repo']))
|
|
175
|
+
&& (value['supersededBy'] === undefined || isSupersededBy(value['supersededBy'], value['repo']))
|
|
176
|
+
&& (value['intake'] === undefined || isIntakeMemo(value['intake']))
|
|
150
177
|
&& typeof value['estimatedCostUsd'] === 'number' && Number.isFinite(value['estimatedCostUsd']) && value['estimatedCostUsd'] >= 0
|
|
151
178
|
&& isNullableString(value['backlogItemId'])
|
|
152
179
|
&& isNullableString(value['needsYouId']);
|
|
@@ -247,6 +274,7 @@ function mergeBudget(base, input) {
|
|
|
247
274
|
repo,
|
|
248
275
|
maxPerDay: clampCount(self['maxPerDay'], base.selfImprove.maxPerDay, 0, CLOUD_BUDGET_LIMITS.maxSelfImprovePerDay),
|
|
249
276
|
reserveUsd: clampMoney(self['reserveUsd'], base.selfImprove.reserveUsd),
|
|
277
|
+
maxOpenPrs: clampCount(self['maxOpenPrs'], base.selfImprove.maxOpenPrs, 1, CLOUD_BUDGET_LIMITS.maxSelfImproveOpenPrs),
|
|
250
278
|
},
|
|
251
279
|
updatedAt: typeof src['updatedAt'] === 'string' && Number.isFinite(Date.parse(src['updatedAt'])) ? src['updatedAt'] : base.updatedAt,
|
|
252
280
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/core/cloud/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/core/cloud/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloud task evidence timeline — HTTP module (3.13), mounted as
|
|
3
|
+
* 'cloud-timeline' in verse-api.ts.
|
|
4
|
+
*
|
|
5
|
+
* GET /api/verse/cloud/tasks/<id>/timeline → CloudTimelineResponse (timeline-types.ts)
|
|
6
|
+
* 404 unknown task, 400 bad id / any query
|
|
7
|
+
*
|
|
8
|
+
* READ-ONLY. A GET behind server.ts's read-session boundary like every
|
|
9
|
+
* Verse read; the mutation token is never needed. Any other verb on this
|
|
10
|
+
* path is a 404 (mutations are refused before this module by the mount).
|
|
11
|
+
*
|
|
12
|
+
* WHY its own module and not a route in cloud-api.ts: the cloud module is
|
|
13
|
+
* edited by other units, and this family only reads. It is mounted BEFORE
|
|
14
|
+
* 'cloud' because cloud-api.ts answers every /api/verse/cloud/* path it does
|
|
15
|
+
* not know with a 404; this module claims exactly one path shape and
|
|
16
|
+
* declines everything else without writing, so it can never shadow a cloud
|
|
17
|
+
* route.
|
|
18
|
+
*
|
|
19
|
+
* The heavy builder (timeline.ts: ledger, merge records, git) is imported
|
|
20
|
+
* only when the path matches, so a cold server pays nothing for this module
|
|
21
|
+
* on any other request.
|
|
22
|
+
*/
|
|
23
|
+
import type { ApiModule } from '../verse/api-modules.js';
|
|
24
|
+
export declare const handleCloudTimelineApi: ApiModule;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { sendJson } from '../web/api.js';
|
|
2
|
+
import { CLOUD_TIMELINE_PATH_RE } from './timeline-types.js';
|
|
3
|
+
import { CLOUD_TASK_ID_PATTERN } from './types.js';
|
|
4
|
+
export const handleCloudTimelineApi = async (_ctx, req, res, path, method) => {
|
|
5
|
+
const match = CLOUD_TIMELINE_PATH_RE.exec(path);
|
|
6
|
+
if (!match)
|
|
7
|
+
return false;
|
|
8
|
+
if (method !== 'GET') {
|
|
9
|
+
sendJson(res, 404, { error: `not found: ${method} ${path}` });
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
let query;
|
|
13
|
+
try {
|
|
14
|
+
query = new URL(req.url ?? '/', 'http://localhost').searchParams;
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
sendJson(res, 400, { code: 'VERSE_INVALID', error: 'Invalid query string.' });
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
const first = query.keys().next();
|
|
21
|
+
if (!first.done) {
|
|
22
|
+
sendJson(res, 400, { code: 'VERSE_INVALID', error: `Unknown query parameter: ${first.value}.` });
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
const id = match[1];
|
|
26
|
+
if (!CLOUD_TASK_ID_PATTERN.test(id)) {
|
|
27
|
+
sendJson(res, 400, { code: 'VERSE_INVALID', error: 'That is not a cloud task id.' });
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
const { cloudTaskTimeline, timelineDepsForRoute } = await import('./timeline.js');
|
|
32
|
+
const timeline = await cloudTaskTimeline(id, timelineDepsForRoute());
|
|
33
|
+
if (!timeline) {
|
|
34
|
+
sendJson(res, 404, { error: 'No cloud task with that id.' });
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
sendJson(res, 200, timeline);
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// Never the raw message: store and git errors can carry paths.
|
|
41
|
+
if (!res.headersSent)
|
|
42
|
+
sendJson(res, 500, { error: 'cloud timeline failed' });
|
|
43
|
+
}
|
|
44
|
+
return true;
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=timeline-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeline-api.js","sourceRoot":"","sources":["../../../src/core/cloud/timeline-api.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,CAAC,MAAM,sBAAsB,GAAc,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IACtF,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,cAAc,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,KAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAC,YAAY,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,4BAA4B,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QACjG,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;IACrB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACpC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,MAAM,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAClF,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,EAAE,EAAE,oBAAoB,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAC;YAC7D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,+DAA+D;QAC/D,IAAI,CAAC,GAAG,CAAC,WAAW;YAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloud task evidence timeline — the HTTP contract (3.13).
|
|
3
|
+
*
|
|
4
|
+
* GET /api/verse/cloud/tasks/<id>/timeline → CloudTimelineResponse
|
|
5
|
+
*
|
|
6
|
+
* One ordered chain per cloud task, from the objective to what it cost:
|
|
7
|
+
*
|
|
8
|
+
* objective → launch → worker (model / account) → report (a CLAIM) → PR
|
|
9
|
+
* → diff → checks → merge gates → merge → release → health → cost
|
|
10
|
+
*
|
|
11
|
+
* Every step says where it came from (`source`) and how much it can be
|
|
12
|
+
* trusted (`verified`):
|
|
13
|
+
* true a record Verse (or GitHub, through the tracker) wrote itself —
|
|
14
|
+
* the task store, the fleet merge record, the hash-chained
|
|
15
|
+
* authority ledger, the post-merge watch, local git.
|
|
16
|
+
* false someone's say-so. The session's own report is ALWAYS this,
|
|
17
|
+
* and so is the cost, which is an estimate fixed at launch.
|
|
18
|
+
* 'unknown' nothing was recorded, or the record could not be read.
|
|
19
|
+
*
|
|
20
|
+
* Steps are always present and always in this order, so the chain reads the
|
|
21
|
+
* same for every task; a stage the task has not reached says so
|
|
22
|
+
* (`reached: false`) instead of disappearing.
|
|
23
|
+
*
|
|
24
|
+
* NODE-FREE on purpose: the web UI imports these types and the path helper.
|
|
25
|
+
*/
|
|
26
|
+
export declare const CLOUD_TIMELINE_SCHEMA_VERSION: 1;
|
|
27
|
+
/** `/api/verse/cloud/tasks/<id>/timeline` — the id is checked against CLOUD_TASK_ID_PATTERN by the route. */
|
|
28
|
+
export declare const CLOUD_TIMELINE_PATH_RE: RegExp;
|
|
29
|
+
export declare function cloudTimelinePath(taskId: string): string;
|
|
30
|
+
export type TimelineStepKind = 'objective' | 'launch' | 'worker' | 'report' | 'pr' | 'diff' | 'checks' | 'gates' | 'merge' | 'release' | 'health' | 'cost';
|
|
31
|
+
/** The fixed order every timeline uses. */
|
|
32
|
+
export declare const TIMELINE_STEP_ORDER: readonly TimelineStepKind[];
|
|
33
|
+
export type TimelineVerified = true | false | 'unknown';
|
|
34
|
+
export interface TimelineLink {
|
|
35
|
+
/** https only: claude.ai, github.com. */
|
|
36
|
+
href: string;
|
|
37
|
+
label: string;
|
|
38
|
+
}
|
|
39
|
+
export interface TimelineStep {
|
|
40
|
+
kind: TimelineStepKind;
|
|
41
|
+
/** ISO time the evidence was recorded; null when no time was recorded (never guessed). */
|
|
42
|
+
at: string | null;
|
|
43
|
+
/** One short line ("PR #512 merged"). */
|
|
44
|
+
title: string;
|
|
45
|
+
/** Plain sentences; scrubbed. May be empty. */
|
|
46
|
+
detail: string;
|
|
47
|
+
/** Where the evidence came from, in operator words ("authority ledger", "session report"). */
|
|
48
|
+
source: string;
|
|
49
|
+
verified: TimelineVerified;
|
|
50
|
+
/** False while the task has not reached this stage (it may never). */
|
|
51
|
+
reached: boolean;
|
|
52
|
+
link?: TimelineLink;
|
|
53
|
+
}
|
|
54
|
+
export interface CloudTimelineResponse {
|
|
55
|
+
v: typeof CLOUD_TIMELINE_SCHEMA_VERSION;
|
|
56
|
+
generatedAt: string;
|
|
57
|
+
taskId: string;
|
|
58
|
+
repo: string;
|
|
59
|
+
title: string;
|
|
60
|
+
state: string;
|
|
61
|
+
steps: TimelineStep[];
|
|
62
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloud task evidence timeline — the HTTP contract (3.13).
|
|
3
|
+
*
|
|
4
|
+
* GET /api/verse/cloud/tasks/<id>/timeline → CloudTimelineResponse
|
|
5
|
+
*
|
|
6
|
+
* One ordered chain per cloud task, from the objective to what it cost:
|
|
7
|
+
*
|
|
8
|
+
* objective → launch → worker (model / account) → report (a CLAIM) → PR
|
|
9
|
+
* → diff → checks → merge gates → merge → release → health → cost
|
|
10
|
+
*
|
|
11
|
+
* Every step says where it came from (`source`) and how much it can be
|
|
12
|
+
* trusted (`verified`):
|
|
13
|
+
* true a record Verse (or GitHub, through the tracker) wrote itself —
|
|
14
|
+
* the task store, the fleet merge record, the hash-chained
|
|
15
|
+
* authority ledger, the post-merge watch, local git.
|
|
16
|
+
* false someone's say-so. The session's own report is ALWAYS this,
|
|
17
|
+
* and so is the cost, which is an estimate fixed at launch.
|
|
18
|
+
* 'unknown' nothing was recorded, or the record could not be read.
|
|
19
|
+
*
|
|
20
|
+
* Steps are always present and always in this order, so the chain reads the
|
|
21
|
+
* same for every task; a stage the task has not reached says so
|
|
22
|
+
* (`reached: false`) instead of disappearing.
|
|
23
|
+
*
|
|
24
|
+
* NODE-FREE on purpose: the web UI imports these types and the path helper.
|
|
25
|
+
*/
|
|
26
|
+
export const CLOUD_TIMELINE_SCHEMA_VERSION = 1;
|
|
27
|
+
/** `/api/verse/cloud/tasks/<id>/timeline` — the id is checked against CLOUD_TASK_ID_PATTERN by the route. */
|
|
28
|
+
export const CLOUD_TIMELINE_PATH_RE = /^\/api\/verse\/cloud\/tasks\/([^/]+)\/timeline$/;
|
|
29
|
+
export function cloudTimelinePath(taskId) {
|
|
30
|
+
return `/api/verse/cloud/tasks/${encodeURIComponent(taskId)}/timeline`;
|
|
31
|
+
}
|
|
32
|
+
/** The fixed order every timeline uses. */
|
|
33
|
+
export const TIMELINE_STEP_ORDER = [
|
|
34
|
+
'objective', 'launch', 'worker', 'report', 'pr', 'diff', 'checks', 'gates', 'merge', 'release', 'health', 'cost',
|
|
35
|
+
];
|
|
36
|
+
//# sourceMappingURL=timeline-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeline-types.js","sourceRoot":"","sources":["../../../src/core/cloud/timeline-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAU,CAAC;AAExD,6GAA6G;AAC7G,MAAM,CAAC,MAAM,sBAAsB,GAAG,iDAAiD,CAAC;AAExF,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,OAAO,0BAA0B,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC;AACzE,CAAC;AAgBD,2CAA2C;AAC3C,MAAM,CAAC,MAAM,mBAAmB,GAAgC;IAC9D,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM;CACjH,CAAC"}
|