@telora/daemon 0.20.57 → 0.20.78
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/audit-phase.d.ts +12 -18
- package/dist/audit-phase.d.ts.map +1 -1
- package/dist/audit-phase.js +17 -60
- package/dist/audit-phase.js.map +1 -1
- package/dist/audit-prompt.d.ts +44 -0
- package/dist/audit-prompt.d.ts.map +1 -0
- package/dist/audit-prompt.js +194 -0
- package/dist/audit-prompt.js.map +1 -0
- package/dist/ci-sensor-loop.d.ts +38 -1
- package/dist/ci-sensor-loop.d.ts.map +1 -1
- package/dist/ci-sensor-loop.js +49 -5
- package/dist/ci-sensor-loop.js.map +1 -1
- package/dist/delivery-reconciler.d.ts +3 -0
- package/dist/delivery-reconciler.d.ts.map +1 -1
- package/dist/delivery-reconciler.js +16 -0
- package/dist/delivery-reconciler.js.map +1 -1
- package/dist/focus-engine.d.ts.map +1 -1
- package/dist/focus-engine.js +12 -1
- package/dist/focus-engine.js.map +1 -1
- package/dist/focus-executor.d.ts.map +1 -1
- package/dist/focus-executor.js +4 -1
- package/dist/focus-executor.js.map +1 -1
- package/dist/focus-merge.d.ts.map +1 -1
- package/dist/focus-merge.js +37 -3
- package/dist/focus-merge.js.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.js +9 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
- package/dist/listener-auto-advance.d.ts.map +1 -1
- package/dist/listener-auto-advance.js +58 -10
- package/dist/listener-auto-advance.js.map +1 -1
- package/dist/merge-back-loop.d.ts +8 -2
- package/dist/merge-back-loop.d.ts.map +1 -1
- package/dist/merge-back-loop.js +17 -11
- package/dist/merge-back-loop.js.map +1 -1
- package/dist/merge-failure-classify.d.ts +39 -0
- package/dist/merge-failure-classify.d.ts.map +1 -0
- package/dist/merge-failure-classify.js +58 -0
- package/dist/merge-failure-classify.js.map +1 -0
- package/dist/prompt-sections/execution-sections.d.ts +20 -14
- package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
- package/dist/prompt-sections/execution-sections.js +53 -138
- package/dist/prompt-sections/execution-sections.js.map +1 -1
- package/dist/prompt-sections/scoping-sections.d.ts +30 -0
- package/dist/prompt-sections/scoping-sections.d.ts.map +1 -0
- package/dist/prompt-sections/scoping-sections.js +179 -0
- package/dist/prompt-sections/scoping-sections.js.map +1 -0
- package/dist/prompt-sections/shared.d.ts +7 -0
- package/dist/prompt-sections/shared.d.ts.map +1 -1
- package/dist/prompt-sections/shared.js.map +1 -1
- package/dist/queries/agent-resolvable-promotion.d.ts +87 -0
- package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -0
- package/dist/queries/agent-resolvable-promotion.js +152 -0
- package/dist/queries/agent-resolvable-promotion.js.map +1 -0
- package/dist/queries/cause-key.d.ts +64 -0
- package/dist/queries/cause-key.d.ts.map +1 -0
- package/dist/queries/cause-key.js +79 -0
- package/dist/queries/cause-key.js.map +1 -0
- package/dist/queries/escalation-suppression.d.ts +89 -0
- package/dist/queries/escalation-suppression.d.ts.map +1 -0
- package/dist/queries/escalation-suppression.js +98 -0
- package/dist/queries/escalation-suppression.js.map +1 -0
- package/dist/queries/holds.d.ts +177 -0
- package/dist/queries/holds.d.ts.map +1 -0
- package/dist/queries/holds.js +232 -0
- package/dist/queries/holds.js.map +1 -0
- package/dist/queries/issues.d.ts +41 -99
- package/dist/queries/issues.d.ts.map +1 -1
- package/dist/queries/issues.js +57 -137
- package/dist/queries/issues.js.map +1 -1
- package/dist/queries/verification.d.ts +11 -0
- package/dist/queries/verification.d.ts.map +1 -1
- package/dist/queries/verification.js.map +1 -1
- package/dist/resolvers/shared/git-diff.d.ts +24 -3
- package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
- package/dist/resolvers/shared/git-diff.js +41 -3
- package/dist/resolvers/shared/git-diff.js.map +1 -1
- package/dist/spawn/prompt-assembly.d.ts +3 -0
- package/dist/spawn/prompt-assembly.d.ts.map +1 -1
- package/dist/spawn/prompt-assembly.js +2 -1
- package/dist/spawn/prompt-assembly.js.map +1 -1
- package/dist/spawn/worktree-session.d.ts +2 -0
- package/dist/spawn/worktree-session.d.ts.map +1 -1
- package/dist/spawn/worktree-session.js +20 -1
- package/dist/spawn/worktree-session.js.map +1 -1
- package/dist/staleness-sensor.d.ts +24 -1
- package/dist/staleness-sensor.d.ts.map +1 -1
- package/dist/staleness-sensor.js +31 -4
- package/dist/staleness-sensor.js.map +1 -1
- package/dist/stall-detectors.d.ts +46 -13
- package/dist/stall-detectors.d.ts.map +1 -1
- package/dist/stall-detectors.js +78 -18
- package/dist/stall-detectors.js.map +1 -1
- package/dist/team-prompt-base.d.ts +1 -1
- package/dist/team-prompt-base.d.ts.map +1 -1
- package/dist/team-prompt-base.js +4 -2
- package/dist/team-prompt-base.js.map +1 -1
- package/dist/verification-default-on.d.ts.map +1 -1
- package/dist/verification-default-on.js +5 -0
- package/dist/verification-default-on.js.map +1 -1
- package/dist/verification-engine.d.ts +8 -0
- package/dist/verification-engine.d.ts.map +1 -1
- package/dist/verification-engine.js +8 -75
- package/dist/verification-engine.js.map +1 -1
- package/dist/verification-evidence.d.ts +74 -0
- package/dist/verification-evidence.d.ts.map +1 -0
- package/dist/verification-evidence.js +116 -0
- package/dist/verification-evidence.js.map +1 -0
- package/dist/verification-feedback.d.ts +8 -7
- package/dist/verification-feedback.d.ts.map +1 -1
- package/dist/verification-feedback.js +49 -39
- package/dist/verification-feedback.js.map +1 -1
- package/package.json +3 -3
|
@@ -14,6 +14,7 @@ import { createSession, } from '../supabase.js';
|
|
|
14
14
|
import { createWorktree, runGitSync, repoHasCommits } from '../git.js';
|
|
15
15
|
import { installReadOnlyAuditGuards } from '../audit-hooks.js';
|
|
16
16
|
import { getFocusWorktree, setFocusWorktree } from '../focus-worktree-state.js';
|
|
17
|
+
import { reconcileAgentResolvableForFocus } from '../queries/agent-resolvable-promotion.js';
|
|
17
18
|
import { resolveLineageSpec } from '../session-lineage.js';
|
|
18
19
|
import { recordFocusTeardown } from '../spawn-cooldown.js';
|
|
19
20
|
import { markSessionPersisted } from '../telemetry-writer.js';
|
|
@@ -179,6 +180,7 @@ export async function resolveReviewContext(args) {
|
|
|
179
180
|
let reviewFiledOpenCount = 0;
|
|
180
181
|
let priorFindings = [];
|
|
181
182
|
let focusDescription = null;
|
|
183
|
+
let agentResolvableItems = [];
|
|
182
184
|
try {
|
|
183
185
|
const activeFocuses = await fetchActiveFocusesForReviewState(config.organizationId, config.productId);
|
|
184
186
|
const current = activeFocuses.find(f => f.focus_id === focusId);
|
|
@@ -192,7 +194,24 @@ export async function resolveReviewContext(args) {
|
|
|
192
194
|
catch (err) {
|
|
193
195
|
log.debug(`[focus-executor] Could not compute review-filed open count for "${focusName}":`, err.message);
|
|
194
196
|
}
|
|
195
|
-
|
|
197
|
+
// Open agent_resolvable filings for this focus ride into the spawn so the team
|
|
198
|
+
// resolves them (the machine consuming an agent_resolvable filing). The
|
|
199
|
+
// reconcile also PROMOTES any that have stayed open past the age bound to a
|
|
200
|
+
// needs_operator escalation (so a filing the machine cannot clear reaches the
|
|
201
|
+
// human inbox) and returns only the ones that should still ride. Best-effort +
|
|
202
|
+
// independent of the review-state fetch: a failure leaves the list empty (no
|
|
203
|
+
// section rendered), never blocks the spawn.
|
|
204
|
+
try {
|
|
205
|
+
agentResolvableItems = await reconcileAgentResolvableForFocus({
|
|
206
|
+
organizationId: config.organizationId,
|
|
207
|
+
focusId,
|
|
208
|
+
productId: config.productId,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
catch (err) {
|
|
212
|
+
log.debug(`[focus-executor] Could not list agent_resolvable filings for "${focusName}":`, err.message);
|
|
213
|
+
}
|
|
214
|
+
return { reviewFiledOpenCount, priorFindings, focusDescription, agentResolvableItems };
|
|
196
215
|
}
|
|
197
216
|
/**
|
|
198
217
|
* Phase B: resolve the session lineage (pass) and the engine backend for it,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-session.js","sourceRoot":"","sources":["../../src/spawn/worktree-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,OAAO,EACL,aAAa,GAEd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"worktree-session.js","sourceRoot":"","sources":["../../src/spawn/worktree-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -107,6 +107,25 @@ export type StalenessAction = 'delegate' | 'hand-over' | 'resolve' | 'none';
|
|
|
107
107
|
* never acts -- it is handled as a trace by the tick.
|
|
108
108
|
*/
|
|
109
109
|
export declare function decideStalenessAction(diff: StalenessDifferential | null, hasOpen: boolean, canMachineClose: boolean): StalenessAction;
|
|
110
|
+
/** Minimal open-escalation row shape the sensor's dedup / resolve reads. */
|
|
111
|
+
interface StalenessEscalationRow {
|
|
112
|
+
id: string;
|
|
113
|
+
status?: string | null;
|
|
114
|
+
escalationKind?: string | null;
|
|
115
|
+
metadata?: Record<string, unknown> | null;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Pure suppression predicate over already-fetched rows. A re-file for THIS
|
|
119
|
+
* version gap is suppressed when an open/dismissed row carries its cause key
|
|
120
|
+
* (dismissal memory -- the incident pattern where a dismissed handover re-filed
|
|
121
|
+
* every tick), or a legacy OPEN propagation_stale row with no cause_key exists
|
|
122
|
+
* (deployment-window back-compat). A catch-up stops the signal entirely; a NEW
|
|
123
|
+
* `newest` is a different cause key and re-files. Exported for direct unit test.
|
|
124
|
+
*/
|
|
125
|
+
export declare function isStalenessRefileSuppressed(rows: readonly StalenessEscalationRow[], params: {
|
|
126
|
+
running: string;
|
|
127
|
+
newest: string;
|
|
128
|
+
}): boolean;
|
|
110
129
|
/** Injected IO for the sensor tick. Defaults reach for the real implementations. */
|
|
111
130
|
export interface StalenessSensorDeps {
|
|
112
131
|
readRunningVersion: () => string | null;
|
|
@@ -118,7 +137,10 @@ export interface StalenessSensorDeps {
|
|
|
118
137
|
* when false the operator opted out and the machine genuinely cannot act.
|
|
119
138
|
*/
|
|
120
139
|
canMachineCloseGap: () => boolean;
|
|
121
|
-
hasOpenStalenessEscalation: (
|
|
140
|
+
hasOpenStalenessEscalation: (params: {
|
|
141
|
+
running: string;
|
|
142
|
+
newest: string;
|
|
143
|
+
}) => Promise<boolean>;
|
|
122
144
|
/** Hand a human a READY ACTION when (and only when) the machine cannot act. */
|
|
123
145
|
handOverReadyAction: (params: {
|
|
124
146
|
organizationId: string;
|
|
@@ -150,4 +172,5 @@ export interface StalenessSensorTickCounts {
|
|
|
150
172
|
* Every path emits a trace so an absent signal means "measured and in sync".
|
|
151
173
|
*/
|
|
152
174
|
export declare function runStalenessSensorTick(config: DaemonConfig, deps?: StalenessSensorDeps): Promise<StalenessSensorTickCounts>;
|
|
175
|
+
export {};
|
|
153
176
|
//# sourceMappingURL=staleness-sensor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staleness-sensor.d.ts","sourceRoot":"","sources":["../src/staleness-sensor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"staleness-sensor.d.ts","sourceRoot":"","sources":["../src/staleness-sensor.ts"],"names":[],"mappings":"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"}
|
package/dist/staleness-sensor.js
CHANGED
|
@@ -55,6 +55,7 @@ import { readDaemonMeta } from './daemon-process.js';
|
|
|
55
55
|
import { isNewerVersion, parseVersionCore } from './version-check.js';
|
|
56
56
|
import { createEscalation, markEscalationResolved } from './queries/issues.js';
|
|
57
57
|
import { callApi } from './queries/shared.js';
|
|
58
|
+
import { daemonStalenessCauseKey } from './queries/cause-key.js';
|
|
58
59
|
import { ESCALATION_REASONS, ESCALATION_DISPOSITIONS } from '@telora/daemon-core';
|
|
59
60
|
import { createLogger } from './log.js';
|
|
60
61
|
const log = createLogger({ module: 'staleness-sensor' });
|
|
@@ -147,17 +148,40 @@ function defaultCanMachineCloseGap() {
|
|
|
147
148
|
return meta.autoUpdateEnabled !== false;
|
|
148
149
|
}
|
|
149
150
|
const OPEN_STATUSES = new Set(['pending', 'in_review']);
|
|
151
|
+
/** Statuses whose cause_key suppresses a re-file: open (idempotency) + dismissed (memory). */
|
|
152
|
+
const SUPPRESSING_STATUSES = new Set(['pending', 'in_review', 'dismissed']);
|
|
150
153
|
function isOpenPropagationStale(e) {
|
|
151
154
|
if (e.status && !OPEN_STATUSES.has(e.status))
|
|
152
155
|
return false;
|
|
153
156
|
return e.escalationKind === PROPAGATION_STALE_ESCALATION_KIND;
|
|
154
157
|
}
|
|
155
|
-
|
|
158
|
+
/**
|
|
159
|
+
* Pure suppression predicate over already-fetched rows. A re-file for THIS
|
|
160
|
+
* version gap is suppressed when an open/dismissed row carries its cause key
|
|
161
|
+
* (dismissal memory -- the incident pattern where a dismissed handover re-filed
|
|
162
|
+
* every tick), or a legacy OPEN propagation_stale row with no cause_key exists
|
|
163
|
+
* (deployment-window back-compat). A catch-up stops the signal entirely; a NEW
|
|
164
|
+
* `newest` is a different cause key and re-files. Exported for direct unit test.
|
|
165
|
+
*/
|
|
166
|
+
export function isStalenessRefileSuppressed(rows, params) {
|
|
167
|
+
const causeKey = daemonStalenessCauseKey(params.running, params.newest);
|
|
168
|
+
return rows.some((e) => {
|
|
169
|
+
if (SUPPRESSING_STATUSES.has(e.status ?? '')) {
|
|
170
|
+
const meta = e.metadata ?? null;
|
|
171
|
+
if (typeof meta?.cause_key === 'string' && meta.cause_key === causeKey)
|
|
172
|
+
return true;
|
|
173
|
+
}
|
|
174
|
+
// Legacy back-compat: an OPEN propagation_stale row with no cause_key suppresses.
|
|
175
|
+
return isOpenPropagationStale(e);
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
async function defaultHasOpenStalenessEscalation(params) {
|
|
156
179
|
const result = await callApi('escalation_list', {
|
|
157
|
-
|
|
180
|
+
// Include 'dismissed' so a dismissed handover keeps the same gap silent.
|
|
181
|
+
fields: { statuses: ['pending', 'in_review', 'dismissed'] },
|
|
158
182
|
limit: 500,
|
|
159
183
|
});
|
|
160
|
-
return (result.escalations ?? [])
|
|
184
|
+
return isStalenessRefileSuppressed(result.escalations ?? [], params);
|
|
161
185
|
}
|
|
162
186
|
async function defaultResolveStalenessEscalations() {
|
|
163
187
|
const result = await callApi('escalation_list', {
|
|
@@ -207,6 +231,9 @@ async function defaultHandOverReadyAction(params) {
|
|
|
207
231
|
ready_command: readyCommand,
|
|
208
232
|
reason: 'auto_update_disabled',
|
|
209
233
|
product_id: params.productId,
|
|
234
|
+
// cause_key (running+newest) suppresses a re-file for the SAME gap across
|
|
235
|
+
// ticks AND after an operator dismissal; a new `newest` is a new cause key.
|
|
236
|
+
cause_key: daemonStalenessCauseKey(diff.running, diff.newest),
|
|
210
237
|
},
|
|
211
238
|
});
|
|
212
239
|
}
|
|
@@ -259,7 +286,7 @@ export async function runStalenessSensorTick(config, deps = defaultDeps) {
|
|
|
259
286
|
}
|
|
260
287
|
const pc = configForProduct(config, anchor);
|
|
261
288
|
const canMachineClose = deps.canMachineCloseGap();
|
|
262
|
-
const hasOpen = await deps.hasOpenStalenessEscalation();
|
|
289
|
+
const hasOpen = await deps.hasOpenStalenessEscalation({ running: diff.running, newest: diff.newest });
|
|
263
290
|
const action = decideStalenessAction(diff, hasOpen, canMachineClose);
|
|
264
291
|
if (diff.beyondThreshold && canMachineClose) {
|
|
265
292
|
counts.delegatedToAutoUpdate = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staleness-sensor.js","sourceRoot":"","sources":["../src/staleness-sensor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"staleness-sensor.js","sourceRoot":"","sources":["../src/staleness-sensor.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
* Supabase/MCP.
|
|
35
35
|
*/
|
|
36
36
|
import type { FocusDeliveryInfo } from './types.js';
|
|
37
|
-
import { type
|
|
37
|
+
import { type FileEscalationIdempotentParams, type FileEscalationIdempotentResult } from './queries/escalation-suppression.js';
|
|
38
38
|
/**
|
|
39
39
|
* escalation_kind discriminators for the two stall detectors. Declared as
|
|
40
40
|
* daemon-local string constants (not imported from @telora/daemon-core's
|
|
@@ -55,19 +55,50 @@ export interface FocusStallContext {
|
|
|
55
55
|
focusName: string;
|
|
56
56
|
}
|
|
57
57
|
export interface VerifyFailedCapDeps {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
58
|
+
/**
|
|
59
|
+
* File the verify_gate_unclearable escalation through the cause-keyed idempotent
|
|
60
|
+
* gate: at most one open row per delivery, and a dismissed one keeps the same
|
|
61
|
+
* unclearable delivery silent (dismissal memory) until it moves on.
|
|
62
|
+
*/
|
|
63
|
+
fileEscalation: (params: FileEscalationIdempotentParams) => Promise<FileEscalationIdempotentResult>;
|
|
62
64
|
/** Override the cap for tests; defaults to the resolved env-config value. */
|
|
63
65
|
cap?: number;
|
|
64
66
|
}
|
|
65
67
|
/**
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
68
|
+
* True when `gateState.blocking` carries at least one guard verdict -- i.e. a
|
|
69
|
+
* guard is ACTUALLY rejecting the work right now.
|
|
70
|
+
*
|
|
71
|
+
* Only the `blocking` array counts. operatorHold / externalHold / shortfallProposalIds
|
|
72
|
+
* are carried OUTSIDE `blocking` (queries/deliveries.ts DeliveryGateState) because a
|
|
73
|
+
* hold is not a guard verdict. Treating operatorHold as a block here would
|
|
74
|
+
* reintroduce the very fixpoint the sibling operator-hold exclusion removes: the
|
|
75
|
+
* verify_gate_unclearable alarm writes gate_state with `blocking: []` + a populated
|
|
76
|
+
* operatorHold, and if that counted as "still blocking" the detector would keep
|
|
77
|
+
* re-firing on its own alarm. So the guard-verdict array is the sole live-block
|
|
78
|
+
* signal. (verify_evidence_unavailable DOES populate `blocking` with its own guard,
|
|
79
|
+
* but it consumes no iteration_count, so it can never by itself push over the cap.)
|
|
80
|
+
*
|
|
81
|
+
* Defensive over the `unknown` gate_state shape (FocusDeliveryInfo.gateState). Pure
|
|
82
|
+
* -- exported for direct unit testing.
|
|
83
|
+
*/
|
|
84
|
+
export declare function hasLiveBlockingGuard(gateState: unknown): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Pure decision: does this delivery exceed the verify_failed re-code cap AND is a
|
|
87
|
+
* guard still actively rejecting it?
|
|
88
|
+
*
|
|
89
|
+
* iteration_count is a MONOTONIC proxy for "the gate keeps rejecting this work",
|
|
90
|
+
* but the condition it proxies is NOT monotonic: the counter never decreases while
|
|
91
|
+
* the gate can go clear. Keying only on the counter let the detector assert "the
|
|
92
|
+
* gate keeps rejecting the work" at a moment when gate_state.blocking was empty and
|
|
93
|
+
* the gate was rejecting nothing (observed 2026-07-26). So the counter remains the
|
|
94
|
+
* TRIGGER (it is the right bounded-loop signal -- a delivery that has re-coded N
|
|
95
|
+
* times is the thing worth escalating), but the LIVE gate must also show a blocking
|
|
96
|
+
* guard for the claim to be true by construction. A terminal delivery
|
|
97
|
+
* (done/cancelled) is never escalated -- it has stopped cycling.
|
|
98
|
+
*
|
|
99
|
+
* Exported for direct unit testing.
|
|
69
100
|
*/
|
|
70
|
-
export declare function exceedsVerifyFailedCap(delivery: Pick<FocusDeliveryInfo, 'executionStatus' | 'iterationCount'>, cap: number): boolean;
|
|
101
|
+
export declare function exceedsVerifyFailedCap(delivery: Pick<FocusDeliveryInfo, 'executionStatus' | 'iterationCount' | 'gateState'>, cap: number): boolean;
|
|
71
102
|
/**
|
|
72
103
|
* Check ONE focus's ALREADY-FETCHED deliveries for any whose iteration_count
|
|
73
104
|
* exceeds the verify_failed re-code cap, filing a verify_gate_unclearable
|
|
@@ -77,10 +108,12 @@ export declare function exceedsVerifyFailedCap(delivery: Pick<FocusDeliveryInfo,
|
|
|
77
108
|
*/
|
|
78
109
|
export declare function checkVerifyFailedCapForFocus(ctx: FocusStallContext, deliveries: FocusDeliveryInfo[], deps?: VerifyFailedCapDeps): Promise<void>;
|
|
79
110
|
export interface ReviewWindowDeps {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
111
|
+
/**
|
|
112
|
+
* File the review_window_stalled escalation through the cause-keyed idempotent
|
|
113
|
+
* gate: at most one open row per focus, and a dismissed one keeps the same stale
|
|
114
|
+
* review window silent (dismissal memory) until the focus's review state changes.
|
|
115
|
+
*/
|
|
116
|
+
fileEscalation: (params: FileEscalationIdempotentParams) => Promise<FileEscalationIdempotentResult>;
|
|
84
117
|
/** Focus IDs that currently have an active REVIEW team. Defaults to live teams. */
|
|
85
118
|
activeReviewFocusIds: () => Set<string>;
|
|
86
119
|
/** Current epoch ms; injectable for tests. Defaults to Date.now. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stall-detectors.d.ts","sourceRoot":"","sources":["../src/stall-detectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMpD,OAAO,
|
|
1
|
+
{"version":3,"file":"stall-detectors.d.ts","sourceRoot":"","sources":["../src/stall-detectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMpD,OAAO,EAEL,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACpC,MAAM,qCAAqC,CAAC;AAU7C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AACtE,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAElE,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAgCD,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,cAAc,EAAE,CAAC,MAAM,EAAE,8BAA8B,KAAK,OAAO,CAAC,8BAA8B,CAAC,CAAC;IACpG,6EAA6E;IAC7E,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAIhE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,gBAAgB,GAAG,WAAW,CAAC,EACrF,GAAG,EAAE,MAAM,GACV,OAAO,CAIT;AAED;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CAChD,GAAG,EAAE,iBAAiB,EACtB,UAAU,EAAE,iBAAiB,EAAE,EAC/B,IAAI,GAAE,mBAAgD,GACrD,OAAO,CAAC,IAAI,CAAC,CAiEf;AAID,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,cAAc,EAAE,CAAC,MAAM,EAAE,8BAA8B,KAAK,OAAO,CAAC,8BAA8B,CAAC,CAAC;IACpG,mFAAmF;IACnF,oBAAoB,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC,oEAAoE;IACpE,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,kFAAkF;IAClF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,0EAA0E;AAC1E,wBAAgB,oBAAoB,IAAI,GAAG,CAAC,MAAM,CAAC,CAMlD;AAQD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,iBAAiB,EAAE,MAAM,GAAG,IAAI,EAChC,eAAe,EAAE,OAAO,EACxB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAMT;AAED;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,iBAAiB,EACtB,iBAAiB,EAAE,MAAM,GAAG,IAAI,EAChC,IAAI,GAAE,gBAA0C,GAC/C,OAAO,CAAC,IAAI,CAAC,CA+Df"}
|
package/dist/stall-detectors.js
CHANGED
|
@@ -34,7 +34,8 @@
|
|
|
34
34
|
* Supabase/MCP.
|
|
35
35
|
*/
|
|
36
36
|
import { ESCALATION_REASONS, ESCALATION_DISPOSITIONS, withRetry, } from '@telora/daemon-core';
|
|
37
|
-
import {
|
|
37
|
+
import { fileEscalationIdempotent as defaultFileEscalationIdempotent, } from './queries/escalation-suppression.js';
|
|
38
|
+
import { deliveryGuardCauseKey, focusBlockageCauseKey } from './queries/cause-key.js';
|
|
38
39
|
import { getActiveTeams } from './focus-executor.js';
|
|
39
40
|
import { isStatusTerminal } from './stage-classifier.js';
|
|
40
41
|
import { resolveVerifyFailedCap, resolveReviewWindowStaleHours } from './stall-detector-config.js';
|
|
@@ -64,19 +65,71 @@ function formatGateState(gateState) {
|
|
|
64
65
|
return '(unserializable)';
|
|
65
66
|
}
|
|
66
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* The names of the guards currently in `gate_state.blocking`. Empty when the gate
|
|
70
|
+
* carries no live guard verdict. Used to make the escalation body assert only what
|
|
71
|
+
* the gate actually says (the detector only fires when this is non-empty).
|
|
72
|
+
*/
|
|
73
|
+
function blockingGuardNames(gateState) {
|
|
74
|
+
if (gateState == null || typeof gateState !== 'object')
|
|
75
|
+
return [];
|
|
76
|
+
const blocking = gateState.blocking;
|
|
77
|
+
if (!Array.isArray(blocking))
|
|
78
|
+
return [];
|
|
79
|
+
return blocking
|
|
80
|
+
.map((b) => b && typeof b === 'object' && typeof b.guardName === 'string'
|
|
81
|
+
? b.guardName
|
|
82
|
+
: null)
|
|
83
|
+
.filter((n) => n !== null);
|
|
84
|
+
}
|
|
67
85
|
const defaultVerifyFailedCapDeps = {
|
|
68
|
-
|
|
69
|
-
createEscalation: defaultCreateEscalation,
|
|
86
|
+
fileEscalation: defaultFileEscalationIdempotent,
|
|
70
87
|
};
|
|
71
88
|
/**
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
89
|
+
* True when `gateState.blocking` carries at least one guard verdict -- i.e. a
|
|
90
|
+
* guard is ACTUALLY rejecting the work right now.
|
|
91
|
+
*
|
|
92
|
+
* Only the `blocking` array counts. operatorHold / externalHold / shortfallProposalIds
|
|
93
|
+
* are carried OUTSIDE `blocking` (queries/deliveries.ts DeliveryGateState) because a
|
|
94
|
+
* hold is not a guard verdict. Treating operatorHold as a block here would
|
|
95
|
+
* reintroduce the very fixpoint the sibling operator-hold exclusion removes: the
|
|
96
|
+
* verify_gate_unclearable alarm writes gate_state with `blocking: []` + a populated
|
|
97
|
+
* operatorHold, and if that counted as "still blocking" the detector would keep
|
|
98
|
+
* re-firing on its own alarm. So the guard-verdict array is the sole live-block
|
|
99
|
+
* signal. (verify_evidence_unavailable DOES populate `blocking` with its own guard,
|
|
100
|
+
* but it consumes no iteration_count, so it can never by itself push over the cap.)
|
|
101
|
+
*
|
|
102
|
+
* Defensive over the `unknown` gate_state shape (FocusDeliveryInfo.gateState). Pure
|
|
103
|
+
* -- exported for direct unit testing.
|
|
104
|
+
*/
|
|
105
|
+
export function hasLiveBlockingGuard(gateState) {
|
|
106
|
+
if (gateState == null || typeof gateState !== 'object')
|
|
107
|
+
return false;
|
|
108
|
+
const blocking = gateState.blocking;
|
|
109
|
+
return Array.isArray(blocking) && blocking.length > 0;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Pure decision: does this delivery exceed the verify_failed re-code cap AND is a
|
|
113
|
+
* guard still actively rejecting it?
|
|
114
|
+
*
|
|
115
|
+
* iteration_count is a MONOTONIC proxy for "the gate keeps rejecting this work",
|
|
116
|
+
* but the condition it proxies is NOT monotonic: the counter never decreases while
|
|
117
|
+
* the gate can go clear. Keying only on the counter let the detector assert "the
|
|
118
|
+
* gate keeps rejecting the work" at a moment when gate_state.blocking was empty and
|
|
119
|
+
* the gate was rejecting nothing (observed 2026-07-26). So the counter remains the
|
|
120
|
+
* TRIGGER (it is the right bounded-loop signal -- a delivery that has re-coded N
|
|
121
|
+
* times is the thing worth escalating), but the LIVE gate must also show a blocking
|
|
122
|
+
* guard for the claim to be true by construction. A terminal delivery
|
|
123
|
+
* (done/cancelled) is never escalated -- it has stopped cycling.
|
|
124
|
+
*
|
|
125
|
+
* Exported for direct unit testing.
|
|
75
126
|
*/
|
|
76
127
|
export function exceedsVerifyFailedCap(delivery, cap) {
|
|
77
128
|
if (isStatusTerminal(delivery.executionStatus ?? ''))
|
|
78
129
|
return false;
|
|
79
|
-
|
|
130
|
+
if ((delivery.iterationCount ?? 0) <= cap)
|
|
131
|
+
return false;
|
|
132
|
+
return hasLiveBlockingGuard(delivery.gateState);
|
|
80
133
|
}
|
|
81
134
|
/**
|
|
82
135
|
* Check ONE focus's ALREADY-FETCHED deliveries for any whose iteration_count
|
|
@@ -90,11 +143,18 @@ export async function checkVerifyFailedCapForFocus(ctx, deliveries, deps = defau
|
|
|
90
143
|
for (const delivery of deliveries) {
|
|
91
144
|
if (!exceedsVerifyFailedCap(delivery, cap))
|
|
92
145
|
continue;
|
|
146
|
+
// Guaranteed non-empty by exceedsVerifyFailedCap -- the escalation asserts only
|
|
147
|
+
// what the live gate says (AC3), never an unconditional "gate keeps rejecting".
|
|
148
|
+
const guards = blockingGuardNames(delivery.gateState);
|
|
149
|
+
const guardClause = guards.length
|
|
150
|
+
? `The verify gate is currently blocking on: ${guards.join(', ')}.`
|
|
151
|
+
: `The verify gate is currently blocking (see gate_state).`;
|
|
152
|
+
// Per-delivery cause key (guard-less): one open row per stuck delivery, and a
|
|
153
|
+
// dismissed one stays silent -- the cause is the delivery, not the guard name.
|
|
154
|
+
const causeKey = deliveryGuardCauseKey(VERIFY_GATE_UNCLEARABLE_KIND, delivery.id);
|
|
93
155
|
try {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
97
|
-
await withRetry(() => deps.createEscalation({
|
|
156
|
+
await withRetry(() => deps.fileEscalation({
|
|
157
|
+
causeKey,
|
|
98
158
|
organizationId: ctx.organizationId,
|
|
99
159
|
sessionId: '',
|
|
100
160
|
issueId: null,
|
|
@@ -105,7 +165,7 @@ export async function checkVerifyFailedCapForFocus(ctx, deliveries, deps = defau
|
|
|
105
165
|
escalationKind: VERIFY_GATE_UNCLEARABLE_KIND,
|
|
106
166
|
description: `Delivery "${delivery.name}" has been through ${delivery.iterationCount ?? 0} ` +
|
|
107
167
|
`verify_failed re-code cycles (cap ${cap}) without clearing the verify gate. ` +
|
|
108
|
-
|
|
168
|
+
`${guardClause} The loop will not converge on its own.\n\n` +
|
|
109
169
|
`**Focus:** ${ctx.focusName}\n` +
|
|
110
170
|
`**Focus ID:** ${ctx.focusId}\n` +
|
|
111
171
|
`**Delivery:** "${delivery.name}" (${delivery.id})\n` +
|
|
@@ -144,8 +204,7 @@ export function activeReviewFocusIds() {
|
|
|
144
204
|
return ids;
|
|
145
205
|
}
|
|
146
206
|
const defaultReviewWindowDeps = {
|
|
147
|
-
|
|
148
|
-
createEscalation: defaultCreateEscalation,
|
|
207
|
+
fileEscalation: defaultFileEscalationIdempotent,
|
|
149
208
|
activeReviewFocusIds,
|
|
150
209
|
now: () => Date.now(),
|
|
151
210
|
};
|
|
@@ -180,12 +239,13 @@ export async function checkReviewWindowStaleForFocus(ctx, reviewRequestedAt, dep
|
|
|
180
239
|
if (!isReviewWindowStale(reviewRequestedAt, hasActiveReview, nowMs, thresholdMs)) {
|
|
181
240
|
return;
|
|
182
241
|
}
|
|
242
|
+
// Per-focus cause key: one open row per focus for a stale review window, and a
|
|
243
|
+
// dismissed one keeps it silent (dismissal memory) until the review state changes.
|
|
244
|
+
const causeKey = focusBlockageCauseKey(REVIEW_WINDOW_STALLED_KIND, ctx.focusId, 'stale_review_window');
|
|
183
245
|
try {
|
|
184
|
-
if (await deps.hasOpenFocusEscalation(ctx.focusId, REVIEW_WINDOW_STALLED_KIND)) {
|
|
185
|
-
return;
|
|
186
|
-
}
|
|
187
246
|
const ageHours = Math.floor((nowMs - Date.parse(reviewRequestedAt)) / 3_600_000);
|
|
188
|
-
await withRetry(() => deps.
|
|
247
|
+
await withRetry(() => deps.fileEscalation({
|
|
248
|
+
causeKey,
|
|
189
249
|
organizationId: ctx.organizationId,
|
|
190
250
|
sessionId: '',
|
|
191
251
|
issueId: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stall-detectors.js","sourceRoot":"","sources":["../src/stall-detectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,SAAS,GACV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"stall-detectors.js","sourceRoot":"","sources":["../src/stall-detectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,SAAS,GACV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,wBAAwB,IAAI,+BAA+B,GAG5D,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AACnG,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;AAGxD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,yBAAyB,CAAC;AACtE,MAAM,CAAC,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AASlE,2DAA2D;AAC3D,SAAS,eAAe,CAAC,SAAkB;IACzC,IAAI,SAAS,IAAI,IAAI;QAAE,OAAO,iBAAiB,CAAC;IAChD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,kBAAkB,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,SAAkB;IAC5C,IAAI,SAAS,IAAI,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAClE,MAAM,QAAQ,GAAI,SAAoC,CAAC,QAAQ,CAAC;IAChE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,OAAO,QAAQ;SACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAQ,CAA6B,CAAC,SAAS,KAAK,QAAQ;QACxF,CAAC,CAAE,CAA2B,CAAC,SAAS;QACxC,CAAC,CAAC,IAAI,CACT;SACA,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AAC5C,CAAC;AAeD,MAAM,0BAA0B,GAAwB;IACtD,cAAc,EAAE,+BAA+B;CAChD,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAkB;IACrD,IAAI,SAAS,IAAI,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACrE,MAAM,QAAQ,GAAI,SAAoC,CAAC,QAAQ,CAAC;IAChE,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAqF,EACrF,GAAW;IAEX,IAAI,gBAAgB,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IACnE,IAAI,CAAC,QAAQ,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,GAAG;QAAE,OAAO,KAAK,CAAC;IACxD,OAAO,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,GAAsB,EACtB,UAA+B,EAC/B,OAA4B,0BAA0B;IAEtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,sBAAsB,EAAE,CAAC;IAEjD,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,GAAG,CAAC;YAAE,SAAS;QACrD,gFAAgF;QAChF,gFAAgF;QAChF,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM;YAC/B,CAAC,CAAC,6CAA6C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACnE,CAAC,CAAC,yDAAyD,CAAC;QAC9D,8EAA8E;QAC9E,+EAA+E;QAC/E,MAAM,QAAQ,GAAG,qBAAqB,CAAC,4BAA4B,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC;YACH,MAAM,SAAS,CACb,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC;gBACxB,QAAQ;gBACR,cAAc,EAAE,GAAG,CAAC,cAAc;gBAClC,SAAS,EAAE,EAAE;gBACb,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,kBAAkB,CAAC,mBAAmB;gBAClD,mEAAmE;gBACnE,WAAW,EAAE,uBAAuB,CAAC,cAAc;gBACnD,MAAM,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;gBACzD,cAAc,EAAE,4BAA4B;gBAC5C,WAAW,EACT,aAAa,QAAQ,CAAC,IAAI,sBAAsB,QAAQ,CAAC,cAAc,IAAI,CAAC,GAAG;oBAC/E,qCAAqC,GAAG,sCAAsC;oBAC9E,GAAG,WAAW,6CAA6C;oBAC3D,cAAc,GAAG,CAAC,SAAS,IAAI;oBAC/B,iBAAiB,GAAG,CAAC,OAAO,IAAI;oBAChC,kBAAkB,QAAQ,CAAC,IAAI,MAAM,QAAQ,CAAC,EAAE,KAAK;oBACrD,eAAe,QAAQ,CAAC,eAAe,IAAI,SAAS,IAAI;oBACxD,wBAAwB,QAAQ,CAAC,cAAc,IAAI,CAAC,IAAI;oBACxD,mBAAmB,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM;oBAC5D,yFAAyF;gBAC3F,YAAY,EACV,yCAAyC,QAAQ,CAAC,cAAc,IAAI,CAAC,UAAU;oBAC/E,0DAA0D;gBAC5D,UAAU,EACR,iFAAiF;oBACjF,sDAAsD;gBACxD,QAAQ,EAAE;oBACR,KAAK,EAAE,4BAA4B;oBACnC,YAAY,EAAE,QAAQ,CAAC,IAAI;oBAC3B,eAAe,EAAE,QAAQ,CAAC,eAAe;oBACzC,cAAc,EAAE,QAAQ,CAAC,cAAc,IAAI,CAAC;oBAC5C,GAAG;oBACH,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,IAAI;iBACtC;aACF,CAAC,EACF,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,sCAAsC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAC/E,CAAC;YACF,GAAG,CAAC,IAAI,CACN,4EAA4E,QAAQ,CAAC,IAAI,IAAI;gBAC7F,oBAAoB,QAAQ,CAAC,cAAc,IAAI,CAAC,UAAU,GAAG,GAAG,CACjE,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CACN,gFAAgF,QAAQ,CAAC,IAAI,IAAI,EAChG,GAAa,CAAC,OAAO,CACvB,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAmBD,0EAA0E;AAC1E,MAAM,UAAU,oBAAoB;IAClC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,cAAc,EAAE,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,WAAW,KAAK,QAAQ;YAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,uBAAuB,GAAqB;IAChD,cAAc,EAAE,+BAA+B;IAC/C,oBAAoB;IACpB,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;CACtB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,iBAAgC,EAChC,eAAwB,EACxB,KAAa,EACb,WAAmB;IAEnB,IAAI,CAAC,iBAAiB;QAAE,OAAO,KAAK,CAAC;IACrC,IAAI,eAAe;QAAE,OAAO,KAAK,CAAC;IAClC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,KAAK,GAAG,WAAW,GAAG,WAAW,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,GAAsB,EACtB,iBAAgC,EAChC,OAAyB,uBAAuB;IAEhD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,6BAA6B,EAAE,CAAC;IAC9E,MAAM,WAAW,GAAG,cAAc,GAAG,SAAS,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEzB,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC;QACjF,OAAO;IACT,CAAC;IACD,+EAA+E;IAC/E,mFAAmF;IACnF,MAAM,QAAQ,GAAG,qBAAqB,CAAC,0BAA0B,EAAE,GAAG,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IACvG,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,iBAA2B,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;QAC3F,MAAM,SAAS,CACb,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC;YACxB,QAAQ;YACR,cAAc,EAAE,GAAG,CAAC,cAAc;YAClC,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,kBAAkB,CAAC,mBAAmB;YAClD,uEAAuE;YACvE,WAAW,EAAE,uBAAuB,CAAC,cAAc;YACnD,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;YAChC,cAAc,EAAE,0BAA0B;YAC1C,WAAW,EACT,UAAU,GAAG,CAAC,SAAS,yBAAyB,QAAQ,QAAQ;gBAChE,cAAc,cAAc,qDAAqD;gBACjF,8EAA8E;gBAC9E,gFAAgF;gBAChF,mBAAmB;gBACnB,cAAc,GAAG,CAAC,SAAS,IAAI;gBAC/B,iBAAiB,GAAG,CAAC,OAAO,IAAI;gBAChC,4BAA4B,iBAAiB,MAAM;gBACnD,mFAAmF;gBACnF,wEAAwE;YAC1E,YAAY,EACV,0DAA0D,QAAQ,gBAAgB;gBAClF,kFAAkF;YACpF,UAAU,EACR,+DAA+D;gBAC/D,iFAAiF;gBACjF,oBAAoB;YACtB,QAAQ,EAAE;gBACR,KAAK,EAAE,0BAA0B;gBACjC,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,iBAAiB;gBACjB,QAAQ;gBACR,cAAc;aACf;SACF,CAAC,EACF,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,oCAAoC,GAAG,CAAC,OAAO,EAAE,EAAE,CAC7E,CAAC;QACF,GAAG,CAAC,IAAI,CACN,uEAAuE,GAAG,CAAC,SAAS,IAAI;YACxF,yBAAyB,QAAQ,WAAW,cAAc,IAAI,CAC/D,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CACN,yEAAyE,GAAG,CAAC,SAAS,IAAI,EACzF,GAAa,CAAC,OAAO,CACvB,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -14,7 +14,7 @@ export type { DeploymentProfileSnapshotContext, FocusTeamPromptContext, } from '
|
|
|
14
14
|
import type { FocusTeamPromptContext } from './prompt-sections/shared.js';
|
|
15
15
|
export { buildRoleSection, buildDomainBoundariesSection, buildTeamLeadRoleSection, buildReadOnlyAuditSection, } from './prompt-sections/role-sections.js';
|
|
16
16
|
export { buildFocusContextSection, buildProductContextSection, buildDeploymentProfileSection, buildLoopContextSection, buildExecutionConfigSection, } from './prompt-sections/context-sections.js';
|
|
17
|
-
export { buildPlanningSection, buildExecutionPolaritySection, buildDeliveryListingSection, buildStatusUpdateRulesSection, buildExecutionInstructionsSection, buildSessionConstraintsSection, buildWorkerManagementSection, buildDeliveryStageProgressionSection, buildScopingMandateSection, buildRescopingSection, buildNewWorkDeliverySection, buildErrorHandlingSection, buildMergeConflictSection, buildCompletionSection, } from './prompt-sections/execution-sections.js';
|
|
17
|
+
export { buildPlanningSection, buildExecutionPolaritySection, buildDeliveryListingSection, buildStatusUpdateRulesSection, buildExecutionInstructionsSection, buildSessionConstraintsSection, buildWorkerManagementSection, buildDeliveryStageProgressionSection, buildScopingMandateSection, buildRescopingSection, buildNewWorkDeliverySection, buildAgentResolvableInboxSection, buildErrorHandlingSection, buildMergeConflictSection, buildCompletionSection, } from './prompt-sections/execution-sections.js';
|
|
18
18
|
export { buildRemediationDirectiveSection, buildReviewOutcomeStampingSection, buildReviewSensorAuditSection, LAST_REVIEW_REPORT_HEADING, buildRemediationFramingSection, buildLoopMaintenanceSection, buildCloseLoopBookkeeperPersona, buildCloseLoopDriftCheckSection, buildResumeDeltaMessage, } from './prompt-sections/persona-sections.js';
|
|
19
19
|
export type { ResumeDeltaContext } from './prompt-sections/persona-sections.js';
|
|
20
20
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-prompt-base.d.ts","sourceRoot":"","sources":["../src/team-prompt-base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,YAAY,EACV,gCAAgC,EAChC,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAG1E,OAAO,EACL,gBAAgB,EAChB,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAS5C,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,uCAAuC,CAAC;AAU/C,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,2BAA2B,EAC3B,6BAA6B,EAC7B,iCAAiC,EACjC,8BAA8B,EAC9B,4BAA4B,EAC5B,oCAAoC,EACpC,0BAA0B,EAC1B,qBAAqB,EACrB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"team-prompt-base.d.ts","sourceRoot":"","sources":["../src/team-prompt-base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,YAAY,EACV,gCAAgC,EAChC,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAG1E,OAAO,EACL,gBAAgB,EAChB,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAS5C,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,uCAAuC,CAAC;AAU/C,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,2BAA2B,EAC3B,6BAA6B,EAC7B,iCAAiC,EACjC,8BAA8B,EAC9B,4BAA4B,EAC5B,oCAAoC,EACpC,0BAA0B,EAC1B,qBAAqB,EACrB,2BAA2B,EAC3B,gCAAgC,EAChC,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,yCAAyC,CAAC;AAoBjD,OAAO,EACL,gCAAgC,EAChC,iCAAiC,EACjC,6BAA6B,EAC7B,0BAA0B,EAC1B,8BAA8B,EAC9B,2BAA2B,EAC3B,+BAA+B,EAC/B,+BAA+B,EAC/B,uBAAuB,GACxB,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAWhF;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CAkCR;AAMD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CAwCR"}
|
package/dist/team-prompt-base.js
CHANGED
|
@@ -16,8 +16,8 @@ import { buildRoleSection, buildDomainBoundariesSection, buildTeamLeadRoleSectio
|
|
|
16
16
|
export { buildFocusContextSection, buildProductContextSection, buildDeploymentProfileSection, buildLoopContextSection, buildExecutionConfigSection, } from './prompt-sections/context-sections.js';
|
|
17
17
|
import { buildFocusContextSection, buildProductContextSection, buildDeploymentProfileSection, buildLoopContextSection, buildExecutionConfigSection, } from './prompt-sections/context-sections.js';
|
|
18
18
|
// Execution sections.
|
|
19
|
-
export { buildPlanningSection, buildExecutionPolaritySection, buildDeliveryListingSection, buildStatusUpdateRulesSection, buildExecutionInstructionsSection, buildSessionConstraintsSection, buildWorkerManagementSection, buildDeliveryStageProgressionSection, buildScopingMandateSection, buildRescopingSection, buildNewWorkDeliverySection, buildErrorHandlingSection, buildMergeConflictSection, buildCompletionSection, } from './prompt-sections/execution-sections.js';
|
|
20
|
-
import { buildPlanningSection, buildExecutionPolaritySection, buildDeliveryListingSection, buildStatusUpdateRulesSection, buildExecutionInstructionsSection, buildSessionConstraintsSection, buildWorkerManagementSection, buildDeliveryStageProgressionSection, buildScopingMandateSection, buildRescopingSection, buildNewWorkDeliverySection, buildErrorHandlingSection, buildMergeConflictSection, buildCompletionSection, } from './prompt-sections/execution-sections.js';
|
|
19
|
+
export { buildPlanningSection, buildExecutionPolaritySection, buildDeliveryListingSection, buildStatusUpdateRulesSection, buildExecutionInstructionsSection, buildSessionConstraintsSection, buildWorkerManagementSection, buildDeliveryStageProgressionSection, buildScopingMandateSection, buildRescopingSection, buildNewWorkDeliverySection, buildAgentResolvableInboxSection, buildErrorHandlingSection, buildMergeConflictSection, buildCompletionSection, } from './prompt-sections/execution-sections.js';
|
|
20
|
+
import { buildPlanningSection, buildExecutionPolaritySection, buildDeliveryListingSection, buildStatusUpdateRulesSection, buildExecutionInstructionsSection, buildSessionConstraintsSection, buildWorkerManagementSection, buildDeliveryStageProgressionSection, buildScopingMandateSection, buildRescopingSection, buildNewWorkDeliverySection, buildAgentResolvableInboxSection, buildErrorHandlingSection, buildMergeConflictSection, buildCompletionSection, } from './prompt-sections/execution-sections.js';
|
|
21
21
|
// Persona / framing sections + resume-delta message.
|
|
22
22
|
export { buildRemediationDirectiveSection, buildReviewOutcomeStampingSection, buildReviewSensorAuditSection, LAST_REVIEW_REPORT_HEADING, buildRemediationFramingSection, buildLoopMaintenanceSection, buildCloseLoopBookkeeperPersona, buildCloseLoopDriftCheckSection, buildResumeDeltaMessage, } from './prompt-sections/persona-sections.js';
|
|
23
23
|
import { buildRemediationDirectiveSection, buildLoopMaintenanceSection, buildCloseLoopDriftCheckSection, } from './prompt-sections/persona-sections.js';
|
|
@@ -53,6 +53,7 @@ export function buildRoleFrameworkPrompt(role, context) {
|
|
|
53
53
|
buildScopingMandateSection(),
|
|
54
54
|
buildRescopingSection(context.focusId, context.productId),
|
|
55
55
|
buildNewWorkDeliverySection(),
|
|
56
|
+
buildAgentResolvableInboxSection(context.agentResolvableItems ?? []),
|
|
56
57
|
buildErrorHandlingSection(),
|
|
57
58
|
buildMergeConflictSection(),
|
|
58
59
|
buildLoopMaintenanceSection(),
|
|
@@ -103,6 +104,7 @@ export function buildFocusTeamPrompt(role, context) {
|
|
|
103
104
|
buildScopingMandateSection(),
|
|
104
105
|
buildRescopingSection(context.focusId, context.productId),
|
|
105
106
|
buildNewWorkDeliverySection(),
|
|
107
|
+
buildAgentResolvableInboxSection(context.agentResolvableItems ?? []),
|
|
106
108
|
buildErrorHandlingSection(),
|
|
107
109
|
buildMergeConflictSection(),
|
|
108
110
|
buildLoopMaintenanceSection(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-prompt-base.js","sourceRoot":"","sources":["../src/team-prompt-base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,2BAA2B;AAC3B,OAAO,EACL,gBAAgB,EAChB,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,gBAAgB,EAChB,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAE5C,oBAAoB;AACpB,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,uCAAuC,CAAC;AAE/C,sBAAsB;AACtB,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,2BAA2B,EAC3B,6BAA6B,EAC7B,iCAAiC,EACjC,8BAA8B,EAC9B,4BAA4B,EAC5B,oCAAoC,EACpC,0BAA0B,EAC1B,qBAAqB,EACrB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,2BAA2B,EAC3B,6BAA6B,EAC7B,iCAAiC,EACjC,8BAA8B,EAC9B,4BAA4B,EAC5B,oCAAoC,EACpC,0BAA0B,EAC1B,qBAAqB,EACrB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,yCAAyC,CAAC;AAEjD,qDAAqD;AACrD,OAAO,EACL,gCAAgC,EAChC,iCAAiC,EACjC,6BAA6B,EAC7B,0BAA0B,EAC1B,8BAA8B,EAC9B,2BAA2B,EAC3B,+BAA+B,EAC/B,+BAA+B,EAC/B,uBAAuB,GACxB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EACL,gCAAgC,EAChC,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,uCAAuC,CAAC;AAE/C,8EAA8E;AAC9E,yCAAyC;AACzC,8EAA8E;AAE9E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,wBAAwB,CACtC,IAAe,EACf,OAA+B;IAE/B,MAAM,QAAQ,GAAe;QAC3B,gBAAgB,CAAC,IAAI,CAAC;QACtB,4BAA4B,CAAC,IAAI,CAAC;QAClC,wBAAwB,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC1C,yBAAyB,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC3C,wBAAwB,CAAC,OAAO,CAAC;QACjC,gCAAgC,CAAC,OAAO,CAAC,oBAAoB,IAAI,CAAC,CAAC;QACnE,oBAAoB,CAAC,OAAO,CAAC;QAC7B,2BAA2B,CAAC,OAAO,CAAC,eAAe,CAAC;QACpD,6BAA6B,EAAE;QAC/B,8BAA8B,EAAE;QAChC,4BAA4B,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC;QAClF,oCAAoC,EAAE;QACtC,6BAA6B,EAAE;QAC/B,0BAA0B,EAAE;QAC5B,qBAAqB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;QACzD,2BAA2B,EAAE;QAC7B,yBAAyB,EAAE;QAC3B,yBAAyB,EAAE;QAC3B,2BAA2B,EAAE;QAC7B,+BAA+B,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACzD,sBAAsB,EAAE;KACzB,CAAC;IAEF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAe,EACf,OAA+B;IAE/B,MAAM,QAAQ,GAAe;QAC3B,gBAAgB,CAAC,IAAI,CAAC;QACtB,4BAA4B,CAAC,IAAI,CAAC;QAClC,wBAAwB,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC1C,yBAAyB,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC3C,wBAAwB,CAAC,OAAO,CAAC;QACjC,gCAAgC,CAAC,OAAO,CAAC,oBAAoB,IAAI,CAAC,CAAC;QACnE,0BAA0B,CAAC,OAAO,CAAC,kBAAkB,CAAC;QACtD,6BAA6B,CAAC,OAAO,CAAC,yBAAyB,CAAC;QAChE,uBAAuB,CAAC,OAAO,CAAC,WAAW,CAAC;QAC5C,2BAA2B,CAAC,OAAO,CAAC,eAAe,CAAC;QACpD,oBAAoB,CAAC,OAAO,CAAC;QAC7B,2BAA2B,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC;QAC/D,6BAA6B,EAAE;QAC/B,iCAAiC,CAAC,OAAO,CAAC,SAAS,CAAC;QACpD,8BAA8B,EAAE;QAChC,4BAA4B,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC;QAClF,oCAAoC,EAAE;QACtC,6BAA6B,EAAE;QAC/B,0BAA0B,EAAE;QAC5B,qBAAqB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;QACzD,2BAA2B,EAAE;QAC7B,yBAAyB,EAAE;QAC3B,yBAAyB,EAAE;QAC3B,2BAA2B,EAAE;QAC7B,+BAA+B,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACzD,sBAAsB,EAAE;KACzB,CAAC;IAEF,+DAA+D;IAC/D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"team-prompt-base.js","sourceRoot":"","sources":["../src/team-prompt-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification-default-on.d.ts","sourceRoot":"","sources":["../src/verification-default-on.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAiC,KAAK,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAG3G,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAM1E;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;IAC1C,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;CAC/C;AAMD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;gBAErC,KAAK,EAAE,MAAM;IAKzB,mFAAmF;IACnF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAavB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B,OAAO,IAAI,IAAI;IASf,2DAA2D;IAC3D,gBAAgB,IAAI,MAAM;CAG3B;AAED,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,uBAA+B,CAAC;AAElE,oDAAoD;AACpD,wBAAgB,kCAAkC,IAAI;IAAE,gBAAgB,IAAI,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAE9G;AAMD;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,YAAY,CAAC;IACtB,2FAA2F;IAC3F,aAAa,EAAE,YAAY,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,EAAE,2BAA2B,GAAG,SAAS,CAAC;CACnD;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,2BAA2B,GACxD,wBAAwB,EAAE,CAe5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,wBAAwB,EAAE,GAC1C,MAAM,CAMR;AAmBD,oDAAoD;AACpD,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD;AAED,0DAA0D;AAC1D,wBAAgB,2BAA2B,IAAI,WAAW,CAAC,MAAM,CAAC,CAEjE;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAEzD;AAED,4CAA4C;AAC5C,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAEnE;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,2BAA2B,EACrC,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,EACxC,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,mBAAmB,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"verification-default-on.d.ts","sourceRoot":"","sources":["../src/verification-default-on.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAiC,KAAK,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAG3G,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAM1E;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;IAC1C,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;CAC/C;AAMD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;gBAErC,KAAK,EAAE,MAAM;IAKzB,mFAAmF;IACnF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAavB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B,OAAO,IAAI,IAAI;IASf,2DAA2D;IAC3D,gBAAgB,IAAI,MAAM;CAG3B;AAED,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,uBAA+B,CAAC;AAElE,oDAAoD;AACpD,wBAAgB,kCAAkC,IAAI;IAAE,gBAAgB,IAAI,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAE9G;AAMD;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,YAAY,CAAC;IACtB,2FAA2F;IAC3F,aAAa,EAAE,YAAY,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,EAAE,2BAA2B,GAAG,SAAS,CAAC;CACnD;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,2BAA2B,GACxD,wBAAwB,EAAE,CAe5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,wBAAwB,EAAE,GAC1C,MAAM,CAMR;AAmBD,oDAAoD;AACpD,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD;AAED,0DAA0D;AAC1D,wBAAgB,2BAA2B,IAAI,WAAW,CAAC,MAAM,CAAC,CAEjE;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAEzD;AAED,4CAA4C;AAC5C,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAEnE;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,2BAA2B,EACrC,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,EACxC,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CA4DhC"}
|
|
@@ -253,6 +253,11 @@ export async function collectDefaultOnVerifications(config, resolved, explicitDe
|
|
|
253
253
|
verificationConfig: { command: resolved.command, timeoutMs: resolved.timeoutMs },
|
|
254
254
|
verificationOutcome: null,
|
|
255
255
|
verificationLastRunAt: null,
|
|
256
|
+
// Recorded git state travels with the verification so the evidence
|
|
257
|
+
// resolver can judge an already-merged-back delivery from its own merge
|
|
258
|
+
// commit rather than reporting blindness.
|
|
259
|
+
gitState: d.gitState,
|
|
260
|
+
mergeCommitSha: d.mergeCommitSha,
|
|
256
261
|
});
|
|
257
262
|
}
|
|
258
263
|
}
|