@trevonistrevon/pi-loop 0.5.5 → 0.5.7
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/coverage/coverage-final.json +24 -24
- package/coverage/index.html +28 -28
- package/coverage/src/commands/index.html +1 -1
- package/coverage/src/commands/loop-command.ts.html +3 -3
- package/coverage/src/commands/tasks-command.ts.html +3 -3
- package/coverage/src/coordinator.ts.html +20 -20
- 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 +25 -25
- package/coverage/src/index.ts.html +88 -79
- package/coverage/src/loop-parse.ts.html +44 -44
- package/coverage/src/loop-reducer.ts.html +22 -22
- package/coverage/src/monitor-completion-coordinator.ts.html +1 -1
- package/coverage/src/monitor-manager.ts.html +161 -92
- package/coverage/src/monitor-reducer.ts.html +31 -31
- package/coverage/src/notification-reducer.ts.html +15 -15
- package/coverage/src/reducer-backed-store.ts.html +52 -52
- package/coverage/src/runtime/index.html +18 -18
- package/coverage/src/runtime/monitor-ondone-runtime.ts.html +5 -5
- package/coverage/src/runtime/notification-runtime.ts.html +42 -42
- package/coverage/src/runtime/scope.ts.html +17 -17
- package/coverage/src/runtime/session-runtime.ts.html +133 -49
- package/coverage/src/runtime/task-backlog-runtime.ts.html +7 -7
- package/coverage/src/runtime/task-rpc.ts.html +10 -10
- package/coverage/src/scheduler.ts.html +29 -29
- package/coverage/src/store.ts.html +17 -17
- 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 +1 -1
- package/coverage/src/tools/loop-tools.ts.html +24 -24
- package/coverage/src/tools/monitor-tools.ts.html +5 -5
- package/coverage/src/tools/native-task-tools.ts.html +6 -6
- package/coverage/src/trigger-system.ts.html +11 -11
- package/coverage/src/ui/index.html +1 -1
- package/coverage/src/ui/widget.ts.html +24 -24
- package/dist/index.js +3 -0
- package/dist/monitor-manager.d.ts +9 -0
- package/dist/monitor-manager.js +33 -12
- package/dist/runtime/session-runtime.js +27 -0
- package/package.json +1 -1
- package/src/index.ts +3 -0
- package/src/monitor-manager.ts +35 -12
- package/src/runtime/session-runtime.ts +28 -0
- package/tmp/perf-cap-data/loops.json +0 -455
- package/tmp/perf-cap-data/tasks.json +0 -1
- package/tmp/perf-data/loops-0.json +0 -1
- package/tmp/perf-data/loops-10.json +0 -1
- package/tmp/perf-data/loops-100.json +0 -1
- package/tmp/perf-data/loops-1000.json +0 -1
- package/tmp/perf-data/loops-500.json +0 -1
- package/tmp/perf-data/tasks-0.json +0 -1
- package/tmp/perf-data/tasks-10.json +0 -1
- package/tmp/perf-data/tasks-100.json +0 -1
- package/tmp/perf-data/tasks-1000.json +0 -1
- package/tmp/perf-data/tasks-500.json +0 -1
- package/tmp/perf-data-session/loops-0.json +0 -4
- package/tmp/perf-data-session/loops-100.json +0 -1805
- package/tmp/perf-data-session/loops-1000.json +0 -18005
- package/tmp/perf-data-session/loops-25.json +0 -455
- package/tmp/perf-data-session/loops-500.json +0 -9005
- package/tmp/perf-data-session/tasks-0.json +0 -1
- package/tmp/perf-data-session/tasks-100.json +0 -1
- package/tmp/perf-data-session/tasks-1000.json +0 -1
- package/tmp/perf-data-session/tasks-25.json +0 -1
- package/tmp/perf-data-session/tasks-500.json +0 -1
- package/tmp/perf-session-init.js +0 -98
- package/tmp/perf-startup-audit.js +0 -80
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"nextId":501,"tasks":[{"id":"1","subject":"Task 1","description":"Description 1","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"2","subject":"Task 2","description":"Description 2","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"3","subject":"Task 3","description":"Description 3","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"4","subject":"Task 4","description":"Description 4","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"5","subject":"Task 5","description":"Description 5","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"6","subject":"Task 6","description":"Description 6","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"7","subject":"Task 7","description":"Description 7","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"8","subject":"Task 8","description":"Description 8","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"9","subject":"Task 9","description":"Description 9","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"10","subject":"Task 10","description":"Description 10","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"11","subject":"Task 11","description":"Description 11","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"12","subject":"Task 12","description":"Description 12","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"13","subject":"Task 13","description":"Description 13","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"14","subject":"Task 14","description":"Description 14","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"15","subject":"Task 15","description":"Description 15","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"16","subject":"Task 16","description":"Description 16","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"17","subject":"Task 17","description":"Description 17","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"18","subject":"Task 18","description":"Description 18","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"19","subject":"Task 19","description":"Description 19","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"20","subject":"Task 20","description":"Description 20","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"21","subject":"Task 21","description":"Description 21","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"22","subject":"Task 22","description":"Description 22","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"23","subject":"Task 23","description":"Description 23","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"24","subject":"Task 24","description":"Description 24","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"25","subject":"Task 25","description":"Description 25","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"26","subject":"Task 26","description":"Description 26","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"27","subject":"Task 27","description":"Description 27","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"28","subject":"Task 28","description":"Description 28","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"29","subject":"Task 29","description":"Description 29","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"30","subject":"Task 30","description":"Description 30","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"31","subject":"Task 31","description":"Description 31","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"32","subject":"Task 32","description":"Description 32","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"33","subject":"Task 33","description":"Description 33","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"34","subject":"Task 34","description":"Description 34","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"35","subject":"Task 35","description":"Description 35","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"36","subject":"Task 36","description":"Description 36","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"37","subject":"Task 37","description":"Description 37","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"38","subject":"Task 38","description":"Description 38","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"39","subject":"Task 39","description":"Description 39","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"40","subject":"Task 40","description":"Description 40","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"41","subject":"Task 41","description":"Description 41","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"42","subject":"Task 42","description":"Description 42","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"43","subject":"Task 43","description":"Description 43","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"44","subject":"Task 44","description":"Description 44","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"45","subject":"Task 45","description":"Description 45","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"46","subject":"Task 46","description":"Description 46","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"47","subject":"Task 47","description":"Description 47","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"48","subject":"Task 48","description":"Description 48","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"49","subject":"Task 49","description":"Description 49","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"50","subject":"Task 50","description":"Description 50","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"51","subject":"Task 51","description":"Description 51","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"52","subject":"Task 52","description":"Description 52","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"53","subject":"Task 53","description":"Description 53","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"54","subject":"Task 54","description":"Description 54","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"55","subject":"Task 55","description":"Description 55","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"56","subject":"Task 56","description":"Description 56","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"57","subject":"Task 57","description":"Description 57","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"58","subject":"Task 58","description":"Description 58","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"59","subject":"Task 59","description":"Description 59","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"60","subject":"Task 60","description":"Description 60","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"61","subject":"Task 61","description":"Description 61","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"62","subject":"Task 62","description":"Description 62","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"63","subject":"Task 63","description":"Description 63","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"64","subject":"Task 64","description":"Description 64","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"65","subject":"Task 65","description":"Description 65","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"66","subject":"Task 66","description":"Description 66","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"67","subject":"Task 67","description":"Description 67","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"68","subject":"Task 68","description":"Description 68","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"69","subject":"Task 69","description":"Description 69","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"70","subject":"Task 70","description":"Description 70","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"71","subject":"Task 71","description":"Description 71","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"72","subject":"Task 72","description":"Description 72","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"73","subject":"Task 73","description":"Description 73","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"74","subject":"Task 74","description":"Description 74","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"75","subject":"Task 75","description":"Description 75","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"76","subject":"Task 76","description":"Description 76","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"77","subject":"Task 77","description":"Description 77","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"78","subject":"Task 78","description":"Description 78","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"79","subject":"Task 79","description":"Description 79","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"80","subject":"Task 80","description":"Description 80","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"81","subject":"Task 81","description":"Description 81","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"82","subject":"Task 82","description":"Description 82","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"83","subject":"Task 83","description":"Description 83","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"84","subject":"Task 84","description":"Description 84","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"85","subject":"Task 85","description":"Description 85","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"86","subject":"Task 86","description":"Description 86","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"87","subject":"Task 87","description":"Description 87","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"88","subject":"Task 88","description":"Description 88","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"89","subject":"Task 89","description":"Description 89","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"90","subject":"Task 90","description":"Description 90","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"91","subject":"Task 91","description":"Description 91","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"92","subject":"Task 92","description":"Description 92","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"93","subject":"Task 93","description":"Description 93","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"94","subject":"Task 94","description":"Description 94","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"95","subject":"Task 95","description":"Description 95","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"96","subject":"Task 96","description":"Description 96","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"97","subject":"Task 97","description":"Description 97","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"98","subject":"Task 98","description":"Description 98","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"99","subject":"Task 99","description":"Description 99","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"100","subject":"Task 100","description":"Description 100","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"101","subject":"Task 101","description":"Description 101","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"102","subject":"Task 102","description":"Description 102","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"103","subject":"Task 103","description":"Description 103","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"104","subject":"Task 104","description":"Description 104","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"105","subject":"Task 105","description":"Description 105","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"106","subject":"Task 106","description":"Description 106","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"107","subject":"Task 107","description":"Description 107","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"108","subject":"Task 108","description":"Description 108","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"109","subject":"Task 109","description":"Description 109","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"110","subject":"Task 110","description":"Description 110","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"111","subject":"Task 111","description":"Description 111","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"112","subject":"Task 112","description":"Description 112","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"113","subject":"Task 113","description":"Description 113","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"114","subject":"Task 114","description":"Description 114","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"115","subject":"Task 115","description":"Description 115","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"116","subject":"Task 116","description":"Description 116","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"117","subject":"Task 117","description":"Description 117","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"118","subject":"Task 118","description":"Description 118","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"119","subject":"Task 119","description":"Description 119","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"120","subject":"Task 120","description":"Description 120","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"121","subject":"Task 121","description":"Description 121","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"122","subject":"Task 122","description":"Description 122","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"123","subject":"Task 123","description":"Description 123","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"124","subject":"Task 124","description":"Description 124","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"125","subject":"Task 125","description":"Description 125","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"126","subject":"Task 126","description":"Description 126","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"127","subject":"Task 127","description":"Description 127","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"128","subject":"Task 128","description":"Description 128","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"129","subject":"Task 129","description":"Description 129","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"130","subject":"Task 130","description":"Description 130","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"131","subject":"Task 131","description":"Description 131","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"132","subject":"Task 132","description":"Description 132","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"133","subject":"Task 133","description":"Description 133","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"134","subject":"Task 134","description":"Description 134","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"135","subject":"Task 135","description":"Description 135","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"136","subject":"Task 136","description":"Description 136","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"137","subject":"Task 137","description":"Description 137","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"138","subject":"Task 138","description":"Description 138","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"139","subject":"Task 139","description":"Description 139","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"140","subject":"Task 140","description":"Description 140","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"141","subject":"Task 141","description":"Description 141","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"142","subject":"Task 142","description":"Description 142","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"143","subject":"Task 143","description":"Description 143","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"144","subject":"Task 144","description":"Description 144","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"145","subject":"Task 145","description":"Description 145","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"146","subject":"Task 146","description":"Description 146","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"147","subject":"Task 147","description":"Description 147","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"148","subject":"Task 148","description":"Description 148","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"149","subject":"Task 149","description":"Description 149","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"150","subject":"Task 150","description":"Description 150","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"151","subject":"Task 151","description":"Description 151","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"152","subject":"Task 152","description":"Description 152","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"153","subject":"Task 153","description":"Description 153","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"154","subject":"Task 154","description":"Description 154","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"155","subject":"Task 155","description":"Description 155","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"156","subject":"Task 156","description":"Description 156","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"157","subject":"Task 157","description":"Description 157","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"158","subject":"Task 158","description":"Description 158","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"159","subject":"Task 159","description":"Description 159","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"160","subject":"Task 160","description":"Description 160","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"161","subject":"Task 161","description":"Description 161","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"162","subject":"Task 162","description":"Description 162","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"163","subject":"Task 163","description":"Description 163","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"164","subject":"Task 164","description":"Description 164","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"165","subject":"Task 165","description":"Description 165","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"166","subject":"Task 166","description":"Description 166","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"167","subject":"Task 167","description":"Description 167","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"168","subject":"Task 168","description":"Description 168","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"169","subject":"Task 169","description":"Description 169","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"170","subject":"Task 170","description":"Description 170","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"171","subject":"Task 171","description":"Description 171","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"172","subject":"Task 172","description":"Description 172","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"173","subject":"Task 173","description":"Description 173","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"174","subject":"Task 174","description":"Description 174","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"175","subject":"Task 175","description":"Description 175","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"176","subject":"Task 176","description":"Description 176","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"177","subject":"Task 177","description":"Description 177","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"178","subject":"Task 178","description":"Description 178","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"179","subject":"Task 179","description":"Description 179","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"180","subject":"Task 180","description":"Description 180","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"181","subject":"Task 181","description":"Description 181","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"182","subject":"Task 182","description":"Description 182","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"183","subject":"Task 183","description":"Description 183","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"184","subject":"Task 184","description":"Description 184","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"185","subject":"Task 185","description":"Description 185","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"186","subject":"Task 186","description":"Description 186","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"187","subject":"Task 187","description":"Description 187","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"188","subject":"Task 188","description":"Description 188","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"189","subject":"Task 189","description":"Description 189","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"190","subject":"Task 190","description":"Description 190","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"191","subject":"Task 191","description":"Description 191","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"192","subject":"Task 192","description":"Description 192","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"193","subject":"Task 193","description":"Description 193","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"194","subject":"Task 194","description":"Description 194","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"195","subject":"Task 195","description":"Description 195","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"196","subject":"Task 196","description":"Description 196","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"197","subject":"Task 197","description":"Description 197","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"198","subject":"Task 198","description":"Description 198","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"199","subject":"Task 199","description":"Description 199","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"200","subject":"Task 200","description":"Description 200","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"201","subject":"Task 201","description":"Description 201","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"202","subject":"Task 202","description":"Description 202","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"203","subject":"Task 203","description":"Description 203","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"204","subject":"Task 204","description":"Description 204","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"205","subject":"Task 205","description":"Description 205","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"206","subject":"Task 206","description":"Description 206","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"207","subject":"Task 207","description":"Description 207","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"208","subject":"Task 208","description":"Description 208","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"209","subject":"Task 209","description":"Description 209","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"210","subject":"Task 210","description":"Description 210","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"211","subject":"Task 211","description":"Description 211","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"212","subject":"Task 212","description":"Description 212","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"213","subject":"Task 213","description":"Description 213","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"214","subject":"Task 214","description":"Description 214","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"215","subject":"Task 215","description":"Description 215","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"216","subject":"Task 216","description":"Description 216","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"217","subject":"Task 217","description":"Description 217","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"218","subject":"Task 218","description":"Description 218","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"219","subject":"Task 219","description":"Description 219","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"220","subject":"Task 220","description":"Description 220","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"221","subject":"Task 221","description":"Description 221","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"222","subject":"Task 222","description":"Description 222","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"223","subject":"Task 223","description":"Description 223","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"224","subject":"Task 224","description":"Description 224","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"225","subject":"Task 225","description":"Description 225","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"226","subject":"Task 226","description":"Description 226","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"227","subject":"Task 227","description":"Description 227","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"228","subject":"Task 228","description":"Description 228","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"229","subject":"Task 229","description":"Description 229","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"230","subject":"Task 230","description":"Description 230","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"231","subject":"Task 231","description":"Description 231","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"232","subject":"Task 232","description":"Description 232","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"233","subject":"Task 233","description":"Description 233","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"234","subject":"Task 234","description":"Description 234","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"235","subject":"Task 235","description":"Description 235","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"236","subject":"Task 236","description":"Description 236","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"237","subject":"Task 237","description":"Description 237","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"238","subject":"Task 238","description":"Description 238","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"239","subject":"Task 239","description":"Description 239","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"240","subject":"Task 240","description":"Description 240","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"241","subject":"Task 241","description":"Description 241","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"242","subject":"Task 242","description":"Description 242","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"243","subject":"Task 243","description":"Description 243","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"244","subject":"Task 244","description":"Description 244","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"245","subject":"Task 245","description":"Description 245","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"246","subject":"Task 246","description":"Description 246","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"247","subject":"Task 247","description":"Description 247","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"248","subject":"Task 248","description":"Description 248","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"249","subject":"Task 249","description":"Description 249","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"250","subject":"Task 250","description":"Description 250","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"251","subject":"Task 251","description":"Description 251","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"252","subject":"Task 252","description":"Description 252","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"253","subject":"Task 253","description":"Description 253","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"254","subject":"Task 254","description":"Description 254","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"255","subject":"Task 255","description":"Description 255","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"256","subject":"Task 256","description":"Description 256","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"257","subject":"Task 257","description":"Description 257","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"258","subject":"Task 258","description":"Description 258","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"259","subject":"Task 259","description":"Description 259","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"260","subject":"Task 260","description":"Description 260","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"261","subject":"Task 261","description":"Description 261","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"262","subject":"Task 262","description":"Description 262","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"263","subject":"Task 263","description":"Description 263","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"264","subject":"Task 264","description":"Description 264","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"265","subject":"Task 265","description":"Description 265","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"266","subject":"Task 266","description":"Description 266","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"267","subject":"Task 267","description":"Description 267","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"268","subject":"Task 268","description":"Description 268","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"269","subject":"Task 269","description":"Description 269","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"270","subject":"Task 270","description":"Description 270","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"271","subject":"Task 271","description":"Description 271","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"272","subject":"Task 272","description":"Description 272","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"273","subject":"Task 273","description":"Description 273","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"274","subject":"Task 274","description":"Description 274","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"275","subject":"Task 275","description":"Description 275","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"276","subject":"Task 276","description":"Description 276","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"277","subject":"Task 277","description":"Description 277","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"278","subject":"Task 278","description":"Description 278","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"279","subject":"Task 279","description":"Description 279","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"280","subject":"Task 280","description":"Description 280","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"281","subject":"Task 281","description":"Description 281","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"282","subject":"Task 282","description":"Description 282","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"283","subject":"Task 283","description":"Description 283","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"284","subject":"Task 284","description":"Description 284","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"285","subject":"Task 285","description":"Description 285","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"286","subject":"Task 286","description":"Description 286","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"287","subject":"Task 287","description":"Description 287","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"288","subject":"Task 288","description":"Description 288","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"289","subject":"Task 289","description":"Description 289","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"290","subject":"Task 290","description":"Description 290","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"291","subject":"Task 291","description":"Description 291","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"292","subject":"Task 292","description":"Description 292","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"293","subject":"Task 293","description":"Description 293","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"294","subject":"Task 294","description":"Description 294","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"295","subject":"Task 295","description":"Description 295","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"296","subject":"Task 296","description":"Description 296","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"297","subject":"Task 297","description":"Description 297","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"298","subject":"Task 298","description":"Description 298","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"299","subject":"Task 299","description":"Description 299","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"300","subject":"Task 300","description":"Description 300","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"301","subject":"Task 301","description":"Description 301","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"302","subject":"Task 302","description":"Description 302","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"303","subject":"Task 303","description":"Description 303","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"304","subject":"Task 304","description":"Description 304","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"305","subject":"Task 305","description":"Description 305","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"306","subject":"Task 306","description":"Description 306","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"307","subject":"Task 307","description":"Description 307","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"308","subject":"Task 308","description":"Description 308","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"309","subject":"Task 309","description":"Description 309","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"310","subject":"Task 310","description":"Description 310","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"311","subject":"Task 311","description":"Description 311","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"312","subject":"Task 312","description":"Description 312","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"313","subject":"Task 313","description":"Description 313","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"314","subject":"Task 314","description":"Description 314","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"315","subject":"Task 315","description":"Description 315","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"316","subject":"Task 316","description":"Description 316","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"317","subject":"Task 317","description":"Description 317","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"318","subject":"Task 318","description":"Description 318","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"319","subject":"Task 319","description":"Description 319","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"320","subject":"Task 320","description":"Description 320","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"321","subject":"Task 321","description":"Description 321","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"322","subject":"Task 322","description":"Description 322","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"323","subject":"Task 323","description":"Description 323","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"324","subject":"Task 324","description":"Description 324","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"325","subject":"Task 325","description":"Description 325","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"326","subject":"Task 326","description":"Description 326","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"327","subject":"Task 327","description":"Description 327","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"328","subject":"Task 328","description":"Description 328","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"329","subject":"Task 329","description":"Description 329","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"330","subject":"Task 330","description":"Description 330","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"331","subject":"Task 331","description":"Description 331","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"332","subject":"Task 332","description":"Description 332","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"333","subject":"Task 333","description":"Description 333","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"334","subject":"Task 334","description":"Description 334","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"335","subject":"Task 335","description":"Description 335","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"336","subject":"Task 336","description":"Description 336","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"337","subject":"Task 337","description":"Description 337","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"338","subject":"Task 338","description":"Description 338","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"339","subject":"Task 339","description":"Description 339","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"340","subject":"Task 340","description":"Description 340","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"341","subject":"Task 341","description":"Description 341","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"342","subject":"Task 342","description":"Description 342","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"343","subject":"Task 343","description":"Description 343","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"344","subject":"Task 344","description":"Description 344","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"345","subject":"Task 345","description":"Description 345","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"346","subject":"Task 346","description":"Description 346","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"347","subject":"Task 347","description":"Description 347","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"348","subject":"Task 348","description":"Description 348","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"349","subject":"Task 349","description":"Description 349","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"350","subject":"Task 350","description":"Description 350","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"351","subject":"Task 351","description":"Description 351","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"352","subject":"Task 352","description":"Description 352","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"353","subject":"Task 353","description":"Description 353","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"354","subject":"Task 354","description":"Description 354","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"355","subject":"Task 355","description":"Description 355","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"356","subject":"Task 356","description":"Description 356","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"357","subject":"Task 357","description":"Description 357","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"358","subject":"Task 358","description":"Description 358","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"359","subject":"Task 359","description":"Description 359","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"360","subject":"Task 360","description":"Description 360","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"361","subject":"Task 361","description":"Description 361","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"362","subject":"Task 362","description":"Description 362","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"363","subject":"Task 363","description":"Description 363","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"364","subject":"Task 364","description":"Description 364","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"365","subject":"Task 365","description":"Description 365","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"366","subject":"Task 366","description":"Description 366","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"367","subject":"Task 367","description":"Description 367","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"368","subject":"Task 368","description":"Description 368","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"369","subject":"Task 369","description":"Description 369","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"370","subject":"Task 370","description":"Description 370","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"371","subject":"Task 371","description":"Description 371","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"372","subject":"Task 372","description":"Description 372","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"373","subject":"Task 373","description":"Description 373","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"374","subject":"Task 374","description":"Description 374","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"375","subject":"Task 375","description":"Description 375","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"376","subject":"Task 376","description":"Description 376","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"377","subject":"Task 377","description":"Description 377","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"378","subject":"Task 378","description":"Description 378","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"379","subject":"Task 379","description":"Description 379","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"380","subject":"Task 380","description":"Description 380","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"381","subject":"Task 381","description":"Description 381","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"382","subject":"Task 382","description":"Description 382","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"383","subject":"Task 383","description":"Description 383","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"384","subject":"Task 384","description":"Description 384","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"385","subject":"Task 385","description":"Description 385","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"386","subject":"Task 386","description":"Description 386","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"387","subject":"Task 387","description":"Description 387","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"388","subject":"Task 388","description":"Description 388","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"389","subject":"Task 389","description":"Description 389","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"390","subject":"Task 390","description":"Description 390","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"391","subject":"Task 391","description":"Description 391","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"392","subject":"Task 392","description":"Description 392","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"393","subject":"Task 393","description":"Description 393","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"394","subject":"Task 394","description":"Description 394","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"395","subject":"Task 395","description":"Description 395","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"396","subject":"Task 396","description":"Description 396","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"397","subject":"Task 397","description":"Description 397","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"398","subject":"Task 398","description":"Description 398","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"399","subject":"Task 399","description":"Description 399","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"400","subject":"Task 400","description":"Description 400","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"401","subject":"Task 401","description":"Description 401","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"402","subject":"Task 402","description":"Description 402","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"403","subject":"Task 403","description":"Description 403","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"404","subject":"Task 404","description":"Description 404","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"405","subject":"Task 405","description":"Description 405","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"406","subject":"Task 406","description":"Description 406","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"407","subject":"Task 407","description":"Description 407","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"408","subject":"Task 408","description":"Description 408","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"409","subject":"Task 409","description":"Description 409","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"410","subject":"Task 410","description":"Description 410","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"411","subject":"Task 411","description":"Description 411","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"412","subject":"Task 412","description":"Description 412","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"413","subject":"Task 413","description":"Description 413","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"414","subject":"Task 414","description":"Description 414","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"415","subject":"Task 415","description":"Description 415","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"416","subject":"Task 416","description":"Description 416","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"417","subject":"Task 417","description":"Description 417","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"418","subject":"Task 418","description":"Description 418","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"419","subject":"Task 419","description":"Description 419","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"420","subject":"Task 420","description":"Description 420","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"421","subject":"Task 421","description":"Description 421","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"422","subject":"Task 422","description":"Description 422","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"423","subject":"Task 423","description":"Description 423","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"424","subject":"Task 424","description":"Description 424","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"425","subject":"Task 425","description":"Description 425","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"426","subject":"Task 426","description":"Description 426","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"427","subject":"Task 427","description":"Description 427","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"428","subject":"Task 428","description":"Description 428","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"429","subject":"Task 429","description":"Description 429","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"430","subject":"Task 430","description":"Description 430","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"431","subject":"Task 431","description":"Description 431","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"432","subject":"Task 432","description":"Description 432","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"433","subject":"Task 433","description":"Description 433","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"434","subject":"Task 434","description":"Description 434","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"435","subject":"Task 435","description":"Description 435","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"436","subject":"Task 436","description":"Description 436","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"437","subject":"Task 437","description":"Description 437","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"438","subject":"Task 438","description":"Description 438","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"439","subject":"Task 439","description":"Description 439","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"440","subject":"Task 440","description":"Description 440","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"441","subject":"Task 441","description":"Description 441","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"442","subject":"Task 442","description":"Description 442","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"443","subject":"Task 443","description":"Description 443","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"444","subject":"Task 444","description":"Description 444","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"445","subject":"Task 445","description":"Description 445","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"446","subject":"Task 446","description":"Description 446","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"447","subject":"Task 447","description":"Description 447","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"448","subject":"Task 448","description":"Description 448","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"449","subject":"Task 449","description":"Description 449","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"450","subject":"Task 450","description":"Description 450","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"451","subject":"Task 451","description":"Description 451","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"452","subject":"Task 452","description":"Description 452","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"453","subject":"Task 453","description":"Description 453","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"454","subject":"Task 454","description":"Description 454","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"455","subject":"Task 455","description":"Description 455","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"456","subject":"Task 456","description":"Description 456","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"457","subject":"Task 457","description":"Description 457","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"458","subject":"Task 458","description":"Description 458","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"459","subject":"Task 459","description":"Description 459","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"460","subject":"Task 460","description":"Description 460","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"461","subject":"Task 461","description":"Description 461","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"462","subject":"Task 462","description":"Description 462","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"463","subject":"Task 463","description":"Description 463","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"464","subject":"Task 464","description":"Description 464","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"465","subject":"Task 465","description":"Description 465","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"466","subject":"Task 466","description":"Description 466","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"467","subject":"Task 467","description":"Description 467","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"468","subject":"Task 468","description":"Description 468","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"469","subject":"Task 469","description":"Description 469","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"470","subject":"Task 470","description":"Description 470","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"471","subject":"Task 471","description":"Description 471","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"472","subject":"Task 472","description":"Description 472","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"473","subject":"Task 473","description":"Description 473","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"474","subject":"Task 474","description":"Description 474","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"475","subject":"Task 475","description":"Description 475","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"476","subject":"Task 476","description":"Description 476","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"477","subject":"Task 477","description":"Description 477","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"478","subject":"Task 478","description":"Description 478","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"479","subject":"Task 479","description":"Description 479","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"480","subject":"Task 480","description":"Description 480","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"481","subject":"Task 481","description":"Description 481","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"482","subject":"Task 482","description":"Description 482","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"483","subject":"Task 483","description":"Description 483","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"484","subject":"Task 484","description":"Description 484","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"485","subject":"Task 485","description":"Description 485","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"486","subject":"Task 486","description":"Description 486","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"487","subject":"Task 487","description":"Description 487","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"488","subject":"Task 488","description":"Description 488","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"489","subject":"Task 489","description":"Description 489","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"490","subject":"Task 490","description":"Description 490","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"491","subject":"Task 491","description":"Description 491","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"492","subject":"Task 492","description":"Description 492","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"493","subject":"Task 493","description":"Description 493","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"494","subject":"Task 494","description":"Description 494","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"495","subject":"Task 495","description":"Description 495","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"496","subject":"Task 496","description":"Description 496","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"497","subject":"Task 497","description":"Description 497","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"498","subject":"Task 498","description":"Description 498","status":"completed","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"499","subject":"Task 499","description":"Description 499","status":"pending","createdAt":1780943884750,"updatedAt":1780943884750},{"id":"500","subject":"Task 500","description":"Description 500","status":"in_progress","createdAt":1780943884750,"updatedAt":1780943884750}]}
|
package/tmp/perf-session-init.js
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { mkdirSync, rmSync, writeFileSync } from "node:fs";
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
import { performance } from "node:perf_hooks";
|
|
4
|
-
import { LoopStore } from "../dist/store.js";
|
|
5
|
-
import { TaskStore } from "../dist/task-store.js";
|
|
6
|
-
import { CronScheduler } from "../dist/scheduler.js";
|
|
7
|
-
|
|
8
|
-
const root = join(process.cwd(), "tmp", "perf-data-session");
|
|
9
|
-
rmSync(root, { recursive: true, force: true });
|
|
10
|
-
mkdirSync(root, { recursive: true });
|
|
11
|
-
|
|
12
|
-
function makeLoop(id) {
|
|
13
|
-
const now = Date.now();
|
|
14
|
-
return {
|
|
15
|
-
id: String(id),
|
|
16
|
-
prompt: `Loop ${id}`,
|
|
17
|
-
trigger: { type: "cron", schedule: "*/5 * * * *" },
|
|
18
|
-
recurring: true,
|
|
19
|
-
autoTask: false,
|
|
20
|
-
taskBacklog: false,
|
|
21
|
-
readOnly: false,
|
|
22
|
-
maxFires: 30,
|
|
23
|
-
fireCount: 0,
|
|
24
|
-
status: "active",
|
|
25
|
-
createdAt: now,
|
|
26
|
-
updatedAt: now,
|
|
27
|
-
expiresAt: now + 7 * 24 * 60 * 60 * 1000,
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
function makeTask(id) {
|
|
32
|
-
const now = Date.now();
|
|
33
|
-
return {
|
|
34
|
-
id: String(id),
|
|
35
|
-
subject: `Task ${id}`,
|
|
36
|
-
description: `Description ${id}`,
|
|
37
|
-
status: id % 3 === 0 ? "completed" : id % 2 === 0 ? "in_progress" : "pending",
|
|
38
|
-
createdAt: now,
|
|
39
|
-
updatedAt: now,
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
function writeStore(path, key, count, maker) {
|
|
44
|
-
writeFileSync(path, JSON.stringify({ nextId: count + 1, [key]: Array.from({ length: count }, (_, i) => maker(i + 1)) }));
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
function runScenario(loopCount, taskCount) {
|
|
48
|
-
const loopPath = join(root, `loops-${loopCount}.json`);
|
|
49
|
-
const taskPath = join(root, `tasks-${taskCount}.json`);
|
|
50
|
-
writeStore(loopPath, "loops", loopCount, makeLoop);
|
|
51
|
-
writeStore(taskPath, "tasks", taskCount, makeTask);
|
|
52
|
-
|
|
53
|
-
const loopStore = new LoopStore(loopPath);
|
|
54
|
-
const taskStore = new TaskStore(taskPath);
|
|
55
|
-
const scheduler = new CronScheduler(loopStore, () => {});
|
|
56
|
-
|
|
57
|
-
const t0 = performance.now();
|
|
58
|
-
const loops = loopStore.list();
|
|
59
|
-
loopStore.clearExpired();
|
|
60
|
-
loopStore.expireEventLoops(Date.now());
|
|
61
|
-
scheduler.start();
|
|
62
|
-
const activeLoops = loopStore.list().filter(l => l.status === "active");
|
|
63
|
-
const activeTasks = taskStore.list().filter(t => t.status === "pending" || t.status === "in_progress");
|
|
64
|
-
const elapsed = performance.now() - t0;
|
|
65
|
-
|
|
66
|
-
return {
|
|
67
|
-
loopCount,
|
|
68
|
-
taskCount,
|
|
69
|
-
elapsed,
|
|
70
|
-
activeLoops: activeLoops.length,
|
|
71
|
-
activeTasks: activeTasks.length,
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
const scenarios = [
|
|
76
|
-
[0, 0],
|
|
77
|
-
[25, 25],
|
|
78
|
-
[100, 100],
|
|
79
|
-
[500, 500],
|
|
80
|
-
[1000, 1000],
|
|
81
|
-
];
|
|
82
|
-
|
|
83
|
-
const results = [];
|
|
84
|
-
for (const [loops, tasks] of scenarios) {
|
|
85
|
-
const runs = [];
|
|
86
|
-
for (let i = 0; i < 30; i++) runs.push(runScenario(loops, tasks).elapsed);
|
|
87
|
-
runs.sort((a, b) => a - b);
|
|
88
|
-
const avg = runs.reduce((a, b) => a + b, 0) / runs.length;
|
|
89
|
-
results.push({
|
|
90
|
-
loops,
|
|
91
|
-
tasks,
|
|
92
|
-
avg,
|
|
93
|
-
p50: runs[Math.floor(runs.length * 0.5)],
|
|
94
|
-
p95: runs[Math.floor(runs.length * 0.95)],
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
console.log(JSON.stringify(results, null, 2));
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { mkdirSync, rmSync, writeFileSync } from "node:fs";
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
import { performance } from "node:perf_hooks";
|
|
4
|
-
import { LoopStore } from "../dist/store.js";
|
|
5
|
-
import { TaskStore } from "../dist/task-store.js";
|
|
6
|
-
|
|
7
|
-
const root = join(process.cwd(), "tmp", "perf-data");
|
|
8
|
-
rmSync(root, { recursive: true, force: true });
|
|
9
|
-
mkdirSync(root, { recursive: true });
|
|
10
|
-
|
|
11
|
-
function makeLoop(id) {
|
|
12
|
-
const now = Date.now();
|
|
13
|
-
return {
|
|
14
|
-
id: String(id),
|
|
15
|
-
prompt: `Loop ${id}`,
|
|
16
|
-
trigger: { type: "cron", schedule: "*/5 * * * *" },
|
|
17
|
-
recurring: true,
|
|
18
|
-
autoTask: false,
|
|
19
|
-
taskBacklog: false,
|
|
20
|
-
readOnly: false,
|
|
21
|
-
maxFires: 30,
|
|
22
|
-
fireCount: 0,
|
|
23
|
-
status: "active",
|
|
24
|
-
createdAt: now,
|
|
25
|
-
updatedAt: now,
|
|
26
|
-
expiresAt: now + 7 * 24 * 60 * 60 * 1000,
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
function makeTask(id) {
|
|
31
|
-
const now = Date.now();
|
|
32
|
-
return {
|
|
33
|
-
id: String(id),
|
|
34
|
-
subject: `Task ${id}`,
|
|
35
|
-
description: `Description ${id}`,
|
|
36
|
-
status: id % 3 === 0 ? "completed" : id % 2 === 0 ? "in_progress" : "pending",
|
|
37
|
-
createdAt: now,
|
|
38
|
-
updatedAt: now,
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
function writeStore(path, key, count, maker) {
|
|
43
|
-
writeFileSync(path, JSON.stringify({ nextId: count + 1, [key]: Array.from({ length: count }, (_, i) => maker(i + 1)) }));
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
function bench(label, fn, iters = 50) {
|
|
47
|
-
const times = [];
|
|
48
|
-
for (let i = 0; i < iters; i++) {
|
|
49
|
-
const t0 = performance.now();
|
|
50
|
-
fn();
|
|
51
|
-
times.push(performance.now() - t0);
|
|
52
|
-
}
|
|
53
|
-
times.sort((a, b) => a - b);
|
|
54
|
-
const avg = times.reduce((a, b) => a + b, 0) / times.length;
|
|
55
|
-
const p50 = times[Math.floor(times.length * 0.5)];
|
|
56
|
-
const p95 = times[Math.floor(times.length * 0.95)];
|
|
57
|
-
return { label, avg, p50, p95 };
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
const sizes = [0, 10, 100, 500, 1000];
|
|
61
|
-
const results = [];
|
|
62
|
-
for (const n of sizes) {
|
|
63
|
-
const loopPath = join(root, `loops-${n}.json`);
|
|
64
|
-
const taskPath = join(root, `tasks-${n}.json`);
|
|
65
|
-
writeStore(loopPath, "loops", n, makeLoop);
|
|
66
|
-
writeStore(taskPath, "tasks", n, makeTask);
|
|
67
|
-
|
|
68
|
-
const loopCtor = bench(`LoopStore ctor ${n}`, () => { new LoopStore(loopPath); });
|
|
69
|
-
const taskCtor = bench(`TaskStore ctor ${n}`, () => { new TaskStore(taskPath); });
|
|
70
|
-
|
|
71
|
-
const loopStore = new LoopStore(loopPath);
|
|
72
|
-
const taskStore = new TaskStore(taskPath);
|
|
73
|
-
const loopList = bench(`LoopStore.list ${n}`, () => { loopStore.list(); });
|
|
74
|
-
const taskList = bench(`TaskStore.list ${n}`, () => { taskStore.list(); });
|
|
75
|
-
const taskPending = bench(`TaskStore.pendingCount ${n}`, () => { taskStore.pendingCount(); });
|
|
76
|
-
|
|
77
|
-
results.push(loopCtor, taskCtor, loopList, taskList, taskPending);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
console.log(JSON.stringify(results, null, 2));
|