rivetkit 2.3.21 → 2.3.23

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 (100) hide show
  1. package/dist/browser/client.js +14 -4
  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/tsup/actor/errors.cjs +2 -2
  6. package/dist/tsup/actor/errors.d.cts +1 -1
  7. package/dist/tsup/actor/errors.d.ts +1 -1
  8. package/dist/tsup/actor/errors.js +1 -1
  9. package/dist/tsup/agent-os/index.cjs +1 -1
  10. package/dist/tsup/agent-os/index.cjs.map +1 -1
  11. package/dist/tsup/agent-os/index.js +1 -1
  12. package/dist/tsup/agent-os/index.js.map +1 -1
  13. package/dist/tsup/{chunk-KWGN2ZBJ.cjs → chunk-3Y7MKDLZ.cjs} +10 -10
  14. package/dist/tsup/{chunk-KWGN2ZBJ.cjs.map → chunk-3Y7MKDLZ.cjs.map} +1 -1
  15. package/dist/tsup/{chunk-RGIZNZYO.js → chunk-674WU4L6.js} +3 -3
  16. package/dist/tsup/{chunk-RGIZNZYO.js.map → chunk-674WU4L6.js.map} +1 -1
  17. package/dist/tsup/{chunk-VMMXXVDO.js → chunk-7ZDC4XEA.js} +4 -4
  18. package/dist/tsup/{chunk-5IBUZFLP.js → chunk-CIWSGFQG.js} +2 -2
  19. package/dist/tsup/{chunk-LWSLKKZ5.cjs → chunk-CRZJ74SA.cjs} +3 -3
  20. package/dist/tsup/{chunk-LWSLKKZ5.cjs.map → chunk-CRZJ74SA.cjs.map} +1 -1
  21. package/dist/tsup/{chunk-NL2EIKK6.cjs → chunk-FVVRY42Y.cjs} +7 -7
  22. package/dist/tsup/{chunk-NL2EIKK6.cjs.map → chunk-FVVRY42Y.cjs.map} +1 -1
  23. package/dist/tsup/{chunk-B5SNXPSS.cjs → chunk-GZKR7ORE.cjs} +173 -173
  24. package/dist/tsup/{chunk-B5SNXPSS.cjs.map → chunk-GZKR7ORE.cjs.map} +1 -1
  25. package/dist/tsup/{chunk-5EGLHQJJ.js → chunk-HO6UA2RJ.js} +2 -2
  26. package/dist/tsup/{chunk-GHKQC4PD.cjs → chunk-JLM6TML2.cjs} +3 -3
  27. package/dist/tsup/{chunk-GHKQC4PD.cjs.map → chunk-JLM6TML2.cjs.map} +1 -1
  28. package/dist/tsup/{chunk-2CI2IEVN.js → chunk-KC3T3MMB.js} +2 -2
  29. package/dist/tsup/{chunk-PYRI75DL.js → chunk-LKNGMRIT.js} +7 -7
  30. package/dist/tsup/{chunk-JX2ITWAV.cjs → chunk-MGI2VVF6.cjs} +14 -4
  31. package/dist/tsup/chunk-MGI2VVF6.cjs.map +1 -0
  32. package/dist/tsup/{chunk-RFN3BG6D.js → chunk-UV5AN6YV.js} +3 -3
  33. package/dist/tsup/{chunk-6LRPYB4Q.cjs → chunk-VJNX5RCS.cjs} +4 -4
  34. package/dist/tsup/{chunk-6LRPYB4Q.cjs.map → chunk-VJNX5RCS.cjs.map} +1 -1
  35. package/dist/tsup/{chunk-ARGNQGYG.cjs → chunk-XUCVB6BD.cjs} +3 -3
  36. package/dist/tsup/{chunk-ARGNQGYG.cjs.map → chunk-XUCVB6BD.cjs.map} +1 -1
  37. package/dist/tsup/{chunk-CJXBGTVT.js → chunk-Z3Z5EOSP.js} +2 -2
  38. package/dist/tsup/{chunk-APOANSDG.cjs → chunk-Z7QK4HTR.cjs} +10 -10
  39. package/dist/tsup/{chunk-APOANSDG.cjs.map → chunk-Z7QK4HTR.cjs.map} +1 -1
  40. package/dist/tsup/{chunk-P2OFXH4G.js → chunk-ZOVJDAOW.js} +14 -4
  41. package/dist/tsup/chunk-ZOVJDAOW.js.map +1 -0
  42. package/dist/tsup/client/mod.cjs +6 -6
  43. package/dist/tsup/client/mod.d.cts +5 -5
  44. package/dist/tsup/client/mod.d.ts +5 -5
  45. package/dist/tsup/client/mod.js +5 -5
  46. package/dist/tsup/common/log.cjs +3 -3
  47. package/dist/tsup/common/log.js +2 -2
  48. package/dist/tsup/common/websocket.cjs +4 -4
  49. package/dist/tsup/common/websocket.js +3 -3
  50. package/dist/tsup/{config-Bc1nnvUl.d.ts → config-Cv6pjCt-.d.ts} +2 -2
  51. package/dist/tsup/{config-Do_0guSS.d.cts → config-osdJqQwX.d.cts} +2 -2
  52. package/dist/tsup/{context-oGQxZDPz.d.ts → context-CoVbKBuk.d.ts} +1 -1
  53. package/dist/tsup/{context-CgNkhjdY.d.cts → context-DpjrM7n7.d.cts} +1 -1
  54. package/dist/tsup/db/drizzle.cjs +3 -3
  55. package/dist/tsup/db/drizzle.js +2 -2
  56. package/dist/tsup/db/mod.cjs +4 -4
  57. package/dist/tsup/db/mod.js +3 -3
  58. package/dist/tsup/dynamic/mod.d.cts +3 -3
  59. package/dist/tsup/dynamic/mod.d.ts +3 -3
  60. package/dist/tsup/inspector/mod.cjs +6 -6
  61. package/dist/tsup/inspector/mod.js +5 -5
  62. package/dist/tsup/inspector/workflow.cjs +5 -5
  63. package/dist/tsup/inspector/workflow.js +4 -4
  64. package/dist/tsup/inspector-tab/mod.d.cts +4 -4
  65. package/dist/tsup/inspector-tab/mod.d.ts +4 -4
  66. package/dist/tsup/mod.cjs +149 -127
  67. package/dist/tsup/mod.cjs.map +1 -1
  68. package/dist/tsup/mod.d.cts +5 -5
  69. package/dist/tsup/mod.d.ts +5 -5
  70. package/dist/tsup/mod.js +32 -10
  71. package/dist/tsup/mod.js.map +1 -1
  72. package/dist/tsup/test/mod.cjs +7 -7
  73. package/dist/tsup/test/mod.d.cts +3 -3
  74. package/dist/tsup/test/mod.d.ts +3 -3
  75. package/dist/tsup/test/mod.js +5 -5
  76. package/dist/tsup/{utils-DsoDinPz.d.ts → utils-3rsE0JvI.d.cts} +12 -2
  77. package/dist/tsup/{utils-DsoDinPz.d.cts → utils-3rsE0JvI.d.ts} +12 -2
  78. package/dist/tsup/{utils-OQHBjfcM.d.ts → utils-C1O-SklO.d.ts} +1 -1
  79. package/dist/tsup/{utils-CNFeS-Dk.d.cts → utils-C6b0aYUM.d.cts} +1 -1
  80. package/dist/tsup/utils.cjs +3 -3
  81. package/dist/tsup/utils.d.cts +2 -2
  82. package/dist/tsup/utils.d.ts +2 -2
  83. package/dist/tsup/utils.js +2 -2
  84. package/dist/tsup/workflow/mod.cjs +11 -11
  85. package/dist/tsup/workflow/mod.d.cts +5 -5
  86. package/dist/tsup/workflow/mod.d.ts +5 -5
  87. package/dist/tsup/workflow/mod.js +5 -5
  88. package/package.json +9 -9
  89. package/src/actor/errors.ts +27 -4
  90. package/src/registry/native.ts +31 -3
  91. package/dist/tsup/chunk-JX2ITWAV.cjs.map +0 -1
  92. package/dist/tsup/chunk-P2OFXH4G.js.map +0 -1
  93. package/src/registry/process-metrics.ts +0 -250
  94. /package/dist/tsup/{chunk-VMMXXVDO.js.map → chunk-7ZDC4XEA.js.map} +0 -0
  95. /package/dist/tsup/{chunk-5IBUZFLP.js.map → chunk-CIWSGFQG.js.map} +0 -0
  96. /package/dist/tsup/{chunk-5EGLHQJJ.js.map → chunk-HO6UA2RJ.js.map} +0 -0
  97. /package/dist/tsup/{chunk-2CI2IEVN.js.map → chunk-KC3T3MMB.js.map} +0 -0
  98. /package/dist/tsup/{chunk-PYRI75DL.js.map → chunk-LKNGMRIT.js.map} +0 -0
  99. /package/dist/tsup/{chunk-RFN3BG6D.js.map → chunk-UV5AN6YV.js.map} +0 -0
  100. /package/dist/tsup/{chunk-CJXBGTVT.js.map → chunk-Z3Z5EOSP.js.map} +0 -0
@@ -1,14 +1,14 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
2
 
3
- var _chunkNL2EIKK6cjs = require('../chunk-NL2EIKK6.cjs');
3
+ var _chunkFVVRY42Ycjs = require('../chunk-FVVRY42Y.cjs');
4
4
 
5
5
 
6
- var _chunkB5SNXPSScjs = require('../chunk-B5SNXPSS.cjs');
6
+ var _chunkGZKR7OREcjs = require('../chunk-GZKR7ORE.cjs');
7
7
  require('../chunk-MYWZCDML.cjs');
8
- require('../chunk-LWSLKKZ5.cjs');
9
8
  require('../chunk-KVFIONKQ.cjs');
10
- require('../chunk-KWGN2ZBJ.cjs');
11
- require('../chunk-JX2ITWAV.cjs');
9
+ require('../chunk-CRZJ74SA.cjs');
10
+ require('../chunk-3Y7MKDLZ.cjs');
11
+ require('../chunk-MGI2VVF6.cjs');
12
12
 
13
13
  // src/test/ready.ts
14
14
  var _pretry = require('p-retry'); var _pretry2 = _interopRequireDefault(_pretry);
@@ -36,8 +36,8 @@ async function setupTest(c, registry) {
36
36
  registry.config.noWelcome = true;
37
37
  registry.start();
38
38
  await waitForRegistryReady(registry);
39
- const client = _chunkNL2EIKK6cjs.createClient.call(void 0, {
40
- ..._chunkB5SNXPSScjs.convertRegistryConfigToClientConfig.call(void 0, registry.parseConfig()),
39
+ const client = _chunkFVVRY42Ycjs.createClient.call(void 0, {
40
+ ..._chunkGZKR7OREcjs.convertRegistryConfigToClientConfig.call(void 0, registry.parseConfig()),
41
41
  disableMetadataLookup: false
42
42
  });
43
43
  c.onTestFinished(async () => {
@@ -1,5 +1,5 @@
1
1
  import { TestContext } from 'vitest';
2
- import { aI as Registry, a6 as Client } from '../config-Do_0guSS.cjs';
2
+ import { aI as Registry, a6 as Client } from '../config-osdJqQwX.cjs';
3
3
  import 'zod/v4';
4
4
  import '../config-ey2I2zz5.cjs';
5
5
  import '@rivetkit/rivetkit-wasm';
@@ -9,9 +9,9 @@ import '@rivetkit/virtual-websocket';
9
9
  import '../inspector/workflow.cjs';
10
10
  import '@standard-schema/spec';
11
11
  import '@rivetkit/engine-api-full';
12
- import '../utils-CNFeS-Dk.cjs';
12
+ import '../utils-C6b0aYUM.cjs';
13
13
  import 'hono';
14
- import '../utils-DsoDinPz.cjs';
14
+ import '../utils-3rsE0JvI.cjs';
15
15
  import 'hono/utils/http-status';
16
16
 
17
17
  interface SetupTestResult<A extends Registry<any>> {
@@ -1,5 +1,5 @@
1
1
  import { TestContext } from 'vitest';
2
- import { aI as Registry, a6 as Client } from '../config-Bc1nnvUl.js';
2
+ import { aI as Registry, a6 as Client } from '../config-Cv6pjCt-.js';
3
3
  import 'zod/v4';
4
4
  import '../config-ey2I2zz5.js';
5
5
  import '@rivetkit/rivetkit-wasm';
@@ -9,9 +9,9 @@ import '@rivetkit/virtual-websocket';
9
9
  import '../inspector/workflow.js';
10
10
  import '@standard-schema/spec';
11
11
  import '@rivetkit/engine-api-full';
12
- import '../utils-OQHBjfcM.js';
12
+ import '../utils-C1O-SklO.js';
13
13
  import 'hono';
14
- import '../utils-DsoDinPz.js';
14
+ import '../utils-3rsE0JvI.js';
15
15
  import 'hono/utils/http-status';
16
16
 
17
17
  interface SetupTestResult<A extends Registry<any>> {
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  createClient
3
- } from "../chunk-RFN3BG6D.js";
3
+ } from "../chunk-UV5AN6YV.js";
4
4
  import {
5
5
  convertRegistryConfigToClientConfig
6
- } from "../chunk-PYRI75DL.js";
6
+ } from "../chunk-LKNGMRIT.js";
7
7
  import "../chunk-JI6GZ2C2.js";
8
- import "../chunk-2CI2IEVN.js";
9
8
  import "../chunk-JTHHCZCZ.js";
10
- import "../chunk-RGIZNZYO.js";
11
- import "../chunk-P2OFXH4G.js";
9
+ import "../chunk-KC3T3MMB.js";
10
+ import "../chunk-674WU4L6.js";
11
+ import "../chunk-ZOVJDAOW.js";
12
12
 
13
13
  // src/test/ready.ts
14
14
  import pRetry from "p-retry";
@@ -70,7 +70,17 @@ declare class UserError extends RivetError {
70
70
  constructor(message: string, options?: UserErrorOptions);
71
71
  }
72
72
  declare function toRivetError(error: unknown, fallback?: Partial<RivetErrorLike>): RivetError;
73
- declare function encodeBridgeRivetError(error: RivetErrorLike): string;
73
+ /** A structured error encoded for the bridge to Core. */
74
+ interface EncodedBridgeError {
75
+ readonly encoded: string;
76
+ /** Set when JSON could not encode the metadata, which was dropped. */
77
+ readonly droppedMetadataCause?: unknown;
78
+ }
79
+ /**
80
+ * Encodes a structured error for the bridge to Core. Metadata that JSON cannot
81
+ * encode, such as a `bigint`, is dropped so the error itself still crosses.
82
+ */
83
+ declare function encodeBridgeRivetError(error: RivetErrorLike): EncodedBridgeError;
74
84
  /**
75
85
  * Encodes an error for the telemetry bridge. A structured error crosses with
76
86
  * its group and code. Anything else crosses as text so Core classifies it,
@@ -114,4 +124,4 @@ declare function stringifyError(error: unknown): string;
114
124
  /** Generates a `Next` handler to pass to middleware in order to be able to call arbitrary middleware. */
115
125
  declare function noopNext(): Next;
116
126
 
117
- export { type ActorRestartingOptions as A, BRIDGE_RIVET_ERROR_PREFIX as B, toRivetError as C, unsupportedFeature as D, INTERNAL_ERROR_CODE as I, RivetError as R, UserError as U, type RivetErrorLike as a, type RivetErrorOptions as b, type UserErrorOptions as c, assertUnreachable as d, type ActorSpecifier as e, type BridgeRivetErrorPayload as f, INTERNAL_ERROR_DESCRIPTION as g, type InternalErrorMetadata as h, USER_ERROR_CODE as i, actorNotFound as j, actorRestarting as k, actorStopping as l, decodeBridgeRivetError as m, noopNext as n, decodeBridgeRivetErrorPayload as o, encodeBridgeRivetError as p, encodeErrorForBridge as q, forbiddenError as r, stringifyError as s, internalError as t, invalidEncoding as u, invalidRequest as v, isActorAbortedError as w, isCanonicalStructuredRivetError as x, isRivetErrorCode as y, isRivetErrorLike as z };
127
+ export { type ActorRestartingOptions as A, BRIDGE_RIVET_ERROR_PREFIX as B, toRivetError as C, unsupportedFeature as D, type EncodedBridgeError as E, INTERNAL_ERROR_CODE as I, RivetError as R, UserError as U, type RivetErrorLike as a, type RivetErrorOptions as b, type UserErrorOptions as c, assertUnreachable as d, type ActorSpecifier as e, type BridgeRivetErrorPayload as f, INTERNAL_ERROR_DESCRIPTION as g, type InternalErrorMetadata as h, USER_ERROR_CODE as i, actorNotFound as j, actorRestarting as k, actorStopping as l, decodeBridgeRivetError as m, noopNext as n, decodeBridgeRivetErrorPayload as o, encodeBridgeRivetError as p, encodeErrorForBridge as q, forbiddenError as r, stringifyError as s, internalError as t, invalidEncoding as u, invalidRequest as v, isActorAbortedError as w, isCanonicalStructuredRivetError as x, isRivetErrorCode as y, isRivetErrorLike as z };
@@ -70,7 +70,17 @@ declare class UserError extends RivetError {
70
70
  constructor(message: string, options?: UserErrorOptions);
71
71
  }
72
72
  declare function toRivetError(error: unknown, fallback?: Partial<RivetErrorLike>): RivetError;
73
- declare function encodeBridgeRivetError(error: RivetErrorLike): string;
73
+ /** A structured error encoded for the bridge to Core. */
74
+ interface EncodedBridgeError {
75
+ readonly encoded: string;
76
+ /** Set when JSON could not encode the metadata, which was dropped. */
77
+ readonly droppedMetadataCause?: unknown;
78
+ }
79
+ /**
80
+ * Encodes a structured error for the bridge to Core. Metadata that JSON cannot
81
+ * encode, such as a `bigint`, is dropped so the error itself still crosses.
82
+ */
83
+ declare function encodeBridgeRivetError(error: RivetErrorLike): EncodedBridgeError;
74
84
  /**
75
85
  * Encodes an error for the telemetry bridge. A structured error crosses with
76
86
  * its group and code. Anything else crosses as text so Core classifies it,
@@ -114,4 +124,4 @@ declare function stringifyError(error: unknown): string;
114
124
  /** Generates a `Next` handler to pass to middleware in order to be able to call arbitrary middleware. */
115
125
  declare function noopNext(): Next;
116
126
 
117
- export { type ActorRestartingOptions as A, BRIDGE_RIVET_ERROR_PREFIX as B, toRivetError as C, unsupportedFeature as D, INTERNAL_ERROR_CODE as I, RivetError as R, UserError as U, type RivetErrorLike as a, type RivetErrorOptions as b, type UserErrorOptions as c, assertUnreachable as d, type ActorSpecifier as e, type BridgeRivetErrorPayload as f, INTERNAL_ERROR_DESCRIPTION as g, type InternalErrorMetadata as h, USER_ERROR_CODE as i, actorNotFound as j, actorRestarting as k, actorStopping as l, decodeBridgeRivetError as m, noopNext as n, decodeBridgeRivetErrorPayload as o, encodeBridgeRivetError as p, encodeErrorForBridge as q, forbiddenError as r, stringifyError as s, internalError as t, invalidEncoding as u, invalidRequest as v, isActorAbortedError as w, isCanonicalStructuredRivetError as x, isRivetErrorCode as y, isRivetErrorLike as z };
127
+ export { type ActorRestartingOptions as A, BRIDGE_RIVET_ERROR_PREFIX as B, toRivetError as C, unsupportedFeature as D, type EncodedBridgeError as E, INTERNAL_ERROR_CODE as I, RivetError as R, UserError as U, type RivetErrorLike as a, type RivetErrorOptions as b, type UserErrorOptions as c, assertUnreachable as d, type ActorSpecifier as e, type BridgeRivetErrorPayload as f, INTERNAL_ERROR_DESCRIPTION as g, type InternalErrorMetadata as h, USER_ERROR_CODE as i, actorNotFound as j, actorRestarting as k, actorStopping as l, decodeBridgeRivetError as m, noopNext as n, decodeBridgeRivetErrorPayload as o, encodeBridgeRivetError as p, encodeErrorForBridge as q, forbiddenError as r, stringifyError as s, internalError as t, invalidEncoding as u, invalidRequest as v, isActorAbortedError as w, isCanonicalStructuredRivetError as x, isRivetErrorCode as y, isRivetErrorLike as z };
@@ -1,5 +1,5 @@
1
1
  import { Context, Handler } from 'hono';
2
- import './utils-DsoDinPz.js';
2
+ import './utils-3rsE0JvI.js';
3
3
  import { z } from 'zod/v4';
4
4
 
5
5
  declare const EncodingSchema: z.ZodEnum<{
@@ -1,5 +1,5 @@
1
1
  import { Context, Handler } from 'hono';
2
- import './utils-DsoDinPz.cjs';
2
+ import './utils-3rsE0JvI.cjs';
3
3
  import { z } from 'zod/v4';
4
4
 
5
5
  declare const EncodingSchema: z.ZodEnum<{
@@ -19,8 +19,8 @@
19
19
 
20
20
 
21
21
 
22
- var _chunkKWGN2ZBJcjs = require('./chunk-KWGN2ZBJ.cjs');
23
- require('./chunk-JX2ITWAV.cjs');
22
+ var _chunk3Y7MKDLZcjs = require('./chunk-3Y7MKDLZ.cjs');
23
+ require('./chunk-MGI2VVF6.cjs');
24
24
 
25
25
 
26
26
 
@@ -42,5 +42,5 @@ require('./chunk-JX2ITWAV.cjs');
42
42
 
43
43
 
44
44
 
45
- exports.EXTRA_ERROR_LOG = _chunkKWGN2ZBJcjs.EXTRA_ERROR_LOG; exports.SinglePromiseQueue = _chunkKWGN2ZBJcjs.SinglePromiseQueue; exports.VERSION = _chunkKWGN2ZBJcjs.VERSION; exports.arrayBuffersEqual = _chunkKWGN2ZBJcjs.arrayBuffersEqual; exports.assertUnreachable = _chunkKWGN2ZBJcjs.assertUnreachable; exports.bufferToArrayBuffer = _chunkKWGN2ZBJcjs.bufferToArrayBuffer; exports.combineUrlPath = _chunkKWGN2ZBJcjs.combineUrlPath; exports.dbg = _chunkKWGN2ZBJcjs.dbg; exports.detectRuntime = _chunkKWGN2ZBJcjs.detectRuntime; exports.getEnvUniversal = _chunkKWGN2ZBJcjs.getEnvUniversal; exports.httpUserAgent = _chunkKWGN2ZBJcjs.httpUserAgent; exports.interval = _chunkKWGN2ZBJcjs.interval; exports.joinSignals = _chunkKWGN2ZBJcjs.joinSignals; exports.jsonParseCompat = _chunkKWGN2ZBJcjs.jsonParseCompat; exports.jsonStringifyCompat = _chunkKWGN2ZBJcjs.jsonStringifyCompat; exports.promiseWithResolvers = _chunkKWGN2ZBJcjs.promiseWithResolvers; exports.setLongTimeout = _chunkKWGN2ZBJcjs.setLongTimeout; exports.sleep = _chunkKWGN2ZBJcjs.sleep; exports.stringifyError = _chunkKWGN2ZBJcjs.stringifyError; exports.toUint8Array = _chunkKWGN2ZBJcjs.toUint8Array;
45
+ exports.EXTRA_ERROR_LOG = _chunk3Y7MKDLZcjs.EXTRA_ERROR_LOG; exports.SinglePromiseQueue = _chunk3Y7MKDLZcjs.SinglePromiseQueue; exports.VERSION = _chunk3Y7MKDLZcjs.VERSION; exports.arrayBuffersEqual = _chunk3Y7MKDLZcjs.arrayBuffersEqual; exports.assertUnreachable = _chunk3Y7MKDLZcjs.assertUnreachable; exports.bufferToArrayBuffer = _chunk3Y7MKDLZcjs.bufferToArrayBuffer; exports.combineUrlPath = _chunk3Y7MKDLZcjs.combineUrlPath; exports.dbg = _chunk3Y7MKDLZcjs.dbg; exports.detectRuntime = _chunk3Y7MKDLZcjs.detectRuntime; exports.getEnvUniversal = _chunk3Y7MKDLZcjs.getEnvUniversal; exports.httpUserAgent = _chunk3Y7MKDLZcjs.httpUserAgent; exports.interval = _chunk3Y7MKDLZcjs.interval; exports.joinSignals = _chunk3Y7MKDLZcjs.joinSignals; exports.jsonParseCompat = _chunk3Y7MKDLZcjs.jsonParseCompat; exports.jsonStringifyCompat = _chunk3Y7MKDLZcjs.jsonStringifyCompat; exports.promiseWithResolvers = _chunk3Y7MKDLZcjs.promiseWithResolvers; exports.setLongTimeout = _chunk3Y7MKDLZcjs.setLongTimeout; exports.sleep = _chunk3Y7MKDLZcjs.sleep; exports.stringifyError = _chunk3Y7MKDLZcjs.stringifyError; exports.toUint8Array = _chunk3Y7MKDLZcjs.toUint8Array;
46
46
  //# sourceMappingURL=utils.cjs.map
@@ -1,5 +1,5 @@
1
1
  import 'hono';
2
- export { d as assertUnreachable, s as stringifyError } from './utils-DsoDinPz.cjs';
3
- export { D as DeepMutable, a as DeepReadonly, b as EXTRA_ERROR_LOG, G as GetUpgradeWebSocket, L as LongTimeoutHandle, R as Runtime, S as SinglePromiseQueue, U as UpgradeWebSocket, V as VERSION, c as arrayBuffersEqual, d as bufferToArrayBuffer, e as combineUrlPath, f as dbg, g as detectRuntime, h as getEnvUniversal, i as httpUserAgent, j as interval, k as joinSignals, l as jsonParseCompat, m as jsonStringifyCompat, p as promiseWithResolvers, s as setLongTimeout, n as sleep, t as toUint8Array } from './utils-CNFeS-Dk.cjs';
2
+ export { d as assertUnreachable, s as stringifyError } from './utils-3rsE0JvI.cjs';
3
+ export { D as DeepMutable, a as DeepReadonly, b as EXTRA_ERROR_LOG, G as GetUpgradeWebSocket, L as LongTimeoutHandle, R as Runtime, S as SinglePromiseQueue, U as UpgradeWebSocket, V as VERSION, c as arrayBuffersEqual, d as bufferToArrayBuffer, e as combineUrlPath, f as dbg, g as detectRuntime, h as getEnvUniversal, i as httpUserAgent, j as interval, k as joinSignals, l as jsonParseCompat, m as jsonStringifyCompat, p as promiseWithResolvers, s as setLongTimeout, n as sleep, t as toUint8Array } from './utils-C6b0aYUM.cjs';
4
4
  import 'hono/utils/http-status';
5
5
  import 'zod/v4';
@@ -1,5 +1,5 @@
1
1
  import 'hono';
2
- export { d as assertUnreachable, s as stringifyError } from './utils-DsoDinPz.js';
3
- export { D as DeepMutable, a as DeepReadonly, b as EXTRA_ERROR_LOG, G as GetUpgradeWebSocket, L as LongTimeoutHandle, R as Runtime, S as SinglePromiseQueue, U as UpgradeWebSocket, V as VERSION, c as arrayBuffersEqual, d as bufferToArrayBuffer, e as combineUrlPath, f as dbg, g as detectRuntime, h as getEnvUniversal, i as httpUserAgent, j as interval, k as joinSignals, l as jsonParseCompat, m as jsonStringifyCompat, p as promiseWithResolvers, s as setLongTimeout, n as sleep, t as toUint8Array } from './utils-OQHBjfcM.js';
2
+ export { d as assertUnreachable, s as stringifyError } from './utils-3rsE0JvI.js';
3
+ export { D as DeepMutable, a as DeepReadonly, b as EXTRA_ERROR_LOG, G as GetUpgradeWebSocket, L as LongTimeoutHandle, R as Runtime, S as SinglePromiseQueue, U as UpgradeWebSocket, V as VERSION, c as arrayBuffersEqual, d as bufferToArrayBuffer, e as combineUrlPath, f as dbg, g as detectRuntime, h as getEnvUniversal, i as httpUserAgent, j as interval, k as joinSignals, l as jsonParseCompat, m as jsonStringifyCompat, p as promiseWithResolvers, s as setLongTimeout, n as sleep, t as toUint8Array } from './utils-C1O-SklO.js';
4
4
  import 'hono/utils/http-status';
5
5
  import 'zod/v4';
@@ -19,8 +19,8 @@ import {
19
19
  sleep,
20
20
  stringifyError,
21
21
  toUint8Array
22
- } from "./chunk-RGIZNZYO.js";
23
- import "./chunk-P2OFXH4G.js";
22
+ } from "./chunk-674WU4L6.js";
23
+ import "./chunk-ZOVJDAOW.js";
24
24
  export {
25
25
  EXTRA_ERROR_LOG,
26
26
  SinglePromiseQueue,
@@ -1,8 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await rhsFn(); } } var _class; var _class2;
2
2
 
3
- var _chunkAPOANSDGcjs = require('../chunk-APOANSDG.cjs');
4
- require('../chunk-ARGNQGYG.cjs');
5
- require('../chunk-6LRPYB4Q.cjs');
3
+ var _chunkZ7QK4HTRcjs = require('../chunk-Z7QK4HTR.cjs');
4
+ require('../chunk-XUCVB6BD.cjs');
5
+ require('../chunk-VJNX5RCS.cjs');
6
6
 
7
7
 
8
8
 
@@ -13,11 +13,11 @@ var _chunkNWCAIWHLcjs = require('../chunk-NWCAIWHL.cjs');
13
13
  var _chunkMYWZCDMLcjs = require('../chunk-MYWZCDML.cjs');
14
14
 
15
15
 
16
- var _chunkKWGN2ZBJcjs = require('../chunk-KWGN2ZBJ.cjs');
16
+ var _chunk3Y7MKDLZcjs = require('../chunk-3Y7MKDLZ.cjs');
17
17
 
18
18
 
19
19
 
20
- var _chunkJX2ITWAVcjs = require('../chunk-JX2ITWAV.cjs');
20
+ var _chunkMGI2VVF6cjs = require('../chunk-MGI2VVF6.cjs');
21
21
 
22
22
  // src/workflow/mod.ts
23
23
 
@@ -721,7 +721,7 @@ function shouldRethrowWorkflowError(error) {
721
721
  return true;
722
722
  }
723
723
  function workflowReplayInFlightError() {
724
- return new (0, _chunkJX2ITWAVcjs.RivetError)(
724
+ return new (0, _chunkMGI2VVF6cjs.RivetError)(
725
725
  "actor",
726
726
  "workflow_in_flight",
727
727
  "Workflow replay is unavailable while the workflow is currently in flight.",
@@ -735,7 +735,7 @@ function isWorkflowReplayBlockedByRunningEntry(error) {
735
735
  return error instanceof Error && error.message === "Cannot replay a workflow while a step is currently running";
736
736
  }
737
737
  function isRunHandlerUnavailable(error) {
738
- return error instanceof _chunkJX2ITWAVcjs.RivetError && error.group === "actor" && error.code === "run_handler_unavailable";
738
+ return error instanceof _chunkMGI2VVF6cjs.RivetError && error.group === "actor" && error.code === "run_handler_unavailable";
739
739
  }
740
740
  function workflow(fn, options = {}) {
741
741
  const onError = options.onError;
@@ -743,7 +743,7 @@ function workflow(fn, options = {}) {
743
743
  function getWorkflowInspector(actorId) {
744
744
  let workflowInspector = workflowInspectors.get(actorId);
745
745
  if (!workflowInspector) {
746
- workflowInspector = _chunkAPOANSDGcjs.createWorkflowInspectorAdapter.call(void 0, );
746
+ workflowInspector = _chunkZ7QK4HTRcjs.createWorkflowInspectorAdapter.call(void 0, );
747
747
  workflowInspectors.set(actorId, workflowInspector);
748
748
  }
749
749
  return workflowInspector;
@@ -810,19 +810,19 @@ function workflow(fn, options = {}) {
810
810
  try {
811
811
  await handle.result;
812
812
  } catch (error) {
813
- if (runCtx.abortSignal.aborted || _chunkJX2ITWAVcjs.isActorAbortedError.call(void 0, error)) {
813
+ if (runCtx.abortSignal.aborted || _chunkMGI2VVF6cjs.isActorAbortedError.call(void 0, error)) {
814
814
  return;
815
815
  }
816
816
  if (shouldRethrowWorkflowError(error)) {
817
817
  runCtx.log.error({
818
818
  msg: "workflow run failed",
819
- error: _chunkKWGN2ZBJcjs.stringifyError.call(void 0, error)
819
+ error: _chunk3Y7MKDLZcjs.stringifyError.call(void 0, error)
820
820
  });
821
821
  throw error;
822
822
  }
823
823
  runCtx.log.warn({
824
824
  msg: "workflow failed and will sleep until woken",
825
- error: _chunkKWGN2ZBJcjs.stringifyError.call(void 0, error)
825
+ error: _chunk3Y7MKDLZcjs.stringifyError.call(void 0, error)
826
826
  });
827
827
  } finally {
828
828
  runCtx.abortSignal.removeEventListener("abort", onAbort);
@@ -1,9 +1,9 @@
1
1
  import { WorkflowErrorEvent } from '@rivetkit/workflow-engine';
2
2
  export { Loop, TryBlockCatchKind, TryBlockConfig, TryBlockFailure, TryBlockResult, TryStepCatchKind, TryStepConfig, TryStepFailure, TryStepResult, WorkflowError, WorkflowErrorEvent } from '@rivetkit/workflow-engine';
3
- import { E as EventSchemaConfig, Q as QueueSchemaConfig, h as RunContext } from '../config-Do_0guSS.cjs';
3
+ import { E as EventSchemaConfig, Q as QueueSchemaConfig, h as RunContext } from '../config-osdJqQwX.cjs';
4
4
  import { A as AnyDatabaseProvider } from '../config-ey2I2zz5.cjs';
5
- import { d as WorkflowContext } from '../context-CgNkhjdY.cjs';
6
- export { e as WorkflowBranchConfig, W as WorkflowBranchContextOf, a as WorkflowContextOf, f as WorkflowLoopConfig, b as WorkflowLoopContextOf, g as WorkflowStepConfig, h as WorkflowStepContext, c as WorkflowStepContextOf, i as WorkflowTryConfig, j as WorkflowTryStepConfig } from '../context-CgNkhjdY.cjs';
5
+ import { d as WorkflowContext } from '../context-DpjrM7n7.cjs';
6
+ export { e as WorkflowBranchConfig, W as WorkflowBranchContextOf, a as WorkflowContextOf, f as WorkflowLoopConfig, b as WorkflowLoopContextOf, g as WorkflowStepConfig, h as WorkflowStepContext, c as WorkflowStepContextOf, i as WorkflowTryConfig, j as WorkflowTryStepConfig } from '../context-DpjrM7n7.cjs';
7
7
  import 'zod/v4';
8
8
  import '@rivetkit/rivetkit-wasm';
9
9
  import 'zod';
@@ -12,9 +12,9 @@ import '@rivetkit/virtual-websocket';
12
12
  import '../inspector/workflow.cjs';
13
13
  import '@standard-schema/spec';
14
14
  import '@rivetkit/engine-api-full';
15
- import '../utils-CNFeS-Dk.cjs';
15
+ import '../utils-C6b0aYUM.cjs';
16
16
  import 'hono';
17
- import '../utils-DsoDinPz.cjs';
17
+ import '../utils-3rsE0JvI.cjs';
18
18
  import 'hono/utils/http-status';
19
19
 
20
20
  interface WorkflowOptions<TState, TConnParams, TConnState, TVars, TInput, TDatabase extends AnyDatabaseProvider, TEvents extends EventSchemaConfig = Record<never, never>, TQueues extends QueueSchemaConfig = Record<never, never>> {
@@ -1,9 +1,9 @@
1
1
  import { WorkflowErrorEvent } from '@rivetkit/workflow-engine';
2
2
  export { Loop, TryBlockCatchKind, TryBlockConfig, TryBlockFailure, TryBlockResult, TryStepCatchKind, TryStepConfig, TryStepFailure, TryStepResult, WorkflowError, WorkflowErrorEvent } from '@rivetkit/workflow-engine';
3
- import { E as EventSchemaConfig, Q as QueueSchemaConfig, h as RunContext } from '../config-Bc1nnvUl.js';
3
+ import { E as EventSchemaConfig, Q as QueueSchemaConfig, h as RunContext } from '../config-Cv6pjCt-.js';
4
4
  import { A as AnyDatabaseProvider } from '../config-ey2I2zz5.js';
5
- import { d as WorkflowContext } from '../context-oGQxZDPz.js';
6
- export { e as WorkflowBranchConfig, W as WorkflowBranchContextOf, a as WorkflowContextOf, f as WorkflowLoopConfig, b as WorkflowLoopContextOf, g as WorkflowStepConfig, h as WorkflowStepContext, c as WorkflowStepContextOf, i as WorkflowTryConfig, j as WorkflowTryStepConfig } from '../context-oGQxZDPz.js';
5
+ import { d as WorkflowContext } from '../context-CoVbKBuk.js';
6
+ export { e as WorkflowBranchConfig, W as WorkflowBranchContextOf, a as WorkflowContextOf, f as WorkflowLoopConfig, b as WorkflowLoopContextOf, g as WorkflowStepConfig, h as WorkflowStepContext, c as WorkflowStepContextOf, i as WorkflowTryConfig, j as WorkflowTryStepConfig } from '../context-CoVbKBuk.js';
7
7
  import 'zod/v4';
8
8
  import '@rivetkit/rivetkit-wasm';
9
9
  import 'zod';
@@ -12,9 +12,9 @@ import '@rivetkit/virtual-websocket';
12
12
  import '../inspector/workflow.js';
13
13
  import '@standard-schema/spec';
14
14
  import '@rivetkit/engine-api-full';
15
- import '../utils-OQHBjfcM.js';
15
+ import '../utils-C1O-SklO.js';
16
16
  import 'hono';
17
- import '../utils-DsoDinPz.js';
17
+ import '../utils-3rsE0JvI.js';
18
18
  import 'hono/utils/http-status';
19
19
 
20
20
  interface WorkflowOptions<TState, TConnParams, TConnState, TVars, TInput, TDatabase extends AnyDatabaseProvider, TEvents extends EventSchemaConfig = Record<never, never>, TQueues extends QueueSchemaConfig = Record<never, never>> {
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  createWorkflowInspectorAdapter
3
- } from "../chunk-VMMXXVDO.js";
4
- import "../chunk-5IBUZFLP.js";
5
- import "../chunk-CJXBGTVT.js";
3
+ } from "../chunk-7ZDC4XEA.js";
4
+ import "../chunk-CIWSGFQG.js";
5
+ import "../chunk-Z3Z5EOSP.js";
6
6
  import {
7
7
  ACTOR_CONTEXT_INTERNAL_SYMBOL,
8
8
  defineRunHandler
@@ -13,11 +13,11 @@ import {
13
13
  } from "../chunk-JI6GZ2C2.js";
14
14
  import {
15
15
  stringifyError
16
- } from "../chunk-RGIZNZYO.js";
16
+ } from "../chunk-674WU4L6.js";
17
17
  import {
18
18
  RivetError,
19
19
  isActorAbortedError
20
- } from "../chunk-P2OFXH4G.js";
20
+ } from "../chunk-ZOVJDAOW.js";
21
21
 
22
22
  // src/workflow/mod.ts
23
23
  import {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rivetkit",
3
- "version": "2.3.21",
3
+ "version": "2.3.23",
4
4
  "description": "Lightweight libraries for building stateful actors on edge platforms",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
@@ -213,15 +213,15 @@
213
213
  "@rivet-dev/agent-os-core": "^0.1.1",
214
214
  "@rivet-dev/services": "^0.1.5",
215
215
  "@rivetkit/bare-ts": "^0.6.2",
216
- "@rivetkit/engine-api-full": "2.3.21",
217
- "@rivetkit/engine-cli": "2.3.21",
218
- "@rivetkit/engine-envoy-protocol": "2.3.21",
216
+ "@rivetkit/engine-api-full": "2.3.23",
217
+ "@rivetkit/engine-cli": "2.3.23",
218
+ "@rivetkit/engine-envoy-protocol": "2.3.23",
219
219
  "@rivetkit/on-change": "6.0.1",
220
- "@rivetkit/rivetkit-napi": "2.3.21",
221
- "@rivetkit/rivetkit-wasm": "2.3.21",
222
- "@rivetkit/traces": "2.3.21",
223
- "@rivetkit/virtual-websocket": "2.3.21",
224
- "@rivetkit/workflow-engine": "2.3.21",
220
+ "@rivetkit/rivetkit-napi": "2.3.23",
221
+ "@rivetkit/rivetkit-wasm": "2.3.23",
222
+ "@rivetkit/traces": "2.3.23",
223
+ "@rivetkit/virtual-websocket": "2.3.23",
224
+ "@rivetkit/workflow-engine": "2.3.23",
225
225
  "cbor-x": "^1.6.0",
226
226
  "drizzle-orm": "0.45.2",
227
227
  "hono": "^4.7.0",
@@ -244,8 +244,21 @@ export function toRivetError(
244
244
  );
245
245
  }
246
246
 
247
- export function encodeBridgeRivetError(error: RivetErrorLike): string {
248
- return `${BRIDGE_RIVET_ERROR_PREFIX}${JSON.stringify({
247
+ /** A structured error encoded for the bridge to Core. */
248
+ export interface EncodedBridgeError {
249
+ readonly encoded: string;
250
+ /** Set when JSON could not encode the metadata, which was dropped. */
251
+ readonly droppedMetadataCause?: unknown;
252
+ }
253
+
254
+ /**
255
+ * Encodes a structured error for the bridge to Core. Metadata that JSON cannot
256
+ * encode, such as a `bigint`, is dropped so the error itself still crosses.
257
+ */
258
+ export function encodeBridgeRivetError(
259
+ error: RivetErrorLike,
260
+ ): EncodedBridgeError {
261
+ const payload = {
249
262
  group: error.group,
250
263
  code: error.code,
251
264
  message: error.message,
@@ -254,7 +267,17 @@ export function encodeBridgeRivetError(error: RivetErrorLike): string {
254
267
  public: error.public,
255
268
  statusCode: error.statusCode,
256
269
  actor: error.actor,
257
- })}`;
270
+ };
271
+ try {
272
+ return {
273
+ encoded: `${BRIDGE_RIVET_ERROR_PREFIX}${JSON.stringify(payload)}`,
274
+ };
275
+ } catch (cause) {
276
+ return {
277
+ encoded: `${BRIDGE_RIVET_ERROR_PREFIX}${JSON.stringify({ ...payload, metadata: undefined })}`,
278
+ droppedMetadataCause: cause,
279
+ };
280
+ }
258
281
  }
259
282
 
260
283
  /**
@@ -264,7 +287,7 @@ export function encodeBridgeRivetError(error: RivetErrorLike): string {
264
287
  */
265
288
  export function encodeErrorForBridge(error: unknown): string {
266
289
  if (isCanonicalStructuredRivetError(error)) {
267
- return encodeBridgeRivetError(error);
290
+ return encodeBridgeRivetError(error).encoded;
268
291
  }
269
292
  return String(error);
270
293
  }
@@ -872,7 +872,19 @@ function encodeNativeCallbackError(error: unknown): Error {
872
872
  ? error
873
873
  : deconstructError(error, true);
874
874
 
875
- const bridgeError = new Error(encodeBridgeRivetError(structuredError), {
875
+ const { encoded, droppedMetadataCause } =
876
+ encodeBridgeRivetError(structuredError);
877
+ if (droppedMetadataCause !== undefined) {
878
+ logger().warn(
879
+ {
880
+ group: structuredError.group,
881
+ code: structuredError.code,
882
+ error: String(droppedMetadataCause),
883
+ },
884
+ "dropped error metadata that JSON cannot encode",
885
+ );
886
+ }
887
+ const bridgeError = new Error(encoded, {
876
888
  cause: error instanceof Error ? error : undefined,
877
889
  });
878
890
  return Object.assign(bridgeError, {
@@ -2771,6 +2783,11 @@ export class ActorContextHandleAdapter {
2771
2783
  }
2772
2784
  )[ACTOR_CONTEXT_INTERNAL_SYMBOL] = new NativeWorkflowRuntimeAdapter(
2773
2785
  this,
2786
+ () =>
2787
+ this.#logByInvocationScope.delete(
2788
+ this.#runtime.currentInvocationScope() ??
2789
+ NO_INVOCATION_SCOPE,
2790
+ ),
2774
2791
  );
2775
2792
  }
2776
2793
 
@@ -2978,7 +2995,10 @@ export class ActorContextHandleAdapter {
2978
2995
  );
2979
2996
  }
2980
2997
 
2981
- /** Cached per invocation, because the `run` context outlives workflow runs and steps. */
2998
+ /**
2999
+ * Cached per invocation, because the `run` context outlives workflow runs and steps.
3000
+ * A workflow queue receive clears the entry, because the run's ray becomes the message's ray.
3001
+ */
2982
3002
  get log() {
2983
3003
  const scope =
2984
3004
  this.#runtime.currentInvocationScope() ?? NO_INVOCATION_SCOPE;
@@ -3635,6 +3655,7 @@ type NativeWorkflowQueueMessage = Awaited<
3635
3655
 
3636
3656
  class NativeWorkflowRuntimeAdapter {
3637
3657
  #ctx: ActorContextHandleAdapter;
3658
+ #onMessagesReceived: () => void;
3638
3659
  #completions = new Map<string, (response?: unknown) => Promise<void>>();
3639
3660
 
3640
3661
  readonly id: string;
@@ -3702,8 +3723,12 @@ class NativeWorkflowRuntimeAdapter {
3702
3723
  ) => Promise<void>;
3703
3724
  };
3704
3725
 
3705
- constructor(ctx: ActorContextHandleAdapter) {
3726
+ constructor(
3727
+ ctx: ActorContextHandleAdapter,
3728
+ onMessagesReceived: () => void,
3729
+ ) {
3706
3730
  this.#ctx = ctx;
3731
+ this.#onMessagesReceived = onMessagesReceived;
3707
3732
  this.id = ctx.actorId;
3708
3733
  this.driver = {
3709
3734
  kvBatchGet: async (actorId, keys) => {
@@ -3749,6 +3774,9 @@ class NativeWorkflowRuntimeAdapter {
3749
3774
  timeout: timeout ?? 0,
3750
3775
  completable,
3751
3776
  });
3777
+ if (messages.length > 0) {
3778
+ this.#onMessagesReceived();
3779
+ }
3752
3780
  return messages.map((message) =>
3753
3781
  this.#wrapQueueMessage(message),
3754
3782
  );
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-JX2ITWAV.cjs","../../src/actor/errors.ts"],"names":[],"mappings":"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AGV,EAAA;AACJ,IAAA;AACD,EAAA;AAEI,EAAA;AACG,IAAA;AACL,MAAA;AACD,IAAA;AAEM,IAAA;AACF,MAAA;AACH,MAAA;AACD,IAAA;AACK,IAAA;AACJ,MAAA;AACD,IAAA;AAEC,IAAA;AAIA,MAAA;AACD,IAAA;AAEA,IAAA;AACO,EAAA;AACP,IAAA;AACD,EAAA;AACD;AAEgB;AACT,EAAA;AACD,EAAA;AACJ,IAAA;AACD,EAAA;AAEO,EAAA;AACN,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACF;AAEgB;AAMd,EAAA;AAEF;AAEgB;AAOR,EAAA;AACN,qBAAA;AACA,qBAAA;AACA,IAAA;AACA,IAAA;AACC,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACD,IAAA;AACD,EAAA;AACD;AAEgB;AACR,EAAA;AACN,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACC,MAAA;AACD,IAAA;AACD,EAAA;AACD;AAEgB;AACR,EAAA;AACN,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACC,MAAA;AACA,MAAA;AACD,IAAA;AACD,EAAA;AACD;AAEgB;AACR,EAAA;AACN,IAAA;AACA,IAAA;AACA,IAAA;AAGE,IAAA;AACH,EAAA;AACD;AAEgB;AACR,EAAA;AACN,IAAA;AACA,IAAA;AACA,IAAA;AACE,IAAA;AACH,EAAA;AACD;AAOgB;AACR,EAAA;AACN,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACC,MAAA;AACA,MAAA;AACA,MAAA;AACC,QAAA;AACA,QAAA;AACA,QAAA;AAGD,MAAA;AACD,IAAA;AACD,EAAA;AACD;AAEgB;AACR,EAAA;AACN,IAAA;AACA,IAAA;AACA,EAAA;AACF;AAEgB;AACR,EAAA;AACN,IAAA;AACA,IAAA;AACA,IAAA;AACD,EAAA;AACD;AD9MU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-JX2ITWAV.cjs","sourcesContent":[null,"import type { DeconstructedError } from \"@/common/utils\";\n\nexport const INTERNAL_ERROR_CODE = \"internal_error\";\nexport const INTERNAL_ERROR_DESCRIPTION = \"An internal error occurred\";\nexport type InternalErrorMetadata = Record<string, never>;\n\nexport const USER_ERROR_CODE = \"user_error\";\nexport const BRIDGE_RIVET_ERROR_PREFIX = \"__RIVET_ERROR_JSON__:\";\n\nexport interface RivetErrorOptions extends ErrorOptions {\n\t/** Error data can safely be serialized in a response to the client. */\n\tpublic?: boolean;\n\t/** Metadata associated with this error. */\n\tmetadata?: unknown;\n\t/** Request identifier used to correlate this error with engine logs. */\n\trayId?: string;\n\t/** Explicit HTTP status override for router responses. */\n\tstatusCode?: number;\n\t/** Actor context associated with this error. */\n\tactor?: ActorSpecifier;\n}\n\n/** Identifies the actor that was handling work when an error was produced. */\nexport interface ActorSpecifier {\n\tactorId: string;\n\tgeneration: number;\n\tkey?: string;\n}\n\nexport interface RivetErrorLike {\n\t__type?: \"ActorError\" | \"RivetError\";\n\tgroup: string;\n\tcode: string;\n\tmessage: string;\n\tmetadata?: unknown;\n\trayId?: string;\n\tpublic?: boolean;\n\tstatusCode?: number;\n\tactor?: ActorSpecifier;\n}\n\nexport interface BridgeRivetErrorPayload extends RivetErrorLike {}\n\n/**\n * Shape as it arrives from the native bridge, where an absent ray ID serializes\n * to null. Normalized to a BridgeRivetErrorPayload before validation.\n */\ninterface NativeBridgeErrorPayload\n\textends Omit<BridgeRivetErrorPayload, \"rayId\"> {\n\trayId?: string | null;\n}\n\nexport interface UserErrorOptions extends ErrorOptions {\n\t/**\n\t * Machine readable code for this error. Useful for catching different types of\n\t * errors in try-catch.\n\t */\n\tcode?: string;\n\t/**\n\t * Additional metadata related to the error. Useful for understanding context\n\t * about the error.\n\t */\n\tmetadata?: unknown;\n}\n\nfunction looksLikeRivetErrorOptions(\n\tvalue: unknown,\n): value is RivetErrorOptions {\n\treturn (\n\t\ttypeof value === \"object\" &&\n\t\tvalue !== null &&\n\t\t(\"public\" in value ||\n\t\t\t\"metadata\" in value ||\n\t\t\t\"rayId\" in value ||\n\t\t\t\"statusCode\" in value ||\n\t\t\t\"actor\" in value ||\n\t\t\t\"cause\" in value)\n\t);\n}\n\nfunction isTypedErrorTag(value: unknown): value is \"ActorError\" | \"RivetError\" {\n\treturn value === \"ActorError\" || value === \"RivetError\";\n}\n\nfunction errorMessage(error: unknown, fallback = String(error)): string {\n\tif (\n\t\terror &&\n\t\ttypeof error === \"object\" &&\n\t\t\"message\" in error &&\n\t\ttypeof error.message === \"string\"\n\t) {\n\t\treturn error.message;\n\t}\n\n\treturn fallback;\n}\n\nexport function isRivetErrorLike(\n\terror: unknown,\n): error is RivetError | DeconstructedError | RivetErrorLike {\n\treturn (\n\t\ttypeof error === \"object\" &&\n\t\terror !== null &&\n\t\t\"group\" in error &&\n\t\ttypeof error.group === \"string\" &&\n\t\t\"code\" in error &&\n\t\ttypeof error.code === \"string\" &&\n\t\t\"message\" in error &&\n\t\ttypeof error.message === \"string\" &&\n\t\t(!(\"rayId\" in error) ||\n\t\t\terror.rayId === undefined ||\n\t\t\ttypeof error.rayId === \"string\") &&\n\t\t(!(\"__type\" in error) || isTypedErrorTag(error.__type))\n\t);\n}\n\n// Matches the `actor`/`aborted` error that core raises when an in-flight queue\n// wait is interrupted because the actor is going to sleep. This is the expected\n// way a parked `run` handler unwinds during sleep, not a failure.\nexport function isActorAbortedError(error: unknown): boolean {\n\treturn (\n\t\tisRivetErrorLike(error) &&\n\t\terror.group === \"actor\" &&\n\t\terror.code === \"aborted\"\n\t);\n}\n\nfunction isActorSpecifier(value: unknown): value is ActorSpecifier {\n\treturn (\n\t\ttypeof value === \"object\" &&\n\t\tvalue !== null &&\n\t\t\"actorId\" in value &&\n\t\ttypeof value.actorId === \"string\" &&\n\t\t\"generation\" in value &&\n\t\ttypeof value.generation === \"number\" &&\n\t\t(!(\"key\" in value) ||\n\t\t\tvalue.key === undefined ||\n\t\t\ttypeof value.key === \"string\")\n\t);\n}\n\nexport class RivetError extends Error {\n\t__type = \"RivetError\" as const;\n\n\tpublic public: boolean;\n\tpublic metadata?: unknown;\n\tpublic readonly rayId?: string;\n\tpublic statusCode: number;\n\tpublic actor?: ActorSpecifier;\n\tpublic readonly group: string;\n\tpublic readonly code: string;\n\n\tpublic static isRivetError(\n\t\terror: unknown,\n\t): error is RivetError | DeconstructedError {\n\t\treturn isRivetErrorLike(error);\n\t}\n\n\tpublic static isActorError(\n\t\terror: unknown,\n\t): error is RivetError | DeconstructedError {\n\t\treturn isRivetErrorLike(error);\n\t}\n\n\tconstructor(\n\t\tgroup: string,\n\t\tcode: string,\n\t\tmessage: string,\n\t\toptions?: RivetErrorOptions | unknown,\n\t) {\n\t\tconst normalized = looksLikeRivetErrorOptions(options)\n\t\t\t? options\n\t\t\t: { metadata: options };\n\n\t\tsuper(message, { cause: normalized.cause });\n\t\tthis.name = \"RivetError\";\n\t\tthis.group = group;\n\t\tthis.code = code;\n\t\tthis.public = normalized.public ?? false;\n\t\tthis.metadata = normalized.metadata;\n\t\tthis.rayId = normalized.rayId ?? undefined;\n\t\tthis.statusCode = normalized.statusCode ?? (this.public ? 400 : 500);\n\t\tthis.actor = normalized.actor;\n\t}\n\n\ttoString() {\n\t\treturn this.message;\n\t}\n}\n\nexport { RivetError as ActorError };\n\nexport class UserError extends RivetError {\n\tconstructor(message: string, options?: UserErrorOptions) {\n\t\tsuper(\"user\", options?.code ?? USER_ERROR_CODE, message, {\n\t\t\tpublic: true,\n\t\t\tmetadata: options?.metadata,\n\t\t\tcause: options?.cause,\n\t\t});\n\t}\n}\n\nexport function toRivetError(\n\terror: unknown,\n\tfallback?: Partial<RivetErrorLike>,\n): RivetError {\n\tif (typeof error === \"string\") {\n\t\tconst bridged = decodeBridgeRivetError(error);\n\t\tif (bridged) {\n\t\t\treturn bridged;\n\t\t}\n\t}\n\n\tif (error instanceof Error) {\n\t\tconst bridged = decodeBridgeRivetError(error.message);\n\t\tif (bridged) {\n\t\t\treturn bridged;\n\t\t}\n\t}\n\n\tif (isRivetErrorLike(error)) {\n\t\treturn new RivetError(error.group, error.code, error.message, {\n\t\t\tpublic: error.public,\n\t\t\tstatusCode: error.statusCode,\n\t\t\tmetadata: error.metadata,\n\t\t\trayId: error.rayId,\n\t\t\tactor: error.actor,\n\t\t\tcause: error instanceof Error ? error.cause : undefined,\n\t\t});\n\t}\n\n\treturn new RivetError(\n\t\tfallback?.group ?? \"actor\",\n\t\tfallback?.code ?? INTERNAL_ERROR_CODE,\n\t\terrorMessage(error, fallback?.message ?? \"Unknown error\"),\n\t\t{\n\t\t\tpublic: fallback?.public,\n\t\t\tstatusCode: fallback?.statusCode,\n\t\t\tmetadata: fallback?.metadata,\n\t\t\trayId: fallback?.rayId,\n\t\t\tactor: fallback?.actor,\n\t\t\tcause: error instanceof Error ? error : undefined,\n\t\t},\n\t);\n}\n\nexport function encodeBridgeRivetError(error: RivetErrorLike): string {\n\treturn `${BRIDGE_RIVET_ERROR_PREFIX}${JSON.stringify({\n\t\tgroup: error.group,\n\t\tcode: error.code,\n\t\tmessage: error.message,\n\t\tmetadata: error.metadata,\n\t\trayId: error.rayId,\n\t\tpublic: error.public,\n\t\tstatusCode: error.statusCode,\n\t\tactor: error.actor,\n\t})}`;\n}\n\n/**\n * Encodes an error for the telemetry bridge. A structured error crosses with\n * its group and code. Anything else crosses as text so Core classifies it,\n * which is the same rule that keeps raw messages out of every span.\n */\nexport function encodeErrorForBridge(error: unknown): string {\n\tif (isCanonicalStructuredRivetError(error)) {\n\t\treturn encodeBridgeRivetError(error);\n\t}\n\treturn String(error);\n}\n\n/** A `RivetError` instance, or a plain object carrying its full tagged shape. */\nexport function isCanonicalStructuredRivetError(\n\terror: unknown,\n): error is RivetErrorLike {\n\treturn (\n\t\terror instanceof RivetError ||\n\t\t(typeof error === \"object\" &&\n\t\t\terror !== null &&\n\t\t\t\"__type\" in error &&\n\t\t\terror.__type === \"RivetError\" &&\n\t\t\t\"group\" in error &&\n\t\t\ttypeof error.group === \"string\" &&\n\t\t\t\"code\" in error &&\n\t\t\ttypeof error.code === \"string\" &&\n\t\t\t\"message\" in error &&\n\t\t\ttypeof error.message === \"string\")\n\t);\n}\n\nexport function decodeBridgeRivetErrorPayload(\n\tvalue: string,\n): BridgeRivetErrorPayload | undefined {\n\tif (!value.startsWith(BRIDGE_RIVET_ERROR_PREFIX)) {\n\t\treturn undefined;\n\t}\n\n\ttry {\n\t\tconst raw = JSON.parse(\n\t\t\tvalue.slice(BRIDGE_RIVET_ERROR_PREFIX.length),\n\t\t) as NativeBridgeErrorPayload;\n\t\t// Coerce the native bridge's null ray ID to undefined before validation.\n\t\tconst payload: BridgeRivetErrorPayload = {\n\t\t\t...raw,\n\t\t\trayId: raw.rayId ?? undefined,\n\t\t};\n\t\tif (!isRivetErrorLike(payload)) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (\n\t\t\tpayload.actor !== undefined &&\n\t\t\tpayload.actor !== null &&\n\t\t\t!isActorSpecifier(payload.actor)\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn payload;\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nexport function decodeBridgeRivetError(value: string): RivetError | undefined {\n\tconst payload = decodeBridgeRivetErrorPayload(value);\n\tif (!payload) {\n\t\treturn undefined;\n\t}\n\n\treturn new RivetError(payload.group, payload.code, payload.message, {\n\t\tmetadata: payload.metadata,\n\t\trayId: payload.rayId,\n\t\tpublic: payload.public,\n\t\tstatusCode: payload.statusCode,\n\t\tactor: payload.actor ?? undefined,\n\t});\n}\n\nexport function isRivetErrorCode(\n\terror: unknown,\n\tgroup: string,\n\tcode: string,\n): error is RivetError {\n\treturn (\n\t\tisRivetErrorLike(error) && error.group === group && error.code === code\n\t);\n}\n\nexport function internalError(\n\tmessage: string,\n\toptions?: Partial<RivetErrorOptions> & {\n\t\tgroup?: string;\n\t\tcode?: string;\n\t},\n): RivetError {\n\treturn new RivetError(\n\t\toptions?.group ?? \"actor\",\n\t\toptions?.code ?? INTERNAL_ERROR_CODE,\n\t\tmessage,\n\t\t{\n\t\t\tpublic: options?.public,\n\t\t\tstatusCode: options?.statusCode,\n\t\t\tmetadata: options?.metadata,\n\t\t\trayId: options?.rayId,\n\t\t\tactor: options?.actor,\n\t\t\tcause: options?.cause,\n\t\t},\n\t);\n}\n\nexport function invalidEncoding(format?: string): RivetError {\n\treturn new RivetError(\n\t\t\"encoding\",\n\t\t\"invalid\",\n\t\t`Invalid encoding \\`${format}\\`. (https://www.rivet.dev/docs/clients/javascript)`,\n\t\t{\n\t\t\tpublic: true,\n\t\t},\n\t);\n}\n\nexport function invalidRequest(error?: unknown): RivetError {\n\treturn new RivetError(\n\t\t\"request\",\n\t\t\"invalid\",\n\t\t`Invalid request: ${errorMessage(error, String(error))}`,\n\t\t{\n\t\t\tpublic: true,\n\t\t\tcause: error instanceof Error ? error : undefined,\n\t\t},\n\t);\n}\n\nexport function actorNotFound(identifier?: string): RivetError {\n\treturn new RivetError(\n\t\t\"actor\",\n\t\t\"not_found\",\n\t\tidentifier\n\t\t\t? `Actor not found: ${identifier} (https://www.rivet.dev/docs/clients/javascript)`\n\t\t\t: \"Actor not found (https://www.rivet.dev/docs/clients/javascript)\",\n\t\t{ public: true },\n\t);\n}\n\nexport function actorStopping(identifier?: string): RivetError {\n\treturn new RivetError(\n\t\t\"actor\",\n\t\t\"stopping\",\n\t\tidentifier ? `Actor stopping: ${identifier}` : \"Actor stopping\",\n\t\t{ public: true },\n\t);\n}\n\nexport interface ActorRestartingOptions {\n\tphase?: \"stopping\" | \"sleeping\" | \"waking\" | \"runner_shutdown\";\n\tretryAfterMs?: number;\n}\n\nexport function actorRestarting(opts?: ActorRestartingOptions): RivetError {\n\treturn new RivetError(\n\t\t\"actor\",\n\t\t\"restarting\",\n\t\t\"Actor is restarting. Retry the request.\",\n\t\t{\n\t\t\tpublic: true,\n\t\t\tstatusCode: 503,\n\t\t\tmetadata: {\n\t\t\t\tretryable: true,\n\t\t\t\t...(opts?.phase ? { phase: opts.phase } : {}),\n\t\t\t\t...(opts?.retryAfterMs !== undefined\n\t\t\t\t\t? { retryAfterMs: opts.retryAfterMs }\n\t\t\t\t\t: {}),\n\t\t\t},\n\t\t},\n\t);\n}\n\nexport function forbiddenError(): RivetError {\n\treturn new RivetError(\"auth\", \"forbidden\", \"Forbidden\", {\n\t\tpublic: true,\n\t\tstatusCode: 403,\n\t});\n}\n\nexport function unsupportedFeature(feature: string): RivetError {\n\treturn new RivetError(\n\t\t\"feature\",\n\t\t\"unsupported\",\n\t\t`Unsupported feature: ${feature}`,\n\t);\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/actor/errors.ts"],"sourcesContent":["import type { DeconstructedError } from \"@/common/utils\";\n\nexport const INTERNAL_ERROR_CODE = \"internal_error\";\nexport const INTERNAL_ERROR_DESCRIPTION = \"An internal error occurred\";\nexport type InternalErrorMetadata = Record<string, never>;\n\nexport const USER_ERROR_CODE = \"user_error\";\nexport const BRIDGE_RIVET_ERROR_PREFIX = \"__RIVET_ERROR_JSON__:\";\n\nexport interface RivetErrorOptions extends ErrorOptions {\n\t/** Error data can safely be serialized in a response to the client. */\n\tpublic?: boolean;\n\t/** Metadata associated with this error. */\n\tmetadata?: unknown;\n\t/** Request identifier used to correlate this error with engine logs. */\n\trayId?: string;\n\t/** Explicit HTTP status override for router responses. */\n\tstatusCode?: number;\n\t/** Actor context associated with this error. */\n\tactor?: ActorSpecifier;\n}\n\n/** Identifies the actor that was handling work when an error was produced. */\nexport interface ActorSpecifier {\n\tactorId: string;\n\tgeneration: number;\n\tkey?: string;\n}\n\nexport interface RivetErrorLike {\n\t__type?: \"ActorError\" | \"RivetError\";\n\tgroup: string;\n\tcode: string;\n\tmessage: string;\n\tmetadata?: unknown;\n\trayId?: string;\n\tpublic?: boolean;\n\tstatusCode?: number;\n\tactor?: ActorSpecifier;\n}\n\nexport interface BridgeRivetErrorPayload extends RivetErrorLike {}\n\n/**\n * Shape as it arrives from the native bridge, where an absent ray ID serializes\n * to null. Normalized to a BridgeRivetErrorPayload before validation.\n */\ninterface NativeBridgeErrorPayload\n\textends Omit<BridgeRivetErrorPayload, \"rayId\"> {\n\trayId?: string | null;\n}\n\nexport interface UserErrorOptions extends ErrorOptions {\n\t/**\n\t * Machine readable code for this error. Useful for catching different types of\n\t * errors in try-catch.\n\t */\n\tcode?: string;\n\t/**\n\t * Additional metadata related to the error. Useful for understanding context\n\t * about the error.\n\t */\n\tmetadata?: unknown;\n}\n\nfunction looksLikeRivetErrorOptions(\n\tvalue: unknown,\n): value is RivetErrorOptions {\n\treturn (\n\t\ttypeof value === \"object\" &&\n\t\tvalue !== null &&\n\t\t(\"public\" in value ||\n\t\t\t\"metadata\" in value ||\n\t\t\t\"rayId\" in value ||\n\t\t\t\"statusCode\" in value ||\n\t\t\t\"actor\" in value ||\n\t\t\t\"cause\" in value)\n\t);\n}\n\nfunction isTypedErrorTag(value: unknown): value is \"ActorError\" | \"RivetError\" {\n\treturn value === \"ActorError\" || value === \"RivetError\";\n}\n\nfunction errorMessage(error: unknown, fallback = String(error)): string {\n\tif (\n\t\terror &&\n\t\ttypeof error === \"object\" &&\n\t\t\"message\" in error &&\n\t\ttypeof error.message === \"string\"\n\t) {\n\t\treturn error.message;\n\t}\n\n\treturn fallback;\n}\n\nexport function isRivetErrorLike(\n\terror: unknown,\n): error is RivetError | DeconstructedError | RivetErrorLike {\n\treturn (\n\t\ttypeof error === \"object\" &&\n\t\terror !== null &&\n\t\t\"group\" in error &&\n\t\ttypeof error.group === \"string\" &&\n\t\t\"code\" in error &&\n\t\ttypeof error.code === \"string\" &&\n\t\t\"message\" in error &&\n\t\ttypeof error.message === \"string\" &&\n\t\t(!(\"rayId\" in error) ||\n\t\t\terror.rayId === undefined ||\n\t\t\ttypeof error.rayId === \"string\") &&\n\t\t(!(\"__type\" in error) || isTypedErrorTag(error.__type))\n\t);\n}\n\n// Matches the `actor`/`aborted` error that core raises when an in-flight queue\n// wait is interrupted because the actor is going to sleep. This is the expected\n// way a parked `run` handler unwinds during sleep, not a failure.\nexport function isActorAbortedError(error: unknown): boolean {\n\treturn (\n\t\tisRivetErrorLike(error) &&\n\t\terror.group === \"actor\" &&\n\t\terror.code === \"aborted\"\n\t);\n}\n\nfunction isActorSpecifier(value: unknown): value is ActorSpecifier {\n\treturn (\n\t\ttypeof value === \"object\" &&\n\t\tvalue !== null &&\n\t\t\"actorId\" in value &&\n\t\ttypeof value.actorId === \"string\" &&\n\t\t\"generation\" in value &&\n\t\ttypeof value.generation === \"number\" &&\n\t\t(!(\"key\" in value) ||\n\t\t\tvalue.key === undefined ||\n\t\t\ttypeof value.key === \"string\")\n\t);\n}\n\nexport class RivetError extends Error {\n\t__type = \"RivetError\" as const;\n\n\tpublic public: boolean;\n\tpublic metadata?: unknown;\n\tpublic readonly rayId?: string;\n\tpublic statusCode: number;\n\tpublic actor?: ActorSpecifier;\n\tpublic readonly group: string;\n\tpublic readonly code: string;\n\n\tpublic static isRivetError(\n\t\terror: unknown,\n\t): error is RivetError | DeconstructedError {\n\t\treturn isRivetErrorLike(error);\n\t}\n\n\tpublic static isActorError(\n\t\terror: unknown,\n\t): error is RivetError | DeconstructedError {\n\t\treturn isRivetErrorLike(error);\n\t}\n\n\tconstructor(\n\t\tgroup: string,\n\t\tcode: string,\n\t\tmessage: string,\n\t\toptions?: RivetErrorOptions | unknown,\n\t) {\n\t\tconst normalized = looksLikeRivetErrorOptions(options)\n\t\t\t? options\n\t\t\t: { metadata: options };\n\n\t\tsuper(message, { cause: normalized.cause });\n\t\tthis.name = \"RivetError\";\n\t\tthis.group = group;\n\t\tthis.code = code;\n\t\tthis.public = normalized.public ?? false;\n\t\tthis.metadata = normalized.metadata;\n\t\tthis.rayId = normalized.rayId ?? undefined;\n\t\tthis.statusCode = normalized.statusCode ?? (this.public ? 400 : 500);\n\t\tthis.actor = normalized.actor;\n\t}\n\n\ttoString() {\n\t\treturn this.message;\n\t}\n}\n\nexport { RivetError as ActorError };\n\nexport class UserError extends RivetError {\n\tconstructor(message: string, options?: UserErrorOptions) {\n\t\tsuper(\"user\", options?.code ?? USER_ERROR_CODE, message, {\n\t\t\tpublic: true,\n\t\t\tmetadata: options?.metadata,\n\t\t\tcause: options?.cause,\n\t\t});\n\t}\n}\n\nexport function toRivetError(\n\terror: unknown,\n\tfallback?: Partial<RivetErrorLike>,\n): RivetError {\n\tif (typeof error === \"string\") {\n\t\tconst bridged = decodeBridgeRivetError(error);\n\t\tif (bridged) {\n\t\t\treturn bridged;\n\t\t}\n\t}\n\n\tif (error instanceof Error) {\n\t\tconst bridged = decodeBridgeRivetError(error.message);\n\t\tif (bridged) {\n\t\t\treturn bridged;\n\t\t}\n\t}\n\n\tif (isRivetErrorLike(error)) {\n\t\treturn new RivetError(error.group, error.code, error.message, {\n\t\t\tpublic: error.public,\n\t\t\tstatusCode: error.statusCode,\n\t\t\tmetadata: error.metadata,\n\t\t\trayId: error.rayId,\n\t\t\tactor: error.actor,\n\t\t\tcause: error instanceof Error ? error.cause : undefined,\n\t\t});\n\t}\n\n\treturn new RivetError(\n\t\tfallback?.group ?? \"actor\",\n\t\tfallback?.code ?? INTERNAL_ERROR_CODE,\n\t\terrorMessage(error, fallback?.message ?? \"Unknown error\"),\n\t\t{\n\t\t\tpublic: fallback?.public,\n\t\t\tstatusCode: fallback?.statusCode,\n\t\t\tmetadata: fallback?.metadata,\n\t\t\trayId: fallback?.rayId,\n\t\t\tactor: fallback?.actor,\n\t\t\tcause: error instanceof Error ? error : undefined,\n\t\t},\n\t);\n}\n\nexport function encodeBridgeRivetError(error: RivetErrorLike): string {\n\treturn `${BRIDGE_RIVET_ERROR_PREFIX}${JSON.stringify({\n\t\tgroup: error.group,\n\t\tcode: error.code,\n\t\tmessage: error.message,\n\t\tmetadata: error.metadata,\n\t\trayId: error.rayId,\n\t\tpublic: error.public,\n\t\tstatusCode: error.statusCode,\n\t\tactor: error.actor,\n\t})}`;\n}\n\n/**\n * Encodes an error for the telemetry bridge. A structured error crosses with\n * its group and code. Anything else crosses as text so Core classifies it,\n * which is the same rule that keeps raw messages out of every span.\n */\nexport function encodeErrorForBridge(error: unknown): string {\n\tif (isCanonicalStructuredRivetError(error)) {\n\t\treturn encodeBridgeRivetError(error);\n\t}\n\treturn String(error);\n}\n\n/** A `RivetError` instance, or a plain object carrying its full tagged shape. */\nexport function isCanonicalStructuredRivetError(\n\terror: unknown,\n): error is RivetErrorLike {\n\treturn (\n\t\terror instanceof RivetError ||\n\t\t(typeof error === \"object\" &&\n\t\t\terror !== null &&\n\t\t\t\"__type\" in error &&\n\t\t\terror.__type === \"RivetError\" &&\n\t\t\t\"group\" in error &&\n\t\t\ttypeof error.group === \"string\" &&\n\t\t\t\"code\" in error &&\n\t\t\ttypeof error.code === \"string\" &&\n\t\t\t\"message\" in error &&\n\t\t\ttypeof error.message === \"string\")\n\t);\n}\n\nexport function decodeBridgeRivetErrorPayload(\n\tvalue: string,\n): BridgeRivetErrorPayload | undefined {\n\tif (!value.startsWith(BRIDGE_RIVET_ERROR_PREFIX)) {\n\t\treturn undefined;\n\t}\n\n\ttry {\n\t\tconst raw = JSON.parse(\n\t\t\tvalue.slice(BRIDGE_RIVET_ERROR_PREFIX.length),\n\t\t) as NativeBridgeErrorPayload;\n\t\t// Coerce the native bridge's null ray ID to undefined before validation.\n\t\tconst payload: BridgeRivetErrorPayload = {\n\t\t\t...raw,\n\t\t\trayId: raw.rayId ?? undefined,\n\t\t};\n\t\tif (!isRivetErrorLike(payload)) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (\n\t\t\tpayload.actor !== undefined &&\n\t\t\tpayload.actor !== null &&\n\t\t\t!isActorSpecifier(payload.actor)\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn payload;\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nexport function decodeBridgeRivetError(value: string): RivetError | undefined {\n\tconst payload = decodeBridgeRivetErrorPayload(value);\n\tif (!payload) {\n\t\treturn undefined;\n\t}\n\n\treturn new RivetError(payload.group, payload.code, payload.message, {\n\t\tmetadata: payload.metadata,\n\t\trayId: payload.rayId,\n\t\tpublic: payload.public,\n\t\tstatusCode: payload.statusCode,\n\t\tactor: payload.actor ?? undefined,\n\t});\n}\n\nexport function isRivetErrorCode(\n\terror: unknown,\n\tgroup: string,\n\tcode: string,\n): error is RivetError {\n\treturn (\n\t\tisRivetErrorLike(error) && error.group === group && error.code === code\n\t);\n}\n\nexport function internalError(\n\tmessage: string,\n\toptions?: Partial<RivetErrorOptions> & {\n\t\tgroup?: string;\n\t\tcode?: string;\n\t},\n): RivetError {\n\treturn new RivetError(\n\t\toptions?.group ?? \"actor\",\n\t\toptions?.code ?? INTERNAL_ERROR_CODE,\n\t\tmessage,\n\t\t{\n\t\t\tpublic: options?.public,\n\t\t\tstatusCode: options?.statusCode,\n\t\t\tmetadata: options?.metadata,\n\t\t\trayId: options?.rayId,\n\t\t\tactor: options?.actor,\n\t\t\tcause: options?.cause,\n\t\t},\n\t);\n}\n\nexport function invalidEncoding(format?: string): RivetError {\n\treturn new RivetError(\n\t\t\"encoding\",\n\t\t\"invalid\",\n\t\t`Invalid encoding \\`${format}\\`. (https://www.rivet.dev/docs/clients/javascript)`,\n\t\t{\n\t\t\tpublic: true,\n\t\t},\n\t);\n}\n\nexport function invalidRequest(error?: unknown): RivetError {\n\treturn new RivetError(\n\t\t\"request\",\n\t\t\"invalid\",\n\t\t`Invalid request: ${errorMessage(error, String(error))}`,\n\t\t{\n\t\t\tpublic: true,\n\t\t\tcause: error instanceof Error ? error : undefined,\n\t\t},\n\t);\n}\n\nexport function actorNotFound(identifier?: string): RivetError {\n\treturn new RivetError(\n\t\t\"actor\",\n\t\t\"not_found\",\n\t\tidentifier\n\t\t\t? `Actor not found: ${identifier} (https://www.rivet.dev/docs/clients/javascript)`\n\t\t\t: \"Actor not found (https://www.rivet.dev/docs/clients/javascript)\",\n\t\t{ public: true },\n\t);\n}\n\nexport function actorStopping(identifier?: string): RivetError {\n\treturn new RivetError(\n\t\t\"actor\",\n\t\t\"stopping\",\n\t\tidentifier ? `Actor stopping: ${identifier}` : \"Actor stopping\",\n\t\t{ public: true },\n\t);\n}\n\nexport interface ActorRestartingOptions {\n\tphase?: \"stopping\" | \"sleeping\" | \"waking\" | \"runner_shutdown\";\n\tretryAfterMs?: number;\n}\n\nexport function actorRestarting(opts?: ActorRestartingOptions): RivetError {\n\treturn new RivetError(\n\t\t\"actor\",\n\t\t\"restarting\",\n\t\t\"Actor is restarting. Retry the request.\",\n\t\t{\n\t\t\tpublic: true,\n\t\t\tstatusCode: 503,\n\t\t\tmetadata: {\n\t\t\t\tretryable: true,\n\t\t\t\t...(opts?.phase ? { phase: opts.phase } : {}),\n\t\t\t\t...(opts?.retryAfterMs !== undefined\n\t\t\t\t\t? { retryAfterMs: opts.retryAfterMs }\n\t\t\t\t\t: {}),\n\t\t\t},\n\t\t},\n\t);\n}\n\nexport function forbiddenError(): RivetError {\n\treturn new RivetError(\"auth\", \"forbidden\", \"Forbidden\", {\n\t\tpublic: true,\n\t\tstatusCode: 403,\n\t});\n}\n\nexport function unsupportedFeature(feature: string): RivetError {\n\treturn new RivetError(\n\t\t\"feature\",\n\t\t\"unsupported\",\n\t\t`Unsupported feature: ${feature}`,\n\t);\n}\n"],"mappings":"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","names":[]}