@usine/engine 0.1.0 → 0.2.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 (150) hide show
  1. package/README.md +37 -12
  2. package/dist/cursor/{store.d.ts → cursor.d.ts} +9 -7
  3. package/dist/cursor/cursor.d.ts.map +1 -0
  4. package/dist/cursor/{store.js → cursor.js} +8 -7
  5. package/dist/cursor/cursor.js.map +1 -0
  6. package/dist/cycle-budget/cycle-budget.d.ts +25 -0
  7. package/dist/cycle-budget/cycle-budget.d.ts.map +1 -0
  8. package/dist/cycle-budget/cycle-budget.js +117 -0
  9. package/dist/cycle-budget/cycle-budget.js.map +1 -0
  10. package/dist/cycle-budget/model.d.ts +26 -0
  11. package/dist/cycle-budget/model.d.ts.map +1 -0
  12. package/dist/cycle-budget/model.js +20 -0
  13. package/dist/cycle-budget/model.js.map +1 -0
  14. package/dist/cycle-budget/queries.d.ts +27 -0
  15. package/dist/cycle-budget/queries.d.ts.map +1 -0
  16. package/dist/cycle-budget/queries.js +175 -0
  17. package/dist/cycle-budget/queries.js.map +1 -0
  18. package/dist/database/database.d.ts +1 -1
  19. package/dist/database/database.d.ts.map +1 -1
  20. package/dist/database/local-sqlite.d.ts +32 -12
  21. package/dist/database/local-sqlite.d.ts.map +1 -1
  22. package/dist/database/local-sqlite.js +113 -14
  23. package/dist/database/local-sqlite.js.map +1 -1
  24. package/dist/database/schema.d.ts +254 -9
  25. package/dist/database/schema.d.ts.map +1 -1
  26. package/dist/database/schema.js +65 -12
  27. package/dist/database/schema.js.map +1 -1
  28. package/dist/engine/engine.d.ts +55 -0
  29. package/dist/engine/engine.d.ts.map +1 -0
  30. package/dist/{engine.js → engine/engine.js} +44 -30
  31. package/dist/engine/engine.js.map +1 -0
  32. package/dist/engine/error.d.ts +37 -0
  33. package/dist/engine/error.d.ts.map +1 -0
  34. package/dist/engine/error.js +41 -0
  35. package/dist/engine/error.js.map +1 -0
  36. package/dist/engine/lifecycle.d.ts +112 -0
  37. package/dist/engine/lifecycle.d.ts.map +1 -0
  38. package/dist/engine/lifecycle.js +132 -0
  39. package/dist/engine/lifecycle.js.map +1 -0
  40. package/dist/engine/shutdown.d.ts +12 -0
  41. package/dist/engine/shutdown.d.ts.map +1 -0
  42. package/dist/engine/shutdown.js +10 -0
  43. package/dist/engine/shutdown.js.map +1 -0
  44. package/dist/engine/submission.d.ts +58 -0
  45. package/dist/engine/submission.d.ts.map +1 -0
  46. package/dist/engine/submission.js +54 -0
  47. package/dist/engine/submission.js.map +1 -0
  48. package/dist/item-projection/{service.d.ts → item-projection.d.ts} +6 -6
  49. package/dist/item-projection/item-projection.d.ts.map +1 -0
  50. package/dist/item-projection/{service.js → item-projection.js} +7 -5
  51. package/dist/item-projection/item-projection.js.map +1 -0
  52. package/dist/item-projection/model.d.ts +2 -5
  53. package/dist/item-projection/model.d.ts.map +1 -1
  54. package/dist/item-projection/model.js +5 -5
  55. package/dist/item-projection/model.js.map +1 -1
  56. package/dist/loop-control/loop-control.d.ts +21 -0
  57. package/dist/loop-control/loop-control.d.ts.map +1 -0
  58. package/dist/{loop-control.js → loop-control/loop-control.js} +7 -5
  59. package/dist/loop-control/loop-control.js.map +1 -0
  60. package/dist/loop-control/model.d.ts +10 -0
  61. package/dist/loop-control/model.d.ts.map +1 -0
  62. package/dist/loop-control/model.js +9 -0
  63. package/dist/loop-control/model.js.map +1 -0
  64. package/dist/repository-label-projection/model.d.ts +12 -3
  65. package/dist/repository-label-projection/model.d.ts.map +1 -1
  66. package/dist/repository-label-projection/model.js +14 -5
  67. package/dist/repository-label-projection/model.js.map +1 -1
  68. package/dist/repository-label-projection/{service.d.ts → repository-label-projection.d.ts} +5 -5
  69. package/dist/repository-label-projection/repository-label-projection.d.ts.map +1 -0
  70. package/dist/repository-label-projection/{service.js → repository-label-projection.js} +17 -7
  71. package/dist/repository-label-projection/repository-label-projection.js.map +1 -0
  72. package/dist/run-reader/model.d.ts +46 -0
  73. package/dist/run-reader/model.d.ts.map +1 -0
  74. package/dist/run-reader/model.js +44 -0
  75. package/dist/run-reader/model.js.map +1 -0
  76. package/dist/run-reader/run-reader.d.ts +29 -0
  77. package/dist/run-reader/run-reader.d.ts.map +1 -0
  78. package/dist/run-reader/run-reader.js +44 -0
  79. package/dist/run-reader/run-reader.js.map +1 -0
  80. package/dist/step-executor.d.ts +34 -12
  81. package/dist/step-executor.d.ts.map +1 -1
  82. package/dist/step-executor.js +22 -5
  83. package/dist/step-executor.js.map +1 -1
  84. package/dist/store/codec.d.ts +104 -40
  85. package/dist/store/codec.d.ts.map +1 -1
  86. package/dist/store/codec.js +66 -44
  87. package/dist/store/codec.js.map +1 -1
  88. package/dist/store/queries.d.ts +47 -15
  89. package/dist/store/queries.d.ts.map +1 -1
  90. package/dist/store/queries.js +74 -39
  91. package/dist/store/queries.js.map +1 -1
  92. package/dist/store/store.d.ts +44 -26
  93. package/dist/store/store.d.ts.map +1 -1
  94. package/dist/store/store.js +185 -127
  95. package/dist/store/store.js.map +1 -1
  96. package/dist/transcript.d.ts +64 -0
  97. package/dist/transcript.d.ts.map +1 -0
  98. package/dist/transcript.js +59 -0
  99. package/dist/transcript.js.map +1 -0
  100. package/dist/workflow/admission.d.ts +13 -0
  101. package/dist/workflow/admission.d.ts.map +1 -0
  102. package/dist/workflow/admission.js +55 -0
  103. package/dist/workflow/admission.js.map +1 -0
  104. package/dist/workflow/command.d.ts +13 -0
  105. package/dist/workflow/command.d.ts.map +1 -0
  106. package/dist/workflow/command.js +17 -0
  107. package/dist/workflow/command.js.map +1 -0
  108. package/dist/workflow/workflow.d.ts +18 -0
  109. package/dist/workflow/workflow.d.ts.map +1 -0
  110. package/dist/workflow/workflow.js +108 -0
  111. package/dist/workflow/workflow.js.map +1 -0
  112. package/drizzle/20260903091940_queued_approved_runs/migration.sql +3 -0
  113. package/drizzle/20260903091940_queued_approved_runs/snapshot.json +1147 -0
  114. package/drizzle/20260905150403_item_cycle_budgets/migration.sql +58 -0
  115. package/drizzle/20260905150403_item_cycle_budgets/snapshot.json +1417 -0
  116. package/drizzle/20260905174009_item_run_history/migration.sql +1 -0
  117. package/drizzle/20260905174009_item_run_history/snapshot.json +1431 -0
  118. package/package.json +41 -5
  119. package/dist/cursor/model.d.ts +0 -5
  120. package/dist/cursor/model.d.ts.map +0 -1
  121. package/dist/cursor/model.js +0 -4
  122. package/dist/cursor/model.js.map +0 -1
  123. package/dist/cursor/store.d.ts.map +0 -1
  124. package/dist/cursor/store.js.map +0 -1
  125. package/dist/engine.d.ts +0 -39
  126. package/dist/engine.d.ts.map +0 -1
  127. package/dist/engine.js.map +0 -1
  128. package/dist/index.d.ts +0 -20
  129. package/dist/index.d.ts.map +0 -1
  130. package/dist/index.js +0 -20
  131. package/dist/index.js.map +0 -1
  132. package/dist/item-projection/service.d.ts.map +0 -1
  133. package/dist/item-projection/service.js.map +0 -1
  134. package/dist/loop-control.d.ts +0 -16
  135. package/dist/loop-control.d.ts.map +0 -1
  136. package/dist/loop-control.js.map +0 -1
  137. package/dist/model.d.ts +0 -185
  138. package/dist/model.d.ts.map +0 -1
  139. package/dist/model.js +0 -174
  140. package/dist/model.js.map +0 -1
  141. package/dist/repository-label-projection/service.d.ts.map +0 -1
  142. package/dist/repository-label-projection/service.js.map +0 -1
  143. package/dist/run-reader.d.ts +0 -20
  144. package/dist/run-reader.d.ts.map +0 -1
  145. package/dist/run-reader.js +0 -19
  146. package/dist/run-reader.js.map +0 -1
  147. package/dist/workflow.d.ts +0 -14
  148. package/dist/workflow.d.ts.map +0 -1
  149. package/dist/workflow.js +0 -105
  150. package/dist/workflow.js.map +0 -1
@@ -1,7 +1,18 @@
1
- import { Agent, Attempt, AttemptChannel, Event, Item, Loop, Repository, Run, Step, Worker, } from "@usine/core";
1
+ import { ModelId } from "@usine/core/agent/brain";
2
+ import { AttemptNumber, AttemptTask, AttemptId } from "@usine/core/attempt";
3
+ import * as AttemptChannel from "@usine/core/attempt/channel";
4
+ import { DedupKey, EventId } from "@usine/core/event";
5
+ import { ItemKey } from "@usine/core/item";
6
+ import { CycleLimit, CycleBudgetAskId } from "@usine/core/cycle-budget";
7
+ import { LoopName, APPROVAL_REQUIREMENTS } from "@usine/core/loop";
8
+ import { RepositoryName, RepositoryRevision } from "@usine/core/repository";
9
+ import { RunId } from "@usine/core/run";
10
+ import { StepName } from "@usine/core/step";
11
+ import { WorkerName } from "@usine/core/worker";
2
12
  import { sql } from "drizzle-orm";
3
13
  import { check, foreignKey, index, integer, primaryKey, snakeCase, text, uniqueIndex, } from "drizzle-orm/sqlite-core";
4
- import { APPROVAL_REQUIREMENTS, IGNORED_REASONS, WORKFLOW_COMMANDS, } from "../model.js";
14
+ import { IGNORED_REASONS } from "../engine/submission.js";
15
+ import { WORKFLOW_COMMANDS } from "../workflow/command.js";
5
16
  export const events = snakeCase.table("usine_events", {
6
17
  eventId: text().$type().primaryKey(),
7
18
  dedupKey: text().$type().notNull().unique(),
@@ -17,9 +28,12 @@ export const triggerEvents = snakeCase.table("usine_trigger_events", {
17
28
  loopName: text().$type().notNull(),
18
29
  stepName: text().$type().notNull(),
19
30
  approval: text({ enum: APPROVAL_REQUIREMENTS }).$type().notNull(),
20
- // The submitted execution context, part of the immutable Event fact. A
21
- // queued Event (blocked behind a running Run) is claimed later from these
22
- // columns; the Run's own copy below is what execution reads.
31
+ cycleLimit: integer().$type(),
32
+ // Item allowance observed before fetching this Event's trigger input.
33
+ cycleGeneration: integer().notNull().default(0),
34
+ // The execution context as submitted, part of the immutable Event fact. A
35
+ // queued Event is claimed later from these columns, while execution reads
36
+ // the Run's own copy below.
23
37
  repository: text().$type().notNull(),
24
38
  revision: text().$type().notNull(),
25
39
  task: text().$type().notNull(),
@@ -27,9 +41,48 @@ export const triggerEvents = snakeCase.table("usine_trigger_events", {
27
41
  parentModel: text().$type(),
28
42
  }, (table) => [
29
43
  check("usine_trigger_events_approval", sql `${table.approval} in ('none', 'required')`),
44
+ check("usine_trigger_events_cycle_limit", sql `${table.cycleLimit} is null or ${table.cycleLimit} >= 1`),
30
45
  check("usine_trigger_events_agent_json_valid", sql `json_valid(${table.agentJson})`),
31
46
  index("usine_trigger_events_item").on(table.loopName, table.itemKey),
47
+ index("usine_trigger_events_item_history").on(table.itemKey),
32
48
  ]);
49
+ export const itemCycleBudgets = snakeCase.table("usine_item_cycle_budgets", {
50
+ itemKey: text().$type().primaryKey(),
51
+ repository: text().$type().notNull(),
52
+ generation: integer().notNull().default(0),
53
+ askJson: text({ mode: "json" }).$type(),
54
+ resetPending: integer({ mode: "boolean" }).notNull().default(false),
55
+ }, (table) => [
56
+ check("usine_item_cycle_generation", sql `${table.generation} >= 0`),
57
+ check("usine_item_cycle_ask_json", sql `${table.askJson} is null or json_valid(${table.askJson})`),
58
+ ]);
59
+ export const cycleReservations = snakeCase.table("usine_cycle_reservations", {
60
+ runId: text()
61
+ .$type()
62
+ .primaryKey()
63
+ .references(() => runs.runId),
64
+ itemKey: text()
65
+ .$type()
66
+ .notNull()
67
+ .references(() => itemCycleBudgets.itemKey),
68
+ generation: integer().notNull(),
69
+ loop: text().$type().notNull(),
70
+ }, (table) => [
71
+ index("usine_cycle_reservations_item").on(table.itemKey, table.generation, table.loop),
72
+ check("usine_cycle_reservations_generation", sql `${table.generation} >= 0`),
73
+ ]);
74
+ export const cycleResets = snakeCase.table("usine_cycle_resets", {
75
+ askId: text().$type().primaryKey(),
76
+ eventId: text()
77
+ .$type()
78
+ .notNull()
79
+ .unique()
80
+ .references(() => events.eventId),
81
+ itemKey: text()
82
+ .$type()
83
+ .notNull()
84
+ .references(() => itemCycleBudgets.itemKey),
85
+ });
33
86
  export const runs = snakeCase.table("usine_runs", {
34
87
  runId: text().$type().primaryKey(),
35
88
  eventId: text()
@@ -40,8 +93,8 @@ export const runs = snakeCase.table("usine_runs", {
40
93
  loopName: text().$type().notNull(),
41
94
  stateJson: text({ mode: "json" }).$type().notNull(),
42
95
  openedAt: text().notNull(),
43
- // The Run's *effective* context, seeded from the claiming submission.
44
- // ADR 0018's edit-and-retry amends these; the Event columns never change.
96
+ // The Run's effective context, seeded from the claiming submission.
97
+ // Edit-and-retry amends these columns; the Event columns never change (ADR 0018).
45
98
  repository: text().$type().notNull(),
46
99
  revision: text().$type().notNull(),
47
100
  task: text().$type().notNull(),
@@ -132,12 +185,12 @@ export const workflowCommands = snakeCase.table("usine_workflow_commands", {
132
185
  check("usine_workflow_commands_command", sql `${table.command} in ('Approve', 'Continue', 'Interrupt', 'Resume')`),
133
186
  primaryKey({ columns: [table.runId, table.command] }),
134
187
  ]);
135
- /** Opaque, owner-validated cursors for efficiency-only trigger state. */
188
+ /** Cursors that only save work; each owner validates its own value. */
136
189
  export const cursors = snakeCase.table("usine_cursors", {
137
190
  cursorKey: text().primaryKey(),
138
191
  valueJson: text({ mode: "json" }).$type().notNull(),
139
192
  }, (table) => [check("usine_cursors_value_json_valid", sql `json_valid(${table.valueJson})`)]);
140
- /** Latest trigger-owned payload for each Item, projected for operator reads. */
193
+ /** The latest payload seen for each Item, for operator reads. */
141
194
  export const itemProjections = snakeCase.table("usine_item_projections", {
142
195
  itemKey: text().$type().primaryKey(),
143
196
  repository: text().$type().notNull(),
@@ -151,19 +204,19 @@ export const itemProjections = snakeCase.table("usine_item_projections", {
151
204
  uniqueIndex("usine_item_projection_number").on(table.repository, table.itemNumber),
152
205
  index("usine_item_projection_repository").on(table.repository, table.itemNumber),
153
206
  ]);
154
- /** Latest complete GitHub label catalog for each managed repository. */
207
+ /** The latest complete label catalog for each managed repository. */
155
208
  export const repositoryLabelProjections = snakeCase.table("usine_repository_label_projections", {
156
209
  repository: text().$type().primaryKey(),
157
210
  labelsJson: text({ mode: "json" }).$type().notNull(),
158
211
  }, (table) => [
159
212
  check("usine_repository_label_projections_labels_json_valid", sql `json_valid(${table.labelsJson})`),
160
213
  ]);
161
- /** Operator-owned runtime toggles; deliberately separate from authored Loop files (ADR 0009). */
214
+ /** Operator-owned runtime toggles, kept apart from authored loop files (ADR 0009). */
162
215
  export const loopRuntime = snakeCase.table("usine_loop_runtime", {
163
216
  loopName: text().$type().primaryKey(),
164
217
  paused: integer({ mode: "boolean" }).notNull(),
165
218
  });
166
- /** Singleton invalidation token for cached operator projections. */
219
+ /** Single row whose version invalidates cached operator projections. */
167
220
  export const projectionRevision = snakeCase.table("usine_projection_revision", {
168
221
  singleton: integer({ mode: "number" }).primaryKey().default(1),
169
222
  revision: integer({ mode: "number" }).notNull().default(0),
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/database/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/database/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { Event } from "@usine/core/event";
2
+ import { ItemKey } from "@usine/core/item";
3
+ import { LoopName } from "@usine/core/loop";
4
+ import { RunId } from "@usine/core/run";
5
+ import { Context, Crypto, Effect, Layer } from "effect";
6
+ import { SqlClient } from "effect/unstable/sql";
7
+ import { RunDatabase } from "../database/database.ts";
8
+ import { type RunEngineError } from "./error.ts";
9
+ import type { RunSnapshot } from "../run-reader/model.ts";
10
+ import type { Submission, SubmissionResult } from "./submission.ts";
11
+ import type { TranscriptEntry, TranscriptQuery } from "../transcript.ts";
12
+ import { RunReader } from "../run-reader/run-reader.ts";
13
+ import { ItemProjectionReader, ItemProjectionWriter } from "../item-projection/item-projection.ts";
14
+ import { RepositoryLabelProjectionReader, RepositoryLabelProjectionWriter } from "../repository-label-projection/repository-label-projection.ts";
15
+ import { StepExecutor } from "../step-executor.ts";
16
+ import { CursorStore } from "../cursor/cursor.ts";
17
+ import { LoopControl } from "../loop-control/loop-control.ts";
18
+ import { CycleBudgets } from "../cycle-budget/cycle-budget.ts";
19
+ declare const RunEngine_base: Context.ServiceClass<RunEngine, "@usine/engine/RunEngine", {
20
+ /** Stops admitting Attempts, including retries, and waits for admitted work to settle. Interrupting this wait keeps admission closed until restart. */
21
+ readonly drain: () => Effect.Effect<void>;
22
+ /** Records the operator's approval Event and opens the Run's gate; execution still waits for a Worker slot. */
23
+ readonly approve: (runId: RunId, approval: Event) => Effect.Effect<void, RunEngineError>;
24
+ /** Cancels an open Run and interrupts its active Attempt. An already closed Run is unchanged. */
25
+ readonly cancel: (runId: RunId) => Effect.Effect<void, RunEngineError>;
26
+ /** Reads the Run's current state, effective task and Agent, Step result, and Attempt history. */
27
+ readonly inspect: (runId: RunId) => Effect.Effect<RunSnapshot, RunEngineError>;
28
+ /** Recovers unfinished Runs and outstanding actions from stored state; also runs when the engine starts. */
29
+ readonly reconcile: () => Effect.Effect<void, RunEngineError>;
30
+ /** Requests another Attempt for a failed Run using its existing Event and effective task and Agent. */
31
+ readonly retry: (runId: RunId) => Effect.Effect<void, RunEngineError>;
32
+ /** Cancels unstarted Runs and discards queued Events for a Loop's Item when it stops matching; running Attempts continue. */
33
+ readonly revoke: (loop: LoopName, itemKey: ItemKey) => Effect.Effect<ReadonlyArray<RunId>, RunEngineError>;
34
+ /**
35
+ * Records a matching Event and claims its Run, or queues it behind the Item's
36
+ * running Attempt. Repeated Events are deduplicated; execution continues separately.
37
+ */
38
+ readonly submit: (submission: Submission) => Effect.Effect<SubmissionResult, RunEngineError>;
39
+ /** Reads the requested portion of an Attempt's persisted transcript in append order. */
40
+ readonly transcript: (query: TranscriptQuery) => Effect.Effect<ReadonlyArray<TranscriptEntry>, RunEngineError>;
41
+ }>;
42
+ /** Records Events and manages their Runs through approval, execution, retry, and cancellation. */
43
+ export declare class RunEngine extends RunEngine_base {
44
+ }
45
+ /**
46
+ * Provides Run execution and recovery on the supplied database.
47
+ * `database` must supply Drizzle and Effect SQL clients for the same database,
48
+ * so Run records and pending execution remain together across restarts.
49
+ * The deployment supplies `Crypto` and the Worker implementation through `StepExecutor`.
50
+ */
51
+ export declare const layerWithDatabase: <DatabaseError, DatabaseRequirements>(database: Layer.Layer<RunDatabase | SqlClient.SqlClient, DatabaseError, DatabaseRequirements>) => Layer.Layer<CursorStore | CycleBudgets | ItemProjectionReader | ItemProjectionWriter | LoopControl | RepositoryLabelProjectionReader | RepositoryLabelProjectionWriter | RunEngine | RunReader, RunEngineError | DatabaseError, Crypto.Crypto | StepExecutor | DatabaseRequirements>;
52
+ export { Submission, Claimed, Queued, Ignored, CycleBlocked, IgnoreReason, SubmissionResult, } from "./submission.ts";
53
+ export { RunEngineShutdown } from "./shutdown.ts";
54
+ export { RunNotFoundError, RunOperationRejectedError, EnginePersistenceError, AttemptCancellationError, RunStoreError, RunEngineError, } from "./error.ts";
55
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine/engine.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,27 @@
1
- import { Event, Item, Loop, Run } from "@usine/core";
1
+ import { Event } from "@usine/core/event";
2
+ import { ItemKey } from "@usine/core/item";
3
+ import { LoopName } from "@usine/core/loop";
4
+ import { RunId } from "@usine/core/run";
2
5
  import { Context, Crypto, Effect, Layer, Option, Result } from "effect";
3
6
  import { ClusterWorkflowEngine, SingleRunner } from "effect/unstable/cluster";
4
7
  import { SqlClient } from "effect/unstable/sql";
5
8
  import { DurableDeferred, WorkflowEngine } from "effect/unstable/workflow";
6
- import { RunDatabase } from "./database/database.js";
7
- import { AttemptCancellationError, } from "./model.js";
8
- import { RunStore } from "./store/store.js";
9
- import { RunReader } from "./run-reader.js";
10
- import { ItemProjectionReader, ItemProjectionWriter } from "./item-projection/service.js";
11
- import { RepositoryLabelProjectionReader, RepositoryLabelProjectionWriter, } from "./repository-label-projection/service.js";
12
- import { ApprovalGate, DurableRun, continueWithNewest, durableRunLayer, runIdFor, } from "./workflow.js";
13
- import { StepExecutor } from "./step-executor.js";
14
- import { CursorStore } from "./cursor/store.js";
15
- import { LoopControl } from "./loop-control.js";
9
+ import { RunDatabase } from "../database/database.js";
10
+ import { AttemptCancellationError } from "./error.js";
11
+ import { RunStore } from "../store/store.js";
12
+ import { RunReader } from "../run-reader/run-reader.js";
13
+ import { ItemProjectionReader, ItemProjectionWriter } from "../item-projection/item-projection.js";
14
+ import { RepositoryLabelProjectionReader, RepositoryLabelProjectionWriter, } from "../repository-label-projection/repository-label-projection.js";
15
+ import { ApprovalGate, DurableRun, continueWithNewest, durableRunLayer, runIdFor, } from "../workflow/workflow.js";
16
+ import { StepExecutor } from "../step-executor.js";
17
+ import { CursorStore } from "../cursor/cursor.js";
18
+ import { LoopControl } from "../loop-control/loop-control.js";
19
+ import { CycleBudgets } from "../cycle-budget/cycle-budget.js";
20
+ import { AttemptAdmission } from "../workflow/admission.js";
16
21
  const MAX_SETTLEMENT_POLLS = 500;
17
22
  const makeRunEngine = Effect.gen(function* () {
18
23
  const store = yield* RunStore;
24
+ const admission = yield* AttemptAdmission;
19
25
  const stepExecutor = yield* StepExecutor;
20
26
  const workflowEngine = yield* WorkflowEngine.WorkflowEngine;
21
27
  const provideWorkflowEngine = (effect) => Effect.provideService(effect, WorkflowEngine.WorkflowEngine, workflowEngine);
@@ -38,10 +44,10 @@ const makeRunEngine = Effect.gen(function* () {
38
44
  yield* continueWithNewest(store, runId).pipe(provideWorkflowEngine);
39
45
  });
40
46
  const awaitWorkflowSettlement = Effect.fn("RunEngine.awaitWorkflowSettlement")(function* (runId) {
41
- // A Failed projection is committed before the workflow finishes suspending.
42
- // Poll across that short handover so an immediate operator retry is not
43
- // lost. A workflow still absent at the deadline is a corrupted instance
44
- // database, not a race — die loudly instead of hanging delivery forever.
47
+ // A Failed projection commits before the workflow finishes suspending, so
48
+ // poll across that handover or an immediate operator retry is lost. A
49
+ // workflow still absent at the deadline means a corrupted instance
50
+ // database, so fail loudly instead of hanging.
45
51
  for (let poll = 0; poll < MAX_SETTLEMENT_POLLS; poll += 1) {
46
52
  const status = yield* DurableRun.poll(runId).pipe(provideWorkflowEngine);
47
53
  if (Option.isSome(status))
@@ -88,7 +94,7 @@ const makeRunEngine = Effect.gen(function* () {
88
94
  });
89
95
  const cancel = Effect.fn("RunEngine.cancel")(function* (runId) {
90
96
  // The closing transaction decides both facts at once: whether the run was
91
- // still open, and which attempt (if any) was in flight when it closed.
97
+ // still open, and which attempt was in flight when it closed.
92
98
  const outcome = yield* store.cancel(runId);
93
99
  if (outcome._tag === "AlreadyClosed") {
94
100
  yield* Effect.logDebug("Cancel was a no-op; the run was already closed", { runId });
@@ -144,22 +150,26 @@ const makeRunEngine = Effect.gen(function* () {
144
150
  }), { concurrency: "unbounded", discard: true });
145
151
  });
146
152
  yield* reconcile();
147
- return { approve, cancel, inspect, reconcile, retry, revoke, submit, transcript };
153
+ return {
154
+ approve,
155
+ cancel,
156
+ drain: admission.drain,
157
+ inspect,
158
+ reconcile,
159
+ retry,
160
+ revoke,
161
+ submit,
162
+ transcript,
163
+ };
148
164
  });
149
- /**
150
- * The public run-engine service. The interface below is the package's declared
151
- * API — widen it deliberately, never by letting an implementation change leak
152
- * through inference.
153
- */
165
+ /** Records Events and manages their Runs through approval, execution, retry, and cancellation. */
154
166
  export class RunEngine extends Context.Service()("@usine/engine/RunEngine") {
155
167
  }
156
168
  /**
157
- * Builds the durable runtime on a caller-selected SQLite-compatible database.
158
- * The adapter must provide both Drizzle's run database and the matching Effect
159
- * SQL client so run projections and cluster tables stay co-located. This entry
160
- * is platform-free: the deployment supplies its platform `Crypto` (the cluster
161
- * hashes over-length deduplication keys with it) next to the `StepExecutor`
162
- * port — see `database/local-sqlite.ts` for the Node composition.
169
+ * Provides Run execution and recovery on the supplied database.
170
+ * `database` must supply Drizzle and Effect SQL clients for the same database,
171
+ * so Run records and pending execution remain together across restarts.
172
+ * The deployment supplies `Crypto` and the Worker implementation through `StepExecutor`.
163
173
  */
164
174
  export const layerWithDatabase = (database) => {
165
175
  const store = RunStore.layer.pipe(Layer.provide(database));
@@ -172,8 +182,12 @@ export const layerWithDatabase = (database) => {
172
182
  },
173
183
  }).pipe(Layer.provide(database), Layer.orDie);
174
184
  const workflowEngine = ClusterWorkflowEngine.layer.pipe(Layer.provide(cluster));
175
- const runtime = durableRunLayer.pipe(Layer.provideMerge(workflowEngine), Layer.provideMerge(store));
185
+ const admission = AttemptAdmission.layer;
186
+ const runtime = durableRunLayer.pipe(Layer.provideMerge(workflowEngine), Layer.provideMerge(store), Layer.provideMerge(admission));
176
187
  const runEngine = Layer.effect(RunEngine, makeRunEngine).pipe(Layer.provide(runtime));
177
- return Layer.mergeAll(runEngine, RunReader.layer.pipe(Layer.provide(database)), CursorStore.layer.pipe(Layer.provide(database)), ItemProjectionReader.layer.pipe(Layer.provide(database)), ItemProjectionWriter.layer.pipe(Layer.provide(database)), RepositoryLabelProjectionReader.layer.pipe(Layer.provide(database)), RepositoryLabelProjectionWriter.layer.pipe(Layer.provide(database)), LoopControl.layer.pipe(Layer.provide(database)));
188
+ return Layer.mergeAll(runEngine, CycleBudgets.layer.pipe(Layer.provide(database)), RunReader.layer.pipe(Layer.provide(database)), CursorStore.layer.pipe(Layer.provide(database)), ItemProjectionReader.layer.pipe(Layer.provide(database)), ItemProjectionWriter.layer.pipe(Layer.provide(database)), RepositoryLabelProjectionReader.layer.pipe(Layer.provide(database)), RepositoryLabelProjectionWriter.layer.pipe(Layer.provide(database)), LoopControl.layer.pipe(Layer.provide(database)));
178
189
  };
190
+ export { Submission, Claimed, Queued, Ignored, CycleBlocked, IgnoreReason, SubmissionResult, } from "./submission.js";
191
+ export { RunEngineShutdown } from "./shutdown.js";
192
+ export { RunNotFoundError, RunOperationRejectedError, EnginePersistenceError, AttemptCancellationError, RunStoreError, RunEngineError, } from "./error.js";
179
193
  //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { Schema } from "effect";
2
+ declare const RunNotFoundError_base: Schema.Class<RunNotFoundError, Schema.TaggedStruct<"RunNotFoundError", {
3
+ readonly runId: Schema.brand<Schema.NonEmptyString, "RunId">;
4
+ }>, import("effect/Cause").YieldableError>;
5
+ /** No Run with the requested identity exists in this instance's records. */
6
+ export declare class RunNotFoundError extends RunNotFoundError_base {
7
+ }
8
+ declare const RunOperationRejectedError_base: Schema.Class<RunOperationRejectedError, Schema.TaggedStruct<"RunOperationRejectedError", {
9
+ readonly runId: Schema.brand<Schema.NonEmptyString, "RunId">;
10
+ readonly operation: Schema.Literals<readonly ["approve", "retry"]>;
11
+ readonly state: Schema.String;
12
+ }>, import("effect/Cause").YieldableError>;
13
+ /** The Run's current state does not allow the requested approval or retry. */
14
+ export declare class RunOperationRejectedError extends RunOperationRejectedError_base {
15
+ }
16
+ declare const EnginePersistenceError_base: Schema.Class<EnginePersistenceError, Schema.TaggedStruct<"EnginePersistenceError", {
17
+ readonly operation: Schema.String;
18
+ readonly cause: Schema.Defect;
19
+ }>, import("effect/Cause").YieldableError>;
20
+ /** An operation could not read or update the instance's durable records. */
21
+ export declare class EnginePersistenceError extends EnginePersistenceError_base {
22
+ }
23
+ declare const AttemptCancellationError_base: Schema.Class<AttemptCancellationError, Schema.TaggedStruct<"AttemptCancellationError", {
24
+ readonly attemptId: Schema.brand<Schema.NonEmptyString, "AttemptId">;
25
+ readonly cause: Schema.Defect;
26
+ }>, import("effect/Cause").YieldableError>;
27
+ /** The Run is canceled, but interrupting its active Attempt failed. */
28
+ export declare class AttemptCancellationError extends AttemptCancellationError_base {
29
+ }
30
+ /** Everything the store itself can fail with. */
31
+ export declare const RunStoreError: Schema.Union<readonly [typeof RunNotFoundError, typeof RunOperationRejectedError, typeof EnginePersistenceError]>;
32
+ export type RunStoreError = typeof RunStoreError.Type;
33
+ /** The store's failures plus the cancellation handshake failure only the engine raises. */
34
+ export declare const RunEngineError: Schema.Union<readonly [typeof RunNotFoundError, typeof RunOperationRejectedError, typeof EnginePersistenceError, typeof AttemptCancellationError]>;
35
+ export type RunEngineError = typeof RunEngineError.Type;
36
+ export {};
37
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/engine/error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;AAEhC,4EAA4E;AAC5E,qBAAa,gBAAiB,SAAQ,qBAIpC;CAAG;;;;;;AAEL,8EAA8E;AAC9E,qBAAa,yBAA0B,SAAQ,8BAM7C;CAAG;;;;;AAEL,4EAA4E;AAC5E,qBAAa,sBAAuB,SAAQ,2BAK1C;CAAG;;;;;AAEL,uEAAuE;AACvE,qBAAa,wBAAyB,SAAQ,6BAK5C;CAAG;AAEL,iDAAiD;AACjD,eAAO,MAAM,aAAa,mHAIxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAC;AAEtD,2FAA2F;AAC3F,eAAO,MAAM,cAAc,oJAKzB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { AttemptId } from "@usine/core/attempt";
2
+ import { RunId } from "@usine/core/run";
3
+ import { Schema } from "effect";
4
+ /** No Run with the requested identity exists in this instance's records. */
5
+ export class RunNotFoundError extends Schema.TaggedError("@usine/engine/RunNotFoundError")("RunNotFoundError", {
6
+ runId: RunId,
7
+ }) {
8
+ }
9
+ /** The Run's current state does not allow the requested approval or retry. */
10
+ export class RunOperationRejectedError extends Schema.TaggedError("@usine/engine/RunOperationRejectedError")("RunOperationRejectedError", {
11
+ runId: RunId,
12
+ operation: Schema.Literals(["approve", "retry"]),
13
+ state: Schema.String,
14
+ }) {
15
+ }
16
+ /** An operation could not read or update the instance's durable records. */
17
+ export class EnginePersistenceError extends Schema.TaggedError("@usine/engine/EnginePersistenceError")("EnginePersistenceError", {
18
+ operation: Schema.String,
19
+ cause: Schema.Defect(),
20
+ }) {
21
+ }
22
+ /** The Run is canceled, but interrupting its active Attempt failed. */
23
+ export class AttemptCancellationError extends Schema.TaggedError("@usine/engine/AttemptCancellationError")("AttemptCancellationError", {
24
+ attemptId: AttemptId,
25
+ cause: Schema.Defect(),
26
+ }) {
27
+ }
28
+ /** Everything the store itself can fail with. */
29
+ export const RunStoreError = Schema.Union([
30
+ RunNotFoundError,
31
+ RunOperationRejectedError,
32
+ EnginePersistenceError,
33
+ ]);
34
+ /** The store's failures plus the cancellation handshake failure only the engine raises. */
35
+ export const RunEngineError = Schema.Union([
36
+ RunNotFoundError,
37
+ RunOperationRejectedError,
38
+ EnginePersistenceError,
39
+ AttemptCancellationError,
40
+ ]);
41
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/engine/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,4EAA4E;AAC5E,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC,WAAW,CACtD,gCAAgC,CACjC,CAAC,kBAAkB,EAAE;IACpB,KAAK,EAAE,KAAK;CACb,CAAC;CAAG;AAEL,8EAA8E;AAC9E,MAAM,OAAO,yBAA0B,SAAQ,MAAM,CAAC,WAAW,CAC/D,yCAAyC,CAC1C,CAAC,2BAA2B,EAAE;IAC7B,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChD,KAAK,EAAE,MAAM,CAAC,MAAM;CACrB,CAAC;CAAG;AAEL,4EAA4E;AAC5E,MAAM,OAAO,sBAAuB,SAAQ,MAAM,CAAC,WAAW,CAC5D,sCAAsC,CACvC,CAAC,wBAAwB,EAAE;IAC1B,SAAS,EAAE,MAAM,CAAC,MAAM;IACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;CACvB,CAAC;CAAG;AAEL,uEAAuE;AACvE,MAAM,OAAO,wBAAyB,SAAQ,MAAM,CAAC,WAAW,CAC9D,wCAAwC,CACzC,CAAC,0BAA0B,EAAE;IAC5B,SAAS,EAAE,SAAS;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;CACvB,CAAC;CAAG;AAEL,iDAAiD;AACjD,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;IACxC,gBAAgB;IAChB,yBAAyB;IACzB,sBAAsB;CACvB,CAAC,CAAC;AAIH,2FAA2F;AAC3F,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC;IACzC,gBAAgB;IAChB,yBAAyB;IACzB,sBAAsB;IACtB,wBAAwB;CACzB,CAAC,CAAC"}
@@ -0,0 +1,112 @@
1
+ import { Attempt, AttemptId, AttemptNumber } from "@usine/core/attempt";
2
+ import { AttemptFailure, InfraFailure } from "@usine/core/attempt/failure";
3
+ import { AttemptCanceled, AttemptFailed, AttemptSucceeded } from "@usine/core/attempt/outcome";
4
+ import { EventId } from "@usine/core/event";
5
+ import { Run, RunId } from "@usine/core/run";
6
+ import * as RunState from "@usine/core/run/state";
7
+ import { StepResult } from "@usine/core/step/result";
8
+ import { Option, Result } from "effect";
9
+ import type { WorkflowCommand } from "../workflow/command.ts";
10
+ /** A Run and its Attempts in ascending attempt-number order, read together. */
11
+ interface RunProgress {
12
+ readonly run: Run;
13
+ readonly attempts: ReadonlyArray<Attempt>;
14
+ }
15
+ type Unchanged = {
16
+ readonly _tag: "Unchanged";
17
+ readonly reason: "RunNotRunning" | "NoOpenAttempt" | "AttemptReplaced";
18
+ };
19
+ type RetryAttempt = {
20
+ readonly _tag: "RetryAttempt";
21
+ readonly attempt: Attempt;
22
+ readonly outcome: AttemptFailed;
23
+ };
24
+ type RunFailed = {
25
+ readonly _tag: "RunFailed";
26
+ readonly attempt: Attempt;
27
+ readonly outcome: AttemptFailed;
28
+ readonly state: RunState.Failed;
29
+ };
30
+ type RunSucceeded = {
31
+ readonly _tag: "RunSucceeded";
32
+ readonly attempt: Attempt;
33
+ readonly outcome: AttemptSucceeded;
34
+ readonly state: RunState.Succeeded;
35
+ readonly result: StepResult;
36
+ };
37
+ /** Changes that must commit together when an Attempt finishes. Only success stores a Step result. */
38
+ export type FinishDecision = RetryAttempt | RunFailed | RunSucceeded | Unchanged;
39
+ /**
40
+ * Settles the current Attempt from its executor result. Infrastructure failure
41
+ * can retry up to three total Attempts; a late or repeated completion changes nothing.
42
+ */
43
+ export declare const finishAttempt: (current: RunProgress, attemptId: AttemptId, result: Result.Result<StepResult, AttemptFailure>) => FinishDecision;
44
+ /**
45
+ * Repairs an open Attempt from a final durable result. The workflow has already
46
+ * ended, so even an infrastructure failure closes the Run without auto-retry.
47
+ * The runtime must first translate its completion into a typed result; defects
48
+ * and suspension are not Attempt outcomes here (ADRs 0003 and 0010).
49
+ */
50
+ export declare const reconcileAttempt: (current: RunProgress, result: Result.Result<StepResult, AttemptFailure>) => FinishDecision;
51
+ type StartDecision = {
52
+ readonly _tag: "StartAttempt";
53
+ readonly state: RunState.Running;
54
+ readonly number: AttemptNumber;
55
+ readonly interrupted: Option.Option<RetryAttempt>;
56
+ } | RunFailed | {
57
+ readonly _tag: "RunClosed";
58
+ readonly state: RunState.RunState;
59
+ };
60
+ /**
61
+ * Admits the next Attempt after a Worker reservation. An unfinished previous
62
+ * Attempt indicates a restart and counts against the same retry cap as ordinary
63
+ * infrastructure failure. `interruption` records the runtime's explanation.
64
+ * The caller creates the new Attempt's identity and timestamp only when admitted.
65
+ */
66
+ export declare const beginAttempt: (current: RunProgress, interruption: InfraFailure) => StartDecision;
67
+ type CancelDecision = {
68
+ readonly _tag: "AlreadyClosed";
69
+ } | {
70
+ readonly _tag: "Canceled";
71
+ readonly state: RunState.Canceled;
72
+ readonly attempt: Option.Option<{
73
+ readonly id: AttemptId;
74
+ readonly outcome: AttemptCanceled;
75
+ }>;
76
+ };
77
+ /**
78
+ * Cancels open work and, if executing, its unfinished Attempt. A Run awaiting
79
+ * capacity may have no Attempt, or only the closed Attempt preceding a retry.
80
+ */
81
+ export declare const cancelRun: (current: RunProgress) => CancelDecision;
82
+ type RetryDecision = {
83
+ readonly _tag: "Resume";
84
+ readonly state: RunState.Running;
85
+ } | {
86
+ readonly _tag: "ResumePending";
87
+ } | {
88
+ readonly _tag: "RetryRejected";
89
+ };
90
+ /**
91
+ * Reopens a failed Run for operator retry regardless of its Attempt count.
92
+ * Repeating the request is accepted while its Resume command remains pending;
93
+ * after delivery, retrying a Running Run is rejected.
94
+ */
95
+ export declare const retryRun: (state: RunState.RunState, pendingCommands: ReadonlyArray<WorkflowCommand>) => RetryDecision;
96
+ type ClaimDecision = {
97
+ readonly _tag: "OpenRun";
98
+ } | {
99
+ readonly _tag: "QueueEvent";
100
+ } | {
101
+ readonly _tag: "SupersedeRun";
102
+ readonly runId: RunId;
103
+ readonly state: RunState.Canceled;
104
+ };
105
+ /**
106
+ * Places a previously unclaimed Event behind its Item's running work, or
107
+ * replaces unstarted work. The ledger must resolve permanent deduplication and
108
+ * ignored Events before this decision; running Attempts always finish (ADR 0007).
109
+ */
110
+ export declare const claimRun: (blocking: Option.Option<Run>, eventId: EventId) => ClaimDecision;
111
+ export {};
112
+ //# sourceMappingURL=lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/engine/lifecycle.ts"],"names":[],"mappings":"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"}