@openrig/cli 0.5.5 → 0.5.6
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/continuity/apprentice-cutover.md +19 -0
- package/daemon/assets/continuity/apprentice-prepare.md +17 -0
- package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +81 -4
- package/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md +3 -3
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +0 -0
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +0 -0
- package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +4 -9
- package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +82 -118
- package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +24 -25
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/SKILL.md +5 -12
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/compose.py +36 -117
- package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +9 -6
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +1 -12
- package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/CHANGELOG.md +1 -1
- package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +15 -0
- package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +4 -16
- package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +50 -7
- package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +29 -9
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +3 -0
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/references/apprentice-evidence-toolkit.md +32 -0
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/references/apprentice-successor-seat-cutover.md +256 -0
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/references/orchestrator-role.md +40 -0
- package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +9 -4
- package/daemon/assets/vm-preview-fixtures/README.md +16 -38
- package/daemon/assets/vm-preview-fixtures/workflows/sample-basic-loop.yaml +4 -5
- package/daemon/context-packs/onboarding-width/manifest.yaml +4 -1
- package/daemon/context-packs/onboarding-width/public-reference-material.md +1 -1
- package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +2 -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 +2 -1
- package/daemon/context-packs/skills/core/cross-host-rig-commands/SKILL.md +6 -13
- package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +98 -0
- package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +10 -0
- package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +118 -0
- package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +10 -0
- package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +19 -75
- package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/specification-system/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/watchdog/SKILL.md +4 -10
- package/daemon/context-packs/skills/core/watchdog/manifest.yaml +2 -1
- package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +2 -1
- package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +2 -1
- package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +2 -1
- package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +2 -1
- package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +2 -1
- package/daemon/context-packs/skills/pm/requirements-writer/SKILL.md +15 -21
- package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +4 -3
- package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +2 -1
- package/daemon/context-packs/skills/pods/development-team/manifest.yaml +2 -1
- package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +2 -1
- package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +2 -1
- package/daemon/context-packs/skills/pods/review-team/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/brainstorming/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/dogfood/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/executing-plans/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/systematic-debugging/find-polluter.sh +0 -0
- package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/using-superpowers/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/writing-plans/manifest.yaml +2 -1
- package/daemon/context-packs/world-example/manifest.yaml +15 -2
- package/daemon/context-packs/world-example/your-world.md +19 -2
- package/daemon/context-packs/world-public/boundaries.md +33 -0
- package/daemon/context-packs/world-public/build-your-world.md +84 -0
- package/daemon/context-packs/world-public/claims.yaml +205 -0
- package/daemon/context-packs/world-public/manifest.yaml +59 -0
- package/daemon/context-packs/world-public/start-here.md +51 -0
- package/daemon/context-packs/world-public/verify-world.sh +522 -0
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/context-pack-taxonomy-surface.d.ts +2 -0
- package/daemon/dist/context-pack-taxonomy-surface.d.ts.map +1 -0
- package/daemon/dist/context-pack-taxonomy-surface.js +6 -0
- package/daemon/dist/context-pack-taxonomy-surface.js.map +1 -0
- package/daemon/dist/db/all-migrations.d.ts +1 -1
- package/daemon/dist/db/all-migrations.d.ts.map +1 -1
- package/daemon/dist/db/all-migrations.js +8 -2
- package/daemon/dist/db/all-migrations.js.map +1 -1
- package/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts +4 -0
- package/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts.map +1 -0
- package/daemon/dist/db/migrations/074_context_usage_watchdog.js +11 -0
- package/daemon/dist/db/migrations/074_context_usage_watchdog.js.map +1 -0
- package/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts +4 -0
- package/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts.map +1 -0
- package/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js +8 -0
- package/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js.map +1 -0
- package/daemon/dist/db/migrations/076_owner_notification_levels.d.ts +8 -0
- package/daemon/dist/db/migrations/076_owner_notification_levels.d.ts.map +1 -0
- package/daemon/dist/db/migrations/076_owner_notification_levels.js +15 -0
- package/daemon/dist/db/migrations/076_owner_notification_levels.js.map +1 -0
- package/daemon/dist/domain/active-occupant.d.ts +44 -0
- package/daemon/dist/domain/active-occupant.d.ts.map +1 -0
- package/daemon/dist/domain/active-occupant.js +72 -0
- package/daemon/dist/domain/active-occupant.js.map +1 -0
- package/daemon/dist/domain/agent-manifest.d.ts +6 -0
- package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
- package/daemon/dist/domain/agent-manifest.js +77 -15
- package/daemon/dist/domain/agent-manifest.js.map +1 -1
- package/daemon/dist/domain/agent-resolver.d.ts +11 -0
- package/daemon/dist/domain/agent-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/agent-resolver.js +55 -0
- package/daemon/dist/domain/agent-resolver.js.map +1 -1
- package/daemon/dist/domain/bundle-context-packs-router.d.ts +9 -2
- package/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-context-packs-router.js +18 -0
- package/daemon/dist/domain/bundle-context-packs-router.js.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts +7 -0
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.js +10 -0
- package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-library-service.js +7 -0
- package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-types.d.ts +11 -0
- package/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-types.js +11 -0
- package/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
- package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/manifest-parser.js +13 -1
- package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
- package/daemon/dist/domain/continuity-policy-materializer.d.ts +88 -0
- package/daemon/dist/domain/continuity-policy-materializer.d.ts.map +1 -0
- package/daemon/dist/domain/continuity-policy-materializer.js +290 -0
- package/daemon/dist/domain/continuity-policy-materializer.js.map +1 -0
- package/daemon/dist/domain/continuity-stack-packets.d.ts +65 -0
- package/daemon/dist/domain/continuity-stack-packets.d.ts.map +1 -0
- package/daemon/dist/domain/continuity-stack-packets.js +99 -0
- package/daemon/dist/domain/continuity-stack-packets.js.map +1 -0
- package/daemon/dist/domain/execution-view.d.ts +39 -0
- package/daemon/dist/domain/execution-view.d.ts.map +1 -0
- package/daemon/dist/domain/execution-view.js +707 -0
- package/daemon/dist/domain/execution-view.js.map +1 -0
- package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts +60 -0
- package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/delivery-rules-engine.js +144 -0
- package/daemon/dist/domain/gateway/delivery-rules-engine.js.map +1 -0
- package/daemon/dist/domain/gateway/destination-resolver.d.ts +20 -0
- package/daemon/dist/domain/gateway/destination-resolver.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/destination-resolver.js +52 -0
- package/daemon/dist/domain/gateway/destination-resolver.js.map +1 -0
- package/daemon/dist/domain/gateway/dispatcher.d.ts +3 -1
- package/daemon/dist/domain/gateway/dispatcher.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/dispatcher.js +9 -2
- package/daemon/dist/domain/gateway/dispatcher.js.map +1 -1
- package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +6 -2
- package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/gateway-subsystem.js +5 -3
- package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
- package/daemon/dist/domain/gateway/human-registry.d.ts +9 -1
- package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/human-registry.js +32 -1
- package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
- package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts +32 -0
- package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/operator-delivery-engine.js +86 -0
- package/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -0
- package/daemon/dist/domain/gateway/slack/config.d.ts +3 -2
- package/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/config.js +20 -4
- package/daemon/dist/domain/gateway/slack/config.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.d.ts +34 -6
- package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.js +60 -9
- package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
- package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/outbound-driver.js +12 -5
- package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts +10 -5
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/queue-access.js +46 -19
- package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-api.d.ts +29 -6
- package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-api.js +41 -3
- package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +9 -3
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.js +132 -12
- package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +10 -0
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js +286 -11
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
- package/daemon/dist/domain/graph-projection.d.ts +6 -0
- package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
- package/daemon/dist/domain/graph-projection.js +6 -0
- package/daemon/dist/domain/graph-projection.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-write-contract.js +1 -0
- package/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts +41 -3
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +45 -48
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/parked-query.d.ts +1 -0
- package/daemon/dist/domain/parked-query.d.ts.map +1 -1
- package/daemon/dist/domain/parked-query.js +1 -0
- package/daemon/dist/domain/parked-query.js.map +1 -1
- package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
- package/daemon/dist/domain/pod-bundle-assembler.js +12 -5
- package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
- package/daemon/dist/domain/policies/context-usage-threshold.d.ts +7 -0
- package/daemon/dist/domain/policies/context-usage-threshold.d.ts.map +1 -0
- package/daemon/dist/domain/policies/context-usage-threshold.js +99 -0
- package/daemon/dist/domain/policies/context-usage-threshold.js.map +1 -0
- package/daemon/dist/domain/policies/delivery-deferral.d.ts +54 -0
- package/daemon/dist/domain/policies/delivery-deferral.d.ts.map +1 -0
- package/daemon/dist/domain/policies/delivery-deferral.js +153 -0
- package/daemon/dist/domain/policies/delivery-deferral.js.map +1 -0
- package/daemon/dist/domain/policies/delivery-digest-flush.d.ts +45 -0
- package/daemon/dist/domain/policies/delivery-digest-flush.d.ts.map +1 -0
- package/daemon/dist/domain/policies/delivery-digest-flush.js +94 -0
- package/daemon/dist/domain/policies/delivery-digest-flush.js.map +1 -0
- package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +65 -0
- package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -0
- package/daemon/dist/domain/policies/parked-owner-consumer.js +244 -0
- package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -0
- package/daemon/dist/domain/policies/types.d.ts +8 -0
- package/daemon/dist/domain/policies/types.d.ts.map +1 -1
- package/daemon/dist/domain/profile-resolver.d.ts +4 -0
- package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/profile-resolver.js +58 -0
- package/daemon/dist/domain/profile-resolver.js.map +1 -1
- package/daemon/dist/domain/provider/provider-signals.d.ts +20 -1
- package/daemon/dist/domain/provider/provider-signals.d.ts.map +1 -1
- package/daemon/dist/domain/provider/provider-signals.js +64 -0
- package/daemon/dist/domain/provider/provider-signals.js.map +1 -1
- package/daemon/dist/domain/ps-projection.d.ts +7 -5
- package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/daemon/dist/domain/ps-projection.js +19 -32
- package/daemon/dist/domain/ps-projection.js.map +1 -1
- package/daemon/dist/domain/queue-pickup.d.ts.map +1 -1
- package/daemon/dist/domain/queue-pickup.js +5 -0
- package/daemon/dist/domain/queue-pickup.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +55 -18
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +387 -83
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/queue-retention.d.ts.map +1 -1
- package/daemon/dist/domain/queue-retention.js +8 -2
- package/daemon/dist/domain/queue-retention.js.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.d.ts +24 -1
- package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.js +161 -24
- package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
- package/daemon/dist/domain/queue-transition-log.d.ts +10 -0
- package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
- package/daemon/dist/domain/queue-transition-log.js +49 -11
- package/daemon/dist/domain/queue-transition-log.js.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.d.ts +20 -2
- package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.js +187 -15
- package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
- package/daemon/dist/domain/queue-wake-repository.d.ts +16 -0
- package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-wake-repository.js +52 -3
- package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
- package/daemon/dist/domain/restore-check-service.js +1 -1
- package/daemon/dist/domain/restore-check-service.js.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.d.ts +2 -1
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +88 -15
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.d.ts +6 -2
- package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.js +37 -19
- package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
- package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
- package/daemon/dist/domain/rig-expansion-service.js +10 -9
- package/daemon/dist/domain/rig-expansion-service.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 +21 -3
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-codec.js +74 -4
- package/daemon/dist/domain/rigspec-codec.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts +4 -0
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +14 -0
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-schema.js +32 -4
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/scope/node-file.d.ts +8 -0
- package/daemon/dist/domain/scope/node-file.d.ts.map +1 -1
- package/daemon/dist/domain/scope/node-file.js +18 -0
- package/daemon/dist/domain/scope/node-file.js.map +1 -1
- package/daemon/dist/domain/scope/scope-audit.d.ts +5 -2
- package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-audit.js +3 -3
- package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
- package/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
- package/daemon/dist/domain/snapshot-capture.js +6 -0
- package/daemon/dist/domain/snapshot-capture.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +26 -4
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/view-projector.d.ts +5 -1
- package/daemon/dist/domain/view-projector.d.ts.map +1 -1
- package/daemon/dist/domain/view-projector.js +24 -0
- package/daemon/dist/domain/view-projector.js.map +1 -1
- package/daemon/dist/domain/watchdog-jobs-repository.d.ts +25 -6
- package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-jobs-repository.js +115 -32
- package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.d.ts +40 -1
- package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.js +112 -6
- package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
- package/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-scheduler.js +3 -2
- package/daemon/dist/domain/watchdog-scheduler.js.map +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.js +2 -4
- package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
- package/daemon/dist/index.d.ts +9 -0
- package/daemon/dist/index.d.ts.map +1 -1
- package/daemon/dist/index.js +24 -1
- package/daemon/dist/index.js.map +1 -1
- package/daemon/dist/routes/agent-images.d.ts.map +1 -1
- package/daemon/dist/routes/agent-images.js +9 -0
- package/daemon/dist/routes/agent-images.js.map +1 -1
- package/daemon/dist/routes/bundles.d.ts.map +1 -1
- package/daemon/dist/routes/bundles.js +61 -1
- package/daemon/dist/routes/bundles.js.map +1 -1
- package/daemon/dist/routes/gateway.js +1 -1
- package/daemon/dist/routes/gateway.js.map +1 -1
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +22 -11
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/rigs.js +38 -2
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/scope-audit.js +6 -6
- package/daemon/dist/routes/scope-audit.js.map +1 -1
- package/daemon/dist/routes/views.d.ts.map +1 -1
- package/daemon/dist/routes/views.js +4 -1
- package/daemon/dist/routes/views.js.map +1 -1
- package/daemon/dist/routes/watchdog.d.ts.map +1 -1
- package/daemon/dist/routes/watchdog.js +40 -3
- package/daemon/dist/routes/watchdog.js.map +1 -1
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +5 -0
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +194 -5
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/docs/reference/agent-spec.md +4 -4
- package/daemon/docs/reference/agent-state-taxonomy.md +8 -13
- package/daemon/docs/reference/chain-file-convention.md +2 -2
- package/daemon/docs/reference/knowledge-maturity.md +123 -0
- package/daemon/docs/reference/lore-routing.md +173 -0
- package/daemon/docs/reference/mission-install.md +194 -0
- package/daemon/docs/reference/planning-dial.md +55 -0
- package/daemon/docs/reference/product-management-pass.md +139 -0
- package/daemon/docs/reference/release-boundary.md +88 -0
- package/daemon/docs/reference/sdlc-conventions.md +42 -69
- package/daemon/docs/reference/wave-sdlc.md +113 -0
- package/daemon/policies/builtin/standard.policy.md +3 -3
- package/daemon/policies/builtin/yolo.policy.md +7 -2
- package/daemon/specs/agents/shared/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -1
- package/daemon/specs/agents/shared/skills/core/cross-host-rig-commands/SKILL.md +6 -13
- package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +98 -0
- package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +118 -0
- package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +19 -75
- package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +4 -10
- package/daemon/specs/agents/shared/skills/pm/requirements-writer/SKILL.md +15 -21
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/find-polluter.sh +0 -0
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +2 -2
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/startup/context.md +3 -3
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +3 -3
- package/daemon/specs/rigs/launch/kernel/agents/queue/worker/guidance/role.md +1 -1
- package/daemon/specs/rigs/launch/kernel/agents/queue/worker/startup/context.md +1 -1
- package/daemon/substance-surfaces.json +8 -0
- package/dist/build-info.js +3 -3
- package/dist/commands/broadcast.d.ts.map +1 -1
- package/dist/commands/broadcast.js +6 -1
- package/dist/commands/broadcast.js.map +1 -1
- package/dist/commands/capture.js +1 -1
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +12 -1
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/expand.d.ts.map +1 -1
- package/dist/commands/expand.js +9 -13
- package/dist/commands/expand.js.map +1 -1
- package/dist/commands/ps.d.ts +4 -0
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +15 -7
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/scope.d.ts.map +1 -1
- package/dist/commands/scope.js +40 -11
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/send.d.ts +2 -0
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +24 -2
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/slack.d.ts.map +1 -1
- package/dist/commands/slack.js +4 -2
- package/dist/commands/slack.js.map +1 -1
- package/dist/commands/view.d.ts.map +1 -1
- package/dist/commands/view.js +3 -0
- package/dist/commands/view.js.map +1 -1
- package/dist/commands/watchdog.d.ts.map +1 -1
- package/dist/commands/watchdog.js +64 -9
- package/dist/commands/watchdog.js.map +1 -1
- package/dist/cross-host-target.js +1 -1
- package/dist/cross-host-target.js.map +1 -1
- package/dist/host-registry.d.ts +2 -2
- package/dist/host-registry.js +2 -2
- package/dist/lib/scope/scope-audit.d.ts +4 -1
- package/dist/lib/scope/scope-audit.d.ts.map +1 -1
- package/dist/lib/scope/scope-audit.js +3 -3
- package/dist/lib/scope/scope-audit.js.map +1 -1
- package/dist/lib/scope/scope-fs.d.ts +8 -0
- package/dist/lib/scope/scope-fs.d.ts.map +1 -1
- package/dist/lib/scope/scope-fs.js +18 -0
- package/dist/lib/scope/scope-fs.js.map +1 -1
- package/dist/lib/scope-templates/backlog-deprecation.md +1 -1
- package/dist/lib/scope-templates/backlog-tech-debt.md +1 -1
- package/dist/lib/scope-templates/bug-fix.md +1 -1
- package/dist/lib/scope-templates/capability-delta.md +1 -0
- package/dist/lib/scope-templates/placeholder.md +1 -1
- package/dist/lib/scope-templates/release-feature.md +1 -1
- package/dist/lib/scope-templates/research.md +1 -1
- package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
- package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.d.ts +2 -0
- package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.js +6 -0
- package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts +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 +8 -2
- package/node_modules/@openrig/daemon/dist/db/all-migrations.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.js +11 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js +8 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.d.ts +8 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.js +15 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts +44 -0
- package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/active-occupant.js +72 -0
- package/node_modules/@openrig/daemon/dist/domain/active-occupant.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/agent-manifest.d.ts +6 -0
- package/node_modules/@openrig/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-manifest.js +77 -15
- package/node_modules/@openrig/daemon/dist/domain/agent-manifest.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-resolver.d.ts +11 -0
- package/node_modules/@openrig/daemon/dist/domain/agent-resolver.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-resolver.js +55 -0
- package/node_modules/@openrig/daemon/dist/domain/agent-resolver.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.d.ts +9 -2
- package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.js +18 -0
- package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.d.ts +7 -0
- package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.js +10 -0
- package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.js +7 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts +11 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js +11 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js +13 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.d.ts +88 -0
- package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.js +290 -0
- package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.d.ts +65 -0
- package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.js +99 -0
- package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts +39 -0
- package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/execution-view.js +707 -0
- package/node_modules/@openrig/daemon/dist/domain/execution-view.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.d.ts +60 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.js +144 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.d.ts +20 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.js +52 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.d.ts +3 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.js +9 -2
- package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts +6 -2
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js +5 -3
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts +9 -1
- 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 +32 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.d.ts +32 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.js +86 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.d.ts +3 -2
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.js +20 -4
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts +34 -6
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js +60 -9
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.js +12 -5
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts +10 -5
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js +46 -19
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.d.ts +29 -6
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.js +41 -3
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +9 -3
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.js +132 -12
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +10 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js +286 -11
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/graph-projection.d.ts +6 -0
- package/node_modules/@openrig/daemon/dist/domain/graph-projection.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/graph-projection.js +6 -0
- package/node_modules/@openrig/daemon/dist/domain/graph-projection.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-write-contract.js +1 -0
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts +41 -3
- package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/node-inventory.js +45 -48
- package/node_modules/@openrig/daemon/dist/domain/node-inventory.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/parked-query.d.ts +1 -0
- package/node_modules/@openrig/daemon/dist/domain/parked-query.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/parked-query.js +1 -0
- package/node_modules/@openrig/daemon/dist/domain/parked-query.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/pod-bundle-assembler.js +12 -5
- package/node_modules/@openrig/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.d.ts +7 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.js +99 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.d.ts +54 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.js +153 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.d.ts +45 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.js +94 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.d.ts +65 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.js +244 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/types.d.ts +8 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/types.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/profile-resolver.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/profile-resolver.js +58 -0
- package/node_modules/@openrig/daemon/dist/domain/profile-resolver.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.d.ts +20 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.js +64 -0
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/ps-projection.d.ts +7 -5
- package/node_modules/@openrig/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/ps-projection.js +19 -32
- package/node_modules/@openrig/daemon/dist/domain/ps-projection.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-pickup.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-pickup.js +5 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-pickup.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts +55 -18
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.js +387 -83
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-retention.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-retention.js +8 -2
- package/node_modules/@openrig/daemon/dist/domain/queue-retention.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.d.ts +24 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js +161 -24
- package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts +10 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js +49 -11
- package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.d.ts +20 -2
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.js +187 -15
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts +16 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js +52 -3
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-check-service.js +1 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-check-service.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts +2 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js +88 -15
- package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.d.ts +6 -2
- package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.js +37 -19
- package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-expansion-service.js +10 -9
- package/node_modules/@openrig/daemon/dist/domain/rig-expansion-service.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 +21 -3
- package/node_modules/@openrig/daemon/dist/domain/rig-repository.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-codec.js +74 -4
- package/node_modules/@openrig/daemon/dist/domain/rigspec-codec.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +4 -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 +14 -0
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js +32 -4
- package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/node-file.d.ts +8 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/node-file.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/node-file.js +18 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/node-file.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts +5 -2
- 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 +3 -3
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js +6 -0
- package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/types.d.ts +26 -4
- 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/view-projector.d.ts +5 -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 +24 -0
- package/node_modules/@openrig/daemon/dist/domain/view-projector.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.d.ts +25 -6
- package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.js +115 -32
- package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts +40 -1
- 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 +112 -6
- package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.js +3 -2
- package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.js.map +1 -1
- 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 +2 -4
- package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/index.d.ts +9 -0
- package/node_modules/@openrig/daemon/dist/index.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/index.js +24 -1
- package/node_modules/@openrig/daemon/dist/index.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/agent-images.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/agent-images.js +9 -0
- package/node_modules/@openrig/daemon/dist/routes/agent-images.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/bundles.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/bundles.js +61 -1
- package/node_modules/@openrig/daemon/dist/routes/bundles.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/gateway.js +1 -1
- package/node_modules/@openrig/daemon/dist/routes/gateway.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 +22 -11
- package/node_modules/@openrig/daemon/dist/routes/queue.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/rigs.js +38 -2
- package/node_modules/@openrig/daemon/dist/routes/rigs.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/scope-audit.js +6 -6
- package/node_modules/@openrig/daemon/dist/routes/scope-audit.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/views.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/views.js +4 -1
- package/node_modules/@openrig/daemon/dist/routes/views.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/watchdog.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/watchdog.js +40 -3
- package/node_modules/@openrig/daemon/dist/routes/watchdog.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/server.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/server.js +5 -0
- package/node_modules/@openrig/daemon/dist/server.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/startup.js +194 -5
- 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/demo-data.js +2 -2
- package/tui/dist/demo-data.js.map +1 -1
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/CHANGELOG.md +0 -92
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/REVISION-GUIDE.md +0 -34
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/ROADMAP.md +0 -23
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/ROLLOUT.md +0 -234
- package/daemon/context-packs/skills/core/attention-queue/SKILL.md +0 -264
- package/daemon/context-packs/skills/core/attention-queue/manifest.yaml +0 -9
- package/daemon/specs/agents/shared/skills/core/attention-queue/SKILL.md +0 -264
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parked-query.d.ts","sourceRoot":"","sources":["../../src/domain/parked-query.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAE9E;;;oBAGoB;AACpB,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"parked-query.d.ts","sourceRoot":"","sources":["../../src/domain/parked-query.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAE9E;;;oBAGoB;AACpB,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,mBAAmB,GAAG,IAAI,CAAC;IACjE;yFACqF;IACrF,mBAAmB,EAAE,CAAC,kBAAkB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,cAAc,CAAC;IACnF,wEAAwE;IACxE,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,MAAM,EAAE,OAAO,GAAG,eAAe,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,UAAU,CAAC;QACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAC;KAClC,CAAC;IACF,WAAW,EAAE;QACX,yEAAyE;QACzE,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,iFAAiF;QACjF,QAAQ,EAAE,OAAO,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,aAAa,EAAE,CAAC;QACvB,IAAI,EAAE,cAAc,EAAE,CAAC;KACxB,CAAC;IACF,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,WAAW,EAAE,UAAU,GAAG,qBAAqB,GAAG,aAAa,CAAA;KAAE,CAAC;CAC5G;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,GAAG,eAAe,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAED,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAoB3C,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAChD,mBAAmB,CAyErB;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,KAAK,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,GACxD,kBAAkB,CAoBpB"}
|
|
@@ -31,6 +31,7 @@ function parseWake(value) {
|
|
|
31
31
|
phase: wake.phase === "armed" || wake.phase === "fired" ? wake.phase : undefined,
|
|
32
32
|
deliveryStatus: typeof wake.deliveryStatus === "string" ? wake.deliveryStatus : null,
|
|
33
33
|
unconsumed: wake.unconsumed === true,
|
|
34
|
+
...(typeof wake.expiresAt === "string" ? { expiresAt: wake.expiresAt } : {}),
|
|
34
35
|
};
|
|
35
36
|
}
|
|
36
37
|
export function diagnoseSeatParked(deps, seat) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parked-query.js","sourceRoot":"","sources":["../../src/domain/parked-query.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,mFAAmF;AACnF,iFAAiF;AACjF,iFAAiF;AACjF,EAAE;AACF,wFAAwF;AACxF,iFAAiF;AACjF,EAAE;AACF,wFAAwF;AACxF,oFAAoF;AACpF,yFAAyF;AACzF,wFAAwF;AACxF,uFAAuF;AACvF,qFAAqF;AACrF,EAAE;AACF,uBAAuB;
|
|
1
|
+
{"version":3,"file":"parked-query.js","sourceRoot":"","sources":["../../src/domain/parked-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pod-bundle-assembler.d.ts","sourceRoot":"","sources":["../../src/domain/pod-bundle-assembler.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"pod-bundle-assembler.d.ts","sourceRoot":"","sources":["../../src/domain/pod-bundle-assembler.ts"],"names":[],"mappings":"AAIA,OAAO,EAA6C,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzG,OAAO,EAA8B,KAAK,iBAAiB,EAA4D,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGlM,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,EAAE,CAAoB;gBAElB,IAAI,EAAE;QAAE,KAAK,EAAE,iBAAiB,CAAA;KAAE;IAI9C;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,kBAAkB,GAAG,iBAAiB;IAsJrD,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,0BAA0B;IAkBlC,OAAO,CAAC,kBAAkB;CAoB3B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import nodePath from "node:path";
|
|
2
2
|
import { RigSpecCodec } from "./rigspec-codec.js";
|
|
3
3
|
import { RigSpecSchema } from "./rigspec-schema.js";
|
|
4
|
-
import { resolveAgentRef } from "./agent-resolver.js";
|
|
4
|
+
import { assertShippableSubstance, resolveAgentRef } from "./agent-resolver.js";
|
|
5
5
|
import { serializePodBundleManifest } from "./bundle-types.js";
|
|
6
6
|
/**
|
|
7
7
|
* Pod-aware bundle assembler. Walks embedded pod members' agent_ref to
|
|
@@ -148,6 +148,7 @@ export class PodBundleAssembler {
|
|
|
148
148
|
if (!this.fs.exists(absPath))
|
|
149
149
|
return; // optional files may not exist
|
|
150
150
|
const content = this.fs.readFile(absPath);
|
|
151
|
+
assertShippableSubstance([{ path: relPath, bytes: content }]);
|
|
151
152
|
this.fs.mkdirp(nodePath.dirname(nodePath.join(outputDir, relPath)));
|
|
152
153
|
this.fs.writeFile(nodePath.join(outputDir, relPath), content);
|
|
153
154
|
collected.push(relPath);
|
|
@@ -160,13 +161,19 @@ export class PodBundleAssembler {
|
|
|
160
161
|
}
|
|
161
162
|
}
|
|
162
163
|
vendorDirectory(srcDir, destDir, collected, relPrefix) {
|
|
163
|
-
this.fs.mkdirp(destDir);
|
|
164
164
|
const files = this.fs.listFiles(srcDir);
|
|
165
|
-
|
|
166
|
-
|
|
165
|
+
const sources = files.map((file) => ({
|
|
166
|
+
file,
|
|
167
|
+
content: this.fs.readFile(nodePath.join(srcDir, file)),
|
|
168
|
+
}));
|
|
169
|
+
assertShippableSubstance(sources.map(({ file, content }) => ({
|
|
170
|
+
path: nodePath.join(relPrefix, file),
|
|
171
|
+
bytes: content,
|
|
172
|
+
})));
|
|
173
|
+
this.fs.mkdirp(destDir);
|
|
174
|
+
for (const { file, content } of sources) {
|
|
167
175
|
const destPath = nodePath.join(destDir, file);
|
|
168
176
|
this.fs.mkdirp(nodePath.dirname(destPath));
|
|
169
|
-
const content = this.fs.readFile(srcPath);
|
|
170
177
|
this.fs.writeFile(destPath, content);
|
|
171
178
|
collected.push(nodePath.join(relPrefix, file).replace(/\\/g, "/"));
|
|
172
179
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pod-bundle-assembler.js","sourceRoot":"","sources":["../../src/domain/pod-bundle-assembler.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAA2B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"pod-bundle-assembler.js","sourceRoot":"","sources":["../../src/domain/pod-bundle-assembler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Policy, PolicyJob } from "./types.js";
|
|
2
|
+
export interface ContextUsageConditionSource {
|
|
3
|
+
measure(job: PolicyJob): number;
|
|
4
|
+
}
|
|
5
|
+
export declare function makeContextUsageThresholdPolicy(source?: ContextUsageConditionSource): Policy;
|
|
6
|
+
export declare const contextUsageThresholdPolicy: Policy;
|
|
7
|
+
//# sourceMappingURL=context-usage-threshold.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-usage-threshold.d.ts","sourceRoot":"","sources":["../../../src/domain/policies/context-usage-threshold.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAoB,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAAC;CACjC;AAMD,wBAAgB,+BAA+B,CAC7C,MAAM,GAAE,2BAAkD,GACzD,MAAM,CA8FR;AAED,eAAO,MAAM,2BAA2B,QAAoC,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { statSync } from "node:fs";
|
|
2
|
+
const transcriptByteSource = {
|
|
3
|
+
measure: (job) => statSync(job.watchedFilePath ?? "").size,
|
|
4
|
+
};
|
|
5
|
+
export function makeContextUsageThresholdPolicy(source = transcriptByteSource) {
|
|
6
|
+
return {
|
|
7
|
+
name: "context-usage-threshold",
|
|
8
|
+
async evaluate(job) {
|
|
9
|
+
if (!job.thresholdBytes) {
|
|
10
|
+
return { action: "terminal", reason: "threshold_invalid" };
|
|
11
|
+
}
|
|
12
|
+
if (!job.occupantGeneration) {
|
|
13
|
+
return {
|
|
14
|
+
action: "terminal",
|
|
15
|
+
reason: "occupant_generation_unresolved",
|
|
16
|
+
notes: { targetSession: job.target.session },
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
if (job.lastFiredGeneration === job.occupantGeneration) {
|
|
20
|
+
// Keep one post-fire receipt observation in history, then make the
|
|
21
|
+
// stable once-per-generation no-op quiet so a long-lived job does not
|
|
22
|
+
// append a row on every scheduler interval.
|
|
23
|
+
return {
|
|
24
|
+
action: "skip",
|
|
25
|
+
reason: job.lastEvaluationAt === job.lastFireAt
|
|
26
|
+
? "threshold_already_fired"
|
|
27
|
+
: "threshold_receipt_stable",
|
|
28
|
+
notes: {
|
|
29
|
+
occupantGeneration: job.occupantGeneration,
|
|
30
|
+
watchedFilePath: job.watchedFilePath,
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
if (job.currentGenerationTranscriptPending) {
|
|
35
|
+
return {
|
|
36
|
+
action: "skip",
|
|
37
|
+
reason: "current_generation_transcript_pending",
|
|
38
|
+
notes: {
|
|
39
|
+
targetSession: job.target.session,
|
|
40
|
+
occupantGeneration: job.occupantGeneration,
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
let observedBytes;
|
|
45
|
+
try {
|
|
46
|
+
observedBytes = source.measure(job);
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
return {
|
|
50
|
+
action: "terminal",
|
|
51
|
+
reason: "watched_file_unresolved",
|
|
52
|
+
notes: {
|
|
53
|
+
watchedFilePath: job.watchedFilePath,
|
|
54
|
+
error: error instanceof Error ? error.message : String(error),
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
if (observedBytes < job.thresholdBytes) {
|
|
59
|
+
return {
|
|
60
|
+
action: "skip",
|
|
61
|
+
reason: "context_usage_below_threshold",
|
|
62
|
+
notes: {
|
|
63
|
+
observedBytes,
|
|
64
|
+
thresholdBytes: job.thresholdBytes,
|
|
65
|
+
watchedFilePath: job.watchedFilePath,
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
if (job.requiresJobId && !job.requiredReceiptSatisfied) {
|
|
70
|
+
return {
|
|
71
|
+
action: "skip",
|
|
72
|
+
reason: job.requiredReceiptDeferred
|
|
73
|
+
? "required_watchdog_receipt_not_yet_eligible"
|
|
74
|
+
: "required_watchdog_receipt_missing",
|
|
75
|
+
notes: {
|
|
76
|
+
requiresJobId: job.requiresJobId,
|
|
77
|
+
occupantGeneration: job.occupantGeneration,
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
const reason = `${observedBytes} transcript bytes crossed the ${job.thresholdBytes}-byte threshold ` +
|
|
82
|
+
`for occupant ${job.occupantGeneration}.`;
|
|
83
|
+
return {
|
|
84
|
+
action: "send",
|
|
85
|
+
target: job.target,
|
|
86
|
+
message: job.message ?? `Context usage threshold crossed for ${job.target.session}. ${reason}`,
|
|
87
|
+
notes: {
|
|
88
|
+
reason,
|
|
89
|
+
observedBytes,
|
|
90
|
+
thresholdBytes: job.thresholdBytes,
|
|
91
|
+
watchedFilePath: job.watchedFilePath,
|
|
92
|
+
occupantGeneration: job.occupantGeneration,
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
export const contextUsageThresholdPolicy = makeContextUsageThresholdPolicy();
|
|
99
|
+
//# sourceMappingURL=context-usage-threshold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-usage-threshold.js","sourceRoot":"","sources":["../../../src/domain/policies/context-usage-threshold.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { QueueRepository } from "../queue-repository.js";
|
|
2
|
+
import type { WatchdogJobsRepository } from "../watchdog-jobs-repository.js";
|
|
3
|
+
import type { Policy } from "./types.js";
|
|
4
|
+
export declare const DELIVERY_DEFERRAL_POLICY = "delivery-deferral";
|
|
5
|
+
export declare const DELIVERY_DEFERRAL_ARMED_PREFIX = "delivery-deferral-armed";
|
|
6
|
+
export declare const DELIVERY_DEFERRAL_FIRED_PREFIX = "delivery-deferral-fired";
|
|
7
|
+
export interface ArmDeliveryDeferralInput {
|
|
8
|
+
jobsRepo: WatchdogJobsRepository;
|
|
9
|
+
queueRepo: QueueRepository;
|
|
10
|
+
qitemId: string;
|
|
11
|
+
entityId: string;
|
|
12
|
+
minutes: number;
|
|
13
|
+
notificationKey?: string;
|
|
14
|
+
now?: Date;
|
|
15
|
+
}
|
|
16
|
+
/** Arm the one-shot deferral. Idempotent per notification key: an already-armed
|
|
17
|
+
* live deferral for the same episode is returned, never duplicated (the
|
|
18
|
+
* exactly-once half of AM-F3 — one delivery at T, never immediate-plus-deferred). */
|
|
19
|
+
export declare function armDeliveryDeferral(input: ArmDeliveryDeferralInput): {
|
|
20
|
+
jobId: string;
|
|
21
|
+
};
|
|
22
|
+
export interface FireDeliveryDeferralInput {
|
|
23
|
+
jobsRepo: WatchdogJobsRepository;
|
|
24
|
+
queueRepo: QueueRepository;
|
|
25
|
+
jobId: string;
|
|
26
|
+
/** R1 B-3: the EPISODE key rides the fire so the Slice 14 receipt lands
|
|
27
|
+
* current-episode-exact — never the bare-qitemId fallback. */
|
|
28
|
+
deliverInterrupt: (qitemId: string, notificationKey: string) => Promise<{
|
|
29
|
+
ok: boolean;
|
|
30
|
+
}>;
|
|
31
|
+
now?: Date;
|
|
32
|
+
}
|
|
33
|
+
/** Fire the deferral iff due — v3 (dual-rebind repair, R1 76a8cfd1 + R2
|
|
34
|
+
* 003f4786): the LOCKED contract is exactly-once at T+30, never zero, never
|
|
35
|
+
* two. The job stays ACTIVE (the redrive) until the episode's own posted
|
|
36
|
+
* receipt is OBSERVED on the row; only that observation writes the fired
|
|
37
|
+
* transition and the terminal state. Delivery rides a durable episode-stable
|
|
38
|
+
* decision id (`deferral:<key>`), so a replayed pending decision and a
|
|
39
|
+
* re-dispatch converge on one post; a death anywhere before the receipt
|
|
40
|
+
* leaves the ACTIVE job to redrive after reconstruction. */
|
|
41
|
+
export declare function fireDeliveryDeferralIfDue(input: FireDeliveryDeferralInput): Promise<{
|
|
42
|
+
fired: boolean;
|
|
43
|
+
}>;
|
|
44
|
+
/** Watchdog-engine policy wrapper (additionalPolicies injection, the
|
|
45
|
+
* parked-owner-consumer wiring precedent). The engine's scheduler cadence
|
|
46
|
+
* drives evaluation; the due arithmetic above owns the timing. */
|
|
47
|
+
export declare function makeDeliveryDeferralPolicy(deps: {
|
|
48
|
+
jobsRepo: WatchdogJobsRepository;
|
|
49
|
+
queueRepo: QueueRepository;
|
|
50
|
+
deliverInterrupt: (qitemId: string, notificationKey: string) => Promise<{
|
|
51
|
+
ok: boolean;
|
|
52
|
+
}>;
|
|
53
|
+
}): Policy;
|
|
54
|
+
//# sourceMappingURL=delivery-deferral.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-deferral.d.ts","sourceRoot":"","sources":["../../../src/domain/policies/delivery-deferral.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,MAAM,EAA+B,MAAM,YAAY,CAAC;AAEtE,eAAO,MAAM,wBAAwB,sBAAsB,CAAC;AAC5D,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AACxE,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AAExE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,SAAS,EAAE,eAAe,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAUD;;sFAEsF;AACtF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAoCtF;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd;mEAC+D;IAC/D,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACzF,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAgBD;;;;;;;6DAO6D;AAC7D,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CA4D7G;AAED;;mEAEmE;AACnE,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAC/C,QAAQ,EAAE,sBAAsB,CAAC;IACjC,SAAS,EAAE,eAAe,CAAC;IAC3B,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC1F,GAAG,MAAM,CAcT"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
// OPR.0.5.6.1 AM-F1 — the 30-minute away-escalation deferral as a DEFERRED
|
|
2
|
+
// DELIVERY on the EXISTING watchdog substrate (SQLite is the schedule; no
|
|
3
|
+
// third timer engine, no setInterval anywhere here). The deferral is recorded
|
|
4
|
+
// AS A TRANSITION on the row (the S01 transitions-are-the-state pattern), the
|
|
5
|
+
// job is a ONE-SHOT (terminal after its single fire — deliberately not the
|
|
6
|
+
// repeating periodic-reminder shape), and a daemon restart mid-window changes
|
|
7
|
+
// nothing: a fresh repository over the same DB sees the same armed job and the
|
|
8
|
+
// same fire-at arithmetic (AM-F1 tooth: exactly once at T+30, never zero,
|
|
9
|
+
// never two).
|
|
10
|
+
export const DELIVERY_DEFERRAL_POLICY = "delivery-deferral";
|
|
11
|
+
export const DELIVERY_DEFERRAL_ARMED_PREFIX = "delivery-deferral-armed";
|
|
12
|
+
export const DELIVERY_DEFERRAL_FIRED_PREFIX = "delivery-deferral-fired";
|
|
13
|
+
/** Arm the one-shot deferral. Idempotent per notification key: an already-armed
|
|
14
|
+
* live deferral for the same episode is returned, never duplicated (the
|
|
15
|
+
* exactly-once half of AM-F3 — one delivery at T, never immediate-plus-deferred). */
|
|
16
|
+
export function armDeliveryDeferral(input) {
|
|
17
|
+
const key = input.notificationKey ?? input.qitemId;
|
|
18
|
+
const existing = input.jobsRepo.listActive().find((j) => j.policy === DELIVERY_DEFERRAL_POLICY && j.specYaml.includes(`notificationKey: "${key}"`));
|
|
19
|
+
if (existing)
|
|
20
|
+
return { jobId: existing.jobId };
|
|
21
|
+
const armedAt = (input.now ?? new Date()).toISOString();
|
|
22
|
+
const specYaml = [
|
|
23
|
+
"context:",
|
|
24
|
+
` qitemId: "${input.qitemId}"`,
|
|
25
|
+
` entityId: "${input.entityId}"`,
|
|
26
|
+
` minutes: ${input.minutes}`,
|
|
27
|
+
` armedAt: "${armedAt}"`,
|
|
28
|
+
` notificationKey: "${key}"`,
|
|
29
|
+
].join("\n");
|
|
30
|
+
const job = input.jobsRepo.register({
|
|
31
|
+
policy: DELIVERY_DEFERRAL_POLICY,
|
|
32
|
+
specYaml,
|
|
33
|
+
targetSession: `${input.entityId}@external`,
|
|
34
|
+
intervalSeconds: Math.max(60, input.minutes * 60),
|
|
35
|
+
registeredBySession: "daemon@kernel",
|
|
36
|
+
});
|
|
37
|
+
// Transitions ARE the state: the deferral is readable off the row after any restart.
|
|
38
|
+
input.queueRepo.update({
|
|
39
|
+
qitemId: input.qitemId,
|
|
40
|
+
actorSession: "daemon@kernel",
|
|
41
|
+
transitionNote: [
|
|
42
|
+
DELIVERY_DEFERRAL_ARMED_PREFIX,
|
|
43
|
+
`job_id=${job.jobId}`,
|
|
44
|
+
`fire_at=${new Date(Date.parse(armedAt) + input.minutes * 60_000).toISOString()}`,
|
|
45
|
+
`notification_key=${key}`,
|
|
46
|
+
`who=${input.entityId}`,
|
|
47
|
+
].join(" "),
|
|
48
|
+
});
|
|
49
|
+
return { jobId: job.jobId };
|
|
50
|
+
}
|
|
51
|
+
function parseContext(specYaml) {
|
|
52
|
+
const grab = (k) => {
|
|
53
|
+
const m = specYaml.match(new RegExp(`${k}:\\s*"?([^"\\n]+)"?`));
|
|
54
|
+
return m ? m[1] : null;
|
|
55
|
+
};
|
|
56
|
+
const qitemId = grab("qitemId");
|
|
57
|
+
const entityId = grab("entityId");
|
|
58
|
+
const minutes = grab("minutes");
|
|
59
|
+
const armedAt = grab("armedAt");
|
|
60
|
+
const notificationKey = grab("notificationKey");
|
|
61
|
+
if (!qitemId || !entityId || !minutes || !armedAt || !notificationKey)
|
|
62
|
+
return null;
|
|
63
|
+
return { qitemId, entityId, minutes: Number(minutes), armedAt, notificationKey };
|
|
64
|
+
}
|
|
65
|
+
/** Fire the deferral iff due — v3 (dual-rebind repair, R1 76a8cfd1 + R2
|
|
66
|
+
* 003f4786): the LOCKED contract is exactly-once at T+30, never zero, never
|
|
67
|
+
* two. The job stays ACTIVE (the redrive) until the episode's own posted
|
|
68
|
+
* receipt is OBSERVED on the row; only that observation writes the fired
|
|
69
|
+
* transition and the terminal state. Delivery rides a durable episode-stable
|
|
70
|
+
* decision id (`deferral:<key>`), so a replayed pending decision and a
|
|
71
|
+
* re-dispatch converge on one post; a death anywhere before the receipt
|
|
72
|
+
* leaves the ACTIVE job to redrive after reconstruction. */
|
|
73
|
+
export async function fireDeliveryDeferralIfDue(input) {
|
|
74
|
+
const job = input.jobsRepo.getById(input.jobId);
|
|
75
|
+
if (!job || job.state !== "active")
|
|
76
|
+
return { fired: false };
|
|
77
|
+
const ctx = parseContext(job.specYaml);
|
|
78
|
+
if (!ctx) {
|
|
79
|
+
input.jobsRepo.markTerminal(input.jobId, "delivery-deferral spec unparseable (fail closed, loudly terminal)");
|
|
80
|
+
return { fired: false };
|
|
81
|
+
}
|
|
82
|
+
const now = input.now ?? new Date();
|
|
83
|
+
const fireAt = Date.parse(ctx.armedAt) + ctx.minutes * 60_000;
|
|
84
|
+
if (now.getTime() < fireAt)
|
|
85
|
+
return { fired: false };
|
|
86
|
+
const notes = input.queueRepo.listTransitions(ctx.qitemId).map((t) => t.transitionNote ?? "");
|
|
87
|
+
// The episode's receipt is the ONLY completion evidence: observe -> fired -> terminal.
|
|
88
|
+
const receipted = notes.some((n) => n.startsWith("slack-owner-notification-posted ") && n.split(/\s+/).includes(`notification_key=${ctx.notificationKey}`));
|
|
89
|
+
if (receipted) {
|
|
90
|
+
if (!notes.some((n) => n.startsWith(DELIVERY_DEFERRAL_FIRED_PREFIX))) {
|
|
91
|
+
input.queueRepo.update({
|
|
92
|
+
qitemId: ctx.qitemId,
|
|
93
|
+
actorSession: "daemon@kernel",
|
|
94
|
+
transitionNote: [
|
|
95
|
+
DELIVERY_DEFERRAL_FIRED_PREFIX,
|
|
96
|
+
`job_id=${input.jobId}`,
|
|
97
|
+
`notification_key=${ctx.notificationKey}`,
|
|
98
|
+
`who=${ctx.entityId}`,
|
|
99
|
+
].join(" "),
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
input.jobsRepo.markTerminal(input.jobId, "delivery-deferral fired (receipt observed)");
|
|
103
|
+
return { fired: true };
|
|
104
|
+
}
|
|
105
|
+
// Distinct PENDING state (never terminal, never posted): the dispatch attempt
|
|
106
|
+
// is on the record while the job redrives.
|
|
107
|
+
if (!notes.some((n) => n.startsWith("delivery-deferral-dispatching"))) {
|
|
108
|
+
input.queueRepo.update({
|
|
109
|
+
qitemId: ctx.qitemId,
|
|
110
|
+
actorSession: "daemon@kernel",
|
|
111
|
+
transitionNote: `delivery-deferral-dispatching job_id=${input.jobId} notification_key=${ctx.notificationKey}`,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
const delivery = await input.deliverInterrupt(ctx.qitemId, ctx.notificationKey);
|
|
116
|
+
if (!delivery.ok) {
|
|
117
|
+
input.queueRepo.update({
|
|
118
|
+
qitemId: ctx.qitemId,
|
|
119
|
+
actorSession: "daemon@kernel",
|
|
120
|
+
transitionNote: `delivery-deferral-attempt-failed job_id=${input.jobId} notification_key=${ctx.notificationKey}`,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
catch (e) {
|
|
125
|
+
// A death/throw mid-delivery: the job stays ACTIVE — reconstruction redrives.
|
|
126
|
+
input.queueRepo.update({
|
|
127
|
+
qitemId: ctx.qitemId,
|
|
128
|
+
actorSession: "daemon@kernel",
|
|
129
|
+
transitionNote: `delivery-deferral-attempt-failed job_id=${input.jobId} notification_key=${ctx.notificationKey} error=${e.message.slice(0, 120)}`,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
return { fired: false };
|
|
133
|
+
}
|
|
134
|
+
/** Watchdog-engine policy wrapper (additionalPolicies injection, the
|
|
135
|
+
* parked-owner-consumer wiring precedent). The engine's scheduler cadence
|
|
136
|
+
* drives evaluation; the due arithmetic above owns the timing. */
|
|
137
|
+
export function makeDeliveryDeferralPolicy(deps) {
|
|
138
|
+
return {
|
|
139
|
+
name: DELIVERY_DEFERRAL_POLICY,
|
|
140
|
+
async evaluate(job) {
|
|
141
|
+
const { fired } = await fireDeliveryDeferralIfDue({
|
|
142
|
+
jobsRepo: deps.jobsRepo,
|
|
143
|
+
queueRepo: deps.queueRepo,
|
|
144
|
+
jobId: job.jobId,
|
|
145
|
+
deliverInterrupt: deps.deliverInterrupt,
|
|
146
|
+
});
|
|
147
|
+
if (fired)
|
|
148
|
+
return { action: "terminal", reason: "delivery-deferral fired" };
|
|
149
|
+
return { action: "skip", reason: "not due" };
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=delivery-deferral.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-deferral.js","sourceRoot":"","sources":["../../../src/domain/policies/delivery-deferral.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { QueueRepository } from "../queue-repository.js";
|
|
2
|
+
import type { OwnerNotificationLevel } from "../queue-transition-log.js";
|
|
3
|
+
import type { Policy } from "./types.js";
|
|
4
|
+
export declare const DELIVERY_DIGEST_FLUSH_POLICY = "delivery-digest-flush";
|
|
5
|
+
interface RegistrySurfaceLike {
|
|
6
|
+
loadHumanRegistry: (home: string) => {
|
|
7
|
+
ok: boolean;
|
|
8
|
+
entities?: Array<{
|
|
9
|
+
entityId: string;
|
|
10
|
+
address: string;
|
|
11
|
+
}>;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export interface RunDeliveryDigestFlushInput {
|
|
15
|
+
queueRepo: QueueRepository;
|
|
16
|
+
registry: RegistrySurfaceLike;
|
|
17
|
+
home: string;
|
|
18
|
+
dispatch: (op: string, entityBindingRef: string, payload: unknown, opts?: {
|
|
19
|
+
decisionId?: string;
|
|
20
|
+
}) => {
|
|
21
|
+
ok: boolean;
|
|
22
|
+
error?: string;
|
|
23
|
+
};
|
|
24
|
+
window: "4h" | "daily";
|
|
25
|
+
minimumLevel?: OwnerNotificationLevel;
|
|
26
|
+
}
|
|
27
|
+
export declare function runDeliveryDigestFlush(input: RunDeliveryDigestFlushInput): Promise<{
|
|
28
|
+
dispatched: number;
|
|
29
|
+
members: number;
|
|
30
|
+
}>;
|
|
31
|
+
/** Watchdog-engine policy wrapper — the repeating window flush (digests recur;
|
|
32
|
+
* only the deferral is one-shot). */
|
|
33
|
+
export declare function makeDeliveryDigestFlushPolicy(deps: {
|
|
34
|
+
queueRepo: QueueRepository;
|
|
35
|
+
registry: RegistrySurfaceLike;
|
|
36
|
+
home: string;
|
|
37
|
+
dispatch: (op: string, entityBindingRef: string, payload: unknown, opts?: {
|
|
38
|
+
decisionId?: string;
|
|
39
|
+
}) => {
|
|
40
|
+
ok: boolean;
|
|
41
|
+
error?: string;
|
|
42
|
+
};
|
|
43
|
+
}): Policy;
|
|
44
|
+
export {};
|
|
45
|
+
//# sourceMappingURL=delivery-digest-flush.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-digest-flush.d.ts","sourceRoot":"","sources":["../../../src/domain/policies/delivery-digest-flush.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGzE,OAAO,KAAK,EAAE,MAAM,EAA+B,MAAM,YAAY,CAAC;AAEtE,eAAO,MAAM,4BAA4B,0BAA0B,CAAC;AAEpE,UAAU,mBAAmB;IAC3B,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK;QACnC,EAAE,EAAE,OAAO,CAAC;QACZ,QAAQ,CAAC,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACzD,CAAC;CACH;AAED,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,eAAe,CAAC;IAC3B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtI,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,sBAAsB,CAAC;CACvC;AAED,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA6DjI;AAED;sCACsC;AACtC,wBAAgB,6BAA6B,CAAC,IAAI,EAAE;IAClD,SAAS,EAAE,eAAe,CAAC;IAC3B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACvI,GAAG,MAAM,CAUT"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// OPR.0.5.6.1 mini-req 3 + AM-F1 — the C/D digest flush, v3 (dual-rebind
|
|
2
|
+
// repair, R1 76a8cfd1 + R2 003f4786): LOSSLESS and EXACTLY-ONCE by transport
|
|
3
|
+
// truth. Membership = the RECORDED message-time decision for the CURRENT
|
|
4
|
+
// episode (containment wrote it with live dials at decision time). The digest
|
|
5
|
+
// posts THROUGH THE GATEWAY on a durable episode-stable decision id
|
|
6
|
+
// (`digest:<stable-hash>`): the dispatch buffer redrives it until the real
|
|
7
|
+
// post succeeds, the delivered-store makes any replay/re-dispatch converge on
|
|
8
|
+
// one post, and the S14 retain-and-repair path owns the post/stamp crash
|
|
9
|
+
// boundary. Member receipts are stamped by the delivery seam ONLY AFTER the
|
|
10
|
+
// post — a transport failure leaves zero false receipts and every member
|
|
11
|
+
// flushable (the redrive is the recovery, never a silent loss).
|
|
12
|
+
import { createHash } from "node:crypto";
|
|
13
|
+
import { makeQueuePorts } from "../gateway/slack/queue-access.js";
|
|
14
|
+
import { OUTBOUND_OP } from "../gateway/slack/outbound-driver.js";
|
|
15
|
+
import { DispatchBuffer } from "../gateway/dispatch-buffer.js";
|
|
16
|
+
export const DELIVERY_DIGEST_FLUSH_POLICY = "delivery-digest-flush";
|
|
17
|
+
export async function runDeliveryDigestFlush(input) {
|
|
18
|
+
const reg = input.registry.loadHumanRegistry(input.home);
|
|
19
|
+
if (!reg.ok || !reg.entities || reg.entities.length === 0)
|
|
20
|
+
return { dispatched: 0, members: 0 };
|
|
21
|
+
const human = reg.entities[0];
|
|
22
|
+
const ports = makeQueuePorts(input.queueRepo, {
|
|
23
|
+
loadHumanRegistry: () => reg,
|
|
24
|
+
});
|
|
25
|
+
// The selection already drops receipted episodes — receipts exist only after
|
|
26
|
+
// a REAL post, so members remain flushable until transport truth.
|
|
27
|
+
const alerts = await ports.listHumanAlerts({ minimumLevel: input.minimumLevel ?? "NOTICE" });
|
|
28
|
+
// MEMBERSHIP EXCLUSIVITY (R1 HOLD c7818ceb): a member already riding a
|
|
29
|
+
// PENDING digest decision is IN FLIGHT — the durable buffer is the
|
|
30
|
+
// recovery-safe source of truth (no new state, no ordering window: a mint
|
|
31
|
+
// lost before enqueue leaves no pending entry, so its members stay
|
|
32
|
+
// mintable; an enqueued mint redrives to transport truth). Excluding
|
|
33
|
+
// in-flight members makes overlap structurally impossible, so a growing
|
|
34
|
+
// member set can never double-deliver the pending ones.
|
|
35
|
+
const inFlight = new Set();
|
|
36
|
+
try {
|
|
37
|
+
for (const d of new DispatchBuffer(input.home).pending()) {
|
|
38
|
+
if (!d.decisionId.startsWith("digest:"))
|
|
39
|
+
continue;
|
|
40
|
+
const mrs = d.payload?.memberReceipts ?? [];
|
|
41
|
+
for (const m of mrs)
|
|
42
|
+
if (m.notificationKey)
|
|
43
|
+
inFlight.add(m.notificationKey);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch { /* unreadable buffer: fail open to selection; the dispatcher's stable-id idempotence still guards the same-set case */ }
|
|
47
|
+
const members = alerts.filter((alert) => {
|
|
48
|
+
const key = alert.notificationKey ?? alert.qitemId;
|
|
49
|
+
if (inFlight.has(key))
|
|
50
|
+
return false;
|
|
51
|
+
return input.queueRepo.listTransitions(alert.qitemId).some((t) => t.transitionNote?.startsWith("delivery-decision: digest")
|
|
52
|
+
&& t.transitionNote.includes(`notification_key=${key}`)
|
|
53
|
+
&& t.transitionNote.includes(`window=${input.window}`));
|
|
54
|
+
});
|
|
55
|
+
if (members.length === 0)
|
|
56
|
+
return { dispatched: 0, members: 0 };
|
|
57
|
+
const memberReceipts = members.map((m) => ({
|
|
58
|
+
qitemId: m.qitemId,
|
|
59
|
+
notificationKey: m.notificationKey ?? m.qitemId,
|
|
60
|
+
level: m.ownerNotificationLevel ?? "RECORD",
|
|
61
|
+
kind: m.ownerNotificationKind ?? "unclassified",
|
|
62
|
+
}));
|
|
63
|
+
// Durable episode-stable identity: same member set + window -> same decision id.
|
|
64
|
+
const digestId = createHash("sha256")
|
|
65
|
+
.update(input.window + "|" + memberReceipts.map((m) => m.notificationKey).sort().join(","))
|
|
66
|
+
.digest("hex")
|
|
67
|
+
.slice(0, 16);
|
|
68
|
+
const payload = {
|
|
69
|
+
deliveryDigestPost: true,
|
|
70
|
+
digestId,
|
|
71
|
+
qitemId: memberReceipts[0].qitemId, // anchor row for transport-failure ledger writes
|
|
72
|
+
destinationSession: human.address,
|
|
73
|
+
summary: `Delivery digest (${input.window}) — ${members.length} item(s)`,
|
|
74
|
+
body: members.map((m) => `• ${m.summary ?? m.qitemId} [${m.qitemId}]`).join("\n"),
|
|
75
|
+
memberReceipts,
|
|
76
|
+
};
|
|
77
|
+
const res = input.dispatch(OUTBOUND_OP, human.address, payload, { decisionId: `digest:${digestId}` });
|
|
78
|
+
return { dispatched: res.ok ? 1 : 0, members: members.length };
|
|
79
|
+
}
|
|
80
|
+
/** Watchdog-engine policy wrapper — the repeating window flush (digests recur;
|
|
81
|
+
* only the deferral is one-shot). */
|
|
82
|
+
export function makeDeliveryDigestFlushPolicy(deps) {
|
|
83
|
+
return {
|
|
84
|
+
name: DELIVERY_DIGEST_FLUSH_POLICY,
|
|
85
|
+
async evaluate(job) {
|
|
86
|
+
const window = (job.context.window === "daily" ? "daily" : "4h");
|
|
87
|
+
const r = await runDeliveryDigestFlush({ ...deps, window });
|
|
88
|
+
if (r.dispatched > 0)
|
|
89
|
+
return { action: "skip", reason: `digest dispatched (${r.members} items)` };
|
|
90
|
+
return { action: "skip", reason: "nothing to flush" };
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=delivery-digest-flush.js.map
|