@telora/daemon 0.17.36 → 0.17.42
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 +5 -3
- package/dist/assembly-engine.d.ts +6 -0
- package/dist/assembly-engine.d.ts.map +1 -1
- package/dist/assembly-engine.js +19 -0
- package/dist/assembly-engine.js.map +1 -1
- package/dist/assembly-resolvers.d.ts +17 -8
- package/dist/assembly-resolvers.d.ts.map +1 -1
- package/dist/assembly-resolvers.js +19 -8
- package/dist/assembly-resolvers.js.map +1 -1
- package/dist/cli/session-state.d.ts +10 -0
- package/dist/cli/session-state.d.ts.map +1 -1
- package/dist/cli/session-state.js +31 -0
- package/dist/cli/session-state.js.map +1 -1
- package/dist/completion/completion-decision.d.ts +83 -0
- package/dist/completion/completion-decision.d.ts.map +1 -0
- package/dist/completion/completion-decision.js +48 -0
- package/dist/completion/completion-decision.js.map +1 -0
- package/dist/completion/event-escalations.d.ts +97 -0
- package/dist/completion/event-escalations.d.ts.map +1 -0
- package/dist/completion/event-escalations.js +213 -0
- package/dist/completion/event-escalations.js.map +1 -0
- package/dist/completion/event.d.ts +1 -72
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js +148 -322
- package/dist/completion/event.js.map +1 -1
- package/dist/completion/exit-classification.d.ts +82 -0
- package/dist/completion/exit-classification.d.ts.map +1 -0
- package/dist/completion/exit-classification.js +61 -0
- package/dist/completion/exit-classification.js.map +1 -0
- package/dist/completion/index.d.ts +14 -5
- package/dist/completion/index.d.ts.map +1 -1
- package/dist/completion/index.js +14 -5
- package/dist/completion/index.js.map +1 -1
- package/dist/completion/merge-phase.d.ts +114 -0
- package/dist/completion/merge-phase.d.ts.map +1 -0
- package/dist/completion/merge-phase.js +198 -0
- package/dist/completion/merge-phase.js.map +1 -0
- package/dist/completion/review-exit-phase.d.ts +82 -0
- package/dist/completion/review-exit-phase.d.ts.map +1 -0
- package/dist/completion/review-exit-phase.js +228 -0
- package/dist/completion/review-exit-phase.js.map +1 -0
- package/dist/completion/status-advance-phase.d.ts +61 -0
- package/dist/completion/status-advance-phase.d.ts.map +1 -0
- package/dist/completion/status-advance-phase.js +182 -0
- package/dist/completion/status-advance-phase.js.map +1 -0
- package/dist/completion/team-completion.d.ts +28 -269
- package/dist/completion/team-completion.d.ts.map +1 -1
- package/dist/completion/team-completion.js +145 -676
- package/dist/completion/team-completion.js.map +1 -1
- package/dist/daemon-process.d.ts +18 -2
- package/dist/daemon-process.d.ts.map +1 -1
- package/dist/daemon-process.js +7 -2
- package/dist/daemon-process.js.map +1 -1
- package/dist/directive/close-loop-stage.d.ts +50 -0
- package/dist/directive/close-loop-stage.d.ts.map +1 -0
- package/dist/directive/close-loop-stage.js +196 -0
- package/dist/directive/close-loop-stage.js.map +1 -0
- package/dist/directive/directive-assembly.d.ts +33 -0
- package/dist/directive/directive-assembly.d.ts.map +1 -0
- package/dist/directive/directive-assembly.js +77 -0
- package/dist/directive/directive-assembly.js.map +1 -0
- package/dist/directive/directive-dispatch.d.ts +103 -0
- package/dist/directive/directive-dispatch.d.ts.map +1 -0
- package/dist/directive/directive-dispatch.js +279 -0
- package/dist/directive/directive-dispatch.js.map +1 -0
- package/dist/directive/phase-sync.d.ts +89 -0
- package/dist/directive/phase-sync.d.ts.map +1 -0
- package/dist/directive/phase-sync.js +173 -0
- package/dist/directive/phase-sync.js.map +1 -0
- package/dist/directive-executor.d.ts +21 -223
- package/dist/directive-executor.d.ts.map +1 -1
- package/dist/directive-executor.js +28 -687
- package/dist/directive-executor.js.map +1 -1
- package/dist/focus-engine.d.ts.map +1 -1
- package/dist/focus-engine.js +8 -0
- package/dist/focus-engine.js.map +1 -1
- package/dist/focus-executor.d.ts +29 -8
- package/dist/focus-executor.d.ts.map +1 -1
- package/dist/focus-executor.js +29 -10
- package/dist/focus-executor.js.map +1 -1
- package/dist/focus-stage-lifecycle.d.ts +7 -5
- package/dist/focus-stage-lifecycle.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle.js +11 -6
- package/dist/focus-stage-lifecycle.js.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/pipeline-config.d.ts +13 -0
- package/dist/pipeline-config.d.ts.map +1 -1
- package/dist/pipeline-config.js +15 -0
- package/dist/pipeline-config.js.map +1 -1
- package/dist/resolvers/agent-escalations.d.ts +8 -1
- package/dist/resolvers/agent-escalations.d.ts.map +1 -1
- package/dist/resolvers/agent-escalations.js +25 -22
- package/dist/resolvers/agent-escalations.js.map +1 -1
- package/dist/resolvers/agent-session-summaries.d.ts +8 -1
- package/dist/resolvers/agent-session-summaries.d.ts.map +1 -1
- package/dist/resolvers/agent-session-summaries.js +21 -18
- package/dist/resolvers/agent-session-summaries.js.map +1 -1
- package/dist/resolvers/delivery-acceptance-criteria.d.ts +7 -1
- package/dist/resolvers/delivery-acceptance-criteria.d.ts.map +1 -1
- package/dist/resolvers/delivery-acceptance-criteria.js +14 -11
- package/dist/resolvers/delivery-acceptance-criteria.js.map +1 -1
- package/dist/resolvers/delivery-description.d.ts +7 -1
- package/dist/resolvers/delivery-description.d.ts.map +1 -1
- package/dist/resolvers/delivery-description.js +14 -11
- package/dist/resolvers/delivery-description.js.map +1 -1
- package/dist/resolvers/delivery-issues.d.ts +8 -1
- package/dist/resolvers/delivery-issues.d.ts.map +1 -1
- package/dist/resolvers/delivery-issues.js +51 -48
- package/dist/resolvers/delivery-issues.js.map +1 -1
- package/dist/resolvers/delivery-listing.d.ts +16 -1
- package/dist/resolvers/delivery-listing.d.ts.map +1 -1
- package/dist/resolvers/delivery-listing.js +36 -33
- package/dist/resolvers/delivery-listing.js.map +1 -1
- package/dist/resolvers/delivery-tech-context.d.ts +7 -1
- package/dist/resolvers/delivery-tech-context.d.ts.map +1 -1
- package/dist/resolvers/delivery-tech-context.js +14 -11
- package/dist/resolvers/delivery-tech-context.js.map +1 -1
- package/dist/resolvers/deployment-profile.d.ts +8 -1
- package/dist/resolvers/deployment-profile.d.ts.map +1 -1
- package/dist/resolvers/deployment-profile.js +20 -17
- package/dist/resolvers/deployment-profile.js.map +1 -1
- package/dist/resolvers/focus-anchoring-injections.d.ts +26 -1
- package/dist/resolvers/focus-anchoring-injections.d.ts.map +1 -1
- package/dist/resolvers/focus-anchoring-injections.js +91 -88
- package/dist/resolvers/focus-anchoring-injections.js.map +1 -1
- package/dist/resolvers/focus-context.d.ts +9 -1
- package/dist/resolvers/focus-context.d.ts.map +1 -1
- package/dist/resolvers/focus-context.js +38 -35
- package/dist/resolvers/focus-context.js.map +1 -1
- package/dist/resolvers/focus-injections.d.ts +13 -1
- package/dist/resolvers/focus-injections.d.ts.map +1 -1
- package/dist/resolvers/focus-injections.js +60 -57
- package/dist/resolvers/focus-injections.js.map +1 -1
- package/dist/resolvers/focus-last-review-report.d.ts +2 -1
- package/dist/resolvers/focus-last-review-report.d.ts.map +1 -1
- package/dist/resolvers/focus-last-review-report.js +33 -30
- package/dist/resolvers/focus-last-review-report.js.map +1 -1
- package/dist/resolvers/focus-reality-tree.d.ts +15 -1
- package/dist/resolvers/focus-reality-tree.d.ts.map +1 -1
- package/dist/resolvers/focus-reality-tree.js +35 -32
- package/dist/resolvers/focus-reality-tree.js.map +1 -1
- package/dist/resolvers/git-diff-against-base.d.ts +8 -1
- package/dist/resolvers/git-diff-against-base.d.ts.map +1 -1
- package/dist/resolvers/git-diff-against-base.js +33 -30
- package/dist/resolvers/git-diff-against-base.js.map +1 -1
- package/dist/resolvers/guards-evaluation-results.d.ts +7 -1
- package/dist/resolvers/guards-evaluation-results.d.ts.map +1 -1
- package/dist/resolvers/guards-evaluation-results.js +25 -22
- package/dist/resolvers/guards-evaluation-results.js.map +1 -1
- package/dist/resolvers/index.d.ts +22 -40
- package/dist/resolvers/index.d.ts.map +1 -1
- package/dist/resolvers/index.js +112 -41
- package/dist/resolvers/index.js.map +1 -1
- package/dist/resolvers/loop-context.d.ts +18 -1
- package/dist/resolvers/loop-context.d.ts.map +1 -1
- package/dist/resolvers/loop-context.js +21 -18
- package/dist/resolvers/loop-context.js.map +1 -1
- package/dist/resolvers/loop-delivery-index.d.ts +17 -1
- package/dist/resolvers/loop-delivery-index.d.ts.map +1 -1
- package/dist/resolvers/loop-delivery-index.js +51 -48
- package/dist/resolvers/loop-delivery-index.js.map +1 -1
- package/dist/resolvers/loop-documents.d.ts +9 -1
- package/dist/resolvers/loop-documents.d.ts.map +1 -1
- package/dist/resolvers/loop-documents.js +22 -19
- package/dist/resolvers/loop-documents.js.map +1 -1
- package/dist/resolvers/loop-expected-effects.d.ts +11 -1
- package/dist/resolvers/loop-expected-effects.d.ts.map +1 -1
- package/dist/resolvers/loop-expected-effects.js +53 -50
- package/dist/resolvers/loop-expected-effects.js.map +1 -1
- package/dist/resolvers/loop-frt-statement.d.ts +11 -1
- package/dist/resolvers/loop-frt-statement.d.ts.map +1 -1
- package/dist/resolvers/loop-frt-statement.js +28 -25
- package/dist/resolvers/loop-frt-statement.js.map +1 -1
- package/dist/resolvers/loop-injection.d.ts +10 -1
- package/dist/resolvers/loop-injection.d.ts.map +1 -1
- package/dist/resolvers/loop-injection.js +38 -35
- package/dist/resolvers/loop-injection.js.map +1 -1
- package/dist/resolvers/loop-persona.d.ts +20 -1
- package/dist/resolvers/loop-persona.d.ts.map +1 -1
- package/dist/resolvers/loop-persona.js +20 -17
- package/dist/resolvers/loop-persona.js.map +1 -1
- package/dist/resolvers/loop-questions.d.ts +8 -1
- package/dist/resolvers/loop-questions.d.ts.map +1 -1
- package/dist/resolvers/loop-questions.js +39 -36
- package/dist/resolvers/loop-questions.js.map +1 -1
- package/dist/resolvers/loop-upstream-udes.d.ts +11 -1
- package/dist/resolvers/loop-upstream-udes.d.ts.map +1 -1
- package/dist/resolvers/loop-upstream-udes.js +74 -71
- package/dist/resolvers/loop-upstream-udes.js.map +1 -1
- package/dist/resolvers/prd-context.d.ts +2 -0
- package/dist/resolvers/prd-context.d.ts.map +1 -1
- package/dist/resolvers/prd-context.js +16 -13
- package/dist/resolvers/prd-context.js.map +1 -1
- package/dist/resolvers/prd-persona.d.ts +2 -0
- package/dist/resolvers/prd-persona.d.ts.map +1 -1
- package/dist/resolvers/prd-persona.js +6 -3
- package/dist/resolvers/prd-persona.js.map +1 -1
- package/dist/resolvers/reality-metrics.d.ts +8 -1
- package/dist/resolvers/reality-metrics.d.ts.map +1 -1
- package/dist/resolvers/reality-metrics.js +73 -70
- package/dist/resolvers/reality-metrics.js.map +1 -1
- package/dist/resolvers/reality-projections.d.ts +7 -1
- package/dist/resolvers/reality-projections.d.ts.map +1 -1
- package/dist/resolvers/reality-projections.js +35 -32
- package/dist/resolvers/reality-projections.js.map +1 -1
- package/dist/resolvers/reality-tree-snapshot.d.ts +10 -1
- package/dist/resolvers/reality-tree-snapshot.d.ts.map +1 -1
- package/dist/resolvers/reality-tree-snapshot.js +34 -31
- package/dist/resolvers/reality-tree-snapshot.js.map +1 -1
- package/dist/resolvers/retired-injections.d.ts +10 -1
- package/dist/resolvers/retired-injections.d.ts.map +1 -1
- package/dist/resolvers/retired-injections.js +68 -65
- package/dist/resolvers/retired-injections.js.map +1 -1
- package/dist/resolvers/review-outcomes.d.ts +11 -1
- package/dist/resolvers/review-outcomes.d.ts.map +1 -1
- package/dist/resolvers/review-outcomes.js +27 -24
- package/dist/resolvers/review-outcomes.js.map +1 -1
- package/dist/resolvers/security-advisory.d.ts +2 -1
- package/dist/resolvers/security-advisory.d.ts.map +1 -1
- package/dist/resolvers/security-advisory.js +47 -44
- package/dist/resolvers/security-advisory.js.map +1 -1
- package/dist/resolvers/wiki-search.d.ts +8 -1
- package/dist/resolvers/wiki-search.d.ts.map +1 -1
- package/dist/resolvers/wiki-search.js +17 -14
- package/dist/resolvers/wiki-search.js.map +1 -1
- package/dist/resolvers/wiki-topic.d.ts +9 -1
- package/dist/resolvers/wiki-topic.d.ts.map +1 -1
- package/dist/resolvers/wiki-topic.js +21 -18
- package/dist/resolvers/wiki-topic.js.map +1 -1
- package/dist/resolvers/workflow-stages.d.ts +7 -1
- package/dist/resolvers/workflow-stages.d.ts.map +1 -1
- package/dist/resolvers/workflow-stages.js +20 -17
- package/dist/resolvers/workflow-stages.js.map +1 -1
- package/dist/self-update.d.ts +6 -0
- package/dist/self-update.d.ts.map +1 -1
- package/dist/self-update.js +6 -1
- package/dist/self-update.js.map +1 -1
- package/dist/spawner/index.d.ts +2 -1
- package/dist/spawner/index.d.ts.map +1 -1
- package/dist/spawner/index.js +2 -1
- package/dist/spawner/index.js.map +1 -1
- package/dist/spawner/spawn-team.d.ts +14 -52
- package/dist/spawner/spawn-team.d.ts.map +1 -1
- package/dist/spawner/spawn-team.js +14 -469
- package/dist/spawner/spawn-team.js.map +1 -1
- package/dist/staleness.d.ts +124 -0
- package/dist/staleness.d.ts.map +1 -0
- package/dist/staleness.js +215 -0
- package/dist/staleness.js.map +1 -0
- package/dist/state-cascade.d.ts +3 -2
- package/dist/state-cascade.d.ts.map +1 -1
- package/dist/state-cascade.js +7 -3
- package/dist/state-cascade.js.map +1 -1
- package/dist/types/focus.d.ts +5 -4
- package/dist/types/focus.d.ts.map +1 -1
- package/dist/types/session.d.ts +2 -3
- package/dist/types/session.d.ts.map +1 -1
- package/dist/unified-shell.d.ts.map +1 -1
- package/dist/unified-shell.js +21 -12
- package/dist/unified-shell.js.map +1 -1
- package/package.json +2 -2
- package/dist/session-lifecycle.d.ts +0 -78
- package/dist/session-lifecycle.d.ts.map +0 -1
- package/dist/session-lifecycle.js +0 -382
- package/dist/session-lifecycle.js.map +0 -1
package/dist/completion/event.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* team lead completes a work cycle: terminate if done, send more work, or
|
|
6
6
|
* (for planning teams) refresh from MCP-written deliveries / escalate.
|
|
7
7
|
*/
|
|
8
|
-
import { sendMessage,
|
|
8
|
+
import { sendMessage, DELIVERY_STATUS, loadEnvConfig } from '@telora/daemon-core';
|
|
9
9
|
import { isStatusCascadable, isStatusAgentActionable } from '../stage-classifier.js';
|
|
10
10
|
import { getFocusDeliveries, getFocusIssues } from '../queries/focuses.js';
|
|
11
11
|
import { getActiveFocuses } from '../supabase.js';
|
|
@@ -15,27 +15,11 @@ import { terminateTeam as defaultTerminateTeam } from './team-lifecycle.js';
|
|
|
15
15
|
import { createEscalation as defaultCreateEscalation, hasOpenTeamFailureEscalation as defaultHasOpenTeamFailureEscalation, } from '../queries/issues.js';
|
|
16
16
|
import { advanceDeliveryStatuses as defaultAdvanceDeliveryStatuses, runReviewExitHandler as defaultRunReviewExitHandler, } from './team-completion.js';
|
|
17
17
|
import { fetchEffectiveWorkflowWithTransitions as defaultFetchEffectiveWorkflowWithTransitions } from '../queries/workflows.js';
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
* Reason string emitted when the team has no actionable work AND a remaining
|
|
24
|
-
* non-terminal delivery cannot be advanced by the daemon either -- a structural
|
|
25
|
-
* dead end (missing workflow stage / no automatic transition out). Filed once,
|
|
26
|
-
* never re-fired, so the focus stops thrashing spawn->idle-exit->respawn.
|
|
27
|
-
*/
|
|
28
|
-
export const NON_ADVANCEABLE_ESCALATION_REASON = 'delivery cannot be advanced and the team has no actionable work';
|
|
29
|
-
/**
|
|
30
|
-
* Cause discriminator stamped on the escalation metadata. The escalation_kind
|
|
31
|
-
* stays 'team_failure' (a value the agent_escalations CHECK constraint already
|
|
32
|
-
* accepts AND that the existing respawn guard -- hasOpenTeamFailureEscalation /
|
|
33
|
-
* applyRespawnGuard -- already suppresses), so no migration is required and
|
|
34
|
-
* respawn suppression composes for free. metadata.cause distinguishes this
|
|
35
|
-
* structural dead-end from a genuine effort-based no-progress failure during
|
|
36
|
-
* triage.
|
|
37
|
-
*/
|
|
38
|
-
export const NON_ADVANCEABLE_CAUSE = 'non_advanceable_delivery';
|
|
18
|
+
import { decideCompletionAction, shouldCheckNonAdvanceable } from './completion-decision.js';
|
|
19
|
+
// Escalation builders + their reason-string constants live in
|
|
20
|
+
// event-escalations.ts; re-exported here so existing importers are unaffected.
|
|
21
|
+
import { escalatePlanningFailure, escalateNoProgress, escalateNonAdvanceable, } from './event-escalations.js';
|
|
22
|
+
export { PLANNING_NO_DELIVERIES_REASON, NO_PROGRESS_ESCALATION_REASON, NON_ADVANCEABLE_ESCALATION_REASON, NON_ADVANCEABLE_CAUSE, escalatePlanningFailure, escalateNoProgress, escalateNonAdvanceable, } from './event-escalations.js';
|
|
39
23
|
/**
|
|
40
24
|
* Maximum consecutive re-engagement cycles with no measurable progress before
|
|
41
25
|
* the scope-coverage guard escalates. Configurable via env so operators can
|
|
@@ -71,37 +55,6 @@ export function isInReviewWindow(reviewRequestedAt, deliveries) {
|
|
|
71
55
|
return false;
|
|
72
56
|
return deliveries.some(d => d.executionStatus === DELIVERY_STATUS.VERIFY);
|
|
73
57
|
}
|
|
74
|
-
/**
|
|
75
|
-
* Escalate when a planning team finishes its initial turn without writing
|
|
76
|
-
* any deliveries via MCP. The team is then terminated -- no respawn.
|
|
77
|
-
*
|
|
78
|
-
* Exported so tests and sister deliveries can verify the contract.
|
|
79
|
-
*/
|
|
80
|
-
export async function escalatePlanningFailure(params, deps = defaultDeps) {
|
|
81
|
-
const { sessionId, focusName, agentRoleId } = params;
|
|
82
|
-
try {
|
|
83
|
-
await withRetry(() => deps.createEscalation({
|
|
84
|
-
organizationId: params.organizationId,
|
|
85
|
-
sessionId,
|
|
86
|
-
issueId: null,
|
|
87
|
-
reasonType: ESCALATION_REASONS.NEEDS_CLARIFICATION,
|
|
88
|
-
description: `Planning team for focus "${focusName}" finished its initial turn without ` +
|
|
89
|
-
`creating any deliveries. Reason: ${PLANNING_NO_DELIVERIES_REASON}.\n\n` +
|
|
90
|
-
`**Focus:** ${focusName}\n` +
|
|
91
|
-
`**Focus ID:** ${params.focusId}\n` +
|
|
92
|
-
`**Agent role:** ${agentRoleId}\n\n` +
|
|
93
|
-
`The team has been terminated. A human must either scope the focus ` +
|
|
94
|
-
`manually or re-queue it after clarifying intent.`,
|
|
95
|
-
whatWasTried: `Spawned a planning team to scope deliveries for "${focusName}".`,
|
|
96
|
-
helpNeeded: `Review the focus intent and either scope deliveries manually or update the focus description so the next planning attempt can succeed.`,
|
|
97
|
-
}), { maxAttempts: 3, label: `escalation-planning-no-deliveries-${params.focusId}` });
|
|
98
|
-
console.log(`[focus-executor] Created planning-failure escalation for "${focusName}" ` +
|
|
99
|
-
`(reason: ${PLANNING_NO_DELIVERIES_REASON})`);
|
|
100
|
-
}
|
|
101
|
-
catch (err) {
|
|
102
|
-
console.error(`[focus-executor] Failed to create planning-failure escalation for "${focusName}": ${err.message}`);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
58
|
// ── Non-advanceability check ──────────────────────────────────────────────
|
|
106
59
|
/**
|
|
107
60
|
* A delivery is *non-advanceable* when neither the team nor the daemon can move
|
|
@@ -384,132 +337,152 @@ export async function handleCompletionEvent(ctx, deps = defaultDeps) {
|
|
|
384
337
|
// unchanged snapshot (genuinely stuck), but true when the team actually moved
|
|
385
338
|
// state this cycle (a live, progressing team is not wedged).
|
|
386
339
|
const advancedThisCycle = priorSnapshot !== null && !snapshotsEqual(priorSnapshot, snapshot);
|
|
387
|
-
//
|
|
388
|
-
//
|
|
389
|
-
//
|
|
390
|
-
//
|
|
340
|
+
// ── Decide: handoff vs terminate ────────────────────────────────────────
|
|
341
|
+
// The decision tree is pure and isolated in completion-decision.ts
|
|
342
|
+
// (decideCompletionAction); this handler computes the facts and executes
|
|
343
|
+
// the chosen action's side effects.
|
|
391
344
|
//
|
|
392
|
-
//
|
|
393
|
-
//
|
|
394
|
-
//
|
|
395
|
-
//
|
|
396
|
-
//
|
|
397
|
-
//
|
|
398
|
-
//
|
|
399
|
-
//
|
|
400
|
-
//
|
|
401
|
-
//
|
|
402
|
-
//
|
|
403
|
-
//
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
focusName,
|
|
441
|
-
agentRoleId: teamState.roleId,
|
|
442
|
-
stuck,
|
|
443
|
-
remaining: postNonTerminal,
|
|
444
|
-
}, deps);
|
|
445
|
-
}
|
|
446
|
-
else {
|
|
447
|
-
console.log(`[focus-executor] Non-advanceable delivery for "${focusName}" but an open ` +
|
|
448
|
-
`escalation already exists -- terminating without filing a duplicate`);
|
|
449
|
-
}
|
|
450
|
-
teamState.lastProgressSnapshot = snapshot;
|
|
451
|
-
teamState.shutdownReason = 'work_complete';
|
|
452
|
-
deps.terminateTeam(focusId);
|
|
453
|
-
return;
|
|
345
|
+
// Non-advanceability lookup, gated by shouldCheckNonAdvanceable: scoped to
|
|
346
|
+
// agent-actionable deliveries (queued / coding / verify_failed). Those are
|
|
347
|
+
// the states the team is *expected* to move; when one carries no open
|
|
348
|
+
// issues AND cannot be advanced by the daemon either, it is a true dead
|
|
349
|
+
// end -> the thrash loop. Daemon/review-managed states (in_review, paused)
|
|
350
|
+
// are deliberately excluded: another subsystem owns advancing them, so a
|
|
351
|
+
// NULL/manual stage there is not a thrash dead end and must keep
|
|
352
|
+
// terminating cleanly. Gated on !advancedThisCycle (NOT !madeProgress):
|
|
353
|
+
// the daemon respawns the team every poll, so a wedged focus reaches here
|
|
354
|
+
// with a null prior snapshot EVERY cycle. !madeProgress was therefore never
|
|
355
|
+
// true on the live thrash path and the guard never fired -- the focus
|
|
356
|
+
// churned a fresh team indefinitely.
|
|
357
|
+
let stuck = null;
|
|
358
|
+
if (shouldCheckNonAdvanceable({ teamHasActionableWork, advancedThisCycle })) {
|
|
359
|
+
const candidates = postNonTerminal.filter(d => isStatusAgentActionable(d.executionStatus ?? ''));
|
|
360
|
+
stuck = await findNonAdvanceableDelivery(candidates, deps.fetchEffectiveWorkflow);
|
|
361
|
+
}
|
|
362
|
+
// The no-progress counter value AFTER this cycle's reset-or-increment.
|
|
363
|
+
// Only committed to teamState on the actionable-work paths below -- the
|
|
364
|
+
// no-actionable-work terminations deliberately do not touch the counter
|
|
365
|
+
// (matching the pre-decision-extraction behavior).
|
|
366
|
+
const updatedNoProgressCycles = madeProgress ? 0 : (teamState.noProgressCycles ?? 0) + 1;
|
|
367
|
+
const action = decideCompletionAction({
|
|
368
|
+
teamHasActionableWork,
|
|
369
|
+
advancedThisCycle,
|
|
370
|
+
hasNonAdvanceableStuck: stuck !== null,
|
|
371
|
+
noProgressCycles: updatedNoProgressCycles,
|
|
372
|
+
noProgressLimit: SCOPE_COVERAGE_NO_PROGRESS_LIMIT,
|
|
373
|
+
hasActionableOpenIssues: postHasActionableOpen,
|
|
374
|
+
});
|
|
375
|
+
switch (action.kind) {
|
|
376
|
+
case 'escalate_non_advanceable_and_terminate': {
|
|
377
|
+
// No team-actionable work AND the team did not advance state this cycle
|
|
378
|
+
// AND at least one remaining non-terminal delivery is *non-advanceable*
|
|
379
|
+
// (NULL stage, or no automatic transition out of its current stage):
|
|
380
|
+
// nothing -- not the team, not the daemon -- will ever move it.
|
|
381
|
+
// Terminating cleanly would just feed the spawn -> idle-exit -> respawn
|
|
382
|
+
// thrash loop. Per the asymmetry principle the daemon must escalate,
|
|
383
|
+
// never silently churn. File EXACTLY ONE escalation (idempotent: skip if
|
|
384
|
+
// one is already open) and terminate. The escalation is filed as
|
|
385
|
+
// escalation_kind 'team_failure', which the existing respawn guard
|
|
386
|
+
// already suppresses, so the focus is not immediately respawned.
|
|
387
|
+
let alreadyEscalated = false;
|
|
388
|
+
try {
|
|
389
|
+
alreadyEscalated = await deps.hasOpenTeamFailureEscalation(focusId);
|
|
390
|
+
}
|
|
391
|
+
catch (err) {
|
|
392
|
+
console.warn(`[focus-executor] Open-escalation check failed for "${focusName}", proceeding to escalate: ${err.message}`);
|
|
454
393
|
}
|
|
394
|
+
if (!alreadyEscalated) {
|
|
395
|
+
console.warn(`[focus-executor] Non-advanceable delivery for "${focusName}" -- ` +
|
|
396
|
+
`"${stuck.name}" [${stuck.executionStatus ?? 'draft'}] cannot be advanced ` +
|
|
397
|
+
`(stage=${stuck.currentWorkflowStageId ?? 'NULL'}); escalating and terminating ` +
|
|
398
|
+
`instead of respawning`);
|
|
399
|
+
await escalateNonAdvanceable({
|
|
400
|
+
organizationId: teamState.organizationId,
|
|
401
|
+
sessionId: teamState.leadSessionId ?? '',
|
|
402
|
+
focusId,
|
|
403
|
+
focusName,
|
|
404
|
+
agentRoleId: teamState.roleId,
|
|
405
|
+
stuck: stuck,
|
|
406
|
+
remaining: postNonTerminal,
|
|
407
|
+
}, deps);
|
|
408
|
+
}
|
|
409
|
+
else {
|
|
410
|
+
console.log(`[focus-executor] Non-advanceable delivery for "${focusName}" but an open ` +
|
|
411
|
+
`escalation already exists -- terminating without filing a duplicate`);
|
|
412
|
+
}
|
|
413
|
+
teamState.lastProgressSnapshot = snapshot;
|
|
414
|
+
teamState.shutdownReason = 'work_complete';
|
|
415
|
+
deps.terminateTeam(focusId);
|
|
416
|
+
return;
|
|
417
|
+
}
|
|
418
|
+
case 'terminate_no_actionable_work': {
|
|
419
|
+
// Every remaining non-terminal delivery is in a daemon/review-managed
|
|
420
|
+
// state the coding team cannot advance (in_review, paused, or a
|
|
421
|
+
// verify_failed the self-heal could not yet clear). The team is NOT
|
|
422
|
+
// stuck on work it can do -- it has nothing to do. Terminate cleanly
|
|
423
|
+
// and let the daemon (on-exit advance), the listener auto-advance, and
|
|
424
|
+
// the review routing move these deliveries.
|
|
425
|
+
console.log(`[focus-executor] No team-actionable work remains for "${focusName}" -- ` +
|
|
426
|
+
`${postNonTerminal.length} non-terminal delivery(ies) in daemon-managed states ` +
|
|
427
|
+
`(in_review / paused / verify-pending); terminating cleanly without escalation`);
|
|
428
|
+
teamState.shutdownReason = 'work_complete';
|
|
429
|
+
deps.terminateTeam(focusId);
|
|
430
|
+
return;
|
|
431
|
+
}
|
|
432
|
+
case 'escalate_no_progress_and_terminate': {
|
|
433
|
+
// Crossed the no-progress threshold: escalate and shut the team down so
|
|
434
|
+
// a human can intervene. Reached only when the team HAS actionable work
|
|
435
|
+
// it owns -- a planning delivery to scope, or a coding delivery whose
|
|
436
|
+
// issues stay open -- yet has not moved it for N consecutive cycles. The
|
|
437
|
+
// no-actionable-work cases (verify_failed-with-all-Done, in_review,
|
|
438
|
+
// paused) terminate cleanly above and never reach here, so this
|
|
439
|
+
// escalation now means a genuinely stuck team, not a daemon-managed
|
|
440
|
+
// transition.
|
|
441
|
+
teamState.noProgressCycles = updatedNoProgressCycles;
|
|
442
|
+
teamState.lastProgressSnapshot = snapshot;
|
|
443
|
+
console.warn(`[focus-executor] Scope-coverage guard tripped for "${focusName}" -- ` +
|
|
444
|
+
`${teamState.noProgressCycles} consecutive cycles with no progress on ${postNonTerminal.length} ` +
|
|
445
|
+
`non-terminal delivery(ies); escalating and terminating`);
|
|
446
|
+
await escalateNoProgress({
|
|
447
|
+
organizationId: teamState.organizationId,
|
|
448
|
+
sessionId: teamState.leadSessionId ?? '',
|
|
449
|
+
focusId,
|
|
450
|
+
focusName,
|
|
451
|
+
agentRoleId: teamState.roleId,
|
|
452
|
+
cycles: teamState.noProgressCycles,
|
|
453
|
+
remaining: postNonTerminal,
|
|
454
|
+
}, deps);
|
|
455
|
+
teamState.shutdownReason = 'work_complete';
|
|
456
|
+
deps.terminateTeam(focusId);
|
|
457
|
+
return;
|
|
458
|
+
}
|
|
459
|
+
case 'handoff_new_work':
|
|
460
|
+
case 'reengage': {
|
|
461
|
+
teamState.noProgressCycles = updatedNoProgressCycles;
|
|
462
|
+
teamState.lastProgressSnapshot = snapshot;
|
|
463
|
+
// Actionable deliveries with open issues -> wake message with the new
|
|
464
|
+
// work. Otherwise (planning deliveries remain) -> re-engagement nudge to
|
|
465
|
+
// scope them.
|
|
466
|
+
let message;
|
|
467
|
+
if (action.kind === 'handoff_new_work') {
|
|
468
|
+
console.log(`[focus-executor] Mid-focus handoff for "${focusName}" -- sending new work`);
|
|
469
|
+
message = buildWakeMessage(effectiveDeliveries, currentIssues, teamState.knownDeliveryIds);
|
|
470
|
+
}
|
|
471
|
+
else {
|
|
472
|
+
console.log(`[focus-executor] Re-engaging "${focusName}" -- ${postNonTerminal.length} non-terminal ` +
|
|
473
|
+
`delivery(ies) remain (cycle ${teamState.noProgressCycles}/${SCOPE_COVERAGE_NO_PROGRESS_LIMIT})`);
|
|
474
|
+
message = buildReEngagementMessage(postNonTerminal, currentIssues);
|
|
475
|
+
}
|
|
476
|
+
// Update tracking state
|
|
477
|
+
for (const d of currentDeliveries) {
|
|
478
|
+
teamState.knownDeliveryIds.add(d.id);
|
|
479
|
+
teamState.deliveryStageIds.set(d.id, d.currentWorkflowStageId);
|
|
480
|
+
}
|
|
481
|
+
completionDetector.reset();
|
|
482
|
+
sendMessage(proc.stdin, message);
|
|
483
|
+
return;
|
|
455
484
|
}
|
|
456
|
-
console.log(`[focus-executor] No team-actionable work remains for "${focusName}" -- ` +
|
|
457
|
-
`${postNonTerminal.length} non-terminal delivery(ies) in daemon-managed states ` +
|
|
458
|
-
`(in_review / paused / verify-pending); terminating cleanly without escalation`);
|
|
459
|
-
teamState.shutdownReason = 'work_complete';
|
|
460
|
-
deps.terminateTeam(focusId);
|
|
461
|
-
return;
|
|
462
|
-
}
|
|
463
|
-
if (madeProgress) {
|
|
464
|
-
teamState.noProgressCycles = 0;
|
|
465
|
-
}
|
|
466
|
-
else {
|
|
467
|
-
teamState.noProgressCycles = (teamState.noProgressCycles ?? 0) + 1;
|
|
468
|
-
}
|
|
469
|
-
teamState.lastProgressSnapshot = snapshot;
|
|
470
|
-
// Crossed the no-progress threshold: escalate and shut the team down so a
|
|
471
|
-
// human can intervene. Reached only when the team HAS actionable work it owns
|
|
472
|
-
// -- a planning delivery to scope, or a coding delivery whose issues stay
|
|
473
|
-
// open -- yet has not moved it for N consecutive cycles. The no-actionable-
|
|
474
|
-
// work cases (verify_failed-with-all-Done, in_review, paused) terminate
|
|
475
|
-
// cleanly above and never reach here, so this escalation now means a
|
|
476
|
-
// genuinely stuck team, not a daemon-managed transition.
|
|
477
|
-
if (teamState.noProgressCycles >= SCOPE_COVERAGE_NO_PROGRESS_LIMIT) {
|
|
478
|
-
console.warn(`[focus-executor] Scope-coverage guard tripped for "${focusName}" -- ` +
|
|
479
|
-
`${teamState.noProgressCycles} consecutive cycles with no progress on ${postNonTerminal.length} ` +
|
|
480
|
-
`non-terminal delivery(ies); escalating and terminating`);
|
|
481
|
-
await escalateNoProgress({
|
|
482
|
-
organizationId: teamState.organizationId,
|
|
483
|
-
sessionId: teamState.leadSessionId ?? '',
|
|
484
|
-
focusId,
|
|
485
|
-
focusName,
|
|
486
|
-
agentRoleId: teamState.roleId,
|
|
487
|
-
cycles: teamState.noProgressCycles,
|
|
488
|
-
remaining: postNonTerminal,
|
|
489
|
-
}, deps);
|
|
490
|
-
teamState.shutdownReason = 'work_complete';
|
|
491
|
-
deps.terminateTeam(focusId);
|
|
492
|
-
return;
|
|
493
|
-
}
|
|
494
|
-
// Actionable deliveries with open issues -> wake message with the new work.
|
|
495
|
-
// Otherwise (planning deliveries remain) -> re-engagement nudge to scope them.
|
|
496
|
-
let message;
|
|
497
|
-
if (postHasActionableOpen) {
|
|
498
|
-
console.log(`[focus-executor] Mid-focus handoff for "${focusName}" -- sending new work`);
|
|
499
|
-
message = buildWakeMessage(effectiveDeliveries, currentIssues, teamState.knownDeliveryIds);
|
|
500
|
-
}
|
|
501
|
-
else {
|
|
502
|
-
console.log(`[focus-executor] Re-engaging "${focusName}" -- ${postNonTerminal.length} non-terminal ` +
|
|
503
|
-
`delivery(ies) remain (cycle ${teamState.noProgressCycles}/${SCOPE_COVERAGE_NO_PROGRESS_LIMIT})`);
|
|
504
|
-
message = buildReEngagementMessage(postNonTerminal, currentIssues);
|
|
505
|
-
}
|
|
506
|
-
// Update tracking state
|
|
507
|
-
for (const d of currentDeliveries) {
|
|
508
|
-
teamState.knownDeliveryIds.add(d.id);
|
|
509
|
-
teamState.deliveryStageIds.set(d.id, d.currentWorkflowStageId);
|
|
510
485
|
}
|
|
511
|
-
completionDetector.reset();
|
|
512
|
-
sendMessage(proc.stdin, message);
|
|
513
486
|
}
|
|
514
487
|
// ── Progress snapshot helpers ───────────────────────────────────────────
|
|
515
488
|
/**
|
|
@@ -542,151 +515,4 @@ export function snapshotsEqual(a, b) {
|
|
|
542
515
|
}
|
|
543
516
|
return true;
|
|
544
517
|
}
|
|
545
|
-
// ── Escalation ──────────────────────────────────────────────────────────
|
|
546
|
-
/**
|
|
547
|
-
* Escalate when the team has been re-engaged repeatedly without making
|
|
548
|
-
* any measurable progress on the remaining non-terminal deliveries.
|
|
549
|
-
*
|
|
550
|
-
* Exported so tests can verify the contract.
|
|
551
|
-
*/
|
|
552
|
-
export async function escalateNoProgress(params, deps = defaultDeps) {
|
|
553
|
-
const remainingList = params.remaining
|
|
554
|
-
.slice()
|
|
555
|
-
.sort((a, b) => a.priorityRank - b.priorityRank)
|
|
556
|
-
.map(d => `- "${d.name}" [${d.executionStatus ?? 'draft'}] (rank ${d.priorityRank})`)
|
|
557
|
-
.join('\n');
|
|
558
|
-
// Cause classification: if every remaining non-terminal delivery is
|
|
559
|
-
// sitting on a populated gate_state, the team didn't fail -- the daemon's
|
|
560
|
-
// gate refused to advance them. Route as daemon_gate_stuck so substantive
|
|
561
|
-
// team-failure signals don't drown in daemon-gap noise. Otherwise fall
|
|
562
|
-
// back to the explicit team_failure kind.
|
|
563
|
-
const gateStuckDeliveries = params.remaining.filter(d => d.gateState != null);
|
|
564
|
-
const allDaemonGateStuck = params.remaining.length > 0 && gateStuckDeliveries.length === params.remaining.length;
|
|
565
|
-
const escalationKind = allDaemonGateStuck ? 'daemon_gate_stuck' : 'team_failure';
|
|
566
|
-
const metadata = {
|
|
567
|
-
focusId: params.focusId,
|
|
568
|
-
focusName: params.focusName,
|
|
569
|
-
cycles: params.cycles,
|
|
570
|
-
cause: escalationKind,
|
|
571
|
-
};
|
|
572
|
-
if (allDaemonGateStuck) {
|
|
573
|
-
metadata.gateStates = gateStuckDeliveries.map(d => ({
|
|
574
|
-
deliveryId: d.id,
|
|
575
|
-
deliveryName: d.name,
|
|
576
|
-
executionStatus: d.executionStatus,
|
|
577
|
-
gateState: d.gateState,
|
|
578
|
-
}));
|
|
579
|
-
}
|
|
580
|
-
const description = allDaemonGateStuck
|
|
581
|
-
? `Team for focus "${params.focusName}" terminated because the daemon's verify gate ` +
|
|
582
|
-
`has not advanced any of the ${params.remaining.length} remaining delivery(ies) ` +
|
|
583
|
-
`across ${params.cycles} re-engagement cycles. This is a daemon-side gap, not a team failure.\n\n` +
|
|
584
|
-
`**Focus:** ${params.focusName}\n` +
|
|
585
|
-
`**Focus ID:** ${params.focusId}\n` +
|
|
586
|
-
`**Agent role:** ${params.agentRoleId}\n` +
|
|
587
|
-
`**Remaining (all gate-stuck):**\n${remainingList}\n\n` +
|
|
588
|
-
`Inspect each delivery's gate_state to determine the specific blocking condition. ` +
|
|
589
|
-
`See docs/runbook-verify-gate.md.`
|
|
590
|
-
: `Team for focus "${params.focusName}" has been re-engaged ${params.cycles} ` +
|
|
591
|
-
`consecutive cycles without measurable progress. Reason: ${NO_PROGRESS_ESCALATION_REASON}.\n\n` +
|
|
592
|
-
`**Focus:** ${params.focusName}\n` +
|
|
593
|
-
`**Focus ID:** ${params.focusId}\n` +
|
|
594
|
-
`**Agent role:** ${params.agentRoleId}\n` +
|
|
595
|
-
`**Remaining non-terminal deliveries:**\n${remainingList}\n\n` +
|
|
596
|
-
`The team has been terminated. A human must intervene to unblock the focus.`;
|
|
597
|
-
try {
|
|
598
|
-
await withRetry(() => deps.createEscalation({
|
|
599
|
-
organizationId: params.organizationId,
|
|
600
|
-
sessionId: params.sessionId,
|
|
601
|
-
issueId: null,
|
|
602
|
-
reasonType: ESCALATION_REASONS.BLOCKED_BY_EXTERNAL,
|
|
603
|
-
escalationKind,
|
|
604
|
-
metadata,
|
|
605
|
-
description,
|
|
606
|
-
whatWasTried: `Re-engaged the team via the daemon-push channel (${params.cycles} cycles). ` +
|
|
607
|
-
`No delivery status transitions and no new issues were observed between cycles.`,
|
|
608
|
-
helpNeeded: allDaemonGateStuck
|
|
609
|
-
? `Inspect the gate_state on each delivery to identify the specific blocking ` +
|
|
610
|
-
`condition. The condition is documented in docs/runbook-verify-gate.md.`
|
|
611
|
-
: `Inspect the remaining deliveries above. Either scope missing issues, cancel ` +
|
|
612
|
-
`the deliveries that should not proceed, or update the focus intent so the ` +
|
|
613
|
-
`next team can complete the work.`,
|
|
614
|
-
}), { maxAttempts: 3, label: `escalation-no-progress-${params.focusId}` });
|
|
615
|
-
console.log(`[focus-executor] Created ${escalationKind} escalation for "${params.focusName}" ` +
|
|
616
|
-
`(reason: ${NO_PROGRESS_ESCALATION_REASON})`);
|
|
617
|
-
}
|
|
618
|
-
catch (err) {
|
|
619
|
-
console.error(`[focus-executor] Failed to create no-progress escalation for "${params.focusName}": ${err.message}`);
|
|
620
|
-
}
|
|
621
|
-
}
|
|
622
|
-
/**
|
|
623
|
-
* Escalate when the team has no actionable work AND a remaining non-terminal
|
|
624
|
-
* delivery is structurally non-advanceable (NULL workflow stage, or no
|
|
625
|
-
* automatic transition out of its current stage). This is the thrash-guard:
|
|
626
|
-
* without it the focus respawns a team every poll that immediately idle-exits,
|
|
627
|
-
* burning budget unbounded.
|
|
628
|
-
*
|
|
629
|
-
* Filed as escalation_kind 'team_failure' so the existing respawn guard
|
|
630
|
-
* (hasOpenTeamFailureEscalation / applyRespawnGuard) suppresses respawn until a
|
|
631
|
-
* human resolves it. metadata.cause = NON_ADVANCEABLE_CAUSE distinguishes it
|
|
632
|
-
* from an effort-based no-progress failure during triage.
|
|
633
|
-
*
|
|
634
|
-
* Exported so tests and sister deliveries can verify the contract.
|
|
635
|
-
*/
|
|
636
|
-
export async function escalateNonAdvanceable(params, deps = defaultDeps) {
|
|
637
|
-
const { stuck } = params;
|
|
638
|
-
const remainingList = params.remaining
|
|
639
|
-
.slice()
|
|
640
|
-
.sort((a, b) => a.priorityRank - b.priorityRank)
|
|
641
|
-
.map(d => `- "${d.name}" [${d.executionStatus ?? 'draft'}] (rank ${d.priorityRank}, stage ${d.currentWorkflowStageId ?? 'NULL'})`)
|
|
642
|
-
.join('\n');
|
|
643
|
-
const stageDesc = stuck.currentWorkflowStageId
|
|
644
|
-
? `its current workflow stage (${stuck.currentWorkflowStageId}) has no automatic transition out`
|
|
645
|
-
: 'it has no resolved workflow stage (current_workflow_stage_id is NULL)';
|
|
646
|
-
const metadata = {
|
|
647
|
-
focusId: params.focusId,
|
|
648
|
-
focusName: params.focusName,
|
|
649
|
-
cause: NON_ADVANCEABLE_CAUSE,
|
|
650
|
-
stuckDeliveryId: stuck.id,
|
|
651
|
-
stuckDeliveryName: stuck.name,
|
|
652
|
-
stuckDeliveryStatus: stuck.executionStatus,
|
|
653
|
-
stuckDeliveryStageId: stuck.currentWorkflowStageId,
|
|
654
|
-
};
|
|
655
|
-
const description = `Team for focus "${params.focusName}" terminated because delivery "${stuck.name}" ` +
|
|
656
|
-
`[${stuck.executionStatus ?? 'draft'}] cannot be advanced: ${stageDesc}, and the team ` +
|
|
657
|
-
`has no actionable work. Reason: ${NON_ADVANCEABLE_ESCALATION_REASON}.\n\n` +
|
|
658
|
-
`Left unhandled this loops: the listener re-spawns a team every poll, the team ` +
|
|
659
|
-
`immediately idle-exits with nothing to do, and the delivery never moves -- burning ` +
|
|
660
|
-
`budget with no progress.\n\n` +
|
|
661
|
-
`**Focus:** ${params.focusName}\n` +
|
|
662
|
-
`**Focus ID:** ${params.focusId}\n` +
|
|
663
|
-
`**Agent role:** ${params.agentRoleId}\n` +
|
|
664
|
-
`**Stuck delivery:** "${stuck.name}" (${stuck.id})\n` +
|
|
665
|
-
`**Remaining non-terminal deliveries:**\n${remainingList}\n\n` +
|
|
666
|
-
`The team has been terminated and the focus will not be respawned while this ` +
|
|
667
|
-
`escalation stays open. A human must either give the delivery a workflow stage with ` +
|
|
668
|
-
`an automatic transition, cancel it, or otherwise unblock the focus.`;
|
|
669
|
-
try {
|
|
670
|
-
await withRetry(() => deps.createEscalation({
|
|
671
|
-
organizationId: params.organizationId,
|
|
672
|
-
sessionId: params.sessionId,
|
|
673
|
-
issueId: null,
|
|
674
|
-
reasonType: ESCALATION_REASONS.BLOCKED_BY_EXTERNAL,
|
|
675
|
-
escalationKind: 'team_failure',
|
|
676
|
-
metadata,
|
|
677
|
-
description,
|
|
678
|
-
whatWasTried: `Spawned a team for "${params.focusName}"; it found no actionable work, and the ` +
|
|
679
|
-
`daemon could not advance the remaining non-terminal delivery "${stuck.name}" ` +
|
|
680
|
-
`(${stageDesc}).`,
|
|
681
|
-
helpNeeded: `Give delivery "${stuck.name}" a workflow stage with an automatic transition out ` +
|
|
682
|
-
`(or re-anchor it to the correct workflow), cancel it if it should not proceed, or ` +
|
|
683
|
-
`update the focus so the next team can complete the work.`,
|
|
684
|
-
}), { maxAttempts: 3, label: `escalation-non-advanceable-${params.focusId}` });
|
|
685
|
-
console.log(`[focus-executor] Created non-advanceable (team_failure) escalation for "${params.focusName}" ` +
|
|
686
|
-
`(cause: ${NON_ADVANCEABLE_CAUSE}, delivery: "${stuck.name}")`);
|
|
687
|
-
}
|
|
688
|
-
catch (err) {
|
|
689
|
-
console.error(`[focus-executor] Failed to create non-advanceable escalation for "${params.focusName}": ${err.message}`);
|
|
690
|
-
}
|
|
691
|
-
}
|
|
692
518
|
//# sourceMappingURL=event.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/completion/event.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/completion/event.ts"],"names":[],"mappings":"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"}
|