@usine/engine 0.3.0 → 0.5.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 (201) hide show
  1. package/LICENSE +661 -21
  2. package/README.md +112 -38
  3. package/dist/board-moves/board-moves.d.ts +20 -0
  4. package/dist/board-moves/board-moves.d.ts.map +1 -0
  5. package/dist/board-moves/board-moves.js +74 -0
  6. package/dist/board-moves/board-moves.js.map +1 -0
  7. package/dist/board-moves/model.d.ts +21 -0
  8. package/dist/board-moves/model.d.ts.map +1 -0
  9. package/dist/board-moves/model.js +22 -0
  10. package/dist/board-moves/model.js.map +1 -0
  11. package/dist/cursor/cursor.d.ts +2 -6
  12. package/dist/cursor/cursor.d.ts.map +1 -1
  13. package/dist/cursor/cursor.js +2 -6
  14. package/dist/cursor/cursor.js.map +1 -1
  15. package/dist/cycle-budget/cycle-budget.d.ts +14 -8
  16. package/dist/cycle-budget/cycle-budget.d.ts.map +1 -1
  17. package/dist/cycle-budget/cycle-budget.js +51 -10
  18. package/dist/cycle-budget/cycle-budget.js.map +1 -1
  19. package/dist/cycle-budget/model.d.ts +6 -2
  20. package/dist/cycle-budget/model.d.ts.map +1 -1
  21. package/dist/cycle-budget/model.js +5 -2
  22. package/dist/cycle-budget/model.js.map +1 -1
  23. package/dist/cycle-budget/queries.d.ts +1 -1
  24. package/dist/cycle-budget/queries.d.ts.map +1 -1
  25. package/dist/cycle-budget/queries.js +3 -3
  26. package/dist/cycle-budget/queries.js.map +1 -1
  27. package/dist/database/database.d.ts +1 -1
  28. package/dist/database/database.d.ts.map +1 -1
  29. package/dist/database/local-sqlite.d.ts +13 -10
  30. package/dist/database/local-sqlite.d.ts.map +1 -1
  31. package/dist/database/local-sqlite.js +22 -17
  32. package/dist/database/local-sqlite.js.map +1 -1
  33. package/dist/database/schema.d.ts +668 -36
  34. package/dist/database/schema.d.ts.map +1 -1
  35. package/dist/database/schema.js +123 -23
  36. package/dist/database/schema.js.map +1 -1
  37. package/dist/{workflow → engine}/admission.d.ts +2 -2
  38. package/dist/engine/admission.d.ts.map +1 -0
  39. package/dist/{workflow → engine}/admission.js +4 -4
  40. package/dist/engine/admission.js.map +1 -0
  41. package/dist/engine/checkout-recovery.d.ts +79 -0
  42. package/dist/engine/checkout-recovery.d.ts.map +1 -0
  43. package/dist/engine/checkout-recovery.js +238 -0
  44. package/dist/engine/checkout-recovery.js.map +1 -0
  45. package/dist/engine/engine.d.ts +67 -26
  46. package/dist/engine/engine.d.ts.map +1 -1
  47. package/dist/engine/engine.js +136 -129
  48. package/dist/engine/engine.js.map +1 -1
  49. package/dist/engine/error.d.ts +29 -10
  50. package/dist/engine/error.d.ts.map +1 -1
  51. package/dist/engine/error.js +28 -8
  52. package/dist/engine/error.js.map +1 -1
  53. package/dist/engine/lifecycle.d.ts +83 -28
  54. package/dist/engine/lifecycle.d.ts.map +1 -1
  55. package/dist/engine/lifecycle.js +94 -45
  56. package/dist/engine/lifecycle.js.map +1 -1
  57. package/dist/engine/retry.d.ts +16 -0
  58. package/dist/engine/retry.d.ts.map +1 -0
  59. package/dist/engine/retry.js +18 -0
  60. package/dist/engine/retry.js.map +1 -0
  61. package/dist/engine/run-again.d.ts +45 -0
  62. package/dist/engine/run-again.d.ts.map +1 -0
  63. package/dist/engine/run-again.js +56 -0
  64. package/dist/engine/run-again.js.map +1 -0
  65. package/dist/engine/run-driver.d.ts +68 -0
  66. package/dist/engine/run-driver.d.ts.map +1 -0
  67. package/dist/engine/run-driver.js +448 -0
  68. package/dist/engine/run-driver.js.map +1 -0
  69. package/dist/engine/shutdown.d.ts +3 -4
  70. package/dist/engine/shutdown.d.ts.map +1 -1
  71. package/dist/engine/shutdown.js +3 -4
  72. package/dist/engine/shutdown.js.map +1 -1
  73. package/dist/engine/submission.d.ts +31 -11
  74. package/dist/engine/submission.d.ts.map +1 -1
  75. package/dist/engine/submission.js +43 -12
  76. package/dist/engine/submission.js.map +1 -1
  77. package/dist/engine/unconfirmed-stops.d.ts +27 -0
  78. package/dist/engine/unconfirmed-stops.d.ts.map +1 -0
  79. package/dist/engine/unconfirmed-stops.js +26 -0
  80. package/dist/engine/unconfirmed-stops.js.map +1 -0
  81. package/dist/item-projection/item-projection.d.ts +14 -4
  82. package/dist/item-projection/item-projection.d.ts.map +1 -1
  83. package/dist/item-projection/item-projection.js +60 -14
  84. package/dist/item-projection/item-projection.js.map +1 -1
  85. package/dist/item-projection/model.d.ts +5 -1
  86. package/dist/item-projection/model.d.ts.map +1 -1
  87. package/dist/item-projection/model.js +6 -2
  88. package/dist/item-projection/model.js.map +1 -1
  89. package/dist/loop-control/loop-control.d.ts +5 -5
  90. package/dist/loop-control/loop-control.d.ts.map +1 -1
  91. package/dist/loop-control/loop-control.js +4 -4
  92. package/dist/loop-control/loop-control.js.map +1 -1
  93. package/dist/loop-control/model.d.ts +1 -1
  94. package/dist/loop-control/model.d.ts.map +1 -1
  95. package/dist/loop-control/model.js +1 -1
  96. package/dist/loop-control/model.js.map +1 -1
  97. package/dist/repository-label-projection/model.d.ts +2 -2
  98. package/dist/repository-label-projection/model.d.ts.map +1 -1
  99. package/dist/repository-label-projection/model.js +2 -2
  100. package/dist/repository-label-projection/model.js.map +1 -1
  101. package/dist/repository-label-projection/repository-label-projection.d.ts +1 -1
  102. package/dist/repository-label-projection/repository-label-projection.d.ts.map +1 -1
  103. package/dist/repository-label-projection/repository-label-projection.js +1 -1
  104. package/dist/repository-label-projection/repository-label-projection.js.map +1 -1
  105. package/dist/run-reader/model.d.ts +62 -4
  106. package/dist/run-reader/model.d.ts.map +1 -1
  107. package/dist/run-reader/model.js +66 -7
  108. package/dist/run-reader/model.js.map +1 -1
  109. package/dist/run-reader/run-reader.d.ts +25 -10
  110. package/dist/run-reader/run-reader.d.ts.map +1 -1
  111. package/dist/run-reader/run-reader.js +25 -7
  112. package/dist/run-reader/run-reader.js.map +1 -1
  113. package/dist/step-executor.d.ts +86 -13
  114. package/dist/step-executor.d.ts.map +1 -1
  115. package/dist/step-executor.js +10 -2
  116. package/dist/step-executor.js.map +1 -1
  117. package/dist/store/attempt-windows.d.ts +8 -0
  118. package/dist/store/attempt-windows.d.ts.map +1 -0
  119. package/dist/store/attempt-windows.js +53 -0
  120. package/dist/store/attempt-windows.js.map +1 -0
  121. package/dist/store/codec.d.ts +242 -43
  122. package/dist/store/codec.d.ts.map +1 -1
  123. package/dist/store/codec.js +61 -16
  124. package/dist/store/codec.js.map +1 -1
  125. package/dist/store/leftovers.d.ts +10 -0
  126. package/dist/store/leftovers.d.ts.map +1 -0
  127. package/dist/store/leftovers.js +43 -0
  128. package/dist/store/leftovers.js.map +1 -0
  129. package/dist/store/loop-items.d.ts +16 -0
  130. package/dist/store/loop-items.d.ts.map +1 -0
  131. package/dist/store/loop-items.js +185 -0
  132. package/dist/store/loop-items.js.map +1 -0
  133. package/dist/store/queries.d.ts +385 -36
  134. package/dist/store/queries.d.ts.map +1 -1
  135. package/dist/store/queries.js +355 -107
  136. package/dist/store/queries.js.map +1 -1
  137. package/dist/store/store.d.ts +106 -54
  138. package/dist/store/store.d.ts.map +1 -1
  139. package/dist/store/store.js +497 -190
  140. package/dist/store/store.js.map +1 -1
  141. package/dist/store/transcript.d.ts +3 -3
  142. package/dist/store/transcript.d.ts.map +1 -1
  143. package/dist/store/transcript.js +25 -6
  144. package/dist/store/transcript.js.map +1 -1
  145. package/dist/transcript.d.ts +19 -20
  146. package/dist/transcript.d.ts.map +1 -1
  147. package/dist/transcript.js +23 -21
  148. package/dist/transcript.js.map +1 -1
  149. package/dist/trigger-condition.d.ts +23 -0
  150. package/dist/trigger-condition.d.ts.map +1 -0
  151. package/dist/trigger-condition.js +8 -0
  152. package/dist/trigger-condition.js.map +1 -0
  153. package/drizzle/20260917071139_resolve_run_failure/migration.sql +1 -0
  154. package/drizzle/20260917071139_resolve_run_failure/snapshot.json +1471 -0
  155. package/drizzle/20260918032643_attempt_salvage/migration.sql +1 -0
  156. package/drizzle/20260918032643_attempt_salvage/snapshot.json +1481 -0
  157. package/drizzle/20261011153856_drop_workflow_tables/migration.sql +4 -0
  158. package/drizzle/20261011153856_drop_workflow_tables/snapshot.json +1433 -0
  159. package/drizzle/20261017155043_attempt_salvage_check/migration.sql +41 -0
  160. package/drizzle/20261017155043_attempt_salvage_check/snapshot.json +1421 -0
  161. package/drizzle/20261018162700_discard_attempt_leftovers/migration.sql +1 -0
  162. package/drizzle/20261018162700_discard_attempt_leftovers/snapshot.json +1431 -0
  163. package/drizzle/20261018172605_loop_items_and_reopenings/migration.sql +15 -0
  164. package/drizzle/20261018172605_loop_items_and_reopenings/snapshot.json +1574 -0
  165. package/drizzle/20261018180339_attempt_ended_at/migration.sql +1 -0
  166. package/drizzle/20261018180339_attempt_ended_at/snapshot.json +1584 -0
  167. package/drizzle/20261019104043_run_approval_source/migration.sql +15 -0
  168. package/drizzle/20261019104043_run_approval_source/snapshot.json +1610 -0
  169. package/drizzle/20261019133538_board_moves/migration.sql +14 -0
  170. package/drizzle/20261019133538_board_moves/snapshot.json +1731 -0
  171. package/drizzle/20261019170538_item_projection_gone/migration.sql +1 -0
  172. package/drizzle/20261019170538_item_projection_gone/snapshot.json +1741 -0
  173. package/drizzle/20261019180649_run_again_events/migration.sql +7 -0
  174. package/drizzle/20261019180649_run_again_events/snapshot.json +1804 -0
  175. package/drizzle/20261019185008_trigger_event_permissions/migration.sql +1 -0
  176. package/drizzle/20261019185008_trigger_event_permissions/snapshot.json +1814 -0
  177. package/drizzle/20261020103746_attempt_start/migration.sql +5 -0
  178. package/drizzle/20261020103746_attempt_start/snapshot.json +1844 -0
  179. package/drizzle/20261020125211_attempt_comments/migration.sql +1 -0
  180. package/drizzle/20261020125211_attempt_comments/snapshot.json +1854 -0
  181. package/drizzle/20261020191320_run_closed_at/migration.sql +6 -0
  182. package/drizzle/20261020191320_run_closed_at/snapshot.json +1864 -0
  183. package/drizzle/20261023091428_rename_loop_item_hold_to_suppression/migration.sql +2 -0
  184. package/drizzle/20261023091428_rename_loop_item_hold_to_suppression/snapshot.json +1867 -0
  185. package/drizzle/20261024162954_cycle_ask_closures/migration.sql +10 -0
  186. package/drizzle/20261024162954_cycle_ask_closures/snapshot.json +1948 -0
  187. package/drizzle/20261027104206_attempt_out_of_memory/migration.sql +1 -0
  188. package/drizzle/20261027104206_attempt_out_of_memory/snapshot.json +1958 -0
  189. package/drizzle/20261027191944_failure_resolution/migration.sql +1 -0
  190. package/drizzle/20261027191944_failure_resolution/snapshot.json +1968 -0
  191. package/package.json +22 -12
  192. package/dist/workflow/admission.d.ts.map +0 -1
  193. package/dist/workflow/admission.js.map +0 -1
  194. package/dist/workflow/command.d.ts +0 -13
  195. package/dist/workflow/command.d.ts.map +0 -1
  196. package/dist/workflow/command.js +0 -17
  197. package/dist/workflow/command.js.map +0 -1
  198. package/dist/workflow/workflow.d.ts +0 -18
  199. package/dist/workflow/workflow.d.ts.map +0 -1
  200. package/dist/workflow/workflow.js +0 -108
  201. package/dist/workflow/workflow.js.map +0 -1
@@ -3,17 +3,17 @@ import { ItemKey } from "@usine/core/item";
3
3
  import { Event } from "@usine/core/event";
4
4
  import * as RunState from "@usine/core/run/state";
5
5
  import { and, eq, inArray, sql } from "drizzle-orm";
6
- import { Context, Effect, Layer, Option } from "effect";
6
+ import { Context, DateTime, Effect, Layer, Option, Schema } from "effect";
7
7
  import { RunDatabase } from "../database/database.js";
8
- import { cycleReservations, cycleResets, events, itemCycleBudgets, runs, } from "../database/schema.js";
8
+ import { cycleAskClosures, cycleReservations, cycleResets, events, itemCycleBudgets, runs, } from "../database/schema.js";
9
9
  import { EnginePersistenceError } from "../engine/error.js";
10
10
  import { encodeDateTime, encodePayload } from "../store/codec.js";
11
- import { CycleBudgetReset, CycleBudgetResetRejectedError } from "./model.js";
11
+ import { CycleBudgetReset, CycleBudgetResetRejectedError, } from "./model.js";
12
12
  import { cycleQueries } from "./queries.js";
13
13
  const persistence = (effect) => effect.pipe(Effect.mapError((cause) => cause instanceof CycleBudgetResetRejectedError
14
14
  ? cause
15
15
  : new EnginePersistenceError({ operation: "update cycle budget", cause })));
16
- /** Durable Item-level Asks and explicit resets, independent of trigger and notification transports. */
16
+ /** The service for Item-level cycle-budget Asks and operator resets. */
17
17
  export class CycleBudgets extends Context.Service()("@usine/engine/CycleBudgets") {
18
18
  static layer = Layer.effect(CycleBudgets, Effect.gen(function* () {
19
19
  const database = yield* RunDatabase;
@@ -30,7 +30,7 @@ export class CycleBudgets extends Context.Service()("@usine/engine/CycleBudgets"
30
30
  });
31
31
  const asks = Effect.fn("CycleBudgets.asks")(() => queries
32
32
  .asks()
33
- .pipe(Effect.mapError((cause) => new EnginePersistenceError({ operation: "read cycle Asks", cause }))));
33
+ .pipe(Effect.mapError((cause) => new EnginePersistenceError({ operation: "read cycle asks", cause }))));
34
34
  const reset = Effect.fn("CycleBudgets.reset")(function* (askId, answer) {
35
35
  yield* Effect.annotateCurrentSpan({ askId, eventId: answer.id });
36
36
  yield* database
@@ -52,7 +52,7 @@ export class CycleBudgets extends Context.Service()("@usine/engine/CycleBudgets"
52
52
  return yield* new CycleBudgetResetRejectedError({ askId });
53
53
  const budget = yield* cycleQueries(transaction).get(ask.itemKey);
54
54
  if (Option.isNone(budget))
55
- return yield* Effect.die(new Error("Open cycle Ask has no budget"));
55
+ return yield* Effect.die(new Error("Open cycle ask has no budget"));
56
56
  const generation = budget.value.generation + 1;
57
57
  yield* transaction
58
58
  .insert(events)
@@ -72,8 +72,8 @@ export class CycleBudgets extends Context.Service()("@usine/engine/CycleBudgets"
72
72
  .set({ generation, askJson: null, resetPending: true })
73
73
  .where(eq(itemCycleBudgets.itemKey, ask.itemKey))
74
74
  .execute();
75
- // Pending work retains its reservation in the new allowance. Started
76
- // Runs finish against their original allowance and retries never charge again.
75
+ // Unstarted Runs move their reservation to the new generation. Started Runs keep the
76
+ // old one, and retries don't charge again.
77
77
  yield* transaction
78
78
  .update(cycleReservations)
79
79
  .set({ generation })
@@ -96,6 +96,47 @@ export class CycleBudgets extends Context.Service()("@usine/engine/CycleBudgets"
96
96
  }))
97
97
  .pipe(persistence);
98
98
  });
99
+ const close = Effect.fn("CycleBudgets.close")(function* (askId, reason) {
100
+ yield* Effect.annotateCurrentSpan({ askId, reason });
101
+ const closedAt = encodeDateTime(yield* DateTime.now);
102
+ return yield* database
103
+ .transaction((transaction) => Effect.gen(function* () {
104
+ const ask = (yield* cycleQueries(transaction).asks()).find(({ id }) => id === askId);
105
+ if (ask === undefined) {
106
+ yield* Effect.logInfo("Cycle-budget Ask is no longer open; nothing to close", {
107
+ askId,
108
+ reason,
109
+ });
110
+ return false;
111
+ }
112
+ const askJson = Schema.encodeSync(CycleBudgetAsk)(ask);
113
+ // An Item that matches again in the same generation raises an Ask with the same ID.
114
+ yield* transaction
115
+ .insert(cycleAskClosures)
116
+ .values({ askId, itemKey: ask.itemKey, reason, askJson, closedAt })
117
+ .onConflictDoUpdate({
118
+ target: cycleAskClosures.askId,
119
+ set: { reason, askJson, closedAt },
120
+ })
121
+ .execute();
122
+ yield* transaction
123
+ .update(itemCycleBudgets)
124
+ .set({ askJson: null })
125
+ .where(eq(itemCycleBudgets.itemKey, ask.itemKey))
126
+ .execute();
127
+ yield* Effect.logInfo("Closed cycle-budget Ask without a reset", {
128
+ askId,
129
+ reason,
130
+ itemKey: ask.itemKey,
131
+ repository: ask.repository,
132
+ loop: ask.loop,
133
+ completedCycles: ask.completedCycles,
134
+ counts: ask.counts,
135
+ });
136
+ return true;
137
+ }))
138
+ .pipe(Effect.mapError((cause) => new EnginePersistenceError({ operation: "close cycle ask", cause })));
139
+ });
99
140
  const pendingResets = Effect.fn("CycleBudgets.pendingResets")(() => queries.pendingResets().pipe(Effect.map((rows) => rows.map((row) => new CycleBudgetReset(row))), Effect.mapError((cause) => new EnginePersistenceError({ operation: "read pending cycle resets", cause }))));
100
141
  const acknowledgeReset = Effect.fn("CycleBudgets.acknowledgeReset")(function* (reset) {
101
142
  yield* Effect.annotateCurrentSpan({ itemKey: reset.itemKey, generation: reset.generation });
@@ -110,8 +151,8 @@ export class CycleBudgets extends Context.Service()("@usine/engine/CycleBudgets"
110
151
  generation: reset.generation,
111
152
  });
112
153
  });
113
- return { generation, asks, reset, pendingResets, acknowledgeReset };
154
+ return { generation, asks, reset, close, pendingResets, acknowledgeReset };
114
155
  }));
115
156
  }
116
- export { CycleBudgetReset, CycleBudgetResetRejectedError } from "./model.js";
157
+ export { CycleBudgetAskCloseReason, CycleBudgetReset, CycleBudgetResetRejectedError, } from "./model.js";
117
158
  //# sourceMappingURL=cycle-budget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cycle-budget.js","sourceRoot":"","sources":["../../src/cycle-budget/cycle-budget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cycle-budget.js","sourceRoot":"","sources":["../../src/cycle-budget/cycle-budget.ts"],"names":[],"mappings":"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"}
@@ -5,15 +5,19 @@ declare const CycleBudgetReset_base: Schema.Class<CycleBudgetReset, Schema.Struc
5
5
  readonly repository: Schema.brand<Schema.String, "RepositoryName">;
6
6
  readonly generation: Schema.brand<Schema.Int, "CycleGeneration">;
7
7
  }>, {}>;
8
- /** A reset whose Item still needs fresh trigger evaluation; acknowledgement is generation-bound. */
8
+ /** A reset whose Item still needs fresh trigger evaluation; acknowledgment is per generation. */
9
9
  export declare class CycleBudgetReset extends CycleBudgetReset_base {
10
10
  }
11
11
  declare const CycleBudgetResetRejectedError_base: Schema.Class<CycleBudgetResetRejectedError, Schema.TaggedStruct<"CycleBudgetResetRejectedError", {
12
12
  readonly askId: Schema.brand<Schema.brand<Schema.NonEmptyString, "EventId">, "CycleBudgetAskId">;
13
13
  }>, import("effect/Cause").YieldableError>;
14
- /** The requested Ask is absent, already answered differently, or no longer current. */
14
+ /** An error for an Ask that is absent, answered differently, or no longer current. */
15
15
  export declare class CycleBudgetResetRejectedError extends CycleBudgetResetRejectedError_base {
16
16
  }
17
+ /** The reasons a cycle-budget Ask closes without a reset. `ItemClosed`: the Item was closed or merged. */
18
+ export declare const CYCLE_BUDGET_ASK_CLOSE_REASONS: readonly ["ItemClosed"];
19
+ export declare const CycleBudgetAskCloseReason: Schema.Literals<readonly ["ItemClosed"]>;
20
+ export type CycleBudgetAskCloseReason = typeof CycleBudgetAskCloseReason.Type;
17
21
  export declare const BudgetRow: Schema.Struct<{
18
22
  readonly itemKey: Schema.brand<Schema.NonEmptyString, "ItemKey">;
19
23
  readonly repository: Schema.brand<Schema.String, "RepositoryName">;
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/cycle-budget/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqC,MAAM,0BAA0B,CAAC;AAG7F,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;;AAEhC,oGAAoG;AACpG,qBAAa,gBAAiB,SAAQ,qBAIpC;CAAG;;;;AAEL,uFAAuF;AACvF,qBAAa,6BAA8B,SAAQ,kCAEY;CAAG;AAElE,eAAO,MAAM,SAAS;;;;;;EAIpB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAC"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/cycle-budget/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqC,MAAM,0BAA0B,CAAC;AAG7F,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;;AAEhC,iGAAiG;AACjG,qBAAa,gBAAiB,SAAQ,qBAIpC;CAAG;;;;AAEL,sFAAsF;AACtF,qBAAa,6BAA8B,SAAQ,kCAEY;CAAG;AAElE,0GAA0G;AAC1G,eAAO,MAAM,8BAA8B,YAAI,YAAY,CAAU,CAAC;AACtE,eAAO,MAAM,yBAAyB,0CAAkD,CAAC;AACzF,MAAM,MAAM,yBAAyB,GAAG,OAAO,yBAAyB,CAAC,IAAI,CAAC;AAE9E,eAAO,MAAM,SAAS;;;;;;EAIpB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAC"}
@@ -2,16 +2,19 @@ import { CycleBudgetAsk, CycleBudgetAskId, CycleGeneration } from "@usine/core/c
2
2
  import { ItemKey } from "@usine/core/item";
3
3
  import { RepositoryName } from "@usine/core/repository";
4
4
  import { Schema } from "effect";
5
- /** A reset whose Item still needs fresh trigger evaluation; acknowledgement is generation-bound. */
5
+ /** A reset whose Item still needs fresh trigger evaluation; acknowledgment is per generation. */
6
6
  export class CycleBudgetReset extends Schema.Class("CycleBudgetReset")({
7
7
  itemKey: ItemKey,
8
8
  repository: RepositoryName,
9
9
  generation: CycleGeneration,
10
10
  }) {
11
11
  }
12
- /** The requested Ask is absent, already answered differently, or no longer current. */
12
+ /** An error for an Ask that is absent, answered differently, or no longer current. */
13
13
  export class CycleBudgetResetRejectedError extends Schema.TaggedError("CycleBudgetResetRejectedError")("CycleBudgetResetRejectedError", { askId: CycleBudgetAskId }) {
14
14
  }
15
+ /** The reasons a cycle-budget Ask closes without a reset. `ItemClosed`: the Item was closed or merged. */
16
+ export const CYCLE_BUDGET_ASK_CLOSE_REASONS = ["ItemClosed"];
17
+ export const CycleBudgetAskCloseReason = Schema.Literals(CYCLE_BUDGET_ASK_CLOSE_REASONS);
15
18
  export const BudgetRow = Schema.Struct({
16
19
  ...CycleBudgetReset.fields,
17
20
  ask: Schema.OptionFromNullOr(CycleBudgetAsk),
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/cycle-budget/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,oGAAoG;AACpG,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC,KAAK,CAAmB,kBAAkB,CAAC,CAAC;IACvF,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,cAAc;IAC1B,UAAU,EAAE,eAAe;CAC5B,CAAC;CAAG;AAEL,uFAAuF;AACvF,MAAM,OAAO,6BAA8B,SAAQ,MAAM,CAAC,WAAW,CACnE,+BAA+B,CAChC,CAAC,+BAA+B,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAAG;AAElE,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,GAAG,gBAAgB,CAAC,MAAM;IAC1B,GAAG,EAAE,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC;IAC5C,YAAY,EAAE,MAAM,CAAC,OAAO;CAC7B,CAAC,CAAC"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/cycle-budget/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,iGAAiG;AACjG,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC,KAAK,CAAmB,kBAAkB,CAAC,CAAC;IACvF,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,cAAc;IAC1B,UAAU,EAAE,eAAe;CAC5B,CAAC;CAAG;AAEL,sFAAsF;AACtF,MAAM,OAAO,6BAA8B,SAAQ,MAAM,CAAC,WAAW,CACnE,+BAA+B,CAChC,CAAC,+BAA+B,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAAG;AAElE,0GAA0G;AAC1G,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,YAAY,CAAU,CAAC;AACtE,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;AAGzF,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,GAAG,gBAAgB,CAAC,MAAM;IAC1B,GAAG,EAAE,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC;IAC5C,YAAY,EAAE,MAAM,CAAC,OAAO;CAC7B,CAAC,CAAC"}
@@ -2,7 +2,7 @@ import { CycleBudgetAsk } from "@usine/core/cycle-budget";
2
2
  import { Effect, Option, Schema } from "effect";
3
3
  import type { RunDatabaseClient } from "../database/database.ts";
4
4
  import type { Submission } from "../engine/submission.ts";
5
- /** Transaction-local admission and reservation operations shared with the Run store. */
5
+ /** Returns the admission and reservation queries that run inside a Run store transaction. */
6
6
  export declare const cycleQueries: (database: RunDatabaseClient) => {
7
7
  admit: (submission: Submission) => Effect.Effect<Option.Option<CycleBudgetAsk>, import("drizzle-orm/effect-core").EffectDrizzleQueryError | Schema.SchemaError, never>;
8
8
  reserve: (submission: Submission, runId: string & import("effect/Brand").Brand<"RunId">) => Effect.Effect<undefined, import("drizzle-orm/effect-core").EffectDrizzleQueryError | Schema.SchemaError, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/cycle-budget/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAoC,MAAM,0BAA0B,CAAC;AAM5F,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAQjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAc1D,wFAAwF;AACxF,eAAO,MAAM,YAAY,aAAc,iBAAiB;;;;;;;;;;;;;;;;;;;;CAgLvD,CAAC"}
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/cycle-budget/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAoC,MAAM,0BAA0B,CAAC;AAM5F,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAQjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAc1D,6FAA6F;AAC7F,eAAO,MAAM,YAAY,aAAc,iBAAiB;;;;;;;;;;;;;;;;;;;;CAgLvD,CAAC"}
@@ -17,10 +17,10 @@ const budgetSelection = {
17
17
  const decodeBudget = Schema.decodeUnknownEffect(Schema.Array(BudgetRow), {
18
18
  onExcessProperty: "error",
19
19
  });
20
- /** Transaction-local admission and reservation operations shared with the Run store. */
20
+ /** Returns the admission and reservation queries that run inside a Run store transaction. */
21
21
  export const cycleQueries = (database) => {
22
- // Apply the same immutable observation generation at admission and before
23
- // queue ordering, so stale Events cannot hide eligible work after a reset.
22
+ // Admission and queue ordering use the same generation filter, so stale Events can't hide
23
+ // eligible work after a reset.
24
24
  const currentEvent = eq(triggerEvents.cycleGeneration, sql `coalesce((
25
25
  select ${itemCycleBudgets.generation} from ${itemCycleBudgets}
26
26
  where ${itemCycleBudgets.itemKey} = ${triggerEvents.itemKey}
@@ -1 +1 @@
1
- {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/cycle-budget/queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/cycle-budget/queries.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ interface RunDatabaseEffect extends QueryEffectHKTBase {
5
5
  readonly context: never;
6
6
  readonly error: EffectDrizzleQueryError;
7
7
  }
8
- /** The Effect database the run projection store queries, independent of the SQLite driver. */
8
+ /** The Effect database client for the Run store, independent of the SQLite driver. */
9
9
  export type RunDatabaseClient = SQLiteEffectDatabase<RunDatabaseEffect, unknown>;
10
10
  declare const RunDatabase_base: Context.ServiceClass<RunDatabase, "@usine/engine/internal/RunDatabase", RunDatabaseClient>;
11
11
  export declare class RunDatabase extends RunDatabase_base {
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/database/database.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAExC,UAAU,iBAAkB,SAAQ,kBAAkB;IACpD,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC;CACzC;AAED,8FAA8F;AAC9F,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;;AAEjF,qBAAa,WAAY,SAAQ,gBAEhC;IACC,MAAM,CAAC,QAAQ,CAAC,KAAK,aAAc,iBAAiB,4CAA0C;CAC/F"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/database/database.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAExC,UAAU,iBAAkB,SAAQ,kBAAkB;IACpD,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC;CACzC;AAED,sFAAsF;AACtF,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;;AAEjF,qBAAa,WAAY,SAAQ,gBAEhC;IACC,MAAM,CAAC,QAAQ,CAAC,KAAK,aAAc,iBAAiB,4CAA0C;CAC/F"}
@@ -4,19 +4,22 @@ import { CursorStore } from "../cursor/cursor.ts";
4
4
  import { ItemProjectionReader, ItemProjectionWriter } from "../item-projection/item-projection.ts";
5
5
  import { RepositoryLabelProjectionReader, RepositoryLabelProjectionWriter } from "../repository-label-projection/repository-label-projection.ts";
6
6
  import { LoopControl } from "../loop-control/loop-control.ts";
7
+ import { BoardMoves } from "../board-moves/board-moves.ts";
7
8
  import { CycleBudgets } from "../cycle-budget/cycle-budget.ts";
8
9
  import { type RunEngine } from "../engine/engine.ts";
10
+ import { UnconfirmedStops } from "../engine/unconfirmed-stops.ts";
9
11
  import type { InstanceDirectory } from "@usine/core/instance";
10
12
  import { EnginePersistenceError, type RunEngineError } from "../engine/error.ts";
11
13
  import { RunReader } from "../run-reader/run-reader.ts";
12
14
  import type { StepExecutor } from "../step-executor.ts";
15
+ import type { TriggerCondition } from "../trigger-condition.ts";
13
16
  import { RunDatabase } from "./database.ts";
14
- export declare const localSqliteLayer: (instanceDirectory: InstanceDirectory) => Layer.Layer<RunDatabase | import("effect/unstable/sql/SqlClient").SqlClient | SqliteClient.SqliteClient, EnginePersistenceError, never>;
15
- /** The local runtime on `.usine/runtime.sqlite`. */
16
- export declare const layer: (instanceDirectory: InstanceDirectory) => Layer.Layer<CursorStore | CycleBudgets | ItemProjectionReader | ItemProjectionWriter | LoopControl | RepositoryLabelProjectionReader | RepositoryLabelProjectionWriter | RunEngine | RunReader, RunEngineError, StepExecutor>;
17
- /** Observation services initialize the local database but never reconcile workflows or start Attempts. */
18
- export declare const observationLayer: (instanceDirectory: InstanceDirectory) => Layer.Layer<CycleBudgets | ItemProjectionReader | LoopControl | RepositoryLabelProjectionReader | RunReader, RunEngineError>;
19
- /** Opens an existing `.usine/runtime.sqlite` in SQLite read-only mode, without initializing or migrating the database. */
17
+ export declare const localSqliteLayer: (instanceDirectory: InstanceDirectory) => Layer.Layer<RunDatabase | import("effect/sql/SqlClient").SqlClient | SqliteClient.SqliteClient, EnginePersistenceError, never>;
18
+ /** Returns the local runtime layer on `.usine/runtime.sqlite`. */
19
+ export declare const layer: (instanceDirectory: InstanceDirectory) => Layer.Layer<BoardMoves | CursorStore | CycleBudgets | ItemProjectionReader | ItemProjectionWriter | LoopControl | RepositoryLabelProjectionReader | RepositoryLabelProjectionWriter | RunEngine | RunReader | UnconfirmedStops, RunEngineError, StepExecutor | TriggerCondition>;
20
+ /** Returns the observation layer, which initializes the local database but never recovers Runs or starts Attempts. */
21
+ export declare const observationLayer: (instanceDirectory: InstanceDirectory) => Layer.Layer<CycleBudgets | ItemProjectionReader | LoopControl | RepositoryLabelProjectionReader | RunReader | UnconfirmedStops, RunEngineError>;
22
+ /** Returns a layer that opens an existing `.usine/runtime.sqlite` read-only, without initializing or migrating it. */
20
23
  export declare const runReaderLayer: (instanceDirectory: InstanceDirectory) => Layer.Layer<RunReader, EnginePersistenceError>;
21
24
  declare const RuntimeStoreBackupError_base: Schema.Class<RuntimeStoreBackupError, Schema.TaggedStruct<"RuntimeStoreBackupError", {
22
25
  readonly operation: Schema.Literals<readonly ["open", "stage", "copy", "publish"]>;
@@ -25,12 +28,12 @@ declare const RuntimeStoreBackupError_base: Schema.Class<RuntimeStoreBackupError
25
28
  readonly reason: Schema.String;
26
29
  readonly cause: Schema.Defect;
27
30
  }>, import("effect/Cause").YieldableError>;
28
- /** A failed backup operation, with both paths because SQLite copy errors can come from either file. */
31
+ /** An error from a backup, with both paths because a copy error can come from either file. */
29
32
  export declare class RuntimeStoreBackupError extends RuntimeStoreBackupError_base {
30
33
  }
31
- /** Copies `.usine/runtime.sqlite` to a new file while the orchestrator runs.
32
- * The destination directory must exist and support hard links. Opens the source
33
- * read-only and saves a complete backup without overwriting an existing file.
34
+ /**
35
+ * Copies `.usine/runtime.sqlite` to `destination` while the orchestrator runs, without
36
+ * overwriting an existing file. The destination directory must exist and support hard links.
34
37
  */
35
38
  export declare const backup: (instanceDirectory: string & import("effect/Brand").Brand<"InstanceDirectory">, destination: string) => Effect.Effect<void, RuntimeStoreBackupError, never>;
36
39
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"local-sqlite.d.ts","sourceRoot":"","sources":["../../src/database/local-sqlite.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAKvD,OAAO,EAAE,MAAM,EAAc,KAAK,EAA+B,MAAM,EAAE,MAAM,QAAQ,CAAC;AAExF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AACnG,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAChC,MAAM,+DAA+D,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAuB5C,eAAO,MAAM,gBAAgB,sBAAuB,iBAAiB,4IAyBpE,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,KAAK,sBACG,iBAAiB,KACnC,KAAK,CAAC,KAAK,CACV,WAAW,GACX,YAAY,GACZ,oBAAoB,GACpB,oBAAoB,GACpB,WAAW,GACX,+BAA+B,GAC/B,+BAA+B,GAC/B,SAAS,GACT,SAAS,EACX,cAAc,EACd,YAAY,CACqF,CAAC;AAEpG,0GAA0G;AAC1G,eAAO,MAAM,gBAAgB,sBACR,iBAAiB,KACnC,KAAK,CAAC,KAAK,CACZ,YAAY,GAAG,oBAAoB,GAAG,WAAW,GAAG,+BAA+B,GAAG,SAAS,EAC/F,cAAc,CAUf,CAAC;AAiCF,0HAA0H;AAC1H,eAAO,MAAM,cAAc,sBACN,iBAAiB,KACnC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,sBAAsB,CAM/C,CAAC;;;;;;;;AAEF,uGAAuG;AACvG,qBAAa,uBAAwB,SAAQ,4BAQ3C;CAAG;AAmBL;;;GAGG;AACH,eAAO,MAAM,MAAM,6JAuDlB,CAAC"}
1
+ {"version":3,"file":"local-sqlite.d.ts","sourceRoot":"","sources":["../../src/database/local-sqlite.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAKvD,OAAO,EAAE,MAAM,EAAc,KAAK,EAA+B,MAAM,EAAE,MAAM,QAAQ,CAAC;AAExF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AACnG,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAChC,MAAM,+DAA+D,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AA+B5C,eAAO,MAAM,gBAAgB,sBAAuB,iBAAiB,mIAyBpE,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,KAAK,sBACG,iBAAiB,KACnC,KAAK,CAAC,KAAK,CACV,UAAU,GACV,WAAW,GACX,YAAY,GACZ,oBAAoB,GACpB,oBAAoB,GACpB,WAAW,GACX,+BAA+B,GAC/B,+BAA+B,GAC/B,SAAS,GACT,SAAS,GACT,gBAAgB,EAClB,cAAc,EACd,YAAY,GAAG,gBAAgB,CACkE,CAAC;AAEpG,sHAAsH;AACtH,eAAO,MAAM,gBAAgB,sBACR,iBAAiB,KACnC,KAAK,CAAC,KAAK,CACV,YAAY,GACZ,oBAAoB,GACpB,WAAW,GACX,+BAA+B,GAC/B,SAAS,GACT,gBAAgB,EAClB,cAAc,CAUf,CAAC;AAmCF,sHAAsH;AACtH,eAAO,MAAM,cAAc,sBACN,iBAAiB,KACnC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,sBAAsB,CAM/C,CAAC;;;;;;;;AAEF,8FAA8F;AAC9F,qBAAa,uBAAwB,SAAQ,4BAQ3C;CAAG;AAmBL;;;GAGG;AACH,eAAO,MAAM,MAAM,6JAwDlB,CAAC"}
@@ -9,27 +9,31 @@ import { CursorStore } from "../cursor/cursor.js";
9
9
  import { ItemProjectionReader, ItemProjectionWriter } from "../item-projection/item-projection.js";
10
10
  import { RepositoryLabelProjectionReader, RepositoryLabelProjectionWriter, } from "../repository-label-projection/repository-label-projection.js";
11
11
  import { LoopControl } from "../loop-control/loop-control.js";
12
+ import { BoardMoves } from "../board-moves/board-moves.js";
12
13
  import { CycleBudgets } from "../cycle-budget/cycle-budget.js";
13
14
  import { layerWithDatabase } from "../engine/engine.js";
15
+ import { UnconfirmedStops } from "../engine/unconfirmed-stops.js";
14
16
  import { EnginePersistenceError } from "../engine/error.js";
15
17
  import { RunReader } from "../run-reader/run-reader.js";
16
18
  import { RunDatabase } from "./database.js";
17
19
  const migrationsFolder = fileURLToPath(new URL("../../drizzle", import.meta.url));
18
20
  const startupError = (operation, cause) => new EnginePersistenceError({ operation, cause });
19
21
  const runtimeStorePath = (path, instanceDirectory) => path.join(instanceDirectory, ".usine", "runtime.sqlite");
22
+ /** Returns `SqliteClient.layer`, failing with `onError` when the database can't be opened. */
23
+ const openSqliteLayer = (config, onError) => Layer.effectContext(Layer.build(SqliteClient.layer(config)).pipe(Effect.mapError(onError)));
20
24
  const sqliteClientLayer = (instanceDirectory) => Layer.unwrap(Effect.gen(function* () {
21
25
  const fileSystem = yield* FileSystem.FileSystem;
22
26
  const path = yield* Path.Path;
23
27
  yield* fileSystem.makeDirectory(path.join(instanceDirectory, ".usine"), { recursive: true });
24
- return SqliteClient.layer({ filename: runtimeStorePath(path, instanceDirectory) });
28
+ return openSqliteLayer({ filename: runtimeStorePath(path, instanceDirectory) }, (cause) => startupError("open local database", cause));
25
29
  }).pipe(Effect.mapError((cause) => startupError("prepare local database directory", cause)), Effect.provide(NodeServices.layer)));
26
30
  export const localSqliteLayer = (instanceDirectory) => {
27
31
  const sqlClient = sqliteClientLayer(instanceDirectory);
28
32
  const database = Layer.effect(RunDatabase, Effect.gen(function* () {
29
33
  const drizzle = yield* SQLiteDrizzle.makeWithDefaults();
30
- // SQLite ignores foreign_keys changes inside a transaction. Drizzle
31
- // rebuilds referenced tables while migrating, so disable before its
32
- // transaction and restore enforcement even when a migration fails.
34
+ // SQLite ignores `foreign_keys` changes inside a transaction, and Drizzle rebuilds
35
+ // referenced tables while migrating, so enforcement is turned off before migrating and
36
+ // back on even if a migration fails.
33
37
  yield* drizzle.run(sql `PRAGMA foreign_keys = OFF`).execute();
34
38
  yield* migrate(drizzle, {
35
39
  migrationsFolder,
@@ -42,12 +46,12 @@ export const localSqliteLayer = (instanceDirectory) => {
42
46
  }).pipe(Effect.mapError((cause) => startupError("initialize local database", cause))));
43
47
  return database.pipe(Layer.provideMerge(sqlClient));
44
48
  };
45
- /** The local runtime on `.usine/runtime.sqlite`. */
49
+ /** Returns the local runtime layer on `.usine/runtime.sqlite`. */
46
50
  export const layer = (instanceDirectory) => layerWithDatabase(localSqliteLayer(instanceDirectory)).pipe(Layer.provide(NodeServices.layer));
47
- /** Observation services initialize the local database but never reconcile workflows or start Attempts. */
51
+ /** Returns the observation layer, which initializes the local database but never recovers Runs or starts Attempts. */
48
52
  export const observationLayer = (instanceDirectory) => {
49
53
  const database = localSqliteLayer(instanceDirectory);
50
- return Layer.mergeAll(CycleBudgets.layer, ItemProjectionReader.layer, LoopControl.layer, RepositoryLabelProjectionReader.layer, RunReader.layer).pipe(Layer.provide(database));
54
+ return Layer.mergeAll(CycleBudgets.layer, ItemProjectionReader.layer, LoopControl.layer, RepositoryLabelProjectionReader.layer, RunReader.layer).pipe(Layer.provide(database), Layer.merge(UnconfirmedStops.empty));
51
55
  };
52
56
  const readableRuntimeStore = Effect.fn("LocalSqlite.readableRuntimeStore")(function* (filename) {
53
57
  const fileSystem = yield* FileSystem.FileSystem;
@@ -62,19 +66,19 @@ const readableRuntimeStore = Effect.fn("LocalSqlite.readableRuntimeStore")(funct
62
66
  description: `Expected a regular SQLite file, found ${info.type}`,
63
67
  });
64
68
  });
65
- const readOnlySqliteLayer = (filename) => SqliteClient.layer({ filename, readonly: true, disableWAL: true });
69
+ const readOnlySqliteLayer = (filename, onError) => openSqliteLayer({ filename, readonly: true, disableWAL: true }, onError);
66
70
  const existingSqliteLayer = (instanceDirectory) => Layer.unwrap(Effect.gen(function* () {
67
71
  const filename = runtimeStorePath(yield* Path.Path, instanceDirectory);
68
72
  yield* readableRuntimeStore(filename);
69
- return readOnlySqliteLayer(filename);
73
+ return readOnlySqliteLayer(filename, (cause) => startupError("open existing local database", cause));
70
74
  }).pipe(Effect.mapError((cause) => startupError("open existing local database", cause)), Effect.provide(NodeServices.layer)));
71
- /** Opens an existing `.usine/runtime.sqlite` in SQLite read-only mode, without initializing or migrating the database. */
75
+ /** Returns a layer that opens an existing `.usine/runtime.sqlite` read-only, without initializing or migrating it. */
72
76
  export const runReaderLayer = (instanceDirectory) => {
73
77
  const sqlClient = existingSqliteLayer(instanceDirectory);
74
78
  const database = Layer.effect(RunDatabase, SQLiteDrizzle.makeWithDefaults()).pipe(Layer.provide(sqlClient));
75
79
  return RunReader.layer.pipe(Layer.provide(database));
76
80
  };
77
- /** A failed backup operation, with both paths because SQLite copy errors can come from either file. */
81
+ /** An error from a backup, with both paths because a copy error can come from either file. */
78
82
  export class RuntimeStoreBackupError extends Schema.TaggedError("@usine/engine/RuntimeStoreBackupError")("RuntimeStoreBackupError", {
79
83
  operation: Schema.Literals(["open", "stage", "copy", "publish"]),
80
84
  source: Schema.String,
@@ -100,9 +104,9 @@ const failureReason = (cause) => {
100
104
  onSome: ({ code }) => code,
101
105
  });
102
106
  };
103
- /** Copies `.usine/runtime.sqlite` to a new file while the orchestrator runs.
104
- * The destination directory must exist and support hard links. Opens the source
105
- * read-only and saves a complete backup without overwriting an existing file.
107
+ /**
108
+ * Copies `.usine/runtime.sqlite` to `destination` while the orchestrator runs, without
109
+ * overwriting an existing file. The destination directory must exist and support hard links.
106
110
  */
107
111
  export const backup = Effect.fn("LocalSqlite.backup")(function* (instanceDirectory, destination) {
108
112
  yield* Effect.annotateCurrentSpan({ instanceDirectory, destination });
@@ -110,13 +114,14 @@ export const backup = Effect.fn("LocalSqlite.backup")(function* (instanceDirecto
110
114
  const fileSystem = yield* FileSystem.FileSystem;
111
115
  const path = yield* Path.Path;
112
116
  const source = runtimeStorePath(path, instanceDirectory);
113
- const failed = (operation) => Effect.mapError((cause) => new RuntimeStoreBackupError({
117
+ const failure = (operation) => (cause) => new RuntimeStoreBackupError({
114
118
  operation,
115
119
  source,
116
120
  destination,
117
121
  reason: failureReason(cause),
118
122
  cause,
119
- }));
123
+ });
124
+ const failed = (operation) => Effect.mapError(failure(operation));
120
125
  yield* readableRuntimeStore(source).pipe(failed("open"));
121
126
  const { totalPages } = yield* Effect.scoped(Effect.gen(function* () {
122
127
  const directory = path.dirname(destination);
@@ -129,7 +134,7 @@ export const backup = Effect.fn("LocalSqlite.backup")(function* (instanceDirecto
129
134
  .pipe(failed("stage"));
130
135
  const metadata = yield* Effect.flatMap(SqliteClient.SqliteClient, (client) =>
131
136
  // Node's backup can't be canceled; wait before closing the database or deleting staging.
132
- client.backup(staged).pipe(failed("copy"), Effect.uninterruptible)).pipe(Effect.provide(readOnlySqliteLayer(source)));
137
+ client.backup(staged).pipe(failed("copy"), Effect.uninterruptible)).pipe(Effect.provide(readOnlySqliteLayer(source, failure("open"))));
133
138
  // A hard link atomically creates the destination without overwriting it.
134
139
  yield* fileSystem.link(staged, destination).pipe(failed("publish"));
135
140
  return metadata;
@@ -1 +1 @@
1
- {"version":3,"file":"local-sqlite.js","sourceRoot":"","sources":["../../src/database/local-sqlite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-sqlite.js","sourceRoot":"","sources":["../../src/database/local-sqlite.ts"],"names":[],"mappings":"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"}