@telora/daemon 0.22.85 → 0.22.91
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 +4 -3
- package/dist/backends/index.d.ts +1 -1
- package/dist/backends/index.d.ts.map +1 -1
- package/dist/backends/index.js +1 -1
- package/dist/backends/index.js.map +1 -1
- package/dist/backends/resolve.d.ts +37 -8
- package/dist/backends/resolve.d.ts.map +1 -1
- package/dist/backends/resolve.js +62 -28
- package/dist/backends/resolve.js.map +1 -1
- package/dist/ci/ci-escalation.d.ts +17 -1
- package/dist/ci/ci-escalation.d.ts.map +1 -1
- package/dist/ci/ci-escalation.js +51 -3
- package/dist/ci/ci-escalation.js.map +1 -1
- package/dist/ci/ci-red-attribution.d.ts +85 -0
- package/dist/ci/ci-red-attribution.d.ts.map +1 -0
- package/dist/ci/ci-red-attribution.js +108 -0
- package/dist/ci/ci-red-attribution.js.map +1 -0
- package/dist/ci/ci-sensor-loop.d.ts +84 -80
- package/dist/ci/ci-sensor-loop.d.ts.map +1 -1
- package/dist/ci/ci-sensor-loop.js +132 -129
- package/dist/ci/ci-sensor-loop.js.map +1 -1
- package/dist/cli/connect/config-write.d.ts +7 -4
- package/dist/cli/connect/config-write.d.ts.map +1 -1
- package/dist/cli/connect/config-write.js +13 -7
- package/dist/cli/connect/config-write.js.map +1 -1
- package/dist/cli/connect.d.ts.map +1 -1
- package/dist/cli/connect.js +11 -1
- package/dist/cli/connect.js.map +1 -1
- package/dist/cli/update-commands.d.ts.map +1 -1
- package/dist/cli/update-commands.js +2 -1
- package/dist/cli/update-commands.js.map +1 -1
- package/dist/completion/coverage-stabilized.d.ts.map +1 -1
- package/dist/completion/coverage-stabilized.js +1 -1
- package/dist/completion/coverage-stabilized.js.map +1 -1
- package/dist/completion/escalations.d.ts +40 -5
- package/dist/completion/escalations.d.ts.map +1 -1
- package/dist/completion/escalations.js +19 -11
- package/dist/completion/escalations.js.map +1 -1
- package/dist/completion/event-escalations.d.ts +12 -1
- package/dist/completion/event-escalations.d.ts.map +1 -1
- package/dist/completion/event-escalations.js +73 -37
- package/dist/completion/event-escalations.js.map +1 -1
- package/dist/completion/event.d.ts +4 -1
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js +1 -1
- package/dist/completion/event.js.map +1 -1
- package/dist/completion/human-only-act.d.ts +1 -1
- package/dist/completion/human-only-act.js +1 -1
- package/dist/completion/machine-remediable-demotion.d.ts +28 -1
- package/dist/completion/machine-remediable-demotion.d.ts.map +1 -1
- package/dist/completion/machine-remediable-demotion.js +9 -6
- package/dist/completion/machine-remediable-demotion.js.map +1 -1
- package/dist/completion/read-only-pristine.d.ts.map +1 -1
- package/dist/completion/read-only-pristine.js +4 -0
- package/dist/completion/read-only-pristine.js.map +1 -1
- package/dist/completion/review-exit-deps.js +1 -1
- package/dist/completion/review-exit-deps.js.map +1 -1
- package/dist/completion/review-exit-escalations.d.ts +10 -0
- package/dist/completion/review-exit-escalations.d.ts.map +1 -1
- package/dist/completion/review-exit-escalations.js +38 -3
- package/dist/completion/review-exit-escalations.js.map +1 -1
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +8 -7
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/review-exit-shortfall.d.ts +5 -1
- package/dist/completion/review-exit-shortfall.d.ts.map +1 -1
- package/dist/completion/review-exit-shortfall.js +8 -3
- package/dist/completion/review-exit-shortfall.js.map +1 -1
- package/dist/completion/status-advance-phase.d.ts +2 -0
- package/dist/completion/status-advance-phase.d.ts.map +1 -1
- package/dist/completion/status-advance-phase.js +2 -1
- package/dist/completion/status-advance-phase.js.map +1 -1
- package/dist/completion/terminated-work-reconcile.js +2 -2
- package/dist/completion/terminated-work-reconcile.js.map +1 -1
- package/dist/delivery/delivery-advance-block.d.ts +3 -3
- package/dist/delivery/delivery-advance-block.d.ts.map +1 -1
- package/dist/delivery/delivery-advance-block.js +13 -8
- package/dist/delivery/delivery-advance-block.js.map +1 -1
- package/dist/delivery/delivery-lifecycle.d.ts +10 -0
- package/dist/delivery/delivery-lifecycle.d.ts.map +1 -1
- package/dist/delivery/delivery-lifecycle.js +12 -6
- package/dist/delivery/delivery-lifecycle.js.map +1 -1
- package/dist/delivery/delivery-merge-ops.d.ts.map +1 -1
- package/dist/delivery/delivery-merge-ops.js +39 -21
- package/dist/delivery/delivery-merge-ops.js.map +1 -1
- package/dist/delivery/external-hold.d.ts +8 -2
- package/dist/delivery/external-hold.d.ts.map +1 -1
- package/dist/delivery/external-hold.js +12 -5
- package/dist/delivery/external-hold.js.map +1 -1
- package/dist/delivery/operator-hold.d.ts +6 -1
- package/dist/delivery/operator-hold.d.ts.map +1 -1
- package/dist/delivery/operator-hold.js +31 -10
- package/dist/delivery/operator-hold.js.map +1 -1
- package/dist/delivery/paused-revival.d.ts +6 -0
- package/dist/delivery/paused-revival.d.ts.map +1 -1
- package/dist/delivery/paused-revival.js +3 -1
- package/dist/delivery/paused-revival.js.map +1 -1
- package/dist/directive/directive-dispatch.d.ts.map +1 -1
- package/dist/directive/directive-dispatch.js +6 -3
- package/dist/directive/directive-dispatch.js.map +1 -1
- package/dist/directive/directive-queue.d.ts.map +1 -1
- package/dist/directive/directive-queue.js +4 -1
- package/dist/directive/directive-queue.js.map +1 -1
- package/dist/drift/staleness-sensor.d.ts +20 -0
- package/dist/drift/staleness-sensor.d.ts.map +1 -1
- package/dist/drift/staleness-sensor.js +54 -21
- package/dist/drift/staleness-sensor.js.map +1 -1
- package/dist/drift/staleness.d.ts +18 -5
- package/dist/drift/staleness.d.ts.map +1 -1
- package/dist/drift/staleness.js +28 -15
- package/dist/drift/staleness.js.map +1 -1
- package/dist/focus/focus-executor.d.ts.map +1 -1
- package/dist/focus/focus-executor.js +6 -8
- package/dist/focus/focus-executor.js.map +1 -1
- package/dist/focus/focus-loop-registry.d.ts.map +1 -1
- package/dist/focus/focus-loop-registry.js +23 -13
- package/dist/focus/focus-loop-registry.js.map +1 -1
- package/dist/focus/focus-respawn-guard.d.ts.map +1 -1
- package/dist/focus/focus-respawn-guard.js +21 -4
- package/dist/focus/focus-respawn-guard.js.map +1 -1
- package/dist/focus/listener-auto-advance.d.ts.map +1 -1
- package/dist/focus/listener-auto-advance.js +10 -6
- package/dist/focus/listener-auto-advance.js.map +1 -1
- package/dist/focus/verify-open-issues.d.ts.map +1 -1
- package/dist/focus/verify-open-issues.js +21 -1
- package/dist/focus/verify-open-issues.js.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.js +35 -14
- package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
- package/dist/loops/index.d.ts.map +1 -1
- package/dist/loops/index.js +2 -1
- package/dist/loops/index.js.map +1 -1
- package/dist/merge/focus-merge.d.ts +1 -1
- package/dist/merge/focus-merge.d.ts.map +1 -1
- package/dist/merge/focus-merge.js +5 -1
- package/dist/merge/focus-merge.js.map +1 -1
- package/dist/merge/merge-back-loop.d.ts +2 -1
- package/dist/merge/merge-back-loop.d.ts.map +1 -1
- package/dist/merge/merge-back-loop.js +15 -12
- package/dist/merge/merge-back-loop.js.map +1 -1
- package/dist/merge/merge-conflict-escalation.d.ts.map +1 -1
- package/dist/merge/merge-conflict-escalation.js +4 -0
- package/dist/merge/merge-conflict-escalation.js.map +1 -1
- package/dist/nexus/return.d.ts +14 -15
- package/dist/nexus/return.d.ts.map +1 -1
- package/dist/nexus/return.js +41 -31
- package/dist/nexus/return.js.map +1 -1
- package/dist/prompt-sections/execution-sections.d.ts +13 -5
- package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
- package/dist/prompt-sections/execution-sections.js +78 -18
- package/dist/prompt-sections/execution-sections.js.map +1 -1
- package/dist/prompt-sections/routing-decider-sections.d.ts +60 -0
- package/dist/prompt-sections/routing-decider-sections.d.ts.map +1 -0
- package/dist/prompt-sections/routing-decider-sections.js +197 -0
- package/dist/prompt-sections/routing-decider-sections.js.map +1 -0
- package/dist/queries/agent-resolvable-aging.d.ts +4 -3
- package/dist/queries/agent-resolvable-aging.d.ts.map +1 -1
- package/dist/queries/agent-resolvable-aging.js +5 -4
- package/dist/queries/agent-resolvable-aging.js.map +1 -1
- package/dist/queries/agent-resolvable-promotion.d.ts +172 -124
- package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
- package/dist/queries/agent-resolvable-promotion.js +332 -307
- package/dist/queries/agent-resolvable-promotion.js.map +1 -1
- package/dist/queries/agent-resolvable-retirement.d.ts +105 -0
- package/dist/queries/agent-resolvable-retirement.d.ts.map +1 -0
- package/dist/queries/agent-resolvable-retirement.js +227 -0
- package/dist/queries/agent-resolvable-retirement.js.map +1 -0
- package/dist/queries/cause-key.d.ts +109 -0
- package/dist/queries/cause-key.d.ts.map +1 -1
- package/dist/queries/cause-key.js +93 -1
- package/dist/queries/cause-key.js.map +1 -1
- package/dist/queries/deliveries.d.ts +14 -0
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +20 -2
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/delivery-gate-state.d.ts +130 -5
- package/dist/queries/delivery-gate-state.d.ts.map +1 -1
- package/dist/queries/delivery-gate-state.js +111 -2
- package/dist/queries/delivery-gate-state.js.map +1 -1
- package/dist/queries/escalation-consumption.d.ts +95 -15
- package/dist/queries/escalation-consumption.d.ts.map +1 -1
- package/dist/queries/escalation-consumption.js +162 -24
- package/dist/queries/escalation-consumption.js.map +1 -1
- package/dist/queries/escalation-dispositions.d.ts +19 -7
- package/dist/queries/escalation-dispositions.d.ts.map +1 -1
- package/dist/queries/escalation-dispositions.js +7 -0
- package/dist/queries/escalation-dispositions.js.map +1 -1
- package/dist/queries/escalation-suppression.d.ts +63 -19
- package/dist/queries/escalation-suppression.d.ts.map +1 -1
- package/dist/queries/escalation-suppression.js +64 -35
- package/dist/queries/escalation-suppression.js.map +1 -1
- package/dist/queries/escalations.d.ts +127 -70
- package/dist/queries/escalations.d.ts.map +1 -1
- package/dist/queries/escalations.js +170 -188
- package/dist/queries/escalations.js.map +1 -1
- package/dist/queries/filing-observation.d.ts +82 -0
- package/dist/queries/filing-observation.d.ts.map +1 -0
- package/dist/queries/filing-observation.js +157 -0
- package/dist/queries/filing-observation.js.map +1 -0
- package/dist/queries/holds.d.ts +69 -2
- package/dist/queries/holds.d.ts.map +1 -1
- package/dist/queries/holds.js +106 -11
- package/dist/queries/holds.js.map +1 -1
- package/dist/queries/incident-correlation.d.ts +291 -0
- package/dist/queries/incident-correlation.d.ts.map +1 -0
- package/dist/queries/incident-correlation.js +408 -0
- package/dist/queries/incident-correlation.js.map +1 -0
- package/dist/queries/routing-measurement.d.ts +48 -1
- package/dist/queries/routing-measurement.d.ts.map +1 -1
- package/dist/queries/routing-measurement.js +64 -2
- package/dist/queries/routing-measurement.js.map +1 -1
- package/dist/queries/routing-quality.d.ts +8 -0
- package/dist/queries/routing-quality.d.ts.map +1 -1
- package/dist/queries/routing-quality.js +12 -3
- package/dist/queries/routing-quality.js.map +1 -1
- package/dist/queries/shared.js +1 -1
- package/dist/shell/crash-recovery.d.ts.map +1 -1
- package/dist/shell/crash-recovery.js +6 -6
- package/dist/shell/crash-recovery.js.map +1 -1
- package/dist/shell/heartbeat-metadata.d.ts +18 -0
- package/dist/shell/heartbeat-metadata.d.ts.map +1 -1
- package/dist/shell/heartbeat-metadata.js +24 -0
- package/dist/shell/heartbeat-metadata.js.map +1 -1
- package/dist/shell/heartbeat.d.ts.map +1 -1
- package/dist/shell/heartbeat.js +6 -17
- package/dist/shell/heartbeat.js.map +1 -1
- package/dist/shell/install-probe-tick.d.ts.map +1 -1
- package/dist/shell/install-probe-tick.js +3 -1
- package/dist/shell/install-probe-tick.js.map +1 -1
- package/dist/shell/model-resolution.d.ts +9 -4
- package/dist/shell/model-resolution.d.ts.map +1 -1
- package/dist/shell/model-resolution.js +46 -7
- package/dist/shell/model-resolution.js.map +1 -1
- package/dist/shell/unified-init.d.ts +24 -0
- package/dist/shell/unified-init.d.ts.map +1 -1
- package/dist/shell/unified-init.js +22 -17
- package/dist/shell/unified-init.js.map +1 -1
- package/dist/spawn/model-id-guards.d.ts +50 -0
- package/dist/spawn/model-id-guards.d.ts.map +1 -0
- package/dist/spawn/model-id-guards.js +110 -0
- package/dist/spawn/model-id-guards.js.map +1 -0
- package/dist/spawn/model-routing.d.ts +1 -43
- package/dist/spawn/model-routing.d.ts.map +1 -1
- package/dist/spawn/model-routing.js +3 -94
- package/dist/spawn/model-routing.js.map +1 -1
- package/dist/spawn/respawn-cycle-escalation.d.ts +10 -2
- package/dist/spawn/respawn-cycle-escalation.d.ts.map +1 -1
- package/dist/spawn/respawn-cycle-escalation.js +16 -2
- package/dist/spawn/respawn-cycle-escalation.js.map +1 -1
- package/dist/spawn/routing-decider-spawn.d.ts +93 -0
- package/dist/spawn/routing-decider-spawn.d.ts.map +1 -0
- package/dist/spawn/routing-decider-spawn.js +185 -0
- package/dist/spawn/routing-decider-spawn.js.map +1 -0
- package/dist/spawn/routing-decider.d.ts +42 -0
- package/dist/spawn/routing-decider.d.ts.map +1 -0
- package/dist/spawn/routing-decider.js +95 -0
- package/dist/spawn/routing-decider.js.map +1 -0
- package/dist/spawn/shared.d.ts +8 -0
- package/dist/spawn/shared.d.ts.map +1 -1
- package/dist/spawn/shared.js +1 -1
- package/dist/spawn/shared.js.map +1 -1
- package/dist/spawn/spawn-decision.d.ts +24 -16
- package/dist/spawn/spawn-decision.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.js +28 -11
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/spawn/worktree-session.d.ts +23 -7
- package/dist/spawn/worktree-session.d.ts.map +1 -1
- package/dist/spawn/worktree-session.js +54 -22
- package/dist/spawn/worktree-session.js.map +1 -1
- package/dist/testing/fixtures/index.js +1 -1
- package/dist/types/index.js +1 -1
- package/dist/update/auto-update.d.ts +20 -3
- package/dist/update/auto-update.d.ts.map +1 -1
- package/dist/update/auto-update.js +8 -24
- package/dist/update/auto-update.js.map +1 -1
- package/dist/update/self-update.d.ts +43 -4
- package/dist/update/self-update.d.ts.map +1 -1
- package/dist/update/self-update.js +61 -38
- package/dist/update/self-update.js.map +1 -1
- package/dist/update/version-check.d.ts +29 -45
- package/dist/update/version-check.d.ts.map +1 -1
- package/dist/update/version-check.js +48 -79
- package/dist/update/version-check.js.map +1 -1
- package/dist/verify/failure-signature.d.ts +91 -0
- package/dist/verify/failure-signature.d.ts.map +1 -0
- package/dist/verify/failure-signature.js +233 -0
- package/dist/verify/failure-signature.js.map +1 -0
- package/dist/verify/shortfall-repeat.d.ts +12 -9
- package/dist/verify/shortfall-repeat.d.ts.map +1 -1
- package/dist/verify/shortfall-repeat.js +38 -14
- package/dist/verify/shortfall-repeat.js.map +1 -1
- package/dist/verify/stall-detectors.d.ts +19 -43
- package/dist/verify/stall-detectors.d.ts.map +1 -1
- package/dist/verify/stall-detectors.js +26 -101
- package/dist/verify/stall-detectors.js.map +1 -1
- package/dist/verify/unreviewed-settle-detector.d.ts +8 -0
- package/dist/verify/unreviewed-settle-detector.d.ts.map +1 -1
- package/dist/verify/unreviewed-settle-detector.js +15 -1
- package/dist/verify/unreviewed-settle-detector.js.map +1 -1
- package/dist/verify/verification-deps-default.d.ts.map +1 -1
- package/dist/verify/verification-deps-default.js +14 -2
- package/dist/verify/verification-deps-default.js.map +1 -1
- package/dist/verify/verification-evidence-unavailable-feedback.d.ts.map +1 -1
- package/dist/verify/verification-evidence-unavailable-feedback.js +8 -2
- package/dist/verify/verification-evidence-unavailable-feedback.js.map +1 -1
- package/dist/verify/verification-feedback.d.ts +62 -14
- package/dist/verify/verification-feedback.d.ts.map +1 -1
- package/dist/verify/verification-feedback.js +101 -28
- package/dist/verify/verification-feedback.js.map +1 -1
- package/dist/verify/verify-gate-stall.d.ts +116 -0
- package/dist/verify/verify-gate-stall.d.ts.map +1 -0
- package/dist/verify/verify-gate-stall.js +169 -0
- package/dist/verify/verify-gate-stall.js.map +1 -0
- package/dist/verify/verify-restatement.d.ts.map +1 -1
- package/dist/verify/verify-restatement.js +2 -1
- package/dist/verify/verify-restatement.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The verify_gate_unclearable STALL decision: is a delivery failing the verify
|
|
3
|
+
* gate the SAME way cycle after cycle, or merely failing it OFTEN?
|
|
4
|
+
*
|
|
5
|
+
* A stall is an UNCHANGING failure signature across consecutive cycles, not an
|
|
6
|
+
* elapsed cycle count. iteration_count cannot tell a delivery converging through
|
|
7
|
+
* successive gates (each fix correct, each uncovering the next gate -- delivery
|
|
8
|
+
* e8e8fa15, 16 cycles, 2026-09-11) from one failing identically, so it no longer
|
|
9
|
+
* decides on its own. The decision reads the run-length record the rejection
|
|
10
|
+
* stamped on gate_state.verification (see failure-signature.ts):
|
|
11
|
+
*
|
|
12
|
+
* - signature recorded: stalled only once ONE signature has held for
|
|
13
|
+
* VERIFY_GATE_STALL_REPEAT_THRESHOLD consecutive rejections. A signature that
|
|
14
|
+
* changes every cycle stays silent however high iteration_count climbs.
|
|
15
|
+
* - no signature recorded (a legacy gate_state, a shortfall / evidence hold
|
|
16
|
+
* that is not a deterministic run, or an unparseable log): fall back to the
|
|
17
|
+
* iteration cap, so detection is never silently disabled.
|
|
18
|
+
*
|
|
19
|
+
* Both paths also require a LIVE blocking guard and a non-terminal delivery.
|
|
20
|
+
* Split out of stall-detectors.ts (which files the escalation) so the decision
|
|
21
|
+
* and its escalation text are pure and directly testable.
|
|
22
|
+
*
|
|
23
|
+
* @module verify/verify-gate-stall
|
|
24
|
+
*/
|
|
25
|
+
import type { FocusDeliveryInfo } from '../types/index.js';
|
|
26
|
+
/**
|
|
27
|
+
* Consecutive rejections carrying ONE failure signature that mark the verify gate
|
|
28
|
+
* as stalled rather than converging.
|
|
29
|
+
*
|
|
30
|
+
* JUDGMENT CALL (recorded, reversible): 3 -- the same failure survived TWO re-work
|
|
31
|
+
* responses unchanged -- mirroring UNCLEARABLE_SHORTFALL_REPEAT_THRESHOLD, the
|
|
32
|
+
* sibling repetition discriminator for shortfalls. Deliberately NOT
|
|
33
|
+
* TELORA_VERIFY_FAILED_ITERATION_CAP: that knob counts cycles of ANY failure and
|
|
34
|
+
* remains the no-signature fallback; reusing it would conflate "failed N times"
|
|
35
|
+
* with "failed the same way N times". A daemon-local constant (not a TELORA_* env
|
|
36
|
+
* var) because a new env var needs a daemon-core publish; promote it there only if
|
|
37
|
+
* operators need to tune it live. Overridable per call for tests.
|
|
38
|
+
*/
|
|
39
|
+
export declare const VERIFY_GATE_STALL_REPEAT_THRESHOLD = 3;
|
|
40
|
+
type StallSubject = Pick<FocusDeliveryInfo, 'executionStatus' | 'iterationCount' | 'gateState'>;
|
|
41
|
+
/**
|
|
42
|
+
* True when `gateState.blocking` carries at least one guard verdict -- i.e. a
|
|
43
|
+
* guard is ACTUALLY rejecting the work right now.
|
|
44
|
+
*
|
|
45
|
+
* Only the `blocking` array counts. operatorHold / externalHold / shortfallProposalIds
|
|
46
|
+
* are carried OUTSIDE `blocking` (queries/delivery-gate-state.ts DeliveryGateState)
|
|
47
|
+
* because a hold is not a guard verdict. Treating operatorHold as a block here would
|
|
48
|
+
* reintroduce the very fixpoint the sibling operator-hold exclusion removes: the
|
|
49
|
+
* verify_gate_unclearable alarm writes gate_state with `blocking: []` + a populated
|
|
50
|
+
* operatorHold, and if that counted as "still blocking" the detector would keep
|
|
51
|
+
* re-firing on its own alarm. So the guard-verdict array is the sole live-block
|
|
52
|
+
* signal. (verify_evidence_unavailable DOES populate `blocking` with its own guard,
|
|
53
|
+
* but it consumes no iteration_count, so it can never by itself push over the cap.)
|
|
54
|
+
* Verification history carried across a guard-pass clear
|
|
55
|
+
* (gate_state.verificationHistory, carryVerificationHistory) is written beside an
|
|
56
|
+
* EMPTY `blocking` array, so a cleared gate carrying a signature run is never a
|
|
57
|
+
* live block. The repeat count survives the clear; the alarm still waits for the
|
|
58
|
+
* next real rejection.
|
|
59
|
+
*
|
|
60
|
+
* Defensive over the `unknown` gate_state shape (FocusDeliveryInfo.gateState). Pure.
|
|
61
|
+
*/
|
|
62
|
+
export declare function hasLiveBlockingGuard(gateState: unknown): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* The NO-SIGNATURE FALLBACK predicate: does this delivery exceed the verify_failed
|
|
65
|
+
* re-code cap AND is a guard still actively rejecting it?
|
|
66
|
+
*
|
|
67
|
+
* iteration_count is a MONOTONIC proxy for "the gate keeps rejecting this work",
|
|
68
|
+
* but the condition it proxies is NOT monotonic: the counter never decreases while
|
|
69
|
+
* the gate can go clear, so the LIVE gate must also show a blocking guard (observed
|
|
70
|
+
* 2026-07-26). It is also blind to WHAT is rejected, which is why it only decides
|
|
71
|
+
* when no failure signature is recorded (decideVerifyGateStall). A terminal
|
|
72
|
+
* delivery (done/cancelled) is never escalated -- it has stopped cycling. Pure.
|
|
73
|
+
*/
|
|
74
|
+
export declare function exceedsVerifyFailedCap(delivery: StallSubject, cap: number): boolean;
|
|
75
|
+
export type VerifyGateStallDecision = {
|
|
76
|
+
stalled: false;
|
|
77
|
+
} | {
|
|
78
|
+
stalled: true;
|
|
79
|
+
basis: 'repeated_signature';
|
|
80
|
+
signature: string;
|
|
81
|
+
consecutive: number;
|
|
82
|
+
threshold: number;
|
|
83
|
+
} | {
|
|
84
|
+
stalled: true;
|
|
85
|
+
basis: 'iteration_cap';
|
|
86
|
+
iterationCount: number;
|
|
87
|
+
cap: number;
|
|
88
|
+
};
|
|
89
|
+
export type VerifyGateStall = Extract<VerifyGateStallDecision, {
|
|
90
|
+
stalled: true;
|
|
91
|
+
}>;
|
|
92
|
+
/**
|
|
93
|
+
* Decide whether a delivery's verify gate is stalled (see the module doc). The
|
|
94
|
+
* signature path, when a signature is recorded, is AUTHORITATIVE: a delivery over
|
|
95
|
+
* the iteration cap whose failure keeps changing is converging, not stalled. Pure.
|
|
96
|
+
*/
|
|
97
|
+
export declare function decideVerifyGateStall(delivery: StallSubject, cap: number, repeatThreshold?: number): VerifyGateStallDecision;
|
|
98
|
+
export interface VerifyGateStallEscalationText {
|
|
99
|
+
description: string;
|
|
100
|
+
whatWasTried: string;
|
|
101
|
+
helpNeeded: string;
|
|
102
|
+
/** One-line reason for the daemon log. */
|
|
103
|
+
logSummary: string;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Build the verify_gate_unclearable escalation body for a stalled delivery. It
|
|
107
|
+
* asserts only what the evidence shows: the repeated signature and its consecutive
|
|
108
|
+
* count on the signature path; on the iteration-cap fallback, that the stall is
|
|
109
|
+
* inferred from a count alone and the delivery may still be converging. Pure.
|
|
110
|
+
*/
|
|
111
|
+
export declare function buildVerifyGateStallEscalation(focus: {
|
|
112
|
+
focusId: string;
|
|
113
|
+
focusName: string;
|
|
114
|
+
}, delivery: Pick<FocusDeliveryInfo, 'id' | 'name' | 'executionStatus' | 'iterationCount' | 'gateState'>, stall: VerifyGateStall): VerifyGateStallEscalationText;
|
|
115
|
+
export {};
|
|
116
|
+
//# sourceMappingURL=verify-gate-stall.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-gate-stall.d.ts","sourceRoot":"","sources":["../../src/verify/verify-gate-stall.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAI3D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kCAAkC,IAAI,CAAC;AAEpD,KAAK,YAAY,GAAG,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,gBAAgB,GAAG,WAAW,CAAC,CAAC;AA8BhG;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAIhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAInF;AAED,MAAM,MAAM,uBAAuB,GAC/B;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,GAClB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,oBAAoB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACzG;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,eAAe,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnF,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,uBAAuB,EAAE;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC;AAElF;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,YAAY,EACtB,GAAG,EAAE,MAAM,EACX,eAAe,GAAE,MAA2C,GAC3D,uBAAuB,CAYzB;AAED,MAAM,WAAW,6BAA6B;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAC7C,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,MAAM,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,WAAW,CAAC,EACrG,KAAK,EAAE,eAAe,GACrB,6BAA6B,CAuD/B"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: packages/daemon/src/focus/listener-auto-advance-guard-measure.test.ts,
|
|
3
|
+
// packages/daemon/src/integration/verification-history-round-trip.test.ts,
|
|
4
|
+
// packages/daemon/src/verify/stall-detectors.test.ts
|
|
5
|
+
// PINNED-BY-END
|
|
6
|
+
import { isStatusTerminal } from '../workflow/stage-classifier.js';
|
|
7
|
+
import { readRecordedSignatureRun } from './failure-signature.js';
|
|
8
|
+
/**
|
|
9
|
+
* Consecutive rejections carrying ONE failure signature that mark the verify gate
|
|
10
|
+
* as stalled rather than converging.
|
|
11
|
+
*
|
|
12
|
+
* JUDGMENT CALL (recorded, reversible): 3 -- the same failure survived TWO re-work
|
|
13
|
+
* responses unchanged -- mirroring UNCLEARABLE_SHORTFALL_REPEAT_THRESHOLD, the
|
|
14
|
+
* sibling repetition discriminator for shortfalls. Deliberately NOT
|
|
15
|
+
* TELORA_VERIFY_FAILED_ITERATION_CAP: that knob counts cycles of ANY failure and
|
|
16
|
+
* remains the no-signature fallback; reusing it would conflate "failed N times"
|
|
17
|
+
* with "failed the same way N times". A daemon-local constant (not a TELORA_* env
|
|
18
|
+
* var) because a new env var needs a daemon-core publish; promote it there only if
|
|
19
|
+
* operators need to tune it live. Overridable per call for tests.
|
|
20
|
+
*/
|
|
21
|
+
export const VERIFY_GATE_STALL_REPEAT_THRESHOLD = 3;
|
|
22
|
+
/** Render gate_state compactly for the escalation body. */
|
|
23
|
+
function formatGateState(gateState) {
|
|
24
|
+
if (gateState == null)
|
|
25
|
+
return '(none recorded)';
|
|
26
|
+
try {
|
|
27
|
+
return JSON.stringify(gateState);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return '(unserializable)';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The names of the guards currently in `gate_state.blocking`. Empty when the gate
|
|
35
|
+
* carries no live guard verdict. Used to make the escalation body assert only what
|
|
36
|
+
* the gate actually says (the detector only fires when a guard is live).
|
|
37
|
+
*/
|
|
38
|
+
function blockingGuardNames(gateState) {
|
|
39
|
+
if (gateState == null || typeof gateState !== 'object')
|
|
40
|
+
return [];
|
|
41
|
+
const blocking = gateState.blocking;
|
|
42
|
+
if (!Array.isArray(blocking))
|
|
43
|
+
return [];
|
|
44
|
+
return blocking
|
|
45
|
+
.map((b) => b && typeof b === 'object' && typeof b.guardName === 'string'
|
|
46
|
+
? b.guardName
|
|
47
|
+
: null)
|
|
48
|
+
.filter((n) => n !== null);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* True when `gateState.blocking` carries at least one guard verdict -- i.e. a
|
|
52
|
+
* guard is ACTUALLY rejecting the work right now.
|
|
53
|
+
*
|
|
54
|
+
* Only the `blocking` array counts. operatorHold / externalHold / shortfallProposalIds
|
|
55
|
+
* are carried OUTSIDE `blocking` (queries/delivery-gate-state.ts DeliveryGateState)
|
|
56
|
+
* because a hold is not a guard verdict. Treating operatorHold as a block here would
|
|
57
|
+
* reintroduce the very fixpoint the sibling operator-hold exclusion removes: the
|
|
58
|
+
* verify_gate_unclearable alarm writes gate_state with `blocking: []` + a populated
|
|
59
|
+
* operatorHold, and if that counted as "still blocking" the detector would keep
|
|
60
|
+
* re-firing on its own alarm. So the guard-verdict array is the sole live-block
|
|
61
|
+
* signal. (verify_evidence_unavailable DOES populate `blocking` with its own guard,
|
|
62
|
+
* but it consumes no iteration_count, so it can never by itself push over the cap.)
|
|
63
|
+
* Verification history carried across a guard-pass clear
|
|
64
|
+
* (gate_state.verificationHistory, carryVerificationHistory) is written beside an
|
|
65
|
+
* EMPTY `blocking` array, so a cleared gate carrying a signature run is never a
|
|
66
|
+
* live block. The repeat count survives the clear; the alarm still waits for the
|
|
67
|
+
* next real rejection.
|
|
68
|
+
*
|
|
69
|
+
* Defensive over the `unknown` gate_state shape (FocusDeliveryInfo.gateState). Pure.
|
|
70
|
+
*/
|
|
71
|
+
export function hasLiveBlockingGuard(gateState) {
|
|
72
|
+
if (gateState == null || typeof gateState !== 'object')
|
|
73
|
+
return false;
|
|
74
|
+
const blocking = gateState.blocking;
|
|
75
|
+
return Array.isArray(blocking) && blocking.length > 0;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* The NO-SIGNATURE FALLBACK predicate: does this delivery exceed the verify_failed
|
|
79
|
+
* re-code cap AND is a guard still actively rejecting it?
|
|
80
|
+
*
|
|
81
|
+
* iteration_count is a MONOTONIC proxy for "the gate keeps rejecting this work",
|
|
82
|
+
* but the condition it proxies is NOT monotonic: the counter never decreases while
|
|
83
|
+
* the gate can go clear, so the LIVE gate must also show a blocking guard (observed
|
|
84
|
+
* 2026-07-26). It is also blind to WHAT is rejected, which is why it only decides
|
|
85
|
+
* when no failure signature is recorded (decideVerifyGateStall). A terminal
|
|
86
|
+
* delivery (done/cancelled) is never escalated -- it has stopped cycling. Pure.
|
|
87
|
+
*/
|
|
88
|
+
export function exceedsVerifyFailedCap(delivery, cap) {
|
|
89
|
+
if (isStatusTerminal(delivery.executionStatus ?? ''))
|
|
90
|
+
return false;
|
|
91
|
+
if ((delivery.iterationCount ?? 0) <= cap)
|
|
92
|
+
return false;
|
|
93
|
+
return hasLiveBlockingGuard(delivery.gateState);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Decide whether a delivery's verify gate is stalled (see the module doc). The
|
|
97
|
+
* signature path, when a signature is recorded, is AUTHORITATIVE: a delivery over
|
|
98
|
+
* the iteration cap whose failure keeps changing is converging, not stalled. Pure.
|
|
99
|
+
*/
|
|
100
|
+
export function decideVerifyGateStall(delivery, cap, repeatThreshold = VERIFY_GATE_STALL_REPEAT_THRESHOLD) {
|
|
101
|
+
if (isStatusTerminal(delivery.executionStatus ?? ''))
|
|
102
|
+
return { stalled: false };
|
|
103
|
+
if (!hasLiveBlockingGuard(delivery.gateState))
|
|
104
|
+
return { stalled: false };
|
|
105
|
+
const run = readRecordedSignatureRun(delivery.gateState);
|
|
106
|
+
if (run) {
|
|
107
|
+
return run.consecutive >= repeatThreshold
|
|
108
|
+
? { stalled: true, basis: 'repeated_signature', signature: run.signature, consecutive: run.consecutive, threshold: repeatThreshold }
|
|
109
|
+
: { stalled: false };
|
|
110
|
+
}
|
|
111
|
+
return exceedsVerifyFailedCap(delivery, cap)
|
|
112
|
+
? { stalled: true, basis: 'iteration_cap', iterationCount: delivery.iterationCount ?? 0, cap }
|
|
113
|
+
: { stalled: false };
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Build the verify_gate_unclearable escalation body for a stalled delivery. It
|
|
117
|
+
* asserts only what the evidence shows: the repeated signature and its consecutive
|
|
118
|
+
* count on the signature path; on the iteration-cap fallback, that the stall is
|
|
119
|
+
* inferred from a count alone and the delivery may still be converging. Pure.
|
|
120
|
+
*/
|
|
121
|
+
export function buildVerifyGateStallEscalation(focus, delivery, stall) {
|
|
122
|
+
const guards = blockingGuardNames(delivery.gateState);
|
|
123
|
+
const guardClause = guards.length
|
|
124
|
+
? `The verify gate is currently blocking on: ${guards.join(', ')}.`
|
|
125
|
+
: `The verify gate is currently blocking (see gate_state).`;
|
|
126
|
+
const iterationCount = delivery.iterationCount ?? 0;
|
|
127
|
+
const facts = `**Focus:** ${focus.focusName}\n` +
|
|
128
|
+
`**Focus ID:** ${focus.focusId}\n` +
|
|
129
|
+
`**Delivery:** "${delivery.name}" (${delivery.id})\n` +
|
|
130
|
+
`**Status:** ${delivery.executionStatus ?? 'unknown'}\n` +
|
|
131
|
+
`**iteration_count:** ${iterationCount}\n`;
|
|
132
|
+
const footer = `**gate_state:** ${formatGateState(delivery.gateState)}\n\n` +
|
|
133
|
+
`Inspect the gate_state / last failing condition above (gate_state.verification.logPath ` +
|
|
134
|
+
`holds the full run log). See docs/runbook-verify-gate.md.`;
|
|
135
|
+
const helpNeeded = `Read the failing condition (gate_state.verification.logPath) and fix the defect on the ` +
|
|
136
|
+
`focus branch -- the prior re-work did not change what fails. If the gate itself must be ` +
|
|
137
|
+
`relaxed, or the delivery cannot pass and must be cancelled, that is an authority act: ` +
|
|
138
|
+
`escalate naming it.`;
|
|
139
|
+
if (stall.basis === 'repeated_signature') {
|
|
140
|
+
return {
|
|
141
|
+
description: `Delivery "${delivery.name}" failed the verify gate with the SAME failure signature on ` +
|
|
142
|
+
`${stall.consecutive} consecutive re-code cycles (threshold ${stall.threshold}): ` +
|
|
143
|
+
`${stall.signature}. ${guardClause} The re-work between those cycles did not change ` +
|
|
144
|
+
`what fails, so another automatic cycle is unlikely to clear it.\n\n` +
|
|
145
|
+
facts +
|
|
146
|
+
`**failure signature:** ${stall.signature} (${stall.consecutive} consecutive)\n` +
|
|
147
|
+
footer,
|
|
148
|
+
whatWasTried: `The delivery was re-queued for re-work after each rejection; its last ${stall.consecutive} ` +
|
|
149
|
+
`verify runs failed with an identical failure signature (timings, line counts, paths and ` +
|
|
150
|
+
`other volatile detail normalized away).`,
|
|
151
|
+
helpNeeded,
|
|
152
|
+
logSummary: `failure signature ${stall.signature} repeated ${stall.consecutive}x >= threshold ${stall.threshold}`,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
return {
|
|
156
|
+
description: `Delivery "${delivery.name}" has been through ${iterationCount} verify_failed re-code cycles ` +
|
|
157
|
+
`(cap ${stall.cap}) without clearing the verify gate. ${guardClause} No failure signature is ` +
|
|
158
|
+
`recorded for its latest rejection (a legacy gate_state, a non-deterministic hold, or an ` +
|
|
159
|
+
`unparseable verification log), so this stall is inferred from the cycle count alone -- the ` +
|
|
160
|
+
`delivery may still be converging through different failures.\n\n` +
|
|
161
|
+
facts +
|
|
162
|
+
footer,
|
|
163
|
+
whatWasTried: `The delivery re-entered verify_failed ${iterationCount} times; each verify pass was ` +
|
|
164
|
+
`rejected by the gate and re-queued.`,
|
|
165
|
+
helpNeeded,
|
|
166
|
+
logSummary: `iteration_count ${iterationCount} > cap ${stall.cap}; no failure signature recorded`,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=verify-gate-stall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-gate-stall.js","sourceRoot":"","sources":["../../src/verify/verify-gate-stall.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-restatement.d.ts","sourceRoot":"","sources":["../../src/verify/verify-restatement.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verify-restatement.d.ts","sourceRoot":"","sources":["../../src/verify/verify-restatement.ts"],"names":[],"mappings":"AAuCA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAErB,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AASpC,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,OAAO,GAAG,uBAAuB,CAAC;IAClD,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,uFAAuF;AACvF,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,kEAAkE;IAClE,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,gEAAgE;IAChE,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,WAAW,GAAG,CACxB,MAAM,EAAE,eAAe,EACvB,IAAI,CAAC,EAAE,gBAAgB,KACpB,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEhC,MAAM,WAAW,4BAA4B;IAC3C,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9E,oGAAoG;IACpG,SAAS,CAAC,EAAE,WAAW,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,wBAAwB,CAC5C,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,QAAQ,EAAE,cAAc,EACxB,IAAI,GAAE,4BAAiC,EACvC,kBAAkB,UAAQ,GACzB,OAAO,CAAC,sBAAsB,CAAC,CA6GjC"}
|
|
@@ -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/
|
|
2
|
+
// Pinned by: packages/daemon/src/integration/verification-history-round-trip.test.ts,
|
|
3
|
+
// packages/daemon/src/verify/shortfall-inward-proposal.test.ts,
|
|
3
4
|
// packages/daemon/src/verify/shortfall-repeat.test.ts,
|
|
4
5
|
// packages/daemon/src/verify/shortfall-routing.test.ts,
|
|
5
6
|
// packages/daemon/src/verify/verification-feedback.test.ts,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-restatement.js","sourceRoot":"","sources":["../../src/verify/verify-restatement.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,
|
|
1
|
+
{"version":3,"file":"verify-restatement.js","sourceRoot":"","sources":["../../src/verify/verify-restatement.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.22.
|
|
3
|
+
"version": "0.22.91",
|
|
4
4
|
"description": "Agent orchestration daemon for Telora - spawns and manages Claude Code instances",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
},
|
|
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
|
-
"@telora/daemon-core": "^0.2.
|
|
41
|
-
"@telora/mcp-products": "^0.22.
|
|
40
|
+
"@telora/daemon-core": "^0.2.97",
|
|
41
|
+
"@telora/mcp-products": "^0.22.147",
|
|
42
42
|
"commander": "^14.0.3",
|
|
43
43
|
"yaml": "^2.4.0",
|
|
44
44
|
"zod": "^4.3.6"
|