@ashlr/hub 3.12.0 → 3.14.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 +157 -0
- package/README.md +29 -16
- package/dist/authority-surface.json +274 -148
- package/dist/build-identity.json +2 -2
- package/dist/cli/authority.d.ts +145 -33
- package/dist/cli/authority.js +1292 -315
- 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/cli/comms.d.ts +33 -19
- package/dist/cli/comms.js +128 -151
- package/dist/cli/comms.js.map +1 -1
- package/dist/cli/completions.js +1 -1
- package/dist/cli/completions.js.map +1 -1
- package/dist/cli/daemon.js +29 -0
- package/dist/cli/daemon.js.map +1 -1
- package/dist/cli/director.d.ts +8 -12
- package/dist/cli/director.js +17 -52
- package/dist/cli/director.js.map +1 -1
- package/dist/cli/fleet.js +4 -1
- package/dist/cli/fleet.js.map +1 -1
- package/dist/cli/help.js +1 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/leader.d.ts +27 -3
- package/dist/cli/leader.js +253 -4
- package/dist/cli/leader.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/server-enforcement.d.ts +110 -0
- package/dist/core/authority/server-enforcement.js +260 -0
- package/dist/core/authority/server-enforcement.js.map +1 -0
- package/dist/core/authority/standing-grant.d.ts +24 -4
- package/dist/core/authority/standing-grant.js +19 -3
- package/dist/core/authority/standing-grant.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 +925 -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/comms/change-digest.d.ts +130 -0
- package/dist/core/comms/change-digest.js +451 -0
- package/dist/core/comms/change-digest.js.map +1 -0
- package/dist/core/comms/director-prompt.d.ts +4 -5
- package/dist/core/comms/director-prompt.js +4 -71
- package/dist/core/comms/director-prompt.js.map +1 -1
- package/dist/core/comms/director.d.ts +24 -61
- package/dist/core/comms/director.js +29 -382
- package/dist/core/comms/director.js.map +1 -1
- package/dist/core/comms/dispatch.d.ts +37 -12
- package/dist/core/comms/dispatch.js +244 -177
- package/dist/core/comms/dispatch.js.map +1 -1
- package/dist/core/comms/elon-dialogue.d.ts +23 -15
- package/dist/core/comms/elon-dialogue.js +36 -307
- package/dist/core/comms/elon-dialogue.js.map +1 -1
- package/dist/core/comms/fleet-pulse.js +4 -7
- package/dist/core/comms/fleet-pulse.js.map +1 -1
- package/dist/core/comms/handlers.d.ts +10 -6
- package/dist/core/comms/handlers.js +14 -48
- package/dist/core/comms/handlers.js.map +1 -1
- package/dist/core/comms/migrations.d.ts +47 -0
- package/dist/core/comms/migrations.js +125 -0
- package/dist/core/comms/migrations.js.map +1 -0
- package/dist/core/comms/requests.d.ts +32 -5
- package/dist/core/comms/requests.js +101 -5
- package/dist/core/comms/requests.js.map +1 -1
- package/dist/core/comms/telegram-channel.d.ts +104 -0
- package/dist/core/comms/telegram-channel.js +622 -0
- package/dist/core/comms/telegram-channel.js.map +1 -0
- package/dist/core/comms/telegram-thread-map.d.ts +56 -0
- package/dist/core/comms/telegram-thread-map.js +144 -0
- package/dist/core/comms/telegram-thread-map.js.map +1 -0
- package/dist/core/daemon/capacity-publisher.d.ts +8 -1
- package/dist/core/daemon/capacity-publisher.js +40 -2
- package/dist/core/daemon/capacity-publisher.js.map +1 -1
- package/dist/core/daemon/loop.js +18 -4
- package/dist/core/daemon/loop.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/daemon/tick-deadline.d.ts +44 -0
- package/dist/core/daemon/tick-deadline.js +83 -0
- package/dist/core/daemon/tick-deadline.js.map +1 -0
- package/dist/core/daemon/tick-hooks.d.ts +7 -0
- package/dist/core/daemon/tick-hooks.js.map +1 -1
- package/dist/core/daemon/tick-progress.d.ts +39 -0
- package/dist/core/daemon/tick-progress.js +194 -0
- package/dist/core/daemon/tick-progress.js.map +1 -0
- package/dist/core/dashboard.js +3 -1
- package/dist/core/dashboard.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 +16 -0
- package/dist/core/fleet/fleet-merge-state.js.map +1 -1
- package/dist/core/fleet/host-merge.d.ts +14 -0
- package/dist/core/fleet/host-merge.js +24 -2
- package/dist/core/fleet/host-merge.js.map +1 -1
- package/dist/core/fleet/merge-gates.d.ts +21 -0
- package/dist/core/fleet/merge-gates.js +39 -5
- package/dist/core/fleet/merge-gates.js.map +1 -1
- package/dist/core/fleet/mirrors.d.ts +162 -6
- package/dist/core/fleet/mirrors.js +1051 -49
- package/dist/core/fleet/mirrors.js.map +1 -1
- package/dist/core/fleet/standing-merge-pass.d.ts +8 -0
- package/dist/core/fleet/standing-merge-pass.js +102 -1
- package/dist/core/fleet/standing-merge-pass.js.map +1 -1
- package/dist/core/fleet/status.d.ts +17 -0
- package/dist/core/fleet/status.js +22 -0
- package/dist/core/fleet/status.js.map +1 -1
- package/dist/core/fleet/tick-hooks-live.d.ts +10 -1
- package/dist/core/fleet/tick-hooks-live.js +57 -8
- 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/git.d.ts +17 -0
- package/dist/core/git.js +124 -25
- package/dist/core/git.js.map +1 -1
- package/dist/core/goals/open-goals.d.ts +47 -0
- package/dist/core/goals/open-goals.js +33 -0
- package/dist/core/goals/open-goals.js.map +1 -0
- package/dist/core/inbox/merge.d.ts +5 -0
- package/dist/core/inbox/merge.js +58 -2
- package/dist/core/inbox/merge.js.map +1 -1
- package/dist/core/integrations/locus.d.ts +28 -0
- package/dist/core/integrations/locus.js +155 -30
- package/dist/core/integrations/locus.js.map +1 -1
- package/dist/core/integrations/telegram-format.d.ts +40 -0
- package/dist/core/integrations/telegram-format.js +123 -0
- package/dist/core/integrations/telegram-format.js.map +1 -0
- package/dist/core/integrations/telegram.d.ts +60 -4
- package/dist/core/integrations/telegram.js +161 -28
- package/dist/core/integrations/telegram.js.map +1 -1
- package/dist/core/mcp-registry.d.ts +12 -0
- package/dist/core/mcp-registry.js +70 -0
- package/dist/core/mcp-registry.js.map +1 -1
- package/dist/core/observability/rollup.d.ts +12 -10
- package/dist/core/observability/rollup.js +44 -17
- package/dist/core/observability/rollup.js.map +1 -1
- package/dist/core/resources/connection-monitor.d.ts +9 -0
- package/dist/core/resources/connection-monitor.js +19 -9
- package/dist/core/resources/connection-monitor.js.map +1 -1
- package/dist/core/resources/quota-refresh-lease.d.ts +17 -0
- package/dist/core/resources/quota-refresh-lease.js +34 -1
- package/dist/core/resources/quota-refresh-lease.js.map +1 -1
- package/dist/core/routing/budget-api.d.ts +18 -1
- package/dist/core/routing/budget-api.js +120 -10
- 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/routing/readiness-types.d.ts +82 -0
- package/dist/core/routing/readiness-types.js +23 -0
- package/dist/core/routing/readiness-types.js.map +1 -0
- package/dist/core/routing/readiness.d.ts +103 -0
- package/dist/core/routing/readiness.js +480 -0
- package/dist/core/routing/readiness.js.map +1 -0
- package/dist/core/sandbox/confine.js +22 -1
- package/dist/core/sandbox/confine.js.map +1 -1
- package/dist/core/sandbox/policy.d.ts +23 -0
- package/dist/core/sandbox/policy.js +100 -0
- package/dist/core/sandbox/policy.js.map +1 -1
- package/dist/core/types.d.ts +13 -0
- package/dist/core/types.js.map +1 -1
- package/dist/core/universe/builtins/preparation/manifest.json +1 -1
- package/dist/core/universe/builtins/preparation/preparation-bridge.mjs +1204 -939
- package/dist/core/universe/builtins/preparation/preparation-verification-fixtures.mjs +1319 -1054
- package/dist/core/usage/frontier-usage.d.ts +20 -2
- package/dist/core/usage/frontier-usage.js +75 -17
- package/dist/core/usage/frontier-usage.js.map +1 -1
- package/dist/core/verse/account-health.js +9 -3
- package/dist/core/verse/account-health.js.map +1 -1
- package/dist/core/verse/accounts.d.ts +45 -0
- package/dist/core/verse/accounts.js +246 -17
- package/dist/core/verse/accounts.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/apps-api.js +23 -11
- package/dist/core/verse/apps-api.js.map +1 -1
- package/dist/core/verse/apps.d.ts +11 -9
- package/dist/core/verse/apps.js +2 -2
- package/dist/core/verse/apps.js.map +1 -1
- package/dist/core/verse/authority-api.d.ts +17 -3
- package/dist/core/verse/authority-api.js +122 -7
- package/dist/core/verse/authority-api.js.map +1 -1
- package/dist/core/verse/autonomy-ladder.d.ts +172 -0
- package/dist/core/verse/autonomy-ladder.js +251 -0
- package/dist/core/verse/autonomy-ladder.js.map +1 -0
- package/dist/core/verse/context-fit.js +7 -5
- package/dist/core/verse/context-fit.js.map +1 -1
- package/dist/core/verse/control-api.d.ts +23 -1
- package/dist/core/verse/control-api.js +117 -10
- package/dist/core/verse/control-api.js.map +1 -1
- package/dist/core/verse/fleet-live-api.js +13 -5
- package/dist/core/verse/fleet-live-api.js.map +1 -1
- package/dist/core/verse/folder-io.d.ts +50 -0
- package/dist/core/verse/folder-io.js +142 -0
- package/dist/core/verse/folder-io.js.map +1 -0
- package/dist/core/verse/git-api.js +5 -4
- package/dist/core/verse/git-api.js.map +1 -1
- package/dist/core/verse/git-ops.d.ts +10 -1
- package/dist/core/verse/git-ops.js +18 -2
- package/dist/core/verse/git-ops.js.map +1 -1
- package/dist/core/verse/github-api.d.ts +1 -1
- package/dist/core/verse/github-api.js +5 -4
- package/dist/core/verse/github-api.js.map +1 -1
- package/dist/core/verse/github-repo.js +118 -14
- package/dist/core/verse/github-repo.js.map +1 -1
- package/dist/core/verse/leader-api.d.ts +5 -4
- package/dist/core/verse/leader-api.js +237 -10
- package/dist/core/verse/leader-api.js.map +1 -1
- package/dist/core/verse/local-models.d.ts +10 -0
- package/dist/core/verse/local-models.js +10 -1
- package/dist/core/verse/local-models.js.map +1 -1
- package/dist/core/verse/login-path.d.ts +73 -0
- package/dist/core/verse/login-path.js +123 -14
- package/dist/core/verse/login-path.js.map +1 -1
- package/dist/core/verse/mcp-control-api.js +4 -4
- package/dist/core/verse/mcp-control-api.js.map +1 -1
- package/dist/core/verse/mcp-scope.d.ts +22 -0
- package/dist/core/verse/mcp-scope.js +41 -1
- package/dist/core/verse/mcp-scope.js.map +1 -1
- package/dist/core/verse/mcp-seat-view.d.ts +10 -0
- package/dist/core/verse/mcp-seat-view.js +30 -4
- package/dist/core/verse/mcp-seat-view.js.map +1 -1
- package/dist/core/verse/overnight-api.js +20 -2
- package/dist/core/verse/overnight-api.js.map +1 -1
- package/dist/core/verse/path-guard.d.ts +24 -0
- package/dist/core/verse/path-guard.js +91 -22
- package/dist/core/verse/path-guard.js.map +1 -1
- package/dist/core/verse/preview-api.js +22 -0
- package/dist/core/verse/preview-api.js.map +1 -1
- package/dist/core/verse/projects.d.ts +21 -0
- package/dist/core/verse/projects.js +82 -0
- package/dist/core/verse/projects.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/session-controls-api.js +5 -3
- package/dist/core/verse/session-controls-api.js.map +1 -1
- package/dist/core/verse/session-handoff.d.ts +26 -0
- package/dist/core/verse/session-handoff.js +90 -12
- package/dist/core/verse/session-handoff.js.map +1 -1
- package/dist/core/verse/terminal-api.js +7 -4
- package/dist/core/verse/terminal-api.js.map +1 -1
- package/dist/core/verse/terminal.js +9 -5
- package/dist/core/verse/terminal.js.map +1 -1
- package/dist/core/verse/verse-api.d.ts +3 -1
- package/dist/core/verse/verse-api.js +87 -27
- package/dist/core/verse/verse-api.js.map +1 -1
- package/dist/core/verse/workspaces.d.ts +51 -0
- package/dist/core/verse/workspaces.js +177 -47
- package/dist/core/verse/workspaces.js.map +1 -1
- package/dist/core/vision/leader-apply.d.ts +40 -0
- package/dist/core/vision/leader-apply.js +101 -30
- package/dist/core/vision/leader-apply.js.map +1 -1
- package/dist/core/vision/leader-cadence.d.ts +114 -0
- package/dist/core/vision/leader-cadence.js +127 -0
- package/dist/core/vision/leader-cadence.js.map +1 -0
- package/dist/core/vision/leader-goal-evidence.d.ts +25 -0
- package/dist/core/vision/leader-goal-evidence.js +36 -0
- package/dist/core/vision/leader-goal-evidence.js.map +1 -0
- package/dist/core/vision/leader-health.d.ts +53 -0
- package/dist/core/vision/leader-health.js +92 -0
- package/dist/core/vision/leader-health.js.map +1 -0
- package/dist/core/vision/leader-operator.d.ts +176 -0
- package/dist/core/vision/leader-operator.js +355 -0
- package/dist/core/vision/leader-operator.js.map +1 -0
- package/dist/core/vision/leader-run-chain.d.ts +41 -0
- package/dist/core/vision/leader-run-chain.js +54 -0
- package/dist/core/vision/leader-run-chain.js.map +1 -0
- package/dist/core/vision/leader-seat-plan.d.ts +68 -0
- package/dist/core/vision/leader-seat-plan.js +93 -0
- package/dist/core/vision/leader-seat-plan.js.map +1 -0
- package/dist/core/vision/leader-seat.d.ts +71 -5
- package/dist/core/vision/leader-seat.js +235 -33
- package/dist/core/vision/leader-seat.js.map +1 -1
- package/dist/core/vision/leader-thread-types.d.ts +104 -0
- package/dist/core/vision/leader-thread-types.js +9 -0
- package/dist/core/vision/leader-thread-types.js.map +1 -0
- package/dist/core/vision/leader-thread.d.ts +138 -0
- package/dist/core/vision/leader-thread.js +926 -0
- package/dist/core/vision/leader-thread.js.map +1 -0
- package/dist/core/vision/leader-types.d.ts +75 -1
- package/dist/core/vision/leader.d.ts +88 -18
- package/dist/core/vision/leader.js +269 -69
- package/dist/core/vision/leader.js.map +1 -1
- package/dist/core/web/public/next/assets/{ActionMenu-B4-39f2S.js → ActionMenu-CIiX2X8w.js} +2 -2
- package/dist/core/web/public/next/assets/{ActionMenu-B4-39f2S.js.map → ActionMenu-CIiX2X8w.js.map} +1 -1
- package/dist/core/web/public/next/assets/Advanced-DHsysoIL.js +2 -0
- package/dist/core/web/public/next/assets/{Advanced-B-LqYXvd.js.map → Advanced-DHsysoIL.js.map} +1 -1
- package/dist/core/web/public/next/assets/App-CMeAocmW.js +7 -0
- package/dist/core/web/public/next/assets/{App-E2zCDRxm.js.map → App-CMeAocmW.js.map} +1 -1
- package/dist/core/web/public/next/assets/AppsSection-DISYnMnc.js +2 -0
- package/dist/core/web/public/next/assets/{AppsSection-8wXPPhZb.js.map → AppsSection-DISYnMnc.js.map} +1 -1
- package/dist/core/web/public/next/assets/AreaTrend-DK2Y2TbZ.js +2 -0
- package/dist/core/web/public/next/assets/AreaTrend-DK2Y2TbZ.js.map +1 -0
- package/dist/core/web/public/next/assets/AutonomyOffState-CEPSZToP.js +3 -0
- package/dist/core/web/public/next/assets/AutonomyOffState-CEPSZToP.js.map +1 -0
- package/dist/core/web/public/next/assets/AutonomyOffState-CmSSTHVe.css +1 -0
- package/dist/core/web/public/next/assets/AutonomySection-DWc3ciAD.js +2 -0
- package/dist/core/web/public/next/assets/{AutonomySection-B46igJKR.js.map → AutonomySection-DWc3ciAD.js.map} +1 -1
- package/dist/core/web/public/next/assets/AutonomyStatus-CYaHjJ9U.js +2 -0
- package/dist/core/web/public/next/assets/AutonomyStatus-CYaHjJ9U.js.map +1 -0
- package/dist/core/web/public/next/assets/{BranchBar-BRkrEQGs.js → BranchBar-BxhdiIpx.js} +2 -2
- package/dist/core/web/public/next/assets/{BranchBar-BRkrEQGs.js.map → BranchBar-BxhdiIpx.js.map} +1 -1
- package/dist/core/web/public/next/assets/BudgetControl-C-0KhjRS.js +2 -0
- package/dist/core/web/public/next/assets/BudgetControl-C-0KhjRS.js.map +1 -0
- package/dist/core/web/public/next/assets/{Button-BhO-WKPp.js → Button-D90dzI_o.js} +2 -2
- package/dist/core/web/public/next/assets/{Button-BhO-WKPp.js.map → Button-D90dzI_o.js.map} +1 -1
- package/dist/core/web/public/next/assets/{CapacityStrip-CkFz5vq2.js → CapacityStrip-qKDBC65C.js} +2 -2
- package/dist/core/web/public/next/assets/{CapacityStrip-CkFz5vq2.js.map → CapacityStrip-qKDBC65C.js.map} +1 -1
- package/dist/core/web/public/next/assets/ChartFrame-DY-GVUb3.js +2 -0
- package/dist/core/web/public/next/assets/ChartFrame-DY-GVUb3.js.map +1 -0
- package/dist/core/web/public/next/assets/ChartFrame-DyjmyV8N.css +1 -0
- package/dist/core/web/public/next/assets/ChatSection-DlT4QU6a.js +3 -0
- package/dist/core/web/public/next/assets/ChatSection-DlT4QU6a.js.map +1 -0
- package/dist/core/web/public/next/assets/{CloudBudgetForm-Bd91iStN.js → CloudBudgetForm-BrNun_Yu.js} +2 -2
- package/dist/core/web/public/next/assets/{CloudBudgetForm-Bd91iStN.js.map → CloudBudgetForm-BrNun_Yu.js.map} +1 -1
- package/dist/core/web/public/next/assets/CommandPalette-C5lDDKN0.js +2 -0
- package/dist/core/web/public/next/assets/CommandPalette-C5lDDKN0.js.map +1 -0
- package/dist/core/web/public/next/assets/CommandSection-B0xuU-yZ.css +1 -0
- package/dist/core/web/public/next/assets/CommandSection-DXFvPgKp.js +3 -0
- package/dist/core/web/public/next/assets/CommandSection-DXFvPgKp.js.map +1 -0
- package/dist/core/web/public/next/assets/{ConfirmDialog-Bv4hdK2T.js → ConfirmDialog-BR4nZQ2D.js} +2 -2
- package/dist/core/web/public/next/assets/{ConfirmDialog-Bv4hdK2T.js.map → ConfirmDialog-BR4nZQ2D.js.map} +1 -1
- package/dist/core/web/public/next/assets/{DeleteChatDialog-CH1Ix8Eh.js → DeleteChatDialog-BCfP12GH.js} +2 -2
- package/dist/core/web/public/next/assets/{DeleteChatDialog-CH1Ix8Eh.js.map → DeleteChatDialog-BCfP12GH.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Dialog-BSsIFNqD.js → Dialog-D3msQlCj.js} +2 -2
- package/dist/core/web/public/next/assets/{Dialog-BSsIFNqD.js.map → Dialog-D3msQlCj.js.map} +1 -1
- package/dist/core/web/public/next/assets/{DiffPane-BpNuJmth.js → DiffPane-Ix6hvXlY.js} +2 -2
- package/dist/core/web/public/next/assets/{DiffPane-BpNuJmth.js.map → DiffPane-Ix6hvXlY.js.map} +1 -1
- package/dist/core/web/public/next/assets/{DiffViewer-CJarUvs0.js → DiffViewer-C4WKsCIe.js} +2 -2
- package/dist/core/web/public/next/assets/{DiffViewer-CJarUvs0.js.map → DiffViewer-C4WKsCIe.js.map} +1 -1
- package/dist/core/web/public/next/assets/DockHost-aWP7liri.js +2 -0
- package/dist/core/web/public/next/assets/{DockHost-DW9q0NdR.js.map → DockHost-aWP7liri.js.map} +1 -1
- package/dist/core/web/public/next/assets/{EmptyState-DPrd2aak.js → EmptyState-D2IRy3Cg.js} +2 -2
- package/dist/core/web/public/next/assets/{EmptyState-DPrd2aak.js.map → EmptyState-D2IRy3Cg.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Epistemic-D7MxSmED.js → Epistemic-DMr18muX.js} +2 -2
- package/dist/core/web/public/next/assets/{Epistemic-D7MxSmED.js.map → Epistemic-DMr18muX.js.map} +1 -1
- package/dist/core/web/public/next/assets/EvidenceTimeline-DXmmz6Fi.js +2 -0
- package/dist/core/web/public/next/assets/EvidenceTimeline-DXmmz6Fi.js.map +1 -0
- package/dist/core/web/public/next/assets/EvidenceTimeline-PBDAiSuG.css +1 -0
- package/dist/core/web/public/next/assets/FleetSection-BfplcwFU.js +3 -0
- package/dist/core/web/public/next/assets/FleetSection-BfplcwFU.js.map +1 -0
- package/dist/core/web/public/next/assets/Funnel-Dh2yVHws.js +2 -0
- package/dist/core/web/public/next/assets/Funnel-Dh2yVHws.js.map +1 -0
- package/dist/core/web/public/next/assets/{GearTray-CIPtzeIx.js → GearTray-Dt-ee32-.js} +2 -2
- package/dist/core/web/public/next/assets/{GearTray-CIPtzeIx.js.map → GearTray-Dt-ee32-.js.map} +1 -1
- package/dist/core/web/public/next/assets/GrowthSection-P9EUfGeA.js +2 -0
- package/dist/core/web/public/next/assets/{GrowthSection-iiQg6wvK.js.map → GrowthSection-P9EUfGeA.js.map} +1 -1
- package/dist/core/web/public/next/assets/{HandoffDialog-DrQ6ofuy.js → HandoffDialog-CLJQLe7M.js} +2 -2
- package/dist/core/web/public/next/assets/{HandoffDialog-DrQ6ofuy.js.map → HandoffDialog-CLJQLe7M.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Input-C0MQxEM6.js → Input-D_KRJA9V.js} +2 -2
- package/dist/core/web/public/next/assets/{Input-C0MQxEM6.js.map → Input-D_KRJA9V.js.map} +1 -1
- package/dist/core/web/public/next/assets/LeaderCard-D-7DlJuR.js +2 -0
- package/dist/core/web/public/next/assets/LeaderCard-D-7DlJuR.js.map +1 -0
- package/dist/core/web/public/next/assets/LeaderCard-DNsbLwY3.css +1 -0
- package/dist/core/web/public/next/assets/LeaderConversation-DGZjWI-E.js +2 -0
- package/dist/core/web/public/next/assets/LeaderConversation-DGZjWI-E.js.map +1 -0
- package/dist/core/web/public/next/assets/LeaderConversation-DPHUTq6W.css +1 -0
- package/dist/core/web/public/next/assets/MatrixHeatmap-C7BCG2d7.js +2 -0
- package/dist/core/web/public/next/assets/MatrixHeatmap-C7BCG2d7.js.map +1 -0
- package/dist/core/web/public/next/assets/McpSection-DGbRcyv8.js +2 -0
- package/dist/core/web/public/next/assets/{McpSection-BRuCcTjT.js.map → McpSection-DGbRcyv8.js.map} +1 -1
- package/dist/core/web/public/next/assets/{MessageMarkdown-bRvD5nSc.js → MessageMarkdown-DFvk06qG.js} +3 -3
- package/dist/core/web/public/next/assets/{MessageMarkdown-bRvD5nSc.js.map → MessageMarkdown-DFvk06qG.js.map} +1 -1
- package/dist/core/web/public/next/assets/{MessageMarkdownRenderer-FjjkPKA2.js → MessageMarkdownRenderer-BAv4oEUf.js} +2 -2
- package/dist/core/web/public/next/assets/{MessageMarkdownRenderer-FjjkPKA2.js.map → MessageMarkdownRenderer-BAv4oEUf.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Meter-CFNLpwA-.js → Meter-CMj-VafN.js} +2 -2
- package/dist/core/web/public/next/assets/{Meter-CFNLpwA-.js.map → Meter-CMj-VafN.js.map} +1 -1
- package/dist/core/web/public/next/assets/MindSection-C6kLPIjt.js +3 -0
- package/dist/core/web/public/next/assets/MindSection-C6kLPIjt.js.map +1 -0
- package/dist/core/web/public/next/assets/{MutationTokenDialog-T7gv3a9r.js → MutationTokenDialog-DbnO8aYi.js} +2 -2
- package/dist/core/web/public/next/assets/{MutationTokenDialog-T7gv3a9r.js.map → MutationTokenDialog-DbnO8aYi.js.map} +1 -1
- package/dist/core/web/public/next/assets/NeedsYouDrawer-crsiX-Nc.js +3 -0
- package/dist/core/web/public/next/assets/NeedsYouDrawer-crsiX-Nc.js.map +1 -0
- package/dist/core/web/public/next/assets/NeedsYouList-CCsijdWt.js +2 -0
- package/dist/core/web/public/next/assets/{NeedsYouList-BgH8ezqf.js.map → NeedsYouList-CCsijdWt.js.map} +1 -1
- package/dist/core/web/public/next/assets/NeedsYouList-CH6Mq-E_.css +1 -0
- package/dist/core/web/public/next/assets/NewChatDialog-BlCHtOIr.js +3 -0
- package/dist/core/web/public/next/assets/{NewChatDialog-Db5Xjrk8.js.map → NewChatDialog-BlCHtOIr.js.map} +1 -1
- package/dist/core/web/public/next/assets/OnboardingFlow-Cy9BA9eR.js +3 -0
- package/dist/core/web/public/next/assets/OnboardingFlow-Cy9BA9eR.js.map +1 -0
- package/dist/core/web/public/next/assets/OnboardingGate-BXpNFoLt.js +3 -0
- package/dist/core/web/public/next/assets/{OnboardingGate-C4VXn7BJ.js.map → OnboardingGate-BXpNFoLt.js.map} +1 -1
- package/dist/core/web/public/next/assets/PreviewPane-COid5A0f.js +2 -0
- package/dist/core/web/public/next/assets/{PreviewPane-BPBbcROb.js.map → PreviewPane-COid5A0f.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ProviderLogo-CT2cSfkg.js → ProviderLogo-Cq-CYIwT.js} +2 -2
- package/dist/core/web/public/next/assets/{ProviderLogo-CT2cSfkg.js.map → ProviderLogo-Cq-CYIwT.js.map} +1 -1
- package/dist/core/web/public/next/assets/{RailStatus-Vgl0GYtd.js → RailStatus-Co5UB6We.js} +2 -2
- package/dist/core/web/public/next/assets/{RailStatus-Vgl0GYtd.js.map → RailStatus-Co5UB6We.js.map} +1 -1
- package/dist/core/web/public/next/assets/{RefreshIndicator-CSyqpY_q.js → RefreshIndicator-DO9ibnSq.js} +2 -2
- package/dist/core/web/public/next/assets/{RefreshIndicator-CSyqpY_q.js.map → RefreshIndicator-DO9ibnSq.js.map} +1 -1
- package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-Dr2WRgkq.js +7 -0
- package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-BX2nkdmZ.js.map → ResourcePoolConsoleApp-Dr2WRgkq.js.map} +1 -1
- package/dist/core/web/public/next/assets/ResourcesChrome-CwMnbqI1.js +3 -0
- package/dist/core/web/public/next/assets/ResourcesChrome-CwMnbqI1.js.map +1 -0
- package/dist/core/web/public/next/assets/ResourcesDrawer-B_Xp_JNc.js +2 -0
- package/dist/core/web/public/next/assets/ResourcesDrawer-B_Xp_JNc.js.map +1 -0
- package/dist/core/web/public/next/assets/ResourcesDrawer-DrGoO8KG.css +1 -0
- package/dist/core/web/public/next/assets/{RouteErrorBoundary-BaC7YVzR.js → RouteErrorBoundary-SkNhhUbt.js} +2 -2
- package/dist/core/web/public/next/assets/{RouteErrorBoundary-BaC7YVzR.js.map → RouteErrorBoundary-SkNhhUbt.js.map} +1 -1
- package/dist/core/web/public/next/assets/{RunInCloudAction-D5PDHJPE.js → RunInCloudAction-BXPlZwJQ.js} +2 -2
- package/dist/core/web/public/next/assets/{RunInCloudAction-D5PDHJPE.js.map → RunInCloudAction-BXPlZwJQ.js.map} +1 -1
- package/dist/core/web/public/next/assets/{SeatSelector-Cg75LInq.js → SeatSelector-J5R3zDkB.js} +3 -3
- package/dist/core/web/public/next/assets/{SeatSelector-Cg75LInq.js.map → SeatSelector-J5R3zDkB.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Segmented-CametjLt.js → Segmented-CGh_-tBb.js} +2 -2
- package/dist/core/web/public/next/assets/{Segmented-CametjLt.js.map → Segmented-CGh_-tBb.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Select-De52fghU.js → Select-CWnmUzs3.js} +2 -2
- package/dist/core/web/public/next/assets/{Select-De52fghU.js.map → Select-CWnmUzs3.js.map} +1 -1
- package/dist/core/web/public/next/assets/{SessionGate-CzlcNq3O.js → SessionGate-sp4KsnUo.js} +2 -2
- package/dist/core/web/public/next/assets/{SessionGate-CzlcNq3O.js.map → SessionGate-sp4KsnUo.js.map} +1 -1
- package/dist/core/web/public/next/assets/{SessionInsightChip-Bk_Owa7u.js → SessionInsightChip-DLFAzdbi.js} +2 -2
- package/dist/core/web/public/next/assets/{SessionInsightChip-Bk_Owa7u.js.map → SessionInsightChip-DLFAzdbi.js.map} +1 -1
- package/dist/core/web/public/next/assets/{SessionSearch-C6C8DHN8.js → SessionSearch-DbFjwR1h.js} +2 -2
- package/dist/core/web/public/next/assets/{SessionSearch-C6C8DHN8.js.map → SessionSearch-DbFjwR1h.js.map} +1 -1
- package/dist/core/web/public/next/assets/{SettingsSection-mI9wQYZg.js → SettingsSection-Ch23msJ5.js} +2 -2
- package/dist/core/web/public/next/assets/SettingsSection-Ch23msJ5.js.map +1 -0
- package/dist/core/web/public/next/assets/SetupChecklist-Bd76MBAR.js +2 -0
- package/dist/core/web/public/next/assets/SetupChecklist-Bd76MBAR.js.map +1 -0
- package/dist/core/web/public/next/assets/SetupChecklist-BhZpFLsj.css +1 -0
- package/dist/core/web/public/next/assets/ShadowDecisions-C5RAY91f.js +3 -0
- package/dist/core/web/public/next/assets/ShadowDecisions-C5RAY91f.js.map +1 -0
- package/dist/core/web/public/next/assets/{Sheet-CJhK9Dqv.js → Sheet-BZ2AG4Eo.js} +2 -2
- package/dist/core/web/public/next/assets/{Sheet-CJhK9Dqv.js.map → Sheet-BZ2AG4Eo.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ShortcutsOverlay-DDW-i9Fc.js → ShortcutsOverlay-C8n8y3zf.js} +2 -2
- package/dist/core/web/public/next/assets/{ShortcutsOverlay-DDW-i9Fc.js.map → ShortcutsOverlay-C8n8y3zf.js.map} +1 -1
- package/dist/core/web/public/next/assets/Sidebar-DN--cPYN.js +3 -0
- package/dist/core/web/public/next/assets/Sidebar-DN--cPYN.js.map +1 -0
- package/dist/core/web/public/next/assets/{Slider-Bwd9HfXl.js → Slider-KVoJLDD6.js} +2 -2
- package/dist/core/web/public/next/assets/{Slider-Bwd9HfXl.js.map → Slider-KVoJLDD6.js.map} +1 -1
- package/dist/core/web/public/next/assets/StatTile-C4KgjltA.js +2 -0
- package/dist/core/web/public/next/assets/StatTile-C4KgjltA.js.map +1 -0
- package/dist/core/web/public/next/assets/StatTile-CNCqDoPO.css +1 -0
- package/dist/core/web/public/next/assets/{StatusBadge-DHKRtttH.js → StatusBadge-CXsYqmdU.js} +2 -2
- package/dist/core/web/public/next/assets/{StatusBadge-DHKRtttH.js.map → StatusBadge-CXsYqmdU.js.map} +1 -1
- package/dist/core/web/public/next/assets/StepBand-BMtVOFpK.js +2 -0
- package/dist/core/web/public/next/assets/StepBand-BMtVOFpK.js.map +1 -0
- package/dist/core/web/public/next/assets/{Surface-D--LXgQm.js → Surface-BfDmQcKe.js} +2 -2
- package/dist/core/web/public/next/assets/{Surface-D--LXgQm.js.map → Surface-BfDmQcKe.js.map} +1 -1
- package/dist/core/web/public/next/assets/Swimlane-B9Exxekk.js +2 -0
- package/dist/core/web/public/next/assets/Swimlane-B9Exxekk.js.map +1 -0
- package/dist/core/web/public/next/assets/Swimlane-Bf4Rjoy9.css +1 -0
- package/dist/core/web/public/next/assets/{Switch-PMixU6b0.js → Switch-9NtO_6Lj.js} +2 -2
- package/dist/core/web/public/next/assets/{Switch-PMixU6b0.js.map → Switch-9NtO_6Lj.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Tag-fordBsrJ.js → Tag-DscCRFcN.js} +2 -2
- package/dist/core/web/public/next/assets/{Tag-fordBsrJ.js.map → Tag-DscCRFcN.js.map} +1 -1
- package/dist/core/web/public/next/assets/{TerminalPane-BSnGdUuF.js → TerminalPane-B668-DJW.js} +5 -5
- package/dist/core/web/public/next/assets/{TerminalPane-BSnGdUuF.js.map → TerminalPane-B668-DJW.js.map} +1 -1
- package/dist/core/web/public/next/assets/UniverseConsoleApp-BUV_brY7.js +2 -0
- package/dist/core/web/public/next/assets/{UniverseConsoleApp-DtXFhAhw.js.map → UniverseConsoleApp-BUV_brY7.js.map} +1 -1
- package/dist/core/web/public/next/assets/{UniverseView-sWm3pnTW.js → UniverseView-DG70zH0W.js} +4 -4
- package/dist/core/web/public/next/assets/{UniverseView-sWm3pnTW.js.map → UniverseView-DG70zH0W.js.map} +1 -1
- package/dist/core/web/public/next/assets/UsageSection-DY7uOTm1.js +3 -0
- package/dist/core/web/public/next/assets/UsageSection-DY7uOTm1.js.map +1 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-CWU6R3By.js +3 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-CWU6R3By.js.map +1 -0
- package/dist/core/web/public/next/assets/Workspace-D1nP9BhD.js +10 -0
- package/dist/core/web/public/next/assets/{Workspace-BQSZFSeO.js.map → Workspace-D1nP9BhD.js.map} +1 -1
- package/dist/core/web/public/next/assets/actions-CY-PjpGc.js +2 -0
- package/dist/core/web/public/next/assets/{actions-Ci6I4C0l.js.map → actions-CY-PjpGc.js.map} +1 -1
- package/dist/core/web/public/next/assets/actions-DkWhhWIg.css +1 -0
- package/dist/core/web/public/next/assets/{apps-model-DlwnfqwJ.js → apps-model-Du02KhAf.js} +2 -2
- package/dist/core/web/public/next/assets/{apps-model-DlwnfqwJ.js.map → apps-model-Du02KhAf.js.map} +1 -1
- package/dist/core/web/public/next/assets/{authority-model-BFuPezSo.js → authority-model-79SeuKlJ.js} +2 -2
- package/dist/core/web/public/next/assets/{authority-model-BFuPezSo.js.map → authority-model-79SeuKlJ.js.map} +1 -1
- package/dist/core/web/public/next/assets/autonomy-ladder-BGWmZzP7.css +1 -0
- package/dist/core/web/public/next/assets/autonomy-ladder.module-ArDv4bkr.js +2 -0
- package/dist/core/web/public/next/assets/autonomy-ladder.module-ArDv4bkr.js.map +1 -0
- package/dist/core/web/public/next/assets/budget-queries-D8QV5XtH.js +2 -0
- package/dist/core/web/public/next/assets/{budget-queries-DsAjH8ac.js.map → budget-queries-D8QV5XtH.js.map} +1 -1
- package/dist/core/web/public/next/assets/{capacity-strip-model-Dn1cNOhz.js → capacity-strip-model-BwZ1ZbkU.js} +2 -2
- package/dist/core/web/public/next/assets/{capacity-strip-model-Dn1cNOhz.js.map → capacity-strip-model-BwZ1ZbkU.js.map} +1 -1
- package/dist/core/web/public/next/assets/charts-BZ50mZD_.js +2 -0
- package/dist/core/web/public/next/assets/charts-BZ50mZD_.js.map +1 -0
- package/dist/core/web/public/next/assets/charts-ClCB18la.css +1 -0
- package/dist/core/web/public/next/assets/cloud-model-BDivRMqv.js +2 -0
- package/dist/core/web/public/next/assets/{cloud-model-CX407gPY.js.map → cloud-model-BDivRMqv.js.map} +1 -1
- package/dist/core/web/public/next/assets/{cloud-queries-QAhpExlz.js → cloud-queries-BPQQ5_pJ.js} +2 -2
- package/dist/core/web/public/next/assets/{cloud-queries-QAhpExlz.js.map → cloud-queries-BPQQ5_pJ.js.map} +1 -1
- package/dist/core/web/public/next/assets/{colors-BZ3a9wFf.js → colors-DvK0wMHH.js} +2 -2
- package/dist/core/web/public/next/assets/{colors-BZ3a9wFf.js.map → colors-DvK0wMHH.js.map} +1 -1
- package/dist/core/web/public/next/assets/{command-catalog-CF0cQQac.js → command-catalog-BIntSa9l.js} +2 -2
- package/dist/core/web/public/next/assets/command-catalog-BIntSa9l.js.map +1 -0
- package/dist/core/web/public/next/assets/{context-model-Co4wh3SM.js → context-model-Br8t9jgG.js} +2 -2
- package/dist/core/web/public/next/assets/{context-model-Co4wh3SM.js.map → context-model-Br8t9jgG.js.map} +1 -1
- package/dist/core/web/public/next/assets/{context-model-DV1zCfAm.js → context-model-CokrgEUq.js} +3 -3
- package/dist/core/web/public/next/assets/{context-model-DV1zCfAm.js.map → context-model-CokrgEUq.js.map} +1 -1
- package/dist/core/web/public/next/assets/context-queries-eL3caKVG.js +2 -0
- package/dist/core/web/public/next/assets/{context-queries-CktFQqSS.js.map → context-queries-eL3caKVG.js.map} +1 -1
- package/dist/core/web/public/next/assets/{control-queries-DAvlh_YM.js → control-queries-B9K-wmcB.js} +2 -2
- package/dist/core/web/public/next/assets/{control-queries-DAvlh_YM.js.map → control-queries-B9K-wmcB.js.map} +1 -1
- package/dist/core/web/public/next/assets/copy-setup-XMgCC5f8.js +2 -0
- package/dist/core/web/public/next/assets/copy-setup-XMgCC5f8.js.map +1 -0
- package/dist/core/web/public/next/assets/{dock-icons-BFuBbqJl.js → dock-icons-BJ6ZqB2t.js} +2 -2
- package/dist/core/web/public/next/assets/{dock-icons-BFuBbqJl.js.map → dock-icons-BJ6ZqB2t.js.map} +1 -1
- package/dist/core/web/public/next/assets/{fleet-model-Dfd5JyLR.js → fleet-model-BvDR3gjp.js} +2 -2
- package/dist/core/web/public/next/assets/{fleet-model-Dfd5JyLR.js.map → fleet-model-BvDR3gjp.js.map} +1 -1
- package/dist/core/web/public/next/assets/{fleet-queries-RtMTd5rR.js → fleet-queries-W2UFVMZJ.js} +2 -2
- package/dist/core/web/public/next/assets/{fleet-queries-RtMTd5rR.js.map → fleet-queries-W2UFVMZJ.js.map} +1 -1
- package/dist/core/web/public/next/assets/{focus-trap-BdrbWfC4.js → focus-trap-CtI1SlMX.js} +2 -2
- package/dist/core/web/public/next/assets/{focus-trap-BdrbWfC4.js.map → focus-trap-CtI1SlMX.js.map} +1 -1
- package/dist/core/web/public/next/assets/format-CH4g_sl1.js +2 -0
- package/dist/core/web/public/next/assets/format-CH4g_sl1.js.map +1 -0
- package/dist/core/web/public/next/assets/{format-DKrNjdwD.js → format-D7nBg2bn.js} +2 -2
- package/dist/core/web/public/next/assets/{format-DKrNjdwD.js.map → format-D7nBg2bn.js.map} +1 -1
- package/dist/core/web/public/next/assets/{git-model-_BnI_Ogh.js → git-model-Dnkd1TnK.js} +2 -2
- package/dist/core/web/public/next/assets/{git-model-_BnI_Ogh.js.map → git-model-Dnkd1TnK.js.map} +1 -1
- package/dist/core/web/public/next/assets/global-CMNW_dqn.js +2 -0
- package/dist/core/web/public/next/assets/{global-CNNGMril.js.map → global-CMNW_dqn.js.map} +1 -1
- package/dist/core/web/public/next/assets/guarded-runners-YeAc9wLQ.js +2 -0
- package/dist/core/web/public/next/assets/{guarded-runners-DPh2d32e.js.map → guarded-runners-YeAc9wLQ.js.map} +1 -1
- package/dist/core/web/public/next/assets/{icons-0haWy6nh.js → icons-D1sYbCTQ.js} +2 -2
- package/dist/core/web/public/next/assets/{icons-0haWy6nh.js.map → icons-D1sYbCTQ.js.map} +1 -1
- package/dist/core/web/public/next/assets/{index-QesfXBsb.js → index-DZ-UQ7v8.js} +3 -3
- package/dist/core/web/public/next/assets/{index-QesfXBsb.js.map → index-DZ-UQ7v8.js.map} +1 -1
- package/dist/core/web/public/next/assets/leader-focus-BjeJv7CW.js +2 -0
- package/dist/core/web/public/next/assets/leader-focus-BjeJv7CW.js.map +1 -0
- package/dist/core/web/public/next/assets/leader-thread-types-CDb-VPPO.js +2 -0
- package/dist/core/web/public/next/assets/leader-thread-types-CDb-VPPO.js.map +1 -0
- package/dist/core/web/public/next/assets/{live-model-De-q0ZFK.js → live-model-D_32RAOR.js} +2 -2
- package/dist/core/web/public/next/assets/live-model-D_32RAOR.js.map +1 -0
- package/dist/core/web/public/next/assets/{mind.module-BrK2nFOL.js → mind.module-7hA92hRg.js} +2 -2
- package/dist/core/web/public/next/assets/{mind.module-BrK2nFOL.js.map → mind.module-7hA92hRg.js.map} +1 -1
- package/dist/core/web/public/next/assets/mutations-DQPbFdRJ.js +2 -0
- package/dist/core/web/public/next/assets/{mutations-DTCtKCn_.js.map → mutations-DQPbFdRJ.js.map} +1 -1
- package/dist/core/web/public/next/assets/{nav-KmGX0CVz.js → nav-0dOYe2rJ.js} +2 -2
- package/dist/core/web/public/next/assets/{nav-KmGX0CVz.js.map → nav-0dOYe2rJ.js.map} +1 -1
- package/dist/core/web/public/next/assets/{overnight-queries-mlO0xzsr.js → overnight-queries-C4wOnFtE.js} +2 -2
- package/dist/core/web/public/next/assets/{overnight-queries-mlO0xzsr.js.map → overnight-queries-C4wOnFtE.js.map} +1 -1
- package/dist/core/web/public/next/assets/primitives-2A5Eq8FQ.js +1 -0
- package/dist/core/web/public/next/assets/{queries-CyBE8nsW.js → queries-BTXWdZzU.js} +2 -2
- package/dist/core/web/public/next/assets/{queries-CyBE8nsW.js.map → queries-BTXWdZzU.js.map} +1 -1
- package/dist/core/web/public/next/assets/{reasoning-pref-CaoA4_Vl.js → reasoning-pref-Ca6lN6x_.js} +2 -2
- package/dist/core/web/public/next/assets/{reasoning-pref-CaoA4_Vl.js.map → reasoning-pref-Ca6lN6x_.js.map} +1 -1
- package/dist/core/web/public/next/assets/{reveal-anchor-BP1VqnPU.js → reveal-anchor-DfNLgK_I.js} +2 -2
- package/dist/core/web/public/next/assets/{reveal-anchor-BP1VqnPU.js.map → reveal-anchor-DfNLgK_I.js.map} +1 -1
- package/dist/core/web/public/next/assets/seat-subscription-C5uPHBsN.js +2 -0
- package/dist/core/web/public/next/assets/{seat-subscription-C5Tvr0WQ.js.map → seat-subscription-C5uPHBsN.js.map} +1 -1
- package/dist/core/web/public/next/assets/{sidebar-model-B5Qk95k_.js → sidebar-model-CLCdqwkR.js} +2 -2
- package/dist/core/web/public/next/assets/{sidebar-model-B5Qk95k_.js.map → sidebar-model-CLCdqwkR.js.map} +1 -1
- package/dist/core/web/public/next/assets/{slots-DHKQDoE6.js → slots-C-qBeu-8.js} +3 -3
- package/dist/core/web/public/next/assets/{slots-DHKQDoE6.js.map → slots-C-qBeu-8.js.map} +1 -1
- package/dist/core/web/public/next/assets/{surface-data-CchClvHo.js → surface-data-Dj71tdD-.js} +2 -2
- package/dist/core/web/public/next/assets/{surface-data-CchClvHo.js.map → surface-data-Dj71tdD-.js.map} +1 -1
- package/dist/core/web/public/next/assets/surface-prefetch-B0WdJOJG.js +2 -0
- package/dist/core/web/public/next/assets/surface-prefetch-B0WdJOJG.js.map +1 -0
- package/dist/core/web/public/next/assets/{tasks-model-D6WFVULI.js → tasks-model-O8yR5YXp.js} +2 -2
- package/dist/core/web/public/next/assets/{tasks-model-D6WFVULI.js.map → tasks-model-O8yR5YXp.js.map} +1 -1
- package/dist/core/web/public/next/assets/{terminal-icons-BvCvuXk2.js → terminal-icons-CoRZq9iO.js} +2 -2
- package/dist/core/web/public/next/assets/{terminal-icons-BvCvuXk2.js.map → terminal-icons-CoRZq9iO.js.map} +1 -1
- package/dist/core/web/public/next/assets/thread-data-DQB_g66d.js +2 -0
- package/dist/core/web/public/next/assets/thread-data-DQB_g66d.js.map +1 -0
- 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-D1SU1t7r.js → usage-queries-AdjEyEtn.js} +2 -2
- package/dist/core/web/public/next/assets/{usage-queries-D1SU1t7r.js.map → usage-queries-AdjEyEtn.js.map} +1 -1
- package/dist/core/web/public/next/assets/{use-guarded-action-BZmBv7CJ.js → use-guarded-action-CuuMHeDX.js} +2 -2
- package/dist/core/web/public/next/assets/{use-guarded-action-BZmBv7CJ.js.map → use-guarded-action-CuuMHeDX.js.map} +1 -1
- package/dist/core/web/public/next/assets/{use-ticker-CkJ4-0wU.js → use-ticker-BBcp02SZ.js} +2 -2
- package/dist/core/web/public/next/assets/{use-ticker-CkJ4-0wU.js.map → use-ticker-BBcp02SZ.js.map} +1 -1
- package/dist/core/web/public/next/assets/{use-token-gate-CYcfk_GS.js → use-token-gate-CbXVYQYI.js} +2 -2
- package/dist/core/web/public/next/assets/{use-token-gate-CYcfk_GS.js.map → use-token-gate-CbXVYQYI.js.map} +1 -1
- package/dist/core/web/public/next/assets/{useOnboarding-CujRS6PK.js → useOnboarding-C_Fpe_sH.js} +2 -2
- package/dist/core/web/public/next/assets/{useOnboarding-CujRS6PK.js.map → useOnboarding-C_Fpe_sH.js.map} +1 -1
- package/dist/core/web/public/next/assets/{useSeatsRefresh-BEaQdkZs.js → useSeatsRefresh-Co1CnxLc.js} +2 -2
- package/dist/core/web/public/next/assets/{useSeatsRefresh-BEaQdkZs.js.map → useSeatsRefresh-Co1CnxLc.js.map} +1 -1
- package/dist/core/web/public/next/assets/{useVerseTranscript-BQ0J6Xhx.js → useVerseTranscript-DgbigUlV.js} +2 -2
- package/dist/core/web/public/next/assets/{useVerseTranscript-BQ0J6Xhx.js.map → useVerseTranscript-DgbigUlV.js.map} +1 -1
- package/dist/core/web/public/next/assets/{verse-icons-DndgEgKS.js → verse-icons-S56hIiXS.js} +2 -2
- package/dist/core/web/public/next/assets/{verse-icons-DndgEgKS.js.map → verse-icons-S56hIiXS.js.map} +1 -1
- package/dist/core/web/public/next/assets/verse-model-DAVevkNe.js +2 -0
- package/dist/core/web/public/next/assets/{verse-model-MMySehjj.js.map → verse-model-DAVevkNe.js.map} +1 -1
- package/dist/core/web/public/next/assets/{warmup-CNEH_-be.js → warmup-B_RAtNZ_.js} +3 -3
- package/dist/core/web/public/next/assets/{warmup-CNEH_-be.js.map → warmup-B_RAtNZ_.js.map} +1 -1
- package/dist/core/web/public/next/assets/why-seat-model-M_r0wX3b.js +2 -0
- package/dist/core/web/public/next/assets/why-seat-model-M_r0wX3b.js.map +1 -0
- package/dist/core/web/public/next/assets/{workspace-model-Dukb2wwv.js → workspace-model-dji5-Al3.js} +2 -2
- package/dist/core/web/public/next/assets/{workspace-model-Dukb2wwv.js.map → workspace-model-dji5-Al3.js.map} +1 -1
- package/dist/core/web/public/next/index.html +1 -1
- package/dist/core/web/read-projection-worker.js +2 -1
- package/dist/core/web/read-projection-worker.js.map +1 -1
- package/dist/core/web/read-projections.d.ts +3 -0
- package/dist/core/web/read-projections.js +2 -2
- package/dist/core/web/read-projections.js.map +1 -1
- package/dist/core/web/visibility.js +3 -4
- package/dist/core/web/visibility.js.map +1 -1
- package/dist/release-dependency-inventory.json +1 -1
- package/docs/AUTONOMY-GAP.md +1 -1
- package/package.json +3 -2
- package/dist/core/web/public/next/assets/Advanced-B-LqYXvd.js +0 -2
- package/dist/core/web/public/next/assets/App-E2zCDRxm.js +0 -7
- package/dist/core/web/public/next/assets/AppsSection-8wXPPhZb.js +0 -2
- package/dist/core/web/public/next/assets/AreaTrend-BFimExYn.js +0 -2
- package/dist/core/web/public/next/assets/AreaTrend-BFimExYn.js.map +0 -1
- package/dist/core/web/public/next/assets/AutonomyOffState-B5eEkmiz.js +0 -2
- package/dist/core/web/public/next/assets/AutonomyOffState-B5eEkmiz.js.map +0 -1
- package/dist/core/web/public/next/assets/AutonomyOffState-DmbE71vI.css +0 -1
- package/dist/core/web/public/next/assets/AutonomySection-B46igJKR.js +0 -2
- package/dist/core/web/public/next/assets/BudgetControl-T_RjPrw9.js +0 -2
- package/dist/core/web/public/next/assets/BudgetControl-T_RjPrw9.js.map +0 -1
- package/dist/core/web/public/next/assets/ChartFrame-BVuBe6RP.css +0 -1
- package/dist/core/web/public/next/assets/ChartFrame-SygZ7B3x.js +0 -2
- package/dist/core/web/public/next/assets/ChartFrame-SygZ7B3x.js.map +0 -1
- package/dist/core/web/public/next/assets/ChatSection-D6WybBpB.js +0 -3
- package/dist/core/web/public/next/assets/ChatSection-D6WybBpB.js.map +0 -1
- package/dist/core/web/public/next/assets/CommandPalette-B6SgDJH-.js +0 -2
- package/dist/core/web/public/next/assets/CommandPalette-B6SgDJH-.js.map +0 -1
- package/dist/core/web/public/next/assets/CommandSection-CvAVd1w4.css +0 -1
- package/dist/core/web/public/next/assets/CommandSection-DgMGoepd.js +0 -2
- package/dist/core/web/public/next/assets/CommandSection-DgMGoepd.js.map +0 -1
- package/dist/core/web/public/next/assets/DockHost-DW9q0NdR.js +0 -2
- package/dist/core/web/public/next/assets/FleetSection-BdZN6rGS.js +0 -3
- package/dist/core/web/public/next/assets/FleetSection-BdZN6rGS.js.map +0 -1
- package/dist/core/web/public/next/assets/Funnel-BeNQZWv2.js +0 -2
- package/dist/core/web/public/next/assets/Funnel-BeNQZWv2.js.map +0 -1
- package/dist/core/web/public/next/assets/GrowthSection-iiQg6wvK.js +0 -2
- package/dist/core/web/public/next/assets/LeaderCard-BRr3_yE-.js +0 -2
- package/dist/core/web/public/next/assets/LeaderCard-BRr3_yE-.js.map +0 -1
- package/dist/core/web/public/next/assets/MatrixHeatmap-DZvZeWXL.js +0 -2
- package/dist/core/web/public/next/assets/MatrixHeatmap-DZvZeWXL.js.map +0 -1
- package/dist/core/web/public/next/assets/McpSection-BRuCcTjT.js +0 -2
- package/dist/core/web/public/next/assets/MindSection-BTIiQS8P.js +0 -2
- package/dist/core/web/public/next/assets/MindSection-BTIiQS8P.js.map +0 -1
- package/dist/core/web/public/next/assets/NeedsYouDrawer-lYN4G_aM.js +0 -2
- package/dist/core/web/public/next/assets/NeedsYouDrawer-lYN4G_aM.js.map +0 -1
- package/dist/core/web/public/next/assets/NeedsYouList-BgH8ezqf.js +0 -2
- package/dist/core/web/public/next/assets/NeedsYouList-CruOt4JT.css +0 -1
- package/dist/core/web/public/next/assets/NewChatDialog-Db5Xjrk8.js +0 -3
- package/dist/core/web/public/next/assets/OnboardingFlow-LoY-zuSe.js +0 -2
- package/dist/core/web/public/next/assets/OnboardingFlow-LoY-zuSe.js.map +0 -1
- package/dist/core/web/public/next/assets/OnboardingGate-C4VXn7BJ.js +0 -3
- package/dist/core/web/public/next/assets/PreviewPane-BPBbcROb.js +0 -2
- package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-BX2nkdmZ.js +0 -7
- package/dist/core/web/public/next/assets/ResourcesChrome-B2U2lO1H.js +0 -3
- package/dist/core/web/public/next/assets/ResourcesChrome-B2U2lO1H.js.map +0 -1
- package/dist/core/web/public/next/assets/ResourcesDrawer-BCFJ2Uq8.css +0 -1
- package/dist/core/web/public/next/assets/ResourcesDrawer-DlUKOjl9.js +0 -2
- package/dist/core/web/public/next/assets/ResourcesDrawer-DlUKOjl9.js.map +0 -1
- package/dist/core/web/public/next/assets/SettingsSection-mI9wQYZg.js.map +0 -1
- package/dist/core/web/public/next/assets/Sidebar-DT7ykaqS.js +0 -3
- package/dist/core/web/public/next/assets/Sidebar-DT7ykaqS.js.map +0 -1
- package/dist/core/web/public/next/assets/StatTile-BuLMsJMx.css +0 -1
- package/dist/core/web/public/next/assets/StatTile-DPZ5yyaU.js +0 -2
- package/dist/core/web/public/next/assets/StatTile-DPZ5yyaU.js.map +0 -1
- package/dist/core/web/public/next/assets/StepBand-DQykLkk_.js +0 -2
- package/dist/core/web/public/next/assets/StepBand-DQykLkk_.js.map +0 -1
- package/dist/core/web/public/next/assets/Swimlane-BzH6OCee.js +0 -2
- package/dist/core/web/public/next/assets/Swimlane-BzH6OCee.js.map +0 -1
- package/dist/core/web/public/next/assets/Swimlane-o6_Zsrnr.css +0 -1
- package/dist/core/web/public/next/assets/UniverseConsoleApp-DtXFhAhw.js +0 -2
- package/dist/core/web/public/next/assets/UsageSection-CiD1DbuF.js +0 -3
- package/dist/core/web/public/next/assets/UsageSection-CiD1DbuF.js.map +0 -1
- package/dist/core/web/public/next/assets/VerseConsoleApp-BCY5uSok.js +0 -3
- package/dist/core/web/public/next/assets/VerseConsoleApp-BCY5uSok.js.map +0 -1
- package/dist/core/web/public/next/assets/Workspace-BQSZFSeO.js +0 -10
- package/dist/core/web/public/next/assets/actions-BmIf9avl.css +0 -1
- package/dist/core/web/public/next/assets/actions-Ci6I4C0l.js +0 -2
- package/dist/core/web/public/next/assets/budget-queries-DsAjH8ac.js +0 -2
- package/dist/core/web/public/next/assets/charts-C_xJbJiw.js +0 -2
- package/dist/core/web/public/next/assets/charts-C_xJbJiw.js.map +0 -1
- package/dist/core/web/public/next/assets/charts-DhKTrQLw.css +0 -1
- package/dist/core/web/public/next/assets/cloud-model-CX407gPY.js +0 -2
- package/dist/core/web/public/next/assets/command-catalog-CF0cQQac.js.map +0 -1
- package/dist/core/web/public/next/assets/context-queries-CktFQqSS.js +0 -2
- package/dist/core/web/public/next/assets/copy-setup-CqRSfELB.js +0 -2
- package/dist/core/web/public/next/assets/copy-setup-CqRSfELB.js.map +0 -1
- package/dist/core/web/public/next/assets/format-Dk4Fmxax.js +0 -2
- package/dist/core/web/public/next/assets/format-Dk4Fmxax.js.map +0 -1
- package/dist/core/web/public/next/assets/global-CNNGMril.js +0 -2
- package/dist/core/web/public/next/assets/guarded-runners-DPh2d32e.js +0 -2
- package/dist/core/web/public/next/assets/live-model-De-q0ZFK.js.map +0 -1
- package/dist/core/web/public/next/assets/mutations-DTCtKCn_.js +0 -2
- package/dist/core/web/public/next/assets/primitives-D0Fb3TtS.js +0 -1
- package/dist/core/web/public/next/assets/seat-subscription-C5Tvr0WQ.js +0 -2
- package/dist/core/web/public/next/assets/surface-prefetch-BWr0LBQn.js +0 -2
- package/dist/core/web/public/next/assets/surface-prefetch-BWr0LBQn.js.map +0 -1
- 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/verse-model-MMySehjj.js +0 -2
- package/dist/core/web/public/next/assets/why-seat-model-jlDTwYSc.js +0 -2
- package/dist/core/web/public/next/assets/why-seat-model-jlDTwYSc.js.map +0 -1
|
@@ -1,73 +1,36 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* M257:
|
|
2
|
+
* M257 → 3.14: the Director is RETIRED — the Leader is the one brain.
|
|
3
3
|
*
|
|
4
|
-
* runDirectorCycle
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
4
|
+
* Until 3.14 `runDirectorCycle` was a third strategic persona: every 15
|
|
5
|
+
* minutes (when cfg.comms.director was true) it asked the strategist model —
|
|
6
|
+
* Claude CLI first, outside the Leader's seat routing and budget gate — for a
|
|
7
|
+
* "decision", sent its digest to Telegram and posted its escalations as
|
|
8
|
+
* decision-needed requests. That duplicated the Leader (vision/leader.ts),
|
|
9
|
+
* whose memo, actions, questions and veto windows now reach Mason through the
|
|
10
|
+
* Leader thread (vision/leader-thread.ts) on every channel.
|
|
10
11
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
12
|
+
* What is left is inspection only:
|
|
13
|
+
* runDirectorCycle(cfg) — a no-op whatever cfg.comms.director says (kept so
|
|
14
|
+
* the daemon's call site and older configs stay
|
|
15
|
+
* harmless; it spends nothing and sends nothing);
|
|
16
|
+
* runDirectorDryRun(cfg) — the read-only god-view snapshot
|
|
17
|
+
* (director-context.ts), no model call, with a
|
|
18
|
+
* pointer to the Leader thread.
|
|
14
19
|
*
|
|
15
|
-
*
|
|
16
|
-
* - READ-ONLY god-view access — no goal mutations, no merge, no push
|
|
17
|
-
* - Communicates ONLY through sendTelegramMessage + postRequest
|
|
18
|
-
* - NO new execution path, NO bypass of judge/scope-cap/sandbox/kill-switch
|
|
19
|
-
* - High-stakes actions (enrollment/releases/spend/arch) → escalate to Mason
|
|
20
|
-
* via decision-needed, NEVER auto-act
|
|
21
|
-
* - Never throws — fire-and-forget by design
|
|
20
|
+
* Never throws.
|
|
22
21
|
*/
|
|
23
22
|
import type { AshlrConfig } from '../types.js';
|
|
24
|
-
|
|
25
|
-
preferBackends: string[];
|
|
26
|
-
avoidBackends: string[];
|
|
27
|
-
rationale: string;
|
|
28
|
-
}
|
|
29
|
-
export interface EscalationItem {
|
|
30
|
-
topic: string;
|
|
31
|
-
context: string;
|
|
32
|
-
options: string[];
|
|
33
|
-
stakes: 'high' | 'critical';
|
|
34
|
-
}
|
|
35
|
-
export interface DirectorDecision {
|
|
36
|
-
reasoning: string;
|
|
37
|
-
resourcePosture: string;
|
|
38
|
-
resourceRationale: string;
|
|
39
|
-
topGoalId: string | null;
|
|
40
|
-
suggestedNewGoal: string | null;
|
|
41
|
-
backendHint: BackendHint | null;
|
|
42
|
-
telegramDigest: string;
|
|
43
|
-
escalations: EscalationItem[];
|
|
44
|
-
confidence: 'high' | 'medium' | 'low';
|
|
45
|
-
}
|
|
23
|
+
import { type DirectorContext } from './director-context.js';
|
|
46
24
|
export interface DirectorCycleOptions {
|
|
47
25
|
signal?: AbortSignal;
|
|
48
26
|
}
|
|
27
|
+
/** The god-view snapshot as text. Never sends anything. Never throws. */
|
|
28
|
+
export declare function formatDryRun(ctx: DirectorContext): string;
|
|
49
29
|
/**
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
|
|
53
|
-
export declare function formatDryRun(ctx: import('./director-context.js').DirectorContext, decision: DirectorDecision | null, raw?: string): string;
|
|
54
|
-
/**
|
|
55
|
-
* Run one complete director cycle:
|
|
56
|
-
* build context → call LLM → parse decision → send digest → post escalations
|
|
57
|
-
*
|
|
58
|
-
* GATED: cfg.comms?.director must be true. When false/absent, returns immediately
|
|
59
|
-
* (no-op, byte-identical to absent). Default-false.
|
|
60
|
-
*
|
|
61
|
-
* SAFETY: read-only god-view access. Communicates only through sendTelegramMessage
|
|
62
|
-
* and postRequest('decision-needed'). No goal mutations, no execution, no merge,
|
|
63
|
-
* no push. Never bypasses any safety gate.
|
|
64
|
-
*
|
|
65
|
-
* Never throws — fire-and-forget by design.
|
|
66
|
-
*/
|
|
67
|
-
export declare function runDirectorCycle(cfg: AshlrConfig, opts?: DirectorCycleOptions): Promise<void>;
|
|
68
|
-
/**
|
|
69
|
-
* Run one director cycle in dry-run mode: build context + call LLM but do NOT
|
|
70
|
-
* send Telegram or post requests. Returns the formatted output string.
|
|
71
|
-
* Never throws.
|
|
30
|
+
* Retired (3.14): a no-op. No model call, no Telegram message, no request —
|
|
31
|
+
* whatever cfg.comms.director says. The Leader tick and the Leader thread
|
|
32
|
+
* carry strategy and escalations now.
|
|
72
33
|
*/
|
|
34
|
+
export declare function runDirectorCycle(_cfg: AshlrConfig, _opts?: DirectorCycleOptions): Promise<void>;
|
|
35
|
+
/** The read-only god-view snapshot (no model call). Never throws. */
|
|
73
36
|
export declare function runDirectorDryRun(cfg: AshlrConfig): Promise<string>;
|
|
@@ -1,253 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* M257:
|
|
2
|
+
* M257 → 3.14: the Director is RETIRED — the Leader is the one brain.
|
|
3
3
|
*
|
|
4
|
-
* runDirectorCycle
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
4
|
+
* Until 3.14 `runDirectorCycle` was a third strategic persona: every 15
|
|
5
|
+
* minutes (when cfg.comms.director was true) it asked the strategist model —
|
|
6
|
+
* Claude CLI first, outside the Leader's seat routing and budget gate — for a
|
|
7
|
+
* "decision", sent its digest to Telegram and posted its escalations as
|
|
8
|
+
* decision-needed requests. That duplicated the Leader (vision/leader.ts),
|
|
9
|
+
* whose memo, actions, questions and veto windows now reach Mason through the
|
|
10
|
+
* Leader thread (vision/leader-thread.ts) on every channel.
|
|
10
11
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
12
|
+
* What is left is inspection only:
|
|
13
|
+
* runDirectorCycle(cfg) — a no-op whatever cfg.comms.director says (kept so
|
|
14
|
+
* the daemon's call site and older configs stay
|
|
15
|
+
* harmless; it spends nothing and sends nothing);
|
|
16
|
+
* runDirectorDryRun(cfg) — the read-only god-view snapshot
|
|
17
|
+
* (director-context.ts), no model call, with a
|
|
18
|
+
* pointer to the Leader thread.
|
|
14
19
|
*
|
|
15
|
-
*
|
|
16
|
-
* - READ-ONLY god-view access — no goal mutations, no merge, no push
|
|
17
|
-
* - Communicates ONLY through sendTelegramMessage + postRequest
|
|
18
|
-
* - NO new execution path, NO bypass of judge/scope-cap/sandbox/kill-switch
|
|
19
|
-
* - High-stakes actions (enrollment/releases/spend/arch) → escalate to Mason
|
|
20
|
-
* via decision-needed, NEVER auto-act
|
|
21
|
-
* - Never throws — fire-and-forget by design
|
|
20
|
+
* Never throws.
|
|
22
21
|
*/
|
|
23
|
-
import { defaultStrategistModel } from '../run/model-catalog.js';
|
|
24
22
|
import { buildDirectorContext } from './director-context.js';
|
|
25
|
-
import { DIRECTOR_SYSTEM_PROMPT, renderDirectorPrompt } from './director-prompt.js';
|
|
26
|
-
import { sendTelegramMessage, telegramEnabled } from '../integrations/telegram.js';
|
|
27
|
-
import { postRequest } from './requests.js';
|
|
28
|
-
import { killSwitchOn } from '../sandbox/policy.js';
|
|
29
|
-
import { acquireOutwardMutationFence, ownsOutwardMutationFence, releaseOutwardMutationFence, } from '../sandbox/mutation-fence.js';
|
|
30
|
-
import { assertPermitted, endpointPermitted, isLocalOnlyRefusal } from '../policy/local-only.js';
|
|
31
|
-
import { audit } from '../sandbox/audit.js';
|
|
32
|
-
// ---------------------------------------------------------------------------
|
|
33
|
-
// LLM caller (mirrors buildComplete from elon-dialogue.ts)
|
|
34
|
-
// ---------------------------------------------------------------------------
|
|
35
|
-
// M320: strategist default resolves via defaultStrategistModel() in
|
|
36
|
-
// run/model-catalog.ts (Fable 5 when claude5.fable is on, else Opus 4.8).
|
|
37
|
-
async function buildComplete(cfg, signal) {
|
|
38
|
-
const foundry = cfg.foundry;
|
|
39
|
-
const managerJudgeEngine = foundry?.['managerJudgeEngine'] ?? 'auto';
|
|
40
|
-
const allowedBackends = foundry?.['allowedBackends'] ?? ['builtin'];
|
|
41
|
-
const configuredModel = foundry?.['strategistModel'];
|
|
42
|
-
const eliteModel = configuredModel ?? defaultStrategistModel(cfg);
|
|
43
|
-
const wantClaude = managerJudgeEngine === 'auto' || managerJudgeEngine === 'claude';
|
|
44
|
-
const claudeAllowed = allowedBackends.includes('claude');
|
|
45
|
-
try {
|
|
46
|
-
const { engineInstalled, buildEngineCommand, spawnEngine } = await import('../run/engines.js');
|
|
47
|
-
if (wantClaude && claudeAllowed && engineInstalled('claude', cfg)) {
|
|
48
|
-
const single = (model) => async (system, user) => {
|
|
49
|
-
try {
|
|
50
|
-
const combined = `${system}\n\n${user}`;
|
|
51
|
-
const cmd = buildEngineCommand('claude', combined, cfg, { model });
|
|
52
|
-
if (!cmd)
|
|
53
|
-
return '';
|
|
54
|
-
const result = await spawnEngine(cmd, cfg, { timeoutMs: 120_000, signal });
|
|
55
|
-
// `spawnEngine` never throws: a local-only refusal arrives as
|
|
56
|
-
// `{ ok: false, error: '<the reason>' }`. Discarding it silently
|
|
57
|
-
// would make a refused director turn read exactly like a model
|
|
58
|
-
// that returned nothing, which is the failure the policy module
|
|
59
|
-
// exists to prevent — so it is reported before the empty return.
|
|
60
|
-
if (!result.ok && result.error)
|
|
61
|
-
reportDirectorRefusal(result.error);
|
|
62
|
-
if (!result.ok || !result.output)
|
|
63
|
-
return '';
|
|
64
|
-
try {
|
|
65
|
-
const parsed = JSON.parse(result.output);
|
|
66
|
-
const text = parsed['result'];
|
|
67
|
-
return typeof text === 'string' ? text : result.output;
|
|
68
|
-
}
|
|
69
|
-
catch {
|
|
70
|
-
return result.output;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
catch {
|
|
74
|
-
return '';
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
const primary = single(eliteModel);
|
|
78
|
-
// M337 (review fix): mirror the judge's Fable→Opus fallback — the
|
|
79
|
-
// claude5.fable contract promises it for every elite-model surface.
|
|
80
|
-
if (eliteModel !== 'claude-fable-5')
|
|
81
|
-
return primary;
|
|
82
|
-
const fallback = single('claude-opus-4-8');
|
|
83
|
-
return async (system, user) => (await primary(system, user)) || fallback(system, user);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
catch {
|
|
87
|
-
// engines unavailable — fall through to Ollama
|
|
88
|
-
}
|
|
89
|
-
// Ollama fallback
|
|
90
|
-
const baseUrl = foundry?.['ollamaBaseUrl'] ??
|
|
91
|
-
'http://localhost:11434';
|
|
92
|
-
const localModel = foundry?.['localModel'] ?? 'mistral';
|
|
93
|
-
return async (system, user) => {
|
|
94
|
-
try {
|
|
95
|
-
const url = baseUrl.replace(/\/+$/, '') + '/chat/completions';
|
|
96
|
-
// LOCAL-ONLY GATE. This path builds its own request instead of going
|
|
97
|
-
// through provider-client's transport — it needs a far longer timeout
|
|
98
|
-
// than that path allows — which means it also bypasses the refusal that
|
|
99
|
-
// lives there. The base URL is loopback by default, so nothing reaches a
|
|
100
|
-
// paid provider as configured; the gate is here so that an operator who
|
|
101
|
-
// repoints it at a remote inference host does not end up with a
|
|
102
|
-
// local-only mode that has a hole in it.
|
|
103
|
-
assertPermitted(endpointPermitted(url, cfg));
|
|
104
|
-
const timeoutSignal = AbortSignal.timeout(120_000);
|
|
105
|
-
const requestSignal = signal
|
|
106
|
-
? AbortSignal.any([signal, timeoutSignal])
|
|
107
|
-
: timeoutSignal;
|
|
108
|
-
const response = await fetch(url, {
|
|
109
|
-
method: 'POST',
|
|
110
|
-
headers: { 'Content-Type': 'application/json' },
|
|
111
|
-
body: JSON.stringify({
|
|
112
|
-
model: localModel,
|
|
113
|
-
messages: [
|
|
114
|
-
{ role: 'system', content: system },
|
|
115
|
-
{ role: 'user', content: user },
|
|
116
|
-
],
|
|
117
|
-
stream: false,
|
|
118
|
-
temperature: 0.3,
|
|
119
|
-
max_tokens: 2048,
|
|
120
|
-
}),
|
|
121
|
-
signal: requestSignal,
|
|
122
|
-
});
|
|
123
|
-
if (!response.ok)
|
|
124
|
-
return '';
|
|
125
|
-
const data = (await response.json());
|
|
126
|
-
return data.choices?.[0]?.message?.content ?? '';
|
|
127
|
-
}
|
|
128
|
-
catch (err) {
|
|
129
|
-
// A LOCAL-ONLY REFUSAL IS NOT AN EMPTY COMPLETION. Swallowing it here
|
|
130
|
-
// made the two indistinguishable: `parseDecision('')` returns null, the
|
|
131
|
-
// caller sees no digest and no escalations, and nothing anywhere names
|
|
132
|
-
// the refusal — so an operator reading a silent 3am digest cannot tell a
|
|
133
|
-
// policy refusal from a dead model. It is named, then re-thrown so the
|
|
134
|
-
// cycle's own handler can record it too.
|
|
135
|
-
if (isLocalOnlyRefusal(err)) {
|
|
136
|
-
reportDirectorRefusal(err.message);
|
|
137
|
-
throw err;
|
|
138
|
-
}
|
|
139
|
-
return '';
|
|
140
|
-
}
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Record a refusal that would otherwise vanish into an empty completion.
|
|
145
|
-
*
|
|
146
|
-
* Best-effort and idempotent per reason: the director runs on a timer, and a
|
|
147
|
-
* persisted local-only setting refuses every cycle, so writing the same line
|
|
148
|
-
* every few minutes would bury the audit trail it is meant to serve.
|
|
149
|
-
*/
|
|
150
|
-
let lastReportedDirectorRefusal = '';
|
|
151
|
-
function reportDirectorRefusal(reason) {
|
|
152
|
-
const detail = reason.slice(0, 240);
|
|
153
|
-
if (detail === lastReportedDirectorRefusal)
|
|
154
|
-
return;
|
|
155
|
-
lastReportedDirectorRefusal = detail;
|
|
156
|
-
try {
|
|
157
|
-
audit({
|
|
158
|
-
action: 'comms:director',
|
|
159
|
-
repo: null,
|
|
160
|
-
sandboxId: null,
|
|
161
|
-
summary: `director turn refused: ${detail}`,
|
|
162
|
-
result: 'refused',
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
catch {
|
|
166
|
-
// The audit trail is best-effort; it must never take the cycle down.
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
// ---------------------------------------------------------------------------
|
|
170
|
-
// Parse DirectorDecision from LLM output
|
|
171
|
-
// ---------------------------------------------------------------------------
|
|
172
|
-
function parseDecision(raw) {
|
|
173
|
-
if (!raw)
|
|
174
|
-
return null;
|
|
175
|
-
try {
|
|
176
|
-
// Strip markdown fences if present
|
|
177
|
-
const cleaned = raw
|
|
178
|
-
.replace(/^```(?:json)?\s*/m, '')
|
|
179
|
-
.replace(/\s*```\s*$/m, '')
|
|
180
|
-
.trim();
|
|
181
|
-
const parsed = JSON.parse(cleaned);
|
|
182
|
-
// Validate required fields
|
|
183
|
-
if (typeof parsed['telegramDigest'] !== 'string')
|
|
184
|
-
return null;
|
|
185
|
-
const escalations = [];
|
|
186
|
-
if (Array.isArray(parsed['escalations'])) {
|
|
187
|
-
for (const e of parsed['escalations']) {
|
|
188
|
-
if (typeof e === 'object' &&
|
|
189
|
-
e !== null &&
|
|
190
|
-
typeof e['topic'] === 'string') {
|
|
191
|
-
const ei = e;
|
|
192
|
-
escalations.push({
|
|
193
|
-
topic: String(ei['topic'] ?? ''),
|
|
194
|
-
context: String(ei['context'] ?? ''),
|
|
195
|
-
options: Array.isArray(ei['options'])
|
|
196
|
-
? ei['options'].map(String)
|
|
197
|
-
: [],
|
|
198
|
-
stakes: ei['stakes'] === 'critical' || ei['stakes'] === 'high'
|
|
199
|
-
? ei['stakes']
|
|
200
|
-
: 'high',
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
let backendHint = null;
|
|
206
|
-
if (parsed['backendHint'] !== null &&
|
|
207
|
-
typeof parsed['backendHint'] === 'object') {
|
|
208
|
-
const bh = parsed['backendHint'];
|
|
209
|
-
backendHint = {
|
|
210
|
-
preferBackends: Array.isArray(bh['preferBackends'])
|
|
211
|
-
? bh['preferBackends'].map(String)
|
|
212
|
-
: [],
|
|
213
|
-
avoidBackends: Array.isArray(bh['avoidBackends'])
|
|
214
|
-
? bh['avoidBackends'].map(String)
|
|
215
|
-
: [],
|
|
216
|
-
rationale: String(bh['rationale'] ?? ''),
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
return {
|
|
220
|
-
reasoning: String(parsed['reasoning'] ?? ''),
|
|
221
|
-
resourcePosture: String(parsed['resourcePosture'] ?? 'unknown'),
|
|
222
|
-
resourceRationale: String(parsed['resourceRationale'] ?? ''),
|
|
223
|
-
topGoalId: typeof parsed['topGoalId'] === 'string' ? parsed['topGoalId'] : null,
|
|
224
|
-
suggestedNewGoal: typeof parsed['suggestedNewGoal'] === 'string'
|
|
225
|
-
? parsed['suggestedNewGoal']
|
|
226
|
-
: null,
|
|
227
|
-
backendHint,
|
|
228
|
-
telegramDigest: String(parsed['telegramDigest']),
|
|
229
|
-
escalations,
|
|
230
|
-
confidence: parsed['confidence'] === 'high' ||
|
|
231
|
-
parsed['confidence'] === 'medium' ||
|
|
232
|
-
parsed['confidence'] === 'low'
|
|
233
|
-
? parsed['confidence']
|
|
234
|
-
: 'low',
|
|
235
|
-
};
|
|
236
|
-
}
|
|
237
|
-
catch {
|
|
238
|
-
return null;
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
23
|
// ---------------------------------------------------------------------------
|
|
242
24
|
// Dry-run formatter (CLI --dry-run path)
|
|
243
25
|
// ---------------------------------------------------------------------------
|
|
244
|
-
/**
|
|
245
|
-
|
|
246
|
-
* Never sends Telegram. Never throws.
|
|
247
|
-
*/
|
|
248
|
-
export function formatDryRun(ctx, decision, raw) {
|
|
26
|
+
/** The god-view snapshot as text. Never sends anything. Never throws. */
|
|
27
|
+
export function formatDryRun(ctx) {
|
|
249
28
|
const lines = [];
|
|
250
|
-
lines.push('===
|
|
29
|
+
lines.push('=== FLEET GOD-VIEW (read-only) ===');
|
|
251
30
|
lines.push(`Generated: ${new Date().toUTCString()}`);
|
|
252
31
|
lines.push('');
|
|
253
32
|
lines.push('--- GOD-VIEW SNAPSHOT ---');
|
|
@@ -277,158 +56,26 @@ export function formatDryRun(ctx, decision, raw) {
|
|
|
277
56
|
lines.push(`Learning (7d): ${ctx.learning.lessonsCount} lessons, ${ctx.learning.skillCount} skills`);
|
|
278
57
|
lines.push('');
|
|
279
58
|
}
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
if (raw) {
|
|
284
|
-
lines.push('');
|
|
285
|
-
lines.push('Raw LLM output:');
|
|
286
|
-
lines.push(raw.slice(0, 500));
|
|
287
|
-
}
|
|
288
|
-
return lines.join('\n');
|
|
289
|
-
}
|
|
290
|
-
lines.push('--- DIRECTOR DECISION ---');
|
|
291
|
-
lines.push(`Confidence: ${decision.confidence.toUpperCase()}`);
|
|
292
|
-
lines.push(`Resource posture: ${decision.resourcePosture.toUpperCase()}`);
|
|
293
|
-
lines.push(`Rationale: ${decision.resourceRationale}`);
|
|
294
|
-
lines.push('');
|
|
295
|
-
lines.push(`Reasoning: ${decision.reasoning}`);
|
|
296
|
-
lines.push('');
|
|
297
|
-
if (decision.topGoalId) {
|
|
298
|
-
lines.push(`Top goal: ${decision.topGoalId}`);
|
|
299
|
-
}
|
|
300
|
-
if (decision.suggestedNewGoal) {
|
|
301
|
-
lines.push(`Suggested new goal: ${decision.suggestedNewGoal}`);
|
|
302
|
-
}
|
|
303
|
-
if (decision.backendHint) {
|
|
304
|
-
lines.push(`Backend hint: prefer [${decision.backendHint.preferBackends.join(', ')}] avoid [${decision.backendHint.avoidBackends.join(', ')}]`);
|
|
305
|
-
}
|
|
306
|
-
lines.push('');
|
|
307
|
-
lines.push('--- TELEGRAM DIGEST (would send) ---');
|
|
308
|
-
lines.push(decision.telegramDigest);
|
|
309
|
-
if (decision.escalations.length > 0) {
|
|
310
|
-
lines.push('');
|
|
311
|
-
lines.push(`--- ESCALATIONS (${decision.escalations.length}) ---`);
|
|
312
|
-
for (const esc of decision.escalations) {
|
|
313
|
-
lines.push(` [${esc.stakes.toUpperCase()}] ${esc.topic}`);
|
|
314
|
-
lines.push(` Context: ${esc.context.slice(0, 120)}`);
|
|
315
|
-
if (esc.options.length > 0) {
|
|
316
|
-
lines.push(` Options: ${esc.options.join(' | ')}`);
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
}
|
|
59
|
+
lines.push('--- STRATEGY ---');
|
|
60
|
+
lines.push('The Director is retired: the Leader is the one strategic brain.');
|
|
61
|
+
lines.push('Read its latest memo with `ashlr leader show`, talk to it with `ashlr leader say "…"`.');
|
|
320
62
|
return lines.join('\n');
|
|
321
63
|
}
|
|
322
64
|
// ---------------------------------------------------------------------------
|
|
323
65
|
// Public API
|
|
324
66
|
// ---------------------------------------------------------------------------
|
|
325
67
|
/**
|
|
326
|
-
*
|
|
327
|
-
*
|
|
328
|
-
*
|
|
329
|
-
* GATED: cfg.comms?.director must be true. When false/absent, returns immediately
|
|
330
|
-
* (no-op, byte-identical to absent). Default-false.
|
|
331
|
-
*
|
|
332
|
-
* SAFETY: read-only god-view access. Communicates only through sendTelegramMessage
|
|
333
|
-
* and postRequest('decision-needed'). No goal mutations, no execution, no merge,
|
|
334
|
-
* no push. Never bypasses any safety gate.
|
|
335
|
-
*
|
|
336
|
-
* Never throws — fire-and-forget by design.
|
|
68
|
+
* Retired (3.14): a no-op. No model call, no Telegram message, no request —
|
|
69
|
+
* whatever cfg.comms.director says. The Leader tick and the Leader thread
|
|
70
|
+
* carry strategy and escalations now.
|
|
337
71
|
*/
|
|
338
|
-
export async function runDirectorCycle(
|
|
339
|
-
|
|
340
|
-
// Gate: cfg.comms.director must be explicitly true
|
|
341
|
-
const directorEnabled = cfg.comms?.['director'] === true;
|
|
342
|
-
if (!directorEnabled)
|
|
343
|
-
return;
|
|
344
|
-
if (opts.signal?.aborted)
|
|
345
|
-
return;
|
|
346
|
-
let outwardFence = null;
|
|
347
|
-
try {
|
|
348
|
-
outwardFence = acquireOutwardMutationFence();
|
|
349
|
-
if (!ownsOutwardMutationFence(outwardFence))
|
|
350
|
-
return;
|
|
351
|
-
if (opts.signal?.aborted || killSwitchOn())
|
|
352
|
-
return;
|
|
353
|
-
// Context and LLM work can lead directly to Telegram/local publication,
|
|
354
|
-
// so they share one authority epoch with those effects. Pause can arm KILL
|
|
355
|
-
// while this awaits, but cannot report quiescence until the cycle drains.
|
|
356
|
-
const ctx = await buildDirectorContext(cfg);
|
|
357
|
-
if (opts.signal?.aborted || killSwitchOn())
|
|
358
|
-
return;
|
|
359
|
-
const userPrompt = renderDirectorPrompt(ctx);
|
|
360
|
-
const complete = await buildComplete(cfg, opts.signal);
|
|
361
|
-
const raw = await complete(DIRECTOR_SYSTEM_PROMPT, userPrompt);
|
|
362
|
-
if (opts.signal?.aborted || killSwitchOn())
|
|
363
|
-
return;
|
|
364
|
-
const decision = parseDecision(raw);
|
|
365
|
-
if (!decision)
|
|
366
|
-
return;
|
|
367
|
-
if (telegramEnabled(cfg) && decision.telegramDigest) {
|
|
368
|
-
try {
|
|
369
|
-
await sendTelegramMessage(decision.telegramDigest, undefined, cfg);
|
|
370
|
-
}
|
|
371
|
-
catch {
|
|
372
|
-
// Telegram is best-effort; escalations still retain their local effect.
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
if (opts.signal?.aborted || killSwitchOn())
|
|
376
|
-
return;
|
|
377
|
-
// Post escalations as decision-needed requests under the same authority as
|
|
378
|
-
// the digest so pause cannot linearize between the related effects.
|
|
379
|
-
for (const esc of decision.escalations) {
|
|
380
|
-
try {
|
|
381
|
-
postRequest({
|
|
382
|
-
kind: 'decision-needed',
|
|
383
|
-
type: 'question',
|
|
384
|
-
text: `[${esc.stakes.toUpperCase()}] ${esc.topic}\n\n${esc.context}`,
|
|
385
|
-
options: esc.options.length > 0 ? esc.options : ['Acknowledge'],
|
|
386
|
-
meta: {
|
|
387
|
-
source: 'director',
|
|
388
|
-
stakes: esc.stakes,
|
|
389
|
-
topic: esc.topic,
|
|
390
|
-
},
|
|
391
|
-
});
|
|
392
|
-
}
|
|
393
|
-
catch {
|
|
394
|
-
// best-effort — individual escalation failure must not block others
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
finally {
|
|
399
|
-
releaseOutwardMutationFence(outwardFence);
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
catch (err) {
|
|
403
|
-
// Fire-and-forget — errors must never propagate. A refusal is still
|
|
404
|
-
// recorded on its way past, so "the director produced nothing" has a
|
|
405
|
-
// reason an operator can read.
|
|
406
|
-
if (isLocalOnlyRefusal(err))
|
|
407
|
-
reportDirectorRefusal(err.message);
|
|
408
|
-
}
|
|
72
|
+
export async function runDirectorCycle(_cfg, _opts = {}) {
|
|
73
|
+
return;
|
|
409
74
|
}
|
|
410
|
-
/**
|
|
411
|
-
* Run one director cycle in dry-run mode: build context + call LLM but do NOT
|
|
412
|
-
* send Telegram or post requests. Returns the formatted output string.
|
|
413
|
-
* Never throws.
|
|
414
|
-
*/
|
|
75
|
+
/** The read-only god-view snapshot (no model call). Never throws. */
|
|
415
76
|
export async function runDirectorDryRun(cfg) {
|
|
416
77
|
try {
|
|
417
|
-
|
|
418
|
-
const ctx = await buildDirectorContext(cfg);
|
|
419
|
-
const userPrompt = renderDirectorPrompt(ctx);
|
|
420
|
-
// Call LLM (uses real engine — shows actual reasoning against live state)
|
|
421
|
-
let raw = '';
|
|
422
|
-
let decision = null;
|
|
423
|
-
try {
|
|
424
|
-
const complete = await buildComplete(cfg);
|
|
425
|
-
raw = await complete(DIRECTOR_SYSTEM_PROMPT, userPrompt);
|
|
426
|
-
decision = parseDecision(raw);
|
|
427
|
-
}
|
|
428
|
-
catch {
|
|
429
|
-
// LLM unavailable — still show context
|
|
430
|
-
}
|
|
431
|
-
return formatDryRun(ctx, decision, decision ? undefined : raw);
|
|
78
|
+
return formatDryRun(await buildDirectorContext(cfg));
|
|
432
79
|
}
|
|
433
80
|
catch {
|
|
434
81
|
return '[director dry-run failed]';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"director.js","sourceRoot":"","sources":["../../../src/core/comms/director.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"director.js","sourceRoot":"","sources":["../../../src/core/comms/director.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* M137: comms dispatch cycle —
|
|
2
|
+
* M137 / 3.14: comms dispatch cycle — poll + route replies, then send.
|
|
3
3
|
*
|
|
4
|
-
* runCommsCycle() is the heartbeat:
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
4
|
+
* runCommsCycle() is the heartbeat (launchd ai.ashlr.comms-poll, every 180 s):
|
|
5
|
+
* 0. One-time queue migration (comms/migrations.ts), then TTL expiry.
|
|
6
|
+
* 1. Poll inbound FIRST, so Mason's replies and commands act this cycle —
|
|
7
|
+
* even while comms are paused (otherwise "resume" could never arrive).
|
|
8
|
+
* Telegram routing lives in telegram-channel.ts: keywords, /commands,
|
|
9
|
+
* Leader-button taps, answers to a Leader question, numbered answers to
|
|
10
|
+
* the outstanding button-question, and free text to the Leader thread.
|
|
11
|
+
* 2. Send (skipped while paused):
|
|
12
|
+
* a. informational messages — reports (digests, Leader memos, test
|
|
13
|
+
* pings) and, on Telegram, the Leader thread's pending messages.
|
|
14
|
+
* They NEVER wait for an unanswered question; they are only paced
|
|
15
|
+
* (≥ sendGapMs apart, at most batchCap per cycle).
|
|
16
|
+
* b. the single question slot — a question/approval that expects a
|
|
17
|
+
* numbered answer or a button tap goes out only when no other one is
|
|
18
|
+
* outstanding and the question cooldown has elapsed.
|
|
10
19
|
*
|
|
11
|
-
*
|
|
20
|
+
* Why the split: before 3.14 every message shared one slot, so a single
|
|
21
|
+
* unanswered June briefing held back 594 rows — including both Leader memos.
|
|
12
22
|
*
|
|
13
|
-
* Expiry:
|
|
14
|
-
*
|
|
23
|
+
* Expiry: requests older than cfg.comms.requestTtlHours (default 48h) are
|
|
24
|
+
* expired, so an unanswered question cannot block the question slot.
|
|
15
25
|
*
|
|
16
26
|
* Resolution handler registry: other modules call registerResolutionHandler(kind, fn)
|
|
17
27
|
* to receive callbacks when a request of their kind is answered. Best-effort.
|
|
@@ -19,7 +29,12 @@
|
|
|
19
29
|
* Never throws.
|
|
20
30
|
*/
|
|
21
31
|
import { type CommsRequest } from './requests.js';
|
|
32
|
+
import { type CommsMigrationSummary } from './migrations.js';
|
|
22
33
|
import type { AshlrConfig } from '../types.js';
|
|
34
|
+
/** Default gap between informational sends within one cycle (Telegram flood limits). */
|
|
35
|
+
export declare const DEFAULT_SEND_GAP_MS = 3000;
|
|
36
|
+
/** Default cap on informational sends per cycle; the rest go next cycle. */
|
|
37
|
+
export declare const DEFAULT_BATCH_CAP = 8;
|
|
23
38
|
/** Request TTL in ms from cfg.comms.requestTtlHours; invalid values use the default. */
|
|
24
39
|
export declare function commsRequestTtlMs(cfg: AshlrConfig): number;
|
|
25
40
|
type ResolutionHandler = (req: CommsRequest) => void | Promise<void>;
|
|
@@ -32,11 +47,21 @@ export declare function registerResolutionHandler(kind: string, fn: ResolutionHa
|
|
|
32
47
|
export interface CycleResult {
|
|
33
48
|
sent: number;
|
|
34
49
|
resolved: number;
|
|
50
|
+
/** Present only on the cycle that ran the one-time queue migration. */
|
|
51
|
+
migration?: CommsMigrationSummary;
|
|
52
|
+
}
|
|
53
|
+
export interface CycleOptions {
|
|
54
|
+
/** Gap between informational sends (ms). Default DEFAULT_SEND_GAP_MS. */
|
|
55
|
+
sendGapMs?: number;
|
|
56
|
+
/** Max informational sends this cycle. Default DEFAULT_BATCH_CAP. */
|
|
57
|
+
batchCap?: number;
|
|
58
|
+
/** Injectable sleep (tests). */
|
|
59
|
+
sleep?: (ms: number) => Promise<void>;
|
|
35
60
|
}
|
|
36
61
|
/**
|
|
37
62
|
* Run one comms cycle. Never throws.
|
|
38
63
|
*
|
|
39
|
-
* @param cfg AshlrConfig — comms.enabled +
|
|
64
|
+
* @param cfg AshlrConfig — comms.enabled + a configured channel.
|
|
40
65
|
*/
|
|
41
|
-
export declare function runCommsCycle(cfg: AshlrConfig): Promise<CycleResult>;
|
|
66
|
+
export declare function runCommsCycle(cfg: AshlrConfig, opts?: CycleOptions): Promise<CycleResult>;
|
|
42
67
|
export {};
|