@telora/daemon 0.22.85 → 0.22.87
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/ci/ci-escalation.d.ts +17 -1
- package/dist/ci/ci-escalation.d.ts.map +1 -1
- package/dist/ci/ci-escalation.js +51 -3
- package/dist/ci/ci-escalation.js.map +1 -1
- package/dist/ci/ci-red-attribution.d.ts +85 -0
- package/dist/ci/ci-red-attribution.d.ts.map +1 -0
- package/dist/ci/ci-red-attribution.js +108 -0
- package/dist/ci/ci-red-attribution.js.map +1 -0
- package/dist/ci/ci-sensor-loop.d.ts +84 -80
- package/dist/ci/ci-sensor-loop.d.ts.map +1 -1
- package/dist/ci/ci-sensor-loop.js +132 -129
- package/dist/ci/ci-sensor-loop.js.map +1 -1
- package/dist/completion/coverage-stabilized.d.ts.map +1 -1
- package/dist/completion/coverage-stabilized.js +1 -1
- package/dist/completion/coverage-stabilized.js.map +1 -1
- package/dist/completion/escalations.d.ts +40 -5
- package/dist/completion/escalations.d.ts.map +1 -1
- package/dist/completion/escalations.js +19 -11
- package/dist/completion/escalations.js.map +1 -1
- package/dist/completion/event-escalations.d.ts +12 -1
- package/dist/completion/event-escalations.d.ts.map +1 -1
- package/dist/completion/event-escalations.js +73 -37
- package/dist/completion/event-escalations.js.map +1 -1
- package/dist/completion/event.d.ts +4 -1
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js +1 -1
- package/dist/completion/event.js.map +1 -1
- package/dist/completion/human-only-act.d.ts +1 -1
- package/dist/completion/human-only-act.js +1 -1
- package/dist/completion/machine-remediable-demotion.d.ts +28 -1
- package/dist/completion/machine-remediable-demotion.d.ts.map +1 -1
- package/dist/completion/machine-remediable-demotion.js +9 -6
- package/dist/completion/machine-remediable-demotion.js.map +1 -1
- package/dist/completion/read-only-pristine.d.ts.map +1 -1
- package/dist/completion/read-only-pristine.js +4 -0
- package/dist/completion/read-only-pristine.js.map +1 -1
- package/dist/completion/review-exit-deps.js +1 -1
- package/dist/completion/review-exit-deps.js.map +1 -1
- package/dist/completion/review-exit-escalations.d.ts +10 -0
- package/dist/completion/review-exit-escalations.d.ts.map +1 -1
- package/dist/completion/review-exit-escalations.js +38 -3
- package/dist/completion/review-exit-escalations.js.map +1 -1
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +8 -7
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/review-exit-shortfall.d.ts +5 -1
- package/dist/completion/review-exit-shortfall.d.ts.map +1 -1
- package/dist/completion/review-exit-shortfall.js +8 -3
- package/dist/completion/review-exit-shortfall.js.map +1 -1
- package/dist/completion/status-advance-phase.d.ts +2 -0
- package/dist/completion/status-advance-phase.d.ts.map +1 -1
- package/dist/completion/status-advance-phase.js +2 -1
- package/dist/completion/status-advance-phase.js.map +1 -1
- package/dist/completion/terminated-work-reconcile.js +2 -2
- package/dist/completion/terminated-work-reconcile.js.map +1 -1
- package/dist/delivery/delivery-advance-block.d.ts +3 -3
- package/dist/delivery/delivery-advance-block.d.ts.map +1 -1
- package/dist/delivery/delivery-advance-block.js +13 -8
- package/dist/delivery/delivery-advance-block.js.map +1 -1
- package/dist/delivery/delivery-lifecycle.d.ts +10 -0
- package/dist/delivery/delivery-lifecycle.d.ts.map +1 -1
- package/dist/delivery/delivery-lifecycle.js +12 -6
- package/dist/delivery/delivery-lifecycle.js.map +1 -1
- package/dist/delivery/delivery-merge-ops.d.ts.map +1 -1
- package/dist/delivery/delivery-merge-ops.js +39 -21
- package/dist/delivery/delivery-merge-ops.js.map +1 -1
- package/dist/delivery/external-hold.d.ts +8 -2
- package/dist/delivery/external-hold.d.ts.map +1 -1
- package/dist/delivery/external-hold.js +12 -5
- package/dist/delivery/external-hold.js.map +1 -1
- package/dist/delivery/operator-hold.d.ts +6 -1
- package/dist/delivery/operator-hold.d.ts.map +1 -1
- package/dist/delivery/operator-hold.js +31 -10
- package/dist/delivery/operator-hold.js.map +1 -1
- package/dist/delivery/paused-revival.d.ts +6 -0
- package/dist/delivery/paused-revival.d.ts.map +1 -1
- package/dist/delivery/paused-revival.js +3 -1
- package/dist/delivery/paused-revival.js.map +1 -1
- package/dist/directive/directive-dispatch.d.ts.map +1 -1
- package/dist/directive/directive-dispatch.js +6 -3
- package/dist/directive/directive-dispatch.js.map +1 -1
- package/dist/directive/directive-queue.d.ts.map +1 -1
- package/dist/directive/directive-queue.js +4 -1
- package/dist/directive/directive-queue.js.map +1 -1
- package/dist/drift/staleness-sensor.d.ts +14 -0
- package/dist/drift/staleness-sensor.d.ts.map +1 -1
- package/dist/drift/staleness-sensor.js +30 -1
- package/dist/drift/staleness-sensor.js.map +1 -1
- package/dist/focus/focus-executor.d.ts.map +1 -1
- package/dist/focus/focus-executor.js +6 -8
- package/dist/focus/focus-executor.js.map +1 -1
- package/dist/focus/focus-loop-registry.d.ts.map +1 -1
- package/dist/focus/focus-loop-registry.js +23 -13
- package/dist/focus/focus-loop-registry.js.map +1 -1
- package/dist/focus/focus-respawn-guard.d.ts.map +1 -1
- package/dist/focus/focus-respawn-guard.js +21 -4
- package/dist/focus/focus-respawn-guard.js.map +1 -1
- package/dist/focus/listener-auto-advance.d.ts.map +1 -1
- package/dist/focus/listener-auto-advance.js +10 -6
- package/dist/focus/listener-auto-advance.js.map +1 -1
- package/dist/focus/verify-open-issues.d.ts.map +1 -1
- package/dist/focus/verify-open-issues.js +21 -1
- package/dist/focus/verify-open-issues.js.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.js +35 -14
- package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
- package/dist/loops/index.d.ts.map +1 -1
- package/dist/loops/index.js +2 -1
- package/dist/loops/index.js.map +1 -1
- package/dist/merge/focus-merge.d.ts +1 -1
- package/dist/merge/focus-merge.d.ts.map +1 -1
- package/dist/merge/focus-merge.js +5 -1
- package/dist/merge/focus-merge.js.map +1 -1
- package/dist/merge/merge-back-loop.d.ts +2 -1
- package/dist/merge/merge-back-loop.d.ts.map +1 -1
- package/dist/merge/merge-back-loop.js +15 -12
- package/dist/merge/merge-back-loop.js.map +1 -1
- package/dist/merge/merge-conflict-escalation.d.ts.map +1 -1
- package/dist/merge/merge-conflict-escalation.js +4 -0
- package/dist/merge/merge-conflict-escalation.js.map +1 -1
- package/dist/nexus/return.d.ts +14 -15
- package/dist/nexus/return.d.ts.map +1 -1
- package/dist/nexus/return.js +41 -31
- package/dist/nexus/return.js.map +1 -1
- package/dist/prompt-sections/execution-sections.d.ts +13 -5
- package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
- package/dist/prompt-sections/execution-sections.js +78 -18
- package/dist/prompt-sections/execution-sections.js.map +1 -1
- package/dist/prompt-sections/routing-decider-sections.d.ts +60 -0
- package/dist/prompt-sections/routing-decider-sections.d.ts.map +1 -0
- package/dist/prompt-sections/routing-decider-sections.js +197 -0
- package/dist/prompt-sections/routing-decider-sections.js.map +1 -0
- package/dist/queries/agent-resolvable-aging.d.ts +4 -3
- package/dist/queries/agent-resolvable-aging.d.ts.map +1 -1
- package/dist/queries/agent-resolvable-aging.js +5 -4
- package/dist/queries/agent-resolvable-aging.js.map +1 -1
- package/dist/queries/agent-resolvable-promotion.d.ts +172 -124
- package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
- package/dist/queries/agent-resolvable-promotion.js +332 -307
- package/dist/queries/agent-resolvable-promotion.js.map +1 -1
- package/dist/queries/agent-resolvable-retirement.d.ts +105 -0
- package/dist/queries/agent-resolvable-retirement.d.ts.map +1 -0
- package/dist/queries/agent-resolvable-retirement.js +227 -0
- package/dist/queries/agent-resolvable-retirement.js.map +1 -0
- package/dist/queries/cause-key.d.ts +109 -0
- package/dist/queries/cause-key.d.ts.map +1 -1
- package/dist/queries/cause-key.js +93 -1
- package/dist/queries/cause-key.js.map +1 -1
- package/dist/queries/deliveries.d.ts +14 -0
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +20 -2
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/delivery-gate-state.d.ts +130 -5
- package/dist/queries/delivery-gate-state.d.ts.map +1 -1
- package/dist/queries/delivery-gate-state.js +111 -2
- package/dist/queries/delivery-gate-state.js.map +1 -1
- package/dist/queries/escalation-consumption.d.ts +95 -15
- package/dist/queries/escalation-consumption.d.ts.map +1 -1
- package/dist/queries/escalation-consumption.js +162 -24
- package/dist/queries/escalation-consumption.js.map +1 -1
- package/dist/queries/escalation-dispositions.d.ts +19 -7
- package/dist/queries/escalation-dispositions.d.ts.map +1 -1
- package/dist/queries/escalation-dispositions.js +7 -0
- package/dist/queries/escalation-dispositions.js.map +1 -1
- package/dist/queries/escalation-suppression.d.ts +63 -19
- package/dist/queries/escalation-suppression.d.ts.map +1 -1
- package/dist/queries/escalation-suppression.js +64 -35
- package/dist/queries/escalation-suppression.js.map +1 -1
- package/dist/queries/escalations.d.ts +127 -70
- package/dist/queries/escalations.d.ts.map +1 -1
- package/dist/queries/escalations.js +170 -188
- package/dist/queries/escalations.js.map +1 -1
- package/dist/queries/filing-observation.d.ts +82 -0
- package/dist/queries/filing-observation.d.ts.map +1 -0
- package/dist/queries/filing-observation.js +157 -0
- package/dist/queries/filing-observation.js.map +1 -0
- package/dist/queries/holds.d.ts +69 -2
- package/dist/queries/holds.d.ts.map +1 -1
- package/dist/queries/holds.js +106 -11
- package/dist/queries/holds.js.map +1 -1
- package/dist/queries/incident-correlation.d.ts +291 -0
- package/dist/queries/incident-correlation.d.ts.map +1 -0
- package/dist/queries/incident-correlation.js +408 -0
- package/dist/queries/incident-correlation.js.map +1 -0
- package/dist/queries/routing-measurement.d.ts +48 -1
- package/dist/queries/routing-measurement.d.ts.map +1 -1
- package/dist/queries/routing-measurement.js +64 -2
- package/dist/queries/routing-measurement.js.map +1 -1
- package/dist/queries/routing-quality.d.ts +8 -0
- package/dist/queries/routing-quality.d.ts.map +1 -1
- package/dist/queries/routing-quality.js +12 -3
- package/dist/queries/routing-quality.js.map +1 -1
- package/dist/queries/shared.js +1 -1
- package/dist/shell/crash-recovery.d.ts.map +1 -1
- package/dist/shell/crash-recovery.js +6 -6
- package/dist/shell/crash-recovery.js.map +1 -1
- package/dist/shell/install-probe-tick.d.ts.map +1 -1
- package/dist/shell/install-probe-tick.js +3 -1
- package/dist/shell/install-probe-tick.js.map +1 -1
- package/dist/spawn/respawn-cycle-escalation.d.ts +10 -2
- package/dist/spawn/respawn-cycle-escalation.d.ts.map +1 -1
- package/dist/spawn/respawn-cycle-escalation.js +16 -2
- package/dist/spawn/respawn-cycle-escalation.js.map +1 -1
- package/dist/spawn/routing-decider-spawn.d.ts +93 -0
- package/dist/spawn/routing-decider-spawn.d.ts.map +1 -0
- package/dist/spawn/routing-decider-spawn.js +185 -0
- package/dist/spawn/routing-decider-spawn.js.map +1 -0
- package/dist/spawn/routing-decider.d.ts +42 -0
- package/dist/spawn/routing-decider.d.ts.map +1 -0
- package/dist/spawn/routing-decider.js +95 -0
- package/dist/spawn/routing-decider.js.map +1 -0
- package/dist/spawn/shared.d.ts +8 -0
- package/dist/spawn/shared.d.ts.map +1 -1
- package/dist/spawn/shared.js +1 -1
- package/dist/spawn/shared.js.map +1 -1
- package/dist/spawn/spawn-decision.d.ts +23 -16
- package/dist/spawn/spawn-decision.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.js +27 -11
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/spawn/worktree-session.d.ts +19 -7
- package/dist/spawn/worktree-session.d.ts.map +1 -1
- package/dist/spawn/worktree-session.js +36 -8
- package/dist/spawn/worktree-session.js.map +1 -1
- package/dist/testing/fixtures/index.js +1 -1
- package/dist/types/index.js +1 -1
- package/dist/verify/failure-signature.d.ts +91 -0
- package/dist/verify/failure-signature.d.ts.map +1 -0
- package/dist/verify/failure-signature.js +233 -0
- package/dist/verify/failure-signature.js.map +1 -0
- package/dist/verify/shortfall-repeat.d.ts +12 -9
- package/dist/verify/shortfall-repeat.d.ts.map +1 -1
- package/dist/verify/shortfall-repeat.js +38 -14
- package/dist/verify/shortfall-repeat.js.map +1 -1
- package/dist/verify/stall-detectors.d.ts +19 -43
- package/dist/verify/stall-detectors.d.ts.map +1 -1
- package/dist/verify/stall-detectors.js +26 -101
- package/dist/verify/stall-detectors.js.map +1 -1
- package/dist/verify/unreviewed-settle-detector.d.ts +8 -0
- package/dist/verify/unreviewed-settle-detector.d.ts.map +1 -1
- package/dist/verify/unreviewed-settle-detector.js +15 -1
- package/dist/verify/unreviewed-settle-detector.js.map +1 -1
- package/dist/verify/verification-deps-default.d.ts.map +1 -1
- package/dist/verify/verification-deps-default.js +14 -2
- package/dist/verify/verification-deps-default.js.map +1 -1
- package/dist/verify/verification-evidence-unavailable-feedback.d.ts.map +1 -1
- package/dist/verify/verification-evidence-unavailable-feedback.js +8 -2
- package/dist/verify/verification-evidence-unavailable-feedback.js.map +1 -1
- package/dist/verify/verification-feedback.d.ts +62 -14
- package/dist/verify/verification-feedback.d.ts.map +1 -1
- package/dist/verify/verification-feedback.js +101 -28
- package/dist/verify/verification-feedback.js.map +1 -1
- package/dist/verify/verify-gate-stall.d.ts +116 -0
- package/dist/verify/verify-gate-stall.d.ts.map +1 -0
- package/dist/verify/verify-gate-stall.js +169 -0
- package/dist/verify/verify-gate-stall.js.map +1 -0
- package/dist/verify/verify-restatement.d.ts.map +1 -1
- package/dist/verify/verify-restatement.js +2 -1
- package/dist/verify/verify-restatement.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-resolvable-promotion.js","sourceRoot":"","sources":["../../src/queries/agent-resolvable-promotion.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-resolvable-promotion.js","sourceRoot":"","sources":["../../src/queries/agent-resolvable-promotion.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { type CallApiDeps } from './shared.js';
|
|
2
|
+
import type { AgentResolvableItem } from './escalation-consumption.js';
|
|
3
|
+
/** What the promotion knows about a LIVE candidate focus. */
|
|
4
|
+
export interface PromotionFocusSnapshot {
|
|
5
|
+
/** The focus title (acts name work by title, never by UUID). */
|
|
6
|
+
name: string;
|
|
7
|
+
/** Whether the focus has an assigned agent role (focusMayRunTeam). */
|
|
8
|
+
armed: boolean;
|
|
9
|
+
}
|
|
10
|
+
/** The retired-focus read's verdict; `focus` is present when the focus is live and was found. */
|
|
11
|
+
export interface FocusRetirementVerdict {
|
|
12
|
+
retire: boolean;
|
|
13
|
+
reason: string;
|
|
14
|
+
focus?: PromotionFocusSnapshot;
|
|
15
|
+
}
|
|
16
|
+
type FocusRetiredFn = (focusId: string, ctx: {
|
|
17
|
+
organizationId: string;
|
|
18
|
+
productId?: string;
|
|
19
|
+
}) => Promise<FocusRetirementVerdict>;
|
|
20
|
+
/** The retirement slice both promotion paths share (injected; tests stub it). */
|
|
21
|
+
export interface FocusRetirementDeps {
|
|
22
|
+
/** Whether the candidate's focus has retired (converged / complete / cancelled). */
|
|
23
|
+
focusRetired?: FocusRetiredFn;
|
|
24
|
+
/** Retire a stale candidate on a retired focus: resolve auto_swept. */
|
|
25
|
+
retireSwept?: (id: string, notes?: string) => Promise<void>;
|
|
26
|
+
/** Whether this cause_key was already retired auto_swept on the focus (the cycle guard). */
|
|
27
|
+
priorRetirementOfCause?: (causeKey: string, focusId: string, excludeId: string) => Promise<boolean>;
|
|
28
|
+
}
|
|
29
|
+
/** The retired-focus check's outcome for one candidate. */
|
|
30
|
+
export type RetirementOutcome = {
|
|
31
|
+
kind: 'retired';
|
|
32
|
+
} | {
|
|
33
|
+
kind: 'outlives';
|
|
34
|
+
reason: string;
|
|
35
|
+
} | {
|
|
36
|
+
kind: 'live';
|
|
37
|
+
focus?: PromotionFocusSnapshot;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* escalation_kind values whose condition lives on a branch, the integration line
|
|
41
|
+
* or the host, so it outlives the focus that filed it. Daemon-local literals: the
|
|
42
|
+
* kind constants live in merge/, ci/ and drift/ modules this query leaf must not
|
|
43
|
+
* import (they import the query layer). Keep in sync with STUCK_FOCUS_BRANCH_KIND,
|
|
44
|
+
* CD_PUSH_FAILED_KIND, CI_RUN_RED_ESCALATION_KIND, MERGE_CONFLICT_ESCALATION_KIND,
|
|
45
|
+
* MERGE_REFUSED_DIRTY_ESCALATION_KIND and PROPAGATION_STALE_ESCALATION_KIND.
|
|
46
|
+
*/
|
|
47
|
+
export declare const OUTLIVES_FOCUS_KINDS: ReadonlySet<string>;
|
|
48
|
+
/** Pure: the branch a filing's metadata names, or null. */
|
|
49
|
+
export declare function branchOfFiling(metadata: Record<string, unknown> | undefined): string | null;
|
|
50
|
+
/** Pure: whether a filing's condition outlives its focus (see the module RULE). */
|
|
51
|
+
export declare function conditionOutlivesFocus(item: Pick<AgentResolvableItem, 'escalationKind' | 'metadata'>): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Whether a candidate's focus has RETIRED -- converged (every delivery done or
|
|
54
|
+
* cancelled) or no longer active (absent from the org's active-focus set). A live
|
|
55
|
+
* focus's verdict carries its title + arm state. Fail-quiet: any read error
|
|
56
|
+
* returns not-retired with no snapshot, so a transient DB blip never wrongly
|
|
57
|
+
* retires a live candidate (it promotes as before).
|
|
58
|
+
*/
|
|
59
|
+
export declare function defaultFocusRetired(focusId: string, ctx: {
|
|
60
|
+
organizationId: string;
|
|
61
|
+
productId?: string;
|
|
62
|
+
}): Promise<FocusRetirementVerdict>;
|
|
63
|
+
/** Retire a candidate whose focus has converged/terminated: resolve auto_swept. */
|
|
64
|
+
export declare function defaultRetireSwept(id: string, notes?: string): Promise<void>;
|
|
65
|
+
/** Resolved rows scanned per focus for the cycle guard (bounded; newest first). */
|
|
66
|
+
export declare const RETIREMENT_MEMORY_SCAN_LIMIT = 200;
|
|
67
|
+
/**
|
|
68
|
+
* Whether an escalation carrying `causeKey` was already resolved auto_swept on the
|
|
69
|
+
* focus (excluding the candidate itself). Only consulted for a candidate the guard
|
|
70
|
+
* is about to retire, so it runs at most once per retire decision. THROWS on a
|
|
71
|
+
* hard API error; the caller fails toward retiring (the prior behaviour).
|
|
72
|
+
*/
|
|
73
|
+
export declare function defaultPriorRetirementOfCause(causeKey: string, focusId: string, excludeId: string, deps?: CallApiDeps): Promise<boolean>;
|
|
74
|
+
/**
|
|
75
|
+
* Pure wrapper: memoize the retired-focus read per focusId for ONE promotion pass,
|
|
76
|
+
* so a sweep over many candidates on the same focus reads that focus once.
|
|
77
|
+
*/
|
|
78
|
+
export declare function memoizeFocusRetired(fn: FocusRetiredFn | undefined): FocusRetiredFn | undefined;
|
|
79
|
+
/**
|
|
80
|
+
* READ-ONLY sibling of checkFocusRetirement for a candidate still within the age
|
|
81
|
+
* bound: it learns the focus's state (arm state, retired or not) without retiring
|
|
82
|
+
* anything. 'outlives' (a retired focus + an outliving condition) is handed to a
|
|
83
|
+
* routing decider at once; a focus-scoped condition on a retired focus reads
|
|
84
|
+
* 'awaiting_retirement' (retired by checkFocusRetirement once over-age); otherwise
|
|
85
|
+
* 'live'. Best-effort: a failed read is 'live' with no snapshot.
|
|
86
|
+
*/
|
|
87
|
+
export declare function peekFocusRetirement(d: FocusRetirementDeps, item: Pick<AgentResolvableItem, 'id' | 'escalationKind' | 'metadata'>, focusId: string, ctx: {
|
|
88
|
+
organizationId: string;
|
|
89
|
+
productId?: string;
|
|
90
|
+
}): Promise<RetirementOutcome | {
|
|
91
|
+
kind: 'awaiting_retirement';
|
|
92
|
+
}>;
|
|
93
|
+
/**
|
|
94
|
+
* Decide a candidate's retired-focus outcome (see the module RULE): 'retired'
|
|
95
|
+
* (resolved auto_swept here; the caller skips it), 'outlives' (its focus retired
|
|
96
|
+
* but the condition outlives it; the caller hands it to a routing decider), or
|
|
97
|
+
* 'live' (hand off / ride as usual, carrying the focus snapshot when known).
|
|
98
|
+
* Best-effort: a failed read or a failed retire falls through to 'live'.
|
|
99
|
+
*/
|
|
100
|
+
export declare function checkFocusRetirement(d: FocusRetirementDeps, item: Pick<AgentResolvableItem, 'id' | 'escalationKind' | 'metadata'>, focusId: string | null | undefined, ctx: {
|
|
101
|
+
organizationId: string;
|
|
102
|
+
productId?: string;
|
|
103
|
+
}): Promise<RetirementOutcome>;
|
|
104
|
+
export {};
|
|
105
|
+
//# sourceMappingURL=agent-resolvable-retirement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-resolvable-retirement.d.ts","sourceRoot":"","sources":["../../src/queries/agent-resolvable-retirement.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: packages/daemon/src/queries/agent-resolvable-retired-focus.test.ts
|
|
3
|
+
// PINNED-BY-END
|
|
4
|
+
/**
|
|
5
|
+
* The retired-focus guard of the agent_resolvable routing hand-off, and what the
|
|
6
|
+
* guard learns about a live focus on the way.
|
|
7
|
+
*
|
|
8
|
+
* Before handing a candidate to a routing decider, both paths
|
|
9
|
+
* (agent-resolvable-promotion.ts) ask whether its focus has RETIRED -- converged
|
|
10
|
+
* (every delivery done or cancelled) or no longer active (complete/cancelled). A
|
|
11
|
+
* candidate describing the focus's own finished work is stale: it is retired
|
|
12
|
+
* auto_swept (2026-09-09: escalation 9465a40e surfaced onto a focus closed for hours).
|
|
13
|
+
*
|
|
14
|
+
* RULE (which conditions are retired, and which are not):
|
|
15
|
+
*
|
|
16
|
+
* - A condition that OUTLIVES the focus is HANDED TO A ROUTING DECIDER, never
|
|
17
|
+
* retired. It outlives the focus when it lives on a branch, the integration
|
|
18
|
+
* line, or the host rather than in the focus's own work: its kind is in
|
|
19
|
+
* OUTLIVES_FOCUS_KINDS, or its metadata names a branch (BRANCH_METADATA_KEYS).
|
|
20
|
+
* A converged focus does not clear a stuck, conflicted or dirty focus branch,
|
|
21
|
+
* a red integration CI run, a failed CD push, or a stale daemon; retiring one
|
|
22
|
+
* swallows a live condition, and its detector (which a resolved row does not
|
|
23
|
+
* suppress) re-files it on the next tick -- a file -> retire -> re-file cycle
|
|
24
|
+
* minting a fresh row per tick.
|
|
25
|
+
* - Only a FOCUS-SCOPED condition is retired.
|
|
26
|
+
* - Cycle guard for a misclassified kind: a focus-scoped candidate whose
|
|
27
|
+
* cause_key was already retired auto_swept on the same focus has been
|
|
28
|
+
* re-observed after the focus retired, which is itself evidence the condition
|
|
29
|
+
* outlives the focus -- it is handed off too. A cause is retired at most once.
|
|
30
|
+
* The observation stays OPEN (suppressing its detector) until a decider acts; a
|
|
31
|
+
* decider's human-facing filing carries the source's cause key as
|
|
32
|
+
* metadata.original_cause_key (telora_agent escalate sourceCauseKey), which
|
|
33
|
+
* escalation-suppression matches, so the detector stays silent while it is open.
|
|
34
|
+
*
|
|
35
|
+
* The retirement read already fetches the org's active focuses, so a LIVE
|
|
36
|
+
* verdict carries the focus's title and arm state (PromotionFocusSnapshot), which
|
|
37
|
+
* the hand-off uses (an un-armed focus is unreachable) and hands to the decider.
|
|
38
|
+
*/
|
|
39
|
+
import { DELIVERY_STATUS } from '@telora/daemon-core';
|
|
40
|
+
import { markEscalationResolved as defaultMarkEscalationResolved } from './escalations.js';
|
|
41
|
+
import { getFocusDeliveries as defaultGetFocusDeliveries } from './focuses.js';
|
|
42
|
+
import { getActiveFocuses as defaultGetActiveFocuses } from './focus-discovery.js';
|
|
43
|
+
import { callApi } from './shared.js';
|
|
44
|
+
import { focusMayRunTeam } from '../spawn/null-role-spawn.js';
|
|
45
|
+
import { createLogger } from '../shell/log.js';
|
|
46
|
+
const log = createLogger({ module: 'escalations' });
|
|
47
|
+
/**
|
|
48
|
+
* escalation_kind values whose condition lives on a branch, the integration line
|
|
49
|
+
* or the host, so it outlives the focus that filed it. Daemon-local literals: the
|
|
50
|
+
* kind constants live in merge/, ci/ and drift/ modules this query leaf must not
|
|
51
|
+
* import (they import the query layer). Keep in sync with STUCK_FOCUS_BRANCH_KIND,
|
|
52
|
+
* CD_PUSH_FAILED_KIND, CI_RUN_RED_ESCALATION_KIND, MERGE_CONFLICT_ESCALATION_KIND,
|
|
53
|
+
* MERGE_REFUSED_DIRTY_ESCALATION_KIND and PROPAGATION_STALE_ESCALATION_KIND.
|
|
54
|
+
*/
|
|
55
|
+
export const OUTLIVES_FOCUS_KINDS = new Set([
|
|
56
|
+
'stuck_focus_branch',
|
|
57
|
+
'cd_push_failed',
|
|
58
|
+
'ci_run_red',
|
|
59
|
+
'merge_conflict',
|
|
60
|
+
'merge_refused_dirty',
|
|
61
|
+
'propagation_stale',
|
|
62
|
+
]);
|
|
63
|
+
/**
|
|
64
|
+
* Metadata keys a branch-anchored filing stamps: stuck_focus_branch branch_name,
|
|
65
|
+
* ci_run_red branch, cd_push_failed integration_branch. A filing of any kind that
|
|
66
|
+
* names a branch here outlives its focus.
|
|
67
|
+
*/
|
|
68
|
+
const BRANCH_METADATA_KEYS = ['branch_name', 'branch', 'integration_branch'];
|
|
69
|
+
/** Pure: the branch a filing's metadata names, or null. */
|
|
70
|
+
export function branchOfFiling(metadata) {
|
|
71
|
+
if (!metadata)
|
|
72
|
+
return null;
|
|
73
|
+
for (const key of BRANCH_METADATA_KEYS) {
|
|
74
|
+
const value = metadata[key];
|
|
75
|
+
if (typeof value === 'string' && value.trim().length > 0)
|
|
76
|
+
return value.trim();
|
|
77
|
+
}
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
/** Pure: whether a filing's condition outlives its focus (see the module RULE). */
|
|
81
|
+
export function conditionOutlivesFocus(item) {
|
|
82
|
+
if (item.escalationKind !== null && OUTLIVES_FOCUS_KINDS.has(item.escalationKind))
|
|
83
|
+
return true;
|
|
84
|
+
return branchOfFiling(item.metadata) !== null;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Whether a candidate's focus has RETIRED -- converged (every delivery done or
|
|
88
|
+
* cancelled) or no longer active (absent from the org's active-focus set). A live
|
|
89
|
+
* focus's verdict carries its title + arm state. Fail-quiet: any read error
|
|
90
|
+
* returns not-retired with no snapshot, so a transient DB blip never wrongly
|
|
91
|
+
* retires a live candidate (it promotes as before).
|
|
92
|
+
*/
|
|
93
|
+
export async function defaultFocusRetired(focusId, ctx) {
|
|
94
|
+
try {
|
|
95
|
+
const dels = await defaultGetFocusDeliveries(focusId);
|
|
96
|
+
if (dels.length > 0 &&
|
|
97
|
+
dels.every(x => x.executionStatus === DELIVERY_STATUS.DONE || x.executionStatus === DELIVERY_STATUS.CANCELLED)) {
|
|
98
|
+
return { retire: true, reason: 'focus converged -- all deliveries done/cancelled' };
|
|
99
|
+
}
|
|
100
|
+
const active = await defaultGetActiveFocuses(ctx.organizationId, ctx.productId);
|
|
101
|
+
const live = active.find(f => f.focus_id === focusId);
|
|
102
|
+
if (!live) {
|
|
103
|
+
return { retire: true, reason: 'focus is not active (complete/cancelled)' };
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
retire: false,
|
|
107
|
+
reason: '',
|
|
108
|
+
focus: { name: live.focus_name, armed: focusMayRunTeam(live.assigned_agent_role_id) },
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
// Fail-quiet: do not retire on a read error (promote as before).
|
|
113
|
+
}
|
|
114
|
+
return { retire: false, reason: '' };
|
|
115
|
+
}
|
|
116
|
+
/** Retire a candidate whose focus has converged/terminated: resolve auto_swept. */
|
|
117
|
+
export function defaultRetireSwept(id, notes) {
|
|
118
|
+
const resolutionClass = 'auto_swept';
|
|
119
|
+
return defaultMarkEscalationResolved(id, resolutionClass, notes);
|
|
120
|
+
}
|
|
121
|
+
/** Resolved rows scanned per focus for the cycle guard (bounded; newest first). */
|
|
122
|
+
export const RETIREMENT_MEMORY_SCAN_LIMIT = 200;
|
|
123
|
+
/**
|
|
124
|
+
* Whether an escalation carrying `causeKey` was already resolved auto_swept on the
|
|
125
|
+
* focus (excluding the candidate itself). Only consulted for a candidate the guard
|
|
126
|
+
* is about to retire, so it runs at most once per retire decision. THROWS on a
|
|
127
|
+
* hard API error; the caller fails toward retiring (the prior behaviour).
|
|
128
|
+
*/
|
|
129
|
+
export async function defaultPriorRetirementOfCause(causeKey, focusId, excludeId, deps = {}) {
|
|
130
|
+
const call = deps.callApi ?? callApi;
|
|
131
|
+
const result = await call('escalation_list', {
|
|
132
|
+
fields: { statuses: ['resolved'], focusId },
|
|
133
|
+
limit: RETIREMENT_MEMORY_SCAN_LIMIT,
|
|
134
|
+
detail: 'full',
|
|
135
|
+
});
|
|
136
|
+
return (result.escalations ?? []).some((e) => e.id !== excludeId && e.resolutionClass === 'auto_swept' && e.metadata?.cause_key === causeKey);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Pure wrapper: memoize the retired-focus read per focusId for ONE promotion pass,
|
|
140
|
+
* so a sweep over many candidates on the same focus reads that focus once.
|
|
141
|
+
*/
|
|
142
|
+
export function memoizeFocusRetired(fn) {
|
|
143
|
+
if (!fn)
|
|
144
|
+
return undefined;
|
|
145
|
+
const cache = new Map();
|
|
146
|
+
return (focusId, ctx) => {
|
|
147
|
+
let verdict = cache.get(focusId);
|
|
148
|
+
if (!verdict) {
|
|
149
|
+
verdict = fn(focusId, ctx);
|
|
150
|
+
cache.set(focusId, verdict);
|
|
151
|
+
}
|
|
152
|
+
return verdict;
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
async function causeRetiredBefore(d, item, focusId) {
|
|
156
|
+
const causeKey = item.metadata?.cause_key;
|
|
157
|
+
if (typeof causeKey !== 'string' || !d.priorRetirementOfCause)
|
|
158
|
+
return false;
|
|
159
|
+
try {
|
|
160
|
+
return await d.priorRetirementOfCause(causeKey, focusId, item.id);
|
|
161
|
+
}
|
|
162
|
+
catch (err) {
|
|
163
|
+
log.warn(`[escalations] prior-retirement read failed for ${item.id} (focus ${focusId}): ${err.message}`);
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* READ-ONLY sibling of checkFocusRetirement for a candidate still within the age
|
|
169
|
+
* bound: it learns the focus's state (arm state, retired or not) without retiring
|
|
170
|
+
* anything. 'outlives' (a retired focus + an outliving condition) is handed to a
|
|
171
|
+
* routing decider at once; a focus-scoped condition on a retired focus reads
|
|
172
|
+
* 'awaiting_retirement' (retired by checkFocusRetirement once over-age); otherwise
|
|
173
|
+
* 'live'. Best-effort: a failed read is 'live' with no snapshot.
|
|
174
|
+
*/
|
|
175
|
+
export async function peekFocusRetirement(d, item, focusId, ctx) {
|
|
176
|
+
if (!d.focusRetired)
|
|
177
|
+
return { kind: 'live' };
|
|
178
|
+
let verdict;
|
|
179
|
+
try {
|
|
180
|
+
verdict = await d.focusRetired(focusId, ctx);
|
|
181
|
+
}
|
|
182
|
+
catch (err) {
|
|
183
|
+
log.warn(`[escalations] focusRetired read failed for ${item.id} (focus ${focusId}): ${err.message}`);
|
|
184
|
+
return { kind: 'live' };
|
|
185
|
+
}
|
|
186
|
+
if (!verdict.retire)
|
|
187
|
+
return verdict.focus ? { kind: 'live', focus: verdict.focus } : { kind: 'live' };
|
|
188
|
+
return conditionOutlivesFocus(item) ? { kind: 'outlives', reason: verdict.reason } : { kind: 'awaiting_retirement' };
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Decide a candidate's retired-focus outcome (see the module RULE): 'retired'
|
|
192
|
+
* (resolved auto_swept here; the caller skips it), 'outlives' (its focus retired
|
|
193
|
+
* but the condition outlives it; the caller hands it to a routing decider), or
|
|
194
|
+
* 'live' (hand off / ride as usual, carrying the focus snapshot when known).
|
|
195
|
+
* Best-effort: a failed read or a failed retire falls through to 'live'.
|
|
196
|
+
*/
|
|
197
|
+
export async function checkFocusRetirement(d, item, focusId, ctx) {
|
|
198
|
+
if (!focusId || !d.focusRetired)
|
|
199
|
+
return { kind: 'live' };
|
|
200
|
+
let verdict;
|
|
201
|
+
try {
|
|
202
|
+
verdict = await d.focusRetired(focusId, ctx);
|
|
203
|
+
}
|
|
204
|
+
catch (err) {
|
|
205
|
+
log.warn(`[escalations] focusRetired check failed for ${item.id} (focus ${focusId}): ${err.message}`);
|
|
206
|
+
return { kind: 'live' };
|
|
207
|
+
}
|
|
208
|
+
if (!verdict.retire)
|
|
209
|
+
return verdict.focus ? { kind: 'live', focus: verdict.focus } : { kind: 'live' };
|
|
210
|
+
if (conditionOutlivesFocus(item))
|
|
211
|
+
return { kind: 'outlives', reason: verdict.reason };
|
|
212
|
+
if (await causeRetiredBefore(d, item, focusId)) {
|
|
213
|
+
return { kind: 'outlives', reason: `${verdict.reason}; the same cause re-filed after an earlier retirement` };
|
|
214
|
+
}
|
|
215
|
+
if (!d.retireSwept)
|
|
216
|
+
return { kind: 'live' };
|
|
217
|
+
try {
|
|
218
|
+
await d.retireSwept(item.id, `Focus retired (${verdict.reason}); this agent_resolvable filing is stale -- auto-swept, not promoted.`);
|
|
219
|
+
log.info(`[escalations] Retired (NOT promoted) agent_resolvable ${item.id}: ${verdict.reason} (focus ${focusId}).`);
|
|
220
|
+
return { kind: 'retired' };
|
|
221
|
+
}
|
|
222
|
+
catch (err) {
|
|
223
|
+
log.warn(`[escalations] Failed to retire agent_resolvable ${item.id} for retired focus ${focusId}: ${err.message}`);
|
|
224
|
+
return { kind: 'live' };
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=agent-resolvable-retirement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-resolvable-retirement.js","sourceRoot":"","sources":["../../src/queries/agent-resolvable-retirement.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,gFAAgF;AAChF,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,eAAe,EAAkC,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,sBAAsB,IAAI,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,kBAAkB,IAAI,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,gBAAgB,IAAI,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,OAAO,EAAoB,MAAM,aAAa,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;AAsCpD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IAC/D,oBAAoB;IACpB,gBAAgB;IAChB,YAAY;IACZ,gBAAgB;IAChB,qBAAqB;IACrB,mBAAmB;CACpB,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,oBAAoB,CAAU,CAAC;AAEtF,2DAA2D;AAC3D,MAAM,UAAU,cAAc,CAAC,QAA6C;IAC1E,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IAChF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,sBAAsB,CACpC,IAA8D;IAE9D,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/F,OAAO,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;AAChD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAe,EACf,GAAmD;IAEnD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACtD,IACE,IAAI,CAAC,MAAM,GAAG,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC,eAAe,KAAK,eAAe,CAAC,SAAS,CAAC,EAC9G,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,kDAAkD,EAAE,CAAC;QACtF,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QAChF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,0CAA0C,EAAE,CAAC;QAC9E,CAAC;QACD,OAAO;YACL,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE;SACtF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,iEAAiE;IACnE,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACvC,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,kBAAkB,CAAC,EAAU,EAAE,KAAc;IAC3D,MAAM,eAAe,GAA8B,YAAY,CAAC;IAChE,OAAO,6BAA6B,CAAC,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,QAAgB,EAChB,OAAe,EACf,SAAiB,EACjB,OAAoB,EAAE;IAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAEtB,iBAAiB,EAAE;QACpB,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE;QAC3C,KAAK,EAAE,4BAA4B;QACnC,MAAM,EAAE,MAAM;KACf,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,eAAe,KAAK,YAAY,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,KAAK,QAAQ,CACtG,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAA8B;IAChE,IAAI,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAI,GAAG,EAA2C,CAAC;IACjE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC3B,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,CAAsB,EACtB,IAAkD,EAClD,OAAe;IAEf,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC1C,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,sBAAsB;QAAE,OAAO,KAAK,CAAC;IAC5E,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,CAAC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,kDAAkD,IAAI,CAAC,EAAE,WAAW,OAAO,MAAO,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACpH,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,CAAsB,EACtB,IAAqE,EACrE,OAAe,EACf,GAAmD;IAEnD,IAAI,CAAC,CAAC,CAAC,YAAY;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC7C,IAAI,OAA+B,CAAC;IACpC,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,8CAA8C,IAAI,CAAC,EAAE,WAAW,OAAO,MAAO,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAChH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACtG,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;AACvH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,CAAsB,EACtB,IAAqE,EACrE,OAAkC,EAClC,GAAmD;IAEnD,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,YAAY;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACzD,IAAI,OAA+B,CAAC;IACpC,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,+CAA+C,IAAI,CAAC,EAAE,WAAW,OAAO,MAAO,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACjH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACtG,IAAI,sBAAsB,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IACtF,IAAI,MAAM,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,uDAAuD,EAAE,CAAC;IAChH,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,WAAW;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,CAAC,CAAC,WAAW,CACjB,IAAI,CAAC,EAAE,EACP,kBAAkB,OAAO,CAAC,MAAM,uEAAuE,CACxG,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,yDAAyD,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,MAAM,WAAW,OAAO,IAAI,CAAC,CAAC;QACpH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,mDAAmD,IAAI,CAAC,EAAE,sBAAsB,OAAO,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/H,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC"}
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
* - stuck_focus_branch / wedged_focus (stuck/wedged detectors) -> focusId + blockage kind
|
|
21
21
|
* - team_failure (team-exit filings) -> focusId + session-exit marker
|
|
22
22
|
*/
|
|
23
|
+
import type { HumanAct } from './filing-observation.js';
|
|
23
24
|
/** A subject is a flat bag of identifying strings (nullable/undefined dropped). */
|
|
24
25
|
export type CauseKeySubject = Record<string, string | null | undefined>;
|
|
25
26
|
/**
|
|
@@ -71,4 +72,112 @@ export declare function teamExitCauseKey(focusId: string, sessionExit: string):
|
|
|
71
72
|
* stops the signal (auto-resolved).
|
|
72
73
|
*/
|
|
73
74
|
export declare function daemonStalenessCauseKey(running: string, newest: string): string;
|
|
75
|
+
/** The execution anchor an observation is about. First present wins: delivery -> focus -> branch. */
|
|
76
|
+
export interface IncidentAnchor {
|
|
77
|
+
deliveryId?: string | null;
|
|
78
|
+
focusId?: string | null;
|
|
79
|
+
branch?: string | null;
|
|
80
|
+
/**
|
|
81
|
+
* Qualifies a BRANCH-only anchor. Delivery and focus ids are globally unique
|
|
82
|
+
* UUIDs, but a branch name is not: a multi-product daemon runs several products
|
|
83
|
+
* that each have an `integration` branch, and two products' red CI must not
|
|
84
|
+
* collapse into one incident. Ignored when a delivery or focus anchor is present.
|
|
85
|
+
*/
|
|
86
|
+
productId?: string | null;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Escalation kinds that are INBOUND NOTIFICATIONS, not blocks observed of an
|
|
90
|
+
* execution anchor: they tell a human something happened elsewhere (a Nexus
|
|
91
|
+
* request they filed was resolved/declined; another product asks them a
|
|
92
|
+
* question) rather than reporting a symptom of a root cause in this anchor's
|
|
93
|
+
* execution. They never join an incident -- grouping a "your dependency is now
|
|
94
|
+
* clear" notice with the verify stall on the same focus would bury the stall
|
|
95
|
+
* under a non-problem.
|
|
96
|
+
*/
|
|
97
|
+
export declare const INBOUND_NOTIFICATION_KINDS: ReadonlySet<string>;
|
|
98
|
+
/**
|
|
99
|
+
* The cross-detector incident key for an observation's execution anchor (PURE).
|
|
100
|
+
*
|
|
101
|
+
* Precedence: the first present of deliveryId -> focusId -> branch wins, so a
|
|
102
|
+
* delivery-scoped observation groups at the delivery (the tightest anchor), a
|
|
103
|
+
* focus-scoped one at the focus, and a branch-only one (a ci_run_red whose owning
|
|
104
|
+
* focus could not be determined) at the branch, qualified by productId when
|
|
105
|
+
* supplied. Stable strings:
|
|
106
|
+
* incident::delivery=<id>
|
|
107
|
+
* incident::focus=<id>
|
|
108
|
+
* incident::branch=<name> (no productId)
|
|
109
|
+
* incident::branch=<name>|product=<id> (productId supplied)
|
|
110
|
+
* Returns null when there is no anchor at all (nothing to correlate on), and
|
|
111
|
+
* when `kind` is an INBOUND_NOTIFICATION_KINDS member (not a block).
|
|
112
|
+
*/
|
|
113
|
+
export declare function incidentKey(anchor: IncidentAnchor, kind?: string | null): string | null;
|
|
114
|
+
/**
|
|
115
|
+
* One detector's observation carried on an incident row (metadata.symptoms[]).
|
|
116
|
+
* snake_case: it is persisted verbatim into the agent_escalations.metadata JSONB.
|
|
117
|
+
*/
|
|
118
|
+
export interface IncidentSymptom {
|
|
119
|
+
/** The observing detector's own cause key (its idempotency identity). */
|
|
120
|
+
cause_key: string;
|
|
121
|
+
/** The observing filing's escalation_kind (null for an untyped filing). */
|
|
122
|
+
escalation_kind: string | null;
|
|
123
|
+
/** One-line human-readable head of the observation (e.g. the description's first line). */
|
|
124
|
+
head: string;
|
|
125
|
+
/** ISO-8601 timestamp of the observation. */
|
|
126
|
+
observed_at: string;
|
|
127
|
+
/**
|
|
128
|
+
* The act a human-facing filing named (its metadata.human_act). Present only when
|
|
129
|
+
* the attached filing's metadata carried one. The daemon chokepoint never writes
|
|
130
|
+
* metadata.human_act (a detector's act travels as observation.proposed_human_act),
|
|
131
|
+
* and an agent's human-facing MCP filing does not pass the incident reducer, so
|
|
132
|
+
* only historic rows carry it. Readers validate it (queries/filing-observation.ts readHumanAct).
|
|
133
|
+
*/
|
|
134
|
+
human_act?: {
|
|
135
|
+
kind: string;
|
|
136
|
+
act: string;
|
|
137
|
+
};
|
|
138
|
+
/**
|
|
139
|
+
* The disposition an OBSERVATION's detector proposed (its
|
|
140
|
+
* metadata.observation.proposed_disposition). Present only on an observation, so
|
|
141
|
+
* an operator-hold proposal survives being attached to another row (queries/holds.ts).
|
|
142
|
+
*/
|
|
143
|
+
proposed_disposition?: string;
|
|
144
|
+
/**
|
|
145
|
+
* The human act an OBSERVATION's detector proposed (its
|
|
146
|
+
* metadata.observation.proposed_human_act), act text capped at
|
|
147
|
+
* INCIDENT_SYMPTOM_ACT_MAX. Present only on an observation that named one, so every
|
|
148
|
+
* detector's proposal survives its filing being absorbed into another row and the
|
|
149
|
+
* routing decider weighs them all -- a PROPOSAL, never a route. Rows written before
|
|
150
|
+
* the field lack it; readers narrow it (queries/filing-observation.ts readHumanAct).
|
|
151
|
+
*/
|
|
152
|
+
proposed_human_act?: HumanAct;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Upper bound on metadata.symptoms. One incident is one root cause; the detector
|
|
156
|
+
* families that can observe one anchor number about a dozen, so 20 holds every
|
|
157
|
+
* distinct detector with headroom while keeping the row's metadata small (well
|
|
158
|
+
* under the escalation_update metadata-patch cap).
|
|
159
|
+
*/
|
|
160
|
+
export declare const INCIDENT_SYMPTOM_CAP = 20;
|
|
161
|
+
/**
|
|
162
|
+
* Cap on a symptom's proposed_human_act.act. The attach write sends the whole
|
|
163
|
+
* symptoms list as ONE escalation_update metadata patch (16384 serialized chars
|
|
164
|
+
* server-side); a full symptom is ~500 chars before its act, so INCIDENT_SYMPTOM_CAP
|
|
165
|
+
* symptoms each carrying an act fit only if the act is bounded like the head (200).
|
|
166
|
+
* The opening filing's full act stays on the row's own metadata.observation.
|
|
167
|
+
*/
|
|
168
|
+
export declare const INCIDENT_SYMPTOM_ACT_MAX = 200;
|
|
169
|
+
/** Pure: whether an unknown JSONB entry is a well-formed IncidentSymptom. */
|
|
170
|
+
export declare function isIncidentSymptom(value: unknown): value is IncidentSymptom;
|
|
171
|
+
/**
|
|
172
|
+
* Append a symptom to an incident's existing metadata.symptoms (PURE).
|
|
173
|
+
*
|
|
174
|
+
* `existing` is whatever the row carries (unknown JSONB): a non-array yields a
|
|
175
|
+
* fresh list and malformed entries are dropped, so a legacy / hand-edited row
|
|
176
|
+
* never blocks an attach. De-dupes by cause_key: a re-observation of the same
|
|
177
|
+
* detector's cause REPLACES its earlier entry and moves to the end, so the list
|
|
178
|
+
* reads oldest-first and every cause_key appears at most once. Bounded to
|
|
179
|
+
* INCIDENT_SYMPTOM_CAP by dropping the OLDEST entries (the newest observation is
|
|
180
|
+
* always kept). Never mutates its input.
|
|
181
|
+
*/
|
|
182
|
+
export declare function appendSymptom(existing: unknown, symptom: IncidentSymptom): IncidentSymptom[];
|
|
74
183
|
//# sourceMappingURL=cause-key.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cause-key.d.ts","sourceRoot":"","sources":["../../src/queries/cause-key.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cause-key.d.ts","sourceRoot":"","sources":["../../src/queries/cause-key.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,mFAAmF;AACnF,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAExE;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM,CAM9E;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9F;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7F;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/E;AAaD,qGAAqG;AACrG,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,MAAM,CAGzD,CAAC;AAQH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAWvF;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,2FAA2F;IAC3F,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,QAAQ,CAAC;CAC/B;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAS1E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,GAAG,eAAe,EAAE,CAK5F"}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
// packages/daemon/src/drift/staleness-sensor.test.ts, packages/daemon/src/merge/merge-back-loop.test.ts,
|
|
4
4
|
// packages/daemon/src/queries/escalation-cause-key.test.ts,
|
|
5
5
|
// packages/daemon/src/queries/escalation-noise-regressions.test.ts,
|
|
6
|
-
// packages/daemon/src/
|
|
6
|
+
// packages/daemon/src/queries/incident-correlation.test.ts,
|
|
7
|
+
// packages/daemon/src/queries/incident-key.test.ts, packages/daemon/src/verify/stall-detectors.test.ts
|
|
7
8
|
// PINNED-BY-END
|
|
8
9
|
/**
|
|
9
10
|
* Compute a deterministic cause key from a kind + subject bag.
|
|
@@ -71,4 +72,95 @@ export function teamExitCauseKey(focusId, sessionExit) {
|
|
|
71
72
|
export function daemonStalenessCauseKey(running, newest) {
|
|
72
73
|
return computeCauseKey('propagation_stale', { running, newest });
|
|
73
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Escalation kinds that are INBOUND NOTIFICATIONS, not blocks observed of an
|
|
77
|
+
* execution anchor: they tell a human something happened elsewhere (a Nexus
|
|
78
|
+
* request they filed was resolved/declined; another product asks them a
|
|
79
|
+
* question) rather than reporting a symptom of a root cause in this anchor's
|
|
80
|
+
* execution. They never join an incident -- grouping a "your dependency is now
|
|
81
|
+
* clear" notice with the verify stall on the same focus would bury the stall
|
|
82
|
+
* under a non-problem.
|
|
83
|
+
*/
|
|
84
|
+
export const INBOUND_NOTIFICATION_KINDS = new Set([
|
|
85
|
+
'nexus_request_resolved',
|
|
86
|
+
'nexus_clarification_requested',
|
|
87
|
+
]);
|
|
88
|
+
function presentAnchorValue(value) {
|
|
89
|
+
if (typeof value !== 'string')
|
|
90
|
+
return null;
|
|
91
|
+
const trimmed = value.trim();
|
|
92
|
+
return trimmed === '' ? null : trimmed;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* The cross-detector incident key for an observation's execution anchor (PURE).
|
|
96
|
+
*
|
|
97
|
+
* Precedence: the first present of deliveryId -> focusId -> branch wins, so a
|
|
98
|
+
* delivery-scoped observation groups at the delivery (the tightest anchor), a
|
|
99
|
+
* focus-scoped one at the focus, and a branch-only one (a ci_run_red whose owning
|
|
100
|
+
* focus could not be determined) at the branch, qualified by productId when
|
|
101
|
+
* supplied. Stable strings:
|
|
102
|
+
* incident::delivery=<id>
|
|
103
|
+
* incident::focus=<id>
|
|
104
|
+
* incident::branch=<name> (no productId)
|
|
105
|
+
* incident::branch=<name>|product=<id> (productId supplied)
|
|
106
|
+
* Returns null when there is no anchor at all (nothing to correlate on), and
|
|
107
|
+
* when `kind` is an INBOUND_NOTIFICATION_KINDS member (not a block).
|
|
108
|
+
*/
|
|
109
|
+
export function incidentKey(anchor, kind) {
|
|
110
|
+
if (kind && INBOUND_NOTIFICATION_KINDS.has(kind))
|
|
111
|
+
return null;
|
|
112
|
+
const deliveryId = presentAnchorValue(anchor.deliveryId);
|
|
113
|
+
if (deliveryId)
|
|
114
|
+
return computeCauseKey('incident', { delivery: deliveryId });
|
|
115
|
+
const focusId = presentAnchorValue(anchor.focusId);
|
|
116
|
+
if (focusId)
|
|
117
|
+
return computeCauseKey('incident', { focus: focusId });
|
|
118
|
+
const branch = presentAnchorValue(anchor.branch);
|
|
119
|
+
if (branch) {
|
|
120
|
+
return computeCauseKey('incident', { branch, product: presentAnchorValue(anchor.productId) });
|
|
121
|
+
}
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Upper bound on metadata.symptoms. One incident is one root cause; the detector
|
|
126
|
+
* families that can observe one anchor number about a dozen, so 20 holds every
|
|
127
|
+
* distinct detector with headroom while keeping the row's metadata small (well
|
|
128
|
+
* under the escalation_update metadata-patch cap).
|
|
129
|
+
*/
|
|
130
|
+
export const INCIDENT_SYMPTOM_CAP = 20;
|
|
131
|
+
/**
|
|
132
|
+
* Cap on a symptom's proposed_human_act.act. The attach write sends the whole
|
|
133
|
+
* symptoms list as ONE escalation_update metadata patch (16384 serialized chars
|
|
134
|
+
* server-side); a full symptom is ~500 chars before its act, so INCIDENT_SYMPTOM_CAP
|
|
135
|
+
* symptoms each carrying an act fit only if the act is bounded like the head (200).
|
|
136
|
+
* The opening filing's full act stays on the row's own metadata.observation.
|
|
137
|
+
*/
|
|
138
|
+
export const INCIDENT_SYMPTOM_ACT_MAX = 200;
|
|
139
|
+
/** Pure: whether an unknown JSONB entry is a well-formed IncidentSymptom. */
|
|
140
|
+
export function isIncidentSymptom(value) {
|
|
141
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
142
|
+
return false;
|
|
143
|
+
const v = value;
|
|
144
|
+
return (typeof v.cause_key === 'string' && v.cause_key !== '' &&
|
|
145
|
+
(v.escalation_kind === null || typeof v.escalation_kind === 'string') &&
|
|
146
|
+
typeof v.head === 'string' &&
|
|
147
|
+
typeof v.observed_at === 'string');
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Append a symptom to an incident's existing metadata.symptoms (PURE).
|
|
151
|
+
*
|
|
152
|
+
* `existing` is whatever the row carries (unknown JSONB): a non-array yields a
|
|
153
|
+
* fresh list and malformed entries are dropped, so a legacy / hand-edited row
|
|
154
|
+
* never blocks an attach. De-dupes by cause_key: a re-observation of the same
|
|
155
|
+
* detector's cause REPLACES its earlier entry and moves to the end, so the list
|
|
156
|
+
* reads oldest-first and every cause_key appears at most once. Bounded to
|
|
157
|
+
* INCIDENT_SYMPTOM_CAP by dropping the OLDEST entries (the newest observation is
|
|
158
|
+
* always kept). Never mutates its input.
|
|
159
|
+
*/
|
|
160
|
+
export function appendSymptom(existing, symptom) {
|
|
161
|
+
const prior = Array.isArray(existing) ? existing.filter(isIncidentSymptom) : [];
|
|
162
|
+
const next = prior.filter((s) => s.cause_key !== symptom.cause_key);
|
|
163
|
+
next.push({ ...symptom });
|
|
164
|
+
return next.length > INCIDENT_SYMPTOM_CAP ? next.slice(next.length - INCIDENT_SYMPTOM_CAP) : next;
|
|
165
|
+
}
|
|
74
166
|
//# sourceMappingURL=cause-key.js.map
|