@cleocode/core 2026.3.58 → 2026.3.60

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.
Files changed (153) hide show
  1. package/dist/agents/agent-registry.d.ts +206 -0
  2. package/dist/agents/agent-registry.d.ts.map +1 -0
  3. package/dist/agents/agent-registry.js +288 -0
  4. package/dist/agents/agent-registry.js.map +1 -0
  5. package/dist/agents/agent-schema.js +5 -0
  6. package/dist/agents/agent-schema.js.map +1 -1
  7. package/dist/agents/execution-learning.js +474 -0
  8. package/dist/agents/execution-learning.js.map +1 -0
  9. package/dist/agents/health-monitor.d.ts +161 -0
  10. package/dist/agents/health-monitor.d.ts.map +1 -0
  11. package/dist/agents/health-monitor.js +217 -0
  12. package/dist/agents/health-monitor.js.map +1 -0
  13. package/dist/agents/index.d.ts +3 -1
  14. package/dist/agents/index.d.ts.map +1 -1
  15. package/dist/agents/index.js +9 -1
  16. package/dist/agents/index.js.map +1 -1
  17. package/dist/agents/retry.d.ts +57 -4
  18. package/dist/agents/retry.d.ts.map +1 -1
  19. package/dist/agents/retry.js +57 -4
  20. package/dist/agents/retry.js.map +1 -1
  21. package/dist/backfill/index.d.ts +27 -0
  22. package/dist/backfill/index.d.ts.map +1 -1
  23. package/dist/backfill/index.js +229 -0
  24. package/dist/backfill/index.js.map +1 -0
  25. package/dist/bootstrap.d.ts +2 -1
  26. package/dist/bootstrap.d.ts.map +1 -1
  27. package/dist/bootstrap.js +135 -28
  28. package/dist/bootstrap.js.map +1 -1
  29. package/dist/cleo.d.ts +40 -0
  30. package/dist/cleo.d.ts.map +1 -1
  31. package/dist/config.js +83 -0
  32. package/dist/config.js.map +1 -1
  33. package/dist/index.d.ts +1 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +1036 -536
  36. package/dist/index.js.map +4 -4
  37. package/dist/intelligence/adaptive-validation.js +497 -0
  38. package/dist/intelligence/adaptive-validation.js.map +1 -0
  39. package/dist/intelligence/impact.d.ts +34 -1
  40. package/dist/intelligence/impact.d.ts.map +1 -1
  41. package/dist/intelligence/impact.js +176 -0
  42. package/dist/intelligence/impact.js.map +1 -1
  43. package/dist/intelligence/index.d.ts +2 -2
  44. package/dist/intelligence/index.d.ts.map +1 -1
  45. package/dist/intelligence/index.js +6 -1
  46. package/dist/intelligence/index.js.map +1 -1
  47. package/dist/intelligence/types.d.ts +60 -0
  48. package/dist/intelligence/types.d.ts.map +1 -1
  49. package/dist/internal.d.ts +5 -4
  50. package/dist/internal.d.ts.map +1 -1
  51. package/dist/internal.js +11 -2
  52. package/dist/internal.js.map +1 -1
  53. package/dist/lib/index.d.ts +10 -0
  54. package/dist/lib/index.d.ts.map +1 -0
  55. package/dist/lib/index.js +10 -0
  56. package/dist/lib/index.js.map +1 -0
  57. package/dist/lib/retry.d.ts +128 -0
  58. package/dist/lib/retry.d.ts.map +1 -0
  59. package/dist/lib/retry.js +152 -0
  60. package/dist/lib/retry.js.map +1 -0
  61. package/dist/nexus/sharing/index.d.ts +48 -2
  62. package/dist/nexus/sharing/index.d.ts.map +1 -1
  63. package/dist/nexus/sharing/index.js +110 -1
  64. package/dist/nexus/sharing/index.js.map +1 -1
  65. package/dist/scaffold.d.ts.map +1 -1
  66. package/dist/scaffold.js +22 -2
  67. package/dist/scaffold.js.map +1 -1
  68. package/dist/sessions/session-enforcement.js +4 -0
  69. package/dist/sessions/session-enforcement.js.map +1 -1
  70. package/dist/stats/index.js +2 -0
  71. package/dist/stats/index.js.map +1 -1
  72. package/dist/stats/workflow-telemetry.d.ts +15 -0
  73. package/dist/stats/workflow-telemetry.d.ts.map +1 -1
  74. package/dist/stats/workflow-telemetry.js +400 -0
  75. package/dist/stats/workflow-telemetry.js.map +1 -0
  76. package/dist/store/brain-schema.js +4 -1
  77. package/dist/store/brain-schema.js.map +1 -1
  78. package/dist/store/converters.js +2 -0
  79. package/dist/store/converters.js.map +1 -1
  80. package/dist/store/cross-db-cleanup.d.ts +35 -0
  81. package/dist/store/cross-db-cleanup.d.ts.map +1 -1
  82. package/dist/store/cross-db-cleanup.js +169 -0
  83. package/dist/store/cross-db-cleanup.js.map +1 -0
  84. package/dist/store/db-helpers.js +2 -0
  85. package/dist/store/db-helpers.js.map +1 -1
  86. package/dist/store/migration-sqlite.js +5 -0
  87. package/dist/store/migration-sqlite.js.map +1 -1
  88. package/dist/store/sqlite-data-accessor.js +20 -28
  89. package/dist/store/sqlite-data-accessor.js.map +1 -1
  90. package/dist/store/sqlite.js +13 -2
  91. package/dist/store/sqlite.js.map +1 -1
  92. package/dist/store/task-store.js +4 -0
  93. package/dist/store/task-store.js.map +1 -1
  94. package/dist/store/tasks-schema.js +50 -20
  95. package/dist/store/tasks-schema.js.map +1 -1
  96. package/dist/tasks/add.js +87 -3
  97. package/dist/tasks/add.js.map +1 -1
  98. package/dist/tasks/complete.d.ts.map +1 -1
  99. package/dist/tasks/complete.js +15 -4
  100. package/dist/tasks/complete.js.map +1 -1
  101. package/dist/tasks/enforcement.d.ts.map +1 -1
  102. package/dist/tasks/enforcement.js +8 -1
  103. package/dist/tasks/enforcement.js.map +1 -1
  104. package/dist/tasks/epic-enforcement.d.ts +61 -0
  105. package/dist/tasks/epic-enforcement.d.ts.map +1 -1
  106. package/dist/tasks/epic-enforcement.js +294 -0
  107. package/dist/tasks/epic-enforcement.js.map +1 -0
  108. package/dist/tasks/index.js +1 -1
  109. package/dist/tasks/index.js.map +1 -1
  110. package/dist/tasks/pipeline-stage.d.ts +70 -1
  111. package/dist/tasks/pipeline-stage.d.ts.map +1 -1
  112. package/dist/tasks/pipeline-stage.js +248 -0
  113. package/dist/tasks/pipeline-stage.js.map +1 -0
  114. package/dist/tasks/update.js +28 -0
  115. package/dist/tasks/update.js.map +1 -1
  116. package/package.json +5 -5
  117. package/schemas/config.schema.json +37 -1547
  118. package/src/__tests__/sharing.test.ts +24 -0
  119. package/src/agents/__tests__/agent-registry.test.ts +351 -0
  120. package/src/agents/__tests__/health-monitor.test.ts +332 -0
  121. package/src/agents/agent-registry.ts +394 -0
  122. package/src/agents/health-monitor.ts +279 -0
  123. package/src/agents/index.ts +24 -1
  124. package/src/agents/retry.ts +57 -4
  125. package/src/backfill/index.ts +27 -0
  126. package/src/bootstrap.ts +171 -30
  127. package/src/cleo.ts +103 -2
  128. package/src/config.ts +3 -3
  129. package/src/index.ts +1 -0
  130. package/src/intelligence/__tests__/impact.test.ts +165 -1
  131. package/src/intelligence/impact.ts +203 -0
  132. package/src/intelligence/index.ts +3 -0
  133. package/src/intelligence/types.ts +76 -0
  134. package/src/internal.ts +20 -0
  135. package/src/lib/__tests__/retry.test.ts +321 -0
  136. package/src/lib/index.ts +16 -0
  137. package/src/lib/retry.ts +224 -0
  138. package/src/nexus/sharing/index.ts +142 -2
  139. package/src/scaffold.ts +24 -2
  140. package/src/stats/workflow-telemetry.ts +15 -0
  141. package/src/store/__tests__/session-store.test.ts +43 -7
  142. package/src/store/__tests__/task-store.test.ts +1 -1
  143. package/src/store/__tests__/test-db-helper.ts +7 -3
  144. package/src/store/cross-db-cleanup.ts +35 -0
  145. package/src/tasks/__tests__/epic-enforcement.test.ts +9 -4
  146. package/src/tasks/__tests__/minimal-test.test.ts +2 -2
  147. package/src/tasks/__tests__/update.test.ts +25 -25
  148. package/src/tasks/complete.ts +11 -6
  149. package/src/tasks/enforcement.ts +6 -3
  150. package/src/tasks/epic-enforcement.ts +61 -0
  151. package/src/tasks/pipeline-stage.ts +70 -1
  152. package/templates/config.template.json +5 -116
  153. package/templates/global-config.template.json +2 -44
@@ -0,0 +1,400 @@
1
+ /**
2
+ * Workflow Telemetry Module — Agent Workflow Compliance Metrics
3
+ *
4
+ * Computes compliance metrics for WF-001 through WF-005 workflow rules
5
+ * defined in T063. Queries existing data from tasks, sessions, and audit_log
6
+ * tables — no new infrastructure required.
7
+ *
8
+ * Metrics produced:
9
+ * - AC compliance rate: % of tasks with ≥3 acceptance criteria
10
+ * - Session compliance rate: % of task completions that occurred within a session
11
+ * - Gate compliance rate: Average verification gates set per completed task
12
+ * - Workflow violations: Count of tasks that bypassed WF rules
13
+ *
14
+ * @task T065
15
+ * @epic T056
16
+ */
17
+ import { getLogger } from '../logger.js';
18
+ const log = getLogger('workflow-telemetry');
19
+ // ---------------------------------------------------------------------------
20
+ // DB helpers
21
+ // ---------------------------------------------------------------------------
22
+ async function queryTasks(cwd, since) {
23
+ try {
24
+ const { getDb } = await import('../store/sqlite.js');
25
+ const { tasks } = await import('../store/tasks-schema.js');
26
+ const { and, gte } = await import('drizzle-orm');
27
+ const db = await getDb(cwd);
28
+ const conditions = [];
29
+ if (since) {
30
+ // Include tasks created or completed since the cutoff
31
+ conditions.push(gte(tasks.createdAt, since));
32
+ }
33
+ const rows = await db
34
+ .select({
35
+ id: tasks.id,
36
+ status: tasks.status,
37
+ acceptanceJson: tasks.acceptanceJson,
38
+ verificationJson: tasks.verificationJson,
39
+ sessionId: tasks.sessionId,
40
+ completedAt: tasks.completedAt,
41
+ createdAt: tasks.createdAt,
42
+ })
43
+ .from(tasks)
44
+ .where(conditions.length > 0 ? and(...conditions) : undefined)
45
+ .all();
46
+ return rows;
47
+ }
48
+ catch (err) {
49
+ log.warn({ err }, 'Failed to query tasks for workflow telemetry');
50
+ return [];
51
+ }
52
+ }
53
+ async function queryCompletionAuditRows(cwd, since) {
54
+ try {
55
+ const { getDb } = await import('../store/sqlite.js');
56
+ const { auditLog } = await import('../store/tasks-schema.js');
57
+ const { and, gte } = await import('drizzle-orm');
58
+ const db = await getDb(cwd);
59
+ // Completion events: action = 'task_completed' OR 'complete'
60
+ // OR operation = 'complete' in dispatch layer
61
+ const conditions = [];
62
+ if (since)
63
+ conditions.push(gte(auditLog.timestamp, since));
64
+ const allRows = await db
65
+ .select({
66
+ action: auditLog.action,
67
+ timestamp: auditLog.timestamp,
68
+ taskId: auditLog.taskId,
69
+ sessionId: auditLog.sessionId,
70
+ afterJson: auditLog.afterJson,
71
+ operation: auditLog.operation,
72
+ domain: auditLog.domain,
73
+ })
74
+ .from(auditLog)
75
+ .where(conditions.length > 0 ? and(...conditions) : undefined)
76
+ .orderBy(auditLog.timestamp)
77
+ .all();
78
+ // Filter to completion events only
79
+ return allRows.filter((row) => {
80
+ const isComplete = row.action === 'task_completed' ||
81
+ row.action === 'complete' ||
82
+ (row.operation === 'complete' && row.domain === 'tasks');
83
+ // Also catch status_changed → done
84
+ if (!isComplete && row.afterJson) {
85
+ try {
86
+ const after = JSON.parse(row.afterJson);
87
+ return after?.status === 'done';
88
+ }
89
+ catch {
90
+ return false;
91
+ }
92
+ }
93
+ return isComplete;
94
+ });
95
+ }
96
+ catch (err) {
97
+ log.warn({ err }, 'Failed to query audit log for workflow telemetry');
98
+ return [];
99
+ }
100
+ }
101
+ // ---------------------------------------------------------------------------
102
+ // Metric helpers
103
+ // ---------------------------------------------------------------------------
104
+ function parseAcceptanceCriteria(acceptanceJson) {
105
+ if (!acceptanceJson)
106
+ return [];
107
+ try {
108
+ const parsed = JSON.parse(acceptanceJson);
109
+ return Array.isArray(parsed) ? parsed : [];
110
+ }
111
+ catch {
112
+ return [];
113
+ }
114
+ }
115
+ function parseVerification(verificationJson) {
116
+ if (!verificationJson)
117
+ return null;
118
+ try {
119
+ return JSON.parse(verificationJson);
120
+ }
121
+ catch {
122
+ return null;
123
+ }
124
+ }
125
+ function countTrueGates(gates) {
126
+ if (!gates || typeof gates !== 'object')
127
+ return 0;
128
+ return Object.values(gates).filter((v) => v === true).length;
129
+ }
130
+ function gradeFromScore(score) {
131
+ if (score >= 0.95)
132
+ return 'A+';
133
+ if (score >= 0.9)
134
+ return 'A';
135
+ if (score >= 0.8)
136
+ return 'B';
137
+ if (score >= 0.7)
138
+ return 'C';
139
+ if (score >= 0.6)
140
+ return 'D';
141
+ return 'F';
142
+ }
143
+ // ---------------------------------------------------------------------------
144
+ // Public API
145
+ // ---------------------------------------------------------------------------
146
+ /**
147
+ * Compute workflow compliance metrics from existing task, session, and audit data.
148
+ *
149
+ * Rules evaluated:
150
+ * WF-001: Tasks MUST have ≥3 acceptance criteria (T058)
151
+ * WF-002: Task completions MUST occur within an active session (T059)
152
+ * WF-003: Completed tasks SHOULD have verification gates set (T061)
153
+ * WF-004: Tasks with verification SHOULD have all 3 gates set
154
+ * WF-005: Tasks MUST have session binding on creation (non-epic)
155
+ *
156
+ * @remarks
157
+ * Derives all metrics from existing audit_log and tasks tables — no new
158
+ * tracking infrastructure is required.
159
+ *
160
+ * @param opts - Report options
161
+ * @param opts.since - ISO 8601 date string to filter metrics from
162
+ * @param opts.cwd - Working directory for database resolution
163
+ * @returns Compliance report with per-rule pass/fail counts and overall rate
164
+ *
165
+ * @example
166
+ * ```ts
167
+ * const report = await getWorkflowComplianceReport({ cwd: '/my/project' });
168
+ * console.log(report.overall.passRate); // e.g. 0.85
169
+ * ```
170
+ */
171
+ export async function getWorkflowComplianceReport(opts) {
172
+ const cwd = opts.cwd ?? process.cwd();
173
+ const since = opts.since ?? null;
174
+ const generatedAt = new Date().toISOString();
175
+ const [allTasks, completionEvents] = await Promise.all([
176
+ queryTasks(cwd, since),
177
+ queryCompletionAuditRows(cwd, since),
178
+ ]);
179
+ // Include all tasks in WF checks. Epics will naturally show 0 AC criteria
180
+ // which counts as a violation — this is acceptable since epics should also
181
+ // have AC defined. The raw task query does not include the type column to
182
+ // keep the query minimal, so we don't filter by type here.
183
+ const nonEpicTasks = allTasks;
184
+ const completedTasks = allTasks.filter((t) => t.status === 'done' || t.completedAt != null);
185
+ // -------------------------------------------------------------------------
186
+ // WF-001: AC compliance — tasks with ≥3 acceptance criteria
187
+ // -------------------------------------------------------------------------
188
+ const wf001Violations = [];
189
+ let tasksWithAC = 0;
190
+ let tasksWithoutAC = 0;
191
+ for (const task of nonEpicTasks) {
192
+ const ac = parseAcceptanceCriteria(task.acceptanceJson);
193
+ if (ac.length >= 3) {
194
+ tasksWithAC++;
195
+ }
196
+ else {
197
+ tasksWithoutAC++;
198
+ if (wf001Violations.length < 10) {
199
+ wf001Violations.push({
200
+ taskId: task.id,
201
+ rule: 'WF-001',
202
+ detail: `has ${ac.length} AC item(s), needs ≥3`,
203
+ });
204
+ }
205
+ }
206
+ }
207
+ const wf001Total = nonEpicTasks.length;
208
+ const wf001Rate = wf001Total > 0 ? tasksWithAC / wf001Total : 1;
209
+ // -------------------------------------------------------------------------
210
+ // WF-002: Session compliance — completions that occurred inside a session
211
+ // -------------------------------------------------------------------------
212
+ const wf002Violations = [];
213
+ let completionsInSession = 0;
214
+ let completionsOutsideSession = 0;
215
+ for (const event of completionEvents) {
216
+ if (event.sessionId && event.sessionId !== 'unknown' && event.sessionId !== 'system') {
217
+ completionsInSession++;
218
+ }
219
+ else {
220
+ completionsOutsideSession++;
221
+ if (wf002Violations.length < 5) {
222
+ wf002Violations.push({
223
+ taskId: event.taskId ?? 'unknown',
224
+ rule: 'WF-002',
225
+ detail: 'task completed outside an active session',
226
+ });
227
+ }
228
+ }
229
+ }
230
+ const wf002Total = completionEvents.length;
231
+ const wf002Rate = wf002Total > 0 ? completionsInSession / wf002Total : 1;
232
+ // -------------------------------------------------------------------------
233
+ // WF-003: Gate compliance — completed tasks with verification initialized
234
+ // -------------------------------------------------------------------------
235
+ const wf003Violations = [];
236
+ let tasksWithGates = 0;
237
+ let tasksWithoutGates = 0;
238
+ let totalGatesSet = 0;
239
+ let gateTaskCount = 0;
240
+ for (const task of completedTasks) {
241
+ const verification = parseVerification(task.verificationJson);
242
+ if (verification) {
243
+ tasksWithGates++;
244
+ const gates = (verification.gates ?? {});
245
+ const setCount = countTrueGates(gates);
246
+ totalGatesSet += setCount;
247
+ gateTaskCount++;
248
+ }
249
+ else {
250
+ tasksWithoutGates++;
251
+ if (wf003Violations.length < 5) {
252
+ wf003Violations.push({
253
+ taskId: task.id,
254
+ rule: 'WF-003',
255
+ detail: 'completed without verification gates',
256
+ });
257
+ }
258
+ }
259
+ }
260
+ const wf003Total = completedTasks.length;
261
+ const wf003Rate = wf003Total > 0 ? tasksWithGates / wf003Total : 1;
262
+ const avgGatesSet = gateTaskCount > 0 ? Math.round((totalGatesSet / gateTaskCount) * 100) / 100 : 0;
263
+ // -------------------------------------------------------------------------
264
+ // WF-004: Full gate compliance — tasks with verification where all 3 gates are set
265
+ // -------------------------------------------------------------------------
266
+ const wf004Violations = [];
267
+ let allGatesSet = 0;
268
+ let partialGates = 0;
269
+ for (const task of completedTasks) {
270
+ const verification = parseVerification(task.verificationJson);
271
+ if (!verification)
272
+ continue; // Already captured in WF-003
273
+ const gates = (verification.gates ?? {});
274
+ const setCount = countTrueGates(gates);
275
+ const totalGates = Object.keys(gates).length;
276
+ if (totalGates > 0 && setCount === totalGates) {
277
+ allGatesSet++;
278
+ }
279
+ else if (totalGates > 0) {
280
+ partialGates++;
281
+ if (wf004Violations.length < 5) {
282
+ wf004Violations.push({
283
+ taskId: task.id,
284
+ rule: 'WF-004',
285
+ detail: `only ${setCount}/${totalGates} verification gates set`,
286
+ });
287
+ }
288
+ }
289
+ }
290
+ const wf004Total = tasksWithGates;
291
+ const wf004Rate = wf004Total > 0 ? allGatesSet / wf004Total : 1;
292
+ // -------------------------------------------------------------------------
293
+ // WF-005: Session binding on creation — tasks with sessionId set
294
+ // -------------------------------------------------------------------------
295
+ const wf005Violations = [];
296
+ let tasksWithSessionBinding = 0;
297
+ let tasksWithoutSessionBinding = 0;
298
+ for (const task of nonEpicTasks) {
299
+ if (task.sessionId && task.sessionId !== 'unknown' && task.sessionId !== 'system') {
300
+ tasksWithSessionBinding++;
301
+ }
302
+ else {
303
+ tasksWithoutSessionBinding++;
304
+ if (wf005Violations.length < 5) {
305
+ wf005Violations.push({
306
+ taskId: task.id,
307
+ rule: 'WF-005',
308
+ detail: 'created without session binding',
309
+ });
310
+ }
311
+ }
312
+ }
313
+ const wf005Total = nonEpicTasks.length;
314
+ const wf005Rate = wf005Total > 0 ? tasksWithSessionBinding / wf005Total : 1;
315
+ // -------------------------------------------------------------------------
316
+ // Aggregate
317
+ // -------------------------------------------------------------------------
318
+ const rules = [
319
+ {
320
+ rule: 'WF-001',
321
+ description: 'Tasks must have ≥3 acceptance criteria',
322
+ total: wf001Total,
323
+ violations: tasksWithoutAC,
324
+ complianceRate: Math.round(wf001Rate * 10000) / 10000,
325
+ },
326
+ {
327
+ rule: 'WF-002',
328
+ description: 'Task completions must occur within an active session',
329
+ total: wf002Total,
330
+ violations: completionsOutsideSession,
331
+ complianceRate: Math.round(wf002Rate * 10000) / 10000,
332
+ },
333
+ {
334
+ rule: 'WF-003',
335
+ description: 'Completed tasks should have verification gates initialized',
336
+ total: wf003Total,
337
+ violations: tasksWithoutGates,
338
+ complianceRate: Math.round(wf003Rate * 10000) / 10000,
339
+ },
340
+ {
341
+ rule: 'WF-004',
342
+ description: 'Verification gates should all be marked passed before completion',
343
+ total: wf004Total,
344
+ violations: partialGates,
345
+ complianceRate: Math.round(wf004Rate * 10000) / 10000,
346
+ },
347
+ {
348
+ rule: 'WF-005',
349
+ description: 'Tasks must be created with active session binding',
350
+ total: wf005Total,
351
+ violations: tasksWithoutSessionBinding,
352
+ complianceRate: Math.round(wf005Rate * 10000) / 10000,
353
+ },
354
+ ];
355
+ // Overall score: weighted average (MUST rules count double vs SHOULD)
356
+ // WF-001, WF-002, WF-005 are MUST; WF-003, WF-004 are SHOULD
357
+ const mustWeight = 2;
358
+ const shouldWeight = 1;
359
+ const wf001w = wf001Total > 0 ? mustWeight : 0;
360
+ const wf002w = wf002Total > 0 ? mustWeight : 0;
361
+ const wf003w = wf003Total > 0 ? shouldWeight : 0;
362
+ const wf004w = wf004Total > 0 ? shouldWeight : 0;
363
+ const wf005w = wf005Total > 0 ? mustWeight : 0;
364
+ const totalWeight = wf001w + wf002w + wf003w + wf004w + wf005w;
365
+ const overallScore = totalWeight > 0
366
+ ? (wf001w * wf001Rate +
367
+ wf002w * wf002Rate +
368
+ wf003w * wf003Rate +
369
+ wf004w * wf004Rate +
370
+ wf005w * wf005Rate) /
371
+ totalWeight
372
+ : 1;
373
+ const roundedScore = Math.round(overallScore * 10000) / 10000;
374
+ const violationSamples = [
375
+ ...wf001Violations,
376
+ ...wf002Violations,
377
+ ...wf003Violations,
378
+ ...wf004Violations,
379
+ ...wf005Violations,
380
+ ].slice(0, 20);
381
+ return {
382
+ generatedAt,
383
+ since,
384
+ overallScore: roundedScore,
385
+ grade: gradeFromScore(roundedScore),
386
+ rules,
387
+ violationSamples,
388
+ summary: {
389
+ totalTasks: allTasks.length,
390
+ completedTasks: completedTasks.length,
391
+ tasksWithAC,
392
+ tasksWithoutAC,
393
+ completionsInSession,
394
+ completionsOutsideSession,
395
+ tasksWithGates,
396
+ avgGatesSet,
397
+ },
398
+ };
399
+ }
400
+ //# sourceMappingURL=workflow-telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-telemetry.js","sourceRoot":"","sources":["../../src/stats/workflow-telemetry.ts"],"names":[],"mappings":"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"}
@@ -146,7 +146,10 @@ export const brainObservations = sqliteTable('brain_observations', {
146
146
  index('idx_brain_observations_created_at').on(table.createdAt),
147
147
  index('idx_brain_observations_source_type').on(table.sourceType),
148
148
  index('idx_brain_observations_source_session').on(table.sourceSessionId),
149
- index('idx_brain_observations_content_hash').on(table.contentHash),
149
+ // T033: composite replaces single-col content_hash; see brain migration
150
+ index('idx_brain_observations_content_hash_created_at').on(table.contentHash, table.createdAt),
151
+ // T033: type + project compound filter optimization
152
+ index('idx_brain_observations_type_project').on(table.type, table.project),
150
153
  ]);
151
154
  // === BRAIN_STICKY_NOTES TABLE ===
152
155
  /** Ephemeral sticky notes for quick capture before formal classification. */
@@ -1 +1 @@
1
- {"version":3,"file":"brain-schema.js","sourceRoot":"","sources":["../../src/store/brain-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brain-schema.js","sourceRoot":"","sources":["../../src/store/brain-schema.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,7 @@ export function rowToTask(row) {
41
41
  sessionId: row.sessionId ?? null,
42
42
  }
43
43
  : undefined,
44
+ pipelineStage: row.pipelineStage ?? undefined,
44
45
  };
45
46
  }
46
47
  /** Convert a domain Task to a database row for insert/upsert. */
@@ -74,6 +75,7 @@ export function taskToRow(task) {
74
75
  createdBy: task.provenance?.createdBy ?? null,
75
76
  modifiedBy: task.provenance?.modifiedBy ?? null,
76
77
  sessionId: task.provenance?.sessionId ?? null,
78
+ pipelineStage: task.pipelineStage ?? null,
77
79
  };
78
80
  }
79
81
  /** Convert a domain Task to a row suitable for archived tasks. */
@@ -1 +1 @@
1
- {"version":3,"file":"converters.js","sourceRoot":"","sources":["../../src/store/converters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"converters.js","sourceRoot":"","sources":["../../src/store/converters.ts"],"names":[],"mappings":"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"}
@@ -21,8 +21,17 @@
21
21
  * This is a best-effort cleanup — brain.db is a cognitive store and minor
22
22
  * staleness is preferable to failing task deletions due to brain.db errors.
23
23
  *
24
+ * @remarks
25
+ * Best-effort: failures in brain.db cleanup do not propagate to the caller.
26
+ * A background reconciliation pass can clean up any residual stale refs.
27
+ *
24
28
  * @param taskId - The ID of the task being deleted from tasks.db
25
29
  * @param cwd - Optional working directory
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * await cleanupBrainRefsOnTaskDelete('T042');
34
+ * ```
26
35
  */
27
36
  export declare function cleanupBrainRefsOnTaskDelete(taskId: string, cwd?: string): Promise<void>;
28
37
  /**
@@ -31,8 +40,16 @@ export declare function cleanupBrainRefsOnTaskDelete(taskId: string, cwd?: strin
31
40
  * Handles:
32
41
  * - XFKB-004: Nullify brain_observations.source_session_id where it matches
33
42
  *
43
+ * @remarks
44
+ * Best-effort: failures do not propagate. brain.db may not be initialised.
45
+ *
34
46
  * @param sessionId - The ID of the session being deleted from tasks.db
35
47
  * @param cwd - Optional working directory
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * await cleanupBrainRefsOnSessionDelete('ses_20260321_abc');
52
+ * ```
36
53
  */
37
54
  export declare function cleanupBrainRefsOnSessionDelete(sessionId: string, cwd?: string): Promise<void>;
38
55
  /**
@@ -41,8 +58,17 @@ export declare function cleanupBrainRefsOnSessionDelete(sessionId: string, cwd?:
41
58
  *
42
59
  * Provides write-guard for XFKB-001/002/003 on brain.db insert.
43
60
  *
61
+ * @remarks
62
+ * Used as a write-guard before inserting cross-DB references into brain.db.
63
+ *
44
64
  * @param taskId - Task ID to verify
45
65
  * @param tasksDb - The tasks.db drizzle instance
66
+ * @returns True if the task exists in tasks.db
67
+ *
68
+ * @example
69
+ * ```ts
70
+ * if (await taskExistsInTasksDb('T042', db)) { /* safe to reference *\/ }
71
+ * ```
46
72
  */
47
73
  export declare function taskExistsInTasksDb(taskId: string, tasksDb: Awaited<ReturnType<typeof import('./sqlite.js').getDb>>): Promise<boolean>;
48
74
  /**
@@ -51,8 +77,17 @@ export declare function taskExistsInTasksDb(taskId: string, tasksDb: Awaited<Ret
51
77
  *
52
78
  * Provides write-guard for XFKB-004 on brain.db insert.
53
79
  *
80
+ * @remarks
81
+ * Used as a write-guard before inserting cross-DB references into brain.db.
82
+ *
54
83
  * @param sessionId - Session ID to verify
55
84
  * @param tasksDb - The tasks.db drizzle instance
85
+ * @returns True if the session exists in tasks.db
86
+ *
87
+ * @example
88
+ * ```ts
89
+ * if (await sessionExistsInTasksDb('ses_abc', db)) { /* safe to reference *\/ }
90
+ * ```
56
91
  */
57
92
  export declare function sessionExistsInTasksDb(sessionId: string, tasksDb: Awaited<ReturnType<typeof import('./sqlite.js').getDb>>): Promise<boolean>;
58
93
  //# sourceMappingURL=cross-db-cleanup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cross-db-cleanup.d.ts","sourceRoot":"","sources":["../../src/store/cross-db-cleanup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH;;;;;;;;;;;;;GAaG;AACH,wBAAsB,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+C9F;AAED;;;;;;;;GAQG;AACH,wBAAsB,+BAA+B,CACnD,SAAS,EAAE,MAAM,EACjB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,cAAc,aAAa,EAAE,KAAK,CAAC,CAAC,GAC/D,OAAO,CAAC,OAAO,CAAC,CASlB;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,cAAc,aAAa,EAAE,KAAK,CAAC,CAAC,GAC/D,OAAO,CAAC,OAAO,CAAC,CASlB"}
1
+ {"version":3,"file":"cross-db-cleanup.d.ts","sourceRoot":"","sources":["../../src/store/cross-db-cleanup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+C9F;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,+BAA+B,CACnD,SAAS,EAAE,MAAM,EACjB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,cAAc,aAAa,EAAE,KAAK,CAAC,CAAC,GAC/D,OAAO,CAAC,OAAO,CAAC,CASlB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,cAAc,aAAa,EAAE,KAAK,CAAC,CAAC,GAC/D,OAAO,CAAC,OAAO,CAAC,CASlB"}