@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.
- package/.release-please-manifest.json +3 -0
- package/Dockerfile +17 -0
- package/coverage/coverage-final.json +25 -24
- package/coverage/index.html +42 -42
- package/coverage/src/commands/index.html +15 -15
- package/coverage/src/commands/loop-command.ts.html +3 -3
- package/coverage/src/commands/tasks-command.ts.html +23 -23
- package/coverage/src/coordinator.ts.html +3 -3
- package/coverage/src/goal-coordinator.ts.html +1 -1
- package/coverage/src/goal-reducer.ts.html +1 -1
- package/coverage/src/goal-store.ts.html +1 -1
- package/coverage/src/goal-verifier.ts.html +1 -1
- package/coverage/src/index.html +18 -18
- package/coverage/src/index.ts.html +126 -78
- package/coverage/src/loop-parse.ts.html +38 -38
- package/coverage/src/loop-reducer.ts.html +17 -17
- package/coverage/src/monitor-completion-coordinator.ts.html +1 -1
- package/coverage/src/monitor-manager.ts.html +16 -16
- package/coverage/src/monitor-reducer.ts.html +10 -10
- package/coverage/src/notification-reducer.ts.html +11 -11
- package/coverage/src/reducer-backed-store.ts.html +49 -49
- package/coverage/src/runtime/index.html +35 -20
- package/coverage/src/runtime/monitor-ondone-runtime.ts.html +5 -5
- package/coverage/src/runtime/notification-runtime.ts.html +25 -25
- package/coverage/src/runtime/scope.ts.html +12 -12
- package/coverage/src/runtime/session-runtime.ts.html +23 -23
- package/coverage/src/runtime/task-backlog-runtime.ts.html +7 -7
- package/coverage/src/runtime/task-events.ts.html +208 -0
- package/coverage/src/runtime/task-rpc.ts.html +21 -15
- package/coverage/src/scheduler.ts.html +25 -25
- package/coverage/src/store.ts.html +12 -12
- package/coverage/src/task-backlog-coordinator.ts.html +1 -1
- package/coverage/src/task-reducer.ts.html +1 -1
- package/coverage/src/task-store.ts.html +5 -5
- package/coverage/src/tools/index.html +11 -11
- package/coverage/src/tools/loop-tools.ts.html +5 -5
- package/coverage/src/tools/monitor-tools.ts.html +5 -5
- package/coverage/src/tools/native-task-tools.ts.html +41 -20
- package/coverage/src/trigger-system.ts.html +8 -8
- package/coverage/src/ui/index.html +1 -1
- package/coverage/src/ui/widget.ts.html +5 -5
- package/dist/index.js +34 -19
- package/dist/monitor-manager.d.ts +4 -1
- package/dist/monitor-manager.js +5 -3
- package/docker-compose.yml +12 -0
- package/package.json +1 -1
- package/release-please-config.json +9 -0
- package/src/index.ts +37 -21
- package/src/monitor-manager.ts +11 -3
- package/vitest.config.ts +4 -0
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">84.
|
|
26
|
+
<span class="strong">84.93% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>62/73</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">86.
|
|
47
|
+
<span class="strong">86.76% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>59/68</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -213,7 +213,9 @@
|
|
|
213
213
|
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
214
|
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
215
|
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
-
<a name='L151'></a><a href='#L151'>151</a
|
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
217
219
|
<span class="cline-any cline-neutral"> </span>
|
|
218
220
|
<span class="cline-any cline-neutral"> </span>
|
|
219
221
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -244,20 +246,21 @@
|
|
|
244
246
|
<span class="cline-any cline-neutral"> </span>
|
|
245
247
|
<span class="cline-any cline-neutral"> </span>
|
|
246
248
|
<span class="cline-any cline-neutral"> </span>
|
|
247
|
-
<span class="cline-any cline-yes">71x</span>
|
|
248
249
|
<span class="cline-any cline-neutral"> </span>
|
|
250
|
+
<span class="cline-any cline-yes">73x</span>
|
|
249
251
|
<span class="cline-any cline-neutral"> </span>
|
|
250
|
-
<span class="cline-any cline-yes">63x</span>
|
|
251
|
-
<span class="cline-any cline-yes">63x</span>
|
|
252
|
-
<span class="cline-any cline-yes">45x</span>
|
|
253
252
|
<span class="cline-any cline-neutral"> </span>
|
|
254
|
-
<span class="cline-any cline-yes">
|
|
253
|
+
<span class="cline-any cline-yes">65x</span>
|
|
254
|
+
<span class="cline-any cline-yes">65x</span>
|
|
255
|
+
<span class="cline-any cline-yes">47x</span>
|
|
256
|
+
<span class="cline-any cline-neutral"> </span>
|
|
257
|
+
<span class="cline-any cline-yes">65x</span>
|
|
255
258
|
<span class="cline-any cline-yes">3x</span>
|
|
256
259
|
<span class="cline-any cline-yes">3x</span>
|
|
257
260
|
<span class="cline-any cline-yes">3x</span>
|
|
258
261
|
<span class="cline-any cline-yes">3x</span>
|
|
259
262
|
<span class="cline-any cline-neutral"> </span>
|
|
260
|
-
<span class="cline-any cline-yes">
|
|
263
|
+
<span class="cline-any cline-yes">65x</span>
|
|
261
264
|
<span class="cline-any cline-neutral"> </span>
|
|
262
265
|
<span class="cline-any cline-neutral"> </span>
|
|
263
266
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -298,11 +301,12 @@
|
|
|
298
301
|
<span class="cline-any cline-neutral"> </span>
|
|
299
302
|
<span class="cline-any cline-neutral"> </span>
|
|
300
303
|
<span class="cline-any cline-yes">2x</span>
|
|
304
|
+
<span class="cline-any cline-yes">2x</span>
|
|
301
305
|
<span class="cline-any cline-yes">4x</span>
|
|
302
306
|
<span class="cline-any cline-neutral"> </span>
|
|
303
307
|
<span class="cline-any cline-neutral"> </span>
|
|
304
308
|
<span class="cline-any cline-neutral"> </span>
|
|
305
|
-
<span class="cline-any cline-yes">
|
|
309
|
+
<span class="cline-any cline-yes">43x</span>
|
|
306
310
|
<span class="cline-any cline-yes">3x</span>
|
|
307
311
|
<span class="cline-any cline-yes">3x</span>
|
|
308
312
|
<span class="cline-any cline-yes">3x</span>
|
|
@@ -324,7 +328,7 @@
|
|
|
324
328
|
<span class="cline-any cline-neutral"> </span>
|
|
325
329
|
<span class="cline-any cline-neutral"> </span>
|
|
326
330
|
<span class="cline-any cline-neutral"> </span>
|
|
327
|
-
<span class="cline-any cline-yes">
|
|
331
|
+
<span class="cline-any cline-yes">40x</span>
|
|
328
332
|
<span class="cline-any cline-neutral"> </span>
|
|
329
333
|
<span class="cline-any cline-neutral"> </span>
|
|
330
334
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -356,7 +360,7 @@
|
|
|
356
360
|
<span class="cline-any cline-yes">4x</span>
|
|
357
361
|
<span class="cline-any cline-neutral"> </span>
|
|
358
362
|
<span class="cline-any cline-neutral"> </span>
|
|
359
|
-
<span class="cline-any cline-yes">
|
|
363
|
+
<span class="cline-any cline-yes">73x</span>
|
|
360
364
|
<span class="cline-any cline-neutral"> </span>
|
|
361
365
|
<span class="cline-any cline-neutral"> </span>
|
|
362
366
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -367,6 +371,7 @@
|
|
|
367
371
|
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
368
372
|
import type { TaskStore } from "../task-store.js";
|
|
369
373
|
import type { LoopEntry } from "../types.js";
|
|
374
|
+
import { emitNativeTaskEvent } from "./task-events.js";
|
|
370
375
|
|
|
371
376
|
export interface TaskRuntimeBridgeOptions {
|
|
372
377
|
pi: ExtensionAPI;
|
|
@@ -447,6 +452,7 @@ export function createTaskRuntimeBridge(options: TaskRuntimeBridgeOptions): Task
|
|
|
447
452
|
`Auto-created from loop #${entry.id}`,
|
|
448
453
|
{ loopId: entry.id, trigger: entry.trigger },
|
|
449
454
|
);
|
|
455
|
+
emitNativeTaskEvent(pi, "tasks:created", task);
|
|
450
456
|
onNativeTaskCreated?.(nativeTaskStore);
|
|
451
457
|
return task.id;
|
|
452
458
|
}
|
|
@@ -520,7 +526,7 @@ export function createTaskRuntimeBridge(options: TaskRuntimeBridgeOptions): Task
|
|
|
520
526
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
521
527
|
Code coverage generated by
|
|
522
528
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
523
|
-
at 2026-06-
|
|
529
|
+
at 2026-06-23T21:49:18.784Z
|
|
524
530
|
</div>
|
|
525
531
|
<script src="../../prettify.js"></script>
|
|
526
532
|
<script>
|
|
@@ -175,18 +175,18 @@
|
|
|
175
175
|
<span class="cline-any cline-yes">5x</span>
|
|
176
176
|
<span class="cline-any cline-neutral"> </span>
|
|
177
177
|
<span class="cline-any cline-neutral"> </span>
|
|
178
|
-
<span class="cline-any cline-yes">
|
|
179
|
-
<span class="cline-any cline-yes">
|
|
178
|
+
<span class="cline-any cline-yes">33x</span>
|
|
179
|
+
<span class="cline-any cline-yes">33x</span>
|
|
180
180
|
<span class="cline-any cline-neutral"> </span>
|
|
181
181
|
<span class="cline-any cline-no"> </span>
|
|
182
182
|
<span class="cline-any cline-neutral"> </span>
|
|
183
183
|
<span class="cline-any cline-neutral"> </span>
|
|
184
184
|
<span class="cline-any cline-neutral"> </span>
|
|
185
|
-
<span class="cline-any cline-yes">
|
|
185
|
+
<span class="cline-any cline-yes">134x</span>
|
|
186
186
|
<span class="cline-any cline-neutral"> </span>
|
|
187
187
|
<span class="cline-any cline-neutral"> </span>
|
|
188
|
-
<span class="cline-any cline-yes">
|
|
189
|
-
<span class="cline-any cline-yes">
|
|
188
|
+
<span class="cline-any cline-yes">134x</span>
|
|
189
|
+
<span class="cline-any cline-yes">134x</span>
|
|
190
190
|
<span class="cline-any cline-neutral"> </span>
|
|
191
191
|
<span class="cline-any cline-neutral"> </span>
|
|
192
192
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -217,56 +217,56 @@
|
|
|
217
217
|
<span class="cline-any cline-neutral"> </span>
|
|
218
218
|
<span class="cline-any cline-neutral"> </span>
|
|
219
219
|
<span class="cline-any cline-neutral"> </span>
|
|
220
|
-
<span class="cline-any cline-yes">
|
|
220
|
+
<span class="cline-any cline-yes">33x</span>
|
|
221
221
|
<span class="cline-any cline-neutral"> </span>
|
|
222
|
-
<span class="cline-any cline-yes">
|
|
223
|
-
<span class="cline-any cline-yes">
|
|
224
|
-
<span class="cline-any cline-yes">
|
|
225
|
-
<span class="cline-any cline-yes">
|
|
226
|
-
<span class="cline-any cline-yes">
|
|
222
|
+
<span class="cline-any cline-yes">33x</span>
|
|
223
|
+
<span class="cline-any cline-yes">33x</span>
|
|
224
|
+
<span class="cline-any cline-yes">33x</span>
|
|
225
|
+
<span class="cline-any cline-yes">33x</span>
|
|
226
|
+
<span class="cline-any cline-yes">33x</span>
|
|
227
227
|
<span class="cline-any cline-neutral"> </span>
|
|
228
|
-
<span class="cline-any cline-yes">
|
|
228
|
+
<span class="cline-any cline-yes">33x</span>
|
|
229
229
|
<span class="cline-any cline-yes">1x</span>
|
|
230
230
|
<span class="cline-any cline-yes">1x</span>
|
|
231
231
|
<span class="cline-any cline-neutral"> </span>
|
|
232
232
|
<span class="cline-any cline-neutral"> </span>
|
|
233
|
-
<span class="cline-any cline-yes">
|
|
233
|
+
<span class="cline-any cline-yes">32x</span>
|
|
234
234
|
<span class="cline-any cline-neutral"> </span>
|
|
235
235
|
<span class="cline-any cline-neutral"> </span>
|
|
236
236
|
<span class="cline-any cline-neutral"> </span>
|
|
237
237
|
<span class="cline-any cline-yes">171x</span>
|
|
238
|
-
<span class="cline-any cline-yes">
|
|
238
|
+
<span class="cline-any cline-yes">72x</span>
|
|
239
239
|
<span class="cline-any cline-neutral"> </span>
|
|
240
|
-
<span class="cline-any cline-yes">
|
|
241
|
-
<span class="cline-any cline-yes">
|
|
240
|
+
<span class="cline-any cline-yes">22x</span>
|
|
241
|
+
<span class="cline-any cline-yes">22x</span>
|
|
242
242
|
<span class="cline-any cline-yes">1x</span>
|
|
243
243
|
<span class="cline-any cline-yes">1x</span>
|
|
244
244
|
<span class="cline-any cline-neutral"> </span>
|
|
245
245
|
<span class="cline-any cline-neutral"> </span>
|
|
246
|
-
<span class="cline-any cline-yes">
|
|
246
|
+
<span class="cline-any cline-yes">21x</span>
|
|
247
247
|
<span class="cline-any cline-neutral"> </span>
|
|
248
|
-
<span class="cline-any cline-yes">
|
|
248
|
+
<span class="cline-any cline-yes">10x</span>
|
|
249
249
|
<span class="cline-any cline-no"> </span>
|
|
250
250
|
<span class="cline-any cline-no"> </span>
|
|
251
251
|
<span class="cline-any cline-no"> </span>
|
|
252
252
|
<span class="cline-any cline-neutral"> </span>
|
|
253
253
|
<span class="cline-any cline-neutral"> </span>
|
|
254
|
-
<span class="cline-any cline-yes">
|
|
254
|
+
<span class="cline-any cline-yes">10x</span>
|
|
255
255
|
<span class="cline-any cline-neutral"> </span>
|
|
256
|
-
<span class="cline-any cline-yes">
|
|
257
|
-
<span class="cline-any cline-yes">
|
|
256
|
+
<span class="cline-any cline-yes">10x</span>
|
|
257
|
+
<span class="cline-any cline-yes">10x</span>
|
|
258
258
|
<span class="cline-any cline-no"> </span>
|
|
259
259
|
<span class="cline-any cline-no"> </span>
|
|
260
260
|
<span class="cline-any cline-neutral"> </span>
|
|
261
261
|
<span class="cline-any cline-neutral"> </span>
|
|
262
|
-
<span class="cline-any cline-yes">
|
|
262
|
+
<span class="cline-any cline-yes">10x</span>
|
|
263
263
|
<span class="cline-any cline-yes">1x</span>
|
|
264
264
|
<span class="cline-any cline-yes">1x</span>
|
|
265
265
|
<span class="cline-any cline-yes">1x</span>
|
|
266
266
|
<span class="cline-any cline-neutral"> </span>
|
|
267
267
|
<span class="cline-any cline-neutral"> </span>
|
|
268
|
-
<span class="cline-any cline-yes">
|
|
269
|
-
<span class="cline-any cline-yes">
|
|
268
|
+
<span class="cline-any cline-yes">9x</span>
|
|
269
|
+
<span class="cline-any cline-yes">7x</span>
|
|
270
270
|
<span class="cline-any cline-neutral"> </span>
|
|
271
271
|
<span class="cline-any cline-yes">2x</span>
|
|
272
272
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -385,7 +385,7 @@ export class CronScheduler {
|
|
|
385
385
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
386
386
|
Code coverage generated by
|
|
387
387
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
388
|
-
at 2026-06-
|
|
388
|
+
at 2026-06-23T21:49:18.784Z
|
|
389
389
|
</div>
|
|
390
390
|
<script src="../prettify.js"></script>
|
|
391
391
|
<script>
|
|
@@ -268,14 +268,14 @@
|
|
|
268
268
|
<span class="cline-any cline-neutral"> </span>
|
|
269
269
|
<span class="cline-any cline-neutral"> </span>
|
|
270
270
|
<span class="cline-any cline-neutral"> </span>
|
|
271
|
-
<span class="cline-any cline-yes">
|
|
271
|
+
<span class="cline-any cline-yes">202x</span>
|
|
272
272
|
<span class="cline-any cline-neutral"> </span>
|
|
273
273
|
<span class="cline-any cline-neutral"> </span>
|
|
274
|
-
<span class="cline-any cline-yes">
|
|
275
|
-
<span class="cline-any cline-yes">
|
|
276
|
-
<span class="cline-any cline-yes">
|
|
277
|
-
<span class="cline-any cline-yes">
|
|
278
|
-
<span class="cline-any cline-yes">
|
|
274
|
+
<span class="cline-any cline-yes">192x</span>
|
|
275
|
+
<span class="cline-any cline-yes">192x</span>
|
|
276
|
+
<span class="cline-any cline-yes">192x</span>
|
|
277
|
+
<span class="cline-any cline-yes">62x</span>
|
|
278
|
+
<span class="cline-any cline-yes">38x</span>
|
|
279
279
|
<span class="cline-any cline-neutral"> </span>
|
|
280
280
|
<span class="cline-any cline-neutral"> </span>
|
|
281
281
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -339,10 +339,10 @@
|
|
|
339
339
|
<span class="cline-any cline-neutral"> </span>
|
|
340
340
|
<span class="cline-any cline-neutral"> </span>
|
|
341
341
|
<span class="cline-any cline-neutral"> </span>
|
|
342
|
-
<span class="cline-any cline-yes">
|
|
343
|
-
<span class="cline-any cline-yes">
|
|
344
|
-
<span class="cline-any cline-yes">
|
|
345
|
-
<span class="cline-any cline-yes">
|
|
342
|
+
<span class="cline-any cline-yes">27x</span>
|
|
343
|
+
<span class="cline-any cline-yes">27x</span>
|
|
344
|
+
<span class="cline-any cline-yes">27x</span>
|
|
345
|
+
<span class="cline-any cline-yes">27x</span>
|
|
346
346
|
<span class="cline-any cline-neutral"> </span>
|
|
347
347
|
<span class="cline-any cline-neutral"> </span>
|
|
348
348
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -350,7 +350,7 @@
|
|
|
350
350
|
<span class="cline-any cline-neutral"> </span>
|
|
351
351
|
<span class="cline-any cline-neutral"> </span>
|
|
352
352
|
<span class="cline-any cline-neutral"> </span>
|
|
353
|
-
<span class="cline-any cline-yes">
|
|
353
|
+
<span class="cline-any cline-yes">27x</span>
|
|
354
354
|
<span class="cline-any cline-neutral"> </span>
|
|
355
355
|
<span class="cline-any cline-neutral"> </span>
|
|
356
356
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -652,7 +652,7 @@ export class LoopStore extends ReducerBackedStore<LoopEntry, LoopReducerState
|
|
|
652
652
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
653
653
|
Code coverage generated by
|
|
654
654
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
655
|
-
at 2026-06-
|
|
655
|
+
at 2026-06-23T21:49:18.784Z
|
|
656
656
|
</div>
|
|
657
657
|
<script src="../prettify.js"></script>
|
|
658
658
|
<script>
|
|
@@ -166,7 +166,7 @@ export function reduceTaskBacklogEvent(event: TaskBacklogEvent): TaskBacklogEffe
|
|
|
166
166
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
167
167
|
Code coverage generated by
|
|
168
168
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
169
|
-
at 2026-06-
|
|
169
|
+
at 2026-06-23T21:49:18.784Z
|
|
170
170
|
</div>
|
|
171
171
|
<script src="../prettify.js"></script>
|
|
172
172
|
<script>
|
|
@@ -535,7 +535,7 @@ export function reduceTaskState(state: TaskReducerState, event: TaskReducerEvent
|
|
|
535
535
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
536
536
|
Code coverage generated by
|
|
537
537
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
538
|
-
at 2026-06-
|
|
538
|
+
at 2026-06-23T21:49:18.784Z
|
|
539
539
|
</div>
|
|
540
540
|
<script src="../prettify.js"></script>
|
|
541
541
|
<script>
|
|
@@ -221,7 +221,7 @@
|
|
|
221
221
|
<span class="cline-any cline-neutral"> </span>
|
|
222
222
|
<span class="cline-any cline-neutral"> </span>
|
|
223
223
|
<span class="cline-any cline-neutral"> </span>
|
|
224
|
-
<span class="cline-any cline-yes">
|
|
224
|
+
<span class="cline-any cline-yes">75x</span>
|
|
225
225
|
<span class="cline-any cline-neutral"> </span>
|
|
226
226
|
<span class="cline-any cline-neutral"> </span>
|
|
227
227
|
<span class="cline-any cline-yes">139x</span>
|
|
@@ -336,11 +336,11 @@
|
|
|
336
336
|
<span class="cline-any cline-neutral"> </span>
|
|
337
337
|
<span class="cline-any cline-neutral"> </span>
|
|
338
338
|
<span class="cline-any cline-neutral"> </span>
|
|
339
|
-
<span class="cline-any cline-yes">
|
|
340
|
-
<span class="cline-any cline-yes">
|
|
339
|
+
<span class="cline-any cline-yes">127x</span>
|
|
340
|
+
<span class="cline-any cline-yes">127x</span>
|
|
341
341
|
<span class="cline-any cline-yes">339x</span>
|
|
342
342
|
<span class="cline-any cline-neutral"> </span>
|
|
343
|
-
<span class="cline-any cline-yes">
|
|
343
|
+
<span class="cline-any cline-yes">127x</span>
|
|
344
344
|
<span class="cline-any cline-neutral"> </span>
|
|
345
345
|
<span class="cline-any cline-neutral"> </span>
|
|
346
346
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -511,7 +511,7 @@ export class TaskStore extends ReducerBackedStore<TaskEntry, TaskReducerState
|
|
|
511
511
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
512
512
|
Code coverage generated by
|
|
513
513
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
514
|
-
at 2026-06-
|
|
514
|
+
at 2026-06-23T21:49:18.784Z
|
|
515
515
|
</div>
|
|
516
516
|
<script src="../prettify.js"></script>
|
|
517
517
|
<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.
|
|
26
|
+
<span class="strong">90.95% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>181/199</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">81.7% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>134/164</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">91.
|
|
47
|
+
<span class="strong">91.9% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>159/173</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -114,13 +114,13 @@
|
|
|
114
114
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
115
115
|
</td>
|
|
116
116
|
<td data-value="100" class="pct high">100%</td>
|
|
117
|
-
<td data-value="
|
|
118
|
-
<td data-value="
|
|
119
|
-
<td data-value="
|
|
117
|
+
<td data-value="62" class="abs high">62/62</td>
|
|
118
|
+
<td data-value="84.09" class="pct high">84.09%</td>
|
|
119
|
+
<td data-value="44" class="abs high">37/44</td>
|
|
120
120
|
<td data-value="100" class="pct high">100%</td>
|
|
121
121
|
<td data-value="6" class="abs high">6/6</td>
|
|
122
122
|
<td data-value="100" class="pct high">100%</td>
|
|
123
|
-
<td data-value="
|
|
123
|
+
<td data-value="53" class="abs high">53/53</td>
|
|
124
124
|
</tr>
|
|
125
125
|
|
|
126
126
|
</tbody>
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
132
132
|
Code coverage generated by
|
|
133
133
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
134
|
-
at 2026-06-
|
|
134
|
+
at 2026-06-23T21:49:18.784Z
|
|
135
135
|
</div>
|
|
136
136
|
<script src="../../prettify.js"></script>
|
|
137
137
|
<script>
|
|
@@ -465,9 +465,9 @@
|
|
|
465
465
|
<span class="cline-any cline-neutral"> </span>
|
|
466
466
|
<span class="cline-any cline-neutral"> </span>
|
|
467
467
|
<span class="cline-any cline-neutral"> </span>
|
|
468
|
-
<span class="cline-any cline-yes">
|
|
468
|
+
<span class="cline-any cline-yes">76x</span>
|
|
469
469
|
<span class="cline-any cline-neutral"> </span>
|
|
470
|
-
<span class="cline-any cline-yes">
|
|
470
|
+
<span class="cline-any cline-yes">76x</span>
|
|
471
471
|
<span class="cline-any cline-neutral"> </span>
|
|
472
472
|
<span class="cline-any cline-neutral"> </span>
|
|
473
473
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -608,7 +608,7 @@
|
|
|
608
608
|
<span class="cline-any cline-neutral"> </span>
|
|
609
609
|
<span class="cline-any cline-neutral"> </span>
|
|
610
610
|
<span class="cline-any cline-neutral"> </span>
|
|
611
|
-
<span class="cline-any cline-yes">
|
|
611
|
+
<span class="cline-any cline-yes">76x</span>
|
|
612
612
|
<span class="cline-any cline-neutral"> </span>
|
|
613
613
|
<span class="cline-any cline-neutral"> </span>
|
|
614
614
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -644,7 +644,7 @@
|
|
|
644
644
|
<span class="cline-any cline-neutral"> </span>
|
|
645
645
|
<span class="cline-any cline-neutral"> </span>
|
|
646
646
|
<span class="cline-any cline-neutral"> </span>
|
|
647
|
-
<span class="cline-any cline-yes">
|
|
647
|
+
<span class="cline-any cline-yes">76x</span>
|
|
648
648
|
<span class="cline-any cline-neutral"> </span>
|
|
649
649
|
<span class="cline-any cline-neutral"> </span>
|
|
650
650
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -985,7 +985,7 @@ Use "pause" to temporarily stop a loop without removing it. Use "delete" to perm
|
|
|
985
985
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
986
986
|
Code coverage generated by
|
|
987
987
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
988
|
-
at 2026-06-
|
|
988
|
+
at 2026-06-23T21:49:18.784Z
|
|
989
989
|
</div>
|
|
990
990
|
<script src="../../prettify.js"></script>
|
|
991
991
|
<script>
|
|
@@ -256,9 +256,9 @@
|
|
|
256
256
|
<span class="cline-any cline-neutral"> </span>
|
|
257
257
|
<span class="cline-any cline-neutral"> </span>
|
|
258
258
|
<span class="cline-any cline-neutral"> </span>
|
|
259
|
-
<span class="cline-any cline-yes">
|
|
259
|
+
<span class="cline-any cline-yes">70x</span>
|
|
260
260
|
<span class="cline-any cline-neutral"> </span>
|
|
261
|
-
<span class="cline-any cline-yes">
|
|
261
|
+
<span class="cline-any cline-yes">70x</span>
|
|
262
262
|
<span class="cline-any cline-neutral"> </span>
|
|
263
263
|
<span class="cline-any cline-neutral"> </span>
|
|
264
264
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -324,7 +324,7 @@
|
|
|
324
324
|
<span class="cline-any cline-neutral"> </span>
|
|
325
325
|
<span class="cline-any cline-neutral"> </span>
|
|
326
326
|
<span class="cline-any cline-neutral"> </span>
|
|
327
|
-
<span class="cline-any cline-yes">
|
|
327
|
+
<span class="cline-any cline-yes">70x</span>
|
|
328
328
|
<span class="cline-any cline-neutral"> </span>
|
|
329
329
|
<span class="cline-any cline-neutral"> </span>
|
|
330
330
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -354,7 +354,7 @@
|
|
|
354
354
|
<span class="cline-any cline-neutral"> </span>
|
|
355
355
|
<span class="cline-any cline-neutral"> </span>
|
|
356
356
|
<span class="cline-any cline-neutral"> </span>
|
|
357
|
-
<span class="cline-any cline-yes">
|
|
357
|
+
<span class="cline-any cline-yes">70x</span>
|
|
358
358
|
<span class="cline-any cline-neutral"> </span>
|
|
359
359
|
<span class="cline-any cline-neutral"> </span>
|
|
360
360
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -532,7 +532,7 @@ Use MonitorList to find the monitor ID, then stop it with this tool.`,
|
|
|
532
532
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
533
533
|
Code coverage generated by
|
|
534
534
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
535
|
-
at 2026-06-
|
|
535
|
+
at 2026-06-23T21:49:18.784Z
|
|
536
536
|
</div>
|
|
537
537
|
<script src="../../prettify.js"></script>
|
|
538
538
|
<script>
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>62/62</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">84.09% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>37/44</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>53/53</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -213,7 +213,15 @@
|
|
|
213
213
|
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
214
|
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
215
|
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
-
<a name='L151'></a><a href='#L151'>151</a
|
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
+
<a name='L158'></a><a href='#L158'>158</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
224
|
+
<span class="cline-any cline-neutral"> </span>
|
|
217
225
|
<span class="cline-any cline-neutral"> </span>
|
|
218
226
|
<span class="cline-any cline-neutral"> </span>
|
|
219
227
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -263,11 +271,6 @@
|
|
|
263
271
|
<span class="cline-any cline-neutral"> </span>
|
|
264
272
|
<span class="cline-any cline-yes">42x</span>
|
|
265
273
|
<span class="cline-any cline-yes">42x</span>
|
|
266
|
-
<span class="cline-any cline-neutral"> </span>
|
|
267
|
-
<span class="cline-any cline-neutral"> </span>
|
|
268
|
-
<span class="cline-any cline-neutral"> </span>
|
|
269
|
-
<span class="cline-any cline-neutral"> </span>
|
|
270
|
-
<span class="cline-any cline-neutral"> </span>
|
|
271
274
|
<span class="cline-any cline-yes">42x</span>
|
|
272
275
|
<span class="cline-any cline-yes">42x</span>
|
|
273
276
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -327,12 +330,21 @@
|
|
|
327
330
|
<span class="cline-any cline-yes">31x</span>
|
|
328
331
|
<span class="cline-any cline-neutral"> </span>
|
|
329
332
|
<span class="cline-any cline-yes">30x</span>
|
|
333
|
+
<span class="cline-any cline-yes">30x</span>
|
|
334
|
+
<span class="cline-any cline-yes">3x</span>
|
|
335
|
+
<span class="cline-any cline-yes">3x</span>
|
|
330
336
|
<span class="cline-any cline-yes">27x</span>
|
|
337
|
+
<span class="cline-any cline-yes">19x</span>
|
|
338
|
+
<span class="cline-any cline-yes">19x</span>
|
|
331
339
|
<span class="cline-any cline-yes">8x</span>
|
|
340
|
+
<span class="cline-any cline-yes">7x</span>
|
|
341
|
+
<span class="cline-any cline-yes">7x</span>
|
|
342
|
+
<span class="cline-any cline-neutral"> </span>
|
|
332
343
|
<span class="cline-any cline-neutral"> </span>
|
|
333
344
|
<span class="cline-any cline-yes">30x</span>
|
|
334
345
|
<span class="cline-any cline-yes">30x</span>
|
|
335
346
|
<span class="cline-any cline-yes">1x</span>
|
|
347
|
+
<span class="cline-any cline-yes">1x</span>
|
|
336
348
|
<span class="cline-any cline-neutral"> </span>
|
|
337
349
|
<span class="cline-any cline-yes">30x</span>
|
|
338
350
|
<span class="cline-any cline-yes">30x</span>
|
|
@@ -356,6 +368,8 @@
|
|
|
356
368
|
<span class="cline-any cline-yes">2x</span>
|
|
357
369
|
<span class="cline-any cline-yes">2x</span>
|
|
358
370
|
<span class="cline-any cline-yes">2x</span>
|
|
371
|
+
<span class="cline-any cline-yes">2x</span>
|
|
372
|
+
<span class="cline-any cline-yes">1x</span>
|
|
359
373
|
<span class="cline-any cline-yes">1x</span>
|
|
360
374
|
<span class="cline-any cline-yes">1x</span>
|
|
361
375
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -365,6 +379,7 @@
|
|
|
365
379
|
<span class="cline-any cline-neutral"> </span>
|
|
366
380
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
367
381
|
import { Type } from "typebox";
|
|
382
|
+
import { emitNativeTaskEvent } from "../runtime/task-events.js";
|
|
368
383
|
import { TaskStore } from "../task-store.js";
|
|
369
384
|
|
|
370
385
|
export interface TaskBacklogResult {
|
|
@@ -412,12 +427,7 @@ Fields:
|
|
|
412
427
|
}),
|
|
413
428
|
async execute(_toolCallId, params) {
|
|
414
429
|
const entry = taskStore.create(params.subject, params.description);
|
|
415
|
-
pi
|
|
416
|
-
taskId: entry.id,
|
|
417
|
-
subject: entry.subject,
|
|
418
|
-
description: entry.description,
|
|
419
|
-
status: entry.status,
|
|
420
|
-
});
|
|
430
|
+
emitNativeTaskEvent(pi, "tasks:created", entry);
|
|
421
431
|
const backlog = await evaluateTaskBacklog(taskStore, taskStore.pendingCount());
|
|
422
432
|
updateWidget();
|
|
423
433
|
|
|
@@ -476,13 +486,22 @@ Parameters: id (required), status, subject, description`,
|
|
|
476
486
|
let entry = taskStore.get(id);
|
|
477
487
|
if (!entry) return Promise.resolve(textResult(`Task #${id} not found`));
|
|
478
488
|
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
489
|
+
const previousStatus = entry.status;
|
|
490
|
+
if (status === "in_progress") {
|
|
491
|
+
entry = taskStore.start(id);
|
|
492
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (entry) emitNativeTaskEvent(pi, "tasks:started", entry, previousStatus);
|
|
493
|
+
} else if (status === "completed") {
|
|
494
|
+
entry = taskStore.complete(id);
|
|
495
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (entry) emitNativeTaskEvent(pi, "tasks:completed", entry, previousStatus);
|
|
496
|
+
} else if (status === "pending") {
|
|
497
|
+
entry = taskStore.reopen(id);
|
|
498
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (entry) emitNativeTaskEvent(pi, "tasks:reopened", entry, previousStatus);
|
|
499
|
+
}
|
|
482
500
|
|
|
483
501
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (!entry) return Promise.resolve(textResult(`Task #${id} not found`));
|
|
484
502
|
if (subject !== undefined || description !== undefined) {
|
|
485
503
|
entry = taskStore.updateDetails(id, { subject, description });
|
|
504
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (entry) emitNativeTaskEvent(pi, "tasks:updated", entry, previousStatus);
|
|
486
505
|
}
|
|
487
506
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (!entry) return Promise.resolve(textResult(`Task #${id} not found`));
|
|
488
507
|
updateWidget();
|
|
@@ -503,9 +522,11 @@ Parameters: id (required), status, subject, description`,
|
|
|
503
522
|
id: Type.String({ description: "Task ID to delete" }),
|
|
504
523
|
}),
|
|
505
524
|
async execute(_toolCallId, params) {
|
|
525
|
+
const existing = taskStore.get(params.id);
|
|
506
526
|
const deleted = taskStore.delete(params.id);
|
|
507
527
|
updateWidget();
|
|
508
528
|
if (deleted) {
|
|
529
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (existing) emitNativeTaskEvent(pi, "tasks:deleted", existing, existing.status);
|
|
509
530
|
await evaluateTaskBacklog(taskStore, taskStore.pendingCount());
|
|
510
531
|
return Promise.resolve(textResult(`Task #${params.id} deleted`));
|
|
511
532
|
}
|
|
@@ -520,7 +541,7 @@ Parameters: id (required), status, subject, description`,
|
|
|
520
541
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
521
542
|
Code coverage generated by
|
|
522
543
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
523
|
-
at 2026-06-
|
|
544
|
+
at 2026-06-23T21:49:18.784Z
|
|
524
545
|
</div>
|
|
525
546
|
<script src="../../prettify.js"></script>
|
|
526
547
|
<script>
|