rivetkit 2.3.0-rc.6 → 2.3.0-rc.7

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 (122) hide show
  1. package/dist/browser/client.d.ts +37 -8
  2. package/dist/browser/client.js +64 -34
  3. package/dist/browser/client.js.map +1 -1
  4. package/dist/browser/inspector/client.js +4 -3
  5. package/dist/browser/inspector/client.js.map +1 -1
  6. package/dist/tsup/actor/errors.cjs +2 -2
  7. package/dist/tsup/actor/errors.js +1 -1
  8. package/dist/tsup/agent-os/index.cjs +7 -5
  9. package/dist/tsup/agent-os/index.cjs.map +1 -1
  10. package/dist/tsup/agent-os/index.d.cts +26 -5
  11. package/dist/tsup/agent-os/index.d.ts +26 -5
  12. package/dist/tsup/agent-os/index.js +7 -5
  13. package/dist/tsup/agent-os/index.js.map +1 -1
  14. package/dist/tsup/{chunk-2G64KSZQ.cjs → chunk-2H4ISA4Y.cjs} +10 -10
  15. package/dist/tsup/chunk-2H4ISA4Y.cjs.map +1 -0
  16. package/dist/tsup/{chunk-ZI5QJMKO.js → chunk-4DJMFOSU.js} +2 -2
  17. package/dist/tsup/{chunk-RTC2AZGB.js → chunk-4LTY5TOO.js} +132 -4
  18. package/dist/tsup/chunk-4LTY5TOO.js.map +1 -0
  19. package/dist/tsup/{chunk-DEO7MMWQ.js → chunk-52TPEKEC.js} +2 -2
  20. package/dist/tsup/{chunk-HTR4YLNT.cjs → chunk-55E7IR6D.cjs} +4 -4
  21. package/dist/tsup/{chunk-HTR4YLNT.cjs.map → chunk-55E7IR6D.cjs.map} +1 -1
  22. package/dist/tsup/{chunk-QAZLM4WT.cjs → chunk-63WNTDRC.cjs} +3 -3
  23. package/dist/tsup/{chunk-QAZLM4WT.cjs.map → chunk-63WNTDRC.cjs.map} +1 -1
  24. package/dist/tsup/{chunk-EMO6E3PJ.js → chunk-CMV6N5OX.js} +3 -3
  25. package/dist/tsup/{chunk-T6YVRM4K.js → chunk-D5G75T7J.js} +3 -1
  26. package/dist/tsup/chunk-D5G75T7J.js.map +1 -0
  27. package/dist/tsup/{chunk-LIXXFXVR.cjs → chunk-FEOG44WH.cjs} +137 -9
  28. package/dist/tsup/chunk-FEOG44WH.cjs.map +1 -0
  29. package/dist/tsup/{chunk-M5C7YNI5.cjs → chunk-G5HUSWP4.cjs} +8 -8
  30. package/dist/tsup/{chunk-M5C7YNI5.cjs.map → chunk-G5HUSWP4.cjs.map} +1 -1
  31. package/dist/tsup/{chunk-6S25NVAP.js → chunk-HERL2VQ2.js} +7 -5
  32. package/dist/tsup/chunk-HERL2VQ2.js.map +1 -0
  33. package/dist/tsup/{chunk-JALSAX7Z.cjs → chunk-SJLPZEA3.cjs} +3 -3
  34. package/dist/tsup/{chunk-JALSAX7Z.cjs.map → chunk-SJLPZEA3.cjs.map} +1 -1
  35. package/dist/tsup/{chunk-WQ4HNA4W.cjs → chunk-SRNOPUC6.cjs} +4 -2
  36. package/dist/tsup/chunk-SRNOPUC6.cjs.map +1 -0
  37. package/dist/tsup/{chunk-KIWH5H3K.js → chunk-TMLOKTRB.js} +3 -3
  38. package/dist/tsup/chunk-TMLOKTRB.js.map +1 -0
  39. package/dist/tsup/{chunk-CAF6JDJE.js → chunk-VFIY6GWO.js} +4 -4
  40. package/dist/tsup/chunk-VFIY6GWO.js.map +1 -0
  41. package/dist/tsup/{chunk-FLODVLYW.js → chunk-VJ4Y4WBT.js} +10 -34
  42. package/dist/tsup/chunk-VJ4Y4WBT.js.map +1 -0
  43. package/dist/tsup/{chunk-K5BA2LEO.cjs → chunk-X6HIFXNK.cjs} +14 -12
  44. package/dist/tsup/chunk-X6HIFXNK.cjs.map +1 -0
  45. package/dist/tsup/{chunk-ENK7C66G.cjs → chunk-ZGPX6KAH.cjs} +169 -193
  46. package/dist/tsup/chunk-ZGPX6KAH.cjs.map +1 -0
  47. package/dist/tsup/client/mod.cjs +7 -7
  48. package/dist/tsup/client/mod.d.cts +2 -2
  49. package/dist/tsup/client/mod.d.ts +2 -2
  50. package/dist/tsup/client/mod.js +6 -6
  51. package/dist/tsup/common/log.cjs +3 -3
  52. package/dist/tsup/common/log.js +2 -2
  53. package/dist/tsup/common/websocket.cjs +4 -4
  54. package/dist/tsup/common/websocket.js +3 -3
  55. package/dist/tsup/{config-0Ta55UV0.d.ts → config-Ak1lv4gF.d.ts} +27 -6
  56. package/dist/tsup/{config-Ca8dN4cS.d.cts → config-DU_xj4qZ.d.cts} +27 -6
  57. package/dist/tsup/{context-B_IWbWne.d.ts → context-DAAp4Lpg.d.ts} +1 -1
  58. package/dist/tsup/{context-CUrQ9MHc.d.cts → context-Dt_L55q8.d.cts} +1 -1
  59. package/dist/tsup/inspector/mod.cjs +6 -6
  60. package/dist/tsup/inspector/mod.js +5 -5
  61. package/dist/tsup/mod.cjs +470 -316
  62. package/dist/tsup/mod.cjs.map +1 -1
  63. package/dist/tsup/mod.d.cts +3 -3
  64. package/dist/tsup/mod.d.ts +3 -3
  65. package/dist/tsup/mod.js +391 -237
  66. package/dist/tsup/mod.js.map +1 -1
  67. package/dist/tsup/process-metrics-NW754INA.js +118 -0
  68. package/dist/tsup/process-metrics-NW754INA.js.map +1 -0
  69. package/dist/tsup/process-metrics-TYAGKCEJ.cjs +118 -0
  70. package/dist/tsup/process-metrics-TYAGKCEJ.cjs.map +1 -0
  71. package/dist/tsup/test/mod.cjs +10 -10
  72. package/dist/tsup/test/mod.d.cts +1 -1
  73. package/dist/tsup/test/mod.d.ts +1 -1
  74. package/dist/tsup/test/mod.js +6 -6
  75. package/dist/tsup/utils.cjs +3 -3
  76. package/dist/tsup/utils.js +2 -2
  77. package/dist/tsup/workflow/mod.cjs +41 -16
  78. package/dist/tsup/workflow/mod.cjs.map +1 -1
  79. package/dist/tsup/workflow/mod.d.cts +3 -3
  80. package/dist/tsup/workflow/mod.d.ts +3 -3
  81. package/dist/tsup/workflow/mod.js +35 -10
  82. package/dist/tsup/workflow/mod.js.map +1 -1
  83. package/package.json +11 -10
  84. package/src/actor/config.ts +3 -0
  85. package/src/actor/errors.ts +2 -2
  86. package/src/agent-os/actor/session.ts +2 -2
  87. package/src/client/actor-conn.ts +6 -34
  88. package/src/client/actor-handle.ts +2 -1
  89. package/src/client/queue.ts +2 -1
  90. package/src/client/utils.ts +0 -1
  91. package/src/common/encoding.ts +243 -5
  92. package/src/common/inline-websocket-adapter.ts +12 -12
  93. package/src/common/log.ts +1 -0
  94. package/src/common/router.ts +2 -2
  95. package/src/common/utils.ts +0 -148
  96. package/src/drivers/engine/actor-driver.ts +11 -11
  97. package/src/engine-client/actor-websocket-client.ts +2 -1
  98. package/src/engine-client/mod.ts +3 -2
  99. package/src/registry/index.ts +46 -109
  100. package/src/registry/napi-runtime.ts +11 -34
  101. package/src/registry/native.ts +193 -104
  102. package/src/registry/process-metrics.ts +183 -0
  103. package/src/registry/runtime.ts +5 -12
  104. package/src/registry/wasm-runtime.ts +2 -13
  105. package/src/registry/write-through-proxy.ts +40 -0
  106. package/src/serde.ts +2 -2
  107. package/src/workflow/context.ts +32 -5
  108. package/src/workflow/inspector.ts +2 -1
  109. package/dist/tsup/chunk-2G64KSZQ.cjs.map +0 -1
  110. package/dist/tsup/chunk-6S25NVAP.js.map +0 -1
  111. package/dist/tsup/chunk-CAF6JDJE.js.map +0 -1
  112. package/dist/tsup/chunk-ENK7C66G.cjs.map +0 -1
  113. package/dist/tsup/chunk-FLODVLYW.js.map +0 -1
  114. package/dist/tsup/chunk-K5BA2LEO.cjs.map +0 -1
  115. package/dist/tsup/chunk-KIWH5H3K.js.map +0 -1
  116. package/dist/tsup/chunk-LIXXFXVR.cjs.map +0 -1
  117. package/dist/tsup/chunk-RTC2AZGB.js.map +0 -1
  118. package/dist/tsup/chunk-T6YVRM4K.js.map +0 -1
  119. package/dist/tsup/chunk-WQ4HNA4W.cjs.map +0 -1
  120. /package/dist/tsup/{chunk-ZI5QJMKO.js.map → chunk-4DJMFOSU.js.map} +0 -0
  121. /package/dist/tsup/{chunk-DEO7MMWQ.js.map → chunk-52TPEKEC.js.map} +0 -0
  122. /package/dist/tsup/{chunk-EMO6E3PJ.js.map → chunk-CMV6N5OX.js.map} +0 -0
@@ -573,14 +573,12 @@ type FetchHandler = (request: Request, ...args: any) => Response | Promise<Respo
573
573
  interface ServerlessHandler {
574
574
  fetch: FetchHandler;
575
575
  }
576
- interface RegistryRoutes {
577
- health(): Promise<Response>;
578
- metadata(): Promise<Response>;
579
- prometheusMetrics(request?: Request): Promise<Response>;
576
+ interface RegistryDiagnostics {
577
+ mode: string;
578
+ envoyActiveActorCount?: number | null;
580
579
  }
581
580
  declare class Registry<A extends RegistryActors> {
582
581
  #private;
583
- readonly routes: RegistryRoutes;
584
582
  get config(): RegistryConfigInput<A>;
585
583
  parseConfig(): RegistryConfig;
586
584
  constructor(config: RegistryConfigInput<A>);
@@ -604,6 +602,26 @@ declare class Registry<A extends RegistryActors> {
604
602
  * ```
605
603
  */
606
604
  serve(): ServerlessHandler;
605
+ /**
606
+ * Starts an HTTP server that dispatches every request through the
607
+ * serverless handler. Uses `crossPlatformServe` to pick the right
608
+ * runtime (Node, Bun, Deno).
609
+ *
610
+ * @param opts.port Port to listen on. Defaults to 3000.
611
+ * @param opts.publicDir If set, serves static files from this directory
612
+ * before falling through to the registry handler.
613
+ *
614
+ * @example
615
+ * ```ts
616
+ * await registry.listen();
617
+ * await registry.listen({ port: 8080, publicDir: "./public" });
618
+ * ```
619
+ */
620
+ listen(opts?: {
621
+ port?: number;
622
+ publicDir?: string;
623
+ }): Promise<void>;
624
+ diagnostics(): Promise<RegistryDiagnostics>;
607
625
  startEnvoy(): void;
608
626
  /**
609
627
  * Starts the actor envoy for standalone server deployments.
@@ -1099,6 +1117,7 @@ type Client<A extends Registry<any>> = ClientRaw & {
1099
1117
  };
1100
1118
 
1101
1119
  declare const ACTOR_CONTEXT_INTERNAL_SYMBOL: unique symbol;
1120
+ declare const RAW_STATE_SYMBOL: unique symbol;
1102
1121
  interface ActorLogger {
1103
1122
  level: any;
1104
1123
  fatal: any;
@@ -1218,6 +1237,8 @@ interface Conn<TState = unknown, TConnParams = unknown, TConnState = unknown, TV
1218
1237
  }
1219
1238
  interface ActorContext<TState, TConnParams, TConnState, TVars, TInput, TDatabase extends AnyDatabaseProvider, TEvents extends EventSchemaConfig = Record<never, never>, TQueues extends QueueSchemaConfig = Record<never, never>> {
1220
1239
  [ACTOR_CONTEXT_INTERNAL_SYMBOL]?: unknown;
1240
+ /** Returns the raw unwrapped state without the write-through proxy. */
1241
+ [RAW_STATE_SYMBOL](): TState;
1221
1242
  state: TState;
1222
1243
  vars: TVars;
1223
1244
  readonly kv: ActorKv;
@@ -573,14 +573,12 @@ type FetchHandler = (request: Request, ...args: any) => Response | Promise<Respo
573
573
  interface ServerlessHandler {
574
574
  fetch: FetchHandler;
575
575
  }
576
- interface RegistryRoutes {
577
- health(): Promise<Response>;
578
- metadata(): Promise<Response>;
579
- prometheusMetrics(request?: Request): Promise<Response>;
576
+ interface RegistryDiagnostics {
577
+ mode: string;
578
+ envoyActiveActorCount?: number | null;
580
579
  }
581
580
  declare class Registry<A extends RegistryActors> {
582
581
  #private;
583
- readonly routes: RegistryRoutes;
584
582
  get config(): RegistryConfigInput<A>;
585
583
  parseConfig(): RegistryConfig;
586
584
  constructor(config: RegistryConfigInput<A>);
@@ -604,6 +602,26 @@ declare class Registry<A extends RegistryActors> {
604
602
  * ```
605
603
  */
606
604
  serve(): ServerlessHandler;
605
+ /**
606
+ * Starts an HTTP server that dispatches every request through the
607
+ * serverless handler. Uses `crossPlatformServe` to pick the right
608
+ * runtime (Node, Bun, Deno).
609
+ *
610
+ * @param opts.port Port to listen on. Defaults to 3000.
611
+ * @param opts.publicDir If set, serves static files from this directory
612
+ * before falling through to the registry handler.
613
+ *
614
+ * @example
615
+ * ```ts
616
+ * await registry.listen();
617
+ * await registry.listen({ port: 8080, publicDir: "./public" });
618
+ * ```
619
+ */
620
+ listen(opts?: {
621
+ port?: number;
622
+ publicDir?: string;
623
+ }): Promise<void>;
624
+ diagnostics(): Promise<RegistryDiagnostics>;
607
625
  startEnvoy(): void;
608
626
  /**
609
627
  * Starts the actor envoy for standalone server deployments.
@@ -1099,6 +1117,7 @@ type Client<A extends Registry<any>> = ClientRaw & {
1099
1117
  };
1100
1118
 
1101
1119
  declare const ACTOR_CONTEXT_INTERNAL_SYMBOL: unique symbol;
1120
+ declare const RAW_STATE_SYMBOL: unique symbol;
1102
1121
  interface ActorLogger {
1103
1122
  level: any;
1104
1123
  fatal: any;
@@ -1218,6 +1237,8 @@ interface Conn<TState = unknown, TConnParams = unknown, TConnState = unknown, TV
1218
1237
  }
1219
1238
  interface ActorContext<TState, TConnParams, TConnState, TVars, TInput, TDatabase extends AnyDatabaseProvider, TEvents extends EventSchemaConfig = Record<never, never>, TQueues extends QueueSchemaConfig = Record<never, never>> {
1220
1239
  [ACTOR_CONTEXT_INTERNAL_SYMBOL]?: unknown;
1240
+ /** Returns the raw unwrapped state without the write-through proxy. */
1241
+ [RAW_STATE_SYMBOL](): TState;
1221
1242
  state: TState;
1222
1243
  vars: TVars;
1223
1244
  readonly kv: ActorKv;
@@ -787,7 +787,7 @@ function isRivetErrorCode(error, group, code) {
787
787
  // package.json
788
788
  var package_default = {
789
789
  name: "rivetkit",
790
- version: "2.3.0-rc.6",
790
+ version: "2.3.0-rc.7",
791
791
  description: "Lightweight libraries for building stateful actors on edge platforms",
792
792
  license: "Apache-2.0",
793
793
  keywords: [
@@ -955,13 +955,14 @@ var package_default = {
955
955
  "actor-config-schema-gen": "tsx scripts/actor-config-schema-gen.ts"
956
956
  },
957
957
  dependencies: {
958
- "@rivet-dev/agent-os-core": "^0.1.1",
959
958
  "@hono/node-server": "^1.18.2",
960
959
  "@hono/node-ws": "^1.1.1",
961
960
  "@hono/zod-openapi": "^1.1.5",
961
+ "@rivet-dev/agent-os-core": "^0.1.1",
962
962
  "@rivetkit/bare-ts": "^0.6.2",
963
963
  "@rivetkit/engine-cli": "workspace:*",
964
964
  "@rivetkit/engine-envoy-protocol": "workspace:*",
965
+ "@rivetkit/on-change": "6.0.1",
965
966
  "@rivetkit/rivetkit-napi": "workspace:*",
966
967
  "@rivetkit/rivetkit-wasm": "workspace:*",
967
968
  "@rivetkit/traces": "workspace:*",
@@ -979,10 +980,10 @@ var package_default = {
979
980
  zod: "^4.1.0"
980
981
  },
981
982
  devDependencies: {
983
+ "@biomejs/biome": "^2.3",
982
984
  "@copilotkit/llmock": "^1.6.0",
983
985
  "@rivet-dev/agent-os-common": "*",
984
986
  "@rivet-dev/agent-os-pi": "^0.1.1",
985
- "@biomejs/biome": "^2.3",
986
987
  "@standard-schema/spec": "^1.0.0",
987
988
  "@types/invariant": "^2",
988
989
  "@types/node": "^22.13.1",
@@ -1068,6 +1069,7 @@ function configureDefaultLogger(logLevel) {
1068
1069
  messageKey: "msg",
1069
1070
  // Do not include pid/hostname in output
1070
1071
  base: {},
1072
+ errorKey: "error",
1071
1073
  // Keep the numeric level so the logfmt sink can match Pino's levels.
1072
1074
  formatters: {
1073
1075
  level(_label, number) {
@@ -1773,10 +1775,10 @@ function subscribeToSession(c, agentOs2, sessionId, parsedConfig) {
1773
1775
  JSON.parse(JSON.stringify({ sessionId, event: event2 }))
1774
1776
  );
1775
1777
  persistSessionEvent(c, sessionId, event2).catch(
1776
- (err) => c.log.error({
1778
+ (error) => c.log.error({
1777
1779
  msg: "agent-os failed to persist session event",
1778
1780
  sessionId,
1779
- error: err
1781
+ error
1780
1782
  })
1781
1783
  );
1782
1784
  if (parsedConfig.onSessionEvent) {