@usine/engine 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +109 -38
- package/dist/board-moves/board-moves.d.ts +20 -0
- package/dist/board-moves/board-moves.d.ts.map +1 -0
- package/dist/board-moves/board-moves.js +74 -0
- package/dist/board-moves/board-moves.js.map +1 -0
- package/dist/board-moves/model.d.ts +21 -0
- package/dist/board-moves/model.d.ts.map +1 -0
- package/dist/board-moves/model.js +22 -0
- package/dist/board-moves/model.js.map +1 -0
- package/dist/cursor/cursor.d.ts +2 -6
- package/dist/cursor/cursor.d.ts.map +1 -1
- package/dist/cursor/cursor.js +2 -6
- package/dist/cursor/cursor.js.map +1 -1
- package/dist/cycle-budget/cycle-budget.d.ts +6 -6
- package/dist/cycle-budget/cycle-budget.d.ts.map +1 -1
- package/dist/cycle-budget/cycle-budget.js +5 -5
- package/dist/cycle-budget/cycle-budget.js.map +1 -1
- package/dist/cycle-budget/model.d.ts +2 -2
- package/dist/cycle-budget/model.d.ts.map +1 -1
- package/dist/cycle-budget/model.js +2 -2
- package/dist/cycle-budget/model.js.map +1 -1
- package/dist/cycle-budget/queries.d.ts +1 -1
- package/dist/cycle-budget/queries.d.ts.map +1 -1
- package/dist/cycle-budget/queries.js +3 -3
- package/dist/cycle-budget/queries.js.map +1 -1
- package/dist/database/database.d.ts +1 -1
- package/dist/database/database.d.ts.map +1 -1
- package/dist/database/local-sqlite.d.ts +10 -8
- package/dist/database/local-sqlite.d.ts.map +1 -1
- package/dist/database/local-sqlite.js +11 -10
- package/dist/database/local-sqlite.js.map +1 -1
- package/dist/database/schema.d.ts +533 -22
- package/dist/database/schema.d.ts.map +1 -1
- package/dist/database/schema.js +100 -23
- package/dist/database/schema.js.map +1 -1
- package/dist/{workflow → engine}/admission.d.ts +2 -2
- package/dist/engine/admission.d.ts.map +1 -0
- package/dist/{workflow → engine}/admission.js +4 -4
- package/dist/engine/admission.js.map +1 -0
- package/dist/engine/checkout-recovery.d.ts +69 -0
- package/dist/engine/checkout-recovery.d.ts.map +1 -0
- package/dist/engine/checkout-recovery.js +181 -0
- package/dist/engine/checkout-recovery.js.map +1 -0
- package/dist/engine/engine.d.ts +55 -26
- package/dist/engine/engine.d.ts.map +1 -1
- package/dist/engine/engine.js +118 -128
- package/dist/engine/engine.js.map +1 -1
- package/dist/engine/error.d.ts +29 -10
- package/dist/engine/error.d.ts.map +1 -1
- package/dist/engine/error.js +28 -8
- package/dist/engine/error.js.map +1 -1
- package/dist/engine/lifecycle.d.ts +81 -28
- package/dist/engine/lifecycle.d.ts.map +1 -1
- package/dist/engine/lifecycle.js +83 -44
- package/dist/engine/lifecycle.js.map +1 -1
- package/dist/engine/retry.d.ts +16 -0
- package/dist/engine/retry.d.ts.map +1 -0
- package/dist/engine/retry.js +18 -0
- package/dist/engine/retry.js.map +1 -0
- package/dist/engine/run-again.d.ts +45 -0
- package/dist/engine/run-again.d.ts.map +1 -0
- package/dist/engine/run-again.js +56 -0
- package/dist/engine/run-again.js.map +1 -0
- package/dist/engine/run-driver.d.ts +54 -0
- package/dist/engine/run-driver.d.ts.map +1 -0
- package/dist/engine/run-driver.js +362 -0
- package/dist/engine/run-driver.js.map +1 -0
- package/dist/engine/shutdown.d.ts +3 -4
- package/dist/engine/shutdown.d.ts.map +1 -1
- package/dist/engine/shutdown.js +3 -4
- package/dist/engine/shutdown.js.map +1 -1
- package/dist/engine/submission.d.ts +31 -11
- package/dist/engine/submission.d.ts.map +1 -1
- package/dist/engine/submission.js +42 -12
- package/dist/engine/submission.js.map +1 -1
- package/dist/item-projection/item-projection.d.ts +12 -4
- package/dist/item-projection/item-projection.d.ts.map +1 -1
- package/dist/item-projection/item-projection.js +41 -6
- package/dist/item-projection/item-projection.js.map +1 -1
- package/dist/item-projection/model.d.ts +5 -1
- package/dist/item-projection/model.d.ts.map +1 -1
- package/dist/item-projection/model.js +6 -2
- package/dist/item-projection/model.js.map +1 -1
- package/dist/loop-control/loop-control.d.ts +5 -5
- package/dist/loop-control/loop-control.d.ts.map +1 -1
- package/dist/loop-control/loop-control.js +4 -4
- package/dist/loop-control/loop-control.js.map +1 -1
- package/dist/loop-control/model.d.ts +1 -1
- package/dist/loop-control/model.d.ts.map +1 -1
- package/dist/loop-control/model.js +1 -1
- package/dist/loop-control/model.js.map +1 -1
- package/dist/repository-label-projection/model.d.ts +2 -2
- package/dist/repository-label-projection/model.d.ts.map +1 -1
- package/dist/repository-label-projection/model.js +2 -2
- package/dist/repository-label-projection/model.js.map +1 -1
- package/dist/repository-label-projection/repository-label-projection.d.ts +1 -1
- package/dist/repository-label-projection/repository-label-projection.d.ts.map +1 -1
- package/dist/repository-label-projection/repository-label-projection.js +1 -1
- package/dist/repository-label-projection/repository-label-projection.js.map +1 -1
- package/dist/run-reader/model.d.ts +62 -4
- package/dist/run-reader/model.d.ts.map +1 -1
- package/dist/run-reader/model.js +66 -7
- package/dist/run-reader/model.js.map +1 -1
- package/dist/run-reader/run-reader.d.ts +19 -9
- package/dist/run-reader/run-reader.d.ts.map +1 -1
- package/dist/run-reader/run-reader.js +23 -7
- package/dist/run-reader/run-reader.js.map +1 -1
- package/dist/step-executor.d.ts +64 -10
- package/dist/step-executor.d.ts.map +1 -1
- package/dist/step-executor.js +10 -2
- package/dist/step-executor.js.map +1 -1
- package/dist/store/attempt-windows.d.ts +8 -0
- package/dist/store/attempt-windows.d.ts.map +1 -0
- package/dist/store/attempt-windows.js +53 -0
- package/dist/store/attempt-windows.js.map +1 -0
- package/dist/store/codec.d.ts +207 -42
- package/dist/store/codec.d.ts.map +1 -1
- package/dist/store/codec.js +52 -14
- package/dist/store/codec.js.map +1 -1
- package/dist/store/leftovers.d.ts +10 -0
- package/dist/store/leftovers.d.ts.map +1 -0
- package/dist/store/leftovers.js +43 -0
- package/dist/store/leftovers.js.map +1 -0
- package/dist/store/loop-items.d.ts +16 -0
- package/dist/store/loop-items.d.ts.map +1 -0
- package/dist/store/loop-items.js +185 -0
- package/dist/store/loop-items.js.map +1 -0
- package/dist/store/queries.d.ts +342 -35
- package/dist/store/queries.d.ts.map +1 -1
- package/dist/store/queries.js +302 -107
- package/dist/store/queries.js.map +1 -1
- package/dist/store/store.d.ts +91 -54
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +468 -190
- package/dist/store/store.js.map +1 -1
- package/dist/store/transcript.d.ts +3 -3
- package/dist/store/transcript.d.ts.map +1 -1
- package/dist/store/transcript.js +25 -6
- package/dist/store/transcript.js.map +1 -1
- package/dist/transcript.d.ts +19 -20
- package/dist/transcript.d.ts.map +1 -1
- package/dist/transcript.js +23 -21
- package/dist/transcript.js.map +1 -1
- package/dist/trigger-condition.d.ts +23 -0
- package/dist/trigger-condition.d.ts.map +1 -0
- package/dist/trigger-condition.js +8 -0
- package/dist/trigger-condition.js.map +1 -0
- package/drizzle/20260917071139_resolve_run_failure/migration.sql +1 -0
- package/drizzle/20260917071139_resolve_run_failure/snapshot.json +1471 -0
- package/drizzle/20260918032643_attempt_salvage/migration.sql +1 -0
- package/drizzle/20260918032643_attempt_salvage/snapshot.json +1481 -0
- package/drizzle/20261011153856_drop_workflow_tables/migration.sql +4 -0
- package/drizzle/20261011153856_drop_workflow_tables/snapshot.json +1433 -0
- package/drizzle/20261017155043_attempt_salvage_check/migration.sql +41 -0
- package/drizzle/20261017155043_attempt_salvage_check/snapshot.json +1421 -0
- package/drizzle/20261018162700_discard_attempt_leftovers/migration.sql +1 -0
- package/drizzle/20261018162700_discard_attempt_leftovers/snapshot.json +1431 -0
- package/drizzle/20261018172605_loop_items_and_reopenings/migration.sql +15 -0
- package/drizzle/20261018172605_loop_items_and_reopenings/snapshot.json +1574 -0
- package/drizzle/20261018180339_attempt_ended_at/migration.sql +1 -0
- package/drizzle/20261018180339_attempt_ended_at/snapshot.json +1584 -0
- package/drizzle/20261019104043_run_approval_source/migration.sql +15 -0
- package/drizzle/20261019104043_run_approval_source/snapshot.json +1610 -0
- package/drizzle/20261019133538_board_moves/migration.sql +14 -0
- package/drizzle/20261019133538_board_moves/snapshot.json +1731 -0
- package/drizzle/20261019170538_item_projection_gone/migration.sql +1 -0
- package/drizzle/20261019170538_item_projection_gone/snapshot.json +1741 -0
- package/drizzle/20261019180649_run_again_events/migration.sql +7 -0
- package/drizzle/20261019180649_run_again_events/snapshot.json +1804 -0
- package/drizzle/20261019185008_trigger_event_permissions/migration.sql +1 -0
- package/drizzle/20261019185008_trigger_event_permissions/snapshot.json +1814 -0
- package/drizzle/20261020103746_attempt_start/migration.sql +5 -0
- package/drizzle/20261020103746_attempt_start/snapshot.json +1844 -0
- package/drizzle/20261020125211_attempt_comments/migration.sql +1 -0
- package/drizzle/20261020125211_attempt_comments/snapshot.json +1854 -0
- package/drizzle/20261020191320_run_closed_at/migration.sql +6 -0
- package/drizzle/20261020191320_run_closed_at/snapshot.json +1864 -0
- package/drizzle/20261023091428_rename_loop_item_hold_to_suppression/migration.sql +2 -0
- package/drizzle/20261023091428_rename_loop_item_hold_to_suppression/snapshot.json +1867 -0
- package/package.json +15 -5
- package/dist/workflow/admission.d.ts.map +0 -1
- package/dist/workflow/admission.js.map +0 -1
- package/dist/workflow/command.d.ts +0 -13
- package/dist/workflow/command.d.ts.map +0 -1
- package/dist/workflow/command.js +0 -17
- package/dist/workflow/command.js.map +0 -1
- package/dist/workflow/workflow.d.ts +0 -18
- package/dist/workflow/workflow.d.ts.map +0 -1
- package/dist/workflow/workflow.js +0 -108
- package/dist/workflow/workflow.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkout-recovery.js","sourceRoot":"","sources":["../../src/engine/checkout-recovery.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/engine.d.ts
CHANGED
|
@@ -1,59 +1,88 @@
|
|
|
1
1
|
import { Event } from "@usine/core/event";
|
|
2
|
-
import {
|
|
2
|
+
import { AttemptId } from "@usine/core/attempt";
|
|
3
3
|
import { Intervention } from "@usine/core/attempt/channel";
|
|
4
4
|
import { ItemKey } from "@usine/core/item";
|
|
5
5
|
import { LoopName } from "@usine/core/loop";
|
|
6
6
|
import { RunId } from "@usine/core/run";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { ApprovalSource } from "@usine/core/run/approval";
|
|
8
|
+
import type { WorkerName } from "@usine/core/worker";
|
|
9
|
+
import { Context, Crypto, type Duration, Effect, Layer } from "effect";
|
|
9
10
|
import { RunDatabase } from "../database/database.ts";
|
|
10
|
-
import { type RunEngineError } from "./error.ts";
|
|
11
|
+
import { LeftoversDiscardRejectedError, type RunEngineError } from "./error.ts";
|
|
11
12
|
import type { RunSnapshot } from "../run-reader/model.ts";
|
|
12
|
-
import type
|
|
13
|
+
import { type Submission, type SubmissionResult } from "./submission.ts";
|
|
14
|
+
import type { RunAgainRequest, RunAgainResult } from "./run-again.ts";
|
|
15
|
+
import { type RetryRequest } from "./retry.ts";
|
|
13
16
|
import type { TranscriptEntry, TranscriptQuery } from "../transcript.ts";
|
|
14
17
|
import { RunReader } from "../run-reader/run-reader.ts";
|
|
15
18
|
import { ItemProjectionReader, ItemProjectionWriter } from "../item-projection/item-projection.ts";
|
|
16
19
|
import { RepositoryLabelProjectionReader, RepositoryLabelProjectionWriter } from "../repository-label-projection/repository-label-projection.ts";
|
|
17
20
|
import { StepExecutor } from "../step-executor.ts";
|
|
21
|
+
import { TriggerCondition } from "../trigger-condition.ts";
|
|
18
22
|
import { CursorStore } from "../cursor/cursor.ts";
|
|
19
23
|
import { LoopControl } from "../loop-control/loop-control.ts";
|
|
20
24
|
import { CycleBudgets } from "../cycle-budget/cycle-budget.ts";
|
|
25
|
+
import { BoardMoves } from "../board-moves/board-moves.ts";
|
|
26
|
+
/** The interval between periodic reconciles, which restart open Runs whose fiber stopped. */
|
|
27
|
+
export declare const ReconcileInterval: Context.Reference<Duration.Input>;
|
|
21
28
|
declare const RunEngine_base: Context.ServiceClass<RunEngine, "@usine/engine/RunEngine", {
|
|
22
|
-
/** Stops admitting Attempts, including retries, and waits for admitted
|
|
29
|
+
/** Stops admitting Attempts, including retries, and waits for admitted Attempts to finish. Admission stays closed until restart. */
|
|
23
30
|
readonly drain: () => Effect.Effect<void>;
|
|
24
|
-
/** Records the
|
|
25
|
-
readonly approve: (runId: RunId, approval: Event) => Effect.Effect<void, RunEngineError>;
|
|
26
|
-
/** Cancels an open Run and interrupts its active Attempt
|
|
31
|
+
/** Records the approval Event and its source, and opens the Run's approval gate. A repeated approval keeps the first source. */
|
|
32
|
+
readonly approve: (runId: RunId, approval: Event, source: ApprovalSource) => Effect.Effect<void, RunEngineError>;
|
|
33
|
+
/** Cancels an open Run and interrupts its active Attempt; does nothing for a closed Run. */
|
|
27
34
|
readonly cancel: (runId: RunId) => Effect.Effect<void, RunEngineError>;
|
|
28
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* Stops reconciling the Attempts recorded on `worker`, leaving their files in place, and
|
|
37
|
+
* returns the number of Attempts marked. Fails with `LeftoversDiscardRejectedError` if
|
|
38
|
+
* `worker` is in `StepExecutor.workers`.
|
|
39
|
+
*/
|
|
40
|
+
readonly discardLeftovers: (worker: WorkerName) => Effect.Effect<number, RunEngineError | LeftoversDiscardRejectedError>;
|
|
41
|
+
/** Returns the Run's state, effective task and Agent, Step result, and Attempt history. */
|
|
29
42
|
readonly inspect: (runId: RunId) => Effect.Effect<RunSnapshot, RunEngineError>;
|
|
30
|
-
/**
|
|
43
|
+
/** Sends operator input to `attemptId`. Fails with `RunInterventionRejectedError` if it isn't the Run's running Attempt. */
|
|
31
44
|
readonly intervene: (runId: RunId, attemptId: AttemptId, intervention: Intervention) => Effect.Effect<void, RunEngineError>;
|
|
32
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* Starts a fiber for every open Run without one, except Runs waiting for approval, and opens the
|
|
47
|
+
* queued Events that no closed Run continued. Runs at startup and every `ReconcileInterval`.
|
|
48
|
+
*/
|
|
33
49
|
readonly reconcile: () => Effect.Effect<void, RunEngineError>;
|
|
34
|
-
/**
|
|
35
|
-
|
|
36
|
-
|
|
50
|
+
/**
|
|
51
|
+
* Marks the current failed Attempt as resolved without changing its outcome. If the Attempt
|
|
52
|
+
* stopped with a question or blocker, the Loop evaluates the Item's queued Events again.
|
|
53
|
+
*/
|
|
54
|
+
readonly resolveFailure: (runId: RunId, attemptId: AttemptId) => Effect.Effect<void, RunEngineError>;
|
|
55
|
+
/**
|
|
56
|
+
* Requests another Attempt for a failed Run with its existing Event, applying the request's
|
|
57
|
+
* task and Agent if set. The Attempt records the request as its start reason.
|
|
58
|
+
*/
|
|
59
|
+
readonly retry: (runId: RunId, request?: RetryRequest) => Effect.Effect<void, RunEngineError>;
|
|
60
|
+
/**
|
|
61
|
+
* Opens a new Run for the Item state of a succeeded or canceled Run, with the request's task
|
|
62
|
+
* and Agent, as an operator Event. The Item's cycle budget and the Loop's approval gate apply.
|
|
63
|
+
*/
|
|
64
|
+
readonly runAgain: (runId: RunId, request: RunAgainRequest) => Effect.Effect<RunAgainResult, RunEngineError>;
|
|
65
|
+
/** Cancels unstarted Runs and discards queued Events for a Loop's Item that stopped matching; running Attempts continue. */
|
|
37
66
|
readonly revoke: (loop: LoopName, itemKey: ItemKey) => Effect.Effect<ReadonlyArray<RunId>, RunEngineError>;
|
|
38
67
|
/**
|
|
39
|
-
* Records a matching Event and claims its Run, or queues it behind the Item's
|
|
40
|
-
*
|
|
68
|
+
* Records a matching Event and claims its Run, or queues it behind the Item's running Attempt.
|
|
69
|
+
* Deduplicates repeated Events.
|
|
41
70
|
*/
|
|
42
71
|
readonly submit: (submission: Submission) => Effect.Effect<SubmissionResult, RunEngineError>;
|
|
43
|
-
/**
|
|
72
|
+
/** Returns the requested part of an Attempt's transcript, in append order. */
|
|
44
73
|
readonly transcript: (query: TranscriptQuery) => Effect.Effect<ReadonlyArray<TranscriptEntry>, RunEngineError>;
|
|
45
74
|
}>;
|
|
46
|
-
/**
|
|
75
|
+
/** The service that records Events and drives their Runs through approval, execution, retry, and cancellation. */
|
|
47
76
|
export declare class RunEngine extends RunEngine_base {
|
|
48
77
|
}
|
|
49
78
|
/**
|
|
50
|
-
*
|
|
51
|
-
* `
|
|
52
|
-
* so Run records and pending execution remain together across restarts.
|
|
53
|
-
* The deployment supplies `Crypto` and the Worker implementation through `StepExecutor`.
|
|
79
|
+
* Returns the engine layers on `database`, which stores all durable Run state. Requires `Crypto`
|
|
80
|
+
* for Run IDs, `StepExecutor` for Workers, and `TriggerCondition` to re-check queued Events.
|
|
54
81
|
*/
|
|
55
|
-
export declare const layerWithDatabase: <DatabaseError, DatabaseRequirements>(database: Layer.Layer<RunDatabase
|
|
56
|
-
export { Submission, Claimed, Queued, Ignored, CycleBlocked, IgnoreReason, SubmissionResult, } from "./submission.ts";
|
|
82
|
+
export declare const layerWithDatabase: <DatabaseError, DatabaseRequirements>(database: Layer.Layer<RunDatabase, DatabaseError, DatabaseRequirements>) => Layer.Layer<BoardMoves | CursorStore | CycleBudgets | ItemProjectionReader | ItemProjectionWriter | LoopControl | RepositoryLabelProjectionReader | RepositoryLabelProjectionWriter | RunEngine | RunReader, RunEngineError | DatabaseError, Crypto.Crypto | StepExecutor | TriggerCondition | DatabaseRequirements>;
|
|
83
|
+
export { Submission, Claimed, Queued, Suppressed, Ignored, CycleBlocked, IgnoreReason, SubmissionResult, } from "./submission.ts";
|
|
84
|
+
export { RunAgainRequest, RunAgainResult } from "./run-again.ts";
|
|
85
|
+
export { RetryRequest } from "./retry.ts";
|
|
57
86
|
export { RunEngineShutdown } from "./shutdown.ts";
|
|
58
|
-
export { RunNotFoundError, RunOperationRejectedError, EnginePersistenceError, AttemptCancellationError, RunInterventionRejectedError, RunStoreError, RunEngineError, } from "./error.ts";
|
|
87
|
+
export { RunNotFoundError, RunOperationRejectedError, RunRetryBlockedError, EnginePersistenceError, AttemptCancellationError, RunInterventionRejectedError, LeftoversDiscardRejectedError, RunStoreError, RunEngineError, } from "./error.ts";
|
|
59
88
|
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/engine.js
CHANGED
|
@@ -1,102 +1,83 @@
|
|
|
1
1
|
import { Event } from "@usine/core/event";
|
|
2
|
-
import {
|
|
2
|
+
import { AttemptId } from "@usine/core/attempt";
|
|
3
3
|
import { Intervention } from "@usine/core/attempt/channel";
|
|
4
4
|
import { ItemKey } from "@usine/core/item";
|
|
5
5
|
import { LoopName } from "@usine/core/loop";
|
|
6
6
|
import { RunId } from "@usine/core/run";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { SqlClient } from "effect/unstable/sql";
|
|
10
|
-
import { DurableDeferred, WorkflowEngine } from "effect/unstable/workflow";
|
|
7
|
+
import { ApprovalSource } from "@usine/core/run/approval";
|
|
8
|
+
import { Context, Crypto, Effect, Layer, Match, Option, Result } from "effect";
|
|
11
9
|
import { RunDatabase } from "../database/database.js";
|
|
12
|
-
import { AttemptCancellationError, RunInterventionRejectedError, } from "./error.js";
|
|
10
|
+
import { AttemptCancellationError, LeftoversDiscardRejectedError, RunInterventionRejectedError, } from "./error.js";
|
|
11
|
+
import { runIdFor } from "./submission.js";
|
|
12
|
+
import { plainRetry } from "./retry.js";
|
|
13
13
|
import { RunStore } from "../store/store.js";
|
|
14
14
|
import { RunReader } from "../run-reader/run-reader.js";
|
|
15
15
|
import { ItemProjectionReader, ItemProjectionWriter } from "../item-projection/item-projection.js";
|
|
16
16
|
import { RepositoryLabelProjectionReader, RepositoryLabelProjectionWriter, } from "../repository-label-projection/repository-label-projection.js";
|
|
17
|
-
import { ApprovalGate, DurableRun, continueWithNewest, durableRunLayer, runIdFor, } from "../workflow/workflow.js";
|
|
18
17
|
import { StepExecutor } from "../step-executor.js";
|
|
18
|
+
import { TriggerCondition } from "../trigger-condition.js";
|
|
19
19
|
import { CursorStore } from "../cursor/cursor.js";
|
|
20
20
|
import { LoopControl } from "../loop-control/loop-control.js";
|
|
21
21
|
import { CycleBudgets } from "../cycle-budget/cycle-budget.js";
|
|
22
|
-
import {
|
|
23
|
-
|
|
22
|
+
import { BoardMoves } from "../board-moves/board-moves.js";
|
|
23
|
+
import { AttemptAdmission } from "./admission.js";
|
|
24
|
+
import { RunDriver } from "./run-driver.js";
|
|
25
|
+
/** The interval between periodic reconciles, which restart open Runs whose fiber stopped. */
|
|
26
|
+
export const ReconcileInterval = Context.Reference("@usine/engine/ReconcileInterval", { defaultValue: () => "3 minutes" });
|
|
27
|
+
// Operations that commit a Run transition also hand it to the Run's fiber, uninterruptibly, so an
|
|
28
|
+
// interrupted caller can't leave a committed transition undriven.
|
|
24
29
|
const makeRunEngine = Effect.gen(function* () {
|
|
25
30
|
const store = yield* RunStore;
|
|
31
|
+
const driver = yield* RunDriver;
|
|
26
32
|
const admission = yield* AttemptAdmission;
|
|
27
33
|
const stepExecutor = yield* StepExecutor;
|
|
28
|
-
const
|
|
29
|
-
const provideWorkflowEngine = (effect) => Effect.provideService(effect, WorkflowEngine.WorkflowEngine, workflowEngine);
|
|
30
|
-
const launch = Effect.fn("RunEngine.launch")(function* (submission) {
|
|
31
|
-
yield* DurableRun.execute({ submission }, { discard: true }).pipe(provideWorkflowEngine);
|
|
32
|
-
});
|
|
33
|
-
const deliverInterrupt = Effect.fn("RunEngine.deliverInterrupt")(function* (runId) {
|
|
34
|
-
yield* DurableRun.interrupt(runId).pipe(provideWorkflowEngine);
|
|
35
|
-
yield* store.completeWorkflowCommand(runId, "Interrupt");
|
|
36
|
-
});
|
|
37
|
-
const deliverApproval = Effect.fn("RunEngine.deliverApproval")(function* (runId) {
|
|
38
|
-
const token = DurableDeferred.tokenFromExecutionId(ApprovalGate, {
|
|
39
|
-
workflow: DurableRun,
|
|
40
|
-
executionId: runId,
|
|
41
|
-
});
|
|
42
|
-
yield* DurableDeferred.succeed(ApprovalGate, { token, value: undefined }).pipe(provideWorkflowEngine);
|
|
43
|
-
yield* store.completeWorkflowCommand(runId, "Approve");
|
|
44
|
-
});
|
|
45
|
-
const deliverContinuation = Effect.fn("RunEngine.deliverContinuation")(function* (runId) {
|
|
46
|
-
yield* continueWithNewest(store, runId).pipe(provideWorkflowEngine);
|
|
47
|
-
});
|
|
48
|
-
const awaitWorkflowSettlement = Effect.fn("RunEngine.awaitWorkflowSettlement")(function* (runId) {
|
|
49
|
-
// A Failed projection commits before the workflow finishes suspending, so
|
|
50
|
-
// poll across that handover or an immediate operator retry is lost. A
|
|
51
|
-
// workflow still absent at the deadline means a corrupted instance
|
|
52
|
-
// database, so fail loudly instead of hanging.
|
|
53
|
-
for (let poll = 0; poll < MAX_SETTLEMENT_POLLS; poll += 1) {
|
|
54
|
-
const status = yield* DurableRun.poll(runId).pipe(provideWorkflowEngine);
|
|
55
|
-
if (Option.isSome(status))
|
|
56
|
-
return status.value;
|
|
57
|
-
yield* Effect.sleep("10 millis");
|
|
58
|
-
}
|
|
59
|
-
return yield* Effect.die(new Error(`Run ${runId} has no durable workflow execution to settle`));
|
|
60
|
-
});
|
|
61
|
-
const deliverResume = Effect.fn("RunEngine.deliverResume")(function* (runId) {
|
|
62
|
-
const status = yield* awaitWorkflowSettlement(runId);
|
|
63
|
-
if (status._tag === "Complete") {
|
|
64
|
-
yield* store.reconcileCompletion(runId, status);
|
|
65
|
-
yield* store.completeWorkflowCommand(runId, "Resume");
|
|
66
|
-
yield* deliverContinuation(runId);
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
yield* DurableRun.resume(runId).pipe(provideWorkflowEngine);
|
|
70
|
-
yield* store.completeWorkflowCommand(runId, "Resume");
|
|
71
|
-
});
|
|
72
|
-
const commandHandlers = {
|
|
73
|
-
Approve: deliverApproval,
|
|
74
|
-
Continue: deliverContinuation,
|
|
75
|
-
Interrupt: deliverInterrupt,
|
|
76
|
-
Resume: deliverResume,
|
|
77
|
-
};
|
|
34
|
+
const crypto = yield* Crypto.Crypto;
|
|
78
35
|
const submit = Effect.fn("RunEngine.submit")(function* (submission) {
|
|
79
|
-
const requestedRunId = yield* runIdFor(submission);
|
|
36
|
+
const requestedRunId = yield* runIdFor(submission).pipe(Effect.provideService(Crypto.Crypto, crypto));
|
|
80
37
|
const claim = yield* store.recordAndClaim(submission, requestedRunId);
|
|
38
|
+
// Stop the superseded Run's fiber before starting the new one, so the Item never has two
|
|
39
|
+
// fibers reserving Workers.
|
|
81
40
|
if (Option.isSome(claim.supersededRun)) {
|
|
82
|
-
yield*
|
|
41
|
+
yield* driver.stop(claim.supersededRun.value);
|
|
83
42
|
}
|
|
84
|
-
if (claim.
|
|
85
|
-
yield* launch(claim.
|
|
43
|
+
if (Option.isSome(claim.openedRun)) {
|
|
44
|
+
yield* driver.launch(claim.openedRun.value);
|
|
86
45
|
}
|
|
87
46
|
return claim.result;
|
|
88
|
-
});
|
|
89
|
-
const approve = Effect.fn("RunEngine.approve")(function* (runId, approval) {
|
|
90
|
-
yield* store.approve(runId, approval)
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
47
|
+
}, Effect.uninterruptible);
|
|
48
|
+
const approve = Effect.fn("RunEngine.approve")(function* (runId, approval, source) {
|
|
49
|
+
if (yield* store.approve(runId, approval, source)) {
|
|
50
|
+
yield* Effect.logInfo("Run approved", {
|
|
51
|
+
runId,
|
|
52
|
+
eventId: approval.id,
|
|
53
|
+
channel: source.channel,
|
|
54
|
+
approver: Option.getOrElse(source.approver, () => "none"),
|
|
55
|
+
});
|
|
56
|
+
yield* driver.resume(runId);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
yield* Effect.logDebug("Approval was already recorded; the Run is unchanged", {
|
|
60
|
+
runId,
|
|
61
|
+
eventId: approval.id,
|
|
62
|
+
});
|
|
63
|
+
}, Effect.uninterruptible);
|
|
64
|
+
const retry = Effect.fn("RunEngine.retry")(function* (runId, request = plainRetry) {
|
|
65
|
+
if (yield* store.retry(runId, request)) {
|
|
66
|
+
yield* driver.resume(runId);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
yield* Effect.logDebug("Retry changed nothing; the Run already waits for its next Attempt", {
|
|
70
|
+
runId,
|
|
71
|
+
});
|
|
72
|
+
}, Effect.uninterruptible);
|
|
73
|
+
const runAgain = Effect.fn("RunEngine.runAgain")(function* (runId, request) {
|
|
74
|
+
const result = yield* store.runAgain(runId, request);
|
|
75
|
+
if (result._tag === "Claimed")
|
|
76
|
+
yield* driver.launch(result.runId);
|
|
77
|
+
return result;
|
|
78
|
+
}, Effect.uninterruptible);
|
|
97
79
|
const cancel = Effect.fn("RunEngine.cancel")(function* (runId) {
|
|
98
|
-
//
|
|
99
|
-
// still open, and which attempt was in flight when it closed.
|
|
80
|
+
// One transaction determines whether the Run was open and which Attempt was running.
|
|
100
81
|
const outcome = yield* store.cancel(runId);
|
|
101
82
|
if (outcome._tag === "AlreadyClosed") {
|
|
102
83
|
yield* Effect.logDebug("Cancel was a no-op; the run was already closed", { runId });
|
|
@@ -106,18 +87,24 @@ const makeRunEngine = Effect.gen(function* () {
|
|
|
106
87
|
runId,
|
|
107
88
|
openAttempt: Option.getOrElse(outcome.openAttempt, () => "none"),
|
|
108
89
|
});
|
|
90
|
+
// Stop the Attempt before interrupting its fiber; otherwise its parent task stays live
|
|
91
|
+
// waiting for a reattach.
|
|
109
92
|
const handshake = Option.isSome(outcome.openAttempt)
|
|
110
93
|
? yield* stepExecutor.interrupt(outcome.openAttempt.value).pipe(Effect.result)
|
|
111
94
|
: Result.succeed(undefined);
|
|
112
|
-
yield*
|
|
113
|
-
|
|
95
|
+
yield* driver.stop(runId);
|
|
96
|
+
// Release a checkout and slot that startup kept for a reattach; they stay kept until the
|
|
97
|
+
// parent task is confirmed stopped.
|
|
98
|
+
if (Option.isSome(outcome.openAttempt))
|
|
99
|
+
yield* driver.releaseKept(outcome.openAttempt.value);
|
|
100
|
+
yield* driver.continueWithNewest(runId);
|
|
114
101
|
if (Option.isSome(outcome.openAttempt) && Result.isFailure(handshake)) {
|
|
115
102
|
return yield* new AttemptCancellationError({
|
|
116
103
|
attemptId: outcome.openAttempt.value,
|
|
117
104
|
cause: handshake.failure,
|
|
118
105
|
});
|
|
119
106
|
}
|
|
120
|
-
});
|
|
107
|
+
}, Effect.uninterruptible);
|
|
121
108
|
const intervene = Effect.fn("RunEngine.intervene")(function* (runId, attemptId, intervention) {
|
|
122
109
|
yield* Effect.annotateCurrentSpan({ runId, attemptId, action: intervention.action._tag });
|
|
123
110
|
const current = yield* store.snapshot(runId);
|
|
@@ -132,96 +119,99 @@ const makeRunEngine = Effect.gen(function* () {
|
|
|
132
119
|
return yield* new RunInterventionRejectedError({
|
|
133
120
|
runId,
|
|
134
121
|
attemptId,
|
|
135
|
-
message: "This
|
|
122
|
+
message: "This attempt is no longer running",
|
|
136
123
|
});
|
|
137
124
|
}
|
|
138
125
|
yield* stepExecutor.intervene(attemptId, intervention).pipe(Effect.mapError((error) => new RunInterventionRejectedError({
|
|
139
126
|
runId,
|
|
140
127
|
attemptId,
|
|
141
|
-
message: error
|
|
142
|
-
|
|
143
|
-
:
|
|
144
|
-
|
|
145
|
-
|
|
128
|
+
message: Match.valueTags(error, {
|
|
129
|
+
RunawayFailure: () => "The attempt reached its runaway limit",
|
|
130
|
+
ChildSessionBudgetFailure: () => "The attempt reached its child-session budget",
|
|
131
|
+
QuestionFailure: () => "The attempt ended with a question for the operator",
|
|
132
|
+
BlockedFailure: ({ message }) => message,
|
|
133
|
+
InfraFailure: ({ message }) => message,
|
|
134
|
+
DefectFailure: ({ message }) => message,
|
|
135
|
+
AgentFailure: ({ message }) => message,
|
|
136
|
+
}),
|
|
146
137
|
})), Effect.tapError((error) => Effect.logWarning("Operator input delivery failed", {
|
|
147
138
|
runId,
|
|
148
139
|
attemptId,
|
|
149
140
|
message: error.message,
|
|
150
141
|
})));
|
|
151
142
|
});
|
|
143
|
+
const resolveFailure = Effect.fn("RunEngine.resolveFailure")(function* (runId, attemptId) {
|
|
144
|
+
if (!(yield* store.resolveFailure(runId, attemptId)))
|
|
145
|
+
return;
|
|
146
|
+
yield* Effect.logInfo("The operator resolved the Agent's question or blocker; the Item's queued Events get their turn", {
|
|
147
|
+
runId,
|
|
148
|
+
attemptId,
|
|
149
|
+
});
|
|
150
|
+
yield* driver.continueWithNewest(runId);
|
|
151
|
+
}, Effect.uninterruptible);
|
|
152
152
|
const revoke = Effect.fn("RunEngine.revoke")(function* (loop, itemKey) {
|
|
153
153
|
const revoked = yield* store.revoke(loop, itemKey);
|
|
154
|
-
yield* Effect.forEach(revoked,
|
|
155
|
-
concurrency: "unbounded",
|
|
156
|
-
discard: true,
|
|
157
|
-
});
|
|
154
|
+
yield* Effect.forEach(revoked, driver.stop, { concurrency: "unbounded", discard: true });
|
|
158
155
|
return revoked;
|
|
159
|
-
});
|
|
156
|
+
}, Effect.uninterruptible);
|
|
160
157
|
const inspect = Effect.fn("RunEngine.inspect")(function* (runId) {
|
|
161
158
|
return yield* store.snapshot(runId);
|
|
162
159
|
});
|
|
163
160
|
const transcript = Effect.fn("RunEngine.transcript")(function* (query) {
|
|
164
161
|
return yield* store.transcript(query);
|
|
165
162
|
});
|
|
166
|
-
const
|
|
167
|
-
yield* Effect.
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
if (Option.isSome(status) && status.value._tag === "Suspended") {
|
|
177
|
-
if (state._tag === "Running") {
|
|
178
|
-
yield* deliverResume(runId);
|
|
179
|
-
}
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
yield* launch(submission);
|
|
183
|
-
}), { concurrency: "unbounded", discard: true });
|
|
163
|
+
const discardLeftovers = Effect.fn("RunEngine.discardLeftovers")(function* (worker) {
|
|
164
|
+
yield* Effect.annotateCurrentSpan({ worker });
|
|
165
|
+
if ((yield* stepExecutor.workers).includes(worker)) {
|
|
166
|
+
const running = yield* store.openAttempts(worker);
|
|
167
|
+
yield* Effect.logInfo("Leftovers kept; the Worker is configured or still runs Attempts, so its Attempts stay tracked", { worker, running });
|
|
168
|
+
return yield* new LeftoversDiscardRejectedError({ worker, running });
|
|
169
|
+
}
|
|
170
|
+
const attempts = yield* store.discardLeftovers(worker);
|
|
171
|
+
yield* Effect.logInfo("Discarded the leftovers of the Attempts on a Worker that is not configured; startup no longer reconciles them", { worker, attempts });
|
|
172
|
+
return attempts;
|
|
184
173
|
});
|
|
185
|
-
|
|
174
|
+
// Startup reconciliation runs here because this layer is memoized; `Layer.tap` would run it
|
|
175
|
+
// once per service the engine is provided to.
|
|
176
|
+
yield* driver.recoverWorkspaces();
|
|
177
|
+
yield* driver.reconcile();
|
|
178
|
+
const interval = yield* ReconcileInterval;
|
|
179
|
+
yield* Effect.sleep(interval).pipe(Effect.andThen(driver.reconcile()), Effect.tapError((error) => Effect.logError("Periodic Run reconcile failed; the next one tries again", {
|
|
180
|
+
errorTag: error._tag,
|
|
181
|
+
})), Effect.ignore, Effect.forever, Effect.forkScoped);
|
|
186
182
|
return {
|
|
187
183
|
approve,
|
|
188
184
|
cancel,
|
|
185
|
+
discardLeftovers,
|
|
189
186
|
drain: admission.drain,
|
|
190
187
|
inspect,
|
|
191
188
|
intervene,
|
|
192
|
-
reconcile,
|
|
189
|
+
reconcile: driver.reconcile,
|
|
193
190
|
retry,
|
|
191
|
+
resolveFailure,
|
|
194
192
|
revoke,
|
|
193
|
+
runAgain,
|
|
195
194
|
submit,
|
|
196
195
|
transcript,
|
|
197
196
|
};
|
|
198
197
|
});
|
|
199
|
-
/**
|
|
198
|
+
/** The service that records Events and drives their Runs through approval, execution, retry, and cancellation. */
|
|
200
199
|
export class RunEngine extends Context.Service()("@usine/engine/RunEngine") {
|
|
201
200
|
}
|
|
202
201
|
/**
|
|
203
|
-
*
|
|
204
|
-
* `
|
|
205
|
-
* so Run records and pending execution remain together across restarts.
|
|
206
|
-
* The deployment supplies `Crypto` and the Worker implementation through `StepExecutor`.
|
|
202
|
+
* Returns the engine layers on `database`, which stores all durable Run state. Requires `Crypto`
|
|
203
|
+
* for Run IDs, `StepExecutor` for Workers, and `TriggerCondition` to re-check queued Events.
|
|
207
204
|
*/
|
|
208
205
|
export const layerWithDatabase = (database) => {
|
|
209
206
|
const store = RunStore.layer.pipe(Layer.provide(database));
|
|
210
|
-
const
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
assignedShardGroups: ["default", "workflow"],
|
|
215
|
-
entityTerminationTimeout: 0,
|
|
216
|
-
},
|
|
217
|
-
}).pipe(Layer.provide(database), Layer.orDie);
|
|
218
|
-
const workflowEngine = ClusterWorkflowEngine.layer.pipe(Layer.provide(cluster));
|
|
219
|
-
const admission = AttemptAdmission.layer;
|
|
220
|
-
const runtime = durableRunLayer.pipe(Layer.provideMerge(workflowEngine), Layer.provideMerge(store), Layer.provideMerge(admission));
|
|
221
|
-
const runEngine = Layer.effect(RunEngine, makeRunEngine).pipe(Layer.provide(runtime));
|
|
222
|
-
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)));
|
|
207
|
+
const itemWriter = ItemProjectionWriter.layer.pipe(Layer.provide(database));
|
|
208
|
+
const driver = RunDriver.layer.pipe(Layer.provideMerge(store), Layer.provideMerge(AttemptAdmission.layer), Layer.provide(itemWriter));
|
|
209
|
+
const runEngine = Layer.effect(RunEngine, makeRunEngine).pipe(Layer.provide(driver));
|
|
210
|
+
return Layer.mergeAll(runEngine, BoardMoves.layer.pipe(Layer.provide(database)), CycleBudgets.layer.pipe(Layer.provide(database)), RunReader.layer.pipe(Layer.provide(database)), CursorStore.layer.pipe(Layer.provide(database)), ItemProjectionReader.layer.pipe(Layer.provide(database)), itemWriter, RepositoryLabelProjectionReader.layer.pipe(Layer.provide(database)), RepositoryLabelProjectionWriter.layer.pipe(Layer.provide(database)), LoopControl.layer.pipe(Layer.provide(database)));
|
|
223
211
|
};
|
|
224
|
-
export { Submission, Claimed, Queued, Ignored, CycleBlocked, IgnoreReason, SubmissionResult, } from "./submission.js";
|
|
212
|
+
export { Submission, Claimed, Queued, Suppressed, Ignored, CycleBlocked, IgnoreReason, SubmissionResult, } from "./submission.js";
|
|
213
|
+
export { RunAgainRequest, RunAgainResult } from "./run-again.js";
|
|
214
|
+
export { RetryRequest } from "./retry.js";
|
|
225
215
|
export { RunEngineShutdown } from "./shutdown.js";
|
|
226
|
-
export { RunNotFoundError, RunOperationRejectedError, EnginePersistenceError, AttemptCancellationError, RunInterventionRejectedError, RunStoreError, RunEngineError, } from "./error.js";
|
|
216
|
+
export { RunNotFoundError, RunOperationRejectedError, RunRetryBlockedError, EnginePersistenceError, AttemptCancellationError, RunInterventionRejectedError, LeftoversDiscardRejectedError, RunStoreError, RunEngineError, } from "./error.js";
|
|
227
217
|
//# sourceMappingURL=engine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine/engine.ts"],"names":[],"mappings":"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"}
|