rivetkit 2.1.3 → 2.1.5
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/dist/browser/client.d.ts +11 -0
- package/dist/browser/client.js +1 -1
- package/dist/browser/client.js.map +1 -1
- package/dist/browser/inspector/client.js +1 -1
- package/dist/browser/inspector/client.js.map +1 -1
- package/dist/inspector.tar.gz +0 -0
- package/dist/tsup/{chunk-OAOF23ZY.js → chunk-2OK7S6QF.js} +2 -2
- package/dist/tsup/{chunk-5AZ6UPEF.cjs → chunk-7WF2QSIC.cjs} +24 -20
- package/dist/tsup/chunk-7WF2QSIC.cjs.map +1 -0
- package/dist/tsup/{chunk-IJAGZS57.cjs → chunk-D2SPAJVT.cjs} +30 -30
- package/dist/tsup/{chunk-IJAGZS57.cjs.map → chunk-D2SPAJVT.cjs.map} +1 -1
- package/dist/tsup/{chunk-YET3IZD6.js → chunk-EIATSBYZ.js} +2 -2
- package/dist/tsup/{chunk-YET3IZD6.js.map → chunk-EIATSBYZ.js.map} +1 -1
- package/dist/tsup/{chunk-DADGS67O.cjs → chunk-GQGRQDRL.cjs} +4 -4
- package/dist/tsup/{chunk-DADGS67O.cjs.map → chunk-GQGRQDRL.cjs.map} +1 -1
- package/dist/tsup/{chunk-ZSJ2OTY4.cjs → chunk-HYPIHCDT.cjs} +2 -2
- package/dist/tsup/{chunk-ZSJ2OTY4.cjs.map → chunk-HYPIHCDT.cjs.map} +1 -1
- package/dist/tsup/{chunk-HPAX7L72.cjs → chunk-IIJNPVPQ.cjs} +152 -152
- package/dist/tsup/{chunk-HPAX7L72.cjs.map → chunk-IIJNPVPQ.cjs.map} +1 -1
- package/dist/tsup/{chunk-U6VWVHVW.cjs → chunk-JC6BEPE7.cjs} +3 -3
- package/dist/tsup/{chunk-U6VWVHVW.cjs.map → chunk-JC6BEPE7.cjs.map} +1 -1
- package/dist/tsup/{chunk-N7ASEZ2Y.js → chunk-JPXO2H55.js} +5 -5
- package/dist/tsup/{chunk-QUDLEWGD.js → chunk-MIX2KB6U.js} +212 -47
- package/dist/tsup/chunk-MIX2KB6U.js.map +1 -0
- package/dist/tsup/{chunk-BMNB6YRQ.cjs → chunk-OAXJWGMU.cjs} +212 -305
- package/dist/tsup/chunk-OAXJWGMU.cjs.map +1 -0
- package/dist/tsup/{chunk-KSZZRTOD.cjs → chunk-PB5AEMKQ.cjs} +3 -5
- package/dist/tsup/chunk-PB5AEMKQ.cjs.map +1 -0
- package/dist/tsup/{chunk-6T3WSP5M.js → chunk-R5OQUSLN.js} +4 -4
- package/dist/tsup/{chunk-POUBQA6Z.js → chunk-S662Y6ZU.js} +2 -2
- package/dist/tsup/{chunk-GNGRMP5E.js → chunk-SRIM3GHD.js} +18 -11
- package/dist/tsup/chunk-SRIM3GHD.js.map +1 -0
- package/dist/tsup/{chunk-MAXIXG56.js → chunk-TADUYCHF.js} +2 -4
- package/dist/tsup/chunk-TADUYCHF.js.map +1 -0
- package/dist/tsup/{chunk-R64EFI6F.cjs → chunk-TI5PXQGG.cjs} +280 -115
- package/dist/tsup/chunk-TI5PXQGG.cjs.map +1 -0
- package/dist/tsup/{chunk-T6MM5RTW.cjs → chunk-U5SMSA27.cjs} +250 -243
- package/dist/tsup/chunk-U5SMSA27.cjs.map +1 -0
- package/dist/tsup/{chunk-6LHZQSWJ.js → chunk-WY2SHWXQ.js} +8 -4
- package/dist/tsup/chunk-WY2SHWXQ.js.map +1 -0
- package/dist/tsup/{chunk-YLDDENCZ.js → chunk-ZPWOYQHN.js} +126 -219
- package/dist/tsup/chunk-ZPWOYQHN.js.map +1 -0
- package/dist/tsup/client/mod.cjs +6 -6
- package/dist/tsup/client/mod.d.cts +2 -2
- package/dist/tsup/client/mod.d.ts +2 -2
- package/dist/tsup/client/mod.js +5 -5
- package/dist/tsup/common/log.cjs +2 -2
- package/dist/tsup/common/log.js +1 -1
- package/dist/tsup/common/websocket.cjs +3 -3
- package/dist/tsup/common/websocket.js +2 -2
- package/dist/tsup/{config-P3XujgRr.d.ts → config-Qj-zLJPc.d.ts} +11 -0
- package/dist/tsup/{config-_gfywqqI.d.cts → config-iPj5l1bL.d.cts} +11 -0
- package/dist/tsup/{context-uNA4TRn3.d.ts → context-CQCMuHND.d.ts} +1 -1
- package/dist/tsup/{context-Bxd8Cx4H.d.cts → context-DzvH1PBK.d.cts} +1 -1
- package/dist/tsup/{driver-CPGHKXyh.d.ts → driver-Jo8v-kbU.d.ts} +1 -1
- package/dist/tsup/driver-helpers/mod.cjs +4 -4
- package/dist/tsup/driver-helpers/mod.d.cts +4 -4
- package/dist/tsup/driver-helpers/mod.d.ts +4 -4
- package/dist/tsup/driver-helpers/mod.js +3 -3
- package/dist/tsup/{driver-BcLvZcKl.d.cts → driver-iV8J-WMv.d.cts} +1 -1
- package/dist/tsup/driver-test-suite/mod.cjs +196 -60
- package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
- package/dist/tsup/driver-test-suite/mod.d.cts +2 -2
- package/dist/tsup/driver-test-suite/mod.d.ts +2 -2
- package/dist/tsup/driver-test-suite/mod.js +971 -835
- package/dist/tsup/driver-test-suite/mod.js.map +1 -1
- package/dist/tsup/inspector/mod.cjs +3 -3
- package/dist/tsup/inspector/mod.js +2 -2
- package/dist/tsup/mod.cjs +8 -8
- package/dist/tsup/mod.d.cts +5 -5
- package/dist/tsup/mod.d.ts +5 -5
- package/dist/tsup/mod.js +7 -7
- package/dist/tsup/serve-test-suite/mod.cjs +182 -100
- package/dist/tsup/serve-test-suite/mod.cjs.map +1 -1
- package/dist/tsup/serve-test-suite/mod.js +93 -11
- package/dist/tsup/serve-test-suite/mod.js.map +1 -1
- package/dist/tsup/test/mod.cjs +10 -10
- package/dist/tsup/test/mod.d.cts +1 -1
- package/dist/tsup/test/mod.d.ts +1 -1
- package/dist/tsup/test/mod.js +6 -6
- package/dist/tsup/utils.cjs +2 -2
- package/dist/tsup/utils.js +1 -1
- package/dist/tsup/workflow/mod.cjs +5 -5
- package/dist/tsup/workflow/mod.d.cts +3 -3
- package/dist/tsup/workflow/mod.d.ts +3 -3
- package/dist/tsup/workflow/mod.js +4 -4
- package/package.json +6 -6
- package/src/actor/config.ts +0 -2
- package/src/actor/instance/mod.ts +17 -4
- package/src/actor/router.ts +9 -6
- package/src/driver-test-suite/mod.ts +3 -0
- package/src/driver-test-suite/tests/actor-driver.ts +4 -0
- package/src/driver-test-suite/tests/actor-lifecycle.ts +157 -0
- package/src/driver-test-suite/tests/conn-error-serialization.ts +64 -0
- package/src/drivers/engine/actor-driver.ts +47 -15
- package/src/manager/router.ts +20 -6
- package/src/{registry → utils}/serve.ts +38 -4
- package/src/workflow/context.ts +4 -0
- package/dist/tsup/chunk-5AZ6UPEF.cjs.map +0 -1
- package/dist/tsup/chunk-6LHZQSWJ.js.map +0 -1
- package/dist/tsup/chunk-BMNB6YRQ.cjs.map +0 -1
- package/dist/tsup/chunk-GNGRMP5E.js.map +0 -1
- package/dist/tsup/chunk-KSZZRTOD.cjs.map +0 -1
- package/dist/tsup/chunk-MAXIXG56.js.map +0 -1
- package/dist/tsup/chunk-QUDLEWGD.js.map +0 -1
- package/dist/tsup/chunk-R64EFI6F.cjs.map +0 -1
- package/dist/tsup/chunk-T6MM5RTW.cjs.map +0 -1
- package/dist/tsup/chunk-YLDDENCZ.js.map +0 -1
- /package/dist/tsup/{chunk-OAOF23ZY.js.map → chunk-2OK7S6QF.js.map} +0 -0
- /package/dist/tsup/{chunk-N7ASEZ2Y.js.map → chunk-JPXO2H55.js.map} +0 -0
- /package/dist/tsup/{chunk-6T3WSP5M.js.map → chunk-R5OQUSLN.js.map} +0 -0
- /package/dist/tsup/{chunk-POUBQA6Z.js.map → chunk-S662Y6ZU.js.map} +0 -0
package/dist/inspector.tar.gz
CHANGED
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getLogger
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EIATSBYZ.js";
|
|
4
4
|
|
|
5
5
|
// src/client/log.ts
|
|
6
6
|
function logger() {
|
|
@@ -46,4 +46,4 @@ export {
|
|
|
46
46
|
logger,
|
|
47
47
|
importWebSocket
|
|
48
48
|
};
|
|
49
|
-
//# sourceMappingURL=chunk-
|
|
49
|
+
//# sourceMappingURL=chunk-2OK7S6QF.js.map
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } var _class;
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkGQGRQDRLcjs = require('./chunk-GQGRQDRL.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkPB5AEMKQcjs = require('./chunk-PB5AEMKQ.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _chunkHYPIHCDTcjs = require('./chunk-HYPIHCDT.cjs');
|
|
15
15
|
|
|
16
16
|
// src/workflow/mod.ts
|
|
17
17
|
var _workflowengine = require('@rivetkit/workflow-engine');
|
|
@@ -48,6 +48,7 @@ var ActorWorkflowContext = class _ActorWorkflowContext {
|
|
|
48
48
|
return messages.map((message) => self.#toActorQueueMessage(message));
|
|
49
49
|
}
|
|
50
50
|
async function send(name, body) {
|
|
51
|
+
self.#ensureActorAccess("queue.send");
|
|
51
52
|
await self.#runCtx.queue.send(name, body);
|
|
52
53
|
}
|
|
53
54
|
return {
|
|
@@ -147,15 +148,18 @@ var ActorWorkflowContext = class _ActorWorkflowContext {
|
|
|
147
148
|
return this.#runCtx.log;
|
|
148
149
|
}
|
|
149
150
|
keepAwake(promise) {
|
|
151
|
+
this.#ensureActorAccess("keepAwake");
|
|
150
152
|
return this.#runCtx.keepAwake(promise);
|
|
151
153
|
}
|
|
152
154
|
waitUntil(promise) {
|
|
155
|
+
this.#ensureActorAccess("waitUntil");
|
|
153
156
|
this.#runCtx.waitUntil(promise);
|
|
154
157
|
}
|
|
155
158
|
get actorId() {
|
|
156
159
|
return this.#runCtx.actorId;
|
|
157
160
|
}
|
|
158
161
|
broadcast(name, ...args) {
|
|
162
|
+
this.#ensureActorAccess("broadcast");
|
|
159
163
|
this.#runCtx.broadcast(
|
|
160
164
|
name,
|
|
161
165
|
...args
|
|
@@ -234,7 +238,7 @@ var ActorWorkflowContext = class _ActorWorkflowContext {
|
|
|
234
238
|
};
|
|
235
239
|
|
|
236
240
|
// src/workflow/driver.ts
|
|
237
|
-
var WORKFLOW_STORAGE_PREFIX =
|
|
241
|
+
var WORKFLOW_STORAGE_PREFIX = _chunkPB5AEMKQcjs.workflowStoragePrefix.call(void 0, );
|
|
238
242
|
function stripWorkflowKey(prefixed) {
|
|
239
243
|
return prefixed.slice(WORKFLOW_STORAGE_PREFIX.length);
|
|
240
244
|
}
|
|
@@ -302,7 +306,7 @@ var ActorWorkflowDriver = (_class = class {
|
|
|
302
306
|
async get(key) {
|
|
303
307
|
const [value] = await this.#runCtx.keepAwake(
|
|
304
308
|
this.#actor.driver.kvBatchGet(this.#actor.id, [
|
|
305
|
-
|
|
309
|
+
_chunkPB5AEMKQcjs.makeWorkflowKey.call(void 0, key)
|
|
306
310
|
])
|
|
307
311
|
);
|
|
308
312
|
return _nullishCoalesce(value, () => ( null));
|
|
@@ -310,14 +314,14 @@ var ActorWorkflowDriver = (_class = class {
|
|
|
310
314
|
async set(key, value) {
|
|
311
315
|
await this.#runCtx.keepAwake(
|
|
312
316
|
this.#actor.driver.kvBatchPut(this.#actor.id, [
|
|
313
|
-
[
|
|
317
|
+
[_chunkPB5AEMKQcjs.makeWorkflowKey.call(void 0, key), value]
|
|
314
318
|
])
|
|
315
319
|
);
|
|
316
320
|
}
|
|
317
321
|
async delete(key) {
|
|
318
322
|
await this.#runCtx.keepAwake(
|
|
319
323
|
this.#actor.driver.kvBatchDelete(this.#actor.id, [
|
|
320
|
-
|
|
324
|
+
_chunkPB5AEMKQcjs.makeWorkflowKey.call(void 0, key)
|
|
321
325
|
])
|
|
322
326
|
);
|
|
323
327
|
}
|
|
@@ -325,7 +329,7 @@ var ActorWorkflowDriver = (_class = class {
|
|
|
325
329
|
const entries = await this.#runCtx.keepAwake(
|
|
326
330
|
this.#actor.driver.kvListPrefix(
|
|
327
331
|
this.#actor.id,
|
|
328
|
-
|
|
332
|
+
_chunkPB5AEMKQcjs.makeWorkflowKey.call(void 0, prefix)
|
|
329
333
|
)
|
|
330
334
|
);
|
|
331
335
|
if (entries.length === 0) {
|
|
@@ -342,7 +346,7 @@ var ActorWorkflowDriver = (_class = class {
|
|
|
342
346
|
const entries = await this.#runCtx.keepAwake(
|
|
343
347
|
this.#actor.driver.kvListPrefix(
|
|
344
348
|
this.#actor.id,
|
|
345
|
-
|
|
349
|
+
_chunkPB5AEMKQcjs.makeWorkflowKey.call(void 0, prefix)
|
|
346
350
|
)
|
|
347
351
|
);
|
|
348
352
|
return entries.map(([key, value]) => ({
|
|
@@ -356,7 +360,7 @@ var ActorWorkflowDriver = (_class = class {
|
|
|
356
360
|
Promise.all([
|
|
357
361
|
this.#actor.driver.kvBatchPut(
|
|
358
362
|
this.#actor.id,
|
|
359
|
-
writes.map(({ key, value }) => [
|
|
363
|
+
writes.map(({ key, value }) => [_chunkPB5AEMKQcjs.makeWorkflowKey.call(void 0, key), value])
|
|
360
364
|
),
|
|
361
365
|
this.#actor.stateManager.saveState({
|
|
362
366
|
immediate: true,
|
|
@@ -393,14 +397,14 @@ function createWorkflowInspectorAdapter() {
|
|
|
393
397
|
};
|
|
394
398
|
const update = (snapshot) => {
|
|
395
399
|
const transportHistory = toWorkflowHistory(snapshot);
|
|
396
|
-
const next =
|
|
400
|
+
const next = _chunkGQGRQDRLcjs.encodeWorkflowHistoryTransport.call(void 0, transportHistory);
|
|
397
401
|
history = next;
|
|
398
402
|
emitter.emit("updated", next);
|
|
399
403
|
};
|
|
400
404
|
return { adapter, update };
|
|
401
405
|
}
|
|
402
406
|
function encodeCbor(value) {
|
|
403
|
-
return
|
|
407
|
+
return _chunkHYPIHCDTcjs.bufferToArrayBuffer.call(void 0, cbor.encode(value));
|
|
404
408
|
}
|
|
405
409
|
function encodeOptionalCbor(value) {
|
|
406
410
|
if (value === void 0) {
|
|
@@ -487,7 +491,7 @@ function toWorkflowEntryKind(kind) {
|
|
|
487
491
|
}
|
|
488
492
|
};
|
|
489
493
|
default:
|
|
490
|
-
|
|
494
|
+
_chunkHYPIHCDTcjs.assertUnreachable.call(void 0, kind);
|
|
491
495
|
}
|
|
492
496
|
}
|
|
493
497
|
function toWorkflowEntry(entry) {
|
|
@@ -510,7 +514,7 @@ function toWorkflowEntryStatus(status) {
|
|
|
510
514
|
case "exhausted":
|
|
511
515
|
return "EXHAUSTED" /* EXHAUSTED */;
|
|
512
516
|
default:
|
|
513
|
-
|
|
517
|
+
_chunkHYPIHCDTcjs.assertUnreachable.call(void 0, status);
|
|
514
518
|
}
|
|
515
519
|
}
|
|
516
520
|
function toWorkflowSleepState(state) {
|
|
@@ -522,7 +526,7 @@ function toWorkflowSleepState(state) {
|
|
|
522
526
|
case "interrupted":
|
|
523
527
|
return "INTERRUPTED" /* INTERRUPTED */;
|
|
524
528
|
default:
|
|
525
|
-
|
|
529
|
+
_chunkHYPIHCDTcjs.assertUnreachable.call(void 0, state);
|
|
526
530
|
}
|
|
527
531
|
}
|
|
528
532
|
function toWorkflowBranchStatusType(status) {
|
|
@@ -538,7 +542,7 @@ function toWorkflowBranchStatusType(status) {
|
|
|
538
542
|
case "cancelled":
|
|
539
543
|
return "CANCELLED" /* CANCELLED */;
|
|
540
544
|
default:
|
|
541
|
-
|
|
545
|
+
_chunkHYPIHCDTcjs.assertUnreachable.call(void 0, status);
|
|
542
546
|
}
|
|
543
547
|
}
|
|
544
548
|
function toWorkflowBranchStatus(status) {
|
|
@@ -585,7 +589,7 @@ function toWorkflowHistory(snapshot) {
|
|
|
585
589
|
function workflow(fn) {
|
|
586
590
|
const workflowInspector = createWorkflowInspectorAdapter();
|
|
587
591
|
async function run(runCtx) {
|
|
588
|
-
const actor = runCtx[
|
|
592
|
+
const actor = runCtx[_chunkPB5AEMKQcjs.ACTOR_CONTEXT_INTERNAL_SYMBOL];
|
|
589
593
|
_invariant2.default.call(void 0, actor, "workflow() requires an actor instance");
|
|
590
594
|
const driver = new ActorWorkflowDriver(actor, runCtx);
|
|
591
595
|
const handle = _workflowengine.runWorkflow.call(void 0,
|
|
@@ -614,7 +618,7 @@ function workflow(fn) {
|
|
|
614
618
|
} catch (error) {
|
|
615
619
|
runCtx.log.error({
|
|
616
620
|
msg: "workflow run failed",
|
|
617
|
-
error:
|
|
621
|
+
error: _chunkHYPIHCDTcjs.stringifyError.call(void 0, error)
|
|
618
622
|
});
|
|
619
623
|
throw error;
|
|
620
624
|
} finally {
|
|
@@ -622,7 +626,7 @@ function workflow(fn) {
|
|
|
622
626
|
}
|
|
623
627
|
}
|
|
624
628
|
const runWithConfig = run;
|
|
625
|
-
runWithConfig[
|
|
629
|
+
runWithConfig[_chunkPB5AEMKQcjs.RUN_FUNCTION_CONFIG_SYMBOL] = {
|
|
626
630
|
icon: "diagram-project",
|
|
627
631
|
inspector: { workflow: workflowInspector.adapter }
|
|
628
632
|
};
|
|
@@ -635,4 +639,4 @@ function workflow(fn) {
|
|
|
635
639
|
|
|
636
640
|
|
|
637
641
|
exports.WORKFLOW_GUARD_KV_KEY = WORKFLOW_GUARD_KV_KEY; exports.ActorWorkflowContext = ActorWorkflowContext; exports.workflow = workflow; exports.Loop = _workflowengine.Loop;
|
|
638
|
-
//# sourceMappingURL=chunk-
|
|
642
|
+
//# sourceMappingURL=chunk-7WF2QSIC.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-7WF2QSIC.cjs","../../src/workflow/mod.ts","../../src/workflow/constants.ts","../../src/workflow/context.ts","../../src/workflow/driver.ts","../../src/workflow/inspector.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACA;ACRA,2DAA4B;AAC5B,4FAAsB;ADUtB;AACA;AEnBO,IAAM,sBAAA,EACZ,wCAAA;AFoBD;AACA;AG8EO,IAAM,qBAAA,EAAN,MAAM,sBAUb;AAAA,EACC,CAAA,KAAA;AAAA,EACA,CAAA,MAAA;AAAA,EAUA,CAAA,iBAAA,EAAoB,CAAA;AAAA,EACpB,CAAA,iBAAA,EAAoB,KAAA;AAAA,EACpB,CAAA,eAAA,EAAkB,KAAA;AAAA,EAElB,WAAA,CACC,KAAA,EACA,MAAA,EAUC;AACD,IAAA,IAAA,CAAK,CAAA,MAAA,EAAS,KAAA;AACd,IAAA,IAAA,CAAK,CAAA,OAAA,EAAU,MAAA;AAAA,EAChB;AAAA,EAEA,IAAI,UAAA,CAAA,EAAqB;AACxB,IAAA,OAAO,IAAA,CAAK,CAAA,KAAA,CAAO,UAAA;AAAA,EACpB;AAAA,EAEA,IAAI,WAAA,CAAA,EAA2B;AAC9B,IAAA,OAAO,IAAA,CAAK,CAAA,KAAA,CAAO,WAAA;AAAA,EACpB;AAAA,EAEA,IAAI,KAAA,CAAA,EAAQ;AACX,IAAA,MAAM,KAAA,EAAO,IAAA;AAkBb,IAAA,MAAA,SAAe,IAAA,CACd,IAAA,EACA,IAAA,EACyC;AACzC,MAAA,MAAM,QAAA,EAAU,MAAM,IAAA,CAAK,CAAA,KAAA,CAAO,KAAA,CAAM,IAAA,CAAK,IAAA,EAAM,IAAI,CAAA;AACvD,MAAA,OAAO,IAAA,CAAK,CAAA,mBAAA,CAAqB,OAAO,CAAA;AAAA,IACzC;AAqBA,IAAA,MAAA,SAAe,SAAA,CACd,IAAA,EACA,IAAA,EACgD;AAChD,MAAA,MAAM,SAAA,EAAW,MAAM,IAAA,CAAK,CAAA,KAAA,CAAO,KAAA,CAAM,SAAA,CAAU,IAAA,EAAM,IAAI,CAAA;AAC7D,MAAA,OAAO,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,EAAA,GAAY,IAAA,CAAK,CAAA,mBAAA,CAAqB,OAAO,CAAC,CAAA;AAAA,IACpE;AAUA,IAAA,MAAA,SAAe,IAAA,CAAK,IAAA,EAAc,IAAA,EAA8B;AAC/D,MAAA,IAAA,CAAK,CAAA,iBAAA,CAAmB,YAAY,CAAA;AACpC,MAAA,MAAM,IAAA,CAAK,CAAA,MAAA,CAAQ,KAAA,CAAM,IAAA,CAAK,IAAA,EAAe,IAAa,CAAA;AAAA,IAC3D;AAEA,IAAA,OAAO;AAAA,MACN,IAAA;AAAA,MACA,SAAA;AAAA,MACA;AAAA,IACD,CAAA;AAAA,EACD;AAAA,EAEA,MAAM,IAAA,CACL,YAAA,EACA,GAAA,EACa;AACb,IAAA,GAAA,CAAI,OAAO,aAAA,IAAiB,QAAA,EAAU;AACrC,MAAA,GAAA,CAAI,CAAC,GAAA,EAAK;AACT,QAAA,MAAM,IAAI,KAAA,CAAM,2BAA2B,CAAA;AAAA,MAC5C;AACA,MAAA,OAAO,MAAM,IAAA,CAAK,CAAA,UAAA;AAAA,QAAY,CAAA,EAAA,GAC7B,IAAA,CAAK,CAAA,KAAA,CAAO,IAAA,CAAK,YAAA,EAAc,CAAA,EAAA,GAAM,IAAA,CAAK,CAAA,eAAA,CAAiB,GAAG,CAAC;AAAA,MAChE,CAAA;AAAA,IACD;AACA,IAAA,MAAM,WAAA,EAAa,YAAA;AACnB,IAAA,MAAM,OAAA,EAAwB;AAAA,MAC7B,GAAG,UAAA;AAAA,MACH,GAAA,EAAK,CAAA,EAAA,GAAM,IAAA,CAAK,CAAA,eAAA,CAAiB,UAAA,CAAW,GAAG;AAAA,IAChD,CAAA;AACA,IAAA,OAAO,MAAM,IAAA,CAAK,CAAA,UAAA,CAAY,CAAA,EAAA,GAAM,IAAA,CAAK,CAAA,KAAA,CAAO,IAAA,CAAK,MAAM,CAAC,CAAA;AAAA,EAC7D;AAAA,EAsCA,MAAM,IAAA,CACL,YAAA,EAeA,GAAA,EAYe;AACf,IAAA,GAAA,CAAI,OAAO,aAAA,IAAiB,QAAA,EAAU;AACrC,MAAA,GAAA,CAAI,CAAC,GAAA,EAAK;AACT,QAAA,MAAM,IAAI,KAAA,CAAM,2BAA2B,CAAA;AAAA,MAC5C;AACA,MAAA,OAAO,MAAM,IAAA,CAAK,CAAA,UAAA;AAAA,QAAY,CAAA,EAAA,GAC7B,IAAA,CAAK,CAAA,KAAA,CAAO,IAAA;AAAA,UAAK,YAAA;AAAA,UAAc,MAAA,CAAO,GAAA,EAAA,GACrC,GAAA,CAAI,IAAA,CAAK,CAAA,kBAAA,CAAoB,GAAG,CAAC;AAAA,QAClC;AAAA,MACD,CAAA;AAAA,IACD;AACA,IAAA,MAAM,QAAA,EAAgC;AAAA,MACrC,GAAG,YAAA;AAAA,MACH,GAAA,EAAK,MAAA,CAAO,GAAA,EAAK,KAAA,EAAA,GAChB,YAAA,CAAa,GAAA,CAAI,IAAA,CAAK,CAAA,kBAAA,CAAoB,GAAG,CAAA,EAAG,KAAK;AAAA,IACvD,CAAA;AACA,IAAA,OAAO,MAAM,IAAA,CAAK,CAAA,UAAA,CAAY,CAAA,EAAA,GAAM,IAAA,CAAK,CAAA,KAAA,CAAO,IAAA,CAAK,OAAO,CAAC,CAAA;AAAA,EAC9D;AAAA,EAEA,KAAA,CAAM,IAAA,EAAc,UAAA,EAAmC;AACtD,IAAA,OAAO,IAAA,CAAK,CAAA,KAAA,CAAO,KAAA,CAAM,IAAA,EAAM,UAAU,CAAA;AAAA,EAC1C;AAAA,EAEA,UAAA,CAAW,IAAA,EAAc,WAAA,EAAoC;AAC5D,IAAA,OAAO,IAAA,CAAK,CAAA,KAAA,CAAO,UAAA,CAAW,IAAA,EAAM,WAAW,CAAA;AAAA,EAChD;AAAA,EAEA,MAAM,kBAAA,CAAmB,IAAA,EAA6B;AACrD,IAAA,MAAM,IAAA,CAAK,CAAA,UAAA,CAAY,CAAA,EAAA,GAAM,IAAA,CAAK,CAAA,KAAA,CAAO,kBAAA,CAAmB,IAAI,CAAC,CAAA;AAAA,EAClE;AAAA,EAyBA,MAAM,IAAA,CAAK,IAAA,EAAc,QAAA,EAAiD;AACzE,IAAA,MAAM,gBAAA,EAAkB,MAAA,CAAO,WAAA;AAAA,MAC9B,MAAA,CAAO,OAAA,CAAQ,QAAQ,CAAA,CAAE,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,MAAM,CAAA,EAAA,GAAM;AAAA,QAC/C,GAAA;AAAA,QACA;AAAA,UACC,GAAA,EAAK,MAAA,CAAO,GAAA,EAAA,GACX,MAAA,CAAO,GAAA,CAAI,IAAA,CAAK,CAAA,kBAAA,CAAoB,GAAG,CAAC;AAAA,QAC1C;AAAA,MACD,CAAC;AAAA,IACF,CAAA;AACA,IAAA,OAAO,MAAM,IAAA,CAAK,CAAA,UAAA;AAAA,MAAY,CAAA,EAAA,GAC7B,IAAA,CAAK,CAAA,KAAA,CAAO,IAAA,CAAK,IAAA,EAAM,eAAe;AAAA,IACvC,CAAA;AAAA,EACD;AAAA,EAoBA,MAAM,IAAA,CACL,IAAA,EACA,QAAA,EAIwC;AACxC,IAAA,MAAM,gBAAA,EAAkB,QAAA,CAAS,GAAA,CAAI,CAAC,MAAA,EAAA,GAAA,CAAY;AAAA,MACjD,IAAA,EAAM,MAAA,CAAO,IAAA;AAAA,MACb,GAAA,EAAK,CAAC,GAAA,EAAA,GACL,MAAA,CAAO,GAAA,CAAI,IAAA,CAAK,CAAA,kBAAA,CAAoB,GAAG,CAAC;AAAA,IAC1C,CAAA,CAAE,CAAA;AACF,IAAA,OAAQ,MAAM,IAAA,CAAK,CAAA,UAAA;AAAA,MAAY,CAAA,EAAA,GAC9B,IAAA,CAAK,CAAA,KAAA,CAAO,IAAA,CAAK,IAAA,EAAM,eAAe;AAAA,IACvC,CAAA;AAAA,EACD;AAAA,EAEA,MAAM,OAAA,CAAQ,IAAA,EAAc,YAAA,EAA4C;AACvE,IAAA,MAAM,IAAA,CAAK,CAAA,UAAA,CAAY,CAAA,EAAA,GAAM,IAAA,CAAK,CAAA,KAAA,CAAO,OAAA,CAAQ,IAAA,EAAM,YAAY,CAAC,CAAA;AAAA,EACrE;AAAA,EAEA,SAAA,CAAA,EAAqB;AACpB,IAAA,OAAO,IAAA,CAAK,CAAA,KAAA,CAAO,SAAA,CAAU,CAAA;AAAA,EAC9B;AAAA,EAEA,IAAI,KAAA,CAAA,EAA+C;AAClD,IAAA,IAAA,CAAK,CAAA,iBAAA,CAAmB,OAAO,CAAA;AAC/B,IAAA,OAAO,IAAA,CAAK,CAAA,MAAA,CAAQ,KAAA;AAAA,EACrB;AAAA,EAEA,IAAI,IAAA,CAAA,EAA4C;AAC/C,IAAA,IAAA,CAAK,CAAA,iBAAA,CAAmB,MAAM,CAAA;AAC9B,IAAA,OAAO,IAAA,CAAK,CAAA,MAAA,CAAQ,IAAA;AAAA,EACrB;AAAA,EAEA,MAAA,CAAA,EAA6C;AAC5C,IAAA,IAAA,CAAK,CAAA,iBAAA,CAAmB,QAAQ,CAAA;AAChC,IAAA,OAAO,IAAA,CAAK,CAAA,MAAA,CAAQ,MAAA,CAAU,CAAA;AAAA,EAC/B;AAAA,EAEA,IAAI,EAAA,CAAA,EAAuE;AAC1E,IAAA,IAAA,CAAK,CAAA,iBAAA,CAAmB,IAAI,CAAA;AAC5B,IAAA,OAAO,IAAA,CAAK,CAAA,MAAA,CAAQ,EAAA;AAAA,EAGrB;AAAA,EAEA,IAAI,GAAA,CAAA,EAAM;AACT,IAAA,OAAO,IAAA,CAAK,CAAA,MAAA,CAAQ,GAAA;AAAA,EACrB;AAAA,EAEA,SAAA,CAAa,OAAA,EAAiC;AAC7C,IAAA,IAAA,CAAK,CAAA,iBAAA,CAAmB,WAAW,CAAA;AACnC,IAAA,OAAO,IAAA,CAAK,CAAA,MAAA,CAAQ,SAAA,CAAU,OAAO,CAAA;AAAA,EACtC;AAAA,EAEA,SAAA,CAAU,OAAA,EAA8B;AACvC,IAAA,IAAA,CAAK,CAAA,iBAAA,CAAmB,WAAW,CAAA;AACnC,IAAA,IAAA,CAAK,CAAA,MAAA,CAAQ,SAAA,CAAU,OAAO,CAAA;AAAA,EAC/B;AAAA,EAEA,IAAI,OAAA,CAAA,EAAkB;AACrB,IAAA,OAAO,IAAA,CAAK,CAAA,MAAA,CAAQ,OAAA;AAAA,EACrB;AAAA,EAUA,SAAA,CAAU,IAAA,EAAA,GAAiB,IAAA,EAA4B;AACtD,IAAA,IAAA,CAAK,CAAA,iBAAA,CAAmB,WAAW,CAAA;AACnC,IAAA,IAAA,CAAK,CAAA,MAAA,CAAQ,SAAA;AAAA,MACZ,IAAA;AAAA,MACA,GAAK;AAAA,IACN,CAAA;AAAA,EACD;AAAA,EAEA,CAAA,mBAAA,CACC,OAAA,EAC2C;AAC3C,IAAA,IAAI,EAAA;AACJ,IAAA,IAAI;AACH,MAAA,GAAA,EAAK,MAAA,CAAO,OAAA,CAAQ,EAAE,CAAA;AAAA,IACvB,EAAA,UAAQ;AACP,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,0BAAA,EAA6B,OAAA,CAAQ,EAAE,CAAA,CAAA,CAAG,CAAA;AAAA,IAC3D;AACA,IAAA,OAAO;AAAA,MACN,EAAA;AAAA,MACA,IAAA,EAAM,OAAA,CAAQ,IAAA;AAAA,MACd,IAAA,EAAM,OAAA,CAAQ,IAAA;AAAA,MACd,SAAA,EAAW,OAAA,CAAQ,SAAA;AAAA,MACnB,GAAI,OAAA,CAAQ,SAAA,EAAW,EAAE,QAAA,EAAU,OAAA,CAAQ,SAAS,EAAA,EAAI,CAAC;AAAA,IAC1D,CAAA;AAAA,EACD;AAAA,EAEA,MAAM,CAAA,UAAA,CAAe,GAAA,EAAmC;AACvD,IAAA,OAAO,MAAM,IAAA,CAAK,CAAA,MAAA,CAAQ,SAAA,CAAU,GAAA,CAAI,CAAC,CAAA;AAAA,EAC1C;AAAA,EAEA,MAAM,CAAA,eAAA,CAAoB,GAAA,EAAmC;AAC5D,IAAA,IAAA,CAAK,CAAA,gBAAA,EAAA;AACL,IAAA,GAAA,CAAI,IAAA,CAAK,CAAA,iBAAA,IAAsB,CAAA,EAAG;AACjC,MAAA,IAAA,CAAK,CAAA,iBAAA,EAAoB,IAAA;AAAA,IAC1B;AACA,IAAA,IAAI;AACH,MAAA,OAAO,MAAM,GAAA,CAAI,CAAA;AAAA,IAClB,EAAA,QAAE;AACD,MAAA,IAAA,CAAK,CAAA,gBAAA,EAAA;AACL,MAAA,GAAA,CAAI,IAAA,CAAK,CAAA,iBAAA,IAAsB,CAAA,EAAG;AACjC,QAAA,IAAA,CAAK,CAAA,iBAAA,EAAoB,KAAA;AAAA,MAC1B;AAAA,IACD;AAAA,EACD;AAAA,EAEA,CAAA,iBAAA,CAAmB,OAAA,EAAuB;AACzC,IAAA,GAAA,CAAI,CAAC,IAAA,CAAK,CAAA,gBAAA,EAAmB;AAC5B,MAAA,IAAA,CAAK,CAAA,eAAA,EAAkB,IAAA;AACvB,MAAA,IAAA,CAAK,CAAA,kBAAA,CAAoB,CAAA;AACzB,MAAA,MAAM,IAAI,KAAA;AAAA,QACT,CAAA,EAAA;AACD,MAAA;AACD,IAAA;AACD,EAAA;AAEA,EAAA;AACC,IAAA;AACK,IAAA;AACL,IAAA;AACD,EAAA;AAEA,EAAA;AACK,IAAA;AACH,MAAA;AACA,MAAA;AAKE,QAAA;AACF,MAAA;AACD,IAAA;AAEA,IAAA;AAEK,IAAA;AACH,MAAA;AACA,QAAA;AACC,UAAA;AACD,QAAA;AACC,UAAA;AAAuB,YAAA;AACjB,YAAA;AACL,UAAA;AAEF,QAAA;AACE,MAAA;AACJ,IAAA;AACD,EAAA;AAEA,EAAA;AAYC,IAAA;AACD,EAAA;AACD;AH9US;AACA;AIpOH;AAEG;AACD,EAAA;AACR;AAEM;AACL,EAAA;AACA,EAAA;AAEA,EAAA;AAIM,IAAA;AACA,IAAA;AACN,EAAA;AAEM,EAAA;AACL,IAAA;AACC,MAAA;AACD,IAAA;AACD,EAAA;AAEM,EAAA;AAKL,IAAA;AACC,MAAA;AACC,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACD,MAAA;AACD,IAAA;AACA,IAAA;AACC,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACI,MAAA;AAED,QAAA;AACC,UAAA;AAAmB,YAAA;AACO,cAAA;AACxB,cAAA;AACA,YAAA;AACD,UAAA;AAEF,QAAA;AACD,MAAA;AAED,IAAA;AACH,EAAA;AAEM,EAAA;AACD,IAAA;AACA,IAAA;AACH,MAAA;AACD,IAAA;AACC,MAAA;AACD,IAAA;AAEA,IAAA;AACC,MAAA;AACD,IAAA;AACD,EAAA;AACD;AAEa;AACH,iBAAA;AACA,EAAA;AACT,EAAA;AACA,EAAA;AAEA,EAAA;AAIM,IAAA;AACA,IAAA;AACA,IAAA;AACN,EAAA;AAEM,EAAA;AACL,IAAA;AACC,MAAA;AACC,QAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACD,EAAA;AAEM,EAAA;AACL,IAAA;AACC,MAAA;AACE,QAAA;AACD,MAAA;AACF,IAAA;AACD,EAAA;AAEM,EAAA;AACL,IAAA;AACC,MAAA;AACC,QAAA;AACA,MAAA;AACF,IAAA;AACD,EAAA;AAEM,EAAA;AACL,IAAA;AACC,MAAA;AACC,QAAA;AACA,QAAA;AACD,MAAA;AACD,IAAA;AACI,IAAA;AACH,MAAA;AACD,IAAA;AACA,IAAA;AACC,MAAA;AACC,QAAA;AACA,QAAA;AACD,MAAA;AACD,IAAA;AACD,EAAA;AAEM,EAAA;AACL,IAAA;AACC,MAAA;AACC,QAAA;AACA,QAAA;AACD,MAAA;AACD,IAAA;AACA,IAAA;AACC,MAAA;AACA,MAAA;AACC,IAAA;AACH,EAAA;AAEM,EAAA;AACD,IAAA;AAIJ,IAAA;AACC,MAAA;AACC,QAAA;AAAmB,UAAA;AACN,UAAA;AAEb,QAAA;AACA,QAAA;AAAmC,UAAA;AACvB,UAAA;AAEX,QAAA;AACD,MAAA;AACF,IAAA;AACD,EAAA;AAEM,EAAA;AACL,IAAA;AACC,MAAA;AACD,IAAA;AACD,EAAA;AAEM,EAAA;AAEL,IAAA;AACD,EAAA;AAEA,EAAA;AAIC,IAAA;AACC,MAAA;AACA,MAAA;AACD,IAAA;AACD,EAAA;AACD;AJiMS;AACA;AKnYT;AACS;AAwBO;AAIT,EAAA;AAGF,EAAA;AAEE,EAAA;AACL,IAAA;AACA,IAAA;AACD,EAAA;AAEM,EAAA;AACL,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACD,EAAA;AAEO,EAAA;AACR;AAES;AACD,EAAA;AACR;AAES;AACJ,EAAA;AACH,IAAA;AACD,EAAA;AACO,EAAA;AACR;AAES;AACD,EAAA;AACR;AAES;AAGD,EAAA;AACF,IAAA;AACH,MAAA;AACD,IAAA;AACA,IAAA;AACC,MAAA;AACA,MAAA;AACC,QAAA;AACA,QAAA;AACD,MAAA;AACD,IAAA;AACA,EAAA;AACF;AAES;AAGR,EAAA;AACM,IAAA;AACJ,MAAA;AACC,QAAA;AACA,QAAA;AAAK,UAAA;AACuC,UAAA;AAE5C,QAAA;AACD,MAAA;AACI,IAAA;AACJ,MAAA;AACC,QAAA;AACA,QAAA;AAAK,UAAA;AAC6B,UAAA;AACZ,UAAA;AAEtB,QAAA;AACD,MAAA;AACI,IAAA;AACJ,MAAA;AACC,QAAA;AACA,QAAA;AAAK,UAAA;AAC8B,UAAA;AAEnC,QAAA;AACD,MAAA;AACI,IAAA;AACJ,MAAA;AACC,QAAA;AACA,QAAA;AAAK,UAAA;AACY,UAAA;AAEjB,QAAA;AACD,MAAA;AACI,IAAA;AACJ,MAAA;AACC,QAAA;AACA,QAAA;AACD,MAAA;AACI,IAAA;AACJ,MAAA;AACC,QAAA;AACA,QAAA;AACD,MAAA;AACI,IAAA;AACJ,MAAA;AACC,QAAA;AACA,QAAA;AAAK,UAAA;AACwB,UAAA;AAE7B,QAAA;AACD,MAAA;AACI,IAAA;AACJ,MAAA;AACC,QAAA;AACA,QAAA;AAAK,UAAA;AACoB,UAAA;AAEzB,QAAA;AACD,MAAA;AACD,IAAA;AACC,MAAA;AACF,EAAA;AACD;AAES;AAGD,EAAA;AACF,IAAA;AACJ,IAAA;AACA,IAAA;AACD,EAAA;AACD;AAES;AAGR,EAAA;AACM,IAAA;AACJ,MAAA;AACI,IAAA;AACJ,MAAA;AACI,IAAA;AACJ,MAAA;AACI,IAAA;AACJ,MAAA;AACI,IAAA;AACJ,MAAA;AACD,IAAA;AACC,MAAA;AACF,EAAA;AACD;AAES;AAGR,EAAA;AACM,IAAA;AACJ,MAAA;AACI,IAAA;AACJ,MAAA;AACI,IAAA;AACJ,MAAA;AACD,IAAA;AACC,MAAA;AACF,EAAA;AACD;AAES;AAGR,EAAA;AACM,IAAA;AACJ,MAAA;AACI,IAAA;AACJ,MAAA;AACI,IAAA;AACJ,MAAA;AACI,IAAA;AACJ,MAAA;AACI,IAAA;AACJ,MAAA;AACD,IAAA;AACC,MAAA;AACF,EAAA;AACD;AAES;AAGD,EAAA;AACN,IAAA;AACA,IAAA;AACA,IAAA;AACD,EAAA;AACD;AAES;AAGD,EAAA;AACN,IAAA;AACC,MAAA;AACA,MAAA;AACA,IAAA;AACF,EAAA;AACD;AAES;AAGD,EAAA;AACN,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAIA,IAAA;AAIA,IAAA;AACD,EAAA;AACD;AAES;AAGF,EAAA;AACN,EAAA;AACC,IAAA;AACD,EAAA;AAEO,EAAA;AACN,IAAA;AACA,IAAA;AACA,IAAA;AACD,EAAA;AACD;AL8TS;AACA;AC7jBA;AASO;AAkCT,EAAA;AAEN,EAAA;AAYC,IAAA;AAKA,IAAA;AAEA,IAAA;AAEA,IAAA;AACC,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACC,QAAA;AACA,QAAA;AACA,QAAA;AACD,MAAA;AACD,IAAA;AAEA,IAAA;AACC,MAAA;AACD,IAAA;AACI,IAAA;AACH,MAAA;AACD,IAAA;AACC,MAAA;AACC,QAAA;AACA,MAAA;AACF,IAAA;AAEI,IAAA;AACH,MAAA;AACD,IAAA;AACC,MAAA;AACC,QAAA;AACA,QAAA;AACA,MAAA;AACD,MAAA;AACD,IAAA;AACC,MAAA;AACD,IAAA;AACD,EAAA;AAEM,EAAA;AAMN,EAAA;AACC,IAAA;AACA,IAAA;AACD,EAAA;AAEO,EAAA;AACR;AD2fS;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-7WF2QSIC.cjs","sourcesContent":[null,"import { ACTOR_CONTEXT_INTERNAL_SYMBOL } from \"@/actor/contexts/base/actor\";\nimport type { RunContext } from \"@/actor/contexts/run\";\nimport type { AnyDatabaseProvider } from \"@/actor/database\";\nimport type { AnyActorInstance } from \"@/actor/instance/mod\";\nimport type { EventSchemaConfig, QueueSchemaConfig } from \"@/actor/schema\";\nimport { RUN_FUNCTION_CONFIG_SYMBOL } from \"@/actor/config\";\nimport { stringifyError } from \"@/utils\";\nimport { runWorkflow } from \"@rivetkit/workflow-engine\";\nimport invariant from \"invariant\";\nimport { ActorWorkflowContext } from \"./context\";\nimport { ActorWorkflowDriver } from \"./driver\";\nimport { createWorkflowInspectorAdapter } from \"./inspector\";\n\nexport { Loop } from \"@rivetkit/workflow-engine\";\nexport {\n\tActorWorkflowContext,\n\ttype WorkflowBranchContextOf,\n\ttype WorkflowContextOf,\n\ttype WorkflowLoopContextOf,\n\ttype WorkflowStepContextOf,\n} from \"./context\";\n\nexport function workflow<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n>(\n\tfn: (\n\t\tctx: ActorWorkflowContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t) => Promise<unknown>,\n): (\n\tc: RunContext<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t>,\n) => Promise<void> {\n\tconst workflowInspector = createWorkflowInspectorAdapter();\n\n\tasync function run(\n\t\trunCtx: RunContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t): Promise<void> {\n\t\tconst actor = (\n\t\t\trunCtx as unknown as {\n\t\t\t\t[ACTOR_CONTEXT_INTERNAL_SYMBOL]?: AnyActorInstance;\n\t\t\t}\n\t\t)[ACTOR_CONTEXT_INTERNAL_SYMBOL];\n\t\tinvariant(actor, \"workflow() requires an actor instance\");\n\n\t\tconst driver = new ActorWorkflowDriver(actor, runCtx);\n\n\t\tconst handle = runWorkflow(\n\t\t\tactor.id,\n\t\t\tasync (ctx) => await fn(new ActorWorkflowContext(ctx, runCtx)),\n\t\t\tundefined,\n\t\t\tdriver,\n\t\t\t{\n\t\t\t\tmode: \"live\",\n\t\t\t\tlogger: runCtx.log,\n\t\t\t\tonHistoryUpdated: workflowInspector.update,\n\t\t\t},\n\t\t);\n\n\t\tconst onAbort = () => {\n\t\t\thandle.evict();\n\t\t};\n\t\tif (runCtx.abortSignal.aborted) {\n\t\t\tonAbort();\n\t\t} else {\n\t\t\trunCtx.abortSignal.addEventListener(\"abort\", onAbort, {\n\t\t\t\tonce: true,\n\t\t\t});\n\t\t}\n\n\t\ttry {\n\t\t\tawait handle.result;\n\t\t} catch (error) {\n\t\t\trunCtx.log.error({\n\t\t\t\tmsg: \"workflow run failed\",\n\t\t\t\terror: stringifyError(error),\n\t\t\t});\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\trunCtx.abortSignal.removeEventListener(\"abort\", onAbort);\n\t\t}\n\t}\n\n\tconst runWithConfig = run as typeof run & {\n\t\t[RUN_FUNCTION_CONFIG_SYMBOL]?: {\n\t\t\ticon?: string;\n\t\t\tinspector?: { workflow: typeof workflowInspector.adapter };\n\t\t};\n\t};\n\trunWithConfig[RUN_FUNCTION_CONFIG_SYMBOL] = {\n\t\ticon: \"diagram-project\",\n\t\tinspector: { workflow: workflowInspector.adapter },\n\t};\n\n\treturn runWithConfig;\n}\n","export const WORKFLOW_GUARD_KV_KEY =\n\t\"__rivet_actor_workflow_guard_triggered\";\n","import type { RunContext } from \"@/actor/contexts/run\";\nimport type { Client } from \"@/client/client\";\nimport type { Registry } from \"@/registry\";\nimport type { ActorDefinition, AnyActorDefinition } from \"@/actor/definition\";\nimport type { AnyDatabaseProvider, InferDatabaseClient } from \"@/actor/database\";\nimport type {\n\tQueueFilterName,\n\tQueueNextBatchOptions,\n\tQueueNextOptions,\n\tQueueResultMessageForName,\n} from \"@/actor/instance/queue\";\nimport type {\n\tEventSchemaConfig,\n\tInferEventArgs,\n\tInferSchemaMap,\n\tQueueSchemaConfig,\n} from \"@/actor/schema\";\nimport type { WorkflowContextInterface } from \"@rivetkit/workflow-engine\";\nimport type {\n\tBranchConfig,\n\tBranchOutput,\n\tEntryKindType,\n\tLoopConfig,\n\tLoopResult,\n\tStepConfig,\n\tWorkflowQueueMessage,\n} from \"@rivetkit/workflow-engine\";\nimport { WORKFLOW_GUARD_KV_KEY } from \"./constants\";\n\ntype WorkflowActorQueueNextOptions<\n\tTName extends string,\n\tTCompletable extends boolean,\n> = Omit<QueueNextOptions<TName, TCompletable>, \"signal\">;\n\ntype WorkflowActorQueueNextOptionsFallback<TCompletable extends boolean> = Omit<\n\tQueueNextOptions<string, TCompletable>,\n\t\"signal\"\n>;\n\ntype WorkflowActorQueueNextBatchOptions<\n\tTName extends string,\n\tTCompletable extends boolean,\n> = Omit<QueueNextBatchOptions<TName, TCompletable>, \"signal\">;\n\ntype WorkflowActorQueueNextBatchOptionsFallback<\n\tTCompletable extends boolean,\n> = Omit<QueueNextBatchOptions<string, TCompletable>, \"signal\">;\n\ntype ActorWorkflowLoopConfig<\n\tS,\n\tT,\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig,\n\tTQueues extends QueueSchemaConfig,\n> = Omit<LoopConfig<S, T>, \"run\"> & {\n\trun: (\n\t\tctx: ActorWorkflowContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t\tstate: S,\n\t) => Promise<LoopResult<S, T> | (S extends undefined ? void : never)>;\n};\n\ntype ActorWorkflowBranchConfig<\n\tTOutput,\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig,\n\tTQueues extends QueueSchemaConfig,\n> = {\n\trun: (\n\t\tctx: ActorWorkflowContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t) => Promise<TOutput>;\n};\n\nexport class ActorWorkflowContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> implements WorkflowContextInterface\n{\n\t#inner: WorkflowContextInterface;\n\t#runCtx: RunContext<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t>;\n\t#actorAccessDepth = 0;\n\t#allowActorAccess = false;\n\t#guardViolation = false;\n\n\tconstructor(\n\t\tinner: WorkflowContextInterface,\n\t\trunCtx: RunContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t) {\n\t\tthis.#inner = inner;\n\t\tthis.#runCtx = runCtx;\n\t}\n\n\tget workflowId(): string {\n\t\treturn this.#inner.workflowId;\n\t}\n\n\tget abortSignal(): AbortSignal {\n\t\treturn this.#inner.abortSignal;\n\t}\n\n\tget queue() {\n\t\tconst self = this;\n\t\tfunction next<\n\t\t\tconst TName extends QueueFilterName<TQueues>,\n\t\t\tconst TCompletable extends boolean = false,\n\t\t>(\n\t\t\tname: string,\n\t\t\topts?: WorkflowActorQueueNextOptions<TName, TCompletable>,\n\t\t): Promise<QueueResultMessageForName<TQueues, TName, TCompletable>>;\n\t\tfunction next<const TCompletable extends boolean = false>(\n\t\t\tname: string,\n\t\t\topts?: WorkflowActorQueueNextOptionsFallback<TCompletable>,\n\t\t): Promise<\n\t\t\tQueueResultMessageForName<\n\t\t\t\tTQueues,\n\t\t\t\tQueueFilterName<TQueues>,\n\t\t\t\tTCompletable\n\t\t\t>\n\t\t>;\n\t\tasync function next(\n\t\t\tname: string,\n\t\t\topts?: WorkflowActorQueueNextOptions<string, boolean>,\n\t\t): Promise<WorkflowQueueMessage<unknown>> {\n\t\t\tconst message = await self.#inner.queue.next(name, opts);\n\t\t\treturn self.#toActorQueueMessage(message);\n\t\t}\n\n\t\tfunction nextBatch<\n\t\t\tconst TName extends QueueFilterName<TQueues>,\n\t\t\tconst TCompletable extends boolean = false,\n\t\t>(\n\t\t\tname: string,\n\t\t\topts?: WorkflowActorQueueNextBatchOptions<TName, TCompletable>,\n\t\t): Promise<Array<QueueResultMessageForName<TQueues, TName, TCompletable>>>;\n\t\tfunction nextBatch<const TCompletable extends boolean = false>(\n\t\t\tname: string,\n\t\t\topts?: WorkflowActorQueueNextBatchOptionsFallback<TCompletable>,\n\t\t): Promise<\n\t\t\tArray<\n\t\t\t\tQueueResultMessageForName<\n\t\t\t\t\tTQueues,\n\t\t\t\t\tQueueFilterName<TQueues>,\n\t\t\t\t\tTCompletable\n\t\t\t\t>\n\t\t\t>\n\t\t>;\n\t\tasync function nextBatch(\n\t\t\tname: string,\n\t\t\topts?: WorkflowActorQueueNextBatchOptions<string, boolean>,\n\t\t): Promise<Array<WorkflowQueueMessage<unknown>>> {\n\t\t\tconst messages = await self.#inner.queue.nextBatch(name, opts);\n\t\t\treturn messages.map((message) => self.#toActorQueueMessage(message));\n\t\t}\n\n\t\tfunction send<K extends keyof TQueues & string>(\n\t\t\tname: K,\n\t\t\tbody: InferSchemaMap<TQueues>[K],\n\t\t): Promise<void>;\n\t\tfunction send(\n\t\t\tname: keyof TQueues extends never ? string : never,\n\t\t\tbody: unknown,\n\t\t): Promise<void>;\n\t\tasync function send(name: string, body: unknown): Promise<void> {\n\t\t\tself.#ensureActorAccess(\"queue.send\");\n\t\t\tawait self.#runCtx.queue.send(name as never, body as never);\n\t\t}\n\n\t\treturn {\n\t\t\tnext,\n\t\t\tnextBatch,\n\t\t\tsend,\n\t\t};\n\t}\n\n\tasync step<T>(\n\t\tnameOrConfig: string | Parameters<WorkflowContextInterface[\"step\"]>[0],\n\t\trun?: () => Promise<T>,\n\t): Promise<T> {\n\t\tif (typeof nameOrConfig === \"string\") {\n\t\t\tif (!run) {\n\t\t\t\tthrow new Error(\"Step run function missing\");\n\t\t\t}\n\t\t\treturn await this.#wrapActive(() =>\n\t\t\t\tthis.#inner.step(nameOrConfig, () => this.#withActorAccess(run)),\n\t\t\t);\n\t\t}\n\t\tconst stepConfig = nameOrConfig as StepConfig<T>;\n\t\tconst config: StepConfig<T> = {\n\t\t\t...stepConfig,\n\t\t\trun: () => this.#withActorAccess(stepConfig.run),\n\t\t};\n\t\treturn await this.#wrapActive(() => this.#inner.step(config));\n\t}\n\n\tasync loop<T>(\n\t\tname: string,\n\t\trun: (\n\t\t\tctx: ActorWorkflowContext<\n\t\t\t\tTState,\n\t\t\t\tTConnParams,\n\t\t\t\tTConnState,\n\t\t\t\tTVars,\n\t\t\t\tTInput,\n\t\t\t\tTDatabase,\n\t\t\t\tTEvents,\n\t\t\t\tTQueues\n\t\t\t>,\n\t\t) => Promise<LoopResult<undefined, T> | void>,\n\t): Promise<T>;\n\tasync loop<T>(\n\t\tname: string,\n\t\trun: (\n\t\t\tctx: WorkflowContextInterface,\n\t\t) => Promise<LoopResult<undefined, T> | void>,\n\t): Promise<T>;\n\tasync loop<S, T>(\n\t\tconfig: ActorWorkflowLoopConfig<\n\t\t\tS,\n\t\t\tT,\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t): Promise<T>;\n\tasync loop<S, T>(config: LoopConfig<S, T>): Promise<T>;\n\tasync loop(\n\t\tnameOrConfig:\n\t\t\t| string\n\t\t\t| LoopConfig<any, any>\n\t\t\t| ActorWorkflowLoopConfig<\n\t\t\t\t\tany,\n\t\t\t\t\tany,\n\t\t\t\t\tTState,\n\t\t\t\t\tTConnParams,\n\t\t\t\t\tTConnState,\n\t\t\t\t\tTVars,\n\t\t\t\t\tTInput,\n\t\t\t\t\tTDatabase,\n\t\t\t\t\tTEvents,\n\t\t\t\t\tTQueues\n\t\t\t >,\n\t\trun?: (\n\t\t\tctx: ActorWorkflowContext<\n\t\t\t\tTState,\n\t\t\t\tTConnParams,\n\t\t\t\tTConnState,\n\t\t\t\tTVars,\n\t\t\t\tTInput,\n\t\t\t\tTDatabase,\n\t\t\t\tTEvents,\n\t\t\t\tTQueues\n\t\t\t>,\n\t\t) => Promise<LoopResult<undefined, any> | void>,\n\t): Promise<any> {\n\t\tif (typeof nameOrConfig === \"string\") {\n\t\t\tif (!run) {\n\t\t\t\tthrow new Error(\"Loop run function missing\");\n\t\t\t}\n\t\t\treturn await this.#wrapActive(() =>\n\t\t\t\tthis.#inner.loop(nameOrConfig, async (ctx) =>\n\t\t\t\t\trun(this.#createChildContext(ctx)),\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tconst wrapped: LoopConfig<any, any> = {\n\t\t\t...nameOrConfig,\n\t\t\trun: async (ctx, state) =>\n\t\t\t\tnameOrConfig.run(this.#createChildContext(ctx), state),\n\t\t};\n\t\treturn await this.#wrapActive(() => this.#inner.loop(wrapped));\n\t}\n\n\tsleep(name: string, durationMs: number): Promise<void> {\n\t\treturn this.#inner.sleep(name, durationMs);\n\t}\n\n\tsleepUntil(name: string, timestampMs: number): Promise<void> {\n\t\treturn this.#inner.sleepUntil(name, timestampMs);\n\t}\n\n\tasync rollbackCheckpoint(name: string): Promise<void> {\n\t\tawait this.#wrapActive(() => this.#inner.rollbackCheckpoint(name));\n\t}\n\n\tasync join<\n\t\tT extends Record<\n\t\t\tstring,\n\t\t\tActorWorkflowBranchConfig<\n\t\t\t\tunknown,\n\t\t\t\tTState,\n\t\t\t\tTConnParams,\n\t\t\t\tTConnState,\n\t\t\t\tTVars,\n\t\t\t\tTInput,\n\t\t\t\tTDatabase,\n\t\t\t\tTEvents,\n\t\t\t\tTQueues\n\t\t\t>\n\t\t>,\n\t>(\n\t\tname: string,\n\t\tbranches: T,\n\t): Promise<{ [K in keyof T]: Awaited<ReturnType<T[K][\"run\"]>> }>;\n\tasync join<T extends Record<string, BranchConfig<unknown>>>(\n\t\tname: string,\n\t\tbranches: T,\n\t): Promise<{ [K in keyof T]: BranchOutput<T[K]> }>;\n\tasync join(name: string, branches: Record<string, BranchConfig<unknown>>) {\n\t\tconst wrappedBranches = Object.fromEntries(\n\t\t\tObject.entries(branches).map(([key, branch]) => [\n\t\t\t\tkey,\n\t\t\t\t{\n\t\t\t\t\trun: async (ctx: WorkflowContextInterface) =>\n\t\t\t\t\t\tbranch.run(this.#createChildContext(ctx)),\n\t\t\t\t},\n\t\t\t]),\n\t\t) as Record<string, BranchConfig<unknown>>;\n\t\treturn await this.#wrapActive(() =>\n\t\t\tthis.#inner.join(name, wrappedBranches),\n\t\t);\n\t}\n\n\tasync race<T>(\n\t\tname: string,\n\t\tbranches: Array<{\n\t\t\tname: string;\n\t\t\trun: (\n\t\t\t\tctx: ActorWorkflowContext<\n\t\t\t\t\tTState,\n\t\t\t\t\tTConnParams,\n\t\t\t\t\tTConnState,\n\t\t\t\t\tTVars,\n\t\t\t\t\tTInput,\n\t\t\t\t\tTDatabase,\n\t\t\t\t\tTEvents,\n\t\t\t\t\tTQueues\n\t\t\t\t>,\n\t\t\t) => Promise<T>;\n\t\t}>,\n\t): Promise<{ winner: string; value: T }>;\n\tasync race<T>(\n\t\tname: string,\n\t\tbranches: Array<{\n\t\t\tname: string;\n\t\t\trun: (ctx: WorkflowContextInterface) => Promise<T>;\n\t\t}>,\n\t): Promise<{ winner: string; value: T }> {\n\t\tconst wrappedBranches = branches.map((branch) => ({\n\t\t\tname: branch.name,\n\t\t\trun: (ctx: WorkflowContextInterface) =>\n\t\t\t\tbranch.run(this.#createChildContext(ctx)),\n\t\t}));\n\t\treturn (await this.#wrapActive(() =>\n\t\t\tthis.#inner.race(name, wrappedBranches),\n\t\t)) as { winner: string; value: T };\n\t}\n\n\tasync removed(name: string, originalType: EntryKindType): Promise<void> {\n\t\tawait this.#wrapActive(() => this.#inner.removed(name, originalType));\n\t}\n\n\tisEvicted(): boolean {\n\t\treturn this.#inner.isEvicted();\n\t}\n\n\tget state(): TState extends never ? never : TState {\n\t\tthis.#ensureActorAccess(\"state\");\n\t\treturn this.#runCtx.state as TState extends never ? never : TState;\n\t}\n\n\tget vars(): TVars extends never ? never : TVars {\n\t\tthis.#ensureActorAccess(\"vars\");\n\t\treturn this.#runCtx.vars as TVars extends never ? never : TVars;\n\t}\n\n\tclient<R extends Registry<any>>(): Client<R> {\n\t\tthis.#ensureActorAccess(\"client\");\n\t\treturn this.#runCtx.client<R>();\n\t}\n\n\tget db(): TDatabase extends never ? never : InferDatabaseClient<TDatabase> {\n\t\tthis.#ensureActorAccess(\"db\");\n\t\treturn this.#runCtx.db as TDatabase extends never\n\t\t\t? never\n\t\t\t: InferDatabaseClient<TDatabase>;\n\t}\n\n\tget log() {\n\t\treturn this.#runCtx.log;\n\t}\n\n\tkeepAwake<T>(promise: Promise<T>): Promise<T> {\n\t\tthis.#ensureActorAccess(\"keepAwake\");\n\t\treturn this.#runCtx.keepAwake(promise);\n\t}\n\n\twaitUntil(promise: Promise<void>): void {\n\t\tthis.#ensureActorAccess(\"waitUntil\");\n\t\tthis.#runCtx.waitUntil(promise);\n\t}\n\n\tget actorId(): string {\n\t\treturn this.#runCtx.actorId;\n\t}\n\n\tbroadcast<K extends keyof TEvents & string>(\n\t\tname: K,\n\t\t...args: InferEventArgs<InferSchemaMap<TEvents>[K]>\n\t): void;\n\tbroadcast(\n\t\tname: keyof TEvents extends never ? string : never,\n\t\t...args: Array<unknown>\n\t): void;\n\tbroadcast(name: string, ...args: Array<unknown>): void {\n\t\tthis.#ensureActorAccess(\"broadcast\");\n\t\tthis.#runCtx.broadcast(\n\t\t\tname as never,\n\t\t\t...((args as unknown[]) as never[]),\n\t\t);\n\t}\n\n\t#toActorQueueMessage<T>(\n\t\tmessage: WorkflowQueueMessage<T>,\n\t): WorkflowQueueMessage<T> & { id: bigint } {\n\t\tlet id: bigint;\n\t\ttry {\n\t\t\tid = BigInt(message.id);\n\t\t} catch {\n\t\t\tthrow new Error(`Invalid queue message id \"${message.id}\"`);\n\t\t}\n\t\treturn {\n\t\t\tid,\n\t\t\tname: message.name,\n\t\t\tbody: message.body,\n\t\t\tcreatedAt: message.createdAt,\n\t\t\t...(message.complete ? { complete: message.complete } : {}),\n\t\t};\n\t}\n\n\tasync #wrapActive<T>(run: () => Promise<T>): Promise<T> {\n\t\treturn await this.#runCtx.keepAwake(run());\n\t}\n\n\tasync #withActorAccess<T>(run: () => Promise<T>): Promise<T> {\n\t\tthis.#actorAccessDepth++;\n\t\tif (this.#actorAccessDepth === 1) {\n\t\t\tthis.#allowActorAccess = true;\n\t\t}\n\t\ttry {\n\t\t\treturn await run();\n\t\t} finally {\n\t\t\tthis.#actorAccessDepth--;\n\t\t\tif (this.#actorAccessDepth === 0) {\n\t\t\t\tthis.#allowActorAccess = false;\n\t\t\t}\n\t\t}\n\t}\n\n\t#ensureActorAccess(feature: string): void {\n\t\tif (!this.#allowActorAccess) {\n\t\t\tthis.#guardViolation = true;\n\t\t\tthis.#markGuardTriggered();\n\t\t\tthrow new Error(\n\t\t\t\t`${feature} is only available inside workflow steps`,\n\t\t\t);\n\t\t}\n\t}\n\n\tconsumeGuardViolation(): boolean {\n\t\tconst violated = this.#guardViolation;\n\t\tthis.#guardViolation = false;\n\t\treturn violated;\n\t}\n\n\t#markGuardTriggered(): void {\n\t\ttry {\n\t\t\tconst state = this.#runCtx.state as Record<string, unknown>;\n\t\t\tif (\n\t\t\t\tstate &&\n\t\t\t\ttypeof state === \"object\" &&\n\t\t\t\t\"guardTriggered\" in state\n\t\t\t) {\n\t\t\t\t(state as Record<string, unknown>).guardTriggered = true;\n\t\t\t}\n\t\t} catch {\n\t\t\t// Ignore if state is unavailable\n\t\t}\n\n\t\tthis.#runCtx.waitUntil(\n\t\t\t(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tawait this.#runCtx.kv.put(WORKFLOW_GUARD_KV_KEY, \"true\");\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.#runCtx.log.error({\n\t\t\t\t\t\tmsg: \"failed to persist workflow guard flag\",\n\t\t\t\t\t\terror,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})(),\n\t\t);\n\t}\n\n\t#createChildContext(\n\t\tctx: WorkflowContextInterface,\n\t): ActorWorkflowContext<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t> {\n\t\treturn new ActorWorkflowContext(ctx, this.#runCtx);\n\t}\n}\n\nexport type WorkflowContextOf<AD extends AnyActorDefinition> =\n\tAD extends ActorDefinition<\n\t\tinfer S,\n\t\tinfer CP,\n\t\tinfer CS,\n\t\tinfer V,\n\t\tinfer I,\n\t\tinfer DB extends AnyDatabaseProvider,\n\t\tinfer E extends EventSchemaConfig,\n\t\tinfer Q extends QueueSchemaConfig,\n\t\tany\n\t>\n\t\t? ActorWorkflowContext<S, CP, CS, V, I, DB, E, Q>\n\t\t: never;\n\nexport type WorkflowLoopContextOf<AD extends AnyActorDefinition> =\n\tWorkflowContextOf<AD>;\n\nexport type WorkflowBranchContextOf<AD extends AnyActorDefinition> =\n\tWorkflowContextOf<AD>;\n\nexport type WorkflowStepContextOf<AD extends AnyActorDefinition> =\n\tWorkflowContextOf<AD>;\n","import type { RunContext } from \"@/actor/contexts/run\";\nimport type { AnyActorInstance } from \"@/actor/instance/mod\";\nimport { makeWorkflowKey, workflowStoragePrefix } from \"@/actor/instance/keys\";\nimport type {\n\tEngineDriver,\n\tKVEntry,\n\tKVWrite,\n\tMessage,\n\tWorkflowMessageDriver,\n} from \"@rivetkit/workflow-engine\";\n\nconst WORKFLOW_STORAGE_PREFIX = workflowStoragePrefix();\n\nfunction stripWorkflowKey(prefixed: Uint8Array): Uint8Array {\n\treturn prefixed.slice(WORKFLOW_STORAGE_PREFIX.length);\n}\n\nclass ActorWorkflowMessageDriver implements WorkflowMessageDriver {\n\t#actor: AnyActorInstance;\n\t#runCtx: RunContext<any, any, any, any, any, any, any, any>;\n\n\tconstructor(\n\t\tactor: AnyActorInstance,\n\t\trunCtx: RunContext<any, any, any, any, any, any, any, any>,\n\t) {\n\t\tthis.#actor = actor;\n\t\tthis.#runCtx = runCtx;\n\t}\n\n\tasync addMessage(message: Message): Promise<void> {\n\t\tawait this.#runCtx.keepAwake(\n\t\t\tthis.#actor.queueManager.enqueue(message.name, message.data),\n\t\t);\n\t}\n\n\tasync receiveMessages(opts: {\n\t\tnames?: readonly string[];\n\t\tcount: number;\n\t\tcompletable: boolean;\n\t}): Promise<Message[]> {\n\t\tconst messages = await this.#runCtx.keepAwake(\n\t\t\tthis.#actor.queueManager.receive(\n\t\t\t\topts.names && opts.names.length > 0 ? [...opts.names] : undefined,\n\t\t\t\topts.count,\n\t\t\t\t0,\n\t\t\t\tundefined,\n\t\t\t\topts.completable,\n\t\t\t),\n\t\t);\n\t\treturn messages.map((message) => ({\n\t\t\tid: message.id.toString(),\n\t\t\tname: message.name,\n\t\t\tdata: message.body,\n\t\t\tsentAt: message.createdAt,\n\t\t\t...(opts.completable\n\t\t\t\t? {\n\t\t\t\t\t\tcomplete: async (response?: unknown) => {\n\t\t\t\t\t\t\tawait this.#runCtx.keepAwake(\n\t\t\t\t\t\t\t\tthis.#actor.queueManager.completeMessage(\n\t\t\t\t\t\t\t\t\tmessage,\n\t\t\t\t\t\t\t\t\tresponse,\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t: {}),\n\t\t}));\n\t}\n\n\tasync completeMessage(messageId: string, response?: unknown): Promise<void> {\n\t\tlet parsedId: bigint;\n\t\ttry {\n\t\t\tparsedId = BigInt(messageId);\n\t\t} catch {\n\t\t\treturn;\n\t\t}\n\n\t\tawait this.#runCtx.keepAwake(\n\t\t\tthis.#actor.queueManager.completeMessageById(parsedId, response),\n\t\t);\n\t}\n}\n\nexport class ActorWorkflowDriver implements EngineDriver {\n\treadonly workerPollInterval = 100;\n\treadonly messageDriver: WorkflowMessageDriver;\n\t#actor: AnyActorInstance;\n\t#runCtx: RunContext<any, any, any, any, any, any, any, any>;\n\n\tconstructor(\n\t\tactor: AnyActorInstance,\n\t\trunCtx: RunContext<any, any, any, any, any, any, any, any>,\n\t) {\n\t\tthis.#actor = actor;\n\t\tthis.#runCtx = runCtx;\n\t\tthis.messageDriver = new ActorWorkflowMessageDriver(actor, runCtx);\n\t}\n\n\tasync get(key: Uint8Array): Promise<Uint8Array | null> {\n\t\tconst [value] = await this.#runCtx.keepAwake(\n\t\t\tthis.#actor.driver.kvBatchGet(this.#actor.id, [\n\t\t\t\tmakeWorkflowKey(key),\n\t\t\t]),\n\t\t);\n\t\treturn value ?? null;\n\t}\n\n\tasync set(key: Uint8Array, value: Uint8Array): Promise<void> {\n\t\tawait this.#runCtx.keepAwake(\n\t\t\tthis.#actor.driver.kvBatchPut(this.#actor.id, [\n\t\t\t\t[makeWorkflowKey(key), value],\n\t\t\t]),\n\t\t);\n\t}\n\n\tasync delete(key: Uint8Array): Promise<void> {\n\t\tawait this.#runCtx.keepAwake(\n\t\t\tthis.#actor.driver.kvBatchDelete(this.#actor.id, [\n\t\t\t\tmakeWorkflowKey(key),\n\t\t\t]),\n\t\t);\n\t}\n\n\tasync deletePrefix(prefix: Uint8Array): Promise<void> {\n\t\tconst entries = await this.#runCtx.keepAwake(\n\t\t\tthis.#actor.driver.kvListPrefix(\n\t\t\t\tthis.#actor.id,\n\t\t\t\tmakeWorkflowKey(prefix),\n\t\t\t),\n\t\t);\n\t\tif (entries.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tawait this.#runCtx.keepAwake(\n\t\t\tthis.#actor.driver.kvBatchDelete(\n\t\t\t\tthis.#actor.id,\n\t\t\t\tentries.map(([key]) => key),\n\t\t\t),\n\t\t);\n\t}\n\n\tasync list(prefix: Uint8Array): Promise<KVEntry[]> {\n\t\tconst entries = await this.#runCtx.keepAwake(\n\t\t\tthis.#actor.driver.kvListPrefix(\n\t\t\t\tthis.#actor.id,\n\t\t\t\tmakeWorkflowKey(prefix),\n\t\t\t),\n\t\t);\n\t\treturn entries.map(([key, value]) => ({\n\t\t\tkey: stripWorkflowKey(key),\n\t\t\tvalue,\n\t\t}));\n\t}\n\n\tasync batch(writes: KVWrite[]): Promise<void> {\n\t\tif (writes.length === 0) return;\n\n\t\t// Flush actor state together with workflow state to ensure atomicity.\n\t\t// If the server crashes after workflow flush, actor state must also be persisted.\n\t\tawait this.#runCtx.keepAwake(\n\t\t\tPromise.all([\n\t\t\t\tthis.#actor.driver.kvBatchPut(\n\t\t\t\t\tthis.#actor.id,\n\t\t\t\t\twrites.map(({ key, value }) => [makeWorkflowKey(key), value]),\n\t\t\t\t),\n\t\t\t\tthis.#actor.stateManager.saveState({\n\t\t\t\t\timmediate: true,\n\t\t\t\t\tallowStoppingState: true,\n\t\t\t\t}),\n\t\t\t]),\n\t\t);\n\t}\n\n\tasync setAlarm(_workflowId: string, wakeAt: number): Promise<void> {\n\t\tawait this.#runCtx.keepAwake(\n\t\t\tthis.#actor.driver.setAlarm(this.#actor, wakeAt),\n\t\t);\n\t}\n\n\tasync clearAlarm(_workflowId: string): Promise<void> {\n\t\t// No dedicated clear alarm support in actor drivers.\n\t\treturn;\n\t}\n\n\twaitForMessages(\n\t\tmessageNames: string[],\n\t\tabortSignal: AbortSignal,\n\t): Promise<void> {\n\t\treturn this.#actor.queueManager.waitForNames(\n\t\t\tmessageNames.length > 0 ? messageNames : undefined,\n\t\t\tabortSignal,\n\t\t);\n\t}\n}\n","import * as cbor from \"cbor-x\";\nimport { createNanoEvents } from \"nanoevents\";\nimport type {\n\tBranchStatus,\n\tBranchStatusType,\n\tEntryKind,\n\tEntryStatus,\n\tLocation,\n\tSleepState,\n\tWorkflowHistoryEntry,\n\tWorkflowHistorySnapshot,\n\tWorkflowEntryMetadataSnapshot,\n} from \"@rivetkit/workflow-engine\";\nimport { encodeWorkflowHistoryTransport } from \"@/inspector/transport\";\nimport type * as inspectorSchema from \"@/schemas/actor-inspector/mod\";\nimport * as transport from \"@/schemas/transport/mod\";\nimport { assertUnreachable, bufferToArrayBuffer } from \"@/utils\";\n\nexport interface WorkflowInspectorAdapter {\n\tgetHistory: () => inspectorSchema.WorkflowHistory | null;\n\tonHistoryUpdated: (\n\t\tlistener: (history: inspectorSchema.WorkflowHistory) => void,\n\t) => () => void;\n}\n\nexport function createWorkflowInspectorAdapter(): {\n\tadapter: WorkflowInspectorAdapter;\n\tupdate: (snapshot: WorkflowHistorySnapshot) => void;\n} {\n\tconst emitter = createNanoEvents<{\n\t\tupdated: (history: inspectorSchema.WorkflowHistory) => void;\n\t}>();\n\tlet history: inspectorSchema.WorkflowHistory | null = null;\n\n\tconst adapter: WorkflowInspectorAdapter = {\n\t\tgetHistory: () => history,\n\t\tonHistoryUpdated: (listener) => emitter.on(\"updated\", listener),\n\t};\n\n\tconst update = (snapshot: WorkflowHistorySnapshot) => {\n\t\tconst transportHistory = toWorkflowHistory(snapshot);\n\t\tconst next = encodeWorkflowHistoryTransport(transportHistory);\n\t\thistory = next;\n\t\temitter.emit(\"updated\", next);\n\t};\n\n\treturn { adapter, update };\n}\n\nfunction encodeCbor(value: unknown): ArrayBuffer {\n\treturn bufferToArrayBuffer(cbor.encode(value));\n}\n\nfunction encodeOptionalCbor(value: unknown): ArrayBuffer | null {\n\tif (value === undefined) {\n\t\treturn null;\n\t}\n\treturn encodeCbor(value);\n}\n\nfunction toU64(value: number): bigint {\n\treturn BigInt(Math.max(0, Math.floor(value)));\n}\n\nfunction toWorkflowLocation(\n\tlocation: Location,\n): transport.WorkflowLocation {\n\treturn location.map((segment) => {\n\t\tif (typeof segment === \"number\") {\n\t\t\treturn { tag: \"WorkflowNameIndex\", val: segment };\n\t\t}\n\t\treturn {\n\t\t\ttag: \"WorkflowLoopIterationMarker\",\n\t\t\tval: {\n\t\t\t\tloop: segment.loop,\n\t\t\t\titeration: segment.iteration,\n\t\t\t},\n\t\t};\n\t});\n}\n\nfunction toWorkflowEntryKind(\n\tkind: EntryKind,\n): transport.WorkflowEntryKind {\n\tswitch (kind.type) {\n\t\tcase \"step\":\n\t\t\treturn {\n\t\t\t\ttag: \"WorkflowStepEntry\",\n\t\t\t\tval: {\n\t\t\t\t\toutput: encodeOptionalCbor(kind.data.output),\n\t\t\t\t\terror: kind.data.error ?? null,\n\t\t\t\t},\n\t\t\t};\n\t\tcase \"loop\":\n\t\t\treturn {\n\t\t\t\ttag: \"WorkflowLoopEntry\",\n\t\t\t\tval: {\n\t\t\t\t\tstate: encodeCbor(kind.data.state),\n\t\t\t\t\titeration: kind.data.iteration,\n\t\t\t\t\toutput: encodeOptionalCbor(kind.data.output),\n\t\t\t\t},\n\t\t\t};\n\t\tcase \"sleep\":\n\t\t\treturn {\n\t\t\t\ttag: \"WorkflowSleepEntry\",\n\t\t\t\tval: {\n\t\t\t\t\tdeadline: toU64(kind.data.deadline),\n\t\t\t\t\tstate: toWorkflowSleepState(kind.data.state),\n\t\t\t\t},\n\t\t\t};\n\t\tcase \"message\":\n\t\t\treturn {\n\t\t\t\ttag: \"WorkflowMessageEntry\",\n\t\t\t\tval: {\n\t\t\t\t\tname: kind.data.name,\n\t\t\t\t\tmessageData: encodeCbor(kind.data.data),\n\t\t\t\t},\n\t\t\t};\n\t\tcase \"rollback_checkpoint\":\n\t\t\treturn {\n\t\t\t\ttag: \"WorkflowRollbackCheckpointEntry\",\n\t\t\t\tval: { name: kind.data.name },\n\t\t\t};\n\t\tcase \"join\":\n\t\t\treturn {\n\t\t\t\ttag: \"WorkflowJoinEntry\",\n\t\t\t\tval: { branches: toWorkflowBranchStatusMap(kind.data.branches) },\n\t\t\t};\n\t\tcase \"race\":\n\t\t\treturn {\n\t\t\t\ttag: \"WorkflowRaceEntry\",\n\t\t\t\tval: {\n\t\t\t\t\twinner: kind.data.winner ?? null,\n\t\t\t\t\tbranches: toWorkflowBranchStatusMap(kind.data.branches),\n\t\t\t\t},\n\t\t\t};\n\t\tcase \"removed\":\n\t\t\treturn {\n\t\t\t\ttag: \"WorkflowRemovedEntry\",\n\t\t\t\tval: {\n\t\t\t\t\toriginalType: kind.data.originalType,\n\t\t\t\t\toriginalName: kind.data.originalName ?? null,\n\t\t\t\t},\n\t\t\t};\n\t\tdefault:\n\t\t\tassertUnreachable(kind as never);\n\t}\n}\n\nfunction toWorkflowEntry(\n\tentry: WorkflowHistoryEntry,\n): transport.WorkflowEntry {\n\treturn {\n\t\tid: entry.id,\n\t\tlocation: toWorkflowLocation(entry.location),\n\t\tkind: toWorkflowEntryKind(entry.kind),\n\t};\n}\n\nfunction toWorkflowEntryStatus(\n\tstatus: EntryStatus,\n): transport.WorkflowEntryStatus {\n\tswitch (status) {\n\t\tcase \"pending\":\n\t\t\treturn transport.WorkflowEntryStatus.PENDING;\n\t\tcase \"running\":\n\t\t\treturn transport.WorkflowEntryStatus.RUNNING;\n\t\tcase \"completed\":\n\t\t\treturn transport.WorkflowEntryStatus.COMPLETED;\n\t\tcase \"failed\":\n\t\t\treturn transport.WorkflowEntryStatus.FAILED;\n\t\tcase \"exhausted\":\n\t\t\treturn transport.WorkflowEntryStatus.EXHAUSTED;\n\t\tdefault:\n\t\t\tassertUnreachable(status as never);\n\t}\n}\n\nfunction toWorkflowSleepState(\n\tstate: SleepState,\n): transport.WorkflowSleepState {\n\tswitch (state) {\n\t\tcase \"pending\":\n\t\t\treturn transport.WorkflowSleepState.PENDING;\n\t\tcase \"completed\":\n\t\t\treturn transport.WorkflowSleepState.COMPLETED;\n\t\tcase \"interrupted\":\n\t\t\treturn transport.WorkflowSleepState.INTERRUPTED;\n\t\tdefault:\n\t\t\tassertUnreachable(state as never);\n\t}\n}\n\nfunction toWorkflowBranchStatusType(\n\tstatus: BranchStatusType,\n): transport.WorkflowBranchStatusType {\n\tswitch (status) {\n\t\tcase \"pending\":\n\t\t\treturn transport.WorkflowBranchStatusType.PENDING;\n\t\tcase \"running\":\n\t\t\treturn transport.WorkflowBranchStatusType.RUNNING;\n\t\tcase \"completed\":\n\t\t\treturn transport.WorkflowBranchStatusType.COMPLETED;\n\t\tcase \"failed\":\n\t\t\treturn transport.WorkflowBranchStatusType.FAILED;\n\t\tcase \"cancelled\":\n\t\t\treturn transport.WorkflowBranchStatusType.CANCELLED;\n\t\tdefault:\n\t\t\tassertUnreachable(status as never);\n\t}\n}\n\nfunction toWorkflowBranchStatus(\n\tstatus: BranchStatus,\n): transport.WorkflowBranchStatus {\n\treturn {\n\t\tstatus: toWorkflowBranchStatusType(status.status),\n\t\toutput: encodeOptionalCbor(status.output),\n\t\terror: status.error ?? null,\n\t};\n}\n\nfunction toWorkflowBranchStatusMap(\n\tbranches: Record<string, BranchStatus>,\n): ReadonlyMap<string, transport.WorkflowBranchStatus> {\n\treturn new Map(\n\t\tObject.entries(branches).map(([name, status]) => [\n\t\t\tname,\n\t\t\ttoWorkflowBranchStatus(status),\n\t\t]),\n\t);\n}\n\nfunction toWorkflowEntryMetadata(\n\tmetadata: WorkflowEntryMetadataSnapshot,\n): transport.WorkflowEntryMetadata {\n\treturn {\n\t\tstatus: toWorkflowEntryStatus(metadata.status),\n\t\terror: metadata.error ?? null,\n\t\tattempts: metadata.attempts,\n\t\tlastAttemptAt: toU64(metadata.lastAttemptAt),\n\t\tcreatedAt: toU64(metadata.createdAt),\n\t\tcompletedAt:\n\t\t\tmetadata.completedAt === undefined\n\t\t\t\t? null\n\t\t\t\t: toU64(metadata.completedAt),\n\t\trollbackCompletedAt:\n\t\t\tmetadata.rollbackCompletedAt === undefined\n\t\t\t\t? null\n\t\t\t\t: toU64(metadata.rollbackCompletedAt),\n\t\trollbackError: metadata.rollbackError ?? null,\n\t};\n}\n\nfunction toWorkflowHistory(\n\tsnapshot: WorkflowHistorySnapshot,\n): transport.WorkflowHistory {\n\tconst entryMetadata = new Map<string, transport.WorkflowEntryMetadata>();\n\tfor (const [id, metadata] of snapshot.entryMetadata) {\n\t\tentryMetadata.set(id, toWorkflowEntryMetadata(metadata));\n\t}\n\n\treturn {\n\t\tnameRegistry: snapshot.nameRegistry,\n\t\tentries: snapshot.entries.map((entry) => toWorkflowEntry(entry)),\n\t\tentryMetadata,\n\t};\n}\n"]}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunk7WF2QSICcjs = require('./chunk-7WF2QSIC.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _chunkOAXJWGMUcjs = require('./chunk-OAXJWGMU.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
var _chunk6LJAZ5R4cjs = require('./chunk-6LJAZ5R4.cjs');
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _chunkHYPIHCDTcjs = require('./chunk-HYPIHCDT.cjs');
|
|
16
16
|
|
|
17
17
|
// src/driver-test-suite/log.ts
|
|
18
18
|
function logger() {
|
|
19
|
-
return
|
|
19
|
+
return _chunkHYPIHCDTcjs.getLogger.call(void 0, "test-suite");
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
// fixtures/driver-test-suite/hibernation.ts
|
|
23
23
|
var HIBERNATION_SLEEP_TIMEOUT = 500;
|
|
24
|
-
var hibernationActor =
|
|
24
|
+
var hibernationActor = _chunkOAXJWGMUcjs.actor.call(void 0, {
|
|
25
25
|
state: {
|
|
26
26
|
sleepCount: 0,
|
|
27
27
|
wakeCount: 0
|
|
@@ -89,7 +89,7 @@ var hibernationActor = _chunkBMNB6YRQcjs.actor.call(void 0, {
|
|
|
89
89
|
|
|
90
90
|
// fixtures/driver-test-suite/sleep.ts
|
|
91
91
|
var SLEEP_TIMEOUT = 1e3;
|
|
92
|
-
var sleep =
|
|
92
|
+
var sleep = _chunkOAXJWGMUcjs.actor.call(void 0, {
|
|
93
93
|
state: { startCount: 0, sleepCount: 0 },
|
|
94
94
|
onWake: (c) => {
|
|
95
95
|
c.state.startCount += 1;
|
|
@@ -118,7 +118,7 @@ var sleep = _chunkBMNB6YRQcjs.actor.call(void 0, {
|
|
|
118
118
|
sleepTimeout: SLEEP_TIMEOUT
|
|
119
119
|
}
|
|
120
120
|
});
|
|
121
|
-
var sleepWithLongRpc =
|
|
121
|
+
var sleepWithLongRpc = _chunkOAXJWGMUcjs.actor.call(void 0, {
|
|
122
122
|
state: { startCount: 0, sleepCount: 0 },
|
|
123
123
|
createVars: () => ({}),
|
|
124
124
|
onWake: (c) => {
|
|
@@ -136,7 +136,7 @@ var sleepWithLongRpc = _chunkBMNB6YRQcjs.actor.call(void 0, {
|
|
|
136
136
|
},
|
|
137
137
|
longRunningRpc: async (c) => {
|
|
138
138
|
c.log.info("starting long running rpc");
|
|
139
|
-
c.vars.longRunningResolve =
|
|
139
|
+
c.vars.longRunningResolve = _chunkHYPIHCDTcjs.promiseWithResolvers.call(void 0, (reason) => c.log.warn({ msg: "unhandled long running rpc rejection", reason }));
|
|
140
140
|
c.broadcast("waiting");
|
|
141
141
|
await c.vars.longRunningResolve.promise;
|
|
142
142
|
c.log.info("finished long running rpc");
|
|
@@ -150,7 +150,7 @@ var sleepWithLongRpc = _chunkBMNB6YRQcjs.actor.call(void 0, {
|
|
|
150
150
|
sleepTimeout: SLEEP_TIMEOUT
|
|
151
151
|
}
|
|
152
152
|
});
|
|
153
|
-
var sleepWithRawHttp =
|
|
153
|
+
var sleepWithRawHttp = _chunkOAXJWGMUcjs.actor.call(void 0, {
|
|
154
154
|
state: { startCount: 0, sleepCount: 0, requestCount: 0 },
|
|
155
155
|
onWake: (c) => {
|
|
156
156
|
c.state.startCount += 1;
|
|
@@ -187,7 +187,7 @@ var sleepWithRawHttp = _chunkBMNB6YRQcjs.actor.call(void 0, {
|
|
|
187
187
|
sleepTimeout: SLEEP_TIMEOUT
|
|
188
188
|
}
|
|
189
189
|
});
|
|
190
|
-
var sleepWithRawWebSocket =
|
|
190
|
+
var sleepWithRawWebSocket = _chunkOAXJWGMUcjs.actor.call(void 0, {
|
|
191
191
|
state: { startCount: 0, sleepCount: 0, connectionCount: 0 },
|
|
192
192
|
onWake: (c) => {
|
|
193
193
|
c.state.startCount += 1;
|
|
@@ -250,7 +250,7 @@ var sleepWithRawWebSocket = _chunkBMNB6YRQcjs.actor.call(void 0, {
|
|
|
250
250
|
sleepTimeout: SLEEP_TIMEOUT
|
|
251
251
|
}
|
|
252
252
|
});
|
|
253
|
-
var sleepWithNoSleepOption =
|
|
253
|
+
var sleepWithNoSleepOption = _chunkOAXJWGMUcjs.actor.call(void 0, {
|
|
254
254
|
state: { startCount: 0, sleepCount: 0 },
|
|
255
255
|
onWake: (c) => {
|
|
256
256
|
c.state.startCount += 1;
|
|
@@ -274,7 +274,7 @@ var sleepWithNoSleepOption = _chunkBMNB6YRQcjs.actor.call(void 0, {
|
|
|
274
274
|
|
|
275
275
|
// fixtures/driver-test-suite/run.ts
|
|
276
276
|
var RUN_SLEEP_TIMEOUT = 1e3;
|
|
277
|
-
var runWithTicks =
|
|
277
|
+
var runWithTicks = _chunkOAXJWGMUcjs.actor.call(void 0, {
|
|
278
278
|
state: {
|
|
279
279
|
tickCount: 0,
|
|
280
280
|
lastTickAt: 0,
|
|
@@ -316,7 +316,7 @@ var runWithTicks = _chunkBMNB6YRQcjs.actor.call(void 0, {
|
|
|
316
316
|
runStopTimeout: 1e3
|
|
317
317
|
}
|
|
318
318
|
});
|
|
319
|
-
var runWithQueueConsumer =
|
|
319
|
+
var runWithQueueConsumer = _chunkOAXJWGMUcjs.actor.call(void 0, {
|
|
320
320
|
state: {
|
|
321
321
|
messagesReceived: [],
|
|
322
322
|
runStarted: false,
|
|
@@ -358,7 +358,7 @@ var runWithQueueConsumer = _chunkBMNB6YRQcjs.actor.call(void 0, {
|
|
|
358
358
|
runStopTimeout: 1e3
|
|
359
359
|
}
|
|
360
360
|
});
|
|
361
|
-
var runWithEarlyExit =
|
|
361
|
+
var runWithEarlyExit = _chunkOAXJWGMUcjs.actor.call(void 0, {
|
|
362
362
|
state: {
|
|
363
363
|
runStarted: false,
|
|
364
364
|
destroyCalled: false
|
|
@@ -382,7 +382,7 @@ var runWithEarlyExit = _chunkBMNB6YRQcjs.actor.call(void 0, {
|
|
|
382
382
|
sleepTimeout: RUN_SLEEP_TIMEOUT
|
|
383
383
|
}
|
|
384
384
|
});
|
|
385
|
-
var runWithError =
|
|
385
|
+
var runWithError = _chunkOAXJWGMUcjs.actor.call(void 0, {
|
|
386
386
|
state: {
|
|
387
387
|
runStarted: false,
|
|
388
388
|
destroyCalled: false
|
|
@@ -406,7 +406,7 @@ var runWithError = _chunkBMNB6YRQcjs.actor.call(void 0, {
|
|
|
406
406
|
sleepTimeout: RUN_SLEEP_TIMEOUT
|
|
407
407
|
}
|
|
408
408
|
});
|
|
409
|
-
var runWithoutHandler =
|
|
409
|
+
var runWithoutHandler = _chunkOAXJWGMUcjs.actor.call(void 0, {
|
|
410
410
|
state: {
|
|
411
411
|
wakeCount: 0
|
|
412
412
|
},
|
|
@@ -426,13 +426,13 @@ var runWithoutHandler = _chunkBMNB6YRQcjs.actor.call(void 0, {
|
|
|
426
426
|
// fixtures/driver-test-suite/workflow.ts
|
|
427
427
|
var _workflowengine = require('@rivetkit/workflow-engine');
|
|
428
428
|
var WORKFLOW_QUEUE_NAME = "workflow-default";
|
|
429
|
-
var workflowCounterActor =
|
|
429
|
+
var workflowCounterActor = _chunkOAXJWGMUcjs.actor.call(void 0, {
|
|
430
430
|
state: {
|
|
431
431
|
runCount: 0,
|
|
432
432
|
guardTriggered: false,
|
|
433
433
|
history: []
|
|
434
434
|
},
|
|
435
|
-
run:
|
|
435
|
+
run: _chunk7WF2QSICcjs.workflow.call(void 0, async (ctx) => {
|
|
436
436
|
await ctx.loop("counter", async (loopCtx) => {
|
|
437
437
|
try {
|
|
438
438
|
loopCtx.state;
|
|
@@ -447,7 +447,7 @@ var workflowCounterActor = _chunkBMNB6YRQcjs.actor.call(void 0, {
|
|
|
447
447
|
}),
|
|
448
448
|
actions: {
|
|
449
449
|
getState: async (c) => {
|
|
450
|
-
const guardFlag = await c.kv.get(
|
|
450
|
+
const guardFlag = await c.kv.get(_chunk7WF2QSICcjs.WORKFLOW_GUARD_KV_KEY);
|
|
451
451
|
if (guardFlag === "true") {
|
|
452
452
|
c.state.guardTriggered = true;
|
|
453
453
|
}
|
|
@@ -458,14 +458,14 @@ var workflowCounterActor = _chunkBMNB6YRQcjs.actor.call(void 0, {
|
|
|
458
458
|
sleepTimeout: 50
|
|
459
459
|
}
|
|
460
460
|
});
|
|
461
|
-
var workflowQueueActor =
|
|
461
|
+
var workflowQueueActor = _chunkOAXJWGMUcjs.actor.call(void 0, {
|
|
462
462
|
state: {
|
|
463
463
|
received: []
|
|
464
464
|
},
|
|
465
465
|
queues: {
|
|
466
|
-
[WORKFLOW_QUEUE_NAME]:
|
|
466
|
+
[WORKFLOW_QUEUE_NAME]: _chunkOAXJWGMUcjs.queue.call(void 0, )
|
|
467
467
|
},
|
|
468
|
-
run:
|
|
468
|
+
run: _chunk7WF2QSICcjs.workflow.call(void 0, async (ctx) => {
|
|
469
469
|
await ctx.loop("queue", async (loopCtx) => {
|
|
470
470
|
const message = await loopCtx.queue.next("queue-wait", {
|
|
471
471
|
names: [WORKFLOW_QUEUE_NAME],
|
|
@@ -494,7 +494,7 @@ var workflowQueueActor = _chunkBMNB6YRQcjs.actor.call(void 0, {
|
|
|
494
494
|
}
|
|
495
495
|
}
|
|
496
496
|
});
|
|
497
|
-
var workflowAccessActor =
|
|
497
|
+
var workflowAccessActor = _chunkOAXJWGMUcjs.actor.call(void 0, {
|
|
498
498
|
db: _chunk6LJAZ5R4cjs.db.call(void 0, {
|
|
499
499
|
onMigrate: async (rawDb) => {
|
|
500
500
|
await rawDb.execute(`
|
|
@@ -511,7 +511,7 @@ var workflowAccessActor = _chunkBMNB6YRQcjs.actor.call(void 0, {
|
|
|
511
511
|
insideDbCount: 0,
|
|
512
512
|
insideClientAvailable: false
|
|
513
513
|
},
|
|
514
|
-
run:
|
|
514
|
+
run: _chunk7WF2QSICcjs.workflow.call(void 0, async (ctx) => {
|
|
515
515
|
await ctx.loop("access", async (loopCtx) => {
|
|
516
516
|
let outsideDbError = null;
|
|
517
517
|
let outsideClientError = null;
|
|
@@ -540,11 +540,11 @@ var workflowAccessActor = _chunkBMNB6YRQcjs.actor.call(void 0, {
|
|
|
540
540
|
getState: (c) => c.state
|
|
541
541
|
}
|
|
542
542
|
});
|
|
543
|
-
var workflowSleepActor =
|
|
543
|
+
var workflowSleepActor = _chunkOAXJWGMUcjs.actor.call(void 0, {
|
|
544
544
|
state: {
|
|
545
545
|
ticks: 0
|
|
546
546
|
},
|
|
547
|
-
run:
|
|
547
|
+
run: _chunk7WF2QSICcjs.workflow.call(void 0, async (ctx) => {
|
|
548
548
|
await ctx.loop("sleep", async (loopCtx) => {
|
|
549
549
|
await loopCtx.step("tick", async () => {
|
|
550
550
|
incrementWorkflowSleepTick(loopCtx);
|
|
@@ -560,13 +560,13 @@ var workflowSleepActor = _chunkBMNB6YRQcjs.actor.call(void 0, {
|
|
|
560
560
|
sleepTimeout: 50
|
|
561
561
|
}
|
|
562
562
|
});
|
|
563
|
-
var workflowStopTeardownActor =
|
|
563
|
+
var workflowStopTeardownActor = _chunkOAXJWGMUcjs.actor.call(void 0, {
|
|
564
564
|
state: {
|
|
565
565
|
wakeAts: [],
|
|
566
566
|
sleepAts: []
|
|
567
567
|
},
|
|
568
568
|
queues: {
|
|
569
|
-
never:
|
|
569
|
+
never: _chunkOAXJWGMUcjs.queue.call(void 0, )
|
|
570
570
|
},
|
|
571
571
|
onWake: (c) => {
|
|
572
572
|
c.state.wakeAts.push(Date.now());
|
|
@@ -574,7 +574,7 @@ var workflowStopTeardownActor = _chunkBMNB6YRQcjs.actor.call(void 0, {
|
|
|
574
574
|
onSleep: (c) => {
|
|
575
575
|
c.state.sleepAts.push(Date.now());
|
|
576
576
|
},
|
|
577
|
-
run:
|
|
577
|
+
run: _chunk7WF2QSICcjs.workflow.call(void 0, async (ctx) => {
|
|
578
578
|
await ctx.loop("wait-forever", async (loopCtx) => {
|
|
579
579
|
await loopCtx.queue.next("wait-for-never", {
|
|
580
580
|
names: ["never"]
|
|
@@ -642,4 +642,4 @@ function incrementWorkflowSleepTick(ctx) {
|
|
|
642
642
|
|
|
643
643
|
|
|
644
644
|
exports.logger = logger; exports.HIBERNATION_SLEEP_TIMEOUT = HIBERNATION_SLEEP_TIMEOUT; exports.hibernationActor = hibernationActor; exports.SLEEP_TIMEOUT = SLEEP_TIMEOUT; exports.sleep = sleep; exports.sleepWithLongRpc = sleepWithLongRpc; exports.sleepWithRawHttp = sleepWithRawHttp; exports.sleepWithRawWebSocket = sleepWithRawWebSocket; exports.sleepWithNoSleepOption = sleepWithNoSleepOption; exports.RUN_SLEEP_TIMEOUT = RUN_SLEEP_TIMEOUT; exports.runWithTicks = runWithTicks; exports.runWithQueueConsumer = runWithQueueConsumer; exports.runWithEarlyExit = runWithEarlyExit; exports.runWithError = runWithError; exports.runWithoutHandler = runWithoutHandler; exports.WORKFLOW_QUEUE_NAME = WORKFLOW_QUEUE_NAME; exports.workflowCounterActor = workflowCounterActor; exports.workflowQueueActor = workflowQueueActor; exports.workflowAccessActor = workflowAccessActor; exports.workflowSleepActor = workflowSleepActor; exports.workflowStopTeardownActor = workflowStopTeardownActor;
|
|
645
|
-
//# sourceMappingURL=chunk-
|
|
645
|
+
//# sourceMappingURL=chunk-D2SPAJVT.cjs.map
|