@trevonistrevon/pi-loop 0.5.8 → 0.5.9

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 (50) hide show
  1. package/.release-please-manifest.json +3 -0
  2. package/Dockerfile +17 -0
  3. package/coverage/coverage-final.json +25 -24
  4. package/coverage/index.html +42 -42
  5. package/coverage/src/commands/index.html +15 -15
  6. package/coverage/src/commands/loop-command.ts.html +3 -3
  7. package/coverage/src/commands/tasks-command.ts.html +23 -23
  8. package/coverage/src/coordinator.ts.html +3 -3
  9. package/coverage/src/goal-coordinator.ts.html +1 -1
  10. package/coverage/src/goal-reducer.ts.html +1 -1
  11. package/coverage/src/goal-store.ts.html +1 -1
  12. package/coverage/src/goal-verifier.ts.html +1 -1
  13. package/coverage/src/index.html +18 -18
  14. package/coverage/src/index.ts.html +126 -78
  15. package/coverage/src/loop-parse.ts.html +38 -38
  16. package/coverage/src/loop-reducer.ts.html +17 -17
  17. package/coverage/src/monitor-completion-coordinator.ts.html +1 -1
  18. package/coverage/src/monitor-manager.ts.html +16 -16
  19. package/coverage/src/monitor-reducer.ts.html +10 -10
  20. package/coverage/src/notification-reducer.ts.html +11 -11
  21. package/coverage/src/reducer-backed-store.ts.html +49 -49
  22. package/coverage/src/runtime/index.html +35 -20
  23. package/coverage/src/runtime/monitor-ondone-runtime.ts.html +5 -5
  24. package/coverage/src/runtime/notification-runtime.ts.html +25 -25
  25. package/coverage/src/runtime/scope.ts.html +12 -12
  26. package/coverage/src/runtime/session-runtime.ts.html +23 -23
  27. package/coverage/src/runtime/task-backlog-runtime.ts.html +7 -7
  28. package/coverage/src/runtime/task-events.ts.html +208 -0
  29. package/coverage/src/runtime/task-rpc.ts.html +21 -15
  30. package/coverage/src/scheduler.ts.html +25 -25
  31. package/coverage/src/store.ts.html +12 -12
  32. package/coverage/src/task-backlog-coordinator.ts.html +1 -1
  33. package/coverage/src/task-reducer.ts.html +1 -1
  34. package/coverage/src/task-store.ts.html +5 -5
  35. package/coverage/src/tools/index.html +11 -11
  36. package/coverage/src/tools/loop-tools.ts.html +5 -5
  37. package/coverage/src/tools/monitor-tools.ts.html +5 -5
  38. package/coverage/src/tools/native-task-tools.ts.html +41 -20
  39. package/coverage/src/trigger-system.ts.html +8 -8
  40. package/coverage/src/ui/index.html +1 -1
  41. package/coverage/src/ui/widget.ts.html +5 -5
  42. package/dist/index.js +34 -19
  43. package/dist/monitor-manager.d.ts +4 -1
  44. package/dist/monitor-manager.js +5 -3
  45. package/docker-compose.yml +12 -0
  46. package/package.json +1 -1
  47. package/release-please-config.json +9 -0
  48. package/src/index.ts +37 -21
  49. package/src/monitor-manager.ts +11 -3
  50. package/vitest.config.ts +4 -0
@@ -321,24 +321,24 @@
321
321
  <span class="cline-any cline-neutral">&nbsp;</span>
322
322
  <span class="cline-any cline-neutral">&nbsp;</span>
323
323
  <span class="cline-any cline-neutral">&nbsp;</span>
324
- <span class="cline-any cline-yes">61x</span>
324
+ <span class="cline-any cline-yes">63x</span>
325
325
  <span class="cline-any cline-neutral">&nbsp;</span>
326
- <span class="cline-any cline-yes">61x</span>
326
+ <span class="cline-any cline-yes">63x</span>
327
327
  <span class="cline-any cline-neutral">&nbsp;</span>
328
328
  <span class="cline-any cline-neutral">&nbsp;</span>
329
329
  <span class="cline-any cline-neutral">&nbsp;</span>
330
330
  <span class="cline-any cline-neutral">&nbsp;</span>
331
331
  <span class="cline-any cline-neutral">&nbsp;</span>
332
- <span class="cline-any cline-yes">61x</span>
333
- <span class="cline-any cline-yes">61x</span>
332
+ <span class="cline-any cline-yes">63x</span>
333
+ <span class="cline-any cline-yes">63x</span>
334
334
  <span class="cline-any cline-neutral">&nbsp;</span>
335
- <span class="cline-any cline-yes">61x</span>
335
+ <span class="cline-any cline-yes">63x</span>
336
336
  <span class="cline-any cline-yes">63x</span>
337
337
  <span class="cline-any cline-yes">63x</span>
338
338
  <span class="cline-any cline-yes">63x</span>
339
339
  <span class="cline-any cline-neutral">&nbsp;</span>
340
340
  <span class="cline-any cline-neutral">&nbsp;</span>
341
- <span class="cline-any cline-yes">61x</span>
341
+ <span class="cline-any cline-yes">63x</span>
342
342
  <span class="cline-any cline-neutral">&nbsp;</span>
343
343
  <span class="cline-any cline-neutral">&nbsp;</span>
344
344
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -352,13 +352,13 @@
352
352
  <span class="cline-any cline-neutral">&nbsp;</span>
353
353
  <span class="cline-any cline-neutral">&nbsp;</span>
354
354
  <span class="cline-any cline-neutral">&nbsp;</span>
355
- <span class="cline-any cline-yes">187x</span>
356
- <span class="cline-any cline-yes">187x</span>
357
- <span class="cline-any cline-yes">187x</span>
355
+ <span class="cline-any cline-yes">190x</span>
356
+ <span class="cline-any cline-yes">190x</span>
357
+ <span class="cline-any cline-yes">190x</span>
358
358
  <span class="cline-any cline-neutral">&nbsp;</span>
359
359
  <span class="cline-any cline-neutral">&nbsp;</span>
360
360
  <span class="cline-any cline-neutral">&nbsp;</span>
361
- <span class="cline-any cline-yes">141x</span>
361
+ <span class="cline-any cline-yes">142x</span>
362
362
  <span class="cline-any cline-neutral">&nbsp;</span>
363
363
  <span class="cline-any cline-neutral">&nbsp;</span>
364
364
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -371,7 +371,7 @@
371
371
  <span class="cline-any cline-neutral">&nbsp;</span>
372
372
  <span class="cline-any cline-neutral">&nbsp;</span>
373
373
  <span class="cline-any cline-neutral">&nbsp;</span>
374
- <span class="cline-any cline-yes">41x</span>
374
+ <span class="cline-any cline-yes">42x</span>
375
375
  <span class="cline-any cline-neutral">&nbsp;</span>
376
376
  <span class="cline-any cline-neutral">&nbsp;</span>
377
377
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -379,21 +379,21 @@
379
379
  <span class="cline-any cline-neutral">&nbsp;</span>
380
380
  <span class="cline-any cline-neutral">&nbsp;</span>
381
381
  <span class="cline-any cline-neutral">&nbsp;</span>
382
- <span class="cline-any cline-yes">41x</span>
383
- <span class="cline-any cline-yes">41x</span>
384
- <span class="cline-any cline-yes">41x</span>
382
+ <span class="cline-any cline-yes">42x</span>
383
+ <span class="cline-any cline-yes">42x</span>
384
+ <span class="cline-any cline-yes">42x</span>
385
385
  <span class="cline-any cline-neutral">&nbsp;</span>
386
386
  <span class="cline-any cline-neutral">&nbsp;</span>
387
387
  <span class="cline-any cline-neutral">&nbsp;</span>
388
- <span class="cline-any cline-yes">41x</span>
388
+ <span class="cline-any cline-yes">42x</span>
389
389
  <span class="cline-any cline-neutral">&nbsp;</span>
390
390
  <span class="cline-any cline-neutral">&nbsp;</span>
391
391
  <span class="cline-any cline-neutral">&nbsp;</span>
392
392
  <span class="cline-any cline-neutral">&nbsp;</span>
393
393
  <span class="cline-any cline-neutral">&nbsp;</span>
394
394
  <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-yes">41x</span>
396
- <span class="cline-any cline-yes">41x</span>
395
+ <span class="cline-any cline-yes">42x</span>
396
+ <span class="cline-any cline-yes">42x</span>
397
397
  <span class="cline-any cline-neutral">&nbsp;</span>
398
398
  <span class="cline-any cline-neutral">&nbsp;</span>
399
399
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -431,7 +431,7 @@
431
431
  <span class="cline-any cline-neutral">&nbsp;</span>
432
432
  <span class="cline-any cline-neutral">&nbsp;</span>
433
433
  <span class="cline-any cline-neutral">&nbsp;</span>
434
- <span class="cline-any cline-yes">65x</span>
434
+ <span class="cline-any cline-yes">66x</span>
435
435
  <span class="cline-any cline-neutral">&nbsp;</span>
436
436
  <span class="cline-any cline-yes">61x</span>
437
437
  <span class="cline-any cline-yes">61x</span>
@@ -457,8 +457,8 @@
457
457
  <span class="cline-any cline-neutral">&nbsp;</span>
458
458
  <span class="cline-any cline-neutral">&nbsp;</span>
459
459
  <span class="cline-any cline-neutral">&nbsp;</span>
460
- <span class="cline-any cline-yes">41x</span>
461
- <span class="cline-any cline-yes">41x</span>
460
+ <span class="cline-any cline-yes">42x</span>
461
+ <span class="cline-any cline-yes">42x</span>
462
462
  <span class="cline-any cline-neutral">&nbsp;</span>
463
463
  <span class="cline-any cline-neutral">&nbsp;</span>
464
464
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -466,12 +466,12 @@
466
466
  <span class="cline-any cline-neutral">&nbsp;</span>
467
467
  <span class="cline-any cline-neutral">&nbsp;</span>
468
468
  <span class="cline-any cline-neutral">&nbsp;</span>
469
- <span class="cline-any cline-yes">41x</span>
469
+ <span class="cline-any cline-yes">42x</span>
470
470
  <span class="cline-any cline-neutral">&nbsp;</span>
471
471
  <span class="cline-any cline-neutral">&nbsp;</span>
472
472
  <span class="cline-any cline-neutral">&nbsp;</span>
473
- <span class="cline-any cline-yes">5x</span>
474
- <span class="cline-any cline-yes">5x</span>
473
+ <span class="cline-any cline-yes">6x</span>
474
+ <span class="cline-any cline-yes">6x</span>
475
475
  <span class="cline-any cline-neutral">&nbsp;</span>
476
476
  <span class="cline-any cline-neutral">&nbsp;</span>
477
477
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -480,7 +480,7 @@
480
480
  <span class="cline-any cline-neutral">&nbsp;</span>
481
481
  <span class="cline-any cline-neutral">&nbsp;</span>
482
482
  <span class="cline-any cline-neutral">&nbsp;</span>
483
- <span class="cline-any cline-yes">61x</span>
483
+ <span class="cline-any cline-yes">63x</span>
484
484
  <span class="cline-any cline-neutral">&nbsp;</span>
485
485
  <span class="cline-any cline-neutral">&nbsp;</span>
486
486
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -706,7 +706,7 @@ export function createNotificationRuntime(options: NotificationRuntimeOptions):
706
706
  <div class='footer quiet pad2 space-top1 center small'>
707
707
  Code coverage generated by
708
708
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
709
- at 2026-06-19T00:56:38.236Z
709
+ at 2026-06-23T21:49:18.784Z
710
710
  </div>
711
711
  <script src="../../prettify.js"></script>
712
712
  <script>
@@ -111,30 +111,30 @@
111
111
  <span class="cline-any cline-neutral">&nbsp;</span>
112
112
  <span class="cline-any cline-neutral">&nbsp;</span>
113
113
  <span class="cline-any cline-neutral">&nbsp;</span>
114
- <span class="cline-any cline-yes">116x</span>
115
- <span class="cline-any cline-yes">116x</span>
114
+ <span class="cline-any cline-yes">118x</span>
115
+ <span class="cline-any cline-yes">118x</span>
116
116
  <span class="cline-any cline-neutral">&nbsp;</span>
117
- <span class="cline-any cline-yes">116x</span>
117
+ <span class="cline-any cline-yes">118x</span>
118
+ <span class="cline-any cline-yes">117x</span>
118
119
  <span class="cline-any cline-yes">115x</span>
120
+ <span class="cline-any cline-yes">114x</span>
119
121
  <span class="cline-any cline-yes">113x</span>
120
- <span class="cline-any cline-yes">112x</span>
121
122
  <span class="cline-any cline-yes">111x</span>
122
- <span class="cline-any cline-yes">109x</span>
123
123
  <span class="cline-any cline-yes">47x</span>
124
124
  <span class="cline-any cline-neutral">&nbsp;</span>
125
- <span class="cline-any cline-yes">62x</span>
125
+ <span class="cline-any cline-yes">64x</span>
126
126
  <span class="cline-any cline-yes">1x</span>
127
127
  <span class="cline-any cline-neutral">&nbsp;</span>
128
128
  <span class="cline-any cline-neutral">&nbsp;</span>
129
129
  <span class="cline-any cline-neutral">&nbsp;</span>
130
- <span class="cline-any cline-yes">50x</span>
131
- <span class="cline-any cline-yes">50x</span>
130
+ <span class="cline-any cline-yes">51x</span>
131
+ <span class="cline-any cline-yes">51x</span>
132
132
  <span class="cline-any cline-neutral">&nbsp;</span>
133
- <span class="cline-any cline-yes">50x</span>
134
- <span class="cline-any cline-yes">48x</span>
133
+ <span class="cline-any cline-yes">51x</span>
134
+ <span class="cline-any cline-yes">49x</span>
135
135
  <span class="cline-any cline-yes">16x</span>
136
136
  <span class="cline-any cline-neutral">&nbsp;</span>
137
- <span class="cline-any cline-yes">32x</span>
137
+ <span class="cline-any cline-yes">33x</span>
138
138
  <span class="cline-any cline-yes">2x</span>
139
139
  <span class="cline-any cline-neutral">&nbsp;</span>
140
140
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { join, resolve } from "node:path";
@@ -181,7 +181,7 @@ export function resolveTaskStorePath(options: ScopeOptions, sessionId?: string):
181
181
  <div class='footer quiet pad2 space-top1 center small'>
182
182
  Code coverage generated by
183
183
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
184
- at 2026-06-19T00:56:38.236Z
184
+ at 2026-06-23T21:49:18.784Z
185
185
  </div>
186
186
  <script src="../../prettify.js"></script>
187
187
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">90.09% </span>
26
+ <span class="strong">91.08% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>91/101</span>
28
+ <span class='fraction'>92/101</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">79.06% </span>
33
+ <span class="strong">81.39% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>34/43</span>
35
+ <span class='fraction'>35/43</span>
36
36
  </div>
37
37
 
38
38
 
@@ -311,10 +311,10 @@
311
311
  <span class="cline-any cline-neutral">&nbsp;</span>
312
312
  <span class="cline-any cline-neutral">&nbsp;</span>
313
313
  <span class="cline-any cline-neutral">&nbsp;</span>
314
- <span class="cline-any cline-yes">65x</span>
314
+ <span class="cline-any cline-yes">67x</span>
315
315
  <span class="cline-any cline-neutral">&nbsp;</span>
316
- <span class="cline-any cline-yes">65x</span>
317
- <span class="cline-any cline-yes">65x</span>
316
+ <span class="cline-any cline-yes">67x</span>
317
+ <span class="cline-any cline-yes">67x</span>
318
318
  <span class="cline-any cline-neutral">&nbsp;</span>
319
319
  <span class="cline-any cline-neutral">&nbsp;</span>
320
320
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -332,7 +332,7 @@
332
332
  <span class="cline-any cline-neutral">&nbsp;</span>
333
333
  <span class="cline-any cline-neutral">&nbsp;</span>
334
334
  <span class="cline-any cline-neutral">&nbsp;</span>
335
- <span class="cline-any cline-yes">6x</span>
335
+ <span class="cline-any cline-yes">7x</span>
336
336
  <span class="cline-any cline-yes">6x</span>
337
337
  <span class="cline-any cline-yes">6x</span>
338
338
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -362,18 +362,18 @@
362
362
  <span class="cline-any cline-neutral">&nbsp;</span>
363
363
  <span class="cline-any cline-yes">166x</span>
364
364
  <span class="cline-any cline-yes">166x</span>
365
- <span class="cline-any cline-yes">72x</span>
366
- <span class="cline-any cline-yes">72x</span>
365
+ <span class="cline-any cline-yes">66x</span>
366
+ <span class="cline-any cline-yes">66x</span>
367
367
  <span class="cline-any cline-yes">13x</span>
368
368
  <span class="cline-any cline-yes">13x</span>
369
369
  <span class="cline-any cline-yes">13x</span>
370
- <span class="cline-any cline-yes">5x</span>
371
- <span class="cline-any cline-yes">5x</span>
370
+ <span class="cline-any cline-yes">11x</span>
371
+ <span class="cline-any cline-yes">11x</span>
372
372
  <span class="cline-any cline-neutral">&nbsp;</span>
373
373
  <span class="cline-any cline-yes">166x</span>
374
374
  <span class="cline-any cline-neutral">&nbsp;</span>
375
375
  <span class="cline-any cline-neutral">&nbsp;</span>
376
- <span class="cline-any cline-yes">65x</span>
376
+ <span class="cline-any cline-yes">67x</span>
377
377
  <span class="cline-any cline-yes">49x</span>
378
378
  <span class="cline-any cline-yes">49x</span>
379
379
  <span class="cline-any cline-yes">49x</span>
@@ -383,7 +383,7 @@
383
383
  <span class="cline-any cline-yes">49x</span>
384
384
  <span class="cline-any cline-neutral">&nbsp;</span>
385
385
  <span class="cline-any cline-neutral">&nbsp;</span>
386
- <span class="cline-any cline-yes">65x</span>
386
+ <span class="cline-any cline-yes">67x</span>
387
387
  <span class="cline-any cline-yes">7x</span>
388
388
  <span class="cline-any cline-yes">7x</span>
389
389
  <span class="cline-any cline-yes">7x</span>
@@ -392,7 +392,7 @@
392
392
  <span class="cline-any cline-yes">7x</span>
393
393
  <span class="cline-any cline-neutral">&nbsp;</span>
394
394
  <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-yes">65x</span>
395
+ <span class="cline-any cline-yes">67x</span>
396
396
  <span class="cline-any cline-yes">20x</span>
397
397
  <span class="cline-any cline-neutral">&nbsp;</span>
398
398
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -401,7 +401,7 @@
401
401
  <span class="cline-any cline-yes">20x</span>
402
402
  <span class="cline-any cline-neutral">&nbsp;</span>
403
403
  <span class="cline-any cline-neutral">&nbsp;</span>
404
- <span class="cline-any cline-yes">65x</span>
404
+ <span class="cline-any cline-yes">67x</span>
405
405
  <span class="cline-any cline-yes">24x</span>
406
406
  <span class="cline-any cline-yes">24x</span>
407
407
  <span class="cline-any cline-yes">24x</span>
@@ -413,12 +413,12 @@
413
413
  <span class="cline-any cline-yes">24x</span>
414
414
  <span class="cline-any cline-neutral">&nbsp;</span>
415
415
  <span class="cline-any cline-neutral">&nbsp;</span>
416
- <span class="cline-any cline-yes">65x</span>
417
- <span class="cline-any cline-yes">3x</span>
418
- <span class="cline-any cline-yes">3x</span>
416
+ <span class="cline-any cline-yes">67x</span>
417
+ <span class="cline-any cline-yes">4x</span>
418
+ <span class="cline-any cline-yes">4x</span>
419
419
  <span class="cline-any cline-neutral">&nbsp;</span>
420
420
  <span class="cline-any cline-neutral">&nbsp;</span>
421
- <span class="cline-any cline-yes">65x</span>
421
+ <span class="cline-any cline-yes">67x</span>
422
422
  <span class="cline-any cline-yes">3x</span>
423
423
  <span class="cline-any cline-yes">3x</span>
424
424
  <span class="cline-any cline-yes">3x</span>
@@ -439,7 +439,7 @@
439
439
  <span class="cline-any cline-yes">3x</span>
440
440
  <span class="cline-any cline-neutral">&nbsp;</span>
441
441
  <span class="cline-any cline-neutral">&nbsp;</span>
442
- <span class="cline-any cline-yes">65x</span>
442
+ <span class="cline-any cline-yes">67x</span>
443
443
  <span class="cline-any cline-yes">3x</span>
444
444
  <span class="cline-any cline-yes">3x</span>
445
445
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -530,7 +530,7 @@ export function registerSessionRuntimeHooks(options: SessionRuntimeOptions): voi
530
530
  }
531
531
  &nbsp;
532
532
  function stopHeartbeat(): void {
533
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!heartbeatTimer) <span class="cstat-no" title="statement not covered" >return;</span>
533
+ if (!heartbeatTimer) return;
534
534
  clearInterval(heartbeatTimer);
535
535
  heartbeatTimer = undefined;
536
536
  }
@@ -664,7 +664,7 @@ export function registerSessionRuntimeHooks(options: SessionRuntimeOptions): voi
664
664
  <div class='footer quiet pad2 space-top1 center small'>
665
665
  Code coverage generated by
666
666
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
667
- at 2026-06-19T00:56:38.236Z
667
+ at 2026-06-23T21:49:18.784Z
668
668
  </div>
669
669
  <script src="../../prettify.js"></script>
670
670
  <script>
@@ -279,7 +279,7 @@
279
279
  <span class="cline-any cline-neutral">&nbsp;</span>
280
280
  <span class="cline-any cline-neutral">&nbsp;</span>
281
281
  <span class="cline-any cline-neutral">&nbsp;</span>
282
- <span class="cline-any cline-yes">73x</span>
282
+ <span class="cline-any cline-yes">75x</span>
283
283
  <span class="cline-any cline-neutral">&nbsp;</span>
284
284
  <span class="cline-any cline-neutral">&nbsp;</span>
285
285
  <span class="cline-any cline-yes">15x</span>
@@ -337,15 +337,15 @@
337
337
  <span class="cline-any cline-neutral">&nbsp;</span>
338
338
  <span class="cline-any cline-neutral">&nbsp;</span>
339
339
  <span class="cline-any cline-neutral">&nbsp;</span>
340
- <span class="cline-any cline-yes">73x</span>
341
- <span class="cline-any cline-yes">73x</span>
340
+ <span class="cline-any cline-yes">75x</span>
341
+ <span class="cline-any cline-yes">75x</span>
342
342
  <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-yes">73x</span>
343
+ <span class="cline-any cline-yes">75x</span>
344
344
  <span class="cline-any cline-yes">72x</span>
345
345
  <span class="cline-any cline-yes">72x</span>
346
346
  <span class="cline-any cline-neutral">&nbsp;</span>
347
347
  <span class="cline-any cline-neutral">&nbsp;</span>
348
- <span class="cline-any cline-yes">73x</span>
348
+ <span class="cline-any cline-yes">75x</span>
349
349
  <span class="cline-any cline-neutral">&nbsp;</span>
350
350
  <span class="cline-any cline-neutral">&nbsp;</span>
351
351
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -380,7 +380,7 @@
380
380
  <span class="cline-any cline-neutral">&nbsp;</span>
381
381
  <span class="cline-any cline-neutral">&nbsp;</span>
382
382
  <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-yes">73x</span>
383
+ <span class="cline-any cline-yes">75x</span>
384
384
  <span class="cline-any cline-neutral">&nbsp;</span>
385
385
  <span class="cline-any cline-neutral">&nbsp;</span>
386
386
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -559,7 +559,7 @@ export function createTaskBacklogRuntime(options: TaskBacklogRuntimeOptions): Ta
559
559
  <div class='footer quiet pad2 space-top1 center small'>
560
560
  Code coverage generated by
561
561
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
562
- at 2026-06-19T00:56:38.236Z
562
+ at 2026-06-23T21:49:18.784Z
563
563
  </div>
564
564
  <script src="../../prettify.js"></script>
565
565
  <script>
@@ -0,0 +1,208 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/runtime/task-events.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../prettify.css" />
9
+ <link rel="stylesheet" href="../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">src/runtime</a> task-events.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>1/1</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/0</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>1/1</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>1/1</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
108
+ <span class="cline-any cline-neutral">&nbsp;</span>
109
+ <span class="cline-any cline-neutral">&nbsp;</span>
110
+ <span class="cline-any cline-neutral">&nbsp;</span>
111
+ <span class="cline-any cline-neutral">&nbsp;</span>
112
+ <span class="cline-any cline-neutral">&nbsp;</span>
113
+ <span class="cline-any cline-neutral">&nbsp;</span>
114
+ <span class="cline-any cline-neutral">&nbsp;</span>
115
+ <span class="cline-any cline-neutral">&nbsp;</span>
116
+ <span class="cline-any cline-neutral">&nbsp;</span>
117
+ <span class="cline-any cline-neutral">&nbsp;</span>
118
+ <span class="cline-any cline-neutral">&nbsp;</span>
119
+ <span class="cline-any cline-neutral">&nbsp;</span>
120
+ <span class="cline-any cline-neutral">&nbsp;</span>
121
+ <span class="cline-any cline-neutral">&nbsp;</span>
122
+ <span class="cline-any cline-neutral">&nbsp;</span>
123
+ <span class="cline-any cline-neutral">&nbsp;</span>
124
+ <span class="cline-any cline-neutral">&nbsp;</span>
125
+ <span class="cline-any cline-neutral">&nbsp;</span>
126
+ <span class="cline-any cline-neutral">&nbsp;</span>
127
+ <span class="cline-any cline-neutral">&nbsp;</span>
128
+ <span class="cline-any cline-neutral">&nbsp;</span>
129
+ <span class="cline-any cline-neutral">&nbsp;</span>
130
+ <span class="cline-any cline-neutral">&nbsp;</span>
131
+ <span class="cline-any cline-neutral">&nbsp;</span>
132
+ <span class="cline-any cline-neutral">&nbsp;</span>
133
+ <span class="cline-any cline-neutral">&nbsp;</span>
134
+ <span class="cline-any cline-neutral">&nbsp;</span>
135
+ <span class="cline-any cline-neutral">&nbsp;</span>
136
+ <span class="cline-any cline-yes">76x</span>
137
+ <span class="cline-any cline-neutral">&nbsp;</span>
138
+ <span class="cline-any cline-neutral">&nbsp;</span>
139
+ <span class="cline-any cline-neutral">&nbsp;</span>
140
+ <span class="cline-any cline-neutral">&nbsp;</span>
141
+ <span class="cline-any cline-neutral">&nbsp;</span>
142
+ <span class="cline-any cline-neutral">&nbsp;</span>
143
+ <span class="cline-any cline-neutral">&nbsp;</span>
144
+ <span class="cline-any cline-neutral">&nbsp;</span>
145
+ <span class="cline-any cline-neutral">&nbsp;</span>
146
+ <span class="cline-any cline-neutral">&nbsp;</span>
147
+ <span class="cline-any cline-neutral">&nbsp;</span>
148
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
149
+ import type { TaskEntry, TaskStatus } from "../task-types.js";
150
+ &nbsp;
151
+ export type NativeTaskEventName =
152
+ | "tasks:created"
153
+ | "tasks:started"
154
+ | "tasks:completed"
155
+ | "tasks:reopened"
156
+ | "tasks:updated"
157
+ | "tasks:deleted";
158
+ &nbsp;
159
+ export interface NativeTaskEventPayload {
160
+ taskId: string;
161
+ subject: string;
162
+ description: string;
163
+ status: TaskStatus;
164
+ previousStatus?: TaskStatus;
165
+ createdAt: number;
166
+ updatedAt: number;
167
+ completedAt?: number;
168
+ metadata?: Record&lt;string, unknown&gt;;
169
+ }
170
+ &nbsp;
171
+ export function emitNativeTaskEvent(
172
+ pi: ExtensionAPI,
173
+ name: NativeTaskEventName,
174
+ entry: TaskEntry,
175
+ previousStatus?: TaskStatus,
176
+ ): void {
177
+ pi.events.emit(name, {
178
+ taskId: entry.id,
179
+ subject: entry.subject,
180
+ description: entry.description,
181
+ status: entry.status,
182
+ previousStatus,
183
+ createdAt: entry.createdAt,
184
+ updatedAt: entry.updatedAt,
185
+ completedAt: entry.completedAt,
186
+ metadata: entry.metadata,
187
+ } satisfies NativeTaskEventPayload);
188
+ }
189
+ &nbsp;</pre></td></tr></table></pre>
190
+
191
+ <div class='push'></div><!-- for sticky footer -->
192
+ </div><!-- /wrapper -->
193
+ <div class='footer quiet pad2 space-top1 center small'>
194
+ Code coverage generated by
195
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
196
+ at 2026-06-23T21:49:18.784Z
197
+ </div>
198
+ <script src="../../prettify.js"></script>
199
+ <script>
200
+ window.onload = function () {
201
+ prettyPrint();
202
+ };
203
+ </script>
204
+ <script src="../../sorter.js"></script>
205
+ <script src="../../block-navigation.js"></script>
206
+ </body>
207
+ </html>
208
+