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.
Files changed (112) hide show
  1. package/dist/browser/client.d.ts +11 -0
  2. package/dist/browser/client.js +1 -1
  3. package/dist/browser/client.js.map +1 -1
  4. package/dist/browser/inspector/client.js +1 -1
  5. package/dist/browser/inspector/client.js.map +1 -1
  6. package/dist/inspector.tar.gz +0 -0
  7. package/dist/tsup/{chunk-OAOF23ZY.js → chunk-2OK7S6QF.js} +2 -2
  8. package/dist/tsup/{chunk-5AZ6UPEF.cjs → chunk-7WF2QSIC.cjs} +24 -20
  9. package/dist/tsup/chunk-7WF2QSIC.cjs.map +1 -0
  10. package/dist/tsup/{chunk-IJAGZS57.cjs → chunk-D2SPAJVT.cjs} +30 -30
  11. package/dist/tsup/{chunk-IJAGZS57.cjs.map → chunk-D2SPAJVT.cjs.map} +1 -1
  12. package/dist/tsup/{chunk-YET3IZD6.js → chunk-EIATSBYZ.js} +2 -2
  13. package/dist/tsup/{chunk-YET3IZD6.js.map → chunk-EIATSBYZ.js.map} +1 -1
  14. package/dist/tsup/{chunk-DADGS67O.cjs → chunk-GQGRQDRL.cjs} +4 -4
  15. package/dist/tsup/{chunk-DADGS67O.cjs.map → chunk-GQGRQDRL.cjs.map} +1 -1
  16. package/dist/tsup/{chunk-ZSJ2OTY4.cjs → chunk-HYPIHCDT.cjs} +2 -2
  17. package/dist/tsup/{chunk-ZSJ2OTY4.cjs.map → chunk-HYPIHCDT.cjs.map} +1 -1
  18. package/dist/tsup/{chunk-HPAX7L72.cjs → chunk-IIJNPVPQ.cjs} +152 -152
  19. package/dist/tsup/{chunk-HPAX7L72.cjs.map → chunk-IIJNPVPQ.cjs.map} +1 -1
  20. package/dist/tsup/{chunk-U6VWVHVW.cjs → chunk-JC6BEPE7.cjs} +3 -3
  21. package/dist/tsup/{chunk-U6VWVHVW.cjs.map → chunk-JC6BEPE7.cjs.map} +1 -1
  22. package/dist/tsup/{chunk-N7ASEZ2Y.js → chunk-JPXO2H55.js} +5 -5
  23. package/dist/tsup/{chunk-QUDLEWGD.js → chunk-MIX2KB6U.js} +212 -47
  24. package/dist/tsup/chunk-MIX2KB6U.js.map +1 -0
  25. package/dist/tsup/{chunk-BMNB6YRQ.cjs → chunk-OAXJWGMU.cjs} +212 -305
  26. package/dist/tsup/chunk-OAXJWGMU.cjs.map +1 -0
  27. package/dist/tsup/{chunk-KSZZRTOD.cjs → chunk-PB5AEMKQ.cjs} +3 -5
  28. package/dist/tsup/chunk-PB5AEMKQ.cjs.map +1 -0
  29. package/dist/tsup/{chunk-6T3WSP5M.js → chunk-R5OQUSLN.js} +4 -4
  30. package/dist/tsup/{chunk-POUBQA6Z.js → chunk-S662Y6ZU.js} +2 -2
  31. package/dist/tsup/{chunk-GNGRMP5E.js → chunk-SRIM3GHD.js} +18 -11
  32. package/dist/tsup/chunk-SRIM3GHD.js.map +1 -0
  33. package/dist/tsup/{chunk-MAXIXG56.js → chunk-TADUYCHF.js} +2 -4
  34. package/dist/tsup/chunk-TADUYCHF.js.map +1 -0
  35. package/dist/tsup/{chunk-R64EFI6F.cjs → chunk-TI5PXQGG.cjs} +280 -115
  36. package/dist/tsup/chunk-TI5PXQGG.cjs.map +1 -0
  37. package/dist/tsup/{chunk-T6MM5RTW.cjs → chunk-U5SMSA27.cjs} +250 -243
  38. package/dist/tsup/chunk-U5SMSA27.cjs.map +1 -0
  39. package/dist/tsup/{chunk-6LHZQSWJ.js → chunk-WY2SHWXQ.js} +8 -4
  40. package/dist/tsup/chunk-WY2SHWXQ.js.map +1 -0
  41. package/dist/tsup/{chunk-YLDDENCZ.js → chunk-ZPWOYQHN.js} +126 -219
  42. package/dist/tsup/chunk-ZPWOYQHN.js.map +1 -0
  43. package/dist/tsup/client/mod.cjs +6 -6
  44. package/dist/tsup/client/mod.d.cts +2 -2
  45. package/dist/tsup/client/mod.d.ts +2 -2
  46. package/dist/tsup/client/mod.js +5 -5
  47. package/dist/tsup/common/log.cjs +2 -2
  48. package/dist/tsup/common/log.js +1 -1
  49. package/dist/tsup/common/websocket.cjs +3 -3
  50. package/dist/tsup/common/websocket.js +2 -2
  51. package/dist/tsup/{config-P3XujgRr.d.ts → config-Qj-zLJPc.d.ts} +11 -0
  52. package/dist/tsup/{config-_gfywqqI.d.cts → config-iPj5l1bL.d.cts} +11 -0
  53. package/dist/tsup/{context-uNA4TRn3.d.ts → context-CQCMuHND.d.ts} +1 -1
  54. package/dist/tsup/{context-Bxd8Cx4H.d.cts → context-DzvH1PBK.d.cts} +1 -1
  55. package/dist/tsup/{driver-CPGHKXyh.d.ts → driver-Jo8v-kbU.d.ts} +1 -1
  56. package/dist/tsup/driver-helpers/mod.cjs +4 -4
  57. package/dist/tsup/driver-helpers/mod.d.cts +4 -4
  58. package/dist/tsup/driver-helpers/mod.d.ts +4 -4
  59. package/dist/tsup/driver-helpers/mod.js +3 -3
  60. package/dist/tsup/{driver-BcLvZcKl.d.cts → driver-iV8J-WMv.d.cts} +1 -1
  61. package/dist/tsup/driver-test-suite/mod.cjs +196 -60
  62. package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
  63. package/dist/tsup/driver-test-suite/mod.d.cts +2 -2
  64. package/dist/tsup/driver-test-suite/mod.d.ts +2 -2
  65. package/dist/tsup/driver-test-suite/mod.js +971 -835
  66. package/dist/tsup/driver-test-suite/mod.js.map +1 -1
  67. package/dist/tsup/inspector/mod.cjs +3 -3
  68. package/dist/tsup/inspector/mod.js +2 -2
  69. package/dist/tsup/mod.cjs +8 -8
  70. package/dist/tsup/mod.d.cts +5 -5
  71. package/dist/tsup/mod.d.ts +5 -5
  72. package/dist/tsup/mod.js +7 -7
  73. package/dist/tsup/serve-test-suite/mod.cjs +182 -100
  74. package/dist/tsup/serve-test-suite/mod.cjs.map +1 -1
  75. package/dist/tsup/serve-test-suite/mod.js +93 -11
  76. package/dist/tsup/serve-test-suite/mod.js.map +1 -1
  77. package/dist/tsup/test/mod.cjs +10 -10
  78. package/dist/tsup/test/mod.d.cts +1 -1
  79. package/dist/tsup/test/mod.d.ts +1 -1
  80. package/dist/tsup/test/mod.js +6 -6
  81. package/dist/tsup/utils.cjs +2 -2
  82. package/dist/tsup/utils.js +1 -1
  83. package/dist/tsup/workflow/mod.cjs +5 -5
  84. package/dist/tsup/workflow/mod.d.cts +3 -3
  85. package/dist/tsup/workflow/mod.d.ts +3 -3
  86. package/dist/tsup/workflow/mod.js +4 -4
  87. package/package.json +6 -6
  88. package/src/actor/config.ts +0 -2
  89. package/src/actor/instance/mod.ts +17 -4
  90. package/src/actor/router.ts +9 -6
  91. package/src/driver-test-suite/mod.ts +3 -0
  92. package/src/driver-test-suite/tests/actor-driver.ts +4 -0
  93. package/src/driver-test-suite/tests/actor-lifecycle.ts +157 -0
  94. package/src/driver-test-suite/tests/conn-error-serialization.ts +64 -0
  95. package/src/drivers/engine/actor-driver.ts +47 -15
  96. package/src/manager/router.ts +20 -6
  97. package/src/{registry → utils}/serve.ts +38 -4
  98. package/src/workflow/context.ts +4 -0
  99. package/dist/tsup/chunk-5AZ6UPEF.cjs.map +0 -1
  100. package/dist/tsup/chunk-6LHZQSWJ.js.map +0 -1
  101. package/dist/tsup/chunk-BMNB6YRQ.cjs.map +0 -1
  102. package/dist/tsup/chunk-GNGRMP5E.js.map +0 -1
  103. package/dist/tsup/chunk-KSZZRTOD.cjs.map +0 -1
  104. package/dist/tsup/chunk-MAXIXG56.js.map +0 -1
  105. package/dist/tsup/chunk-QUDLEWGD.js.map +0 -1
  106. package/dist/tsup/chunk-R64EFI6F.cjs.map +0 -1
  107. package/dist/tsup/chunk-T6MM5RTW.cjs.map +0 -1
  108. package/dist/tsup/chunk-YLDDENCZ.js.map +0 -1
  109. /package/dist/tsup/{chunk-OAOF23ZY.js.map → chunk-2OK7S6QF.js.map} +0 -0
  110. /package/dist/tsup/{chunk-N7ASEZ2Y.js.map → chunk-JPXO2H55.js.map} +0 -0
  111. /package/dist/tsup/{chunk-6T3WSP5M.js.map → chunk-R5OQUSLN.js.map} +0 -0
  112. /package/dist/tsup/{chunk-POUBQA6Z.js.map → chunk-S662Y6ZU.js.map} +0 -0
Binary file
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getLogger
3
- } from "./chunk-YET3IZD6.js";
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-OAOF23ZY.js.map
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 _chunkDADGS67Ocjs = require('./chunk-DADGS67O.cjs');
3
+ var _chunkGQGRQDRLcjs = require('./chunk-GQGRQDRL.cjs');
4
4
 
5
5
 
6
6
 
7
7
 
8
8
 
9
- var _chunkKSZZRTODcjs = require('./chunk-KSZZRTOD.cjs');
9
+ var _chunkPB5AEMKQcjs = require('./chunk-PB5AEMKQ.cjs');
10
10
 
11
11
 
12
12
 
13
13
 
14
- var _chunkZSJ2OTY4cjs = require('./chunk-ZSJ2OTY4.cjs');
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 = _chunkKSZZRTODcjs.workflowStoragePrefix.call(void 0, );
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
- _chunkKSZZRTODcjs.makeWorkflowKey.call(void 0, key)
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
- [_chunkKSZZRTODcjs.makeWorkflowKey.call(void 0, key), value]
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
- _chunkKSZZRTODcjs.makeWorkflowKey.call(void 0, key)
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
- _chunkKSZZRTODcjs.makeWorkflowKey.call(void 0, prefix)
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
- _chunkKSZZRTODcjs.makeWorkflowKey.call(void 0, prefix)
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 }) => [_chunkKSZZRTODcjs.makeWorkflowKey.call(void 0, 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 = _chunkDADGS67Ocjs.encodeWorkflowHistoryTransport.call(void 0, transportHistory);
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 _chunkZSJ2OTY4cjs.bufferToArrayBuffer.call(void 0, cbor.encode(value));
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
- _chunkZSJ2OTY4cjs.assertUnreachable.call(void 0, kind);
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
- _chunkZSJ2OTY4cjs.assertUnreachable.call(void 0, status);
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
- _chunkZSJ2OTY4cjs.assertUnreachable.call(void 0, state);
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
- _chunkZSJ2OTY4cjs.assertUnreachable.call(void 0, status);
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[_chunkKSZZRTODcjs.ACTOR_CONTEXT_INTERNAL_SYMBOL];
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: _chunkZSJ2OTY4cjs.stringifyError.call(void 0, 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[_chunkKSZZRTODcjs.RUN_FUNCTION_CONFIG_SYMBOL] = {
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-5AZ6UPEF.cjs.map
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":"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","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 _chunk5AZ6UPEFcjs = require('./chunk-5AZ6UPEF.cjs');
4
+ var _chunk7WF2QSICcjs = require('./chunk-7WF2QSIC.cjs');
5
5
 
6
6
 
7
7
 
8
- var _chunkBMNB6YRQcjs = require('./chunk-BMNB6YRQ.cjs');
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 _chunkZSJ2OTY4cjs = require('./chunk-ZSJ2OTY4.cjs');
15
+ var _chunkHYPIHCDTcjs = require('./chunk-HYPIHCDT.cjs');
16
16
 
17
17
  // src/driver-test-suite/log.ts
18
18
  function logger() {
19
- return _chunkZSJ2OTY4cjs.getLogger.call(void 0, "test-suite");
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 = _chunkBMNB6YRQcjs.actor.call(void 0, {
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 = _chunkBMNB6YRQcjs.actor.call(void 0, {
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 = _chunkBMNB6YRQcjs.actor.call(void 0, {
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 = _chunkZSJ2OTY4cjs.promiseWithResolvers.call(void 0, (reason) => c.log.warn({ msg: "unhandled long running rpc rejection", reason }));
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 = _chunkBMNB6YRQcjs.actor.call(void 0, {
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 = _chunkBMNB6YRQcjs.actor.call(void 0, {
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 = _chunkBMNB6YRQcjs.actor.call(void 0, {
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 = _chunkBMNB6YRQcjs.actor.call(void 0, {
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 = _chunkBMNB6YRQcjs.actor.call(void 0, {
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 = _chunkBMNB6YRQcjs.actor.call(void 0, {
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 = _chunkBMNB6YRQcjs.actor.call(void 0, {
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 = _chunkBMNB6YRQcjs.actor.call(void 0, {
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 = _chunkBMNB6YRQcjs.actor.call(void 0, {
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: _chunk5AZ6UPEFcjs.workflow.call(void 0, async (ctx) => {
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(_chunk5AZ6UPEFcjs.WORKFLOW_GUARD_KV_KEY);
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 = _chunkBMNB6YRQcjs.actor.call(void 0, {
461
+ var workflowQueueActor = _chunkOAXJWGMUcjs.actor.call(void 0, {
462
462
  state: {
463
463
  received: []
464
464
  },
465
465
  queues: {
466
- [WORKFLOW_QUEUE_NAME]: _chunkBMNB6YRQcjs.queue.call(void 0, )
466
+ [WORKFLOW_QUEUE_NAME]: _chunkOAXJWGMUcjs.queue.call(void 0, )
467
467
  },
468
- run: _chunk5AZ6UPEFcjs.workflow.call(void 0, async (ctx) => {
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 = _chunkBMNB6YRQcjs.actor.call(void 0, {
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: _chunk5AZ6UPEFcjs.workflow.call(void 0, async (ctx) => {
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 = _chunkBMNB6YRQcjs.actor.call(void 0, {
543
+ var workflowSleepActor = _chunkOAXJWGMUcjs.actor.call(void 0, {
544
544
  state: {
545
545
  ticks: 0
546
546
  },
547
- run: _chunk5AZ6UPEFcjs.workflow.call(void 0, async (ctx) => {
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 = _chunkBMNB6YRQcjs.actor.call(void 0, {
563
+ var workflowStopTeardownActor = _chunkOAXJWGMUcjs.actor.call(void 0, {
564
564
  state: {
565
565
  wakeAts: [],
566
566
  sleepAts: []
567
567
  },
568
568
  queues: {
569
- never: _chunkBMNB6YRQcjs.queue.call(void 0, )
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: _chunk5AZ6UPEFcjs.workflow.call(void 0, async (ctx) => {
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-IJAGZS57.cjs.map
645
+ //# sourceMappingURL=chunk-D2SPAJVT.cjs.map