@telora/daemon 0.22.306 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build-info.json +13 -3
- package/dist/audit/audit-floor-policy.js +1 -1
- package/dist/audit/audit-floor-policy.js.map +1 -1
- package/dist/audit/audit-prompt.d.ts.map +1 -1
- package/dist/audit/audit-prompt.js +21 -14
- package/dist/audit/audit-prompt.js.map +1 -1
- package/dist/completion/completion-event/event.d.ts +7 -0
- package/dist/completion/completion-event/event.d.ts.map +1 -1
- package/dist/completion/completion-event/event.js.map +1 -1
- package/dist/completion/review-cycle-budget/review-cycle-cap.d.ts +9 -1
- package/dist/completion/review-cycle-budget/review-cycle-cap.d.ts.map +1 -1
- package/dist/completion/review-cycle-budget/review-cycle-cap.js +2 -1
- package/dist/completion/review-cycle-budget/review-cycle-cap.js.map +1 -1
- package/dist/completion/review-exit/review-exit-deps.d.ts +2 -0
- package/dist/completion/review-exit/review-exit-deps.d.ts.map +1 -1
- package/dist/completion/review-exit/review-exit-deps.js +1 -1
- package/dist/completion/review-exit/review-exit-evidence.d.ts +10 -0
- package/dist/completion/review-exit/review-exit-evidence.d.ts.map +1 -1
- package/dist/completion/review-exit/review-exit-evidence.js +12 -2
- package/dist/completion/review-exit/review-exit-evidence.js.map +1 -1
- package/dist/completion/review-exit/review-exit-falsifiers.d.ts +72 -0
- package/dist/completion/review-exit/review-exit-falsifiers.d.ts.map +1 -0
- package/dist/completion/review-exit/review-exit-falsifiers.js +84 -0
- package/dist/completion/review-exit/review-exit-falsifiers.js.map +1 -0
- package/dist/completion/review-exit/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit/review-exit-phase.js +10 -8
- package/dist/completion/review-exit/review-exit-phase.js.map +1 -1
- package/dist/completion/state-cascade/review-next-step.d.ts +11 -0
- package/dist/completion/state-cascade/review-next-step.d.ts.map +1 -1
- package/dist/completion/state-cascade/review-next-step.js +6 -3
- package/dist/completion/state-cascade/review-next-step.js.map +1 -1
- package/dist/completion/state-cascade/standing-approval-convergence.d.ts +3 -0
- package/dist/completion/state-cascade/standing-approval-convergence.d.ts.map +1 -1
- package/dist/completion/state-cascade/standing-approval-convergence.js +10 -5
- package/dist/completion/state-cascade/standing-approval-convergence.js.map +1 -1
- package/dist/completion/state-cascade/state-cascade.d.ts +8 -0
- package/dist/completion/state-cascade/state-cascade.d.ts.map +1 -1
- package/dist/completion/state-cascade/state-cascade.js +2 -0
- package/dist/completion/state-cascade/state-cascade.js.map +1 -1
- package/dist/completion/team-exit/status-advance-phase.d.ts +6 -0
- package/dist/completion/team-exit/status-advance-phase.d.ts.map +1 -1
- package/dist/completion/team-exit/status-advance-phase.js +12 -9
- package/dist/completion/team-exit/status-advance-phase.js.map +1 -1
- package/dist/completion/team-exit/team-completion.d.ts.map +1 -1
- package/dist/completion/team-exit/team-completion.js +1 -0
- package/dist/completion/team-exit/team-completion.js.map +1 -1
- package/dist/completion/team-exit/terminated-work-reconcile.d.ts +6 -0
- package/dist/completion/team-exit/terminated-work-reconcile.d.ts.map +1 -1
- package/dist/completion/team-exit/terminated-work-reconcile.js +5 -7
- package/dist/completion/team-exit/terminated-work-reconcile.js.map +1 -1
- package/dist/completion/team-outcome/apply-close.d.ts.map +1 -1
- package/dist/completion/team-outcome/apply-close.js +1 -0
- package/dist/completion/team-outcome/apply-close.js.map +1 -1
- package/dist/completion/team-outcome/apply-turn.d.ts.map +1 -1
- package/dist/completion/team-outcome/apply-turn.js +13 -7
- package/dist/completion/team-outcome/apply-turn.js.map +1 -1
- package/dist/completion/team-outcome/decide-close-rows.d.ts.map +1 -1
- package/dist/completion/team-outcome/decide-close-rows.js +2 -7
- package/dist/completion/team-outcome/decide-close-rows.js.map +1 -1
- package/dist/completion/team-outcome/decide-turn-entry-rows.d.ts.map +1 -1
- package/dist/completion/team-outcome/decide-turn-entry-rows.js +5 -1
- package/dist/completion/team-outcome/decide-turn-entry-rows.js.map +1 -1
- package/dist/completion/team-outcome/exit-pipeline-state.d.ts +5 -0
- package/dist/completion/team-outcome/exit-pipeline-state.d.ts.map +1 -1
- package/dist/completion/team-outcome/exit-pipeline-state.js.map +1 -1
- package/dist/completion/team-outcome/work-facts.d.ts +7 -1
- package/dist/completion/team-outcome/work-facts.d.ts.map +1 -1
- package/dist/completion/team-outcome/work-facts.js +9 -4
- package/dist/completion/team-outcome/work-facts.js.map +1 -1
- package/dist/composition/advance-precheck-context.d.ts.map +1 -1
- package/dist/composition/advance-precheck-context.js +1 -0
- package/dist/composition/advance-precheck-context.js.map +1 -1
- package/dist/composition/completion-event-context.d.ts.map +1 -1
- package/dist/composition/completion-event-context.js +4 -0
- package/dist/composition/completion-event-context.js.map +1 -1
- package/dist/composition/daemon-contexts.js +1 -1
- package/dist/composition/execution-directive-context.d.ts.map +1 -1
- package/dist/composition/execution-directive-context.js +1 -0
- package/dist/composition/execution-directive-context.js.map +1 -1
- package/dist/composition/execution-resolver-context.d.ts.map +1 -1
- package/dist/composition/execution-resolver-context.js +2 -1
- package/dist/composition/execution-resolver-context.js.map +1 -1
- package/dist/composition/execution-spawn-context.d.ts +1 -1
- package/dist/composition/execution-spawn-context.d.ts.map +1 -1
- package/dist/composition/execution-spawn-context.js +6 -3
- package/dist/composition/execution-spawn-context.js.map +1 -1
- package/dist/composition/reopening-falsifier-context.d.ts +9 -0
- package/dist/composition/reopening-falsifier-context.d.ts.map +1 -0
- package/dist/composition/reopening-falsifier-context.js +82 -0
- package/dist/composition/reopening-falsifier-context.js.map +1 -0
- package/dist/composition/review-exit-context.d.ts.map +1 -1
- package/dist/composition/review-exit-context.js +5 -2
- package/dist/composition/review-exit-context.js.map +1 -1
- package/dist/composition/runtime-contexts.d.ts.map +1 -1
- package/dist/composition/runtime-contexts.js +4 -3
- package/dist/composition/runtime-contexts.js.map +1 -1
- package/dist/composition/runtime-delivery-advance-context.d.ts.map +1 -1
- package/dist/composition/runtime-delivery-advance-context.js +4 -0
- package/dist/composition/runtime-delivery-advance-context.js.map +1 -1
- package/dist/composition/runtime-spawn-pass-context.d.ts.map +1 -1
- package/dist/composition/runtime-spawn-pass-context.js +5 -1
- package/dist/composition/runtime-spawn-pass-context.js.map +1 -1
- package/dist/composition/spawn-pass-deps.d.ts.map +1 -1
- package/dist/composition/spawn-pass-deps.js +4 -0
- package/dist/composition/spawn-pass-deps.js.map +1 -1
- package/dist/composition/standing-approval-context.d.ts.map +1 -1
- package/dist/composition/standing-approval-context.js +3 -0
- package/dist/composition/standing-approval-context.js.map +1 -1
- package/dist/composition/state-cascade-context.d.ts.map +1 -1
- package/dist/composition/state-cascade-context.js +7 -2
- package/dist/composition/state-cascade-context.js.map +1 -1
- package/dist/config/live-daemon-config.d.ts.map +1 -1
- package/dist/config/live-daemon-config.js +2 -0
- package/dist/config/live-daemon-config.js.map +1 -1
- package/dist/daemon-state/focus-team-state.js +1 -1
- package/dist/delivery/commit-verdict-hold.d.ts +12 -0
- package/dist/delivery/commit-verdict-hold.d.ts.map +1 -1
- package/dist/delivery/commit-verdict-hold.js +11 -0
- package/dist/delivery/commit-verdict-hold.js.map +1 -1
- package/dist/delivery/delivery-lifecycle.d.ts.map +1 -1
- package/dist/delivery/delivery-lifecycle.js +1 -0
- package/dist/delivery/delivery-lifecycle.js.map +1 -1
- package/dist/delivery/delivery-reconciler-apply.d.ts.map +1 -1
- package/dist/delivery/delivery-reconciler-apply.js +10 -2
- package/dist/delivery/delivery-reconciler-apply.js.map +1 -1
- package/dist/delivery/delivery-reconciler.d.ts +33 -18
- package/dist/delivery/delivery-reconciler.d.ts.map +1 -1
- package/dist/delivery/delivery-reconciler.js +33 -23
- package/dist/delivery/delivery-reconciler.js.map +1 -1
- package/dist/delivery/recorded-concerns.d.ts +57 -0
- package/dist/delivery/recorded-concerns.d.ts.map +1 -0
- package/dist/delivery/recorded-concerns.js +45 -0
- package/dist/delivery/recorded-concerns.js.map +1 -0
- package/dist/directive/directive-queue.d.ts +13 -0
- package/dist/directive/directive-queue.d.ts.map +1 -1
- package/dist/directive/directive-queue.js +19 -1
- package/dist/directive/directive-queue.js.map +1 -1
- package/dist/directive/phase-sync.d.ts +10 -0
- package/dist/directive/phase-sync.d.ts.map +1 -1
- package/dist/directive/phase-sync.js +11 -0
- package/dist/directive/phase-sync.js.map +1 -1
- package/dist/focus/closed-review-window.d.ts +26 -0
- package/dist/focus/closed-review-window.d.ts.map +1 -0
- package/dist/focus/closed-review-window.js +62 -0
- package/dist/focus/closed-review-window.js.map +1 -0
- package/dist/focus/daemon-contexts.js +1 -1
- package/dist/focus/directive-executor.d.ts.map +1 -1
- package/dist/focus/directive-executor.js +3 -8
- package/dist/focus/directive-executor.js.map +1 -1
- package/dist/focus/focus-executor.js +2 -2
- package/dist/focus/focus-executor.js.map +1 -1
- package/dist/focus/focus-poller-auto-advance.d.ts +7 -0
- package/dist/focus/focus-poller-auto-advance.d.ts.map +1 -1
- package/dist/focus/focus-poller-auto-advance.js +8 -6
- package/dist/focus/focus-poller-auto-advance.js.map +1 -1
- package/dist/focus/focus-poller-spawn.d.ts.map +1 -1
- package/dist/focus/focus-poller-spawn.js +39 -28
- package/dist/focus/focus-poller-spawn.js.map +1 -1
- package/dist/focus/focus-poller-state.d.ts.map +1 -1
- package/dist/focus/focus-poller-state.js +2 -0
- package/dist/focus/focus-poller-state.js.map +1 -1
- package/dist/focus/pending-review-approved-head.d.ts.map +1 -1
- package/dist/focus/pending-review-approved-head.js +2 -0
- package/dist/focus/pending-review-approved-head.js.map +1 -1
- package/dist/focus/pending-spawn-pass-deps.d.ts +3 -0
- package/dist/focus/pending-spawn-pass-deps.d.ts.map +1 -1
- package/dist/focus/pending-spawn-pass-deps.js +1 -0
- package/dist/focus/pending-spawn-pass-deps.js.map +1 -1
- package/dist/focus/pending-spawn-review-next-step.d.ts +3 -0
- package/dist/focus/pending-spawn-review-next-step.d.ts.map +1 -1
- package/dist/focus/pending-spawn-review-next-step.js +3 -0
- package/dist/focus/pending-spawn-review-next-step.js.map +1 -1
- package/dist/focus/ready-focus-team-work.d.ts +8 -0
- package/dist/focus/ready-focus-team-work.d.ts.map +1 -1
- package/dist/focus/ready-focus-team-work.js +5 -1
- package/dist/focus/ready-focus-team-work.js.map +1 -1
- package/dist/focus/stranded-review-reroute.d.ts +32 -1
- package/dist/focus/stranded-review-reroute.d.ts.map +1 -1
- package/dist/focus/stranded-review-reroute.js +50 -1
- package/dist/focus/stranded-review-reroute.js.map +1 -1
- package/dist/focus/verify-open-issues.d.ts +7 -0
- package/dist/focus/verify-open-issues.d.ts.map +1 -1
- package/dist/focus/verify-open-issues.js +8 -4
- package/dist/focus/verify-open-issues.js.map +1 -1
- package/dist/focus-stage-lifecycle/ratify-bar-gate.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/ratify-bar-gate.js +4 -3
- package/dist/focus-stage-lifecycle/ratify-bar-gate.js.map +1 -1
- package/dist/nexus/intake-prompt-sections.js +3 -3
- package/dist/nexus/intake-prompt-sections.js.map +1 -1
- package/dist/prd/arm-readiness.d.ts +49 -74
- package/dist/prd/arm-readiness.d.ts.map +1 -1
- package/dist/prd/arm-readiness.js +48 -196
- package/dist/prd/arm-readiness.js.map +1 -1
- package/dist/prd/frontier-arming.d.ts.map +1 -1
- package/dist/prd/frontier-arming.js +0 -2
- package/dist/prd/frontier-arming.js.map +1 -1
- package/dist/prd/scoping-prompt.js +3 -3
- package/dist/prd/scoping-prompt.js.map +1 -1
- package/dist/prompt/focus-prompt-builder.d.ts +9 -2
- package/dist/prompt/focus-prompt-builder.d.ts.map +1 -1
- package/dist/prompt/focus-prompt-builder.js +19 -8
- package/dist/prompt/focus-prompt-builder.js.map +1 -1
- package/dist/prompt/team-prompt-base.d.ts.map +1 -1
- package/dist/prompt/team-prompt-base.js +2 -1
- package/dist/prompt/team-prompt-base.js.map +1 -1
- package/dist/prompt-sections/execution-sections.d.ts +7 -1
- package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
- package/dist/prompt-sections/execution-sections.js +41 -22
- package/dist/prompt-sections/execution-sections.js.map +1 -1
- package/dist/prompt-sections/persona-sections.d.ts +6 -0
- package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
- package/dist/prompt-sections/persona-sections.js +27 -1
- package/dist/prompt-sections/persona-sections.js.map +1 -1
- package/dist/prompt-sections/prompt-listing.d.ts +21 -0
- package/dist/prompt-sections/prompt-listing.d.ts.map +1 -1
- package/dist/prompt-sections/prompt-listing.js +35 -0
- package/dist/prompt-sections/prompt-listing.js.map +1 -1
- package/dist/prompt-sections/role-sections.d.ts.map +1 -1
- package/dist/prompt-sections/role-sections.js +9 -6
- package/dist/prompt-sections/role-sections.js.map +1 -1
- package/dist/prompt-sections/shared.d.ts +7 -0
- package/dist/prompt-sections/shared.d.ts.map +1 -1
- package/dist/prompt-sections/shared.js +1 -1
- package/dist/prompt-sections/shared.js.map +1 -1
- package/dist/queries/deliveries/issues.d.ts.map +1 -1
- package/dist/queries/deliveries/issues.js +1 -0
- package/dist/queries/deliveries/issues.js.map +1 -1
- package/dist/queries/focus-review/criterion-reopenings.d.ts +62 -0
- package/dist/queries/focus-review/criterion-reopenings.d.ts.map +1 -0
- package/dist/queries/focus-review/criterion-reopenings.js +67 -0
- package/dist/queries/focus-review/criterion-reopenings.js.map +1 -0
- package/dist/queries/focus-review/recorded-concern-ids.d.ts +47 -0
- package/dist/queries/focus-review/recorded-concern-ids.d.ts.map +1 -0
- package/dist/queries/focus-review/recorded-concern-ids.js +33 -0
- package/dist/queries/focus-review/recorded-concern-ids.js.map +1 -0
- package/dist/queries/focus-review/review-finding-facts.d.ts.map +1 -1
- package/dist/queries/focus-review/review-finding-facts.js +5 -1
- package/dist/queries/focus-review/review-finding-facts.js.map +1 -1
- package/dist/queries/focuses/arm-covered-targets.d.ts +10 -1
- package/dist/queries/focuses/arm-covered-targets.d.ts.map +1 -1
- package/dist/queries/focuses/arm-covered-targets.js +9 -0
- package/dist/queries/focuses/arm-covered-targets.js.map +1 -1
- package/dist/queries/focuses/ended-arm.d.ts +12 -0
- package/dist/queries/focuses/ended-arm.d.ts.map +1 -1
- package/dist/queries/focuses/focus-criteria-standing.d.ts +17 -0
- package/dist/queries/focuses/focus-criteria-standing.d.ts.map +1 -1
- package/dist/queries/focuses/focus-criteria-standing.js +29 -1
- package/dist/queries/focuses/focus-criteria-standing.js.map +1 -1
- package/dist/queries/focuses/focus-discovery.d.ts.map +1 -1
- package/dist/queries/focuses/focus-discovery.js +2 -1
- package/dist/queries/focuses/focus-discovery.js.map +1 -1
- package/dist/queries/verification/verification.js +1 -1
- package/dist/reality/injection-writeback.d.ts +5 -4
- package/dist/reality/injection-writeback.d.ts.map +1 -1
- package/dist/reality/injection-writeback.js +3 -2
- package/dist/reality/injection-writeback.js.map +1 -1
- package/dist/reality/reality-writeback.d.ts +13 -12
- package/dist/reality/reality-writeback.d.ts.map +1 -1
- package/dist/reality/reality-writeback.js +5 -5
- package/dist/reality/reality-writeback.js.map +1 -1
- package/dist/resolvers/assembly-engine.js +1 -1
- package/dist/resolvers/compose/focus-injections-compose.d.ts.map +1 -1
- package/dist/resolvers/compose/focus-injections-compose.js +3 -2
- package/dist/resolvers/compose/focus-injections-compose.js.map +1 -1
- package/dist/resolvers/compose/loop-delivery-index-compose.d.ts +10 -0
- package/dist/resolvers/compose/loop-delivery-index-compose.d.ts.map +1 -1
- package/dist/resolvers/compose/loop-delivery-index-compose.js +15 -3
- package/dist/resolvers/compose/loop-delivery-index-compose.js.map +1 -1
- package/dist/resolvers/delivery-listing.d.ts +7 -0
- package/dist/resolvers/delivery-listing.d.ts.map +1 -1
- package/dist/resolvers/delivery-listing.js +26 -4
- package/dist/resolvers/delivery-listing.js.map +1 -1
- package/dist/resolvers/focus-anchoring-injections.d.ts +0 -24
- package/dist/resolvers/focus-anchoring-injections.d.ts.map +1 -1
- package/dist/resolvers/focus-anchoring-injections.js +38 -28
- package/dist/resolvers/focus-anchoring-injections.js.map +1 -1
- package/dist/resolvers/focus-criteria-standing.d.ts.map +1 -1
- package/dist/resolvers/focus-criteria-standing.js +19 -8
- package/dist/resolvers/focus-criteria-standing.js.map +1 -1
- package/dist/resolvers/loop-delivery-index.d.ts.map +1 -1
- package/dist/resolvers/loop-delivery-index.js +9 -1
- package/dist/resolvers/loop-delivery-index.js.map +1 -1
- package/dist/resolvers/shared/loop.d.ts +17 -0
- package/dist/resolvers/shared/loop.d.ts.map +1 -1
- package/dist/resolvers/shared/loop.js.map +1 -1
- package/dist/security/security-auto-inject.d.ts +19 -5
- package/dist/security/security-auto-inject.d.ts.map +1 -1
- package/dist/security/security-auto-inject.js +21 -6
- package/dist/security/security-auto-inject.js.map +1 -1
- package/dist/session/session-lineage.d.ts +29 -9
- package/dist/session/session-lineage.d.ts.map +1 -1
- package/dist/session/session-lineage.js +33 -8
- package/dist/session/session-lineage.js.map +1 -1
- package/dist/spawn/directive-dispatch.d.ts.map +1 -1
- package/dist/spawn/directive-dispatch.js +1 -0
- package/dist/spawn/directive-dispatch.js.map +1 -1
- package/dist/spawn/idle-work-stamp.d.ts +7 -0
- package/dist/spawn/idle-work-stamp.d.ts.map +1 -1
- package/dist/spawn/idle-work-stamp.js +2 -1
- package/dist/spawn/idle-work-stamp.js.map +1 -1
- package/dist/spawn/lead-continuation.d.ts +7 -0
- package/dist/spawn/lead-continuation.d.ts.map +1 -1
- package/dist/spawn/lead-continuation.js +5 -2
- package/dist/spawn/lead-continuation.js.map +1 -1
- package/dist/spawn/loop-llm-client.d.ts +10 -1
- package/dist/spawn/loop-llm-client.d.ts.map +1 -1
- package/dist/spawn/loop-llm-client.js +15 -7
- package/dist/spawn/loop-llm-client.js.map +1 -1
- package/dist/spawn/model-id-guards.d.ts +9 -4
- package/dist/spawn/model-id-guards.d.ts.map +1 -1
- package/dist/spawn/model-id-guards.js +11 -4
- package/dist/spawn/model-id-guards.js.map +1 -1
- package/dist/spawn/prompt-assembly.d.ts +2 -0
- package/dist/spawn/prompt-assembly.d.ts.map +1 -1
- package/dist/spawn/prompt-assembly.js +3 -1
- package/dist/spawn/prompt-assembly.js.map +1 -1
- package/dist/spawn/review-hold-park.d.ts +4 -2
- package/dist/spawn/review-hold-park.d.ts.map +1 -1
- package/dist/spawn/review-hold-park.js +9 -5
- package/dist/spawn/review-hold-park.js.map +1 -1
- package/dist/spawn/worktree-session.d.ts +14 -3
- package/dist/spawn/worktree-session.d.ts.map +1 -1
- package/dist/spawn/worktree-session.js +13 -3
- package/dist/spawn/worktree-session.js.map +1 -1
- package/dist/supervision/spawn-cooldown.js +1 -1
- package/dist/supervision/team-work.d.ts +15 -1
- package/dist/supervision/team-work.d.ts.map +1 -1
- package/dist/supervision/team-work.js +7 -2
- package/dist/supervision/team-work.js.map +1 -1
- package/dist/templates/agents-md.d.ts.map +1 -1
- package/dist/templates/agents-md.js +1 -0
- package/dist/templates/agents-md.js.map +1 -1
- package/dist/templates/claude-md.d.ts +1 -1
- package/dist/templates/claude-md.d.ts.map +1 -1
- package/dist/templates/claude-md.js +12 -0
- package/dist/templates/claude-md.js.map +1 -1
- package/dist/testing/arm-coverage-model.d.ts +13 -0
- package/dist/testing/arm-coverage-model.d.ts.map +1 -1
- package/dist/testing/arm-coverage-model.js +118 -9
- package/dist/testing/arm-coverage-model.js.map +1 -1
- package/dist/testing/fixtures/approved-head-inert-deps.d.ts.map +1 -1
- package/dist/testing/fixtures/approved-head-inert-deps.js +1 -0
- package/dist/testing/fixtures/approved-head-inert-deps.js.map +1 -1
- package/dist/testing/fixtures/completion-event-deps.d.ts +1 -1
- package/dist/testing/fixtures/completion-event-deps.d.ts.map +1 -1
- package/dist/testing/fixtures/completion-event-deps.js +1 -0
- package/dist/testing/fixtures/completion-event-deps.js.map +1 -1
- package/dist/testing/fixtures/index.js +1 -1
- package/dist/testing/fixtures/pending-spawn-world.d.ts.map +1 -1
- package/dist/testing/fixtures/pending-spawn-world.js +3 -0
- package/dist/testing/fixtures/pending-spawn-world.js.map +1 -1
- package/dist/testing/fixtures/process-close-context.d.ts.map +1 -1
- package/dist/testing/fixtures/process-close-context.js +1 -0
- package/dist/testing/fixtures/process-close-context.js.map +1 -1
- package/dist/testing/fixtures/recording-api-client.js +1 -1
- package/dist/testing/fixtures/review-exit-deps.js +1 -1
- package/dist/testing/fixtures/session-wire.d.ts.map +1 -1
- package/dist/testing/fixtures/session-wire.js +2 -1
- package/dist/testing/fixtures/session-wire.js.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/verify/attribution/verification-baseline-run.d.ts.map +1 -1
- package/dist/verify/attribution/verification-baseline-run.js +2 -1
- package/dist/verify/attribution/verification-baseline-run.js.map +1 -1
- package/dist/verify/effect-reconciliation/recorded-targets.d.ts +14 -0
- package/dist/verify/effect-reconciliation/recorded-targets.d.ts.map +1 -1
- package/dist/verify/effect-reconciliation/recorded-targets.js +20 -0
- package/dist/verify/effect-reconciliation/recorded-targets.js.map +1 -1
- package/dist/verify/effect-reconciliation/verify-restatement.d.ts +15 -1
- package/dist/verify/effect-reconciliation/verify-restatement.d.ts.map +1 -1
- package/dist/verify/effect-reconciliation/verify-restatement.js +93 -59
- package/dist/verify/effect-reconciliation/verify-restatement.js.map +1 -1
- package/dist/verify/engine/reconciliation-step.d.ts.map +1 -1
- package/dist/verify/engine/reconciliation-step.js +4 -1
- package/dist/verify/engine/reconciliation-step.js.map +1 -1
- package/dist/verify/falsifier/falsifier-command.d.ts +37 -0
- package/dist/verify/falsifier/falsifier-command.d.ts.map +1 -0
- package/dist/verify/falsifier/falsifier-command.js +40 -0
- package/dist/verify/falsifier/falsifier-command.js.map +1 -0
- package/dist/verify/falsifier/falsifier-run.d.ts +47 -0
- package/dist/verify/falsifier/falsifier-run.d.ts.map +1 -0
- package/dist/verify/falsifier/falsifier-run.js +117 -0
- package/dist/verify/falsifier/falsifier-run.js.map +1 -0
- package/dist/verify/falsifier/falsifier-verdict.d.ts +52 -0
- package/dist/verify/falsifier/falsifier-verdict.d.ts.map +1 -0
- package/dist/verify/falsifier/falsifier-verdict.js +61 -0
- package/dist/verify/falsifier/falsifier-verdict.js.map +1 -0
- package/dist/verify/shortfalls/pre-judge-rulings.d.ts.map +1 -1
- package/dist/verify/shortfalls/pre-judge-rulings.js +2 -1
- package/dist/verify/shortfalls/pre-judge-rulings.js.map +1 -1
- package/dist/worktree/verify-hold-facts.d.ts +2 -0
- package/dist/worktree/verify-hold-facts.d.ts.map +1 -1
- package/dist/worktree/verify-hold-facts.js +1 -0
- package/dist/worktree/verify-hold-facts.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,73 +1,41 @@
|
|
|
1
|
-
/** A delivery as this check reads it. */
|
|
2
|
-
export interface ArmReadinessDelivery {
|
|
3
|
-
id: string;
|
|
4
|
-
name: string;
|
|
5
|
-
/**
|
|
6
|
-
* The delivery's execution status. Nullable on the wire; a null status is
|
|
7
|
-
* NOT 'cancelled', so it counts as live -- the bar below turns on the anchor
|
|
8
|
-
* and the restatements, and a missing status must not silently drop a
|
|
9
|
-
* delivery out of the evidence.
|
|
10
|
-
*/
|
|
11
|
-
executionStatus: string | null;
|
|
12
|
-
/** The injection the delivery is anchored to, or null when unanchored. */
|
|
13
|
-
injectionId: string | null;
|
|
14
|
-
}
|
|
15
1
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
2
|
+
* "Is this focus scoped enough to arm?" -- the question the PRD controller and
|
|
3
|
+
* the ratify crossing ask BEFORE they issue a go-signal the database may refuse.
|
|
4
|
+
*
|
|
5
|
+
* An arm covers the effects the focus held when the go-signal was given, and
|
|
6
|
+
* the database fixes that set AT THE ARM (`armed_baseline_target_node_ids`). So
|
|
7
|
+
* an arm placed on an unscoped focus covers nothing, permanently: every
|
|
8
|
+
* delivery scoped afterwards rests at `planning` until someone arms again.
|
|
9
|
+
*
|
|
10
|
+
* ONE DEFINITION, READ -- NOT RESTATED. What an arm covers is DERIVED from the
|
|
11
|
+
* tree (docs/DECISIONS.md, "Targets mean anchoring, coverage is derived"): the
|
|
12
|
+
* undesired effects the anchored injections' targeted causes EARN over
|
|
13
|
+
* `sufficient` / `and` edges, plus any undesired effect an injection targets
|
|
14
|
+
* directly. That derivation lives once per runtime -- `deriveArmCoveredEffects`
|
|
15
|
+
* at the edge, `focus_arm_baseline_snapshot()` in the database -- and the
|
|
16
|
+
* daemon cannot import either. So this module no longer derives anything: it
|
|
17
|
+
* reads the edge's LIVE `focus_criteria_standing` preview (the tree half an
|
|
18
|
+
* arm issued now would stamp) and maps it onto the database's two refusals.
|
|
19
|
+
*
|
|
20
|
+
* THE BAR, the database's own: the covered set holds at least one undesired
|
|
21
|
+
* effect, and every covered effect states its future. `stamp_focus_arm_baseline()`
|
|
22
|
+
* refuses on exactly this at both
|
|
23
|
+
* go-signals -- the role arm, and the read_only TRUE -> FALSE ratify crossing.
|
|
24
|
+
*
|
|
25
|
+
* A PRE-CHECK, NEVER THE AUTHORITY: the trigger derives its own answer at the
|
|
26
|
+
* instant of the write, and callers still handle the refusal arriving anyway.
|
|
27
|
+
*
|
|
28
|
+
* FAIL CLOSED = DO NOT ARM. An unreadable read, or a derivation the edge
|
|
29
|
+
* reports INCOMPLETE (a scan bound bit), answers "not ready" with the reason.
|
|
30
|
+
* Arming on an unproven scope costs the human's go-signal itself.
|
|
18
31
|
*/
|
|
19
|
-
|
|
20
|
-
nodeId: string;
|
|
21
|
-
frtStatement: string | null;
|
|
22
|
-
}
|
|
32
|
+
import type { FocusCriteriaStanding } from '../queries/focuses/focus-criteria-standing.js';
|
|
23
33
|
/** The answer, with the reason it came out that way (logged, never escalated). */
|
|
24
34
|
export interface FocusArmReadiness {
|
|
25
35
|
ready: boolean;
|
|
26
36
|
/** Human-readable why -- goes straight into the daemon log line. */
|
|
27
37
|
reason: string;
|
|
28
|
-
/** The anchored deliveries that met the bar (empty when not ready). */
|
|
29
|
-
readyDeliveryIds: string[];
|
|
30
38
|
}
|
|
31
|
-
/**
|
|
32
|
-
* The bar, PURE. `targetsByInjectionId` maps each anchored delivery's injection
|
|
33
|
-
* to the effects it promises to flip.
|
|
34
|
-
*
|
|
35
|
-
* A delivery is COUNTED when it is anchored, not cancelled, and its injection's
|
|
36
|
-
* targets all carry a restatement. An injection with NO targets is not counted:
|
|
37
|
-
* "every target carries a restatement" is vacuously true of an empty set, and
|
|
38
|
-
* an arm over an empty set is precisely the zero-effect arm this check refuses.
|
|
39
|
-
*/
|
|
40
|
-
export declare function assessArmReadiness(deliveries: ArmReadinessDelivery[], targetsByInjectionId: Map<string, ArmReadinessTarget[]>): FocusArmReadiness;
|
|
41
|
-
/**
|
|
42
|
-
* The reads this check needs. Required: the production binding (the two reads
|
|
43
|
-
* below) is chosen at the composition root (composition/runtime-contexts.ts,
|
|
44
|
-
* `armReadiness`); tests hand in stubs.
|
|
45
|
-
*/
|
|
46
|
-
export interface ArmReadinessDeps {
|
|
47
|
-
loadDeliveries: (focusId: string) => Promise<ArmReadinessDelivery[]>;
|
|
48
|
-
loadTargetsByInjectionId: (injectionIds: string[]) => Promise<Map<string, ArmReadinessTarget[]>>;
|
|
49
|
-
}
|
|
50
|
-
/** Production read: the focus's deliveries, narrowed to the fields the bar reads. */
|
|
51
|
-
export declare function loadArmReadinessDeliveries(focusId: string): Promise<ArmReadinessDelivery[]>;
|
|
52
|
-
/**
|
|
53
|
-
* Production read: the injection-context read's `nowTargets` -- per targeted undesired
|
|
54
|
-
* effect, its current statement and the `frt_statement` it becomes.
|
|
55
|
-
*
|
|
56
|
-
* `nowTargets` reports the UDE targets, which is exactly the set this bar is
|
|
57
|
-
* about: those are the effects an injection PROMISES TO FLIP, and the ones a
|
|
58
|
-
* later verify reconciles against. An injection that targets only a cause
|
|
59
|
-
* entity reports none here and is not counted -- it states no effect, so an arm
|
|
60
|
-
* over it covers nothing checkable. A backend predating the field omits it,
|
|
61
|
-
* which reads the same way: not ready, never a silent pass.
|
|
62
|
-
*/
|
|
63
|
-
export declare function loadArmReadinessTargets(injectionIds: string[]): Promise<Map<string, ArmReadinessTarget[]>>;
|
|
64
|
-
/**
|
|
65
|
-
* Read a focus's arm readiness. NEVER throws: an unreadable input answers "not
|
|
66
|
-
* ready" with the failure as its reason, and the caller logs it and re-tries on
|
|
67
|
-
* a later tick. Nothing is escalated -- an unscoped focus is a waiting state,
|
|
68
|
-
* not an incident.
|
|
69
|
-
*/
|
|
70
|
-
export declare function readFocusArmReadiness(focusId: string, deps: ArmReadinessDeps): Promise<FocusArmReadiness>;
|
|
71
39
|
/**
|
|
72
40
|
* What a live read of the focus's covered effects says about its bar.
|
|
73
41
|
*
|
|
@@ -79,7 +47,7 @@ export declare function readFocusArmReadiness(focusId: string, deps: ArmReadines
|
|
|
79
47
|
export interface FocusBarStanding {
|
|
80
48
|
/** True only when the covered set holds >= 1 effect and none is unstated. */
|
|
81
49
|
statesABar: boolean;
|
|
82
|
-
/** False when a read failed; the verdict is then a hold, not a finding. */
|
|
50
|
+
/** False when a read failed or was incomplete; the verdict is then a hold, not a finding. */
|
|
83
51
|
readable: boolean;
|
|
84
52
|
/** Human-readable why -- goes straight into a log line or a record. */
|
|
85
53
|
reason: string;
|
|
@@ -88,24 +56,31 @@ export interface FocusBarStanding {
|
|
|
88
56
|
/** The covered effects whose `frt_statement` is null or blank. */
|
|
89
57
|
unstatedNodeIds: string[];
|
|
90
58
|
}
|
|
59
|
+
/** The read this check needs: the edge's LIVE criteria-standing preview. */
|
|
60
|
+
export interface ArmReadinessDeps {
|
|
61
|
+
loadCoverage: (focusId: string) => Promise<FocusCriteriaStanding>;
|
|
62
|
+
}
|
|
91
63
|
/**
|
|
92
|
-
* The database's rule, PURE, over the
|
|
64
|
+
* The database's rule, PURE, over the edge's live preview.
|
|
93
65
|
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
* UNDESIRED EFFECT targets -- the same node type the trigger counts), it must be
|
|
98
|
-
* non-empty, and every member must carry a non-blank restatement.
|
|
99
|
-
*
|
|
100
|
-
* It is a PRE-CHECK, never the authority: the trigger derives its own answer at
|
|
101
|
-
* the instant of the write, and the two are read seconds apart. A caller still
|
|
102
|
-
* handles the refusal arriving anyway.
|
|
66
|
+
* Covered effects = the TREE criteria (one per covered effect stating its
|
|
67
|
+
* future) plus the covered effects stating none. `untargetedSustainingCauses`
|
|
68
|
+
* is folded into the zero-effect reason so the log line names what to aim at.
|
|
103
69
|
*/
|
|
104
|
-
export declare function assessFocusStatesABar(
|
|
70
|
+
export declare function assessFocusStatesABar(standing: FocusCriteriaStanding): FocusBarStanding;
|
|
71
|
+
/** The PRD frontier's question, answered by the database's rule. PURE. */
|
|
72
|
+
export declare function assessArmReadiness(standing: FocusCriteriaStanding): FocusArmReadiness;
|
|
105
73
|
/**
|
|
106
74
|
* Read whether a focus states a bar, live. NEVER throws: an unreadable input
|
|
107
75
|
* answers `{ statesABar: false, readable: false }` with the failure as its
|
|
108
76
|
* reason, so the caller holds rather than crossing on an unproven bar.
|
|
109
77
|
*/
|
|
110
78
|
export declare function readFocusStatesABar(focusId: string, deps: ArmReadinessDeps): Promise<FocusBarStanding>;
|
|
79
|
+
/**
|
|
80
|
+
* Read a focus's arm readiness. NEVER throws: an unreadable input answers "not
|
|
81
|
+
* ready" with the failure as its reason, and the caller logs it and re-tries on
|
|
82
|
+
* a later tick. Nothing is escalated -- an unscoped focus is a waiting state,
|
|
83
|
+
* not an incident.
|
|
84
|
+
*/
|
|
85
|
+
export declare function readFocusArmReadiness(focusId: string, deps: ArmReadinessDeps): Promise<FocusArmReadiness>;
|
|
111
86
|
//# sourceMappingURL=arm-readiness.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arm-readiness.d.ts","sourceRoot":"","sources":["../../src/prd/arm-readiness.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"arm-readiness.d.ts","sourceRoot":"","sources":["../../src/prd/arm-readiness.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAK3F,kFAAkF;AAClF,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,UAAU,EAAE,OAAO,CAAC;IACpB,6FAA6F;IAC7F,QAAQ,EAAE,OAAO,CAAC;IAClB,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kEAAkE;IAClE,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACnE;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,gBAAgB,CAkDvF;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,iBAAiB,CAGrF;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAc3B;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAM5B"}
|
|
@@ -6,237 +6,76 @@
|
|
|
6
6
|
// packages/daemon/src/prd/prd-frontier-arm-refused.test.ts,
|
|
7
7
|
// packages/daemon/src/prd/prd-frontier-arming.test.ts
|
|
8
8
|
// PINNED-BY-END
|
|
9
|
-
/**
|
|
10
|
-
* "Is this focus scoped enough to arm?" -- the question the PRD controller must
|
|
11
|
-
* answer BEFORE it spends the PRD's Play on a frontier focus.
|
|
12
|
-
*
|
|
13
|
-
* An arm covers the effects the focus held when the go-signal was given, and
|
|
14
|
-
* the database fixes that set AT THE ARM (`armed_baseline_target_node_ids`). So
|
|
15
|
-
* an arm placed on an empty focus covers nothing, permanently: every delivery
|
|
16
|
-
* scoped afterwards rests at `planning`, invisible to the running team, until
|
|
17
|
-
* someone arms again. The controller therefore asks this first.
|
|
18
|
-
*
|
|
19
|
-
* THE BAR: the focus holds at least ONE anchored, non-cancelled delivery whose
|
|
20
|
-
* injection names at least one target, and EVERY one of that injection's
|
|
21
|
-
* targets carries an `frt_statement`. An anchor says which cause the delivery
|
|
22
|
-
* changes; the restatement says what the world reads as once it has. A target
|
|
23
|
-
* with no restatement states no future, so an arm covering it covers nothing a
|
|
24
|
-
* later verify can check -- which is the whole failure this module exists to
|
|
25
|
-
* prevent.
|
|
26
|
-
*
|
|
27
|
-
* PREFER `criteria_standing` ONCE IT LANDS. A sibling delivery is adding a
|
|
28
|
-
* `criteria_standing` read that answers exactly this question for an un-armed
|
|
29
|
-
* focus, derived live at the edge. When it lands, this module's IO half
|
|
30
|
-
* (`readFocusArmReadiness`) should become a call to it and the local derivation
|
|
31
|
-
* below should be deleted -- a second definition of "scoped enough" is exactly
|
|
32
|
-
* the drift the arm-coverage work exists to remove. It has NOT landed yet, so
|
|
33
|
-
* the derivation here is direct and deliberately narrow.
|
|
34
|
-
*
|
|
35
|
-
* FAIL CLOSED = DO NOT ARM. Every unreadable input answers "not ready" with the
|
|
36
|
-
* reason. That is the safe direction here and the opposite of verify's: verify
|
|
37
|
-
* holds a delivery to every target when it cannot prove coverage, because
|
|
38
|
-
* judging one target too many costs a re-work cycle; arming on an unproven
|
|
39
|
-
* scope costs the human's go-signal itself, which only a new arm restores.
|
|
40
|
-
*
|
|
41
|
-
* TWO QUESTIONS LIVE HERE, AND THEY ARE NOT THE SAME BAR. Read the one you
|
|
42
|
-
* mean:
|
|
43
|
-
*
|
|
44
|
-
* `assessArmReadiness` -- "is there a delivery worth spending the PRD's Play
|
|
45
|
-
* on?" PER-DELIVERY: one anchored delivery whose own injection's targets all
|
|
46
|
-
* state futures is enough. The PRD frontier asks this because it chooses
|
|
47
|
-
* WHETHER to arm.
|
|
48
|
-
*
|
|
49
|
-
* `assessFocusStatesABar` -- the DATABASE's rule, restated: across the whole
|
|
50
|
-
* covered set, at least one undesired effect, and NOT ONE of them unstated.
|
|
51
|
-
* `stamp_focus_arm_baseline()` (migration 20260922173056) refuses on exactly
|
|
52
|
-
* this, at both go-signals -- the role arm, and the read_only TRUE -> FALSE
|
|
53
|
-
* ratify crossing of an audit focus. A caller about to cross one of those
|
|
54
|
-
* asks THIS one, so the refusal never has to arrive mid-crossing.
|
|
55
|
-
*
|
|
56
|
-
* The second is strictly the stricter: a focus with one stated delivery and one
|
|
57
|
-
* unstated one passes the first and is refused by the second. That is why they
|
|
58
|
-
* are separate functions rather than one with a flag -- they answer different
|
|
59
|
-
* questions, and collapsing them would silently move the PRD frontier's bar.
|
|
60
|
-
*/
|
|
61
|
-
import { DELIVERY_STATUS } from '@telora/daemon-core';
|
|
62
|
-
import { getFocusDeliveries } from '../queries/focuses/focuses.js';
|
|
63
|
-
import { fetchInjectionBundles } from '../resolvers/shared/loop.js';
|
|
64
9
|
import { createLogger } from '../log/daemon-log.js';
|
|
65
10
|
const log = createLogger({ module: 'prd-controller' });
|
|
66
|
-
/** Does this injection's target set state a future? */
|
|
67
|
-
function targetsStateAFuture(targets) {
|
|
68
|
-
if (targets.length === 0)
|
|
69
|
-
return false;
|
|
70
|
-
return targets.every((t) => (t.frtStatement ?? '').trim().length > 0);
|
|
71
|
-
}
|
|
72
11
|
/**
|
|
73
|
-
* The
|
|
74
|
-
* to the effects it promises to flip.
|
|
12
|
+
* The database's rule, PURE, over the edge's live preview.
|
|
75
13
|
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
* an arm over an empty set is precisely the zero-effect arm this check refuses.
|
|
80
|
-
*/
|
|
81
|
-
export function assessArmReadiness(deliveries, targetsByInjectionId) {
|
|
82
|
-
const live = deliveries.filter((d) => d.executionStatus !== DELIVERY_STATUS.CANCELLED);
|
|
83
|
-
if (live.length === 0) {
|
|
84
|
-
return { ready: false, reason: 'the focus holds no non-cancelled delivery', readyDeliveryIds: [] };
|
|
85
|
-
}
|
|
86
|
-
const anchored = live.filter((d) => (d.injectionId ?? '').length > 0);
|
|
87
|
-
if (anchored.length === 0) {
|
|
88
|
-
return {
|
|
89
|
-
ready: false,
|
|
90
|
-
reason: `${live.length} delivery/deliveries, none anchored to an injection`,
|
|
91
|
-
readyDeliveryIds: [],
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
const readyDeliveryIds = anchored
|
|
95
|
-
.filter((d) => targetsStateAFuture(targetsByInjectionId.get(d.injectionId) ?? []))
|
|
96
|
-
.map((d) => d.id);
|
|
97
|
-
if (readyDeliveryIds.length === 0) {
|
|
98
|
-
return {
|
|
99
|
-
ready: false,
|
|
100
|
-
reason: `${anchored.length} anchored delivery/deliveries, but none whose injection targets ` +
|
|
101
|
-
'all carry an frt_statement (an arm over them would cover no stated effect)',
|
|
102
|
-
readyDeliveryIds: [],
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
return {
|
|
106
|
-
ready: true,
|
|
107
|
-
reason: `${readyDeliveryIds.length} of ${anchored.length} anchored delivery/deliveries state their targets' futures`,
|
|
108
|
-
readyDeliveryIds,
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
/** Production read: the focus's deliveries, narrowed to the fields the bar reads. */
|
|
112
|
-
export async function loadArmReadinessDeliveries(focusId) {
|
|
113
|
-
const deliveries = await getFocusDeliveries(focusId);
|
|
114
|
-
return deliveries.map((d) => ({
|
|
115
|
-
id: d.id,
|
|
116
|
-
name: d.name,
|
|
117
|
-
executionStatus: d.executionStatus,
|
|
118
|
-
injectionId: d.injectionId ?? null,
|
|
119
|
-
}));
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Production read: the injection-context read's `nowTargets` -- per targeted undesired
|
|
123
|
-
* effect, its current statement and the `frt_statement` it becomes.
|
|
124
|
-
*
|
|
125
|
-
* `nowTargets` reports the UDE targets, which is exactly the set this bar is
|
|
126
|
-
* about: those are the effects an injection PROMISES TO FLIP, and the ones a
|
|
127
|
-
* later verify reconciles against. An injection that targets only a cause
|
|
128
|
-
* entity reports none here and is not counted -- it states no effect, so an arm
|
|
129
|
-
* over it covers nothing checkable. A backend predating the field omits it,
|
|
130
|
-
* which reads the same way: not ready, never a silent pass.
|
|
131
|
-
*/
|
|
132
|
-
export async function loadArmReadinessTargets(injectionIds) {
|
|
133
|
-
const bundles = await fetchInjectionBundles(injectionIds);
|
|
134
|
-
const out = new Map();
|
|
135
|
-
for (const [injectionId, bundle] of bundles) {
|
|
136
|
-
out.set(injectionId, (bundle.nowTargets ?? [])
|
|
137
|
-
.filter((t) => typeof t.nodeId === 'string' && t.nodeId.length > 0)
|
|
138
|
-
.map((t) => ({ nodeId: t.nodeId, frtStatement: t.target })));
|
|
139
|
-
}
|
|
140
|
-
return out;
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Read a focus's arm readiness. NEVER throws: an unreadable input answers "not
|
|
144
|
-
* ready" with the failure as its reason, and the caller logs it and re-tries on
|
|
145
|
-
* a later tick. Nothing is escalated -- an unscoped focus is a waiting state,
|
|
146
|
-
* not an incident.
|
|
14
|
+
* Covered effects = the TREE criteria (one per covered effect stating its
|
|
15
|
+
* future) plus the covered effects stating none. `untargetedSustainingCauses`
|
|
16
|
+
* is folded into the zero-effect reason so the log line names what to aim at.
|
|
147
17
|
*/
|
|
148
|
-
export
|
|
149
|
-
|
|
150
|
-
try {
|
|
151
|
-
const deliveries = await loadDeliveries(focusId);
|
|
152
|
-
const injectionIds = deliveries
|
|
153
|
-
.filter((d) => d.executionStatus !== DELIVERY_STATUS.CANCELLED)
|
|
154
|
-
.map((d) => d.injectionId)
|
|
155
|
-
.filter((id) => typeof id === 'string' && id.length > 0);
|
|
156
|
-
const targets = injectionIds.length > 0 ? await loadTargets(injectionIds) : new Map();
|
|
157
|
-
return assessArmReadiness(deliveries, targets);
|
|
158
|
-
}
|
|
159
|
-
catch (err) {
|
|
160
|
-
const message = err.message;
|
|
161
|
-
log.warn(`[prd-controller] arm-readiness read failed for focus ${focusId}: ${message}`);
|
|
18
|
+
export function assessFocusStatesABar(standing) {
|
|
19
|
+
if (standing.treeCoverageIncomplete === true) {
|
|
162
20
|
return {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
21
|
+
statesABar: false,
|
|
22
|
+
readable: false,
|
|
23
|
+
reason: "the focus's covered effects could not be fully read (a tree scan bound bit)",
|
|
24
|
+
coveredEffectCount: 0,
|
|
25
|
+
unstatedNodeIds: [],
|
|
166
26
|
};
|
|
167
27
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
* non-empty, and every member must carry a non-blank restatement.
|
|
177
|
-
*
|
|
178
|
-
* It is a PRE-CHECK, never the authority: the trigger derives its own answer at
|
|
179
|
-
* the instant of the write, and the two are read seconds apart. A caller still
|
|
180
|
-
* handles the refusal arriving anyway.
|
|
181
|
-
*/
|
|
182
|
-
export function assessFocusStatesABar(deliveries, targetsByInjectionId) {
|
|
183
|
-
const covered = new Map();
|
|
184
|
-
for (const delivery of deliveries) {
|
|
185
|
-
if (delivery.executionStatus === DELIVERY_STATUS.CANCELLED)
|
|
186
|
-
continue;
|
|
187
|
-
const injectionId = delivery.injectionId ?? '';
|
|
188
|
-
if (injectionId === '')
|
|
189
|
-
continue;
|
|
190
|
-
for (const target of targetsByInjectionId.get(injectionId) ?? []) {
|
|
191
|
-
covered.set(target.nodeId, target);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
if (covered.size === 0) {
|
|
28
|
+
const stated = standing.criteria.filter((c) => c.source === 'tree');
|
|
29
|
+
const unstated = standing.unstatedCoveredEffects ?? [];
|
|
30
|
+
const covered = stated.length + unstated.length;
|
|
31
|
+
if (covered === 0) {
|
|
32
|
+
const causes = standing.untargetedSustainingCauses ?? [];
|
|
33
|
+
const aimAt = causes.length === 0
|
|
34
|
+
? ''
|
|
35
|
+
: `; untargeted sustaining causes: ${causes.map((c) => `#${c.seq}`).join(', ')}`;
|
|
195
36
|
return {
|
|
196
37
|
statesABar: false,
|
|
197
38
|
readable: true,
|
|
198
|
-
reason: 'the focus covers no undesired effect (
|
|
199
|
-
|
|
39
|
+
reason: 'the focus covers no undesired effect (its anchored injections\' targeted causes earn ' +
|
|
40
|
+
`none and it targets none directly), so it states no future to judge the work against${aimAt}`,
|
|
200
41
|
coveredEffectCount: 0,
|
|
201
42
|
unstatedNodeIds: [],
|
|
202
43
|
};
|
|
203
44
|
}
|
|
204
|
-
|
|
205
|
-
.
|
|
206
|
-
.map((t) => t.nodeId);
|
|
207
|
-
if (unstatedNodeIds.length > 0) {
|
|
45
|
+
if (unstated.length > 0) {
|
|
46
|
+
const unstatedNodeIds = unstated.map((u) => u.nodeId);
|
|
208
47
|
return {
|
|
209
48
|
statesABar: false,
|
|
210
49
|
readable: true,
|
|
211
|
-
reason: `${
|
|
50
|
+
reason: `${unstated.length} of ${covered} covered undesired effect(s) state no ` +
|
|
212
51
|
`future (frt_statement null or blank): ${unstatedNodeIds.join(', ')}`,
|
|
213
|
-
coveredEffectCount: covered
|
|
52
|
+
coveredEffectCount: covered,
|
|
214
53
|
unstatedNodeIds,
|
|
215
54
|
};
|
|
216
55
|
}
|
|
56
|
+
const earned = stated.filter((c) => c.basis === 'earned').length;
|
|
217
57
|
return {
|
|
218
58
|
statesABar: true,
|
|
219
59
|
readable: true,
|
|
220
|
-
reason: `${covered
|
|
221
|
-
|
|
60
|
+
reason: `${covered} covered undesired effect(s) (${earned} earned, ${covered - earned} declared), ` +
|
|
61
|
+
'every one of them stating its future',
|
|
62
|
+
coveredEffectCount: covered,
|
|
222
63
|
unstatedNodeIds: [],
|
|
223
64
|
};
|
|
224
65
|
}
|
|
66
|
+
/** The PRD frontier's question, answered by the database's rule. PURE. */
|
|
67
|
+
export function assessArmReadiness(standing) {
|
|
68
|
+
const bar = assessFocusStatesABar(standing);
|
|
69
|
+
return { ready: bar.statesABar, reason: bar.reason };
|
|
70
|
+
}
|
|
225
71
|
/**
|
|
226
72
|
* Read whether a focus states a bar, live. NEVER throws: an unreadable input
|
|
227
73
|
* answers `{ statesABar: false, readable: false }` with the failure as its
|
|
228
74
|
* reason, so the caller holds rather than crossing on an unproven bar.
|
|
229
75
|
*/
|
|
230
76
|
export async function readFocusStatesABar(focusId, deps) {
|
|
231
|
-
const { loadDeliveries, loadTargetsByInjectionId: loadTargets } = deps;
|
|
232
77
|
try {
|
|
233
|
-
|
|
234
|
-
const injectionIds = deliveries
|
|
235
|
-
.filter((d) => d.executionStatus !== DELIVERY_STATUS.CANCELLED)
|
|
236
|
-
.map((d) => d.injectionId)
|
|
237
|
-
.filter((id) => typeof id === 'string' && id.length > 0);
|
|
238
|
-
const targets = injectionIds.length > 0 ? await loadTargets(injectionIds) : new Map();
|
|
239
|
-
return assessFocusStatesABar(deliveries, targets);
|
|
78
|
+
return assessFocusStatesABar(await deps.loadCoverage(focusId));
|
|
240
79
|
}
|
|
241
80
|
catch (err) {
|
|
242
81
|
const message = err.message;
|
|
@@ -250,4 +89,17 @@ export async function readFocusStatesABar(focusId, deps) {
|
|
|
250
89
|
};
|
|
251
90
|
}
|
|
252
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Read a focus's arm readiness. NEVER throws: an unreadable input answers "not
|
|
94
|
+
* ready" with the failure as its reason, and the caller logs it and re-tries on
|
|
95
|
+
* a later tick. Nothing is escalated -- an unscoped focus is a waiting state,
|
|
96
|
+
* not an incident.
|
|
97
|
+
*/
|
|
98
|
+
export async function readFocusArmReadiness(focusId, deps) {
|
|
99
|
+
const bar = await readFocusStatesABar(focusId, deps);
|
|
100
|
+
if (!bar.readable) {
|
|
101
|
+
return { ready: false, reason: `arm-readiness could not be read (${bar.reason}) -- holding the arm` };
|
|
102
|
+
}
|
|
103
|
+
return { ready: bar.statesABar, reason: bar.reason };
|
|
104
|
+
}
|
|
253
105
|
//# sourceMappingURL=arm-readiness.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arm-readiness.js","sourceRoot":"","sources":["../../src/prd/arm-readiness.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,yEAAyE;AACzE,uEAAuE;AACvE,uDAAuD;AACvD,4EAA4E;AAC5E,8DAA8D;AAC9D,wDAAwD;AACxD,gBAAgB;
|
|
1
|
+
{"version":3,"file":"arm-readiness.js","sourceRoot":"","sources":["../../src/prd/arm-readiness.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontier-arming.d.ts","sourceRoot":"","sources":["../../src/prd/frontier-arming.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACd,MAAM,wBAAwB,CAAC;AAQhC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,QAAiB,CAAC;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAU1C,+EAA+E;AAC/E,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe,CAAC;AAE5F;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,aAAa,GAAG,SAAS,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,iBAAiB,CAapB;AAED,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB;;;;;;OAMG;IACH,UAAU,EAAE,OAAO,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"frontier-arming.d.ts","sourceRoot":"","sources":["../../src/prd/frontier-arming.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACd,MAAM,wBAAwB,CAAC;AAQhC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,QAAiB,CAAC;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAU1C,+EAA+E;AAC/E,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe,CAAC;AAE5F;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,aAAa,GAAG,SAAS,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,iBAAiB,CAapB;AAED,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB;;;;;;OAMG;IACH,UAAU,EAAE,OAAO,CAAC;CACrB;AAwBD,6DAA6D;AAC7D,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,CAM3D;AA2JD;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAClD,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,GAAG,CAAC;IACT,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,iBAAiB,CAAC;CACzB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAmDlC;AAED,kDAAkD;AAClD,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,gBAAgB,EAAE,OAAO,EAAE,CAAC;IAC5B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,iBAAiB,CAAC;CACzB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAyCpC"}
|
|
@@ -78,13 +78,11 @@ function outcome(action, armRefused = false) {
|
|
|
78
78
|
const NOT_READ = {
|
|
79
79
|
ready: false,
|
|
80
80
|
reason: 'a scoping run is in flight; readiness not read',
|
|
81
|
-
readyDeliveryIds: [],
|
|
82
81
|
};
|
|
83
82
|
/** Absent readiness read: the arm is refused (absence never restores arm-first). */
|
|
84
83
|
const NO_READINESS_READ = {
|
|
85
84
|
ready: false,
|
|
86
85
|
reason: 'no arm-readiness read was handed to the controller',
|
|
87
|
-
readyDeliveryIds: [],
|
|
88
86
|
};
|
|
89
87
|
/** The PRD's goal statement, from its goal node(s). Pure. */
|
|
90
88
|
export function readPrdGoal(nodes) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontier-arming.js","sourceRoot":"","sources":["../../src/prd/frontier-arming.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,iEAAiE;AACjE,gBAAgB;AAmDhB,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAyB,CAAC;AAK5D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAMvC;IACC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAC1D,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;IACzC,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAC/B,OAAO,KAAK,GAAG,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC;IAC9E,CAAC;IACD,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,IAAI,WAAW,CAAC;IAC9C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,cAAc,IAAI,SAAS,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC;AACvD,CAAC;AAkBD,SAAS,OAAO,CAAC,MAAyB,EAAE,UAAU,GAAG,KAAK;IAC5D,OAAO;QACL,MAAM;QACN,KAAK,EAAE,MAAM,KAAK,KAAK,IAAI,CAAC,UAAU;QACtC,cAAc,EAAE,MAAM,KAAK,eAAe;QAC1C,YAAY,EAAE,MAAM,KAAK,eAAe;QACxC,UAAU;KACX,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,MAAM,QAAQ,GAAsB;IAClC,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,gDAAgD;
|
|
1
|
+
{"version":3,"file":"frontier-arming.js","sourceRoot":"","sources":["../../src/prd/frontier-arming.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,10 +74,10 @@ export function buildPrdScopingPrompt(input) {
|
|
|
74
74
|
`## Steps (do these in order, verifying each with a follow-up read)`,
|
|
75
75
|
`1. telora_product_focus update -- append the marker line "${marker}" verbatim to the focus description, so a re-spawned run can find your work.`,
|
|
76
76
|
`2. telora_reality_tree create on the focus, then author the CRT: the undesired effects that exist today because this capability is missing, and the causal edges between them.`,
|
|
77
|
-
`3. Author the FRT: for EVERY
|
|
78
|
-
`4. Author the injections: one per phase of the capability above. Each injection must draw a \`targets\` edge to the
|
|
77
|
+
`3. Author the FRT: for EVERY undesired effect the injections will earn, DECLARE A RESTATEMENT -- the frt_statement saying what that effect reads as once the work lands. An effect with no frt_statement states no future, and an arm that covers it covers nothing checkable. Use telora_reality_tree_node (frtStatement + frtNodeType) on each effect.`,
|
|
78
|
+
`4. Author the injections: one per phase of the capability above. Each injection must draw a \`targets\` edge to the CAUSE(s) it changes -- never to an undesired effect -- and declare each targeted cause's future (its frt_statement) via the target action's restatements. An effect is earned, and covered by the arm, once every cause sustaining it is targeted.`,
|
|
79
79
|
`5. telora_product_delivery create -- ONE delivery per injection, each anchored to its injection (injectionNodeId) and created with executionStatus "planning". One injection, one delivery: the pairing is what lets a later arm say which effects it covers. Carry a workFacing label ("outward" for new ground, "inward" for improving existing ground).`,
|
|
80
|
-
`6. Verify your own work before exiting: re-read the focus's deliveries and confirm EVERY one is anchored to an injection, and that every
|
|
80
|
+
`6. Verify your own work before exiting: re-read the focus's deliveries and confirm EVERY one is anchored to an injection, and that every cause those injections target, and every effect they earn, carries an frt_statement. The controller arms this focus only when that is true -- if it is not, your run leaves the focus un-armed and the work is re-scoped.`,
|
|
81
81
|
`7. Stop. Do NOT arm the focus (do NOT set assignedAgentRoleId), do NOT set any delivery to "queued", and do NOT begin implementing. Arming is the human go-signal the PRD's Play holds; the daemon spends it on the next tick once the focus states its future.`,
|
|
82
82
|
``,
|
|
83
83
|
`Refer to focuses/deliveries/issues by title in any prose, never by UUID. Follow CLAUDE.md.`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scoping-prompt.js","sourceRoot":"","sources":["../../src/prd/scoping-prompt.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,gEAAgE;AAChE,gBAAgB;AA+BhB;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,cAAsB;IACrD,OAAO,yBAAyB,cAAc,EAAE,CAAC;AACnD,CAAC;AAmBD;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,IAA6B;IACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3C,OAAO,IAAI,CAAC,MAAM;SACf,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;SACjD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,0EAA0E;AAC1E,SAAS,YAAY,CAAC,MAAgB;IACpC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,gFAAgF;YAChF,6EAA6E;SAC9E,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAA4B;IAChE,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,kCAAkC,CAAC;IACvF,OAAO;QACL,iHAAiH;QACjH,oIAAoI;QACpI,sGAAsG;QACtG,EAAE;QACF,kBAAkB;QAClB,UAAU,KAAK,CAAC,QAAQ,WAAW,KAAK,CAAC,KAAK,GAAG;QACjD,eAAe,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,wEAAwE,EAAE;QAClH,wFAAwF;QACxF,EAAE;QACF,kFAAkF;QAClF,SAAS;QACT,EAAE;QACF,0DAA0D;QAC1D,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;QAC7B,EAAE;QACF,2DAA2D;QAC3D,cAAc,KAAK,CAAC,OAAO,EAAE;QAC7B,gEAAgE;QAChE,EAAE;QACF,0FAA0F;QAC1F,uCAAuC,KAAK,CAAC,OAAO,2DAA2D,MAAM,IAAI;QACzH,wJAAwJ;QACxJ,2EAA2E;QAC3E,EAAE;QACF,oEAAoE;QACpE,6DAA6D,MAAM,8EAA8E;QACjJ,gLAAgL;QAChL,
|
|
1
|
+
{"version":3,"file":"scoping-prompt.js","sourceRoot":"","sources":["../../src/prd/scoping-prompt.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,gEAAgE;AAChE,gBAAgB;AA+BhB;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,cAAsB;IACrD,OAAO,yBAAyB,cAAc,EAAE,CAAC;AACnD,CAAC;AAmBD;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,IAA6B;IACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3C,OAAO,IAAI,CAAC,MAAM;SACf,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;SACjD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,0EAA0E;AAC1E,SAAS,YAAY,CAAC,MAAgB;IACpC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,gFAAgF;YAChF,6EAA6E;SAC9E,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAA4B;IAChE,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,kCAAkC,CAAC;IACvF,OAAO;QACL,iHAAiH;QACjH,oIAAoI;QACpI,sGAAsG;QACtG,EAAE;QACF,kBAAkB;QAClB,UAAU,KAAK,CAAC,QAAQ,WAAW,KAAK,CAAC,KAAK,GAAG;QACjD,eAAe,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,wEAAwE,EAAE;QAClH,wFAAwF;QACxF,EAAE;QACF,kFAAkF;QAClF,SAAS;QACT,EAAE;QACF,0DAA0D;QAC1D,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;QAC7B,EAAE;QACF,2DAA2D;QAC3D,cAAc,KAAK,CAAC,OAAO,EAAE;QAC7B,gEAAgE;QAChE,EAAE;QACF,0FAA0F;QAC1F,uCAAuC,KAAK,CAAC,OAAO,2DAA2D,MAAM,IAAI;QACzH,wJAAwJ;QACxJ,2EAA2E;QAC3E,EAAE;QACF,oEAAoE;QACpE,6DAA6D,MAAM,8EAA8E;QACjJ,gLAAgL;QAChL,0VAA0V;QAC1V,wWAAwW;QACxW,4VAA4V;QAC5V,oWAAoW;QACpW,iQAAiQ;QACjQ,EAAE;QACF,4FAA4F;KAC7F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -16,13 +16,20 @@ import type { ArmFacts } from '../supervision/recorded-new-intent.js';
|
|
|
16
16
|
* team a delivery with nothing on it to do, and a lead told that repeatedly
|
|
17
17
|
* escalates to a human for a status it cannot set (Tinker Tailor, 2026-09-25).
|
|
18
18
|
* Used by the scope-coverage guard and the lead continuation turn.
|
|
19
|
+
*
|
|
20
|
+
* `recordedConcernIds` (delivery/recorded-concerns.ts): a review concern is
|
|
21
|
+
* recorded for the human, never owed by this team. A delivery holding only
|
|
22
|
+
* concerns is not named, and on a named delivery the open concerns are set
|
|
23
|
+
* apart on the labelled "recorded for the human" line instead of listed as work.
|
|
19
24
|
*/
|
|
20
|
-
export declare function buildReEngagementMessage(nonTerminalDeliveries: FocusDeliveryInfo[], issues: FocusIssueInfo[], armFacts?: ArmFacts | null): string;
|
|
25
|
+
export declare function buildReEngagementMessage(nonTerminalDeliveries: FocusDeliveryInfo[], issues: FocusIssueInfo[], armFacts?: ArmFacts | null, recordedConcernIds?: ReadonlySet<string>): string;
|
|
21
26
|
/**
|
|
22
27
|
* Build a wake message for an idle team when new work is available.
|
|
23
28
|
*
|
|
24
29
|
* The team already has role context and execution instructions from the
|
|
25
30
|
* initial prompt. This message is a lean update with just the new work.
|
|
31
|
+
* Recorded review concerns (`recordedConcernIds`) are named on the labelled
|
|
32
|
+
* "recorded for the human" line, never listed or counted as work.
|
|
26
33
|
*/
|
|
27
|
-
export declare function buildWakeMessage(deliveries: FocusDeliveryInfo[], issues: FocusIssueInfo[], knownDeliveryIds: ReadonlySet<string>): string;
|
|
34
|
+
export declare function buildWakeMessage(deliveries: FocusDeliveryInfo[], issues: FocusIssueInfo[], knownDeliveryIds: ReadonlySet<string>, recordedConcernIds?: ReadonlySet<string>): string;
|
|
28
35
|
//# sourceMappingURL=focus-prompt-builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-prompt-builder.d.ts","sourceRoot":"","sources":["../../src/prompt/focus-prompt-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"focus-prompt-builder.d.ts","sourceRoot":"","sources":["../../src/prompt/focus-prompt-builder.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAO3B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAItE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CACtC,qBAAqB,EAAE,iBAAiB,EAAE,EAC1C,MAAM,EAAE,cAAc,EAAE,EACxB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,EAC1B,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GACvC,MAAM,CAuDR;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,iBAAiB,EAAE,EAC/B,MAAM,EAAE,cAAc,EAAE,EACxB,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,EACrC,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GACvC,MAAM,CAwER"}
|