@telora/daemon 0.20.21 → 0.20.32
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 +43 -6
- package/dist/audit-phase.d.ts.map +1 -1
- package/dist/audit-phase.js +124 -23
- package/dist/audit-phase.js.map +1 -1
- package/dist/auto-update.d.ts +87 -0
- package/dist/auto-update.d.ts.map +1 -1
- package/dist/auto-update.js +142 -8
- package/dist/auto-update.js.map +1 -1
- package/dist/cascade-restatement.d.ts +13 -147
- package/dist/cascade-restatement.d.ts.map +1 -1
- package/dist/cascade-restatement.js +13 -429
- package/dist/cascade-restatement.js.map +1 -1
- package/dist/focus-engine.d.ts.map +1 -1
- package/dist/focus-engine.js +15 -0
- package/dist/focus-engine.js.map +1 -1
- package/dist/focus-loop-registry.d.ts.map +1 -1
- package/dist/focus-loop-registry.js +43 -90
- package/dist/focus-loop-registry.js.map +1 -1
- package/dist/focus-loop.d.ts +0 -2
- package/dist/focus-loop.d.ts.map +1 -1
- package/dist/focus-loop.js +33 -25
- package/dist/focus-loop.js.map +1 -1
- package/dist/focus-phase.d.ts +26 -0
- package/dist/focus-phase.d.ts.map +1 -1
- package/dist/focus-phase.js +38 -0
- package/dist/focus-phase.js.map +1 -1
- package/dist/focus-prompt-builder.d.ts.map +1 -1
- package/dist/focus-prompt-builder.js +5 -1
- package/dist/focus-prompt-builder.js.map +1 -1
- package/dist/listener.d.ts.map +1 -1
- package/dist/listener.js +40 -9
- package/dist/listener.js.map +1 -1
- package/dist/loops/llm-client.d.ts.map +1 -1
- package/dist/loops/llm-client.js +17 -4
- package/dist/loops/llm-client.js.map +1 -1
- package/dist/prompt-listing.d.ts +25 -0
- package/dist/prompt-listing.d.ts.map +1 -1
- package/dist/prompt-listing.js +61 -0
- package/dist/prompt-listing.js.map +1 -1
- package/dist/queries/audit-runs.d.ts +56 -2
- package/dist/queries/audit-runs.d.ts.map +1 -1
- package/dist/queries/audit-runs.js +40 -0
- package/dist/queries/audit-runs.js.map +1 -1
- package/dist/queries/deliveries.d.ts +27 -0
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/focuses.d.ts +0 -9
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +0 -14
- package/dist/queries/focuses.js.map +1 -1
- package/dist/resolvers/index.d.ts +1 -1
- package/dist/resolvers/index.d.ts.map +1 -1
- package/dist/resolvers/index.js +1 -1
- package/dist/resolvers/index.js.map +1 -1
- package/dist/resolvers/shared/audit.d.ts +5 -0
- package/dist/resolvers/shared/audit.d.ts.map +1 -1
- package/dist/resolvers/shared/audit.js +8 -3
- package/dist/resolvers/shared/audit.js.map +1 -1
- package/dist/resolvers/shared/git-diff.d.ts +13 -0
- package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
- package/dist/resolvers/shared/git-diff.js +30 -0
- package/dist/resolvers/shared/git-diff.js.map +1 -1
- package/dist/security-scan-engine.d.ts +9 -1
- package/dist/security-scan-engine.d.ts.map +1 -1
- package/dist/security-scan-engine.js +25 -2
- package/dist/security-scan-engine.js.map +1 -1
- package/dist/spawn/review-role-fallback.d.ts +74 -0
- package/dist/spawn/review-role-fallback.d.ts.map +1 -0
- package/dist/spawn/review-role-fallback.js +62 -0
- package/dist/spawn/review-role-fallback.js.map +1 -0
- package/dist/staleness-sensor.d.ts +153 -0
- package/dist/staleness-sensor.d.ts.map +1 -0
- package/dist/staleness-sensor.js +308 -0
- package/dist/staleness-sensor.js.map +1 -0
- package/dist/unified-shell.d.ts.map +1 -1
- package/dist/unified-shell.js +11 -0
- package/dist/unified-shell.js.map +1 -1
- package/dist/verification-engine.d.ts +17 -1
- package/dist/verification-engine.d.ts.map +1 -1
- package/dist/verification-engine.js +143 -104
- package/dist/verification-engine.js.map +1 -1
- package/dist/verification-feedback.d.ts +68 -1
- package/dist/verification-feedback.d.ts.map +1 -1
- package/dist/verification-feedback.js +175 -0
- package/dist/verification-feedback.js.map +1 -1
- package/dist/verify-reconciliation.d.ts +16 -1
- package/dist/verify-reconciliation.d.ts.map +1 -1
- package/dist/verify-reconciliation.js +18 -2
- package/dist/verify-reconciliation.js.map +1 -1
- package/dist/verify-restatement.d.ts +7 -0
- package/dist/verify-restatement.d.ts.map +1 -1
- package/dist/verify-restatement.js +1 -0
- package/dist/verify-restatement.js.map +1 -1
- package/dist/version-check.d.ts +6 -0
- package/dist/version-check.d.ts.map +1 -1
- package/dist/version-check.js +1 -1
- package/dist/version-check.js.map +1 -1
- package/package.json +2 -2
- package/dist/drift-ratify-loop.d.ts +0 -68
- package/dist/drift-ratify-loop.d.ts.map +0 -1
- package/dist/drift-ratify-loop.js +0 -161
- package/dist/drift-ratify-loop.js.map +0 -1
- package/dist/negative-branch.d.ts +0 -136
- package/dist/negative-branch.d.ts.map +0 -1
- package/dist/negative-branch.js +0 -241
- package/dist/negative-branch.js.map +0 -1
- package/dist/shortfall-disposition-config.d.ts +0 -34
- package/dist/shortfall-disposition-config.d.ts.map +0 -1
- package/dist/shortfall-disposition-config.js +0 -46
- package/dist/shortfall-disposition-config.js.map +0 -1
- package/dist/shortfall-disposition-loop.d.ts +0 -86
- package/dist/shortfall-disposition-loop.d.ts.map +0 -1
- package/dist/shortfall-disposition-loop.js +0 -309
- package/dist/shortfall-disposition-loop.js.map +0 -1
|
@@ -18,14 +18,12 @@
|
|
|
18
18
|
import { safeInterval, loadEnvConfig } from '@telora/daemon-core';
|
|
19
19
|
import { reapStuckShuttingDownTeams } from './completion/team-lifecycle.js';
|
|
20
20
|
import { runVerificationTick } from './verification-engine.js';
|
|
21
|
-
import { runCascadeProseTick, runNegativeBranchTick } from './cascade-restatement.js';
|
|
22
21
|
import { runPrdControllerTickAll } from './prd/index.js';
|
|
23
22
|
import { runMergeBackTick } from './merge-back-loop.js';
|
|
24
23
|
import { runDriftEvalTick, runPendingDriftEvalRequestsTick } from './drift-eval-loop.js';
|
|
25
|
-
import { runDriftRatifyTick } from './drift-ratify-loop.js';
|
|
26
|
-
import { runShortfallDispositionTick } from './shortfall-disposition-loop.js';
|
|
27
24
|
import { runSensorSweepTick } from './sensor-sweep.js';
|
|
28
25
|
import { runCiSensorTick } from './ci-sensor-loop.js';
|
|
26
|
+
import { runStalenessSensorTick } from './staleness-sensor.js';
|
|
29
27
|
import { reconcileDaemonProducts, buildReconcileDeps } from './config-reconcile.js';
|
|
30
28
|
import { buildDefaultSecurityScanDeps, runSecurityScanTick, } from './security-scan-engine.js';
|
|
31
29
|
import { createLogger } from './log.js';
|
|
@@ -87,46 +85,12 @@ export const LOOP_REGISTRY = [
|
|
|
87
85
|
}, 60_000, 'verification-loop', { skipIfRunning: true }));
|
|
88
86
|
},
|
|
89
87
|
},
|
|
90
|
-
//
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
},
|
|
97
|
-
register(engine, config) {
|
|
98
|
-
engine.intervals.push(safeInterval(async () => {
|
|
99
|
-
try {
|
|
100
|
-
const counts = await runCascadeProseTick(config);
|
|
101
|
-
if (counts.authored > 0) {
|
|
102
|
-
log.info(`[frt-prose] tick: treesScanned=${counts.treesScanned} authored=${counts.authored}`);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
catch (err) {
|
|
106
|
-
log.warn('[frt-prose] tick failed:', err.message);
|
|
107
|
-
}
|
|
108
|
-
}, 60_000, 'frt-prose-loop', { skipIfRunning: true }));
|
|
109
|
-
},
|
|
110
|
-
},
|
|
111
|
-
// 5. Negative-branch reservation tick (5 minutes). Shares the
|
|
112
|
-
// TELORA_FRT_PROSE_LOOP opt-out. NO announce (original block had no
|
|
113
|
-
// enabled/disabled log; no else branch).
|
|
114
|
-
{
|
|
115
|
-
guard: 'TELORA_FRT_PROSE_LOOP',
|
|
116
|
-
register(engine, config) {
|
|
117
|
-
engine.intervals.push(safeInterval(async () => {
|
|
118
|
-
try {
|
|
119
|
-
const counts = await runNegativeBranchTick(config);
|
|
120
|
-
if (counts.proposed > 0) {
|
|
121
|
-
log.info(`[negative-branch] tick: treesScanned=${counts.treesScanned} proposed=${counts.proposed}`);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
catch (err) {
|
|
125
|
-
log.warn('[negative-branch] tick failed:', err.message);
|
|
126
|
-
}
|
|
127
|
-
}, 300_000, 'negative-branch-loop', { skipIfRunning: true }));
|
|
128
|
-
},
|
|
129
|
-
},
|
|
88
|
+
// NOTE: the eager FRT cascade-prose tick (was 4, TELORA_FRT_PROSE_LOOP, 60s)
|
|
89
|
+
// and the negative-branch reservation tick (was 5, SAME guard, 300s) were
|
|
90
|
+
// RETIRED with the continuous drift-reconciliation layer. Per-injection FRT
|
|
91
|
+
// prose is authored at the verify event (verify-restatement.ts), not on a
|
|
92
|
+
// timer; the negative-branch generator was the un-deduped source of the
|
|
93
|
+
// duplicate-proposal pile and had no other consumer.
|
|
130
94
|
// 6. Staged Assembly PRD layer: PRD-lifecycle controller tick (60s).
|
|
131
95
|
{
|
|
132
96
|
guard: 'TELORA_PRD_LOOP',
|
|
@@ -212,53 +176,16 @@ export const LOOP_REGISTRY = [
|
|
|
212
176
|
}, 30_000, 'drift-eval-requests', { skipIfRunning: true }));
|
|
213
177
|
},
|
|
214
178
|
},
|
|
215
|
-
//
|
|
216
|
-
//
|
|
217
|
-
//
|
|
218
|
-
//
|
|
219
|
-
//
|
|
220
|
-
//
|
|
221
|
-
//
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
enabled: 'Drift auto-ratify loop tick: enabled (set TELORA_DRIFT_RATIFY_LOOP=0 to disable)',
|
|
226
|
-
disabled: 'Drift auto-ratify loop tick: disabled (TELORA_DRIFT_RATIFY_LOOP=0)',
|
|
227
|
-
},
|
|
228
|
-
register(engine, config) {
|
|
229
|
-
engine.intervals.push(safeInterval(async () => {
|
|
230
|
-
try {
|
|
231
|
-
await runDriftRatifyTick(config);
|
|
232
|
-
}
|
|
233
|
-
catch (err) {
|
|
234
|
-
log.warn('[drift-ratify-loop] tick failed:', err.message);
|
|
235
|
-
}
|
|
236
|
-
}, 60_000, 'drift-ratify-loop', { skipIfRunning: true }));
|
|
237
|
-
},
|
|
238
|
-
},
|
|
239
|
-
// 8c. Scoped shortfall-disposition pass (5 minutes). A focus carrying an
|
|
240
|
-
// undisposed shortfall cannot converge -- the completion gate withholds
|
|
241
|
-
// done. This arms a one-shot pass whose only mandate is disposing them, so
|
|
242
|
-
// the hold self-heals instead of wedging. Slower cadence than the ratify
|
|
243
|
-
// tick: arming spawns a team, so this is expensive work, and a held focus
|
|
244
|
-
// is not urgent by the second.
|
|
245
|
-
{
|
|
246
|
-
guard: 'TELORA_SHORTFALL_DISPOSITION_LOOP',
|
|
247
|
-
announce: {
|
|
248
|
-
enabled: 'Shortfall-disposition loop tick: enabled (set TELORA_SHORTFALL_DISPOSITION_LOOP=0 to disable)',
|
|
249
|
-
disabled: 'Shortfall-disposition loop tick: disabled (TELORA_SHORTFALL_DISPOSITION_LOOP=0)',
|
|
250
|
-
},
|
|
251
|
-
register(engine, config) {
|
|
252
|
-
engine.intervals.push(safeInterval(async () => {
|
|
253
|
-
try {
|
|
254
|
-
await runShortfallDispositionTick(config);
|
|
255
|
-
}
|
|
256
|
-
catch (err) {
|
|
257
|
-
log.warn('[shortfall-disposition] tick failed:', err.message);
|
|
258
|
-
}
|
|
259
|
-
}, 300_000, 'shortfall-disposition-loop', { skipIfRunning: true }));
|
|
260
|
-
},
|
|
261
|
-
},
|
|
179
|
+
// NOTE: the drift auto-ratify loop (was 8b, TELORA_DRIFT_RATIFY_LOOP) and the
|
|
180
|
+
// scoped shortfall-disposition pass (was 8c, TELORA_SHORTFALL_DISPOSITION_LOOP)
|
|
181
|
+
// were RETIRED with the continuous drift-reconciliation layer. Drift is no
|
|
182
|
+
// longer a standing timer-fired concern: CRT-validation is repositioned to the
|
|
183
|
+
// front of scoping, so there is no continuous `proposed` queue for an
|
|
184
|
+
// auto-ratify tick to keep pace with, and shortfall disposition is handled at
|
|
185
|
+
// the review/completion boundary where the shortfall is detected (the
|
|
186
|
+
// review-exit shortfall HOLD in completion/review-exit-shortfall.ts survives).
|
|
187
|
+
// The shared classifier (drift-ratify-policy.ts: classifyDriftProposal /
|
|
188
|
+
// requiresReviewDisposition) is retained -- the completion gate still uses it.
|
|
262
189
|
// 9. Artifact-health sensor sweep (30 minutes).
|
|
263
190
|
{
|
|
264
191
|
guard: 'TELORA_SENSOR_SWEEP_LOOP',
|
|
@@ -305,6 +232,32 @@ export const LOOP_REGISTRY = [
|
|
|
305
232
|
}, 300_000, 'ci-sensor-loop', { skipIfRunning: true }));
|
|
306
233
|
},
|
|
307
234
|
},
|
|
235
|
+
// 9c. Propagation-staleness sensor (30 minutes). Computes newest-available
|
|
236
|
+
// (Gitea registry, warm version cache) MINUS actually-running (this
|
|
237
|
+
// daemon's own version). The daemon-version gap is machine-closable, so
|
|
238
|
+
// when it is beyond threshold the sensor DEFERS to the auto-update
|
|
239
|
+
// controller (which installs at the next safe seam) rather than reporting
|
|
240
|
+
// it; it hands a human a ready action ONLY when auto-update is disabled and
|
|
241
|
+
// the machine genuinely cannot act. Every tick leaves a trace (the tick
|
|
242
|
+
// body logs delegated/handed-over/in-sync/unmeasured), so an absent signal
|
|
243
|
+
// means "measured and in sync". Opt-out via TELORA_STALENESS_SENSOR_LOOP.
|
|
244
|
+
{
|
|
245
|
+
guard: 'TELORA_STALENESS_SENSOR_LOOP',
|
|
246
|
+
announce: {
|
|
247
|
+
enabled: 'Propagation-staleness sensor tick: enabled (set TELORA_STALENESS_SENSOR_LOOP=0 to disable)',
|
|
248
|
+
disabled: 'Propagation-staleness sensor tick: disabled (TELORA_STALENESS_SENSOR_LOOP=0)',
|
|
249
|
+
},
|
|
250
|
+
register(engine, config) {
|
|
251
|
+
engine.intervals.push(safeInterval(async () => {
|
|
252
|
+
try {
|
|
253
|
+
await runStalenessSensorTick(config);
|
|
254
|
+
}
|
|
255
|
+
catch (err) {
|
|
256
|
+
log.warn('[staleness] tick failed:', err.message);
|
|
257
|
+
}
|
|
258
|
+
}, 1_800_000, 'staleness-sensor-loop', { skipIfRunning: true }));
|
|
259
|
+
},
|
|
260
|
+
},
|
|
308
261
|
// 10. Security scan loop (per-product cron cadence inside) + on-demand
|
|
309
262
|
// requests poll (30 seconds). The enabled log interpolates the resolved
|
|
310
263
|
// interval hours, so it is emitted inside register() (first thing) rather
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-loop-registry.js","sourceRoot":"","sources":["../src/focus-loop-registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"focus-loop-registry.js","sourceRoot":"","sources":["../src/focus-loop-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/focus-loop.d.ts
CHANGED
|
@@ -19,13 +19,11 @@
|
|
|
19
19
|
*/
|
|
20
20
|
import { createFocusCycleEvaluation, getRecentFocusCycleEvaluation, type FocusPhase, type FocusPhaseOutcome, type FocusCycleEvaluation } from './queries/focus-cycle-evaluations.js';
|
|
21
21
|
import { type ApplyRatifiedResult } from './realign-apply.js';
|
|
22
|
-
import { type AuditPhaseResult } from './audit-phase.js';
|
|
23
22
|
import type { FocusDeliveryInfo } from './types.js';
|
|
24
23
|
/** Dependency-injected shape so tests can stub I/O without monkey-patching ESM modules. */
|
|
25
24
|
export interface FocusLoopDeps {
|
|
26
25
|
getFocusDeliveries: (focusId: string) => Promise<FocusDeliveryInfo[]>;
|
|
27
26
|
applyRatifiedProposals: (focusId: string) => Promise<ApplyRatifiedResult>;
|
|
28
|
-
runAuditPhase: (focusId: string) => Promise<AuditPhaseResult>;
|
|
29
27
|
getRecentFocusCycleEvaluation: typeof getRecentFocusCycleEvaluation;
|
|
30
28
|
createFocusCycleEvaluation: typeof createFocusCycleEvaluation;
|
|
31
29
|
}
|
package/dist/focus-loop.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-loop.d.ts","sourceRoot":"","sources":["../src/focus-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,
|
|
1
|
+
{"version":3,"file":"focus-loop.d.ts","sourceRoot":"","sources":["../src/focus-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,2FAA2F;AAC3F,MAAM,WAAW,aAAa;IAC5B,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACtE,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1E,6BAA6B,EAAE,OAAO,6BAA6B,CAAC;IACpE,0BAA0B,EAAE,OAAO,0BAA0B,CAAC;CAC/D;AA+BD,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,GAAG;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAsBvG;AAMD,UAAU,WAAW;IACnB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,aAA2B,GAAG,OAAO,CAAC,WAAW,CAAC,CAqBjH;AA4ED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,aAA2B,GAAG,OAAO,CAAC,WAAW,CAAC,CA8B/G;AA6CD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,aAA2B,GAChC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CA+CtC"}
|
package/dist/focus-loop.js
CHANGED
|
@@ -20,11 +20,9 @@
|
|
|
20
20
|
import { getFocusDeliveries as defaultGetFocusDeliveries } from './queries/focuses.js';
|
|
21
21
|
import { createFocusCycleEvaluation, getRecentFocusCycleEvaluation, } from './queries/focus-cycle-evaluations.js';
|
|
22
22
|
import { applyRatifiedProposals as defaultApplyRatifiedProposals, } from './realign-apply.js';
|
|
23
|
-
import { runAuditPhase as defaultRunAuditPhase, } from './audit-phase.js';
|
|
24
23
|
const defaultDeps = {
|
|
25
24
|
getFocusDeliveries: defaultGetFocusDeliveries,
|
|
26
25
|
applyRatifiedProposals: (focusId) => defaultApplyRatifiedProposals(focusId),
|
|
27
|
-
runAuditPhase: (focusId) => defaultRunAuditPhase(focusId),
|
|
28
26
|
getRecentFocusCycleEvaluation,
|
|
29
27
|
createFocusCycleEvaluation,
|
|
30
28
|
};
|
|
@@ -32,49 +30,44 @@ const defaultDeps = {
|
|
|
32
30
|
// Phase ordering
|
|
33
31
|
// ---------------------------------------------------------------------------
|
|
34
32
|
const MAX_FOCUS_ITERATIONS = 20;
|
|
33
|
+
// NOTE: 'audit' is NO LONGER a phase in this rotation. CRT-validation was
|
|
34
|
+
// repositioned out of the per-cycle focus-loop and into a self-invoked
|
|
35
|
+
// scope-time refresh (FocusEngine.tickFocusLoop -> runAuditPhase, gated by the
|
|
36
|
+
// scoping-entry + change-detection gates in audit-phase.ts) so it runs when a
|
|
37
|
+
// decision is about to READ the tree, not on a blind cycle timer. The cycle now
|
|
38
|
+
// opens at realign_crt.
|
|
35
39
|
const PHASE_ORDER = [
|
|
36
|
-
'audit',
|
|
37
40
|
'realign_crt',
|
|
38
41
|
'propose_injections',
|
|
39
42
|
'execute',
|
|
40
43
|
'gate',
|
|
41
44
|
'evaluate',
|
|
42
45
|
];
|
|
46
|
+
const FIRST_PHASE = PHASE_ORDER[0];
|
|
43
47
|
/** Decide which phase to run next given the most recent evaluation row. */
|
|
44
48
|
export function nextPhase(prev) {
|
|
45
49
|
if (!prev) {
|
|
46
|
-
return { phase:
|
|
50
|
+
return { phase: FIRST_PHASE, cycleNumber: 1 };
|
|
47
51
|
}
|
|
48
|
-
// After evaluate -> continue, increment cycle and start over at
|
|
49
|
-
// After evaluate -> complete/escalate/blocked, stay on evaluate
|
|
50
|
-
// until something changes; the dispatcher will keep recording
|
|
51
|
-
// but they collapse to the existing row via the unique constraint,
|
|
52
|
-
// simply re-run the deterministic check and re-emit if it flips).
|
|
52
|
+
// After evaluate -> continue, increment cycle and start over at the first
|
|
53
|
+
// phase. After evaluate -> complete/escalate/blocked, stay on evaluate
|
|
54
|
+
// (terminal until something changes; the dispatcher will keep recording
|
|
55
|
+
// snapshots but they collapse to the existing row via the unique constraint,
|
|
56
|
+
// so we simply re-run the deterministic check and re-emit if it flips).
|
|
53
57
|
if (prev.phase === 'evaluate') {
|
|
54
58
|
if (prev.outcome === 'continue') {
|
|
55
|
-
return { phase:
|
|
59
|
+
return { phase: FIRST_PHASE, cycleNumber: prev.cycle_number + 1 };
|
|
56
60
|
}
|
|
57
61
|
return { phase: 'evaluate', cycleNumber: prev.cycle_number };
|
|
58
62
|
}
|
|
59
63
|
const idx = PHASE_ORDER.indexOf(prev.phase);
|
|
60
64
|
if (idx < 0 || idx === PHASE_ORDER.length - 1) {
|
|
61
|
-
// Defensive: unknown phase
|
|
62
|
-
|
|
65
|
+
// Defensive: unknown phase (e.g. a persisted legacy 'audit' row) -> reset to
|
|
66
|
+
// the first phase on the same cycle.
|
|
67
|
+
return { phase: FIRST_PHASE, cycleNumber: prev.cycle_number };
|
|
63
68
|
}
|
|
64
69
|
return { phase: PHASE_ORDER[idx + 1], cycleNumber: prev.cycle_number };
|
|
65
70
|
}
|
|
66
|
-
/**
|
|
67
|
-
* Audit observable state. Delegates to the autonomous audit-phase module
|
|
68
|
-
* via deps so tests can stub the spawn/parse/write pipeline. The default
|
|
69
|
-
* implementation spawns a one-shot LLM assessor with reality_tree_* MCP
|
|
70
|
-
* tools registered, parses the audit-summary tail block, and writes an
|
|
71
|
-
* audit_runs row. Always returns 'continue' -- the row + metadata.errors
|
|
72
|
-
* capture failure modes so the loop keeps moving.
|
|
73
|
-
*/
|
|
74
|
-
async function runAuditPhase(focusId, deps = defaultDeps) {
|
|
75
|
-
const result = await deps.runAuditPhase(focusId);
|
|
76
|
-
return result;
|
|
77
|
-
}
|
|
78
71
|
/**
|
|
79
72
|
* Realign CRT. Applies ratified-but-not-yet-applied drift proposals for the
|
|
80
73
|
* focus -- nothing else. Desired-effect restatement prose is authored as an
|
|
@@ -245,8 +238,12 @@ function countByStatus(statuses) {
|
|
|
245
238
|
// ---------------------------------------------------------------------------
|
|
246
239
|
// Dispatch
|
|
247
240
|
// ---------------------------------------------------------------------------
|
|
241
|
+
// Partial: 'audit' is intentionally NOT dispatchable -- it was repositioned to a
|
|
242
|
+
// scope-time self-refresh (see PHASE_ORDER note). FocusPhase retains 'audit' so
|
|
243
|
+
// legacy persisted rows still type, but nextPhase never RETURNS 'audit' (it maps
|
|
244
|
+
// any such row to the first phase), so this map is never indexed with it. The
|
|
245
|
+
// runFocusLoopOnce dispatch guards the lookup defensively regardless.
|
|
248
246
|
const PHASE_RUNNERS = {
|
|
249
|
-
audit: (focusId, deps) => runAuditPhase(focusId, deps),
|
|
250
247
|
realign_crt: (focusId, deps) => runRealignCrtPhase(focusId, deps),
|
|
251
248
|
propose_injections: (focusId) => runProposeInjectionsPhase(focusId),
|
|
252
249
|
execute: (focusId, deps) => runExecutePhase(focusId, deps),
|
|
@@ -272,6 +269,17 @@ export async function runFocusLoopOnce(focusId, deps = defaultDeps) {
|
|
|
272
269
|
});
|
|
273
270
|
}
|
|
274
271
|
const runner = PHASE_RUNNERS[phase];
|
|
272
|
+
if (!runner) {
|
|
273
|
+
// Only reachable if a legacy 'audit' row slipped past nextPhase's reset.
|
|
274
|
+
// Record a no-op continue so the loop advances to the first phase next tick.
|
|
275
|
+
return await deps.createFocusCycleEvaluation({
|
|
276
|
+
focusId,
|
|
277
|
+
cycleNumber,
|
|
278
|
+
phase: FIRST_PHASE,
|
|
279
|
+
outcome: 'continue',
|
|
280
|
+
rationale: `phase '${phase}' is no longer dispatchable (audit repositioned to scope-time); advancing`,
|
|
281
|
+
});
|
|
282
|
+
}
|
|
275
283
|
const result = await runner(focusId, deps);
|
|
276
284
|
// Skip persistence if we'd rewrite the same terminal evaluate row.
|
|
277
285
|
if (prev &&
|
package/dist/focus-loop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-loop.js","sourceRoot":"","sources":["../src/focus-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,kBAAkB,IAAI,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,GAI9B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,sBAAsB,IAAI,6BAA6B,GAExD,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"focus-loop.js","sourceRoot":"","sources":["../src/focus-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,kBAAkB,IAAI,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,GAI9B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,sBAAsB,IAAI,6BAA6B,GAExD,MAAM,oBAAoB,CAAC;AAW5B,MAAM,WAAW,GAAkB;IACjC,kBAAkB,EAAE,yBAAyB;IAC7C,sBAAsB,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,6BAA6B,CAAC,OAAO,CAAC;IACnF,6BAA6B;IAC7B,0BAA0B;CAC3B,CAAC;AAEF,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC,0EAA0E;AAC1E,uEAAuE;AACvE,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,wBAAwB;AACxB,MAAM,WAAW,GAAiB;IAChC,aAAa;IACb,oBAAoB;IACpB,SAAS;IACT,MAAM;IACN,UAAU;CACX,CAAC;AAEF,MAAM,WAAW,GAAe,WAAW,CAAC,CAAC,CAAC,CAAC;AAE/C,2EAA2E;AAC3E,MAAM,UAAU,SAAS,CAAC,IAAiC;IACzD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;IAChD,CAAC;IACD,0EAA0E;IAC1E,uEAAuE;IACvE,wEAAwE;IACxE,6EAA6E;IAC7E,wEAAwE;IACxE,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YAChC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;QACpE,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;IAC/D,CAAC;IACD,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,6EAA6E;QAC7E,qCAAqC;QACrC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;IAChE,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AACzE,CAAC;AAYD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAe,EAAE,OAAsB,WAAW;IACzF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAE1D,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;IAEtD,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,+CAA+C;SAC3D,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,UAAU;QACnB,SAAS,EAAE,0BAA0B,MAAM,CAAC,OAAO,OAAO,cAAc,qBAAqB;QAC7F,QAAQ,EAAE;YACR,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,KAAK,UAAU,yBAAyB,CAAC,QAAgB;IACvD,OAAO;QACL,OAAO,EAAE,UAAU;QACnB,SAAS,EAAE,2GAA2G;KACvH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,eAAe,CAAC,OAAe,EAAE,OAAsB,WAAW;IAC/E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;IACrE,OAAO;QACL,OAAO,EAAE,UAAU;QACnB,SAAS,EAAE,2DAA2D;QACtE,QAAQ,EAAE,EAAE,oBAAoB,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,CAAC,MAAM,EAAE;KAC7E,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,YAAY,CAAC,OAAe,EAAE,OAAsB,WAAW;IAC5E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;IAC7E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,WAAW,QAAQ,CAAC,MAAM,2BAA2B;YAChE,QAAQ,EAAE;gBACR,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;aACrF;SACF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE,UAAU;QACnB,SAAS,EAAE,uDAAuD;KACnE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAe,EAAE,OAAsB,WAAW;IACvF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,kEAAkE;SAC9E,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;IAC7E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,eAAe,QAAQ,CAAC,MAAM,8BAA8B;YACvE,QAAQ,EAAE,EAAE,oBAAoB,EAAE,MAAM,EAAE;SAC3C,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;IAC3E,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;QACzC,OAAO;YACL,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,8FAA8F;YACzG,QAAQ,EAAE,EAAE,oBAAoB,EAAE,MAAM,EAAE;SAC3C,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,2EAA2E;QACtF,QAAQ,EAAE,EAAE,oBAAoB,EAAE,MAAM,EAAE;KAC3C,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;AACtF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;AAEzD,SAAS,gBAAgB,CAAC,MAAiC;IACzD,OAAO,SAAS,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC;AACD,SAAS,eAAe,CAAC,MAAiC;IACxD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;AACnC,CAAC;AACD,SAAS,gBAAgB,CAAC,MAAiC;IACzD,OAAO,SAAS,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,aAAa,CAAC,QAA0C;IAC/D,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,CAAC,IAAI,SAAS,CAAC;QAC3B,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,iFAAiF;AACjF,gFAAgF;AAChF,iFAAiF;AACjF,8EAA8E;AAC9E,sEAAsE;AACtE,MAAM,aAAa,GAAgG;IACjH,WAAW,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC;IACjE,kBAAkB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,yBAAyB,CAAC,OAAO,CAAC;IACnE,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC;IAC1D,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC;IACpD,QAAQ,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC;CAC7D,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,OAAsB,WAAW;IAEjC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE/C,IAAI,WAAW,GAAG,oBAAoB,EAAE,CAAC;QACvC,OAAO,MAAM,IAAI,CAAC,0BAA0B,CAAC;YAC3C,OAAO;YACP,WAAW;YACX,KAAK;YACL,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,mBAAmB,oBAAoB,0CAA0C;SAC7F,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,yEAAyE;QACzE,6EAA6E;QAC7E,OAAO,MAAM,IAAI,CAAC,0BAA0B,CAAC;YAC3C,OAAO;YACP,WAAW;YACX,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,UAAU,KAAK,2EAA2E;SACtG,CAAC,CAAC;IACL,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAE3C,mEAAmE;IACnE,IACE,IAAI;QACJ,IAAI,CAAC,KAAK,KAAK,UAAU;QACzB,IAAI,CAAC,YAAY,KAAK,WAAW;QACjC,IAAI,CAAC,KAAK,KAAK,KAAK;QACpB,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,EAC/B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,MAAM,IAAI,CAAC,0BAA0B,CAAC;QAC3C,OAAO;QACP,WAAW;QACX,KAAK;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC,CAAC;AACL,CAAC"}
|
package/dist/focus-phase.d.ts
CHANGED
|
@@ -59,6 +59,32 @@ export declare function isDeliveryTerminal(executionStatus: string | null | unde
|
|
|
59
59
|
export declare function areAllDeliveriesTerminal(deliveries: ReadonlyArray<{
|
|
60
60
|
executionStatus: string | null;
|
|
61
61
|
}>): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* The set of statuses that mean a delivery is ACTUATING -- a team is actively
|
|
64
|
+
* nulling intent-vs-reality error on it right now. `coding` is the obvious case;
|
|
65
|
+
* `verify_failed` re-enters `coding` on the next tick, so it is mid-stroke too.
|
|
66
|
+
* `queued`/`planning` are PRE-actuation (work to be scoped, not yet being coded)
|
|
67
|
+
* and `verify`/`done`/`cancelled` are POST-actuation, so none of those actuate.
|
|
68
|
+
*/
|
|
69
|
+
export declare const ACTUATING_STATUSES: ReadonlySet<ExecutionStatus>;
|
|
70
|
+
/**
|
|
71
|
+
* True iff the focus is at the FRONT OF A SCOPING ACT: it has pre-coding work to
|
|
72
|
+
* scope (at least one `queued`/`planning` delivery) AND nothing is actuating (no
|
|
73
|
+
* `coding`/`verify_failed` delivery). This is the gate the scope-time CRT
|
|
74
|
+
* self-refresh (audit-phase) fires on -- CRT-validation runs exactly when a
|
|
75
|
+
* scoping decision is about to READ the tree, and never while a team is
|
|
76
|
+
* mid-stroke (which would sample the team's transient, intended error as drift).
|
|
77
|
+
*
|
|
78
|
+
* It REPLACES the old all-terminal settle gate: a settled focus (all done) is
|
|
79
|
+
* NOT being scoped, so it no longer triggers an audit; a focus with queued work
|
|
80
|
+
* about to be decomposed into issues IS, so it does. The mid-stroke protection
|
|
81
|
+
* the settle gate provided is preserved by the "nothing actuating" clause,
|
|
82
|
+
* without the (contradictory-at-scope-time) requirement that ALL deliveries be
|
|
83
|
+
* terminal.
|
|
84
|
+
*/
|
|
85
|
+
export declare function isFocusEnteringScoping(deliveries: ReadonlyArray<{
|
|
86
|
+
executionStatus: string | null;
|
|
87
|
+
}>): boolean;
|
|
62
88
|
/**
|
|
63
89
|
* Every legal `(from, to)` phase pair `deriveFocusPhase` can produce
|
|
64
90
|
* across consecutive daemon polls.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-phase.d.ts","sourceRoot":"","sources":["../src/focus-phase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,MAAM,MAAM,mBAAmB,GAC3B,SAAS,GACT,QAAQ,GACR,WAAW,GACX,WAAW,GACX,cAAc,GACd,SAAS,CAAC;AAEd,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,eAAe,CAA6G,CAAC;AACvK,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,eAAe,CAA+E,CAAC;AAC3I,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,eAAe,CAAuG,CAAC;AAErK,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,mBAAmB,CA8B5E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAMtF;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,aAAa,CAAC;IAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,GAC5D,OAAO,CAGT;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,uBAAuB,EAAE,aAAa,CACjD,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAiBjD,CAAC"}
|
|
1
|
+
{"version":3,"file":"focus-phase.d.ts","sourceRoot":"","sources":["../src/focus-phase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,MAAM,MAAM,mBAAmB,GAC3B,SAAS,GACT,QAAQ,GACR,WAAW,GACX,WAAW,GACX,cAAc,GACd,SAAS,CAAC;AAEd,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,eAAe,CAA6G,CAAC;AACvK,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,eAAe,CAA+E,CAAC;AAC3I,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,eAAe,CAAuG,CAAC;AAErK,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,mBAAmB,CA8B5E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAMtF;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,aAAa,CAAC;IAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,GAC5D,OAAO,CAGT;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,eAAe,CAG1D,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,aAAa,CAAC;IAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,GAC5D,OAAO,CAeT;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,uBAAuB,EAAE,aAAa,CACjD,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAiBjD,CAAC"}
|
package/dist/focus-phase.js
CHANGED
|
@@ -96,6 +96,44 @@ export function areAllDeliveriesTerminal(deliveries) {
|
|
|
96
96
|
return false;
|
|
97
97
|
return deliveries.every((d) => isDeliveryTerminal(d.executionStatus));
|
|
98
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* The set of statuses that mean a delivery is ACTUATING -- a team is actively
|
|
101
|
+
* nulling intent-vs-reality error on it right now. `coding` is the obvious case;
|
|
102
|
+
* `verify_failed` re-enters `coding` on the next tick, so it is mid-stroke too.
|
|
103
|
+
* `queued`/`planning` are PRE-actuation (work to be scoped, not yet being coded)
|
|
104
|
+
* and `verify`/`done`/`cancelled` are POST-actuation, so none of those actuate.
|
|
105
|
+
*/
|
|
106
|
+
export const ACTUATING_STATUSES = new Set([
|
|
107
|
+
DELIVERY_STATUS.CODING,
|
|
108
|
+
DELIVERY_STATUS.VERIFY_FAILED,
|
|
109
|
+
]);
|
|
110
|
+
/**
|
|
111
|
+
* True iff the focus is at the FRONT OF A SCOPING ACT: it has pre-coding work to
|
|
112
|
+
* scope (at least one `queued`/`planning` delivery) AND nothing is actuating (no
|
|
113
|
+
* `coding`/`verify_failed` delivery). This is the gate the scope-time CRT
|
|
114
|
+
* self-refresh (audit-phase) fires on -- CRT-validation runs exactly when a
|
|
115
|
+
* scoping decision is about to READ the tree, and never while a team is
|
|
116
|
+
* mid-stroke (which would sample the team's transient, intended error as drift).
|
|
117
|
+
*
|
|
118
|
+
* It REPLACES the old all-terminal settle gate: a settled focus (all done) is
|
|
119
|
+
* NOT being scoped, so it no longer triggers an audit; a focus with queued work
|
|
120
|
+
* about to be decomposed into issues IS, so it does. The mid-stroke protection
|
|
121
|
+
* the settle gate provided is preserved by the "nothing actuating" clause,
|
|
122
|
+
* without the (contradictory-at-scope-time) requirement that ALL deliveries be
|
|
123
|
+
* terminal.
|
|
124
|
+
*/
|
|
125
|
+
export function isFocusEnteringScoping(deliveries) {
|
|
126
|
+
if (deliveries.length === 0)
|
|
127
|
+
return false;
|
|
128
|
+
const hasPreCodingWork = deliveries.some((d) => d.executionStatus === DELIVERY_STATUS.QUEUED ||
|
|
129
|
+
d.executionStatus === DELIVERY_STATUS.PLANNING);
|
|
130
|
+
if (!hasPreCodingWork)
|
|
131
|
+
return false;
|
|
132
|
+
const anyActuating = deliveries.some((d) => d.executionStatus != null &&
|
|
133
|
+
isExecutionStatus(d.executionStatus) &&
|
|
134
|
+
ACTUATING_STATUSES.has(d.executionStatus));
|
|
135
|
+
return !anyActuating;
|
|
136
|
+
}
|
|
99
137
|
/**
|
|
100
138
|
* Every legal `(from, to)` phase pair `deriveFocusPhase` can produce
|
|
101
139
|
* across consecutive daemon polls.
|
package/dist/focus-phase.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-phase.js","sourceRoot":"","sources":["../src/focus-phase.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"focus-phase.js","sourceRoot":"","sources":["../src/focus-phase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAmBzE,MAAM,CAAC,MAAM,eAAe,GAAiC,IAAI,GAAG,CAAkB,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC;AACvK,MAAM,CAAC,MAAM,iBAAiB,GAAiC,IAAI,GAAG,CAAkB,CAAC,eAAe,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;AAC3I,MAAM,CAAC,MAAM,mBAAmB,GAAiC,IAAI,GAAG,CAAkB,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;AAErK,MAAM,UAAU,gBAAgB,CAAC,KAAsB;IACrD,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,KAAK,CAAC;IAChD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC;IAEhC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAElC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,CAAC,CAAC,eAAe,CAAC;QAC9B,IAAI,GAAG,IAAI,IAAI;YAAE,SAAS;QAC1B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;YAAE,SAAS;QACtC,MAAM,CAAC,GAAoB,GAAG,CAAC;QAC/B,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,MAAM,EAAE,CAAC;QACrC,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,QAAQ,EAAE,CAAC;QACzC,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,UAAU,EAAE,CAAC;QAC7C,IAAI,CAAC,KAAK,eAAe,CAAC,MAAM;YAAE,MAAM,EAAE,CAAC;QAC3C,IAAI,CAAC,KAAK,eAAe,CAAC,MAAM;YAAE,MAAM,EAAE,CAAC;IAC7C,CAAC;IAED,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,iBAAiB,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,WAAW,CAAC;IACxE,IAAI,QAAQ,KAAK,KAAK;QAAE,OAAO,cAAc,CAAC;IAC9C,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAChC,IAAI,UAAU,KAAK,KAAK,IAAI,QAAQ,GAAG,KAAK;QAAE,OAAO,WAAW,CAAC;IACjE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAAC,eAA0C;IAC3E,OAAO,CACL,eAAe,IAAI,IAAI;QACvB,iBAAiB,CAAC,eAAe,CAAC;QAClC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,CACvC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CACtC,UAA6D;IAE7D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;AACxE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAiC,IAAI,GAAG,CAAkB;IACvF,eAAe,CAAC,MAAM;IACtB,eAAe,CAAC,aAAa;CAC9B,CAAC,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,sBAAsB,CACpC,UAA6D;IAE7D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,CACtC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,eAAe,KAAK,eAAe,CAAC,MAAM;QAC5C,CAAC,CAAC,eAAe,KAAK,eAAe,CAAC,QAAQ,CACjD,CAAC;IACF,IAAI,CAAC,gBAAgB;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAClC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,eAAe,IAAI,IAAI;QACzB,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAAC;QACpC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAC5C,CAAC;IACF,OAAO,CAAC,YAAY,CAAC;AACvB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAEhC,CAAC,GAAG,EAAE;IACR,MAAM,MAAM,GAA0B;QACpC,SAAS;QACT,QAAQ;QACR,WAAW;QACX,WAAW;QACX,cAAc;QACd,SAAS;KACV,CAAC;IACF,MAAM,KAAK,GAA+D,EAAE,CAAC;IAC7E,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;YACxB,IAAI,IAAI,KAAK,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAU,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-prompt-builder.d.ts","sourceRoot":"","sources":["../src/focus-prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACf,MAAM,YAAY,CAAC;AAKpB,YAAY,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,qBAAqB,EAAE,iBAAiB,EAAE,EAC1C,MAAM,EAAE,cAAc,EAAE,GACvB,MAAM,CAoCR;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,iBAAiB,EAAE,EAC/B,MAAM,EAAE,cAAc,EAAE,EACxB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,GAC5B,MAAM,
|
|
1
|
+
{"version":3,"file":"focus-prompt-builder.d.ts","sourceRoot":"","sources":["../src/focus-prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACf,MAAM,YAAY,CAAC;AAKpB,YAAY,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,qBAAqB,EAAE,iBAAiB,EAAE,EAC1C,MAAM,EAAE,cAAc,EAAE,GACvB,MAAM,CAoCR;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,iBAAiB,EAAE,EAC/B,MAAM,EAAE,cAAc,EAAE,EACxB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,GAC5B,MAAM,CA6DR;AAMD,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAC/F,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* and are re-exported here for backward compatibility.
|
|
11
11
|
*/
|
|
12
12
|
import { isStatusAgentActionable } from './stage-classifier.js';
|
|
13
|
-
import { buildIssueCountLine, buildContextGroupLine, buildStandaloneIssueLine, buildVerificationFailureLines } from './prompt-listing.js';
|
|
13
|
+
import { buildIssueCountLine, buildContextGroupLine, buildStandaloneIssueLine, buildVerificationFailureLines, buildShortfallReconciliationLines } from './prompt-listing.js';
|
|
14
14
|
export { buildFocusTeamPrompt } from './team-prompt-base.js';
|
|
15
15
|
/**
|
|
16
16
|
* Build a re-engagement message listing all non-terminal deliveries that
|
|
@@ -82,6 +82,10 @@ export function buildWakeMessage(deliveries, issues, knownDeliveryIds) {
|
|
|
82
82
|
// Last daemon-side verification failure (gate_state), so a re-queued/woken
|
|
83
83
|
// team sees WHAT failed + WHERE to read the log without a cold re-run.
|
|
84
84
|
parts.push(...buildVerificationFailureLines(delivery.gateState));
|
|
85
|
+
// Verify SHORTFALL re-work (gate_state), so a team re-queued from a
|
|
86
|
+
// declared-vs-achieved shortfall sees the SPECIFIC gap to close in the diff
|
|
87
|
+
// (a differential-side signal, not a failing test).
|
|
88
|
+
parts.push(...buildShortfallReconciliationLines(delivery.gateState));
|
|
85
89
|
// Compact issue listing
|
|
86
90
|
const deliveryIssues = issues.filter(i => i.deliveryId === delivery.id);
|
|
87
91
|
const actionableIssues = deliveryIssues.filter(i => i.issueType !== 'Context Group');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-prompt-builder.js","sourceRoot":"","sources":["../src/focus-prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"focus-prompt-builder.js","sourceRoot":"","sources":["../src/focus-prompt-builder.ts"],"names":[],"mappings":"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"}
|
package/dist/listener.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../src/listener.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../src/listener.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,YAAY,CAAC;AAwC1D;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAkCD;;GAEG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA4D5E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CA0F5C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAO3C;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,gBAAgB,GACxB,OAAO,GACP,mBAAmB,GACnB,kBAAkB,GAClB,eAAe,GACf,eAAe,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,gBAAgB,CAMvE;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgLzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,CAgKhE;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAqIxD;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAMnD;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAUlD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAGnC"}
|
package/dist/listener.js
CHANGED
|
@@ -28,7 +28,8 @@ import { checkIncomingRequests } from './nexus/index.js';
|
|
|
28
28
|
import { checkIntakePendingRequests } from './nexus/index.js';
|
|
29
29
|
import { checkResolvedRequests } from './nexus/index.js';
|
|
30
30
|
import { checkEndpointClearance } from './nexus/index.js';
|
|
31
|
-
import { checkDirectives, seedLastProcessedStage, getPendingSpawnFocusIds, clearPendingSpawnDirective, shouldReapPendingSpawnDirective } from './directive-executor.js';
|
|
31
|
+
import { checkDirectives, seedLastProcessedStage, getPendingSpawnFocusIds, getPendingSpawnDirective, clearPendingSpawnDirective, shouldReapPendingSpawnDirective } from './directive-executor.js';
|
|
32
|
+
import { decideNullRoleSpawn, resolveReviewerFallbackRole, DEFAULT_REVIEWER_ROLE_NAME } from './spawn/review-role-fallback.js';
|
|
32
33
|
import { getActiveFocuses } from './queries/deliveries.js';
|
|
33
34
|
import { isAuditPhaseFocusRow } from './audit-shape.js';
|
|
34
35
|
import { isIntakeDraining } from './intake-control.js';
|
|
@@ -463,16 +464,46 @@ export async function processPendingSpawnFocuses() {
|
|
|
463
464
|
}
|
|
464
465
|
continue;
|
|
465
466
|
}
|
|
467
|
+
let role;
|
|
466
468
|
if (!focus.assigned_agent_role_id) {
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
469
|
+
// A null assigned_agent_role_id means auto_terminate_focus_team() shut the
|
|
470
|
+
// coding team down at completion (correct lifecycle -- the Play/queue
|
|
471
|
+
// toggle cleared). A queued REVIEW directive here is the strand this
|
|
472
|
+
// repairs: a review is a SECOND team that must spawn AFTER completion, so
|
|
473
|
+
// resolve a layered reviewer-role fallback (the org's seeded Developer
|
|
474
|
+
// role) rather than skipping the directive forever. A CODING directive
|
|
475
|
+
// with a null role IS the intended off-state and must NOT auto-spawn.
|
|
476
|
+
const decision = decideNullRoleSpawn({
|
|
477
|
+
sessionType: getPendingSpawnDirective(focus.focus_id)?.sessionType,
|
|
478
|
+
fallbackRole: resolveReviewerFallbackRole(roles.values()),
|
|
479
|
+
});
|
|
480
|
+
if (decision.action === 'skip') {
|
|
481
|
+
log.warn(`[listener] Pending spawn directive for focus ${focusId.slice(0, 8)} ("${focus.focus_name}") but no assigned_agent_role_id; ` +
|
|
482
|
+
`skipping spawn (coding off-state).`);
|
|
483
|
+
continue;
|
|
484
|
+
}
|
|
485
|
+
if (decision.action === 'clear') {
|
|
486
|
+
// Review strand with no resolvable fallback role: drop the directive so
|
|
487
|
+
// the stranded-review re-fire suppression (directive-executor) cannot
|
|
488
|
+
// spin-log forever. review_window_stalled remains the escalation path,
|
|
489
|
+
// and now fires promptly rather than after 6h of churn.
|
|
490
|
+
clearPendingSpawnDirective(focus.focus_id);
|
|
491
|
+
log.warn(`[listener] Stranded review directive for focus ${focusId.slice(0, 8)} ("${focus.focus_name}") has a null assigned_agent_role_id ` +
|
|
492
|
+
`and no seeded '${DEFAULT_REVIEWER_ROLE_NAME}' fallback role resolved -- dropping the directive so it stops re-firing; ` +
|
|
493
|
+
`review_window_stalled will escalate.`);
|
|
494
|
+
continue;
|
|
495
|
+
}
|
|
496
|
+
role = decision.role;
|
|
497
|
+
log.info(`[listener] Review directive for focus ${focusId.slice(0, 8)} ("${focus.focus_name}") has a null assigned_agent_role_id ` +
|
|
498
|
+
`(coding team completed); spawning review with fallback role "${role.name}".`);
|
|
470
499
|
}
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
`
|
|
475
|
-
|
|
500
|
+
else {
|
|
501
|
+
role = roles.get(focus.assigned_agent_role_id);
|
|
502
|
+
if (!role) {
|
|
503
|
+
log.warn(`[listener] Pending spawn directive for focus ${focusId.slice(0, 8)} ("${focus.focus_name}") references unknown role ${focus.assigned_agent_role_id}; ` +
|
|
504
|
+
`skipping spawn.`);
|
|
505
|
+
continue;
|
|
506
|
+
}
|
|
476
507
|
}
|
|
477
508
|
// Park focuses with an unhealed team_failure escalation BEFORE attempting
|
|
478
509
|
// the spawn. spawnFocusTeam applies the same guard, but it returns after
|