@usine/engine 0.3.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 (190) hide show
  1. package/README.md +109 -38
  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 +11 -10
  31. package/dist/database/local-sqlite.js.map +1 -1
  32. package/dist/database/schema.d.ts +533 -22
  33. package/dist/database/schema.d.ts.map +1 -1
  34. package/dist/database/schema.js +100 -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 +55 -26
  45. package/dist/engine/engine.d.ts.map +1 -1
  46. package/dist/engine/engine.js +118 -128
  47. package/dist/engine/engine.js.map +1 -1
  48. package/dist/engine/error.d.ts +29 -10
  49. package/dist/engine/error.d.ts.map +1 -1
  50. package/dist/engine/error.js +28 -8
  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 +64 -10
  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 +207 -42
  117. package/dist/store/codec.d.ts.map +1 -1
  118. package/dist/store/codec.js +52 -14
  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 +342 -35
  129. package/dist/store/queries.d.ts.map +1 -1
  130. package/dist/store/queries.js +302 -107
  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 +468 -190
  135. package/dist/store/store.js.map +1 -1
  136. package/dist/store/transcript.d.ts +3 -3
  137. package/dist/store/transcript.d.ts.map +1 -1
  138. package/dist/store/transcript.js +25 -6
  139. package/dist/store/transcript.js.map +1 -1
  140. package/dist/transcript.d.ts +19 -20
  141. package/dist/transcript.d.ts.map +1 -1
  142. package/dist/transcript.js +23 -21
  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/20260917071139_resolve_run_failure/migration.sql +1 -0
  149. package/drizzle/20260917071139_resolve_run_failure/snapshot.json +1471 -0
  150. package/drizzle/20260918032643_attempt_salvage/migration.sql +1 -0
  151. package/drizzle/20260918032643_attempt_salvage/snapshot.json +1481 -0
  152. package/drizzle/20261011153856_drop_workflow_tables/migration.sql +4 -0
  153. package/drizzle/20261011153856_drop_workflow_tables/snapshot.json +1433 -0
  154. package/drizzle/20261017155043_attempt_salvage_check/migration.sql +41 -0
  155. package/drizzle/20261017155043_attempt_salvage_check/snapshot.json +1421 -0
  156. package/drizzle/20261018162700_discard_attempt_leftovers/migration.sql +1 -0
  157. package/drizzle/20261018162700_discard_attempt_leftovers/snapshot.json +1431 -0
  158. package/drizzle/20261018172605_loop_items_and_reopenings/migration.sql +15 -0
  159. package/drizzle/20261018172605_loop_items_and_reopenings/snapshot.json +1574 -0
  160. package/drizzle/20261018180339_attempt_ended_at/migration.sql +1 -0
  161. package/drizzle/20261018180339_attempt_ended_at/snapshot.json +1584 -0
  162. package/drizzle/20261019104043_run_approval_source/migration.sql +15 -0
  163. package/drizzle/20261019104043_run_approval_source/snapshot.json +1610 -0
  164. package/drizzle/20261019133538_board_moves/migration.sql +14 -0
  165. package/drizzle/20261019133538_board_moves/snapshot.json +1731 -0
  166. package/drizzle/20261019170538_item_projection_gone/migration.sql +1 -0
  167. package/drizzle/20261019170538_item_projection_gone/snapshot.json +1741 -0
  168. package/drizzle/20261019180649_run_again_events/migration.sql +7 -0
  169. package/drizzle/20261019180649_run_again_events/snapshot.json +1804 -0
  170. package/drizzle/20261019185008_trigger_event_permissions/migration.sql +1 -0
  171. package/drizzle/20261019185008_trigger_event_permissions/snapshot.json +1814 -0
  172. package/drizzle/20261020103746_attempt_start/migration.sql +5 -0
  173. package/drizzle/20261020103746_attempt_start/snapshot.json +1844 -0
  174. package/drizzle/20261020125211_attempt_comments/migration.sql +1 -0
  175. package/drizzle/20261020125211_attempt_comments/snapshot.json +1854 -0
  176. package/drizzle/20261020191320_run_closed_at/migration.sql +6 -0
  177. package/drizzle/20261020191320_run_closed_at/snapshot.json +1864 -0
  178. package/drizzle/20261023091428_rename_loop_item_hold_to_suppression/migration.sql +2 -0
  179. package/drizzle/20261023091428_rename_loop_item_hold_to_suppression/snapshot.json +1867 -0
  180. package/package.json +15 -5
  181. package/dist/workflow/admission.d.ts.map +0 -1
  182. package/dist/workflow/admission.js.map +0 -1
  183. package/dist/workflow/command.d.ts +0 -13
  184. package/dist/workflow/command.d.ts.map +0 -1
  185. package/dist/workflow/command.js +0 -17
  186. package/dist/workflow/command.js.map +0 -1
  187. package/dist/workflow/workflow.d.ts +0 -18
  188. package/dist/workflow/workflow.d.ts.map +0 -1
  189. package/dist/workflow/workflow.js +0 -108
  190. 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";
@@ -899,8 +1095,105 @@ export declare const attempts: import("drizzle-orm/sqlite-core").SQLiteTableWith
899
1095
  identity: undefined;
900
1096
  generated: undefined;
901
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
+ }, {}>;
902
1194
  };
903
1195
  dialect: 'sqlite';
1196
+ isAlias: false;
904
1197
  }>;
905
1198
  export declare const attemptTranscripts: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
906
1199
  name: "usine_attempt_transcripts";
@@ -1004,7 +1297,12 @@ export declare const attemptTranscripts: import("drizzle-orm/sqlite-core").SQLit
1004
1297
  }, {}>;
1005
1298
  };
1006
1299
  dialect: 'sqlite';
1300
+ isAlias: false;
1007
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
+ */
1008
1306
  export declare const approvals: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1009
1307
  name: "usine_approvals";
1010
1308
  schema: undefined;
@@ -1041,16 +1339,53 @@ export declare const approvals: import("drizzle-orm/sqlite-core").SQLiteTableWit
1041
1339
  identity: undefined;
1042
1340
  generated: undefined;
1043
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
+ }, {}>;
1044
1374
  };
1045
1375
  dialect: 'sqlite';
1376
+ isAlias: false;
1046
1377
  }>;
1047
- export declare const ignoredEvents: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1048
- 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";
1049
1384
  schema: undefined;
1050
1385
  columns: {
1051
1386
  eventId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1052
1387
  name: string;
1053
- tableName: "usine_ignored_events";
1388
+ tableName: "usine_run_again_events";
1054
1389
  dataType: "string";
1055
1390
  data: string & import("effect/Brand").Brand<"EventId">;
1056
1391
  driverParam: string;
@@ -1064,38 +1399,55 @@ export declare const ignoredEvents: import("drizzle-orm/sqlite-core").SQLiteTabl
1064
1399
  identity: undefined;
1065
1400
  generated: undefined;
1066
1401
  }, {}>;
1067
- reason: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1402
+ fromRunId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1068
1403
  name: string;
1069
- tableName: "usine_ignored_events";
1070
- dataType: "string enum";
1071
- data: "revoked" | "superseded";
1404
+ tableName: "usine_run_again_events";
1405
+ dataType: "string";
1406
+ data: string & import("effect/Brand").Brand<"RunId">;
1072
1407
  driverParam: string;
1073
1408
  notNull: true;
1074
1409
  hasDefault: false;
1075
1410
  isPrimaryKey: false;
1076
1411
  isAutoincrement: false;
1077
1412
  hasRuntimeDefault: false;
1078
- 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[]];
1079
1430
  baseColumn: never;
1080
1431
  identity: undefined;
1081
1432
  generated: undefined;
1082
1433
  }, {}>;
1083
1434
  };
1084
1435
  dialect: 'sqlite';
1436
+ isAlias: false;
1085
1437
  }>;
1086
- export declare const workflowCommands: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1087
- name: "usine_workflow_commands";
1438
+ export declare const ignoredEvents: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1439
+ name: "usine_ignored_events";
1088
1440
  schema: undefined;
1089
1441
  columns: {
1090
- runId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1442
+ eventId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1091
1443
  name: string;
1092
- tableName: "usine_workflow_commands";
1444
+ tableName: "usine_ignored_events";
1093
1445
  dataType: "string";
1094
- data: string & import("effect/Brand").Brand<"RunId">;
1446
+ data: string & import("effect/Brand").Brand<"EventId">;
1095
1447
  driverParam: string;
1096
1448
  notNull: true;
1097
1449
  hasDefault: false;
1098
- isPrimaryKey: false;
1450
+ isPrimaryKey: true;
1099
1451
  isAutoincrement: false;
1100
1452
  hasRuntimeDefault: false;
1101
1453
  enumValues: [string, ...string[]];
@@ -1103,26 +1455,27 @@ export declare const workflowCommands: import("drizzle-orm/sqlite-core").SQLiteT
1103
1455
  identity: undefined;
1104
1456
  generated: undefined;
1105
1457
  }, {}>;
1106
- command: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1458
+ reason: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1107
1459
  name: string;
1108
- tableName: "usine_workflow_commands";
1460
+ tableName: "usine_ignored_events";
1109
1461
  dataType: "string enum";
1110
- data: "Approve" | "Continue" | "Interrupt" | "Resume";
1462
+ data: "revoked" | "superseded";
1111
1463
  driverParam: string;
1112
1464
  notNull: true;
1113
1465
  hasDefault: false;
1114
1466
  isPrimaryKey: false;
1115
1467
  isAutoincrement: false;
1116
1468
  hasRuntimeDefault: false;
1117
- enumValues: ["Approve", "Continue", "Interrupt", "Resume"];
1469
+ enumValues: ["superseded", "revoked"];
1118
1470
  baseColumn: never;
1119
1471
  identity: undefined;
1120
1472
  generated: undefined;
1121
1473
  }, {}>;
1122
1474
  };
1123
1475
  dialect: 'sqlite';
1476
+ isAlias: false;
1124
1477
  }>;
1125
- /** Cursors that only save work; each owner validates its own value. */
1478
+ /** Cursors whose loss only repeats work; each owner validates its value. */
1126
1479
  export declare const cursors: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1127
1480
  name: "usine_cursors";
1128
1481
  schema: undefined;
@@ -1161,8 +1514,9 @@ export declare const cursors: import("drizzle-orm/sqlite-core").SQLiteTableWithC
1161
1514
  }, {}>;
1162
1515
  };
1163
1516
  dialect: 'sqlite';
1517
+ isAlias: false;
1164
1518
  }>;
1165
- /** 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. */
1166
1520
  export declare const itemProjections: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1167
1521
  name: "usine_item_projections";
1168
1522
  schema: undefined;
@@ -1263,8 +1617,25 @@ export declare const itemProjections: import("drizzle-orm/sqlite-core").SQLiteTa
1263
1617
  identity: undefined;
1264
1618
  generated: undefined;
1265
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
+ }, {}>;
1266
1636
  };
1267
1637
  dialect: 'sqlite';
1638
+ isAlias: false;
1268
1639
  }>;
1269
1640
  /** The latest complete label catalog for each managed repository. */
1270
1641
  export declare const repositoryLabelProjections: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
@@ -1305,8 +1676,146 @@ export declare const repositoryLabelProjections: import("drizzle-orm/sqlite-core
1305
1676
  }, {}>;
1306
1677
  };
1307
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;
1308
1817
  }>;
1309
- /** Operator-owned runtime toggles, kept apart from authored loop files (ADR 0009). */
1818
+ /** Operator runtime toggles, separate from Loop files (ADR 0009). */
1310
1819
  export declare const loopRuntime: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1311
1820
  name: "usine_loop_runtime";
1312
1821
  schema: undefined;
@@ -1345,8 +1854,9 @@ export declare const loopRuntime: import("drizzle-orm/sqlite-core").SQLiteTableW
1345
1854
  }, {}>;
1346
1855
  };
1347
1856
  dialect: 'sqlite';
1857
+ isAlias: false;
1348
1858
  }>;
1349
- /** Single row whose version invalidates cached operator projections. */
1859
+ /** A single row whose version invalidates cached operator projections. */
1350
1860
  export declare const projectionRevision: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1351
1861
  name: "usine_projection_revision";
1352
1862
  schema: undefined;
@@ -1385,5 +1895,6 @@ export declare const projectionRevision: import("drizzle-orm/sqlite-core").SQLit
1385
1895
  }, {}>;
1386
1896
  };
1387
1897
  dialect: 'sqlite';
1898
+ isAlias: false;
1388
1899
  }>;
1389
1900
  //# sourceMappingURL=schema.d.ts.map