@telora/daemon 0.13.17 → 0.13.18
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 +2 -2
- package/dist/assembly-resolvers.js +219 -0
- package/dist/assembly-resolvers.js.map +1 -1
- package/dist/delivery-lifecycle.d.ts.map +1 -1
- package/dist/delivery-lifecycle.js.map +1 -1
- package/dist/loop-engine.d.ts +115 -0
- package/dist/loop-engine.d.ts.map +1 -0
- package/dist/loop-engine.js +498 -0
- package/dist/loop-engine.js.map +1 -0
- package/dist/loop-event-bus.d.ts +28 -0
- package/dist/loop-event-bus.d.ts.map +1 -0
- package/dist/loop-event-bus.js +35 -0
- package/dist/loop-event-bus.js.map +1 -0
- package/dist/loop-llm-client.d.ts +16 -0
- package/dist/loop-llm-client.d.ts.map +1 -0
- package/dist/loop-llm-client.js +80 -0
- package/dist/loop-llm-client.js.map +1 -0
- package/dist/loop-prompt-builder.d.ts +39 -0
- package/dist/loop-prompt-builder.d.ts.map +1 -0
- package/dist/loop-prompt-builder.js +168 -0
- package/dist/loop-prompt-builder.js.map +1 -0
- package/dist/loop-variance.d.ts +89 -0
- package/dist/loop-variance.d.ts.map +1 -0
- package/dist/loop-variance.js +283 -0
- package/dist/loop-variance.js.map +1 -0
- package/dist/state-cascade.d.ts.map +1 -1
- package/dist/state-cascade.js +16 -0
- package/dist/state-cascade.js.map +1 -1
- package/dist/strategy-completion.d.ts.map +1 -1
- package/dist/strategy-completion.js +19 -0
- package/dist/strategy-completion.js.map +1 -1
- package/dist/unified-shell.d.ts.map +1 -1
- package/dist/unified-shell.js +43 -0
- package/dist/unified-shell.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Variance computation for the Loop Agent differential receiver.
|
|
3
|
+
*
|
|
4
|
+
* Compares intent (loop data) against forecasted reality (metrics + projections)
|
|
5
|
+
* and produces a structured VarianceResult. Pure function, no side effects.
|
|
6
|
+
*/
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// Computation
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
/**
|
|
11
|
+
* Compute variance between intent and forecasted reality.
|
|
12
|
+
*
|
|
13
|
+
* @param intent - Loop data (documents, questions, answers, persona)
|
|
14
|
+
* @param reality - Reality metrics and projections
|
|
15
|
+
* @param targetDate - Strategy target date (ISO string or null)
|
|
16
|
+
* @param previousVariance - Previous variance result for trend computation (optional)
|
|
17
|
+
* @returns Structured variance result
|
|
18
|
+
*/
|
|
19
|
+
export function computeVariance(intent, reality, targetDate, previousVariance) {
|
|
20
|
+
const metrics = reality.metrics;
|
|
21
|
+
const completion = reality.projections.completion;
|
|
22
|
+
const cost = reality.projections.cost;
|
|
23
|
+
const schedule = computeScheduleVariance(targetDate, completion);
|
|
24
|
+
const throughput = computeThroughputVariance(metrics, completion, targetDate);
|
|
25
|
+
const costVar = computeCostVariance(cost);
|
|
26
|
+
const staleness = computeStaleness(intent);
|
|
27
|
+
const completionConfidence = completion
|
|
28
|
+
? completion.confidence ?? null
|
|
29
|
+
: null;
|
|
30
|
+
const dimensions = {
|
|
31
|
+
schedule,
|
|
32
|
+
throughput,
|
|
33
|
+
cost: costVar,
|
|
34
|
+
staleness,
|
|
35
|
+
completionConfidence,
|
|
36
|
+
};
|
|
37
|
+
const noiseFlags = computeNoiseFlags(metrics);
|
|
38
|
+
const lockStatus = determineLockStatus(dimensions, noiseFlags);
|
|
39
|
+
const trendDirection = computeTrendDirection(dimensions, previousVariance ?? null);
|
|
40
|
+
const summary = buildSummary(lockStatus, dimensions, noiseFlags, trendDirection);
|
|
41
|
+
return { lockStatus, dimensions, noiseFlags, summary, trendDirection };
|
|
42
|
+
}
|
|
43
|
+
// ---------------------------------------------------------------------------
|
|
44
|
+
// Dimension computations
|
|
45
|
+
// ---------------------------------------------------------------------------
|
|
46
|
+
function computeScheduleVariance(targetDate, completion) {
|
|
47
|
+
if (!targetDate) {
|
|
48
|
+
return { targetDate: null, projectedDate: null, varianceDays: 0, direction: 'unknown' };
|
|
49
|
+
}
|
|
50
|
+
const target = new Date(targetDate);
|
|
51
|
+
if (isNaN(target.getTime())) {
|
|
52
|
+
return { targetDate, projectedDate: null, varianceDays: 0, direction: 'unknown' };
|
|
53
|
+
}
|
|
54
|
+
if (!completion || completion.status === 'complete') {
|
|
55
|
+
return { targetDate, projectedDate: null, varianceDays: 0, direction: 'on_track' };
|
|
56
|
+
}
|
|
57
|
+
if (completion.status === 'stalled') {
|
|
58
|
+
// Stalled means we can't project -- treat as behind
|
|
59
|
+
return { targetDate, projectedDate: null, varianceDays: Infinity, direction: 'behind' };
|
|
60
|
+
}
|
|
61
|
+
const projectedDateStr = completion.projectedCompletionDate;
|
|
62
|
+
if (!projectedDateStr) {
|
|
63
|
+
return { targetDate, projectedDate: null, varianceDays: 0, direction: 'unknown' };
|
|
64
|
+
}
|
|
65
|
+
const projected = new Date(projectedDateStr);
|
|
66
|
+
const diffMs = projected.getTime() - target.getTime();
|
|
67
|
+
const diffDays = Math.round(diffMs / (24 * 60 * 60 * 1000));
|
|
68
|
+
let direction;
|
|
69
|
+
if (diffDays <= 0)
|
|
70
|
+
direction = 'ahead';
|
|
71
|
+
else if (diffDays <= 2)
|
|
72
|
+
direction = 'on_track';
|
|
73
|
+
else
|
|
74
|
+
direction = 'behind';
|
|
75
|
+
return {
|
|
76
|
+
targetDate,
|
|
77
|
+
projectedDate: projectedDateStr,
|
|
78
|
+
varianceDays: diffDays,
|
|
79
|
+
direction,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
function computeThroughputVariance(metrics, completion, targetDate) {
|
|
83
|
+
if (!metrics)
|
|
84
|
+
return null;
|
|
85
|
+
const currentVelocity = completion
|
|
86
|
+
? completion.velocity ?? 0
|
|
87
|
+
: 0;
|
|
88
|
+
const remainingIssues = completion
|
|
89
|
+
? completion.remainingIssues ?? 0
|
|
90
|
+
: (metrics.issues_todo ?? 0) + (metrics.issues_in_progress ?? 0);
|
|
91
|
+
// Calculate required velocity if we have a target date
|
|
92
|
+
let requiredVelocity = null;
|
|
93
|
+
if (targetDate && remainingIssues > 0) {
|
|
94
|
+
const target = new Date(targetDate);
|
|
95
|
+
const daysToTarget = Math.max(1, (target.getTime() - Date.now()) / (24 * 60 * 60 * 1000));
|
|
96
|
+
requiredVelocity = remainingIssues / daysToTarget;
|
|
97
|
+
}
|
|
98
|
+
// Determine trend from windowed throughput
|
|
99
|
+
const done7d = metrics.issues_done_7d ?? 0;
|
|
100
|
+
const done14d = metrics.issues_done_14d ?? 0;
|
|
101
|
+
const done30d = metrics.issues_done_30d ?? 0;
|
|
102
|
+
let trend;
|
|
103
|
+
if (done7d === 0 && done14d === 0) {
|
|
104
|
+
trend = 'stalled';
|
|
105
|
+
}
|
|
106
|
+
else if (done14d > 0) {
|
|
107
|
+
// Compare first-half vs second-half velocity
|
|
108
|
+
const firstHalf = done14d - done7d; // issues 7-14 days ago
|
|
109
|
+
const secondHalf = done7d; // issues in last 7 days
|
|
110
|
+
if (secondHalf > firstHalf * 1.2)
|
|
111
|
+
trend = 'accelerating';
|
|
112
|
+
else if (secondHalf < firstHalf * 0.8)
|
|
113
|
+
trend = 'decelerating';
|
|
114
|
+
else
|
|
115
|
+
trend = 'steady';
|
|
116
|
+
}
|
|
117
|
+
else if (done30d > 0) {
|
|
118
|
+
trend = 'decelerating'; // Only older completions
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
trend = 'stalled';
|
|
122
|
+
}
|
|
123
|
+
return { currentVelocity, requiredVelocity, trend, remainingIssues };
|
|
124
|
+
}
|
|
125
|
+
function computeCostVariance(cost) {
|
|
126
|
+
if (!cost)
|
|
127
|
+
return null;
|
|
128
|
+
return {
|
|
129
|
+
costToDate: cost.costToDate ?? 0,
|
|
130
|
+
projectedTotal: cost.projectedTotalCost ?? null,
|
|
131
|
+
burnRatePerDay: cost.burnRatePerDay ?? 0,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
function computeStaleness(intent) {
|
|
135
|
+
// If there are no documents, loop data hasn't been initialized yet
|
|
136
|
+
if (intent.documents.length === 0) {
|
|
137
|
+
return { isStale: true, reason: 'No loop documents exist yet' };
|
|
138
|
+
}
|
|
139
|
+
// Check if many questions are unanswered
|
|
140
|
+
const unanswered = intent.questions.filter(q => !q.answer && !q.isRetired);
|
|
141
|
+
if (unanswered.length > intent.questions.length * 0.5 && intent.questions.length > 0) {
|
|
142
|
+
return { isStale: true, reason: `${unanswered.length}/${intent.questions.length} questions unanswered` };
|
|
143
|
+
}
|
|
144
|
+
return { isStale: false, reason: null };
|
|
145
|
+
}
|
|
146
|
+
// ---------------------------------------------------------------------------
|
|
147
|
+
// Noise detection
|
|
148
|
+
// ---------------------------------------------------------------------------
|
|
149
|
+
function computeNoiseFlags(metrics) {
|
|
150
|
+
if (!metrics) {
|
|
151
|
+
return { activityWithoutProgress: false, extendedCodingNoVerify: false, highEscalationRate: false };
|
|
152
|
+
}
|
|
153
|
+
// High activity without progress: many sessions but no recent completions
|
|
154
|
+
const sessions = metrics.session_count ?? 0;
|
|
155
|
+
const done7d = metrics.issues_done_7d ?? 0;
|
|
156
|
+
const activityWithoutProgress = sessions > 5 && done7d === 0;
|
|
157
|
+
// Extended coding without verify: all deliveries in coding, none in verify/done
|
|
158
|
+
const coding = metrics.deliveries_coding ?? 0;
|
|
159
|
+
const verify = metrics.deliveries_verify ?? 0;
|
|
160
|
+
const done = metrics.deliveries_done ?? 0;
|
|
161
|
+
const total = metrics.total_deliveries ?? 0;
|
|
162
|
+
const extendedCodingNoVerify = coding > 0 && verify === 0 && done === 0 && total > 0;
|
|
163
|
+
// High escalation rate
|
|
164
|
+
const escalations = metrics.escalation_count ?? 0;
|
|
165
|
+
const highEscalationRate = sessions > 3 && escalations > sessions * 0.3;
|
|
166
|
+
return { activityWithoutProgress, extendedCodingNoVerify, highEscalationRate };
|
|
167
|
+
}
|
|
168
|
+
// ---------------------------------------------------------------------------
|
|
169
|
+
// Trend direction: is the gap converging or diverging?
|
|
170
|
+
// ---------------------------------------------------------------------------
|
|
171
|
+
function computeTrendDirection(current, previous) {
|
|
172
|
+
if (!previous)
|
|
173
|
+
return 'stable';
|
|
174
|
+
// Compute a simple "gap score" for current and previous.
|
|
175
|
+
// Higher score = larger gap between intent and reality.
|
|
176
|
+
const currentScore = gapScore(current);
|
|
177
|
+
const previousScore = gapScore(previous.dimensions);
|
|
178
|
+
// If both are zero, stable
|
|
179
|
+
if (currentScore === 0 && previousScore === 0)
|
|
180
|
+
return 'stable';
|
|
181
|
+
const delta = currentScore - previousScore;
|
|
182
|
+
// Threshold: 10% relative change or absolute change > 0.5
|
|
183
|
+
const threshold = Math.max(previousScore * 0.1, 0.5);
|
|
184
|
+
if (delta < -threshold)
|
|
185
|
+
return 'converging';
|
|
186
|
+
if (delta > threshold)
|
|
187
|
+
return 'diverging';
|
|
188
|
+
return 'stable';
|
|
189
|
+
}
|
|
190
|
+
function gapScore(dimensions) {
|
|
191
|
+
let score = 0;
|
|
192
|
+
// Schedule: days behind adds to gap score
|
|
193
|
+
if (dimensions.schedule) {
|
|
194
|
+
const days = dimensions.schedule.varianceDays;
|
|
195
|
+
if (days === Infinity)
|
|
196
|
+
score += 10;
|
|
197
|
+
else if (dimensions.schedule.direction === 'behind')
|
|
198
|
+
score += Math.min(days, 30);
|
|
199
|
+
}
|
|
200
|
+
// Throughput: stalled or decelerating increases gap
|
|
201
|
+
if (dimensions.throughput) {
|
|
202
|
+
const remaining = dimensions.throughput.remainingIssues;
|
|
203
|
+
if (dimensions.throughput.trend === 'stalled' && remaining > 0)
|
|
204
|
+
score += 5;
|
|
205
|
+
else if (dimensions.throughput.trend === 'decelerating')
|
|
206
|
+
score += 2;
|
|
207
|
+
// Velocity deficit
|
|
208
|
+
if (dimensions.throughput.requiredVelocity != null && dimensions.throughput.requiredVelocity > 0) {
|
|
209
|
+
const deficit = Math.max(0, dimensions.throughput.requiredVelocity - dimensions.throughput.currentVelocity);
|
|
210
|
+
score += deficit;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
// Confidence: lower confidence = larger gap
|
|
214
|
+
if (dimensions.completionConfidence != null) {
|
|
215
|
+
score += (1 - dimensions.completionConfidence) * 5;
|
|
216
|
+
}
|
|
217
|
+
return score;
|
|
218
|
+
}
|
|
219
|
+
// ---------------------------------------------------------------------------
|
|
220
|
+
// Lock status determination
|
|
221
|
+
// ---------------------------------------------------------------------------
|
|
222
|
+
function determineLockStatus(dimensions, noiseFlags) {
|
|
223
|
+
// Unlocked: significant divergence
|
|
224
|
+
if (dimensions.schedule?.direction === 'behind' && dimensions.schedule.varianceDays > 7) {
|
|
225
|
+
return 'unlocked';
|
|
226
|
+
}
|
|
227
|
+
if (dimensions.throughput?.trend === 'stalled' && (dimensions.throughput.remainingIssues ?? 0) > 0) {
|
|
228
|
+
return 'unlocked';
|
|
229
|
+
}
|
|
230
|
+
if (dimensions.completionConfidence !== null && dimensions.completionConfidence < 0.3) {
|
|
231
|
+
return 'unlocked';
|
|
232
|
+
}
|
|
233
|
+
// Drifting: some divergence
|
|
234
|
+
if (dimensions.schedule?.direction === 'behind') {
|
|
235
|
+
return 'drifting';
|
|
236
|
+
}
|
|
237
|
+
if (dimensions.throughput?.trend === 'decelerating') {
|
|
238
|
+
return 'drifting';
|
|
239
|
+
}
|
|
240
|
+
if (dimensions.staleness?.isStale) {
|
|
241
|
+
return 'drifting';
|
|
242
|
+
}
|
|
243
|
+
if (noiseFlags.activityWithoutProgress || noiseFlags.extendedCodingNoVerify) {
|
|
244
|
+
return 'drifting';
|
|
245
|
+
}
|
|
246
|
+
// Locked: within thresholds
|
|
247
|
+
return 'locked';
|
|
248
|
+
}
|
|
249
|
+
// ---------------------------------------------------------------------------
|
|
250
|
+
// Summary builder
|
|
251
|
+
// ---------------------------------------------------------------------------
|
|
252
|
+
function buildSummary(lockStatus, dimensions, noiseFlags, trendDirection) {
|
|
253
|
+
const parts = [];
|
|
254
|
+
parts.push(`Lock status: ${lockStatus}`);
|
|
255
|
+
if (trendDirection !== 'stable') {
|
|
256
|
+
parts.push(`Trend: ${trendDirection}`);
|
|
257
|
+
}
|
|
258
|
+
if (dimensions.schedule) {
|
|
259
|
+
if (dimensions.schedule.direction === 'behind') {
|
|
260
|
+
parts.push(`Schedule: ${dimensions.schedule.varianceDays === Infinity ? 'stalled (no projection)' : `${dimensions.schedule.varianceDays}d behind target`}`);
|
|
261
|
+
}
|
|
262
|
+
else if (dimensions.schedule.direction === 'ahead') {
|
|
263
|
+
parts.push(`Schedule: ${Math.abs(dimensions.schedule.varianceDays)}d ahead of target`);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
if (dimensions.throughput) {
|
|
267
|
+
parts.push(`Throughput: ${dimensions.throughput.trend} (${dimensions.throughput.currentVelocity.toFixed(2)} issues/day, ${dimensions.throughput.remainingIssues} remaining)`);
|
|
268
|
+
}
|
|
269
|
+
if (dimensions.cost && dimensions.cost.costToDate > 0) {
|
|
270
|
+
parts.push(`Cost: $${dimensions.cost.costToDate.toFixed(2)} spent${dimensions.cost.projectedTotal ? `, $${dimensions.cost.projectedTotal.toFixed(2)} projected` : ''}`);
|
|
271
|
+
}
|
|
272
|
+
if (dimensions.completionConfidence !== null) {
|
|
273
|
+
parts.push(`Confidence: ${dimensions.completionConfidence}`);
|
|
274
|
+
}
|
|
275
|
+
if (noiseFlags.activityWithoutProgress)
|
|
276
|
+
parts.push('Noise: activity without progress');
|
|
277
|
+
if (noiseFlags.extendedCodingNoVerify)
|
|
278
|
+
parts.push('Noise: extended coding without verification');
|
|
279
|
+
if (noiseFlags.highEscalationRate)
|
|
280
|
+
parts.push('Noise: high escalation rate');
|
|
281
|
+
return parts.join('. ');
|
|
282
|
+
}
|
|
283
|
+
//# sourceMappingURL=loop-variance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-variance.js","sourceRoot":"","sources":["../src/loop-variance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-cascade.d.ts","sourceRoot":"","sources":["../src/state-cascade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"state-cascade.d.ts","sourceRoot":"","sources":["../src/state-cascade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAevD,+DAA+D;AAC/D,MAAM,WAAW,WAAW;IAC1B,qBAAqB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC/E,oBAAoB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1J,oCAAoC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACjF;AAQD;;;GAGG;AACH,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,IAAI,GAAE,WAAyB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA8Df;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,IAAI,GAAE,WAAyB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA4Cf;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,cAAc,GAAG,IAAI,EACrC,IAAI,GAAE,WAAyB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB1E"}
|
package/dist/state-cascade.js
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
import { getActiveStrategies } from './supabase.js';
|
|
16
16
|
import { getStrategyDeliveries as _getStrategyDeliveries, updateStrategyStatus as _updateStrategyStatus, fetchStrategyWorkflowWithTransitions as _fetchStrategyWorkflowWithTransitions } from './queries/strategies.js';
|
|
17
17
|
import { configForProduct } from './config.js';
|
|
18
|
+
import { emitLoopTrigger } from './loop-event-bus.js';
|
|
18
19
|
// Delivery statuses that count as "complete" for cascade purposes
|
|
19
20
|
const DELIVERY_COMPLETE_STATUSES = new Set(['verify', 'done']);
|
|
20
21
|
// Delivery statuses to exclude from cascade checks entirely
|
|
@@ -65,6 +66,11 @@ export async function checkDeliveryToStrategyCascade(config, strategyId, strateg
|
|
|
65
66
|
await deps.updateStrategyStatus(strategyId, 'verify', verifyStage.id);
|
|
66
67
|
console.log(`[state-cascade] Strategy ${strategyId} cascaded building -> verify: ` +
|
|
67
68
|
`all ${activeDeliveries.length} active delivery(ies) in verify or beyond`);
|
|
69
|
+
emitLoopTrigger({
|
|
70
|
+
type: 'strategy_status_changed',
|
|
71
|
+
strategyId,
|
|
72
|
+
detail: 'building -> verify (all deliveries complete)',
|
|
73
|
+
});
|
|
68
74
|
}
|
|
69
75
|
catch (err) {
|
|
70
76
|
console.warn(`[state-cascade] Failed to check delivery->strategy cascade for ${strategyId}:`, err.message);
|
|
@@ -95,6 +101,11 @@ export async function handleStrategyRegression(config, strategyId, strategyStatu
|
|
|
95
101
|
await deps.updateStrategyStatus(strategyId, 'building', buildingStage.id, { reviewRequestedAt: null });
|
|
96
102
|
console.log(`[state-cascade] Strategy ${strategyId} regressed ${strategyStatus} -> building: ` +
|
|
97
103
|
`delivery reverted to non-verify status (review_requested_at cleared)`);
|
|
104
|
+
emitLoopTrigger({
|
|
105
|
+
type: 'review_completed',
|
|
106
|
+
strategyId,
|
|
107
|
+
detail: `${strategyStatus} -> building (delivery regression, review cleared)`,
|
|
108
|
+
});
|
|
98
109
|
}
|
|
99
110
|
catch (err) {
|
|
100
111
|
console.warn(`[state-cascade] Failed to check strategy regression for ${strategyId}:`, err.message);
|
|
@@ -130,6 +141,11 @@ export async function checkAutoReview(config, strategyId, strategyStatus, pipeli
|
|
|
130
141
|
await deps.updateStrategyStatus(strategyId, 'in_review', inReviewStage.id, { reviewRequestedAt: new Date().toISOString() });
|
|
131
142
|
console.log(`[state-cascade] Auto-review triggered for strategy ${strategyId}: ` +
|
|
132
143
|
`strategy transitioned to in_review`);
|
|
144
|
+
emitLoopTrigger({
|
|
145
|
+
type: 'strategy_status_changed',
|
|
146
|
+
strategyId,
|
|
147
|
+
detail: 'verify -> in_review (auto-review triggered)',
|
|
148
|
+
});
|
|
133
149
|
}
|
|
134
150
|
catch (err) {
|
|
135
151
|
console.warn(`[state-cascade] Failed to check auto-review for ${strategyId}:`, err.message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-cascade.js","sourceRoot":"","sources":["../src/state-cascade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,qBAAqB,IAAI,sBAAsB,EAAE,oBAAoB,IAAI,qBAAqB,EAAE,oCAAoC,IAAI,qCAAqC,EAAE,MAAM,yBAAyB,CAAC;AACxN,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"state-cascade.js","sourceRoot":"","sources":["../src/state-cascade.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strategy-completion.d.ts","sourceRoot":"","sources":["../src/strategy-completion.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,QAAQ,EACR,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAYpB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"strategy-completion.d.ts","sourceRoot":"","sources":["../src/strategy-completion.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,QAAQ,EACR,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAYpB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAclE;;;GAGG;AACH,eAAO,MAAM,0BAA0B,aAA8B,CAAC;AAEtE;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,aAAgC,CAAC;AAIhE,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8RtF;AAID;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,qBAAqB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC/E,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC5H,uBAAuB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,sBAAsB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClE,oBAAoB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7H,oBAAoB,EAAE,CAAC,MAAM,EAAE;QAC7B,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,QAAQ,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,iBAAiB,CAAC;QACrC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACnC;AAYD;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,mBAAiC,GACtC,OAAO,CAAC,IAAI,CAAC,CAqHf"}
|
|
@@ -12,6 +12,7 @@ import { mergeStrategyBranch, escalateMergeConflict } from './strategy-merge.js'
|
|
|
12
12
|
import { mergeIntegrationToMain } from './git-merge.js';
|
|
13
13
|
import { recordSessionCompleted } from './agent-state.js';
|
|
14
14
|
import { triggerCheck } from './listener.js';
|
|
15
|
+
import { emitLoopTrigger } from './loop-event-bus.js';
|
|
15
16
|
import { getActiveTeams } from './strategy-team-state.js';
|
|
16
17
|
import { commitWipChanges, worktreeHasUncommittedChanges, branchHasUnmergedCommits, runGitSync } from './git.js';
|
|
17
18
|
import { computeGitDiffStats } from './git-utils.js';
|
|
@@ -251,6 +252,11 @@ export async function handleTeamCompletion(params) {
|
|
|
251
252
|
if (buildingStage) {
|
|
252
253
|
await updateStrategyStatus(strategyId, 'building', buildingStage.id, { reviewRequestedAt: null });
|
|
253
254
|
console.log(`[strategy-executor] Review found issues for "${strategyName}" -- strategy moved to building`);
|
|
255
|
+
emitLoopTrigger({
|
|
256
|
+
type: 'review_completed',
|
|
257
|
+
strategyId,
|
|
258
|
+
detail: `review found issues -- "${strategyName}" moved to building`,
|
|
259
|
+
});
|
|
254
260
|
}
|
|
255
261
|
}
|
|
256
262
|
else {
|
|
@@ -259,6 +265,11 @@ export async function handleTeamCompletion(params) {
|
|
|
259
265
|
if (verifyStage) {
|
|
260
266
|
await updateStrategyStatus(strategyId, 'verify', verifyStage.id, { reviewRequestedAt: null });
|
|
261
267
|
console.log(`[strategy-executor] Review passed for "${strategyName}" -- strategy moved to verify`);
|
|
268
|
+
emitLoopTrigger({
|
|
269
|
+
type: 'review_completed',
|
|
270
|
+
strategyId,
|
|
271
|
+
detail: `review passed -- "${strategyName}" moved to verify`,
|
|
272
|
+
});
|
|
262
273
|
}
|
|
263
274
|
}
|
|
264
275
|
}
|
|
@@ -398,6 +409,14 @@ export async function advanceDeliveryStatuses(config, teamState, sessionId, deps
|
|
|
398
409
|
});
|
|
399
410
|
// Track the new stage ID for potential future advances
|
|
400
411
|
teamState.deliveryStageIds.set(delivery.id, result.deliveryStageId ?? null);
|
|
412
|
+
// Notify loop engine of delivery completion (verify or done)
|
|
413
|
+
if (result.advanced && (result.deliveryStatus === 'verify' || result.deliveryStatus === 'done')) {
|
|
414
|
+
emitLoopTrigger({
|
|
415
|
+
type: 'delivery_completed',
|
|
416
|
+
strategyId: teamState.strategyId,
|
|
417
|
+
detail: `${delivery.name} -> ${result.deliveryStatus}`,
|
|
418
|
+
});
|
|
419
|
+
}
|
|
401
420
|
}
|
|
402
421
|
catch (err) {
|
|
403
422
|
console.warn(`[strategy-executor] Failed to check/advance delivery ${delivery.id}:`, err.message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strategy-completion.js","sourceRoot":"","sources":["../src/strategy-completion.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"strategy-completion.js","sourceRoot":"","sources":["../src/strategy-completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unified-shell.d.ts","sourceRoot":"","sources":["../src/unified-shell.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;
|
|
1
|
+
{"version":3,"file":"unified-shell.d.ts","sourceRoot":"","sources":["../src/unified-shell.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAgCH,sCAAsC;AACtC,MAAM,WAAW,oBAAoB;IACnC,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sCAAsC;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yDAAyD;IACzD,YAAY,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC;IAC7C,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAkwBD;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4OhF"}
|
package/dist/unified-shell.js
CHANGED
|
@@ -30,6 +30,7 @@ import { spawn, execFileSync } from 'node:child_process';
|
|
|
30
30
|
import { loadUnifiedConfig, buildEngineConfig, acquirePidLock, releasePidLock, setupSignalHandlers, PidLockError, forceCloseAllCircuitBreakers, ResourceGovernor, } from '@telora/daemon-core';
|
|
31
31
|
import { StrategyEngine } from './strategy-engine.js';
|
|
32
32
|
import { PMEngine } from './pm-engine.js';
|
|
33
|
+
import { LoopEngine } from './loop-engine.js';
|
|
33
34
|
import { startAutoUpdateLoop } from './auto-update.js';
|
|
34
35
|
import { setDaemonShuttingDown } from './shutdown-state.js';
|
|
35
36
|
import { rotateDaemonLog, setupCanonicalLogTee, writeDaemonMeta, removeDaemonMeta, resolveDaemonLogPath, resolvePidFilePath, ensureGlobalStateDir } from './daemon-process.js';
|
|
@@ -235,6 +236,27 @@ function pmSectionFromRawConfig(rawFileConfig) {
|
|
|
235
236
|
}
|
|
236
237
|
return { enabled: true, fields: {} };
|
|
237
238
|
}
|
|
239
|
+
/**
|
|
240
|
+
* Extract the Loop engine section from the raw file config.
|
|
241
|
+
* Returns an EngineSection with loop-specific fields (intervals, thresholds, etc.).
|
|
242
|
+
*/
|
|
243
|
+
function loopSectionFromRawConfig(rawFileConfig) {
|
|
244
|
+
const engines = rawFileConfig.engines;
|
|
245
|
+
if (typeof engines === 'object' && engines !== null && !Array.isArray(engines)) {
|
|
246
|
+
const loop = engines.loop;
|
|
247
|
+
if (typeof loop === 'object' && loop !== null && !Array.isArray(loop)) {
|
|
248
|
+
const loopObj = loop;
|
|
249
|
+
const fields = {};
|
|
250
|
+
for (const [key, value] of Object.entries(loopObj)) {
|
|
251
|
+
if (key !== 'enabled') {
|
|
252
|
+
fields[key] = value;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return { enabled: loopObj.enabled !== false, fields };
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
return { enabled: true, fields: {} };
|
|
259
|
+
}
|
|
238
260
|
// ---------------------------------------------------------------------------
|
|
239
261
|
// Status reporting
|
|
240
262
|
// ---------------------------------------------------------------------------
|
|
@@ -341,6 +363,8 @@ function printUnifiedConfigSummary(config) {
|
|
|
341
363
|
}
|
|
342
364
|
const pmSection = pmSectionFromRawConfig(config.rawFileConfig);
|
|
343
365
|
console.log(`\n PM engine: ${pmSection.enabled ? 'enabled' : 'disabled'}`);
|
|
366
|
+
const loopSec = loopSectionFromRawConfig(config.rawFileConfig);
|
|
367
|
+
console.log(` Loop engine: ${loopSec.enabled ? 'enabled' : 'disabled'}`);
|
|
344
368
|
}
|
|
345
369
|
// ---------------------------------------------------------------------------
|
|
346
370
|
// Auto-update config resolution
|
|
@@ -463,6 +487,20 @@ async function createEnginesAndGovernor(config, pidFilePath) {
|
|
|
463
487
|
if (pmFinalEnabled) {
|
|
464
488
|
engines.push(new PMEngine());
|
|
465
489
|
}
|
|
490
|
+
// Loop engine: enabled by default, no dynamic import needed
|
|
491
|
+
const loopSection = config.rawFileConfig.engines
|
|
492
|
+
? config.rawFileConfig.engines.loop
|
|
493
|
+
: undefined;
|
|
494
|
+
const loopEnabled = loopSection !== undefined
|
|
495
|
+
? loopSection.enabled !== false
|
|
496
|
+
: true;
|
|
497
|
+
const loopEnvEnabled = process.env.TELORA_ENGINE_LOOP_ENABLED;
|
|
498
|
+
const loopFinalEnabled = loopEnvEnabled !== undefined
|
|
499
|
+
? loopEnvEnabled !== '0' && loopEnvEnabled !== 'false'
|
|
500
|
+
: loopEnabled;
|
|
501
|
+
if (loopFinalEnabled) {
|
|
502
|
+
engines.push(new LoopEngine());
|
|
503
|
+
}
|
|
466
504
|
if (engines.length === 0) {
|
|
467
505
|
console.error('No engines are enabled. Enable at least one engine in the config or remove --engine filter.');
|
|
468
506
|
releasePidLock(pidFilePath);
|
|
@@ -520,6 +558,11 @@ async function initializeAndStartEngines(engines, config, opts, pidFilePath) {
|
|
|
520
558
|
const pmSection = pmSectionFromRawConfig(config.rawFileConfig);
|
|
521
559
|
engineConfig = buildEngineConfig(config.base, pmSection);
|
|
522
560
|
}
|
|
561
|
+
else if (engine.name === 'loop') {
|
|
562
|
+
// Loop engine uses base config + loop-specific fields from engines.loop section
|
|
563
|
+
const loopSec = loopSectionFromRawConfig(config.rawFileConfig);
|
|
564
|
+
engineConfig = buildEngineConfig(config.base, loopSec);
|
|
565
|
+
}
|
|
523
566
|
else {
|
|
524
567
|
// Unknown engine type -- pass a basic merged config
|
|
525
568
|
const section = config.strategy.enabled ? config.strategy : config.factory;
|