@telora/daemon 0.22.306 → 0.23.1
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-census-record.d.ts.map +1 -1
- package/dist/completion/review-exit/review-census-record.js +1 -0
- package/dist/completion/review-exit/review-census-record.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 +9 -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/review-exit-holds/commit-verdict-release.d.ts.map +1 -1
- package/dist/completion/review-exit-holds/commit-verdict-release.js +34 -12
- package/dist/completion/review-exit-holds/commit-verdict-release.js.map +1 -1
- package/dist/completion/review-exit-holds/review-exit-verdict-gate.d.ts +33 -1
- package/dist/completion/review-exit-holds/review-exit-verdict-gate.d.ts.map +1 -1
- package/dist/completion/review-exit-holds/review-exit-verdict-gate.js +30 -1
- package/dist/completion/review-exit-holds/review-exit-verdict-gate.js.map +1 -1
- package/dist/completion/state-cascade/review-approved-head-gate.d.ts +6 -0
- package/dist/completion/state-cascade/review-approved-head-gate.d.ts.map +1 -1
- package/dist/completion/state-cascade/review-approved-head-gate.js +2 -1
- package/dist/completion/state-cascade/review-approved-head-gate.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 +32 -15
- 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-advance.d.ts.map +1 -1
- package/dist/completion/team-outcome/apply-advance.js +3 -2
- package/dist/completion/team-outcome/apply-advance.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/delivery-advance-types.d.ts +19 -2
- package/dist/completion/team-outcome/delivery-advance-types.d.ts.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
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type FalsifierRunOutput } from './falsifier-verdict.js';
|
|
2
|
+
/** The falsifier a reopening names. */
|
|
3
|
+
export interface FalsifierRef {
|
|
4
|
+
testPath: string;
|
|
5
|
+
testName?: string;
|
|
6
|
+
}
|
|
7
|
+
/** What the run needs to know about one pending reopening. */
|
|
8
|
+
export interface FalsifierRunRequest {
|
|
9
|
+
focusId: string;
|
|
10
|
+
/** Names the checkout directory (unique per review + criterion). */
|
|
11
|
+
checkoutKey: string;
|
|
12
|
+
falsifier: FalsifierRef | null;
|
|
13
|
+
/** The commit the earlier review judged the criterion met at. */
|
|
14
|
+
judgedSha: string | null;
|
|
15
|
+
}
|
|
16
|
+
/** The answer written back as the reopening's outcome. */
|
|
17
|
+
export interface FalsifierOutcome {
|
|
18
|
+
status: 'demonstrated' | 'not_demonstrated';
|
|
19
|
+
reason: string;
|
|
20
|
+
}
|
|
21
|
+
/** A provisioned checkout of the judged commit: run a command at its root, then dispose. */
|
|
22
|
+
export interface JudgedCheckout {
|
|
23
|
+
path: string;
|
|
24
|
+
run: (command: string) => Promise<FalsifierRunOutput>;
|
|
25
|
+
/** True when an install moved the linked dependency trees since the checkout was made. */
|
|
26
|
+
dependenciesMoved: () => boolean;
|
|
27
|
+
dispose: () => void;
|
|
28
|
+
}
|
|
29
|
+
/** The injected collaborators. */
|
|
30
|
+
export interface FalsifierRunDeps {
|
|
31
|
+
/** The focus worktree the checkout is made from (null when the focus has none). */
|
|
32
|
+
resolveFocusWorktreePath: (focusId: string) => string | null;
|
|
33
|
+
/** The focus branch head now (the commit the falsifier is read from), or null. */
|
|
34
|
+
resolveFocusHeadSha: (focusWorktreePath: string) => string | null;
|
|
35
|
+
/** The file's content at `sha`, or null when it does not exist there. */
|
|
36
|
+
readFileAtCommit: (focusWorktreePath: string, sha: string, path: string) => string | null;
|
|
37
|
+
/** A provisioned, dependency-comparable checkout of `sha`, or why there is none. */
|
|
38
|
+
openJudgedCheckout: (focusWorktreePath: string, checkoutKey: string, sha: string) => JudgedCheckout | {
|
|
39
|
+
unavailable: string;
|
|
40
|
+
};
|
|
41
|
+
/** Write a file (parent directories created). */
|
|
42
|
+
writeFile: (absolutePath: string, content: string) => void;
|
|
43
|
+
timeoutMs: number;
|
|
44
|
+
}
|
|
45
|
+
/** Run the falsifier at the judged commit (module doc). Never throws for a run problem. */
|
|
46
|
+
export declare function runFalsifierAtJudgedCommit(request: FalsifierRunRequest, deps: FalsifierRunDeps): Promise<FalsifierOutcome>;
|
|
47
|
+
//# sourceMappingURL=falsifier-run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"falsifier-run.d.ts","sourceRoot":"","sources":["../../../src/verify/falsifier/falsifier-run.ts"],"names":[],"mappings":"AAwCA,OAAO,EAAoB,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEnF,uCAAuC;AACvC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,8DAA8D;AAC9D,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC;IAC/B,iEAAiE;IACjE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,cAAc,GAAG,kBAAkB,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,4FAA4F;AAC5F,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACtD,0FAA0F;IAC1F,iBAAiB,EAAE,MAAM,OAAO,CAAC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,kCAAkC;AAClC,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,wBAAwB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC7D,kFAAkF;IAClF,mBAAmB,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAClE,yEAAyE;IACzE,gBAAgB,EAAE,CAAC,iBAAiB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC1F,oFAAoF;IACpF,kBAAkB,EAAE,CAAC,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,cAAc,GAAG;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9H,iDAAiD;IACjD,SAAS,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB;AAkDD,2FAA2F;AAC3F,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,gBAAgB,CAAC,CA2B3B"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: packages/daemon/src/integration/reopening-routing-regression.test.ts,
|
|
3
|
+
// packages/daemon/src/verify/falsifier/falsifier-run.test.ts
|
|
4
|
+
// PINNED-BY-END
|
|
5
|
+
/**
|
|
6
|
+
* Run ONE reopened criterion's falsifier at the commit an earlier review
|
|
7
|
+
* judged the criterion met at, and say whether the failure was demonstrated.
|
|
8
|
+
*
|
|
9
|
+
* The falsifier is a test the reviewer committed on the focus branch DURING
|
|
10
|
+
* the review -- after the commit the review was spawned at -- so it is read
|
|
11
|
+
* from the focus branch head as it stands when the daemon runs it (the review
|
|
12
|
+
* exit, right after the review session), never from the review's spawn-time
|
|
13
|
+
* reviewed sha. It is overlaid onto a checkout of the JUDGED commit opened the
|
|
14
|
+
* way a base checkout is (verify/attribution/verification-baseline-run.ts
|
|
15
|
+
* buildDefaultOpenBaseline): refused unless the focus worktree is provisioned
|
|
16
|
+
* and its dependency install inputs match the judged commit's, held against
|
|
17
|
+
* installs, and discarded if an install moved the linked dependencies while
|
|
18
|
+
* it ran. It runs alone, with a TAP reporter (falsifier-command.ts), and its
|
|
19
|
+
* output is read (falsifier-verdict.ts):
|
|
20
|
+
* - an assertion failed in the named test -> `demonstrated`;
|
|
21
|
+
* - it passed -> `not_demonstrated` (passes at the judged commit);
|
|
22
|
+
* - it failed some other way (did not load, an
|
|
23
|
+
* import or setup error, the runner broke) -> `not_demonstrated`, naming the error;
|
|
24
|
+
* - it does not resolve (no runner, not committed at the focus head, named
|
|
25
|
+
* test not in the file, no test ran) -> `not_demonstrated`, naming what did not resolve;
|
|
26
|
+
* - it could not be run or judged (no worktree, no comparable checkout,
|
|
27
|
+
* timeout, dependencies moved) -> `not_demonstrated`, naming the reason.
|
|
28
|
+
* Only a failing assertion blocks; every other answer leaves the reopening's
|
|
29
|
+
* findings concerns, so neither an infrastructure problem nor a broken test
|
|
30
|
+
* turns an argued failure into a blocking one.
|
|
31
|
+
*
|
|
32
|
+
* Every collaborator is injected ({@link FalsifierRunDeps}); the production
|
|
33
|
+
* binding is built at the composition root.
|
|
34
|
+
*
|
|
35
|
+
* @module verify/falsifier/falsifier-run
|
|
36
|
+
*/
|
|
37
|
+
import { join } from 'node:path';
|
|
38
|
+
import { resolveFalsifierCommand } from './falsifier-command.js';
|
|
39
|
+
import { readFalsifierRun } from './falsifier-verdict.js';
|
|
40
|
+
function notDemonstrated(reason) {
|
|
41
|
+
return { status: 'not_demonstrated', reason };
|
|
42
|
+
}
|
|
43
|
+
function short(sha) {
|
|
44
|
+
return sha.slice(0, 12);
|
|
45
|
+
}
|
|
46
|
+
/** The falsifier file read from the focus head, or the reason it does not resolve. */
|
|
47
|
+
function readFalsifierSource(deps, worktreePath, falsifier) {
|
|
48
|
+
const sourceSha = deps.resolveFocusHeadSha(worktreePath);
|
|
49
|
+
if (sourceSha === null)
|
|
50
|
+
return { reason: 'could not be run: the focus branch head could not be read' };
|
|
51
|
+
const content = deps.readFileAtCommit(worktreePath, sourceSha, falsifier.testPath);
|
|
52
|
+
if (content === null) {
|
|
53
|
+
return { reason: `does not resolve: ${falsifier.testPath} is not committed at the focus branch head ${short(sourceSha)}` };
|
|
54
|
+
}
|
|
55
|
+
if (falsifier.testName && !content.includes(falsifier.testName)) {
|
|
56
|
+
return { reason: `does not resolve: no test named "${falsifier.testName}" in ${falsifier.testPath}` };
|
|
57
|
+
}
|
|
58
|
+
return { content, sourceSha };
|
|
59
|
+
}
|
|
60
|
+
/** Classify how the run ended (falsifier-verdict.ts). */
|
|
61
|
+
function judgeRun(run, falsifier, judgedSha, timeoutMs) {
|
|
62
|
+
const label = `the falsifier ${falsifier.testPath}${falsifier.testName ? ` :: ${falsifier.testName}` : ''}`;
|
|
63
|
+
const at = `at the judged commit ${short(judgedSha)}`;
|
|
64
|
+
if (run.timedOut)
|
|
65
|
+
return notDemonstrated(`could not be run: ${label} timed out after ${Math.round(timeoutMs / 1000)}s ${at}`);
|
|
66
|
+
if (run.exitCode === null)
|
|
67
|
+
return notDemonstrated(`could not be run: ${label} did not start ${at}`);
|
|
68
|
+
const reading = readFalsifierRun(run, falsifier);
|
|
69
|
+
switch (reading.kind) {
|
|
70
|
+
case 'assertion_failed':
|
|
71
|
+
return { status: 'demonstrated', reason: `${label} FAILS ${at}: an assertion failed in "${reading.test}"` };
|
|
72
|
+
case 'passed':
|
|
73
|
+
return notDemonstrated(`${label} PASSES ${at}: the failure was argued, not demonstrated`);
|
|
74
|
+
case 'no_test_ran':
|
|
75
|
+
return notDemonstrated(`does not resolve: ${label} ran no test ${at} (the named test did not match)`);
|
|
76
|
+
case 'not_an_assertion':
|
|
77
|
+
return notDemonstrated(`${label} failed ${at} without an assertion failing in the named test (a load, import, setup or runner ` +
|
|
78
|
+
`failure demonstrates nothing): ${reading.detail}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/** Run the falsifier at the judged commit (module doc). Never throws for a run problem. */
|
|
82
|
+
export async function runFalsifierAtJudgedCommit(request, deps) {
|
|
83
|
+
const { falsifier, judgedSha } = request;
|
|
84
|
+
if (falsifier === null)
|
|
85
|
+
return notDemonstrated('no falsifier named');
|
|
86
|
+
if (judgedSha === null)
|
|
87
|
+
return notDemonstrated('no judged commit recorded');
|
|
88
|
+
const command = resolveFalsifierCommand(falsifier.testPath, falsifier.testName);
|
|
89
|
+
if (command === null) {
|
|
90
|
+
return notDemonstrated(`does not resolve: no test runner for ${falsifier.testPath} (daemon packages/daemon/src/**.test.ts or vitest src/**.test.ts)`);
|
|
91
|
+
}
|
|
92
|
+
const worktreePath = deps.resolveFocusWorktreePath(request.focusId);
|
|
93
|
+
if (worktreePath === null)
|
|
94
|
+
return notDemonstrated('could not be run: the focus has no worktree on this host');
|
|
95
|
+
const source = readFalsifierSource(deps, worktreePath, falsifier);
|
|
96
|
+
if ('reason' in source)
|
|
97
|
+
return notDemonstrated(source.reason);
|
|
98
|
+
const checkout = deps.openJudgedCheckout(worktreePath, request.checkoutKey, judgedSha);
|
|
99
|
+
if ('unavailable' in checkout)
|
|
100
|
+
return notDemonstrated(`could not be run at the judged commit ${short(judgedSha)}: ${checkout.unavailable}`);
|
|
101
|
+
try {
|
|
102
|
+
deps.writeFile(join(checkout.path, falsifier.testPath), source.content);
|
|
103
|
+
const run = await checkout.run(command.command);
|
|
104
|
+
if (checkout.dependenciesMoved()) {
|
|
105
|
+
return notDemonstrated('could not be judged: a dependency install moved the checkout\'s linked node_modules while it ran');
|
|
106
|
+
}
|
|
107
|
+
const outcome = judgeRun(run, falsifier, judgedSha, deps.timeoutMs);
|
|
108
|
+
return { ...outcome, reason: `${outcome.reason} (falsifier read from the focus head ${short(source.sourceSha)})` };
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
return notDemonstrated(`could not be run: ${err.message}`);
|
|
112
|
+
}
|
|
113
|
+
finally {
|
|
114
|
+
checkout.dispose();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=falsifier-run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"falsifier-run.js","sourceRoot":"","sources":["../../../src/verify/falsifier/falsifier-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a falsifier run SHOWED, read from its TAP output -- not from its exit
|
|
3
|
+
* code alone.
|
|
4
|
+
*
|
|
5
|
+
* A non-zero exit says only that something went wrong: a syntax error, a
|
|
6
|
+
* missing import, a broken runner or a setup failure exits non-zero exactly
|
|
7
|
+
* like a failing assertion. Only the last is the criterion's failure
|
|
8
|
+
* demonstrated, so only the last may promote a reopening's findings to
|
|
9
|
+
* blocking. Both runners the falsifier resolves to (falsifier-command.ts) are
|
|
10
|
+
* run with a TAP reporter, and the output is classified:
|
|
11
|
+
* - `assertion_failed` -- a TEST entry (not the file) reported `not ok` with an
|
|
12
|
+
* assertion error (`AssertionError` / `ERR_ASSERTION`) -- the named test's,
|
|
13
|
+
* when the falsifier names one;
|
|
14
|
+
* - `passed` -- the run exited 0 and at least one test ran (not skipped);
|
|
15
|
+
* - `no_test_ran` -- exit 0 with nothing run: the named test did not match;
|
|
16
|
+
* - `not_an_assertion` -- it failed, but no test failed by an assertion: a
|
|
17
|
+
* collection, import, setup or runner failure, with the first error line.
|
|
18
|
+
*
|
|
19
|
+
* Probed against the real runners (node:test --test-reporter=tap under tsx, and
|
|
20
|
+
* vitest --reporter=tap): an assertion failure carries `name: 'AssertionError'`
|
|
21
|
+
* (vitest: `name: "AssertionError"`) in the failing test's YAML block; a file
|
|
22
|
+
* that fails to load is one `not ok` entry titled with the file path carrying
|
|
23
|
+
* `ERR_TEST_FAILURE` (node) or the import error (vitest).
|
|
24
|
+
*
|
|
25
|
+
* Pure.
|
|
26
|
+
*
|
|
27
|
+
* @module verify/falsifier/falsifier-verdict
|
|
28
|
+
*/
|
|
29
|
+
/** How the falsifier command ended, with its combined output. */
|
|
30
|
+
export interface FalsifierRunOutput {
|
|
31
|
+
output: string;
|
|
32
|
+
exitCode: number | null;
|
|
33
|
+
timedOut: boolean;
|
|
34
|
+
}
|
|
35
|
+
/** What the run showed. */
|
|
36
|
+
export type FalsifierRunReading = {
|
|
37
|
+
kind: 'assertion_failed';
|
|
38
|
+
test: string;
|
|
39
|
+
} | {
|
|
40
|
+
kind: 'passed';
|
|
41
|
+
} | {
|
|
42
|
+
kind: 'no_test_ran';
|
|
43
|
+
} | {
|
|
44
|
+
kind: 'not_an_assertion';
|
|
45
|
+
detail: string;
|
|
46
|
+
};
|
|
47
|
+
/** Classify one falsifier run (module doc). */
|
|
48
|
+
export declare function readFalsifierRun(run: FalsifierRunOutput, falsifier: {
|
|
49
|
+
testPath: string;
|
|
50
|
+
testName?: string;
|
|
51
|
+
}): FalsifierRunReading;
|
|
52
|
+
//# sourceMappingURL=falsifier-verdict.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"falsifier-verdict.d.ts","sourceRoot":"","sources":["../../../src/verify/falsifier/falsifier-verdict.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,iEAAiE;AACjE,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,2BAA2B;AAC3B,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAyDjD,+CAA+C;AAC/C,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,kBAAkB,EACvB,SAAS,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACjD,mBAAmB,CAUrB"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: packages/daemon/src/verify/falsifier/falsifier-run.test.ts
|
|
3
|
+
// PINNED-BY-END
|
|
4
|
+
const ENTRY = /^\s*(not ok|ok)\s+\d+\s+-\s+(.*)$/;
|
|
5
|
+
const YAML_END = /^\s*\.\.\.\s*$/;
|
|
6
|
+
const ASSERTION = /AssertionError|ERR_ASSERTION/;
|
|
7
|
+
const SKIPPED = /#\s*(SKIP|TODO)\b/i;
|
|
8
|
+
/** The title without its TAP directive / timing suffix (` # SKIP ...`, ` # time=...`, a trailing `{`). */
|
|
9
|
+
function cleanTitle(raw) {
|
|
10
|
+
return raw.replace(/\s+\{\s*$/, '').replace(/\s+#.*$/, '').trim();
|
|
11
|
+
}
|
|
12
|
+
/** Every `ok` / `not ok` entry, nested ones included, with its diagnostic block. */
|
|
13
|
+
function readEntries(output) {
|
|
14
|
+
const lines = output.split('\n');
|
|
15
|
+
const entries = [];
|
|
16
|
+
for (let i = 0; i < lines.length; i++) {
|
|
17
|
+
const match = ENTRY.exec(lines[i]);
|
|
18
|
+
if (!match)
|
|
19
|
+
continue;
|
|
20
|
+
const detail = [];
|
|
21
|
+
for (let j = i + 1; j < lines.length; j++) {
|
|
22
|
+
const line = lines[j];
|
|
23
|
+
if (ENTRY.test(line) || YAML_END.test(line))
|
|
24
|
+
break;
|
|
25
|
+
detail.push(line);
|
|
26
|
+
}
|
|
27
|
+
entries.push({
|
|
28
|
+
ok: match[1] === 'ok',
|
|
29
|
+
title: cleanTitle(match[2]),
|
|
30
|
+
skipped: SKIPPED.test(match[2]),
|
|
31
|
+
detail: detail.join('\n'),
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return entries;
|
|
35
|
+
}
|
|
36
|
+
/** A file-level entry: its title is the test file (a load / collection result, not a test). */
|
|
37
|
+
function isFileEntry(title, testPath) {
|
|
38
|
+
return title === testPath || title.endsWith(`/${testPath}`) || /\.test\.tsx?$/.test(title);
|
|
39
|
+
}
|
|
40
|
+
/** The first line that reads like the error, for the recorded reason. */
|
|
41
|
+
function firstErrorLine(output) {
|
|
42
|
+
const line = output
|
|
43
|
+
.split('\n')
|
|
44
|
+
.map((l) => l.replace(/^[#\s]+/, '').trim())
|
|
45
|
+
.find((l) => /error|cannot|not found|failed/i.test(l) && !/^#?\s*(fail|pass|tests)\s+\d+/i.test(l));
|
|
46
|
+
return (line ?? 'no error line in the runner output').slice(0, 240);
|
|
47
|
+
}
|
|
48
|
+
/** Classify one falsifier run (module doc). */
|
|
49
|
+
export function readFalsifierRun(run, falsifier) {
|
|
50
|
+
const entries = readEntries(run.output).filter((e) => !isFileEntry(e.title, falsifier.testPath));
|
|
51
|
+
const named = falsifier.testName?.trim();
|
|
52
|
+
const inScope = (e) => named === undefined || named === '' || e.title === named;
|
|
53
|
+
const asserted = entries.find((e) => !e.ok && inScope(e) && ASSERTION.test(e.detail));
|
|
54
|
+
if (asserted && run.exitCode !== 0)
|
|
55
|
+
return { kind: 'assertion_failed', test: asserted.title };
|
|
56
|
+
if (run.exitCode === 0) {
|
|
57
|
+
return entries.some((e) => e.ok && !e.skipped && inScope(e)) ? { kind: 'passed' } : { kind: 'no_test_ran' };
|
|
58
|
+
}
|
|
59
|
+
return { kind: 'not_an_assertion', detail: firstErrorLine(run.output) };
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=falsifier-verdict.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"falsifier-verdict.js","sourceRoot":"","sources":["../../../src/verify/falsifier/falsifier-verdict.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-judge-rulings.d.ts","sourceRoot":"","sources":["../../../src/verify/shortfalls/pre-judge-rulings.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pre-judge-rulings.d.ts","sourceRoot":"","sources":["../../../src/verify/shortfalls/pre-judge-rulings.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAA4B,eAAe,EAAE,MAAM,iDAAiD,CAAC;AACjH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAEtF,OAAO,KAAK,EAAE,mBAAmB,EAAyB,MAAM,iCAAiC,CAAC;AAClG,OAAO,EAAiB,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAIpF,8FAA8F;AAC9F,MAAM,WAAW,eAAe;IAC9B,+DAA+D;IAC/D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,2GAA2G;IAC3G,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IACpC,qFAAqF;IACrF,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,yFAAyF;IACzF,IAAI,EAAE,sBAAsB,CAAC;IAC7B,uFAAuF;IACvF,aAAa,EAAE,mBAAmB,CAAC;CACpC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAGvH;AAED,8GAA8G;AAC9G,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAOnG;AAqBD;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,YAAY,GAAG,cAAc,CAAC,EAC3D,IAAI,EAAE,sBAAsB,EAC5B,aAAa,EAAE,mBAAmB,GACjC,OAAO,CAAC,eAAe,CAAC,CA0B1B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
-
// Pinned by: packages/daemon/src/verify/engine/reconciliation-step.test.ts,
|
|
2
|
+
// Pinned by: packages/daemon/src/verify/engine/reconciliation-step-judged-at-focus.test.ts,
|
|
3
|
+
// packages/daemon/src/verify/engine/reconciliation-step.test.ts,
|
|
3
4
|
// packages/daemon/src/verify/shortfalls/pre-judge-rulings.test.ts
|
|
4
5
|
// PINNED-BY-END
|
|
5
6
|
import { createLogger } from '../../log/daemon-log.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-judge-rulings.js","sourceRoot":"","sources":["../../../src/verify/shortfalls/pre-judge-rulings.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,
|
|
1
|
+
{"version":3,"file":"pre-judge-rulings.js","sourceRoot":"","sources":["../../../src/verify/shortfalls/pre-judge-rulings.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,6 +61,8 @@ export declare function resolveTeamActionableWork(args: {
|
|
|
61
61
|
deliveries: readonly HoldWorkDelivery[];
|
|
62
62
|
issues: readonly HoldWorkIssue[];
|
|
63
63
|
verifyHeldDeliveryIds: (worktreePath: string) => ReadonlySet<string>;
|
|
64
|
+
/** The focus's recorded review concerns: not work outside the hold (supervision/team-work.ts). */
|
|
65
|
+
recordedConcernIds?: ReadonlySet<string>;
|
|
64
66
|
};
|
|
65
67
|
/** See TeamActionableWorkInput.mergeResolutionOutstanding. Optional; defaults
|
|
66
68
|
* to false so callers that do not track it are unaffected. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-hold-facts.d.ts","sourceRoot":"","sources":["../../src/worktree/verify-hold-facts.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,6BAA6B,CAAC;AAKrC;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,uGAAuG;IACvG,QAAQ,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACrF,QAAQ,CAAC,qBAAqB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;CACnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAIlF;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,uBAAuB,EAAE,OAAO,CAAC;IACjC,qBAAqB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;IACzD,gGAAgG;IAChG,WAAW,CAAC,EAAE;QACZ,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAC;QACxC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;QACjC,qBAAqB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"verify-hold-facts.d.ts","sourceRoot":"","sources":["../../src/worktree/verify-hold-facts.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,6BAA6B,CAAC;AAKrC;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,uGAAuG;IACvG,QAAQ,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACrF,QAAQ,CAAC,qBAAqB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;CACnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAIlF;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,uBAAuB,EAAE,OAAO,CAAC;IACjC,qBAAqB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;IACzD,gGAAgG;IAChG,WAAW,CAAC,EAAE;QACZ,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAC;QACxC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;QACjC,qBAAqB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC;QACrE,kGAAkG;QAClG,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;KAC1C,CAAC;IACF;mEAC+D;IAC/D,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC;0DACsD;IACtD,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC,GAAG;IAAE,eAAe,EAAE,OAAO,CAAC;IAAC,qBAAqB,EAAE,OAAO,CAAA;CAAE,CAqB/D;AAED,0HAA0H;AAC1H,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,QAAQ,CAAC,qBAAqB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9E,QAAQ,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAAC;IACvF,QAAQ,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAAC;CACjF;AAED;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,eAAe,CAAC,CAgB1B;AAED,iHAAiH;AACjH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,WAAW,CAAC,MAAM,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnF,QAAQ,CAAC,qBAAqB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;CACnE;AAED,gGAAgG;AAChG,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;AAEnE;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAKvE"}
|
|
@@ -62,6 +62,7 @@ export function resolveTeamActionableWork(args) {
|
|
|
62
62
|
deliveries: args.outsideHold.deliveries,
|
|
63
63
|
issues: args.outsideHold.issues,
|
|
64
64
|
heldDeliveryIds: args.outsideHold.verifyHeldDeliveryIds(heldPath),
|
|
65
|
+
recordedConcernIds: args.outsideHold.recordedConcernIds,
|
|
65
66
|
});
|
|
66
67
|
return {
|
|
67
68
|
underVerifyHold,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-hold-facts.js","sourceRoot":"","sources":["../../src/worktree/verify-hold-facts.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,+EAA+E;AAC/E,iEAAiE;AACjE,kFAAkF;AAClF,2DAA2D;AAC3D,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,GAIzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AAY9C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,IAAmB;IACvE,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,YAAY,IAAI,IAAI,CAAC;IAC1E,IAAI,YAAY,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,
|
|
1
|
+
{"version":3,"file":"verify-hold-facts.js","sourceRoot":"","sources":["../../src/worktree/verify-hold-facts.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@telora/daemon",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.1",
|
|
4
4
|
"description": "Agent orchestration daemon for Telora - spawns and manages Claude Code instances",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"//testRunner": "Uses Node.js built-in test runner (node:test) via tsx for TypeScript support. The root package uses Vitest; this is a deliberate choice for the daemon package to avoid framework dependencies. Test files live beside the modules they exercise (owner-directory layout); the runner discovers them recursively.",
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@telora/daemon-core": "^0.2.105",
|
|
41
|
-
"@telora/mcp-products": "^0.22.
|
|
41
|
+
"@telora/mcp-products": "^0.22.171",
|
|
42
42
|
"commander": "^14.0.3",
|
|
43
43
|
"yaml": "^2.4.0",
|
|
44
44
|
"zod": "^4.3.6"
|