rivetkit 2.3.5-rc.1 → 2.3.6

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 (111) hide show
  1. package/dist/browser/client.d.ts +19 -5
  2. package/dist/browser/client.js +32 -9
  3. package/dist/browser/client.js.map +1 -1
  4. package/dist/browser/inspector/client.js +12 -2
  5. package/dist/browser/inspector/client.js.map +1 -1
  6. package/dist/tsup/agent-os/index.cjs +115 -5
  7. package/dist/tsup/agent-os/index.cjs.map +1 -1
  8. package/dist/tsup/agent-os/index.d.cts +19 -5
  9. package/dist/tsup/agent-os/index.d.ts +19 -5
  10. package/dist/tsup/agent-os/index.js +115 -5
  11. package/dist/tsup/agent-os/index.js.map +1 -1
  12. package/dist/tsup/{chunk-6HQCLWAW.cjs → chunk-234EFKN2.cjs} +13 -3
  13. package/dist/tsup/chunk-234EFKN2.cjs.map +1 -0
  14. package/dist/tsup/{chunk-NIC3QLKL.js → chunk-3ZE5UDOA.js} +3 -3
  15. package/dist/tsup/{chunk-4XKED5P5.cjs → chunk-AXEGEUYB.cjs} +262 -252
  16. package/dist/tsup/chunk-AXEGEUYB.cjs.map +1 -0
  17. package/dist/tsup/{chunk-P4OGQ4JL.js → chunk-BX4G2O6M.js} +3 -3
  18. package/dist/tsup/{chunk-GAV4PKFT.js → chunk-F6ZW7JZQ.js} +130 -120
  19. package/dist/tsup/chunk-F6ZW7JZQ.js.map +1 -0
  20. package/dist/tsup/{chunk-TR5NLR5V.cjs → chunk-FNTTW25Q.cjs} +4 -4
  21. package/dist/tsup/{chunk-TR5NLR5V.cjs.map → chunk-FNTTW25Q.cjs.map} +1 -1
  22. package/dist/tsup/{chunk-G3CCRCTK.cjs → chunk-HNHLBM3Y.cjs} +108 -6
  23. package/dist/tsup/chunk-HNHLBM3Y.cjs.map +1 -0
  24. package/dist/tsup/{chunk-UJ2FQY63.cjs → chunk-HVOKIYUB.cjs} +7 -7
  25. package/dist/tsup/{chunk-UJ2FQY63.cjs.map → chunk-HVOKIYUB.cjs.map} +1 -1
  26. package/dist/tsup/{chunk-PAG6G46L.js → chunk-OH6CBWUD.js} +2 -2
  27. package/dist/tsup/{chunk-TNIWIUNV.cjs → chunk-PD7SZKHY.cjs} +9 -9
  28. package/dist/tsup/{chunk-TNIWIUNV.cjs.map → chunk-PD7SZKHY.cjs.map} +1 -1
  29. package/dist/tsup/{chunk-MGTSVSUC.js → chunk-PLLHHJWR.js} +2 -2
  30. package/dist/tsup/{chunk-SHBE77IT.js → chunk-QWLJCP3X.js} +106 -4
  31. package/dist/tsup/chunk-QWLJCP3X.js.map +1 -0
  32. package/dist/tsup/{chunk-B4IZU537.js → chunk-RDTFPGU2.js} +13 -3
  33. package/dist/tsup/chunk-RDTFPGU2.js.map +1 -0
  34. package/dist/tsup/{chunk-M3FCXL3Q.cjs → chunk-WS3PP253.cjs} +3 -3
  35. package/dist/tsup/{chunk-M3FCXL3Q.cjs.map → chunk-WS3PP253.cjs.map} +1 -1
  36. package/dist/tsup/client/mod.cjs +5 -5
  37. package/dist/tsup/client/mod.d.cts +2 -2
  38. package/dist/tsup/client/mod.d.ts +2 -2
  39. package/dist/tsup/client/mod.js +4 -4
  40. package/dist/tsup/common/log.cjs +2 -2
  41. package/dist/tsup/common/log.js +1 -1
  42. package/dist/tsup/common/websocket.cjs +3 -3
  43. package/dist/tsup/common/websocket.js +2 -2
  44. package/dist/tsup/{config-BzdqbLAP.d.ts → config-BRpVbJCD.d.ts} +20 -6
  45. package/dist/tsup/{config-CPPEwn_e.d.cts → config-BobvQpex.d.cts} +20 -6
  46. package/dist/tsup/{context-wWv-K2K_.d.ts → context-Cj-DFyiy.d.ts} +1 -1
  47. package/dist/tsup/{context-DSA9gFXB.d.cts → context-YEBNJrws.d.cts} +1 -1
  48. package/dist/tsup/db/drizzle.cjs +2 -2
  49. package/dist/tsup/db/drizzle.js +1 -1
  50. package/dist/tsup/db/mod.cjs +2 -2
  51. package/dist/tsup/db/mod.js +1 -1
  52. package/dist/tsup/dynamic/mod.cjs +2 -2
  53. package/dist/tsup/dynamic/mod.d.cts +1 -1
  54. package/dist/tsup/dynamic/mod.d.ts +1 -1
  55. package/dist/tsup/dynamic/mod.js +1 -1
  56. package/dist/tsup/inspector/mod.cjs +4 -4
  57. package/dist/tsup/inspector/mod.js +3 -3
  58. package/dist/tsup/inspector-tab/mod.cjs +2 -2
  59. package/dist/tsup/inspector-tab/mod.d.cts +2 -2
  60. package/dist/tsup/inspector-tab/mod.d.ts +2 -2
  61. package/dist/tsup/inspector-tab/mod.js +1 -1
  62. package/dist/tsup/mod.cjs +175 -85
  63. package/dist/tsup/mod.cjs.map +1 -1
  64. package/dist/tsup/mod.d.cts +3 -3
  65. package/dist/tsup/mod.d.ts +3 -3
  66. package/dist/tsup/mod.js +107 -17
  67. package/dist/tsup/mod.js.map +1 -1
  68. package/dist/tsup/test/mod.cjs +16 -13
  69. package/dist/tsup/test/mod.cjs.map +1 -1
  70. package/dist/tsup/test/mod.d.cts +1 -1
  71. package/dist/tsup/test/mod.d.ts +1 -1
  72. package/dist/tsup/test/mod.js +15 -12
  73. package/dist/tsup/test/mod.js.map +1 -1
  74. package/dist/tsup/unstable/migrations.cjs +101 -0
  75. package/dist/tsup/unstable/migrations.cjs.map +1 -0
  76. package/dist/tsup/unstable/migrations.d.cts +29 -0
  77. package/dist/tsup/unstable/migrations.d.ts +29 -0
  78. package/dist/tsup/unstable/migrations.js +101 -0
  79. package/dist/tsup/unstable/migrations.js.map +1 -0
  80. package/dist/tsup/utils.cjs +2 -2
  81. package/dist/tsup/utils.js +1 -1
  82. package/dist/tsup/workflow/mod.cjs +9 -9
  83. package/dist/tsup/workflow/mod.d.cts +3 -3
  84. package/dist/tsup/workflow/mod.d.ts +3 -3
  85. package/dist/tsup/workflow/mod.js +4 -4
  86. package/package.json +19 -9
  87. package/src/actor/actions.ts +119 -0
  88. package/src/actor/config.ts +61 -18
  89. package/src/actor/definition.ts +3 -0
  90. package/src/client/actor-common.ts +3 -1
  91. package/src/client/client.ts +24 -11
  92. package/src/registry/config/index.ts +2 -4
  93. package/src/registry/index.ts +86 -5
  94. package/src/registry/napi-runtime.ts +4 -0
  95. package/src/registry/native.ts +17 -16
  96. package/src/registry/runtime.ts +1 -0
  97. package/src/registry/wasm-runtime.ts +6 -0
  98. package/src/test/mod.ts +1 -19
  99. package/src/test/ready.ts +22 -0
  100. package/src/unstable/migrations.test.ts +170 -0
  101. package/src/unstable/migrations.ts +141 -0
  102. package/dist/tsup/chunk-4XKED5P5.cjs.map +0 -1
  103. package/dist/tsup/chunk-6HQCLWAW.cjs.map +0 -1
  104. package/dist/tsup/chunk-B4IZU537.js.map +0 -1
  105. package/dist/tsup/chunk-G3CCRCTK.cjs.map +0 -1
  106. package/dist/tsup/chunk-GAV4PKFT.js.map +0 -1
  107. package/dist/tsup/chunk-SHBE77IT.js.map +0 -1
  108. /package/dist/tsup/{chunk-NIC3QLKL.js.map → chunk-3ZE5UDOA.js.map} +0 -0
  109. /package/dist/tsup/{chunk-P4OGQ4JL.js.map → chunk-BX4G2O6M.js.map} +0 -0
  110. /package/dist/tsup/{chunk-PAG6G46L.js.map → chunk-OH6CBWUD.js.map} +0 -0
  111. /package/dist/tsup/{chunk-MGTSVSUC.js.map → chunk-PLLHHJWR.js.map} +0 -0
@@ -397,7 +397,7 @@ type ActorActionFunction<Args extends Array<unknown> = unknown[], Response = unk
397
397
  type IsAny<T> = 0 extends 1 & T ? true : false;
398
398
  type LooseEventSubscribe = (eventName: string, callback: (...args: any[]) => void) => () => void;
399
399
  type ActorActionMap<R> = {
400
- [K in keyof NonNullable<R>]: NonNullable<R>[K] extends (...args: infer Args) => infer Return ? ActorActionFunction<Args, Awaited<Return>> : never;
400
+ [K in keyof NonNullable<R>]: NonNullable<R>[K] extends (...args: infer Args) => infer Return ? ActorActionFunction<Args, Awaited<Return>> : NonNullable<R>[K] extends Record<string, unknown> ? ActorActionMap<NonNullable<R>[K]> : never;
401
401
  };
402
402
  type ActionsOf<AD extends AnyActorDefinition> = AD extends BaseActorDefinition<any, any, any, any, any, any, any, any, infer R> ? R : never;
403
403
  interface ActorGatewayOptions {
@@ -1253,7 +1253,7 @@ declare const ActorConfigSchema: z.ZodObject<{
1253
1253
  onBeforeActionResponse: z.ZodOptional<z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>>;
1254
1254
  onRequest: z.ZodOptional<z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>>;
1255
1255
  onWebSocket: z.ZodOptional<z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>>;
1256
- actions: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>>>;
1256
+ actions: z.ZodDefault<z.ZodCustom<Record<string, unknown>, Record<string, unknown>>>;
1257
1257
  actionInputSchemas: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
1258
1258
  connParamsSchema: z.ZodOptional<z.ZodAny>;
1259
1259
  events: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
@@ -1336,7 +1336,10 @@ type CreateVars<TState, _TConnParams, _TConnState, TVars, TInput, TDatabase exte
1336
1336
  createVars: (c: CreateVarsContext<TState, TInput, TDatabase, TEvents, TQueues>, driverCtx: any) => TVars | Promise<TVars>;
1337
1337
  } | Record<never, never>;
1338
1338
  interface Actions<TState, TConnParams, TConnState, TVars, TInput, TDatabase extends AnyDatabaseProvider, TEvents extends EventSchemaConfig = Record<never, never>, TQueues extends QueueSchemaConfig = Record<never, never>> {
1339
- [Action: string]: (c: ActionContext<TState, TConnParams, TConnState, TVars, TInput, TDatabase, TEvents, TQueues>, ...args: any[]) => any;
1339
+ [Action: string]: ((c: ActionContext<TState, TConnParams, TConnState, TVars, TInput, TDatabase, TEvents, TQueues>, ...args: any[]) => any) | Actions<TState, TConnParams, TConnState, TVars, TInput, TDatabase, TEvents, TQueues>;
1340
+ }
1341
+ interface ActionInputSchemas {
1342
+ [Action: string]: PrimitiveSchema | ActionInputSchemas;
1340
1343
  }
1341
1344
  interface BaseActorConfig<TState, TConnParams, TConnState, TVars, TInput, TDatabase extends AnyDatabaseProvider, TEvents extends EventSchemaConfig, TQueues extends QueueSchemaConfig, TActions extends Actions<TState, TConnParams, TConnState, TVars, TInput, TDatabase, TEvents, TQueues>> {
1342
1345
  /**
@@ -1488,9 +1491,10 @@ interface BaseActorConfig<TState, TConnParams, TConnState, TVars, TInput, TDatab
1488
1491
  onWebSocket?: (c: WebSocketContext<TState, TConnParams, TConnState, TVars, TInput, TDatabase, TEvents, TQueues>, websocket: UniversalWebSocket) => void | Promise<void>;
1489
1492
  actions?: TActions;
1490
1493
  /**
1491
- * Optional schema map for validating action argument tuples in native runtimes.
1494
+ * Optional schemas for validating action argument tuples in native runtimes.
1495
+ * May mirror nested action groups or use dot-separated low-level action names.
1492
1496
  */
1493
- actionInputSchemas?: Record<string, PrimitiveSchema>;
1497
+ actionInputSchemas?: ActionInputSchemas;
1494
1498
  /**
1495
1499
  * Optional schema for validating connection params in native runtimes.
1496
1500
  */
@@ -2027,6 +2031,7 @@ interface CoreRuntime {
2027
2031
  createRegistry(): RegistryHandle;
2028
2032
  registerActor(registry: RegistryHandle, name: string, factory: ActorFactoryHandle): void;
2029
2033
  serveRegistry(registry: RegistryHandle, config: RuntimeServeConfig): Promise<void>;
2034
+ waitRegistryReady(registry: RegistryHandle): Promise<void>;
2030
2035
  shutdownRegistry(registry: RegistryHandle): Promise<void>;
2031
2036
  registryActorStopThresholdMs?(registry: RegistryHandle): Promise<number | undefined>;
2032
2037
  handleServerlessRequest(registry: RegistryHandle, req: RuntimeServerlessRequest, onStreamEvent: RuntimeServerlessStreamCallback, cancelToken: CancellationTokenHandle, config: RuntimeServeConfig): Promise<RuntimeServerlessResponseHead>;
@@ -2224,6 +2229,15 @@ declare class Registry<A extends RegistryActors> {
2224
2229
  */
2225
2230
  shutdown(): Promise<void>;
2226
2231
  startEnvoy(): void;
2232
+ /**
2233
+ * Starts the serverful registry if needed and waits until its envoy has
2234
+ * registered with the Engine. Repeated and concurrent calls share one
2235
+ * startup lifecycle and readiness promise.
2236
+ *
2237
+ * Unlike {@link start}, this reports startup failures and does not resolve
2238
+ * merely because an HTTP health endpoint is listening.
2239
+ */
2240
+ startAndWait(): Promise<void>;
2227
2241
  /**
2228
2242
  * Starts the actor envoy for standalone server deployments.
2229
2243
  *
@@ -194,7 +194,7 @@ function noopNext() {
194
194
  // package.json
195
195
  var package_default = {
196
196
  name: "rivetkit",
197
- version: "2.3.5-rc.1",
197
+ version: "2.3.6",
198
198
  description: "Lightweight libraries for building stateful actors on edge platforms",
199
199
  license: "Apache-2.0",
200
200
  keywords: [
@@ -266,6 +266,16 @@ var package_default = {
266
266
  default: "./dist/tsup/db/drizzle.cjs"
267
267
  }
268
268
  },
269
+ "./unstable/migrations": {
270
+ import: {
271
+ types: "./dist/tsup/unstable/migrations.d.ts",
272
+ default: "./dist/tsup/unstable/migrations.js"
273
+ },
274
+ require: {
275
+ types: "./dist/tsup/unstable/migrations.d.cts",
276
+ default: "./dist/tsup/unstable/migrations.cjs"
277
+ }
278
+ },
269
279
  "./dynamic": {
270
280
  import: {
271
281
  types: "./dist/tsup/dynamic/mod.d.ts",
@@ -365,7 +375,7 @@ var package_default = {
365
375
  "./dist/tsup/chunk-*.cjs"
366
376
  ],
367
377
  scripts: {
368
- build: "tsup src/mod.ts src/client/mod.ts src/common/log.ts src/common/websocket.ts src/actor/errors.ts src/utils.ts src/workflow/mod.ts src/test/mod.ts src/inspector/mod.ts src/inspector-tab/mod.ts src/db/mod.ts src/db/drizzle.ts src/dynamic/mod.ts && tsup src/agent-os/index.ts --no-clean --out-dir dist/tsup/agent-os",
378
+ build: "tsup src/mod.ts src/client/mod.ts src/common/log.ts src/common/websocket.ts src/actor/errors.ts src/utils.ts src/workflow/mod.ts src/test/mod.ts src/inspector/mod.ts src/inspector-tab/mod.ts src/db/mod.ts src/db/drizzle.ts src/dynamic/mod.ts src/unstable/migrations.ts && tsup src/agent-os/index.ts --no-clean --out-dir dist/tsup/agent-os",
369
379
  "build:browser": "tsup --config tsup.browser.config.ts",
370
380
  "check-types": "tsc --noEmit",
371
381
  lint: "biome check . && pnpm run check:test-skips && pnpm run check:wait-for-comments",
@@ -6812,6 +6822,23 @@ function createClientWithDriver(driver, config = {}) {
6812
6822
  }
6813
6823
  function createActorProxy(handle) {
6814
6824
  const methodCache = /* @__PURE__ */ new Map();
6825
+ const actionPath = (name) => {
6826
+ let method = methodCache.get(name);
6827
+ if (method) return method;
6828
+ method = new Proxy(
6829
+ (...args) => handle.action({ name, args }),
6830
+ {
6831
+ get(target, prop) {
6832
+ if (typeof prop === "symbol")
6833
+ return Reflect.get(target, prop);
6834
+ if (prop === "then") return void 0;
6835
+ return actionPath(`${name}.${prop}`);
6836
+ }
6837
+ }
6838
+ );
6839
+ methodCache.set(name, method);
6840
+ return method;
6841
+ };
6815
6842
  return new Proxy(handle, {
6816
6843
  get(target, prop, receiver) {
6817
6844
  if (typeof prop === "symbol") {
@@ -6826,12 +6853,7 @@ function createActorProxy(handle) {
6826
6853
  }
6827
6854
  if (typeof prop === "string") {
6828
6855
  if (prop === "then") return void 0;
6829
- let method = methodCache.get(prop);
6830
- if (!method) {
6831
- method = (...args) => target.action({ name: prop, args });
6832
- methodCache.set(prop, method);
6833
- }
6834
- return method;
6856
+ return actionPath(prop);
6835
6857
  }
6836
6858
  },
6837
6859
  // Support for 'in' operator
@@ -6849,6 +6871,7 @@ function createActorProxy(handle) {
6849
6871
  },
6850
6872
  // Support proper property descriptors
6851
6873
  getOwnPropertyDescriptor(target, prop) {
6874
+ if (prop === "then") return void 0;
6852
6875
  const targetDescriptor = Reflect.getOwnPropertyDescriptor(
6853
6876
  target,
6854
6877
  prop
@@ -6861,7 +6884,7 @@ function createActorProxy(handle) {
6861
6884
  configurable: true,
6862
6885
  enumerable: false,
6863
6886
  writable: false,
6864
- value: (...args) => target.action({ name: prop, args })
6887
+ value: actionPath(prop)
6865
6888
  };
6866
6889
  }
6867
6890
  return void 0;