@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.
- package/LICENSE +661 -21
- package/README.md +112 -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 +14 -8
- package/dist/cycle-budget/cycle-budget.d.ts.map +1 -1
- package/dist/cycle-budget/cycle-budget.js +51 -10
- package/dist/cycle-budget/cycle-budget.js.map +1 -1
- package/dist/cycle-budget/model.d.ts +6 -2
- package/dist/cycle-budget/model.d.ts.map +1 -1
- package/dist/cycle-budget/model.js +5 -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 +13 -10
- package/dist/database/local-sqlite.d.ts.map +1 -1
- package/dist/database/local-sqlite.js +22 -17
- package/dist/database/local-sqlite.js.map +1 -1
- package/dist/database/schema.d.ts +668 -36
- package/dist/database/schema.d.ts.map +1 -1
- package/dist/database/schema.js +123 -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 +79 -0
- package/dist/engine/checkout-recovery.d.ts.map +1 -0
- package/dist/engine/checkout-recovery.js +238 -0
- package/dist/engine/checkout-recovery.js.map +1 -0
- package/dist/engine/engine.d.ts +67 -26
- package/dist/engine/engine.d.ts.map +1 -1
- package/dist/engine/engine.js +136 -129
- 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 +83 -28
- package/dist/engine/lifecycle.d.ts.map +1 -1
- package/dist/engine/lifecycle.js +94 -45
- 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 +68 -0
- package/dist/engine/run-driver.d.ts.map +1 -0
- package/dist/engine/run-driver.js +448 -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 +43 -12
- package/dist/engine/submission.js.map +1 -1
- package/dist/engine/unconfirmed-stops.d.ts +27 -0
- package/dist/engine/unconfirmed-stops.d.ts.map +1 -0
- package/dist/engine/unconfirmed-stops.js +26 -0
- package/dist/engine/unconfirmed-stops.js.map +1 -0
- package/dist/item-projection/item-projection.d.ts +14 -4
- package/dist/item-projection/item-projection.d.ts.map +1 -1
- package/dist/item-projection/item-projection.js +60 -14
- 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 +25 -10
- package/dist/run-reader/run-reader.d.ts.map +1 -1
- package/dist/run-reader/run-reader.js +25 -7
- package/dist/run-reader/run-reader.js.map +1 -1
- package/dist/step-executor.d.ts +86 -13
- 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 +242 -43
- package/dist/store/codec.d.ts.map +1 -1
- package/dist/store/codec.js +61 -16
- 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 +385 -36
- package/dist/store/queries.d.ts.map +1 -1
- package/dist/store/queries.js +355 -107
- package/dist/store/queries.js.map +1 -1
- package/dist/store/store.d.ts +106 -54
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +497 -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/drizzle/20261024162954_cycle_ask_closures/migration.sql +10 -0
- package/drizzle/20261024162954_cycle_ask_closures/snapshot.json +1948 -0
- package/drizzle/20261027104206_attempt_out_of_memory/migration.sql +1 -0
- package/drizzle/20261027104206_attempt_out_of_memory/snapshot.json +1958 -0
- package/drizzle/20261027191944_failure_resolution/migration.sql +1 -0
- package/drizzle/20261027191944_failure_resolution/snapshot.json +1968 -0
- package/package.json +22 -12
- 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
package/dist/engine/engine.js
CHANGED
|
@@ -1,102 +1,84 @@
|
|
|
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
|
+
import { UnconfirmedStops } from "./unconfirmed-stops.js";
|
|
26
|
+
/** The interval between periodic reconciles, which restart open Runs whose fiber stopped. */
|
|
27
|
+
export const ReconcileInterval = Context.Reference("@usine/engine/ReconcileInterval", { defaultValue: () => "3 minutes" });
|
|
28
|
+
// Operations that commit a Run transition also hand it to the Run's fiber, uninterruptibly, so an
|
|
29
|
+
// interrupted caller can't leave a committed transition undriven.
|
|
24
30
|
const makeRunEngine = Effect.gen(function* () {
|
|
25
31
|
const store = yield* RunStore;
|
|
32
|
+
const driver = yield* RunDriver;
|
|
26
33
|
const admission = yield* AttemptAdmission;
|
|
27
34
|
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
|
-
};
|
|
35
|
+
const crypto = yield* Crypto.Crypto;
|
|
78
36
|
const submit = Effect.fn("RunEngine.submit")(function* (submission) {
|
|
79
|
-
const requestedRunId = yield* runIdFor(submission);
|
|
37
|
+
const requestedRunId = yield* runIdFor(submission).pipe(Effect.provideService(Crypto.Crypto, crypto));
|
|
80
38
|
const claim = yield* store.recordAndClaim(submission, requestedRunId);
|
|
39
|
+
// Stop the superseded Run's fiber before starting the new one, so the Item never has two
|
|
40
|
+
// fibers reserving Workers.
|
|
81
41
|
if (Option.isSome(claim.supersededRun)) {
|
|
82
|
-
yield*
|
|
42
|
+
yield* driver.stop(claim.supersededRun.value);
|
|
83
43
|
}
|
|
84
|
-
if (claim.
|
|
85
|
-
yield* launch(claim.
|
|
44
|
+
if (Option.isSome(claim.openedRun)) {
|
|
45
|
+
yield* driver.launch(claim.openedRun.value);
|
|
86
46
|
}
|
|
87
47
|
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
|
-
|
|
48
|
+
}, Effect.uninterruptible);
|
|
49
|
+
const approve = Effect.fn("RunEngine.approve")(function* (runId, approval, source) {
|
|
50
|
+
if (yield* store.approve(runId, approval, source)) {
|
|
51
|
+
yield* Effect.logInfo("Run approved", {
|
|
52
|
+
runId,
|
|
53
|
+
eventId: approval.id,
|
|
54
|
+
channel: source.channel,
|
|
55
|
+
approver: Option.getOrElse(source.approver, () => "none"),
|
|
56
|
+
});
|
|
57
|
+
yield* driver.resume(runId);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
yield* Effect.logDebug("Approval was already recorded; the Run is unchanged", {
|
|
61
|
+
runId,
|
|
62
|
+
eventId: approval.id,
|
|
63
|
+
});
|
|
64
|
+
}, Effect.uninterruptible);
|
|
65
|
+
const retry = Effect.fn("RunEngine.retry")(function* (runId, request = plainRetry) {
|
|
66
|
+
if (yield* store.retry(runId, request)) {
|
|
67
|
+
yield* driver.resume(runId);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
yield* Effect.logDebug("Retry changed nothing; the Run already waits for its next Attempt", {
|
|
71
|
+
runId,
|
|
72
|
+
});
|
|
73
|
+
}, Effect.uninterruptible);
|
|
74
|
+
const runAgain = Effect.fn("RunEngine.runAgain")(function* (runId, request) {
|
|
75
|
+
const result = yield* store.runAgain(runId, request);
|
|
76
|
+
if (result._tag === "Claimed")
|
|
77
|
+
yield* driver.launch(result.runId);
|
|
78
|
+
return result;
|
|
79
|
+
}, Effect.uninterruptible);
|
|
97
80
|
const cancel = Effect.fn("RunEngine.cancel")(function* (runId) {
|
|
98
|
-
//
|
|
99
|
-
// still open, and which attempt was in flight when it closed.
|
|
81
|
+
// One transaction determines whether the Run was open and which Attempt was running.
|
|
100
82
|
const outcome = yield* store.cancel(runId);
|
|
101
83
|
if (outcome._tag === "AlreadyClosed") {
|
|
102
84
|
yield* Effect.logDebug("Cancel was a no-op; the run was already closed", { runId });
|
|
@@ -106,18 +88,34 @@ const makeRunEngine = Effect.gen(function* () {
|
|
|
106
88
|
runId,
|
|
107
89
|
openAttempt: Option.getOrElse(outcome.openAttempt, () => "none"),
|
|
108
90
|
});
|
|
91
|
+
// The stop can end the Attempt's execution, and its fiber then frees the slot, so the slot
|
|
92
|
+
// moves to the Attempt first.
|
|
93
|
+
if (Option.isSome(outcome.openAttempt))
|
|
94
|
+
yield* driver.holdSlot(runId, outcome.openAttempt.value);
|
|
95
|
+
// Stop the Attempt before interrupting its fiber; otherwise its parent task stays live
|
|
96
|
+
// waiting for a reattach.
|
|
109
97
|
const handshake = Option.isSome(outcome.openAttempt)
|
|
110
|
-
? yield* stepExecutor.interrupt(outcome.openAttempt.value).pipe(Effect.result)
|
|
98
|
+
? yield* stepExecutor.interrupt(outcome.openAttempt.value, "cancel").pipe(Effect.result)
|
|
111
99
|
: Result.succeed(undefined);
|
|
112
|
-
yield*
|
|
113
|
-
|
|
100
|
+
yield* driver.stop(runId);
|
|
101
|
+
// The Attempt's slot, and a checkout that startup kept for a reattach, stay kept, and the
|
|
102
|
+
// queued Event's Run starts no Attempt, until the parent task is confirmed stopped.
|
|
103
|
+
if (Option.isSome(outcome.openAttempt))
|
|
104
|
+
yield* driver.releaseKept({
|
|
105
|
+
attemptId: outcome.openAttempt.value,
|
|
106
|
+
runId,
|
|
107
|
+
loop: outcome.loop,
|
|
108
|
+
itemKey: outcome.itemKey,
|
|
109
|
+
reason: "cancel",
|
|
110
|
+
});
|
|
111
|
+
yield* driver.continueWithNewest(runId);
|
|
114
112
|
if (Option.isSome(outcome.openAttempt) && Result.isFailure(handshake)) {
|
|
115
113
|
return yield* new AttemptCancellationError({
|
|
116
114
|
attemptId: outcome.openAttempt.value,
|
|
117
115
|
cause: handshake.failure,
|
|
118
116
|
});
|
|
119
117
|
}
|
|
120
|
-
});
|
|
118
|
+
}, Effect.uninterruptible);
|
|
121
119
|
const intervene = Effect.fn("RunEngine.intervene")(function* (runId, attemptId, intervention) {
|
|
122
120
|
yield* Effect.annotateCurrentSpan({ runId, attemptId, action: intervention.action._tag });
|
|
123
121
|
const current = yield* store.snapshot(runId);
|
|
@@ -132,96 +130,105 @@ const makeRunEngine = Effect.gen(function* () {
|
|
|
132
130
|
return yield* new RunInterventionRejectedError({
|
|
133
131
|
runId,
|
|
134
132
|
attemptId,
|
|
135
|
-
message: "This
|
|
133
|
+
message: "This attempt is no longer running",
|
|
136
134
|
});
|
|
137
135
|
}
|
|
138
136
|
yield* stepExecutor.intervene(attemptId, intervention).pipe(Effect.mapError((error) => new RunInterventionRejectedError({
|
|
139
137
|
runId,
|
|
140
138
|
attemptId,
|
|
141
|
-
message: error
|
|
142
|
-
|
|
143
|
-
:
|
|
144
|
-
|
|
145
|
-
|
|
139
|
+
message: Match.valueTags(error, {
|
|
140
|
+
RunawayFailure: () => "The attempt reached its runaway limit",
|
|
141
|
+
ChildSessionBudgetFailure: () => "The attempt reached its child-session budget",
|
|
142
|
+
QuestionFailure: () => "The attempt ended with a question for the operator",
|
|
143
|
+
BlockedFailure: ({ message }) => message,
|
|
144
|
+
InfraFailure: ({ message }) => message,
|
|
145
|
+
DefectFailure: ({ message }) => message,
|
|
146
|
+
AgentFailure: ({ message }) => message,
|
|
147
|
+
}),
|
|
146
148
|
})), Effect.tapError((error) => Effect.logWarning("Operator input delivery failed", {
|
|
147
149
|
runId,
|
|
148
150
|
attemptId,
|
|
149
151
|
message: error.message,
|
|
150
152
|
})));
|
|
151
153
|
});
|
|
154
|
+
const resolveFailure = Effect.fn("RunEngine.resolveFailure")(function* (runId, attemptId, operator) {
|
|
155
|
+
yield* Effect.annotateCurrentSpan({ runId, attemptId });
|
|
156
|
+
if (!(yield* store.resolveFailure(runId, attemptId, operator)))
|
|
157
|
+
return;
|
|
158
|
+
yield* Effect.logInfo("The operator resolved the Agent's question or blocker; the Item's queued Events get their turn", {
|
|
159
|
+
runId,
|
|
160
|
+
attemptId,
|
|
161
|
+
});
|
|
162
|
+
yield* driver.continueWithNewest(runId);
|
|
163
|
+
}, Effect.uninterruptible);
|
|
152
164
|
const revoke = Effect.fn("RunEngine.revoke")(function* (loop, itemKey) {
|
|
153
165
|
const revoked = yield* store.revoke(loop, itemKey);
|
|
154
|
-
yield* Effect.forEach(revoked,
|
|
155
|
-
concurrency: "unbounded",
|
|
156
|
-
discard: true,
|
|
157
|
-
});
|
|
166
|
+
yield* Effect.forEach(revoked, driver.stop, { concurrency: "unbounded", discard: true });
|
|
158
167
|
return revoked;
|
|
159
|
-
});
|
|
168
|
+
}, Effect.uninterruptible);
|
|
160
169
|
const inspect = Effect.fn("RunEngine.inspect")(function* (runId) {
|
|
161
170
|
return yield* store.snapshot(runId);
|
|
162
171
|
});
|
|
163
172
|
const transcript = Effect.fn("RunEngine.transcript")(function* (query) {
|
|
164
173
|
return yield* store.transcript(query);
|
|
165
174
|
});
|
|
166
|
-
const
|
|
167
|
-
yield* Effect.
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
if (state._tag === "Running") {
|
|
178
|
-
yield* deliverResume(runId);
|
|
179
|
-
}
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
yield* launch(submission);
|
|
183
|
-
}), { concurrency: "unbounded", discard: true });
|
|
175
|
+
const discardLeftovers = Effect.fn("RunEngine.discardLeftovers")(function* (worker) {
|
|
176
|
+
yield* Effect.annotateCurrentSpan({ worker });
|
|
177
|
+
if ((yield* stepExecutor.workers).includes(worker)) {
|
|
178
|
+
const running = yield* store.openAttempts(worker);
|
|
179
|
+
yield* Effect.logInfo("Leftovers kept; the Worker is configured or still runs Attempts, so its Attempts stay tracked", { worker, running });
|
|
180
|
+
return yield* new LeftoversDiscardRejectedError({ worker, running });
|
|
181
|
+
}
|
|
182
|
+
const attempts = yield* store.discardLeftovers(worker);
|
|
183
|
+
yield* Effect.logInfo("Discarded the leftovers of the Attempts on a Worker that is not configured; startup no longer reconciles them", { worker, attempts: attempts.length });
|
|
184
|
+
yield* stepExecutor.discard(worker, attempts);
|
|
185
|
+
return attempts.length;
|
|
184
186
|
});
|
|
185
|
-
|
|
187
|
+
// Startup reconciliation runs here because this layer is memoized; `Layer.tap` would run it
|
|
188
|
+
// once per service the engine is provided to.
|
|
189
|
+
yield* driver.recoverWorkspaces();
|
|
190
|
+
yield* driver.reconcile();
|
|
191
|
+
const interval = yield* ReconcileInterval;
|
|
192
|
+
yield* Effect.sleep(interval).pipe(Effect.andThen(driver.reconcile()), Effect.tapError((error) => Effect.logError("Periodic Run reconcile failed; the next one tries again", {
|
|
193
|
+
errorTag: error._tag,
|
|
194
|
+
})), Effect.ignore, Effect.forever, Effect.forkScoped);
|
|
186
195
|
return {
|
|
187
196
|
approve,
|
|
188
197
|
cancel,
|
|
198
|
+
discardLeftovers,
|
|
189
199
|
drain: admission.drain,
|
|
190
200
|
inspect,
|
|
191
201
|
intervene,
|
|
192
|
-
reconcile,
|
|
202
|
+
reconcile: driver.reconcile,
|
|
193
203
|
retry,
|
|
204
|
+
resolveFailure,
|
|
194
205
|
revoke,
|
|
206
|
+
runAgain,
|
|
195
207
|
submit,
|
|
196
208
|
transcript,
|
|
197
209
|
};
|
|
198
210
|
});
|
|
199
|
-
/**
|
|
211
|
+
/** The service that records Events and drives their Runs through approval, execution, retry, and cancellation. */
|
|
200
212
|
export class RunEngine extends Context.Service()("@usine/engine/RunEngine") {
|
|
201
213
|
}
|
|
202
214
|
/**
|
|
203
|
-
*
|
|
204
|
-
* `
|
|
205
|
-
* so Run records and pending execution remain together across restarts.
|
|
206
|
-
* The deployment supplies `Crypto` and the Worker implementation through `StepExecutor`.
|
|
215
|
+
* Returns the engine layers on `database`, which stores all durable Run state. Requires `Crypto`
|
|
216
|
+
* for Run IDs, `StepExecutor` for Workers, and `TriggerCondition` to re-check queued Events.
|
|
207
217
|
*/
|
|
208
218
|
export const layerWithDatabase = (database) => {
|
|
209
219
|
const store = RunStore.layer.pipe(Layer.provide(database));
|
|
210
|
-
const
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
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)));
|
|
220
|
+
const itemWriter = ItemProjectionWriter.layer.pipe(Layer.provide(database));
|
|
221
|
+
const driver = RunDriver.layer.pipe(Layer.provideMerge(store), Layer.provideMerge(AttemptAdmission.layer), Layer.provide(itemWriter));
|
|
222
|
+
const runEngine = Layer.mergeAll(Layer.effect(RunEngine, makeRunEngine), Layer.effect(UnconfirmedStops, Effect.gen(function* () {
|
|
223
|
+
const running = yield* RunDriver;
|
|
224
|
+
return UnconfirmedStops.of({ list: running.unconfirmedStops });
|
|
225
|
+
}))).pipe(Layer.provide(driver));
|
|
226
|
+
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
227
|
};
|
|
224
|
-
export { Submission, Claimed, Queued, Ignored, CycleBlocked, IgnoreReason, SubmissionResult, } from "./submission.js";
|
|
228
|
+
export { Submission, Claimed, Queued, Suppressed, Ignored, CycleBlocked, IgnoreReason, SubmissionResult, } from "./submission.js";
|
|
229
|
+
export { RunAgainRequest, RunAgainResult } from "./run-again.js";
|
|
230
|
+
export { RetryRequest } from "./retry.js";
|
|
225
231
|
export { RunEngineShutdown } from "./shutdown.js";
|
|
226
|
-
export {
|
|
232
|
+
export { UnconfirmedStop, UnconfirmedStops } from "./unconfirmed-stops.js";
|
|
233
|
+
export { RunNotFoundError, RunOperationRejectedError, RunRetryBlockedError, EnginePersistenceError, AttemptCancellationError, RunInterventionRejectedError, LeftoversDiscardRejectedError, RunStoreError, RunEngineError, } from "./error.js";
|
|
227
234
|
//# 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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"}
|
package/dist/engine/error.d.ts
CHANGED
|
@@ -2,44 +2,63 @@ import { Schema } from "effect";
|
|
|
2
2
|
declare const RunNotFoundError_base: Schema.Class<RunNotFoundError, Schema.TaggedStruct<"RunNotFoundError", {
|
|
3
3
|
readonly runId: Schema.brand<Schema.NonEmptyString, "RunId">;
|
|
4
4
|
}>, import("effect/Cause").YieldableError>;
|
|
5
|
-
/**
|
|
5
|
+
/** An error for a Run ID that doesn't exist. */
|
|
6
6
|
export declare class RunNotFoundError extends RunNotFoundError_base {
|
|
7
7
|
}
|
|
8
8
|
declare const RunOperationRejectedError_base: Schema.Class<RunOperationRejectedError, Schema.TaggedStruct<"RunOperationRejectedError", {
|
|
9
9
|
readonly runId: Schema.brand<Schema.NonEmptyString, "RunId">;
|
|
10
|
-
readonly operation: Schema.Literals<readonly ["approve", "retry"]>;
|
|
10
|
+
readonly operation: Schema.Literals<readonly ["approve", "retry", "resolveFailure", "runAgain", "cancel"]>;
|
|
11
11
|
readonly state: Schema.String;
|
|
12
12
|
}>, import("effect/Cause").YieldableError>;
|
|
13
|
-
/**
|
|
13
|
+
/** An error for an operator action that the Run's state doesn't allow. */
|
|
14
14
|
export declare class RunOperationRejectedError extends RunOperationRejectedError_base {
|
|
15
15
|
}
|
|
16
|
+
declare const RunRetryBlockedError_base: Schema.Class<RunRetryBlockedError, Schema.TaggedStruct<"RunRetryBlockedError", {
|
|
17
|
+
readonly runId: Schema.brand<Schema.NonEmptyString, "RunId">;
|
|
18
|
+
readonly openRunId: Schema.brand<Schema.NonEmptyString, "RunId">;
|
|
19
|
+
readonly message: Schema.NonEmptyString;
|
|
20
|
+
}>, import("effect/Cause").YieldableError>;
|
|
21
|
+
/** An error for a retry or run again while `openRunId`, another Run of the same Loop and Item, is open. */
|
|
22
|
+
export declare class RunRetryBlockedError extends RunRetryBlockedError_base {
|
|
23
|
+
}
|
|
16
24
|
declare const EnginePersistenceError_base: Schema.Class<EnginePersistenceError, Schema.TaggedStruct<"EnginePersistenceError", {
|
|
17
25
|
readonly operation: Schema.String;
|
|
18
26
|
readonly cause: Schema.Defect;
|
|
19
27
|
}>, import("effect/Cause").YieldableError>;
|
|
20
|
-
/** An
|
|
28
|
+
/** An error reading or writing the instance's durable records. */
|
|
21
29
|
export declare class EnginePersistenceError extends EnginePersistenceError_base {
|
|
22
30
|
}
|
|
23
31
|
declare const AttemptCancellationError_base: Schema.Class<AttemptCancellationError, Schema.TaggedStruct<"AttemptCancellationError", {
|
|
24
32
|
readonly attemptId: Schema.brand<Schema.NonEmptyString, "AttemptId">;
|
|
25
33
|
readonly cause: Schema.Defect;
|
|
26
34
|
}>, import("effect/Cause").YieldableError>;
|
|
27
|
-
/**
|
|
35
|
+
/** An error for a canceled Run whose active Attempt couldn't be interrupted. */
|
|
28
36
|
export declare class AttemptCancellationError extends AttemptCancellationError_base {
|
|
29
37
|
}
|
|
30
|
-
/**
|
|
31
|
-
export declare const RunStoreError: Schema.Union<readonly [typeof RunNotFoundError, typeof RunOperationRejectedError, typeof EnginePersistenceError]>;
|
|
38
|
+
/** The errors that the Run store can fail with. */
|
|
39
|
+
export declare const RunStoreError: Schema.Union<readonly [typeof RunNotFoundError, typeof RunOperationRejectedError, typeof RunRetryBlockedError, typeof EnginePersistenceError]>;
|
|
32
40
|
export type RunStoreError = typeof RunStoreError.Type;
|
|
33
41
|
declare const RunInterventionRejectedError_base: Schema.Class<RunInterventionRejectedError, Schema.TaggedStruct<"RunInterventionRejectedError", {
|
|
34
42
|
readonly runId: Schema.brand<Schema.NonEmptyString, "RunId">;
|
|
35
43
|
readonly attemptId: Schema.brand<Schema.NonEmptyString, "AttemptId">;
|
|
36
44
|
readonly message: Schema.NonEmptyString;
|
|
37
45
|
}>, import("effect/Cause").YieldableError>;
|
|
38
|
-
/**
|
|
46
|
+
/** An error for an Attempt that is no longer live or whose channel rejected operator input. */
|
|
39
47
|
export declare class RunInterventionRejectedError extends RunInterventionRejectedError_base {
|
|
40
48
|
}
|
|
41
|
-
|
|
42
|
-
|
|
49
|
+
declare const LeftoversDiscardRejectedError_base: Schema.Class<LeftoversDiscardRejectedError, Schema.TaggedStruct<"LeftoversDiscardRejectedError", {
|
|
50
|
+
readonly worker: Schema.brand<Schema.String, "WorkerName">;
|
|
51
|
+
/** The number of open Attempts on `worker`. */
|
|
52
|
+
readonly running: Schema.Int;
|
|
53
|
+
}>, import("effect/Cause").YieldableError>;
|
|
54
|
+
/**
|
|
55
|
+
* An error for discarding the leftovers of a Worker that is still in `usine.yaml` or still has
|
|
56
|
+
* open Attempts. Nothing is discarded.
|
|
57
|
+
*/
|
|
58
|
+
export declare class LeftoversDiscardRejectedError extends LeftoversDiscardRejectedError_base {
|
|
59
|
+
}
|
|
60
|
+
/** The Run store errors plus `AttemptCancellationError`. */
|
|
61
|
+
export declare const RunEngineError: Schema.Union<readonly [typeof RunNotFoundError, typeof RunOperationRejectedError, typeof RunRetryBlockedError, typeof EnginePersistenceError, typeof AttemptCancellationError, typeof RunInterventionRejectedError]>;
|
|
43
62
|
export type RunEngineError = typeof RunEngineError.Type;
|
|
44
63
|
export {};
|
|
45
64
|
//# sourceMappingURL=error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/engine/error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/engine/error.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;AAEhC,gDAAgD;AAChD,qBAAa,gBAAiB,SAAQ,qBAIpC;CAAG;;;;;;AAEL,0EAA0E;AAC1E,qBAAa,yBAA0B,SAAQ,8BAM7C;CAAG;;;;;;AAEL,2GAA2G;AAC3G,qBAAa,oBAAqB,SAAQ,yBAMxC;CAAG;;;;;AAEL,kEAAkE;AAClE,qBAAa,sBAAuB,SAAQ,2BAK1C;CAAG;;;;;AAEL,gFAAgF;AAChF,qBAAa,wBAAyB,SAAQ,6BAK5C;CAAG;AAEL,mDAAmD;AACnD,eAAO,MAAM,aAAa,gJAKxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAC;;;;;;AAEtD,+FAA+F;AAC/F,qBAAa,4BAA6B,SAAQ,iCAMhD;CAAG;;;IAUH,+CAA+C;;;AARjD;;;GAGG;AACH,qBAAa,6BAA8B,SAAQ,kCAMjD;CAAG;AAEL,4DAA4D;AAC5D,eAAO,MAAM,cAAc,sNAOzB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAC"}
|
package/dist/engine/error.js
CHANGED
|
@@ -1,47 +1,67 @@
|
|
|
1
1
|
import { AttemptId } from "@usine/core/attempt";
|
|
2
2
|
import { RunId } from "@usine/core/run";
|
|
3
|
+
import { WorkerName } from "@usine/core/worker";
|
|
3
4
|
import { Schema } from "effect";
|
|
4
|
-
/**
|
|
5
|
+
/** An error for a Run ID that doesn't exist. */
|
|
5
6
|
export class RunNotFoundError extends Schema.TaggedError("@usine/engine/RunNotFoundError")("RunNotFoundError", {
|
|
6
7
|
runId: RunId,
|
|
7
8
|
}) {
|
|
8
9
|
}
|
|
9
|
-
/**
|
|
10
|
+
/** An error for an operator action that the Run's state doesn't allow. */
|
|
10
11
|
export class RunOperationRejectedError extends Schema.TaggedError("@usine/engine/RunOperationRejectedError")("RunOperationRejectedError", {
|
|
11
12
|
runId: RunId,
|
|
12
|
-
operation: Schema.Literals(["approve", "retry"]),
|
|
13
|
+
operation: Schema.Literals(["approve", "retry", "resolveFailure", "runAgain", "cancel"]),
|
|
13
14
|
state: Schema.String,
|
|
14
15
|
}) {
|
|
15
16
|
}
|
|
16
|
-
/** An
|
|
17
|
+
/** An error for a retry or run again while `openRunId`, another Run of the same Loop and Item, is open. */
|
|
18
|
+
export class RunRetryBlockedError extends Schema.TaggedError("@usine/engine/RunRetryBlockedError")("RunRetryBlockedError", {
|
|
19
|
+
runId: RunId,
|
|
20
|
+
openRunId: RunId,
|
|
21
|
+
message: Schema.NonEmptyString,
|
|
22
|
+
}) {
|
|
23
|
+
}
|
|
24
|
+
/** An error reading or writing the instance's durable records. */
|
|
17
25
|
export class EnginePersistenceError extends Schema.TaggedError("@usine/engine/EnginePersistenceError")("EnginePersistenceError", {
|
|
18
26
|
operation: Schema.String,
|
|
19
27
|
cause: Schema.Defect(),
|
|
20
28
|
}) {
|
|
21
29
|
}
|
|
22
|
-
/**
|
|
30
|
+
/** An error for a canceled Run whose active Attempt couldn't be interrupted. */
|
|
23
31
|
export class AttemptCancellationError extends Schema.TaggedError("@usine/engine/AttemptCancellationError")("AttemptCancellationError", {
|
|
24
32
|
attemptId: AttemptId,
|
|
25
33
|
cause: Schema.Defect(),
|
|
26
34
|
}) {
|
|
27
35
|
}
|
|
28
|
-
/**
|
|
36
|
+
/** The errors that the Run store can fail with. */
|
|
29
37
|
export const RunStoreError = Schema.Union([
|
|
30
38
|
RunNotFoundError,
|
|
31
39
|
RunOperationRejectedError,
|
|
40
|
+
RunRetryBlockedError,
|
|
32
41
|
EnginePersistenceError,
|
|
33
42
|
]);
|
|
34
|
-
/**
|
|
43
|
+
/** An error for an Attempt that is no longer live or whose channel rejected operator input. */
|
|
35
44
|
export class RunInterventionRejectedError extends Schema.TaggedError("@usine/engine/RunInterventionRejectedError")("RunInterventionRejectedError", {
|
|
36
45
|
runId: RunId,
|
|
37
46
|
attemptId: AttemptId,
|
|
38
47
|
message: Schema.NonEmptyString,
|
|
39
48
|
}) {
|
|
40
49
|
}
|
|
41
|
-
/**
|
|
50
|
+
/**
|
|
51
|
+
* An error for discarding the leftovers of a Worker that is still in `usine.yaml` or still has
|
|
52
|
+
* open Attempts. Nothing is discarded.
|
|
53
|
+
*/
|
|
54
|
+
export class LeftoversDiscardRejectedError extends Schema.TaggedError("@usine/engine/LeftoversDiscardRejectedError")("LeftoversDiscardRejectedError", {
|
|
55
|
+
worker: WorkerName,
|
|
56
|
+
/** The number of open Attempts on `worker`. */
|
|
57
|
+
running: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)),
|
|
58
|
+
}) {
|
|
59
|
+
}
|
|
60
|
+
/** The Run store errors plus `AttemptCancellationError`. */
|
|
42
61
|
export const RunEngineError = Schema.Union([
|
|
43
62
|
RunNotFoundError,
|
|
44
63
|
RunOperationRejectedError,
|
|
64
|
+
RunRetryBlockedError,
|
|
45
65
|
EnginePersistenceError,
|
|
46
66
|
AttemptCancellationError,
|
|
47
67
|
RunInterventionRejectedError,
|
package/dist/engine/error.js.map
CHANGED
|
@@ -1 +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,
|
|
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,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,gDAAgD;AAChD,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC,WAAW,CACtD,gCAAgC,CACjC,CAAC,kBAAkB,EAAE;IACpB,KAAK,EAAE,KAAK;CACb,CAAC;CAAG;AAEL,0EAA0E;AAC1E,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,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IACxF,KAAK,EAAE,MAAM,CAAC,MAAM;CACrB,CAAC;CAAG;AAEL,2GAA2G;AAC3G,MAAM,OAAO,oBAAqB,SAAQ,MAAM,CAAC,WAAW,CAC1D,oCAAoC,CACrC,CAAC,sBAAsB,EAAE;IACxB,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,MAAM,CAAC,cAAc;CAC/B,CAAC;CAAG;AAEL,kEAAkE;AAClE,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,gFAAgF;AAChF,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,mDAAmD;AACnD,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;IACxC,gBAAgB;IAChB,yBAAyB;IACzB,oBAAoB;IACpB,sBAAsB;CACvB,CAAC,CAAC;AAIH,+FAA+F;AAC/F,MAAM,OAAO,4BAA6B,SAAQ,MAAM,CAAC,WAAW,CAClE,4CAA4C,CAC7C,CAAC,8BAA8B,EAAE;IAChC,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,MAAM,CAAC,cAAc;CAC/B,CAAC;CAAG;AAEL;;;GAGG;AACH,MAAM,OAAO,6BAA8B,SAAQ,MAAM,CAAC,WAAW,CACnE,6CAA6C,CAC9C,CAAC,+BAA+B,EAAE;IACjC,MAAM,EAAE,UAAU;IAClB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;CAC5D,CAAC;CAAG;AAEL,4DAA4D;AAC5D,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC;IACzC,gBAAgB;IAChB,yBAAyB;IACzB,oBAAoB;IACpB,sBAAsB;IACtB,wBAAwB;IACxB,4BAA4B;CAC7B,CAAC,CAAC"}
|