@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
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">84.49% </span>
26
+ <span class="strong">84.36% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>1591/1883</span>
28
+ <span class='fraction'>1613/1912</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">76.27% </span>
33
+ <span class="strong">75.69% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>807/1058</span>
35
+ <span class='fraction'>816/1078</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">95.44% </span>
40
+ <span class="strong">95.48% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>335/351</span>
42
+ <span class='fraction'>338/354</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">86.57% </span>
47
+ <span class="strong">86.47% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>1432/1654</span>
49
+ <span class='fraction'>1451/1678</span>
50
50
  </div>
51
51
 
52
52
 
@@ -80,62 +80,62 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file high" data-value="src"><a href="src/index.html">src</a></td>
83
- <td data-value="91.75" class="pic high">
83
+ <td data-value="91.72" class="pic high">
84
84
  <div class="chart"><div class="cover-fill" style="width: 91%"></div><div class="cover-empty" style="width: 9%"></div></div>
85
85
  </td>
86
- <td data-value="91.75" class="pct high">91.75%</td>
87
- <td data-value="1152" class="abs high">1057/1152</td>
88
- <td data-value="83.85" class="pct high">83.85%</td>
89
- <td data-value="607" class="abs high">509/607</td>
90
- <td data-value="98.77" class="pct high">98.77%</td>
91
- <td data-value="244" class="abs high">241/244</td>
92
- <td data-value="94.07" class="pct high">94.07%</td>
93
- <td data-value="1012" class="abs high">952/1012</td>
86
+ <td data-value="91.72" class="pct high">91.72%</td>
87
+ <td data-value="1160" class="abs high">1064/1160</td>
88
+ <td data-value="83.79" class="pct high">83.79%</td>
89
+ <td data-value="611" class="abs high">512/611</td>
90
+ <td data-value="98.78" class="pct high">98.78%</td>
91
+ <td data-value="246" class="abs high">243/246</td>
92
+ <td data-value="94.01" class="pct high">94.01%</td>
93
+ <td data-value="1020" class="abs high">959/1020</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
97
97
  <td class="file low" data-value="src/commands"><a href="src/commands/index.html">src/commands</a></td>
98
- <td data-value="18.51" class="pic low">
99
- <div class="chart"><div class="cover-fill" style="width: 18%"></div><div class="cover-empty" style="width: 82%"></div></div>
98
+ <td data-value="17.85" class="pic low">
99
+ <div class="chart"><div class="cover-fill" style="width: 17%"></div><div class="cover-empty" style="width: 83%"></div></div>
100
100
  </td>
101
- <td data-value="18.51" class="pct low">18.51%</td>
102
- <td data-value="189" class="abs low">35/189</td>
103
- <td data-value="7.14" class="pct low">7.14%</td>
104
- <td data-value="112" class="abs low">8/112</td>
101
+ <td data-value="17.85" class="pct low">17.85%</td>
102
+ <td data-value="196" class="abs low">35/196</td>
103
+ <td data-value="6.77" class="pct low">6.77%</td>
104
+ <td data-value="118" class="abs low">8/118</td>
105
105
  <td data-value="35.71" class="pct low">35.71%</td>
106
106
  <td data-value="14" class="abs low">5/14</td>
107
- <td data-value="20.71" class="pct low">20.71%</td>
108
- <td data-value="169" class="abs low">35/169</td>
107
+ <td data-value="20.23" class="pct low">20.23%</td>
108
+ <td data-value="173" class="abs low">35/173</td>
109
109
  </tr>
110
110
 
111
111
  <tr>
112
112
  <td class="file high" data-value="src/runtime"><a href="src/runtime/index.html">src/runtime</a></td>
113
- <td data-value="92.28" class="pic high">
113
+ <td data-value="92.63" class="pic high">
114
114
  <div class="chart"><div class="cover-fill" style="width: 92%"></div><div class="cover-empty" style="width: 8%"></div></div>
115
115
  </td>
116
- <td data-value="92.28" class="pct high">92.28%</td>
117
- <td data-value="324" class="abs high">299/324</td>
118
- <td data-value="85" class="pct high">85%</td>
119
- <td data-value="160" class="abs high">136/160</td>
120
- <td data-value="93.65" class="pct high">93.65%</td>
121
- <td data-value="63" class="abs high">59/63</td>
122
- <td data-value="95.1" class="pct high">95.1%</td>
123
- <td data-value="286" class="abs high">272/286</td>
116
+ <td data-value="92.63" class="pct high">92.63%</td>
117
+ <td data-value="326" class="abs high">302/326</td>
118
+ <td data-value="85.62" class="pct high">85.62%</td>
119
+ <td data-value="160" class="abs high">137/160</td>
120
+ <td data-value="93.75" class="pct high">93.75%</td>
121
+ <td data-value="64" class="abs high">60/64</td>
122
+ <td data-value="95.13" class="pct high">95.13%</td>
123
+ <td data-value="288" class="abs high">274/288</td>
124
124
  </tr>
125
125
 
126
126
  <tr>
127
127
  <td class="file high" data-value="src/tools"><a href="src/tools/index.html">src/tools</a></td>
128
- <td data-value="90.37" class="pic high">
128
+ <td data-value="90.95" class="pic high">
129
129
  <div class="chart"><div class="cover-fill" style="width: 90%"></div><div class="cover-empty" style="width: 10%"></div></div>
130
130
  </td>
131
- <td data-value="90.37" class="pct high">90.37%</td>
132
- <td data-value="187" class="abs high">169/187</td>
133
- <td data-value="83.76" class="pct high">83.76%</td>
134
- <td data-value="154" class="abs high">129/154</td>
131
+ <td data-value="90.95" class="pct high">90.95%</td>
132
+ <td data-value="199" class="abs high">181/199</td>
133
+ <td data-value="81.7" class="pct high">81.7%</td>
134
+ <td data-value="164" class="abs high">134/164</td>
135
135
  <td data-value="100" class="pct high">100%</td>
136
136
  <td data-value="21" class="abs high">21/21</td>
137
- <td data-value="91.41" class="pct high">91.41%</td>
138
- <td data-value="163" class="abs high">149/163</td>
137
+ <td data-value="91.9" class="pct high">91.9%</td>
138
+ <td data-value="173" class="abs high">159/173</td>
139
139
  </tr>
140
140
 
141
141
  <tr>
@@ -161,7 +161,7 @@
161
161
  <div class='footer quiet pad2 space-top1 center small'>
162
162
  Code coverage generated by
163
163
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
164
- at 2026-06-19T00:56:38.236Z
164
+ at 2026-06-23T21:49:18.784Z
165
165
  </div>
166
166
  <script src="prettify.js"></script>
167
167
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">18.51% </span>
26
+ <span class="strong">17.85% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>35/189</span>
28
+ <span class='fraction'>35/196</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">7.14% </span>
33
+ <span class="strong">6.77% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>8/112</span>
35
+ <span class='fraction'>8/118</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">20.71% </span>
47
+ <span class="strong">20.23% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>35/169</span>
49
+ <span class='fraction'>35/173</span>
50
50
  </div>
51
51
 
52
52
 
@@ -95,17 +95,17 @@
95
95
 
96
96
  <tr>
97
97
  <td class="file low" data-value="tasks-command.ts"><a href="tasks-command.ts.html">tasks-command.ts</a></td>
98
- <td data-value="20.23" class="pic low">
99
- <div class="chart"><div class="cover-fill" style="width: 20%"></div><div class="cover-empty" style="width: 80%"></div></div>
98
+ <td data-value="18.68" class="pic low">
99
+ <div class="chart"><div class="cover-fill" style="width: 18%"></div><div class="cover-empty" style="width: 82%"></div></div>
100
100
  </td>
101
- <td data-value="20.23" class="pct low">20.23%</td>
102
- <td data-value="84" class="abs low">17/84</td>
103
- <td data-value="9.25" class="pct low">9.25%</td>
104
- <td data-value="54" class="abs low">5/54</td>
101
+ <td data-value="18.68" class="pct low">18.68%</td>
102
+ <td data-value="91" class="abs low">17/91</td>
103
+ <td data-value="8.33" class="pct low">8.33%</td>
104
+ <td data-value="60" class="abs low">5/60</td>
105
105
  <td data-value="50" class="pct medium">50%</td>
106
106
  <td data-value="6" class="abs medium">3/6</td>
107
- <td data-value="21.79" class="pct low">21.79%</td>
108
- <td data-value="78" class="abs low">17/78</td>
107
+ <td data-value="20.73" class="pct low">20.73%</td>
108
+ <td data-value="82" class="abs low">17/82</td>
109
109
  </tr>
110
110
 
111
111
  </tbody>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at 2026-06-19T00:56:38.236Z
119
+ at 2026-06-23T21:49:18.784Z
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
@@ -276,7 +276,7 @@
276
276
  <span class="cline-any cline-neutral">&nbsp;</span>
277
277
  <span class="cline-any cline-neutral">&nbsp;</span>
278
278
  <span class="cline-any cline-neutral">&nbsp;</span>
279
- <span class="cline-any cline-yes">61x</span>
279
+ <span class="cline-any cline-yes">63x</span>
280
280
  <span class="cline-any cline-neutral">&nbsp;</span>
281
281
  <span class="cline-any cline-neutral">&nbsp;</span>
282
282
  <span class="cline-any cline-no">&nbsp;</span>
@@ -374,7 +374,7 @@
374
374
  <span class="cline-any cline-no">&nbsp;</span>
375
375
  <span class="cline-any cline-neutral">&nbsp;</span>
376
376
  <span class="cline-any cline-neutral">&nbsp;</span>
377
- <span class="cline-any cline-yes">61x</span>
377
+ <span class="cline-any cline-yes">63x</span>
378
378
  <span class="cline-any cline-neutral">&nbsp;</span>
379
379
  <span class="cline-any cline-neutral">&nbsp;</span>
380
380
  <span class="cline-any cline-yes">1x</span>
@@ -619,7 +619,7 @@ export function registerLoopCommand(options: LoopCommandOptions): void {
619
619
  <div class='footer quiet pad2 space-top1 center small'>
620
620
  Code coverage generated by
621
621
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
622
- at 2026-06-19T00:56:38.236Z
622
+ at 2026-06-23T21:49:18.784Z
623
623
  </div>
624
624
  <script src="../../prettify.js"></script>
625
625
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">20.23% </span>
26
+ <span class="strong">18.68% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>17/84</span>
28
+ <span class='fraction'>17/91</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">9.25% </span>
33
+ <span class="strong">8.33% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>5/54</span>
35
+ <span class='fraction'>5/60</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">21.79% </span>
47
+ <span class="strong">20.73% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>17/78</span>
49
+ <span class='fraction'>17/82</span>
50
50
  </div>
51
51
 
52
52
 
@@ -215,13 +215,8 @@
215
215
  <span class="cline-any cline-neutral">&nbsp;</span>
216
216
  <span class="cline-any cline-neutral">&nbsp;</span>
217
217
  <span class="cline-any cline-neutral">&nbsp;</span>
218
- <span class="cline-any cline-yes">45x</span>
219
- <span class="cline-any cline-neutral">&nbsp;</span>
220
- <span class="cline-any cline-neutral">&nbsp;</span>
221
- <span class="cline-any cline-yes">1x</span>
222
- <span class="cline-any cline-neutral">&nbsp;</span>
223
- <span class="cline-any cline-neutral">&nbsp;</span>
224
218
  <span class="cline-any cline-neutral">&nbsp;</span>
219
+ <span class="cline-any cline-yes">46x</span>
225
220
  <span class="cline-any cline-neutral">&nbsp;</span>
226
221
  <span class="cline-any cline-neutral">&nbsp;</span>
227
222
  <span class="cline-any cline-yes">1x</span>
@@ -229,6 +224,7 @@
229
224
  <span class="cline-any cline-yes">1x</span>
230
225
  <span class="cline-any cline-yes">1x</span>
231
226
  <span class="cline-any cline-yes">1x</span>
227
+ <span class="cline-any cline-yes">1x</span>
232
228
  <span class="cline-any cline-neutral">&nbsp;</span>
233
229
  <span class="cline-any cline-neutral">&nbsp;</span>
234
230
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -304,6 +300,10 @@
304
300
  <span class="cline-any cline-no">&nbsp;</span>
305
301
  <span class="cline-any cline-no">&nbsp;</span>
306
302
  <span class="cline-any cline-no">&nbsp;</span>
303
+ <span class="cline-any cline-no">&nbsp;</span>
304
+ <span class="cline-any cline-no">&nbsp;</span>
305
+ <span class="cline-any cline-no">&nbsp;</span>
306
+ <span class="cline-any cline-no">&nbsp;</span>
307
307
  <span class="cline-any cline-neutral">&nbsp;</span>
308
308
  <span class="cline-any cline-neutral">&nbsp;</span>
309
309
  <span class="cline-any cline-no">&nbsp;</span>
@@ -311,7 +311,7 @@
311
311
  <span class="cline-any cline-no">&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">45x</span>
314
+ <span class="cline-any cline-yes">46x</span>
315
315
  <span class="cline-any cline-neutral">&nbsp;</span>
316
316
  <span class="cline-any cline-neutral">&nbsp;</span>
317
317
  <span class="cline-any cline-yes">1x</span>
@@ -334,6 +334,7 @@
334
334
  <span class="cline-any cline-neutral">&nbsp;</span>
335
335
  <span class="cline-any cline-neutral">&nbsp;</span>
336
336
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { ExtensionAPI, ExtensionCommandContext, ExtensionUIContext } from "@earendil-works/pi-coding-agent";
337
+ import { emitNativeTaskEvent } from "../runtime/task-events.js";
337
338
  import { TaskStore } from "../task-store.js";
338
339
  import type { TaskEntry } from "../task-types.js";
339
340
  &nbsp;
@@ -353,12 +354,7 @@ export function registerTasksCommand(options: TasksCommandOptions): void {
353
354
  const { pi, getNativeTaskStore, evaluateTaskBacklog, updateWidget } = options;
354
355
  &nbsp;
355
356
  async function emitCreated(entry: TaskEntry) {
356
- pi.events.emit("tasks:created", {
357
- taskId: entry.id,
358
- subject: entry.subject,
359
- description: entry.description,
360
- status: entry.status,
361
- });
357
+ emitNativeTaskEvent(pi, "tasks:created", entry);
362
358
  const taskStore = getNativeTaskStore();
363
359
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!taskStore) <span class="cstat-no" title="statement not covered" >return { created: false } satisfies TaskBacklogResult;</span>
364
360
  const backlog = await evaluateTaskBacklog(taskStore, taskStore.pendingCount());
@@ -429,15 +425,19 @@ export function registerTasksCommand(options: TasksCommandOptions): void {
429
425
  &nbsp;
430
426
  <span class="cstat-no" title="statement not covered" > if (action === "x Delete") {</span>
431
427
  <span class="cstat-no" title="statement not covered" > taskStore.delete(task.id);</span>
428
+ <span class="cstat-no" title="statement not covered" > emitNativeTaskEvent(pi, "tasks:deleted", task, task.status);</span>
432
429
  <span class="cstat-no" title="statement not covered" > ui.notify(`Task #${task.id} deleted`, "info");</span>
433
430
  } else <span class="cstat-no" title="statement not covered" >if (action === "&gt; Start") {</span>
434
- <span class="cstat-no" title="statement not covered" > taskStore.start(task.id);</span>
431
+ const next = <span class="cstat-no" title="statement not covered" >taskStore.start(task.id);</span>
432
+ <span class="cstat-no" title="statement not covered" > if (<span class="cstat-no" title="statement not covered" >next) emitNativeTaskEvent(pi, "tasks:started", next, task.status);</span></span>
435
433
  <span class="cstat-no" title="statement not covered" > ui.notify(`Task #${task.id} started`, "info");</span>
436
434
  } else <span class="cstat-no" title="statement not covered" >if (action === "ok Complete") {</span>
437
- <span class="cstat-no" title="statement not covered" > taskStore.complete(task.id);</span>
435
+ const next = <span class="cstat-no" title="statement not covered" >taskStore.complete(task.id);</span>
436
+ <span class="cstat-no" title="statement not covered" > if (<span class="cstat-no" title="statement not covered" >next) emitNativeTaskEvent(pi, "tasks:completed", next, task.status);</span></span>
438
437
  <span class="cstat-no" title="statement not covered" > ui.notify(`Task #${task.id} completed`, "info");</span>
439
438
  } else <span class="cstat-no" title="statement not covered" >if (action === "* Return to pending" || action === "* Reopen") {</span>
440
- <span class="cstat-no" title="statement not covered" > taskStore.reopen(task.id);</span>
439
+ const next = <span class="cstat-no" title="statement not covered" >taskStore.reopen(task.id);</span>
440
+ <span class="cstat-no" title="statement not covered" > if (<span class="cstat-no" title="statement not covered" >next) emitNativeTaskEvent(pi, "tasks:reopened", next, task.status);</span></span>
441
441
  <span class="cstat-no" title="statement not covered" > ui.notify(`Task #${task.id} reopened`, "info");</span>
442
442
  }
443
443
  &nbsp;
@@ -475,7 +475,7 @@ export function registerTasksCommand(options: TasksCommandOptions): void {
475
475
  <div class='footer quiet pad2 space-top1 center small'>
476
476
  Code coverage generated by
477
477
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
478
- at 2026-06-19T00:56:38.236Z
478
+ at 2026-06-23T21:49:18.784Z
479
479
  </div>
480
480
  <script src="../../prettify.js"></script>
481
481
  <script>
@@ -239,7 +239,7 @@
239
239
  <span class="cline-any cline-neutral">&nbsp;</span>
240
240
  <span class="cline-any cline-neutral">&nbsp;</span>
241
241
  <span class="cline-any cline-neutral">&nbsp;</span>
242
- <span class="cline-any cline-yes">212x</span>
242
+ <span class="cline-any cline-yes">218x</span>
243
243
  <span class="cline-any cline-neutral">&nbsp;</span>
244
244
  <span class="cline-any cline-neutral">&nbsp;</span>
245
245
  <span class="cline-any cline-yes">263x</span>
@@ -287,7 +287,7 @@
287
287
  <span class="cline-any cline-neutral">&nbsp;</span>
288
288
  <span class="cline-any cline-neutral">&nbsp;</span>
289
289
  <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-yes">212x</span>
290
+ <span class="cline-any cline-yes">218x</span>
291
291
  <span class="cline-any cline-neutral">&nbsp;</span>
292
292
  <span class="cline-any cline-yes">164x</span>
293
293
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -415,7 +415,7 @@ export function createCoordinator(options: CoordinatorOptions): Coordinator {
415
415
  <div class='footer quiet pad2 space-top1 center small'>
416
416
  Code coverage generated by
417
417
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
418
- at 2026-06-19T00:56:38.236Z
418
+ at 2026-06-23T21:49:18.784Z
419
419
  </div>
420
420
  <script src="../prettify.js"></script>
421
421
  <script>
@@ -244,7 +244,7 @@ export function createGoalCoordinatorReducer(options: GoalCoordinatorOptions) {
244
244
  <div class='footer quiet pad2 space-top1 center small'>
245
245
  Code coverage generated by
246
246
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
247
- at 2026-06-19T00:56:38.236Z
247
+ at 2026-06-23T21:49:18.784Z
248
248
  </div>
249
249
  <script src="../prettify.js"></script>
250
250
  <script>
@@ -967,7 +967,7 @@ export function reduceGoalState(state: GoalReducerState, event: GoalReducerEvent
967
967
  <div class='footer quiet pad2 space-top1 center small'>
968
968
  Code coverage generated by
969
969
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
970
- at 2026-06-19T00:56:38.236Z
970
+ at 2026-06-23T21:49:18.784Z
971
971
  </div>
972
972
  <script src="../prettify.js"></script>
973
973
  <script>
@@ -727,7 +727,7 @@ export class GoalStore extends ReducerBackedStore&lt;GoalEntry, GoalReducerState
727
727
  <div class='footer quiet pad2 space-top1 center small'>
728
728
  Code coverage generated by
729
729
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
730
- at 2026-06-19T00:56:38.236Z
730
+ at 2026-06-23T21:49:18.784Z
731
731
  </div>
732
732
  <script src="../prettify.js"></script>
733
733
  <script>
@@ -793,7 +793,7 @@ export function verifyGoal(input: GoalVerifierInput): GoalVerifierResult {
793
793
  <div class='footer quiet pad2 space-top1 center small'>
794
794
  Code coverage generated by
795
795
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
796
- at 2026-06-19T00:56:38.236Z
796
+ at 2026-06-23T21:49:18.784Z
797
797
  </div>
798
798
  <script src="../prettify.js"></script>
799
799
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">91.75% </span>
26
+ <span class="strong">91.72% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>1057/1152</span>
28
+ <span class='fraction'>1064/1160</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">83.85% </span>
33
+ <span class="strong">83.79% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>509/607</span>
35
+ <span class='fraction'>512/611</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">98.77% </span>
40
+ <span class="strong">98.78% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>241/244</span>
42
+ <span class='fraction'>243/246</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">94.07% </span>
47
+ <span class="strong">94.01% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>952/1012</span>
49
+ <span class='fraction'>959/1020</span>
50
50
  </div>
51
51
 
52
52
 
@@ -155,17 +155,17 @@
155
155
 
156
156
  <tr>
157
157
  <td class="file high" data-value="index.ts"><a href="index.ts.html">index.ts</a></td>
158
- <td data-value="94.89" class="pic high">
158
+ <td data-value="94.48" class="pic high">
159
159
  <div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
160
160
  </td>
161
- <td data-value="94.89" class="pct high">94.89%</td>
162
- <td data-value="137" class="abs high">130/137</td>
163
- <td data-value="88.63" class="pct high">88.63%</td>
164
- <td data-value="44" class="abs high">39/44</td>
165
- <td data-value="96.55" class="pct high">96.55%</td>
166
- <td data-value="58" class="abs high">56/58</td>
167
- <td data-value="96.72" class="pct high">96.72%</td>
168
- <td data-value="122" class="abs high">118/122</td>
161
+ <td data-value="94.48" class="pct high">94.48%</td>
162
+ <td data-value="145" class="abs high">137/145</td>
163
+ <td data-value="87.5" class="pct high">87.5%</td>
164
+ <td data-value="48" class="abs high">42/48</td>
165
+ <td data-value="96.66" class="pct high">96.66%</td>
166
+ <td data-value="60" class="abs high">58/60</td>
167
+ <td data-value="96.15" class="pct high">96.15%</td>
168
+ <td data-value="130" class="abs high">125/130</td>
169
169
  </tr>
170
170
 
171
171
  <tr>
@@ -371,7 +371,7 @@
371
371
  <div class='footer quiet pad2 space-top1 center small'>
372
372
  Code coverage generated by
373
373
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
374
- at 2026-06-19T00:56:38.236Z
374
+ at 2026-06-23T21:49:18.784Z
375
375
  </div>
376
376
  <script src="../prettify.js"></script>
377
377
  <script>