@usine/engine 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/README.md +109 -36
  2. package/dist/board-moves/board-moves.d.ts +20 -0
  3. package/dist/board-moves/board-moves.d.ts.map +1 -0
  4. package/dist/board-moves/board-moves.js +74 -0
  5. package/dist/board-moves/board-moves.js.map +1 -0
  6. package/dist/board-moves/model.d.ts +21 -0
  7. package/dist/board-moves/model.d.ts.map +1 -0
  8. package/dist/board-moves/model.js +22 -0
  9. package/dist/board-moves/model.js.map +1 -0
  10. package/dist/cursor/cursor.d.ts +2 -6
  11. package/dist/cursor/cursor.d.ts.map +1 -1
  12. package/dist/cursor/cursor.js +2 -6
  13. package/dist/cursor/cursor.js.map +1 -1
  14. package/dist/cycle-budget/cycle-budget.d.ts +6 -6
  15. package/dist/cycle-budget/cycle-budget.d.ts.map +1 -1
  16. package/dist/cycle-budget/cycle-budget.js +5 -5
  17. package/dist/cycle-budget/cycle-budget.js.map +1 -1
  18. package/dist/cycle-budget/model.d.ts +2 -2
  19. package/dist/cycle-budget/model.d.ts.map +1 -1
  20. package/dist/cycle-budget/model.js +2 -2
  21. package/dist/cycle-budget/model.js.map +1 -1
  22. package/dist/cycle-budget/queries.d.ts +1 -1
  23. package/dist/cycle-budget/queries.d.ts.map +1 -1
  24. package/dist/cycle-budget/queries.js +3 -3
  25. package/dist/cycle-budget/queries.js.map +1 -1
  26. package/dist/database/database.d.ts +1 -1
  27. package/dist/database/database.d.ts.map +1 -1
  28. package/dist/database/local-sqlite.d.ts +10 -8
  29. package/dist/database/local-sqlite.d.ts.map +1 -1
  30. package/dist/database/local-sqlite.js +16 -9
  31. package/dist/database/local-sqlite.js.map +1 -1
  32. package/dist/database/schema.d.ts +581 -22
  33. package/dist/database/schema.d.ts.map +1 -1
  34. package/dist/database/schema.js +104 -23
  35. package/dist/database/schema.js.map +1 -1
  36. package/dist/{workflow → engine}/admission.d.ts +2 -2
  37. package/dist/engine/admission.d.ts.map +1 -0
  38. package/dist/{workflow → engine}/admission.js +4 -4
  39. package/dist/engine/admission.js.map +1 -0
  40. package/dist/engine/checkout-recovery.d.ts +69 -0
  41. package/dist/engine/checkout-recovery.d.ts.map +1 -0
  42. package/dist/engine/checkout-recovery.js +181 -0
  43. package/dist/engine/checkout-recovery.js.map +1 -0
  44. package/dist/engine/engine.d.ts +57 -24
  45. package/dist/engine/engine.d.ts.map +1 -1
  46. package/dist/engine/engine.js +144 -120
  47. package/dist/engine/engine.js.map +1 -1
  48. package/dist/engine/error.d.ts +36 -9
  49. package/dist/engine/error.d.ts.map +1 -1
  50. package/dist/engine/error.js +35 -7
  51. package/dist/engine/error.js.map +1 -1
  52. package/dist/engine/lifecycle.d.ts +81 -28
  53. package/dist/engine/lifecycle.d.ts.map +1 -1
  54. package/dist/engine/lifecycle.js +83 -44
  55. package/dist/engine/lifecycle.js.map +1 -1
  56. package/dist/engine/retry.d.ts +16 -0
  57. package/dist/engine/retry.d.ts.map +1 -0
  58. package/dist/engine/retry.js +18 -0
  59. package/dist/engine/retry.js.map +1 -0
  60. package/dist/engine/run-again.d.ts +45 -0
  61. package/dist/engine/run-again.d.ts.map +1 -0
  62. package/dist/engine/run-again.js +56 -0
  63. package/dist/engine/run-again.js.map +1 -0
  64. package/dist/engine/run-driver.d.ts +54 -0
  65. package/dist/engine/run-driver.d.ts.map +1 -0
  66. package/dist/engine/run-driver.js +362 -0
  67. package/dist/engine/run-driver.js.map +1 -0
  68. package/dist/engine/shutdown.d.ts +3 -4
  69. package/dist/engine/shutdown.d.ts.map +1 -1
  70. package/dist/engine/shutdown.js +3 -4
  71. package/dist/engine/shutdown.js.map +1 -1
  72. package/dist/engine/submission.d.ts +31 -11
  73. package/dist/engine/submission.d.ts.map +1 -1
  74. package/dist/engine/submission.js +42 -12
  75. package/dist/engine/submission.js.map +1 -1
  76. package/dist/item-projection/item-projection.d.ts +12 -4
  77. package/dist/item-projection/item-projection.d.ts.map +1 -1
  78. package/dist/item-projection/item-projection.js +41 -6
  79. package/dist/item-projection/item-projection.js.map +1 -1
  80. package/dist/item-projection/model.d.ts +5 -1
  81. package/dist/item-projection/model.d.ts.map +1 -1
  82. package/dist/item-projection/model.js +6 -2
  83. package/dist/item-projection/model.js.map +1 -1
  84. package/dist/loop-control/loop-control.d.ts +5 -5
  85. package/dist/loop-control/loop-control.d.ts.map +1 -1
  86. package/dist/loop-control/loop-control.js +4 -4
  87. package/dist/loop-control/loop-control.js.map +1 -1
  88. package/dist/loop-control/model.d.ts +1 -1
  89. package/dist/loop-control/model.d.ts.map +1 -1
  90. package/dist/loop-control/model.js +1 -1
  91. package/dist/loop-control/model.js.map +1 -1
  92. package/dist/repository-label-projection/model.d.ts +2 -2
  93. package/dist/repository-label-projection/model.d.ts.map +1 -1
  94. package/dist/repository-label-projection/model.js +2 -2
  95. package/dist/repository-label-projection/model.js.map +1 -1
  96. package/dist/repository-label-projection/repository-label-projection.d.ts +1 -1
  97. package/dist/repository-label-projection/repository-label-projection.d.ts.map +1 -1
  98. package/dist/repository-label-projection/repository-label-projection.js +1 -1
  99. package/dist/repository-label-projection/repository-label-projection.js.map +1 -1
  100. package/dist/run-reader/model.d.ts +62 -4
  101. package/dist/run-reader/model.d.ts.map +1 -1
  102. package/dist/run-reader/model.js +66 -7
  103. package/dist/run-reader/model.js.map +1 -1
  104. package/dist/run-reader/run-reader.d.ts +19 -9
  105. package/dist/run-reader/run-reader.d.ts.map +1 -1
  106. package/dist/run-reader/run-reader.js +23 -7
  107. package/dist/run-reader/run-reader.js.map +1 -1
  108. package/dist/step-executor.d.ts +65 -9
  109. package/dist/step-executor.d.ts.map +1 -1
  110. package/dist/step-executor.js +10 -2
  111. package/dist/step-executor.js.map +1 -1
  112. package/dist/store/attempt-windows.d.ts +8 -0
  113. package/dist/store/attempt-windows.d.ts.map +1 -0
  114. package/dist/store/attempt-windows.js +53 -0
  115. package/dist/store/attempt-windows.js.map +1 -0
  116. package/dist/store/codec.d.ts +381 -42
  117. package/dist/store/codec.d.ts.map +1 -1
  118. package/dist/store/codec.js +59 -15
  119. package/dist/store/codec.js.map +1 -1
  120. package/dist/store/leftovers.d.ts +10 -0
  121. package/dist/store/leftovers.d.ts.map +1 -0
  122. package/dist/store/leftovers.js +43 -0
  123. package/dist/store/leftovers.js.map +1 -0
  124. package/dist/store/loop-items.d.ts +16 -0
  125. package/dist/store/loop-items.d.ts.map +1 -0
  126. package/dist/store/loop-items.js +185 -0
  127. package/dist/store/loop-items.js.map +1 -0
  128. package/dist/store/queries.d.ts +345 -37
  129. package/dist/store/queries.d.ts.map +1 -1
  130. package/dist/store/queries.js +333 -160
  131. package/dist/store/queries.js.map +1 -1
  132. package/dist/store/store.d.ts +91 -54
  133. package/dist/store/store.d.ts.map +1 -1
  134. package/dist/store/store.js +481 -190
  135. package/dist/store/store.js.map +1 -1
  136. package/dist/store/transcript.d.ts +9 -0
  137. package/dist/store/transcript.d.ts.map +1 -0
  138. package/dist/store/transcript.js +90 -0
  139. package/dist/store/transcript.js.map +1 -0
  140. package/dist/transcript.d.ts +41 -20
  141. package/dist/transcript.d.ts.map +1 -1
  142. package/dist/transcript.js +45 -25
  143. package/dist/transcript.js.map +1 -1
  144. package/dist/trigger-condition.d.ts +23 -0
  145. package/dist/trigger-condition.d.ts.map +1 -0
  146. package/dist/trigger-condition.js +8 -0
  147. package/dist/trigger-condition.js.map +1 -0
  148. package/drizzle/20260912111855_operator_intervention/migration.sql +42 -0
  149. package/drizzle/20260912111855_operator_intervention/snapshot.json +1461 -0
  150. package/drizzle/20260917071139_resolve_run_failure/migration.sql +1 -0
  151. package/drizzle/20260917071139_resolve_run_failure/snapshot.json +1471 -0
  152. package/drizzle/20260918032643_attempt_salvage/migration.sql +1 -0
  153. package/drizzle/20260918032643_attempt_salvage/snapshot.json +1481 -0
  154. package/drizzle/20261011153856_drop_workflow_tables/migration.sql +4 -0
  155. package/drizzle/20261011153856_drop_workflow_tables/snapshot.json +1433 -0
  156. package/drizzle/20261017155043_attempt_salvage_check/migration.sql +41 -0
  157. package/drizzle/20261017155043_attempt_salvage_check/snapshot.json +1421 -0
  158. package/drizzle/20261018162700_discard_attempt_leftovers/migration.sql +1 -0
  159. package/drizzle/20261018162700_discard_attempt_leftovers/snapshot.json +1431 -0
  160. package/drizzle/20261018172605_loop_items_and_reopenings/migration.sql +15 -0
  161. package/drizzle/20261018172605_loop_items_and_reopenings/snapshot.json +1574 -0
  162. package/drizzle/20261018180339_attempt_ended_at/migration.sql +1 -0
  163. package/drizzle/20261018180339_attempt_ended_at/snapshot.json +1584 -0
  164. package/drizzle/20261019104043_run_approval_source/migration.sql +15 -0
  165. package/drizzle/20261019104043_run_approval_source/snapshot.json +1610 -0
  166. package/drizzle/20261019133538_board_moves/migration.sql +14 -0
  167. package/drizzle/20261019133538_board_moves/snapshot.json +1731 -0
  168. package/drizzle/20261019170538_item_projection_gone/migration.sql +1 -0
  169. package/drizzle/20261019170538_item_projection_gone/snapshot.json +1741 -0
  170. package/drizzle/20261019180649_run_again_events/migration.sql +7 -0
  171. package/drizzle/20261019180649_run_again_events/snapshot.json +1804 -0
  172. package/drizzle/20261019185008_trigger_event_permissions/migration.sql +1 -0
  173. package/drizzle/20261019185008_trigger_event_permissions/snapshot.json +1814 -0
  174. package/drizzle/20261020103746_attempt_start/migration.sql +5 -0
  175. package/drizzle/20261020103746_attempt_start/snapshot.json +1844 -0
  176. package/drizzle/20261020125211_attempt_comments/migration.sql +1 -0
  177. package/drizzle/20261020125211_attempt_comments/snapshot.json +1854 -0
  178. package/drizzle/20261020191320_run_closed_at/migration.sql +6 -0
  179. package/drizzle/20261020191320_run_closed_at/snapshot.json +1864 -0
  180. package/drizzle/20261023091428_rename_loop_item_hold_to_suppression/migration.sql +2 -0
  181. package/drizzle/20261023091428_rename_loop_item_hold_to_suppression/snapshot.json +1867 -0
  182. package/package.json +15 -5
  183. package/dist/workflow/admission.d.ts.map +0 -1
  184. package/dist/workflow/admission.js.map +0 -1
  185. package/dist/workflow/command.d.ts +0 -13
  186. package/dist/workflow/command.d.ts.map +0 -1
  187. package/dist/workflow/command.js +0 -17
  188. package/dist/workflow/command.js.map +0 -1
  189. package/dist/workflow/workflow.d.ts +0 -18
  190. package/dist/workflow/workflow.d.ts.map +0 -1
  191. package/dist/workflow/workflow.js +0 -108
  192. package/dist/workflow/workflow.js.map +0 -1
@@ -68,6 +68,7 @@ export declare const events: import("drizzle-orm/sqlite-core").SQLiteTableWithCo
68
68
  }, {}>;
69
69
  };
70
70
  dialect: 'sqlite';
71
+ isAlias: false;
71
72
  }>;
72
73
  export declare const triggerEvents: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
73
74
  name: "usine_trigger_events";
@@ -153,6 +154,22 @@ export declare const triggerEvents: import("drizzle-orm/sqlite-core").SQLiteTabl
153
154
  identity: undefined;
154
155
  generated: undefined;
155
156
  }, {}>;
157
+ permissions: import("drizzle-orm/sqlite-core").SQLiteColumn<{
158
+ name: string;
159
+ tableName: "usine_trigger_events";
160
+ dataType: "string enum";
161
+ data: "read" | "write";
162
+ driverParam: string;
163
+ notNull: true;
164
+ hasDefault: true;
165
+ isPrimaryKey: false;
166
+ isAutoincrement: false;
167
+ hasRuntimeDefault: false;
168
+ enumValues: ["write", "read"];
169
+ baseColumn: never;
170
+ identity: undefined;
171
+ generated: undefined;
172
+ }, {}>;
156
173
  cycleLimit: import("drizzle-orm/sqlite-core").SQLiteColumn<{
157
174
  name: string;
158
175
  tableName: "usine_trigger_events";
@@ -265,8 +282,134 @@ export declare const triggerEvents: import("drizzle-orm/sqlite-core").SQLiteTabl
265
282
  identity: undefined;
266
283
  generated: undefined;
267
284
  }, {}>;
285
+ reopensEventId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
286
+ name: string;
287
+ tableName: "usine_trigger_events";
288
+ dataType: "string";
289
+ data: string & import("effect/Brand").Brand<"EventId">;
290
+ driverParam: string;
291
+ notNull: false;
292
+ hasDefault: false;
293
+ isPrimaryKey: false;
294
+ isAutoincrement: false;
295
+ hasRuntimeDefault: false;
296
+ enumValues: [string, ...string[]];
297
+ baseColumn: never;
298
+ identity: undefined;
299
+ generated: undefined;
300
+ }, {}>;
301
+ reopening: import("drizzle-orm/sqlite-core").SQLiteColumn<{
302
+ name: string;
303
+ tableName: "usine_trigger_events";
304
+ dataType: "number int53";
305
+ data: number;
306
+ driverParam: number;
307
+ notNull: true;
308
+ hasDefault: true;
309
+ isPrimaryKey: false;
310
+ isAutoincrement: false;
311
+ hasRuntimeDefault: false;
312
+ enumValues: undefined;
313
+ baseColumn: never;
314
+ identity: undefined;
315
+ generated: undefined;
316
+ }, {}>;
268
317
  };
269
318
  dialect: 'sqlite';
319
+ isAlias: false;
320
+ }>;
321
+ /**
322
+ * The Event a trigger last submitted for each Loop and Item, or `null` after a non-matching
323
+ * sighting. After an Attempt stops with a question or blocker, `suppressedByRunId` is its Run and
324
+ * `suppressedEventId` is the Item's state after the stop, which opens no Run (#241, #341).
325
+ */
326
+ export declare const loopItems: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
327
+ name: "usine_loop_items";
328
+ schema: undefined;
329
+ columns: {
330
+ loopName: import("drizzle-orm/sqlite-core").SQLiteColumn<{
331
+ name: string;
332
+ tableName: "usine_loop_items";
333
+ dataType: "string";
334
+ data: string & import("effect/Brand").Brand<"LoopName">;
335
+ driverParam: string;
336
+ notNull: true;
337
+ hasDefault: false;
338
+ isPrimaryKey: false;
339
+ isAutoincrement: false;
340
+ hasRuntimeDefault: false;
341
+ enumValues: [string, ...string[]];
342
+ baseColumn: never;
343
+ identity: undefined;
344
+ generated: undefined;
345
+ }, {}>;
346
+ itemKey: import("drizzle-orm/sqlite-core").SQLiteColumn<{
347
+ name: string;
348
+ tableName: "usine_loop_items";
349
+ dataType: "string";
350
+ data: string & import("effect/Brand").Brand<"ItemKey">;
351
+ driverParam: string;
352
+ notNull: true;
353
+ hasDefault: false;
354
+ isPrimaryKey: false;
355
+ isAutoincrement: false;
356
+ hasRuntimeDefault: false;
357
+ enumValues: [string, ...string[]];
358
+ baseColumn: never;
359
+ identity: undefined;
360
+ generated: undefined;
361
+ }, {}>;
362
+ observedEventId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
363
+ name: string;
364
+ tableName: "usine_loop_items";
365
+ dataType: "string";
366
+ data: string & import("effect/Brand").Brand<"EventId">;
367
+ driverParam: string;
368
+ notNull: false;
369
+ hasDefault: false;
370
+ isPrimaryKey: false;
371
+ isAutoincrement: false;
372
+ hasRuntimeDefault: false;
373
+ enumValues: [string, ...string[]];
374
+ baseColumn: never;
375
+ identity: undefined;
376
+ generated: undefined;
377
+ }, {}>;
378
+ suppressedByRunId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
379
+ name: string;
380
+ tableName: "usine_loop_items";
381
+ dataType: "string";
382
+ data: string & import("effect/Brand").Brand<"RunId">;
383
+ driverParam: string;
384
+ notNull: false;
385
+ hasDefault: false;
386
+ isPrimaryKey: false;
387
+ isAutoincrement: false;
388
+ hasRuntimeDefault: false;
389
+ enumValues: [string, ...string[]];
390
+ baseColumn: never;
391
+ identity: undefined;
392
+ generated: undefined;
393
+ }, {}>;
394
+ suppressedEventId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
395
+ name: string;
396
+ tableName: "usine_loop_items";
397
+ dataType: "string";
398
+ data: string & import("effect/Brand").Brand<"EventId">;
399
+ driverParam: string;
400
+ notNull: false;
401
+ hasDefault: false;
402
+ isPrimaryKey: false;
403
+ isAutoincrement: false;
404
+ hasRuntimeDefault: false;
405
+ enumValues: [string, ...string[]];
406
+ baseColumn: never;
407
+ identity: undefined;
408
+ generated: undefined;
409
+ }, {}>;
410
+ };
411
+ dialect: 'sqlite';
412
+ isAlias: false;
270
413
  }>;
271
414
  export declare const itemCycleBudgets: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
272
415
  name: "usine_item_cycle_budgets";
@@ -354,6 +497,7 @@ export declare const itemCycleBudgets: import("drizzle-orm/sqlite-core").SQLiteT
354
497
  }, {}>;
355
498
  };
356
499
  dialect: 'sqlite';
500
+ isAlias: false;
357
501
  }>;
358
502
  export declare const cycleReservations: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
359
503
  name: "usine_cycle_reservations";
@@ -425,6 +569,7 @@ export declare const cycleReservations: import("drizzle-orm/sqlite-core").SQLite
425
569
  }, {}>;
426
570
  };
427
571
  dialect: 'sqlite';
572
+ isAlias: false;
428
573
  }>;
429
574
  export declare const cycleResets: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
430
575
  name: "usine_cycle_resets";
@@ -480,6 +625,7 @@ export declare const cycleResets: import("drizzle-orm/sqlite-core").SQLiteTableW
480
625
  }, {}>;
481
626
  };
482
627
  dialect: 'sqlite';
628
+ isAlias: false;
483
629
  }>;
484
630
  export declare const runs: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
485
631
  name: "usine_runs";
@@ -549,6 +695,22 @@ export declare const runs: import("drizzle-orm/sqlite-core").SQLiteTableWithColu
549
695
  identity: undefined;
550
696
  generated: undefined;
551
697
  }, {}>;
698
+ resolvedFailureAttemptId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
699
+ name: string;
700
+ tableName: "usine_runs";
701
+ dataType: "string";
702
+ data: string & import("effect/Brand").Brand<"AttemptId">;
703
+ driverParam: string;
704
+ notNull: false;
705
+ hasDefault: false;
706
+ isPrimaryKey: false;
707
+ isAutoincrement: false;
708
+ hasRuntimeDefault: false;
709
+ enumValues: [string, ...string[]];
710
+ baseColumn: never;
711
+ identity: undefined;
712
+ generated: undefined;
713
+ }, {}>;
552
714
  openedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
553
715
  name: string;
554
716
  tableName: "usine_runs";
@@ -565,6 +727,22 @@ export declare const runs: import("drizzle-orm/sqlite-core").SQLiteTableWithColu
565
727
  identity: undefined;
566
728
  generated: undefined;
567
729
  }, {}>;
730
+ closedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
731
+ name: string;
732
+ tableName: "usine_runs";
733
+ dataType: "string";
734
+ data: string;
735
+ driverParam: string;
736
+ notNull: false;
737
+ hasDefault: false;
738
+ isPrimaryKey: false;
739
+ isAutoincrement: false;
740
+ hasRuntimeDefault: false;
741
+ enumValues: [string, ...string[]];
742
+ baseColumn: never;
743
+ identity: undefined;
744
+ generated: undefined;
745
+ }, {}>;
568
746
  repository: import("drizzle-orm/sqlite-core").SQLiteColumn<{
569
747
  name: string;
570
748
  tableName: "usine_runs";
@@ -645,8 +823,25 @@ export declare const runs: import("drizzle-orm/sqlite-core").SQLiteTableWithColu
645
823
  identity: undefined;
646
824
  generated: undefined;
647
825
  }, {}>;
826
+ nextStartJson: import("drizzle-orm/sqlite-core").SQLiteColumn<{
827
+ name: string;
828
+ tableName: "usine_runs";
829
+ dataType: "object json";
830
+ data: unknown;
831
+ driverParam: string;
832
+ notNull: false;
833
+ hasDefault: false;
834
+ isPrimaryKey: false;
835
+ isAutoincrement: false;
836
+ hasRuntimeDefault: false;
837
+ enumValues: undefined;
838
+ baseColumn: never;
839
+ identity: undefined;
840
+ generated: undefined;
841
+ }, {}>;
648
842
  };
649
843
  dialect: 'sqlite';
844
+ isAlias: false;
650
845
  }>;
651
846
  export declare const steps: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
652
847
  name: "usine_steps";
@@ -702,6 +897,7 @@ export declare const steps: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
702
897
  }, {}>;
703
898
  };
704
899
  dialect: 'sqlite';
900
+ isAlias: false;
705
901
  }>;
706
902
  export declare const attempts: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
707
903
  name: "usine_attempts";
@@ -803,6 +999,54 @@ export declare const attempts: import("drizzle-orm/sqlite-core").SQLiteTableWith
803
999
  identity: undefined;
804
1000
  generated: undefined;
805
1001
  }, {}>;
1002
+ task: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1003
+ name: string;
1004
+ tableName: "usine_attempts";
1005
+ dataType: "string";
1006
+ data: string & import("effect/Brand").Brand<"AttemptTask">;
1007
+ driverParam: string;
1008
+ notNull: true;
1009
+ hasDefault: false;
1010
+ isPrimaryKey: false;
1011
+ isAutoincrement: false;
1012
+ hasRuntimeDefault: false;
1013
+ enumValues: [string, ...string[]];
1014
+ baseColumn: never;
1015
+ identity: undefined;
1016
+ generated: undefined;
1017
+ }, {}>;
1018
+ agent: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1019
+ name: string;
1020
+ tableName: "usine_attempts";
1021
+ dataType: "string";
1022
+ data: string & import("effect/Brand").Brand<"AgentName">;
1023
+ driverParam: string;
1024
+ notNull: true;
1025
+ hasDefault: false;
1026
+ isPrimaryKey: false;
1027
+ isAutoincrement: false;
1028
+ hasRuntimeDefault: false;
1029
+ enumValues: [string, ...string[]];
1030
+ baseColumn: never;
1031
+ identity: undefined;
1032
+ generated: undefined;
1033
+ }, {}>;
1034
+ operatorIntervened: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1035
+ name: string;
1036
+ tableName: "usine_attempts";
1037
+ dataType: "boolean";
1038
+ data: boolean;
1039
+ driverParam: number;
1040
+ notNull: true;
1041
+ hasDefault: true;
1042
+ isPrimaryKey: false;
1043
+ isAutoincrement: false;
1044
+ hasRuntimeDefault: false;
1045
+ enumValues: undefined;
1046
+ baseColumn: never;
1047
+ identity: undefined;
1048
+ generated: undefined;
1049
+ }, {}>;
806
1050
  parentModel: import("drizzle-orm/sqlite-core").SQLiteColumn<{
807
1051
  name: string;
808
1052
  tableName: "usine_attempts";
@@ -851,8 +1095,105 @@ export declare const attempts: import("drizzle-orm/sqlite-core").SQLiteTableWith
851
1095
  identity: undefined;
852
1096
  generated: undefined;
853
1097
  }, {}>;
1098
+ endedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1099
+ name: string;
1100
+ tableName: "usine_attempts";
1101
+ dataType: "string";
1102
+ data: string;
1103
+ driverParam: string;
1104
+ notNull: false;
1105
+ hasDefault: false;
1106
+ isPrimaryKey: false;
1107
+ isAutoincrement: false;
1108
+ hasRuntimeDefault: false;
1109
+ enumValues: [string, ...string[]];
1110
+ baseColumn: never;
1111
+ identity: undefined;
1112
+ generated: undefined;
1113
+ }, {}>;
1114
+ salvageJson: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1115
+ name: string;
1116
+ tableName: "usine_attempts";
1117
+ dataType: "object json";
1118
+ data: unknown;
1119
+ driverParam: string;
1120
+ notNull: false;
1121
+ hasDefault: false;
1122
+ isPrimaryKey: false;
1123
+ isAutoincrement: false;
1124
+ hasRuntimeDefault: false;
1125
+ enumValues: undefined;
1126
+ baseColumn: never;
1127
+ identity: undefined;
1128
+ generated: undefined;
1129
+ }, {}>;
1130
+ leftoversDiscardedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1131
+ name: string;
1132
+ tableName: "usine_attempts";
1133
+ dataType: "string";
1134
+ data: string;
1135
+ driverParam: string;
1136
+ notNull: false;
1137
+ hasDefault: false;
1138
+ isPrimaryKey: false;
1139
+ isAutoincrement: false;
1140
+ hasRuntimeDefault: false;
1141
+ enumValues: [string, ...string[]];
1142
+ baseColumn: never;
1143
+ identity: undefined;
1144
+ generated: undefined;
1145
+ }, {}>;
1146
+ startJson: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1147
+ name: string;
1148
+ tableName: "usine_attempts";
1149
+ dataType: "object json";
1150
+ data: unknown;
1151
+ driverParam: string;
1152
+ notNull: false;
1153
+ hasDefault: false;
1154
+ isPrimaryKey: false;
1155
+ isAutoincrement: false;
1156
+ hasRuntimeDefault: false;
1157
+ enumValues: undefined;
1158
+ baseColumn: never;
1159
+ identity: undefined;
1160
+ generated: undefined;
1161
+ }, {}>;
1162
+ reattachedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1163
+ name: string;
1164
+ tableName: "usine_attempts";
1165
+ dataType: "string";
1166
+ data: string;
1167
+ driverParam: string;
1168
+ notNull: false;
1169
+ hasDefault: false;
1170
+ isPrimaryKey: false;
1171
+ isAutoincrement: false;
1172
+ hasRuntimeDefault: false;
1173
+ enumValues: [string, ...string[]];
1174
+ baseColumn: never;
1175
+ identity: undefined;
1176
+ generated: undefined;
1177
+ }, {}>;
1178
+ commentsJson: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1179
+ name: string;
1180
+ tableName: "usine_attempts";
1181
+ dataType: "object json";
1182
+ data: unknown;
1183
+ driverParam: string;
1184
+ notNull: false;
1185
+ hasDefault: false;
1186
+ isPrimaryKey: false;
1187
+ isAutoincrement: false;
1188
+ hasRuntimeDefault: false;
1189
+ enumValues: undefined;
1190
+ baseColumn: never;
1191
+ identity: undefined;
1192
+ generated: undefined;
1193
+ }, {}>;
854
1194
  };
855
1195
  dialect: 'sqlite';
1196
+ isAlias: false;
856
1197
  }>;
857
1198
  export declare const attemptTranscripts: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
858
1199
  name: "usine_attempt_transcripts";
@@ -956,7 +1297,12 @@ export declare const attemptTranscripts: import("drizzle-orm/sqlite-core").SQLit
956
1297
  }, {}>;
957
1298
  };
958
1299
  dialect: 'sqlite';
1300
+ isAlias: false;
959
1301
  }>;
1302
+ /**
1303
+ * The approval Event each approved Run consumed, with its source. Older rows have no `channel`
1304
+ * or `approver`; a UI approval without a configured operator login has no `approver`.
1305
+ */
960
1306
  export declare const approvals: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
961
1307
  name: "usine_approvals";
962
1308
  schema: undefined;
@@ -993,16 +1339,53 @@ export declare const approvals: import("drizzle-orm/sqlite-core").SQLiteTableWit
993
1339
  identity: undefined;
994
1340
  generated: undefined;
995
1341
  }, {}>;
1342
+ channel: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1343
+ name: string;
1344
+ tableName: "usine_approvals";
1345
+ dataType: "string enum";
1346
+ data: "github-ask" | "ui";
1347
+ driverParam: string;
1348
+ notNull: false;
1349
+ hasDefault: false;
1350
+ isPrimaryKey: false;
1351
+ isAutoincrement: false;
1352
+ hasRuntimeDefault: false;
1353
+ enumValues: ["ui", "github-ask"];
1354
+ baseColumn: never;
1355
+ identity: undefined;
1356
+ generated: undefined;
1357
+ }, {}>;
1358
+ approver: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1359
+ name: string;
1360
+ tableName: "usine_approvals";
1361
+ dataType: "string";
1362
+ data: string & import("effect/Brand").Brand<"OperatorLogin">;
1363
+ driverParam: string;
1364
+ notNull: false;
1365
+ hasDefault: false;
1366
+ isPrimaryKey: false;
1367
+ isAutoincrement: false;
1368
+ hasRuntimeDefault: false;
1369
+ enumValues: [string, ...string[]];
1370
+ baseColumn: never;
1371
+ identity: undefined;
1372
+ generated: undefined;
1373
+ }, {}>;
996
1374
  };
997
1375
  dialect: 'sqlite';
1376
+ isAlias: false;
998
1377
  }>;
999
- export declare const ignoredEvents: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1000
- name: "usine_ignored_events";
1378
+ /**
1379
+ * The Events recorded by running a closed Run again (#152), with the original Run and the
1380
+ * requesting login, which is `null` if `usine.yaml` sets no operator login.
1381
+ */
1382
+ export declare const runAgainEvents: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1383
+ name: "usine_run_again_events";
1001
1384
  schema: undefined;
1002
1385
  columns: {
1003
1386
  eventId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1004
1387
  name: string;
1005
- tableName: "usine_ignored_events";
1388
+ tableName: "usine_run_again_events";
1006
1389
  dataType: "string";
1007
1390
  data: string & import("effect/Brand").Brand<"EventId">;
1008
1391
  driverParam: string;
@@ -1016,38 +1399,55 @@ export declare const ignoredEvents: import("drizzle-orm/sqlite-core").SQLiteTabl
1016
1399
  identity: undefined;
1017
1400
  generated: undefined;
1018
1401
  }, {}>;
1019
- reason: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1402
+ fromRunId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1020
1403
  name: string;
1021
- tableName: "usine_ignored_events";
1022
- dataType: "string enum";
1023
- data: "revoked" | "superseded";
1404
+ tableName: "usine_run_again_events";
1405
+ dataType: "string";
1406
+ data: string & import("effect/Brand").Brand<"RunId">;
1024
1407
  driverParam: string;
1025
1408
  notNull: true;
1026
1409
  hasDefault: false;
1027
1410
  isPrimaryKey: false;
1028
1411
  isAutoincrement: false;
1029
1412
  hasRuntimeDefault: false;
1030
- enumValues: ["superseded", "revoked"];
1413
+ enumValues: [string, ...string[]];
1414
+ baseColumn: never;
1415
+ identity: undefined;
1416
+ generated: undefined;
1417
+ }, {}>;
1418
+ requestedBy: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1419
+ name: string;
1420
+ tableName: "usine_run_again_events";
1421
+ dataType: "string";
1422
+ data: string & import("effect/Brand").Brand<"OperatorLogin">;
1423
+ driverParam: string;
1424
+ notNull: false;
1425
+ hasDefault: false;
1426
+ isPrimaryKey: false;
1427
+ isAutoincrement: false;
1428
+ hasRuntimeDefault: false;
1429
+ enumValues: [string, ...string[]];
1031
1430
  baseColumn: never;
1032
1431
  identity: undefined;
1033
1432
  generated: undefined;
1034
1433
  }, {}>;
1035
1434
  };
1036
1435
  dialect: 'sqlite';
1436
+ isAlias: false;
1037
1437
  }>;
1038
- export declare const workflowCommands: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1039
- name: "usine_workflow_commands";
1438
+ export declare const ignoredEvents: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1439
+ name: "usine_ignored_events";
1040
1440
  schema: undefined;
1041
1441
  columns: {
1042
- runId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1442
+ eventId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1043
1443
  name: string;
1044
- tableName: "usine_workflow_commands";
1444
+ tableName: "usine_ignored_events";
1045
1445
  dataType: "string";
1046
- data: string & import("effect/Brand").Brand<"RunId">;
1446
+ data: string & import("effect/Brand").Brand<"EventId">;
1047
1447
  driverParam: string;
1048
1448
  notNull: true;
1049
1449
  hasDefault: false;
1050
- isPrimaryKey: false;
1450
+ isPrimaryKey: true;
1051
1451
  isAutoincrement: false;
1052
1452
  hasRuntimeDefault: false;
1053
1453
  enumValues: [string, ...string[]];
@@ -1055,26 +1455,27 @@ export declare const workflowCommands: import("drizzle-orm/sqlite-core").SQLiteT
1055
1455
  identity: undefined;
1056
1456
  generated: undefined;
1057
1457
  }, {}>;
1058
- command: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1458
+ reason: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1059
1459
  name: string;
1060
- tableName: "usine_workflow_commands";
1460
+ tableName: "usine_ignored_events";
1061
1461
  dataType: "string enum";
1062
- data: "Approve" | "Continue" | "Interrupt" | "Resume";
1462
+ data: "revoked" | "superseded";
1063
1463
  driverParam: string;
1064
1464
  notNull: true;
1065
1465
  hasDefault: false;
1066
1466
  isPrimaryKey: false;
1067
1467
  isAutoincrement: false;
1068
1468
  hasRuntimeDefault: false;
1069
- enumValues: ["Approve", "Continue", "Interrupt", "Resume"];
1469
+ enumValues: ["superseded", "revoked"];
1070
1470
  baseColumn: never;
1071
1471
  identity: undefined;
1072
1472
  generated: undefined;
1073
1473
  }, {}>;
1074
1474
  };
1075
1475
  dialect: 'sqlite';
1476
+ isAlias: false;
1076
1477
  }>;
1077
- /** Cursors that only save work; each owner validates its own value. */
1478
+ /** Cursors whose loss only repeats work; each owner validates its value. */
1078
1479
  export declare const cursors: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1079
1480
  name: "usine_cursors";
1080
1481
  schema: undefined;
@@ -1113,8 +1514,9 @@ export declare const cursors: import("drizzle-orm/sqlite-core").SQLiteTableWithC
1113
1514
  }, {}>;
1114
1515
  };
1115
1516
  dialect: 'sqlite';
1517
+ isAlias: false;
1116
1518
  }>;
1117
- /** The latest payload seen for each Item, for operator reads. */
1519
+ /** The latest payload of each Item, and the time a poll found it missing on GitHub. */
1118
1520
  export declare const itemProjections: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1119
1521
  name: "usine_item_projections";
1120
1522
  schema: undefined;
@@ -1215,8 +1617,25 @@ export declare const itemProjections: import("drizzle-orm/sqlite-core").SQLiteTa
1215
1617
  identity: undefined;
1216
1618
  generated: undefined;
1217
1619
  }, {}>;
1620
+ goneAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1621
+ name: string;
1622
+ tableName: "usine_item_projections";
1623
+ dataType: "string";
1624
+ data: string;
1625
+ driverParam: string;
1626
+ notNull: false;
1627
+ hasDefault: false;
1628
+ isPrimaryKey: false;
1629
+ isAutoincrement: false;
1630
+ hasRuntimeDefault: false;
1631
+ enumValues: [string, ...string[]];
1632
+ baseColumn: never;
1633
+ identity: undefined;
1634
+ generated: undefined;
1635
+ }, {}>;
1218
1636
  };
1219
1637
  dialect: 'sqlite';
1638
+ isAlias: false;
1220
1639
  }>;
1221
1640
  /** The latest complete label catalog for each managed repository. */
1222
1641
  export declare const repositoryLabelProjections: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
@@ -1257,8 +1676,146 @@ export declare const repositoryLabelProjections: import("drizzle-orm/sqlite-core
1257
1676
  }, {}>;
1258
1677
  };
1259
1678
  dialect: 'sqlite';
1679
+ isAlias: false;
1680
+ }>;
1681
+ /** The label changes of operator Board moves, each recorded before it's sent to GitHub. */
1682
+ export declare const boardMoves: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1683
+ name: "usine_board_moves";
1684
+ schema: undefined;
1685
+ columns: {
1686
+ moveId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1687
+ name: string;
1688
+ tableName: "usine_board_moves";
1689
+ dataType: "number int53";
1690
+ data: number;
1691
+ driverParam: number;
1692
+ notNull: true;
1693
+ hasDefault: true;
1694
+ isPrimaryKey: true;
1695
+ isAutoincrement: false;
1696
+ hasRuntimeDefault: false;
1697
+ enumValues: undefined;
1698
+ baseColumn: never;
1699
+ identity: undefined;
1700
+ generated: undefined;
1701
+ }, {}>;
1702
+ repository: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1703
+ name: string;
1704
+ tableName: "usine_board_moves";
1705
+ dataType: "string";
1706
+ data: string & import("effect/Brand").Brand<"RepositoryName">;
1707
+ driverParam: string;
1708
+ notNull: true;
1709
+ hasDefault: false;
1710
+ isPrimaryKey: false;
1711
+ isAutoincrement: false;
1712
+ hasRuntimeDefault: false;
1713
+ enumValues: [string, ...string[]];
1714
+ baseColumn: never;
1715
+ identity: undefined;
1716
+ generated: undefined;
1717
+ }, {}>;
1718
+ itemKey: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1719
+ name: string;
1720
+ tableName: "usine_board_moves";
1721
+ dataType: "string";
1722
+ data: string & import("effect/Brand").Brand<"ItemKey">;
1723
+ driverParam: string;
1724
+ notNull: true;
1725
+ hasDefault: false;
1726
+ isPrimaryKey: false;
1727
+ isAutoincrement: false;
1728
+ hasRuntimeDefault: false;
1729
+ enumValues: [string, ...string[]];
1730
+ baseColumn: never;
1731
+ identity: undefined;
1732
+ generated: undefined;
1733
+ }, {}>;
1734
+ movedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1735
+ name: string;
1736
+ tableName: "usine_board_moves";
1737
+ dataType: "string";
1738
+ data: string;
1739
+ driverParam: string;
1740
+ notNull: true;
1741
+ hasDefault: false;
1742
+ isPrimaryKey: false;
1743
+ isAutoincrement: false;
1744
+ hasRuntimeDefault: false;
1745
+ enumValues: [string, ...string[]];
1746
+ baseColumn: never;
1747
+ identity: undefined;
1748
+ generated: undefined;
1749
+ }, {}>;
1750
+ fromLane: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1751
+ name: string;
1752
+ tableName: "usine_board_moves";
1753
+ dataType: "string";
1754
+ data: string;
1755
+ driverParam: string;
1756
+ notNull: true;
1757
+ hasDefault: false;
1758
+ isPrimaryKey: false;
1759
+ isAutoincrement: false;
1760
+ hasRuntimeDefault: false;
1761
+ enumValues: [string, ...string[]];
1762
+ baseColumn: never;
1763
+ identity: undefined;
1764
+ generated: undefined;
1765
+ }, {}>;
1766
+ toLane: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1767
+ name: string;
1768
+ tableName: "usine_board_moves";
1769
+ dataType: "string";
1770
+ data: string;
1771
+ driverParam: string;
1772
+ notNull: true;
1773
+ hasDefault: false;
1774
+ isPrimaryKey: false;
1775
+ isAutoincrement: false;
1776
+ hasRuntimeDefault: false;
1777
+ enumValues: [string, ...string[]];
1778
+ baseColumn: never;
1779
+ identity: undefined;
1780
+ generated: undefined;
1781
+ }, {}>;
1782
+ addedJson: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1783
+ name: string;
1784
+ tableName: "usine_board_moves";
1785
+ dataType: "object json";
1786
+ data: unknown;
1787
+ driverParam: string;
1788
+ notNull: true;
1789
+ hasDefault: false;
1790
+ isPrimaryKey: false;
1791
+ isAutoincrement: false;
1792
+ hasRuntimeDefault: false;
1793
+ enumValues: undefined;
1794
+ baseColumn: never;
1795
+ identity: undefined;
1796
+ generated: undefined;
1797
+ }, {}>;
1798
+ removedJson: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1799
+ name: string;
1800
+ tableName: "usine_board_moves";
1801
+ dataType: "object json";
1802
+ data: unknown;
1803
+ driverParam: string;
1804
+ notNull: true;
1805
+ hasDefault: false;
1806
+ isPrimaryKey: false;
1807
+ isAutoincrement: false;
1808
+ hasRuntimeDefault: false;
1809
+ enumValues: undefined;
1810
+ baseColumn: never;
1811
+ identity: undefined;
1812
+ generated: undefined;
1813
+ }, {}>;
1814
+ };
1815
+ dialect: 'sqlite';
1816
+ isAlias: false;
1260
1817
  }>;
1261
- /** Operator-owned runtime toggles, kept apart from authored loop files (ADR 0009). */
1818
+ /** Operator runtime toggles, separate from Loop files (ADR 0009). */
1262
1819
  export declare const loopRuntime: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1263
1820
  name: "usine_loop_runtime";
1264
1821
  schema: undefined;
@@ -1297,8 +1854,9 @@ export declare const loopRuntime: import("drizzle-orm/sqlite-core").SQLiteTableW
1297
1854
  }, {}>;
1298
1855
  };
1299
1856
  dialect: 'sqlite';
1857
+ isAlias: false;
1300
1858
  }>;
1301
- /** Single row whose version invalidates cached operator projections. */
1859
+ /** A single row whose version invalidates cached operator projections. */
1302
1860
  export declare const projectionRevision: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1303
1861
  name: "usine_projection_revision";
1304
1862
  schema: undefined;
@@ -1337,5 +1895,6 @@ export declare const projectionRevision: import("drizzle-orm/sqlite-core").SQLit
1337
1895
  }, {}>;
1338
1896
  };
1339
1897
  dialect: 'sqlite';
1898
+ isAlias: false;
1340
1899
  }>;
1341
1900
  //# sourceMappingURL=schema.d.ts.map