@qontinui/shared-types 0.2.2 → 0.2.3

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.
@@ -1,586 +1,587 @@
1
- /* eslint-disable */
2
- /**
3
- * This file was automatically generated.
4
- * DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
5
- * `qontinui-runner/src-tauri/scripts/generate_types.sh`.
6
- */
7
-
8
- import type { FlowEvent } from './FlowEvent';
9
-
10
- /**
11
- * Unified application events for frontend communication.
12
- *
13
- * Adjacently tagged: each variant serializes as
14
- * `{"event_type": "<VariantName>", "data": {..}}`.
15
- * The React frontend dispatches on `event_type` and reads `data`.
16
- */
17
- export type AppEvent =
18
- | {
19
- data: {
20
- data: unknown;
21
- event: string;
22
- sequence: number;
23
- timestamp: number;
24
- [k: string]: unknown;
25
- };
26
- event_type: "ExecutorEvent";
27
- [k: string]: unknown;
28
- }
29
- | {
30
- data: {
31
- event_type: string;
32
- node: unknown;
33
- path: string[];
34
- sequence: number;
35
- timestamp: number;
36
- [k: string]: unknown;
37
- };
38
- event_type: "ExecutorTreeEvent";
39
- [k: string]: unknown;
40
- }
41
- | {
42
- data: {
43
- details?: string | null;
44
- message: string;
45
- [k: string]: unknown;
46
- };
47
- event_type: "ExecutorError";
48
- [k: string]: unknown;
49
- }
50
- | {
51
- data: {
52
- data?: unknown;
53
- error?: string | null;
54
- id: string;
55
- success: boolean;
56
- [k: string]: unknown;
57
- };
58
- event_type: "ExecutorResponse";
59
- [k: string]: unknown;
60
- }
61
- | {
62
- data: {
63
- data: unknown;
64
- [k: string]: unknown;
65
- };
66
- event_type: "ImageRecognition";
67
- [k: string]: unknown;
68
- }
69
- | {
70
- data: {
71
- data: unknown;
72
- event: string;
73
- sequence: number;
74
- timestamp: number;
75
- [k: string]: unknown;
76
- };
77
- event_type: "ExtractionEvent";
78
- [k: string]: unknown;
79
- }
80
- | {
81
- data: {
82
- details?: string | null;
83
- message: string;
84
- [k: string]: unknown;
85
- };
86
- event_type: "ExtractionError";
87
- [k: string]: unknown;
88
- }
89
- | {
90
- data: {
91
- data?: unknown;
92
- error?: string | null;
93
- id: string;
94
- success: boolean;
95
- [k: string]: unknown;
96
- };
97
- event_type: "ExtractionResponse";
98
- [k: string]: unknown;
99
- }
100
- | {
101
- data: {
102
- elements_processed?: number | null;
103
- error?: string | null;
104
- message: string;
105
- percent?: number | null;
106
- project_id: string;
107
- status: string;
108
- total_elements?: number | null;
109
- [k: string]: unknown;
110
- };
111
- event_type: "RagProgress";
112
- [k: string]: unknown;
113
- }
114
- | {
115
- data: {
116
- failed: number;
117
- project_id: string;
118
- success: boolean;
119
- successful: number;
120
- total_processed: number;
121
- web_sync_error?: string | null;
122
- web_sync_success: boolean;
123
- [k: string]: unknown;
124
- };
125
- event_type: "RagCompletion";
126
- [k: string]: unknown;
127
- }
128
- | {
129
- data: FlowEvent;
130
- event_type: "FlowEvent";
131
- [k: string]: unknown;
132
- }
133
- | {
134
- data: {
135
- content: string;
136
- content_type?: string | null;
137
- session_id: string;
138
- [k: string]: unknown;
139
- };
140
- event_type: "AiOutput";
141
- [k: string]: unknown;
142
- }
143
- | {
144
- data: {
145
- finding: unknown;
146
- [k: string]: unknown;
147
- };
148
- event_type: "FindingDetected";
149
- [k: string]: unknown;
150
- }
151
- | {
152
- data: {
153
- finding: unknown;
154
- [k: string]: unknown;
155
- };
156
- event_type: "FindingResolved";
157
- [k: string]: unknown;
158
- }
159
- | {
160
- data: {
161
- data: unknown;
162
- [k: string]: unknown;
163
- };
164
- event_type: "TestNavigation";
165
- [k: string]: unknown;
166
- }
167
- | {
168
- data: {
169
- data: unknown;
170
- [k: string]: unknown;
171
- };
172
- event_type: "UiBridgeRequest";
173
- [k: string]: unknown;
174
- }
175
- | {
176
- data: {
177
- /**
178
- * Current iteration number.
179
- */
180
- iteration: number;
181
- /**
182
- * Current phase (setup, verification, agentic, completion).
183
- */
184
- phase: string;
185
- /**
186
- * Optional additional state data.
187
- */
188
- state_data?: {
189
- [k: string]: unknown;
190
- };
191
- /**
192
- * Task run ID.
193
- */
194
- task_run_id: string;
195
- /**
196
- * Current workflow stage name.
197
- */
198
- workflow_stage: string;
199
- [k: string]: unknown;
200
- };
201
- event_type: "OrchestratorStateChange";
202
- [k: string]: unknown;
203
- }
204
- | {
205
- data: {
206
- /**
207
- * Optional details about the step.
208
- */
209
- details?: {
210
- [k: string]: unknown;
211
- };
212
- /**
213
- * Status: "started", "running", "completed", "failed", "skipped".
214
- */
215
- status: string;
216
- /**
217
- * Step index (0-based).
218
- */
219
- step_index: number;
220
- /**
221
- * Step name/description.
222
- */
223
- step_name: string;
224
- /**
225
- * Task run ID.
226
- */
227
- task_run_id: string;
228
- /**
229
- * Timestamp in milliseconds.
230
- */
231
- timestamp: number;
232
- [k: string]: unknown;
233
- };
234
- event_type: "StepProgress";
235
- [k: string]: unknown;
236
- }
237
- | {
238
- data: {
239
- /**
240
- * Optional additional details.
241
- */
242
- details?: {
243
- [k: string]: unknown;
244
- };
245
- /**
246
- * Current iteration (if applicable).
247
- */
248
- iteration?: number | null;
249
- /**
250
- * Status: "running", "completed", "failed", "stopped", "paused".
251
- */
252
- status: string;
253
- /**
254
- * Task run ID.
255
- */
256
- task_run_id: string;
257
- /**
258
- * Timestamp in milliseconds.
259
- */
260
- timestamp: number;
261
- [k: string]: unknown;
262
- };
263
- event_type: "TaskRunUpdate";
264
- [k: string]: unknown;
265
- }
266
- | {
267
- data: {
268
- /**
269
- * Approval request ID.
270
- */
271
- approval_id: string;
272
- /**
273
- * Current iteration.
274
- */
275
- iteration: number;
276
- /**
277
- * Prompt shown to the reviewer.
278
- */
279
- prompt: string;
280
- /**
281
- * Task run ID.
282
- */
283
- task_run_id: string;
284
- [k: string]: unknown;
285
- };
286
- event_type: "ApprovalRequired";
287
- [k: string]: unknown;
288
- }
289
- | {
290
- data: {
291
- /**
292
- * Action taken.
293
- */
294
- action: string;
295
- /**
296
- * Approval request ID.
297
- */
298
- approval_id: string;
299
- /**
300
- * Whether approved.
301
- */
302
- approved: boolean;
303
- /**
304
- * Task run ID.
305
- */
306
- task_run_id: string;
307
- [k: string]: unknown;
308
- };
309
- event_type: "ApprovalResolved";
310
- [k: string]: unknown;
311
- }
312
- | {
313
- data: {
314
- /**
315
- * Confidence score (0.0-1.0).
316
- */
317
- confidence: number;
318
- /**
319
- * Iteration when the question was raised.
320
- */
321
- iteration: number;
322
- /**
323
- * The question text.
324
- */
325
- question: string;
326
- /**
327
- * Deferred question ID.
328
- */
329
- question_id: string;
330
- /**
331
- * Risk level.
332
- */
333
- risk_level: string;
334
- /**
335
- * Task run ID.
336
- */
337
- task_run_id: string;
338
- [k: string]: unknown;
339
- };
340
- event_type: "DeferredQuestionCreated";
341
- [k: string]: unknown;
342
- }
343
- | {
344
- data: {
345
- /**
346
- * Deferred question ID.
347
- */
348
- question_id: string;
349
- /**
350
- * Whether rework was triggered.
351
- */
352
- rework_triggered: boolean;
353
- /**
354
- * Review status: "approved" or "rejected".
355
- */
356
- status: string;
357
- /**
358
- * Task run ID.
359
- */
360
- task_run_id: string;
361
- [k: string]: unknown;
362
- };
363
- event_type: "DeferredQuestionReviewed";
364
- [k: string]: unknown;
365
- }
366
- | {
367
- data: {
368
- action: string;
369
- panel?: unknown;
370
- panel_id: string;
371
- task_run_id?: string | null;
372
- [k: string]: unknown;
373
- };
374
- event_type: "CanvasUpdate";
375
- [k: string]: unknown;
376
- }
377
- | {
378
- data: {
379
- /**
380
- * Total accumulated output length so far.
381
- */
382
- accumulated_length: number;
383
- /**
384
- * The text chunk received from the AI.
385
- */
386
- chunk: string;
387
- /**
388
- * Task run ID this output belongs to.
389
- */
390
- task_run_id: string;
391
- [k: string]: unknown;
392
- };
393
- event_type: "AiOutputChunk";
394
- [k: string]: unknown;
395
- }
396
- | {
397
- data: {
398
- /**
399
- * Number of verification steps that failed.
400
- */
401
- failed_step_count: number;
402
- /**
403
- * True if failed_step_count has not decreased in 3 consecutive iterations.
404
- */
405
- is_stalled: boolean;
406
- /**
407
- * Current iteration number (1-indexed).
408
- */
409
- iteration: number;
410
- /**
411
- * Failures not present in the previous iteration.
412
- */
413
- new_failures: number;
414
- /**
415
- * Number of verification steps that passed.
416
- */
417
- passed_step_count: number;
418
- /**
419
- * Failures that were also present in the previous iteration.
420
- */
421
- repeated_failures: number;
422
- /**
423
- * Number of verification steps that were skipped.
424
- */
425
- skipped_step_count: number;
426
- /**
427
- * Task run ID.
428
- */
429
- task_run_id: string;
430
- [k: string]: unknown;
431
- };
432
- event_type: "IterationMetrics";
433
- [k: string]: unknown;
434
- }
435
- | {
436
- data: {
437
- /**
438
- * Number of failures with blame attributions.
439
- */
440
- attributed_failures: number;
441
- /**
442
- * Full blame report as JSON.
443
- */
444
- blame_json: string;
445
- /**
446
- * Current iteration number.
447
- */
448
- iteration: number;
449
- /**
450
- * Number of files exhibiting oscillation.
451
- */
452
- oscillating_files: number;
453
- /**
454
- * Number of files exhibiting revert patterns.
455
- */
456
- revert_patterns: number;
457
- /**
458
- * Task run ID.
459
- */
460
- task_run_id: string;
461
- [k: string]: unknown;
462
- };
463
- event_type: "BlameAttribution";
464
- [k: string]: unknown;
465
- }
466
- | {
467
- data: {
468
- /**
469
- * Whether any blocking violations exist.
470
- */
471
- has_blocking: boolean;
472
- /**
473
- * Current iteration number (1-indexed).
474
- */
475
- iteration: number;
476
- /**
477
- * Serialized constraint results.
478
- */
479
- results: {
480
- [k: string]: unknown;
481
- };
482
- /**
483
- * Human-readable summary of results.
484
- */
485
- summary: string;
486
- /**
487
- * Task run ID.
488
- */
489
- task_run_id: string;
490
- [k: string]: unknown;
491
- };
492
- event_type: "ConstraintResults";
493
- [k: string]: unknown;
494
- }
495
- | {
496
- data: {
497
- /**
498
- * Position in the queue (0-indexed).
499
- */
500
- queue_position: number;
501
- /**
502
- * Task run ID for the queued workflow.
503
- */
504
- task_run_id: string;
505
- /**
506
- * Human-readable workflow name.
507
- */
508
- workflow_name: string;
509
- [k: string]: unknown;
510
- };
511
- event_type: "WorkflowQueued";
512
- [k: string]: unknown;
513
- }
514
- | {
515
- data: {
516
- /**
517
- * Task run ID for the dequeued workflow.
518
- */
519
- task_run_id: string;
520
- /**
521
- * Time spent waiting in the queue, in milliseconds.
522
- */
523
- wait_time_ms: number;
524
- /**
525
- * Human-readable workflow name.
526
- */
527
- workflow_name: string;
528
- [k: string]: unknown;
529
- };
530
- event_type: "WorkflowDequeued";
531
- [k: string]: unknown;
532
- }
533
- | {
534
- data: {
535
- cache_creation_tokens: number;
536
- cache_hit_rate: number;
537
- cache_read_tokens: number;
538
- cost_usd: number;
539
- cumulative_cost_usd: number;
540
- input_tokens: number;
541
- iteration?: number | null;
542
- output_tokens: number;
543
- phase: string;
544
- task_run_id: string;
545
- timestamp: number;
546
- [k: string]: unknown;
547
- };
548
- event_type: "CostUpdate";
549
- [k: string]: unknown;
550
- }
551
- | {
552
- data: {
553
- budget_limit_usd: number;
554
- message: string;
555
- remaining_fraction: number;
556
- task_run_id: string;
557
- timestamp: number;
558
- total_cost_usd: number;
559
- [k: string]: unknown;
560
- };
561
- event_type: "BudgetWarning";
562
- [k: string]: unknown;
563
- }
564
- | {
565
- data: {
566
- cost_usd: number;
567
- mean_cost_usd: number;
568
- message: string;
569
- std_dev: number;
570
- task_run_id: string;
571
- timestamp: number;
572
- z_score: number;
573
- [k: string]: unknown;
574
- };
575
- event_type: "CostAnomaly";
576
- [k: string]: unknown;
577
- }
578
- | {
579
- data: {
580
- context?: string | null;
581
- message: string;
582
- [k: string]: unknown;
583
- };
584
- event_type: "Error";
585
- [k: string]: unknown;
586
- };
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated.
4
+ * DO NOT MODIFY IT BY HAND. Regenerate with `just generate-types` or
5
+ * `qontinui-runner/src-tauri/scripts/generate_types.sh`.
6
+ */
7
+
8
+ import type { CanvasPanel } from './CanvasPanel';
9
+ import type { FlowEvent } from './FlowEvent';
10
+
11
+ /**
12
+ * Unified application events for frontend communication.
13
+ *
14
+ * Adjacently tagged: each variant serializes as
15
+ * `{"event_type": "<VariantName>", "data": {..}}`.
16
+ * The React frontend dispatches on `event_type` and reads `data`.
17
+ */
18
+ export type AppEvent =
19
+ | {
20
+ data: {
21
+ data: unknown;
22
+ event: string;
23
+ sequence: number;
24
+ timestamp: number;
25
+ [k: string]: unknown;
26
+ };
27
+ event_type: "ExecutorEvent";
28
+ [k: string]: unknown;
29
+ }
30
+ | {
31
+ data: {
32
+ event_type: string;
33
+ node: unknown;
34
+ path: string[];
35
+ sequence: number;
36
+ timestamp: number;
37
+ [k: string]: unknown;
38
+ };
39
+ event_type: "ExecutorTreeEvent";
40
+ [k: string]: unknown;
41
+ }
42
+ | {
43
+ data: {
44
+ details?: string | null;
45
+ message: string;
46
+ [k: string]: unknown;
47
+ };
48
+ event_type: "ExecutorError";
49
+ [k: string]: unknown;
50
+ }
51
+ | {
52
+ data: {
53
+ data?: unknown;
54
+ error?: string | null;
55
+ id: string;
56
+ success: boolean;
57
+ [k: string]: unknown;
58
+ };
59
+ event_type: "ExecutorResponse";
60
+ [k: string]: unknown;
61
+ }
62
+ | {
63
+ data: {
64
+ data: unknown;
65
+ [k: string]: unknown;
66
+ };
67
+ event_type: "ImageRecognition";
68
+ [k: string]: unknown;
69
+ }
70
+ | {
71
+ data: {
72
+ data: unknown;
73
+ event: string;
74
+ sequence: number;
75
+ timestamp: number;
76
+ [k: string]: unknown;
77
+ };
78
+ event_type: "ExtractionEvent";
79
+ [k: string]: unknown;
80
+ }
81
+ | {
82
+ data: {
83
+ details?: string | null;
84
+ message: string;
85
+ [k: string]: unknown;
86
+ };
87
+ event_type: "ExtractionError";
88
+ [k: string]: unknown;
89
+ }
90
+ | {
91
+ data: {
92
+ data?: unknown;
93
+ error?: string | null;
94
+ id: string;
95
+ success: boolean;
96
+ [k: string]: unknown;
97
+ };
98
+ event_type: "ExtractionResponse";
99
+ [k: string]: unknown;
100
+ }
101
+ | {
102
+ data: {
103
+ elements_processed?: number | null;
104
+ error?: string | null;
105
+ message: string;
106
+ percent?: number | null;
107
+ project_id: string;
108
+ status: string;
109
+ total_elements?: number | null;
110
+ [k: string]: unknown;
111
+ };
112
+ event_type: "RagProgress";
113
+ [k: string]: unknown;
114
+ }
115
+ | {
116
+ data: {
117
+ failed: number;
118
+ project_id: string;
119
+ success: boolean;
120
+ successful: number;
121
+ total_processed: number;
122
+ web_sync_error?: string | null;
123
+ web_sync_success: boolean;
124
+ [k: string]: unknown;
125
+ };
126
+ event_type: "RagCompletion";
127
+ [k: string]: unknown;
128
+ }
129
+ | {
130
+ data: FlowEvent;
131
+ event_type: "FlowEvent";
132
+ [k: string]: unknown;
133
+ }
134
+ | {
135
+ data: {
136
+ content: string;
137
+ content_type?: string | null;
138
+ session_id: string;
139
+ [k: string]: unknown;
140
+ };
141
+ event_type: "AiOutput";
142
+ [k: string]: unknown;
143
+ }
144
+ | {
145
+ data: {
146
+ finding: unknown;
147
+ [k: string]: unknown;
148
+ };
149
+ event_type: "FindingDetected";
150
+ [k: string]: unknown;
151
+ }
152
+ | {
153
+ data: {
154
+ finding: unknown;
155
+ [k: string]: unknown;
156
+ };
157
+ event_type: "FindingResolved";
158
+ [k: string]: unknown;
159
+ }
160
+ | {
161
+ data: {
162
+ data: unknown;
163
+ [k: string]: unknown;
164
+ };
165
+ event_type: "TestNavigation";
166
+ [k: string]: unknown;
167
+ }
168
+ | {
169
+ data: {
170
+ data: unknown;
171
+ [k: string]: unknown;
172
+ };
173
+ event_type: "UiBridgeRequest";
174
+ [k: string]: unknown;
175
+ }
176
+ | {
177
+ data: {
178
+ /**
179
+ * Current iteration number.
180
+ */
181
+ iteration: number;
182
+ /**
183
+ * Current phase (setup, verification, agentic, completion).
184
+ */
185
+ phase: string;
186
+ /**
187
+ * Optional additional state data.
188
+ */
189
+ state_data?: {
190
+ [k: string]: unknown;
191
+ };
192
+ /**
193
+ * Task run ID.
194
+ */
195
+ task_run_id: string;
196
+ /**
197
+ * Current workflow stage name.
198
+ */
199
+ workflow_stage: string;
200
+ [k: string]: unknown;
201
+ };
202
+ event_type: "OrchestratorStateChange";
203
+ [k: string]: unknown;
204
+ }
205
+ | {
206
+ data: {
207
+ /**
208
+ * Optional details about the step.
209
+ */
210
+ details?: {
211
+ [k: string]: unknown;
212
+ };
213
+ /**
214
+ * Status: "started", "running", "completed", "failed", "skipped".
215
+ */
216
+ status: string;
217
+ /**
218
+ * Step index (0-based).
219
+ */
220
+ step_index: number;
221
+ /**
222
+ * Step name/description.
223
+ */
224
+ step_name: string;
225
+ /**
226
+ * Task run ID.
227
+ */
228
+ task_run_id: string;
229
+ /**
230
+ * Timestamp in milliseconds.
231
+ */
232
+ timestamp: number;
233
+ [k: string]: unknown;
234
+ };
235
+ event_type: "StepProgress";
236
+ [k: string]: unknown;
237
+ }
238
+ | {
239
+ data: {
240
+ /**
241
+ * Optional additional details.
242
+ */
243
+ details?: {
244
+ [k: string]: unknown;
245
+ };
246
+ /**
247
+ * Current iteration (if applicable).
248
+ */
249
+ iteration?: number | null;
250
+ /**
251
+ * Status: "running", "completed", "failed", "stopped", "paused".
252
+ */
253
+ status: string;
254
+ /**
255
+ * Task run ID.
256
+ */
257
+ task_run_id: string;
258
+ /**
259
+ * Timestamp in milliseconds.
260
+ */
261
+ timestamp: number;
262
+ [k: string]: unknown;
263
+ };
264
+ event_type: "TaskRunUpdate";
265
+ [k: string]: unknown;
266
+ }
267
+ | {
268
+ data: {
269
+ /**
270
+ * Approval request ID.
271
+ */
272
+ approval_id: string;
273
+ /**
274
+ * Current iteration.
275
+ */
276
+ iteration: number;
277
+ /**
278
+ * Prompt shown to the reviewer.
279
+ */
280
+ prompt: string;
281
+ /**
282
+ * Task run ID.
283
+ */
284
+ task_run_id: string;
285
+ [k: string]: unknown;
286
+ };
287
+ event_type: "ApprovalRequired";
288
+ [k: string]: unknown;
289
+ }
290
+ | {
291
+ data: {
292
+ /**
293
+ * Action taken.
294
+ */
295
+ action: string;
296
+ /**
297
+ * Approval request ID.
298
+ */
299
+ approval_id: string;
300
+ /**
301
+ * Whether approved.
302
+ */
303
+ approved: boolean;
304
+ /**
305
+ * Task run ID.
306
+ */
307
+ task_run_id: string;
308
+ [k: string]: unknown;
309
+ };
310
+ event_type: "ApprovalResolved";
311
+ [k: string]: unknown;
312
+ }
313
+ | {
314
+ data: {
315
+ /**
316
+ * Confidence score (0.0-1.0).
317
+ */
318
+ confidence: number;
319
+ /**
320
+ * Iteration when the question was raised.
321
+ */
322
+ iteration: number;
323
+ /**
324
+ * The question text.
325
+ */
326
+ question: string;
327
+ /**
328
+ * Deferred question ID.
329
+ */
330
+ question_id: string;
331
+ /**
332
+ * Risk level.
333
+ */
334
+ risk_level: string;
335
+ /**
336
+ * Task run ID.
337
+ */
338
+ task_run_id: string;
339
+ [k: string]: unknown;
340
+ };
341
+ event_type: "DeferredQuestionCreated";
342
+ [k: string]: unknown;
343
+ }
344
+ | {
345
+ data: {
346
+ /**
347
+ * Deferred question ID.
348
+ */
349
+ question_id: string;
350
+ /**
351
+ * Whether rework was triggered.
352
+ */
353
+ rework_triggered: boolean;
354
+ /**
355
+ * Review status: "approved" or "rejected".
356
+ */
357
+ status: string;
358
+ /**
359
+ * Task run ID.
360
+ */
361
+ task_run_id: string;
362
+ [k: string]: unknown;
363
+ };
364
+ event_type: "DeferredQuestionReviewed";
365
+ [k: string]: unknown;
366
+ }
367
+ | {
368
+ data: {
369
+ action: string;
370
+ panel?: CanvasPanel | null;
371
+ panel_id: string;
372
+ task_run_id?: string | null;
373
+ [k: string]: unknown;
374
+ };
375
+ event_type: "CanvasUpdate";
376
+ [k: string]: unknown;
377
+ }
378
+ | {
379
+ data: {
380
+ /**
381
+ * Total accumulated output length so far.
382
+ */
383
+ accumulated_length: number;
384
+ /**
385
+ * The text chunk received from the AI.
386
+ */
387
+ chunk: string;
388
+ /**
389
+ * Task run ID this output belongs to.
390
+ */
391
+ task_run_id: string;
392
+ [k: string]: unknown;
393
+ };
394
+ event_type: "AiOutputChunk";
395
+ [k: string]: unknown;
396
+ }
397
+ | {
398
+ data: {
399
+ /**
400
+ * Number of verification steps that failed.
401
+ */
402
+ failed_step_count: number;
403
+ /**
404
+ * True if failed_step_count has not decreased in 3 consecutive iterations.
405
+ */
406
+ is_stalled: boolean;
407
+ /**
408
+ * Current iteration number (1-indexed).
409
+ */
410
+ iteration: number;
411
+ /**
412
+ * Failures not present in the previous iteration.
413
+ */
414
+ new_failures: number;
415
+ /**
416
+ * Number of verification steps that passed.
417
+ */
418
+ passed_step_count: number;
419
+ /**
420
+ * Failures that were also present in the previous iteration.
421
+ */
422
+ repeated_failures: number;
423
+ /**
424
+ * Number of verification steps that were skipped.
425
+ */
426
+ skipped_step_count: number;
427
+ /**
428
+ * Task run ID.
429
+ */
430
+ task_run_id: string;
431
+ [k: string]: unknown;
432
+ };
433
+ event_type: "IterationMetrics";
434
+ [k: string]: unknown;
435
+ }
436
+ | {
437
+ data: {
438
+ /**
439
+ * Number of failures with blame attributions.
440
+ */
441
+ attributed_failures: number;
442
+ /**
443
+ * Full blame report as JSON.
444
+ */
445
+ blame_json: string;
446
+ /**
447
+ * Current iteration number.
448
+ */
449
+ iteration: number;
450
+ /**
451
+ * Number of files exhibiting oscillation.
452
+ */
453
+ oscillating_files: number;
454
+ /**
455
+ * Number of files exhibiting revert patterns.
456
+ */
457
+ revert_patterns: number;
458
+ /**
459
+ * Task run ID.
460
+ */
461
+ task_run_id: string;
462
+ [k: string]: unknown;
463
+ };
464
+ event_type: "BlameAttribution";
465
+ [k: string]: unknown;
466
+ }
467
+ | {
468
+ data: {
469
+ /**
470
+ * Whether any blocking violations exist.
471
+ */
472
+ has_blocking: boolean;
473
+ /**
474
+ * Current iteration number (1-indexed).
475
+ */
476
+ iteration: number;
477
+ /**
478
+ * Serialized constraint results.
479
+ */
480
+ results: {
481
+ [k: string]: unknown;
482
+ };
483
+ /**
484
+ * Human-readable summary of results.
485
+ */
486
+ summary: string;
487
+ /**
488
+ * Task run ID.
489
+ */
490
+ task_run_id: string;
491
+ [k: string]: unknown;
492
+ };
493
+ event_type: "ConstraintResults";
494
+ [k: string]: unknown;
495
+ }
496
+ | {
497
+ data: {
498
+ /**
499
+ * Position in the queue (0-indexed).
500
+ */
501
+ queue_position: number;
502
+ /**
503
+ * Task run ID for the queued workflow.
504
+ */
505
+ task_run_id: string;
506
+ /**
507
+ * Human-readable workflow name.
508
+ */
509
+ workflow_name: string;
510
+ [k: string]: unknown;
511
+ };
512
+ event_type: "WorkflowQueued";
513
+ [k: string]: unknown;
514
+ }
515
+ | {
516
+ data: {
517
+ /**
518
+ * Task run ID for the dequeued workflow.
519
+ */
520
+ task_run_id: string;
521
+ /**
522
+ * Time spent waiting in the queue, in milliseconds.
523
+ */
524
+ wait_time_ms: number;
525
+ /**
526
+ * Human-readable workflow name.
527
+ */
528
+ workflow_name: string;
529
+ [k: string]: unknown;
530
+ };
531
+ event_type: "WorkflowDequeued";
532
+ [k: string]: unknown;
533
+ }
534
+ | {
535
+ data: {
536
+ cache_creation_tokens: number;
537
+ cache_hit_rate: number;
538
+ cache_read_tokens: number;
539
+ cost_usd: number;
540
+ cumulative_cost_usd: number;
541
+ input_tokens: number;
542
+ iteration?: number | null;
543
+ output_tokens: number;
544
+ phase: string;
545
+ task_run_id: string;
546
+ timestamp: number;
547
+ [k: string]: unknown;
548
+ };
549
+ event_type: "CostUpdate";
550
+ [k: string]: unknown;
551
+ }
552
+ | {
553
+ data: {
554
+ budget_limit_usd: number;
555
+ message: string;
556
+ remaining_fraction: number;
557
+ task_run_id: string;
558
+ timestamp: number;
559
+ total_cost_usd: number;
560
+ [k: string]: unknown;
561
+ };
562
+ event_type: "BudgetWarning";
563
+ [k: string]: unknown;
564
+ }
565
+ | {
566
+ data: {
567
+ cost_usd: number;
568
+ mean_cost_usd: number;
569
+ message: string;
570
+ std_dev: number;
571
+ task_run_id: string;
572
+ timestamp: number;
573
+ z_score: number;
574
+ [k: string]: unknown;
575
+ };
576
+ event_type: "CostAnomaly";
577
+ [k: string]: unknown;
578
+ }
579
+ | {
580
+ data: {
581
+ context?: string | null;
582
+ message: string;
583
+ [k: string]: unknown;
584
+ };
585
+ event_type: "Error";
586
+ [k: string]: unknown;
587
+ };