@coool/opencode-adaptive 0.0.0-stage → 1.0.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/LICENSE +21 -0
- package/README.md +98 -2
- package/dist/adapters/codex-capacity/index.d.ts +5 -0
- package/dist/adapters/codex-capacity/index.d.ts.map +1 -0
- package/dist/adapters/codex-capacity/index.js +5 -0
- package/dist/adapters/codex-capacity/index.js.map +1 -0
- package/dist/adapters/codex-capacity/parse.d.ts +28 -0
- package/dist/adapters/codex-capacity/parse.d.ts.map +1 -0
- package/dist/adapters/codex-capacity/parse.js +130 -0
- package/dist/adapters/codex-capacity/parse.js.map +1 -0
- package/dist/adapters/codex-capacity/reading.d.ts +10 -0
- package/dist/adapters/codex-capacity/reading.d.ts.map +1 -0
- package/dist/adapters/codex-capacity/reading.js +45 -0
- package/dist/adapters/codex-capacity/reading.js.map +1 -0
- package/dist/adapters/codex-capacity/sensor.d.ts +24 -0
- package/dist/adapters/codex-capacity/sensor.d.ts.map +1 -0
- package/dist/adapters/codex-capacity/sensor.js +30 -0
- package/dist/adapters/codex-capacity/sensor.js.map +1 -0
- package/dist/adapters/codex-capacity/types.d.ts +35 -0
- package/dist/adapters/codex-capacity/types.d.ts.map +1 -0
- package/dist/adapters/codex-capacity/types.js +4 -0
- package/dist/adapters/codex-capacity/types.js.map +1 -0
- package/dist/adapters/opencode/escalation-tool.d.ts +52 -0
- package/dist/adapters/opencode/escalation-tool.d.ts.map +1 -0
- package/dist/adapters/opencode/escalation-tool.js +59 -0
- package/dist/adapters/opencode/escalation-tool.js.map +1 -0
- package/dist/adapters/opencode/events.d.ts +24 -0
- package/dist/adapters/opencode/events.d.ts.map +1 -0
- package/dist/adapters/opencode/events.js +68 -0
- package/dist/adapters/opencode/events.js.map +1 -0
- package/dist/adapters/opencode/hooks.d.ts +35 -0
- package/dist/adapters/opencode/hooks.d.ts.map +1 -0
- package/dist/adapters/opencode/hooks.js +12 -0
- package/dist/adapters/opencode/hooks.js.map +1 -0
- package/dist/adapters/opencode/index.d.ts +17 -0
- package/dist/adapters/opencode/index.d.ts.map +1 -0
- package/dist/adapters/opencode/index.js +9 -0
- package/dist/adapters/opencode/index.js.map +1 -0
- package/dist/adapters/opencode/inventory.d.ts +31 -0
- package/dist/adapters/opencode/inventory.d.ts.map +1 -0
- package/dist/adapters/opencode/inventory.js +53 -0
- package/dist/adapters/opencode/inventory.js.map +1 -0
- package/dist/adapters/opencode/report.d.ts +92 -0
- package/dist/adapters/opencode/report.d.ts.map +1 -0
- package/dist/adapters/opencode/report.js +145 -0
- package/dist/adapters/opencode/report.js.map +1 -0
- package/dist/adapters/opencode/session-ops.d.ts +40 -0
- package/dist/adapters/opencode/session-ops.d.ts.map +1 -0
- package/dist/adapters/opencode/session-ops.js +32 -0
- package/dist/adapters/opencode/session-ops.js.map +1 -0
- package/dist/adapters/opencode/storage.d.ts +16 -0
- package/dist/adapters/opencode/storage.d.ts.map +1 -0
- package/dist/adapters/opencode/storage.js +8 -0
- package/dist/adapters/opencode/storage.js.map +1 -0
- package/dist/adapters/opencode/tier-tool.d.ts +38 -0
- package/dist/adapters/opencode/tier-tool.d.ts.map +1 -0
- package/dist/adapters/opencode/tier-tool.js +72 -0
- package/dist/adapters/opencode/tier-tool.js.map +1 -0
- package/dist/adapters/opencode/types.d.ts +102 -0
- package/dist/adapters/opencode/types.d.ts.map +1 -0
- package/dist/adapters/opencode/types.js +2 -0
- package/dist/adapters/opencode/types.js.map +1 -0
- package/dist/core/compatibility/gate.d.ts +10 -0
- package/dist/core/compatibility/gate.d.ts.map +1 -0
- package/dist/core/compatibility/gate.js +55 -0
- package/dist/core/compatibility/gate.js.map +1 -0
- package/dist/core/compatibility/index.d.ts +3 -0
- package/dist/core/compatibility/index.d.ts.map +1 -0
- package/dist/core/compatibility/index.js +3 -0
- package/dist/core/compatibility/index.js.map +1 -0
- package/dist/core/compatibility/types.d.ts +54 -0
- package/dist/core/compatibility/types.d.ts.map +1 -0
- package/dist/core/compatibility/types.js +27 -0
- package/dist/core/compatibility/types.js.map +1 -0
- package/dist/core/scheduler/admit.d.ts +7 -0
- package/dist/core/scheduler/admit.d.ts.map +1 -0
- package/dist/core/scheduler/admit.js +153 -0
- package/dist/core/scheduler/admit.js.map +1 -0
- package/dist/core/scheduler/escalate.d.ts +7 -0
- package/dist/core/scheduler/escalate.d.ts.map +1 -0
- package/dist/core/scheduler/escalate.js +56 -0
- package/dist/core/scheduler/escalate.js.map +1 -0
- package/dist/core/scheduler/index.d.ts +5 -0
- package/dist/core/scheduler/index.d.ts.map +1 -0
- package/dist/core/scheduler/index.js +5 -0
- package/dist/core/scheduler/index.js.map +1 -0
- package/dist/core/scheduler/mode.d.ts +9 -0
- package/dist/core/scheduler/mode.d.ts.map +1 -0
- package/dist/core/scheduler/mode.js +10 -0
- package/dist/core/scheduler/mode.js.map +1 -0
- package/dist/core/scheduler/types.d.ts +143 -0
- package/dist/core/scheduler/types.d.ts.map +1 -0
- package/dist/core/scheduler/types.js +74 -0
- package/dist/core/scheduler/types.js.map +1 -0
- package/dist/core/tier-policy/index.d.ts +4 -0
- package/dist/core/tier-policy/index.d.ts.map +1 -0
- package/dist/core/tier-policy/index.js +4 -0
- package/dist/core/tier-policy/index.js.map +1 -0
- package/dist/core/tier-policy/resolve.d.ts +19 -0
- package/dist/core/tier-policy/resolve.d.ts.map +1 -0
- package/dist/core/tier-policy/resolve.js +52 -0
- package/dist/core/tier-policy/resolve.js.map +1 -0
- package/dist/core/tier-policy/tier-list.d.ts +11 -0
- package/dist/core/tier-policy/tier-list.d.ts.map +1 -0
- package/dist/core/tier-policy/tier-list.js +23 -0
- package/dist/core/tier-policy/tier-list.js.map +1 -0
- package/dist/core/tier-policy/types.d.ts +85 -0
- package/dist/core/tier-policy/types.d.ts.map +1 -0
- package/dist/core/tier-policy/types.js +45 -0
- package/dist/core/tier-policy/types.js.map +1 -0
- package/dist/core/work-unit/index.d.ts +4 -0
- package/dist/core/work-unit/index.d.ts.map +1 -0
- package/dist/core/work-unit/index.js +4 -0
- package/dist/core/work-unit/index.js.map +1 -0
- package/dist/core/work-unit/interruption.d.ts +8 -0
- package/dist/core/work-unit/interruption.d.ts.map +1 -0
- package/dist/core/work-unit/interruption.js +12 -0
- package/dist/core/work-unit/interruption.js.map +1 -0
- package/dist/core/work-unit/tracker.d.ts +46 -0
- package/dist/core/work-unit/tracker.d.ts.map +1 -0
- package/dist/core/work-unit/tracker.js +136 -0
- package/dist/core/work-unit/tracker.js.map +1 -0
- package/dist/core/work-unit/types.d.ts +146 -0
- package/dist/core/work-unit/types.d.ts.map +1 -0
- package/dist/core/work-unit/types.js +23 -0
- package/dist/core/work-unit/types.js.map +1 -0
- package/dist/execution/continuation/execute.d.ts +19 -0
- package/dist/execution/continuation/execute.d.ts.map +1 -0
- package/dist/execution/continuation/execute.js +31 -0
- package/dist/execution/continuation/execute.js.map +1 -0
- package/dist/execution/continuation/index.d.ts +6 -0
- package/dist/execution/continuation/index.d.ts.map +1 -0
- package/dist/execution/continuation/index.js +5 -0
- package/dist/execution/continuation/index.js.map +1 -0
- package/dist/execution/continuation/ledger.d.ts +20 -0
- package/dist/execution/continuation/ledger.d.ts.map +1 -0
- package/dist/execution/continuation/ledger.js +31 -0
- package/dist/execution/continuation/ledger.js.map +1 -0
- package/dist/execution/continuation/plan.d.ts +13 -0
- package/dist/execution/continuation/plan.d.ts.map +1 -0
- package/dist/execution/continuation/plan.js +20 -0
- package/dist/execution/continuation/plan.js.map +1 -0
- package/dist/execution/continuation/prompts.d.ts +8 -0
- package/dist/execution/continuation/prompts.d.ts.map +1 -0
- package/dist/execution/continuation/prompts.js +8 -0
- package/dist/execution/continuation/prompts.js.map +1 -0
- package/dist/execution/continuation/types.d.ts +70 -0
- package/dist/execution/continuation/types.d.ts.map +1 -0
- package/dist/execution/continuation/types.js +15 -0
- package/dist/execution/continuation/types.js.map +1 -0
- package/dist/execution/escalation/index.d.ts +2 -0
- package/dist/execution/escalation/index.d.ts.map +1 -0
- package/dist/execution/escalation/index.js +2 -0
- package/dist/execution/escalation/index.js.map +1 -0
- package/dist/execution/escalation/types.d.ts +31 -0
- package/dist/execution/escalation/types.d.ts.map +1 -0
- package/dist/execution/escalation/types.js +49 -0
- package/dist/execution/escalation/types.js.map +1 -0
- package/dist/execution/index.d.ts +5 -0
- package/dist/execution/index.d.ts.map +1 -0
- package/dist/execution/index.js +5 -0
- package/dist/execution/index.js.map +1 -0
- package/dist/execution/parking/index.d.ts +3 -0
- package/dist/execution/parking/index.d.ts.map +1 -0
- package/dist/execution/parking/index.js +2 -0
- package/dist/execution/parking/index.js.map +1 -0
- package/dist/execution/parking/plan.d.ts +40 -0
- package/dist/execution/parking/plan.d.ts.map +1 -0
- package/dist/execution/parking/plan.js +34 -0
- package/dist/execution/parking/plan.js.map +1 -0
- package/dist/execution/recovery/gate.d.ts +20 -0
- package/dist/execution/recovery/gate.d.ts.map +1 -0
- package/dist/execution/recovery/gate.js +23 -0
- package/dist/execution/recovery/gate.js.map +1 -0
- package/dist/execution/recovery/index.d.ts +3 -0
- package/dist/execution/recovery/index.d.ts.map +1 -0
- package/dist/execution/recovery/index.js +2 -0
- package/dist/execution/recovery/index.js.map +1 -0
- package/dist/execution/retry/decide.d.ts +30 -0
- package/dist/execution/retry/decide.d.ts.map +1 -0
- package/dist/execution/retry/decide.js +76 -0
- package/dist/execution/retry/decide.js.map +1 -0
- package/dist/execution/retry/index.d.ts +3 -0
- package/dist/execution/retry/index.d.ts.map +1 -0
- package/dist/execution/retry/index.js +3 -0
- package/dist/execution/retry/index.js.map +1 -0
- package/dist/execution/retry/types.d.ts +66 -0
- package/dist/execution/retry/types.d.ts.map +1 -0
- package/dist/execution/retry/types.js +9 -0
- package/dist/execution/retry/types.js.map +1 -0
- package/dist/gui-experimental.cjs +1 -0
- package/dist/gui.d.ts +17 -0
- package/dist/gui.d.ts.map +1 -0
- package/dist/gui.js +70 -0
- package/dist/gui.js.map +1 -0
- package/dist/health/capacity/index.d.ts +4 -0
- package/dist/health/capacity/index.d.ts.map +1 -0
- package/dist/health/capacity/index.js +4 -0
- package/dist/health/capacity/index.js.map +1 -0
- package/dist/health/capacity/merge.d.ts +58 -0
- package/dist/health/capacity/merge.d.ts.map +1 -0
- package/dist/health/capacity/merge.js +154 -0
- package/dist/health/capacity/merge.js.map +1 -0
- package/dist/health/capacity/registry.d.ts +41 -0
- package/dist/health/capacity/registry.d.ts.map +1 -0
- package/dist/health/capacity/registry.js +106 -0
- package/dist/health/capacity/registry.js.map +1 -0
- package/dist/health/capacity/types.d.ts +74 -0
- package/dist/health/capacity/types.d.ts.map +1 -0
- package/dist/health/capacity/types.js +6 -0
- package/dist/health/capacity/types.js.map +1 -0
- package/dist/health/circuit-breaker/breaker.d.ts +84 -0
- package/dist/health/circuit-breaker/breaker.d.ts.map +1 -0
- package/dist/health/circuit-breaker/breaker.js +132 -0
- package/dist/health/circuit-breaker/breaker.js.map +1 -0
- package/dist/health/circuit-breaker/index.d.ts +3 -0
- package/dist/health/circuit-breaker/index.d.ts.map +1 -0
- package/dist/health/circuit-breaker/index.js +3 -0
- package/dist/health/circuit-breaker/index.js.map +1 -0
- package/dist/health/circuit-breaker/types.d.ts +53 -0
- package/dist/health/circuit-breaker/types.d.ts.map +1 -0
- package/dist/health/circuit-breaker/types.js +13 -0
- package/dist/health/circuit-breaker/types.js.map +1 -0
- package/dist/health/classifier/classify.d.ts +9 -0
- package/dist/health/classifier/classify.d.ts.map +1 -0
- package/dist/health/classifier/classify.js +245 -0
- package/dist/health/classifier/classify.js.map +1 -0
- package/dist/health/classifier/index.d.ts +3 -0
- package/dist/health/classifier/index.d.ts.map +1 -0
- package/dist/health/classifier/index.js +3 -0
- package/dist/health/classifier/index.js.map +1 -0
- package/dist/health/classifier/types.d.ts +72 -0
- package/dist/health/classifier/types.d.ts.map +1 -0
- package/dist/health/classifier/types.js +27 -0
- package/dist/health/classifier/types.js.map +1 -0
- package/dist/health/index.d.ts +5 -0
- package/dist/health/index.d.ts.map +1 -0
- package/dist/health/index.js +5 -0
- package/dist/health/index.js.map +1 -0
- package/dist/health/resource-health/index.d.ts +5 -0
- package/dist/health/resource-health/index.d.ts.map +1 -0
- package/dist/health/resource-health/index.js +5 -0
- package/dist/health/resource-health/index.js.map +1 -0
- package/dist/health/resource-health/key.d.ts +19 -0
- package/dist/health/resource-health/key.d.ts.map +1 -0
- package/dist/health/resource-health/key.js +54 -0
- package/dist/health/resource-health/key.js.map +1 -0
- package/dist/health/resource-health/registry.d.ts +41 -0
- package/dist/health/resource-health/registry.d.ts.map +1 -0
- package/dist/health/resource-health/registry.js +258 -0
- package/dist/health/resource-health/registry.js.map +1 -0
- package/dist/health/resource-health/transitions.d.ts +11 -0
- package/dist/health/resource-health/transitions.d.ts.map +1 -0
- package/dist/health/resource-health/transitions.js +165 -0
- package/dist/health/resource-health/transitions.js.map +1 -0
- package/dist/health/resource-health/types.d.ts +116 -0
- package/dist/health/resource-health/types.d.ts.map +1 -0
- package/dist/health/resource-health/types.js +43 -0
- package/dist/health/resource-health/types.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +80 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin-id.d.ts +3 -0
- package/dist/plugin-id.d.ts.map +1 -0
- package/dist/plugin-id.js +3 -0
- package/dist/plugin-id.js.map +1 -0
- package/dist/rpc/definition.d.ts +100 -0
- package/dist/rpc/definition.d.ts.map +1 -0
- package/dist/rpc/definition.js +104 -0
- package/dist/rpc/definition.js.map +1 -0
- package/dist/rpc/handlers.d.ts +65 -0
- package/dist/rpc/handlers.d.ts.map +1 -0
- package/dist/rpc/handlers.js +111 -0
- package/dist/rpc/handlers.js.map +1 -0
- package/dist/rpc/status.d.ts +43 -0
- package/dist/rpc/status.d.ts.map +1 -0
- package/dist/rpc/status.js +45 -0
- package/dist/rpc/status.js.map +1 -0
- package/dist/rpc.d.ts +11 -0
- package/dist/rpc.d.ts.map +1 -0
- package/dist/rpc.js +8 -0
- package/dist/rpc.js.map +1 -0
- package/dist/state/capacity/index.d.ts +4 -0
- package/dist/state/capacity/index.d.ts.map +1 -0
- package/dist/state/capacity/index.js +4 -0
- package/dist/state/capacity/index.js.map +1 -0
- package/dist/state/capacity/parse.d.ts +3 -0
- package/dist/state/capacity/parse.d.ts.map +1 -0
- package/dist/state/capacity/parse.js +110 -0
- package/dist/state/capacity/parse.js.map +1 -0
- package/dist/state/capacity/store.d.ts +19 -0
- package/dist/state/capacity/store.d.ts.map +1 -0
- package/dist/state/capacity/store.js +64 -0
- package/dist/state/capacity/store.js.map +1 -0
- package/dist/state/capacity/types.d.ts +38 -0
- package/dist/state/capacity/types.d.ts.map +1 -0
- package/dist/state/capacity/types.js +11 -0
- package/dist/state/capacity/types.js.map +1 -0
- package/dist/state/health/index.d.ts +5 -0
- package/dist/state/health/index.d.ts.map +1 -0
- package/dist/state/health/index.js +4 -0
- package/dist/state/health/index.js.map +1 -0
- package/dist/state/health/parse.d.ts +3 -0
- package/dist/state/health/parse.d.ts.map +1 -0
- package/dist/state/health/parse.js +121 -0
- package/dist/state/health/parse.js.map +1 -0
- package/dist/state/health/store.d.ts +18 -0
- package/dist/state/health/store.d.ts.map +1 -0
- package/dist/state/health/store.js +55 -0
- package/dist/state/health/store.js.map +1 -0
- package/dist/state/health/types.d.ts +24 -0
- package/dist/state/health/types.d.ts.map +1 -0
- package/dist/state/health/types.js +5 -0
- package/dist/state/health/types.js.map +1 -0
- package/dist/state/parked-work/index.d.ts +5 -0
- package/dist/state/parked-work/index.d.ts.map +1 -0
- package/dist/state/parked-work/index.js +4 -0
- package/dist/state/parked-work/index.js.map +1 -0
- package/dist/state/parked-work/parse.d.ts +7 -0
- package/dist/state/parked-work/parse.d.ts.map +1 -0
- package/dist/state/parked-work/parse.js +83 -0
- package/dist/state/parked-work/parse.js.map +1 -0
- package/dist/state/parked-work/store.d.ts +18 -0
- package/dist/state/parked-work/store.d.ts.map +1 -0
- package/dist/state/parked-work/store.js +81 -0
- package/dist/state/parked-work/store.js.map +1 -0
- package/dist/state/parked-work/types.d.ts +42 -0
- package/dist/state/parked-work/types.d.ts.map +1 -0
- package/dist/state/parked-work/types.js +7 -0
- package/dist/state/parked-work/types.js.map +1 -0
- package/dist/state/receipts/bound.d.ts +15 -0
- package/dist/state/receipts/bound.d.ts.map +1 -0
- package/dist/state/receipts/bound.js +77 -0
- package/dist/state/receipts/bound.js.map +1 -0
- package/dist/state/receipts/index.d.ts +7 -0
- package/dist/state/receipts/index.d.ts.map +1 -0
- package/dist/state/receipts/index.js +5 -0
- package/dist/state/receipts/index.js.map +1 -0
- package/dist/state/receipts/parse.d.ts +7 -0
- package/dist/state/receipts/parse.d.ts.map +1 -0
- package/dist/state/receipts/parse.js +226 -0
- package/dist/state/receipts/parse.js.map +1 -0
- package/dist/state/receipts/store.d.ts +35 -0
- package/dist/state/receipts/store.d.ts.map +1 -0
- package/dist/state/receipts/store.js +128 -0
- package/dist/state/receipts/store.js.map +1 -0
- package/dist/state/receipts/types.d.ts +62 -0
- package/dist/state/receipts/types.d.ts.map +1 -0
- package/dist/state/receipts/types.js +12 -0
- package/dist/state/receipts/types.js.map +1 -0
- package/dist/state/session-modes/index.d.ts +5 -0
- package/dist/state/session-modes/index.d.ts.map +1 -0
- package/dist/state/session-modes/index.js +4 -0
- package/dist/state/session-modes/index.js.map +1 -0
- package/dist/state/session-modes/parse.d.ts +9 -0
- package/dist/state/session-modes/parse.d.ts.map +1 -0
- package/dist/state/session-modes/parse.js +62 -0
- package/dist/state/session-modes/parse.js.map +1 -0
- package/dist/state/session-modes/store.d.ts +21 -0
- package/dist/state/session-modes/store.d.ts.map +1 -0
- package/dist/state/session-modes/store.js +73 -0
- package/dist/state/session-modes/store.js.map +1 -0
- package/dist/state/session-modes/types.d.ts +42 -0
- package/dist/state/session-modes/types.d.ts.map +1 -0
- package/dist/state/session-modes/types.js +7 -0
- package/dist/state/session-modes/types.js.map +1 -0
- package/dist/state/settings/index.d.ts +5 -0
- package/dist/state/settings/index.d.ts.map +1 -0
- package/dist/state/settings/index.js +4 -0
- package/dist/state/settings/index.js.map +1 -0
- package/dist/state/settings/parse.d.ts +34 -0
- package/dist/state/settings/parse.d.ts.map +1 -0
- package/dist/state/settings/parse.js +261 -0
- package/dist/state/settings/parse.js.map +1 -0
- package/dist/state/settings/store.d.ts +22 -0
- package/dist/state/settings/store.d.ts.map +1 -0
- package/dist/state/settings/store.js +57 -0
- package/dist/state/settings/store.js.map +1 -0
- package/dist/state/settings/types.d.ts +63 -0
- package/dist/state/settings/types.d.ts.map +1 -0
- package/dist/state/settings/types.js +12 -0
- package/dist/state/settings/types.js.map +1 -0
- package/dist/supervisor/index.d.ts +5 -0
- package/dist/supervisor/index.d.ts.map +1 -0
- package/dist/supervisor/index.js +4 -0
- package/dist/supervisor/index.js.map +1 -0
- package/dist/supervisor/log.d.ts +11 -0
- package/dist/supervisor/log.d.ts.map +1 -0
- package/dist/supervisor/log.js +14 -0
- package/dist/supervisor/log.js.map +1 -0
- package/dist/supervisor/supervisor.d.ts +69 -0
- package/dist/supervisor/supervisor.d.ts.map +1 -0
- package/dist/supervisor/supervisor.js +1343 -0
- package/dist/supervisor/supervisor.js.map +1 -0
- package/dist/supervisor/types.d.ts +50 -0
- package/dist/supervisor/types.d.ts.map +1 -0
- package/dist/supervisor/types.js +3 -0
- package/dist/supervisor/types.js.map +1 -0
- package/dist/supervisor/view.d.ts +4 -0
- package/dist/supervisor/view.d.ts.map +1 -0
- package/dist/supervisor/view.js +4 -0
- package/dist/supervisor/view.js.map +1 -0
- package/dist/tui.d.ts +16 -0
- package/dist/tui.d.ts.map +1 -0
- package/dist/tui.js +252 -0
- package/dist/tui.js.map +1 -0
- package/dist/ui/gui/api.d.ts +18 -0
- package/dist/ui/gui/api.d.ts.map +1 -0
- package/dist/ui/gui/api.js +21 -0
- package/dist/ui/gui/api.js.map +1 -0
- package/dist/ui/gui/view.d.ts +27 -0
- package/dist/ui/gui/view.d.ts.map +1 -0
- package/dist/ui/gui/view.js +49 -0
- package/dist/ui/gui/view.js.map +1 -0
- package/dist/ui/tui/controller.d.ts +98 -0
- package/dist/ui/tui/controller.d.ts.map +1 -0
- package/dist/ui/tui/controller.js +399 -0
- package/dist/ui/tui/controller.js.map +1 -0
- package/dist/ui/tui/menu.d.ts +56 -0
- package/dist/ui/tui/menu.d.ts.map +1 -0
- package/dist/ui/tui/menu.js +176 -0
- package/dist/ui/tui/menu.js.map +1 -0
- package/dist/ui/tui/options.d.ts +20 -0
- package/dist/ui/tui/options.d.ts.map +1 -0
- package/dist/ui/tui/options.js +17 -0
- package/dist/ui/tui/options.js.map +1 -0
- package/dist/ui/tui/receipts.d.ts +22 -0
- package/dist/ui/tui/receipts.d.ts.map +1 -0
- package/dist/ui/tui/receipts.js +109 -0
- package/dist/ui/tui/receipts.js.map +1 -0
- package/dist/ui/tui/status.d.ts +23 -0
- package/dist/ui/tui/status.d.ts.map +1 -0
- package/dist/ui/tui/status.js +90 -0
- package/dist/ui/tui/status.js.map +1 -0
- package/dist/ui/tui/tiers.d.ts +52 -0
- package/dist/ui/tui/tiers.d.ts.map +1 -0
- package/dist/ui/tui/tiers.js +108 -0
- package/dist/ui/tui/tiers.js.map +1 -0
- package/package.json +85 -4
package/dist/index.js
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Plugin } from "@opencode/plugin";
|
|
2
|
+
import { isCodexHeaderName } from "./adapters/codex-capacity/index.js";
|
|
3
|
+
import { escalationTool, registerSessionHooks, subscribeSessions, tierTool, } from "./adapters/opencode/index.js";
|
|
4
|
+
import { PLUGIN_ID } from "./plugin-id.js";
|
|
5
|
+
import { adaptiveRpc } from "./rpc/definition.js";
|
|
6
|
+
import { adaptiveRpcHandlers } from "./rpc/handlers.js";
|
|
7
|
+
import { Supervisor, logFailOpen } from "./supervisor/index.js";
|
|
8
|
+
export { PLUGIN_ID } from "./plugin-id.js";
|
|
9
|
+
/**
|
|
10
|
+
* Plugin id as required by GOAL.md: must not collide with the `opencode.*`
|
|
11
|
+
* namespace and must stay stable across releases (referenced by settings
|
|
12
|
+
* storage keys and receipts).
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Entry point wired into OpenCode via `opencode.json(c)`. Setup glues the
|
|
16
|
+
* adapter touchpoints (session hooks, event subscription, storage) to the
|
|
17
|
+
* supervisor and returns a cleanup that disposes every registration.
|
|
18
|
+
* All supervision errors are fail-open (ADP-031): the supervisor's public
|
|
19
|
+
* entry points never throw; the event pump's stream errors are logged.
|
|
20
|
+
*/
|
|
21
|
+
export default Plugin.define({
|
|
22
|
+
id: PLUGIN_ID,
|
|
23
|
+
async setup(context) {
|
|
24
|
+
const supervisor = new Supervisor({
|
|
25
|
+
session: context.session,
|
|
26
|
+
model: context.model,
|
|
27
|
+
storage: context.storage,
|
|
28
|
+
clock: () => Date.now(),
|
|
29
|
+
});
|
|
30
|
+
const hooks = await registerSessionHooks(context.session, {
|
|
31
|
+
onRetry: async (input) => {
|
|
32
|
+
await supervisor.handleRetry(input);
|
|
33
|
+
},
|
|
34
|
+
onModelRequest: async (report) => {
|
|
35
|
+
await supervisor.handleReport(report);
|
|
36
|
+
},
|
|
37
|
+
onHttpResponse: async (report) => {
|
|
38
|
+
await supervisor.handleReport(report);
|
|
39
|
+
},
|
|
40
|
+
onIdle: async (report) => {
|
|
41
|
+
await supervisor.handleReport(report);
|
|
42
|
+
},
|
|
43
|
+
onPrompt: async (report) => {
|
|
44
|
+
await supervisor.handleReport(report);
|
|
45
|
+
},
|
|
46
|
+
}, { capture: isCodexHeaderName });
|
|
47
|
+
const subscription = subscribeSessions(context.event, (report) => {
|
|
48
|
+
void supervisor.handleReport(report);
|
|
49
|
+
}, (error) => {
|
|
50
|
+
logFailOpen("events", error);
|
|
51
|
+
});
|
|
52
|
+
// The typed escalation tool (T-18, ADP-015): the agent's self-report
|
|
53
|
+
// surface for stronger capability, applied at the next safe boundary.
|
|
54
|
+
// The tier tool (ADP-055): the agent declares the task's tier; the
|
|
55
|
+
// declaration steers the session's next admissions until cleared.
|
|
56
|
+
const toolRegistration = await context.tool.transform((editor) => {
|
|
57
|
+
editor.add(escalationTool((sessionID, reason, evidence) => supervisor.noteEscalationRequest(sessionID, reason, evidence)));
|
|
58
|
+
editor.add(tierTool((sessionID, tier) => supervisor.noteTierRequest(sessionID, tier)));
|
|
59
|
+
});
|
|
60
|
+
// Typed RPC (ADP-034/036): the only channel to the control surfaces.
|
|
61
|
+
// The settings-changed emitter resolves the registration lazily: handlers
|
|
62
|
+
// only run after `register` resolves, so the holder is always populated.
|
|
63
|
+
const rpcHolder = {};
|
|
64
|
+
const emit = (...args) =>
|
|
65
|
+
// The correlated tuple pairing is checked by the handler types; the
|
|
66
|
+
// registration forwards it to the host emitter untouched.
|
|
67
|
+
rpcHolder.registration?.events.emit(...args);
|
|
68
|
+
const rpcRegistration = await context.rpc.register(adaptiveRpc, adaptiveRpcHandlers(supervisor, emit));
|
|
69
|
+
rpcHolder.registration = rpcRegistration;
|
|
70
|
+
return () => {
|
|
71
|
+
for (const hookRegistration of hooks) {
|
|
72
|
+
void hookRegistration.dispose();
|
|
73
|
+
}
|
|
74
|
+
subscription.dispose();
|
|
75
|
+
void toolRegistration.dispose();
|
|
76
|
+
void rpcRegistration.dispose();
|
|
77
|
+
};
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-id.d.ts","sourceRoot":"","sources":["../src/plugin-id.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,eAAO,MAAM,SAAS,mBAAmB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-id.js","sourceRoot":"","sources":["../src/plugin-id.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,CAAC,MAAM,SAAS,GAAG,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import type { StandardSchemaV1 } from "@standard-schema/spec";
|
|
2
|
+
import type { OperatingMode } from "../core/scheduler/types.js";
|
|
3
|
+
import type { SettingsPatch, SettingsV1 } from "../state/settings/index.js";
|
|
4
|
+
import type { PatchResult } from "../state/settings/types.js";
|
|
5
|
+
import type { SessionModeSetResult } from "../state/session-modes/index.js";
|
|
6
|
+
import type { TierRequestSetResult } from "./handlers.js";
|
|
7
|
+
import type { TierName } from "../core/tier-policy/types.js";
|
|
8
|
+
import type { Receipt } from "../state/receipts/types.js";
|
|
9
|
+
import type { StatusSnapshot } from "./status.js";
|
|
10
|
+
export declare const ADAPTIVE_RPC_ID = "coool.adaptive";
|
|
11
|
+
export declare const adaptiveRpc: {
|
|
12
|
+
readonly id: "coool.adaptive";
|
|
13
|
+
readonly methods: {
|
|
14
|
+
readonly "settings.get": {
|
|
15
|
+
readonly input: StandardSchemaV1<undefined, undefined>;
|
|
16
|
+
readonly output: StandardSchemaV1<SettingsV1, SettingsV1>;
|
|
17
|
+
};
|
|
18
|
+
readonly "settings.set": {
|
|
19
|
+
readonly input: StandardSchemaV1<SettingsPatch, SettingsPatch>;
|
|
20
|
+
readonly output: StandardSchemaV1<PatchResult, PatchResult>;
|
|
21
|
+
};
|
|
22
|
+
readonly "status.get": {
|
|
23
|
+
readonly input: StandardSchemaV1<undefined, undefined>;
|
|
24
|
+
readonly output: StandardSchemaV1<StatusSnapshot, StatusSnapshot>;
|
|
25
|
+
};
|
|
26
|
+
readonly "receipts.list": {
|
|
27
|
+
readonly input: StandardSchemaV1<undefined, undefined>;
|
|
28
|
+
readonly output: StandardSchemaV1<Receipt[], Receipt[]>;
|
|
29
|
+
};
|
|
30
|
+
readonly "session-mode.get": {
|
|
31
|
+
readonly input: StandardSchemaV1<{
|
|
32
|
+
sessionID: string;
|
|
33
|
+
}, {
|
|
34
|
+
sessionID: string;
|
|
35
|
+
}>;
|
|
36
|
+
readonly output: StandardSchemaV1<{
|
|
37
|
+
mode: OperatingMode | null;
|
|
38
|
+
}, {
|
|
39
|
+
mode: OperatingMode | null;
|
|
40
|
+
}>;
|
|
41
|
+
};
|
|
42
|
+
readonly "session-mode.set": {
|
|
43
|
+
readonly input: StandardSchemaV1<{
|
|
44
|
+
sessionID: string;
|
|
45
|
+
mode: OperatingMode | null;
|
|
46
|
+
}, {
|
|
47
|
+
sessionID: string;
|
|
48
|
+
mode: OperatingMode | null;
|
|
49
|
+
}>;
|
|
50
|
+
readonly output: StandardSchemaV1<SessionModeSetResult, SessionModeSetResult>;
|
|
51
|
+
};
|
|
52
|
+
readonly "tier-request.get": {
|
|
53
|
+
readonly input: StandardSchemaV1<{
|
|
54
|
+
sessionID: string;
|
|
55
|
+
}, {
|
|
56
|
+
sessionID: string;
|
|
57
|
+
}>;
|
|
58
|
+
readonly output: StandardSchemaV1<{
|
|
59
|
+
tier: TierName | null;
|
|
60
|
+
}, {
|
|
61
|
+
tier: TierName | null;
|
|
62
|
+
}>;
|
|
63
|
+
};
|
|
64
|
+
readonly "tier-request.set": {
|
|
65
|
+
readonly input: StandardSchemaV1<{
|
|
66
|
+
sessionID: string;
|
|
67
|
+
tier: string | null;
|
|
68
|
+
}, {
|
|
69
|
+
sessionID: string;
|
|
70
|
+
tier: string | null;
|
|
71
|
+
}>;
|
|
72
|
+
readonly output: StandardSchemaV1<TierRequestSetResult, TierRequestSetResult>;
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
readonly events: {
|
|
76
|
+
readonly "settings-changed": {
|
|
77
|
+
readonly schema: StandardSchemaV1<{
|
|
78
|
+
version: number;
|
|
79
|
+
}, {
|
|
80
|
+
version: number;
|
|
81
|
+
}>;
|
|
82
|
+
};
|
|
83
|
+
readonly "session-mode-changed": {
|
|
84
|
+
readonly schema: StandardSchemaV1<{
|
|
85
|
+
sessionID: string;
|
|
86
|
+
}, {
|
|
87
|
+
sessionID: string;
|
|
88
|
+
}>;
|
|
89
|
+
};
|
|
90
|
+
readonly "tier-request-changed": {
|
|
91
|
+
readonly schema: StandardSchemaV1<{
|
|
92
|
+
sessionID: string;
|
|
93
|
+
}, {
|
|
94
|
+
sessionID: string;
|
|
95
|
+
}>;
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
export type AdaptiveRpc = typeof adaptiveRpc;
|
|
100
|
+
//# sourceMappingURL=definition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/rpc/definition.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,eAAO,MAAM,eAAe,mBAAmB,CAAA;AAqD/C,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;2BAoBS,MAAM;;2BAAN,MAAM;;;sBAIV,aAAa,GAAG,IAAI;;sBAApB,aAAa,GAAG,IAAI;;;;;2BAGhB,MAAM;sBAAQ,aAAa,GAAG,IAAI;;2BAAlC,MAAM;sBAAQ,aAAa,GAAG,IAAI;;;;;;2BAOlC,MAAM;;2BAAN,MAAM;;;sBAIV,QAAQ,GAAG,IAAI;;sBAAf,QAAQ,GAAG,IAAI;;;;;2BAGX,MAAM;sBAAQ,MAAM,GAAG,IAAI;;2BAA3B,MAAM;sBAAQ,MAAM,GAAG,IAAI;;;;;;;;yBAS5B,MAAM;;yBAAN,MAAM;;;;;2BAGJ,MAAM;;2BAAN,MAAM;;;;;2BAMN,MAAM;;2BAAN,MAAM;;;;CAMtC,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAA"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed RPC definition (ADP-034/036): the only channel between the server
|
|
3
|
+
* plugin and the TUI/GUI surfaces. Surfaces hold no local settings state —
|
|
4
|
+
* they fetch snapshots, patch settings, and re-fetch on the `settings-changed`
|
|
5
|
+
* event (the server is the single source of truth). Session-mode overrides
|
|
6
|
+
* follow the same contract via `session-mode.get/set` and the
|
|
7
|
+
* `session-mode-changed` event (ADP-054); sticky per-session tier requests
|
|
8
|
+
* follow it via `tier-request.get/set` and `tier-request-changed` (ADP-055).
|
|
9
|
+
*
|
|
10
|
+
* Schema note: input schemas gate the wire shape (non-object patches are
|
|
11
|
+
* rejected as rpc.invalid_input); deeper validation happens in the handlers
|
|
12
|
+
* via the state parsers (`applyPatch` reports per-field errors instead), and
|
|
13
|
+
* output schemas are passthroughs over trusted server-side data.
|
|
14
|
+
*/
|
|
15
|
+
import { Rpc } from "@opencode/schema/rpc";
|
|
16
|
+
export const ADAPTIVE_RPC_ID = "coool.adaptive";
|
|
17
|
+
const RPC_VENDOR = "coool.adaptive";
|
|
18
|
+
/**
|
|
19
|
+
* Identity schema: the wire value passes through unchanged; the type
|
|
20
|
+
* parameters carry the transport contract. `gate` optionally rejects values
|
|
21
|
+
* before they reach a handler; the failure message names the expectation so a
|
|
22
|
+
* rejected call is diagnosable from the wire error alone.
|
|
23
|
+
*/
|
|
24
|
+
function schema(gate, expectation) {
|
|
25
|
+
return {
|
|
26
|
+
"~standard": {
|
|
27
|
+
version: 1,
|
|
28
|
+
vendor: RPC_VENDOR,
|
|
29
|
+
validate: (value) => gate(value) ? { value: value } : { issues: [{ message: expectation }] },
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function voidSchema() {
|
|
34
|
+
return {
|
|
35
|
+
"~standard": {
|
|
36
|
+
version: 1,
|
|
37
|
+
vendor: RPC_VENDOR,
|
|
38
|
+
validate: (value) => value === undefined
|
|
39
|
+
? { value: undefined }
|
|
40
|
+
: { issues: [{ message: "unexpected input: no input expected" }] },
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
45
|
+
const isString = (value) => typeof value === "string";
|
|
46
|
+
/** `{ sessionID: string }` — deeper validation (bounds, vocabulary) is the handler's. */
|
|
47
|
+
const hasSessionID = (value) => isRecord(value) && isString(value["sessionID"]);
|
|
48
|
+
/** `{ sessionID: string, mode: OperatingMode | null }` wire shape. */
|
|
49
|
+
const isSessionModeSet = (value) => isRecord(value) &&
|
|
50
|
+
isString(value["sessionID"]) &&
|
|
51
|
+
(value["mode"] === null || isString(value["mode"]));
|
|
52
|
+
/** `{ sessionID: string, tier: string | null }` wire shape. */
|
|
53
|
+
const isTierRequestSet = (value) => isRecord(value) &&
|
|
54
|
+
isString(value["sessionID"]) &&
|
|
55
|
+
(value["tier"] === null || isString(value["tier"]));
|
|
56
|
+
export const adaptiveRpc = Rpc.define({
|
|
57
|
+
id: ADAPTIVE_RPC_ID,
|
|
58
|
+
methods: {
|
|
59
|
+
"settings.get": {
|
|
60
|
+
input: voidSchema(),
|
|
61
|
+
output: schema(isRecord, "output must be an object"),
|
|
62
|
+
},
|
|
63
|
+
"settings.set": {
|
|
64
|
+
input: schema(isRecord, "input must be an object"),
|
|
65
|
+
output: schema(isRecord, "output must be an object"),
|
|
66
|
+
},
|
|
67
|
+
"status.get": {
|
|
68
|
+
input: voidSchema(),
|
|
69
|
+
output: schema(isRecord, "output must be an object"),
|
|
70
|
+
},
|
|
71
|
+
"receipts.list": {
|
|
72
|
+
input: voidSchema(),
|
|
73
|
+
output: schema(Array.isArray, "output must be an array"),
|
|
74
|
+
},
|
|
75
|
+
"session-mode.get": {
|
|
76
|
+
input: schema(hasSessionID, "input must be an object with a sessionID string"),
|
|
77
|
+
output: schema(isRecord, "output must be an object"),
|
|
78
|
+
},
|
|
79
|
+
"session-mode.set": {
|
|
80
|
+
input: schema(isSessionModeSet, "input must be an object with a sessionID string and a mode string or null"),
|
|
81
|
+
output: schema(isRecord, "output must be an object"),
|
|
82
|
+
},
|
|
83
|
+
"tier-request.get": {
|
|
84
|
+
input: schema(hasSessionID, "input must be an object with a sessionID string"),
|
|
85
|
+
output: schema(isRecord, "output must be an object"),
|
|
86
|
+
},
|
|
87
|
+
"tier-request.set": {
|
|
88
|
+
input: schema(isTierRequestSet, "input must be an object with a sessionID string and a tier string or null"),
|
|
89
|
+
output: schema(isRecord, "output must be an object"),
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
events: {
|
|
93
|
+
"settings-changed": {
|
|
94
|
+
schema: schema(isRecord, "event data must be an object"),
|
|
95
|
+
},
|
|
96
|
+
"session-mode-changed": {
|
|
97
|
+
schema: schema(hasSessionID, "event data must be an object with a sessionID string"),
|
|
98
|
+
},
|
|
99
|
+
"tier-request-changed": {
|
|
100
|
+
schema: schema(hasSessionID, "event data must be an object with a sessionID string"),
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
});
|
|
104
|
+
//# sourceMappingURL=definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/rpc/definition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { OperatingMode } from "../core/scheduler/types.js";
|
|
2
|
+
import type { TierName } from "../core/tier-policy/types.js";
|
|
3
|
+
import type { SessionModeSetResult } from "../state/session-modes/index.js";
|
|
4
|
+
import type { PatchResult } from "../state/settings/types.js";
|
|
5
|
+
import type { SettingsPatch, SettingsV1 } from "../state/settings/index.js";
|
|
6
|
+
import type { Receipt } from "../state/receipts/types.js";
|
|
7
|
+
import type { StatusSnapshot } from "./status.js";
|
|
8
|
+
export interface AdaptiveRpcSource {
|
|
9
|
+
settings(): Promise<SettingsV1>;
|
|
10
|
+
updateSettings(patch: SettingsPatch): Promise<PatchResult>;
|
|
11
|
+
status(): Promise<StatusSnapshot>;
|
|
12
|
+
receipts(): Promise<Receipt[]>;
|
|
13
|
+
getSessionMode(sessionID: string): Promise<OperatingMode | null>;
|
|
14
|
+
setSessionMode(sessionID: string, mode: OperatingMode | null): Promise<void>;
|
|
15
|
+
getTierRequest(sessionID: string): Promise<TierName | null>;
|
|
16
|
+
noteTierRequest(sessionID: string, tier: string): boolean;
|
|
17
|
+
setTierRequest(sessionID: string, tier: TierName | null): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
export type SettingsChangedEmit = (name: "settings-changed", data: {
|
|
20
|
+
version: number;
|
|
21
|
+
}) => unknown;
|
|
22
|
+
/**
|
|
23
|
+
* Correlated emit: each call site pairs the event name with its own payload
|
|
24
|
+
* shape — an invalid pairing is a type error, and the registration site can
|
|
25
|
+
* forward the tuple to the host emitter untouched.
|
|
26
|
+
*/
|
|
27
|
+
export type AdaptiveRpcEmit = (...args: ["settings-changed", {
|
|
28
|
+
version: number;
|
|
29
|
+
}] | ["session-mode-changed", {
|
|
30
|
+
sessionID: string;
|
|
31
|
+
}] | ["tier-request-changed", {
|
|
32
|
+
sessionID: string;
|
|
33
|
+
}]) => unknown;
|
|
34
|
+
/** A successful tier-request write; mirrors the SessionModeSetResult convention. */
|
|
35
|
+
export type TierRequestSetResult = {
|
|
36
|
+
readonly ok: true;
|
|
37
|
+
} | {
|
|
38
|
+
readonly ok: false;
|
|
39
|
+
readonly errors: readonly string[];
|
|
40
|
+
};
|
|
41
|
+
export declare function adaptiveRpcHandlers(source: AdaptiveRpcSource, emit?: AdaptiveRpcEmit): {
|
|
42
|
+
"settings.get": (input: undefined) => Promise<SettingsV1>;
|
|
43
|
+
"settings.set": (input: SettingsPatch) => Promise<PatchResult>;
|
|
44
|
+
"status.get": (input: undefined) => Promise<StatusSnapshot>;
|
|
45
|
+
"receipts.list": (input: undefined) => Promise<Receipt[]>;
|
|
46
|
+
"session-mode.get": (input: {
|
|
47
|
+
sessionID: string;
|
|
48
|
+
}) => Promise<{
|
|
49
|
+
mode: OperatingMode | null;
|
|
50
|
+
}>;
|
|
51
|
+
"session-mode.set": (input: {
|
|
52
|
+
sessionID: string;
|
|
53
|
+
mode: OperatingMode | null;
|
|
54
|
+
}) => Promise<SessionModeSetResult>;
|
|
55
|
+
"tier-request.get": (input: {
|
|
56
|
+
sessionID: string;
|
|
57
|
+
}) => Promise<{
|
|
58
|
+
tier: TierName | null;
|
|
59
|
+
}>;
|
|
60
|
+
"tier-request.set": (input: {
|
|
61
|
+
sessionID: string;
|
|
62
|
+
tier: string | null;
|
|
63
|
+
}) => Promise<TierRequestSetResult>;
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/rpc/handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RPC handler binding (ADP-034/036): adapts the supervisor's state API to the
|
|
3
|
+
* typed RPC methods. Handlers never throw for expected outcomes — an invalid
|
|
4
|
+
* patch is a per-field `PatchResult`, and an internal failure degrades to
|
|
5
|
+
* `{ ok: false }` (fail-open, ADP-031). Read methods propagate host errors so
|
|
6
|
+
* surfaces can show them honestly.
|
|
7
|
+
*/
|
|
8
|
+
import { OPERATING_MODES } from "../core/scheduler/types.js";
|
|
9
|
+
import { TIERS } from "../core/tier-policy/types.js";
|
|
10
|
+
import { logFailOpen } from "../supervisor/log.js";
|
|
11
|
+
import { isValidSessionID } from "../state/session-modes/index.js";
|
|
12
|
+
/** Per-field errors for a session-mode patch, mirroring the settings contract. */
|
|
13
|
+
function sessionModeSetError(input) {
|
|
14
|
+
if (!isValidSessionID(input.sessionID)) {
|
|
15
|
+
return "sessionID must be a non-empty string of at most 128 characters";
|
|
16
|
+
}
|
|
17
|
+
if (input.mode !== null && !OPERATING_MODES.includes(input.mode)) {
|
|
18
|
+
return `mode must be one of ${OPERATING_MODES.join(", ")} or null`;
|
|
19
|
+
}
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
/** Same contract for a tier-request patch (ADP-055): vocabulary-gated tier. */
|
|
23
|
+
function tierRequestSetError(input) {
|
|
24
|
+
if (!isValidSessionID(input.sessionID)) {
|
|
25
|
+
return "sessionID must be a non-empty string of at most 128 characters";
|
|
26
|
+
}
|
|
27
|
+
if (input.tier !== null && !TIERS.includes(input.tier)) {
|
|
28
|
+
return `tier must be one of ${TIERS.join(", ")} or null`;
|
|
29
|
+
}
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
export function adaptiveRpcHandlers(source, emit) {
|
|
33
|
+
return {
|
|
34
|
+
"settings.get": () => source.settings(),
|
|
35
|
+
"settings.set": async (patch) => {
|
|
36
|
+
try {
|
|
37
|
+
const result = await source.updateSettings(patch);
|
|
38
|
+
if (result.ok && emit !== undefined) {
|
|
39
|
+
try {
|
|
40
|
+
await emit("settings-changed", { version: result.settings.version });
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
logFailOpen("rpc-emit", error);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
logFailOpen("rpc-set", error);
|
|
50
|
+
return { ok: false, errors: ["internal error"] };
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"status.get": () => source.status(),
|
|
54
|
+
"receipts.list": () => source.receipts(),
|
|
55
|
+
"session-mode.get": (input) => source.getSessionMode(input.sessionID).then((mode) => ({ mode })),
|
|
56
|
+
"session-mode.set": async (input) => {
|
|
57
|
+
const invalid = sessionModeSetError(input);
|
|
58
|
+
if (invalid !== undefined)
|
|
59
|
+
return { ok: false, errors: [invalid] };
|
|
60
|
+
try {
|
|
61
|
+
await source.setSessionMode(input.sessionID, input.mode);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
logFailOpen("rpc-set", error);
|
|
65
|
+
return { ok: false, errors: ["internal error"] };
|
|
66
|
+
}
|
|
67
|
+
if (emit !== undefined) {
|
|
68
|
+
try {
|
|
69
|
+
await emit("session-mode-changed", { sessionID: input.sessionID });
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
logFailOpen("rpc-emit", error);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return { ok: true };
|
|
76
|
+
},
|
|
77
|
+
"tier-request.get": (input) => source.getTierRequest(input.sessionID).then((tier) => ({ tier })),
|
|
78
|
+
"tier-request.set": async (input) => {
|
|
79
|
+
const invalid = tierRequestSetError(input);
|
|
80
|
+
if (invalid !== undefined)
|
|
81
|
+
return { ok: false, errors: [invalid] };
|
|
82
|
+
if (input.tier !== null) {
|
|
83
|
+
// A non-null tier is a sticky record: noteTierRequest re-validates the
|
|
84
|
+
// vocabulary (post-gate this cannot fail, so treat `false` as internal).
|
|
85
|
+
if (!source.noteTierRequest(input.sessionID, input.tier)) {
|
|
86
|
+
logFailOpen("rpc-set", new Error("tier request rejected"));
|
|
87
|
+
return { ok: false, errors: ["internal error"] };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
try {
|
|
92
|
+
await source.setTierRequest(input.sessionID, null);
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
logFailOpen("rpc-set", error);
|
|
96
|
+
return { ok: false, errors: ["internal error"] };
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (emit !== undefined) {
|
|
100
|
+
try {
|
|
101
|
+
await emit("tier-request-changed", { sessionID: input.sessionID });
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
logFailOpen("rpc-emit", error);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return { ok: true };
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/rpc/handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Status snapshot for the control surfaces (ADP-033): a bounded, secret-free
|
|
3
|
+
* view of the settings and the resource-health state of every configured
|
|
4
|
+
* resource. Pure — the supervisor (or any future caller) gathers the inputs.
|
|
5
|
+
*/
|
|
6
|
+
import type { OperatingMode } from "../core/scheduler/types.js";
|
|
7
|
+
import type { ModelRef } from "../core/work-unit/types.js";
|
|
8
|
+
import type { TierName } from "../core/tier-policy/types.js";
|
|
9
|
+
import type { ResourceRecord } from "../health/resource-health/types.js";
|
|
10
|
+
import type { CapacityReading } from "../health/capacity/types.js";
|
|
11
|
+
import type { SettingsV1 } from "../state/settings/index.js";
|
|
12
|
+
export interface TierResourceStatus {
|
|
13
|
+
ref: ModelRef;
|
|
14
|
+
health: ResourceRecord["health"];
|
|
15
|
+
breaker: ResourceRecord["breaker"]["state"];
|
|
16
|
+
windowed: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Wall-clock deadline of the active window (ms epoch); null when unwindowed.
|
|
19
|
+
* Null — not undefined: the host RPC encoder rejects JSON objects carrying a
|
|
20
|
+
* present-but-undefined key ("Expected JSON value"), which 500'd every
|
|
21
|
+
* status.get once any resource was configured.
|
|
22
|
+
*/
|
|
23
|
+
windowUntil: number | null;
|
|
24
|
+
/** Used capacity as a rounded whole percent; null when no reading exists. */
|
|
25
|
+
usedPercent: number | null;
|
|
26
|
+
/** Wall-clock capacity reset deadline (ms epoch); null when unread. */
|
|
27
|
+
resetAt: number | null;
|
|
28
|
+
}
|
|
29
|
+
export interface StatusSnapshot {
|
|
30
|
+
mode: OperatingMode;
|
|
31
|
+
pin: ModelRef | null;
|
|
32
|
+
tiers: Readonly<Record<TierName, readonly TierResourceStatus[]>>;
|
|
33
|
+
parked: number;
|
|
34
|
+
receipts: number;
|
|
35
|
+
}
|
|
36
|
+
export declare function buildStatus(input: {
|
|
37
|
+
settings: SettingsV1;
|
|
38
|
+
health: readonly ResourceRecord[];
|
|
39
|
+
capacity: Readonly<Record<string, CapacityReading | null>>;
|
|
40
|
+
parked: number;
|
|
41
|
+
receipts: number;
|
|
42
|
+
}): StatusSnapshot;
|
|
43
|
+
//# sourceMappingURL=status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/rpc/status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAE5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAElE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAE5D,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,QAAQ,CAAA;IACb,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;IAChC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAA;IAC3C,QAAQ,EAAE,OAAO,CAAA;IACjB;;;;;OAKG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,6EAA6E;IAC7E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,uEAAuE;IACvE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,CAAA;IACnB,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAA;IACpB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC,CAAC,CAAA;IAChE,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE;IACjC,QAAQ,EAAE,UAAU,CAAA;IACpB,MAAM,EAAE,SAAS,cAAc,EAAE,CAAA;IACjC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC,CAAC,CAAA;IAC1D,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB,GAAG,cAAc,CA0BjB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { schedulerHealthKey } from "../core/scheduler/index.js";
|
|
2
|
+
import { TIERS } from "../core/tier-policy/types.js";
|
|
3
|
+
import { resourceKeyID } from "../health/resource-health/index.js";
|
|
4
|
+
export function buildStatus(input) {
|
|
5
|
+
const byKey = new Map();
|
|
6
|
+
for (const record of input.health)
|
|
7
|
+
byKey.set(resourceKeyID(record.key), record);
|
|
8
|
+
const tiers = {};
|
|
9
|
+
for (const tier of TIERS) {
|
|
10
|
+
tiers[tier] = input.settings.tiers[tier].map((ref) => {
|
|
11
|
+
const record = byKey.get(schedulerHealthKey(ref));
|
|
12
|
+
const capacityReading = input.capacity[schedulerHealthKey(ref)] ?? null;
|
|
13
|
+
return {
|
|
14
|
+
ref,
|
|
15
|
+
health: record?.health ?? "healthy",
|
|
16
|
+
breaker: record?.breaker.state ?? "closed",
|
|
17
|
+
windowed: record?.window !== undefined,
|
|
18
|
+
windowUntil: record?.window?.until ?? null,
|
|
19
|
+
usedPercent: capacityUsedPercent(capacityReading),
|
|
20
|
+
resetAt: capacityReading?.resetAt ?? null,
|
|
21
|
+
};
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
mode: input.settings.mode,
|
|
26
|
+
pin: input.settings.pin,
|
|
27
|
+
tiers,
|
|
28
|
+
parked: input.parked,
|
|
29
|
+
receipts: input.receipts,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Derives the used-capacity percentage from a reading. Readings may carry any
|
|
34
|
+
* subset of the two ratios: usedRatio directly, or the remainder inferred from
|
|
35
|
+
* remainingRatio. A reading with neither ratio is still present (confidence,
|
|
36
|
+
* resetAt may be set) but yields no percentage — null, not undefined.
|
|
37
|
+
*/
|
|
38
|
+
function capacityUsedPercent(reading) {
|
|
39
|
+
if (reading?.usedRatio !== undefined)
|
|
40
|
+
return Math.round(reading.usedRatio * 100);
|
|
41
|
+
if (reading?.remainingRatio !== undefined)
|
|
42
|
+
return Math.round((1 - reading.remainingRatio) * 100);
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/rpc/status.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAG/D,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAGpD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AA6BlE,MAAM,UAAU,WAAW,CAAC,KAM3B;IACC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAA;IAC/C,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,MAAM;QAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAA;IAC/E,MAAM,KAAK,GAAG,EAA4C,CAAA;IAC1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACnD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;YACjD,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAA;YACvE,OAAO;gBACL,GAAG;gBACH,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS;gBACnC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,QAAQ;gBAC1C,QAAQ,EAAE,MAAM,EAAE,MAAM,KAAK,SAAS;gBACtC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,IAAI;gBAC1C,WAAW,EAAE,mBAAmB,CAAC,eAAe,CAAC;gBACjD,OAAO,EAAE,eAAe,EAAE,OAAO,IAAI,IAAI;aAC1C,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;QACzB,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG;QACvB,KAAK;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,OAA+B;IAC1D,IAAI,OAAO,EAAE,SAAS,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC,CAAA;IAChF,IAAI,OAAO,EAAE,cAAc,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,CAAA;IAChG,OAAO,IAAI,CAAA;AACb,CAAC"}
|
package/dist/rpc.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RPC entrypoint: the typed definition shared by the server plugin and the
|
|
3
|
+
* control surfaces, plus the handler binding used server-side.
|
|
4
|
+
*/
|
|
5
|
+
export { adaptiveRpc, ADAPTIVE_RPC_ID } from "./rpc/definition.js";
|
|
6
|
+
export type { AdaptiveRpc } from "./rpc/definition.js";
|
|
7
|
+
export { adaptiveRpcHandlers } from "./rpc/handlers.js";
|
|
8
|
+
export type { AdaptiveRpcSource, AdaptiveRpcEmit, SettingsChangedEmit, TierRequestSetResult, } from "./rpc/handlers.js";
|
|
9
|
+
export { buildStatus } from "./rpc/status.js";
|
|
10
|
+
export type { StatusSnapshot, TierResourceStatus } from "./rpc/status.js";
|
|
11
|
+
//# sourceMappingURL=rpc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAClE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA"}
|
package/dist/rpc.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RPC entrypoint: the typed definition shared by the server plugin and the
|
|
3
|
+
* control surfaces, plus the handler binding used server-side.
|
|
4
|
+
*/
|
|
5
|
+
export { adaptiveRpc, ADAPTIVE_RPC_ID } from "./rpc/definition.js";
|
|
6
|
+
export { adaptiveRpcHandlers } from "./rpc/handlers.js";
|
|
7
|
+
export { buildStatus } from "./rpc/status.js";
|
|
8
|
+
//# sourceMappingURL=rpc.js.map
|
package/dist/rpc.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAElE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAOvD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA"}
|