@voltro/workflow 0.34.0 → 0.35.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/CHANGELOG.md +167 -0
- package/dist/{cluster-CyIyBO39.js → cluster-CVyPUB9X.js} +43 -34
- package/dist/cluster.js +1 -1
- package/dist/clusterTestSuite.js +4 -4
- package/dist/index.d.ts +192 -1
- package/dist/index.js +3 -3
- package/dist/{primitives-oLKOTbvJ.js → primitives-CyQZeT1t.js} +142 -98
- package/dist/primitives.d.ts +94 -0
- package/dist/primitives.js +2 -2
- package/dist/{src-BXObaqb-.js → src-DPkbBZDD.js} +535 -452
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -101,6 +101,15 @@ export declare interface AdmissionDrainDeps {
|
|
|
101
101
|
readonly executionId: string;
|
|
102
102
|
readonly startedAt: number;
|
|
103
103
|
}>>;
|
|
104
|
+
/**
|
|
105
|
+
* EVERY registered workflow name — not just the controlled ones in
|
|
106
|
+
* `controls`. A `mode: 'delayed'` row is legitimate for a workflow with NO
|
|
107
|
+
* flow control, so "missing from `controls`" cannot mean "orphan" for it the
|
|
108
|
+
* way it does for a debounce row. Absent → a delayed row is assumed
|
|
109
|
+
* registered, and an unknown name surfaces as a per-row failure (attempts +
|
|
110
|
+
* lastError climb on the row) instead of a silent abandon.
|
|
111
|
+
*/
|
|
112
|
+
readonly registeredWorkflows?: ReadonlySet<string>;
|
|
104
113
|
readonly log?: DrainLogger;
|
|
105
114
|
readonly now?: () => number;
|
|
106
115
|
}
|
|
@@ -831,6 +840,17 @@ export declare const DEFAULT_STALL_EVENT_LOOKBACK = 20;
|
|
|
831
840
|
* tick instead of re-reading the same page. */
|
|
832
841
|
export declare const DEFAULT_STALL_RUN_PAGE = 200;
|
|
833
842
|
|
|
843
|
+
/**
|
|
844
|
+
* Default threshold: a wait DECLARED longer than this suggests the suspending
|
|
845
|
+
* variant. Five minutes — well above any interactive approval, well below the
|
|
846
|
+
* hours-long HITL waits the suspending variant is for; the poll's own backoff
|
|
847
|
+
* (≤ 5 s) makes the polling cost of a shorter wait negligible.
|
|
848
|
+
*/
|
|
849
|
+
export declare const DEFAULT_SUSPEND_HINT_MS: number;
|
|
850
|
+
|
|
851
|
+
/** 24 h — see {@link WorkflowScheduleDeclaration.maxRuntime}. */
|
|
852
|
+
export declare const DEFAULT_WORKFLOW_SCHEDULE_MAX_RUNTIME_MS: number;
|
|
853
|
+
|
|
834
854
|
export declare type DeferMode = DeferringControl | 'paused';
|
|
835
855
|
|
|
836
856
|
/**
|
|
@@ -1005,6 +1025,9 @@ export declare const getCurrentWorkflowRunId: () => Effect.Effect<string | undef
|
|
|
1005
1025
|
* the path it took before this feature existed. */
|
|
1006
1026
|
export declare const getWorkflowFlowControl: (value: unknown) => ResolvedFlowControl | undefined;
|
|
1007
1027
|
|
|
1028
|
+
/** The resolved schedule attached to a workflow definition, or undefined. */
|
|
1029
|
+
export declare const getWorkflowSchedule: (value: unknown) => ResolvedWorkflowSchedule | undefined;
|
|
1030
|
+
|
|
1008
1031
|
export declare const getWorkflowVersionMetadata: (value: unknown) => WorkflowVersionMetadata;
|
|
1009
1032
|
|
|
1010
1033
|
/** `true` when this workflow declares at least one `cancelOn` entry — i.e. when
|
|
@@ -1145,6 +1168,13 @@ export declare const makeWorkflowRunRecorder: (options: WorkflowRunRecorderOptio
|
|
|
1145
1168
|
|
|
1146
1169
|
export declare const makeWorkflowUpdateId: () => string;
|
|
1147
1170
|
|
|
1171
|
+
/**
|
|
1172
|
+
* Emit the steering hint when a polling `awaitSignal` declares a wait longer
|
|
1173
|
+
* than the threshold. Returns `true` when it hinted — the testable fact; the
|
|
1174
|
+
* once-per-name set is module state on purpose (one process, one hint).
|
|
1175
|
+
*/
|
|
1176
|
+
export declare const maybeHintSuspendingSignal: (input: SuspendHintInput) => boolean;
|
|
1177
|
+
|
|
1148
1178
|
/** The newest event instant in a batch, or `undefined` for an empty one.
|
|
1149
1179
|
* The watermark advances to THIS, never to `now`: advancing to wall-clock
|
|
1150
1180
|
* would skip anything written with an older `occurredAt` by a transaction
|
|
@@ -1207,6 +1237,37 @@ export declare const normaliseWorkflowPatches: (value: unknown) => ReadonlyArray
|
|
|
1207
1237
|
|
|
1208
1238
|
export declare const noteIntentAttempt: (store: AdmissionDataStore, intent: PendingIntent, error: string, now: number) => Promise<void>;
|
|
1209
1239
|
|
|
1240
|
+
/**
|
|
1241
|
+
* Park a `start(name, payload, { at })` as a DURABLE pending row.
|
|
1242
|
+
*
|
|
1243
|
+
* A delayed start that only exists in a `setTimeout` dies with the process, so
|
|
1244
|
+
* it is a row in `_voltro_workflow_pending` (`mode: 'delayed'`) that the
|
|
1245
|
+
* coordinated drainer fires when `dueAt` arrives. Each call is its OWN row —
|
|
1246
|
+
* two delayed starts never collapse, because unlike debounce nothing about
|
|
1247
|
+
* `{ at }` says the second supersedes the first.
|
|
1248
|
+
*
|
|
1249
|
+
* What happens at `dueAt` is an ARRIVAL, not a bypass: the drainer hands the
|
|
1250
|
+
* row to the same `admitStart` a live `ctx.workflows.start` goes through, so a
|
|
1251
|
+
* workflow's declared debounce/singleton/rateLimit judge the start as of the
|
|
1252
|
+
* moment it comes due. `{ at }` delays the arrival; it never outranks a control.
|
|
1253
|
+
*/
|
|
1254
|
+
export declare const parkDelayedStart: (input: ParkDelayedStartInput) => Promise<{
|
|
1255
|
+
readonly intentId: string;
|
|
1256
|
+
readonly dueAt: number;
|
|
1257
|
+
}>;
|
|
1258
|
+
|
|
1259
|
+
export declare interface ParkDelayedStartInput {
|
|
1260
|
+
readonly store: AdmissionDataStore;
|
|
1261
|
+
readonly workflowName: string;
|
|
1262
|
+
readonly payload: unknown;
|
|
1263
|
+
readonly callerContext: unknown;
|
|
1264
|
+
readonly tenantId: string | null;
|
|
1265
|
+
/** Epoch ms the start becomes an ARRIVAL. Must be in the future — the facade
|
|
1266
|
+
* starts a past-`at` immediately and never calls in here. */
|
|
1267
|
+
readonly at: number;
|
|
1268
|
+
readonly now: number;
|
|
1269
|
+
}
|
|
1270
|
+
|
|
1210
1271
|
/**
|
|
1211
1272
|
* Is a named change marker in effect for the run currently executing?
|
|
1212
1273
|
*
|
|
@@ -1288,7 +1349,7 @@ export declare interface PendingIntent {
|
|
|
1288
1349
|
readonly tenantId: string | null;
|
|
1289
1350
|
readonly workflowName: string;
|
|
1290
1351
|
readonly controlKey: string;
|
|
1291
|
-
readonly mode: 'debounce' | 'batch' | 'throttle' | 'concurrency' | 'paused';
|
|
1352
|
+
readonly mode: 'debounce' | 'batch' | 'throttle' | 'concurrency' | 'paused' | 'delayed';
|
|
1292
1353
|
readonly payload: unknown;
|
|
1293
1354
|
readonly callerContext: unknown;
|
|
1294
1355
|
readonly priority: number;
|
|
@@ -1578,6 +1639,9 @@ export declare interface ReplayShapeTracker {
|
|
|
1578
1639
|
*/
|
|
1579
1640
|
export declare const reportNondeterminism: (findings: ReadonlyArray<NondeterminismFinding>) => Effect.Effect<void>;
|
|
1580
1641
|
|
|
1642
|
+
/** Test seam: forget which (workflow, signal) pairs have been hinted. */
|
|
1643
|
+
export declare const resetSuspendHintsForTest: () => void;
|
|
1644
|
+
|
|
1581
1645
|
/** Resolve every declared key against one payload. Pure; throws only
|
|
1582
1646
|
* {@link FlowControlKeyError}. */
|
|
1583
1647
|
export declare const resolveAdmissionKeys: (control: ResolvedFlowControl, payload: unknown) => AdmissionKeys;
|
|
@@ -1650,6 +1714,18 @@ export declare interface ResolvedFlowControl {
|
|
|
1650
1714
|
readonly cancelOn?: ReadonlyArray<ResolvedCancelOn>;
|
|
1651
1715
|
}
|
|
1652
1716
|
|
|
1717
|
+
/** The declaration with defaults filled in — what the CLI lowering reads. */
|
|
1718
|
+
export declare interface ResolvedWorkflowSchedule {
|
|
1719
|
+
readonly cron: string;
|
|
1720
|
+
readonly timezone: string;
|
|
1721
|
+
readonly payload?: unknown | ((fire: {
|
|
1722
|
+
readonly scheduledAt: Date;
|
|
1723
|
+
}) => unknown | Promise<unknown>);
|
|
1724
|
+
readonly onOverlap: WorkflowScheduleOverlap;
|
|
1725
|
+
readonly backfill: 'skip' | 'latest' | 'all';
|
|
1726
|
+
readonly maxRuntimeMs: number;
|
|
1727
|
+
}
|
|
1728
|
+
|
|
1653
1729
|
/**
|
|
1654
1730
|
* Read the run-guard knobs from the environment, for the boot paths to spread
|
|
1655
1731
|
* into {@link wrapWorkflowExecuteWithRunRecording}. Mirrors
|
|
@@ -1664,6 +1740,9 @@ export declare const resolveRunGuardTuning: () => {
|
|
|
1664
1740
|
replayShapeLimit?: number;
|
|
1665
1741
|
};
|
|
1666
1742
|
|
|
1743
|
+
/** Env (operator, no rebuild) → config (project) → default. */
|
|
1744
|
+
export declare const resolveSuspendHintMs: () => number;
|
|
1745
|
+
|
|
1667
1746
|
export declare const resolveWorkflowMessageRun: (store: WorkflowMessageStore, target: WorkflowMessageTarget) => Promise<WorkflowResolvedRun>;
|
|
1668
1747
|
|
|
1669
1748
|
export declare const resumeWorkflow: (store: AdmissionDataStore, workflowName: string) => Promise<boolean>;
|
|
@@ -1689,6 +1768,15 @@ export declare const sendWorkflowUpdate: (input: {
|
|
|
1689
1768
|
|
|
1690
1769
|
export declare const serialiseWorkflowRowForWire: (row: Record<string, unknown>) => Record<string, unknown>;
|
|
1691
1770
|
|
|
1771
|
+
/**
|
|
1772
|
+
* Set the threshold from `app.config.ts` (`workflows.suspendSignalHintMs`).
|
|
1773
|
+
* Called by the framework boot (both paths, through `wireFlowControl`); the
|
|
1774
|
+
* env override below still wins, per the standing tunables rule.
|
|
1775
|
+
* Non-positive/non-finite values are ignored; `0` cannot silence the hint —
|
|
1776
|
+
* pass a very large threshold to effectively disable it.
|
|
1777
|
+
*/
|
|
1778
|
+
export declare const setSuspendSignalHintMs: (ms: number | undefined) => void;
|
|
1779
|
+
|
|
1692
1780
|
/**
|
|
1693
1781
|
* Durable sleep — wake time journaled in the cluster. Wrapper around
|
|
1694
1782
|
* `DurableClock.sleep` that emits `timer-set` / `timer-fired` events
|
|
@@ -1963,6 +2051,16 @@ export declare interface SuspendForBudgetOptions {
|
|
|
1963
2051
|
readonly hasHeadroom: Effect.Effect<boolean>;
|
|
1964
2052
|
}
|
|
1965
2053
|
|
|
2054
|
+
export declare interface SuspendHintInput {
|
|
2055
|
+
/** Undefined outside an engine context — the hint then keys on the signal
|
|
2056
|
+
* name alone, which still fires once rather than never. */
|
|
2057
|
+
readonly workflowName: string | undefined;
|
|
2058
|
+
readonly signalName: string;
|
|
2059
|
+
/** The wait's DECLARED timeout, ms. */
|
|
2060
|
+
readonly timeoutMs: number;
|
|
2061
|
+
readonly warn?: (message: string) => void;
|
|
2062
|
+
}
|
|
2063
|
+
|
|
1966
2064
|
/**
|
|
1967
2065
|
* The stable `DurableDeferred` name for a suspending signal wait. It is a pure
|
|
1968
2066
|
* function of the workflow name + the signal name, so the awaiting body and an
|
|
@@ -2010,6 +2108,14 @@ export declare interface ValidateFlowControlInput {
|
|
|
2010
2108
|
readonly control: (WorkflowFlowControl<never> & WorkflowCancelOnDeclared) | undefined;
|
|
2011
2109
|
}
|
|
2012
2110
|
|
|
2111
|
+
/**
|
|
2112
|
+
* Validate at DEFINITION time — module load, i.e. boot — with a message naming
|
|
2113
|
+
* the workflow and the field. Same posture as `validateFlowControl` and
|
|
2114
|
+
* `defineSchedule`: a cron typo that surfaces as "never fired" three days in
|
|
2115
|
+
* is the failure class this repo keeps paying for.
|
|
2116
|
+
*/
|
|
2117
|
+
export declare const validateWorkflowSchedule: (workflowName: string, declaration: WorkflowScheduleDeclaration<never> | undefined) => ResolvedWorkflowSchedule | undefined;
|
|
2118
|
+
|
|
2013
2119
|
/**
|
|
2014
2120
|
* One parked run, waiting on budget headroom.
|
|
2015
2121
|
*
|
|
@@ -2519,6 +2625,12 @@ declare type WorkflowFn = <const Name extends string, Payload extends WorkflowPa
|
|
|
2519
2625
|
* type comes from its OWN `schema` — see {@link WorkflowCancelOnList} for
|
|
2520
2626
|
* why that needs a tuple type parameter rather than a plain array. */
|
|
2521
2627
|
readonly cancelOn?: WorkflowCancelOnList<Cancels, DecodedPayload<Payload>>;
|
|
2628
|
+
/** Run this workflow on a cron — the workflow-side spelling of a
|
|
2629
|
+
* `defineSchedule({ workflow })` target, with Temporal's overlap
|
|
2630
|
+
* vocabulary (`skip` / `buffer` / `cancelOther`). Lowered by the CLI into
|
|
2631
|
+
* a real schedule named `workflow:<name>`; see
|
|
2632
|
+
* {@link WorkflowScheduleDeclaration}. */
|
|
2633
|
+
readonly schedule?: WorkflowScheduleDeclaration<DecodedPayload<Payload>>;
|
|
2522
2634
|
} & Omit<WorkflowBaseOptions, 'name' | 'payload' | 'idempotencyKey' | 'success' | 'error'> & WorkflowVersionOptions & {
|
|
2523
2635
|
readonly messages?: Messages;
|
|
2524
2636
|
} & WorkflowFlowControl<DecodedPayload<Payload>>) => workflowModule.Workflow<Name, PayloadSchemaOf<Payload>, Success, Error> & WorkflowMessagesCarrier<NormaliseWorkflowMessages<Messages>>;
|
|
@@ -2769,6 +2881,23 @@ export declare interface WorkflowRunRecorderOptions {
|
|
|
2769
2881
|
* rather than as garbage — see `inspectWorkflow`.
|
|
2770
2882
|
*/
|
|
2771
2883
|
readonly encryptStepPayload?: (value: unknown) => unknown;
|
|
2884
|
+
/**
|
|
2885
|
+
* How much this recorder writes per STEP — `'full'` (default) or `'coarse'`.
|
|
2886
|
+
*
|
|
2887
|
+
* `'coarse'` makes `startStep` answer "not recording this step" (the
|
|
2888
|
+
* contract callers already handle) and `endStep*` no-ops, removing the two
|
|
2889
|
+
* fire-and-forget store writes every step otherwise costs. Run rows and
|
|
2890
|
+
* `recordEvent` (signals, timers, cancels, stall reports) are DELIBERATELY
|
|
2891
|
+
* unaffected: they are per-run, not per-step, and they are what the
|
|
2892
|
+
* dead-letter view and the cancel/staleness sweeps read. The engine's own
|
|
2893
|
+
* durable journal is not touched either way — this is the introspection
|
|
2894
|
+
* copy, never replay state.
|
|
2895
|
+
*
|
|
2896
|
+
* App-facing spelling: `workflows.recording` in `app.config.ts`, env
|
|
2897
|
+
* override `VOLTRO_WORKFLOW_RECORDING` (resolved by the CLI, threaded to
|
|
2898
|
+
* BOTH boot paths through one resolver).
|
|
2899
|
+
*/
|
|
2900
|
+
readonly recording?: 'full' | 'coarse';
|
|
2772
2901
|
}
|
|
2773
2902
|
|
|
2774
2903
|
/** Per-step lifecycle hooks. Implementations should not throw —
|
|
@@ -2841,6 +2970,68 @@ export declare interface WorkflowRunRecorderService {
|
|
|
2841
2970
|
}>;
|
|
2842
2971
|
}
|
|
2843
2972
|
|
|
2973
|
+
export declare interface WorkflowScheduleDeclaration<Payload> {
|
|
2974
|
+
/** Standard cron expression — 5-field or 6-field (leading seconds). */
|
|
2975
|
+
readonly cron: string;
|
|
2976
|
+
/** IANA timezone the expression is interpreted in. REQUIRED, like
|
|
2977
|
+
* `defineSchedule` — server-local time in a container is a bug factory. */
|
|
2978
|
+
readonly timezone: string;
|
|
2979
|
+
/**
|
|
2980
|
+
* The payload each firing starts the workflow with. A value, or a function
|
|
2981
|
+
* of the firing (`({ scheduledAt }) => …`) for payloads that carry the slot
|
|
2982
|
+
* — a backfilled firing then computes against ITS instant, not "now".
|
|
2983
|
+
* Omitted ⇒ `{}`, which only typechecks for workflows whose payload has no
|
|
2984
|
+
* required fields; a mismatch fails the start with `WorkflowPayloadError`
|
|
2985
|
+
* naming the missing fields, same as any other start.
|
|
2986
|
+
*/
|
|
2987
|
+
readonly payload?: Payload | ((fire: {
|
|
2988
|
+
readonly scheduledAt: Date;
|
|
2989
|
+
}) => Payload | Promise<Payload>);
|
|
2990
|
+
/** Default `'skip'` — Temporal's default too, and the only answer that is
|
|
2991
|
+
* safe for every job shape. */
|
|
2992
|
+
readonly onOverlap?: WorkflowScheduleOverlap;
|
|
2993
|
+
/** Boot catch-up policy for firings missed during downtime — the scheduler's
|
|
2994
|
+
* own vocabulary, unchanged. Default `'skip'`. For a RANGE older than boot
|
|
2995
|
+
* backfill reaches, use `voltro schedule backfill`. */
|
|
2996
|
+
readonly backfill?: 'skip' | 'latest' | 'all';
|
|
2997
|
+
/**
|
|
2998
|
+
* Watchdog on ONE firing — which, for a workflow schedule, INCLUDES the
|
|
2999
|
+
* awaited run (that await is what makes `onOverlap` bind on the run's
|
|
3000
|
+
* duration). Default 24 hours rather than `defineSchedule`'s 30 minutes,
|
|
3001
|
+
* because a durable run legitimately outlives a handler; set it above your
|
|
3002
|
+
* slowest expected run. Past it the FIRING records `failed`/timeout and
|
|
3003
|
+
* releases the overlap guard — the workflow run itself is NOT cancelled
|
|
3004
|
+
* (declare flow-control `timeouts.finish` to bound the run).
|
|
3005
|
+
*/
|
|
3006
|
+
readonly maxRuntime?: FlowDuration;
|
|
3007
|
+
}
|
|
3008
|
+
|
|
3009
|
+
/**
|
|
3010
|
+
* What happens when a firing arrives while the RUN from the previous firing is
|
|
3011
|
+
* still going — Temporal Schedules' overlap vocabulary, applied to the
|
|
3012
|
+
* workflow run (not merely to the handler invocation):
|
|
3013
|
+
*
|
|
3014
|
+
* `'skip'` — the new firing stands down; recorded as `skipped`.
|
|
3015
|
+
* `'buffer'` — the new firing waits and runs after the previous one
|
|
3016
|
+
* finishes; firings serialize, none is lost.
|
|
3017
|
+
* `'cancelOther'` — the new firing CANCELS the still-running previous run
|
|
3018
|
+
* and starts fresh — for "recompute the latest state"
|
|
3019
|
+
* jobs where the old run's partial work is worthless.
|
|
3020
|
+
*
|
|
3021
|
+
* The first two lower into the scheduler's own `onOverlap: 'skip' | 'queue'`;
|
|
3022
|
+
* what makes them bind on the RUN's duration is that the synthesised handler
|
|
3023
|
+
* AWAITS the workflow run to completion, so the schedule-run row is `running`
|
|
3024
|
+
* for exactly as long as the workflow is.
|
|
3025
|
+
*/
|
|
3026
|
+
export declare type WorkflowScheduleOverlap = 'skip' | 'buffer' | 'cancelOther';
|
|
3027
|
+
|
|
3028
|
+
/** Attached via `defineProperty` like the flow-control carrier — the value's
|
|
3029
|
+
* TYPE does not know about it, and the web bundle never reads it. A STRING
|
|
3030
|
+
* property rather than a symbol for the same reason as
|
|
3031
|
+
* `WorkflowFlowControlProperty`: the CLI's discovery reads it off a module
|
|
3032
|
+
* that crossed a bundler boundary, and symbols do not survive every one. */
|
|
3033
|
+
export declare const WorkflowScheduleProperty = "__voltroWorkflowSchedule";
|
|
3034
|
+
|
|
2844
3035
|
/**
|
|
2845
3036
|
* At most one run per key. The newcomer either stands down or evicts.
|
|
2846
3037
|
*
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { A as e, B as t, C as n, D as r, E as i,
|
|
2
|
-
import { $ as
|
|
3
|
-
export {
|
|
1
|
+
import { A as e, B as t, C as n, D as r, E as i, G as a, H as o, I as s, L as c, M as l, N as u, O as d, P as f, R as p, S as m, T as h, U as g, V as _, W as v, _ as y, a as b, b as x, c as S, d as C, f as w, g as T, h as E, i as D, j as O, k, l as A, m as j, n as M, o as N, p as P, r as F, s as I, t as L, u as R, v as z, w as B, x as V, y as H, z as U } from "./primitives-CyQZeT1t.js";
|
|
2
|
+
import { $ as W, A as G, At as K, B as q, C as J, Ct as Y, D as X, Dt as Z, E as Q, Et as $, F as ee, Ft as te, G as ne, H as re, I as ie, It as ae, J as oe, K as se, L as ce, Lt as le, M as ue, Mt as de, N as fe, Nt as pe, O as me, Ot as he, P as ge, Pt as _e, Q as ve, R as ye, Rt as be, S as xe, St as Se, T as Ce, Tt as we, U as Te, V as Ee, W as De, X as Oe, Y as ke, Z as Ae, _ as je, _t as Me, a as Ne, at as Pe, b as Fe, bt as Ie, c as Le, ct as Re, d as ze, dt as Be, et as Ve, f as He, ft as Ue, g as We, gt as Ge, h as Ke, ht as qe, i as Je, it as Ye, j as Xe, jt as Ze, k as Qe, kt as $e, l as et, lt as tt, m as nt, mt as rt, n as it, nt as at, o as ot, ot as st, p as ct, pt as lt, q as ut, r as dt, rt as ft, s as pt, st as mt, t as ht, tt as gt, u as _t, ut as vt, v as yt, vt as bt, w as xt, wt as St, x as Ct, xt as wt, y as Tt, yt as Et, z as Dt, zt as Ot } from "./src-DPkbBZDD.js";
|
|
3
|
+
export { ft as ADMISSIONS_TABLE, ct as BUDGET_HOLDS_TABLE, nt as BudgetHoldExpired, De as CANCEL_ON_WATERMARK, l as CurrentWorkflowExecutionId, u as CurrentWorkflowPatches, B as CurrentWorkflowReplayShape, f as CurrentWorkflowRunId, Ke as DEFAULT_BUDGET_HOLD_TIMEOUT_MS, ne as DEFAULT_COLD_LOOKBACK_MS, ye as DEFAULT_DRAIN_BATCH, se as DEFAULT_EVENT_BATCH, Ye as DEFAULT_LEASE_MS, Je as DEFAULT_MAX_RUN_RECLAIMS, Ne as DEFAULT_REPLAY_SHAPE_LIMIT, q as DEFAULT_STALL_AFTER_MS, Ee as DEFAULT_STALL_EVENT_LOOKBACK, re as DEFAULT_STALL_RUN_PAGE, fe as DEFAULT_SUSPEND_HINT_MS, d as DEFAULT_WORKFLOW_SCHEDULE_MAX_RUNTIME_MS, t as DEFERRING_CONTROLS, ut as EVENTS_TABLE, St as FlowControlKeyError, Pe as PAUSES_TABLE, st as PENDING_TABLE, oe as WATERMARKS_TABLE, L as WorkflowFlowControlProperty, M as WorkflowMessagesProperty, s as WorkflowRunRecorder, k as WorkflowScheduleProperty, c as WorkflowStepInterceptorTag, F as WorkflowVersionTypeId, D as WorkflowWorkerLayerTypeId, We as _voltroBudgetHoldsTable, de as _voltroWorkflowAdmissionsTable, pe as _voltroWorkflowPausesTable, _e as _voltroWorkflowPendingTable, ae as _voltroWorkflowRunEventsTable, le as _voltroWorkflowRunStepsTable, be as _voltroWorkflowRunsTable, te as _voltroWorkflowStartContextsTable, Ve as _voltroWorkflowWatermarksTable, gt as admitStart, mt as allIntents, _ as assertConsistentPools, Xe as awaitEvent, ue as awaitSignal, xt as awaitSignalSuspending, He as awaitUpdate, je as budgetHoldGeneration, yt as budgetHoldKey, Tt as budgetHoldSignalName, dt as closeWorkflowChildrenForParent, we as comparePendingOrder, Ce as completeSuspendingSignal, $ as decideAdmission, o as deferringControlsOf, Re as deleteIntent, tt as discardIntent, Dt as drainTick, vt as dueIntents, b as durableClock, N as durableQueue, I as durableQueueModule, S as durableRateLimiterModule, Be as evaluateAdmission, p as getCurrentWorkflowExecutionId, U as getCurrentWorkflowRunId, A as getWorkflowFlowControl, e as getWorkflowSchedule, R as getWorkflowVersionMetadata, g as hasCancelOn, v as hasFlowControl, Fe as heldBudgets, Ot as inMemoryWorkflowEngineLayer, it as inspectWorkflow, Z as isFinishExpired, he as isStartExpired, C as isWorkflowWorkerLayer, at as linkExecution, ht as makeInMemoryRecorder, h as makeReplayShapeTracker, ot as makeWorkflowRunRecorder, X as makeWorkflowUpdateId, ge as maybeHintSuspendingSignal, ve as newestEventAt, $e as nextSlotAt, i as nondeterminismEventPayload, pt as normaliseWorkflowPatches, Ue as noteIntentAttempt, lt as parkDelayedStart, w as patch, rt as pauseWorkflow, Ct as pendingBudgetHolds, qe as pendingSlotId, Ge as pendingWindow, Me as persistDefer, W as planCancellations, K as pooledConcurrencyKey, P as processQueue, bt as pruneAdmissions, j as queueWorker, E as rateLimit, Et as readAdmissionState, Ie as readPausedWorkflows, ke as readWatermark, wt as recordAdmission, xe as releaseBudgetHolds, Se as releaseLease, r as reportNondeterminism, ee as resetSuspendHintsForTest, Ze as resolveAdmissionKeys, Le as resolveRunGuardTuning, ie as resolveSuspendHintMs, me as resolveWorkflowMessageRun, Y as resumeWorkflow, Qe as sendWorkflowSignal, G as sendWorkflowUpdate, et as serialiseWorkflowRowForWire, ce as setSuspendSignalHintMs, T as sleep, y as sleepUntil, z as step, H as stepIdempotencyKey, x as stepModule, J as suspendForBudget, Q as suspendingSignalDeferredName, Oe as sweepCancelOn, Te as sweepStalledRuns, _t as truncateWorkflowValue, a as validateFlowControl, O as validateWorkflowSchedule, V as withCompensation, m as workflow, n as workflowModule, ze as wrapWorkflowExecuteWithRunRecording, Ae as writeWatermark };
|