@telora/daemon 0.16.3 → 0.16.5
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
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"commitSha": "
|
|
3
|
-
"builtAt": "2026-05-
|
|
2
|
+
"commitSha": "c96baf6d",
|
|
3
|
+
"builtAt": "2026-05-24T21:30:00.814Z",
|
|
4
4
|
"expectedMigrations": [
|
|
5
5
|
"20250829113330_create_org_nodes_table.sql",
|
|
6
6
|
"20250829113402_fix_function_security_search_path.sql",
|
|
@@ -584,6 +584,9 @@
|
|
|
584
584
|
"20260524122410_create_agent_context_assembly.sql",
|
|
585
585
|
"20260524122420_add_phase_stage_to_telemetry_metrics.sql",
|
|
586
586
|
"20260524122430_create_by_lever_efficiency_views.sql",
|
|
587
|
-
"20260524122440_create_outcome_correlation_views.sql"
|
|
587
|
+
"20260524122440_create_outcome_correlation_views.sql",
|
|
588
|
+
"20260524122441_create_focus_token_detail_views.sql",
|
|
589
|
+
"20260524163802_drop_delivery_scoped_security_workflow_assignment.sql",
|
|
590
|
+
"20260524165444_resolve_effective_workflow_deterministic_builtin_fallback.sql"
|
|
588
591
|
]
|
|
589
592
|
}
|
|
@@ -6,12 +6,29 @@
|
|
|
6
6
|
* (for planning teams) refresh from MCP-written deliveries / escalate.
|
|
7
7
|
*/
|
|
8
8
|
import type { ChildProcess } from 'node:child_process';
|
|
9
|
-
import type { DaemonConfig, FocusTeamState, FocusDeliveryInfo, FocusIssueInfo, ProgressSnapshot } from './types.js';
|
|
9
|
+
import type { DaemonConfig, FocusTeamState, FocusDeliveryInfo, FocusIssueInfo, ProgressSnapshot, Workflow } from './types.js';
|
|
10
10
|
import { CompletionDetector, type CompletionInfo } from './completion-detector.js';
|
|
11
11
|
/** Reason string emitted when a planning team produces no deliveries. */
|
|
12
12
|
export declare const PLANNING_NO_DELIVERIES_REASON = "planning produced no deliveries";
|
|
13
13
|
/** Reason string emitted when re-engagement is bounded by no-progress limit. */
|
|
14
14
|
export declare const NO_PROGRESS_ESCALATION_REASON = "team unable to make progress on remaining deliveries";
|
|
15
|
+
/**
|
|
16
|
+
* Reason string emitted when the team has no actionable work AND a remaining
|
|
17
|
+
* non-terminal delivery cannot be advanced by the daemon either -- a structural
|
|
18
|
+
* dead end (missing workflow stage / no automatic transition out). Filed once,
|
|
19
|
+
* never re-fired, so the focus stops thrashing spawn->idle-exit->respawn.
|
|
20
|
+
*/
|
|
21
|
+
export declare const NON_ADVANCEABLE_ESCALATION_REASON = "delivery cannot be advanced and the team has no actionable work";
|
|
22
|
+
/**
|
|
23
|
+
* Cause discriminator stamped on the escalation metadata. The escalation_kind
|
|
24
|
+
* stays 'team_failure' (a value the agent_escalations CHECK constraint already
|
|
25
|
+
* accepts AND that the existing respawn guard -- hasOpenTeamFailureEscalation /
|
|
26
|
+
* applyRespawnGuard -- already suppresses), so no migration is required and
|
|
27
|
+
* respawn suppression composes for free. metadata.cause distinguishes this
|
|
28
|
+
* structural dead-end from a genuine effort-based no-progress failure during
|
|
29
|
+
* triage.
|
|
30
|
+
*/
|
|
31
|
+
export declare const NON_ADVANCEABLE_CAUSE = "non_advanceable_delivery";
|
|
15
32
|
/**
|
|
16
33
|
* Maximum consecutive re-engagement cycles with no measurable progress before
|
|
17
34
|
* the scope-coverage guard escalates. Configurable via env so operators can
|
|
@@ -47,6 +64,19 @@ export interface CompletionEventDeps {
|
|
|
47
64
|
}) => Promise<void>;
|
|
48
65
|
terminateTeam: (focusId: string) => boolean;
|
|
49
66
|
advanceDeliveryStatuses: (config: DaemonConfig, teamState: FocusTeamState, sessionId: string) => Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Resolve the effective workflow (with transitions) for a delivery so the
|
|
69
|
+
* non-advanceability guard can check for an automatic transition out of the
|
|
70
|
+
* delivery's current stage. Uses the transitions-included fetch -- the plain
|
|
71
|
+
* fetchEffectiveWorkflow strips transitions.
|
|
72
|
+
*/
|
|
73
|
+
fetchEffectiveWorkflow: (deliveryId: string) => Promise<Workflow>;
|
|
74
|
+
/**
|
|
75
|
+
* True when an open (pending/in_review) team_failure escalation already
|
|
76
|
+
* names this focus. Backs the idempotency guard: at most one open escalation
|
|
77
|
+
* per stuck focus, so the guard does not file a fresh row every tick.
|
|
78
|
+
*/
|
|
79
|
+
hasOpenTeamFailureEscalation: (focusId: string) => Promise<boolean>;
|
|
50
80
|
}
|
|
51
81
|
/**
|
|
52
82
|
* Escalate when a planning team finishes its initial turn without writing
|
|
@@ -61,6 +91,35 @@ export declare function escalatePlanningFailure(params: {
|
|
|
61
91
|
focusName: string;
|
|
62
92
|
agentRoleId: string;
|
|
63
93
|
}, deps?: Pick<CompletionEventDeps, 'createEscalation'>): Promise<void>;
|
|
94
|
+
/**
|
|
95
|
+
* A non-terminal delivery is *non-advanceable* when neither the team nor the
|
|
96
|
+
* daemon can move it forward. Two structural dead ends qualify:
|
|
97
|
+
*
|
|
98
|
+
* (a) Its resolved current_workflow_stage_id is NULL. advanceDeliveryStatuses
|
|
99
|
+
* bails with "no workflow stage ID, skipping advance" -- the delivery can
|
|
100
|
+
* never advance through the workflow.
|
|
101
|
+
* (b) Its effective workflow has NO is_automatic transition out of its current
|
|
102
|
+
* stage. The daemon only auto-advances over automatic transitions, so a
|
|
103
|
+
* stage with only manual (human-gated) exits is a daemon dead end.
|
|
104
|
+
*
|
|
105
|
+
* Pure and synchronous: the caller resolves the delivery's effective workflow
|
|
106
|
+
* (via fetchEffectiveWorkflow, transitions included) and passes both in. The
|
|
107
|
+
* caller is responsible for having already classified the delivery as
|
|
108
|
+
* non-terminal -- this function does not re-check that.
|
|
109
|
+
*
|
|
110
|
+
* Exported so tests and sister deliveries can verify the contract directly.
|
|
111
|
+
*/
|
|
112
|
+
export declare function isDeliveryNonAdvanceable(delivery: Pick<FocusDeliveryInfo, 'currentWorkflowStageId'>, workflow: Workflow): boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Find the first remaining non-terminal delivery that is non-advanceable.
|
|
115
|
+
* Resolves each delivery's effective workflow lazily and returns as soon as a
|
|
116
|
+
* dead-end delivery is found (short-circuit). Returns null when every remaining
|
|
117
|
+
* non-terminal delivery has a live forward path.
|
|
118
|
+
*
|
|
119
|
+
* Exported with the workflow fetch injected so tests can drive it without live
|
|
120
|
+
* Supabase/MCP.
|
|
121
|
+
*/
|
|
122
|
+
export declare function findNonAdvanceableDelivery(nonTerminal: FocusDeliveryInfo[], fetchEffectiveWorkflow: (deliveryId: string) => Promise<Workflow>): Promise<FocusDeliveryInfo | null>;
|
|
64
123
|
/**
|
|
65
124
|
* Handle a 'complete' event from the CompletionDetector.
|
|
66
125
|
*
|
|
@@ -98,4 +157,27 @@ export declare function escalateNoProgress(params: {
|
|
|
98
157
|
cycles: number;
|
|
99
158
|
remaining: FocusDeliveryInfo[];
|
|
100
159
|
}, deps?: Pick<CompletionEventDeps, 'createEscalation'>): Promise<void>;
|
|
160
|
+
/**
|
|
161
|
+
* Escalate when the team has no actionable work AND a remaining non-terminal
|
|
162
|
+
* delivery is structurally non-advanceable (NULL workflow stage, or no
|
|
163
|
+
* automatic transition out of its current stage). This is the thrash-guard:
|
|
164
|
+
* without it the focus respawns a team every poll that immediately idle-exits,
|
|
165
|
+
* burning budget unbounded.
|
|
166
|
+
*
|
|
167
|
+
* Filed as escalation_kind 'team_failure' so the existing respawn guard
|
|
168
|
+
* (hasOpenTeamFailureEscalation / applyRespawnGuard) suppresses respawn until a
|
|
169
|
+
* human resolves it. metadata.cause = NON_ADVANCEABLE_CAUSE distinguishes it
|
|
170
|
+
* from an effort-based no-progress failure during triage.
|
|
171
|
+
*
|
|
172
|
+
* Exported so tests and sister deliveries can verify the contract.
|
|
173
|
+
*/
|
|
174
|
+
export declare function escalateNonAdvanceable(params: {
|
|
175
|
+
organizationId: string;
|
|
176
|
+
sessionId: string;
|
|
177
|
+
focusId: string;
|
|
178
|
+
focusName: string;
|
|
179
|
+
agentRoleId: string;
|
|
180
|
+
stuck: FocusDeliveryInfo;
|
|
181
|
+
remaining: FocusDeliveryInfo[];
|
|
182
|
+
}, deps?: Pick<CompletionEventDeps, 'createEscalation'>): Promise<void>;
|
|
101
183
|
//# sourceMappingURL=focus-completion-event.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-completion-event.d.ts","sourceRoot":"","sources":["../src/focus-completion-event.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"focus-completion-event.d.ts","sourceRoot":"","sources":["../src/focus-completion-event.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,12 +11,30 @@ import { getFocusDeliveries, getFocusIssues } from './queries/focuses.js';
|
|
|
11
11
|
import { buildWakeMessage, buildReEngagementMessage } from './focus-prompt-builder.js';
|
|
12
12
|
import { OPEN_ISSUE_STATUSES } from './constants.js';
|
|
13
13
|
import { terminateTeam as defaultTerminateTeam } from './focus-team-lifecycle.js';
|
|
14
|
-
import { createEscalation as defaultCreateEscalation } from './queries/issues.js';
|
|
14
|
+
import { createEscalation as defaultCreateEscalation, hasOpenTeamFailureEscalation as defaultHasOpenTeamFailureEscalation, } from './queries/issues.js';
|
|
15
15
|
import { advanceDeliveryStatuses as defaultAdvanceDeliveryStatuses } from './focus-completion.js';
|
|
16
|
+
import { fetchEffectiveWorkflowWithTransitions as defaultFetchEffectiveWorkflowWithTransitions } from './queries/workflows.js';
|
|
16
17
|
/** Reason string emitted when a planning team produces no deliveries. */
|
|
17
18
|
export const PLANNING_NO_DELIVERIES_REASON = 'planning produced no deliveries';
|
|
18
19
|
/** Reason string emitted when re-engagement is bounded by no-progress limit. */
|
|
19
20
|
export const NO_PROGRESS_ESCALATION_REASON = 'team unable to make progress on remaining deliveries';
|
|
21
|
+
/**
|
|
22
|
+
* Reason string emitted when the team has no actionable work AND a remaining
|
|
23
|
+
* non-terminal delivery cannot be advanced by the daemon either -- a structural
|
|
24
|
+
* dead end (missing workflow stage / no automatic transition out). Filed once,
|
|
25
|
+
* never re-fired, so the focus stops thrashing spawn->idle-exit->respawn.
|
|
26
|
+
*/
|
|
27
|
+
export const NON_ADVANCEABLE_ESCALATION_REASON = 'delivery cannot be advanced and the team has no actionable work';
|
|
28
|
+
/**
|
|
29
|
+
* Cause discriminator stamped on the escalation metadata. The escalation_kind
|
|
30
|
+
* stays 'team_failure' (a value the agent_escalations CHECK constraint already
|
|
31
|
+
* accepts AND that the existing respawn guard -- hasOpenTeamFailureEscalation /
|
|
32
|
+
* applyRespawnGuard -- already suppresses), so no migration is required and
|
|
33
|
+
* respawn suppression composes for free. metadata.cause distinguishes this
|
|
34
|
+
* structural dead-end from a genuine effort-based no-progress failure during
|
|
35
|
+
* triage.
|
|
36
|
+
*/
|
|
37
|
+
export const NON_ADVANCEABLE_CAUSE = 'non_advanceable_delivery';
|
|
20
38
|
/**
|
|
21
39
|
* Maximum consecutive re-engagement cycles with no measurable progress before
|
|
22
40
|
* the scope-coverage guard escalates. Configurable via env so operators can
|
|
@@ -35,6 +53,8 @@ const defaultDeps = {
|
|
|
35
53
|
createEscalation: defaultCreateEscalation,
|
|
36
54
|
terminateTeam: defaultTerminateTeam,
|
|
37
55
|
advanceDeliveryStatuses: defaultAdvanceDeliveryStatuses,
|
|
56
|
+
fetchEffectiveWorkflow: defaultFetchEffectiveWorkflowWithTransitions,
|
|
57
|
+
hasOpenTeamFailureEscalation: defaultHasOpenTeamFailureEscalation,
|
|
38
58
|
};
|
|
39
59
|
/**
|
|
40
60
|
* Escalate when a planning team finishes its initial turn without writing
|
|
@@ -67,6 +87,70 @@ export async function escalatePlanningFailure(params, deps = defaultDeps) {
|
|
|
67
87
|
console.error(`[focus-executor] Failed to create planning-failure escalation for "${focusName}": ${err.message}`);
|
|
68
88
|
}
|
|
69
89
|
}
|
|
90
|
+
// ── Non-advanceability check ──────────────────────────────────────────────
|
|
91
|
+
/**
|
|
92
|
+
* A non-terminal delivery is *non-advanceable* when neither the team nor the
|
|
93
|
+
* daemon can move it forward. Two structural dead ends qualify:
|
|
94
|
+
*
|
|
95
|
+
* (a) Its resolved current_workflow_stage_id is NULL. advanceDeliveryStatuses
|
|
96
|
+
* bails with "no workflow stage ID, skipping advance" -- the delivery can
|
|
97
|
+
* never advance through the workflow.
|
|
98
|
+
* (b) Its effective workflow has NO is_automatic transition out of its current
|
|
99
|
+
* stage. The daemon only auto-advances over automatic transitions, so a
|
|
100
|
+
* stage with only manual (human-gated) exits is a daemon dead end.
|
|
101
|
+
*
|
|
102
|
+
* Pure and synchronous: the caller resolves the delivery's effective workflow
|
|
103
|
+
* (via fetchEffectiveWorkflow, transitions included) and passes both in. The
|
|
104
|
+
* caller is responsible for having already classified the delivery as
|
|
105
|
+
* non-terminal -- this function does not re-check that.
|
|
106
|
+
*
|
|
107
|
+
* Exported so tests and sister deliveries can verify the contract directly.
|
|
108
|
+
*/
|
|
109
|
+
export function isDeliveryNonAdvanceable(delivery, workflow) {
|
|
110
|
+
// (a) No resolved stage -> advanceDeliveryStatuses skips it.
|
|
111
|
+
const stageId = delivery.currentWorkflowStageId;
|
|
112
|
+
if (!stageId)
|
|
113
|
+
return true;
|
|
114
|
+
// (b) No automatic transition out of the current stage. Treat a workflow
|
|
115
|
+
// that carries no transitions at all (e.g. a built-in default resolved
|
|
116
|
+
// without the transition set) as non-advanceable for this stage, since the
|
|
117
|
+
// daemon has no automatic edge to follow.
|
|
118
|
+
const transitions = workflow.transitions ?? [];
|
|
119
|
+
const hasAutomaticExit = transitions.some(t => t.from_stage_id === stageId && t.is_automatic === true);
|
|
120
|
+
return !hasAutomaticExit;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Find the first remaining non-terminal delivery that is non-advanceable.
|
|
124
|
+
* Resolves each delivery's effective workflow lazily and returns as soon as a
|
|
125
|
+
* dead-end delivery is found (short-circuit). Returns null when every remaining
|
|
126
|
+
* non-terminal delivery has a live forward path.
|
|
127
|
+
*
|
|
128
|
+
* Exported with the workflow fetch injected so tests can drive it without live
|
|
129
|
+
* Supabase/MCP.
|
|
130
|
+
*/
|
|
131
|
+
export async function findNonAdvanceableDelivery(nonTerminal, fetchEffectiveWorkflow) {
|
|
132
|
+
for (const delivery of nonTerminal) {
|
|
133
|
+
// Fast path: a NULL stage is non-advanceable without needing the workflow.
|
|
134
|
+
if (!delivery.currentWorkflowStageId) {
|
|
135
|
+
return delivery;
|
|
136
|
+
}
|
|
137
|
+
try {
|
|
138
|
+
const workflow = await fetchEffectiveWorkflow(delivery.id);
|
|
139
|
+
if (isDeliveryNonAdvanceable(delivery, workflow)) {
|
|
140
|
+
return delivery;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
// Fail safe: if we cannot resolve the workflow we cannot prove the
|
|
145
|
+
// delivery is non-advanceable, so we do NOT escalate on it. Treat the
|
|
146
|
+
// lookup failure as "advanceable" and let the normal clean-termination
|
|
147
|
+
// path run -- a spurious escalation that parks a healthy focus is worse
|
|
148
|
+
// than one missed dead-end detection (the next tick retries).
|
|
149
|
+
console.warn(`[focus-executor] Non-advanceability workflow lookup failed for delivery ${delivery.id}: ${err.message}`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
70
154
|
// ── Handler ─────────────────────────────────────────────────────────────
|
|
71
155
|
/**
|
|
72
156
|
* Handle a 'complete' event from the CompletionDetector.
|
|
@@ -179,14 +263,84 @@ export async function handleCompletionEvent(ctx, deps = defaultDeps) {
|
|
|
179
263
|
const postHasActionableOpen = currentIssues.some(i => postActionableIds.has(i.deliveryId) && OPEN_ISSUE_STATUSES.has(i.status));
|
|
180
264
|
const hasPlanning = effectiveDeliveries.some(d => (d.executionStatus ?? '') === 'planning');
|
|
181
265
|
const teamHasActionableWork = hasPlanning || postHasActionableOpen;
|
|
266
|
+
// Capture the (post-advance) snapshot for progress detection. Treat both null
|
|
267
|
+
// and undefined as "no prior snapshot" -- legacy test fixtures may not set
|
|
268
|
+
// the field, and a fresh team has lastProgressSnapshot=null. Snapshotting the
|
|
269
|
+
// effective (refreshed) deliveries ensures a self-heal that moved a delivery
|
|
270
|
+
// out of verify_failed registers as progress and resets the counter.
|
|
271
|
+
//
|
|
272
|
+
// Computed BEFORE the no-actionable-work branch so the non-advanceable guard
|
|
273
|
+
// below can gate on "no progress this cycle" -- the branch returns early, so
|
|
274
|
+
// the original (post-branch) snapshot location was never reached on this path.
|
|
275
|
+
const snapshot = takeProgressSnapshot(effectiveDeliveries, currentIssues);
|
|
276
|
+
const priorSnapshot = teamState.lastProgressSnapshot ?? null;
|
|
277
|
+
const madeProgress = priorSnapshot === null
|
|
278
|
+
? true
|
|
279
|
+
: !snapshotsEqual(priorSnapshot, snapshot);
|
|
182
280
|
// No team-actionable work: every remaining non-terminal delivery is in a
|
|
183
281
|
// daemon/review-managed state the coding team cannot advance (in_review,
|
|
184
282
|
// paused, or a verify_failed the self-heal could not yet clear). The team is
|
|
185
|
-
// NOT stuck on work it can do -- it has nothing to do.
|
|
186
|
-
//
|
|
187
|
-
//
|
|
188
|
-
//
|
|
283
|
+
// NOT stuck on work it can do -- it has nothing to do.
|
|
284
|
+
//
|
|
285
|
+
// Normally this terminates cleanly and lets the daemon (on-exit advance),
|
|
286
|
+
// the listener auto-advance, and the review routing move these deliveries.
|
|
287
|
+
// BUT: if the team made no progress this cycle AND at least one remaining
|
|
288
|
+
// non-terminal delivery is *non-advanceable* (NULL stage, or no automatic
|
|
289
|
+
// transition out of its current stage), nothing -- not the team, not the
|
|
290
|
+
// daemon -- will ever move it. Terminating here just feeds the
|
|
291
|
+
// spawn -> idle-exit -> respawn thrash loop. Per the asymmetry principle the
|
|
292
|
+
// daemon must escalate, never silently churn. File EXACTLY ONE escalation
|
|
293
|
+
// (idempotent: skip if one is already open) and terminate. The escalation
|
|
294
|
+
// is filed as escalation_kind 'team_failure', which the existing respawn
|
|
295
|
+
// guard already suppresses, so the focus is not immediately respawned.
|
|
189
296
|
if (!teamHasActionableWork) {
|
|
297
|
+
if (!madeProgress) {
|
|
298
|
+
// Scope the non-advanceability check to agent-actionable deliveries
|
|
299
|
+
// (queued / coding / verify_failed). Those are the states the team is
|
|
300
|
+
// *expected* to move; when one carries no open issues AND cannot be
|
|
301
|
+
// advanced by the daemon either, it is a true dead end -> the thrash
|
|
302
|
+
// loop. Daemon/review-managed states (in_review, paused) are deliberately
|
|
303
|
+
// excluded: another subsystem owns advancing them, so a NULL/manual stage
|
|
304
|
+
// there is not a thrash dead end and must keep terminating cleanly.
|
|
305
|
+
const candidates = postNonTerminal.filter(d => isStatusAgentActionable(d.executionStatus ?? ''));
|
|
306
|
+
const stuck = await findNonAdvanceableDelivery(candidates, deps.fetchEffectiveWorkflow);
|
|
307
|
+
if (stuck) {
|
|
308
|
+
// Idempotency: at most one open escalation per stuck focus. Skip
|
|
309
|
+
// filing a fresh row when one is already open (fail-open on lookup
|
|
310
|
+
// error -- a duplicate escalation is less harmful than silently
|
|
311
|
+
// resuming the thrash loop).
|
|
312
|
+
let alreadyEscalated = false;
|
|
313
|
+
try {
|
|
314
|
+
alreadyEscalated = await deps.hasOpenTeamFailureEscalation(focusId);
|
|
315
|
+
}
|
|
316
|
+
catch (err) {
|
|
317
|
+
console.warn(`[focus-executor] Open-escalation check failed for "${focusName}", proceeding to escalate: ${err.message}`);
|
|
318
|
+
}
|
|
319
|
+
if (!alreadyEscalated) {
|
|
320
|
+
console.warn(`[focus-executor] Non-advanceable delivery for "${focusName}" -- ` +
|
|
321
|
+
`"${stuck.name}" [${stuck.executionStatus ?? 'draft'}] cannot be advanced ` +
|
|
322
|
+
`(stage=${stuck.currentWorkflowStageId ?? 'NULL'}); escalating and terminating ` +
|
|
323
|
+
`instead of respawning`);
|
|
324
|
+
await escalateNonAdvanceable({
|
|
325
|
+
organizationId: teamState.organizationId,
|
|
326
|
+
sessionId: teamState.leadSessionId ?? '',
|
|
327
|
+
focusId,
|
|
328
|
+
focusName,
|
|
329
|
+
agentRoleId: teamState.roleId,
|
|
330
|
+
stuck,
|
|
331
|
+
remaining: postNonTerminal,
|
|
332
|
+
}, deps);
|
|
333
|
+
}
|
|
334
|
+
else {
|
|
335
|
+
console.log(`[focus-executor] Non-advanceable delivery for "${focusName}" but an open ` +
|
|
336
|
+
`escalation already exists -- terminating without filing a duplicate`);
|
|
337
|
+
}
|
|
338
|
+
teamState.lastProgressSnapshot = snapshot;
|
|
339
|
+
teamState.shutdownReason = 'work_complete';
|
|
340
|
+
deps.terminateTeam(focusId);
|
|
341
|
+
return;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
190
344
|
console.log(`[focus-executor] No team-actionable work remains for "${focusName}" -- ` +
|
|
191
345
|
`${postNonTerminal.length} non-terminal delivery(ies) in daemon-managed states ` +
|
|
192
346
|
`(in_review / paused / verify-pending); terminating cleanly without escalation`);
|
|
@@ -194,16 +348,6 @@ export async function handleCompletionEvent(ctx, deps = defaultDeps) {
|
|
|
194
348
|
deps.terminateTeam(focusId);
|
|
195
349
|
return;
|
|
196
350
|
}
|
|
197
|
-
// Capture the (post-advance) snapshot for progress detection. Treat both null
|
|
198
|
-
// and undefined as "no prior snapshot" -- legacy test fixtures may not set
|
|
199
|
-
// the field, and a fresh team has lastProgressSnapshot=null. Snapshotting the
|
|
200
|
-
// effective (refreshed) deliveries ensures a self-heal that moved a delivery
|
|
201
|
-
// out of verify_failed registers as progress and resets the counter.
|
|
202
|
-
const snapshot = takeProgressSnapshot(effectiveDeliveries, currentIssues);
|
|
203
|
-
const priorSnapshot = teamState.lastProgressSnapshot ?? null;
|
|
204
|
-
const madeProgress = priorSnapshot === null
|
|
205
|
-
? true
|
|
206
|
-
: !snapshotsEqual(priorSnapshot, snapshot);
|
|
207
351
|
if (madeProgress) {
|
|
208
352
|
teamState.noProgressCycles = 0;
|
|
209
353
|
}
|
|
@@ -363,4 +507,74 @@ export async function escalateNoProgress(params, deps = defaultDeps) {
|
|
|
363
507
|
console.error(`[focus-executor] Failed to create no-progress escalation for "${params.focusName}": ${err.message}`);
|
|
364
508
|
}
|
|
365
509
|
}
|
|
510
|
+
/**
|
|
511
|
+
* Escalate when the team has no actionable work AND a remaining non-terminal
|
|
512
|
+
* delivery is structurally non-advanceable (NULL workflow stage, or no
|
|
513
|
+
* automatic transition out of its current stage). This is the thrash-guard:
|
|
514
|
+
* without it the focus respawns a team every poll that immediately idle-exits,
|
|
515
|
+
* burning budget unbounded.
|
|
516
|
+
*
|
|
517
|
+
* Filed as escalation_kind 'team_failure' so the existing respawn guard
|
|
518
|
+
* (hasOpenTeamFailureEscalation / applyRespawnGuard) suppresses respawn until a
|
|
519
|
+
* human resolves it. metadata.cause = NON_ADVANCEABLE_CAUSE distinguishes it
|
|
520
|
+
* from an effort-based no-progress failure during triage.
|
|
521
|
+
*
|
|
522
|
+
* Exported so tests and sister deliveries can verify the contract.
|
|
523
|
+
*/
|
|
524
|
+
export async function escalateNonAdvanceable(params, deps = defaultDeps) {
|
|
525
|
+
const { stuck } = params;
|
|
526
|
+
const remainingList = params.remaining
|
|
527
|
+
.slice()
|
|
528
|
+
.sort((a, b) => a.priorityRank - b.priorityRank)
|
|
529
|
+
.map(d => `- "${d.name}" [${d.executionStatus ?? 'draft'}] (rank ${d.priorityRank}, stage ${d.currentWorkflowStageId ?? 'NULL'})`)
|
|
530
|
+
.join('\n');
|
|
531
|
+
const stageDesc = stuck.currentWorkflowStageId
|
|
532
|
+
? `its current workflow stage (${stuck.currentWorkflowStageId}) has no automatic transition out`
|
|
533
|
+
: 'it has no resolved workflow stage (current_workflow_stage_id is NULL)';
|
|
534
|
+
const metadata = {
|
|
535
|
+
focusId: params.focusId,
|
|
536
|
+
focusName: params.focusName,
|
|
537
|
+
cause: NON_ADVANCEABLE_CAUSE,
|
|
538
|
+
stuckDeliveryId: stuck.id,
|
|
539
|
+
stuckDeliveryName: stuck.name,
|
|
540
|
+
stuckDeliveryStatus: stuck.executionStatus,
|
|
541
|
+
stuckDeliveryStageId: stuck.currentWorkflowStageId,
|
|
542
|
+
};
|
|
543
|
+
const description = `Team for focus "${params.focusName}" terminated because delivery "${stuck.name}" ` +
|
|
544
|
+
`[${stuck.executionStatus ?? 'draft'}] cannot be advanced: ${stageDesc}, and the team ` +
|
|
545
|
+
`has no actionable work. Reason: ${NON_ADVANCEABLE_ESCALATION_REASON}.\n\n` +
|
|
546
|
+
`Left unhandled this loops: the listener re-spawns a team every poll, the team ` +
|
|
547
|
+
`immediately idle-exits with nothing to do, and the delivery never moves -- burning ` +
|
|
548
|
+
`budget with no progress.\n\n` +
|
|
549
|
+
`**Focus:** ${params.focusName}\n` +
|
|
550
|
+
`**Focus ID:** ${params.focusId}\n` +
|
|
551
|
+
`**Agent role:** ${params.agentRoleId}\n` +
|
|
552
|
+
`**Stuck delivery:** "${stuck.name}" (${stuck.id})\n` +
|
|
553
|
+
`**Remaining non-terminal deliveries:**\n${remainingList}\n\n` +
|
|
554
|
+
`The team has been terminated and the focus will not be respawned while this ` +
|
|
555
|
+
`escalation stays open. A human must either give the delivery a workflow stage with ` +
|
|
556
|
+
`an automatic transition, cancel it, or otherwise unblock the focus.`;
|
|
557
|
+
try {
|
|
558
|
+
await withRetry(() => deps.createEscalation({
|
|
559
|
+
organizationId: params.organizationId,
|
|
560
|
+
sessionId: params.sessionId,
|
|
561
|
+
issueId: null,
|
|
562
|
+
reasonType: ESCALATION_REASONS.BLOCKED_BY_EXTERNAL,
|
|
563
|
+
escalationKind: 'team_failure',
|
|
564
|
+
metadata,
|
|
565
|
+
description,
|
|
566
|
+
whatWasTried: `Spawned a team for "${params.focusName}"; it found no actionable work, and the ` +
|
|
567
|
+
`daemon could not advance the remaining non-terminal delivery "${stuck.name}" ` +
|
|
568
|
+
`(${stageDesc}).`,
|
|
569
|
+
helpNeeded: `Give delivery "${stuck.name}" a workflow stage with an automatic transition out ` +
|
|
570
|
+
`(or re-anchor it to the correct workflow), cancel it if it should not proceed, or ` +
|
|
571
|
+
`update the focus so the next team can complete the work.`,
|
|
572
|
+
}), { maxAttempts: 3, label: `escalation-non-advanceable-${params.focusId}` });
|
|
573
|
+
console.log(`[focus-executor] Created non-advanceable (team_failure) escalation for "${params.focusName}" ` +
|
|
574
|
+
`(cause: ${NON_ADVANCEABLE_CAUSE}, delivery: "${stuck.name}")`);
|
|
575
|
+
}
|
|
576
|
+
catch (err) {
|
|
577
|
+
console.error(`[focus-executor] Failed to create non-advanceable escalation for "${params.focusName}": ${err.message}`);
|
|
578
|
+
}
|
|
579
|
+
}
|
|
366
580
|
//# sourceMappingURL=focus-completion-event.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-completion-event.js","sourceRoot":"","sources":["../src/focus-completion-event.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"focus-completion-event.js","sourceRoot":"","sources":["../src/focus-completion-event.ts"],"names":[],"mappings":"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"}
|