@telora/daemon 0.21.98 → 0.21.134
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 +6 -3
- package/dist/audit/audit-hooks.d.ts +106 -0
- package/dist/audit/audit-hooks.d.ts.map +1 -1
- package/dist/audit/audit-hooks.js +149 -17
- package/dist/audit/audit-hooks.js.map +1 -1
- package/dist/ci/ci-sensor-loop.d.ts +6 -0
- package/dist/ci/ci-sensor-loop.d.ts.map +1 -1
- package/dist/ci/ci-sensor-loop.js +50 -3
- package/dist/ci/ci-sensor-loop.js.map +1 -1
- package/dist/completion/coverage-drift-state.d.ts +29 -2
- package/dist/completion/coverage-drift-state.d.ts.map +1 -1
- package/dist/completion/coverage-drift-state.js +42 -2
- package/dist/completion/coverage-drift-state.js.map +1 -1
- package/dist/completion/coverage-stabilized.d.ts +58 -0
- package/dist/completion/coverage-stabilized.d.ts.map +1 -0
- package/dist/completion/coverage-stabilized.js +84 -0
- package/dist/completion/coverage-stabilized.js.map +1 -0
- package/dist/completion/delivery-advancement-guard.d.ts +21 -0
- package/dist/completion/delivery-advancement-guard.d.ts.map +1 -1
- package/dist/completion/delivery-advancement-guard.js +31 -3
- package/dist/completion/delivery-advancement-guard.js.map +1 -1
- package/dist/completion/event-escalations.d.ts +15 -0
- package/dist/completion/event-escalations.d.ts.map +1 -1
- package/dist/completion/event-escalations.js +42 -4
- package/dist/completion/event-escalations.js.map +1 -1
- package/dist/completion/event-phases.d.ts.map +1 -1
- package/dist/completion/event-phases.js +5 -2
- package/dist/completion/event-phases.js.map +1 -1
- package/dist/completion/machine-remediable-demotion.d.ts +74 -0
- package/dist/completion/machine-remediable-demotion.d.ts.map +1 -0
- package/dist/completion/machine-remediable-demotion.js +147 -0
- package/dist/completion/machine-remediable-demotion.js.map +1 -0
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +10 -6
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/settle-injection-sweep.d.ts +55 -0
- package/dist/completion/settle-injection-sweep.d.ts.map +1 -0
- package/dist/completion/settle-injection-sweep.js +88 -0
- package/dist/completion/settle-injection-sweep.js.map +1 -0
- package/dist/completion/state-cascade.d.ts.map +1 -1
- package/dist/completion/state-cascade.js +41 -0
- package/dist/completion/state-cascade.js.map +1 -1
- package/dist/completion/status-advance-phase.d.ts.map +1 -1
- package/dist/completion/status-advance-phase.js +18 -1
- package/dist/completion/status-advance-phase.js.map +1 -1
- package/dist/completion/team-lifecycle.d.ts +42 -0
- package/dist/completion/team-lifecycle.d.ts.map +1 -1
- package/dist/completion/team-lifecycle.js +71 -0
- package/dist/completion/team-lifecycle.js.map +1 -1
- package/dist/delivery/delivery-lifecycle.d.ts +19 -33
- package/dist/delivery/delivery-lifecycle.d.ts.map +1 -1
- package/dist/delivery/delivery-lifecycle.js +19 -147
- package/dist/delivery/delivery-lifecycle.js.map +1 -1
- package/dist/delivery/delivery-merge-ops.d.ts +46 -0
- package/dist/delivery/delivery-merge-ops.d.ts.map +1 -0
- package/dist/delivery/delivery-merge-ops.js +154 -0
- package/dist/delivery/delivery-merge-ops.js.map +1 -0
- package/dist/delivery/delivery-reconciler-apply.d.ts +28 -0
- package/dist/delivery/delivery-reconciler-apply.d.ts.map +1 -1
- package/dist/delivery/delivery-reconciler-apply.js +30 -0
- package/dist/delivery/delivery-reconciler-apply.js.map +1 -1
- package/dist/delivery/delivery-reconciler.d.ts +7 -2
- package/dist/delivery/delivery-reconciler.d.ts.map +1 -1
- package/dist/delivery/delivery-reconciler.js +34 -5
- package/dist/delivery/delivery-reconciler.js.map +1 -1
- package/dist/delivery/external-hold-surface.d.ts +32 -0
- package/dist/delivery/external-hold-surface.d.ts.map +1 -0
- package/dist/delivery/external-hold-surface.js +67 -0
- package/dist/delivery/external-hold-surface.js.map +1 -0
- package/dist/delivery/external-hold.d.ts +21 -0
- package/dist/delivery/external-hold.d.ts.map +1 -1
- package/dist/delivery/external-hold.js +40 -5
- package/dist/delivery/external-hold.js.map +1 -1
- package/dist/delivery/paused-revival.d.ts +140 -0
- package/dist/delivery/paused-revival.d.ts.map +1 -0
- package/dist/delivery/paused-revival.js +229 -0
- package/dist/delivery/paused-revival.js.map +1 -0
- package/dist/delivery/wait-reachability.d.ts.map +1 -1
- package/dist/delivery/wait-reachability.js +11 -0
- package/dist/delivery/wait-reachability.js.map +1 -1
- package/dist/directive/close-loop-dispatcher.d.ts +16 -263
- package/dist/directive/close-loop-dispatcher.d.ts.map +1 -1
- package/dist/directive/close-loop-dispatcher.js +21 -259
- package/dist/directive/close-loop-dispatcher.js.map +1 -1
- package/dist/directive/directive-dispatch.d.ts +19 -0
- package/dist/directive/directive-dispatch.d.ts.map +1 -1
- package/dist/directive/directive-dispatch.js +18 -0
- package/dist/directive/directive-dispatch.js.map +1 -1
- package/dist/directive/directive-executor.d.ts +1 -3
- package/dist/directive/directive-executor.d.ts.map +1 -1
- package/dist/directive/directive-executor.js +23 -21
- package/dist/directive/directive-executor.js.map +1 -1
- package/dist/directive/phase-sync.d.ts +28 -15
- package/dist/directive/phase-sync.d.ts.map +1 -1
- package/dist/directive/phase-sync.js +28 -36
- package/dist/directive/phase-sync.js.map +1 -1
- package/dist/directive/resolver-dispatch.d.ts +19 -92
- package/dist/directive/resolver-dispatch.d.ts.map +1 -1
- package/dist/directive/resolver-dispatch.js +19 -65
- package/dist/directive/resolver-dispatch.js.map +1 -1
- package/dist/focus/focus-engine.d.ts.map +1 -1
- package/dist/focus/focus-engine.js +26 -0
- package/dist/focus/focus-engine.js.map +1 -1
- package/dist/focus/focus-executor.d.ts.map +1 -1
- package/dist/focus/focus-executor.js +290 -256
- 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 +43 -1
- 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 +11 -2
- package/dist/focus/focus-respawn-guard.js.map +1 -1
- package/dist/focus/focus-team-state.d.ts +11 -0
- package/dist/focus/focus-team-state.d.ts.map +1 -1
- package/dist/focus/focus-team-state.js +17 -0
- package/dist/focus/focus-team-state.js.map +1 -1
- package/dist/focus/listener-auto-advance.d.ts +13 -1
- package/dist/focus/listener-auto-advance.d.ts.map +1 -1
- package/dist/focus/listener-auto-advance.js +103 -22
- package/dist/focus/listener-auto-advance.js.map +1 -1
- package/dist/focus/listener.d.ts.map +1 -1
- package/dist/focus/listener.js +125 -75
- package/dist/focus/listener.js.map +1 -1
- package/dist/focus/tick-deadline.d.ts +55 -0
- package/dist/focus/tick-deadline.d.ts.map +1 -0
- package/dist/focus/tick-deadline.js +91 -0
- package/dist/focus/tick-deadline.js.map +1 -0
- package/dist/focus-stage-lifecycle/index.d.ts +18 -25
- package/dist/focus-stage-lifecycle/index.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/index.js +26 -38
- package/dist/focus-stage-lifecycle/index.js.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-cause-arbiter.d.ts +52 -0
- package/dist/focus-stage-lifecycle/wedge-cause-arbiter.d.ts.map +1 -0
- package/dist/focus-stage-lifecycle/wedge-cause-arbiter.js +94 -0
- package/dist/focus-stage-lifecycle/wedge-cause-arbiter.js.map +1 -0
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts +18 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.js +57 -7
- package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
- package/dist/guard/condition-evaluators.d.ts +9 -0
- package/dist/guard/condition-evaluators.d.ts.map +1 -1
- package/dist/guard/condition-evaluators.js +15 -0
- package/dist/guard/condition-evaluators.js.map +1 -1
- package/dist/guard/guard-evaluator.d.ts +17 -1
- package/dist/guard/guard-evaluator.d.ts.map +1 -1
- package/dist/guard/guard-evaluator.js +61 -2
- package/dist/guard/guard-evaluator.js.map +1 -1
- package/dist/guard/trigger-executor.d.ts +30 -18
- package/dist/guard/trigger-executor.d.ts.map +1 -1
- package/dist/guard/trigger-executor.js +55 -31
- package/dist/guard/trigger-executor.js.map +1 -1
- package/dist/prompt/team-prompt-base.d.ts +1 -1
- package/dist/prompt/team-prompt-base.d.ts.map +1 -1
- package/dist/prompt/team-prompt-base.js +1 -1
- package/dist/prompt/team-prompt-base.js.map +1 -1
- package/dist/prompt-sections/persona-sections.d.ts +0 -32
- package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
- package/dist/prompt-sections/persona-sections.js +19 -88
- package/dist/prompt-sections/persona-sections.js.map +1 -1
- package/dist/queries/deliveries.d.ts +23 -0
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +6 -0
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/focuses.d.ts +36 -0
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +45 -0
- package/dist/queries/focuses.js.map +1 -1
- package/dist/queries/guards.d.ts +10 -0
- package/dist/queries/guards.d.ts.map +1 -1
- package/dist/queries/guards.js +14 -1
- package/dist/queries/guards.js.map +1 -1
- package/dist/queries/issues.d.ts +65 -1
- package/dist/queries/issues.d.ts.map +1 -1
- package/dist/queries/issues.js +135 -2
- package/dist/queries/issues.js.map +1 -1
- package/dist/queries/schemas.d.ts +51 -0
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +34 -0
- package/dist/queries/schemas.js.map +1 -1
- package/dist/queries/verification.d.ts +5 -6
- package/dist/queries/verification.d.ts.map +1 -1
- package/dist/queries/verification.js +5 -6
- package/dist/queries/verification.js.map +1 -1
- package/dist/resolvers/loop-persona.d.ts +1 -11
- package/dist/resolvers/loop-persona.d.ts.map +1 -1
- package/dist/resolvers/loop-persona.js +2 -16
- package/dist/resolvers/loop-persona.js.map +1 -1
- package/dist/shell/unified-shell-provisioning.d.ts +40 -0
- package/dist/shell/unified-shell-provisioning.d.ts.map +1 -1
- package/dist/shell/unified-shell-provisioning.js +72 -0
- package/dist/shell/unified-shell-provisioning.js.map +1 -1
- package/dist/shell/unified-shell.d.ts.map +1 -1
- package/dist/shell/unified-shell.js +18 -1
- package/dist/shell/unified-shell.js.map +1 -1
- package/dist/spawn/helpers.d.ts.map +1 -1
- package/dist/spawn/helpers.js +6 -1
- package/dist/spawn/helpers.js.map +1 -1
- package/dist/spawn/process-spawn.d.ts.map +1 -1
- package/dist/spawn/process-spawn.js +7 -0
- package/dist/spawn/process-spawn.js.map +1 -1
- package/dist/spawn/spawn-cooldown.d.ts +41 -7
- package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
- package/dist/spawn/spawn-cooldown.js +47 -0
- package/dist/spawn/spawn-cooldown.js.map +1 -1
- package/dist/spawn/spawn-decision.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.js +33 -1
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/verify/stall-detectors.d.ts +20 -8
- package/dist/verify/stall-detectors.d.ts.map +1 -1
- package/dist/verify/stall-detectors.js +27 -46
- package/dist/verify/stall-detectors.js.map +1 -1
- package/dist/workflow/gate-failure-policy.d.ts +48 -0
- package/dist/workflow/gate-failure-policy.d.ts.map +1 -0
- package/dist/workflow/gate-failure-policy.js +57 -0
- package/dist/workflow/gate-failure-policy.js.map +1 -0
- package/dist/workflow/pipeline-config.d.ts +2 -2
- package/dist/workflow/pipeline-config.js +2 -2
- package/package.json +1 -1
- package/dist/directive/close-loop-stage.d.ts +0 -50
- package/dist/directive/close-loop-stage.d.ts.map +0 -1
- package/dist/directive/close-loop-stage.js +0 -210
- package/dist/directive/close-loop-stage.js.map +0 -1
- package/dist/focus-stage-lifecycle/review-convergence.d.ts +0 -133
- package/dist/focus-stage-lifecycle/review-convergence.d.ts.map +0 -1
- package/dist/focus-stage-lifecycle/review-convergence.js +0 -237
- package/dist/focus-stage-lifecycle/review-convergence.js.map +0 -1
|
@@ -4,6 +4,47 @@ const log = createLogger({ module: 'spawn-cooldown' });
|
|
|
4
4
|
const teardownTimestamps = new Map();
|
|
5
5
|
const SPAWN_COOLDOWN_BASE_MS = 60_000; // 1 minute base cooldown
|
|
6
6
|
const SPAWN_COOLDOWN_MAX_MS = 10 * 60_000; // 10 minute max cooldown
|
|
7
|
+
let persister = null;
|
|
8
|
+
/** Register (or clear, with null) the durable write-through persister at boot. */
|
|
9
|
+
export function setSpawnCooldownPersister(fn) {
|
|
10
|
+
persister = fn;
|
|
11
|
+
}
|
|
12
|
+
/** Map a live in-memory entry to its durable shape for the persister. */
|
|
13
|
+
function toDurable(entry) {
|
|
14
|
+
return {
|
|
15
|
+
firstAt: new Date(entry.firstTime).toISOString(),
|
|
16
|
+
lastAt: new Date(entry.time).toISOString(),
|
|
17
|
+
count: entry.count,
|
|
18
|
+
exhausted: entry.exhausted,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/** The durable state written on clearSpawnCooldown: the streak fully reset. */
|
|
22
|
+
const CLEARED_DURABLE = { firstAt: null, lastAt: null, count: 0, exhausted: false };
|
|
23
|
+
/**
|
|
24
|
+
* Restore a focus's teardown streak + `exhausted` latch from its persisted
|
|
25
|
+
* columns, the FIRST time the daemon sees the focus after a (re-)start. Idempotent
|
|
26
|
+
* and non-clobbering: an entry already tracked in memory this run always wins
|
|
27
|
+
* (hydrate never overwrites a live increment), and a focus with no persisted
|
|
28
|
+
* streak (count 0, not exhausted) is left untracked. This is what makes a halt
|
|
29
|
+
* stay halted and a spent budget stay spent across a daemon re-exec.
|
|
30
|
+
*/
|
|
31
|
+
export function hydrateSpawnCooldownEntry(focusId, state) {
|
|
32
|
+
if (teardownTimestamps.has(focusId))
|
|
33
|
+
return; // in-memory wins during a run
|
|
34
|
+
if (state.count <= 0 && !state.exhausted)
|
|
35
|
+
return; // no streak to restore
|
|
36
|
+
const now = Date.now();
|
|
37
|
+
const parsedFirst = state.firstAt ? Date.parse(state.firstAt) : now;
|
|
38
|
+
const parsedLast = state.lastAt ? Date.parse(state.lastAt) : now;
|
|
39
|
+
teardownTimestamps.set(focusId, {
|
|
40
|
+
firstTime: Number.isNaN(parsedFirst) ? now : parsedFirst,
|
|
41
|
+
time: Number.isNaN(parsedLast) ? now : parsedLast,
|
|
42
|
+
// An exhausted latch with a lost count still counts as at least one teardown
|
|
43
|
+
// so isInSpawnCooldown/backoff math stays well-defined.
|
|
44
|
+
count: Math.max(state.count, state.exhausted ? 1 : 0),
|
|
45
|
+
exhausted: state.exhausted,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
7
48
|
// Entries older than 2x the max cooldown window are definitely expired
|
|
8
49
|
const COOLDOWN_CLEANUP_THRESHOLD_MS = 2 * SPAWN_COOLDOWN_MAX_MS;
|
|
9
50
|
/** Resolve the terminating bounds from env-config (hours -> ms). */
|
|
@@ -63,6 +104,8 @@ export function recordFocusTeardown(focusId) {
|
|
|
63
104
|
const exhausted = wasExhausted || isRespawnCycleExhausted({ firstTime, count }, now, resolveRespawnCycleBounds());
|
|
64
105
|
const entry = { firstTime, time: now, count, exhausted };
|
|
65
106
|
teardownTimestamps.set(focusId, entry);
|
|
107
|
+
// Write-through so the streak + latch survive a daemon re-exec (best-effort).
|
|
108
|
+
persister?.(focusId, toDurable(entry));
|
|
66
109
|
const cooldownMs = Math.min(SPAWN_COOLDOWN_BASE_MS * Math.pow(2, count - 1), SPAWN_COOLDOWN_MAX_MS);
|
|
67
110
|
if (exhausted && !wasExhausted) {
|
|
68
111
|
log.warn(`Focus ${focusId} respawn cycle EXHAUSTED (count=${count}, ` +
|
|
@@ -112,5 +155,9 @@ export function isInSpawnCooldown(focusId) {
|
|
|
112
155
|
/** Clear cooldown for a focus (e.g. after successful long-running session). */
|
|
113
156
|
export function clearSpawnCooldown(focusId) {
|
|
114
157
|
teardownTimestamps.delete(focusId);
|
|
158
|
+
// Write-through the cleared state so genuine progress un-halts the focus
|
|
159
|
+
// durably: without this a persisted `exhausted` latch would be re-hydrated on
|
|
160
|
+
// the next restart and re-halt a focus that had already recovered.
|
|
161
|
+
persister?.(focusId, CLEARED_DURABLE);
|
|
115
162
|
}
|
|
116
163
|
//# sourceMappingURL=spawn-cooldown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-cooldown.js","sourceRoot":"","sources":["../../src/spawn/spawn-cooldown.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,oCAAoC,CAAC;AAE5C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"spawn-cooldown.js","sourceRoot":"","sources":["../../src/spawn/spawn-cooldown.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-decision.d.ts","sourceRoot":"","sources":["../../src/spawn/spawn-decision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACT,cAAc,EACd,cAAc,EACf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,kBAAkB,EAClB,cAAc,EAGf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,4BAA4B,EAI7B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAA2D,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAMtI,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"spawn-decision.d.ts","sourceRoot":"","sources":["../../src/spawn/spawn-decision.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,8 +20,9 @@ import { resolveAnsweredEscalations } from '../resolvers/escalation-answers.js';
|
|
|
20
20
|
import { resolveLineageSpec, resolveResumeId } from '../session/session-lineage.js';
|
|
21
21
|
import { resolveScopingSpawnResume } from './prompt-assembly.js';
|
|
22
22
|
import { resolveFocusMilestoneContext } from '../prd/index.js';
|
|
23
|
-
import { isStatusAgentActionable, isStatusBlocking } from '../workflow/stage-classifier.js';
|
|
23
|
+
import { isStatusAgentActionable, isStatusBlocking, isStatusTerminal } from '../workflow/stage-classifier.js';
|
|
24
24
|
import { createLogger } from '../shell/log.js';
|
|
25
|
+
import { scanForContradictions, formatContradictions } from '../prompt/prompt-contradictions.js';
|
|
25
26
|
const log = createLogger({ module: 'focus-executor' });
|
|
26
27
|
/**
|
|
27
28
|
* Default loop-context assembly recipe for a focus-team spawn.
|
|
@@ -218,6 +219,22 @@ export function resolveActionableDeliveries(args) {
|
|
|
218
219
|
teamState.lastConsumedDirectiveHash = pendingDirective.contentHash;
|
|
219
220
|
teamState.sessionType = pendingDirective.sessionType;
|
|
220
221
|
}
|
|
222
|
+
// TEL (delivery 5): a focus whose deliveries are ALL terminal (done/cancelled)
|
|
223
|
+
// has nothing to act on -- no coding work, no review to run (a review focus
|
|
224
|
+
// sits in verify, which is NOT terminal). Even a pending directive must not
|
|
225
|
+
// spawn a team here: this is the no-actionable-work floor the pendingDirective
|
|
226
|
+
// branch below otherwise bypasses (it does NOT return 'skip'), so a terminal
|
|
227
|
+
// focus that acquired an inject directive spawns a full team with nothing to
|
|
228
|
+
// do -- once per daemon restart. The forceSpawn escalation-answer path is
|
|
229
|
+
// EXEMPT (it deliberately spawns an exited/all-terminal focus to consume a
|
|
230
|
+
// pending answer via the escalation.answers resolver), so it is guarded out
|
|
231
|
+
// below. A directive we just consumed is discarded with the skip; the terminal
|
|
232
|
+
// focus produces no work next tick either, so nothing is stranded.
|
|
233
|
+
if (!forceSpawn && deliveries.length > 0 && deliveries.every(d => isStatusTerminal(d.executionStatus ?? ''))) {
|
|
234
|
+
log.info(`[focus-executor] Focus "${focusName}" has only terminal deliveries -- skipping spawn ` +
|
|
235
|
+
`(no actionable work; a terminal focus stays quiet)`);
|
|
236
|
+
return { kind: 'skip' };
|
|
237
|
+
}
|
|
221
238
|
// Pre-spawn guard: enforce rank-ordered execution.
|
|
222
239
|
// Skip when a pending spawn directive exists -- the directive has its own intent.
|
|
223
240
|
let actionableDeliveries = [];
|
|
@@ -434,6 +451,21 @@ export async function resolveDirectiveOrFallback(args) {
|
|
|
434
451
|
useLegacyFullPrompt = true;
|
|
435
452
|
}
|
|
436
453
|
}
|
|
454
|
+
// Mechanical scan of the DB-seeded directive body actually reaching this spawn
|
|
455
|
+
// (delivery 6 TEL-5): prompt-contradictions was previously tests-only, so a
|
|
456
|
+
// contradictory seeded stage directive (an action-suffixed telora_* tool name,
|
|
457
|
+
// a team-facing stage-advancement mandate, or a "database trigger" mechanism
|
|
458
|
+
// claim) reached a live team UNSCANNED. Surface each contradiction as a warning
|
|
459
|
+
// -- NOT a hard fail: blocking the spawn would wedge the focus, the exact
|
|
460
|
+
// absorbing state this focus exists to remove. The seeded-directive defect is
|
|
461
|
+
// now visible and fixable at its source (the migration) instead of silently
|
|
462
|
+
// mis-steering the team.
|
|
463
|
+
if (directiveBody) {
|
|
464
|
+
const contradictions = scanForContradictions(directiveBody);
|
|
465
|
+
if (contradictions.length > 0) {
|
|
466
|
+
log.warn(formatContradictions(`stage directive for "${focusName}"`, contradictions));
|
|
467
|
+
}
|
|
468
|
+
}
|
|
437
469
|
return { directiveBody, directiveModel, directiveEngine, directiveLocalModel, pendingFocusOverrideModel, spawnStageName, spawnDirectiveDeclared, useLegacyFullPrompt };
|
|
438
470
|
}
|
|
439
471
|
//# sourceMappingURL=spawn-decision.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-decision.js","sourceRoot":"","sources":["../../src/spawn/spawn-decision.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spawn-decision.js","sourceRoot":"","sources":["../../src/spawn/spawn-decision.ts"],"names":[],"mappings":"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"}
|
|
@@ -109,11 +109,14 @@ export declare function exceedsVerifyFailedCap(delivery: Pick<FocusDeliveryInfo,
|
|
|
109
109
|
export declare function checkVerifyFailedCapForFocus(ctx: FocusStallContext, deliveries: FocusDeliveryInfo[], deps?: VerifyFailedCapDeps): Promise<void>;
|
|
110
110
|
export interface ReviewWindowDeps {
|
|
111
111
|
/**
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
* review
|
|
112
|
+
* Clear the focus's stale review window (review_requested_at = null). The
|
|
113
|
+
* daemon OWNS this act -- queries/focuses.ts clearReviewRequestedAt, already
|
|
114
|
+
* called from the review-exit paths -- so a stale window it detects is cleared
|
|
115
|
+
* by the daemon itself (TEL, delivery 7), not handed to an operator via an
|
|
116
|
+
* escalation that merely names `telora_product_focus update
|
|
117
|
+
* clearReviewRequest=true`. Injected for tests. Defaults to clearReviewRequestedAt.
|
|
115
118
|
*/
|
|
116
|
-
|
|
119
|
+
clearReviewWindow: (focusId: string) => Promise<void>;
|
|
117
120
|
/** Focus IDs that currently have a REVIEW team PRESENT. Defaults to live teams. */
|
|
118
121
|
activeReviewFocusIds: () => Set<string>;
|
|
119
122
|
/**
|
|
@@ -163,10 +166,19 @@ export declare function isReviewGenuinelyActive(hasReviewTeam: boolean, lastRevi
|
|
|
163
166
|
*/
|
|
164
167
|
export declare function isReviewWindowStale(reviewRequestedAt: string | null, reviewGenuinelyActive: boolean, nowMs: number, thresholdMs: number): boolean;
|
|
165
168
|
/**
|
|
166
|
-
* Check ONE focus for a stale review window and
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
*
|
|
169
|
+
* Check ONE focus for a stale review window and, when stale, CLEAR it -- the
|
|
170
|
+
* daemon owns the clearing act (clearReviewRequestedAt), so it does not file a
|
|
171
|
+
* needs_operator escalation that merely names the same operator MCP call
|
|
172
|
+
* (`clearReviewRequest=true`) it could perform itself (TEL, delivery 7). The
|
|
173
|
+
* caller (runCascadeChecks) passes the focus's review_requested_at, so this
|
|
174
|
+
* rides the existing review-handling seam rather than fanning out its own scan.
|
|
175
|
+
*
|
|
176
|
+
* Why clearing is the right autonomous act: a stale window (threshold exceeded,
|
|
177
|
+
* no genuinely-active review) means the review never ran or is stuck in a
|
|
178
|
+
* respawn loop. focus-phase.ts returns 'reviewing' while review_requested_at is
|
|
179
|
+
* set, so winding_down is unreachable until it clears. Clearing unblocks the
|
|
180
|
+
* phase; if a review genuinely still needs to run, the normal auto-review path
|
|
181
|
+
* re-opens the window -- self-healing on the same detector, never a human hold.
|
|
170
182
|
*/
|
|
171
183
|
export declare function checkReviewWindowStaleForFocus(ctx: FocusStallContext, reviewRequestedAt: string | null, deps?: ReviewWindowDeps): Promise<void>;
|
|
172
184
|
export interface IdleTeamStallDeps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stall-detectors.d.ts","sourceRoot":"","sources":["../../src/verify/stall-detectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAM3D,OAAO,EAEL,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACpC,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"stall-detectors.d.ts","sourceRoot":"","sources":["../../src/verify/stall-detectors.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,9 +35,10 @@
|
|
|
35
35
|
*/
|
|
36
36
|
import { ESCALATION_REASONS, ESCALATION_DISPOSITIONS, withRetry, } from '@telora/daemon-core';
|
|
37
37
|
import { fileEscalationIdempotent as defaultFileEscalationIdempotent, } from '../queries/escalation-suppression.js';
|
|
38
|
-
import { deliveryGuardCauseKey
|
|
38
|
+
import { deliveryGuardCauseKey } from '../queries/cause-key.js';
|
|
39
39
|
import { getActiveTeams, terminateTeam } from '../focus/focus-executor.js';
|
|
40
40
|
import { getTeamLastActivityAt } from '../focus/focus-team-state.js';
|
|
41
|
+
import { clearReviewRequestedAt } from '../queries/focuses.js';
|
|
41
42
|
import { isStatusTerminal } from '../workflow/stage-classifier.js';
|
|
42
43
|
import { resolveVerifyFailedCap, resolveReviewWindowStaleHours, resolveIdleTeamStallHours, resolveReviewLivenessWindowMinutes, } from './stall-detector-config.js';
|
|
43
44
|
import { createLogger } from '../shell/log.js';
|
|
@@ -205,7 +206,7 @@ export function activeReviewFocusIds() {
|
|
|
205
206
|
return ids;
|
|
206
207
|
}
|
|
207
208
|
const defaultReviewWindowDeps = {
|
|
208
|
-
|
|
209
|
+
clearReviewWindow: clearReviewRequestedAt,
|
|
209
210
|
activeReviewFocusIds,
|
|
210
211
|
getReviewTeamLastActivityAt: getTeamLastActivityAt,
|
|
211
212
|
now: () => Date.now(),
|
|
@@ -256,10 +257,19 @@ export function isReviewWindowStale(reviewRequestedAt, reviewGenuinelyActive, no
|
|
|
256
257
|
return nowMs - requestedMs > thresholdMs;
|
|
257
258
|
}
|
|
258
259
|
/**
|
|
259
|
-
* Check ONE focus for a stale review window and
|
|
260
|
-
*
|
|
261
|
-
*
|
|
262
|
-
*
|
|
260
|
+
* Check ONE focus for a stale review window and, when stale, CLEAR it -- the
|
|
261
|
+
* daemon owns the clearing act (clearReviewRequestedAt), so it does not file a
|
|
262
|
+
* needs_operator escalation that merely names the same operator MCP call
|
|
263
|
+
* (`clearReviewRequest=true`) it could perform itself (TEL, delivery 7). The
|
|
264
|
+
* caller (runCascadeChecks) passes the focus's review_requested_at, so this
|
|
265
|
+
* rides the existing review-handling seam rather than fanning out its own scan.
|
|
266
|
+
*
|
|
267
|
+
* Why clearing is the right autonomous act: a stale window (threshold exceeded,
|
|
268
|
+
* no genuinely-active review) means the review never ran or is stuck in a
|
|
269
|
+
* respawn loop. focus-phase.ts returns 'reviewing' while review_requested_at is
|
|
270
|
+
* set, so winding_down is unreachable until it clears. Clearing unblocks the
|
|
271
|
+
* phase; if a review genuinely still needs to run, the normal auto-review path
|
|
272
|
+
* re-opens the window -- self-healing on the same detector, never a human hold.
|
|
263
273
|
*/
|
|
264
274
|
export async function checkReviewWindowStaleForFocus(ctx, reviewRequestedAt, deps = defaultReviewWindowDeps) {
|
|
265
275
|
const thresholdHours = deps.thresholdHours ?? resolveReviewWindowStaleHours();
|
|
@@ -276,49 +286,20 @@ export async function checkReviewWindowStaleForFocus(ctx, reviewRequestedAt, dep
|
|
|
276
286
|
if (!isReviewWindowStale(reviewRequestedAt, reviewGenuinelyActive, nowMs, thresholdMs)) {
|
|
277
287
|
return;
|
|
278
288
|
}
|
|
279
|
-
//
|
|
280
|
-
//
|
|
281
|
-
|
|
289
|
+
// Daemon-owned clear: perform the act the escalation used to merely name. A
|
|
290
|
+
// stale window blocks the focus at 'reviewing' (focus-phase.ts) forever; the
|
|
291
|
+
// daemon clears review_requested_at itself so winding_down is reachable, with
|
|
292
|
+
// no operator act. The detection is exactly the clearing condition -- only the
|
|
293
|
+
// act was previously withheld.
|
|
294
|
+
const ageHours = Math.floor((nowMs - Date.parse(reviewRequestedAt)) / 3_600_000);
|
|
282
295
|
try {
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
sessionId: '',
|
|
288
|
-
issueId: null,
|
|
289
|
-
reasonType: ESCALATION_REASONS.BLOCKED_BY_EXTERNAL,
|
|
290
|
-
// Operator triages a review that was requested but never ran/finished.
|
|
291
|
-
disposition: ESCALATION_DISPOSITIONS.NEEDS_OPERATOR,
|
|
292
|
-
anchor: { focusId: ctx.focusId },
|
|
293
|
-
escalationKind: REVIEW_WINDOW_STALLED_KIND,
|
|
294
|
-
description: `Focus "${ctx.focusName}" requested a review ~${ageHours}h ago ` +
|
|
295
|
-
`(threshold ${thresholdHours}h) but no review is running and none has completed ` +
|
|
296
|
-
`(a completed review clears review_requested_at). The focus is wedged in the ` +
|
|
297
|
-
`review window -- its verify deliveries will never route to done/verify_failed ` +
|
|
298
|
-
`on their own.\n\n` +
|
|
299
|
-
`**Focus:** ${ctx.focusName}\n` +
|
|
300
|
-
`**Focus ID:** ${ctx.focusId}\n` +
|
|
301
|
-
`**review_requested_at:** ${reviewRequestedAt}\n\n` +
|
|
302
|
-
`Either re-spawn the review (clear and re-request the review window) or clear the ` +
|
|
303
|
-
`stale request via telora_product_focus update clearReviewRequest=true.`,
|
|
304
|
-
whatWasTried: `The review window was opened (review_requested_at set ~${ageHours}h ago) but no ` +
|
|
305
|
-
`review team is active and review_requested_at was never cleared by a completion.`,
|
|
306
|
-
helpNeeded: `Re-trigger the review or clear the stale review_requested_at ` +
|
|
307
|
-
`(telora_product_focus update clearReviewRequest=true) so the verify deliveries ` +
|
|
308
|
-
`can route forward.`,
|
|
309
|
-
metadata: {
|
|
310
|
-
cause: REVIEW_WINDOW_STALLED_KIND,
|
|
311
|
-
focusName: ctx.focusName,
|
|
312
|
-
reviewRequestedAt,
|
|
313
|
-
ageHours,
|
|
314
|
-
thresholdHours,
|
|
315
|
-
},
|
|
316
|
-
}), { maxAttempts: 3, label: `escalation-review-window-stalled-${ctx.focusId}` });
|
|
317
|
-
log.info(`[stall-detectors] Filed review_window_stalled escalation for focus "${ctx.focusName}" ` +
|
|
318
|
-
`(review_requested_at ~${ageHours}h old > ${thresholdHours}h)`);
|
|
296
|
+
await withRetry(() => deps.clearReviewWindow(ctx.focusId), { maxAttempts: 3, label: `clear-stale-review-window-${ctx.focusId}` });
|
|
297
|
+
log.info(`[stall-detectors] Cleared stale review window for focus "${ctx.focusName}" ` +
|
|
298
|
+
`(review_requested_at ~${ageHours}h old > ${thresholdHours}h, no active review) -- ` +
|
|
299
|
+
`daemon-owned clear, no operator act required`);
|
|
319
300
|
}
|
|
320
301
|
catch (err) {
|
|
321
|
-
log.warn(`[stall-detectors] review-window: failed to
|
|
302
|
+
log.warn(`[stall-detectors] review-window: failed to clear stale window for focus "${ctx.focusName}":`, err.message);
|
|
322
303
|
}
|
|
323
304
|
}
|
|
324
305
|
/** Default: a focus is recoverable when its team is live and `executing`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stall-detectors.js","sourceRoot":"","sources":["../../src/verify/stall-detectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,SAAS,GACV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,wBAAwB,IAAI,+BAA+B,GAG5D,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"stall-detectors.js","sourceRoot":"","sources":["../../src/verify/stall-detectors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fail-open vs fail-closed is a STATED PER-CLASS policy, not a per-call-site
|
|
3
|
+
* choice (delivery 6 TEL-4). A read that feeds a gate can fail -- a Supabase
|
|
4
|
+
* timeout, a partial API outage -- and what the daemon does with that failure
|
|
5
|
+
* decides whether a healthy focus is silently blocked or unsafe work slips
|
|
6
|
+
* through. Left to each call site, the choice drifts: two reads of the same class
|
|
7
|
+
* degrade differently, so a partial outage degrades UNPREDICTABLY. This module
|
|
8
|
+
* declares the policy in ONE place, by CLASS, so every read of a class degrades
|
|
9
|
+
* the same way and a new site references the class instead of guessing.
|
|
10
|
+
*
|
|
11
|
+
* Two classes:
|
|
12
|
+
*
|
|
13
|
+
* ADVANCEMENT / LIVENESS read -- a read that decides whether a focus or
|
|
14
|
+
* delivery may SPAWN or ADVANCE (the respawn precondition, non-advanceable
|
|
15
|
+
* detection, the review-iteration count, focus ratification). On an unreadable
|
|
16
|
+
* input, FAIL OPEN: proceed as if permissive. A transient read error must not
|
|
17
|
+
* silently block a healthy focus -- a spurious spawn/advance is recoverable and
|
|
18
|
+
* cheap; a silent block is exactly the absorbing state this focus exists to
|
|
19
|
+
* remove. Liveness beats a momentarily-stale read.
|
|
20
|
+
*
|
|
21
|
+
* SAFETY GATE -- a read whose whole job is to STOP work: a guard verdict, a
|
|
22
|
+
* verify/external hold, the sandbox wrap. On an unreadable input, FAIL CLOSED:
|
|
23
|
+
* hold. A missed block lets externally-blocked or unsafe work reach done -- the
|
|
24
|
+
* failure this focus fights harder than a spurious hold. Safety beats liveness
|
|
25
|
+
* HERE, and only here, because the cost is asymmetric the other way.
|
|
26
|
+
*
|
|
27
|
+
* The helpers are intentionally thin (they return the caller's value): the value
|
|
28
|
+
* is the NAME + the single consistent log line, so each site's error branch reads
|
|
29
|
+
* `return advancementReadFailsOpen(...)` / `return safetyGateFailsClosed(...)` and
|
|
30
|
+
* the class -- and therefore the degradation -- is explicit and uniform.
|
|
31
|
+
*/
|
|
32
|
+
/** The two policy classes, named so a call site declares which it is. */
|
|
33
|
+
export type GateReadClass = 'advancement' | 'safety';
|
|
34
|
+
/**
|
|
35
|
+
* An ADVANCEMENT / LIVENESS read failed to resolve its input. FAIL OPEN: return
|
|
36
|
+
* the permissive value (proceed/allow), because silently blocking a healthy
|
|
37
|
+
* focus on a transient read error is worse than a recoverable spurious
|
|
38
|
+
* spawn/advance. Logs one consistent line naming the site + policy class.
|
|
39
|
+
*/
|
|
40
|
+
export declare function advancementReadFailsOpen<T>(site: string, error: unknown, permissive: T): T;
|
|
41
|
+
/**
|
|
42
|
+
* A SAFETY GATE read failed to resolve its input. FAIL CLOSED: return the
|
|
43
|
+
* blocking value (hold), because letting externally-blocked or unsafe work reach
|
|
44
|
+
* done on a transient read error is worse than a spurious hold. Logs one
|
|
45
|
+
* consistent line naming the site + policy class.
|
|
46
|
+
*/
|
|
47
|
+
export declare function safetyGateFailsClosed<T>(site: string, error: unknown, blocking: T): T;
|
|
48
|
+
//# sourceMappingURL=gate-failure-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate-failure-policy.d.ts","sourceRoot":"","sources":["../../src/workflow/gate-failure-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAMH,yEAAyE;AACzE,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,QAAQ,CAAC;AAErD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAO1F;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAMrF"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fail-open vs fail-closed is a STATED PER-CLASS policy, not a per-call-site
|
|
3
|
+
* choice (delivery 6 TEL-4). A read that feeds a gate can fail -- a Supabase
|
|
4
|
+
* timeout, a partial API outage -- and what the daemon does with that failure
|
|
5
|
+
* decides whether a healthy focus is silently blocked or unsafe work slips
|
|
6
|
+
* through. Left to each call site, the choice drifts: two reads of the same class
|
|
7
|
+
* degrade differently, so a partial outage degrades UNPREDICTABLY. This module
|
|
8
|
+
* declares the policy in ONE place, by CLASS, so every read of a class degrades
|
|
9
|
+
* the same way and a new site references the class instead of guessing.
|
|
10
|
+
*
|
|
11
|
+
* Two classes:
|
|
12
|
+
*
|
|
13
|
+
* ADVANCEMENT / LIVENESS read -- a read that decides whether a focus or
|
|
14
|
+
* delivery may SPAWN or ADVANCE (the respawn precondition, non-advanceable
|
|
15
|
+
* detection, the review-iteration count, focus ratification). On an unreadable
|
|
16
|
+
* input, FAIL OPEN: proceed as if permissive. A transient read error must not
|
|
17
|
+
* silently block a healthy focus -- a spurious spawn/advance is recoverable and
|
|
18
|
+
* cheap; a silent block is exactly the absorbing state this focus exists to
|
|
19
|
+
* remove. Liveness beats a momentarily-stale read.
|
|
20
|
+
*
|
|
21
|
+
* SAFETY GATE -- a read whose whole job is to STOP work: a guard verdict, a
|
|
22
|
+
* verify/external hold, the sandbox wrap. On an unreadable input, FAIL CLOSED:
|
|
23
|
+
* hold. A missed block lets externally-blocked or unsafe work reach done -- the
|
|
24
|
+
* failure this focus fights harder than a spurious hold. Safety beats liveness
|
|
25
|
+
* HERE, and only here, because the cost is asymmetric the other way.
|
|
26
|
+
*
|
|
27
|
+
* The helpers are intentionally thin (they return the caller's value): the value
|
|
28
|
+
* is the NAME + the single consistent log line, so each site's error branch reads
|
|
29
|
+
* `return advancementReadFailsOpen(...)` / `return safetyGateFailsClosed(...)` and
|
|
30
|
+
* the class -- and therefore the degradation -- is explicit and uniform.
|
|
31
|
+
*/
|
|
32
|
+
import { createLogger } from '../shell/log.js';
|
|
33
|
+
const log = createLogger({ module: 'gate-failure-policy' });
|
|
34
|
+
/**
|
|
35
|
+
* An ADVANCEMENT / LIVENESS read failed to resolve its input. FAIL OPEN: return
|
|
36
|
+
* the permissive value (proceed/allow), because silently blocking a healthy
|
|
37
|
+
* focus on a transient read error is worse than a recoverable spurious
|
|
38
|
+
* spawn/advance. Logs one consistent line naming the site + policy class.
|
|
39
|
+
*/
|
|
40
|
+
export function advancementReadFailsOpen(site, error, permissive) {
|
|
41
|
+
log.warn(`[gate-failure-policy] ${site}: input read FAILED -> FAIL OPEN (advancement/liveness class; ` +
|
|
42
|
+
`a spurious spawn/advance is cheaper than silently blocking a healthy focus): ` +
|
|
43
|
+
`${error?.message ?? String(error)}`);
|
|
44
|
+
return permissive;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* A SAFETY GATE read failed to resolve its input. FAIL CLOSED: return the
|
|
48
|
+
* blocking value (hold), because letting externally-blocked or unsafe work reach
|
|
49
|
+
* done on a transient read error is worse than a spurious hold. Logs one
|
|
50
|
+
* consistent line naming the site + policy class.
|
|
51
|
+
*/
|
|
52
|
+
export function safetyGateFailsClosed(site, error, blocking) {
|
|
53
|
+
log.warn(`[gate-failure-policy] ${site}: input read FAILED -> FAIL CLOSED (safety-gate class; ` +
|
|
54
|
+
`a missed block lets unsafe/blocked work reach done): ${error?.message ?? String(error)}`);
|
|
55
|
+
return blocking;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=gate-failure-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate-failure-policy.js","sourceRoot":"","sources":["../../src/workflow/gate-failure-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;AAK5D;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAI,IAAY,EAAE,KAAc,EAAE,UAAa;IACrF,GAAG,CAAC,IAAI,CACN,yBAAyB,IAAI,gEAAgE;QAC7F,+EAA+E;QAC/E,GAAI,KAAe,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAChD,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAI,IAAY,EAAE,KAAc,EAAE,QAAW;IAChF,GAAG,CAAC,IAAI,CACN,yBAAyB,IAAI,yDAAyD;QACtF,wDAAyD,KAAe,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CACrG,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -47,8 +47,8 @@ export declare function isCdEnabled(pc: PipelineConfig | null | undefined): bool
|
|
|
47
47
|
* This is the default-on semantics: a focus left untouched auto-reviews;
|
|
48
48
|
* a human (or agent) must store an explicit `review.enabled = false` to
|
|
49
49
|
* keep finished work sitting in `verify`. The single read-semantics site
|
|
50
|
-
* for the
|
|
51
|
-
*
|
|
50
|
+
* for the daemon's sole auto-review gate, `state-cascade.checkAutoReview`
|
|
51
|
+
* (the duplicate stage='review' auto-advance was removed in TEL-6).
|
|
52
52
|
*/
|
|
53
53
|
export declare function isReviewEnabled(pc: PipelineConfig | null | undefined): boolean;
|
|
54
54
|
/**
|
|
@@ -38,8 +38,8 @@ export function isCdEnabled(pc) {
|
|
|
38
38
|
* This is the default-on semantics: a focus left untouched auto-reviews;
|
|
39
39
|
* a human (or agent) must store an explicit `review.enabled = false` to
|
|
40
40
|
* keep finished work sitting in `verify`. The single read-semantics site
|
|
41
|
-
* for the
|
|
42
|
-
*
|
|
41
|
+
* for the daemon's sole auto-review gate, `state-cascade.checkAutoReview`
|
|
42
|
+
* (the duplicate stage='review' auto-advance was removed in TEL-6).
|
|
43
43
|
*/
|
|
44
44
|
export function isReviewEnabled(pc) {
|
|
45
45
|
return pc?.review?.enabled !== false;
|