@usine/engine 0.0.0 → 0.1.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 (97) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +69 -1
  3. package/dist/cursor/model.d.ts +5 -0
  4. package/dist/cursor/model.d.ts.map +1 -0
  5. package/dist/cursor/model.js +4 -0
  6. package/dist/cursor/model.js.map +1 -0
  7. package/dist/cursor/store.d.ts +18 -0
  8. package/dist/cursor/store.d.ts.map +1 -0
  9. package/dist/cursor/store.js +54 -0
  10. package/dist/cursor/store.js.map +1 -0
  11. package/dist/database/database.d.ts +15 -0
  12. package/dist/database/database.d.ts.map +1 -0
  13. package/dist/database/database.js +5 -0
  14. package/dist/database/database.js.map +1 -0
  15. package/dist/database/local-sqlite.d.ts +17 -0
  16. package/dist/database/local-sqlite.d.ts.map +1 -0
  17. package/dist/database/local-sqlite.js +45 -0
  18. package/dist/database/local-sqlite.js.map +1 -0
  19. package/dist/database/schema.d.ts +1096 -0
  20. package/dist/database/schema.d.ts.map +1 -0
  21. package/dist/database/schema.js +171 -0
  22. package/dist/database/schema.js.map +1 -0
  23. package/dist/engine.d.ts +39 -0
  24. package/dist/engine.d.ts.map +1 -0
  25. package/dist/engine.js +179 -0
  26. package/dist/engine.js.map +1 -0
  27. package/dist/index.d.ts +20 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +20 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/item-projection/model.d.ts +21 -0
  32. package/dist/item-projection/model.d.ts.map +1 -0
  33. package/dist/item-projection/model.js +16 -0
  34. package/dist/item-projection/model.js.map +1 -0
  35. package/dist/item-projection/service.d.ts +25 -0
  36. package/dist/item-projection/service.d.ts.map +1 -0
  37. package/dist/item-projection/service.js +98 -0
  38. package/dist/item-projection/service.js.map +1 -0
  39. package/dist/loop-control.d.ts +16 -0
  40. package/dist/loop-control.d.ts.map +1 -0
  41. package/dist/loop-control.js +69 -0
  42. package/dist/loop-control.js.map +1 -0
  43. package/dist/model.d.ts +185 -0
  44. package/dist/model.d.ts.map +1 -0
  45. package/dist/model.js +174 -0
  46. package/dist/model.js.map +1 -0
  47. package/dist/repository-label-projection/model.d.ts +10 -0
  48. package/dist/repository-label-projection/model.d.ts.map +1 -0
  49. package/dist/repository-label-projection/model.js +11 -0
  50. package/dist/repository-label-projection/model.js.map +1 -0
  51. package/dist/repository-label-projection/service.d.ts +20 -0
  52. package/dist/repository-label-projection/service.d.ts.map +1 -0
  53. package/dist/repository-label-projection/service.js +73 -0
  54. package/dist/repository-label-projection/service.js.map +1 -0
  55. package/dist/run-reader.d.ts +20 -0
  56. package/dist/run-reader.d.ts.map +1 -0
  57. package/dist/run-reader.js +19 -0
  58. package/dist/run-reader.js.map +1 -0
  59. package/dist/step-executor.d.ts +21 -0
  60. package/dist/step-executor.d.ts.map +1 -0
  61. package/dist/step-executor.js +8 -0
  62. package/dist/step-executor.js.map +1 -0
  63. package/dist/store/codec.d.ts +431 -0
  64. package/dist/store/codec.d.ts.map +1 -0
  65. package/dist/store/codec.js +140 -0
  66. package/dist/store/codec.js.map +1 -0
  67. package/dist/store/queries.d.ts +75 -0
  68. package/dist/store/queries.d.ts.map +1 -0
  69. package/dist/store/queries.js +508 -0
  70. package/dist/store/queries.js.map +1 -0
  71. package/dist/store/store.d.ts +83 -0
  72. package/dist/store/store.d.ts.map +1 -0
  73. package/dist/store/store.js +374 -0
  74. package/dist/store/store.js.map +1 -0
  75. package/dist/workflow.d.ts +14 -0
  76. package/dist/workflow.d.ts.map +1 -0
  77. package/dist/workflow.js +105 -0
  78. package/dist/workflow.js.map +1 -0
  79. package/drizzle/20260825055549_initial_runtime/migration.sql +73 -0
  80. package/drizzle/20260825055549_initial_runtime/snapshot.json +592 -0
  81. package/drizzle/20260830191125_polling_cursors/migration.sql +5 -0
  82. package/drizzle/20260830191125_polling_cursors/snapshot.json +629 -0
  83. package/drizzle/20260831073158_attempt_channel/migration.sql +36 -0
  84. package/drizzle/20260831073158_attempt_channel/snapshot.json +845 -0
  85. package/drizzle/20260831133534_agent_context/migration.sql +49 -0
  86. package/drizzle/20260831133534_agent_context/snapshot.json +897 -0
  87. package/drizzle/20260831134612_attempt_brain/migration.sql +26 -0
  88. package/drizzle/20260831134612_attempt_brain/snapshot.json +923 -0
  89. package/drizzle/20260831194605_loop_runtime/migration.sql +4 -0
  90. package/drizzle/20260831194605_loop_runtime/snapshot.json +954 -0
  91. package/drizzle/20260901073233_projection_revision/migration.sql +55 -0
  92. package/drizzle/20260901073233_projection_revision/snapshot.json +991 -0
  93. package/drizzle/20260901180433_item_projections/migration.sql +22 -0
  94. package/drizzle/20260901180433_item_projections/snapshot.json +1110 -0
  95. package/drizzle/20260901185146_repository_label_projections/migration.sql +17 -0
  96. package/drizzle/20260901185146_repository_label_projections/snapshot.json +1147 -0
  97. package/package.json +53 -4
@@ -0,0 +1,629 @@
1
+ {
2
+ "version": "7",
3
+ "dialect": "sqlite",
4
+ "id": "d63c0a4a-1148-40a5-b8e9-d823d74ed69c",
5
+ "prevIds": ["29403b39-52c7-42ce-b665-c5fbba2ce9fe"],
6
+ "ddl": [
7
+ {
8
+ "name": "usine_approvals",
9
+ "entityType": "tables"
10
+ },
11
+ {
12
+ "name": "usine_attempts",
13
+ "entityType": "tables"
14
+ },
15
+ {
16
+ "name": "usine_cursors",
17
+ "entityType": "tables"
18
+ },
19
+ {
20
+ "name": "usine_events",
21
+ "entityType": "tables"
22
+ },
23
+ {
24
+ "name": "usine_ignored_events",
25
+ "entityType": "tables"
26
+ },
27
+ {
28
+ "name": "usine_runs",
29
+ "entityType": "tables"
30
+ },
31
+ {
32
+ "name": "usine_steps",
33
+ "entityType": "tables"
34
+ },
35
+ {
36
+ "name": "usine_trigger_events",
37
+ "entityType": "tables"
38
+ },
39
+ {
40
+ "name": "usine_workflow_commands",
41
+ "entityType": "tables"
42
+ },
43
+ {
44
+ "type": "text",
45
+ "notNull": false,
46
+ "autoincrement": false,
47
+ "default": null,
48
+ "generated": null,
49
+ "name": "run_id",
50
+ "entityType": "columns",
51
+ "table": "usine_approvals"
52
+ },
53
+ {
54
+ "type": "text",
55
+ "notNull": true,
56
+ "autoincrement": false,
57
+ "default": null,
58
+ "generated": null,
59
+ "name": "event_id",
60
+ "entityType": "columns",
61
+ "table": "usine_approvals"
62
+ },
63
+ {
64
+ "type": "text",
65
+ "notNull": false,
66
+ "autoincrement": false,
67
+ "default": null,
68
+ "generated": null,
69
+ "name": "attempt_id",
70
+ "entityType": "columns",
71
+ "table": "usine_attempts"
72
+ },
73
+ {
74
+ "type": "text",
75
+ "notNull": true,
76
+ "autoincrement": false,
77
+ "default": null,
78
+ "generated": null,
79
+ "name": "run_id",
80
+ "entityType": "columns",
81
+ "table": "usine_attempts"
82
+ },
83
+ {
84
+ "type": "text",
85
+ "notNull": true,
86
+ "autoincrement": false,
87
+ "default": null,
88
+ "generated": null,
89
+ "name": "step_name",
90
+ "entityType": "columns",
91
+ "table": "usine_attempts"
92
+ },
93
+ {
94
+ "type": "integer",
95
+ "notNull": true,
96
+ "autoincrement": false,
97
+ "default": null,
98
+ "generated": null,
99
+ "name": "attempt_number",
100
+ "entityType": "columns",
101
+ "table": "usine_attempts"
102
+ },
103
+ {
104
+ "type": "text",
105
+ "notNull": true,
106
+ "autoincrement": false,
107
+ "default": null,
108
+ "generated": null,
109
+ "name": "started_at",
110
+ "entityType": "columns",
111
+ "table": "usine_attempts"
112
+ },
113
+ {
114
+ "type": "text",
115
+ "notNull": false,
116
+ "autoincrement": false,
117
+ "default": null,
118
+ "generated": null,
119
+ "name": "outcome_json",
120
+ "entityType": "columns",
121
+ "table": "usine_attempts"
122
+ },
123
+ {
124
+ "type": "text",
125
+ "notNull": false,
126
+ "autoincrement": false,
127
+ "default": null,
128
+ "generated": null,
129
+ "name": "cursor_key",
130
+ "entityType": "columns",
131
+ "table": "usine_cursors"
132
+ },
133
+ {
134
+ "type": "text",
135
+ "notNull": true,
136
+ "autoincrement": false,
137
+ "default": null,
138
+ "generated": null,
139
+ "name": "value_json",
140
+ "entityType": "columns",
141
+ "table": "usine_cursors"
142
+ },
143
+ {
144
+ "type": "text",
145
+ "notNull": false,
146
+ "autoincrement": false,
147
+ "default": null,
148
+ "generated": null,
149
+ "name": "event_id",
150
+ "entityType": "columns",
151
+ "table": "usine_events"
152
+ },
153
+ {
154
+ "type": "text",
155
+ "notNull": true,
156
+ "autoincrement": false,
157
+ "default": null,
158
+ "generated": null,
159
+ "name": "dedup_key",
160
+ "entityType": "columns",
161
+ "table": "usine_events"
162
+ },
163
+ {
164
+ "type": "text",
165
+ "notNull": true,
166
+ "autoincrement": false,
167
+ "default": null,
168
+ "generated": null,
169
+ "name": "payload_json",
170
+ "entityType": "columns",
171
+ "table": "usine_events"
172
+ },
173
+ {
174
+ "type": "text",
175
+ "notNull": true,
176
+ "autoincrement": false,
177
+ "default": null,
178
+ "generated": null,
179
+ "name": "received_at",
180
+ "entityType": "columns",
181
+ "table": "usine_events"
182
+ },
183
+ {
184
+ "type": "text",
185
+ "notNull": false,
186
+ "autoincrement": false,
187
+ "default": null,
188
+ "generated": null,
189
+ "name": "event_id",
190
+ "entityType": "columns",
191
+ "table": "usine_ignored_events"
192
+ },
193
+ {
194
+ "type": "text",
195
+ "notNull": true,
196
+ "autoincrement": false,
197
+ "default": null,
198
+ "generated": null,
199
+ "name": "reason",
200
+ "entityType": "columns",
201
+ "table": "usine_ignored_events"
202
+ },
203
+ {
204
+ "type": "text",
205
+ "notNull": false,
206
+ "autoincrement": false,
207
+ "default": null,
208
+ "generated": null,
209
+ "name": "run_id",
210
+ "entityType": "columns",
211
+ "table": "usine_runs"
212
+ },
213
+ {
214
+ "type": "text",
215
+ "notNull": true,
216
+ "autoincrement": false,
217
+ "default": null,
218
+ "generated": null,
219
+ "name": "event_id",
220
+ "entityType": "columns",
221
+ "table": "usine_runs"
222
+ },
223
+ {
224
+ "type": "text",
225
+ "notNull": true,
226
+ "autoincrement": false,
227
+ "default": null,
228
+ "generated": null,
229
+ "name": "loop_name",
230
+ "entityType": "columns",
231
+ "table": "usine_runs"
232
+ },
233
+ {
234
+ "type": "text",
235
+ "notNull": true,
236
+ "autoincrement": false,
237
+ "default": null,
238
+ "generated": null,
239
+ "name": "state_json",
240
+ "entityType": "columns",
241
+ "table": "usine_runs"
242
+ },
243
+ {
244
+ "type": "text",
245
+ "notNull": true,
246
+ "autoincrement": false,
247
+ "default": null,
248
+ "generated": null,
249
+ "name": "opened_at",
250
+ "entityType": "columns",
251
+ "table": "usine_runs"
252
+ },
253
+ {
254
+ "type": "text",
255
+ "notNull": true,
256
+ "autoincrement": false,
257
+ "default": null,
258
+ "generated": null,
259
+ "name": "run_id",
260
+ "entityType": "columns",
261
+ "table": "usine_steps"
262
+ },
263
+ {
264
+ "type": "text",
265
+ "notNull": true,
266
+ "autoincrement": false,
267
+ "default": null,
268
+ "generated": null,
269
+ "name": "step_name",
270
+ "entityType": "columns",
271
+ "table": "usine_steps"
272
+ },
273
+ {
274
+ "type": "text",
275
+ "notNull": false,
276
+ "autoincrement": false,
277
+ "default": null,
278
+ "generated": null,
279
+ "name": "result",
280
+ "entityType": "columns",
281
+ "table": "usine_steps"
282
+ },
283
+ {
284
+ "type": "text",
285
+ "notNull": false,
286
+ "autoincrement": false,
287
+ "default": null,
288
+ "generated": null,
289
+ "name": "event_id",
290
+ "entityType": "columns",
291
+ "table": "usine_trigger_events"
292
+ },
293
+ {
294
+ "type": "text",
295
+ "notNull": true,
296
+ "autoincrement": false,
297
+ "default": null,
298
+ "generated": null,
299
+ "name": "item_key",
300
+ "entityType": "columns",
301
+ "table": "usine_trigger_events"
302
+ },
303
+ {
304
+ "type": "text",
305
+ "notNull": true,
306
+ "autoincrement": false,
307
+ "default": null,
308
+ "generated": null,
309
+ "name": "loop_name",
310
+ "entityType": "columns",
311
+ "table": "usine_trigger_events"
312
+ },
313
+ {
314
+ "type": "text",
315
+ "notNull": true,
316
+ "autoincrement": false,
317
+ "default": null,
318
+ "generated": null,
319
+ "name": "step_name",
320
+ "entityType": "columns",
321
+ "table": "usine_trigger_events"
322
+ },
323
+ {
324
+ "type": "text",
325
+ "notNull": true,
326
+ "autoincrement": false,
327
+ "default": null,
328
+ "generated": null,
329
+ "name": "approval",
330
+ "entityType": "columns",
331
+ "table": "usine_trigger_events"
332
+ },
333
+ {
334
+ "type": "text",
335
+ "notNull": true,
336
+ "autoincrement": false,
337
+ "default": null,
338
+ "generated": null,
339
+ "name": "run_id",
340
+ "entityType": "columns",
341
+ "table": "usine_workflow_commands"
342
+ },
343
+ {
344
+ "type": "text",
345
+ "notNull": true,
346
+ "autoincrement": false,
347
+ "default": null,
348
+ "generated": null,
349
+ "name": "command",
350
+ "entityType": "columns",
351
+ "table": "usine_workflow_commands"
352
+ },
353
+ {
354
+ "columns": ["run_id"],
355
+ "tableTo": "usine_runs",
356
+ "columnsTo": ["run_id"],
357
+ "onUpdate": "NO ACTION",
358
+ "onDelete": "NO ACTION",
359
+ "nameExplicit": false,
360
+ "name": "fk_usine_approvals_run_id_usine_runs_run_id_fk",
361
+ "entityType": "fks",
362
+ "table": "usine_approvals"
363
+ },
364
+ {
365
+ "columns": ["event_id"],
366
+ "tableTo": "usine_events",
367
+ "columnsTo": ["event_id"],
368
+ "onUpdate": "NO ACTION",
369
+ "onDelete": "NO ACTION",
370
+ "nameExplicit": false,
371
+ "name": "fk_usine_approvals_event_id_usine_events_event_id_fk",
372
+ "entityType": "fks",
373
+ "table": "usine_approvals"
374
+ },
375
+ {
376
+ "columns": ["run_id", "step_name"],
377
+ "tableTo": "usine_steps",
378
+ "columnsTo": ["run_id", "step_name"],
379
+ "onUpdate": "NO ACTION",
380
+ "onDelete": "NO ACTION",
381
+ "nameExplicit": false,
382
+ "name": "fk_usine_attempts_run_id_step_name_usine_steps_run_id_step_name_fk",
383
+ "entityType": "fks",
384
+ "table": "usine_attempts"
385
+ },
386
+ {
387
+ "columns": ["event_id"],
388
+ "tableTo": "usine_trigger_events",
389
+ "columnsTo": ["event_id"],
390
+ "onUpdate": "NO ACTION",
391
+ "onDelete": "NO ACTION",
392
+ "nameExplicit": false,
393
+ "name": "fk_usine_ignored_events_event_id_usine_trigger_events_event_id_fk",
394
+ "entityType": "fks",
395
+ "table": "usine_ignored_events"
396
+ },
397
+ {
398
+ "columns": ["event_id"],
399
+ "tableTo": "usine_trigger_events",
400
+ "columnsTo": ["event_id"],
401
+ "onUpdate": "NO ACTION",
402
+ "onDelete": "NO ACTION",
403
+ "nameExplicit": false,
404
+ "name": "fk_usine_runs_event_id_usine_trigger_events_event_id_fk",
405
+ "entityType": "fks",
406
+ "table": "usine_runs"
407
+ },
408
+ {
409
+ "columns": ["run_id"],
410
+ "tableTo": "usine_runs",
411
+ "columnsTo": ["run_id"],
412
+ "onUpdate": "NO ACTION",
413
+ "onDelete": "NO ACTION",
414
+ "nameExplicit": false,
415
+ "name": "fk_usine_steps_run_id_usine_runs_run_id_fk",
416
+ "entityType": "fks",
417
+ "table": "usine_steps"
418
+ },
419
+ {
420
+ "columns": ["event_id"],
421
+ "tableTo": "usine_events",
422
+ "columnsTo": ["event_id"],
423
+ "onUpdate": "NO ACTION",
424
+ "onDelete": "NO ACTION",
425
+ "nameExplicit": false,
426
+ "name": "fk_usine_trigger_events_event_id_usine_events_event_id_fk",
427
+ "entityType": "fks",
428
+ "table": "usine_trigger_events"
429
+ },
430
+ {
431
+ "columns": ["run_id"],
432
+ "tableTo": "usine_runs",
433
+ "columnsTo": ["run_id"],
434
+ "onUpdate": "NO ACTION",
435
+ "onDelete": "NO ACTION",
436
+ "nameExplicit": false,
437
+ "name": "fk_usine_workflow_commands_run_id_usine_runs_run_id_fk",
438
+ "entityType": "fks",
439
+ "table": "usine_workflow_commands"
440
+ },
441
+ {
442
+ "columns": ["run_id", "step_name"],
443
+ "nameExplicit": false,
444
+ "name": "usine_steps_pk",
445
+ "entityType": "pks",
446
+ "table": "usine_steps"
447
+ },
448
+ {
449
+ "columns": ["run_id", "command"],
450
+ "nameExplicit": false,
451
+ "name": "usine_workflow_commands_pk",
452
+ "entityType": "pks",
453
+ "table": "usine_workflow_commands"
454
+ },
455
+ {
456
+ "columns": ["run_id"],
457
+ "nameExplicit": false,
458
+ "name": "usine_approvals_pk",
459
+ "table": "usine_approvals",
460
+ "entityType": "pks"
461
+ },
462
+ {
463
+ "columns": ["attempt_id"],
464
+ "nameExplicit": false,
465
+ "name": "usine_attempts_pk",
466
+ "table": "usine_attempts",
467
+ "entityType": "pks"
468
+ },
469
+ {
470
+ "columns": ["cursor_key"],
471
+ "nameExplicit": false,
472
+ "name": "usine_cursors_pk",
473
+ "table": "usine_cursors",
474
+ "entityType": "pks"
475
+ },
476
+ {
477
+ "columns": ["event_id"],
478
+ "nameExplicit": false,
479
+ "name": "usine_events_pk",
480
+ "table": "usine_events",
481
+ "entityType": "pks"
482
+ },
483
+ {
484
+ "columns": ["event_id"],
485
+ "nameExplicit": false,
486
+ "name": "usine_ignored_events_pk",
487
+ "table": "usine_ignored_events",
488
+ "entityType": "pks"
489
+ },
490
+ {
491
+ "columns": ["run_id"],
492
+ "nameExplicit": false,
493
+ "name": "usine_runs_pk",
494
+ "table": "usine_runs",
495
+ "entityType": "pks"
496
+ },
497
+ {
498
+ "columns": ["event_id"],
499
+ "nameExplicit": false,
500
+ "name": "usine_trigger_events_pk",
501
+ "table": "usine_trigger_events",
502
+ "entityType": "pks"
503
+ },
504
+ {
505
+ "columns": [
506
+ {
507
+ "value": "run_id",
508
+ "isExpression": false
509
+ },
510
+ {
511
+ "value": "step_name",
512
+ "isExpression": false
513
+ },
514
+ {
515
+ "value": "attempt_number",
516
+ "isExpression": false
517
+ }
518
+ ],
519
+ "isUnique": true,
520
+ "where": null,
521
+ "origin": "manual",
522
+ "name": "usine_attempt_number",
523
+ "entityType": "indexes",
524
+ "table": "usine_attempts"
525
+ },
526
+ {
527
+ "columns": [
528
+ {
529
+ "value": "run_id",
530
+ "isExpression": false
531
+ }
532
+ ],
533
+ "isUnique": true,
534
+ "where": "\"usine_attempts\".\"outcome_json\" is null",
535
+ "origin": "manual",
536
+ "name": "usine_one_in_flight_attempt",
537
+ "entityType": "indexes",
538
+ "table": "usine_attempts"
539
+ },
540
+ {
541
+ "columns": [
542
+ {
543
+ "value": "loop_name",
544
+ "isExpression": false
545
+ },
546
+ {
547
+ "value": "item_key",
548
+ "isExpression": false
549
+ }
550
+ ],
551
+ "isUnique": false,
552
+ "where": null,
553
+ "origin": "manual",
554
+ "name": "usine_trigger_events_item",
555
+ "entityType": "indexes",
556
+ "table": "usine_trigger_events"
557
+ },
558
+ {
559
+ "columns": ["event_id"],
560
+ "nameExplicit": false,
561
+ "name": "usine_approvals_event_id_unique",
562
+ "entityType": "uniques",
563
+ "table": "usine_approvals"
564
+ },
565
+ {
566
+ "columns": ["dedup_key"],
567
+ "nameExplicit": false,
568
+ "name": "usine_events_dedup_key_unique",
569
+ "entityType": "uniques",
570
+ "table": "usine_events"
571
+ },
572
+ {
573
+ "columns": ["event_id"],
574
+ "nameExplicit": false,
575
+ "name": "usine_runs_event_id_unique",
576
+ "entityType": "uniques",
577
+ "table": "usine_runs"
578
+ },
579
+ {
580
+ "value": "\"attempt_number\" >= 1",
581
+ "name": "usine_attempts_number",
582
+ "entityType": "checks",
583
+ "table": "usine_attempts"
584
+ },
585
+ {
586
+ "value": "\"outcome_json\" is null or json_valid(\"outcome_json\")",
587
+ "name": "usine_attempts_outcome_json_valid",
588
+ "entityType": "checks",
589
+ "table": "usine_attempts"
590
+ },
591
+ {
592
+ "value": "json_valid(\"value_json\")",
593
+ "name": "usine_cursors_value_json_valid",
594
+ "entityType": "checks",
595
+ "table": "usine_cursors"
596
+ },
597
+ {
598
+ "value": "json_valid(\"payload_json\")",
599
+ "name": "usine_events_payload_json_valid",
600
+ "entityType": "checks",
601
+ "table": "usine_events"
602
+ },
603
+ {
604
+ "value": "\"reason\" in ('superseded', 'revoked')",
605
+ "name": "usine_ignored_events_reason",
606
+ "entityType": "checks",
607
+ "table": "usine_ignored_events"
608
+ },
609
+ {
610
+ "value": "json_valid(\"state_json\")",
611
+ "name": "usine_runs_state_json_valid",
612
+ "entityType": "checks",
613
+ "table": "usine_runs"
614
+ },
615
+ {
616
+ "value": "\"approval\" in ('none', 'required')",
617
+ "name": "usine_trigger_events_approval",
618
+ "entityType": "checks",
619
+ "table": "usine_trigger_events"
620
+ },
621
+ {
622
+ "value": "\"command\" in ('Approve', 'Continue', 'Interrupt', 'Resume')",
623
+ "name": "usine_workflow_commands_command",
624
+ "entityType": "checks",
625
+ "table": "usine_workflow_commands"
626
+ }
627
+ ],
628
+ "renames": []
629
+ }
@@ -0,0 +1,36 @@
1
+ CREATE TABLE `usine_attempt_transcripts` (
2
+ `sequence` integer PRIMARY KEY AUTOINCREMENT,
3
+ `attempt_id` text NOT NULL,
4
+ `direction` text NOT NULL,
5
+ `channel_sequence` integer NOT NULL,
6
+ `envelope` text NOT NULL,
7
+ `received_at` text NOT NULL,
8
+ CONSTRAINT `fk_usine_attempt_transcripts_attempt_id_usine_attempts_attempt_id_fk` FOREIGN KEY (`attempt_id`) REFERENCES `usine_attempts`(`attempt_id`),
9
+ CONSTRAINT "usine_attempt_transcripts_direction" CHECK("direction" in ('inbound', 'outbound')),
10
+ CONSTRAINT "usine_attempt_transcripts_sequence" CHECK("channel_sequence" >= 1),
11
+ CONSTRAINT "usine_attempt_transcripts_envelope_json_valid" CHECK(json_valid("envelope"))
12
+ );
13
+ --> statement-breakpoint
14
+ ALTER TABLE `usine_attempts` ADD `worker_name` text NOT NULL;--> statement-breakpoint
15
+ ALTER TABLE `usine_runs` ADD `repository` text NOT NULL;--> statement-breakpoint
16
+ ALTER TABLE `usine_runs` ADD `revision` text NOT NULL;--> statement-breakpoint
17
+ ALTER TABLE `usine_runs` ADD `task` text NOT NULL;--> statement-breakpoint
18
+ ALTER TABLE `usine_trigger_events` ADD `repository` text NOT NULL;--> statement-breakpoint
19
+ ALTER TABLE `usine_trigger_events` ADD `revision` text NOT NULL;--> statement-breakpoint
20
+ ALTER TABLE `usine_trigger_events` ADD `task` text NOT NULL;--> statement-breakpoint
21
+ PRAGMA foreign_keys=OFF;--> statement-breakpoint
22
+ CREATE TABLE `__new_usine_steps` (
23
+ `run_id` text NOT NULL,
24
+ `step_name` text NOT NULL,
25
+ `result` text,
26
+ CONSTRAINT `usine_steps_pk` PRIMARY KEY(`run_id`, `step_name`),
27
+ CONSTRAINT `fk_usine_steps_run_id_usine_runs_run_id_fk` FOREIGN KEY (`run_id`) REFERENCES `usine_runs`(`run_id`),
28
+ CONSTRAINT "usine_steps_result_json_valid" CHECK("result" is null or json_valid("result"))
29
+ );
30
+ --> statement-breakpoint
31
+ INSERT INTO `__new_usine_steps`(`run_id`, `step_name`, `result`) SELECT `run_id`, `step_name`, `result` FROM `usine_steps`;--> statement-breakpoint
32
+ DROP TABLE `usine_steps`;--> statement-breakpoint
33
+ ALTER TABLE `__new_usine_steps` RENAME TO `usine_steps`;--> statement-breakpoint
34
+ PRAGMA foreign_keys=ON;--> statement-breakpoint
35
+ CREATE UNIQUE INDEX `usine_attempt_transcript_envelope` ON `usine_attempt_transcripts` (`attempt_id`,`direction`,`channel_sequence`);--> statement-breakpoint
36
+ CREATE INDEX `usine_attempt_transcript_tail` ON `usine_attempt_transcripts` (`attempt_id`,`sequence`);