rivetkit 2.3.4 → 2.3.5-rc.1

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 (161) hide show
  1. package/dist/browser/client.d.ts +157 -9
  2. package/dist/browser/client.js +518 -542
  3. package/dist/browser/client.js.map +1 -1
  4. package/dist/browser/inspector/client.d.ts +101 -2
  5. package/dist/browser/inspector/client.js +1245 -227
  6. package/dist/browser/inspector/client.js.map +1 -1
  7. package/dist/tsup/agent-os/index.cjs +103 -36
  8. package/dist/tsup/agent-os/index.cjs.map +1 -1
  9. package/dist/tsup/agent-os/index.d.cts +159 -11
  10. package/dist/tsup/agent-os/index.d.ts +159 -11
  11. package/dist/tsup/agent-os/index.js +103 -36
  12. package/dist/tsup/agent-os/index.js.map +1 -1
  13. package/dist/tsup/{chunk-7X4M7ZRA.cjs → chunk-4XKED5P5.cjs} +146 -177
  14. package/dist/tsup/chunk-4XKED5P5.cjs.map +1 -0
  15. package/dist/tsup/{chunk-Q7NBMTF3.cjs → chunk-6HQCLWAW.cjs} +384 -4
  16. package/dist/tsup/chunk-6HQCLWAW.cjs.map +1 -0
  17. package/dist/tsup/{chunk-JZ7TWV65.js → chunk-7AFZMFPQ.js} +15 -1
  18. package/dist/tsup/chunk-7AFZMFPQ.js.map +1 -0
  19. package/dist/tsup/{chunk-M7DCRMOZ.js → chunk-B4IZU537.js} +382 -2
  20. package/dist/tsup/chunk-B4IZU537.js.map +1 -0
  21. package/dist/tsup/{chunk-3MHDOUD7.cjs → chunk-G3CCRCTK.cjs} +14 -9
  22. package/dist/tsup/chunk-G3CCRCTK.cjs.map +1 -0
  23. package/dist/tsup/{chunk-CMPFZ724.js → chunk-GAV4PKFT.js} +16 -47
  24. package/dist/tsup/{chunk-CMPFZ724.js.map → chunk-GAV4PKFT.js.map} +1 -1
  25. package/dist/tsup/{chunk-HXUEHHJF.js → chunk-JI6GZ2C2.js} +2 -11
  26. package/dist/tsup/{chunk-HXUEHHJF.js.map → chunk-JI6GZ2C2.js.map} +1 -1
  27. package/dist/tsup/{chunk-3SNFA373.cjs → chunk-M3FCXL3Q.cjs} +3 -3
  28. package/dist/tsup/{chunk-3SNFA373.cjs.map → chunk-M3FCXL3Q.cjs.map} +1 -1
  29. package/dist/tsup/{chunk-GXW3VFJQ.js → chunk-MGTSVSUC.js} +2 -2
  30. package/dist/tsup/{chunk-VE2X4KMG.cjs → chunk-MYWZCDML.cjs} +2 -11
  31. package/dist/tsup/chunk-MYWZCDML.cjs.map +1 -0
  32. package/dist/tsup/{chunk-M5TAM4JV.js → chunk-NIC3QLKL.js} +3 -3
  33. package/dist/tsup/{chunk-H4XOUVGP.js → chunk-P4OGQ4JL.js} +5 -7
  34. package/dist/tsup/{chunk-H4XOUVGP.js.map → chunk-P4OGQ4JL.js.map} +1 -1
  35. package/dist/tsup/{chunk-EOSGY3DC.js → chunk-PAG6G46L.js} +2 -2
  36. package/dist/tsup/{chunk-XIX5DOZN.js → chunk-SHBE77IT.js} +14 -9
  37. package/dist/tsup/chunk-SHBE77IT.js.map +1 -0
  38. package/dist/tsup/{chunk-SRT2DPN3.cjs → chunk-TNIWIUNV.cjs} +9 -11
  39. package/dist/tsup/chunk-TNIWIUNV.cjs.map +1 -0
  40. package/dist/tsup/{chunk-UPOCJPEQ.cjs → chunk-TR5NLR5V.cjs} +4 -4
  41. package/dist/tsup/{chunk-UPOCJPEQ.cjs.map → chunk-TR5NLR5V.cjs.map} +1 -1
  42. package/dist/tsup/{chunk-ZA7FLHKH.cjs → chunk-UEULFXUI.cjs} +16 -2
  43. package/dist/tsup/chunk-UEULFXUI.cjs.map +1 -0
  44. package/dist/tsup/{chunk-T4MURX4P.cjs → chunk-UJ2FQY63.cjs} +7 -7
  45. package/dist/tsup/{chunk-T4MURX4P.cjs.map → chunk-UJ2FQY63.cjs.map} +1 -1
  46. package/dist/tsup/client/mod.cjs +7 -8
  47. package/dist/tsup/client/mod.cjs.map +1 -1
  48. package/dist/tsup/client/mod.d.cts +5 -4
  49. package/dist/tsup/client/mod.d.ts +5 -4
  50. package/dist/tsup/client/mod.js +6 -7
  51. package/dist/tsup/common/log.cjs +2 -2
  52. package/dist/tsup/common/log.js +1 -1
  53. package/dist/tsup/common/websocket.cjs +3 -3
  54. package/dist/tsup/common/websocket.js +2 -2
  55. package/dist/tsup/{config-D49x8NpL.d.cts → config-BxOimoGX.d.cts} +16 -0
  56. package/dist/tsup/{config-D49x8NpL.d.ts → config-BxOimoGX.d.ts} +16 -0
  57. package/dist/tsup/{config-ZkIsRFsN.d.ts → config-BzdqbLAP.d.ts} +164 -27
  58. package/dist/tsup/{config-BfBhjEbk.d.cts → config-CPPEwn_e.d.cts} +164 -27
  59. package/dist/tsup/{context-sZ9GlaBK.d.cts → context-DSA9gFXB.d.cts} +2 -2
  60. package/dist/tsup/{context-B7-84u9K.d.ts → context-wWv-K2K_.d.ts} +2 -2
  61. package/dist/tsup/db/drizzle.cjs +120 -68
  62. package/dist/tsup/db/drizzle.cjs.map +1 -1
  63. package/dist/tsup/db/drizzle.d.cts +8 -3
  64. package/dist/tsup/db/drizzle.d.ts +8 -3
  65. package/dist/tsup/db/drizzle.js +120 -68
  66. package/dist/tsup/db/drizzle.js.map +1 -1
  67. package/dist/tsup/db/mod.cjs +74 -22
  68. package/dist/tsup/db/mod.cjs.map +1 -1
  69. package/dist/tsup/db/mod.d.cts +4 -3
  70. package/dist/tsup/db/mod.d.ts +4 -3
  71. package/dist/tsup/db/mod.js +74 -22
  72. package/dist/tsup/db/mod.js.map +1 -1
  73. package/dist/tsup/dynamic/mod.cjs +2 -2
  74. package/dist/tsup/dynamic/mod.d.cts +3 -3
  75. package/dist/tsup/dynamic/mod.d.ts +3 -3
  76. package/dist/tsup/dynamic/mod.js +1 -1
  77. package/dist/tsup/inspector/mod.cjs +4 -5
  78. package/dist/tsup/inspector/mod.cjs.map +1 -1
  79. package/dist/tsup/inspector/mod.js +3 -4
  80. package/dist/tsup/inspector/mod.js.map +1 -1
  81. package/dist/tsup/inspector-tab/mod.cjs +2 -2
  82. package/dist/tsup/inspector-tab/mod.cjs.map +1 -1
  83. package/dist/tsup/inspector-tab/mod.d.cts +5 -5
  84. package/dist/tsup/inspector-tab/mod.d.ts +5 -5
  85. package/dist/tsup/inspector-tab/mod.js +1 -1
  86. package/dist/tsup/inspector-tab/mod.js.map +1 -1
  87. package/dist/tsup/mod.cjs +605 -158
  88. package/dist/tsup/mod.cjs.map +1 -1
  89. package/dist/tsup/mod.d.cts +5 -5
  90. package/dist/tsup/mod.d.ts +5 -5
  91. package/dist/tsup/mod.js +528 -81
  92. package/dist/tsup/mod.js.map +1 -1
  93. package/dist/tsup/test/mod.cjs +10 -11
  94. package/dist/tsup/test/mod.cjs.map +1 -1
  95. package/dist/tsup/test/mod.d.cts +3 -3
  96. package/dist/tsup/test/mod.d.ts +3 -3
  97. package/dist/tsup/test/mod.js +6 -7
  98. package/dist/tsup/test/mod.js.map +1 -1
  99. package/dist/tsup/utils-CV0akuDD.d.ts +162 -0
  100. package/dist/tsup/utils-DQDCphrl.d.cts +162 -0
  101. package/dist/tsup/utils.cjs +6 -2
  102. package/dist/tsup/utils.cjs.map +1 -1
  103. package/dist/tsup/utils.d.cts +3 -146
  104. package/dist/tsup/utils.d.ts +3 -146
  105. package/dist/tsup/utils.js +5 -1
  106. package/dist/tsup/workflow/mod.cjs +198 -151
  107. package/dist/tsup/workflow/mod.cjs.map +1 -1
  108. package/dist/tsup/workflow/mod.d.cts +5 -5
  109. package/dist/tsup/workflow/mod.d.ts +5 -5
  110. package/dist/tsup/workflow/mod.js +187 -140
  111. package/dist/tsup/workflow/mod.js.map +1 -1
  112. package/package.json +8 -8
  113. package/src/actor/config.test.ts +14 -0
  114. package/src/actor/config.ts +104 -16
  115. package/src/actor/definition.ts +18 -7
  116. package/src/agent-os/actor/index.ts +2 -2
  117. package/src/common/bare/generated/actor-runtime-socket-protocol/v1.ts +848 -0
  118. package/src/common/bare/generated/inspector/v6.ts +1367 -0
  119. package/src/common/database/config.ts +24 -0
  120. package/src/common/database/mod.test.ts +148 -59
  121. package/src/common/database/mod.ts +93 -23
  122. package/src/common/database/native-database.test.ts +9 -0
  123. package/src/common/database/native-database.ts +151 -0
  124. package/src/common/database/shared.ts +15 -0
  125. package/src/common/encoding.ts +28 -21
  126. package/src/db/drizzle.test.ts +157 -0
  127. package/src/db/drizzle.ts +170 -79
  128. package/src/dynamic/isolate-runtime.ts +0 -2
  129. package/src/engine-client/driver.ts +0 -15
  130. package/src/engine-client/mod.ts +0 -41
  131. package/src/inspector/client.browser.ts +69 -8
  132. package/src/inspector-tab/mod.ts +1 -0
  133. package/src/registry/config/index.ts +1 -35
  134. package/src/registry/napi-runtime.ts +204 -16
  135. package/src/registry/native.ts +200 -30
  136. package/src/registry/runtime.ts +146 -3
  137. package/src/registry/wasm-runtime.ts +217 -6
  138. package/src/utils.ts +3 -0
  139. package/src/workflow/context.ts +5 -27
  140. package/src/workflow/driver.test.ts +62 -0
  141. package/src/workflow/driver.ts +231 -113
  142. package/src/workflow/mod.ts +3 -3
  143. package/dist/tsup/chunk-3MHDOUD7.cjs.map +0 -1
  144. package/dist/tsup/chunk-7X4M7ZRA.cjs.map +0 -1
  145. package/dist/tsup/chunk-JZ7TWV65.js.map +0 -1
  146. package/dist/tsup/chunk-M7DCRMOZ.js.map +0 -1
  147. package/dist/tsup/chunk-Q7NBMTF3.cjs.map +0 -1
  148. package/dist/tsup/chunk-SRT2DPN3.cjs.map +0 -1
  149. package/dist/tsup/chunk-VE2X4KMG.cjs.map +0 -1
  150. package/dist/tsup/chunk-W6WPKZ6I.js +0 -382
  151. package/dist/tsup/chunk-W6WPKZ6I.js.map +0 -1
  152. package/dist/tsup/chunk-XIX5DOZN.js.map +0 -1
  153. package/dist/tsup/chunk-Z7PSQWMC.cjs +0 -382
  154. package/dist/tsup/chunk-Z7PSQWMC.cjs.map +0 -1
  155. package/dist/tsup/chunk-ZA7FLHKH.cjs.map +0 -1
  156. package/src/actor/driver.ts +0 -141
  157. package/src/actor/instance/mod.ts +0 -2484
  158. package/src/drivers/engine/actor-driver.ts +0 -2473
  159. /package/dist/tsup/{chunk-GXW3VFJQ.js.map → chunk-MGTSVSUC.js.map} +0 -0
  160. /package/dist/tsup/{chunk-M5TAM4JV.js.map → chunk-NIC3QLKL.js.map} +0 -0
  161. /package/dist/tsup/{chunk-EOSGY3DC.js.map → chunk-PAG6G46L.js.map} +0 -0
package/dist/tsup/mod.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  decodeWorkflowHistoryTransport
3
- } from "./chunk-GXW3VFJQ.js";
3
+ } from "./chunk-MGTSVSUC.js";
4
4
  import {
5
5
  ACTOR_CONTEXT_INTERNAL_SYMBOL,
6
6
  ActorConfigSchema,
@@ -10,7 +10,7 @@ import {
10
10
  getRunFunction,
11
11
  getRunInspectorConfig,
12
12
  getRunMetadata
13
- } from "./chunk-XIX5DOZN.js";
13
+ } from "./chunk-SHBE77IT.js";
14
14
  import {
15
15
  ALLOWED_PUBLIC_HEADERS,
16
16
  HEADER_CONN_PARAMS,
@@ -20,26 +20,21 @@ import {
20
20
  getDatacenters,
21
21
  tryParseEndpoint,
22
22
  updateRunnerConfig
23
- } from "./chunk-CMPFZ724.js";
23
+ } from "./chunk-GAV4PKFT.js";
24
24
  import {
25
- KEYS,
26
25
  makePrefixedKey,
27
- queueMessagesPrefix,
28
- queueMetadataKey,
29
- removePrefixFromKey,
30
- workflowStoragePrefix
31
- } from "./chunk-HXUEHHJF.js";
32
- import {
33
- assertJsonCompatValue,
34
- decodeCborCompat,
35
- encodeCborCompat
36
- } from "./chunk-W6WPKZ6I.js";
37
- import "./chunk-EOSGY3DC.js";
26
+ removePrefixFromKey
27
+ } from "./chunk-JI6GZ2C2.js";
28
+ import "./chunk-7AFZMFPQ.js";
29
+ import "./chunk-PAG6G46L.js";
38
30
  import {
39
31
  LogLevelSchema,
40
32
  VERSION,
33
+ assertJsonCompatValue,
41
34
  configureBaseLogger,
35
+ decodeCborCompat,
42
36
  deconstructError,
37
+ encodeCborCompat,
43
38
  getEnvUniversal,
44
39
  getLogger,
45
40
  getNodeEnv,
@@ -64,7 +59,7 @@ import {
64
59
  parsePortEnv,
65
60
  stringifyError,
66
61
  toUint8Array
67
- } from "./chunk-M7DCRMOZ.js";
62
+ } from "./chunk-B4IZU537.js";
68
63
  import {
69
64
  INTERNAL_ERROR_CODE,
70
65
  RivetError,
@@ -77,7 +72,6 @@ import {
77
72
  toRivetError,
78
73
  unsupportedFeature
79
74
  } from "./chunk-ZZ3WBRPD.js";
80
- import "./chunk-JZ7TWV65.js";
81
75
 
82
76
  // src/actor/log.ts
83
77
  function loggerWithoutContext() {
@@ -85,15 +79,21 @@ function loggerWithoutContext() {
85
79
  }
86
80
 
87
81
  // src/actor/definition.ts
88
- var warnedDeprecatedTimeoutKeys = /* @__PURE__ */ new Set();
89
- function warnDeprecatedShutdownTimeoutKeys(options) {
82
+ var warnedDeprecatedOptionKeys = /* @__PURE__ */ new Set();
83
+ var DEPRECATED_OPTION_MESSAGES = {
84
+ onDestroyTimeout: "Configure `sleepGracePeriod` instead, which bounds the entire graceful shutdown window for both sleep and destroy.",
85
+ waitUntilTimeout: "Configure `sleepGracePeriod` instead, which bounds the entire graceful shutdown window for both sleep and destroy.",
86
+ preloadMaxWorkflowBytes: "Internal storage moved to SQLite and no longer uses KV preloading.",
87
+ preloadMaxConnectionsBytes: "Internal storage moved to SQLite and no longer uses KV preloading."
88
+ };
89
+ function warnDeprecatedOptionKeys(options) {
90
90
  if (!options || typeof options !== "object") return;
91
91
  const opts = options;
92
- for (const key of ["onDestroyTimeout", "waitUntilTimeout"]) {
93
- if (opts[key] !== void 0 && !warnedDeprecatedTimeoutKeys.has(key)) {
94
- warnedDeprecatedTimeoutKeys.add(key);
92
+ for (const [key, detail] of Object.entries(DEPRECATED_OPTION_MESSAGES)) {
93
+ if (opts[key] !== void 0 && !warnedDeprecatedOptionKeys.has(key)) {
94
+ warnedDeprecatedOptionKeys.add(key);
95
95
  loggerWithoutContext().warn({
96
- msg: `actor option \`${key}\` is deprecated and is now ignored. Configure \`sleepGracePeriod\` instead, which bounds the entire graceful shutdown window for both sleep and destroy. Will be removed in 2.2.0.`
96
+ msg: `actor option \`${key}\` is deprecated and is now ignored. ${detail} Will be removed in 2.2.0.`
97
97
  });
98
98
  }
99
99
  }
@@ -111,7 +111,7 @@ function isStaticActorInstance(_actor) {
111
111
  return true;
112
112
  }
113
113
  function actor(input) {
114
- warnDeprecatedShutdownTimeoutKeys(
114
+ warnDeprecatedOptionKeys(
115
115
  input == null ? void 0 : input.options
116
116
  );
117
117
  const config = ActorConfigSchema.parse(input);
@@ -839,31 +839,6 @@ function buildActorNames(config) {
839
839
  const metadata = {};
840
840
  metadata.icon = options.icon ?? runMeta.icon;
841
841
  metadata.name = options.name ?? runMeta.name;
842
- metadata.preload = {
843
- keys: [
844
- Array.from(KEYS.PERSIST_DATA),
845
- Array.from(KEYS.INSPECTOR_TOKEN),
846
- Array.from(queueMetadataKey()),
847
- Array.from(KEYS.LAST_PUSHED_ALARM)
848
- ],
849
- prefixes: [
850
- {
851
- prefix: Array.from(workflowStoragePrefix()),
852
- maxBytes: options.preloadMaxWorkflowBytes ?? 131072,
853
- partial: false
854
- },
855
- {
856
- prefix: Array.from(KEYS.CONN_PREFIX),
857
- maxBytes: options.preloadMaxConnectionsBytes ?? 65536,
858
- partial: false
859
- },
860
- {
861
- prefix: Array.from(queueMessagesPrefix()),
862
- maxBytes: 65536,
863
- partial: false
864
- }
865
- ]
866
- };
867
842
  if (!metadata.icon) delete metadata.icon;
868
843
  if (!metadata.name) delete metadata.name;
869
844
  return [actorName, { metadata }];
@@ -1056,6 +1031,12 @@ function toNativeBindings(sql, params) {
1056
1031
  return toNativeBinding(value);
1057
1032
  });
1058
1033
  }
1034
+ function toNativeBatchStatement(statement) {
1035
+ return {
1036
+ sql: statement.sql,
1037
+ params: toNativeBindings(statement.sql, statement.params)
1038
+ };
1039
+ }
1059
1040
  function normalizeNativeMetrics(metrics) {
1060
1041
  if (!metrics) return null;
1061
1042
  const raw = metrics;
@@ -1169,6 +1150,60 @@ function wrapJsNativeDatabase(database) {
1169
1150
  async execute(sql, params) {
1170
1151
  return await executeNative(sql, params);
1171
1152
  },
1153
+ async executeBatch(statements) {
1154
+ const nativeStatements = statements.map(toNativeBatchStatement);
1155
+ const release = gate.enter();
1156
+ let transaction;
1157
+ try {
1158
+ const results = database.executeBatch ? await database.executeBatch(nativeStatements) : await (async () => {
1159
+ transaction = await database.beginTransaction();
1160
+ const transactionResults = [];
1161
+ for (const statement of nativeStatements) {
1162
+ transactionResults.push(
1163
+ await transaction.execute(
1164
+ statement.sql,
1165
+ statement.params
1166
+ )
1167
+ );
1168
+ }
1169
+ await transaction.commit();
1170
+ transaction = void 0;
1171
+ return transactionResults;
1172
+ })();
1173
+ for (const result of results) {
1174
+ if (result.lastInsertRowId !== void 0) {
1175
+ lastInsertRowId = result.lastInsertRowId;
1176
+ }
1177
+ }
1178
+ return results;
1179
+ } catch (error) {
1180
+ if (transaction) {
1181
+ try {
1182
+ await transaction.rollback();
1183
+ } catch {
1184
+ }
1185
+ }
1186
+ enrichNativeDatabaseError(database, error);
1187
+ } finally {
1188
+ release();
1189
+ }
1190
+ },
1191
+ async beginTransaction(timeoutMs) {
1192
+ const release = gate.enter();
1193
+ let transaction;
1194
+ try {
1195
+ transaction = await database.beginTransaction(timeoutMs);
1196
+ } catch (error) {
1197
+ enrichNativeDatabaseError(database, error);
1198
+ } finally {
1199
+ release();
1200
+ }
1201
+ return wrapTransaction(database, transaction, gate, (result) => {
1202
+ if (result.lastInsertRowId !== void 0) {
1203
+ lastInsertRowId = result.lastInsertRowId;
1204
+ }
1205
+ });
1206
+ },
1172
1207
  async run(sql, params) {
1173
1208
  await executeNative(sql, params);
1174
1209
  },
@@ -1186,6 +1221,59 @@ function wrapJsNativeDatabase(database) {
1186
1221
  }
1187
1222
  };
1188
1223
  }
1224
+ function wrapTransaction(database, transaction, gate, onExecute) {
1225
+ return {
1226
+ async exec(sql, callback) {
1227
+ const release = gate.enter();
1228
+ let result;
1229
+ try {
1230
+ result = await transaction.exec(sql);
1231
+ } catch (error) {
1232
+ enrichNativeDatabaseError(database, error);
1233
+ } finally {
1234
+ release();
1235
+ }
1236
+ if (callback) {
1237
+ for (const row of result.rows) callback(row, result.columns);
1238
+ }
1239
+ },
1240
+ async execute(sql, params) {
1241
+ const release = gate.enter();
1242
+ try {
1243
+ const result = await transaction.execute(
1244
+ sql,
1245
+ toNativeBindings(sql, params)
1246
+ );
1247
+ onExecute(result);
1248
+ return result;
1249
+ } catch (error) {
1250
+ enrichNativeDatabaseError(database, error);
1251
+ } finally {
1252
+ release();
1253
+ }
1254
+ },
1255
+ async commit() {
1256
+ const release = gate.enter();
1257
+ try {
1258
+ await transaction.commit();
1259
+ } catch (error) {
1260
+ enrichNativeDatabaseError(database, error);
1261
+ } finally {
1262
+ release();
1263
+ }
1264
+ },
1265
+ async rollback() {
1266
+ const release = gate.enter();
1267
+ try {
1268
+ await transaction.rollback();
1269
+ } catch (error) {
1270
+ enrichNativeDatabaseError(database, error);
1271
+ } finally {
1272
+ release();
1273
+ }
1274
+ }
1275
+ };
1276
+ }
1189
1277
  function lastInsertRowIdColumnName(sql) {
1190
1278
  const match = sql.match(
1191
1279
  /^\s*SELECT\s+last_insert_rowid\s*\(\s*\)\s*(?:AS\s+("[^"]+"|`[^`]+`|\[[^\]]+\]|\w+))?\s*;?\s*$/i
@@ -1300,6 +1388,9 @@ function asNativeConn(handle) {
1300
1388
  function asNativeWebSocket(handle) {
1301
1389
  return handle;
1302
1390
  }
1391
+ function asNativeSqlTransaction(handle) {
1392
+ return handle;
1393
+ }
1303
1394
  function asNativeCancellationToken(handle) {
1304
1395
  return handle;
1305
1396
  }
@@ -1329,6 +1420,12 @@ function toNapiSqlBindParams(params) {
1329
1420
  }
1330
1421
  return params.map((param) => toNapiSqlBindParam(param));
1331
1422
  }
1423
+ function toNapiSqlBatchStatement(statement) {
1424
+ return {
1425
+ sql: statement.sql,
1426
+ params: toNapiSqlBindParams(statement.params) ?? void 0
1427
+ };
1428
+ }
1332
1429
  function toNapiBuffer(value) {
1333
1430
  return Buffer.from(value);
1334
1431
  }
@@ -1452,11 +1549,16 @@ var NapiCoreRuntime = class {
1452
1549
  createCancellationToken() {
1453
1550
  return new this.#bindings.CancellationToken();
1454
1551
  }
1455
- createTestActorContext(actorId, name, region) {
1456
- return new this.#bindings.ActorContext(
1457
- actorId,
1458
- name,
1459
- region
1552
+ decodeInspectorRequest(bytes, advertisedVersion) {
1553
+ return this.#bindings.decodeInspectorRequest(
1554
+ toNapiBuffer(bytes),
1555
+ advertisedVersion
1556
+ );
1557
+ }
1558
+ encodeInspectorResponse(bytes, targetVersion) {
1559
+ return this.#bindings.encodeInspectorResponse(
1560
+ toNapiBuffer(bytes),
1561
+ targetVersion
1460
1562
  );
1461
1563
  }
1462
1564
  cancellationTokenAborted(token) {
@@ -1520,6 +1622,14 @@ var NapiCoreRuntime = class {
1520
1622
  toNapiStateDeltaPayload(payload)
1521
1623
  );
1522
1624
  }
1625
+ async actorSaveStateAndWorkflowBatch(ctx, writes) {
1626
+ await asNativeActorContext(ctx).saveStateAndWorkflowBatch(
1627
+ writes.map((write) => ({
1628
+ key: toNapiBuffer(write.key),
1629
+ value: toNapiBuffer(write.value)
1630
+ }))
1631
+ );
1632
+ }
1523
1633
  actorId(ctx) {
1524
1634
  return asNativeActorContext(ctx).actorId();
1525
1635
  }
@@ -1626,6 +1736,33 @@ var NapiCoreRuntime = class {
1626
1736
  );
1627
1737
  return normalizeRuntimeSqlExecuteResult(result);
1628
1738
  }
1739
+ async actorSqlExecuteBatch(ctx, statements) {
1740
+ const results = await this.#actorSql(ctx).executeBatch(
1741
+ statements.map(toNapiSqlBatchStatement)
1742
+ );
1743
+ return results.map(normalizeRuntimeSqlExecuteResult);
1744
+ }
1745
+ async actorSqlBeginTransaction(ctx, timeoutMs) {
1746
+ return await this.#actorSql(ctx).beginTransaction(
1747
+ timeoutMs
1748
+ );
1749
+ }
1750
+ async actorSqlTransactionExec(transaction, sql) {
1751
+ return await asNativeSqlTransaction(transaction).exec(sql);
1752
+ }
1753
+ async actorSqlTransactionExecute(transaction, sql, params) {
1754
+ const result = await asNativeSqlTransaction(transaction).execute(
1755
+ sql,
1756
+ toNapiSqlBindParams(params)
1757
+ );
1758
+ return normalizeRuntimeSqlExecuteResult(result);
1759
+ }
1760
+ async actorSqlTransactionCommit(transaction) {
1761
+ await asNativeSqlTransaction(transaction).commit();
1762
+ }
1763
+ async actorSqlTransactionRollback(transaction) {
1764
+ await asNativeSqlTransaction(transaction).rollback();
1765
+ }
1629
1766
  async actorSqlQuery(ctx, sql, params) {
1630
1767
  return await this.#actorSql(ctx).query(
1631
1768
  sql,
@@ -1652,6 +1789,9 @@ var NapiCoreRuntime = class {
1652
1789
  this.#sql.delete(nativeCtx);
1653
1790
  await database.close();
1654
1791
  }
1792
+ async actorRuntimeSocketProvision(ctx) {
1793
+ return await asNativeActorContext(ctx).provisionActorRuntimeSocket();
1794
+ }
1655
1795
  async actorQueueSend(ctx, name, body) {
1656
1796
  return toNapiQueueMessage(
1657
1797
  await asNativeActorContext(ctx).queue().send(name, toNapiBuffer(body))
@@ -1700,11 +1840,51 @@ var NapiCoreRuntime = class {
1700
1840
  async actorQueueReset(ctx) {
1701
1841
  await asNativeActorContext(ctx).queue().reset();
1702
1842
  }
1703
- actorScheduleAfter(ctx, durationMs, actionName, args) {
1704
- asNativeActorContext(ctx).schedule().after(durationMs, actionName, toNapiBuffer(args));
1843
+ async actorScheduleAfter(ctx, durationMs, actionName, args) {
1844
+ return await asNativeActorContext(ctx).schedule().after(durationMs, actionName, toNapiBuffer(args));
1845
+ }
1846
+ async actorScheduleAt(ctx, timestampMs, actionName, args) {
1847
+ return await asNativeActorContext(ctx).schedule().at(timestampMs, actionName, toNapiBuffer(args));
1848
+ }
1849
+ async actorScheduleCancel(ctx, id) {
1850
+ return await asNativeActorContext(ctx).schedule().cancel(id);
1851
+ }
1852
+ async actorScheduleGet(ctx, id) {
1853
+ return await asNativeActorContext(ctx).schedule().get(id) ?? void 0;
1854
+ }
1855
+ async actorScheduleList(ctx) {
1856
+ return await asNativeActorContext(ctx).schedule().list();
1857
+ }
1858
+ async actorCronSet(ctx, name, expression, timezone, actionName, args, maxHistory) {
1859
+ await asNativeActorContext(ctx).schedule().cronSet(
1860
+ name,
1861
+ expression,
1862
+ timezone,
1863
+ actionName,
1864
+ toNapiBuffer(args),
1865
+ maxHistory
1866
+ );
1867
+ }
1868
+ async actorCronEvery(ctx, name, intervalMs, actionName, args, maxHistory) {
1869
+ await asNativeActorContext(ctx).schedule().cronEvery(
1870
+ name,
1871
+ intervalMs,
1872
+ actionName,
1873
+ toNapiBuffer(args),
1874
+ maxHistory
1875
+ );
1876
+ }
1877
+ async actorCronGet(ctx, name) {
1878
+ return await asNativeActorContext(ctx).schedule().cronGet(name) ?? void 0;
1879
+ }
1880
+ async actorCronList(ctx) {
1881
+ return await asNativeActorContext(ctx).schedule().cronList();
1882
+ }
1883
+ async actorCronDelete(ctx, name) {
1884
+ return await asNativeActorContext(ctx).schedule().cronDelete(name);
1705
1885
  }
1706
- actorScheduleAt(ctx, timestampMs, actionName, args) {
1707
- asNativeActorContext(ctx).schedule().at(timestampMs, actionName, toNapiBuffer(args));
1886
+ async actorCronHistory(ctx, name, limit) {
1887
+ return await asNativeActorContext(ctx).schedule().cronHistory(name, limit);
1708
1888
  }
1709
1889
  connId(conn) {
1710
1890
  return asNativeConn(conn).id();
@@ -2111,6 +2291,13 @@ var WasmCoreRuntime = class {
2111
2291
  async actorSaveState(ctx, payload) {
2112
2292
  await callHandleAsync(asWasmActorContext(ctx), "saveState", payload);
2113
2293
  }
2294
+ async actorSaveStateAndWorkflowBatch(ctx, writes) {
2295
+ await callHandleAsync(
2296
+ asWasmActorContext(ctx),
2297
+ "saveStateAndWorkflowBatch",
2298
+ writes
2299
+ );
2300
+ }
2114
2301
  actorId(ctx) {
2115
2302
  return callHandle(asWasmActorContext(ctx), "actorId");
2116
2303
  }
@@ -2257,6 +2444,38 @@ var WasmCoreRuntime = class {
2257
2444
  );
2258
2445
  return normalizeRuntimeSqlExecuteResult(result);
2259
2446
  }
2447
+ async actorSqlExecuteBatch(ctx, statements) {
2448
+ const results = await callWasm(
2449
+ () => this.#actorSql(ctx).executeBatch(statements)
2450
+ );
2451
+ return results.map(normalizeRuntimeSqlExecuteResult);
2452
+ }
2453
+ async actorSqlBeginTransaction(ctx, timeoutMs) {
2454
+ return await callWasm(
2455
+ () => this.#actorSql(ctx).beginTransaction(timeoutMs)
2456
+ );
2457
+ }
2458
+ async actorSqlTransactionExec(transaction, sql) {
2459
+ return await callWasm(
2460
+ () => transaction.exec(sql)
2461
+ );
2462
+ }
2463
+ async actorSqlTransactionExecute(transaction, sql, params) {
2464
+ const result = await callWasm(
2465
+ () => transaction.execute(sql, params)
2466
+ );
2467
+ return normalizeRuntimeSqlExecuteResult(result);
2468
+ }
2469
+ async actorSqlTransactionCommit(transaction) {
2470
+ await callWasm(
2471
+ () => transaction.commit()
2472
+ );
2473
+ }
2474
+ async actorSqlTransactionRollback(transaction) {
2475
+ await callWasm(
2476
+ () => transaction.rollback()
2477
+ );
2478
+ }
2260
2479
  async actorSqlQuery(ctx, sql, params) {
2261
2480
  return await callWasm(() => this.#actorSql(ctx).query(sql, params));
2262
2481
  }
@@ -2280,6 +2499,17 @@ var WasmCoreRuntime = class {
2280
2499
  this.#sql.delete(wasmCtx);
2281
2500
  await callWasm(() => database.close());
2282
2501
  }
2502
+ async actorRuntimeSocketProvision(_ctx) {
2503
+ throw new RivetError(
2504
+ "actor_runtime_socket",
2505
+ "unsupported",
2506
+ "Actor Runtime Socket is only available on Unix native runtimes.",
2507
+ {
2508
+ public: true,
2509
+ metadata: { runtime: "wasm" }
2510
+ }
2511
+ );
2512
+ }
2283
2513
  async actorQueueSend(ctx, name, body) {
2284
2514
  const queue2 = childHandle(asWasmActorContext(ctx), "queue");
2285
2515
  return normalizeQueueMessage(
@@ -2351,13 +2581,97 @@ var WasmCoreRuntime = class {
2351
2581
  const queue2 = childHandle(asWasmActorContext(ctx), "queue");
2352
2582
  await callHandleAsync(queue2, "reset");
2353
2583
  }
2354
- actorScheduleAfter(ctx, durationMs, actionName, args) {
2584
+ async actorScheduleAfter(ctx, durationMs, actionName, args) {
2585
+ const schedule = childHandle(asWasmActorContext(ctx), "schedule");
2586
+ return await callHandleAsync(
2587
+ schedule,
2588
+ "after",
2589
+ wasmNumber(durationMs),
2590
+ actionName,
2591
+ args
2592
+ );
2593
+ }
2594
+ async actorScheduleAt(ctx, timestampMs, actionName, args) {
2595
+ const schedule = childHandle(asWasmActorContext(ctx), "schedule");
2596
+ return await callHandleAsync(
2597
+ schedule,
2598
+ "at",
2599
+ wasmNumber(timestampMs),
2600
+ actionName,
2601
+ args
2602
+ );
2603
+ }
2604
+ async actorScheduleCancel(ctx, id) {
2605
+ const schedule = childHandle(asWasmActorContext(ctx), "schedule");
2606
+ return await callHandleAsync(schedule, "cancel", id);
2607
+ }
2608
+ async actorScheduleGet(ctx, id) {
2609
+ const schedule = childHandle(asWasmActorContext(ctx), "schedule");
2610
+ return await callHandleAsync(
2611
+ schedule,
2612
+ "get",
2613
+ id
2614
+ );
2615
+ }
2616
+ async actorScheduleList(ctx) {
2617
+ const schedule = childHandle(asWasmActorContext(ctx), "schedule");
2618
+ return await callHandleAsync(
2619
+ schedule,
2620
+ "list"
2621
+ );
2622
+ }
2623
+ async actorCronSet(ctx, name, expression, timezone, actionName, args, maxHistory) {
2624
+ const schedule = childHandle(asWasmActorContext(ctx), "schedule");
2625
+ await callHandleAsync(
2626
+ schedule,
2627
+ "cronSet",
2628
+ name,
2629
+ expression,
2630
+ timezone,
2631
+ actionName,
2632
+ args,
2633
+ maxHistory
2634
+ );
2635
+ }
2636
+ async actorCronEvery(ctx, name, intervalMs, actionName, args, maxHistory) {
2637
+ const schedule = childHandle(asWasmActorContext(ctx), "schedule");
2638
+ await callHandleAsync(
2639
+ schedule,
2640
+ "cronEvery",
2641
+ name,
2642
+ intervalMs,
2643
+ actionName,
2644
+ args,
2645
+ maxHistory
2646
+ );
2647
+ }
2648
+ async actorCronGet(ctx, name) {
2649
+ const schedule = childHandle(asWasmActorContext(ctx), "schedule");
2650
+ return await callHandleAsync(
2651
+ schedule,
2652
+ "cronGet",
2653
+ name
2654
+ );
2655
+ }
2656
+ async actorCronList(ctx) {
2657
+ const schedule = childHandle(asWasmActorContext(ctx), "schedule");
2658
+ return await callHandleAsync(
2659
+ schedule,
2660
+ "cronList"
2661
+ );
2662
+ }
2663
+ async actorCronDelete(ctx, name) {
2355
2664
  const schedule = childHandle(asWasmActorContext(ctx), "schedule");
2356
- callHandle(schedule, "after", wasmNumber(durationMs), actionName, args);
2665
+ return await callHandleAsync(schedule, "cronDelete", name);
2357
2666
  }
2358
- actorScheduleAt(ctx, timestampMs, actionName, args) {
2667
+ async actorCronHistory(ctx, name, limit) {
2359
2668
  const schedule = childHandle(asWasmActorContext(ctx), "schedule");
2360
- callHandle(schedule, "at", wasmNumber(timestampMs), actionName, args);
2669
+ return await callHandleAsync(
2670
+ schedule,
2671
+ "cronHistory",
2672
+ name,
2673
+ limit
2674
+ );
2361
2675
  }
2362
2676
  connId(conn) {
2363
2677
  return callHandle(asWasmConn(conn), "id");
@@ -2697,6 +3011,23 @@ function getOrCreateNativeSqlDatabase(runtime, ctx) {
2697
3011
  const database = wrapJsNativeDatabase({
2698
3012
  exec: (sql) => runtime.actorSqlExec(ctx, sql),
2699
3013
  execute: (sql, params) => runtime.actorSqlExecute(ctx, sql, params),
3014
+ executeBatch: (statements) => runtime.actorSqlExecuteBatch(ctx, statements),
3015
+ beginTransaction: async (timeoutMs) => {
3016
+ const transaction = await runtime.actorSqlBeginTransaction(
3017
+ ctx,
3018
+ timeoutMs
3019
+ );
3020
+ return {
3021
+ exec: (sql) => runtime.actorSqlTransactionExec(transaction, sql),
3022
+ execute: (sql, params) => runtime.actorSqlTransactionExecute(
3023
+ transaction,
3024
+ sql,
3025
+ params
3026
+ ),
3027
+ commit: () => runtime.actorSqlTransactionCommit(transaction),
3028
+ rollback: () => runtime.actorSqlTransactionRollback(transaction)
3029
+ };
3030
+ },
2700
3031
  query: (sql, params) => runtime.actorSqlQuery(ctx, sql, params),
2701
3032
  run: (sql, params) => runtime.actorSqlRun(ctx, sql, params),
2702
3033
  metrics: () => runtime.actorSqlMetrics(ctx),
@@ -3190,26 +3521,116 @@ var NativeScheduleAdapter = class {
3190
3521
  this.#ctx = ctx;
3191
3522
  }
3192
3523
  async after(duration, action, ...args) {
3193
- callNativeSync(
3194
- () => this.#runtime.actorScheduleAfter(
3195
- this.#ctx,
3196
- duration,
3197
- action,
3198
- encodeValue(args)
3199
- )
3524
+ return await this.#runtime.actorScheduleAfter(
3525
+ this.#ctx,
3526
+ duration,
3527
+ action,
3528
+ encodeValue(args)
3200
3529
  );
3201
3530
  }
3202
3531
  async at(timestamp, action, ...args) {
3203
- callNativeSync(
3204
- () => this.#runtime.actorScheduleAt(
3205
- this.#ctx,
3206
- timestamp,
3207
- action,
3208
- encodeValue(args)
3209
- )
3532
+ return await this.#runtime.actorScheduleAt(
3533
+ this.#ctx,
3534
+ timestamp,
3535
+ action,
3536
+ encodeValue(args)
3537
+ );
3538
+ }
3539
+ async cancel(id) {
3540
+ return await this.#runtime.actorScheduleCancel(this.#ctx, id);
3541
+ }
3542
+ async get(id) {
3543
+ const event2 = await this.#runtime.actorScheduleGet(this.#ctx, id);
3544
+ return event2 ? decodeScheduledEventInfo(event2) : void 0;
3545
+ }
3546
+ async list() {
3547
+ return (await this.#runtime.actorScheduleList(this.#ctx)).map(
3548
+ decodeScheduledEventInfo
3549
+ );
3550
+ }
3551
+ };
3552
+ var NativeCronAdapter = class {
3553
+ #runtime;
3554
+ #ctx;
3555
+ constructor(runtime, ctx) {
3556
+ this.#runtime = runtime;
3557
+ this.#ctx = ctx;
3558
+ }
3559
+ async set(options) {
3560
+ await this.#runtime.actorCronSet(
3561
+ this.#ctx,
3562
+ options.name,
3563
+ options.expression,
3564
+ options.timezone,
3565
+ options.action,
3566
+ encodeValue(options.args ?? []),
3567
+ options.maxHistory
3210
3568
  );
3211
3569
  }
3570
+ async every(options) {
3571
+ await this.#runtime.actorCronEvery(
3572
+ this.#ctx,
3573
+ options.name,
3574
+ options.interval,
3575
+ options.action,
3576
+ encodeValue(options.args ?? []),
3577
+ options.maxHistory
3578
+ );
3579
+ }
3580
+ async get(name) {
3581
+ const job = await this.#runtime.actorCronGet(this.#ctx, name);
3582
+ return job ? decodeCronJobInfo(job) : void 0;
3583
+ }
3584
+ async list() {
3585
+ return (await this.#runtime.actorCronList(this.#ctx)).map(
3586
+ decodeCronJobInfo
3587
+ );
3588
+ }
3589
+ async delete(name) {
3590
+ return await this.#runtime.actorCronDelete(this.#ctx, name);
3591
+ }
3592
+ async history(name, options) {
3593
+ return (await this.#runtime.actorCronHistory(
3594
+ this.#ctx,
3595
+ name,
3596
+ options == null ? void 0 : options.limit
3597
+ )).map(decodeCronFire);
3598
+ }
3212
3599
  };
3600
+ function decodeScheduledEventInfo(event2) {
3601
+ return {
3602
+ id: event2.id,
3603
+ action: event2.action,
3604
+ args: decodeArgs(event2.args),
3605
+ runAt: event2.runAt
3606
+ };
3607
+ }
3608
+ function decodeCronJobInfo(job) {
3609
+ const base = {
3610
+ name: job.name,
3611
+ action: job.action,
3612
+ args: decodeArgs(job.args),
3613
+ nextRunAt: job.nextRunAt,
3614
+ lastRunAt: job.lastRunAt,
3615
+ maxHistory: job.maxHistory
3616
+ };
3617
+ if (job.kind === "cron") {
3618
+ return {
3619
+ ...base,
3620
+ kind: "cron",
3621
+ expression: job.expression,
3622
+ timezone: job.timezone
3623
+ };
3624
+ }
3625
+ return {
3626
+ ...base,
3627
+ kind: "every",
3628
+ interval: job.intervalMs
3629
+ };
3630
+ }
3631
+ function decodeCronFire(fire) {
3632
+ return { ...fire };
3633
+ }
3213
3634
  var NativeKvAdapter = class {
3214
3635
  #runtime;
3215
3636
  #ctx;
@@ -3990,6 +4411,7 @@ var ActorContextHandleAdapter = class {
3990
4411
  #client;
3991
4412
  #clientFactory;
3992
4413
  #connMap;
4414
+ #cron;
3993
4415
  #databaseProvider;
3994
4416
  #db;
3995
4417
  #dispatchCancelToken;
@@ -4030,6 +4452,11 @@ var ActorContextHandleAdapter = class {
4030
4452
  }
4031
4453
  return this.#sql;
4032
4454
  }
4455
+ async actorRuntimeSocket() {
4456
+ return await callNative(
4457
+ () => this.#runtime.actorRuntimeSocketProvision(this.#ctx)
4458
+ );
4459
+ }
4033
4460
  get db() {
4034
4461
  if (!this.#databaseProvider) {
4035
4462
  throw databaseNotConfiguredError();
@@ -4119,6 +4546,12 @@ var ActorContextHandleAdapter = class {
4119
4546
  }
4120
4547
  return this.#schedule;
4121
4548
  }
4549
+ get cron() {
4550
+ if (!this.#cron) {
4551
+ this.#cron = new NativeCronAdapter(this.#runtime, this.#ctx);
4552
+ }
4553
+ return this.#cron;
4554
+ }
4122
4555
  get actorId() {
4123
4556
  return callNativeSync(() => this.#runtime.actorId(this.#ctx));
4124
4557
  }
@@ -4303,6 +4736,11 @@ var ActorContextHandleAdapter = class {
4303
4736
  () => this.#runtime.actorRequestSave(this.#ctx, { immediate: false })
4304
4737
  );
4305
4738
  }
4739
+ async saveStateAndWorkflowBatch(writes) {
4740
+ await callNative(
4741
+ () => this.#runtime.actorSaveStateAndWorkflowBatch(this.#ctx, writes)
4742
+ );
4743
+ }
4306
4744
  serializeForTick(reason) {
4307
4745
  void reason;
4308
4746
  const actorState = getNativePersistState(this.#runtime, this.#ctx);
@@ -4617,6 +5055,9 @@ var NativeWorkflowRuntimeAdapter = class {
4617
5055
  this.stateManager = {
4618
5056
  saveState: async (opts) => {
4619
5057
  await this.#ctx.saveState(opts);
5058
+ },
5059
+ saveStateAndWorkflowBatch: async (writes) => {
5060
+ await this.#ctx.saveStateAndWorkflowBatch(writes);
4620
5061
  }
4621
5062
  };
4622
5063
  }
@@ -4686,11 +5127,13 @@ function buildActorConfig(definition, registryConfig, runtimeKind) {
4686
5127
  const config = definition.config;
4687
5128
  const options = config.options ?? {};
4688
5129
  const canHibernate = options.canHibernateWebSocket;
5130
+ const usesRemoteSqlite = sqliteBackendForConfig(registryConfig) === "remote";
4689
5131
  return {
4690
5132
  name: options.name,
4691
5133
  icon: options.icon,
4692
- hasDatabase: config.db !== void 0,
4693
- remoteSqlite: config.db !== void 0 && sqliteBackendForConfig(registryConfig) === "remote",
5134
+ hasDatabase: config.db !== void 0 || usesRemoteSqlite,
5135
+ remoteSqlite: usesRemoteSqlite,
5136
+ enableActorRuntimeSocket: options.enableActorRuntimeSocket === true,
4694
5137
  hasState: config.state !== void 0 || typeof config.createState === "function",
4695
5138
  canHibernateWebsocket: typeof canHibernate === "boolean" ? canHibernate : void 0,
4696
5139
  stateSaveIntervalMs: options.stateSaveInterval,
@@ -4706,6 +5149,7 @@ function buildActorConfig(definition, registryConfig, runtimeKind) {
4706
5149
  connectionLivenessTimeoutMs: options.connectionLivenessTimeout,
4707
5150
  connectionLivenessIntervalMs: options.connectionLivenessInterval,
4708
5151
  maxQueueSize: options.maxQueueSize,
5152
+ maxSchedules: options.maxSchedules,
4709
5153
  maxQueueMessageSize: options.maxQueueMessageSize,
4710
5154
  maxIncomingMessageSize: registryConfig.maxIncomingMessageSize,
4711
5155
  maxOutgoingMessageSize: registryConfig.maxOutgoingMessageSize,
@@ -4982,7 +5426,9 @@ function buildNativeFactory(runtime, registryConfig, definition) {
4982
5426
  400
4983
5427
  );
4984
5428
  }
4985
- const cbor = encodeCborCompat(body.body ?? null);
5429
+ const cbor = encodeCborCompat(
5430
+ body.body ?? null
5431
+ );
4986
5432
  const message = await runtime.actorQueueSend(ctx, name, cbor);
4987
5433
  return jsonResponse({
4988
5434
  id: message.id().toString(),
@@ -5675,7 +6121,7 @@ function buildNativeFactory(runtime, registryConfig, definition) {
5675
6121
  name,
5676
6122
  wrapNativeCallback(
5677
6123
  async (error, payload) => {
5678
- const { ctx, conn, args, cancelToken } = unwrapTsfnPayload(error, payload);
6124
+ const { ctx, conn, args, scheduledFire, cancelToken } = unwrapTsfnPayload(error, payload);
5679
6125
  const actorCtx = conn != null ? makeConnCtx(ctx, conn, void 0, cancelToken) : makeActorCtx(ctx, void 0, cancelToken);
5680
6126
  try {
5681
6127
  return encodeValue(
@@ -5685,7 +6131,8 @@ function buildNativeFactory(runtime, registryConfig, definition) {
5685
6131
  schemaConfig.actionInputSchemas,
5686
6132
  name,
5687
6133
  decodeArgs(args)
5688
- )
6134
+ ),
6135
+ ...scheduledFire ? [scheduledFire] : []
5689
6136
  )
5690
6137
  );
5691
6138
  } finally {