rivetkit 2.1.2 → 2.1.3

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 (84) hide show
  1. package/dist/browser/client.js +1 -1
  2. package/dist/browser/client.js.map +1 -1
  3. package/dist/browser/inspector/client.js +1 -1
  4. package/dist/browser/inspector/client.js.map +1 -1
  5. package/dist/inspector.tar.gz +0 -0
  6. package/dist/tsup/{chunk-NXEHFUDB.cjs → chunk-5AZ6UPEF.cjs} +24 -21
  7. package/dist/tsup/chunk-5AZ6UPEF.cjs.map +1 -0
  8. package/dist/tsup/{chunk-YQ5P6KMN.js → chunk-6LHZQSWJ.js} +8 -5
  9. package/dist/tsup/{chunk-YQ5P6KMN.js.map → chunk-6LHZQSWJ.js.map} +1 -1
  10. package/dist/tsup/{chunk-BFI4LYS2.js → chunk-6T3WSP5M.js} +4 -4
  11. package/dist/tsup/{chunk-772NPMTY.cjs → chunk-BMNB6YRQ.cjs} +160 -103
  12. package/dist/tsup/chunk-BMNB6YRQ.cjs.map +1 -0
  13. package/dist/tsup/{chunk-GVQAVU7R.cjs → chunk-DADGS67O.cjs} +4 -4
  14. package/dist/tsup/{chunk-GVQAVU7R.cjs.map → chunk-DADGS67O.cjs.map} +1 -1
  15. package/dist/tsup/{chunk-RHUII57M.js → chunk-GNGRMP5E.js} +10 -6
  16. package/dist/tsup/chunk-GNGRMP5E.js.map +1 -0
  17. package/dist/tsup/{chunk-PZAV6PP2.cjs → chunk-HPAX7L72.cjs} +152 -152
  18. package/dist/tsup/{chunk-PZAV6PP2.cjs.map → chunk-HPAX7L72.cjs.map} +1 -1
  19. package/dist/tsup/{chunk-UZV7NXC6.cjs → chunk-IJAGZS57.cjs} +30 -30
  20. package/dist/tsup/{chunk-UZV7NXC6.cjs.map → chunk-IJAGZS57.cjs.map} +1 -1
  21. package/dist/tsup/{chunk-HFWRHT5T.cjs → chunk-KSZZRTOD.cjs} +3 -3
  22. package/dist/tsup/{chunk-HFWRHT5T.cjs.map → chunk-KSZZRTOD.cjs.map} +1 -1
  23. package/dist/tsup/{chunk-PSUVV4HM.js → chunk-MAXIXG56.js} +2 -2
  24. package/dist/tsup/{chunk-HB4RGGMC.js → chunk-N7ASEZ2Y.js} +5 -5
  25. package/dist/tsup/{chunk-PW3YONDJ.js → chunk-OAOF23ZY.js} +2 -2
  26. package/dist/tsup/{chunk-TDFDR7AO.js → chunk-POUBQA6Z.js} +2 -2
  27. package/dist/tsup/{chunk-VMX4I4MP.js → chunk-QUDLEWGD.js} +3 -3
  28. package/dist/tsup/{chunk-MNS5LY6M.cjs → chunk-R64EFI6F.cjs} +74 -74
  29. package/dist/tsup/{chunk-MNS5LY6M.cjs.map → chunk-R64EFI6F.cjs.map} +1 -1
  30. package/dist/tsup/{chunk-QABDKI3W.cjs → chunk-T6MM5RTW.cjs} +248 -244
  31. package/dist/tsup/chunk-T6MM5RTW.cjs.map +1 -0
  32. package/dist/tsup/{chunk-ZHQDRRMY.cjs → chunk-U6VWVHVW.cjs} +3 -3
  33. package/dist/tsup/{chunk-ZHQDRRMY.cjs.map → chunk-U6VWVHVW.cjs.map} +1 -1
  34. package/dist/tsup/{chunk-WUXR722E.js → chunk-YET3IZD6.js} +2 -2
  35. package/dist/tsup/{chunk-WUXR722E.js.map → chunk-YET3IZD6.js.map} +1 -1
  36. package/dist/tsup/{chunk-BSIJG3LG.js → chunk-YLDDENCZ.js} +69 -12
  37. package/dist/tsup/chunk-YLDDENCZ.js.map +1 -0
  38. package/dist/tsup/{chunk-RMJJE43B.cjs → chunk-ZSJ2OTY4.cjs} +2 -2
  39. package/dist/tsup/{chunk-RMJJE43B.cjs.map → chunk-ZSJ2OTY4.cjs.map} +1 -1
  40. package/dist/tsup/client/mod.cjs +6 -6
  41. package/dist/tsup/client/mod.js +5 -5
  42. package/dist/tsup/common/log.cjs +2 -2
  43. package/dist/tsup/common/log.js +1 -1
  44. package/dist/tsup/common/websocket.cjs +3 -3
  45. package/dist/tsup/common/websocket.js +2 -2
  46. package/dist/tsup/driver-helpers/mod.cjs +4 -4
  47. package/dist/tsup/driver-helpers/mod.js +3 -3
  48. package/dist/tsup/driver-test-suite/mod.cjs +425 -338
  49. package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
  50. package/dist/tsup/driver-test-suite/mod.js +376 -289
  51. package/dist/tsup/driver-test-suite/mod.js.map +1 -1
  52. package/dist/tsup/inspector/mod.cjs +3 -3
  53. package/dist/tsup/inspector/mod.js +2 -2
  54. package/dist/tsup/mod.cjs +8 -8
  55. package/dist/tsup/mod.js +7 -7
  56. package/dist/tsup/serve-test-suite/mod.cjs +111 -99
  57. package/dist/tsup/serve-test-suite/mod.cjs.map +1 -1
  58. package/dist/tsup/serve-test-suite/mod.js +22 -10
  59. package/dist/tsup/serve-test-suite/mod.js.map +1 -1
  60. package/dist/tsup/test/mod.cjs +10 -10
  61. package/dist/tsup/test/mod.js +6 -6
  62. package/dist/tsup/utils.cjs +2 -2
  63. package/dist/tsup/utils.js +1 -1
  64. package/dist/tsup/workflow/mod.cjs +5 -5
  65. package/dist/tsup/workflow/mod.js +4 -4
  66. package/package.json +5 -5
  67. package/src/actor/instance/mod.ts +13 -2
  68. package/src/driver-test-suite/tests/actor-db.ts +299 -216
  69. package/src/driver-test-suite/tests/actor-queue.ts +10 -9
  70. package/src/driver-test-suite/tests/actor-workflow.ts +12 -2
  71. package/src/driver-test-suite/utils.ts +8 -8
  72. package/src/drivers/engine/actor-driver.ts +77 -7
  73. package/src/workflow/driver.ts +4 -1
  74. package/dist/tsup/chunk-772NPMTY.cjs.map +0 -1
  75. package/dist/tsup/chunk-BSIJG3LG.js.map +0 -1
  76. package/dist/tsup/chunk-NXEHFUDB.cjs.map +0 -1
  77. package/dist/tsup/chunk-QABDKI3W.cjs.map +0 -1
  78. package/dist/tsup/chunk-RHUII57M.js.map +0 -1
  79. /package/dist/tsup/{chunk-BFI4LYS2.js.map → chunk-6T3WSP5M.js.map} +0 -0
  80. /package/dist/tsup/{chunk-PSUVV4HM.js.map → chunk-MAXIXG56.js.map} +0 -0
  81. /package/dist/tsup/{chunk-HB4RGGMC.js.map → chunk-N7ASEZ2Y.js.map} +0 -0
  82. /package/dist/tsup/{chunk-PW3YONDJ.js.map → chunk-OAOF23ZY.js.map} +0 -0
  83. /package/dist/tsup/{chunk-TDFDR7AO.js.map → chunk-POUBQA6Z.js.map} +0 -0
  84. /package/dist/tsup/{chunk-VMX4I4MP.js.map → chunk-QUDLEWGD.js.map} +0 -0
@@ -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 _chunkNXEHFUDBcjs = require('./chunk-NXEHFUDB.cjs');
4
+ var _chunk5AZ6UPEFcjs = require('./chunk-5AZ6UPEF.cjs');
5
5
 
6
6
 
7
7
 
8
- var _chunk772NPMTYcjs = require('./chunk-772NPMTY.cjs');
8
+ var _chunkBMNB6YRQcjs = require('./chunk-BMNB6YRQ.cjs');
9
9
 
10
10
 
11
11
  var _chunk6LJAZ5R4cjs = require('./chunk-6LJAZ5R4.cjs');
12
12
 
13
13
 
14
14
 
15
- var _chunkRMJJE43Bcjs = require('./chunk-RMJJE43B.cjs');
15
+ var _chunkZSJ2OTY4cjs = require('./chunk-ZSJ2OTY4.cjs');
16
16
 
17
17
  // src/driver-test-suite/log.ts
18
18
  function logger() {
19
- return _chunkRMJJE43Bcjs.getLogger.call(void 0, "test-suite");
19
+ return _chunkZSJ2OTY4cjs.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 = _chunk772NPMTYcjs.actor.call(void 0, {
24
+ var hibernationActor = _chunkBMNB6YRQcjs.actor.call(void 0, {
25
25
  state: {
26
26
  sleepCount: 0,
27
27
  wakeCount: 0
@@ -89,7 +89,7 @@ var hibernationActor = _chunk772NPMTYcjs.actor.call(void 0, {
89
89
 
90
90
  // fixtures/driver-test-suite/sleep.ts
91
91
  var SLEEP_TIMEOUT = 1e3;
92
- var sleep = _chunk772NPMTYcjs.actor.call(void 0, {
92
+ var sleep = _chunkBMNB6YRQcjs.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 = _chunk772NPMTYcjs.actor.call(void 0, {
118
118
  sleepTimeout: SLEEP_TIMEOUT
119
119
  }
120
120
  });
121
- var sleepWithLongRpc = _chunk772NPMTYcjs.actor.call(void 0, {
121
+ var sleepWithLongRpc = _chunkBMNB6YRQcjs.actor.call(void 0, {
122
122
  state: { startCount: 0, sleepCount: 0 },
123
123
  createVars: () => ({}),
124
124
  onWake: (c) => {
@@ -136,7 +136,7 @@ var sleepWithLongRpc = _chunk772NPMTYcjs.actor.call(void 0, {
136
136
  },
137
137
  longRunningRpc: async (c) => {
138
138
  c.log.info("starting long running rpc");
139
- c.vars.longRunningResolve = _chunkRMJJE43Bcjs.promiseWithResolvers.call(void 0, (reason) => c.log.warn({ msg: "unhandled long running rpc rejection", reason }));
139
+ c.vars.longRunningResolve = _chunkZSJ2OTY4cjs.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 = _chunk772NPMTYcjs.actor.call(void 0, {
150
150
  sleepTimeout: SLEEP_TIMEOUT
151
151
  }
152
152
  });
153
- var sleepWithRawHttp = _chunk772NPMTYcjs.actor.call(void 0, {
153
+ var sleepWithRawHttp = _chunkBMNB6YRQcjs.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 = _chunk772NPMTYcjs.actor.call(void 0, {
187
187
  sleepTimeout: SLEEP_TIMEOUT
188
188
  }
189
189
  });
190
- var sleepWithRawWebSocket = _chunk772NPMTYcjs.actor.call(void 0, {
190
+ var sleepWithRawWebSocket = _chunkBMNB6YRQcjs.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 = _chunk772NPMTYcjs.actor.call(void 0, {
250
250
  sleepTimeout: SLEEP_TIMEOUT
251
251
  }
252
252
  });
253
- var sleepWithNoSleepOption = _chunk772NPMTYcjs.actor.call(void 0, {
253
+ var sleepWithNoSleepOption = _chunkBMNB6YRQcjs.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 = _chunk772NPMTYcjs.actor.call(void 0, {
274
274
 
275
275
  // fixtures/driver-test-suite/run.ts
276
276
  var RUN_SLEEP_TIMEOUT = 1e3;
277
- var runWithTicks = _chunk772NPMTYcjs.actor.call(void 0, {
277
+ var runWithTicks = _chunkBMNB6YRQcjs.actor.call(void 0, {
278
278
  state: {
279
279
  tickCount: 0,
280
280
  lastTickAt: 0,
@@ -316,7 +316,7 @@ var runWithTicks = _chunk772NPMTYcjs.actor.call(void 0, {
316
316
  runStopTimeout: 1e3
317
317
  }
318
318
  });
319
- var runWithQueueConsumer = _chunk772NPMTYcjs.actor.call(void 0, {
319
+ var runWithQueueConsumer = _chunkBMNB6YRQcjs.actor.call(void 0, {
320
320
  state: {
321
321
  messagesReceived: [],
322
322
  runStarted: false,
@@ -358,7 +358,7 @@ var runWithQueueConsumer = _chunk772NPMTYcjs.actor.call(void 0, {
358
358
  runStopTimeout: 1e3
359
359
  }
360
360
  });
361
- var runWithEarlyExit = _chunk772NPMTYcjs.actor.call(void 0, {
361
+ var runWithEarlyExit = _chunkBMNB6YRQcjs.actor.call(void 0, {
362
362
  state: {
363
363
  runStarted: false,
364
364
  destroyCalled: false
@@ -382,7 +382,7 @@ var runWithEarlyExit = _chunk772NPMTYcjs.actor.call(void 0, {
382
382
  sleepTimeout: RUN_SLEEP_TIMEOUT
383
383
  }
384
384
  });
385
- var runWithError = _chunk772NPMTYcjs.actor.call(void 0, {
385
+ var runWithError = _chunkBMNB6YRQcjs.actor.call(void 0, {
386
386
  state: {
387
387
  runStarted: false,
388
388
  destroyCalled: false
@@ -406,7 +406,7 @@ var runWithError = _chunk772NPMTYcjs.actor.call(void 0, {
406
406
  sleepTimeout: RUN_SLEEP_TIMEOUT
407
407
  }
408
408
  });
409
- var runWithoutHandler = _chunk772NPMTYcjs.actor.call(void 0, {
409
+ var runWithoutHandler = _chunkBMNB6YRQcjs.actor.call(void 0, {
410
410
  state: {
411
411
  wakeCount: 0
412
412
  },
@@ -426,13 +426,13 @@ var runWithoutHandler = _chunk772NPMTYcjs.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 = _chunk772NPMTYcjs.actor.call(void 0, {
429
+ var workflowCounterActor = _chunkBMNB6YRQcjs.actor.call(void 0, {
430
430
  state: {
431
431
  runCount: 0,
432
432
  guardTriggered: false,
433
433
  history: []
434
434
  },
435
- run: _chunkNXEHFUDBcjs.workflow.call(void 0, async (ctx) => {
435
+ run: _chunk5AZ6UPEFcjs.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 = _chunk772NPMTYcjs.actor.call(void 0, {
447
447
  }),
448
448
  actions: {
449
449
  getState: async (c) => {
450
- const guardFlag = await c.kv.get(_chunkNXEHFUDBcjs.WORKFLOW_GUARD_KV_KEY);
450
+ const guardFlag = await c.kv.get(_chunk5AZ6UPEFcjs.WORKFLOW_GUARD_KV_KEY);
451
451
  if (guardFlag === "true") {
452
452
  c.state.guardTriggered = true;
453
453
  }
@@ -458,14 +458,14 @@ var workflowCounterActor = _chunk772NPMTYcjs.actor.call(void 0, {
458
458
  sleepTimeout: 50
459
459
  }
460
460
  });
461
- var workflowQueueActor = _chunk772NPMTYcjs.actor.call(void 0, {
461
+ var workflowQueueActor = _chunkBMNB6YRQcjs.actor.call(void 0, {
462
462
  state: {
463
463
  received: []
464
464
  },
465
465
  queues: {
466
- [WORKFLOW_QUEUE_NAME]: _chunk772NPMTYcjs.queue.call(void 0, )
466
+ [WORKFLOW_QUEUE_NAME]: _chunkBMNB6YRQcjs.queue.call(void 0, )
467
467
  },
468
- run: _chunkNXEHFUDBcjs.workflow.call(void 0, async (ctx) => {
468
+ run: _chunk5AZ6UPEFcjs.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 = _chunk772NPMTYcjs.actor.call(void 0, {
494
494
  }
495
495
  }
496
496
  });
497
- var workflowAccessActor = _chunk772NPMTYcjs.actor.call(void 0, {
497
+ var workflowAccessActor = _chunkBMNB6YRQcjs.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 = _chunk772NPMTYcjs.actor.call(void 0, {
511
511
  insideDbCount: 0,
512
512
  insideClientAvailable: false
513
513
  },
514
- run: _chunkNXEHFUDBcjs.workflow.call(void 0, async (ctx) => {
514
+ run: _chunk5AZ6UPEFcjs.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 = _chunk772NPMTYcjs.actor.call(void 0, {
540
540
  getState: (c) => c.state
541
541
  }
542
542
  });
543
- var workflowSleepActor = _chunk772NPMTYcjs.actor.call(void 0, {
543
+ var workflowSleepActor = _chunkBMNB6YRQcjs.actor.call(void 0, {
544
544
  state: {
545
545
  ticks: 0
546
546
  },
547
- run: _chunkNXEHFUDBcjs.workflow.call(void 0, async (ctx) => {
547
+ run: _chunk5AZ6UPEFcjs.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 = _chunk772NPMTYcjs.actor.call(void 0, {
560
560
  sleepTimeout: 50
561
561
  }
562
562
  });
563
- var workflowStopTeardownActor = _chunk772NPMTYcjs.actor.call(void 0, {
563
+ var workflowStopTeardownActor = _chunkBMNB6YRQcjs.actor.call(void 0, {
564
564
  state: {
565
565
  wakeAts: [],
566
566
  sleepAts: []
567
567
  },
568
568
  queues: {
569
- never: _chunk772NPMTYcjs.queue.call(void 0, )
569
+ never: _chunkBMNB6YRQcjs.queue.call(void 0, )
570
570
  },
571
571
  onWake: (c) => {
572
572
  c.state.wakeAts.push(Date.now());
@@ -574,7 +574,7 @@ var workflowStopTeardownActor = _chunk772NPMTYcjs.actor.call(void 0, {
574
574
  onSleep: (c) => {
575
575
  c.state.sleepAts.push(Date.now());
576
576
  },
577
- run: _chunkNXEHFUDBcjs.workflow.call(void 0, async (ctx) => {
577
+ run: _chunk5AZ6UPEFcjs.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-UZV7NXC6.cjs.map
645
+ //# sourceMappingURL=chunk-IJAGZS57.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-UZV7NXC6.cjs","../../src/driver-test-suite/log.ts","../../fixtures/driver-test-suite/hibernation.ts","../../fixtures/driver-test-suite/sleep.ts","../../fixtures/driver-test-suite/run.ts","../../fixtures/driver-test-suite/workflow.ts"],"names":[],"mappings":"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","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-UZV7NXC6.cjs","sourcesContent":[null,"import { getLogger } from \"@/common/log\";\n\nexport function logger() {\n\treturn getLogger(\"test-suite\");\n}\n","import { actor } from \"rivetkit\";\n\nexport const HIBERNATION_SLEEP_TIMEOUT = 500;\n\nexport type HibernationConnState = {\n\tcount: number;\n\tconnectCount: number;\n\tdisconnectCount: number;\n};\n\nexport const hibernationActor = actor({\n\tstate: {\n\t\tsleepCount: 0,\n\t\twakeCount: 0,\n\t},\n\tcreateConnState: (c): HibernationConnState => {\n\t\treturn {\n\t\t\tcount: 0,\n\t\t\tconnectCount: 0,\n\t\t\tdisconnectCount: 0,\n\t\t};\n\t},\n\tonWake: (c) => {\n\t\tc.state.wakeCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tonConnect: (c, conn) => {\n\t\tconn.state.connectCount += 1;\n\t},\n\tonDisconnect: (c, conn) => {\n\t\tconn.state.disconnectCount += 1;\n\t},\n\tactions: {\n\t\t// Basic RPC that returns a simple value\n\t\tping: (c) => {\n\t\t\treturn \"pong\";\n\t\t},\n\t\t// Increment the connection's count\n\t\tconnIncrement: (c) => {\n\t\t\tc.conn.state.count += 1;\n\t\t\treturn c.conn.state.count;\n\t\t},\n\t\t// Get the connection's count\n\t\tgetConnCount: (c) => {\n\t\t\treturn c.conn.state.count;\n\t\t},\n\t\t// Get the connection's lifecycle counts\n\t\tgetConnLifecycleCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tconnectCount: c.conn.state.connectCount,\n\t\t\t\tdisconnectCount: c.conn.state.disconnectCount,\n\t\t\t};\n\t\t},\n\t\t// Get all connection IDs\n\t\tgetConnectionIds: (c) => {\n\t\t\treturn c.conns\n\t\t\t\t.entries()\n\t\t\t\t.map((x) => x[0])\n\t\t\t\t.toArray();\n\t\t},\n\t\t// Get actor sleep/wake counts\n\t\tgetActorCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t\twakeCount: c.state.wakeCount,\n\t\t\t};\n\t\t},\n\t\t// Trigger sleep\n\t\ttriggerSleep: (c) => {\n\t\t\tc.sleep();\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: HIBERNATION_SLEEP_TIMEOUT,\n\t},\n});\n","import { actor, type UniversalWebSocket } from \"rivetkit\";\nimport { promiseWithResolvers } from \"rivetkit/utils\";\n\nexport const SLEEP_TIMEOUT = 1000;\n\nexport const sleep = actor({\n\tstate: { startCount: 0, sleepCount: 0 },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tactions: {\n\t\ttriggerSleep: (c) => {\n\t\t\tc.sleep();\n\t\t},\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t};\n\t\t},\n\t\tsetAlarm: async (c, duration: number) => {\n\t\t\tawait c.schedule.after(duration, \"onAlarm\");\n\t\t},\n\t\tonAlarm: (c) => {\n\t\t\tc.log.info(\"alarm called\");\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t},\n});\n\nexport const sleepWithLongRpc = actor({\n\tstate: { startCount: 0, sleepCount: 0 },\n\tcreateVars: () =>\n\t\t({}) as { longRunningResolve: PromiseWithResolvers<void> },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tactions: {\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t};\n\t\t},\n\t\tlongRunningRpc: async (c) => {\n\t\t\tc.log.info(\"starting long running rpc\");\n\t\t\tc.vars.longRunningResolve = promiseWithResolvers((reason) => c.log.warn({ msg: \"unhandled long running rpc rejection\", reason }));\n\t\t\tc.broadcast(\"waiting\");\n\t\t\tawait c.vars.longRunningResolve.promise;\n\t\t\tc.log.info(\"finished long running rpc\");\n\t\t},\n\t\tfinishLongRunningRpc: (c) => c.vars.longRunningResolve?.resolve(),\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t},\n});\n\nexport const sleepWithRawHttp = actor({\n\tstate: { startCount: 0, sleepCount: 0, requestCount: 0 },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tonRequest: async (c, request) => {\n\t\tc.state.requestCount += 1;\n\t\tconst url = new URL(request.url);\n\n\t\tif (url.pathname === \"/long-request\") {\n\t\t\tconst duration = parseInt(\n\t\t\t\turl.searchParams.get(\"duration\") || \"1000\",\n\t\t\t);\n\t\t\tc.log.info({ msg: \"starting long fetch request\", duration });\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, duration));\n\t\t\tc.log.info(\"finished long fetch request\");\n\t\t\treturn new Response(JSON.stringify({ completed: true }), {\n\t\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\t});\n\t\t}\n\n\t\treturn new Response(\"Not Found\", { status: 404 });\n\t},\n\tactions: {\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t\trequestCount: c.state.requestCount,\n\t\t\t};\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t},\n});\n\nexport const sleepWithRawWebSocket = actor({\n\tstate: { startCount: 0, sleepCount: 0, connectionCount: 0 },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tonWebSocket: (c, websocket: UniversalWebSocket) => {\n\t\tc.state.connectionCount += 1;\n\t\tc.log.info({\n\t\t\tmsg: \"websocket connected\",\n\t\t\tconnectionCount: c.state.connectionCount,\n\t\t});\n\n\t\twebsocket.send(\n\t\t\tJSON.stringify({\n\t\t\t\ttype: \"connected\",\n\t\t\t\tconnectionCount: c.state.connectionCount,\n\t\t\t}),\n\t\t);\n\n\t\twebsocket.addEventListener(\"message\", (event: any) => {\n\t\t\tconst data = event.data;\n\t\t\tif (typeof data === \"string\") {\n\t\t\t\ttry {\n\t\t\t\t\tconst parsed = JSON.parse(data);\n\t\t\t\t\tif (parsed.type === \"getCounts\") {\n\t\t\t\t\t\twebsocket.send(\n\t\t\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t\t\ttype: \"counts\",\n\t\t\t\t\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\t\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t\t\t\t\t\tconnectionCount: c.state.connectionCount,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (parsed.type === \"keepAlive\") {\n\t\t\t\t\t\t// Just acknowledge to keep connection alive\n\t\t\t\t\t\twebsocket.send(JSON.stringify({ type: \"ack\" }));\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// Echo non-JSON messages\n\t\t\t\t\twebsocket.send(data);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\twebsocket.addEventListener(\"close\", () => {\n\t\t\tc.state.connectionCount -= 1;\n\t\t\tc.log.info({\n\t\t\t\tmsg: \"websocket disconnected\",\n\t\t\t\tconnectionCount: c.state.connectionCount,\n\t\t\t});\n\t\t});\n\t},\n\tactions: {\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t\tconnectionCount: c.state.connectionCount,\n\t\t\t};\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t},\n});\n\nexport const sleepWithNoSleepOption = actor({\n\tstate: { startCount: 0, sleepCount: 0 },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tactions: {\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t};\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t\tnoSleep: true,\n\t},\n});\n","import { actor } from \"rivetkit\";\nimport type { registry } from \"./registry\";\n\nexport const RUN_SLEEP_TIMEOUT = 1000;\n\n// Actor that tracks tick counts and respects abort signal\nexport const runWithTicks = actor({\n\tstate: {\n\t\ttickCount: 0,\n\t\tlastTickAt: 0,\n\t\trunStarted: false,\n\t\trunExited: false,\n\t},\n\trun: async (c) => {\n\t\tc.state.runStarted = true;\n\t\tc.log.info(\"run handler started\");\n\n\t\twhile (!c.aborted) {\n\t\t\tc.state.tickCount += 1;\n\t\t\tc.state.lastTickAt = Date.now();\n\t\t\tc.log.info({ msg: \"tick\", tickCount: c.state.tickCount });\n\n\t\t\t// Wait 50ms between ticks, or exit early if aborted\n\t\t\tawait new Promise<void>((resolve) => {\n\t\t\t\tconst timeout = setTimeout(resolve, 50);\n\t\t\t\tc.abortSignal.addEventListener(\n\t\t\t\t\t\"abort\",\n\t\t\t\t\t() => {\n\t\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t},\n\t\t\t\t\t{ once: true },\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\tc.state.runExited = true;\n\t\tc.log.info(\"run handler exiting gracefully\");\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\ttickCount: c.state.tickCount,\n\t\t\tlastTickAt: c.state.lastTickAt,\n\t\t\trunStarted: c.state.runStarted,\n\t\t\trunExited: c.state.runExited,\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t\trunStopTimeout: 1000,\n\t},\n});\n\n// Actor that consumes from a queue in the run handler\nexport const runWithQueueConsumer = actor({\n\tstate: {\n\t\tmessagesReceived: [] as Array<{ name: string; body: unknown }>,\n\t\trunStarted: false,\n\t\twakeCount: 0,\n\t},\n\tonWake: (c) => {\n\t\tc.state.wakeCount += 1;\n\t},\n\trun: async (c) => {\n\t\tc.state.runStarted = true;\n\t\tc.log.info(\"run handler started, waiting for messages\");\n\n\t\twhile (!c.aborted) {\n\t\t\tconst message = await c.queue.next({ names: [\"messages\"] });\n\t\t\tif (message) {\n\t\t\t\tc.log.info({ msg: \"received message\", body: message.body });\n\t\t\t\tc.state.messagesReceived.push({\n\t\t\t\t\tname: message.name,\n\t\t\t\t\tbody: message.body,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tc.log.info(\"run handler exiting gracefully\");\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\tmessagesReceived: c.state.messagesReceived,\n\t\t\trunStarted: c.state.runStarted,\n\t\t\twakeCount: c.state.wakeCount,\n\t\t}),\n\t\tsendMessage: async (c, body: unknown) => {\n\t\t\tconst client = c.client<typeof registry>();\n\t\t\tconst handle = client.runWithQueueConsumer.getForId(c.actorId);\n\t\t\tawait handle.send(\"messages\", body);\n\t\t\treturn true;\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t\trunStopTimeout: 1000,\n\t},\n});\n\n// Actor that exits the run handler after a short delay to test crash behavior\nexport const runWithEarlyExit = actor({\n\tstate: {\n\t\trunStarted: false,\n\t\tdestroyCalled: false,\n\t},\n\trun: async (c) => {\n\t\tc.state.runStarted = true;\n\t\tc.log.info(\"run handler started, will exit after delay\");\n\t\t// Wait a bit so we can observe the runStarted state before exit\n\t\tawait new Promise((resolve) => setTimeout(resolve, 200));\n\t\tc.log.info(\"run handler exiting early\");\n\t\t// Exit without respecting abort signal\n\t},\n\tonDestroy: (c) => {\n\t\tc.state.destroyCalled = true;\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\trunStarted: c.state.runStarted,\n\t\t\tdestroyCalled: c.state.destroyCalled,\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t},\n});\n\n// Actor that throws an error in the run handler to test crash behavior\nexport const runWithError = actor({\n\tstate: {\n\t\trunStarted: false,\n\t\tdestroyCalled: false,\n\t},\n\trun: async (c) => {\n\t\tc.state.runStarted = true;\n\t\tc.log.info(\"run handler started, will throw error\");\n\t\tawait new Promise((resolve) => setTimeout(resolve, 200));\n\t\tthrow new Error(\"intentional error in run handler\");\n\t},\n\tonDestroy: (c) => {\n\t\tc.state.destroyCalled = true;\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\trunStarted: c.state.runStarted,\n\t\t\tdestroyCalled: c.state.destroyCalled,\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t},\n});\n\n// Actor without a run handler for comparison\nexport const runWithoutHandler = actor({\n\tstate: {\n\t\twakeCount: 0,\n\t},\n\tonWake: (c) => {\n\t\tc.state.wakeCount += 1;\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\twakeCount: c.state.wakeCount,\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t},\n});\n","import { Loop } from \"@rivetkit/workflow-engine\";\nimport { actor, queue } from \"@/actor/mod\";\nimport { db } from \"@/db/mod\";\nimport { WORKFLOW_GUARD_KV_KEY } from \"@/workflow/constants\";\nimport { type WorkflowLoopContextOf, workflow } from \"@/workflow/mod\";\nimport type { registry } from \"./registry\";\n\nconst WORKFLOW_QUEUE_NAME = \"workflow-default\";\n\nexport const workflowCounterActor = actor({\n\tstate: {\n\t\trunCount: 0,\n\t\tguardTriggered: false,\n\t\thistory: [] as number[],\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop(\"counter\", async (loopCtx) => {\n\t\t\t\ttry {\n\t\t\t\t\t// Accessing state outside a step should throw.\n\t\t\t\t\t// biome-ignore lint/style/noUnusedExpressions: intentionally checking accessor.\n\t\t\t\t\tloopCtx.state;\n\t\t\t\t} catch {}\n\n\t\t\t\tawait loopCtx.step(\"increment\", async () => {\n\t\t\t\t\tincrementWorkflowCounter(loopCtx);\n\t\t\t\t});\n\n\t\t\t\tawait loopCtx.sleep(\"idle\", 25);\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t});\n\t}),\n\tactions: {\n\t\tgetState: async (c) => {\n\t\t\tconst guardFlag = await c.kv.get(WORKFLOW_GUARD_KV_KEY);\n\t\t\tif (guardFlag === \"true\") {\n\t\t\t\tc.state.guardTriggered = true;\n\t\t\t}\n\t\t\treturn c.state;\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: 50,\n\t},\n});\n\nexport const workflowQueueActor = actor({\n\tstate: {\n\t\treceived: [] as unknown[],\n\t},\n\tqueues: {\n\t\t[WORKFLOW_QUEUE_NAME]: queue<unknown, { echo: unknown }>(),\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop(\"queue\", async (loopCtx) => {\n\t\t\t\tconst message = await loopCtx.queue.next(\"queue-wait\", {\n\t\t\t\t\tnames: [WORKFLOW_QUEUE_NAME],\n\t\t\t\t\tcompletable: true,\n\t\t\t\t});\n\t\t\t\tif (!message.complete) {\n\t\t\t\t\treturn Loop.continue(undefined);\n\t\t\t\t}\n\t\t\t\tconst complete = message.complete;\n\t\t\t\tawait loopCtx.step(\"store-message\", async () => {\n\t\t\t\t\tawait storeWorkflowQueueMessage(loopCtx, message.body, complete);\n\t\t\t\t});\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t});\n\t}),\n\tactions: {\n\t\tgetMessages: (c) => c.state.received,\n\t\tsendAndWait: async (c, payload: unknown) => {\n\t\t\tconst client = c.client<typeof registry>();\n\t\t\tconst handle = client.workflowQueueActor.getForId(c.actorId);\n\t\t\treturn await handle.send(\n\t\t\t\tWORKFLOW_QUEUE_NAME,\n\t\t\t\tpayload,\n\t\t\t\t{ wait: true, timeout: 1_000 },\n\t\t\t);\n\t\t},\n\t},\n});\n\nexport const workflowAccessActor = actor({\n\tdb: db({\n\t\tonMigrate: async (rawDb) => {\n\t\t\tawait rawDb.execute(`\n\t\t\t\tCREATE TABLE IF NOT EXISTS workflow_access_log (\n\t\t\t\t\tid INTEGER PRIMARY KEY AUTOINCREMENT,\n\t\t\t\t\tcreated_at INTEGER NOT NULL\n\t\t\t\t)\n\t\t\t`);\n\t\t},\n\t}),\n\tstate: {\n\t\toutsideDbError: null as string | null,\n\t\toutsideClientError: null as string | null,\n\t\tinsideDbCount: 0,\n\t\tinsideClientAvailable: false,\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop(\"access\", async (loopCtx) => {\n\t\t\t\tlet outsideDbError: string | null = null;\n\t\t\t\tlet outsideClientError: string | null = null;\n\n\t\t\t\ttry {\n\t\t\t\t\t// Accessing db outside a step should throw.\n\t\t\t\t\t// biome-ignore lint/style/noUnusedExpressions: intentionally checking accessor.\n\t\t\t\t\tloopCtx.db;\n\t\t\t\t} catch (error) {\n\t\t\t\t\toutsideDbError =\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tloopCtx.client<typeof registry>();\n\t\t\t\t} catch (error) {\n\t\t\t\t\toutsideClientError =\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error);\n\t\t\t\t}\n\n\t\t\t\tawait loopCtx.step(\"access-step\", async () => {\n\t\t\t\t\tawait updateWorkflowAccessState(\n\t\t\t\t\t\tloopCtx,\n\t\t\t\t\t\toutsideDbError,\n\t\t\t\t\t\toutsideClientError,\n\t\t\t\t\t);\n\t\t\t\t});\n\n\t\t\t\tawait loopCtx.sleep(\"idle\", 25);\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t});\n\t}),\n\tactions: {\n\t\tgetState: (c) => c.state,\n\t},\n});\n\nexport const workflowSleepActor = actor({\n\tstate: {\n\t\tticks: 0,\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop(\"sleep\", async (loopCtx) => {\n\t\t\t\tawait loopCtx.step(\"tick\", async () => {\n\t\t\t\t\tincrementWorkflowSleepTick(loopCtx);\n\t\t\t\t});\n\t\t\t\tawait loopCtx.sleep(\"delay\", 40);\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t});\n\t}),\n\tactions: {\n\t\tgetState: (c) => c.state,\n\t},\n\toptions: {\n\t\tsleepTimeout: 50,\n\t},\n});\n\nexport const workflowStopTeardownActor = actor({\n\tstate: {\n\t\twakeAts: [] as number[],\n\t\tsleepAts: [] as number[],\n\t},\n\tqueues: {\n\t\tnever: queue<unknown>(),\n\t},\n\tonWake: (c) => {\n\t\tc.state.wakeAts.push(Date.now());\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepAts.push(Date.now());\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop(\"wait-forever\", async (loopCtx) => {\n\t\t\t\tawait loopCtx.queue.next(\"wait-for-never\", {\n\t\t\t\t\tnames: [\"never\"],\n\t\t\t\t});\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t});\n\t}),\n\tactions: {\n\t\tgetTimeline: (c) => ({\n\t\t\twakeAts: [...c.state.wakeAts],\n\t\t\tsleepAts: [...c.state.sleepAts],\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: 75,\n\t\trunStopTimeout: 2_000,\n\t},\n});\n\nfunction incrementWorkflowCounter(\n\tctx: WorkflowLoopContextOf<typeof workflowCounterActor>,\n): void {\n\tctx.state.runCount += 1;\n\tctx.state.history.push(ctx.state.runCount);\n}\n\nasync function storeWorkflowQueueMessage(\n\tctx: WorkflowLoopContextOf<typeof workflowQueueActor>,\n\tbody: unknown,\n\tcomplete: (response: { echo: unknown }) => Promise<void>,\n): Promise<void> {\n\tctx.state.received.push(body);\n\tawait complete({ echo: body });\n}\n\nasync function updateWorkflowAccessState(\n\tctx: WorkflowLoopContextOf<typeof workflowAccessActor>,\n\toutsideDbError: string | null,\n\toutsideClientError: string | null,\n): Promise<void> {\n\tawait ctx.db.execute(\n\t\t`INSERT INTO workflow_access_log (created_at) VALUES (${Date.now()})`,\n\t);\n\tconst counts = await ctx.db.execute<{ count: number }>(\n\t\t`SELECT COUNT(*) as count FROM workflow_access_log`,\n\t);\n\tconst client = ctx.client<typeof registry>();\n\n\tctx.state.outsideDbError = outsideDbError;\n\tctx.state.outsideClientError = outsideClientError;\n\tctx.state.insideDbCount = counts[0]?.count ?? 0;\n\tctx.state.insideClientAvailable =\n\t\ttypeof client.workflowQueueActor.getForId === \"function\";\n}\n\nfunction incrementWorkflowSleepTick(\n\tctx: WorkflowLoopContextOf<typeof workflowSleepActor>,\n): void {\n\tctx.state.ticks += 1;\n}\n\nexport { WORKFLOW_QUEUE_NAME };\n"]}
1
+ {"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-IJAGZS57.cjs","../../src/driver-test-suite/log.ts","../../fixtures/driver-test-suite/hibernation.ts","../../fixtures/driver-test-suite/sleep.ts","../../fixtures/driver-test-suite/run.ts","../../fixtures/driver-test-suite/workflow.ts"],"names":[],"mappings":"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","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-IJAGZS57.cjs","sourcesContent":[null,"import { getLogger } from \"@/common/log\";\n\nexport function logger() {\n\treturn getLogger(\"test-suite\");\n}\n","import { actor } from \"rivetkit\";\n\nexport const HIBERNATION_SLEEP_TIMEOUT = 500;\n\nexport type HibernationConnState = {\n\tcount: number;\n\tconnectCount: number;\n\tdisconnectCount: number;\n};\n\nexport const hibernationActor = actor({\n\tstate: {\n\t\tsleepCount: 0,\n\t\twakeCount: 0,\n\t},\n\tcreateConnState: (c): HibernationConnState => {\n\t\treturn {\n\t\t\tcount: 0,\n\t\t\tconnectCount: 0,\n\t\t\tdisconnectCount: 0,\n\t\t};\n\t},\n\tonWake: (c) => {\n\t\tc.state.wakeCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tonConnect: (c, conn) => {\n\t\tconn.state.connectCount += 1;\n\t},\n\tonDisconnect: (c, conn) => {\n\t\tconn.state.disconnectCount += 1;\n\t},\n\tactions: {\n\t\t// Basic RPC that returns a simple value\n\t\tping: (c) => {\n\t\t\treturn \"pong\";\n\t\t},\n\t\t// Increment the connection's count\n\t\tconnIncrement: (c) => {\n\t\t\tc.conn.state.count += 1;\n\t\t\treturn c.conn.state.count;\n\t\t},\n\t\t// Get the connection's count\n\t\tgetConnCount: (c) => {\n\t\t\treturn c.conn.state.count;\n\t\t},\n\t\t// Get the connection's lifecycle counts\n\t\tgetConnLifecycleCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tconnectCount: c.conn.state.connectCount,\n\t\t\t\tdisconnectCount: c.conn.state.disconnectCount,\n\t\t\t};\n\t\t},\n\t\t// Get all connection IDs\n\t\tgetConnectionIds: (c) => {\n\t\t\treturn c.conns\n\t\t\t\t.entries()\n\t\t\t\t.map((x) => x[0])\n\t\t\t\t.toArray();\n\t\t},\n\t\t// Get actor sleep/wake counts\n\t\tgetActorCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t\twakeCount: c.state.wakeCount,\n\t\t\t};\n\t\t},\n\t\t// Trigger sleep\n\t\ttriggerSleep: (c) => {\n\t\t\tc.sleep();\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: HIBERNATION_SLEEP_TIMEOUT,\n\t},\n});\n","import { actor, type UniversalWebSocket } from \"rivetkit\";\nimport { promiseWithResolvers } from \"rivetkit/utils\";\n\nexport const SLEEP_TIMEOUT = 1000;\n\nexport const sleep = actor({\n\tstate: { startCount: 0, sleepCount: 0 },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tactions: {\n\t\ttriggerSleep: (c) => {\n\t\t\tc.sleep();\n\t\t},\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t};\n\t\t},\n\t\tsetAlarm: async (c, duration: number) => {\n\t\t\tawait c.schedule.after(duration, \"onAlarm\");\n\t\t},\n\t\tonAlarm: (c) => {\n\t\t\tc.log.info(\"alarm called\");\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t},\n});\n\nexport const sleepWithLongRpc = actor({\n\tstate: { startCount: 0, sleepCount: 0 },\n\tcreateVars: () =>\n\t\t({}) as { longRunningResolve: PromiseWithResolvers<void> },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tactions: {\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t};\n\t\t},\n\t\tlongRunningRpc: async (c) => {\n\t\t\tc.log.info(\"starting long running rpc\");\n\t\t\tc.vars.longRunningResolve = promiseWithResolvers((reason) => c.log.warn({ msg: \"unhandled long running rpc rejection\", reason }));\n\t\t\tc.broadcast(\"waiting\");\n\t\t\tawait c.vars.longRunningResolve.promise;\n\t\t\tc.log.info(\"finished long running rpc\");\n\t\t},\n\t\tfinishLongRunningRpc: (c) => c.vars.longRunningResolve?.resolve(),\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t},\n});\n\nexport const sleepWithRawHttp = actor({\n\tstate: { startCount: 0, sleepCount: 0, requestCount: 0 },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tonRequest: async (c, request) => {\n\t\tc.state.requestCount += 1;\n\t\tconst url = new URL(request.url);\n\n\t\tif (url.pathname === \"/long-request\") {\n\t\t\tconst duration = parseInt(\n\t\t\t\turl.searchParams.get(\"duration\") || \"1000\",\n\t\t\t);\n\t\t\tc.log.info({ msg: \"starting long fetch request\", duration });\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, duration));\n\t\t\tc.log.info(\"finished long fetch request\");\n\t\t\treturn new Response(JSON.stringify({ completed: true }), {\n\t\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\t});\n\t\t}\n\n\t\treturn new Response(\"Not Found\", { status: 404 });\n\t},\n\tactions: {\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t\trequestCount: c.state.requestCount,\n\t\t\t};\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t},\n});\n\nexport const sleepWithRawWebSocket = actor({\n\tstate: { startCount: 0, sleepCount: 0, connectionCount: 0 },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tonWebSocket: (c, websocket: UniversalWebSocket) => {\n\t\tc.state.connectionCount += 1;\n\t\tc.log.info({\n\t\t\tmsg: \"websocket connected\",\n\t\t\tconnectionCount: c.state.connectionCount,\n\t\t});\n\n\t\twebsocket.send(\n\t\t\tJSON.stringify({\n\t\t\t\ttype: \"connected\",\n\t\t\t\tconnectionCount: c.state.connectionCount,\n\t\t\t}),\n\t\t);\n\n\t\twebsocket.addEventListener(\"message\", (event: any) => {\n\t\t\tconst data = event.data;\n\t\t\tif (typeof data === \"string\") {\n\t\t\t\ttry {\n\t\t\t\t\tconst parsed = JSON.parse(data);\n\t\t\t\t\tif (parsed.type === \"getCounts\") {\n\t\t\t\t\t\twebsocket.send(\n\t\t\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t\t\ttype: \"counts\",\n\t\t\t\t\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\t\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t\t\t\t\t\tconnectionCount: c.state.connectionCount,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (parsed.type === \"keepAlive\") {\n\t\t\t\t\t\t// Just acknowledge to keep connection alive\n\t\t\t\t\t\twebsocket.send(JSON.stringify({ type: \"ack\" }));\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// Echo non-JSON messages\n\t\t\t\t\twebsocket.send(data);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\twebsocket.addEventListener(\"close\", () => {\n\t\t\tc.state.connectionCount -= 1;\n\t\t\tc.log.info({\n\t\t\t\tmsg: \"websocket disconnected\",\n\t\t\t\tconnectionCount: c.state.connectionCount,\n\t\t\t});\n\t\t});\n\t},\n\tactions: {\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t\tconnectionCount: c.state.connectionCount,\n\t\t\t};\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t},\n});\n\nexport const sleepWithNoSleepOption = actor({\n\tstate: { startCount: 0, sleepCount: 0 },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tactions: {\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t};\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t\tnoSleep: true,\n\t},\n});\n","import { actor } from \"rivetkit\";\nimport type { registry } from \"./registry\";\n\nexport const RUN_SLEEP_TIMEOUT = 1000;\n\n// Actor that tracks tick counts and respects abort signal\nexport const runWithTicks = actor({\n\tstate: {\n\t\ttickCount: 0,\n\t\tlastTickAt: 0,\n\t\trunStarted: false,\n\t\trunExited: false,\n\t},\n\trun: async (c) => {\n\t\tc.state.runStarted = true;\n\t\tc.log.info(\"run handler started\");\n\n\t\twhile (!c.aborted) {\n\t\t\tc.state.tickCount += 1;\n\t\t\tc.state.lastTickAt = Date.now();\n\t\t\tc.log.info({ msg: \"tick\", tickCount: c.state.tickCount });\n\n\t\t\t// Wait 50ms between ticks, or exit early if aborted\n\t\t\tawait new Promise<void>((resolve) => {\n\t\t\t\tconst timeout = setTimeout(resolve, 50);\n\t\t\t\tc.abortSignal.addEventListener(\n\t\t\t\t\t\"abort\",\n\t\t\t\t\t() => {\n\t\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t},\n\t\t\t\t\t{ once: true },\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\tc.state.runExited = true;\n\t\tc.log.info(\"run handler exiting gracefully\");\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\ttickCount: c.state.tickCount,\n\t\t\tlastTickAt: c.state.lastTickAt,\n\t\t\trunStarted: c.state.runStarted,\n\t\t\trunExited: c.state.runExited,\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t\trunStopTimeout: 1000,\n\t},\n});\n\n// Actor that consumes from a queue in the run handler\nexport const runWithQueueConsumer = actor({\n\tstate: {\n\t\tmessagesReceived: [] as Array<{ name: string; body: unknown }>,\n\t\trunStarted: false,\n\t\twakeCount: 0,\n\t},\n\tonWake: (c) => {\n\t\tc.state.wakeCount += 1;\n\t},\n\trun: async (c) => {\n\t\tc.state.runStarted = true;\n\t\tc.log.info(\"run handler started, waiting for messages\");\n\n\t\twhile (!c.aborted) {\n\t\t\tconst message = await c.queue.next({ names: [\"messages\"] });\n\t\t\tif (message) {\n\t\t\t\tc.log.info({ msg: \"received message\", body: message.body });\n\t\t\t\tc.state.messagesReceived.push({\n\t\t\t\t\tname: message.name,\n\t\t\t\t\tbody: message.body,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tc.log.info(\"run handler exiting gracefully\");\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\tmessagesReceived: c.state.messagesReceived,\n\t\t\trunStarted: c.state.runStarted,\n\t\t\twakeCount: c.state.wakeCount,\n\t\t}),\n\t\tsendMessage: async (c, body: unknown) => {\n\t\t\tconst client = c.client<typeof registry>();\n\t\t\tconst handle = client.runWithQueueConsumer.getForId(c.actorId);\n\t\t\tawait handle.send(\"messages\", body);\n\t\t\treturn true;\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t\trunStopTimeout: 1000,\n\t},\n});\n\n// Actor that exits the run handler after a short delay to test crash behavior\nexport const runWithEarlyExit = actor({\n\tstate: {\n\t\trunStarted: false,\n\t\tdestroyCalled: false,\n\t},\n\trun: async (c) => {\n\t\tc.state.runStarted = true;\n\t\tc.log.info(\"run handler started, will exit after delay\");\n\t\t// Wait a bit so we can observe the runStarted state before exit\n\t\tawait new Promise((resolve) => setTimeout(resolve, 200));\n\t\tc.log.info(\"run handler exiting early\");\n\t\t// Exit without respecting abort signal\n\t},\n\tonDestroy: (c) => {\n\t\tc.state.destroyCalled = true;\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\trunStarted: c.state.runStarted,\n\t\t\tdestroyCalled: c.state.destroyCalled,\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t},\n});\n\n// Actor that throws an error in the run handler to test crash behavior\nexport const runWithError = actor({\n\tstate: {\n\t\trunStarted: false,\n\t\tdestroyCalled: false,\n\t},\n\trun: async (c) => {\n\t\tc.state.runStarted = true;\n\t\tc.log.info(\"run handler started, will throw error\");\n\t\tawait new Promise((resolve) => setTimeout(resolve, 200));\n\t\tthrow new Error(\"intentional error in run handler\");\n\t},\n\tonDestroy: (c) => {\n\t\tc.state.destroyCalled = true;\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\trunStarted: c.state.runStarted,\n\t\t\tdestroyCalled: c.state.destroyCalled,\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t},\n});\n\n// Actor without a run handler for comparison\nexport const runWithoutHandler = actor({\n\tstate: {\n\t\twakeCount: 0,\n\t},\n\tonWake: (c) => {\n\t\tc.state.wakeCount += 1;\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\twakeCount: c.state.wakeCount,\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t},\n});\n","import { Loop } from \"@rivetkit/workflow-engine\";\nimport { actor, queue } from \"@/actor/mod\";\nimport { db } from \"@/db/mod\";\nimport { WORKFLOW_GUARD_KV_KEY } from \"@/workflow/constants\";\nimport { type WorkflowLoopContextOf, workflow } from \"@/workflow/mod\";\nimport type { registry } from \"./registry\";\n\nconst WORKFLOW_QUEUE_NAME = \"workflow-default\";\n\nexport const workflowCounterActor = actor({\n\tstate: {\n\t\trunCount: 0,\n\t\tguardTriggered: false,\n\t\thistory: [] as number[],\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop(\"counter\", async (loopCtx) => {\n\t\t\t\ttry {\n\t\t\t\t\t// Accessing state outside a step should throw.\n\t\t\t\t\t// biome-ignore lint/style/noUnusedExpressions: intentionally checking accessor.\n\t\t\t\t\tloopCtx.state;\n\t\t\t\t} catch {}\n\n\t\t\t\tawait loopCtx.step(\"increment\", async () => {\n\t\t\t\t\tincrementWorkflowCounter(loopCtx);\n\t\t\t\t});\n\n\t\t\t\tawait loopCtx.sleep(\"idle\", 25);\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t});\n\t}),\n\tactions: {\n\t\tgetState: async (c) => {\n\t\t\tconst guardFlag = await c.kv.get(WORKFLOW_GUARD_KV_KEY);\n\t\t\tif (guardFlag === \"true\") {\n\t\t\t\tc.state.guardTriggered = true;\n\t\t\t}\n\t\t\treturn c.state;\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: 50,\n\t},\n});\n\nexport const workflowQueueActor = actor({\n\tstate: {\n\t\treceived: [] as unknown[],\n\t},\n\tqueues: {\n\t\t[WORKFLOW_QUEUE_NAME]: queue<unknown, { echo: unknown }>(),\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop(\"queue\", async (loopCtx) => {\n\t\t\t\tconst message = await loopCtx.queue.next(\"queue-wait\", {\n\t\t\t\t\tnames: [WORKFLOW_QUEUE_NAME],\n\t\t\t\t\tcompletable: true,\n\t\t\t\t});\n\t\t\t\tif (!message.complete) {\n\t\t\t\t\treturn Loop.continue(undefined);\n\t\t\t\t}\n\t\t\t\tconst complete = message.complete;\n\t\t\t\tawait loopCtx.step(\"store-message\", async () => {\n\t\t\t\t\tawait storeWorkflowQueueMessage(loopCtx, message.body, complete);\n\t\t\t\t});\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t});\n\t}),\n\tactions: {\n\t\tgetMessages: (c) => c.state.received,\n\t\tsendAndWait: async (c, payload: unknown) => {\n\t\t\tconst client = c.client<typeof registry>();\n\t\t\tconst handle = client.workflowQueueActor.getForId(c.actorId);\n\t\t\treturn await handle.send(\n\t\t\t\tWORKFLOW_QUEUE_NAME,\n\t\t\t\tpayload,\n\t\t\t\t{ wait: true, timeout: 1_000 },\n\t\t\t);\n\t\t},\n\t},\n});\n\nexport const workflowAccessActor = actor({\n\tdb: db({\n\t\tonMigrate: async (rawDb) => {\n\t\t\tawait rawDb.execute(`\n\t\t\t\tCREATE TABLE IF NOT EXISTS workflow_access_log (\n\t\t\t\t\tid INTEGER PRIMARY KEY AUTOINCREMENT,\n\t\t\t\t\tcreated_at INTEGER NOT NULL\n\t\t\t\t)\n\t\t\t`);\n\t\t},\n\t}),\n\tstate: {\n\t\toutsideDbError: null as string | null,\n\t\toutsideClientError: null as string | null,\n\t\tinsideDbCount: 0,\n\t\tinsideClientAvailable: false,\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop(\"access\", async (loopCtx) => {\n\t\t\t\tlet outsideDbError: string | null = null;\n\t\t\t\tlet outsideClientError: string | null = null;\n\n\t\t\t\ttry {\n\t\t\t\t\t// Accessing db outside a step should throw.\n\t\t\t\t\t// biome-ignore lint/style/noUnusedExpressions: intentionally checking accessor.\n\t\t\t\t\tloopCtx.db;\n\t\t\t\t} catch (error) {\n\t\t\t\t\toutsideDbError =\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tloopCtx.client<typeof registry>();\n\t\t\t\t} catch (error) {\n\t\t\t\t\toutsideClientError =\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error);\n\t\t\t\t}\n\n\t\t\t\tawait loopCtx.step(\"access-step\", async () => {\n\t\t\t\t\tawait updateWorkflowAccessState(\n\t\t\t\t\t\tloopCtx,\n\t\t\t\t\t\toutsideDbError,\n\t\t\t\t\t\toutsideClientError,\n\t\t\t\t\t);\n\t\t\t\t});\n\n\t\t\t\tawait loopCtx.sleep(\"idle\", 25);\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t});\n\t}),\n\tactions: {\n\t\tgetState: (c) => c.state,\n\t},\n});\n\nexport const workflowSleepActor = actor({\n\tstate: {\n\t\tticks: 0,\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop(\"sleep\", async (loopCtx) => {\n\t\t\t\tawait loopCtx.step(\"tick\", async () => {\n\t\t\t\t\tincrementWorkflowSleepTick(loopCtx);\n\t\t\t\t});\n\t\t\t\tawait loopCtx.sleep(\"delay\", 40);\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t});\n\t}),\n\tactions: {\n\t\tgetState: (c) => c.state,\n\t},\n\toptions: {\n\t\tsleepTimeout: 50,\n\t},\n});\n\nexport const workflowStopTeardownActor = actor({\n\tstate: {\n\t\twakeAts: [] as number[],\n\t\tsleepAts: [] as number[],\n\t},\n\tqueues: {\n\t\tnever: queue<unknown>(),\n\t},\n\tonWake: (c) => {\n\t\tc.state.wakeAts.push(Date.now());\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepAts.push(Date.now());\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop(\"wait-forever\", async (loopCtx) => {\n\t\t\t\tawait loopCtx.queue.next(\"wait-for-never\", {\n\t\t\t\t\tnames: [\"never\"],\n\t\t\t\t});\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t});\n\t}),\n\tactions: {\n\t\tgetTimeline: (c) => ({\n\t\t\twakeAts: [...c.state.wakeAts],\n\t\t\tsleepAts: [...c.state.sleepAts],\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: 75,\n\t\trunStopTimeout: 2_000,\n\t},\n});\n\nfunction incrementWorkflowCounter(\n\tctx: WorkflowLoopContextOf<typeof workflowCounterActor>,\n): void {\n\tctx.state.runCount += 1;\n\tctx.state.history.push(ctx.state.runCount);\n}\n\nasync function storeWorkflowQueueMessage(\n\tctx: WorkflowLoopContextOf<typeof workflowQueueActor>,\n\tbody: unknown,\n\tcomplete: (response: { echo: unknown }) => Promise<void>,\n): Promise<void> {\n\tctx.state.received.push(body);\n\tawait complete({ echo: body });\n}\n\nasync function updateWorkflowAccessState(\n\tctx: WorkflowLoopContextOf<typeof workflowAccessActor>,\n\toutsideDbError: string | null,\n\toutsideClientError: string | null,\n): Promise<void> {\n\tawait ctx.db.execute(\n\t\t`INSERT INTO workflow_access_log (created_at) VALUES (${Date.now()})`,\n\t);\n\tconst counts = await ctx.db.execute<{ count: number }>(\n\t\t`SELECT COUNT(*) as count FROM workflow_access_log`,\n\t);\n\tconst client = ctx.client<typeof registry>();\n\n\tctx.state.outsideDbError = outsideDbError;\n\tctx.state.outsideClientError = outsideClientError;\n\tctx.state.insideDbCount = counts[0]?.count ?? 0;\n\tctx.state.insideClientAvailable =\n\t\ttypeof client.workflowQueueActor.getForId === \"function\";\n}\n\nfunction incrementWorkflowSleepTick(\n\tctx: WorkflowLoopContextOf<typeof workflowSleepActor>,\n): void {\n\tctx.state.ticks += 1;\n}\n\nexport { WORKFLOW_QUEUE_NAME };\n"]}
@@ -1,6 +1,6 @@
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
- var _chunkRMJJE43Bcjs = require('./chunk-RMJJE43B.cjs');
3
+ var _chunkZSJ2OTY4cjs = require('./chunk-ZSJ2OTY4.cjs');
4
4
 
5
5
 
6
6
 
@@ -525,7 +525,7 @@ var ActorKv = class {
525
525
 
526
526
  // src/actor/log.ts
527
527
  function loggerWithoutContext() {
528
- return _chunkRMJJE43Bcjs.getLogger.call(void 0, "actor-runtime");
528
+ return _chunkZSJ2OTY4cjs.getLogger.call(void 0, "actor-runtime");
529
529
  }
530
530
 
531
531
  // src/actor/utils.ts
@@ -1047,4 +1047,4 @@ var ActorContext = class {
1047
1047
 
1048
1048
 
1049
1049
  exports.RUN_FUNCTION_CONFIG_SYMBOL = RUN_FUNCTION_CONFIG_SYMBOL; exports.getRunFunction = getRunFunction; exports.getRunMetadata = getRunMetadata; exports.getRunInspectorConfig = getRunInspectorConfig; exports.ActorConfigSchema = ActorConfigSchema; exports.loggerWithoutContext = loggerWithoutContext; exports.assertUnreachable = assertUnreachable; exports.DeadlineError = DeadlineError; exports.deadline = deadline; exports.generateSecureToken = generateSecureToken; exports.isStatePath = isStatePath; exports.isConnStatePath = isConnStatePath; exports.event = event; exports.queue = queue; exports.hasSchemaConfigKey = hasSchemaConfigKey; exports.getEventCanSubscribe = getEventCanSubscribe; exports.getQueueCanPublish = getQueueCanPublish; exports.validateSchemaSync = validateSchemaSync; exports.KEYS = KEYS; exports.makeWorkflowKey = makeWorkflowKey; exports.workflowStoragePrefix = workflowStoragePrefix; exports.tracesStoragePrefix = tracesStoragePrefix; exports.queueMetadataKey = queueMetadataKey; exports.queueMessagesPrefix = queueMessagesPrefix; exports.makeConnKey = makeConnKey; exports.makeQueueMessageKey = makeQueueMessageKey; exports.decodeQueueMessageKey = decodeQueueMessageKey; exports.ActorKv = ActorKv; exports.ACTOR_CONTEXT_INTERNAL_SYMBOL = ACTOR_CONTEXT_INTERNAL_SYMBOL; exports.ActorContext = ActorContext;
1050
- //# sourceMappingURL=chunk-HFWRHT5T.cjs.map
1050
+ //# sourceMappingURL=chunk-KSZZRTOD.cjs.map