@coool/opencode-adaptive 1.0.0 → 1.2.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/README.md +8 -7
- package/dist/adapters/codex-capacity/index.d.ts +0 -1
- package/dist/adapters/codex-capacity/index.js.map +1 -1
- package/dist/adapters/codex-capacity/parse.d.ts +2 -2
- package/dist/adapters/codex-capacity/parse.js +19 -3
- package/dist/adapters/codex-capacity/parse.js.map +1 -1
- package/dist/adapters/codex-capacity/reading.d.ts +0 -1
- package/dist/adapters/codex-capacity/reading.js.map +1 -1
- package/dist/adapters/codex-capacity/sensor.d.ts +0 -1
- package/dist/adapters/codex-capacity/sensor.js.map +1 -1
- package/dist/adapters/codex-capacity/types.d.ts +0 -4
- package/dist/adapters/codex-capacity/types.js +14 -0
- package/dist/adapters/codex-capacity/types.js.map +1 -1
- package/dist/adapters/opencode/escalation-tool.d.ts +0 -1
- package/dist/adapters/opencode/escalation-tool.js +5 -3
- package/dist/adapters/opencode/escalation-tool.js.map +1 -1
- package/dist/adapters/opencode/events.d.ts +0 -1
- package/dist/adapters/opencode/events.js.map +1 -1
- package/dist/adapters/opencode/hooks.d.ts +0 -1
- package/dist/adapters/opencode/hooks.js +24 -7
- package/dist/adapters/opencode/hooks.js.map +1 -1
- package/dist/adapters/opencode/index.d.ts +0 -1
- package/dist/adapters/opencode/index.js.map +1 -1
- package/dist/adapters/opencode/inventory.d.ts +0 -1
- package/dist/adapters/opencode/inventory.js.map +1 -1
- package/dist/adapters/opencode/report.d.ts +0 -1
- package/dist/adapters/opencode/report.js.map +1 -1
- package/dist/adapters/opencode/session-ops.d.ts +0 -1
- package/dist/adapters/opencode/session-ops.js.map +1 -1
- package/dist/adapters/opencode/storage.d.ts +0 -1
- package/dist/adapters/opencode/storage.js.map +1 -1
- package/dist/adapters/opencode/tier-tool.d.ts +0 -1
- package/dist/adapters/opencode/tier-tool.js.map +1 -1
- package/dist/adapters/opencode/types.d.ts +0 -1
- package/dist/adapters/opencode/types.js.map +1 -1
- package/dist/core/compatibility/gate.d.ts +0 -3
- package/dist/core/compatibility/gate.js +0 -4
- package/dist/core/compatibility/gate.js.map +1 -1
- package/dist/core/compatibility/index.d.ts +0 -1
- package/dist/core/compatibility/index.js.map +1 -1
- package/dist/core/compatibility/types.d.ts +0 -1
- package/dist/core/compatibility/types.js.map +1 -1
- package/dist/core/scheduler/admit.d.ts +0 -1
- package/dist/core/scheduler/admit.js +22 -21
- package/dist/core/scheduler/admit.js.map +1 -1
- package/dist/core/scheduler/escalate.d.ts +0 -1
- package/dist/core/scheduler/escalate.js +6 -17
- package/dist/core/scheduler/escalate.js.map +1 -1
- package/dist/core/scheduler/index.d.ts +0 -1
- package/dist/core/scheduler/index.js.map +1 -1
- package/dist/core/scheduler/mode.d.ts +0 -1
- package/dist/core/scheduler/mode.js.map +1 -1
- package/dist/core/scheduler/types.d.ts +2 -9
- package/dist/core/scheduler/types.js +2 -1
- package/dist/core/scheduler/types.js.map +1 -1
- package/dist/core/tier-policy/index.d.ts +0 -1
- package/dist/core/tier-policy/index.js.map +1 -1
- package/dist/core/tier-policy/resolve.d.ts +0 -1
- package/dist/core/tier-policy/resolve.js.map +1 -1
- package/dist/core/tier-policy/tier-list.d.ts +0 -1
- package/dist/core/tier-policy/tier-list.js.map +1 -1
- package/dist/core/tier-policy/types.d.ts +2 -1
- package/dist/core/tier-policy/types.js +4 -0
- package/dist/core/tier-policy/types.js.map +1 -1
- package/dist/core/work-unit/index.d.ts +0 -1
- package/dist/core/work-unit/index.js.map +1 -1
- package/dist/core/work-unit/interruption.d.ts +0 -1
- package/dist/core/work-unit/interruption.js.map +1 -1
- package/dist/core/work-unit/tracker.d.ts +11 -4
- package/dist/core/work-unit/tracker.js +26 -6
- package/dist/core/work-unit/tracker.js.map +1 -1
- package/dist/core/work-unit/types.d.ts +6 -1
- package/dist/core/work-unit/types.js.map +1 -1
- package/dist/execution/continuation/execute.d.ts +0 -1
- package/dist/execution/continuation/execute.js.map +1 -1
- package/dist/execution/continuation/index.d.ts +0 -2
- package/dist/execution/continuation/index.js +0 -1
- package/dist/execution/continuation/index.js.map +1 -1
- package/dist/execution/continuation/plan.d.ts +0 -1
- package/dist/execution/continuation/plan.js +1 -3
- package/dist/execution/continuation/plan.js.map +1 -1
- package/dist/execution/continuation/prompts.d.ts +0 -1
- package/dist/execution/continuation/prompts.js.map +1 -1
- package/dist/execution/continuation/types.d.ts +0 -2
- package/dist/execution/continuation/types.js.map +1 -1
- package/dist/execution/escalation/index.d.ts +0 -1
- package/dist/execution/escalation/index.js.map +1 -1
- package/dist/execution/escalation/types.d.ts +0 -1
- package/dist/execution/escalation/types.js.map +1 -1
- package/dist/execution/index.d.ts +0 -1
- package/dist/execution/index.js.map +1 -1
- package/dist/execution/parking/index.d.ts +0 -1
- package/dist/execution/parking/index.js.map +1 -1
- package/dist/execution/parking/plan.d.ts +0 -1
- package/dist/execution/parking/plan.js.map +1 -1
- package/dist/execution/retry/decide.d.ts +0 -1
- package/dist/execution/retry/decide.js +1 -2
- package/dist/execution/retry/decide.js.map +1 -1
- package/dist/execution/retry/index.d.ts +0 -1
- package/dist/execution/retry/index.js.map +1 -1
- package/dist/execution/retry/types.d.ts +0 -2
- package/dist/execution/retry/types.js.map +1 -1
- package/dist/gui-experimental.cjs +1 -1
- package/dist/gui.d.ts +0 -1
- package/dist/gui.js +6 -3
- package/dist/gui.js.map +1 -1
- package/dist/health/capacity/index.d.ts +0 -1
- package/dist/health/capacity/index.js.map +1 -1
- package/dist/health/capacity/merge.d.ts +0 -1
- package/dist/health/capacity/merge.js.map +1 -1
- package/dist/health/capacity/registry.d.ts +0 -1
- package/dist/health/capacity/registry.js.map +1 -1
- package/dist/health/capacity/types.d.ts +0 -1
- package/dist/health/capacity/types.js.map +1 -1
- package/dist/health/circuit-breaker/breaker.d.ts +8 -1
- package/dist/health/circuit-breaker/breaker.js +18 -0
- package/dist/health/circuit-breaker/breaker.js.map +1 -1
- package/dist/health/circuit-breaker/index.d.ts +0 -1
- package/dist/health/circuit-breaker/index.js.map +1 -1
- package/dist/health/circuit-breaker/types.d.ts +0 -1
- package/dist/health/circuit-breaker/types.js.map +1 -1
- package/dist/health/classifier/classify.d.ts +0 -1
- package/dist/health/classifier/classify.js +13 -1
- package/dist/health/classifier/classify.js.map +1 -1
- package/dist/health/classifier/index.d.ts +0 -1
- package/dist/health/classifier/index.js.map +1 -1
- package/dist/health/classifier/types.d.ts +0 -1
- package/dist/health/classifier/types.js.map +1 -1
- package/dist/health/index.d.ts +0 -1
- package/dist/health/index.js.map +1 -1
- package/dist/health/resource-health/index.d.ts +0 -1
- package/dist/health/resource-health/index.js.map +1 -1
- package/dist/health/resource-health/key.d.ts +0 -1
- package/dist/health/resource-health/key.js.map +1 -1
- package/dist/health/resource-health/registry.d.ts +6 -1
- package/dist/health/resource-health/registry.js +19 -1
- package/dist/health/resource-health/registry.js.map +1 -1
- package/dist/health/resource-health/transitions.d.ts +2 -4
- package/dist/health/resource-health/transitions.js +10 -18
- package/dist/health/resource-health/transitions.js.map +1 -1
- package/dist/health/resource-health/types.d.ts +7 -1
- package/dist/health/resource-health/types.js +1 -0
- package/dist/health/resource-health/types.js.map +1 -1
- package/dist/index.d.ts +0 -6
- package/dist/index.js +44 -19
- package/dist/index.js.map +1 -1
- package/dist/plugin-id.d.ts +0 -1
- package/dist/plugin-id.js.map +1 -1
- package/dist/rpc/definition.d.ts +24 -1
- package/dist/rpc/definition.js +28 -2
- package/dist/rpc/definition.js.map +1 -1
- package/dist/rpc/handlers.d.ts +12 -24
- package/dist/rpc/handlers.js +22 -8
- package/dist/rpc/handlers.js.map +1 -1
- package/dist/rpc/status.d.ts +0 -1
- package/dist/rpc/status.js.map +1 -1
- package/dist/rpc.d.ts +0 -1
- package/dist/rpc.js.map +1 -1
- package/dist/state/capacity/index.d.ts +0 -1
- package/dist/state/capacity/index.js.map +1 -1
- package/dist/state/capacity/parse.d.ts +0 -1
- package/dist/state/capacity/parse.js +14 -2
- package/dist/state/capacity/parse.js.map +1 -1
- package/dist/state/capacity/store.d.ts +0 -1
- package/dist/state/capacity/store.js +16 -2
- package/dist/state/capacity/store.js.map +1 -1
- package/dist/state/capacity/types.d.ts +0 -1
- package/dist/state/capacity/types.js.map +1 -1
- package/dist/state/health/index.d.ts +0 -1
- package/dist/state/health/index.js.map +1 -1
- package/dist/state/health/parse.d.ts +0 -1
- package/dist/state/health/parse.js +20 -4
- package/dist/state/health/parse.js.map +1 -1
- package/dist/state/health/store.d.ts +0 -1
- package/dist/state/health/store.js +16 -2
- package/dist/state/health/store.js.map +1 -1
- package/dist/state/health/types.d.ts +0 -1
- package/dist/state/health/types.js.map +1 -1
- package/dist/state/parked-work/index.d.ts +0 -1
- package/dist/state/parked-work/index.js.map +1 -1
- package/dist/state/parked-work/parse.d.ts +0 -1
- package/dist/state/parked-work/parse.js.map +1 -1
- package/dist/state/parked-work/store.d.ts +0 -1
- package/dist/state/parked-work/store.js +20 -3
- package/dist/state/parked-work/store.js.map +1 -1
- package/dist/state/parked-work/types.d.ts +0 -1
- package/dist/state/parked-work/types.js.map +1 -1
- package/dist/state/receipts/bound.d.ts +0 -1
- package/dist/state/receipts/bound.js.map +1 -1
- package/dist/state/receipts/index.d.ts +0 -1
- package/dist/state/receipts/index.js.map +1 -1
- package/dist/state/receipts/parse.d.ts +0 -1
- package/dist/state/receipts/parse.js.map +1 -1
- package/dist/state/receipts/store.d.ts +0 -1
- package/dist/state/receipts/store.js +24 -4
- package/dist/state/receipts/store.js.map +1 -1
- package/dist/state/receipts/types.d.ts +0 -1
- package/dist/state/receipts/types.js.map +1 -1
- package/dist/state/session-modes/index.d.ts +0 -1
- package/dist/state/session-modes/index.js.map +1 -1
- package/dist/state/session-modes/parse.d.ts +0 -1
- package/dist/state/session-modes/parse.js.map +1 -1
- package/dist/state/session-modes/store.d.ts +0 -1
- package/dist/state/session-modes/store.js +15 -1
- package/dist/state/session-modes/store.js.map +1 -1
- package/dist/state/session-modes/types.d.ts +0 -1
- package/dist/state/session-modes/types.js.map +1 -1
- package/dist/state/settings/index.d.ts +0 -1
- package/dist/state/settings/index.js.map +1 -1
- package/dist/state/settings/parse.d.ts +0 -1
- package/dist/state/settings/parse.js.map +1 -1
- package/dist/state/settings/store.d.ts +0 -1
- package/dist/state/settings/store.js +9 -1
- package/dist/state/settings/store.js.map +1 -1
- package/dist/state/settings/types.d.ts +0 -1
- package/dist/state/settings/types.js.map +1 -1
- package/dist/state/tier-requests/index.d.ts +4 -0
- package/dist/state/tier-requests/index.js +4 -0
- package/dist/state/tier-requests/index.js.map +1 -0
- package/dist/state/tier-requests/parse.d.ts +3 -0
- package/dist/state/tier-requests/parse.js +53 -0
- package/dist/state/tier-requests/parse.js.map +1 -0
- package/dist/state/tier-requests/store.d.ts +27 -0
- package/dist/state/tier-requests/store.js +96 -0
- package/dist/state/tier-requests/store.js.map +1 -0
- package/dist/state/tier-requests/types.d.ts +30 -0
- package/dist/state/tier-requests/types.js +7 -0
- package/dist/state/tier-requests/types.js.map +1 -0
- package/dist/supervisor/index.d.ts +0 -1
- package/dist/supervisor/index.js.map +1 -1
- package/dist/supervisor/log.d.ts +0 -1
- package/dist/supervisor/log.js.map +1 -1
- package/dist/supervisor/supervisor.d.ts +23 -6
- package/dist/supervisor/supervisor.js +414 -111
- package/dist/supervisor/supervisor.js.map +1 -1
- package/dist/supervisor/types.d.ts +0 -1
- package/dist/supervisor/types.js.map +1 -1
- package/dist/supervisor/view.d.ts +0 -1
- package/dist/supervisor/view.js.map +1 -1
- package/dist/tui.d.ts +0 -1
- package/dist/tui.js +14 -10
- package/dist/tui.js.map +1 -1
- package/dist/ui/gui/api.d.ts +0 -1
- package/dist/ui/gui/api.js.map +1 -1
- package/dist/ui/gui/view.d.ts +0 -1
- package/dist/ui/gui/view.js.map +1 -1
- package/dist/ui/tui/controller.d.ts +0 -1
- package/dist/ui/tui/controller.js +70 -24
- package/dist/ui/tui/controller.js.map +1 -1
- package/dist/ui/tui/menu.d.ts +1 -2
- package/dist/ui/tui/menu.js +2 -2
- package/dist/ui/tui/menu.js.map +1 -1
- package/dist/ui/tui/options.d.ts +0 -1
- package/dist/ui/tui/options.js.map +1 -1
- package/dist/ui/tui/receipts.d.ts +0 -1
- package/dist/ui/tui/receipts.js +4 -1
- package/dist/ui/tui/receipts.js.map +1 -1
- package/dist/ui/tui/status.d.ts +1 -2
- package/dist/ui/tui/status.js +4 -2
- package/dist/ui/tui/status.js.map +1 -1
- package/dist/ui/tui/tiers.d.ts +0 -1
- package/dist/ui/tui/tiers.js.map +1 -1
- package/package.json +2 -2
- package/dist/adapters/codex-capacity/index.d.ts.map +0 -1
- package/dist/adapters/codex-capacity/parse.d.ts.map +0 -1
- package/dist/adapters/codex-capacity/reading.d.ts.map +0 -1
- package/dist/adapters/codex-capacity/sensor.d.ts.map +0 -1
- package/dist/adapters/codex-capacity/types.d.ts.map +0 -1
- package/dist/adapters/opencode/escalation-tool.d.ts.map +0 -1
- package/dist/adapters/opencode/events.d.ts.map +0 -1
- package/dist/adapters/opencode/hooks.d.ts.map +0 -1
- package/dist/adapters/opencode/index.d.ts.map +0 -1
- package/dist/adapters/opencode/inventory.d.ts.map +0 -1
- package/dist/adapters/opencode/report.d.ts.map +0 -1
- package/dist/adapters/opencode/session-ops.d.ts.map +0 -1
- package/dist/adapters/opencode/storage.d.ts.map +0 -1
- package/dist/adapters/opencode/tier-tool.d.ts.map +0 -1
- package/dist/adapters/opencode/types.d.ts.map +0 -1
- package/dist/core/compatibility/gate.d.ts.map +0 -1
- package/dist/core/compatibility/index.d.ts.map +0 -1
- package/dist/core/compatibility/types.d.ts.map +0 -1
- package/dist/core/scheduler/admit.d.ts.map +0 -1
- package/dist/core/scheduler/escalate.d.ts.map +0 -1
- package/dist/core/scheduler/index.d.ts.map +0 -1
- package/dist/core/scheduler/mode.d.ts.map +0 -1
- package/dist/core/scheduler/types.d.ts.map +0 -1
- package/dist/core/tier-policy/index.d.ts.map +0 -1
- package/dist/core/tier-policy/resolve.d.ts.map +0 -1
- package/dist/core/tier-policy/tier-list.d.ts.map +0 -1
- package/dist/core/tier-policy/types.d.ts.map +0 -1
- package/dist/core/work-unit/index.d.ts.map +0 -1
- package/dist/core/work-unit/interruption.d.ts.map +0 -1
- package/dist/core/work-unit/tracker.d.ts.map +0 -1
- package/dist/core/work-unit/types.d.ts.map +0 -1
- package/dist/execution/continuation/execute.d.ts.map +0 -1
- package/dist/execution/continuation/index.d.ts.map +0 -1
- package/dist/execution/continuation/ledger.d.ts +0 -20
- package/dist/execution/continuation/ledger.d.ts.map +0 -1
- package/dist/execution/continuation/ledger.js +0 -31
- package/dist/execution/continuation/ledger.js.map +0 -1
- package/dist/execution/continuation/plan.d.ts.map +0 -1
- package/dist/execution/continuation/prompts.d.ts.map +0 -1
- package/dist/execution/continuation/types.d.ts.map +0 -1
- package/dist/execution/escalation/index.d.ts.map +0 -1
- package/dist/execution/escalation/types.d.ts.map +0 -1
- package/dist/execution/index.d.ts.map +0 -1
- package/dist/execution/parking/index.d.ts.map +0 -1
- package/dist/execution/parking/plan.d.ts.map +0 -1
- package/dist/execution/recovery/gate.d.ts +0 -20
- package/dist/execution/recovery/gate.d.ts.map +0 -1
- package/dist/execution/recovery/gate.js +0 -23
- package/dist/execution/recovery/gate.js.map +0 -1
- package/dist/execution/recovery/index.d.ts +0 -3
- package/dist/execution/recovery/index.d.ts.map +0 -1
- package/dist/execution/recovery/index.js +0 -2
- package/dist/execution/recovery/index.js.map +0 -1
- package/dist/execution/retry/decide.d.ts.map +0 -1
- package/dist/execution/retry/index.d.ts.map +0 -1
- package/dist/execution/retry/types.d.ts.map +0 -1
- package/dist/gui.d.ts.map +0 -1
- package/dist/health/capacity/index.d.ts.map +0 -1
- package/dist/health/capacity/merge.d.ts.map +0 -1
- package/dist/health/capacity/registry.d.ts.map +0 -1
- package/dist/health/capacity/types.d.ts.map +0 -1
- package/dist/health/circuit-breaker/breaker.d.ts.map +0 -1
- package/dist/health/circuit-breaker/index.d.ts.map +0 -1
- package/dist/health/circuit-breaker/types.d.ts.map +0 -1
- package/dist/health/classifier/classify.d.ts.map +0 -1
- package/dist/health/classifier/index.d.ts.map +0 -1
- package/dist/health/classifier/types.d.ts.map +0 -1
- package/dist/health/index.d.ts.map +0 -1
- package/dist/health/resource-health/index.d.ts.map +0 -1
- package/dist/health/resource-health/key.d.ts.map +0 -1
- package/dist/health/resource-health/registry.d.ts.map +0 -1
- package/dist/health/resource-health/transitions.d.ts.map +0 -1
- package/dist/health/resource-health/types.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/plugin-id.d.ts.map +0 -1
- package/dist/rpc/definition.d.ts.map +0 -1
- package/dist/rpc/handlers.d.ts.map +0 -1
- package/dist/rpc/status.d.ts.map +0 -1
- package/dist/rpc.d.ts.map +0 -1
- package/dist/state/capacity/index.d.ts.map +0 -1
- package/dist/state/capacity/parse.d.ts.map +0 -1
- package/dist/state/capacity/store.d.ts.map +0 -1
- package/dist/state/capacity/types.d.ts.map +0 -1
- package/dist/state/health/index.d.ts.map +0 -1
- package/dist/state/health/parse.d.ts.map +0 -1
- package/dist/state/health/store.d.ts.map +0 -1
- package/dist/state/health/types.d.ts.map +0 -1
- package/dist/state/parked-work/index.d.ts.map +0 -1
- package/dist/state/parked-work/parse.d.ts.map +0 -1
- package/dist/state/parked-work/store.d.ts.map +0 -1
- package/dist/state/parked-work/types.d.ts.map +0 -1
- package/dist/state/receipts/bound.d.ts.map +0 -1
- package/dist/state/receipts/index.d.ts.map +0 -1
- package/dist/state/receipts/parse.d.ts.map +0 -1
- package/dist/state/receipts/store.d.ts.map +0 -1
- package/dist/state/receipts/types.d.ts.map +0 -1
- package/dist/state/session-modes/index.d.ts.map +0 -1
- package/dist/state/session-modes/parse.d.ts.map +0 -1
- package/dist/state/session-modes/store.d.ts.map +0 -1
- package/dist/state/session-modes/types.d.ts.map +0 -1
- package/dist/state/settings/index.d.ts.map +0 -1
- package/dist/state/settings/parse.d.ts.map +0 -1
- package/dist/state/settings/store.d.ts.map +0 -1
- package/dist/state/settings/types.d.ts.map +0 -1
- package/dist/supervisor/index.d.ts.map +0 -1
- package/dist/supervisor/log.d.ts.map +0 -1
- package/dist/supervisor/supervisor.d.ts.map +0 -1
- package/dist/supervisor/types.d.ts.map +0 -1
- package/dist/supervisor/view.d.ts.map +0 -1
- package/dist/tui.d.ts.map +0 -1
- package/dist/ui/gui/api.d.ts.map +0 -1
- package/dist/ui/gui/view.d.ts.map +0 -1
- package/dist/ui/tui/controller.d.ts.map +0 -1
- package/dist/ui/tui/menu.d.ts.map +0 -1
- package/dist/ui/tui/options.d.ts.map +0 -1
- package/dist/ui/tui/receipts.d.ts.map +0 -1
- package/dist/ui/tui/status.d.ts.map +0 -1
- package/dist/ui/tui/tiers.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../src/supervisor/supervisor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../src/supervisor/supervisor.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The supervisor (ADP-025..ADP-032): owns all state stores and glues the pure\n * core to the host reports. It contains no policy of its own — every decision\n * comes from the pure scheduler/retry/tier modules — and it applies the two\n * wiring contracts: fail-open (ADP-031, internal failures log and defer) and\n * Observe ≡ Control (the same admission path, only the mode wrapper differs).\n *\n * Wiring decisions recorded here (see docs/ARCHITECTURE.md):\n * - admission runs only on `execution-started` (a safe boundary); auxiliary\n * per-request routing is not applied in v1 because switching the model for\n * an auxiliary request would also move the primary model.\n * - park records arise only from owned-recovery failures and resume\n * boundaries; admission cannot hold an already-started episode, so an\n * admission `park` decision is recorded as a receipt without a parked\n * record (the episode proceeds on OpenCode's own model).\n * - retry-hook veto decisions are not receipts (they are not scheduler\n * decisions); admission receipts plus outcome attachment cover ADP-030.\n * - interruption reasons outside the known vocabulary leave the unit open\n * (a later episode supersedes it); no outcome is ever fabricated.\n * - escalation (ADP-015..017) triggers only on capability-classified unit\n * failures (context overflow, content policy); infrastructure failures\n * never escalate, and the per-task budget is finite.\n */\nimport { WorkUnitTracker } from \"../core/work-unit/tracker.js\"\nimport {\n sameModelRef,\n type ActiveUnit,\n type ApplyResult,\n type ModelRef,\n} from \"../core/work-unit/types.js\"\nimport { INTERRUPT_REASONS } from \"../core/work-unit/interruption.js\"\nimport type { InterruptReason } from \"../core/work-unit/interruption.js\"\nimport { resolveRouting } from \"../core/tier-policy/resolve.js\"\nimport { isTierName, nextTier } from \"../core/tier-policy/types.js\"\nimport type { RoutingDecision, TierName, TierRequest } from \"../core/tier-policy/types.js\"\nimport {\n admit,\n forMode as schedulerForMode,\n planEscalation,\n schedulerHealthKey,\n} from \"../core/scheduler/index.js\"\nimport type {\n ApplyDecision,\n EscalationEvidence,\n OperatingMode,\n SchedulerInput,\n} from \"../core/scheduler/types.js\"\nimport { MAX_ESCALATION_EVIDENCE } from \"../core/scheduler/types.js\"\nimport type { CandidateModel, Demand } from \"../core/compatibility/types.js\"\nimport { checkCompatibility } from \"../core/compatibility/gate.js\"\nimport { classifyFailure, CapacityRegistry, ResourceHealthRegistry } from \"../health/index.js\"\nimport { sweepRecord } from \"../health/resource-health/transitions.js\"\nimport type { ResourceRecord } from \"../health/resource-health/types.js\"\nimport { HealthRecordStore, HEALTH_KEY } from \"../state/health/index.js\"\nimport { CapacityReadingStore, CAPACITY_KEY } from \"../state/capacity/index.js\"\nimport type { PersistedCapacityReading } from \"../state/capacity/index.js\"\nimport { mergeReadings } from \"../health/capacity/merge.js\"\nimport { resourceChain, resourceKeyID } from \"../health/resource-health/key.js\"\nimport type {\n Assessment,\n CapacityReading,\n CapacitySignals,\n FailureCategory,\n FailureClassification,\n HealthEvent,\n ProbeOutcome,\n ProbeTicket,\n ResourceKey,\n} from \"../health/index.js\"\nimport { SettingsStore, SETTINGS_KEY } from \"../state/settings/index.js\"\nimport type { SettingsV1 } from \"../state/settings/index.js\"\nimport type { PatchResult, SettingsPatch } from \"../state/settings/types.js\"\nimport { SessionModeStore, SESSION_MODES_KEY } from \"../state/session-modes/index.js\"\nimport { TierRequestStore, TIER_REQUESTS_KEY } from \"../state/tier-requests/index.js\"\nimport { ReceiptStore, RECEIPTS_KEY } from \"../state/receipts/index.js\"\nimport type { Receipt, ReceiptInput, ReceiptOutcome } from \"../state/receipts/types.js\"\nimport { buildStatus } from \"../rpc/status.js\"\nimport type { StatusSnapshot } from \"../rpc/status.js\"\nimport { RECEIPTS_VIEW_LIMIT } from \"./view.js\"\nimport { ParkedWorkStore, PARKED_KEY } from \"../state/parked-work/index.js\"\nimport type { ParkedRecord } from \"../state/parked-work/types.js\"\nimport {\n decideRetry,\n executeContinuation,\n forMode as retryForMode,\n planContinuation,\n selectResumable,\n} from \"../execution/index.js\"\nimport { escalationDetail } from \"../execution/escalation/index.js\"\nimport type { RecoveryOption } from \"../execution/index.js\"\nimport { listCandidates, sessionOps, storageSeam } from \"../adapters/opencode/index.js\"\nimport type { EventReport } from \"../adapters/opencode/index.js\"\nimport { CodexCapacitySensor } from \"../adapters/codex-capacity/index.js\"\nimport { logFailOpen } from \"./log.js\"\nimport type { RetryHookInput, SupervisorOptions } from \"./types.js\"\nimport { CODEX_PROVIDER_ID } from \"./types.js\"\n\nimport { TIERS } from \"../core/tier-policy/types.js\"\n\n/** Which tiers currently have configured resources (ADP-005). */\nfunction configuredTiers(settings: SettingsV1): TierName[] {\n return TIERS.filter((tier) => settings.tiers[tier].length > 0)\n}\n\n/** Narrow a wire interrupt reason to the known vocabulary. */\nfunction interruptReason(reason: string): InterruptReason | undefined {\n return (INTERRUPT_REASONS as readonly string[]).includes(reason)\n ? (reason as InterruptReason)\n : undefined\n}\n\n/**\n * Failure categories that count as structured capability evidence (ADP-015).\n * The remaining evidence kinds (agent request, reviewer rejection) have no\n * structured host source in v2 and are never inferred from free text.\n */\nconst CAPABILITY_EVIDENCE_CATEGORIES: readonly FailureCategory[] = [\n \"context_overflow\",\n \"content_policy\",\n]\n\n/** Finite per-task escalation budget (ADP-017). */\nconst MAX_ESCALATIONS_PER_TASK = 2\n\n/**\n * The recovery's post-settle guard aborted it (the session went OFF or the\n * user interrupted while the host settle was in flight). Callers use it to\n * skip the ordinary ops-failure degradation (parking) — an aborted recovery\n * is a steering change, not an infrastructure failure.\n */\nexport class RecoveryAbortedError extends Error {\n constructor(sessionID: string) {\n super(`recovery aborted for session ${sessionID}`)\n this.name = \"RecoveryAbortedError\"\n }\n}\n\nexport class Supervisor {\n readonly #options: SupervisorOptions\n readonly #settings: SettingsStore\n readonly #receipts: ReceiptStore\n readonly #parked: ParkedWorkStore\n readonly #tracker = new WorkUnitTracker()\n readonly #health: ResourceHealthRegistry\n readonly #healthRecords: HealthRecordStore\n readonly #capacityStore: CapacityReadingStore\n readonly #sessionModes: SessionModeStore\n readonly #capacity: CapacityRegistry\n readonly #codex: CodexCapacitySensor\n readonly #vetoes = new Map<string, number>()\n /**\n * Escalations spent per session on the current task (one user prompt and\n * the owned continuations it spawns). Keyed by session, not unit: every\n * escalation continues on a NEW unit, so a per-unit count would restart\n * the budget at each step. A fresh user prompt starts a new task.\n */\n readonly #escalations = new Map<string, number>()\n readonly #admissionTiers = new Map<string, TierName>()\n /** Recorded escalation-tool requests per unit (ADP-015 agent self-reports). */\n readonly #escalationEvidence = new Map<string, EscalationEvidence[]>()\n /** Last agent observed per session (role-hint routing evidence, ADP-002). */\n // Bounded like every other per-session map: long-lived hosts meet many\n // short-lived subagent sessions, and agent hints for long-gone sessions\n // are worthless. Insertion order gives the eviction (oldest hint first).\n static readonly MAX_AGENT_HINTS = 1024\n readonly #agents = new Map<string, string>()\n /**\n * Per-session tier requests (agent-declared via the adaptive_tier tool):\n * the request is STICKY — it steers the session's next and following\n * admissions until cleared or the session dies — because an agent works\n * across many units in one task. Persisted like the session-mode\n * overrides: the host's double plugin instance (hooks vs RPC) must not\n * strand a request on the instance that never routes.\n */\n readonly #tierRequests: TierRequestStore\n /**\n * Sessions whose last model change was the user's own pick\n * (`selected-external`): prompt admission does not re-route them —\n * switching would undo the user's `/model` choice (ADP-028). Cleared by an\n * adaptive switch, a tier request, or a mode change; a standing settings\n * pin overrides the suppression (the pin is manual intent too).\n */\n static readonly MAX_MANUAL_SELECTIONS = 1024\n readonly #manualSelections = new Map<string, true>()\n /**\n * Sessions with an owned continuation prompt in flight: the prompt hook\n * will fire for it, but that prompt belongs to the active unit — it must\n * not re-admit (prevents an admission ping-pong).\n */\n readonly #continuationPending = new Set<string>()\n /**\n * Depth of continuation prompts whose prompt hook has not run yet (or whose\n * host call is still in flight). While a session is inside this window, a\n * unit close must not clear the ownership mark: the close event of the\n * failed unit is pumped concurrently with the continuation's own\n * beforePrompt → prompt-hook sequence, and clearing the mark there would\n * make the continuation re-admit (admission ping-pong).\n */\n readonly #continuationsInFlight = new Map<string, number>()\n /**\n * Sessions with an owned recovery in flight (between veto/resume and the\n * delivered continuation prompt). The host settle inside it can take\n * unbounded time; an interruption arriving during that window must abort\n * the stale decision instead of acting after it.\n */\n readonly #recoveryPending = new Set<string>()\n /** Interruptions observed while a recovery was pending on the session. */\n readonly #recoveryInterrupted = new Set<string>()\n /**\n * Half-open probe tickets by session: a probe admitted while computing the\n * recovery for a veto belongs to the continuation episode that follows, so\n * the ticket is parked here until that unit opens and takes it.\n */\n readonly #sessionProbeTickets = new Map<string, ProbeTicket>()\n /**\n * Half-open probe tickets by unit: the unit admitted as (or carrying) the\n * breaker's single probe. Its termination reports the probe outcome — a\n * success closes the breaker, a failure reopens it, an interruption re-arms\n * it — otherwise a lost probe would wedge the resource in half_open.\n */\n readonly #probeTickets = new Map<string, ProbeTicket>()\n /**\n * Per-unit dedup for breaker failure evidence (ADP-019). One failed attempt\n * surfaces through up to three host signals — the pumped `http.response`\n * event, the `retry` hook (the same request), and the terminal\n * `execution-failed` (the last attempt) — and counting each would trip the\n * breaker after ~2 real failures instead of `failureThreshold`. The exact\n * arrival order of a pair is not guaranteed (the retry hook runs in the\n * request lifecycle, the event pump lags), so the dedup is order-symmetric:\n * the first signal of a pair counts and arms, the matching counterpart\n * consumes it, a completed pair closes the attempt, and the terminal\n * repeats only when the last attempt left no live evidence. A same-category\n * observation with nothing armed is a NEW attempt (consecutive http-only\n * failures each count). Cleared at unit close.\n */\n readonly #attemptFailures = new Map<\n string,\n {\n http?: FailureCategory | undefined\n retry?: FailureCategory | undefined\n closed?: FailureCategory | undefined\n }\n >()\n /**\n * Session → tier admitted by the prompt hook for the unit that is about to\n * open. Consumed by execution-started, which then skips re-routing (the\n * model is already applied to the very turn that triggered admission).\n */\n readonly #promptAdmission = new Map<string, { tier?: TierName }>()\n /**\n * Tier intent for an owned continuation (retry recovery, escalation,\n * parked resume) set before its prompt is delivered. The continuation's\n * prompt hook re-arms the prompt-admission marker from this so the\n * continuation's execution-started skips re-routing — a fresh admission\n * would flip an escalated episode back to the preferred model mid-unit\n * (a switch only lands on the next turn). Cleared when the continuation\n * unit opens, its prompt is rejected, or the session dies.\n */\n readonly #continuationTiers = new Map<string, TierName>()\n readonly #ready: Promise<SettingsV1>\n readonly #ops: ReturnType<typeof sessionOps>\n\n constructor(options: SupervisorOptions) {\n this.#options = options\n this.#health = new ResourceHealthRegistry(options.clock)\n this.#capacity = new CapacityRegistry(options.clock)\n this.#codex = new CodexCapacitySensor({ providerID: CODEX_PROVIDER_ID })\n this.#capacity.register(this.#codex)\n this.#settings = new SettingsStore(storageSeam(SETTINGS_KEY, options.storage))\n this.#receipts = new ReceiptStore(storageSeam(RECEIPTS_KEY, options.storage))\n this.#parked = new ParkedWorkStore(storageSeam(PARKED_KEY, options.storage))\n this.#healthRecords = new HealthRecordStore(storageSeam(HEALTH_KEY, options.storage))\n this.#capacityStore = new CapacityReadingStore(storageSeam(CAPACITY_KEY, options.storage))\n this.#sessionModes = new SessionModeStore(\n storageSeam(SESSION_MODES_KEY, options.storage),\n options.clock,\n )\n this.#tierRequests = new TierRequestStore(\n storageSeam(TIER_REQUESTS_KEY, options.storage),\n options.clock,\n )\n this.#ops = sessionOps(options.session, {\n beforeSwitch: (sessionID, model) => {\n this.#tracker.noteOwnSwitch(sessionID, model)\n },\n beforePrompt: (sessionID) => {\n this.#continuationPending.add(sessionID)\n this.#continuationsInFlight.set(\n sessionID,\n (this.#continuationsInFlight.get(sessionID) ?? 0) + 1,\n )\n },\n afterPrompt: (sessionID, delivered) => {\n // sessionOps.prompt calls this only after its own beforePrompt, so\n // the entry is always present; the assertion avoids a default branch\n // no caller can reach.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const depth = this.#continuationsInFlight.get(sessionID)!\n if (depth <= 1) {\n this.#continuationsInFlight.delete(sessionID)\n if (!delivered) {\n // The last in-flight owned prompt never reached the host's hook:\n // its ownership mark would swallow the next user prompt's\n // admission, so it is dropped here (the hook can no longer fire).\n // The continuation's tier intent dies with it — no episode will\n // open to carry it.\n this.#continuationPending.delete(sessionID)\n this.#continuationTiers.delete(sessionID)\n }\n } else {\n this.#continuationsInFlight.set(sessionID, depth - 1)\n }\n },\n })\n // Durable state loads before the first report is handled: a later load\n // must never clobber decisions recorded in the meantime.\n const loadState = async (): Promise<SettingsV1> => {\n await this.#receipts.load()\n await this.#parked.load()\n // Unit ids are durable keys (`${sessionID}#${episode}`) persisted in\n // receipts and parked work. Seed the tracker's per-session episode\n // counters above every persisted id: after a restart the counters\n // must never re-mint a colliding id, which would replace a parked\n // record (the store parks one record per id) and misattribute\n // receipt outcomes.\n const floors = new Map<string, number>()\n const bump = (unitID: string | undefined): void => {\n if (unitID === undefined) return\n const cut = unitID.lastIndexOf(\"#\")\n if (cut <= 0) return\n const sessionID = unitID.slice(0, cut)\n const episode = Number(unitID.slice(cut + 1))\n if (!Number.isInteger(episode) || episode <= 0) return\n if (episode > (floors.get(sessionID) ?? 0)) floors.set(sessionID, episode)\n }\n for (const receipt of this.#receipts.snapshot()) bump(receipt.unitID)\n for (const record of this.#parked.list()) bump(record.id)\n this.#tracker.seedEpisodes(floors)\n // Health records hydrate the registry: the host's TUI-mode plugin\n // reconciliation can serve RPC from an instance whose hooks (event\n // pump) live on another instance — persisted failures are the only\n // health that instance can see, and a fresh instance must also assess\n // persisted failures before routing instead of starting from empty.\n await this.#healthRecords.load()\n this.#health.hydrate(this.#healthRecords.snapshot())\n // Session-mode overrides hydrate the same way: a restart (or the\n // host's double-instance reconciliation) must keep steering sessions\n // under the modes the user set for them.\n await this.#sessionModes.load()\n // Tier requests hydrate the same way: a tier request recorded through\n // the host's other plugin instance (or before a restart) must still\n // steer this instance's admissions.\n await this.#tierRequests.load()\n await this.#capacityStore.load()\n return this.#settings.load()\n }\n this.#ready = loadState()\n }\n\n /** Settings as of the latest load/patch (awaits the constructor load). */\n async #ensureSettings(): Promise<SettingsV1> {\n await this.#ready\n return this.#settings.get()\n }\n\n /**\n * The session's effective operating mode (ADP-054): its per-session\n * override when one is set, else the global mode. Every session-scoped\n * supervision decision consults this instead of `settings.mode` directly.\n */\n #modeFor(sessionID: string, settings: SettingsV1): OperatingMode {\n return this.#sessionModes.get(sessionID) ?? settings.mode\n }\n\n // ---------- public entry points (never throw — fail-open, ADP-031) ----------\n\n /** Handle one host report (event pump or session hook). */\n async handleReport(report: EventReport): Promise<void> {\n try {\n const settings = await this.#ensureSettings()\n // An OFF session is fully inert — no supervision, no receipts, no\n // health evidence. Idle is the exception: it is the bookkeeping\n // boundary (parked-work sweep, dead-session override pruning) and runs\n // for every report so other sessions' overrides are maintained; the\n // sweep itself gates per parked session below.\n if (report.kind !== \"idle\" && this.#modeFor(report.sessionID, settings) === \"off\") return\n await this.#dispatch(report, settings)\n } catch (error) {\n logFailOpen(\"report\", error)\n }\n }\n\n /** Marks the session's manual-selection state from an external selection event. */\n #noteManualSelection(sessionID: string): void {\n if (\n !this.#manualSelections.has(sessionID) &&\n this.#manualSelections.size >= Supervisor.MAX_MANUAL_SELECTIONS\n ) {\n // The guard above ensures the map is at its cap (>= 1 entries), so the\n // first key always exists; the assertion avoids a branch the coverage\n // gate would reject as unreachable.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const oldest = this.#manualSelections.keys().next().value!\n this.#manualSelections.delete(oldest)\n }\n this.#manualSelections.set(sessionID, true)\n }\n\n /**\n * True while the session's last model change was the user's own pick.\n * A standing settings pin is explicit manual intent as well (ADP-002):\n * honoring it does not fight the pick, so suppression is skipped there.\n */\n #manuallySelected(sessionID: string, settings: SettingsV1): boolean {\n return settings.pin === null && this.#manualSelections.has(sessionID)\n }\n\n /**\n * The manual-pick suppression actually applied at an admission. It yields\n * when the picked model is health-blocked: keeping the session on a\n * quarantined resource does not honor the pick — the configured fallback\n * takes over instead (the pick is re-honored only if the user picks again).\n * Uses the non-mutating evaluation, never a probe admission.\n */\n #manualSuppressionHolds(sessionID: string, settings: SettingsV1): boolean {\n if (!this.#manuallySelected(sessionID, settings)) return false\n const current = this.#tracker.lastModel(sessionID)?.model\n if (current === undefined) return true\n return this.#health.evaluate(refKey(current)).kind !== \"blocked\"\n }\n\n /**\n * Handle one `retry` hook invocation. On a veto this mutates\n * `input.decision` to `{ retry: false }`; otherwise the decision is left\n * untouched and OpenCode's native retry policy stands.\n */\n async handleRetry(input: RetryHookInput): Promise<void> {\n try {\n const settings = await this.#ensureSettings()\n if (this.#modeFor(input.sessionID, settings) === \"off\") return\n await this.#handleRetry(input, settings)\n } catch (error) {\n logFailOpen(\"retry\", error)\n }\n }\n\n /**\n * Record an escalation-tool request (ADP-015 agent self-report) against the\n * session's current work unit. Returns false when no unit is active — the\n * request is then discarded (escalation is a per-unit signal).\n */\n noteEscalationRequest(sessionID: string, reason: string, evidence: string): boolean {\n const unit = this.#tracker.active(sessionID)\n if (unit === undefined) return false\n const recorded = this.#escalationEvidence.get(unit.id) ?? []\n recorded.push({\n kind: \"agent-request\",\n detail: escalationDetail({ reason, evidence }),\n })\n this.#escalationEvidence.set(unit.id, recorded.slice(-MAX_ESCALATION_EVIDENCE))\n return true\n }\n\n /**\n * Record an agent-declared tier request for the session (the adaptive_tier\n * tool). STICKY: it steers the session's next and following admissions\n * until cleared — an agent works across many units in one task. Returns\n * false on an unknown tier (the tool re-validates before calling).\n *\n * Fire-and-forget persistence: the recorder signature is sync on both the\n * tool and the RPC source interfaces, so the write is enqueued without\n * awaiting it. Readers (routing, getTierRequest, the idle sweep) flush the\n * store's queue before reading, which makes the record visible\n * deterministically; a write failure drops the record fail-open (the tool\n * told the agent \"recorded\", the persisted mirror simply never sees it —\n * the same degradation the in-memory map had on restart).\n */\n noteTierRequest(sessionID: string, tier: string): boolean {\n if (!isTierName(tier)) return false\n void this.#tierRequests.set(sessionID, tier).catch(() => undefined)\n // The user/agent explicitly asked Adaptive to route again (ADP-028).\n this.#manualSelections.delete(sessionID)\n return true\n }\n\n /** The session's tier request, or `null` when it follows the routing ladder. */\n async getTierRequest(sessionID: string): Promise<TierName | null> {\n await this.#ready\n // A fire-and-forget note may still be in the queue: flush before reading.\n await this.#tierRequests.flush()\n return this.#tierRequests.get(sessionID)\n }\n\n /** Clear one session's tier request (`null` is the only valid input). */\n async setTierRequest(sessionID: string, tier: TierName | null): Promise<void> {\n await this.#ready\n if (tier !== null) throw new Error(\"only null clears a tier request\")\n await this.#tierRequests.set(sessionID, null)\n // Clearing through the control surface is the user asking Adaptive back.\n this.#manualSelections.delete(sessionID)\n }\n\n // ---------- state API for the control surfaces (ADP-033/034/036) ----------\n\n /** Current settings (awaits the constructor load). */\n async settings(): Promise<SettingsV1> {\n return this.#ensureSettings()\n }\n\n /** Validate and persist a settings patch; returns per-field errors. */\n async updateSettings(patch: SettingsPatch): Promise<PatchResult> {\n await this.#ready\n const result = await this.#settings.update(patch)\n if (result.ok && patch.mode !== undefined) {\n // A global mode change is the user steering Adaptive explicitly\n // (ADP-028): manual-selection suppression lifts for every session.\n this.#manualSelections.clear()\n }\n return result\n }\n\n /** The session's mode override, or `null` when it follows the global mode. */\n async getSessionMode(sessionID: string): Promise<OperatingMode | null> {\n await this.#ready\n return this.#sessionModes.get(sessionID)\n }\n\n /**\n * Persist one session's mode override (`null` clears it). Throws on write\n * failure — the RPC handler degrades that to an error patch result\n * (fail-open, ADP-031), while the routing path never calls this.\n */\n async setSessionMode(sessionID: string, mode: OperatingMode | null): Promise<void> {\n await this.#ready\n await this.#sessionModes.set(sessionID, mode)\n // A mode change is the user steering Adaptive explicitly (ADP-028).\n this.#manualSelections.delete(sessionID)\n }\n\n /**\n * Bounded status snapshot for the status view (ADP-033). Health is read\n * from the persisted record set (not the in-memory registry): the serving\n * instance's registry can be empty when the host's plugin reconciliation\n * placed the event-pump hooks on another instance, while the persisted\n * mirror is shared by every instance.\n */\n async status(): Promise<StatusSnapshot> {\n const settings = await this.#ensureSettings()\n await this.#healthRecords.load()\n // The persisted mirror serves the status surface: a serving instance\n // without the event-pump hooks must still report sensed capacity.\n await this.#capacityStore.load()\n const now = this.#options.clock()\n const records = this.#healthRecords.snapshot().map((record) => sweepRecord(record, now))\n // Capacity readings are gathered per configured ref (mirroring the health\n // input shape) so buildStatus stays a pure function of its inputs.\n const capacity: Record<string, CapacityReading | null> = {}\n for (const tier of TIERS) {\n for (const ref of settings.tiers[tier]) {\n const chainIDs = new Set(resourceChain(refKey(ref)).map(resourceKeyID))\n const candidates = this.#capacityStore\n .snapshot()\n .filter((entry) => chainIDs.has(resourceKeyID(entry.key)))\n .map((entry) => entry.reading)\n capacity[schedulerHealthKey(ref)] = mergeReadings(candidates, now)\n }\n }\n return buildStatus({\n settings,\n health: records,\n capacity,\n parked: this.#parked.count(),\n receipts: this.#receipts.snapshot().length,\n })\n }\n\n /** Newest-first bounded receipt view (ADP-030). */\n async receipts(): Promise<Receipt[]> {\n await this.#ready\n return this.#receipts.snapshot().slice(-RECEIPTS_VIEW_LIMIT).reverse()\n }\n\n // ---------- dispatch ----------\n\n async #dispatch(report: EventReport, settings: SettingsV1): Promise<void> {\n switch (report.kind) {\n case \"execution-started\":\n await this.#onExecutionStarted(report, settings)\n return\n case \"execution-succeeded\":\n await this.#onExecutionSucceeded(report)\n return\n case \"execution-failed\":\n await this.#onExecutionFailed(report, settings)\n return\n case \"execution-interrupted\":\n await this.#onExecutionInterrupted(report)\n return\n case \"model-selected\": {\n const result = this.#tracker.apply({\n kind: \"model-selected\",\n sessionID: report.sessionID,\n at: report.at,\n model: report.model,\n })\n // Whether the change was the user's pick or Adaptive's own switch\n // decides who controls the session's model (ADP-028); the result\n // carries the attribution the tracker resolved. Only the two\n // selection sources reach this event kind.\n const { source } = result.transition\n if (source === \"selected-adaptive\") this.#manualSelections.delete(report.sessionID)\n else this.#noteManualSelection(report.sessionID)\n return\n }\n case \"model-request\":\n if (report.agent !== undefined) {\n if (\n !this.#agents.has(report.sessionID) &&\n this.#agents.size >= Supervisor.MAX_AGENT_HINTS\n ) {\n // The guard above ensures the map is at its cap (>= 1 entries),\n // so the first key always exists; the assertion avoids a branch\n // the coverage gate would reject as unreachable.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const oldest = this.#agents.keys().next().value!\n this.#agents.delete(oldest)\n }\n this.#agents.set(report.sessionID, report.agent)\n }\n // Only the agent loop's own request reports the model actually\n // executing the unit's work. An auxiliary request (title, compaction,\n // generate — ADP-027) carries the host's own cheap pick for that side\n // request; adopting it as the session's model would misattribute the\n // primary unit's health evidence and leave the next admission\n // believing the unit runs on the wrong resource.\n if (report.requestKind === \"primary\") {\n this.#tracker.apply({\n kind: \"model-request\",\n sessionID: report.sessionID,\n at: this.#options.clock(),\n model: report.model,\n })\n }\n return\n case \"http-response\":\n await this.#onHttpResponse(report)\n return\n case \"idle\":\n await this.#onIdle(settings)\n return\n case \"prompt\":\n await this.#onPrompt(report.sessionID, settings)\n return\n }\n }\n\n // ---------- admission ----------\n\n /**\n * CONTROL-mode admission in the awaited prompt hook. The hook runs before\n * the turn's model resolution, so the applied model governs the very turn\n * that triggered admission (the event-pump execution-started report is\n * asynchronous and would only affect the next turn — verified on host\n * 2.2.5). OBSERVE never switches, so it needs no prompt-time decision and\n * stays on the pump entirely.\n */\n async #onPrompt(sessionID: string, settings: SettingsV1): Promise<void> {\n const mode = this.#modeFor(sessionID, settings)\n if (mode !== \"active\") return\n if (this.#continuationPending.delete(sessionID)) {\n // An owned continuation (retry recovery, escalation, parked resume)\n // already owns this unit's routing: re-arm the admission marker from\n // the continuation's tier intent so execution-started skips a fresh\n // (continuation-unaware) admission.\n const tier = this.#continuationTiers.get(sessionID)\n this.#promptAdmission.set(sessionID, tier !== undefined ? { tier } : {})\n return\n }\n // A fresh user prompt cancels any stale continuation intent and marker:\n // this admission re-routes from scratch.\n this.#continuationTiers.delete(sessionID)\n this.#promptAdmission.delete(sessionID)\n this.#escalations.delete(sessionID)\n // A pending probe ticket from an earlier prompt admission (or a failed\n // recovery) can only be carried by the unit the ORIGINAL prompt opens;\n // a fresh admission means that episode never ran, so the ticket is\n // released here instead of being adopted by whichever unit opens next.\n const stale = this.#sessionProbeTickets.get(sessionID)\n if (stale !== undefined) {\n this.#sessionProbeTickets.delete(sessionID)\n this.#health.releaseProbe(stale)\n }\n if (this.#manualSuppressionHolds(sessionID, settings)) {\n // ADP-028: the user's own model pick stands (yielded to health if the\n // picked resource is quarantined). Recording the defer (no switch, no\n // marker) leaves OpenCode's choice — the picked model — in place;\n // execution-started will skip routing the same way.\n await this.#recordReceipt({\n sessionID,\n decision: { kind: \"defer\", reason: \"routing-defer\", detail: \"manual-selection\" },\n })\n return\n }\n let probeTicket: ProbeTicket | undefined\n try {\n const admission = await this.#admit(settings, sessionID)\n probeTicket = admission.probeTicket\n const wrapped = schedulerForMode(admission.decision, mode)\n if (wrapped.kind === \"apply\") {\n await this.#ops.switchModel(sessionID, wrapped.model)\n }\n // A pin is not a tier — receipts only carry a tier for tiered routing.\n const tier = routingTier(admission.routing)\n await this.#recordReceipt({\n sessionID,\n ...(tier !== undefined ? { tier } : {}),\n decision: wrapped,\n })\n this.#promptAdmission.set(sessionID, { ...(tier !== undefined ? { tier } : {}) })\n // The prompt-admitted probe episode is the turn that follows.\n if (wrapped.kind === \"apply\" && probeTicket !== undefined) {\n this.#sessionProbeTickets.set(sessionID, probeTicket)\n }\n } catch (error) {\n // A probe admitted for this turn is lost when the admission fails (the\n // switch threw): no unit will ever carry the ticket, so release it.\n if (probeTicket !== undefined) {\n this.#health.releaseProbe(probeTicket)\n }\n // Fail-open: no marker → execution-started re-routes the unit itself.\n logFailOpen(\"admission\", error)\n await this.#recordReceipt({\n sessionID,\n decision: { kind: \"defer\", reason: \"routing-defer\", detail: \"internal error\" },\n })\n }\n }\n\n async #onExecutionStarted(\n report: EventReport & { kind: \"execution-started\" },\n settings: SettingsV1,\n ): Promise<void> {\n const opened = this.#tracker.apply({\n kind: \"execution-started\",\n sessionID: report.sessionID,\n at: report.at,\n })\n const unit = opened.unit\n // The prompt-hook marker belongs to the unit this report OPENS, so read\n // it before the close cleanup: a superseding start would otherwise\n // discard it and re-route an already-admitted turn.\n const admitted = this.#promptAdmission.get(report.sessionID)\n // A superseding start closes the previous episode — release its\n // per-unit bookkeeping (veto budget) too.\n this.#afterUnitClose(opened)\n // The prompt hook already admitted and applied for this unit — carry the\n // tier into escalation context and skip re-routing.\n if (admitted !== undefined) {\n this.#promptAdmission.delete(report.sessionID)\n this.#continuationTiers.delete(report.sessionID)\n if (admitted.tier !== undefined) this.#admissionTiers.set(unit.id, admitted.tier)\n // The prompt-time admission receipt was recorded before this unit\n // existed; adopt it so outcomes attach to it like any unit receipt.\n try {\n await this.#receipts.adoptUnit(report.sessionID, unit.id)\n } catch (error) {\n logFailOpen(\"receipts\", error)\n }\n const sessionTicket = this.#sessionProbeTickets.get(report.sessionID)\n if (sessionTicket !== undefined) {\n this.#sessionProbeTickets.delete(report.sessionID)\n this.#probeTickets.set(unit.id, sessionTicket)\n }\n return\n }\n // A probe admitted while computing a veto's recovery belongs to the\n // continuation episode that follows — the first start on the session\n // after the veto.\n const carriedTicket = this.#sessionProbeTickets.get(report.sessionID)\n if (carriedTicket !== undefined) {\n this.#sessionProbeTickets.delete(report.sessionID)\n this.#probeTickets.set(unit.id, carriedTicket)\n }\n try {\n await this.#routeAdmission(unit, settings, this.#modeFor(unit.sessionID, settings))\n } catch (error) {\n logFailOpen(\"admission\", error)\n await this.#recordReceipt({\n sessionID: unit.sessionID,\n unitID: unit.id,\n decision: { kind: \"defer\", reason: \"routing-defer\", detail: \"internal error\" },\n })\n }\n }\n\n /** Fresh admission: routing ladder → scheduler, raw (unwrapped). */\n async #admit(\n settings: SettingsV1,\n sessionID: string,\n requiredTier?: TierName,\n ): Promise<{\n routing: RoutingDecision\n decision: ReturnType<typeof admit>\n probeTicket?: ProbeTicket\n }> {\n // The agent-declared tier request (adaptive_tier tool) outranks the\n // role hints but stays below the pin (ADP-002 ladder). The note is\n // recorded fire-and-forget, so flush the store's queue before reading.\n await this.#tierRequests.flush()\n const tierRequest = this.#tierRequests.get(sessionID)\n let routedTier: TierRequest | undefined\n if (requiredTier !== undefined) {\n routedTier = { tier: requiredTier, via: \"manual-command\" as const }\n } else if (tierRequest !== null) {\n routedTier = { tier: tierRequest, via: \"manual-command\" as const }\n }\n const routing = resolveRouting({\n ...(settings.pin !== null ? { pin: settings.pin } : {}),\n ...(routedTier !== undefined ? { tierRequest: routedTier } : {}),\n // The agent-role hint is the session's last observed agent — the host\n // reports it on every model request (ADP-002 level 3).\n ...(this.#agents.has(sessionID) ? { agent: this.#agents.get(sessionID) } : {}),\n agentTiers: settings.agentTiers,\n configuredTiers: configuredTiers(settings),\n })\n const tierCandidates = routing.kind === \"tier\" ? settings.tiers[routing.tier] : []\n const inventory = await listCandidates(this.#options.model)\n // Capacity sensors are pull-based: refresh before assessing so the\n // admission decision sees current readings.\n await this.#capacity.refresh()\n const health: Record<string, Assessment> = {}\n const capacity: Record<string, CapacitySignals> = {}\n // Tickets issued by this assessment sweep (see the release below).\n const issued: ProbeTicket[] = []\n // Only the routed candidates are assessed: assess flips a due breaker to\n // half_open, and admitting a quick unit has no business touching an\n // advanced-tier resource's breaker.\n const routed = routing.kind === \"pin\" ? [routing.model] : tierCandidates\n for (const ref of routed) {\n const mapKey = schedulerHealthKey(ref)\n const assessment = this.#health.assess(refKey(ref))\n health[mapKey] = assessment\n if (assessment.kind === \"probe\") issued.push(assessment.ticket)\n const capacityAssessment = this.#capacity.assessment(refKey(ref))\n if (capacityAssessment.kind === \"estimate\") capacity[mapKey] = capacityAssessment.signals\n }\n const input: SchedulerInput = {\n routing,\n // The host exposes no per-episode demand source in the v2 wiring\n // (no tool/modality/context requirement reaches the plugin), so the\n // compatibility gate runs on availability metadata only. Documented\n // limitation — see TEST_STRATEGY \"Compatibility gate demand\".\n demand: {} satisfies Demand,\n inventory,\n tierCandidates,\n health,\n capacity,\n }\n const decision = admit(input)\n // Assess admits a half-open probe for every due breaker it touches —\n // including candidates this decision passed over (an earlier ready\n // candidate wins) or dispatched nothing for (defer/park). An\n // issued-but-undispatched probe would wedge its resource in half_open:\n // no unit ever carries the ticket. Release each unselected ticket — it\n // stays due, because a probe that never ran is no health evidence and\n // restarting its backoff would push it back on every admission.\n const selectedId = decision.kind === \"apply\" ? decision.evidence.probeId : undefined\n let probeTicket: ProbeTicket | undefined\n for (const ticket of issued) {\n if (selectedId !== undefined && ticket.id === selectedId) {\n probeTicket = ticket\n } else {\n this.#health.releaseProbe(ticket)\n }\n }\n return { routing, decision, ...(probeTicket !== undefined ? { probeTicket } : {}) }\n }\n\n async #routeAdmission(\n unit: ActiveUnit,\n settings: SettingsV1,\n mode: OperatingMode,\n ): Promise<void> {\n if (this.#manualSuppressionHolds(unit.sessionID, settings)) {\n // ADP-028: the session runs on the user's own pick (yielded to health\n // if the picked resource is quarantined) — no re-route.\n await this.#recordReceipt({\n sessionID: unit.sessionID,\n unitID: unit.id,\n decision: { kind: \"defer\", reason: \"routing-defer\", detail: \"manual-selection\" },\n })\n return\n }\n const { routing, decision, probeTicket } = await this.#admit(settings, unit.sessionID)\n // The tier the unit was admitted under is escalation context (ADP-015);\n // recorded for every tiered routing outcome (including a defer, which\n // still names the tier it could not honor).\n if (routing.kind !== \"pin\") {\n this.#admissionTiers.set(unit.id, routing.tier)\n }\n const wrapped = schedulerForMode(decision, mode)\n if (wrapped.kind === \"apply\") {\n try {\n await this.#applyModel(unit, wrapped)\n } catch (error) {\n // The episode cannot carry the probe when the switch itself failed —\n // release the ticket instead of wedging the resource half-open.\n if (probeTicket !== undefined) {\n this.#health.releaseProbe(probeTicket)\n }\n throw error\n }\n if (probeTicket !== undefined) this.#probeTickets.set(unit.id, probeTicket)\n return\n }\n if (probeTicket !== undefined) {\n // OBSERVE wraps an apply — including a probe admission — without\n // running it: no episode will ever report the ticket, so release it.\n this.#health.releaseProbe(probeTicket)\n }\n // Observe-only records the identical decision; defer and park leave the\n // episode on OpenCode's own model (admission cannot hold an episode).\n const tier = routingTier(routing)\n await this.#recordReceipt({\n sessionID: unit.sessionID,\n unitID: unit.id,\n ...(tier !== undefined ? { tier } : {}),\n decision: wrapped,\n })\n }\n\n /** CONTROL-mode application at the admission boundary; OBSERVE never reaches here. */\n async #applyModel(unit: ActiveUnit, decision: ApplyDecision): Promise<void> {\n await this.#ops.switchModel(unit.sessionID, decision.model)\n await this.#recordReceipt({\n sessionID: unit.sessionID,\n unitID: unit.id,\n ...(decision.tier !== undefined ? { tier: decision.tier } : {}),\n decision,\n })\n }\n\n // ---------- unit termination ----------\n\n async #onExecutionSucceeded(\n report: EventReport & { kind: \"execution-succeeded\" },\n ): Promise<void> {\n const unit = this.#tracker.active(report.sessionID)\n const model = unit?.model ?? this.#tracker.lastModel(report.sessionID)?.model\n const probeTicket = this.#takeProbeTicket(unit?.id)\n const closed = this.#tracker.apply({\n kind: \"execution-succeeded\",\n sessionID: report.sessionID,\n at: report.at,\n })\n this.#afterUnitClose(closed)\n if (model !== undefined) {\n this.#observeHealth({ kind: \"success\", key: refKey(model) })\n }\n if (unit !== undefined) {\n if (probeTicket !== undefined) {\n this.#reportProbeOutcome(probeTicket, { success: true })\n }\n await this.#attachOutcome(unit, { status: \"succeeded\" })\n }\n }\n\n async #onExecutionFailed(\n report: EventReport & { kind: \"execution-failed\" },\n settings: SettingsV1,\n ): Promise<void> {\n const unit = this.#tracker.active(report.sessionID)\n const model = unit?.model ?? this.#tracker.lastModel(report.sessionID)?.model\n const unitID = unit?.id\n // The tier is read before the close clears the per-unit maps.\n const admissionTier = unitID !== undefined ? this.#admissionTiers.get(unitID) : undefined\n const escalationUsed = this.#escalations.get(report.sessionID) ?? 0\n // Tool evidence is captured pre-close like the other per-unit maps.\n const toolEvidence = unitID !== undefined ? (this.#escalationEvidence.get(unitID) ?? []) : []\n const probeTicket = this.#takeProbeTicket(unitID)\n // The terminal classifies and dedups BEFORE the close: the close clears\n // the unit's attempt-failure entry, and the terminal must consult it —\n // it repeats the episode's last attempt, which an attempt signal\n // (http-response or retry hook) already counted.\n const classification = classifyFailure({\n structured: {\n type: report.error.type,\n ...(report.error.retryAfterMs !== undefined\n ? { retryAfterMs: report.error.retryAfterMs }\n : {}),\n },\n status: report.error.status,\n // Terminal classification may use the bounded textual last resort\n // (content-policy rejections arrive as free text, not error types).\n // The retry hook deliberately omits text: it must stay conservative.\n text: report.error.message,\n })\n const countTerminal = this.#countTerminalFailure(unitID, classification.category)\n const closed = this.#tracker.apply({\n kind: \"execution-failed\",\n sessionID: report.sessionID,\n at: report.at,\n error: report.error,\n })\n this.#afterUnitClose(closed)\n if (model !== undefined && countTerminal) {\n this.#observeHealth(failureEvent(refKey(model), classification))\n }\n if (unit !== undefined) {\n await this.#attachOutcome(unit, { status: \"failed\", category: classification.category })\n if (probeTicket !== undefined) {\n this.#reportProbeOutcome(probeTicket, { success: false, category: classification.category })\n }\n }\n await this.#escalateOnFailure(\n report,\n unitID,\n model,\n classification,\n admissionTier,\n escalationUsed,\n toolEvidence,\n settings,\n )\n }\n\n /**\n * Escalation targets must be usable: the scheduler contract hands\n * planEscalation \"already gated\" resources, so the wiring filters the next\n * tier's configured refs to candidates that exist in the inventory, pass\n * the compatibility gate, are not health-blocked, and differ from the\n * model that just failed. Evaluated WITHOUT probe admission (evaluate,\n * not assess) — gating an escalation must never flip a breaker or strand\n * an unowned ticket.\n */\n async #eligibleEscalationTargets(\n refs: readonly ModelRef[],\n failed: ModelRef,\n ): Promise<ModelRef[]> {\n let inventory: readonly CandidateModel[]\n try {\n inventory = await listCandidates(this.#options.model)\n } catch (error) {\n // No inventory means no verifiable target: escalating would switch\n // blind, so the budget is kept instead of burned.\n logFailOpen(\"escalation\", error)\n return []\n }\n const eligible: ModelRef[] = []\n // Compared by resource key: the host reports base-model calls as variant\n // \"default\", which is the same resource as the bare tier entry.\n const failedID = resourceKeyID(refKey(failed))\n for (const ref of refs) {\n if (resourceKeyID(refKey(ref)) === failedID) continue\n const candidate = inventory.find((entry) => sameModelRef(candidateRef(entry), ref))\n if (candidate === undefined) continue\n if (!checkCompatibility(candidate, {} satisfies Demand).compatible) continue\n if (this.#health.evaluate(refKey(ref)).kind !== \"available\") continue\n eligible.push(ref)\n }\n return eligible\n }\n\n /**\n * Escalation on a terminally failed unit (ADP-015..017): structured\n * capability evidence only, same-model variant first then next tier,\n * finite budget. Control continues the interrupted work on the escalated\n * resource; Observe records the identical decision; defer receipts stand.\n */\n async #escalateOnFailure(\n report: EventReport & { kind: \"execution-failed\" },\n unitID: string | undefined,\n model: ModelRef | undefined,\n classification: FailureClassification,\n admissionTier: TierName | undefined,\n escalationUsed: number,\n toolEvidence: readonly EscalationEvidence[],\n settings: SettingsV1,\n ): Promise<void> {\n if (\n unitID === undefined ||\n model === undefined ||\n admissionTier === undefined ||\n !CAPABILITY_EVIDENCE_CATEGORIES.includes(classification.category)\n ) {\n return\n }\n const next = nextTier(admissionTier)\n const evidence: EscalationEvidence[] = [\n ...toolEvidence,\n { kind: \"repeated-failure\", detail: classification.category },\n ]\n const nextResources = next !== undefined ? settings.tiers[next] : []\n const eligible = await this.#eligibleEscalationTargets(nextResources, model)\n const plan = planEscalation({\n currentModel: model,\n currentTier: admissionTier,\n nextTierResources: eligible,\n evidence,\n budget: { used: escalationUsed, max: MAX_ESCALATIONS_PER_TASK },\n })\n const wrapped = schedulerForMode(plan, this.#modeFor(report.sessionID, settings))\n if (wrapped.kind === \"escalate\") {\n this.#escalations.set(report.sessionID, escalationUsed + 1)\n // Recorded unit-less on purpose: the receipt describes the CONTINUATION\n // decision, so the continuation unit adopts it and its outcome attaches\n // here (the failed unit's own outcome attaches to its apply receipt).\n await this.#recordReceipt({\n sessionID: report.sessionID,\n tier: wrapped.tier,\n decision: wrapped,\n })\n // Continue the interrupted work on the escalated resource; the unit is\n // terminally failed, so an ops failure is only logged (never parked).\n try {\n await this.#ownRecovery(\n report.sessionID,\n wrapped.target,\n wrapped.tier,\n () => this.#modeFor(report.sessionID, settings) !== \"off\",\n )\n } catch (error) {\n if (!(error instanceof RecoveryAbortedError)) logFailOpen(\"escalation-ops\", error)\n }\n return\n }\n await this.#recordReceipt({\n sessionID: report.sessionID,\n tier: plan.kind === \"escalate\" ? plan.tier : admissionTier,\n decision: wrapped,\n })\n }\n\n async #onExecutionInterrupted(\n report: EventReport & { kind: \"execution-interrupted\" },\n ): Promise<void> {\n const reason = interruptReason(report.reason)\n if (reason === undefined) {\n logFailOpen(\n \"interrupt\",\n new Error(`unknown interruption reason: ${report.reason.slice(0, 32)}`),\n )\n return\n }\n const unit = this.#tracker.active(report.sessionID)\n const probeTicket = this.#takeProbeTicket(unit?.id)\n // An interruption while a recovery is pending on this session aborts it\n // at its post-settle guard (the pending recovery's decision predates the\n // interruption and must not act after it).\n if (this.#recoveryPending.has(report.sessionID)) {\n this.#recoveryInterrupted.add(report.sessionID)\n }\n const closed = this.#tracker.apply({\n kind: \"execution-interrupted\",\n sessionID: report.sessionID,\n at: report.at,\n reason,\n })\n this.#afterUnitClose(closed)\n // User and host interruptions never produce health evidence (the\n // classifier maps them outside the infrastructure vocabulary).\n if (unit !== undefined) {\n // An interrupted probe is no evidence about resource health: re-arm the\n // breaker's same window rather than doubling it.\n if (probeTicket !== undefined) {\n this.#reportProbeOutcome(probeTicket, { success: false, category: \"user_cancelled\" })\n }\n await this.#attachOutcome(unit, { status: \"interrupted\", reason })\n }\n }\n\n /**\n * One probe ticket's resolution at its episode's termination. A probe that\n * ends without a reported outcome (superseded, lost) would wedge the\n * resource in half_open, so the close cleanup reports those as\n * interruptions — re-arming the same backoff window, never doubling it.\n */\n #reportProbeOutcome(ticket: ProbeTicket, outcome: ProbeOutcome): void {\n // reportProbe is total and synchronous; validation failures (stale or\n // unknown ticket) are reported by its boolean return, not by throwing.\n this.#health.reportProbe(ticket, outcome)\n }\n\n /**\n * One attempt's failure evidence (http-response event or retry hook):\n * returns whether THIS observation is the attempt's first count.\n */\n #countAttemptFailure(\n unitID: string | undefined,\n source: \"http\" | \"retry\",\n category: FailureCategory,\n ): boolean {\n if (unitID === undefined) return true\n const ev = this.#attemptFailures.get(unitID) ?? {}\n if (source === \"http\" ? ev.retry === category : ev.http === category) {\n // The other host signal already counted this attempt: consume it.\n const closed = { ...ev, http: undefined, retry: undefined, closed: category }\n this.#attemptFailures.set(unitID, closed)\n return false\n }\n this.#attemptFailures.set(\n unitID,\n source === \"http\" ? { ...ev, http: category } : { ...ev, retry: category },\n )\n return true\n }\n\n /**\n * The terminal `execution-failed` repeats the episode's last attempt: it\n * counts only when the last attempt left no live evidence (e.g. a\n * capability failure that never produced an HTTP response or retry hook).\n */\n #countTerminalFailure(unitID: string | undefined, category: FailureCategory): boolean {\n if (unitID === undefined) return true\n const ev = this.#attemptFailures.get(unitID) ?? {}\n if (ev.http === category) {\n this.#attemptFailures.set(unitID, { ...ev, http: undefined })\n return false\n }\n if (ev.retry === category) {\n this.#attemptFailures.set(unitID, { ...ev, retry: undefined })\n return false\n }\n if (ev.closed === category) {\n this.#attemptFailures.set(unitID, { ...ev, closed: undefined })\n return false\n }\n this.#attemptFailures.set(unitID, { ...ev, closed: category })\n return true\n }\n\n /**\n * Hands a closing unit's probe ticket to its explicit outcome reporter.\n * Taken BEFORE the close: #afterUnitClose treats any ticket still held as\n * lost and re-opens the breaker, which would turn a probe's real outcome\n * into a stale report.\n */\n #takeProbeTicket(unitID: string | undefined): ProbeTicket | undefined {\n if (unitID === undefined) return undefined\n const ticket = this.#probeTickets.get(unitID)\n this.#probeTickets.delete(unitID)\n return ticket\n }\n\n /** Bounded per-unit bookkeeping once the tracker closed the unit. */\n #afterUnitClose(closed: ApplyResult): void {\n const unitID = closedUnitID(closed)\n if (unitID !== undefined) {\n this.#vetoes.delete(unitID)\n this.#admissionTiers.delete(unitID)\n this.#escalationEvidence.delete(unitID)\n const leftover = this.#probeTickets.get(unitID)\n if (leftover !== undefined) {\n // The explicit outcome reporters take their ticket before this\n // cleanup; reaching here means the unit ended without one\n // (superseded or lost).\n this.#reportProbeOutcome(leftover, { success: false, category: \"user_cancelled\" })\n this.#probeTickets.delete(unitID)\n }\n }\n if (closed.kind === \"opened\" || closed.kind === \"closed\") {\n const unitID = closedUnitID(closed)\n if (unitID !== undefined) {\n this.#attemptFailures.delete(unitID)\n }\n // Per-session flags for a unit that will never open again must not\n // leak: a stale continuation mark would swallow a real user prompt's\n // admission; a stale admission marker would skip routing. The guard\n // keeps the wipe out of an in-flight continuation's mark window (its\n // own close events are pumped concurrently with the mark).\n const sid = closed.unit.sessionID\n // A continuation tier intent pins the marker: the failed unit's close\n // event can arrive after the continuation's prompt hook set it, and\n // wiping then would re-route the continuation unit.\n if ((this.#continuationsInFlight.get(sid) ?? 0) === 0 && !this.#continuationTiers.has(sid)) {\n this.#continuationPending.delete(sid)\n this.#promptAdmission.delete(sid)\n }\n }\n }\n\n // ---------- http evidence ----------\n\n async #onHttpResponse(report: EventReport & { kind: \"http-response\" }): Promise<void> {\n if (report.capturedHeaders !== undefined) {\n this.#codex.observe(report.capturedHeaders, this.#options.clock())\n await this.#syncCapacityMirror()\n }\n if (report.status < 400) return\n const unit = this.#tracker.active(report.sessionID)\n const model = unit?.model ?? this.#tracker.lastModel(report.sessionID)?.model\n if (model === undefined) return\n const classification = classifyFailure({\n status: report.status,\n ...(report.retryAfterHeader !== undefined\n ? { headers: { \"retry-after\": report.retryAfterHeader } }\n : {}),\n })\n // The retry hook classifies the same request for the host's retry\n // decision; counting both would double every attempt (ADP-019).\n if (this.#countAttemptFailure(unit?.id, \"http\", classification.category)) {\n this.#observeHealth(failureEvent(refKey(model), classification))\n }\n }\n\n // ---------- retry hook ----------\n\n async #handleRetry(input: RetryHookInput, settings: SettingsV1): Promise<void> {\n const classification = classifyFailure({\n structured: {\n type: input.error.type,\n ...(input.error.retryAfterMs !== undefined\n ? { retryAfterMs: input.error.retryAfterMs }\n : {}),\n },\n status: input.error.status,\n })\n const unitID = this.#tracker.active(input.sessionID)?.id\n // The pumped http-response event describes the same failed request;\n // counting both would double every attempt (ADP-019).\n if (this.#countAttemptFailure(unitID, \"retry\", classification.category)) {\n this.#observeHealth(failureEvent(refKey(input.model), classification))\n }\n\n // Recovery = fresh admission; the failed resource is already health-blocked.\n let recovery: RecoveryOption = { kind: \"none\" }\n let routingTier: TierName | undefined\n let probeTicket: ProbeTicket | undefined\n let admission: ReturnType<typeof admit> | undefined\n try {\n const {\n routing,\n decision,\n probeTicket: ticket,\n } = await this.#admit(settings, input.sessionID)\n routingTier = routing.kind === \"pin\" ? undefined : routing.tier\n if (decision.kind === \"apply\") {\n admission = decision\n recovery = {\n kind: \"switch\",\n model: decision.model,\n ...(decision.evidence.probeId !== undefined\n ? { probeId: decision.evidence.probeId }\n : {}),\n }\n probeTicket = ticket\n }\n } catch (error) {\n logFailOpen(\"recovery\", error)\n }\n\n const vetoesUsed = unitID !== undefined ? (this.#vetoes.get(unitID) ?? 0) : 0\n const core = decideRetry({\n classification,\n failingModel: input.model,\n native: input.decision,\n recovery,\n vetoesUsed,\n })\n const wrapped = retryForMode(core, this.#modeFor(input.sessionID, settings))\n if (wrapped.kind !== \"veto\") {\n // OBSERVE (and a declined veto) never runs the recovery episode, so an\n // admitted probe has no continuation to report it — release it here or\n // the resource wedges half-open.\n if (probeTicket !== undefined) {\n this.#health.releaseProbe(probeTicket)\n }\n return\n }\n input.decision = { retry: false }\n if (unitID !== undefined) {\n this.#vetoes.set(unitID, vetoesUsed + 1)\n }\n // A probe admitted by this recovery belongs to the continuation episode\n // that ownRecovery is about to start; its termination reports the probe.\n if (probeTicket !== undefined) {\n // The session holds one pending probe slot. A still-pending older\n // ticket belongs to a recovery whose continuation has not started (its\n // episode can no longer claim this slot) — release it before replacing.\n const stale = this.#sessionProbeTickets.get(input.sessionID)\n if (stale !== undefined && stale !== probeTicket) {\n this.#health.releaseProbe(stale)\n }\n this.#sessionProbeTickets.set(input.sessionID, probeTicket)\n }\n // The continuation episode is not re-admitted — its prompt hook is\n // consumed as an owned continuation — so the recovery admission is\n // recorded here, unit-less; the unit that opens next adopts this receipt\n // and carries the outcome.\n // A veto implies the admission was an apply: the recovery option exists\n // only when the fresh admission selected a resource, so the assertion\n // cannot be undefined on this path.\n await this.#recordReceipt({\n sessionID: input.sessionID,\n tier: routingTier,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- a veto implies the admission was an apply (the recovery exists only then)\n decision: admission!,\n })\n void this.#ownRecovery(\n input.sessionID,\n wrapped.model,\n routingTier,\n () => this.#modeFor(input.sessionID, settings) !== \"off\",\n )\n .then(() => undefined)\n .catch(async (error: unknown) => {\n if (error instanceof RecoveryAbortedError) {\n // The user steered away (interruption / OFF) during the settle: the\n // veto stands, but no continuation episode will ever carry the\n // probe it admitted — release it instead of wedging half-open.\n if (\n probeTicket !== undefined &&\n this.#sessionProbeTickets.get(input.sessionID) === probeTicket\n ) {\n this.#sessionProbeTickets.delete(input.sessionID)\n this.#health.releaseProbe(probeTicket)\n }\n return\n }\n logFailOpen(\"recovery-ops\", error)\n // The recovery rejected before (or while) delivering its continuation\n // prompt, so no unit will ever carry the probe it admitted — release\n // it instead of wedging the resource half-open.\n if (\n probeTicket !== undefined &&\n this.#sessionProbeTickets.get(input.sessionID) === probeTicket\n ) {\n this.#sessionProbeTickets.delete(input.sessionID)\n this.#health.releaseProbe(probeTicket)\n }\n if (unitID === undefined || routingTier === undefined) return\n try {\n await this.#parked.park({\n id: unitID,\n sessionID: input.sessionID,\n tier: routingTier,\n reason: \"all-blocked\",\n detail: \"continuation failed\",\n parkedAt: this.#options.clock(),\n })\n } catch (parkError) {\n logFailOpen(\"parked\", parkError)\n }\n })\n }\n\n /**\n * Owned horizontal recovery: settle → switch → continue from session\n * state. `tier` is the continuation unit's routing tier — recorded so the\n * continuation's prompt hook re-arms the admission marker (the unit must\n * not be re-routed: that would discard the recovery/escalation decision).\n */\n async #ownRecovery(\n sessionID: string,\n model: ModelRef,\n tier: TierName | undefined,\n stillValid: () => boolean,\n ): Promise<void> {\n if (tier !== undefined) this.#continuationTiers.set(sessionID, tier)\n // The guard window opens before the first await so an interrupt pumped\n // during the admission race is still seen.\n this.#recoveryPending.add(sessionID)\n try {\n const alive = await this.#isSessionAlive(sessionID)\n const recovery: RecoveryOption = { kind: \"switch\", model }\n const action = planContinuation({\n recovery,\n continuationPossible: alive,\n })\n // executeContinuation settles first; the supervisor settles here so the\n // post-settle guard (mode OFF, user interruption) can abort before any\n // switch or prompt — the settle is the only step that can take\n // unbounded time, and a decision made before it may be stale after it.\n await this.#ops.settle(sessionID)\n if (!stillValid() || this.#recoveryInterrupted.delete(sessionID)) {\n throw new RecoveryAbortedError(sessionID)\n }\n // Already settled above; the action's own settle is a no-op.\n await executeContinuation({\n sessionID,\n action,\n ops: { ...this.#ops, settle: () => Promise.resolve() },\n })\n } catch (error) {\n // The continuation prompt never reached the host, so no unit will open\n // to consume the tier intent — drop it or it would pin the marker\n // wipes and mislabel a later user prompt's admission.\n if (tier !== undefined) this.#continuationTiers.delete(sessionID)\n throw error\n } finally {\n this.#recoveryPending.delete(sessionID)\n }\n }\n\n // ---------- parked-work resume (safe boundary: idle) ----------\n\n async #onIdle(settings: SettingsV1): Promise<void> {\n const records = this.#parked.list()\n // Override holders join the alive sweep: a dead session's override is\n // pruned here (its per-session steering is worthless once the session is\n // gone), in the same sweep that clears the other per-session maps.\n const overrideIDs = this.#sessionModes.snapshot().map((record) => record.sessionID)\n const tierRequestIDs = this.#tierRequests.snapshot().map((record) => record.sessionID)\n if (records.length === 0 && overrideIDs.length === 0 && tierRequestIDs.length === 0) return\n // OFF sessions are not supervised: their parked records are neither\n // dropped nor resumed, and no alive probe runs for them.\n const supervised = new Set(\n records\n .map((record) => record.sessionID)\n .filter((sessionID) => this.#modeFor(sessionID, settings) !== \"off\"),\n )\n const alive = new Map<string, boolean>()\n for (const sessionID of new Set([...supervised, ...overrideIDs])) {\n alive.set(sessionID, await this.#isSessionAlive(sessionID))\n }\n // Tier-request holders join the alive sweep too: a dead session's sticky\n // tier request dies with its session, like the other per-session maps.\n for (const sessionID of tierRequestIDs) {\n if (!alive.has(sessionID)) alive.set(sessionID, await this.#isSessionAlive(sessionID))\n }\n const plan = selectResumable(records, {\n tierConfigured: (tier) => configuredTiers(settings).includes(tier),\n sessionAlive: (sessionID) => alive.get(sessionID) === true,\n })\n for (const dropped of plan.drop) {\n if (this.#modeFor(dropped.sessionID, settings) === \"off\") continue\n await this.#dropParked(dropped)\n }\n // Tier requests die with their session, like the other per-session maps.\n // The fire-and-forget note means the queue may still hold writes; the\n // serialized set applies after them. A write failure just leaves the\n // record (fail-open — it will die with the session on the next sweep).\n for (const sessionID of tierRequestIDs) {\n if (alive.get(sessionID) === false) {\n try {\n await this.#tierRequests.set(sessionID, null)\n } catch (error) {\n logFailOpen(\"tier-requests\", error)\n }\n }\n }\n // At most ONE continuation per session per sweep: prompting a session\n // with an active unit would supersede the user's in-flight episode (not\n // a safe boundary), and several back-to-back continuation prompts could\n // redo work an earlier one already completed (ADP-023).\n const attempted = new Set<string>()\n for (const record of plan.attempt) {\n if (this.#modeFor(record.sessionID, settings) === \"off\") continue\n if (this.#tracker.active(record.sessionID) !== undefined) continue\n if (attempted.has(record.sessionID)) continue\n attempted.add(record.sessionID)\n await this.#resumeAttempt(record, settings)\n }\n for (const [sessionID, isAlive] of alive) {\n if (!isAlive) {\n this.#continuationTiers.delete(sessionID)\n this.#promptAdmission.delete(sessionID)\n this.#continuationPending.delete(sessionID)\n this.#escalations.delete(sessionID)\n if (this.#sessionModes.get(sessionID) !== null) {\n try {\n await this.#sessionModes.set(sessionID, null)\n } catch (error) {\n logFailOpen(\"session-modes\", error)\n }\n }\n }\n }\n }\n\n async #dropParked(record: ParkedRecord): Promise<void> {\n try {\n await this.#parked.resume(record.id)\n } catch (error) {\n logFailOpen(\"parked\", error)\n }\n }\n\n /** One parked record's fresh routing attempt at the idle boundary. */\n async #resumeAttempt(record: ParkedRecord, settings: SettingsV1): Promise<void> {\n // The parked session resumes under ITS effective mode, not the idle\n // report's session's mode.\n const mode = this.#modeFor(record.sessionID, settings)\n let decision: ReturnType<typeof admit>\n let probeTicket: ProbeTicket | undefined\n try {\n const admission = await this.#admit(settings, record.sessionID, record.tier)\n decision = admission.decision\n probeTicket = admission.probeTicket\n } catch (error) {\n logFailOpen(\"resume\", error)\n return\n }\n if (mode === \"observe\") {\n if (probeTicket !== undefined) this.#health.releaseProbe(probeTicket)\n await this.#recordReceipt({\n sessionID: record.sessionID,\n unitID: record.id,\n tier: record.tier,\n decision: { kind: \"observe-only\", would: decision },\n })\n return\n }\n if (decision.kind !== \"apply\") {\n // Still no usable resource (or the routing deferred) — stay parked. The\n // admission held no probe ticket: #admit keeps a ticket only for apply\n // decisions and releases every other one itself.\n await this.#recordReceipt({\n sessionID: record.sessionID,\n unitID: record.id,\n tier: record.tier,\n decision,\n })\n return\n }\n const popped = await this.#popParked(record)\n if (popped === undefined) {\n if (probeTicket !== undefined) this.#health.releaseProbe(probeTicket)\n return\n }\n // The resume continuation is not re-admitted (owned continuation), so\n // the freshly routed admission is recorded here, unit-less; the unit\n // that opens next adopts it and carries the outcome.\n await this.#recordReceipt({\n sessionID: record.sessionID,\n tier: record.tier,\n decision,\n })\n // The resume continuation is an owned recovery: settle first, apply the\n // freshly routed model, then prompt — the episode's first LLM call must\n // not hit the model the work was parked away from.\n try {\n if (probeTicket !== undefined) this.#sessionProbeTickets.set(record.sessionID, probeTicket)\n await this.#ownRecovery(\n record.sessionID,\n decision.model,\n record.tier,\n // The parked session's own effective mode and its still-open unit\n // window are re-checked after the settle; a session that gained an\n // active unit must not be prompted (not a safe boundary).\n () =>\n this.#modeFor(record.sessionID, settings) !== \"off\" &&\n this.#tracker.active(record.sessionID) === undefined,\n )\n } catch (error) {\n if (\n probeTicket !== undefined &&\n this.#sessionProbeTickets.get(record.sessionID) === probeTicket\n ) {\n this.#sessionProbeTickets.delete(record.sessionID)\n this.#health.releaseProbe(probeTicket)\n }\n if (!(error instanceof RecoveryAbortedError)) logFailOpen(\"resume\", error)\n await this.#rePark(record)\n }\n }\n\n async #popParked(record: ParkedRecord): Promise<ParkedRecord | undefined> {\n try {\n return await this.#parked.resume(record.id)\n } catch (error) {\n logFailOpen(\"parked\", error)\n return undefined\n }\n }\n\n async #rePark(record: ParkedRecord): Promise<void> {\n try {\n await this.#parked.park({\n ...record,\n attempts: (record.attempts ?? 0) + 1,\n parkedAt: this.#options.clock(),\n })\n } catch (error) {\n logFailOpen(\"parked\", error)\n }\n }\n\n // ---------- shared helpers ----------\n\n async #isSessionAlive(sessionID: string): Promise<boolean> {\n try {\n await this.#options.session.get({ sessionID })\n return true\n } catch (error) {\n // The host rejects `session.get` for a missing session with a plain\n // error and exposes no typed status; only a definitive not-found\n // counts as dead. Anything else is treated as alive (fail open toward\n // keeping durable user state, ADP-031): a transient storage or host\n // error must never prune parked work, mode overrides, or tier\n // requests — the next sweep re-probes instead.\n return !/not found/i.test(String(error))\n }\n }\n\n async #recordReceipt(input: Omit<ReceiptInput, \"at\">): Promise<void> {\n try {\n await this.#receipts.record({ at: this.#options.clock(), ...input })\n } catch (error) {\n logFailOpen(\"receipts\", error)\n }\n }\n\n async #attachOutcome(unit: ActiveUnit, outcome: ReceiptOutcome): Promise<void> {\n try {\n await this.#receipts.attachOutcome({ sessionID: unit.sessionID, unitID: unit.id }, outcome)\n } catch (error) {\n logFailOpen(\"receipts\", error)\n }\n }\n\n #observeHealth(event: HealthEvent): void {\n this.#health.observe(event)\n // Persist the record mirror fire-and-forget: the status surface reads\n // persisted records so a serving instance without the event-pump hooks\n // still reports true health. Failures are fail-open (ADP-031).\n const records: readonly ResourceRecord[] = this.#health.snapshot()\n void this.#healthRecords.replace(records).catch((error: unknown) => {\n logFailOpen(\"health\", error)\n })\n }\n\n /**\n * Persist the capacity mirror after a passive observation (same instance\n * split rationale as the health mirror): the status surface reads persisted\n * readings so a serving instance without the event-pump hooks still reports\n * sensed capacity. Failures are fail-open (ADP-031).\n */\n async #syncCapacityMirror(): Promise<void> {\n try {\n await this.#capacity.refresh()\n const entries: PersistedCapacityReading[] = []\n for (const sensor of this.#capacity.snapshot()) {\n if (sensor.latest !== null) {\n entries.push({ key: sensor.resource, reading: sensor.latest })\n }\n }\n await this.#capacityStore.replace(entries)\n } catch (error) {\n logFailOpen(\"capacity\", error)\n }\n }\n}\n\n/** A pin is not a tier — receipts only carry a tier for tiered routing. */\nfunction routingTier(routing: RoutingDecision): TierName | undefined {\n return routing.kind === \"pin\" ? undefined : routing.tier\n}\n\n/** The unit a tracker result closed or superseded, if any. */\nfunction closedUnitID(result: ApplyResult): string | undefined {\n switch (result.kind) {\n case \"closed\":\n return result.unit.id\n case \"opened\":\n return result.superseded?.id\n default:\n return undefined\n }\n}\n\n/** ModelRef for a normalized candidate. */\nfunction candidateRef(candidate: {\n providerID: string\n modelID: string\n variant?: string | undefined\n}): ModelRef {\n return {\n providerID: candidate.providerID,\n id: candidate.modelID,\n ...(candidate.variant !== undefined ? { variant: candidate.variant } : {}),\n }\n}\n\n/** ResourceKey for a model ref (no account level is observable in v1). */\nfunction refKey(ref: ModelRef): ResourceKey {\n // The host reports base-model calls with variant \"default\" (verified on\n // 2.2.5), while the inventory enumerates the bare model plus its named\n // variants. Taken literally, a \"default\" key would orphan every\n // unvarianted failure record on a key no admission ever assesses — health\n // and breaker state would be invisible to routing.\n const variant = ref.variant === \"default\" ? undefined : ref.variant\n return {\n providerID: ref.providerID,\n modelID: ref.id,\n ...(variant !== undefined ? { variantID: variant } : {}),\n }\n}\n\n/** Health failure event from a classification (bounded structured evidence). */\nfunction failureEvent(key: ResourceKey, classification: FailureClassification): HealthEvent {\n return {\n kind: \"failure\",\n key,\n category: classification.category,\n definitive: classification.definitive,\n ...(classification.retry.retryAfterMs !== undefined\n ? { retryAfterMs: classification.retry.retryAfterMs }\n : {}),\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/supervisor/types.ts"],"names":[],"mappings":"AA4CA,sEAAsE;AACtE,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/supervisor/types.ts"],"names":[],"mappings":"AA4CA,sEAAsE;AACtE,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAA","sourcesContent":["/**\n * Supervisor wiring types (ADP-029/031). Structural mirrors of the host\n * surfaces the supervisor consumes, so the supervisor never imports\n * `@opencode/plugin` (architecture rule: only the adapters touch the host\n * package) while the real host domains remain directly assignable — method\n * parameters are bivariant, so `ctx.session` satisfies the mirror.\n */\nimport type { ModelRef } from \"../core/work-unit/types.js\"\nimport type { SessionOpsSource } from \"../adapters/opencode/session-ops.js\"\nimport type { ModelSource } from \"../adapters/opencode/inventory.js\"\nimport type { StorageSource } from \"../adapters/opencode/storage.js\"\n\n/** The host session surface the supervisor actually uses. */\nexport interface SupervisorSessionSource extends SessionOpsSource {\n get(input: { sessionID: string }): Promise<unknown>\n}\n\n/**\n * Structural mirror of the host `retry` hook input. The retry handler OWNS\n * `decision` — a veto assigns `{ retry: false }` (host hooks mutate their\n * inputs; callbacks never return replacements).\n */\nexport interface RetryHookInput {\n readonly sessionID: string\n readonly model: ModelRef\n readonly error: {\n readonly type: string\n readonly message: string\n readonly status?: number | undefined\n readonly retryAfterMs?: number | undefined\n }\n readonly attempt: number\n decision: { retry: false } | { retry: true; delay: number }\n}\n\n/** Everything the supervisor needs from the host. */\nexport interface SupervisorOptions {\n readonly session: SupervisorSessionSource\n readonly model: ModelSource\n readonly storage: StorageSource\n /** Epoch-ms clock (injected so tests are deterministic). */\n readonly clock: () => number\n}\n\n/** The Codex header sensor watches ChatGPT/Codex-backed resources. */\nexport const CODEX_PROVIDER_ID = \"openai\"\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/supervisor/view.ts"],"names":[],"mappings":"AAAA,qEAAqE;AAErE,6DAA6D;AAC7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAA"}
|
|
1
|
+
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/supervisor/view.ts"],"names":[],"mappings":"AAAA,qEAAqE;AAErE,6DAA6D;AAC7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAA","sourcesContent":["/** Product bounds for the control-surface views (not user knobs). */\n\n/** Maximum receipts returned by the bounded receipt view. */\nexport const RECEIPTS_VIEW_LIMIT = 50\n"]}
|
package/dist/tui.d.ts
CHANGED
package/dist/tui.js
CHANGED
|
@@ -42,15 +42,19 @@ export default define({
|
|
|
42
42
|
id: PLUGIN_ID,
|
|
43
43
|
setup(context) {
|
|
44
44
|
const client = context.client.rpc(adaptiveRpc);
|
|
45
|
+
// RPC handlers resolve per location: a location-less call never reaches a
|
|
46
|
+
// project-local plugin's handlers ("RPC is unavailable", verified live in
|
|
47
|
+
// the sibling @coool plugins), so every call carries the TUI's location.
|
|
48
|
+
const at = () => ({ location: context.location });
|
|
45
49
|
const api = {
|
|
46
|
-
settings: () => client["settings.get"](),
|
|
47
|
-
setSettings: (patch) => client["settings.set"](patch),
|
|
48
|
-
status: () => client["status.get"](),
|
|
49
|
-
receipts: () => client["receipts.list"](),
|
|
50
|
-
sessionMode: (sessionID) => client["session-mode.get"]({ sessionID }).then((out) => out.mode),
|
|
51
|
-
setSessionMode: (sessionID, mode) => client["session-mode.set"]({ sessionID, mode }),
|
|
52
|
-
tierRequest: (sessionID) => client["tier-request.get"]({ sessionID }).then((out) => out.tier),
|
|
53
|
-
setTierRequest: (sessionID, tier) => client["tier-request.set"]({ sessionID, tier }),
|
|
50
|
+
settings: () => client["settings.get"](undefined, at()),
|
|
51
|
+
setSettings: (patch) => client["settings.set"](patch, at()),
|
|
52
|
+
status: () => client["status.get"](undefined, at()),
|
|
53
|
+
receipts: () => client["receipts.list"](undefined, at()),
|
|
54
|
+
sessionMode: (sessionID) => client["session-mode.get"]({ sessionID }, at()).then((out) => out.mode),
|
|
55
|
+
setSessionMode: (sessionID, mode) => client["session-mode.set"]({ sessionID, mode }, at()),
|
|
56
|
+
tierRequest: (sessionID) => client["tier-request.get"]({ sessionID }, at()).then((out) => out.tier),
|
|
57
|
+
setTierRequest: (sessionID, tier) => client["tier-request.set"]({ sessionID, tier }, at()),
|
|
54
58
|
};
|
|
55
59
|
const view = {
|
|
56
60
|
select: (options) => context.ui.dialog.select(options),
|
|
@@ -60,7 +64,7 @@ export default define({
|
|
|
60
64
|
// then reopens the browser at the new offset. The host resolves its
|
|
61
65
|
// own select promise undefined on the clear() — resolving our
|
|
62
66
|
// promise first-come means the action result wins.
|
|
63
|
-
new Promise((resolve) => {
|
|
67
|
+
new Promise((resolve, reject) => {
|
|
64
68
|
void context.ui.dialog
|
|
65
69
|
.select({
|
|
66
70
|
title: spec.title,
|
|
@@ -77,7 +81,7 @@ export default define({
|
|
|
77
81
|
})
|
|
78
82
|
.then((picked) => {
|
|
79
83
|
resolve({ picked, action: undefined });
|
|
80
|
-
});
|
|
84
|
+
}, reject);
|
|
81
85
|
}),
|
|
82
86
|
confirm: (options) => context.ui.dialog.confirm(options),
|
|
83
87
|
alert: (options) => context.ui.dialog.alert(options),
|
package/dist/tui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jsxImportSource @opentui/solid */\n// The pragma pins the JSX runtime for this file. The host compiles plugin\n// sources in a cache dir where its loader's tsconfig lookup finds nothing and\n// its default (react/jsx-runtime) fails to resolve there (empirical, sibling\n// @coool plugins); our own tsc build reads the same pragma, so dist/tui.js\n// imports @opentui/solid/jsx-runtime — the renderer the slot render runs on.\n/**\n * TUI entrypoint (ADP-033): registers the `/adaptive` slash command and\n * drives the dialog-based flows through typed RPC, plus the footer status\n * chip rendered through host UI slots. The TUI is a thin view — no local\n * settings state beyond the chip's reactive mode mirror; the server stays\n * the single source of truth. This file is the repo's one JSX surface.\n */\nimport { define } from \"@opencode/plugin/tui/plugin\"\nimport type { Context } from \"@opencode/plugin/tui/plugin\"\nimport { TextAttributes } from \"@opentui/core\"\nimport { createStore } from \"solid-js/store\"\nimport { PLUGIN_ID } from \"./plugin-id.js\"\nimport { adaptiveRpc } from \"./rpc/definition.js\"\nimport type { OperatingMode } from \"./core/scheduler/types.js\"\nimport { parseMode } from \"./state/settings/index.js\"\nimport { runAdaptive } from \"./ui/tui/controller.js\"\nimport type { AdaptiveApi, AdaptiveView } from \"./ui/tui/controller.js\"\nimport type { SelectOption } from \"./ui/tui/options.js\"\nimport { errorText } from \"./ui/tui/options.js\"\nimport type { ModelSummary } from \"./ui/tui/tiers.js\"\n\n/** Footer chip appearance: label plus foreground color (null = theme default). */\nexport interface Chip {\n readonly text: string\n readonly fg: string | null\n}\n\n/**\n * Label/color mapping for the footer chip. Pure so the mapping is testable\n * without a JSX runtime: active is green (supervision engaged), observe is\n * the neutral default (visible but calm), off is a soft red — noticeable,\n * but calmer than full-brightness ANSI red, which reads as an error.\n */\nexport function chipFor(mode: OperatingMode): Chip {\n switch (mode) {\n case \"active\":\n return { text: \"Adaptive · active\", fg: \"green\" }\n case \"observe\":\n return { text: \"Adaptive · observe\", fg: null }\n case \"off\":\n return { text: \"Adaptive · off\", fg: \"#e57373\" }\n }\n}\n\nconst BOOT_FETCH_RETRIES = 5\nconst BOOT_FETCH_RETRY_MS = 2000\n\nexport default define({\n id: PLUGIN_ID,\n setup(context: Context) {\n const client = context.client.rpc(adaptiveRpc)\n // RPC handlers resolve per location: a location-less call never reaches a\n // project-local plugin's handlers (\"RPC is unavailable\", verified live in\n // the sibling @coool plugins), so every call carries the TUI's location.\n const at = () => ({ location: context.location })\n const api: AdaptiveApi = {\n settings: () => client[\"settings.get\"](undefined, at()),\n setSettings: (patch) => client[\"settings.set\"](patch, at()),\n status: () => client[\"status.get\"](undefined, at()),\n receipts: () => client[\"receipts.list\"](undefined, at()),\n sessionMode: (sessionID) =>\n client[\"session-mode.get\"]({ sessionID }, at()).then((out) => out.mode),\n setSessionMode: (sessionID, mode) => client[\"session-mode.set\"]({ sessionID, mode }, at()),\n tierRequest: (sessionID) =>\n client[\"tier-request.get\"]({ sessionID }, at()).then((out) => out.tier),\n setTierRequest: (sessionID, tier) => client[\"tier-request.set\"]({ sessionID, tier }, at()),\n }\n const view: AdaptiveView = {\n select: (options) => context.ui.dialog.select(options),\n selectPaged: <Value,>(spec: {\n title: string\n options: readonly SelectOption<Value>[]\n actions: readonly { title: string; value: string; bind: string }[]\n }) =>\n // Footer actions flip pages: triggering one closes the dialog and\n // resolves with the action instead of a pick; the controller loop\n // then reopens the browser at the new offset. The host resolves its\n // own select promise undefined on the clear() — resolving our\n // promise first-come means the action result wins.\n new Promise<{ picked: Value | undefined; action: string | undefined }>(\n (resolve, reject) => {\n void context.ui.dialog\n .select({\n title: spec.title,\n options: spec.options,\n actions: spec.actions.map((action) => ({\n bind: action.bind,\n title: action.title,\n selection: \"none\" as const,\n onTrigger: () => {\n context.ui.dialog.clear()\n resolve({ picked: undefined, action: action.value })\n },\n })),\n })\n .then((picked) => {\n resolve({ picked, action: undefined })\n }, reject)\n },\n ),\n confirm: (options) => context.ui.dialog.confirm(options),\n alert: (options) => context.ui.dialog.alert(options),\n table: (spec) =>\n // The host has no table dialog; a custom dialog render gives the\n // column grid its own layout. The default dialog size is too narrow\n // for the column grid (rows wrap mid-token), so the dialog is\n // widened to xlarge right after it opens. Escape closes the dialog\n // and fires onClose, which resolves the view promise.\n new Promise<void>((resolve) => {\n context.ui.dialog.show(\n () => (\n // Styled to match the host's own dialogs (bold title, dim esc\n // hint). The host dialog panel already insets the content, so\n // the box adds no top padding of its own; a blank spacer row\n // separates the title row from the table.\n <box style={{ flexDirection: \"column\", paddingBottom: 1, paddingX: 2 }}>\n <box style={{ flexDirection: \"row\", justifyContent: \"space-between\" }}>\n <text style={{ attributes: TextAttributes.BOLD }}>{spec.title}</text>\n <text style={{ attributes: TextAttributes.DIM }}>esc</text>\n </box>\n <text> </text>\n {spec.lines.map((line) => (\n <text>{line}</text>\n ))}\n </box>\n ),\n () => {\n resolve()\n },\n )\n context.ui.dialog.set({ size: \"xlarge\" })\n }),\n toast: (message, variant) => {\n context.ui.toast.show({ message, variant })\n },\n }\n // Real OpenCode models for the tier editor search (ADP-033); structural\n // summaries keep the view models free of client types.\n const models = (): readonly ModelSummary[] => {\n const list = context.data.location.model.list(context.location)\n return (list ?? []).map((info) => ({\n providerID: info.providerID,\n modelID: info.modelID,\n name: info.name,\n variants: info.variants.map((variant) => variant.id),\n }))\n }\n context.keymap.layer(() => ({\n // \"global\" opts out of input-mode scoping: the default (\"base\") binds\n // the commands to one OpenCode input mode, which kept the palette from\n // matching them (the sibling @coool plugins register the same way).\n mode: \"global\",\n commands: [\n {\n id: \"coool.adaptive.menu\",\n title: \"Adaptive\",\n group: \"Adaptive\",\n palette: true,\n // Surface the command in the palette's suggested row: discovery was\n // the reason users never found the menu at all.\n suggested: true,\n slash: { name: \"adaptive\" },\n run: () => {\n // Inside a session the flows steer that session's mode override\n // (ADP-054); on home they patch the global mode.\n const current = context.ui.router.current()\n const sessionID = current.type === \"session\" ? current.sessionID : undefined\n void runAdaptive({\n api,\n view,\n models,\n ...(sessionID !== undefined ? { sessionID } : {}),\n }).catch((error: unknown) => {\n view.toast(errorText(error), \"error\")\n })\n },\n },\n ],\n }))\n\n // Footer chip state: a reactive mirror of the server's operating mode,\n // fetched once at boot and kept live via the settings-changed event, plus\n // the per-session overrides seen so far (ADP-054).\n const [chip, setChip] = createStore<{\n mode: OperatingMode | null\n sessions: Record<string, OperatingMode | null>\n }>({ mode: null, sessions: {} })\n\n const fetchMode = async (): Promise<boolean> => {\n try {\n const settings = await api.settings()\n const mode = parseMode(settings.mode)\n if (mode !== undefined) setChip(\"mode\", mode)\n return true\n } catch {\n return false\n }\n }\n\n /**\n * One session's override, cached so the chip never re-fetches per render.\n * A fetch failure caches `null` (follow global): the chip stays correct\n * for override-less sessions, and a later `session-mode-changed` event\n * refreshes sessions that do carry an override.\n */\n const fetchSessionMode = async (sessionID: string): Promise<void> => {\n try {\n setChip(\"sessions\", sessionID, await api.sessionMode(sessionID))\n } catch {\n setChip(\"sessions\", sessionID, null)\n }\n }\n\n const bootFetch = async (retriesLeft: number): Promise<void> => {\n if (await fetchMode()) return\n // The server plugin may not be registered yet at TUI boot; retry\n // quietly. Bounded (unlike the sibling plugins' unbounded retry) so the\n // timer loop provably terminates: after the cap the chip stays hidden\n // until the next settings-changed event refreshes it.\n if (retriesLeft > 0) {\n setTimeout(() => void bootFetch(retriesLeft - 1), BOOT_FETCH_RETRY_MS)\n }\n }\n\n const renderChip = (mode: OperatingMode | null) => {\n if (mode === null) return <text></text>\n const entry = chipFor(mode)\n // The accent-colored span cannot execute in-repo: the terminal renderer\n // cannot start headless and jsdom's HTML parser mangles the intrinsic\n // <text><span> template (null insert parent). The chipFor tests pin the\n // color mapping; the chip render test pins the plain observe shape.\n /* v8 ignore start */\n if (entry.fg === null) return <text>{entry.text}</text>\n return (\n <text>\n <span style={{ fg: entry.fg }}>{entry.text}</span>\n </text>\n )\n /* v8 ignore stop */\n }\n const chipNode = (sessionID: string | undefined) => {\n // On home (no session id) the chip shows the global mode; in a session\n // it shows the session's EFFECTIVE mode (override ?? global).\n if (sessionID === undefined) return renderChip(chip.mode)\n const override = chip.sessions[sessionID]\n if (override === undefined) {\n // First render for this session: fetch the override; the store write\n // re-renders this node with the fetched value. Until then the global\n // mode is shown.\n void fetchSessionMode(sessionID)\n return renderChip(chip.mode)\n }\n return renderChip(override ?? chip.mode)\n }\n // The home footer slot only exists on the home screen; sessions render\n // the prompt footer — its slot input carries the open session's id, so\n // the chip there shows that session's effective mode (ADP-054).\n const disposeSlots = [\n context.ui.slot({ append: \"home.footer.status\", render: () => chipNode(undefined) }),\n context.ui.slot({\n append: \"prompt.footer.status\",\n render: (input) => chipNode(input.sessionID),\n }),\n ]\n\n const disposeWatch = client.events.on(\"settings-changed\", () => {\n void fetchMode()\n // A global mode change re-renders override-less sessions reactively;\n // cached overrides are re-fetched so a stale mirror cannot stick.\n for (const sessionID of Object.keys(chip.sessions)) {\n void fetchSessionMode(sessionID)\n }\n })\n const disposeSessionWatch = client.events.on(\"session-mode-changed\", (event) => {\n // The event data crosses the wire as an untyped record: a malformed\n // payload is ignored (fail-open) instead of steering a bogus session.\n const sessionID = event.data.sessionID\n if (typeof sessionID === \"string\") void fetchSessionMode(sessionID)\n })\n\n void bootFetch(BOOT_FETCH_RETRIES)\n\n return () => {\n for (const dispose of disposeSlots) dispose()\n disposeWatch()\n disposeSessionWatch()\n }\n },\n})\n"]}
|
package/dist/ui/gui/api.d.ts
CHANGED
package/dist/ui/gui/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/ui/gui/api.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAgB1C,MAAM,UAAU,cAAc,CAAC,MAAsB;IACnD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IACnC,OAAO;QACL,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;QACxD,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;QAC7D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACtB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAA;gBAC/C,OAAO,MAAM,CAAC,EAAE,CAAA;YAClB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QACD,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC1B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;YACrC,QAAQ,EAAE,CAAA;QACZ,CAAC,CAAC;KACL,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/ui/gui/api.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAgB1C,MAAM,UAAU,cAAc,CAAC,MAAsB;IACnD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IACnC,OAAO;QACL,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;QACxD,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;QAC7D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACtB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAA;gBAC/C,OAAO,MAAM,CAAC,EAAE,CAAA;YAClB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QACD,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC1B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;YACrC,QAAQ,EAAE,CAAA;QACZ,CAAC,CAAC;KACL,CAAA;AACH,CAAC","sourcesContent":["import type { OpenCodeClient } from \"@opencode/client/promise\"\n\nimport type { SettingsPatch } from \"../../state/settings/index.js\"\nimport type { Receipt } from \"../../state/receipts/index.js\"\nimport { adaptiveRpc } from \"../../rpc.js\"\nimport type { StatusSnapshot } from \"../../rpc.js\"\n\n/**\n * Thin typed-RPC adapter for the GUI surface (ADP-034). Every call resolves to `undefined` (reads) or `false`\n * (writes) when the server is unreachable, so the page can render an explicit disconnected state instead of\n * throwing. The server stays the single source of truth (ADP-036): the GUI holds no local settings state.\n */\nexport interface GuiApi {\n status(): Promise<StatusSnapshot | undefined>\n receipts(): Promise<Receipt[] | undefined>\n update(patch: SettingsPatch): Promise<boolean>\n /** Calls back whenever settings change on the server. Returns the unsubscribe function. */\n watchSettings(onChange: () => void): () => void\n}\n\nexport function adaptiveGuiApi(client: OpenCodeClient): GuiApi {\n const rpc = client.rpc(adaptiveRpc)\n return {\n status: () => rpc[\"status.get\"]().catch(() => undefined),\n receipts: () => rpc[\"receipts.list\"]().catch(() => undefined),\n update: async (patch) => {\n try {\n const result = await rpc[\"settings.set\"](patch)\n return result.ok\n } catch {\n return false\n }\n },\n watchSettings: (onChange) =>\n rpc.events.on(\"settings-changed\", () => {\n onChange()\n }),\n }\n}\n"]}
|
package/dist/ui/gui/view.d.ts
CHANGED
|
@@ -24,4 +24,3 @@ export declare function modeChoices(current: OperatingMode): readonly ModeChoice
|
|
|
24
24
|
export declare function parseModeValue(value: string): OperatingMode | undefined;
|
|
25
25
|
/** Display lines for the receipts section, reusing the TUI decision vocabulary. */
|
|
26
26
|
export declare function receiptLines(receipts: readonly Receipt[]): readonly string[];
|
|
27
|
-
//# sourceMappingURL=view.d.ts.map
|