@trevonistrevon/pi-loop 0.5.9 → 0.6.0
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/.release-please-manifest.json +1 -1
- package/AGENTS.md +52 -12
- package/CHANGELOG.md +59 -0
- package/CONTRIBUTING.md +13 -3
- package/README.md +47 -0
- package/coverage/coverage-final.json +35 -32
- package/coverage/index.html +64 -49
- package/coverage/src/api.ts.html +193 -0
- package/coverage/src/commands/index.html +32 -32
- package/coverage/src/commands/loop-command.ts.html +170 -170
- package/coverage/src/commands/tasks-command.ts.html +129 -129
- package/coverage/src/coordinator.ts.html +26 -26
- package/coverage/src/index.html +61 -106
- package/coverage/src/index.ts.html +224 -86
- package/coverage/src/loop-parse.ts.html +106 -73
- package/coverage/src/loop-reducer.ts.html +21 -21
- package/coverage/src/monitor-completion-coordinator.ts.html +1 -1
- package/coverage/src/monitor-manager.ts.html +95 -71
- package/coverage/src/monitor-reducer.ts.html +15 -15
- package/coverage/src/notification-reducer.ts.html +6 -6
- package/coverage/src/reducer-backed-store.ts.html +57 -57
- package/coverage/src/rpc/channels.ts.html +376 -0
- package/coverage/src/rpc/cross-extension-rpc.ts.html +541 -0
- package/coverage/src/rpc/index.html +131 -0
- package/coverage/src/runtime/index.html +68 -23
- package/coverage/src/{goal-coordinator.ts.html → runtime/loop-events.ts.html} +79 -73
- package/coverage/src/runtime/monitor-ondone-runtime.ts.html +5 -5
- package/coverage/src/runtime/native-task-rpc.ts.html +502 -0
- package/coverage/src/runtime/notification-runtime.ts.html +22 -22
- package/coverage/src/runtime/scope.ts.html +14 -14
- package/coverage/src/runtime/session-runtime.ts.html +32 -32
- package/coverage/src/runtime/task-backlog-runtime.ts.html +65 -23
- package/coverage/src/runtime/task-events.ts.html +2 -2
- package/coverage/src/runtime/task-mutations.ts.html +394 -0
- package/coverage/src/runtime/task-rpc.ts.html +102 -120
- package/coverage/src/scheduler.ts.html +29 -29
- package/coverage/src/store.ts.html +27 -27
- package/coverage/src/task-backlog-coordinator.ts.html +8 -8
- package/coverage/src/task-reducer.ts.html +42 -42
- package/coverage/src/task-store.ts.html +49 -49
- package/coverage/src/tools/index.html +39 -24
- package/coverage/src/tools/loop-tools.ts.html +12 -21
- package/coverage/src/tools/monitor-tools.ts.html +12 -21
- package/coverage/src/tools/native-task-tools.ts.html +57 -120
- package/coverage/src/tools/tool-result.ts.html +97 -0
- package/coverage/src/trigger-system.ts.html +12 -12
- package/coverage/src/ui/index.html +1 -1
- package/coverage/src/ui/widget.ts.html +23 -23
- package/dist/api.d.ts +11 -0
- package/dist/api.js +10 -0
- package/dist/commands/loop-command.js +2 -2
- package/dist/commands/tasks-command.js +3 -3
- package/dist/coordinator.d.ts +1 -1
- package/dist/index.js +48 -3
- package/dist/loop-parse.js +14 -5
- package/dist/reducer-backed-store.d.ts +1 -1
- package/dist/reducer-backed-store.js +1 -1
- package/dist/rpc/channels.d.ts +73 -0
- package/dist/rpc/channels.js +30 -0
- package/dist/rpc/cross-extension-rpc.d.ts +59 -0
- package/dist/rpc/cross-extension-rpc.js +117 -0
- package/dist/runtime/loop-events.d.ts +26 -0
- package/dist/runtime/loop-events.js +26 -0
- package/dist/runtime/native-task-rpc.d.ts +22 -0
- package/dist/runtime/native-task-rpc.js +50 -0
- package/dist/runtime/task-backlog-runtime.d.ts +3 -0
- package/dist/runtime/task-backlog-runtime.js +4 -1
- package/dist/runtime/task-mutations.d.ts +39 -0
- package/dist/runtime/task-mutations.js +68 -0
- package/dist/runtime/task-rpc.d.ts +4 -0
- package/dist/runtime/task-rpc.js +40 -58
- package/dist/scheduler.js +1 -1
- package/dist/tools/loop-tools.js +1 -3
- package/dist/tools/monitor-tools.js +1 -3
- package/dist/tools/native-task-tools.d.ts +2 -6
- package/dist/tools/native-task-tools.js +25 -55
- package/dist/tools/tool-result.d.ts +8 -0
- package/dist/tools/tool-result.js +4 -0
- package/docs/architecture/state-machine-migration.md +0 -44
- package/docs/architecture/state-machine-reducer-event-model.md +2 -3
- package/package.json +6 -1
- package/src/api.ts +36 -0
- package/src/commands/loop-command.ts +2 -2
- package/src/commands/tasks-command.ts +3 -3
- package/src/coordinator.ts +1 -1
- package/src/index.ts +49 -3
- package/src/loop-parse.ts +18 -7
- package/src/reducer-backed-store.ts +3 -3
- package/src/rpc/channels.ts +97 -0
- package/src/rpc/cross-extension-rpc.ts +152 -0
- package/src/runtime/loop-events.ts +60 -0
- package/src/runtime/native-task-rpc.ts +139 -0
- package/src/runtime/task-backlog-runtime.ts +14 -0
- package/src/runtime/task-mutations.ts +103 -0
- package/src/runtime/task-rpc.ts +48 -54
- package/src/scheduler.ts +1 -1
- package/src/tools/loop-tools.ts +1 -4
- package/src/tools/monitor-tools.ts +1 -4
- package/src/tools/native-task-tools.ts +31 -52
- package/src/tools/tool-result.ts +4 -0
- package/src/trigger-system.ts +4 -4
- package/vitest.config.ts +7 -7
- package/coverage/src/goal-reducer.ts.html +0 -982
- package/coverage/src/goal-store.ts.html +0 -742
- package/coverage/src/goal-verifier.ts.html +0 -808
- package/dist/goal-coordinator.d.ts +0 -22
- package/dist/goal-coordinator.js +0 -28
- package/dist/goal-reducer.d.ts +0 -98
- package/dist/goal-reducer.js +0 -190
- package/dist/goal-store.d.ts +0 -22
- package/dist/goal-store.js +0 -188
- package/dist/goal-types.d.ts +0 -82
- package/dist/goal-types.js +0 -1
- package/dist/goal-verifier.d.ts +0 -20
- package/dist/goal-verifier.js +0 -198
- package/docs/architecture/goal-state-schema.md +0 -505
- package/src/goal-coordinator.ts +0 -58
- package/src/goal-reducer.ts +0 -299
- package/src/goal-store.ts +0 -219
- package/src/goal-types.ts +0 -104
- package/src/goal-verifier.ts +0 -241
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">94.
|
|
26
|
+
<span class="strong">94.4% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>152/161</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">85.71% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>48/56</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">98.55% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>68/69</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">96.
|
|
47
|
+
<span class="strong">96.52% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>139/144</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -405,7 +405,54 @@
|
|
|
405
405
|
<a name='L340'></a><a href='#L340'>340</a>
|
|
406
406
|
<a name='L341'></a><a href='#L341'>341</a>
|
|
407
407
|
<a name='L342'></a><a href='#L342'>342</a>
|
|
408
|
-
<a name='L343'></a><a href='#L343'>343</a
|
|
408
|
+
<a name='L343'></a><a href='#L343'>343</a>
|
|
409
|
+
<a name='L344'></a><a href='#L344'>344</a>
|
|
410
|
+
<a name='L345'></a><a href='#L345'>345</a>
|
|
411
|
+
<a name='L346'></a><a href='#L346'>346</a>
|
|
412
|
+
<a name='L347'></a><a href='#L347'>347</a>
|
|
413
|
+
<a name='L348'></a><a href='#L348'>348</a>
|
|
414
|
+
<a name='L349'></a><a href='#L349'>349</a>
|
|
415
|
+
<a name='L350'></a><a href='#L350'>350</a>
|
|
416
|
+
<a name='L351'></a><a href='#L351'>351</a>
|
|
417
|
+
<a name='L352'></a><a href='#L352'>352</a>
|
|
418
|
+
<a name='L353'></a><a href='#L353'>353</a>
|
|
419
|
+
<a name='L354'></a><a href='#L354'>354</a>
|
|
420
|
+
<a name='L355'></a><a href='#L355'>355</a>
|
|
421
|
+
<a name='L356'></a><a href='#L356'>356</a>
|
|
422
|
+
<a name='L357'></a><a href='#L357'>357</a>
|
|
423
|
+
<a name='L358'></a><a href='#L358'>358</a>
|
|
424
|
+
<a name='L359'></a><a href='#L359'>359</a>
|
|
425
|
+
<a name='L360'></a><a href='#L360'>360</a>
|
|
426
|
+
<a name='L361'></a><a href='#L361'>361</a>
|
|
427
|
+
<a name='L362'></a><a href='#L362'>362</a>
|
|
428
|
+
<a name='L363'></a><a href='#L363'>363</a>
|
|
429
|
+
<a name='L364'></a><a href='#L364'>364</a>
|
|
430
|
+
<a name='L365'></a><a href='#L365'>365</a>
|
|
431
|
+
<a name='L366'></a><a href='#L366'>366</a>
|
|
432
|
+
<a name='L367'></a><a href='#L367'>367</a>
|
|
433
|
+
<a name='L368'></a><a href='#L368'>368</a>
|
|
434
|
+
<a name='L369'></a><a href='#L369'>369</a>
|
|
435
|
+
<a name='L370'></a><a href='#L370'>370</a>
|
|
436
|
+
<a name='L371'></a><a href='#L371'>371</a>
|
|
437
|
+
<a name='L372'></a><a href='#L372'>372</a>
|
|
438
|
+
<a name='L373'></a><a href='#L373'>373</a>
|
|
439
|
+
<a name='L374'></a><a href='#L374'>374</a>
|
|
440
|
+
<a name='L375'></a><a href='#L375'>375</a>
|
|
441
|
+
<a name='L376'></a><a href='#L376'>376</a>
|
|
442
|
+
<a name='L377'></a><a href='#L377'>377</a>
|
|
443
|
+
<a name='L378'></a><a href='#L378'>378</a>
|
|
444
|
+
<a name='L379'></a><a href='#L379'>379</a>
|
|
445
|
+
<a name='L380'></a><a href='#L380'>380</a>
|
|
446
|
+
<a name='L381'></a><a href='#L381'>381</a>
|
|
447
|
+
<a name='L382'></a><a href='#L382'>382</a>
|
|
448
|
+
<a name='L383'></a><a href='#L383'>383</a>
|
|
449
|
+
<a name='L384'></a><a href='#L384'>384</a>
|
|
450
|
+
<a name='L385'></a><a href='#L385'>385</a>
|
|
451
|
+
<a name='L386'></a><a href='#L386'>386</a>
|
|
452
|
+
<a name='L387'></a><a href='#L387'>387</a>
|
|
453
|
+
<a name='L388'></a><a href='#L388'>388</a>
|
|
454
|
+
<a name='L389'></a><a href='#L389'>389</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
455
|
+
<span class="cline-any cline-neutral"> </span>
|
|
409
456
|
<span class="cline-any cline-neutral"> </span>
|
|
410
457
|
<span class="cline-any cline-neutral"> </span>
|
|
411
458
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -447,7 +494,7 @@
|
|
|
447
494
|
<span class="cline-any cline-neutral"> </span>
|
|
448
495
|
<span class="cline-any cline-yes">3x</span>
|
|
449
496
|
<span class="cline-any cline-neutral"> </span>
|
|
450
|
-
<span class="cline-any cline-yes">
|
|
497
|
+
<span class="cline-any cline-yes">86x</span>
|
|
451
498
|
<span class="cline-any cline-neutral"> </span>
|
|
452
499
|
<span class="cline-any cline-neutral"> </span>
|
|
453
500
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -455,48 +502,60 @@
|
|
|
455
502
|
<span class="cline-any cline-neutral"> </span>
|
|
456
503
|
<span class="cline-any cline-neutral"> </span>
|
|
457
504
|
<span class="cline-any cline-neutral"> </span>
|
|
458
|
-
<span class="cline-any cline-yes">
|
|
459
|
-
<span class="cline-any cline-yes">
|
|
460
|
-
<span class="cline-any cline-yes">
|
|
505
|
+
<span class="cline-any cline-yes">65x</span>
|
|
506
|
+
<span class="cline-any cline-yes">65x</span>
|
|
507
|
+
<span class="cline-any cline-yes">65x</span>
|
|
461
508
|
<span class="cline-any cline-neutral"> </span>
|
|
462
|
-
<span class="cline-any cline-yes">
|
|
509
|
+
<span class="cline-any cline-yes">160x</span>
|
|
463
510
|
<span class="cline-any cline-neutral"> </span>
|
|
464
|
-
<span class="cline-any cline-yes">
|
|
465
|
-
<span class="cline-any cline-yes">
|
|
511
|
+
<span class="cline-any cline-yes">65x</span>
|
|
512
|
+
<span class="cline-any cline-yes">65x</span>
|
|
466
513
|
<span class="cline-any cline-neutral"> </span>
|
|
467
514
|
<span class="cline-any cline-neutral"> </span>
|
|
468
|
-
<span class="cline-any cline-yes">
|
|
515
|
+
<span class="cline-any cline-yes">65x</span>
|
|
469
516
|
<span class="cline-any cline-neutral"> </span>
|
|
470
517
|
<span class="cline-any cline-neutral"> </span>
|
|
471
|
-
<span class="cline-any cline-yes">
|
|
472
|
-
<span class="cline-any cline-yes">
|
|
473
|
-
<span class="cline-any cline-yes">156x</span>
|
|
474
|
-
<span class="cline-any cline-yes">234x</span>
|
|
475
|
-
<span class="cline-any cline-yes">171x</span>
|
|
476
|
-
<span class="cline-any cline-yes">123x</span>
|
|
477
|
-
<span class="cline-any cline-yes">123x</span>
|
|
518
|
+
<span class="cline-any cline-yes">65x</span>
|
|
519
|
+
<span class="cline-any cline-yes">65x</span>
|
|
478
520
|
<span class="cline-any cline-neutral"> </span>
|
|
479
521
|
<span class="cline-any cline-neutral"> </span>
|
|
522
|
+
<span class="cline-any cline-yes">160x</span>
|
|
523
|
+
<span class="cline-any cline-yes">237x</span>
|
|
524
|
+
<span class="cline-any cline-yes">173x</span>
|
|
525
|
+
<span class="cline-any cline-yes">126x</span>
|
|
526
|
+
<span class="cline-any cline-yes">126x</span>
|
|
480
527
|
<span class="cline-any cline-neutral"> </span>
|
|
481
528
|
<span class="cline-any cline-neutral"> </span>
|
|
482
|
-
<span class="cline-any cline-yes">156x</span>
|
|
483
529
|
<span class="cline-any cline-neutral"> </span>
|
|
484
530
|
<span class="cline-any cline-neutral"> </span>
|
|
485
|
-
<span class="cline-any cline-yes">
|
|
486
|
-
<span class="cline-any cline-yes">63x</span>
|
|
531
|
+
<span class="cline-any cline-yes">160x</span>
|
|
487
532
|
<span class="cline-any cline-neutral"> </span>
|
|
488
533
|
<span class="cline-any cline-neutral"> </span>
|
|
489
|
-
<span class="cline-any cline-yes">
|
|
534
|
+
<span class="cline-any cline-yes">65x</span>
|
|
535
|
+
<span class="cline-any cline-yes">65x</span>
|
|
490
536
|
<span class="cline-any cline-neutral"> </span>
|
|
491
|
-
<span class="cline-any cline-yes">63x</span>
|
|
492
537
|
<span class="cline-any cline-neutral"> </span>
|
|
493
|
-
<span class="cline-any cline-yes">
|
|
538
|
+
<span class="cline-any cline-yes">65x</span>
|
|
539
|
+
<span class="cline-any cline-yes">65x</span>
|
|
494
540
|
<span class="cline-any cline-neutral"> </span>
|
|
495
|
-
<span class="cline-any cline-yes">
|
|
541
|
+
<span class="cline-any cline-yes">65x</span>
|
|
496
542
|
<span class="cline-any cline-neutral"> </span>
|
|
497
|
-
<span class="cline-any cline-yes">2x</span>
|
|
498
543
|
<span class="cline-any cline-neutral"> </span>
|
|
499
|
-
<span class="cline-any cline-
|
|
544
|
+
<span class="cline-any cline-neutral"> </span>
|
|
545
|
+
<span class="cline-any cline-yes">49x</span>
|
|
546
|
+
<span class="cline-any cline-yes">49x</span>
|
|
547
|
+
<span class="cline-any cline-yes">48x</span>
|
|
548
|
+
<span class="cline-any cline-neutral"> </span>
|
|
549
|
+
<span class="cline-any cline-yes">49x</span>
|
|
550
|
+
<span class="cline-any cline-neutral"> </span>
|
|
551
|
+
<span class="cline-any cline-neutral"> </span>
|
|
552
|
+
<span class="cline-any cline-yes">65x</span>
|
|
553
|
+
<span class="cline-any cline-neutral"> </span>
|
|
554
|
+
<span class="cline-any cline-yes">41x</span>
|
|
555
|
+
<span class="cline-any cline-neutral"> </span>
|
|
556
|
+
<span class="cline-any cline-yes">3x</span>
|
|
557
|
+
<span class="cline-any cline-neutral"> </span>
|
|
558
|
+
<span class="cline-any cline-yes">38x</span>
|
|
500
559
|
<span class="cline-any cline-neutral"> </span>
|
|
501
560
|
<span class="cline-any cline-yes">1x</span>
|
|
502
561
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -505,16 +564,41 @@
|
|
|
505
564
|
<span class="cline-any cline-yes">3x</span>
|
|
506
565
|
<span class="cline-any cline-neutral"> </span>
|
|
507
566
|
<span class="cline-any cline-neutral"> </span>
|
|
567
|
+
<span class="cline-any cline-yes">66x</span>
|
|
568
|
+
<span class="cline-any cline-neutral"> </span>
|
|
569
|
+
<span class="cline-any cline-neutral"> </span>
|
|
570
|
+
<span class="cline-any cline-yes">52x</span>
|
|
571
|
+
<span class="cline-any cline-neutral"> </span>
|
|
572
|
+
<span class="cline-any cline-neutral"> </span>
|
|
573
|
+
<span class="cline-any cline-neutral"> </span>
|
|
574
|
+
<span class="cline-any cline-neutral"> </span>
|
|
575
|
+
<span class="cline-any cline-neutral"> </span>
|
|
508
576
|
<span class="cline-any cline-neutral"> </span>
|
|
509
577
|
<span class="cline-any cline-neutral"> </span>
|
|
510
|
-
<span class="cline-any cline-yes">63x</span>
|
|
511
|
-
<span class="cline-any cline-yes">63x</span>
|
|
512
578
|
<span class="cline-any cline-neutral"> </span>
|
|
513
|
-
<span class="cline-any cline-yes">63x</span>
|
|
514
|
-
<span class="cline-any cline-yes">63x</span>
|
|
515
|
-
<span class="cline-any cline-yes">63x</span>
|
|
516
579
|
<span class="cline-any cline-neutral"> </span>
|
|
517
|
-
<span class="cline-any cline-
|
|
580
|
+
<span class="cline-any cline-neutral"> </span>
|
|
581
|
+
<span class="cline-any cline-yes">65x</span>
|
|
582
|
+
<span class="cline-any cline-neutral"> </span>
|
|
583
|
+
<span class="cline-any cline-neutral"> </span>
|
|
584
|
+
<span class="cline-any cline-yes">66x</span>
|
|
585
|
+
<span class="cline-any cline-yes">2x</span>
|
|
586
|
+
<span class="cline-any cline-neutral"> </span>
|
|
587
|
+
<span class="cline-any cline-yes">1x</span>
|
|
588
|
+
<span class="cline-any cline-neutral"> </span>
|
|
589
|
+
<span class="cline-any cline-yes">1x</span>
|
|
590
|
+
<span class="cline-any cline-neutral"> </span>
|
|
591
|
+
<span class="cline-any cline-neutral"> </span>
|
|
592
|
+
<span class="cline-any cline-neutral"> </span>
|
|
593
|
+
<span class="cline-any cline-neutral"> </span>
|
|
594
|
+
<span class="cline-any cline-yes">65x</span>
|
|
595
|
+
<span class="cline-any cline-yes">65x</span>
|
|
596
|
+
<span class="cline-any cline-neutral"> </span>
|
|
597
|
+
<span class="cline-any cline-yes">65x</span>
|
|
598
|
+
<span class="cline-any cline-yes">65x</span>
|
|
599
|
+
<span class="cline-any cline-yes">65x</span>
|
|
600
|
+
<span class="cline-any cline-neutral"> </span>
|
|
601
|
+
<span class="cline-any cline-yes">65x</span>
|
|
518
602
|
<span class="cline-any cline-neutral"> </span>
|
|
519
603
|
<span class="cline-any cline-yes">11x</span>
|
|
520
604
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -522,7 +606,7 @@
|
|
|
522
606
|
<span class="cline-any cline-neutral"> </span>
|
|
523
607
|
<span class="cline-any cline-neutral"> </span>
|
|
524
608
|
<span class="cline-any cline-neutral"> </span>
|
|
525
|
-
<span class="cline-any cline-yes">
|
|
609
|
+
<span class="cline-any cline-yes">65x</span>
|
|
526
610
|
<span class="cline-any cline-neutral"> </span>
|
|
527
611
|
<span class="cline-any cline-yes">6x</span>
|
|
528
612
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -562,8 +646,8 @@
|
|
|
562
646
|
<span class="cline-any cline-yes">9x</span>
|
|
563
647
|
<span class="cline-any cline-neutral"> </span>
|
|
564
648
|
<span class="cline-any cline-neutral"> </span>
|
|
565
|
-
<span class="cline-any cline-yes">
|
|
566
|
-
<span class="cline-any cline-yes">
|
|
649
|
+
<span class="cline-any cline-yes">65x</span>
|
|
650
|
+
<span class="cline-any cline-yes">42x</span>
|
|
567
651
|
<span class="cline-any cline-yes">6x</span>
|
|
568
652
|
<span class="cline-any cline-neutral"> </span>
|
|
569
653
|
<span class="cline-any cline-yes">3x</span>
|
|
@@ -581,32 +665,38 @@
|
|
|
581
665
|
<span class="cline-any cline-yes">6x</span>
|
|
582
666
|
<span class="cline-any cline-neutral"> </span>
|
|
583
667
|
<span class="cline-any cline-neutral"> </span>
|
|
668
|
+
<span class="cline-any cline-yes">3x</span>
|
|
584
669
|
<span class="cline-any cline-neutral"> </span>
|
|
585
670
|
<span class="cline-any cline-neutral"> </span>
|
|
586
|
-
<span class="cline-any cline-yes">
|
|
587
|
-
<span class="cline-any cline-yes">63x</span>
|
|
588
|
-
<span class="cline-any cline-yes">63x</span>
|
|
589
|
-
<span class="cline-any cline-yes">63x</span>
|
|
671
|
+
<span class="cline-any cline-yes">3x</span>
|
|
590
672
|
<span class="cline-any cline-neutral"> </span>
|
|
591
673
|
<span class="cline-any cline-neutral"> </span>
|
|
592
674
|
<span class="cline-any cline-neutral"> </span>
|
|
593
675
|
<span class="cline-any cline-neutral"> </span>
|
|
594
|
-
<span class="cline-any cline-yes">
|
|
676
|
+
<span class="cline-any cline-yes">65x</span>
|
|
677
|
+
<span class="cline-any cline-yes">65x</span>
|
|
678
|
+
<span class="cline-any cline-yes">65x</span>
|
|
679
|
+
<span class="cline-any cline-yes">65x</span>
|
|
595
680
|
<span class="cline-any cline-neutral"> </span>
|
|
596
|
-
<span class="cline-any cline-
|
|
681
|
+
<span class="cline-any cline-neutral"> </span>
|
|
682
|
+
<span class="cline-any cline-neutral"> </span>
|
|
683
|
+
<span class="cline-any cline-neutral"> </span>
|
|
684
|
+
<span class="cline-any cline-yes">15x</span>
|
|
685
|
+
<span class="cline-any cline-neutral"> </span>
|
|
686
|
+
<span class="cline-any cline-yes">15x</span>
|
|
597
687
|
<span class="cline-any cline-no"> </span>
|
|
598
688
|
<span class="cline-any cline-no"> </span>
|
|
599
689
|
<span class="cline-any cline-no"> </span>
|
|
600
690
|
<span class="cline-any cline-neutral"> </span>
|
|
601
|
-
<span class="cline-any cline-yes">
|
|
691
|
+
<span class="cline-any cline-yes">15x</span>
|
|
602
692
|
<span class="cline-any cline-neutral"> </span>
|
|
603
|
-
<span class="cline-any cline-yes">
|
|
693
|
+
<span class="cline-any cline-yes">15x</span>
|
|
604
694
|
<span class="cline-any cline-yes">1x</span>
|
|
605
695
|
<span class="cline-any cline-yes">1x</span>
|
|
606
696
|
<span class="cline-any cline-neutral"> </span>
|
|
607
697
|
<span class="cline-any cline-neutral"> </span>
|
|
608
698
|
<span class="cline-any cline-neutral"> </span>
|
|
609
|
-
<span class="cline-any cline-yes">
|
|
699
|
+
<span class="cline-any cline-yes">15x</span>
|
|
610
700
|
<span class="cline-any cline-neutral"> </span>
|
|
611
701
|
<span class="cline-any cline-neutral"> </span>
|
|
612
702
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -622,28 +712,28 @@
|
|
|
622
712
|
<span class="cline-any cline-neutral"> </span>
|
|
623
713
|
<span class="cline-any cline-neutral"> </span>
|
|
624
714
|
<span class="cline-any cline-neutral"> </span>
|
|
625
|
-
<span class="cline-any cline-yes">
|
|
715
|
+
<span class="cline-any cline-yes">65x</span>
|
|
626
716
|
<span class="cline-any cline-neutral"> </span>
|
|
627
|
-
<span class="cline-any cline-yes">
|
|
628
|
-
<span class="cline-any cline-yes">
|
|
717
|
+
<span class="cline-any cline-yes">52x</span>
|
|
718
|
+
<span class="cline-any cline-yes">47x</span>
|
|
629
719
|
<span class="cline-any cline-neutral"> </span>
|
|
630
|
-
<span class="cline-any cline-yes">
|
|
631
|
-
<span class="cline-any cline-yes">
|
|
632
|
-
<span class="cline-any cline-yes">
|
|
633
|
-
<span class="cline-any cline-yes">
|
|
634
|
-
<span class="cline-any cline-yes">
|
|
720
|
+
<span class="cline-any cline-yes">47x</span>
|
|
721
|
+
<span class="cline-any cline-yes">47x</span>
|
|
722
|
+
<span class="cline-any cline-yes">47x</span>
|
|
723
|
+
<span class="cline-any cline-yes">47x</span>
|
|
724
|
+
<span class="cline-any cline-yes">47x</span>
|
|
635
725
|
<span class="cline-any cline-neutral"> </span>
|
|
636
726
|
<span class="cline-any cline-neutral"> </span>
|
|
637
727
|
<span class="cline-any cline-yes">1x</span>
|
|
638
728
|
<span class="cline-any cline-neutral"> </span>
|
|
639
|
-
<span class="cline-any cline-yes">
|
|
640
|
-
<span class="cline-any cline-yes">
|
|
729
|
+
<span class="cline-any cline-yes">170x</span>
|
|
730
|
+
<span class="cline-any cline-yes">175x</span>
|
|
641
731
|
<span class="cline-any cline-yes">3x</span>
|
|
642
732
|
<span class="cline-any cline-neutral"> </span>
|
|
643
|
-
<span class="cline-any cline-yes">
|
|
733
|
+
<span class="cline-any cline-yes">101x</span>
|
|
644
734
|
<span class="cline-any cline-neutral"> </span>
|
|
645
735
|
<span class="cline-any cline-neutral"> </span>
|
|
646
|
-
<span class="cline-any cline-yes">
|
|
736
|
+
<span class="cline-any cline-yes">49x</span>
|
|
647
737
|
<span class="cline-any cline-neutral"> </span>
|
|
648
738
|
<span class="cline-any cline-neutral"> </span>
|
|
649
739
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -655,10 +745,10 @@
|
|
|
655
745
|
<span class="cline-any cline-neutral"> </span>
|
|
656
746
|
<span class="cline-any cline-neutral"> </span>
|
|
657
747
|
<span class="cline-any cline-neutral"> </span>
|
|
658
|
-
<span class="cline-any cline-yes">
|
|
659
|
-
<span class="cline-any cline-yes">
|
|
748
|
+
<span class="cline-any cline-yes">65x</span>
|
|
749
|
+
<span class="cline-any cline-yes">33x</span>
|
|
660
750
|
<span class="cline-any cline-neutral"> </span>
|
|
661
|
-
<span class="cline-any cline-yes">
|
|
751
|
+
<span class="cline-any cline-yes">33x</span>
|
|
662
752
|
<span class="cline-any cline-yes">4x</span>
|
|
663
753
|
<span class="cline-any cline-yes">4x</span>
|
|
664
754
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -667,10 +757,10 @@
|
|
|
667
757
|
<span class="cline-any cline-neutral"> </span>
|
|
668
758
|
<span class="cline-any cline-neutral"> </span>
|
|
669
759
|
<span class="cline-any cline-neutral"> </span>
|
|
670
|
-
<span class="cline-any cline-yes">
|
|
760
|
+
<span class="cline-any cline-yes">32x</span>
|
|
671
761
|
<span class="cline-any cline-neutral"> </span>
|
|
672
762
|
<span class="cline-any cline-neutral"> </span>
|
|
673
|
-
<span class="cline-any cline-yes">
|
|
763
|
+
<span class="cline-any cline-yes">65x</span>
|
|
674
764
|
<span class="cline-any cline-neutral"> </span>
|
|
675
765
|
<span class="cline-any cline-yes">38x</span>
|
|
676
766
|
<span class="cline-any cline-yes">21x</span>
|
|
@@ -687,7 +777,7 @@
|
|
|
687
777
|
<span class="cline-any cline-yes">7x</span>
|
|
688
778
|
<span class="cline-any cline-neutral"> </span>
|
|
689
779
|
<span class="cline-any cline-neutral"> </span>
|
|
690
|
-
<span class="cline-any cline-yes">
|
|
780
|
+
<span class="cline-any cline-yes">65x</span>
|
|
691
781
|
<span class="cline-any cline-neutral"> </span>
|
|
692
782
|
<span class="cline-any cline-yes">7x</span>
|
|
693
783
|
<span class="cline-any cline-yes">29x</span>
|
|
@@ -697,7 +787,7 @@
|
|
|
697
787
|
<span class="cline-any cline-neutral"> </span>
|
|
698
788
|
<span class="cline-any cline-neutral"> </span>
|
|
699
789
|
<span class="cline-any cline-neutral"> </span>
|
|
700
|
-
<span class="cline-any cline-yes">
|
|
790
|
+
<span class="cline-any cline-yes">65x</span>
|
|
701
791
|
<span class="cline-any cline-neutral"> </span>
|
|
702
792
|
<span class="cline-any cline-yes">1x</span>
|
|
703
793
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -708,12 +798,15 @@
|
|
|
708
798
|
<span class="cline-any cline-neutral"> </span>
|
|
709
799
|
<span class="cline-any cline-neutral"> </span>
|
|
710
800
|
<span class="cline-any cline-neutral"> </span>
|
|
711
|
-
<span class="cline-any cline-yes">63x</span>
|
|
712
|
-
<span class="cline-any cline-yes">47x</span>
|
|
713
|
-
<span class="cline-any cline-yes">46x</span>
|
|
714
801
|
<span class="cline-any cline-neutral"> </span>
|
|
715
|
-
<span class="cline-any cline-
|
|
716
|
-
<span class="cline-any cline-yes">
|
|
802
|
+
<span class="cline-any cline-neutral"> </span>
|
|
803
|
+
<span class="cline-any cline-yes">65x</span>
|
|
804
|
+
<span class="cline-any cline-yes">49x</span>
|
|
805
|
+
<span class="cline-any cline-yes">48x</span>
|
|
806
|
+
<span class="cline-any cline-yes">48x</span>
|
|
807
|
+
<span class="cline-any cline-neutral"> </span>
|
|
808
|
+
<span class="cline-any cline-yes">48x</span>
|
|
809
|
+
<span class="cline-any cline-yes">48x</span>
|
|
717
810
|
<span class="cline-any cline-neutral"> </span>
|
|
718
811
|
<span class="cline-any cline-yes">2x</span>
|
|
719
812
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -722,12 +815,12 @@
|
|
|
722
815
|
<span class="cline-any cline-neutral"> </span>
|
|
723
816
|
<span class="cline-any cline-neutral"> </span>
|
|
724
817
|
<span class="cline-any cline-neutral"> </span>
|
|
725
|
-
<span class="cline-any cline-yes">
|
|
818
|
+
<span class="cline-any cline-yes">48x</span>
|
|
726
819
|
<span class="cline-any cline-neutral"> </span>
|
|
727
820
|
<span class="cline-any cline-neutral"> </span>
|
|
728
821
|
<span class="cline-any cline-neutral"> </span>
|
|
729
822
|
<span class="cline-any cline-neutral"> </span>
|
|
730
|
-
<span class="cline-any cline-yes">
|
|
823
|
+
<span class="cline-any cline-yes">68x</span>
|
|
731
824
|
<span class="cline-any cline-neutral"> </span>
|
|
732
825
|
<span class="cline-any cline-neutral"> </span>
|
|
733
826
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -738,12 +831,11 @@
|
|
|
738
831
|
<span class="cline-any cline-no"> </span>
|
|
739
832
|
<span class="cline-any cline-neutral"> </span>
|
|
740
833
|
<span class="cline-any cline-neutral"> </span>
|
|
741
|
-
<span class="cline-any cline-yes">
|
|
742
|
-
<span class="cline-any cline-yes">
|
|
743
|
-
<span class="cline-any cline-yes">45x</span>
|
|
834
|
+
<span class="cline-any cline-yes">47x</span>
|
|
835
|
+
<span class="cline-any cline-yes">47x</span>
|
|
744
836
|
<span class="cline-any cline-neutral"> </span>
|
|
745
837
|
<span class="cline-any cline-neutral"> </span>
|
|
746
|
-
<span class="cline-any cline-yes">
|
|
838
|
+
<span class="cline-any cline-yes">65x</span>
|
|
747
839
|
<span class="cline-any cline-yes">3x</span>
|
|
748
840
|
<span class="cline-any cline-neutral"> </span>
|
|
749
841
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -769,6 +861,7 @@ import { registerTasksCommand } from "./commands/tasks-command.js";
|
|
|
769
861
|
import { atMaxFires } from "./loop-reducer.js";
|
|
770
862
|
import { MonitorManager } from "./monitor-manager.js";
|
|
771
863
|
import { createMonitorOnDoneRuntime } from "./runtime/monitor-ondone-runtime.js";
|
|
864
|
+
import { registerNativeTaskRpc } from "./runtime/native-task-rpc.js";
|
|
772
865
|
import {
|
|
773
866
|
createNotificationRuntime,
|
|
774
867
|
type LoopFireEvent,
|
|
@@ -812,7 +905,9 @@ export default function (pi: ExtensionAPI) {
|
|
|
812
905
|
// call), so stale monitors don't linger in the count between turns.
|
|
813
906
|
monitorManager.setOnChange(() => widget.update());
|
|
814
907
|
widget.setTaskSummaryProvider(() => {
|
|
815
|
-
|
|
908
|
+
// Once pi-tasks owns the channels, any native store created during the
|
|
909
|
+
// detection window is a shadow — never surface it in the status line.
|
|
910
|
+
if (tasksAvailable || !nativeTaskStore) return { count: 0 };
|
|
816
911
|
const tasks = nativeTaskStore.list().filter(t => t.status === "pending" || t.status === "in_progress");
|
|
817
912
|
const active = tasks.find(t => t.status === "in_progress");
|
|
818
913
|
const next = tasks.find(t => t.status === "pending");
|
|
@@ -829,8 +924,18 @@ export default function (pi: ExtensionAPI) {
|
|
|
829
924
|
|
|
830
925
|
// ── pi-tasks integration ──
|
|
831
926
|
let tasksAvailable = false;
|
|
927
|
+
let tasksDetectionSettled = false;
|
|
832
928
|
let nativeTaskStore: TaskStore | undefined;
|
|
833
929
|
let nativeTasksRegistered = false;
|
|
930
|
+
|
|
931
|
+
function getOrCreateNativeTaskStore(): TaskStore | undefined {
|
|
932
|
+
// pi-tasks owns the task channels; don't create a shadow store.
|
|
933
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (tasksAvailable) <span class="cstat-no" title="statement not covered" >return undefined;</span>
|
|
934
|
+
if (!nativeTaskStore) {
|
|
935
|
+
nativeTaskStore = new TaskStore(resolveTaskStorePath(getScopeOptions(), _sessionId));
|
|
936
|
+
}
|
|
937
|
+
return nativeTaskStore;
|
|
938
|
+
}
|
|
834
939
|
|
|
835
940
|
const taskRuntime = createTaskRuntimeBridge({
|
|
836
941
|
pi,
|
|
@@ -846,11 +951,36 @@ export default function (pi: ExtensionAPI) {
|
|
|
846
951
|
widget.update();
|
|
847
952
|
await evaluateTaskBacklog(taskStore, taskStore.pendingCount());
|
|
848
953
|
},
|
|
954
|
+
onDetectionStarted: () => {
|
|
955
|
+
tasksDetectionSettled = false;
|
|
956
|
+
},
|
|
957
|
+
onDetectionSettled: () => {
|
|
958
|
+
tasksDetectionSettled = true;
|
|
959
|
+
},
|
|
960
|
+
debug,
|
|
961
|
+
});
|
|
962
|
+
|
|
963
|
+
// The RPC server registers at init (not behind the 6s tool-fallback timer) so
|
|
964
|
+
// early cross-extension calls never race the timer; it stands down via
|
|
965
|
+
// isEnabled once an external pi-tasks is detected. checkTasksVersion ignores
|
|
966
|
+
// this server's own ping reply via its provider field. Mutating verbs stay
|
|
967
|
+
// silent until the detection probe settles, so a co-resident pi-tasks can
|
|
968
|
+
// never race the native server into creating divergent task state.
|
|
969
|
+
registerNativeTaskRpc({
|
|
970
|
+
pi,
|
|
971
|
+
getNativeTaskStore: getOrCreateNativeTaskStore,
|
|
972
|
+
isEnabled: () => !tasksAvailable,
|
|
973
|
+
isDetectionSettled: () => tasksDetectionSettled,
|
|
974
|
+
evaluateTaskBacklog: (taskStore, pendingCount) =>
|
|
975
|
+
evaluateTaskBacklog(taskStore, pendingCount),
|
|
976
|
+
updateWidget: () => {
|
|
977
|
+
widget.update();
|
|
978
|
+
},
|
|
849
979
|
debug,
|
|
850
980
|
});
|
|
851
981
|
|
|
852
982
|
taskRuntime.checkTasksVersion();
|
|
853
|
-
pi.events.on(
|
|
983
|
+
pi.events.on("tasks:ready", () => taskRuntime.checkTasksVersion());
|
|
854
984
|
|
|
855
985
|
const autoCreateTask = taskRuntime.autoCreateTask;
|
|
856
986
|
const hasPendingTasks = taskRuntime.hasPendingTasks;
|
|
@@ -922,6 +1052,12 @@ export default function (pi: ExtensionAPI) {
|
|
|
922
1052
|
hasPendingTasks: () => hasPendingTasks(),
|
|
923
1053
|
bootstrapTaskLoop: (entry) => maybeBootstrapTaskLoop(entry),
|
|
924
1054
|
triggerHasEventSource,
|
|
1055
|
+
emitLoopAutodeleted: (payload) => {
|
|
1056
|
+
pi.events.emit("loops:autodeleted", payload);
|
|
1057
|
+
},
|
|
1058
|
+
emitTaskBacklogEmpty: (payload) => {
|
|
1059
|
+
pi.events.emit("tasks:backlog_empty", payload);
|
|
1060
|
+
},
|
|
925
1061
|
debug,
|
|
926
1062
|
});
|
|
927
1063
|
|
|
@@ -1050,9 +1186,12 @@ export default function (pi: ExtensionAPI) {
|
|
|
1050
1186
|
|
|
1051
1187
|
// ── Native task tools (only when pi-tasks is absent) ──
|
|
1052
1188
|
|
|
1189
|
+
// Only tool/command registration stays deferred: the tool names collide with
|
|
1190
|
+
// pi-tasks and cannot be unregistered. The RPC server is already live (above).
|
|
1053
1191
|
const nativeTaskFallbackTimer = setTimeout(() => {
|
|
1054
1192
|
if (tasksAvailable || nativeTasksRegistered) return;
|
|
1055
|
-
const taskStore =
|
|
1193
|
+
const taskStore = getOrCreateNativeTaskStore();
|
|
1194
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!taskStore) <span class="cstat-no" title="statement not covered" >return;</span>
|
|
1056
1195
|
|
|
1057
1196
|
try {
|
|
1058
1197
|
registerTasksCommand({
|
|
@@ -1080,7 +1219,6 @@ export default function (pi: ExtensionAPI) {
|
|
|
1080
1219
|
<span class="cstat-no" title="statement not covered" > throw error;</span>
|
|
1081
1220
|
}
|
|
1082
1221
|
|
|
1083
|
-
nativeTaskStore = taskStore;
|
|
1084
1222
|
nativeTasksRegistered = true;
|
|
1085
1223
|
debug("native task tools registered (pi-tasks not detected)");
|
|
1086
1224
|
}, 6000);
|
|
@@ -1096,7 +1234,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
1096
1234
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1097
1235
|
Code coverage generated by
|
|
1098
1236
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1099
|
-
at 2026-
|
|
1237
|
+
at 2026-07-02T19:31:50.067Z
|
|
1100
1238
|
</div>
|
|
1101
1239
|
<script src="../prettify.js"></script>
|
|
1102
1240
|
<script>
|