@telora/daemon 0.22.42 → 0.22.57
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/completion/detector.d.ts +37 -0
- package/dist/completion/detector.d.ts.map +1 -1
- package/dist/completion/detector.js +92 -5
- package/dist/completion/detector.js.map +1 -1
- package/dist/completion/event-phases.d.ts +6 -3
- package/dist/completion/event-phases.d.ts.map +1 -1
- package/dist/completion/event-phases.js +20 -8
- package/dist/completion/event-phases.js.map +1 -1
- package/dist/completion/event.d.ts +69 -9
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js +108 -22
- package/dist/completion/event.js.map +1 -1
- package/dist/completion/index.js +1 -1
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +5 -4
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/state-cascade.d.ts +7 -1
- package/dist/completion/state-cascade.d.ts.map +1 -1
- package/dist/completion/state-cascade.js +70 -8
- package/dist/completion/state-cascade.js.map +1 -1
- package/dist/completion/stdin-turn-tracker.d.ts +7 -0
- package/dist/completion/stdin-turn-tracker.d.ts.map +1 -1
- package/dist/completion/stdin-turn-tracker.js +32 -4
- package/dist/completion/stdin-turn-tracker.js.map +1 -1
- package/dist/completion/supervision-firing-record.d.ts +64 -12
- package/dist/completion/supervision-firing-record.d.ts.map +1 -1
- package/dist/completion/supervision-firing-record.js +75 -15
- package/dist/completion/supervision-firing-record.js.map +1 -1
- package/dist/completion/team-lifecycle.d.ts.map +1 -1
- package/dist/completion/team-lifecycle.js +34 -18
- package/dist/completion/team-lifecycle.js.map +1 -1
- package/dist/completion/team-liveness-log.d.ts +21 -0
- package/dist/completion/team-liveness-log.d.ts.map +1 -1
- package/dist/completion/team-liveness-log.js +22 -0
- package/dist/completion/team-liveness-log.js.map +1 -1
- package/dist/delivery/delivery-reconciler.d.ts.map +1 -1
- package/dist/delivery/delivery-reconciler.js +4 -2
- package/dist/delivery/delivery-reconciler.js.map +1 -1
- package/dist/directive/directive-dispatch.d.ts.map +1 -1
- package/dist/directive/directive-dispatch.js +55 -52
- package/dist/directive/directive-dispatch.js.map +1 -1
- package/dist/directive/directive-executor.d.ts +0 -9
- package/dist/directive/directive-executor.d.ts.map +1 -1
- package/dist/directive/directive-executor.js +47 -32
- package/dist/directive/directive-executor.js.map +1 -1
- package/dist/directive/directive-verify-hold-gate.d.ts +13 -0
- package/dist/directive/directive-verify-hold-gate.d.ts.map +1 -1
- package/dist/directive/directive-verify-hold-gate.js +10 -0
- package/dist/directive/directive-verify-hold-gate.js.map +1 -1
- package/dist/directive/phase-sync.d.ts +11 -0
- package/dist/directive/phase-sync.d.ts.map +1 -1
- package/dist/directive/phase-sync.js +12 -0
- package/dist/directive/phase-sync.js.map +1 -1
- package/dist/focus/focus-executor.js +1 -1
- package/dist/focus/focus-team-state.d.ts.map +1 -1
- package/dist/focus/focus-team-state.js +1 -0
- package/dist/focus/focus-team-state.js.map +1 -1
- package/dist/focus/focus-worktree-state.d.ts.map +1 -1
- package/dist/focus/focus-worktree-state.js +2 -1
- package/dist/focus/focus-worktree-state.js.map +1 -1
- package/dist/focus/listener-spawn.d.ts +4 -2
- package/dist/focus/listener-spawn.d.ts.map +1 -1
- package/dist/focus/listener-spawn.js +24 -5
- package/dist/focus/listener-spawn.js.map +1 -1
- package/dist/focus/listener.d.ts.map +1 -1
- package/dist/focus/listener.js +33 -14
- package/dist/focus/listener.js.map +1 -1
- package/dist/focus/session-health.d.ts +25 -3
- package/dist/focus/session-health.d.ts.map +1 -1
- package/dist/focus/session-health.js +32 -1
- package/dist/focus/session-health.js.map +1 -1
- package/dist/focus/team-actionable-work.d.ts +19 -2
- package/dist/focus/team-actionable-work.d.ts.map +1 -1
- package/dist/focus/team-actionable-work.js +10 -3
- package/dist/focus/team-actionable-work.js.map +1 -1
- package/dist/merge/focus-merge.d.ts +12 -1
- package/dist/merge/focus-merge.d.ts.map +1 -1
- package/dist/merge/focus-merge.js +33 -2
- package/dist/merge/focus-merge.js.map +1 -1
- package/dist/nexus/return.d.ts +45 -0
- package/dist/nexus/return.d.ts.map +1 -1
- package/dist/nexus/return.js +159 -45
- package/dist/nexus/return.js.map +1 -1
- package/dist/prompt/focus-prompt-builder.d.ts.map +1 -1
- package/dist/prompt/focus-prompt-builder.js +1 -0
- package/dist/prompt/focus-prompt-builder.js.map +1 -1
- package/dist/prompt/prompt-contradictions.d.ts.map +1 -1
- package/dist/prompt/prompt-contradictions.js +2 -1
- package/dist/prompt/prompt-contradictions.js.map +1 -1
- package/dist/prompt/team-prompt-base.d.ts.map +1 -1
- package/dist/prompt/team-prompt-base.js +1 -0
- package/dist/prompt/team-prompt-base.js.map +1 -1
- package/dist/prompt-sections/execution-sections.d.ts +4 -9
- package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
- package/dist/prompt-sections/execution-sections.js +4 -74
- package/dist/prompt-sections/execution-sections.js.map +1 -1
- package/dist/prompt-sections/session-constraints-section.d.ts +21 -0
- package/dist/prompt-sections/session-constraints-section.d.ts.map +1 -0
- package/dist/prompt-sections/session-constraints-section.js +108 -0
- package/dist/prompt-sections/session-constraints-section.js.map +1 -0
- package/dist/queries/focuses.d.ts +13 -0
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +15 -0
- package/dist/queries/focuses.js.map +1 -1
- package/dist/queries/schemas.d.ts +12 -0
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +7 -0
- package/dist/queries/schemas.js.map +1 -1
- package/dist/queries/sessions.d.ts.map +1 -1
- package/dist/queries/sessions.js +1 -0
- package/dist/queries/sessions.js.map +1 -1
- package/dist/queries/verification.d.ts +9 -1
- package/dist/queries/verification.d.ts.map +1 -1
- package/dist/queries/verification.js +14 -2
- package/dist/queries/verification.js.map +1 -1
- package/dist/shell/heartbeat-metadata.d.ts +11 -0
- package/dist/shell/heartbeat-metadata.d.ts.map +1 -1
- package/dist/shell/heartbeat-metadata.js +3 -0
- package/dist/shell/heartbeat-metadata.js.map +1 -1
- package/dist/spawn/helpers.d.ts.map +1 -1
- package/dist/spawn/helpers.js +72 -52
- package/dist/spawn/helpers.js.map +1 -1
- package/dist/spawn/idle-work-stamp.d.ts +53 -0
- package/dist/spawn/idle-work-stamp.d.ts.map +1 -0
- package/dist/spawn/idle-work-stamp.js +47 -0
- package/dist/spawn/idle-work-stamp.js.map +1 -0
- package/dist/spawn/lead-continuation.d.ts +58 -0
- package/dist/spawn/lead-continuation.d.ts.map +1 -0
- package/dist/spawn/lead-continuation.js +127 -0
- package/dist/spawn/lead-continuation.js.map +1 -0
- package/dist/spawn/process-spawn.d.ts.map +1 -1
- package/dist/spawn/process-spawn.js +27 -13
- package/dist/spawn/process-spawn.js.map +1 -1
- package/dist/testing/fixtures/index.js +1 -1
- package/dist/types/focus.d.ts +54 -0
- package/dist/types/focus.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/session.d.ts +11 -0
- package/dist/types/session.d.ts.map +1 -1
- package/dist/verify/stall-detector-config.d.ts +36 -0
- package/dist/verify/stall-detector-config.d.ts.map +1 -1
- package/dist/verify/stall-detector-config.js +44 -0
- package/dist/verify/stall-detector-config.js.map +1 -1
- package/dist/verify/stall-detectors.d.ts +40 -0
- package/dist/verify/stall-detectors.d.ts.map +1 -1
- package/dist/verify/stall-detectors.js +60 -6
- package/dist/verify/stall-detectors.js.map +1 -1
- package/dist/verify/stalled-team-backstop.d.ts +43 -0
- package/dist/verify/stalled-team-backstop.d.ts.map +1 -0
- package/dist/verify/stalled-team-backstop.js +131 -0
- package/dist/verify/stalled-team-backstop.js.map +1 -0
- package/dist/verify/verification-deps.d.ts +6 -1
- package/dist/verify/verification-deps.d.ts.map +1 -1
- package/dist/verify/verification-engine.d.ts.map +1 -1
- package/dist/verify/verification-engine.js +4 -3
- package/dist/verify/verification-engine.js.map +1 -1
- package/dist/verify/verification-evidence.d.ts +18 -0
- package/dist/verify/verification-evidence.d.ts.map +1 -1
- package/dist/verify/verification-evidence.js +53 -1
- package/dist/verify/verification-evidence.js.map +1 -1
- package/dist/verify/verify-reconciliation.d.ts.map +1 -1
- package/dist/verify/verify-reconciliation.js +2 -1
- package/dist/verify/verify-reconciliation.js.map +1 -1
- package/dist/worktree/verify-interlock.d.ts.map +1 -1
- package/dist/worktree/verify-interlock.js +2 -1
- package/dist/worktree/verify-interlock.js.map +1 -1
- package/package.json +3 -3
|
@@ -12,6 +12,13 @@ export declare function recordStdinMessageSent(focusId: string): void;
|
|
|
12
12
|
* has no entry) -- so a team with no injected directive completes normally.
|
|
13
13
|
*/
|
|
14
14
|
export declare function pendingStdinTurns(focusId: string, turnCount: number): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* The raw count of stdin user messages sent to a focus's team (the `sent` side of
|
|
17
|
+
* the sent > turnCount skew). Exposed so the completion detector can LOG both
|
|
18
|
+
* counters when it suppresses `complete`, making a skew visible in the daemon log
|
|
19
|
+
* when it occurs. 0 when nothing was written.
|
|
20
|
+
*/
|
|
21
|
+
export declare function sentStdinCount(focusId: string): number;
|
|
15
22
|
/** Clear a focus's tracking on teardown (a respawn starts a fresh count / detector). */
|
|
16
23
|
export declare function clearStdinTurnTracking(focusId: string): void;
|
|
17
24
|
/** Test-only: reset all tracking. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdin-turn-tracker.d.ts","sourceRoot":"","sources":["../../src/completion/stdin-turn-tracker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stdin-turn-tracker.d.ts","sourceRoot":"","sources":["../../src/completion/stdin-turn-tracker.ts"],"names":[],"mappings":"AAoDA;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE5D;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAE7E;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wFAAwF;AACxF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE5D;AAED,qCAAqC;AACrC,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD"}
|
|
@@ -19,10 +19,29 @@
|
|
|
19
19
|
* CompletionDetector). So a team with queued stdin turns is not classified done
|
|
20
20
|
* until it has processed them.
|
|
21
21
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
22
|
+
* It only DELAYS completion (never kills early) and is INERT for a normal spawn
|
|
23
|
+
* (kickoff alone -> sent === turnCount).
|
|
24
|
+
*
|
|
25
|
+
* BOUNDED, but NOT "by construction" (corrected, delivery ff3c717e / 2026-09-08):
|
|
26
|
+
* the count is monotone until teardown, so a write the CLI NEVER results (a
|
|
27
|
+
* silently-dropped /compact on a resume spawn, a write that coincides with the
|
|
28
|
+
* CLI's own auto-compaction) leaves sent > turnCount forever. For a lead that
|
|
29
|
+
* keeps working that self-balances as it results the queued turn; for a PARKED
|
|
30
|
+
* lead it does not -- turnCount never catches up, `complete` never fires, and the
|
|
31
|
+
* only clear site is a teardown that the suppressed `complete` was supposed to
|
|
32
|
+
* drive. That was the 2026-09-08 wedge (lead PID 1452732, session bc15cc2a): a
|
|
33
|
+
* SUCCESS result with 4 deliveries still queued, then ~30 min in do_epoll_wait.
|
|
34
|
+
* (Which write leaked the count is not determinable from the surviving logs --
|
|
35
|
+
* the daemon did not then log the sent/turnCount pair; the CompletionDetector now
|
|
36
|
+
* logs both on every suppression so the next instance names the leaking write.)
|
|
37
|
+
*
|
|
38
|
+
* The bound now lives in the detector, not here: CompletionDetector arms a grace
|
|
39
|
+
* timer when it suppresses and every agent event resets it, so a lead working the
|
|
40
|
+
* queued turn keeps completion suppressed while a SILENT lead lets the suppression
|
|
41
|
+
* expire and `complete` fire. The regression this tracker exists to prevent (a
|
|
42
|
+
* /compact + content queued behind a long kickoff turn dropped at teardown) still
|
|
43
|
+
* holds: that queued turn emits events as it runs, which keep the grace timer
|
|
44
|
+
* alive until it results -- only a turn the CLI genuinely never runs expires.
|
|
26
45
|
*
|
|
27
46
|
* @module completion/stdin-turn-tracker
|
|
28
47
|
*/
|
|
@@ -46,6 +65,15 @@ export function recordStdinMessageSent(focusId) {
|
|
|
46
65
|
export function pendingStdinTurns(focusId, turnCount) {
|
|
47
66
|
return (sentByFocus.get(focusId) ?? 0) > turnCount;
|
|
48
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* The raw count of stdin user messages sent to a focus's team (the `sent` side of
|
|
70
|
+
* the sent > turnCount skew). Exposed so the completion detector can LOG both
|
|
71
|
+
* counters when it suppresses `complete`, making a skew visible in the daemon log
|
|
72
|
+
* when it occurs. 0 when nothing was written.
|
|
73
|
+
*/
|
|
74
|
+
export function sentStdinCount(focusId) {
|
|
75
|
+
return sentByFocus.get(focusId) ?? 0;
|
|
76
|
+
}
|
|
49
77
|
/** Clear a focus's tracking on teardown (a respawn starts a fresh count / detector). */
|
|
50
78
|
export function clearStdinTurnTracking(focusId) {
|
|
51
79
|
sentByFocus.delete(focusId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdin-turn-tracker.js","sourceRoot":"","sources":["../../src/completion/stdin-turn-tracker.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,wEAAwE;AACxE,yDAAyD;AACzD,gBAAgB;AAEhB
|
|
1
|
+
{"version":3,"file":"stdin-turn-tracker.js","sourceRoot":"","sources":["../../src/completion/stdin-turn-tracker.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,wEAAwE;AACxE,yDAAyD;AACzD,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,4EAA4E;AAC5E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,SAAiB;IAClE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,kCAAkC;IAChD,WAAW,CAAC,KAAK,EAAE,CAAC;AACtB,CAAC"}
|
|
@@ -34,6 +34,11 @@ export declare const SUPERVISION_MECHANISM: {
|
|
|
34
34
|
/** The liveness badge marks a team unresponsive. Predicts: the team is wedged
|
|
35
35
|
* (not a legitimate multi-minute park). */
|
|
36
36
|
readonly LIVENESS_BADGE: "liveness_badge";
|
|
37
|
+
/** The poll-loop stalled-team backstop reaps a live `executing` team that has
|
|
38
|
+
* emitted no agent event past the backstop window, WITHOUT waiting for the
|
|
39
|
+
* completion event (which can be suppressed / never fire / be latched -- the
|
|
40
|
+
* 2026-09-07 wedge). Predicts: the idle team is wedged, not mid-long-operation. */
|
|
41
|
+
readonly STALLED_TEAM_REAP: "stalled_team_reap";
|
|
37
42
|
};
|
|
38
43
|
export type SupervisionMechanism = (typeof SUPERVISION_MECHANISM)[keyof typeof SUPERVISION_MECHANISM];
|
|
39
44
|
/** A firing's later-classified verdict. */
|
|
@@ -53,6 +58,24 @@ export interface SupervisionFiring {
|
|
|
53
58
|
predicted: string;
|
|
54
59
|
/** Verdict, classified later from the observed outcome. */
|
|
55
60
|
verdict: FiringVerdict;
|
|
61
|
+
/**
|
|
62
|
+
* Whether the mechanism ACTUALLY took its kill/hold/respawn action when it
|
|
63
|
+
* fired. True by default (most firings act). Set false at the suppression sites
|
|
64
|
+
* when the mechanism is demoted to observe-only and records without acting.
|
|
65
|
+
* An UNACTED firing had no action to falsify, so the settle sweep must never
|
|
66
|
+
* true-positive it by silence -- doing so was the self-laundering bug (a
|
|
67
|
+
* demotion lifting itself and erasing the FP history that justified it). An
|
|
68
|
+
* unacted firing is scored ONLY by an active event that observes what the
|
|
69
|
+
* unblocked system actually went on to do; until then it stays unclassified.
|
|
70
|
+
*/
|
|
71
|
+
acted: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* How the verdict was reached: 'active' (an observed falsifying/confirming
|
|
74
|
+
* event) vs 'sweep' (the settle window elapsed with no falsifying event).
|
|
75
|
+
* Absent while unclassified. Lets a reading tell a verdict EARNED in action
|
|
76
|
+
* from one inferred from silence.
|
|
77
|
+
*/
|
|
78
|
+
classifiedBy?: 'active' | 'sweep';
|
|
56
79
|
/** Epoch ms the verdict was classified (absent while unclassified). */
|
|
57
80
|
classifiedAt?: number;
|
|
58
81
|
/** The outcome actually observed at classification time (absent while unclassified). */
|
|
@@ -68,18 +91,33 @@ export interface FiringStats {
|
|
|
68
91
|
/** falsePositives / (truePositives + falsePositives); null when none are
|
|
69
92
|
* classified yet (a rate over zero classified firings is undefined, never 0). */
|
|
70
93
|
falsePositiveRate: number | null;
|
|
94
|
+
/** Firings recorded while the mechanism was demoted (acted===false): observe-only
|
|
95
|
+
* counterfactuals, never true-positived by silence. */
|
|
96
|
+
unacted: number;
|
|
97
|
+
/** True positives reached by an OBSERVED event (classifiedBy==='active'). */
|
|
98
|
+
activeTruePositives: number;
|
|
99
|
+
/** True positives inferred from the settle window elapsing (classifiedBy==='sweep').
|
|
100
|
+
* A reading that separates accuracy EARNED in action from the benefit of the
|
|
101
|
+
* doubt silence gives an acted firing. */
|
|
102
|
+
sweptTruePositives: number;
|
|
71
103
|
}
|
|
72
104
|
/** Max firings retained per mechanism (oldest evicted). Bounds memory; the rate
|
|
73
105
|
* is a recency signal, not a full history. */
|
|
74
106
|
export declare const FIRING_BUFFER_CAP = 256;
|
|
75
107
|
/**
|
|
76
|
-
* Settle window:
|
|
77
|
-
* swept to true_positive. It is also the FP horizon by construction -- an
|
|
78
|
-
* classifier (e.g. a teardown falsified by a re-ready focus) can only fire
|
|
79
|
-
* the firing is still unclassified, i.e. younger than this. So a teardown a
|
|
80
|
-
* contradicts QUICKLY (the storm) is FP; one that stands past the window is
|
|
81
|
-
* One knob. 3 minutes: longer than a spawn cooldown / re-ready cycle, short
|
|
108
|
+
* Settle window: an ACTED prediction that survives this long with no falsifying
|
|
109
|
+
* event is swept to true_positive. It is also the FP horizon by construction -- an
|
|
110
|
+
* active classifier (e.g. a teardown falsified by a re-ready focus) can only fire
|
|
111
|
+
* while the firing is still unclassified, i.e. younger than this. So a teardown a
|
|
112
|
+
* focus contradicts QUICKLY (the storm) is FP; one that stands past the window is
|
|
113
|
+
* TP. One knob. 3 minutes: longer than a spawn cooldown / re-ready cycle, short
|
|
82
114
|
* enough that the rate reflects recent behavior.
|
|
115
|
+
*
|
|
116
|
+
* The sweep applies ONLY to ACTED firings: an unacted firing (recorded while the
|
|
117
|
+
* mechanism was demoted to observe-only) had no action, so silence proves nothing
|
|
118
|
+
* about it. True-positiving unacted firings by silence was the self-laundering bug
|
|
119
|
+
* -- it lifted a demotion within one settle window and erased the FP history that
|
|
120
|
+
* justified it, regardless of the mechanism's real accuracy.
|
|
83
121
|
*/
|
|
84
122
|
export declare const FIRING_SETTLE_WINDOW_MS = 180000;
|
|
85
123
|
/**
|
|
@@ -92,6 +130,16 @@ export declare function recordFiring(args: {
|
|
|
92
130
|
predicted: string;
|
|
93
131
|
now?: number;
|
|
94
132
|
}): number;
|
|
133
|
+
/**
|
|
134
|
+
* Flip the MOST RECENT firing of `mechanism` for `focusId` to UNACTED -- the
|
|
135
|
+
* mechanism recorded it but, being demoted to observe-only, did NOT take its
|
|
136
|
+
* kill/hold/respawn action. An unacted firing is never true-positived by the
|
|
137
|
+
* settle sweep (silence cannot vindicate an action that never happened); it is
|
|
138
|
+
* scored only by an active event observing what the unblocked system did. Returns
|
|
139
|
+
* true if a firing was found and flipped. Idempotent: re-flipping an already
|
|
140
|
+
* unacted firing is a no-op.
|
|
141
|
+
*/
|
|
142
|
+
export declare function markLatestFiringUnacted(mechanism: string, focusId: string): boolean;
|
|
95
143
|
/**
|
|
96
144
|
* Classify a recorded firing from the outcome it predicted: `borneOut` true means
|
|
97
145
|
* the prediction held (true_positive), false means it did not (false_positive).
|
|
@@ -127,12 +175,16 @@ export declare function classifyLatestUnclassifiedFiring(mechanism: string, focu
|
|
|
127
175
|
now?: number;
|
|
128
176
|
}): boolean;
|
|
129
177
|
/**
|
|
130
|
-
* Settle sweep: classify every still-unclassified firing older than
|
|
131
|
-
* as borne out (true_positive) -- the prediction HELD because no
|
|
132
|
-
* arrived within the settle window (FPs are classified actively
|
|
133
|
-
* falsifying event, so an aged unclassified firing is one nothing
|
|
134
|
-
*
|
|
135
|
-
* and
|
|
178
|
+
* Settle sweep: classify every still-unclassified ACTED firing older than
|
|
179
|
+
* `olderThanMs` as borne out (true_positive) -- the prediction HELD because no
|
|
180
|
+
* falsifying event arrived within the settle window (FPs are classified actively
|
|
181
|
+
* at their falsifying event, so an aged unclassified ACTED firing is one nothing
|
|
182
|
+
* contradicted). UNACTED firings are skipped: a firing whose mechanism was demoted
|
|
183
|
+
* and took no action has nothing for silence to vindicate, so sweeping it to TP
|
|
184
|
+
* would launder the demotion (lift it and erase the FP record that justified it).
|
|
185
|
+
* An unacted firing is scored only by an active event. Optionally scoped to one
|
|
186
|
+
* `mechanism`. Returns the number classified. Idempotent and cheap; call it from
|
|
187
|
+
* the poll loop.
|
|
136
188
|
*/
|
|
137
189
|
export declare function sweepAgedFirings(args: {
|
|
138
190
|
olderThanMs: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervision-firing-record.d.ts","sourceRoot":"","sources":["../../src/completion/supervision-firing-record.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"supervision-firing-record.d.ts","sourceRoot":"","sources":["../../src/completion/supervision-firing-record.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
// packages/daemon/src/completion/teardown-demotion-gate.test.ts,
|
|
5
5
|
// packages/daemon/src/focus/respawn-demotion-gate.test.ts,
|
|
6
6
|
// packages/daemon/src/focus/supervision-firing-correlation.test.ts,
|
|
7
|
-
// packages/daemon/src/shell/supervision-firing-rates.test.ts
|
|
7
|
+
// packages/daemon/src/shell/supervision-firing-rates.test.ts,
|
|
8
|
+
// packages/daemon/src/verify/stalled-team-backstop-detector.test.ts
|
|
8
9
|
// PINNED-BY-END
|
|
9
10
|
/**
|
|
10
11
|
* Supervision firing records -- the falsifiability instrument.
|
|
@@ -42,18 +43,29 @@ export const SUPERVISION_MECHANISM = {
|
|
|
42
43
|
/** The liveness badge marks a team unresponsive. Predicts: the team is wedged
|
|
43
44
|
* (not a legitimate multi-minute park). */
|
|
44
45
|
LIVENESS_BADGE: 'liveness_badge',
|
|
46
|
+
/** The poll-loop stalled-team backstop reaps a live `executing` team that has
|
|
47
|
+
* emitted no agent event past the backstop window, WITHOUT waiting for the
|
|
48
|
+
* completion event (which can be suppressed / never fire / be latched -- the
|
|
49
|
+
* 2026-09-07 wedge). Predicts: the idle team is wedged, not mid-long-operation. */
|
|
50
|
+
STALLED_TEAM_REAP: 'stalled_team_reap',
|
|
45
51
|
};
|
|
46
52
|
/** Max firings retained per mechanism (oldest evicted). Bounds memory; the rate
|
|
47
53
|
* is a recency signal, not a full history. */
|
|
48
54
|
export const FIRING_BUFFER_CAP = 256;
|
|
49
55
|
/**
|
|
50
|
-
* Settle window:
|
|
51
|
-
* swept to true_positive. It is also the FP horizon by construction -- an
|
|
52
|
-
* classifier (e.g. a teardown falsified by a re-ready focus) can only fire
|
|
53
|
-
* the firing is still unclassified, i.e. younger than this. So a teardown a
|
|
54
|
-
* contradicts QUICKLY (the storm) is FP; one that stands past the window is
|
|
55
|
-
* One knob. 3 minutes: longer than a spawn cooldown / re-ready cycle, short
|
|
56
|
+
* Settle window: an ACTED prediction that survives this long with no falsifying
|
|
57
|
+
* event is swept to true_positive. It is also the FP horizon by construction -- an
|
|
58
|
+
* active classifier (e.g. a teardown falsified by a re-ready focus) can only fire
|
|
59
|
+
* while the firing is still unclassified, i.e. younger than this. So a teardown a
|
|
60
|
+
* focus contradicts QUICKLY (the storm) is FP; one that stands past the window is
|
|
61
|
+
* TP. One knob. 3 minutes: longer than a spawn cooldown / re-ready cycle, short
|
|
56
62
|
* enough that the rate reflects recent behavior.
|
|
63
|
+
*
|
|
64
|
+
* The sweep applies ONLY to ACTED firings: an unacted firing (recorded while the
|
|
65
|
+
* mechanism was demoted to observe-only) had no action, so silence proves nothing
|
|
66
|
+
* about it. True-positiving unacted firings by silence was the self-laundering bug
|
|
67
|
+
* -- it lifted a demotion within one settle window and erased the FP history that
|
|
68
|
+
* justified it, regardless of the mechanism's real accuracy.
|
|
57
69
|
*/
|
|
58
70
|
export const FIRING_SETTLE_WINDOW_MS = 180_000;
|
|
59
71
|
const firings = new Map();
|
|
@@ -71,6 +83,10 @@ export function recordFiring(args) {
|
|
|
71
83
|
firedAt: args.now ?? Date.now(),
|
|
72
84
|
predicted: args.predicted,
|
|
73
85
|
verdict: 'unclassified',
|
|
86
|
+
// Recorded as ACTED by default: most firings come from a mechanism that took
|
|
87
|
+
// its action. A suppression site that records-without-acting (demoted to
|
|
88
|
+
// observe-only) calls markLatestFiringUnacted right after to flip this.
|
|
89
|
+
acted: true,
|
|
74
90
|
};
|
|
75
91
|
const buf = firings.get(args.mechanism) ?? [];
|
|
76
92
|
buf.push(firing);
|
|
@@ -79,6 +95,28 @@ export function recordFiring(args) {
|
|
|
79
95
|
firings.set(args.mechanism, buf);
|
|
80
96
|
return id;
|
|
81
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Flip the MOST RECENT firing of `mechanism` for `focusId` to UNACTED -- the
|
|
100
|
+
* mechanism recorded it but, being demoted to observe-only, did NOT take its
|
|
101
|
+
* kill/hold/respawn action. An unacted firing is never true-positived by the
|
|
102
|
+
* settle sweep (silence cannot vindicate an action that never happened); it is
|
|
103
|
+
* scored only by an active event observing what the unblocked system did. Returns
|
|
104
|
+
* true if a firing was found and flipped. Idempotent: re-flipping an already
|
|
105
|
+
* unacted firing is a no-op.
|
|
106
|
+
*/
|
|
107
|
+
export function markLatestFiringUnacted(mechanism, focusId) {
|
|
108
|
+
const buf = firings.get(mechanism);
|
|
109
|
+
if (!buf)
|
|
110
|
+
return false;
|
|
111
|
+
for (let i = buf.length - 1; i >= 0; i--) {
|
|
112
|
+
const f = buf[i];
|
|
113
|
+
if (f && f.focusId === focusId) {
|
|
114
|
+
f.acted = false;
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
82
120
|
/**
|
|
83
121
|
* Classify a recorded firing from the outcome it predicted: `borneOut` true means
|
|
84
122
|
* the prediction held (true_positive), false means it did not (false_positive).
|
|
@@ -92,6 +130,7 @@ export function classifyFiring(id, args) {
|
|
|
92
130
|
if (firing.verdict !== 'unclassified')
|
|
93
131
|
return;
|
|
94
132
|
firing.verdict = args.borneOut ? 'true_positive' : 'false_positive';
|
|
133
|
+
firing.classifiedBy = 'active';
|
|
95
134
|
firing.classifiedAt = args.now ?? Date.now();
|
|
96
135
|
firing.observed = args.observed;
|
|
97
136
|
return;
|
|
@@ -109,9 +148,19 @@ export function firingStats(mechanism, opts = {}) {
|
|
|
109
148
|
let truePositives = 0;
|
|
110
149
|
let falsePositives = 0;
|
|
111
150
|
let unclassified = 0;
|
|
151
|
+
let unacted = 0;
|
|
152
|
+
let activeTruePositives = 0;
|
|
153
|
+
let sweptTruePositives = 0;
|
|
112
154
|
for (const f of buf) {
|
|
113
|
-
if (f.
|
|
155
|
+
if (!f.acted)
|
|
156
|
+
unacted++;
|
|
157
|
+
if (f.verdict === 'true_positive') {
|
|
114
158
|
truePositives++;
|
|
159
|
+
if (f.classifiedBy === 'sweep')
|
|
160
|
+
sweptTruePositives++;
|
|
161
|
+
else
|
|
162
|
+
activeTruePositives++;
|
|
163
|
+
}
|
|
115
164
|
else if (f.verdict === 'false_positive')
|
|
116
165
|
falsePositives++;
|
|
117
166
|
else
|
|
@@ -125,6 +174,9 @@ export function firingStats(mechanism, opts = {}) {
|
|
|
125
174
|
falsePositives,
|
|
126
175
|
unclassified,
|
|
127
176
|
falsePositiveRate: classified === 0 ? null : falsePositives / classified,
|
|
177
|
+
unacted,
|
|
178
|
+
activeTruePositives,
|
|
179
|
+
sweptTruePositives,
|
|
128
180
|
};
|
|
129
181
|
}
|
|
130
182
|
/**
|
|
@@ -145,6 +197,7 @@ export function classifyLatestUnclassifiedFiring(mechanism, focusId, args) {
|
|
|
145
197
|
const f = buf[i];
|
|
146
198
|
if (f && f.focusId === focusId && f.verdict === 'unclassified') {
|
|
147
199
|
f.verdict = args.borneOut ? 'true_positive' : 'false_positive';
|
|
200
|
+
f.classifiedBy = 'active';
|
|
148
201
|
f.classifiedAt = args.now ?? Date.now();
|
|
149
202
|
f.observed = args.observed;
|
|
150
203
|
return true;
|
|
@@ -153,12 +206,16 @@ export function classifyLatestUnclassifiedFiring(mechanism, focusId, args) {
|
|
|
153
206
|
return false;
|
|
154
207
|
}
|
|
155
208
|
/**
|
|
156
|
-
* Settle sweep: classify every still-unclassified firing older than
|
|
157
|
-
* as borne out (true_positive) -- the prediction HELD because no
|
|
158
|
-
* arrived within the settle window (FPs are classified actively
|
|
159
|
-
* falsifying event, so an aged unclassified firing is one nothing
|
|
160
|
-
*
|
|
161
|
-
* and
|
|
209
|
+
* Settle sweep: classify every still-unclassified ACTED firing older than
|
|
210
|
+
* `olderThanMs` as borne out (true_positive) -- the prediction HELD because no
|
|
211
|
+
* falsifying event arrived within the settle window (FPs are classified actively
|
|
212
|
+
* at their falsifying event, so an aged unclassified ACTED firing is one nothing
|
|
213
|
+
* contradicted). UNACTED firings are skipped: a firing whose mechanism was demoted
|
|
214
|
+
* and took no action has nothing for silence to vindicate, so sweeping it to TP
|
|
215
|
+
* would launder the demotion (lift it and erase the FP record that justified it).
|
|
216
|
+
* An unacted firing is scored only by an active event. Optionally scoped to one
|
|
217
|
+
* `mechanism`. Returns the number classified. Idempotent and cheap; call it from
|
|
218
|
+
* the poll loop.
|
|
162
219
|
*/
|
|
163
220
|
export function sweepAgedFirings(args) {
|
|
164
221
|
const now = args.now ?? Date.now();
|
|
@@ -169,8 +226,11 @@ export function sweepAgedFirings(args) {
|
|
|
169
226
|
let swept = 0;
|
|
170
227
|
for (const buf of bufs) {
|
|
171
228
|
for (const f of buf) {
|
|
172
|
-
|
|
229
|
+
// Skip UNACTED firings: no action happened, so the settle window elapsing
|
|
230
|
+
// proves nothing -- true-positiving it by silence is the self-laundering bug.
|
|
231
|
+
if (f.verdict === 'unclassified' && f.acted && f.firedAt < cutoff) {
|
|
173
232
|
f.verdict = 'true_positive';
|
|
233
|
+
f.classifiedBy = 'sweep';
|
|
174
234
|
f.classifiedAt = now;
|
|
175
235
|
f.observed = args.observed ?? 'settle window elapsed with no falsifying event';
|
|
176
236
|
swept++;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervision-firing-record.js","sourceRoot":"","sources":["../../src/completion/supervision-firing-record.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,qEAAqE;AACrE,sEAAsE;AACtE,mEAAmE;AACnE,6DAA6D;AAC7D,sEAAsE;AACtE
|
|
1
|
+
{"version":3,"file":"supervision-firing-record.js","sourceRoot":"","sources":["../../src/completion/supervision-firing-record.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-lifecycle.d.ts","sourceRoot":"","sources":["../../src/completion/team-lifecycle.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AA+B5D;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,cAAc,CAAC,gBAAgB,CAAC,GAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"team-lifecycle.d.ts","sourceRoot":"","sources":["../../src/completion/team-lifecycle.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AA+B5D;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,cAAc,CAAC,gBAAgB,CAAC,GAChD,OAAO,CA4ET;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAsB1F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAKxC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,mFAAmF;IACnF,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAClC,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;CACtD;AAcD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,qBAAqB,GAC1B,uBAAuB,CAiDzB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,mFAAmF;IACnF,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAClC;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,0EAA0E;IAC1E,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;CACtD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,mBAAmB,GACxB,uBAAuB,CAwDzB;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAyBf;AAwED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAoHf"}
|
|
@@ -9,7 +9,7 @@ import { clearFocusClock } from '../shell/activity-clock-registry.js';
|
|
|
9
9
|
import { clearStdinTurnTracking } from './stdin-turn-tracker.js';
|
|
10
10
|
import { getActiveTeams, markShuttingDown, getShuttingDownAt, clearShuttingDown, clearTeamActivity, getTeamLastActivityAt, releaseFocusSlot, } from '../focus/focus-team-state.js';
|
|
11
11
|
import { resolveIdleTeamStallHours } from '../verify/stall-detector-config.js';
|
|
12
|
-
import { describeTeamClockLiveness, formatClockNote } from './team-liveness-log.js';
|
|
12
|
+
import { describeTeamClockLiveness, formatClockNote, describeIdleWithWorkRemaining } from './team-liveness-log.js';
|
|
13
13
|
import { mergeFocusBranch } from '../merge/focus-merge.js';
|
|
14
14
|
import { escalateMergeConflict } from '../merge/merge-conflict-escalation.js';
|
|
15
15
|
import { runCiMergeToMain } from './merge-phase.js';
|
|
@@ -69,6 +69,12 @@ export function terminateTeam(focusId, shutdownReason) {
|
|
|
69
69
|
team.phase = 'shutting_down';
|
|
70
70
|
markShuttingDown(focusId);
|
|
71
71
|
clearNarration(focusId);
|
|
72
|
+
// Leave no stdin-turn state behind for this focus. The two reaper paths
|
|
73
|
+
// (reapStuckShuttingDownTeams / reapDeadProcessTeams) already clear it; the
|
|
74
|
+
// normal teardown must too, so a count this team accrued can never leak into
|
|
75
|
+
// the suppression guard of a team spawned later on the same focus (delivery
|
|
76
|
+
// be308b50 -- the count must share the detector's lifetime, not the focus's).
|
|
77
|
+
clearStdinTurnTracking(focusId);
|
|
72
78
|
try {
|
|
73
79
|
// Send a deactivation message first to let the team lead process it
|
|
74
80
|
if (team.leadStdin) {
|
|
@@ -347,6 +353,29 @@ async function maybeRunEagerCiMerge(teamConfig, team, deliveries) {
|
|
|
347
353
|
reportDeliveryIds: activeDeliveries.map(d => d.id),
|
|
348
354
|
}, { getCiStatus: resolveCiStatusReader() });
|
|
349
355
|
}
|
|
356
|
+
/**
|
|
357
|
+
* Log whether a team with work remaining is making real motion or has PARKED.
|
|
358
|
+
*
|
|
359
|
+
* "team continues" was logged from delivery status alone -- presence, not
|
|
360
|
+
* liveness -- so a park read identically to healthy progress. The old FROZEN
|
|
361
|
+
* branch keyed on a 3h idle-clock threshold LATER than the 30-min backstop reap,
|
|
362
|
+
* so it could effectively never print. Read the idle-with-work-remaining STAMP
|
|
363
|
+
* instead (set the instant a non-error result arrives with work left,
|
|
364
|
+
* spawn/idle-work-stamp.ts): a parked team is named at the moment it parks.
|
|
365
|
+
*/
|
|
366
|
+
function logTeamProgressOrPark(team, teamWorkCount) {
|
|
367
|
+
const nowMs = Date.now();
|
|
368
|
+
const clockNote = formatClockNote(describeTeamClockLiveness(getTeamLastActivityAt(team.focusId), nowMs, resolveIdleTeamStallHours() * 3_600_000));
|
|
369
|
+
const parked = describeIdleWithWorkRemaining(team.idleWithWorkRemainingAt, team.idleOutstandingDeliveryIds?.length ?? teamWorkCount, nowMs);
|
|
370
|
+
if (parked.parked) {
|
|
371
|
+
log.warn(`[focus-executor] ${teamWorkCount} delivery(ies) still queued/running for "${team.focusName}" -- ` +
|
|
372
|
+
`team PARKED (${parked.note}; ${clockNote}); re-engagement is pending, not the 3h idle timer`);
|
|
373
|
+
}
|
|
374
|
+
else {
|
|
375
|
+
log.info(`[focus-executor] ${teamWorkCount} delivery(ies) still queued/running for "${team.focusName}" -- ` +
|
|
376
|
+
`team continues (${clockNote})`);
|
|
377
|
+
}
|
|
378
|
+
}
|
|
350
379
|
/**
|
|
351
380
|
* Check active teams for newly completed deliveries and merge
|
|
352
381
|
* the focus branch to integration incrementally.
|
|
@@ -434,23 +463,10 @@ export async function checkAndMergeCompletedDeliveries(config) {
|
|
|
434
463
|
// Otherwise the team is idle, waiting for the daemon to push new work.
|
|
435
464
|
const teamWork = deliveries.filter(d => isStatusAgentActionable(d.executionStatus ?? ''));
|
|
436
465
|
if (teamWork.length > 0) {
|
|
437
|
-
//
|
|
438
|
-
//
|
|
439
|
-
//
|
|
440
|
-
|
|
441
|
-
// frozen team itself via checkIdleTeamStallForFocus; the warn just makes a
|
|
442
|
-
// repeatedly-frozen "team continues" greppable for an operator.
|
|
443
|
-
const liveness = describeTeamClockLiveness(getTeamLastActivityAt(team.focusId), Date.now(), resolveIdleTeamStallHours() * 3_600_000);
|
|
444
|
-
const clockNote = formatClockNote(liveness);
|
|
445
|
-
if (liveness.frozen) {
|
|
446
|
-
log.warn(`[focus-executor] ${teamWork.length} delivery(ies) still queued/running for "${team.focusName}" -- ` +
|
|
447
|
-
`team continues but its activity clock is FROZEN (${clockNote}, past the idle-stall threshold); ` +
|
|
448
|
-
`idle-team recovery is pending`);
|
|
449
|
-
}
|
|
450
|
-
else {
|
|
451
|
-
log.info(`[focus-executor] ${teamWork.length} delivery(ies) still queued/running for "${team.focusName}" -- ` +
|
|
452
|
-
`team continues (${clockNote})`);
|
|
453
|
-
}
|
|
466
|
+
// Diagnostic only: name a PARKED team apart from one making real motion
|
|
467
|
+
// (extracted to logTeamProgressOrPark to keep this function under its size
|
|
468
|
+
// floor). The daemon still recovers/re-engages the team through its own paths.
|
|
469
|
+
logTeamProgressOrPark(team, teamWork.length);
|
|
454
470
|
continue;
|
|
455
471
|
}
|
|
456
472
|
// No queued/running deliveries -- team is idle, completion detector
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-lifecycle.js","sourceRoot":"","sources":["../../src/completion/team-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"team-lifecycle.js","sourceRoot":"","sources":["../../src/completion/team-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,4 +27,25 @@ export interface TeamClockLiveness {
|
|
|
27
27
|
export declare function describeTeamClockLiveness(lastActivityMs: number | null, nowMs: number, thresholdMs: number): TeamClockLiveness;
|
|
28
28
|
/** Render the clock note for the "team continues" log line. */
|
|
29
29
|
export declare function formatClockNote(liveness: TeamClockLiveness): string;
|
|
30
|
+
/** A team's idle-with-work-remaining (parked) reading for the "team continues" log. */
|
|
31
|
+
export interface IdleWithWorkReading {
|
|
32
|
+
/** true when the idle-with-work-remaining stamp is set -- the lead PARKED with work left. */
|
|
33
|
+
parked: boolean;
|
|
34
|
+
/** Human note naming how long ago it parked and how much work it left. */
|
|
35
|
+
note: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Describe whether a team PARKED with work remaining, from the
|
|
39
|
+
* idle-with-work-remaining stamp (FocusTeamState.idleWithWorkRemainingAt, set in
|
|
40
|
+
* spawn/idle-work-stamp.ts when a non-error result arrives with agent-actionable
|
|
41
|
+
* deliveries left).
|
|
42
|
+
*
|
|
43
|
+
* This replaces the old FROZEN-clock branch of the "team continues" log, whose
|
|
44
|
+
* threshold (resolveIdleTeamStallHours, 3h) was LATER than the 30-min stalled-team
|
|
45
|
+
* backstop reap and so could effectively never print. The stamp fires the instant
|
|
46
|
+
* the lead parks, so a parked team is named at the moment it parks -- not hours
|
|
47
|
+
* later, and not at all. Pure and dependency-free so it unit-tests without process
|
|
48
|
+
* or Supabase state.
|
|
49
|
+
*/
|
|
50
|
+
export declare function describeIdleWithWorkRemaining(idleWithWorkRemainingAt: number | null | undefined, outstandingCount: number, nowMs: number): IdleWithWorkReading;
|
|
30
51
|
//# sourceMappingURL=team-liveness-log.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-liveness-log.d.ts","sourceRoot":"","sources":["../../src/completion/team-liveness-log.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,iBAAiB;IAChC,sFAAsF;IACtF,MAAM,EAAE,OAAO,CAAC;IAChB,+FAA+F;IAC/F,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,iBAAiB,CAInB;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAGnE"}
|
|
1
|
+
{"version":3,"file":"team-liveness-log.d.ts","sourceRoot":"","sources":["../../src/completion/team-liveness-log.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,iBAAiB;IAChC,sFAAsF;IACtF,MAAM,EAAE,OAAO,CAAC;IAChB,+FAA+F;IAC/F,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,iBAAiB,CAInB;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAGnE;AAED,uFAAuF;AACvF,MAAM,WAAW,mBAAmB;IAClC,6FAA6F;IAC7F,MAAM,EAAE,OAAO,CAAC;IAChB,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CAC3C,uBAAuB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAClD,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,MAAM,GACZ,mBAAmB,CAOrB"}
|
|
@@ -18,4 +18,26 @@ export function formatClockNote(liveness) {
|
|
|
18
18
|
return 'no agent events yet';
|
|
19
19
|
return `last agent event ~${Math.floor(liveness.idleMs / 60_000)}m ago`;
|
|
20
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Describe whether a team PARKED with work remaining, from the
|
|
23
|
+
* idle-with-work-remaining stamp (FocusTeamState.idleWithWorkRemainingAt, set in
|
|
24
|
+
* spawn/idle-work-stamp.ts when a non-error result arrives with agent-actionable
|
|
25
|
+
* deliveries left).
|
|
26
|
+
*
|
|
27
|
+
* This replaces the old FROZEN-clock branch of the "team continues" log, whose
|
|
28
|
+
* threshold (resolveIdleTeamStallHours, 3h) was LATER than the 30-min stalled-team
|
|
29
|
+
* backstop reap and so could effectively never print. The stamp fires the instant
|
|
30
|
+
* the lead parks, so a parked team is named at the moment it parks -- not hours
|
|
31
|
+
* later, and not at all. Pure and dependency-free so it unit-tests without process
|
|
32
|
+
* or Supabase state.
|
|
33
|
+
*/
|
|
34
|
+
export function describeIdleWithWorkRemaining(idleWithWorkRemainingAt, outstandingCount, nowMs) {
|
|
35
|
+
if (idleWithWorkRemainingAt == null)
|
|
36
|
+
return { parked: false, note: 'not parked' };
|
|
37
|
+
const agoMin = Math.floor((nowMs - idleWithWorkRemainingAt) / 60_000);
|
|
38
|
+
return {
|
|
39
|
+
parked: true,
|
|
40
|
+
note: `parked with ${outstandingCount} agent-actionable delivery(ies) ~${agoMin}m ago`,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
21
43
|
//# sourceMappingURL=team-liveness-log.js.map
|