@openrig/cli 0.5.3 → 0.5.5
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/daemon/assets/guidance/openrig-start.md +7 -0
- package/daemon/assets/onboarding/01-world-and-purpose.md +52 -0
- package/daemon/assets/onboarding/02-self-and-competent-action.md +57 -0
- package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
- package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
- package/daemon/assets/plugins/openrig-core/README.md +5 -2
- package/daemon/assets/plugins/openrig-core/hooks/claude.json +3 -12
- package/daemon/assets/plugins/openrig-core/hooks/codex.json +5 -12
- package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +196 -106
- package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +18 -23
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/CHANGELOG.md +92 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/REVISION-GUIDE.md +34 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/ROADMAP.md +23 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/ROLLOUT.md +234 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/SKILL.md +404 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/compose.py +653 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/scaffold.sh +34 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/trace-due.sh +32 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/trace-stamp.sh +5 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/trunk-diff.sh +18 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/LEARNED.md +40 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/NOTES.md +9 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/PLAYBOOK.md +5 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/SOP.md +24 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/SPEC.md +54 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +5 -0
- package/daemon/assets/plugins/openrig-core/skills/refocusing/SKILL.md +31 -0
- package/daemon/assets/plugins/openrig-core/skills/refocusing/references/refocus.md +22 -0
- package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +221 -0
- package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +3 -3
- package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +4 -9
- package/daemon/context-packs/onboarding-width/manifest.yaml +11 -0
- package/daemon/context-packs/{world/install/reference-material.md → onboarding-width/public-reference-material.md} +4 -26
- package/daemon/context-packs/{world/install/what-you-can-do.md → onboarding-width/public-what-you-can-do.md} +13 -9
- package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -1
- package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/attention-queue/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/requirements-writer/SKILL.md +21 -15
- package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +3 -3
- package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/brainstorming/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/executing-plans/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/using-superpowers/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/writing-plans/manifest.yaml +1 -1
- package/daemon/context-packs/world-example/manifest.yaml +8 -0
- package/daemon/context-packs/world-example/your-world.md +37 -0
- package/daemon/dist/adapters/claude-code-adapter.d.ts +15 -0
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +57 -0
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/daemon/dist/adapters/tmux.d.ts +31 -0
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +31 -11
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/daemon-db-path.d.ts.map +1 -1
- package/daemon/dist/daemon-db-path.js +50 -2
- package/daemon/dist/daemon-db-path.js.map +1 -1
- package/daemon/dist/db/all-migrations.d.ts.map +1 -1
- package/daemon/dist/db/all-migrations.js +4 -0
- package/daemon/dist/db/all-migrations.js.map +1 -1
- package/daemon/dist/db/migrations/072_thread_seat_map.d.ts +3 -0
- package/daemon/dist/db/migrations/072_thread_seat_map.d.ts.map +1 -0
- package/daemon/dist/db/migrations/072_thread_seat_map.js +22 -0
- package/daemon/dist/db/migrations/072_thread_seat_map.js.map +1 -0
- package/daemon/dist/db/migrations/073_queue_transition_wakes.d.ts +3 -0
- package/daemon/dist/db/migrations/073_queue_transition_wakes.d.ts.map +1 -0
- package/daemon/dist/db/migrations/073_queue_transition_wakes.js +21 -0
- package/daemon/dist/db/migrations/073_queue_transition_wakes.js.map +1 -0
- package/daemon/dist/domain/activity-taxonomy.d.ts +112 -0
- package/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -0
- package/daemon/dist/domain/activity-taxonomy.js +99 -0
- package/daemon/dist/domain/activity-taxonomy.js.map +1 -0
- package/daemon/dist/domain/bind-plan.d.ts +19 -0
- package/daemon/dist/domain/bind-plan.d.ts.map +1 -0
- package/daemon/dist/domain/bind-plan.js +25 -0
- package/daemon/dist/domain/bind-plan.js.map +1 -0
- package/daemon/dist/domain/event-bus.d.ts +6 -0
- package/daemon/dist/domain/event-bus.d.ts.map +1 -1
- package/daemon/dist/domain/event-bus.js +15 -5
- package/daemon/dist/domain/event-bus.js.map +1 -1
- package/daemon/dist/domain/gateway/gateway-process-main.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/gateway-process-main.js +9 -0
- package/daemon/dist/domain/gateway/gateway-process-main.js.map +1 -1
- package/daemon/dist/domain/gateway/gateway-process.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/gateway-process.js +9 -0
- package/daemon/dist/domain/gateway/gateway-process.js.map +1 -1
- package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +80 -0
- package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/gateway-subsystem.js +149 -0
- package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -0
- package/daemon/dist/domain/gateway/human-registry.d.ts +109 -0
- package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/human-registry.js +250 -0
- package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
- package/{dist → daemon/dist/domain/gateway}/slack/config.d.ts +8 -5
- package/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -0
- package/{dist → daemon/dist/domain/gateway}/slack/config.js +8 -6
- package/daemon/dist/domain/gateway/slack/config.js.map +1 -0
- package/{dist → daemon/dist/domain/gateway}/slack/inbound-admission.d.ts +1 -1
- package/daemon/dist/domain/gateway/slack/inbound-admission.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/slack/inbound-admission.js.map +1 -0
- package/{dist → daemon/dist/domain/gateway}/slack/inbound.d.ts +14 -3
- package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -0
- package/{dist → daemon/dist/domain/gateway}/slack/inbound.js +6 -5
- package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -0
- package/daemon/dist/domain/gateway/slack/message.d.ts +80 -0
- package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/slack/message.js +164 -0
- package/daemon/dist/domain/gateway/slack/message.js.map +1 -0
- package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +54 -0
- package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/slack/outbound-driver.js +96 -0
- package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -0
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts +53 -0
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/slack/queue-access.js +72 -0
- package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -0
- package/daemon/dist/domain/gateway/slack/secrets.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/slack/secrets.js.map +1 -0
- package/daemon/dist/domain/gateway/slack/slack-api.d.ts +106 -0
- package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/slack/slack-api.js +198 -0
- package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -0
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +47 -0
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/slack/slack-delivery.js +147 -0
- package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -0
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +21 -0
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js +198 -0
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -0
- package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +30 -0
- package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/slack/socket-inbound.js +99 -0
- package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -0
- package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -0
- package/daemon/dist/domain/gateway/slack/thread-routing.d.ts +17 -0
- package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/slack/thread-routing.js +35 -0
- package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -0
- package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +56 -0
- package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/slack/thread-seat-map.js +103 -0
- package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -0
- package/daemon/dist/domain/gateway/spawn-gateway.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/spawn-gateway.js +9 -0
- package/daemon/dist/domain/gateway/spawn-gateway.js.map +1 -1
- package/daemon/dist/domain/gateway/transport.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/transport.js +9 -0
- package/daemon/dist/domain/gateway/transport.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +20 -0
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/parked-query.d.ts +81 -0
- package/daemon/dist/domain/parked-query.d.ts.map +1 -0
- package/daemon/dist/domain/parked-query.js +126 -0
- package/daemon/dist/domain/parked-query.js.map +1 -0
- package/daemon/dist/domain/plugin-discovery-service.d.ts +16 -0
- package/daemon/dist/domain/plugin-discovery-service.d.ts.map +1 -1
- package/daemon/dist/domain/plugin-discovery-service.js +175 -1
- package/daemon/dist/domain/plugin-discovery-service.js.map +1 -1
- package/daemon/dist/domain/plugin-vendor-service.d.ts +9 -5
- package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
- package/daemon/dist/domain/plugin-vendor-service.js +101 -12
- package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
- package/daemon/dist/domain/queue-pickup.d.ts +38 -0
- package/daemon/dist/domain/queue-pickup.d.ts.map +1 -0
- package/daemon/dist/domain/queue-pickup.js +67 -0
- package/daemon/dist/domain/queue-pickup.js.map +1 -0
- package/daemon/dist/domain/queue-repository.d.ts +41 -11
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +316 -36
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.d.ts +77 -0
- package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -0
- package/daemon/dist/domain/queue-stuck-sweep.js +348 -0
- package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -0
- package/daemon/dist/domain/queue-wake-ladder.d.ts +96 -0
- package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -0
- package/daemon/dist/domain/queue-wake-ladder.js +533 -0
- package/daemon/dist/domain/queue-wake-ladder.js.map +1 -0
- package/daemon/dist/domain/queue-wake-repository.d.ts +37 -0
- package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -0
- package/daemon/dist/domain/queue-wake-repository.js +80 -0
- package/daemon/dist/domain/queue-wake-repository.js.map +1 -0
- package/daemon/dist/domain/rebuild-priming-chain.d.ts +28 -0
- package/daemon/dist/domain/rebuild-priming-chain.d.ts.map +1 -0
- package/daemon/dist/domain/rebuild-priming-chain.js +71 -0
- package/daemon/dist/domain/rebuild-priming-chain.js.map +1 -0
- package/daemon/dist/domain/reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/reconciler.js +6 -1
- package/daemon/dist/domain/reconciler.js.map +1 -1
- package/daemon/dist/domain/review/compose.d.ts +3 -1
- package/daemon/dist/domain/review/compose.d.ts.map +1 -1
- package/daemon/dist/domain/review/compose.js +14 -8
- package/daemon/dist/domain/review/compose.js.map +1 -1
- package/daemon/dist/domain/review/gather.d.ts.map +1 -1
- package/daemon/dist/domain/review/gather.js +3 -1
- package/daemon/dist/domain/review/gather.js.map +1 -1
- package/daemon/dist/domain/rig-repository.d.ts +4 -0
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +9 -0
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts +12 -0
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +50 -0
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/running-name-guard.d.ts +52 -0
- package/daemon/dist/domain/running-name-guard.d.ts.map +1 -0
- package/daemon/dist/domain/running-name-guard.js +34 -0
- package/daemon/dist/domain/running-name-guard.js.map +1 -0
- package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +6 -5
- package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
- package/daemon/dist/domain/scope/plan-lock-artifacts.js +23 -20
- package/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
- package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +4 -5
- package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scaffold-placeholder.js +6 -7
- package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
- package/daemon/dist/domain/scope/scope-approve.d.ts +1 -1
- package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-approve.js +5 -4
- package/daemon/dist/domain/scope/scope-approve.js.map +1 -1
- package/daemon/dist/domain/scope/scope-audit.d.ts +42 -3
- package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-audit.js +78 -93
- package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
- package/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-view-projection.js +7 -2
- package/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
- package/daemon/dist/domain/seat-activity-service.d.ts +91 -0
- package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-activity-service.js +416 -1
- package/daemon/dist/domain/seat-activity-service.js.map +1 -1
- package/daemon/dist/domain/seat-handover-planner.d.ts +14 -0
- package/daemon/dist/domain/seat-handover-planner.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-planner.js +14 -1
- package/daemon/dist/domain/seat-handover-planner.js.map +1 -1
- package/daemon/dist/domain/seat-handover-service.d.ts +54 -1
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +162 -19
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/seat-lifecycle-service.d.ts +97 -0
- package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -0
- package/daemon/dist/domain/seat-lifecycle-service.js +312 -0
- package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -0
- package/daemon/dist/domain/session-transport.d.ts +8 -5
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +40 -18
- package/daemon/dist/domain/session-transport.js.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.d.ts +6 -1
- package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.js +3 -3
- package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +69 -0
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.js +48 -0
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/daemon/dist/domain/view-projector.d.ts +1 -1
- package/daemon/dist/domain/view-projector.d.ts.map +1 -1
- package/daemon/dist/domain/view-projector.js +41 -2
- package/daemon/dist/domain/view-projector.js.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.d.ts +7 -0
- package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.js +3 -0
- package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
- package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts +4 -3
- package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js +56 -196
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
- package/daemon/dist/domain/workspace/getting-started-narrative.js +1 -1
- package/daemon/dist/domain/workspace/getting-started-narrative.js.map +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.d.ts +8 -11
- package/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.js +23 -25
- package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
- package/daemon/dist/gateway-slack-surface.d.ts +4 -0
- package/daemon/dist/gateway-slack-surface.d.ts.map +1 -0
- package/daemon/dist/gateway-slack-surface.js +8 -0
- package/daemon/dist/gateway-slack-surface.js.map +1 -0
- package/daemon/dist/index.d.ts +29 -0
- package/daemon/dist/index.d.ts.map +1 -1
- package/daemon/dist/index.js +99 -4
- package/daemon/dist/index.js.map +1 -1
- package/daemon/dist/lib/pane-envelope.d.ts +1 -1
- package/daemon/dist/lib/pane-envelope.d.ts.map +1 -1
- package/daemon/dist/lib/pane-envelope.js +8 -14
- package/daemon/dist/lib/pane-envelope.js.map +1 -1
- package/daemon/dist/routes/activity.d.ts +13 -0
- package/daemon/dist/routes/activity.d.ts.map +1 -1
- package/daemon/dist/routes/activity.js +186 -0
- package/daemon/dist/routes/activity.js.map +1 -1
- package/daemon/dist/routes/config.js +2 -2
- package/daemon/dist/routes/config.js.map +1 -1
- package/daemon/dist/routes/gateway.d.ts +3 -0
- package/daemon/dist/routes/gateway.d.ts.map +1 -0
- package/daemon/dist/routes/gateway.js +46 -0
- package/daemon/dist/routes/gateway.js.map +1 -0
- package/daemon/dist/routes/health-summary.d.ts.map +1 -1
- package/daemon/dist/routes/health-summary.js +8 -0
- package/daemon/dist/routes/health-summary.js.map +1 -1
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +32 -25
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/rigspec.js +20 -6
- package/daemon/dist/routes/rigspec.js.map +1 -1
- package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
- package/daemon/dist/routes/scope-audit.js +72 -13
- package/daemon/dist/routes/scope-audit.js.map +1 -1
- package/daemon/dist/routes/seat.d.ts.map +1 -1
- package/daemon/dist/routes/seat.js +73 -0
- package/daemon/dist/routes/seat.js.map +1 -1
- package/daemon/dist/routes/transport.d.ts.map +1 -1
- package/daemon/dist/routes/transport.js +40 -36
- package/daemon/dist/routes/transport.js.map +1 -1
- package/daemon/dist/routes/up.js +21 -2
- package/daemon/dist/routes/up.js.map +1 -1
- package/daemon/dist/server.d.ts +17 -0
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +25 -4
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/startup.d.ts +4 -0
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +33 -0
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/docs/reference/agent-state-taxonomy.md +106 -0
- package/daemon/docs/reference/project-workspace.md +22 -14
- package/daemon/docs/reference/refocus-channel.md +27 -14
- package/daemon/docs/reference/sdlc-conventions.md +24 -13
- package/daemon/specs/agents/shared/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -1
- package/daemon/specs/agents/shared/skills/pm/requirements-writer/SKILL.md +21 -15
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +1 -1
- package/dist/build-info.js +3 -3
- package/dist/cli-error.js +1 -1
- package/dist/cli-error.js.map +1 -1
- package/dist/commands/broadcast.js +6 -0
- package/dist/commands/broadcast.js.map +1 -1
- package/dist/commands/config-init-workspace.d.ts.map +1 -1
- package/dist/commands/config-init-workspace.js +32 -57
- package/dist/commands/config-init-workspace.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +5 -0
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +13 -3
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +36 -5
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/gateway.d.ts +19 -1
- package/dist/commands/gateway.d.ts.map +1 -1
- package/dist/commands/gateway.js +157 -33
- package/dist/commands/gateway.js.map +1 -1
- package/dist/commands/import.d.ts.map +1 -1
- package/dist/commands/import.js +10 -0
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/parked.d.ts +3 -0
- package/dist/commands/parked.d.ts.map +1 -0
- package/dist/commands/parked.js +83 -0
- package/dist/commands/parked.js.map +1 -0
- package/dist/commands/proof.d.ts +2 -1
- package/dist/commands/proof.d.ts.map +1 -1
- package/dist/commands/proof.js +8 -8
- package/dist/commands/proof.js.map +1 -1
- package/dist/commands/ps.d.ts +10 -0
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +14 -3
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +67 -16
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/scope.d.ts.map +1 -1
- package/dist/commands/scope.js +255 -136
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/seat.d.ts.map +1 -1
- package/dist/commands/seat.js +128 -10
- package/dist/commands/seat.js.map +1 -1
- package/dist/commands/send.d.ts +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +237 -34
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/slack.d.ts +14 -28
- package/dist/commands/slack.d.ts.map +1 -1
- package/dist/commands/slack.js +73 -187
- package/dist/commands/slack.js.map +1 -1
- package/dist/commands/start.d.ts +3 -0
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +12 -5
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +19 -4
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/view.d.ts +4 -2
- package/dist/commands/view.d.ts.map +1 -1
- package/dist/commands/view.js +1 -1
- package/dist/commands/view.js.map +1 -1
- package/dist/commands/walk.d.ts +1 -1
- package/dist/commands/walk.d.ts.map +1 -1
- package/dist/commands/walk.js +20 -10
- package/dist/commands/walk.js.map +1 -1
- package/dist/commands/watchdog.d.ts.map +1 -1
- package/dist/commands/watchdog.js +2 -1
- package/dist/commands/watchdog.js.map +1 -1
- package/dist/commands/workspace.js +1 -1
- package/dist/config-store.d.ts +15 -1
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +60 -0
- package/dist/config-store.js.map +1 -1
- package/dist/cross-host-target.d.ts.map +1 -1
- package/dist/cross-host-target.js +5 -4
- package/dist/cross-host-target.js.map +1 -1
- package/dist/daemon-lifecycle.d.ts +45 -3
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +126 -0
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/scope/capability-delta.d.ts +9 -0
- package/dist/lib/scope/capability-delta.d.ts.map +1 -0
- package/dist/lib/scope/capability-delta.js +73 -0
- package/dist/lib/scope/capability-delta.js.map +1 -0
- package/dist/lib/scope/scaffold-placeholder.d.ts +4 -5
- package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -1
- package/dist/lib/scope/scaffold-placeholder.js +6 -7
- package/dist/lib/scope/scaffold-placeholder.js.map +1 -1
- package/dist/lib/scope/scope-audit.d.ts +42 -3
- package/dist/lib/scope/scope-audit.d.ts.map +1 -1
- package/dist/lib/scope/scope-audit.js +78 -93
- package/dist/lib/scope/scope-audit.js.map +1 -1
- package/dist/lib/scope/scope-fs.d.ts +18 -14
- package/dist/lib/scope/scope-fs.d.ts.map +1 -1
- package/dist/lib/scope/scope-fs.js +60 -29
- package/dist/lib/scope/scope-fs.js.map +1 -1
- package/dist/lib/scope/templates.d.ts +17 -17
- package/dist/lib/scope/templates.d.ts.map +1 -1
- package/dist/lib/scope/templates.js +35 -39
- package/dist/lib/scope/templates.js.map +1 -1
- package/dist/lib/scope-templates/backlog-deprecation.md +3 -1
- package/dist/lib/scope-templates/backlog-tech-debt.md +3 -1
- package/dist/lib/scope-templates/bug-fix.md +3 -1
- package/dist/lib/scope-templates/capability-delta.md +60 -0
- package/dist/lib/scope-templates/mission-placeholder.md +9 -40
- package/dist/lib/scope-templates/mission-progress.md +5 -6
- package/dist/lib/scope-templates/mission-release.md +9 -40
- package/dist/lib/scope-templates/notes.md +14 -0
- package/dist/lib/scope-templates/placeholder.md +3 -1
- package/dist/lib/scope-templates/proof.md +1 -1
- package/dist/lib/scope-templates/release-feature.md +3 -1
- package/dist/lib/scope-templates/research.md +3 -1
- package/dist/lib/scope-templates/slice-progress.md +4 -5
- package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.d.ts +15 -0
- package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js +57 -0
- package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts +31 -0
- package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/tmux.js +31 -11
- package/node_modules/@openrig/daemon/dist/adapters/tmux.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
- package/node_modules/@openrig/daemon/dist/daemon-db-path.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/daemon-db-path.js +50 -2
- package/node_modules/@openrig/daemon/dist/daemon-db-path.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/db/all-migrations.js +4 -0
- package/node_modules/@openrig/daemon/dist/db/all-migrations.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/072_thread_seat_map.d.ts +3 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/072_thread_seat_map.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/072_thread_seat_map.js +22 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/072_thread_seat_map.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/073_queue_transition_wakes.d.ts +3 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/073_queue_transition_wakes.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/073_queue_transition_wakes.js +21 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/073_queue_transition_wakes.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/activity-taxonomy.d.ts +112 -0
- package/node_modules/@openrig/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/activity-taxonomy.js +99 -0
- package/node_modules/@openrig/daemon/dist/domain/activity-taxonomy.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/bind-plan.d.ts +19 -0
- package/node_modules/@openrig/daemon/dist/domain/bind-plan.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/bind-plan.js +25 -0
- package/node_modules/@openrig/daemon/dist/domain/bind-plan.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/event-bus.d.ts +6 -0
- package/node_modules/@openrig/daemon/dist/domain/event-bus.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/event-bus.js +15 -5
- package/node_modules/@openrig/daemon/dist/domain/event-bus.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process-main.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process-main.js +9 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process-main.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process.js +9 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts +80 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js +149 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts +109 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js +250 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.d.ts +44 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.js +62 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound-admission.d.ts +8 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound-admission.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound-admission.js +20 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound-admission.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts +113 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js +146 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/message.d.ts +80 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/message.js +164 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/message.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +54 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.js +96 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts +53 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js +72 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/secrets.d.ts +21 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/secrets.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/secrets.js +73 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/secrets.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.d.ts +106 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.js +198 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +47 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.js +147 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +21 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js +198 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +30 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.js +99 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.d.ts +62 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.js +132 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.d.ts +17 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.js +35 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +56 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.js +103 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/spawn-gateway.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/spawn-gateway.js +9 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/spawn-gateway.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/transport.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/transport.js +9 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/transport.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/node-inventory.js +20 -0
- package/node_modules/@openrig/daemon/dist/domain/node-inventory.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/parked-query.d.ts +81 -0
- package/node_modules/@openrig/daemon/dist/domain/parked-query.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/parked-query.js +126 -0
- package/node_modules/@openrig/daemon/dist/domain/parked-query.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.d.ts +16 -0
- package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.js +175 -1
- package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.d.ts +9 -5
- package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.js +101 -12
- package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-pickup.d.ts +38 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-pickup.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-pickup.js +67 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-pickup.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts +41 -11
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.js +316 -36
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.d.ts +77 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js +348 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.d.ts +96 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.js +533 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts +37 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js +80 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/rebuild-priming-chain.d.ts +28 -0
- package/node_modules/@openrig/daemon/dist/domain/rebuild-priming-chain.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/rebuild-priming-chain.js +71 -0
- package/node_modules/@openrig/daemon/dist/domain/rebuild-priming-chain.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/reconciler.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/reconciler.js +6 -1
- package/node_modules/@openrig/daemon/dist/domain/reconciler.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts +3 -1
- package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/review/compose.js +14 -8
- package/node_modules/@openrig/daemon/dist/domain/review/compose.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/review/gather.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/review/gather.js +3 -1
- package/node_modules/@openrig/daemon/dist/domain/review/gather.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-repository.js +9 -0
- package/node_modules/@openrig/daemon/dist/domain/rig-repository.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +12 -0
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js +50 -0
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/running-name-guard.d.ts +52 -0
- package/node_modules/@openrig/daemon/dist/domain/running-name-guard.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/running-name-guard.js +34 -0
- package/node_modules/@openrig/daemon/dist/domain/running-name-guard.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +6 -5
- package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js +23 -20
- package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts +4 -5
- package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js +6 -7
- package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.d.ts +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.js +5 -4
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts +42 -3
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.js +78 -93
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.js +7 -2
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts +91 -0
- package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js +416 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-planner.d.ts +14 -0
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-planner.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-planner.js +14 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-planner.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts +54 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js +162 -19
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts +97 -0
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js +312 -0
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts +8 -5
- package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/session-transport.js +40 -18
- package/node_modules/@openrig/daemon/dist/domain/session-transport.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts +6 -1
- package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js +3 -3
- package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/types.d.ts +69 -0
- package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/types.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js +48 -0
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/view-projector.d.ts +1 -1
- package/node_modules/@openrig/daemon/dist/domain/view-projector.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/view-projector.js +41 -2
- package/node_modules/@openrig/daemon/dist/domain/view-projector.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts +7 -0
- package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js +3 -0
- package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts +4 -3
- package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.js +56 -196
- package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/getting-started-narrative.js +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/getting-started-narrative.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.d.ts +8 -11
- package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js +23 -25
- package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/gateway-slack-surface.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/gateway-slack-surface.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/gateway-slack-surface.js +8 -0
- package/node_modules/@openrig/daemon/dist/gateway-slack-surface.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/index.d.ts +29 -0
- package/node_modules/@openrig/daemon/dist/index.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/index.js +99 -4
- package/node_modules/@openrig/daemon/dist/index.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/lib/pane-envelope.d.ts +1 -1
- package/node_modules/@openrig/daemon/dist/lib/pane-envelope.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/lib/pane-envelope.js +8 -14
- package/node_modules/@openrig/daemon/dist/lib/pane-envelope.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/activity.d.ts +13 -0
- package/node_modules/@openrig/daemon/dist/routes/activity.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/activity.js +186 -0
- package/node_modules/@openrig/daemon/dist/routes/activity.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/config.js +2 -2
- package/node_modules/@openrig/daemon/dist/routes/config.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/gateway.d.ts +3 -0
- package/node_modules/@openrig/daemon/dist/routes/gateway.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/routes/gateway.js +46 -0
- package/node_modules/@openrig/daemon/dist/routes/gateway.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/routes/health-summary.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/health-summary.js +8 -0
- package/node_modules/@openrig/daemon/dist/routes/health-summary.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/queue.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/queue.js +32 -25
- package/node_modules/@openrig/daemon/dist/routes/queue.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/rigspec.js +20 -6
- package/node_modules/@openrig/daemon/dist/routes/rigspec.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/scope-audit.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/scope-audit.js +72 -13
- package/node_modules/@openrig/daemon/dist/routes/scope-audit.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/seat.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/seat.js +73 -0
- package/node_modules/@openrig/daemon/dist/routes/seat.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/transport.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/transport.js +40 -36
- package/node_modules/@openrig/daemon/dist/routes/transport.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/up.js +21 -2
- package/node_modules/@openrig/daemon/dist/routes/up.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/server.d.ts +17 -0
- package/node_modules/@openrig/daemon/dist/server.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/server.js +25 -4
- package/node_modules/@openrig/daemon/dist/server.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/startup.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/startup.js +33 -0
- package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
- package/node_modules/@openrig/daemon/package.json +5 -1
- package/package.json +1 -1
- package/tui/dist/daemon-client.d.ts +5 -0
- package/tui/dist/daemon-client.d.ts.map +1 -1
- package/tui/dist/daemon-client.js +17 -0
- package/tui/dist/daemon-client.js.map +1 -1
- package/tui/dist/hydrate.d.ts.map +1 -1
- package/tui/dist/hydrate.js +12 -4
- package/tui/dist/hydrate.js.map +1 -1
- package/tui/dist/live-events.d.ts +21 -0
- package/tui/dist/live-events.d.ts.map +1 -0
- package/tui/dist/live-events.js +88 -0
- package/tui/dist/live-events.js.map +1 -0
- package/tui/dist/live.js +1 -1
- package/tui/dist/main.js +27 -8
- package/tui/dist/main.js.map +1 -1
- package/tui/dist/refresh.d.ts +10 -1
- package/tui/dist/refresh.d.ts.map +1 -1
- package/tui/dist/refresh.js +22 -2
- package/tui/dist/refresh.js.map +1 -1
- package/daemon/context-packs/world/install/01-world-from-primitives.md +0 -97
- package/daemon/context-packs/world/install/02-permission-self-sleep.md +0 -141
- package/daemon/context-packs/world/install/03-what-this-is-for.md +0 -86
- package/daemon/context-packs/world/install/04-ontology.md +0 -790
- package/daemon/context-packs/world/install/05-harness-power-use.md +0 -355
- package/daemon/context-packs/world/install/06-a-competent-turn.md +0 -225
- package/daemon/context-packs/world/install/manifest.yaml +0 -125
- package/dist/lib/scope-templates/mission-brief.md +0 -20
- package/dist/lib/scope-templates/mission-notes.md +0 -102
- package/dist/slack/config.d.ts.map +0 -1
- package/dist/slack/config.js.map +0 -1
- package/dist/slack/connector-server.d.ts +0 -31
- package/dist/slack/connector-server.d.ts.map +0 -1
- package/dist/slack/connector-server.js +0 -108
- package/dist/slack/connector-server.js.map +0 -1
- package/dist/slack/inbound-admission.d.ts.map +0 -1
- package/dist/slack/inbound-admission.js.map +0 -1
- package/dist/slack/inbound.d.ts.map +0 -1
- package/dist/slack/inbound.js.map +0 -1
- package/dist/slack/message.d.ts +0 -39
- package/dist/slack/message.d.ts.map +0 -1
- package/dist/slack/message.js +0 -88
- package/dist/slack/message.js.map +0 -1
- package/dist/slack/outbound.d.ts +0 -39
- package/dist/slack/outbound.d.ts.map +0 -1
- package/dist/slack/outbound.js +0 -63
- package/dist/slack/outbound.js.map +0 -1
- package/dist/slack/queue-bridge.d.ts +0 -61
- package/dist/slack/queue-bridge.d.ts.map +0 -1
- package/dist/slack/queue-bridge.js +0 -114
- package/dist/slack/queue-bridge.js.map +0 -1
- package/dist/slack/secrets.d.ts.map +0 -1
- package/dist/slack/secrets.js.map +0 -1
- package/dist/slack/slack-api.d.ts +0 -49
- package/dist/slack/slack-api.d.ts.map +0 -1
- package/dist/slack/slack-api.js +0 -110
- package/dist/slack/slack-api.js.map +0 -1
- package/dist/slack/slack-delivery.d.ts +0 -14
- package/dist/slack/slack-delivery.d.ts.map +0 -1
- package/dist/slack/slack-delivery.js +0 -28
- package/dist/slack/slack-delivery.js.map +0 -1
- package/dist/slack/state-store.d.ts.map +0 -1
- package/dist/slack/state-store.js.map +0 -1
- /package/{dist → daemon/dist/domain/gateway}/slack/inbound-admission.js +0 -0
- /package/{dist → daemon/dist/domain/gateway}/slack/secrets.d.ts +0 -0
- /package/{dist → daemon/dist/domain/gateway}/slack/secrets.js +0 -0
- /package/{dist → daemon/dist/domain/gateway}/slack/state-store.d.ts +0 -0
- /package/{dist → daemon/dist/domain/gateway}/slack/state-store.js +0 -0
|
@@ -2,6 +2,7 @@ import type Database from "better-sqlite3";
|
|
|
2
2
|
import type { TmuxAdapter } from "../adapters/tmux.js";
|
|
3
3
|
import type { EventBus } from "./event-bus.js";
|
|
4
4
|
import type { SeatActivity } from "./types.js";
|
|
5
|
+
import type { ActivityEvidence, AdapterRungInventory, ArbitratedSeatState, RungHealthEvent } from "./activity-taxonomy.js";
|
|
5
6
|
/** Default polling cadence: 1Hz. The default silence window is 3s, so
|
|
6
7
|
* 1Hz polling gives at-most ~1s freshness lag on the cached observation. */
|
|
7
8
|
export declare const DEFAULT_POLL_INTERVAL_MS = 1000;
|
|
@@ -27,6 +28,9 @@ export interface SeatActivityServiceDeps {
|
|
|
27
28
|
defaultWindowSeconds: number;
|
|
28
29
|
eventBus?: EventBus;
|
|
29
30
|
now?: () => Date;
|
|
31
|
+
/** S19: the self-report rung producer (Claude pid.json). Consulted per sweep for seats
|
|
32
|
+
* whose declared inventory staffs self-report; absent = the rung is absent. */
|
|
33
|
+
selfReportReader?: (sessionName: string, seatNodeId: string) => ActivityEvidence | null;
|
|
30
34
|
}
|
|
31
35
|
export interface PollSeatOptions {
|
|
32
36
|
silenceWindowSeconds?: number;
|
|
@@ -38,6 +42,7 @@ export declare class SeatActivityService {
|
|
|
38
42
|
private readonly now;
|
|
39
43
|
private readonly latestByPaneId;
|
|
40
44
|
private sweeping;
|
|
45
|
+
private readonly selfReportReader;
|
|
41
46
|
constructor(deps: SeatActivityServiceDeps);
|
|
42
47
|
/**
|
|
43
48
|
* Read the window's last-activity timestamp for `paneId` once and
|
|
@@ -76,5 +81,91 @@ export declare class SeatActivityService {
|
|
|
76
81
|
start(db: Database.Database, intervalMs?: number): void;
|
|
77
82
|
/** Stop the scheduler. Safe to call before start or multiple times. */
|
|
78
83
|
stop(): void;
|
|
84
|
+
private readonly ladder;
|
|
85
|
+
private readonly sessionToSeat;
|
|
86
|
+
private readonly healthListeners;
|
|
87
|
+
private readonly samplerSeqBySession;
|
|
88
|
+
/** An adapter (or an occupant swap) declares which rungs this seat's sources staff.
|
|
89
|
+
* The binding ties the durable seat nodeId to its current pane/session name so the
|
|
90
|
+
* internal sampler can feed the window-sampling rung for this seat. */
|
|
91
|
+
declareRungInventory(binding: {
|
|
92
|
+
seatNodeId: string;
|
|
93
|
+
sessionName: string;
|
|
94
|
+
}, inventory: AdapterRungInventory): void;
|
|
95
|
+
/** Adapters push rung evidence (hooks, self-report, chrome, sampling). Per-source
|
|
96
|
+
* monotonic seq: stale or reordered reports are dropped — a late lower-seq event
|
|
97
|
+
* never revives an idle seat (the SubagentStop class at the service layer). */
|
|
98
|
+
reportEvidence(evidence: ActivityEvidence): void;
|
|
99
|
+
/** A handover/generation swap: its OWN visible event, never an activity transition.
|
|
100
|
+
* Evidence, debounce, contradiction and promotion state are cleared; every known
|
|
101
|
+
* rung's trust drops to `absent` until the successor's adapter RE-DECLARES its
|
|
102
|
+
* inventory (AM-1 corollary: a successor never inherits rung authority). */
|
|
103
|
+
declareOccupantSwap(seatNodeId: string, generation: string): void;
|
|
104
|
+
/** Whether this seat currently has a DECLARED rung inventory (a swap clears it —
|
|
105
|
+
* the successor must re-declare before its rungs regain any trust). */
|
|
106
|
+
hasRungInventory(seatNodeId: string): boolean;
|
|
107
|
+
/** Resolve by CURRENT session name (projection convenience) — state itself stays
|
|
108
|
+
* keyed by the durable seat nodeId. */
|
|
109
|
+
getSeatStateBySession(sessionName: string): ArbitratedSeatState | null;
|
|
110
|
+
/** The arbitrated, seat-keyed state every surface renders from. */
|
|
111
|
+
getSeatState(seatNodeId: string): ArbitratedSeatState | null;
|
|
112
|
+
/** Wait-after-seq read primitive (T1 seam, exposed not consumed here): resolves when
|
|
113
|
+
* the arbitrated seq passes `afterSeq` (a fast pass-through transition still
|
|
114
|
+
* satisfies the wait — the lost-wakeup guard). Timeout resolves null, never throws. */
|
|
115
|
+
waitForSeatState(seatNodeId: string, opts: {
|
|
116
|
+
afterSeq: number;
|
|
117
|
+
timeoutMs: number;
|
|
118
|
+
}): Promise<ArbitratedSeatState | null>;
|
|
119
|
+
/** Rung-health transitions (AM-1): degradations and promotions are VISIBLE, never silent. */
|
|
120
|
+
onRungHealth(listener: (event: RungHealthEvent) => void): void;
|
|
121
|
+
private seatLadder;
|
|
122
|
+
/** Trust for a rung: declared trust when an inventory exists; without a declaration
|
|
123
|
+
* the generic tmux floor (window-sampling) is authoritative and everything else is
|
|
124
|
+
* identity-only — partial-coverage honesty by default. */
|
|
125
|
+
private rungTrust;
|
|
126
|
+
/** Latest evidence for a rung. kind "activity" returns the newest ACTIVITY-BEARING
|
|
127
|
+
* evidence — a needs-input-only event from the same source (e.g. PermissionRequest
|
|
128
|
+
* mid-turn) must not erase what the source last said about working/idle. */
|
|
129
|
+
private latestByRung;
|
|
130
|
+
/** AM-2: a TRIAL rung's evidence is measured against the current authoritative
|
|
131
|
+
* CANDIDATE value (raw ladder decision, pre-debounce) — evidence against evidence,
|
|
132
|
+
* never against the debounced display. Enough agreements over at least the minimum
|
|
133
|
+
* window promote the rung to authoritative, visibly. */
|
|
134
|
+
private measureTrialAgreement;
|
|
135
|
+
/** The raw ladder decision for working/idle: highest authoritative rung with usable,
|
|
136
|
+
* in-window evidence. Hook evidence is TIME-BOUNDED (the one rung that does not
|
|
137
|
+
* self-date its lifecycle) — expired hook evidence falls through, never errors. */
|
|
138
|
+
private rawCandidate;
|
|
139
|
+
private emitRungHealth;
|
|
140
|
+
/** AM-1: persistent cross-rung contradiction (hook claims working while a lower
|
|
141
|
+
* authoritative rung sees idle-at-prompt beyond the stated window) degrades the hook
|
|
142
|
+
* rung to identity-only, VISIBLY — arbitration can never make a silently-dead source
|
|
143
|
+
* authoritative. */
|
|
144
|
+
private checkContradiction;
|
|
145
|
+
private rungsView;
|
|
146
|
+
/** Recompute the arbitrated state. Debounce: a sampling-decided working→idle
|
|
147
|
+
* transition holds until the stated consecutive idle observations or the hard cap;
|
|
148
|
+
* an authoritative turn boundary (hooks/self-report idle) or idle chrome publishes
|
|
149
|
+
* instantly. Chosen against our 1Hz/3s cadence: the 3s silence window already
|
|
150
|
+
* absorbs sub-3s lulls; the 2-tick arbitration debounce absorbs the
|
|
151
|
+
* window-boundary flap. */
|
|
152
|
+
private arbitrate;
|
|
153
|
+
/** AM-R18 push substrate: a change notification (identity + seq) onto the bus — the
|
|
154
|
+
* SSE stream relays it; consumers REHYDRATE from the projection, so the push itself
|
|
155
|
+
* never carries derived vocabulary (no second activity mechanism by construction). */
|
|
156
|
+
private emitActivityChanged;
|
|
157
|
+
private resolveWaiters;
|
|
79
158
|
}
|
|
159
|
+
/** Hook evidence older than this no longer decides working/idle (time-bounded authority). */
|
|
160
|
+
export declare const HOOK_AUTHORITY_WINDOW_MS = 15000;
|
|
161
|
+
/** Persistent hook-vs-sampler contradiction beyond this window degrades the hook rung. */
|
|
162
|
+
export declare const CROSS_RUNG_CONTRADICTION_WINDOW_MS = 10000;
|
|
163
|
+
/** Sampling-decided working→idle needs this many consecutive idle evaluations… */
|
|
164
|
+
export declare const SAMPLING_IDLE_DEBOUNCE_TICKS = 2;
|
|
165
|
+
/** …bounded by this hard cap; authoritative turn boundaries and idle chrome bypass instantly. */
|
|
166
|
+
export declare const SAMPLING_IDLE_DEBOUNCE_CAP_MS = 2500;
|
|
167
|
+
/** AM-2 promotion: a trial rung earns authority after this many agreeing observations… */
|
|
168
|
+
export declare const RUNG_PROMOTION_AGREEMENT_COUNT = 50;
|
|
169
|
+
/** …spread over at least this window of production time. */
|
|
170
|
+
export declare const RUNG_PROMOTION_MIN_WINDOW_MS: number;
|
|
80
171
|
//# sourceMappingURL=seat-activity-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seat-activity-service.d.ts","sourceRoot":"","sources":["../../src/domain/seat-activity-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"seat-activity-service.d.ts","sourceRoot":"","sources":["../../src/domain/seat-activity-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EACV,gBAAgB,EAEhB,oBAAoB,EACpB,mBAAmB,EAEnB,eAAe,EAEhB,MAAM,wBAAwB,CAAC;AAGhC;6EAC6E;AAC7E,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;IAChD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB;oFACgF;IAChF,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,gBAAgB,GAAG,IAAI,CAAC;CACzF;AAED,MAAM,WAAW,eAAe;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4C;IACjE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmC;IAIlE,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgF;gBAErG,IAAI,EAAE,uBAAuB;IAQzC;;;;;;;;;;;;;OAaG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAuDpF;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAIpD,6EAA6E;IAC7E,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIhC;;;;OAIG;IACG,uBAAuB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDnE,OAAO,CAAC,KAAK,CAA+C;IAE5D;;;OAGG;IACH,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAE,MAAiC,GAAG,IAAI;IAUjF,uEAAuE;IACvE,IAAI,IAAI,IAAI;IAWZ,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAC7D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;IAC3D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA+C;IAC/E,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA6B;IAEjE;;4EAEwE;IACxE,oBAAoB,CAClB,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EACpD,SAAS,EAAE,oBAAoB,GAC9B,IAAI;IAWP;;oFAEgF;IAChF,cAAc,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAahD;;;iFAG6E;IAC7E,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAwBjE;4EACwE;IACxE,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAI7C;4CACwC;IACxC,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAKtE,mEAAmE;IACnE,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAO5D;;4FAEwF;IACxF,gBAAgB,CACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAkBtC,6FAA6F;IAC7F,YAAY,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,IAAI;IAI9D,OAAO,CAAC,UAAU;IA4BlB;;+DAE2D;IAC3D,OAAO,CAAC,SAAS;IAOjB;;iFAE6E;IAC7E,OAAO,CAAC,YAAY;IAcpB;;;6DAGyD;IACzD,OAAO,CAAC,qBAAqB;IAwB7B;;wFAEoF;IACpF,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,cAAc;IAqBtB;;;yBAGqB;IACrB,OAAO,CAAC,kBAAkB;IA0B1B,OAAO,CAAC,SAAS;IAejB;;;;;gCAK4B;IAC5B,OAAO,CAAC,SAAS;IAoEjB;;2FAEuF;IACvF,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,cAAc;CAQvB;AA2BD,6FAA6F;AAC7F,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAC/C,0FAA0F;AAC1F,eAAO,MAAM,kCAAkC,QAAS,CAAC;AACzD,kFAAkF;AAClF,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,iGAAiG;AACjG,eAAO,MAAM,6BAA6B,OAAQ,CAAC;AACnD,0FAA0F;AAC1F,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,4DAA4D;AAC5D,eAAO,MAAM,4BAA4B,QAAiB,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EVIDENCE_RUNG_RANK, runtimeRungInventory } from "./activity-taxonomy.js";
|
|
1
2
|
/** Default polling cadence: 1Hz. The default silence window is 3s, so
|
|
2
3
|
* 1Hz polling gives at-most ~1s freshness lag on the cached observation. */
|
|
3
4
|
export const DEFAULT_POLL_INTERVAL_MS = 1000;
|
|
@@ -11,11 +12,13 @@ export class SeatActivityService {
|
|
|
11
12
|
// seat-structural-activity-service (MUST-FIX 2). A slowed tmux can never accumulate
|
|
12
13
|
// overlapping whole-fleet sweeps — at most one sweep's worth is ever in flight.
|
|
13
14
|
sweeping = false;
|
|
15
|
+
selfReportReader;
|
|
14
16
|
constructor(deps) {
|
|
15
17
|
this.tmux = deps.tmux;
|
|
16
18
|
this.defaultWindowSeconds = deps.defaultWindowSeconds;
|
|
17
19
|
this.eventBus = deps.eventBus ?? null;
|
|
18
20
|
this.now = deps.now ?? (() => new Date());
|
|
21
|
+
this.selfReportReader = deps.selfReportReader ?? null;
|
|
19
22
|
}
|
|
20
23
|
/**
|
|
21
24
|
* Read the window's last-activity timestamp for `paneId` once and
|
|
@@ -61,6 +64,28 @@ export class SeatActivityService {
|
|
|
61
64
|
lastActivityAt: new Date(lastActivityEpochSeconds * 1000).toISOString(),
|
|
62
65
|
};
|
|
63
66
|
this.latestByPaneId.set(paneId, record);
|
|
67
|
+
// S19: the sampler IS the window-sampling rung — feed the ladder for bound seats,
|
|
68
|
+
// and consult the self-report rung (when declared) in the same pass.
|
|
69
|
+
const seatNodeId = this.sessionToSeat.get(paneId);
|
|
70
|
+
if (seatNodeId) {
|
|
71
|
+
const seq = (this.samplerSeqBySession.get(paneId) ?? 0) + 1;
|
|
72
|
+
this.samplerSeqBySession.set(paneId, seq);
|
|
73
|
+
this.reportEvidence({
|
|
74
|
+
seatNodeId,
|
|
75
|
+
sessionName: paneId,
|
|
76
|
+
rung: "window-sampling",
|
|
77
|
+
sourceId: "tmux:window-activity",
|
|
78
|
+
seq,
|
|
79
|
+
observedAt: record.lastObservedAt,
|
|
80
|
+
activity: isActiveWithinWindow ? "working" : "idle-at-prompt",
|
|
81
|
+
});
|
|
82
|
+
const seat = this.ladder.get(seatNodeId);
|
|
83
|
+
if (this.selfReportReader && seat?.inventory?.rungs.some((r) => r.rung === "self-report")) {
|
|
84
|
+
const evd = this.selfReportReader(paneId, seatNodeId);
|
|
85
|
+
if (evd)
|
|
86
|
+
this.reportEvidence(evd); // null = unreadable ⇒ the rung simply stales
|
|
87
|
+
}
|
|
88
|
+
}
|
|
64
89
|
return record;
|
|
65
90
|
}
|
|
66
91
|
/**
|
|
@@ -90,7 +115,7 @@ export class SeatActivityService {
|
|
|
90
115
|
this.sweeping = true;
|
|
91
116
|
try {
|
|
92
117
|
const rows = db.prepare(`
|
|
93
|
-
SELECT s.session_name as session_name
|
|
118
|
+
SELECT s.session_name as session_name, n.id as node_id, n.runtime as runtime
|
|
94
119
|
FROM nodes n
|
|
95
120
|
JOIN sessions s ON s.node_id = n.id
|
|
96
121
|
AND s.id = (SELECT s2.id FROM sessions s2 WHERE s2.node_id = n.id ORDER BY s2.id DESC LIMIT 1)
|
|
@@ -99,6 +124,16 @@ export class SeatActivityService {
|
|
|
99
124
|
AND s.session_name IS NOT NULL
|
|
100
125
|
AND COALESCE(b.attachment_type, 'tmux') = 'tmux'
|
|
101
126
|
`).all();
|
|
127
|
+
// S19: every running tmux seat gets a ladder binding; undeclared seats are
|
|
128
|
+
// auto-declared from their runtime's inventory (claude authoritative standing,
|
|
129
|
+
// codex hooks-at-trial, generic sampling floor) — production-complete without
|
|
130
|
+
// touching the launch machinery.
|
|
131
|
+
for (const r of rows) {
|
|
132
|
+
const known = this.ladder.get(r.node_id);
|
|
133
|
+
if (!known || known.inventory === null) {
|
|
134
|
+
this.declareRungInventory({ seatNodeId: r.node_id, sessionName: r.session_name }, runtimeRungInventory(r.runtime));
|
|
135
|
+
}
|
|
136
|
+
}
|
|
102
137
|
// Drop observations for seats that are no longer running (release
|
|
103
138
|
// memory + avoid stale reads from `getSeatActivity`).
|
|
104
139
|
const live = new Set(rows.map((r) => r.session_name));
|
|
@@ -140,5 +175,385 @@ export class SeatActivityService {
|
|
|
140
175
|
this.timer = null;
|
|
141
176
|
}
|
|
142
177
|
}
|
|
178
|
+
// ── S19 (OPR.0.5.5.19): the ranked evidence ladder above the sampler ──
|
|
179
|
+
// The non-inference contract is UNCHANGED: nothing below reads queue/assignment
|
|
180
|
+
// state; the parked join lives in the parked-query surface, never here.
|
|
181
|
+
ladder = new Map();
|
|
182
|
+
sessionToSeat = new Map();
|
|
183
|
+
healthListeners = [];
|
|
184
|
+
samplerSeqBySession = new Map();
|
|
185
|
+
/** An adapter (or an occupant swap) declares which rungs this seat's sources staff.
|
|
186
|
+
* The binding ties the durable seat nodeId to its current pane/session name so the
|
|
187
|
+
* internal sampler can feed the window-sampling rung for this seat. */
|
|
188
|
+
declareRungInventory(binding, inventory) {
|
|
189
|
+
const seat = this.seatLadder(binding.seatNodeId, binding.sessionName);
|
|
190
|
+
seat.sessionName = binding.sessionName;
|
|
191
|
+
this.sessionToSeat.set(binding.sessionName, binding.seatNodeId);
|
|
192
|
+
seat.inventory = inventory;
|
|
193
|
+
seat.trust.clear();
|
|
194
|
+
for (const decl of inventory.rungs)
|
|
195
|
+
seat.trust.set(decl.rung, decl.initialTrust);
|
|
196
|
+
seat.promotion.clear();
|
|
197
|
+
this.arbitrate(seat);
|
|
198
|
+
}
|
|
199
|
+
/** Adapters push rung evidence (hooks, self-report, chrome, sampling). Per-source
|
|
200
|
+
* monotonic seq: stale or reordered reports are dropped — a late lower-seq event
|
|
201
|
+
* never revives an idle seat (the SubagentStop class at the service layer). */
|
|
202
|
+
reportEvidence(evidence) {
|
|
203
|
+
const seat = this.seatLadder(evidence.seatNodeId, evidence.sessionName);
|
|
204
|
+
this.sessionToSeat.set(evidence.sessionName, evidence.seatNodeId);
|
|
205
|
+
const prior = seat.sources.get(evidence.sourceId);
|
|
206
|
+
if (prior && evidence.seq <= prior.latest.seq)
|
|
207
|
+
return; // stale/reordered — dropped
|
|
208
|
+
seat.sources.set(evidence.sourceId, {
|
|
209
|
+
latest: evidence,
|
|
210
|
+
latestActivity: evidence.activity !== undefined ? evidence : prior?.latestActivity ?? null,
|
|
211
|
+
});
|
|
212
|
+
this.measureTrialAgreement(seat, evidence);
|
|
213
|
+
this.arbitrate(seat);
|
|
214
|
+
}
|
|
215
|
+
/** A handover/generation swap: its OWN visible event, never an activity transition.
|
|
216
|
+
* Evidence, debounce, contradiction and promotion state are cleared; every known
|
|
217
|
+
* rung's trust drops to `absent` until the successor's adapter RE-DECLARES its
|
|
218
|
+
* inventory (AM-1 corollary: a successor never inherits rung authority). */
|
|
219
|
+
declareOccupantSwap(seatNodeId, generation) {
|
|
220
|
+
const seat = this.ladder.get(seatNodeId);
|
|
221
|
+
if (!seat)
|
|
222
|
+
return;
|
|
223
|
+
seat.sources.clear();
|
|
224
|
+
seat.pendingIdle = null;
|
|
225
|
+
seat.contradictionSinceMs = null;
|
|
226
|
+
seat.promotion.clear();
|
|
227
|
+
for (const rung of seat.trust.keys())
|
|
228
|
+
seat.trust.set(rung, "absent");
|
|
229
|
+
seat.inventory = null;
|
|
230
|
+
const at = this.now().toISOString();
|
|
231
|
+
seat.arbitrated = {
|
|
232
|
+
...seat.arbitrated,
|
|
233
|
+
activity: "unknown",
|
|
234
|
+
needsInput: { count: 0, reason: null },
|
|
235
|
+
decidedBy: null,
|
|
236
|
+
seq: seat.arbitrated.seq + 1, // the swap IS a visible event
|
|
237
|
+
changedAt: at,
|
|
238
|
+
rungs: this.rungsView(seat),
|
|
239
|
+
lastSwap: { generation, at },
|
|
240
|
+
};
|
|
241
|
+
this.resolveWaiters(seat);
|
|
242
|
+
this.emitActivityChanged(seat); // the swap is a visible push too
|
|
243
|
+
}
|
|
244
|
+
/** Whether this seat currently has a DECLARED rung inventory (a swap clears it —
|
|
245
|
+
* the successor must re-declare before its rungs regain any trust). */
|
|
246
|
+
hasRungInventory(seatNodeId) {
|
|
247
|
+
return this.ladder.get(seatNodeId)?.inventory != null;
|
|
248
|
+
}
|
|
249
|
+
/** Resolve by CURRENT session name (projection convenience) — state itself stays
|
|
250
|
+
* keyed by the durable seat nodeId. */
|
|
251
|
+
getSeatStateBySession(sessionName) {
|
|
252
|
+
const seatNodeId = this.sessionToSeat.get(sessionName);
|
|
253
|
+
return seatNodeId ? this.getSeatState(seatNodeId) : null;
|
|
254
|
+
}
|
|
255
|
+
/** The arbitrated, seat-keyed state every surface renders from. */
|
|
256
|
+
getSeatState(seatNodeId) {
|
|
257
|
+
const seat = this.ladder.get(seatNodeId);
|
|
258
|
+
if (!seat)
|
|
259
|
+
return null;
|
|
260
|
+
this.arbitrate(seat); // lazy re-evaluation picks up time-based expiry/caps
|
|
261
|
+
return seat.arbitrated;
|
|
262
|
+
}
|
|
263
|
+
/** Wait-after-seq read primitive (T1 seam, exposed not consumed here): resolves when
|
|
264
|
+
* the arbitrated seq passes `afterSeq` (a fast pass-through transition still
|
|
265
|
+
* satisfies the wait — the lost-wakeup guard). Timeout resolves null, never throws. */
|
|
266
|
+
waitForSeatState(seatNodeId, opts) {
|
|
267
|
+
const seat = this.ladder.get(seatNodeId);
|
|
268
|
+
if (!seat)
|
|
269
|
+
return Promise.resolve(null);
|
|
270
|
+
if (seat.arbitrated.seq > opts.afterSeq)
|
|
271
|
+
return Promise.resolve(seat.arbitrated);
|
|
272
|
+
return new Promise((resolve) => {
|
|
273
|
+
const waiter = {
|
|
274
|
+
afterSeq: opts.afterSeq,
|
|
275
|
+
resolve,
|
|
276
|
+
timer: setTimeout(() => {
|
|
277
|
+
seat.waiters = seat.waiters.filter((w) => w !== waiter);
|
|
278
|
+
resolve(null);
|
|
279
|
+
}, opts.timeoutMs),
|
|
280
|
+
};
|
|
281
|
+
if (typeof waiter.timer === "object" && "unref" in waiter.timer)
|
|
282
|
+
waiter.timer.unref();
|
|
283
|
+
seat.waiters.push(waiter);
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
/** Rung-health transitions (AM-1): degradations and promotions are VISIBLE, never silent. */
|
|
287
|
+
onRungHealth(listener) {
|
|
288
|
+
this.healthListeners.push(listener);
|
|
289
|
+
}
|
|
290
|
+
seatLadder(seatNodeId, sessionName) {
|
|
291
|
+
let seat = this.ladder.get(seatNodeId);
|
|
292
|
+
if (!seat) {
|
|
293
|
+
seat = {
|
|
294
|
+
sessionName,
|
|
295
|
+
inventory: null,
|
|
296
|
+
sources: new Map(),
|
|
297
|
+
trust: new Map(),
|
|
298
|
+
promotion: new Map(),
|
|
299
|
+
contradictionSinceMs: null,
|
|
300
|
+
pendingIdle: null,
|
|
301
|
+
waiters: [],
|
|
302
|
+
arbitrated: {
|
|
303
|
+
seatNodeId,
|
|
304
|
+
activity: "unknown",
|
|
305
|
+
needsInput: { count: 0, reason: null },
|
|
306
|
+
decidedBy: null,
|
|
307
|
+
seq: 0,
|
|
308
|
+
changedAt: this.now().toISOString(),
|
|
309
|
+
rungs: [],
|
|
310
|
+
lastSwap: null,
|
|
311
|
+
},
|
|
312
|
+
};
|
|
313
|
+
this.ladder.set(seatNodeId, seat);
|
|
314
|
+
}
|
|
315
|
+
return seat;
|
|
316
|
+
}
|
|
317
|
+
/** Trust for a rung: declared trust when an inventory exists; without a declaration
|
|
318
|
+
* the generic tmux floor (window-sampling) is authoritative and everything else is
|
|
319
|
+
* identity-only — partial-coverage honesty by default. */
|
|
320
|
+
rungTrust(seat, rung) {
|
|
321
|
+
const declared = seat.trust.get(rung);
|
|
322
|
+
if (declared)
|
|
323
|
+
return declared;
|
|
324
|
+
if (seat.inventory)
|
|
325
|
+
return "absent"; // declared inventory, undeclared rung
|
|
326
|
+
return rung === "window-sampling" ? "authoritative" : "identity-only";
|
|
327
|
+
}
|
|
328
|
+
/** Latest evidence for a rung. kind "activity" returns the newest ACTIVITY-BEARING
|
|
329
|
+
* evidence — a needs-input-only event from the same source (e.g. PermissionRequest
|
|
330
|
+
* mid-turn) must not erase what the source last said about working/idle. */
|
|
331
|
+
latestByRung(seat, rung, kind = "any") {
|
|
332
|
+
let best = null;
|
|
333
|
+
for (const entry of seat.sources.values()) {
|
|
334
|
+
const evd = kind === "activity" ? entry.latestActivity : entry.latest;
|
|
335
|
+
if (!evd || evd.rung !== rung)
|
|
336
|
+
continue;
|
|
337
|
+
if (!best || evd.seq > best.seq)
|
|
338
|
+
best = evd;
|
|
339
|
+
}
|
|
340
|
+
return best;
|
|
341
|
+
}
|
|
342
|
+
/** AM-2: a TRIAL rung's evidence is measured against the current authoritative
|
|
343
|
+
* CANDIDATE value (raw ladder decision, pre-debounce) — evidence against evidence,
|
|
344
|
+
* never against the debounced display. Enough agreements over at least the minimum
|
|
345
|
+
* window promote the rung to authoritative, visibly. */
|
|
346
|
+
measureTrialAgreement(seat, evidence) {
|
|
347
|
+
if (evidence.activity === undefined)
|
|
348
|
+
return;
|
|
349
|
+
if (this.rungTrust(seat, evidence.rung) !== "trial")
|
|
350
|
+
return;
|
|
351
|
+
const authority = this.rawCandidate(seat, { excludeRung: evidence.rung });
|
|
352
|
+
if (!authority || authority.activity === undefined)
|
|
353
|
+
return;
|
|
354
|
+
const entry = seat.promotion.get(evidence.rung) ?? { agreements: 0, firstAgreementAtMs: null };
|
|
355
|
+
if (authority.activity === evidence.activity) {
|
|
356
|
+
entry.agreements += 1;
|
|
357
|
+
if (entry.firstAgreementAtMs === null)
|
|
358
|
+
entry.firstAgreementAtMs = this.now().getTime();
|
|
359
|
+
const spanMs = this.now().getTime() - (entry.firstAgreementAtMs ?? 0);
|
|
360
|
+
if (entry.agreements >= RUNG_PROMOTION_AGREEMENT_COUNT && spanMs >= RUNG_PROMOTION_MIN_WINDOW_MS) {
|
|
361
|
+
seat.trust.set(evidence.rung, "authoritative");
|
|
362
|
+
this.emitRungHealth(seat, evidence.rung, evidence.sourceId, "trial", "authoritative", `promoted: ${entry.agreements} agreeing observations over ${Math.round(spanMs / 60000)}min (threshold ${RUNG_PROMOTION_AGREEMENT_COUNT} over ${Math.round(RUNG_PROMOTION_MIN_WINDOW_MS / 60000)}min)`);
|
|
363
|
+
seat.promotion.delete(evidence.rung);
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
368
|
+
entry.agreements = 0; // agreement must be consecutive within the measured window
|
|
369
|
+
entry.firstAgreementAtMs = null;
|
|
370
|
+
}
|
|
371
|
+
seat.promotion.set(evidence.rung, entry);
|
|
372
|
+
}
|
|
373
|
+
/** The raw ladder decision for working/idle: highest authoritative rung with usable,
|
|
374
|
+
* in-window evidence. Hook evidence is TIME-BOUNDED (the one rung that does not
|
|
375
|
+
* self-date its lifecycle) — expired hook evidence falls through, never errors. */
|
|
376
|
+
rawCandidate(seat, opts = {}) {
|
|
377
|
+
const nowMs = this.now().getTime();
|
|
378
|
+
for (const rung of EVIDENCE_RUNG_RANK) {
|
|
379
|
+
if (rung === opts.excludeRung)
|
|
380
|
+
continue;
|
|
381
|
+
if (this.rungTrust(seat, rung) !== "authoritative")
|
|
382
|
+
continue;
|
|
383
|
+
const evd = this.latestByRung(seat, rung, "activity");
|
|
384
|
+
if (!evd || evd.activity === undefined)
|
|
385
|
+
continue;
|
|
386
|
+
if (rung === "lifecycle-hooks" && nowMs - Date.parse(evd.observedAt) > HOOK_AUTHORITY_WINDOW_MS)
|
|
387
|
+
continue;
|
|
388
|
+
return evd;
|
|
389
|
+
}
|
|
390
|
+
return null;
|
|
391
|
+
}
|
|
392
|
+
emitRungHealth(seat, rung, sourceId, from, to, reason) {
|
|
393
|
+
const event = {
|
|
394
|
+
seatNodeId: seat.arbitrated.seatNodeId,
|
|
395
|
+
rung,
|
|
396
|
+
sourceId,
|
|
397
|
+
from,
|
|
398
|
+
to,
|
|
399
|
+
reason,
|
|
400
|
+
at: this.now().toISOString(),
|
|
401
|
+
};
|
|
402
|
+
for (const listener of this.healthListeners)
|
|
403
|
+
listener(event);
|
|
404
|
+
this.eventBus?.emit({ type: "seat.rung_health", ...event });
|
|
405
|
+
}
|
|
406
|
+
/** AM-1: persistent cross-rung contradiction (hook claims working while a lower
|
|
407
|
+
* authoritative rung sees idle-at-prompt beyond the stated window) degrades the hook
|
|
408
|
+
* rung to identity-only, VISIBLY — arbitration can never make a silently-dead source
|
|
409
|
+
* authoritative. */
|
|
410
|
+
checkContradiction(seat) {
|
|
411
|
+
if (this.rungTrust(seat, "lifecycle-hooks") !== "authoritative")
|
|
412
|
+
return;
|
|
413
|
+
const hook = this.latestByRung(seat, "lifecycle-hooks", "activity");
|
|
414
|
+
const sampler = this.latestByRung(seat, "window-sampling", "activity");
|
|
415
|
+
const nowMs = this.now().getTime();
|
|
416
|
+
const hookFresh = hook && hook.activity !== undefined
|
|
417
|
+
&& nowMs - Date.parse(hook.observedAt) <= HOOK_AUTHORITY_WINDOW_MS;
|
|
418
|
+
const contradicts = hookFresh && hook.activity === "working"
|
|
419
|
+
&& sampler?.activity === "idle-at-prompt"
|
|
420
|
+
&& this.rungTrust(seat, "window-sampling") === "authoritative";
|
|
421
|
+
if (!contradicts) {
|
|
422
|
+
seat.contradictionSinceMs = null;
|
|
423
|
+
return;
|
|
424
|
+
}
|
|
425
|
+
if (seat.contradictionSinceMs === null) {
|
|
426
|
+
seat.contradictionSinceMs = nowMs;
|
|
427
|
+
return;
|
|
428
|
+
}
|
|
429
|
+
if (nowMs - seat.contradictionSinceMs > CROSS_RUNG_CONTRADICTION_WINDOW_MS) {
|
|
430
|
+
seat.trust.set("lifecycle-hooks", "identity-only");
|
|
431
|
+
seat.contradictionSinceMs = null;
|
|
432
|
+
this.emitRungHealth(seat, "lifecycle-hooks", hook.sourceId, "authoritative", "identity-only", `cross-rung contradiction: hook claims working while window-sampling sees idle-at-prompt beyond ${CROSS_RUNG_CONTRADICTION_WINDOW_MS / 1000}s — degraded to identity-only (a silently-dropping source can never stay authoritative)`);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
rungsView(seat) {
|
|
436
|
+
const rungIds = new Set();
|
|
437
|
+
if (seat.inventory)
|
|
438
|
+
for (const d of seat.inventory.rungs)
|
|
439
|
+
rungIds.add(d.rung);
|
|
440
|
+
for (const r of seat.trust.keys())
|
|
441
|
+
rungIds.add(r);
|
|
442
|
+
return [...rungIds].map((rung) => {
|
|
443
|
+
const evd = this.latestByRung(seat, rung);
|
|
444
|
+
return {
|
|
445
|
+
rung,
|
|
446
|
+
sourceId: evd?.sourceId ?? `${seat.inventory?.adapterId ?? "undeclared"}:${rung}`,
|
|
447
|
+
trust: this.rungTrust(seat, rung),
|
|
448
|
+
lastEvidenceAt: evd?.observedAt ?? null,
|
|
449
|
+
};
|
|
450
|
+
});
|
|
451
|
+
}
|
|
452
|
+
/** Recompute the arbitrated state. Debounce: a sampling-decided working→idle
|
|
453
|
+
* transition holds until the stated consecutive idle observations or the hard cap;
|
|
454
|
+
* an authoritative turn boundary (hooks/self-report idle) or idle chrome publishes
|
|
455
|
+
* instantly. Chosen against our 1Hz/3s cadence: the 3s silence window already
|
|
456
|
+
* absorbs sub-3s lulls; the 2-tick arbitration debounce absorbs the
|
|
457
|
+
* window-boundary flap. */
|
|
458
|
+
arbitrate(seat) {
|
|
459
|
+
this.checkContradiction(seat);
|
|
460
|
+
const candidate = this.rawCandidate(seat);
|
|
461
|
+
let nextActivity = candidate?.activity ?? "unknown";
|
|
462
|
+
let decidedBy = candidate?.rung ?? null;
|
|
463
|
+
// Debounce bookkeeping runs on the SAMPLING OBSERVATIONS themselves (regardless of
|
|
464
|
+
// which rung currently decides): consecutive idle observations while the arbitrated
|
|
465
|
+
// state is working accumulate; any sampling `working` resets. The hold applies only
|
|
466
|
+
// when sampling would DECIDE the flip — an authoritative turn boundary (hooks or
|
|
467
|
+
// self-report idle) or idle chrome bypasses instantly.
|
|
468
|
+
const nowMs = this.now().getTime();
|
|
469
|
+
const sampling = this.latestByRung(seat, "window-sampling");
|
|
470
|
+
if (seat.arbitrated.activity === "working" && sampling?.activity === "idle-at-prompt") {
|
|
471
|
+
if (!seat.pendingIdle) {
|
|
472
|
+
seat.pendingIdle = { sinceMs: nowMs, ticks: 1, lastSeq: sampling.seq };
|
|
473
|
+
}
|
|
474
|
+
else if (sampling.seq > seat.pendingIdle.lastSeq) {
|
|
475
|
+
seat.pendingIdle.ticks += 1;
|
|
476
|
+
seat.pendingIdle.lastSeq = sampling.seq;
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
else if (sampling?.activity === "working" || seat.arbitrated.activity !== "working") {
|
|
480
|
+
seat.pendingIdle = null;
|
|
481
|
+
}
|
|
482
|
+
if (candidate?.rung === "window-sampling" && candidate.activity === "idle-at-prompt"
|
|
483
|
+
&& seat.arbitrated.activity === "working" && seat.pendingIdle) {
|
|
484
|
+
const capped = nowMs - seat.pendingIdle.sinceMs >= SAMPLING_IDLE_DEBOUNCE_CAP_MS;
|
|
485
|
+
if (seat.pendingIdle.ticks < SAMPLING_IDLE_DEBOUNCE_TICKS && !capped) {
|
|
486
|
+
nextActivity = "working"; // held — the mid-turn lull must not flip the state
|
|
487
|
+
decidedBy = seat.arbitrated.decidedBy;
|
|
488
|
+
}
|
|
489
|
+
else {
|
|
490
|
+
seat.pendingIdle = null;
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
// needs-input: visible chrome outranks hook-carried evidence; hooks carry it when a
|
|
494
|
+
// PermissionRequest-class event fired and the next turn boundary clears it. NOT
|
|
495
|
+
// time-bounded like working/idle hook authority — an unanswered block persisting is
|
|
496
|
+
// exactly the founder-observed park cause and must stay visible.
|
|
497
|
+
const chrome = this.latestByRung(seat, "needs-input-chrome");
|
|
498
|
+
const hooksEv = this.latestByRung(seat, "lifecycle-hooks");
|
|
499
|
+
const selfEv = this.latestByRung(seat, "self-report");
|
|
500
|
+
const needsInput = chrome?.needsInput && this.rungTrust(seat, "needs-input-chrome") === "authoritative"
|
|
501
|
+
? chrome.needsInput
|
|
502
|
+
: hooksEv?.needsInput && this.rungTrust(seat, "lifecycle-hooks") === "authoritative"
|
|
503
|
+
? hooksEv.needsInput
|
|
504
|
+
: selfEv?.needsInput && this.rungTrust(seat, "self-report") === "authoritative"
|
|
505
|
+
? selfEv.needsInput
|
|
506
|
+
: { count: 0, reason: null };
|
|
507
|
+
const changed = nextActivity !== seat.arbitrated.activity
|
|
508
|
+
|| needsInput.count !== seat.arbitrated.needsInput.count
|
|
509
|
+
|| needsInput.reason !== seat.arbitrated.needsInput.reason;
|
|
510
|
+
seat.arbitrated = {
|
|
511
|
+
...seat.arbitrated,
|
|
512
|
+
activity: nextActivity,
|
|
513
|
+
needsInput,
|
|
514
|
+
decidedBy,
|
|
515
|
+
seq: changed ? seat.arbitrated.seq + 1 : seat.arbitrated.seq,
|
|
516
|
+
changedAt: changed ? this.now().toISOString() : seat.arbitrated.changedAt,
|
|
517
|
+
rungs: this.rungsView(seat),
|
|
518
|
+
};
|
|
519
|
+
if (changed) {
|
|
520
|
+
this.resolveWaiters(seat);
|
|
521
|
+
this.emitActivityChanged(seat);
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
/** AM-R18 push substrate: a change notification (identity + seq) onto the bus — the
|
|
525
|
+
* SSE stream relays it; consumers REHYDRATE from the projection, so the push itself
|
|
526
|
+
* never carries derived vocabulary (no second activity mechanism by construction). */
|
|
527
|
+
emitActivityChanged(seat) {
|
|
528
|
+
this.eventBus?.emit({
|
|
529
|
+
type: "seat.activity_changed",
|
|
530
|
+
seatNodeId: seat.arbitrated.seatNodeId,
|
|
531
|
+
sessionName: seat.sessionName,
|
|
532
|
+
seq: seat.arbitrated.seq,
|
|
533
|
+
at: seat.arbitrated.changedAt,
|
|
534
|
+
});
|
|
535
|
+
}
|
|
536
|
+
resolveWaiters(seat) {
|
|
537
|
+
const ready = seat.waiters.filter((w) => seat.arbitrated.seq > w.afterSeq);
|
|
538
|
+
seat.waiters = seat.waiters.filter((w) => seat.arbitrated.seq <= w.afterSeq);
|
|
539
|
+
for (const w of ready) {
|
|
540
|
+
clearTimeout(w.timer);
|
|
541
|
+
w.resolve(seat.arbitrated);
|
|
542
|
+
}
|
|
543
|
+
}
|
|
143
544
|
}
|
|
545
|
+
// S19 arbitration constants — chosen against OUR 1Hz poll / 3s silence window (the SPEC
|
|
546
|
+
// requires the numbers recorded; rationale in the GREEN commit + reference doc):
|
|
547
|
+
/** Hook evidence older than this no longer decides working/idle (time-bounded authority). */
|
|
548
|
+
export const HOOK_AUTHORITY_WINDOW_MS = 15_000;
|
|
549
|
+
/** Persistent hook-vs-sampler contradiction beyond this window degrades the hook rung. */
|
|
550
|
+
export const CROSS_RUNG_CONTRADICTION_WINDOW_MS = 10_000;
|
|
551
|
+
/** Sampling-decided working→idle needs this many consecutive idle evaluations… */
|
|
552
|
+
export const SAMPLING_IDLE_DEBOUNCE_TICKS = 2;
|
|
553
|
+
/** …bounded by this hard cap; authoritative turn boundaries and idle chrome bypass instantly. */
|
|
554
|
+
export const SAMPLING_IDLE_DEBOUNCE_CAP_MS = 2_500;
|
|
555
|
+
/** AM-2 promotion: a trial rung earns authority after this many agreeing observations… */
|
|
556
|
+
export const RUNG_PROMOTION_AGREEMENT_COUNT = 50;
|
|
557
|
+
/** …spread over at least this window of production time. */
|
|
558
|
+
export const RUNG_PROMOTION_MIN_WINDOW_MS = 60 * 60 * 1000;
|
|
144
559
|
//# sourceMappingURL=seat-activity-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seat-activity-service.js","sourceRoot":"","sources":["../../src/domain/seat-activity-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seat-activity-service.js","sourceRoot":"","sources":["../../src/domain/seat-activity-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,6 +72,20 @@ export declare class SeatHandoverPlanner {
|
|
|
72
72
|
dryRun?: boolean;
|
|
73
73
|
}): SeatHandoverPlanResult;
|
|
74
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* OPR.0.5.5.5 — the ONE source-capability table shared by the dry-run plan and
|
|
77
|
+
* the mutation executor. The plan renders what a source DOES from this table
|
|
78
|
+
* and the executor dispatches on the same rows, so the plan can never promise
|
|
79
|
+
* a source the executor refuses (and vice versa). Adding a mode to
|
|
80
|
+
* `SeatHandoverSourceMode` forces a row here (exhaustive Record).
|
|
81
|
+
*/
|
|
82
|
+
export declare const SEAT_HANDOVER_SOURCE_CAPABILITIES: Record<SeatHandoverSourceMode, {
|
|
83
|
+
/** True when the mutation path executes this source end-to-end. A false row
|
|
84
|
+
* is the ONLY thing that may produce `source_not_supported`. */
|
|
85
|
+
executes: boolean;
|
|
86
|
+
/** How the successor receives its context under this source. */
|
|
87
|
+
contextCarrier: string;
|
|
88
|
+
}>;
|
|
75
89
|
export declare function parseHandoverSource(source?: string | null): {
|
|
76
90
|
ok: true;
|
|
77
91
|
source: SeatHandoverSource;
|