rivetkit 2.3.3-rc.1 → 2.3.3-rc.2

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 (108) hide show
  1. package/dist/browser/client.d.ts +1 -0
  2. package/dist/browser/client.js +9 -6
  3. package/dist/browser/client.js.map +1 -1
  4. package/dist/browser/inspector/client.d.ts +22 -2
  5. package/dist/browser/inspector/client.js +996 -222
  6. package/dist/browser/inspector/client.js.map +1 -1
  7. package/dist/tsup/agent-os/index.cjs +9 -6
  8. package/dist/tsup/agent-os/index.cjs.map +1 -1
  9. package/dist/tsup/agent-os/index.d.cts +1 -0
  10. package/dist/tsup/agent-os/index.d.ts +1 -0
  11. package/dist/tsup/agent-os/index.js +9 -6
  12. package/dist/tsup/agent-os/index.js.map +1 -1
  13. package/dist/tsup/{chunk-KVSK67EL.cjs → chunk-6JRGYOBR.cjs} +18 -10
  14. package/dist/tsup/chunk-6JRGYOBR.cjs.map +1 -0
  15. package/dist/tsup/{chunk-TXO4XNNB.js → chunk-CLQHFXG3.js} +2 -2
  16. package/dist/tsup/{chunk-VEJGWALU.cjs → chunk-GRXM3FQX.cjs} +3 -3
  17. package/dist/tsup/{chunk-VEJGWALU.cjs.map → chunk-GRXM3FQX.cjs.map} +1 -1
  18. package/dist/tsup/{chunk-T5YE5THK.cjs → chunk-LIZO2BE3.cjs} +24 -4
  19. package/dist/tsup/chunk-LIZO2BE3.cjs.map +1 -0
  20. package/dist/tsup/{chunk-EIB2XNTL.js → chunk-OUIOGTEL.js} +12 -4
  21. package/dist/tsup/chunk-OUIOGTEL.js.map +1 -0
  22. package/dist/tsup/{chunk-CN4IAGVP.cjs → chunk-Q3DY23PN.cjs} +141 -141
  23. package/dist/tsup/{chunk-CN4IAGVP.cjs.map → chunk-Q3DY23PN.cjs.map} +1 -1
  24. package/dist/tsup/{chunk-J7NGTEDW.js → chunk-Q6EIXJ2L.js} +3 -3
  25. package/dist/tsup/{chunk-GMD47RV5.cjs → chunk-QIRZKXPN.cjs} +5 -5
  26. package/dist/tsup/{chunk-GMD47RV5.cjs.map → chunk-QIRZKXPN.cjs.map} +1 -1
  27. package/dist/tsup/{chunk-3UWWME7J.js → chunk-QRPFFGZB.js} +22 -2
  28. package/dist/tsup/chunk-QRPFFGZB.js.map +1 -0
  29. package/dist/tsup/{chunk-CFVNICL7.cjs → chunk-QXKIL5NU.cjs} +7 -7
  30. package/dist/tsup/{chunk-CFVNICL7.cjs.map → chunk-QXKIL5NU.cjs.map} +1 -1
  31. package/dist/tsup/{chunk-MLFI5BLT.cjs → chunk-SNTYTMHE.cjs} +12 -8
  32. package/dist/tsup/chunk-SNTYTMHE.cjs.map +1 -0
  33. package/dist/tsup/{chunk-2ZBWR7HC.js → chunk-URLGKL2B.js} +2 -2
  34. package/dist/tsup/{chunk-D5KMS3WU.js → chunk-VPKNVMUA.js} +11 -7
  35. package/dist/tsup/chunk-VPKNVMUA.js.map +1 -0
  36. package/dist/tsup/{chunk-VNWYKWBM.js → chunk-ZEBW32PT.js} +7 -7
  37. package/dist/tsup/client/mod.cjs +7 -7
  38. package/dist/tsup/client/mod.cjs.map +1 -1
  39. package/dist/tsup/client/mod.d.cts +2 -2
  40. package/dist/tsup/client/mod.d.ts +2 -2
  41. package/dist/tsup/client/mod.js +6 -6
  42. package/dist/tsup/common/log.cjs +4 -2
  43. package/dist/tsup/common/log.cjs.map +1 -1
  44. package/dist/tsup/common/log.d.cts +5 -1
  45. package/dist/tsup/common/log.d.ts +5 -1
  46. package/dist/tsup/common/log.js +5 -3
  47. package/dist/tsup/common/websocket.cjs +3 -3
  48. package/dist/tsup/common/websocket.js +2 -2
  49. package/dist/tsup/{config-CzvopP5m.d.cts → config-BfBhjEbk.d.cts} +1 -0
  50. package/dist/tsup/{config-DZuT7tcp.d.ts → config-ZkIsRFsN.d.ts} +1 -0
  51. package/dist/tsup/{context-CyAdY-aA.d.ts → context-B7-84u9K.d.ts} +2 -1
  52. package/dist/tsup/{context-sNB28g0N.d.cts → context-sZ9GlaBK.d.cts} +2 -1
  53. package/dist/tsup/dynamic/mod.d.cts +1 -1
  54. package/dist/tsup/dynamic/mod.d.ts +1 -1
  55. package/dist/tsup/inspector/mod.cjs +46 -11
  56. package/dist/tsup/inspector/mod.cjs.map +1 -1
  57. package/dist/tsup/inspector/mod.d.cts +37 -15
  58. package/dist/tsup/inspector/mod.d.ts +37 -15
  59. package/dist/tsup/inspector/mod.js +45 -10
  60. package/dist/tsup/inspector/mod.js.map +1 -1
  61. package/dist/tsup/inspector-tab/mod.cjs +1 -12
  62. package/dist/tsup/inspector-tab/mod.cjs.map +1 -1
  63. package/dist/tsup/inspector-tab/mod.d.cts +3 -13
  64. package/dist/tsup/inspector-tab/mod.d.ts +3 -13
  65. package/dist/tsup/inspector-tab/mod.js +0 -11
  66. package/dist/tsup/inspector-tab/mod.js.map +1 -1
  67. package/dist/tsup/mod.cjs +121 -62
  68. package/dist/tsup/mod.cjs.map +1 -1
  69. package/dist/tsup/mod.d.cts +3 -3
  70. package/dist/tsup/mod.d.ts +3 -3
  71. package/dist/tsup/mod.js +66 -7
  72. package/dist/tsup/mod.js.map +1 -1
  73. package/dist/tsup/test/mod.cjs +10 -10
  74. package/dist/tsup/test/mod.d.cts +1 -1
  75. package/dist/tsup/test/mod.d.ts +1 -1
  76. package/dist/tsup/test/mod.js +6 -6
  77. package/dist/tsup/utils.cjs +2 -2
  78. package/dist/tsup/utils.js +1 -1
  79. package/dist/tsup/workflow/mod.cjs +10 -7
  80. package/dist/tsup/workflow/mod.cjs.map +1 -1
  81. package/dist/tsup/workflow/mod.d.cts +3 -3
  82. package/dist/tsup/workflow/mod.d.ts +3 -3
  83. package/dist/tsup/workflow/mod.js +7 -4
  84. package/dist/tsup/workflow/mod.js.map +1 -1
  85. package/package.json +8 -8
  86. package/src/common/bare/generated/inspector/v5.ts +1016 -0
  87. package/src/common/bare/transport/v1.ts +36 -0
  88. package/src/common/log.ts +14 -8
  89. package/src/inspector/client.browser.ts +73 -16
  90. package/src/inspector/mod.ts +1 -1
  91. package/src/inspector-tab/mod.ts +0 -15
  92. package/src/registry/index.ts +4 -0
  93. package/src/registry/napi-runtime.ts +11 -0
  94. package/src/registry/native.ts +70 -2
  95. package/src/registry/runtime.ts +1 -0
  96. package/src/registry/wasm-runtime.ts +5 -0
  97. package/src/workflow/context.ts +4 -0
  98. package/src/workflow/inspector.ts +8 -0
  99. package/dist/tsup/chunk-3UWWME7J.js.map +0 -1
  100. package/dist/tsup/chunk-D5KMS3WU.js.map +0 -1
  101. package/dist/tsup/chunk-EIB2XNTL.js.map +0 -1
  102. package/dist/tsup/chunk-KVSK67EL.cjs.map +0 -1
  103. package/dist/tsup/chunk-MLFI5BLT.cjs.map +0 -1
  104. package/dist/tsup/chunk-T5YE5THK.cjs.map +0 -1
  105. /package/dist/tsup/{chunk-TXO4XNNB.js.map → chunk-CLQHFXG3.js.map} +0 -0
  106. /package/dist/tsup/{chunk-J7NGTEDW.js.map → chunk-Q6EIXJ2L.js.map} +0 -0
  107. /package/dist/tsup/{chunk-2ZBWR7HC.js.map → chunk-URLGKL2B.js.map} +0 -0
  108. /package/dist/tsup/{chunk-VNWYKWBM.js.map → chunk-ZEBW32PT.js.map} +0 -0
@@ -521,6 +521,28 @@ export function writeWorkflowRemovedEntry(
521
521
  write1(bc, x.originalName);
522
522
  }
523
523
 
524
+ export type WorkflowVersionCheckEntry = {
525
+ readonly resolved: u32;
526
+ readonly latest: u32;
527
+ };
528
+
529
+ export function readWorkflowVersionCheckEntry(
530
+ bc: bare.ByteCursor,
531
+ ): WorkflowVersionCheckEntry {
532
+ return {
533
+ resolved: bare.readU32(bc),
534
+ latest: bare.readU32(bc),
535
+ };
536
+ }
537
+
538
+ export function writeWorkflowVersionCheckEntry(
539
+ bc: bare.ByteCursor,
540
+ x: WorkflowVersionCheckEntry,
541
+ ): void {
542
+ bare.writeU32(bc, x.resolved);
543
+ bare.writeU32(bc, x.latest);
544
+ }
545
+
524
546
  export type WorkflowEntryKind =
525
547
  | { readonly tag: "WorkflowStepEntry"; readonly val: WorkflowStepEntry }
526
548
  | { readonly tag: "WorkflowLoopEntry"; readonly val: WorkflowLoopEntry }
@@ -538,6 +560,10 @@ export type WorkflowEntryKind =
538
560
  | {
539
561
  readonly tag: "WorkflowRemovedEntry";
540
562
  readonly val: WorkflowRemovedEntry;
563
+ }
564
+ | {
565
+ readonly tag: "WorkflowVersionCheckEntry";
566
+ readonly val: WorkflowVersionCheckEntry;
541
567
  };
542
568
 
543
569
  export function readWorkflowEntryKind(bc: bare.ByteCursor): WorkflowEntryKind {
@@ -572,6 +598,11 @@ export function readWorkflowEntryKind(bc: bare.ByteCursor): WorkflowEntryKind {
572
598
  tag: "WorkflowRemovedEntry",
573
599
  val: readWorkflowRemovedEntry(bc),
574
600
  };
601
+ case 8:
602
+ return {
603
+ tag: "WorkflowVersionCheckEntry",
604
+ val: readWorkflowVersionCheckEntry(bc),
605
+ };
575
606
  default: {
576
607
  bc.offset = offset;
577
608
  throw new bare.BareError(offset, "invalid tag");
@@ -624,6 +655,11 @@ export function writeWorkflowEntryKind(
624
655
  writeWorkflowRemovedEntry(bc, x.val);
625
656
  break;
626
657
  }
658
+ case "WorkflowVersionCheckEntry": {
659
+ bare.writeU8(bc, 8);
660
+ writeWorkflowVersionCheckEntry(bc, x.val);
661
+ break;
662
+ }
627
663
  }
628
664
  }
629
665
 
package/src/common/log.ts CHANGED
@@ -62,15 +62,10 @@ export function configureBaseLogger(logger: Logger): void {
62
62
  }
63
63
 
64
64
  /**
65
- * Configure the default logger with optional log level.
65
+ * Create the default logger with optional log level.
66
66
  */
67
- export function configureDefaultLogger(logLevel?: LogLevel) {
68
- // Store the configured log level
69
- if (logLevel) {
70
- configuredLogLevel = logLevel;
71
- }
72
-
73
- baseLogger = pino(
67
+ export function makeDefaultLogger(logLevel?: LogLevel): Logger {
68
+ return pino(
74
69
  {
75
70
  level: getPinoLevel(logLevel),
76
71
  messageKey: "msg",
@@ -87,7 +82,18 @@ export function configureDefaultLogger(logLevel?: LogLevel) {
87
82
  },
88
83
  createLogfmtDestination(),
89
84
  );
85
+ }
86
+
87
+ /**
88
+ * Configure the default logger with optional log level.
89
+ */
90
+ export function configureDefaultLogger(logLevel?: LogLevel) {
91
+ // Store the configured log level
92
+ if (logLevel) {
93
+ configuredLogLevel = logLevel;
94
+ }
90
95
 
96
+ baseLogger = makeDefaultLogger(logLevel);
91
97
  loggerCache.clear();
92
98
  }
93
99
 
@@ -3,16 +3,17 @@ import * as v1 from "@/common/bare/generated/inspector/v1";
3
3
  import * as v2 from "@/common/bare/generated/inspector/v2";
4
4
  import * as v3 from "@/common/bare/generated/inspector/v3";
5
5
  import * as v4 from "@/common/bare/generated/inspector/v4";
6
+ import * as v5 from "@/common/bare/generated/inspector/v5";
6
7
  import {
7
8
  decodeWorkflowHistoryTransport,
8
9
  encodeWorkflowHistoryTransport,
9
10
  } from "@/common/inspector-transport";
10
11
 
11
- export * from "@/common/bare/generated/inspector/v4";
12
+ export * from "@/common/bare/generated/inspector/v5";
12
13
  export { decodeWorkflowHistoryTransport, encodeWorkflowHistoryTransport };
13
14
  export type { WorkflowHistory as TransportWorkflowHistory } from "@/common/bare/transport/v1";
14
15
 
15
- export const CURRENT_VERSION = 4;
16
+ export const CURRENT_VERSION = 5;
16
17
 
17
18
  const EVENTS_DROPPED_ERROR = "inspector.events_dropped";
18
19
  const WORKFLOW_HISTORY_DROPPED_ERROR = "inspector.workflow_history_dropped";
@@ -156,6 +157,42 @@ const v4ToClientToV3 = (v4Data: v4.ToClient): v3.ToClient => {
156
157
  return v4Data as unknown as v3.ToClient;
157
158
  };
158
159
 
160
+ const v4ToClientToV5 = (v4Data: v4.ToClient): v5.ToClient => {
161
+ if (v4Data.body.tag === "Init") {
162
+ // A v4 runtime predates tab config in Init; default to an empty list.
163
+ // The client reads that as "no custom tabs" (built-in tabs only).
164
+ const init = v4Data.body.val;
165
+ return {
166
+ body: {
167
+ tag: "Init",
168
+ val: { ...init, tabConfig: [] },
169
+ },
170
+ };
171
+ }
172
+
173
+ return v4Data as unknown as v5.ToClient;
174
+ };
175
+
176
+ const v5ToClientToV4 = (v5Data: v5.ToClient): v4.ToClient => {
177
+ if (v5Data.body.tag === "Init") {
178
+ const { tabConfig: _tabConfig, ...rest } = v5Data.body.val;
179
+ return {
180
+ body: {
181
+ tag: "Init",
182
+ val: rest,
183
+ },
184
+ };
185
+ }
186
+
187
+ return v5Data as unknown as v4.ToClient;
188
+ };
189
+
190
+ const v4ToServerToV5 = (v4Data: v4.ToServer): v5.ToServer =>
191
+ v4Data as unknown as v5.ToServer;
192
+
193
+ const v5ToServerToV4 = (v5Data: v5.ToServer): v4.ToServer =>
194
+ v5Data as unknown as v4.ToServer;
195
+
159
196
  const v1ToServerToV2 = (v1Data: v1.ToServer): v2.ToServer => {
160
197
  if (
161
198
  v1Data.body.tag === "EventsRequest" ||
@@ -206,7 +243,7 @@ const v4ToServerToV3 = (v4Data: v4.ToServer): v3.ToServer => {
206
243
  return v4Data as unknown as v3.ToServer;
207
244
  };
208
245
 
209
- export const TO_SERVER_VERSIONED = createVersionedDataHandler<v4.ToServer>({
246
+ export const TO_SERVER_VERSIONED = createVersionedDataHandler<v5.ToServer>({
210
247
  serializeVersion: (data, version) => {
211
248
  switch (version) {
212
249
  case 1:
@@ -216,7 +253,9 @@ export const TO_SERVER_VERSIONED = createVersionedDataHandler<v4.ToServer>({
216
253
  case 3:
217
254
  return v3.encodeToServer(data as unknown as v3.ToServer);
218
255
  case 4:
219
- return v4.encodeToServer(data);
256
+ return v4.encodeToServer(data as unknown as v4.ToServer);
257
+ case 5:
258
+ return v5.encodeToServer(data);
220
259
  default:
221
260
  throw new Error(`Unknown version ${version}`);
222
261
  }
@@ -224,13 +263,15 @@ export const TO_SERVER_VERSIONED = createVersionedDataHandler<v4.ToServer>({
224
263
  deserializeVersion: (bytes, version) => {
225
264
  switch (version) {
226
265
  case 1:
227
- return v1.decodeToServer(bytes) as unknown as v4.ToServer;
266
+ return v1.decodeToServer(bytes) as unknown as v5.ToServer;
228
267
  case 2:
229
- return v2.decodeToServer(bytes) as unknown as v4.ToServer;
268
+ return v2.decodeToServer(bytes) as unknown as v5.ToServer;
230
269
  case 3:
231
- return v3.decodeToServer(bytes) as unknown as v4.ToServer;
270
+ return v3.decodeToServer(bytes) as unknown as v5.ToServer;
232
271
  case 4:
233
- return v4.decodeToServer(bytes);
272
+ return v4.decodeToServer(bytes) as unknown as v5.ToServer;
273
+ case 5:
274
+ return v5.decodeToServer(bytes);
234
275
  default:
235
276
  throw new Error(`Unknown version ${version}`);
236
277
  }
@@ -239,11 +280,17 @@ export const TO_SERVER_VERSIONED = createVersionedDataHandler<v4.ToServer>({
239
280
  v1ToServerToV2,
240
281
  v2ToServerToV3,
241
282
  v3ToServerToV4,
283
+ v4ToServerToV5,
284
+ ],
285
+ serializeConverters: () => [
286
+ v5ToServerToV4,
287
+ v4ToServerToV3,
288
+ v3ToServerToV2,
289
+ v2ToServerToV1,
242
290
  ],
243
- serializeConverters: () => [v4ToServerToV3, v3ToServerToV2, v2ToServerToV1],
244
291
  });
245
292
 
246
- export const TO_CLIENT_VERSIONED = createVersionedDataHandler<v4.ToClient>({
293
+ export const TO_CLIENT_VERSIONED = createVersionedDataHandler<v5.ToClient>({
247
294
  serializeVersion: (data, version) => {
248
295
  switch (version) {
249
296
  case 1:
@@ -253,7 +300,9 @@ export const TO_CLIENT_VERSIONED = createVersionedDataHandler<v4.ToClient>({
253
300
  case 3:
254
301
  return v3.encodeToClient(data as unknown as v3.ToClient);
255
302
  case 4:
256
- return v4.encodeToClient(data);
303
+ return v4.encodeToClient(data as unknown as v4.ToClient);
304
+ case 5:
305
+ return v5.encodeToClient(data);
257
306
  default:
258
307
  throw new Error(`Unknown version ${version}`);
259
308
  }
@@ -261,13 +310,15 @@ export const TO_CLIENT_VERSIONED = createVersionedDataHandler<v4.ToClient>({
261
310
  deserializeVersion: (bytes, version) => {
262
311
  switch (version) {
263
312
  case 1:
264
- return v1.decodeToClient(bytes) as unknown as v4.ToClient;
313
+ return v1.decodeToClient(bytes) as unknown as v5.ToClient;
265
314
  case 2:
266
- return v2.decodeToClient(bytes) as unknown as v4.ToClient;
315
+ return v2.decodeToClient(bytes) as unknown as v5.ToClient;
267
316
  case 3:
268
- return v3.decodeToClient(bytes) as unknown as v4.ToClient;
317
+ return v3.decodeToClient(bytes) as unknown as v5.ToClient;
269
318
  case 4:
270
- return v4.decodeToClient(bytes);
319
+ return v4.decodeToClient(bytes) as unknown as v5.ToClient;
320
+ case 5:
321
+ return v5.decodeToClient(bytes);
271
322
  default:
272
323
  throw new Error(`Unknown version ${version}`);
273
324
  }
@@ -276,6 +327,12 @@ export const TO_CLIENT_VERSIONED = createVersionedDataHandler<v4.ToClient>({
276
327
  v1ToClientToV2,
277
328
  v2ToClientToV3,
278
329
  v3ToClientToV4,
330
+ v4ToClientToV5,
331
+ ],
332
+ serializeConverters: () => [
333
+ v5ToClientToV4,
334
+ v4ToClientToV3,
335
+ v3ToClientToV2,
336
+ v2ToClientToV1,
279
337
  ],
280
- serializeConverters: () => [v4ToClientToV3, v3ToClientToV2, v2ToClientToV1],
281
338
  });
@@ -1,4 +1,4 @@
1
- export * from "@/common/bare/generated/inspector/v4";
1
+ export * from "@/common/bare/generated/inspector/v5";
2
2
  export type { WorkflowHistory as TransportWorkflowHistory } from "@/common/bare/transport/v1";
3
3
  export {
4
4
  decodeWorkflowHistoryTransport,
@@ -280,18 +280,6 @@ export const InspectorQueueResponseSchema = z.object({
280
280
  messages: z.array(InspectorQueueMessageSchema),
281
281
  });
282
282
 
283
- /** `GET /inspector/tab-config` response shape. */
284
- export const InspectorTabConfigResponseSchema = z.object({
285
- tabs: z.array(
286
- z.object({
287
- id: z.string(),
288
- label: z.string().optional(),
289
- icon: z.string().nullable().optional(),
290
- hidden: z.boolean().optional(),
291
- }),
292
- ),
293
- });
294
-
295
283
  export type InspectorStateResponse = z.infer<
296
284
  typeof InspectorStateResponseSchema
297
285
  >;
@@ -310,6 +298,3 @@ export type InspectorQueueMessage = z.infer<typeof InspectorQueueMessageSchema>;
310
298
  export type InspectorQueueResponse = z.infer<
311
299
  typeof InspectorQueueResponseSchema
312
300
  >;
313
- export type InspectorTabConfigResponse = z.infer<
314
- typeof InspectorTabConfigResponseSchema
315
- >;
@@ -1,4 +1,5 @@
1
1
  import { isLocalEngineEndpoint } from "@/common/engine";
2
+ import { configureBaseLogger } from "@/common/log";
2
3
  import { configureServerlessPool } from "@/serverless/configure";
3
4
  import { VERSION } from "@/utils";
4
5
  import {
@@ -82,6 +83,9 @@ export class Registry<A extends RegistryActors> {
82
83
 
83
84
  constructor(config: RegistryConfigInput<A>, deps?: Partial<RegistryDeps>) {
84
85
  this.#config = config;
86
+ if (config.logging?.baseLogger) {
87
+ configureBaseLogger(config.logging.baseLogger);
88
+ }
85
89
  this.#buildConfiguredRegistry =
86
90
  deps?.buildConfiguredRegistry ?? buildConfiguredRegistry;
87
91
  this.routes = {
@@ -745,6 +745,10 @@ export class NapiCoreRuntime implements CoreRuntime {
745
745
  return await asNativeActorContext(ctx).queue().inspectMessages();
746
746
  }
747
747
 
748
+ async actorQueueReset(ctx: ActorContextHandle): Promise<void> {
749
+ await asNativeActorContext(ctx).queue().reset();
750
+ }
751
+
748
752
  actorScheduleAfter(
749
753
  ctx: ActorContextHandle,
750
754
  durationMs: number,
@@ -828,6 +832,13 @@ export async function loadNapiRuntime(): Promise<{
828
832
  bindings: NapiBindings;
829
833
  runtime: NapiCoreRuntime;
830
834
  }> {
835
+ // LOAD-BEARING: the specifier is computed (`.join("/")`) on purpose. Do NOT
836
+ // "simplify" it to a literal `import("@rivetkit/rivetkit-napi")`. Edge
837
+ // adapters (e.g. @rivetkit/supabase) pre-bundle this module for Deno; a
838
+ // literal dynamic import is statically resolvable, so Deno's eszip bundler
839
+ // would snapshot the native `.node` addon into the deploy and 413. The
840
+ // computed specifier keeps it opaque to static analysis so it is never
841
+ // bundled. Enforced by scripts/ci/check-edge-native-closure.mjs.
831
842
  const bindings = await import(["@rivetkit", "rivetkit-napi"].join("/"));
832
843
  return {
833
844
  bindings,
@@ -622,6 +622,13 @@ function decodeNativeKvValue<T extends NativeKvValueType = "text">(
622
622
  }
623
623
 
624
624
  async function loadEngineCli(): Promise<typeof import("@rivetkit/engine-cli")> {
625
+ // LOAD-BEARING: the specifier is computed (`.join("/")`) on purpose. Do NOT
626
+ // "simplify" it to a literal `import("@rivetkit/engine-cli")`. Edge adapters
627
+ // (e.g. @rivetkit/supabase) pre-bundle this module for Deno; a literal
628
+ // dynamic import is statically resolvable, so Deno's eszip bundler would
629
+ // snapshot the ~117 MB engine-cli binary into the deploy and 413. The
630
+ // computed specifier keeps it opaque to static analysis so it is never
631
+ // bundled. Enforced by scripts/ci/check-edge-native-closure.mjs.
625
632
  return import(["@rivetkit", "engine-cli"].join("/"));
626
633
  }
627
634
 
@@ -907,6 +914,10 @@ function serializeWorkflowEntryKind(
907
914
  | {
908
915
  tag: "WorkflowRemovedEntry";
909
916
  val: { originalType: string; originalName: string | null };
917
+ }
918
+ | {
919
+ tag: "WorkflowVersionCheckEntry";
920
+ val: { resolved: number; latest: number };
910
921
  } {
911
922
  switch (kind.tag) {
912
923
  case "WorkflowStepEntry":
@@ -972,6 +983,14 @@ function serializeWorkflowEntryKind(
972
983
  originalName: kind.val.originalName,
973
984
  },
974
985
  };
986
+ case "WorkflowVersionCheckEntry":
987
+ return {
988
+ tag: kind.tag,
989
+ val: {
990
+ resolved: kind.val.resolved,
991
+ latest: kind.val.latest,
992
+ },
993
+ };
975
994
  }
976
995
  }
977
996
 
@@ -3568,10 +3587,11 @@ export function buildNativeFactory(
3568
3587
  );
3569
3588
  };
3570
3589
 
3590
+ // Tab config is delivered over the inspector WS `Init` message, not
3591
+ // HTTP. Only custom-tab assets remain a public per-actor path.
3571
3592
  const isPublicPerActorPath =
3572
3593
  jsRequest.method === "GET" &&
3573
- (url.pathname === "/inspector/tab-config" ||
3574
- url.pathname.startsWith("/inspector/custom-tabs/"));
3594
+ url.pathname.startsWith("/inspector/custom-tabs/");
3575
3595
 
3576
3596
  if (!isPublicPerActorPath) {
3577
3597
  try {
@@ -3666,6 +3686,54 @@ export function buildNativeFactory(
3666
3686
  messages,
3667
3687
  });
3668
3688
  }
3689
+ if (
3690
+ url.pathname === "/inspector/queue" &&
3691
+ jsRequest.method === "DELETE"
3692
+ ) {
3693
+ await runtime.actorQueueReset(ctx);
3694
+ return jsonResponse({});
3695
+ }
3696
+ if (
3697
+ url.pathname === "/inspector/queue" &&
3698
+ jsRequest.method === "POST"
3699
+ ) {
3700
+ let body: { name?: string; body?: unknown };
3701
+ try {
3702
+ body = (await jsRequest.json()) as {
3703
+ name?: string;
3704
+ body?: unknown;
3705
+ };
3706
+ } catch {
3707
+ return errorResponse(
3708
+ new RivetError(
3709
+ "actor",
3710
+ "invalid_request",
3711
+ "Invalid inspector JSON body",
3712
+ { public: true },
3713
+ ),
3714
+ 400,
3715
+ );
3716
+ }
3717
+ const name = body.name ?? "";
3718
+ if (name === "") {
3719
+ return errorResponse(
3720
+ new RivetError(
3721
+ "actor",
3722
+ "invalid_request",
3723
+ "Queue message name must not be empty",
3724
+ { public: true },
3725
+ ),
3726
+ 400,
3727
+ );
3728
+ }
3729
+ const cbor = encodeCborCompat((body.body ?? null) as JsonCompatValue);
3730
+ const message = await runtime.actorQueueSend(ctx, name, cbor);
3731
+ return jsonResponse({
3732
+ id: message.id().toString(),
3733
+ name: message.name(),
3734
+ createdAtMs: message.createdAt(),
3735
+ });
3736
+ }
3669
3737
  if (
3670
3738
  url.pathname === "/inspector/traces" &&
3671
3739
  jsRequest.method === "GET"
@@ -542,6 +542,7 @@ export interface CoreRuntime {
542
542
  actorQueueInspectMessages(
543
543
  ctx: ActorContextHandle,
544
544
  ): Promise<RuntimeQueueInspectMessage[]>;
545
+ actorQueueReset(ctx: ActorContextHandle): Promise<void>;
545
546
 
546
547
  actorScheduleAfter(
547
548
  ctx: ActorContextHandle,
@@ -840,6 +840,11 @@ export class WasmCoreRuntime implements CoreRuntime {
840
840
  return await callHandleAsync(queue, "inspectMessages");
841
841
  }
842
842
 
843
+ async actorQueueReset(ctx: ActorContextHandle): Promise<void> {
844
+ const queue = childHandle(asWasmActorContext(ctx), "queue");
845
+ await callHandleAsync(queue, "reset");
846
+ }
847
+
843
848
  actorScheduleAfter(
844
849
  ctx: ActorContextHandle,
845
850
  durationMs: number | bigint,
@@ -960,6 +960,10 @@ export class WorkflowContext<
960
960
  await this.#wrapActive(() => this.#inner.removed(name, originalType));
961
961
  }
962
962
 
963
+ getVersion(name: string, latest: number): Promise<number> {
964
+ return this.#wrapActive(() => this.#inner.getVersion(name, latest));
965
+ }
966
+
963
967
  isEvicted(): boolean {
964
968
  return this.#inner.isEvicted();
965
969
  }
@@ -184,6 +184,14 @@ function toWorkflowEntryKind(kind: EntryKind): transport.WorkflowEntryKind {
184
184
  originalName: kind.data.originalName ?? null,
185
185
  },
186
186
  };
187
+ case "version_check":
188
+ return {
189
+ tag: "WorkflowVersionCheckEntry",
190
+ val: {
191
+ resolved: kind.data.resolved,
192
+ latest: kind.data.latest,
193
+ },
194
+ };
187
195
  default:
188
196
  assertUnreachable(kind as never);
189
197
  }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/common/bare/transport/v1.ts","../../src/common/inspector-transport.ts"],"sourcesContent":["// Vendored BARE codec. Keep the wire format compatible with the existing runtime.\nimport * as bare from \"@rivetkit/bare-ts\";\n\nconst config = /* @__PURE__ */ bare.Config({});\n\nexport type u32 = number;\nexport type u64 = bigint;\n\nexport type WorkflowCbor = ArrayBuffer;\n\nexport function readWorkflowCbor(bc: bare.ByteCursor): WorkflowCbor {\n\treturn bare.readData(bc);\n}\n\nexport function writeWorkflowCbor(bc: bare.ByteCursor, x: WorkflowCbor): void {\n\tbare.writeData(bc, x);\n}\n\nexport type WorkflowNameIndex = u32;\n\nexport function readWorkflowNameIndex(bc: bare.ByteCursor): WorkflowNameIndex {\n\treturn bare.readU32(bc);\n}\n\nexport function writeWorkflowNameIndex(\n\tbc: bare.ByteCursor,\n\tx: WorkflowNameIndex,\n): void {\n\tbare.writeU32(bc, x);\n}\n\nexport type WorkflowLoopIterationMarker = {\n\treadonly loop: WorkflowNameIndex;\n\treadonly iteration: u32;\n};\n\nexport function readWorkflowLoopIterationMarker(\n\tbc: bare.ByteCursor,\n): WorkflowLoopIterationMarker {\n\treturn {\n\t\tloop: readWorkflowNameIndex(bc),\n\t\titeration: bare.readU32(bc),\n\t};\n}\n\nexport function writeWorkflowLoopIterationMarker(\n\tbc: bare.ByteCursor,\n\tx: WorkflowLoopIterationMarker,\n): void {\n\twriteWorkflowNameIndex(bc, x.loop);\n\tbare.writeU32(bc, x.iteration);\n}\n\nexport type WorkflowPathSegment =\n\t| { readonly tag: \"WorkflowNameIndex\"; readonly val: WorkflowNameIndex }\n\t| {\n\t\t\treadonly tag: \"WorkflowLoopIterationMarker\";\n\t\t\treadonly val: WorkflowLoopIterationMarker;\n\t };\n\nexport function readWorkflowPathSegment(\n\tbc: bare.ByteCursor,\n): WorkflowPathSegment {\n\tconst offset = bc.offset;\n\tconst tag = bare.readU8(bc);\n\tswitch (tag) {\n\t\tcase 0:\n\t\t\treturn { tag: \"WorkflowNameIndex\", val: readWorkflowNameIndex(bc) };\n\t\tcase 1:\n\t\t\treturn {\n\t\t\t\ttag: \"WorkflowLoopIterationMarker\",\n\t\t\t\tval: readWorkflowLoopIterationMarker(bc),\n\t\t\t};\n\t\tdefault: {\n\t\t\tbc.offset = offset;\n\t\t\tthrow new bare.BareError(offset, \"invalid tag\");\n\t\t}\n\t}\n}\n\nexport function writeWorkflowPathSegment(\n\tbc: bare.ByteCursor,\n\tx: WorkflowPathSegment,\n): void {\n\tswitch (x.tag) {\n\t\tcase \"WorkflowNameIndex\": {\n\t\t\tbare.writeU8(bc, 0);\n\t\t\twriteWorkflowNameIndex(bc, x.val);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"WorkflowLoopIterationMarker\": {\n\t\t\tbare.writeU8(bc, 1);\n\t\t\twriteWorkflowLoopIterationMarker(bc, x.val);\n\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport type WorkflowLocation = readonly WorkflowPathSegment[];\n\nexport function readWorkflowLocation(bc: bare.ByteCursor): WorkflowLocation {\n\tconst len = bare.readUintSafe(bc);\n\tif (len === 0) {\n\t\treturn [];\n\t}\n\tconst result = [readWorkflowPathSegment(bc)];\n\tfor (let i = 1; i < len; i++) {\n\t\tresult[i] = readWorkflowPathSegment(bc);\n\t}\n\treturn result;\n}\n\nexport function writeWorkflowLocation(\n\tbc: bare.ByteCursor,\n\tx: WorkflowLocation,\n): void {\n\tbare.writeUintSafe(bc, x.length);\n\tfor (let i = 0; i < x.length; i++) {\n\t\twriteWorkflowPathSegment(bc, x[i]);\n\t}\n}\n\nexport enum WorkflowEntryStatus {\n\tPENDING = \"PENDING\",\n\tRUNNING = \"RUNNING\",\n\tCOMPLETED = \"COMPLETED\",\n\tFAILED = \"FAILED\",\n\tEXHAUSTED = \"EXHAUSTED\",\n}\n\nexport function readWorkflowEntryStatus(\n\tbc: bare.ByteCursor,\n): WorkflowEntryStatus {\n\tconst offset = bc.offset;\n\tconst tag = bare.readU8(bc);\n\tswitch (tag) {\n\t\tcase 0:\n\t\t\treturn WorkflowEntryStatus.PENDING;\n\t\tcase 1:\n\t\t\treturn WorkflowEntryStatus.RUNNING;\n\t\tcase 2:\n\t\t\treturn WorkflowEntryStatus.COMPLETED;\n\t\tcase 3:\n\t\t\treturn WorkflowEntryStatus.FAILED;\n\t\tcase 4:\n\t\t\treturn WorkflowEntryStatus.EXHAUSTED;\n\t\tdefault: {\n\t\t\tbc.offset = offset;\n\t\t\tthrow new bare.BareError(offset, \"invalid tag\");\n\t\t}\n\t}\n}\n\nexport function writeWorkflowEntryStatus(\n\tbc: bare.ByteCursor,\n\tx: WorkflowEntryStatus,\n): void {\n\tswitch (x) {\n\t\tcase WorkflowEntryStatus.PENDING: {\n\t\t\tbare.writeU8(bc, 0);\n\t\t\tbreak;\n\t\t}\n\t\tcase WorkflowEntryStatus.RUNNING: {\n\t\t\tbare.writeU8(bc, 1);\n\t\t\tbreak;\n\t\t}\n\t\tcase WorkflowEntryStatus.COMPLETED: {\n\t\t\tbare.writeU8(bc, 2);\n\t\t\tbreak;\n\t\t}\n\t\tcase WorkflowEntryStatus.FAILED: {\n\t\t\tbare.writeU8(bc, 3);\n\t\t\tbreak;\n\t\t}\n\t\tcase WorkflowEntryStatus.EXHAUSTED: {\n\t\t\tbare.writeU8(bc, 4);\n\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport enum WorkflowSleepState {\n\tPENDING = \"PENDING\",\n\tCOMPLETED = \"COMPLETED\",\n\tINTERRUPTED = \"INTERRUPTED\",\n}\n\nexport function readWorkflowSleepState(\n\tbc: bare.ByteCursor,\n): WorkflowSleepState {\n\tconst offset = bc.offset;\n\tconst tag = bare.readU8(bc);\n\tswitch (tag) {\n\t\tcase 0:\n\t\t\treturn WorkflowSleepState.PENDING;\n\t\tcase 1:\n\t\t\treturn WorkflowSleepState.COMPLETED;\n\t\tcase 2:\n\t\t\treturn WorkflowSleepState.INTERRUPTED;\n\t\tdefault: {\n\t\t\tbc.offset = offset;\n\t\t\tthrow new bare.BareError(offset, \"invalid tag\");\n\t\t}\n\t}\n}\n\nexport function writeWorkflowSleepState(\n\tbc: bare.ByteCursor,\n\tx: WorkflowSleepState,\n): void {\n\tswitch (x) {\n\t\tcase WorkflowSleepState.PENDING: {\n\t\t\tbare.writeU8(bc, 0);\n\t\t\tbreak;\n\t\t}\n\t\tcase WorkflowSleepState.COMPLETED: {\n\t\t\tbare.writeU8(bc, 1);\n\t\t\tbreak;\n\t\t}\n\t\tcase WorkflowSleepState.INTERRUPTED: {\n\t\t\tbare.writeU8(bc, 2);\n\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport enum WorkflowBranchStatusType {\n\tPENDING = \"PENDING\",\n\tRUNNING = \"RUNNING\",\n\tCOMPLETED = \"COMPLETED\",\n\tFAILED = \"FAILED\",\n\tCANCELLED = \"CANCELLED\",\n}\n\nexport function readWorkflowBranchStatusType(\n\tbc: bare.ByteCursor,\n): WorkflowBranchStatusType {\n\tconst offset = bc.offset;\n\tconst tag = bare.readU8(bc);\n\tswitch (tag) {\n\t\tcase 0:\n\t\t\treturn WorkflowBranchStatusType.PENDING;\n\t\tcase 1:\n\t\t\treturn WorkflowBranchStatusType.RUNNING;\n\t\tcase 2:\n\t\t\treturn WorkflowBranchStatusType.COMPLETED;\n\t\tcase 3:\n\t\t\treturn WorkflowBranchStatusType.FAILED;\n\t\tcase 4:\n\t\t\treturn WorkflowBranchStatusType.CANCELLED;\n\t\tdefault: {\n\t\t\tbc.offset = offset;\n\t\t\tthrow new bare.BareError(offset, \"invalid tag\");\n\t\t}\n\t}\n}\n\nexport function writeWorkflowBranchStatusType(\n\tbc: bare.ByteCursor,\n\tx: WorkflowBranchStatusType,\n): void {\n\tswitch (x) {\n\t\tcase WorkflowBranchStatusType.PENDING: {\n\t\t\tbare.writeU8(bc, 0);\n\t\t\tbreak;\n\t\t}\n\t\tcase WorkflowBranchStatusType.RUNNING: {\n\t\t\tbare.writeU8(bc, 1);\n\t\t\tbreak;\n\t\t}\n\t\tcase WorkflowBranchStatusType.COMPLETED: {\n\t\t\tbare.writeU8(bc, 2);\n\t\t\tbreak;\n\t\t}\n\t\tcase WorkflowBranchStatusType.FAILED: {\n\t\t\tbare.writeU8(bc, 3);\n\t\t\tbreak;\n\t\t}\n\t\tcase WorkflowBranchStatusType.CANCELLED: {\n\t\t\tbare.writeU8(bc, 4);\n\t\t\tbreak;\n\t\t}\n\t}\n}\n\nfunction read0(bc: bare.ByteCursor): WorkflowCbor | null {\n\treturn bare.readBool(bc) ? readWorkflowCbor(bc) : null;\n}\n\nfunction write0(bc: bare.ByteCursor, x: WorkflowCbor | null): void {\n\tbare.writeBool(bc, x !== null);\n\tif (x !== null) {\n\t\twriteWorkflowCbor(bc, x);\n\t}\n}\n\nfunction read1(bc: bare.ByteCursor): string | null {\n\treturn bare.readBool(bc) ? bare.readString(bc) : null;\n}\n\nfunction write1(bc: bare.ByteCursor, x: string | null): void {\n\tbare.writeBool(bc, x !== null);\n\tif (x !== null) {\n\t\tbare.writeString(bc, x);\n\t}\n}\n\nexport type WorkflowStepEntry = {\n\treadonly output: WorkflowCbor | null;\n\treadonly error: string | null;\n};\n\nexport function readWorkflowStepEntry(bc: bare.ByteCursor): WorkflowStepEntry {\n\treturn {\n\t\toutput: read0(bc),\n\t\terror: read1(bc),\n\t};\n}\n\nexport function writeWorkflowStepEntry(\n\tbc: bare.ByteCursor,\n\tx: WorkflowStepEntry,\n): void {\n\twrite0(bc, x.output);\n\twrite1(bc, x.error);\n}\n\nexport type WorkflowLoopEntry = {\n\treadonly state: WorkflowCbor;\n\treadonly iteration: u32;\n\treadonly output: WorkflowCbor | null;\n};\n\nexport function readWorkflowLoopEntry(bc: bare.ByteCursor): WorkflowLoopEntry {\n\treturn {\n\t\tstate: readWorkflowCbor(bc),\n\t\titeration: bare.readU32(bc),\n\t\toutput: read0(bc),\n\t};\n}\n\nexport function writeWorkflowLoopEntry(\n\tbc: bare.ByteCursor,\n\tx: WorkflowLoopEntry,\n): void {\n\twriteWorkflowCbor(bc, x.state);\n\tbare.writeU32(bc, x.iteration);\n\twrite0(bc, x.output);\n}\n\nexport type WorkflowSleepEntry = {\n\treadonly deadline: u64;\n\treadonly state: WorkflowSleepState;\n};\n\nexport function readWorkflowSleepEntry(\n\tbc: bare.ByteCursor,\n): WorkflowSleepEntry {\n\treturn {\n\t\tdeadline: bare.readU64(bc),\n\t\tstate: readWorkflowSleepState(bc),\n\t};\n}\n\nexport function writeWorkflowSleepEntry(\n\tbc: bare.ByteCursor,\n\tx: WorkflowSleepEntry,\n): void {\n\tbare.writeU64(bc, x.deadline);\n\twriteWorkflowSleepState(bc, x.state);\n}\n\nexport type WorkflowMessageEntry = {\n\treadonly name: string;\n\treadonly messageData: WorkflowCbor;\n};\n\nexport function readWorkflowMessageEntry(\n\tbc: bare.ByteCursor,\n): WorkflowMessageEntry {\n\treturn {\n\t\tname: bare.readString(bc),\n\t\tmessageData: readWorkflowCbor(bc),\n\t};\n}\n\nexport function writeWorkflowMessageEntry(\n\tbc: bare.ByteCursor,\n\tx: WorkflowMessageEntry,\n): void {\n\tbare.writeString(bc, x.name);\n\twriteWorkflowCbor(bc, x.messageData);\n}\n\nexport type WorkflowRollbackCheckpointEntry = {\n\treadonly name: string;\n};\n\nexport function readWorkflowRollbackCheckpointEntry(\n\tbc: bare.ByteCursor,\n): WorkflowRollbackCheckpointEntry {\n\treturn {\n\t\tname: bare.readString(bc),\n\t};\n}\n\nexport function writeWorkflowRollbackCheckpointEntry(\n\tbc: bare.ByteCursor,\n\tx: WorkflowRollbackCheckpointEntry,\n): void {\n\tbare.writeString(bc, x.name);\n}\n\nexport type WorkflowBranchStatus = {\n\treadonly status: WorkflowBranchStatusType;\n\treadonly output: WorkflowCbor | null;\n\treadonly error: string | null;\n};\n\nexport function readWorkflowBranchStatus(\n\tbc: bare.ByteCursor,\n): WorkflowBranchStatus {\n\treturn {\n\t\tstatus: readWorkflowBranchStatusType(bc),\n\t\toutput: read0(bc),\n\t\terror: read1(bc),\n\t};\n}\n\nexport function writeWorkflowBranchStatus(\n\tbc: bare.ByteCursor,\n\tx: WorkflowBranchStatus,\n): void {\n\twriteWorkflowBranchStatusType(bc, x.status);\n\twrite0(bc, x.output);\n\twrite1(bc, x.error);\n}\n\nfunction read2(bc: bare.ByteCursor): ReadonlyMap<string, WorkflowBranchStatus> {\n\tconst len = bare.readUintSafe(bc);\n\tconst result = new Map<string, WorkflowBranchStatus>();\n\tfor (let i = 0; i < len; i++) {\n\t\tconst offset = bc.offset;\n\t\tconst key = bare.readString(bc);\n\t\tif (result.has(key)) {\n\t\t\tbc.offset = offset;\n\t\t\tthrow new bare.BareError(offset, \"duplicated key\");\n\t\t}\n\t\tresult.set(key, readWorkflowBranchStatus(bc));\n\t}\n\treturn result;\n}\n\nfunction write2(\n\tbc: bare.ByteCursor,\n\tx: ReadonlyMap<string, WorkflowBranchStatus>,\n): void {\n\tbare.writeUintSafe(bc, x.size);\n\tfor (const kv of x) {\n\t\tbare.writeString(bc, kv[0]);\n\t\twriteWorkflowBranchStatus(bc, kv[1]);\n\t}\n}\n\nexport type WorkflowJoinEntry = {\n\treadonly branches: ReadonlyMap<string, WorkflowBranchStatus>;\n};\n\nexport function readWorkflowJoinEntry(bc: bare.ByteCursor): WorkflowJoinEntry {\n\treturn {\n\t\tbranches: read2(bc),\n\t};\n}\n\nexport function writeWorkflowJoinEntry(\n\tbc: bare.ByteCursor,\n\tx: WorkflowJoinEntry,\n): void {\n\twrite2(bc, x.branches);\n}\n\nexport type WorkflowRaceEntry = {\n\treadonly winner: string | null;\n\treadonly branches: ReadonlyMap<string, WorkflowBranchStatus>;\n};\n\nexport function readWorkflowRaceEntry(bc: bare.ByteCursor): WorkflowRaceEntry {\n\treturn {\n\t\twinner: read1(bc),\n\t\tbranches: read2(bc),\n\t};\n}\n\nexport function writeWorkflowRaceEntry(\n\tbc: bare.ByteCursor,\n\tx: WorkflowRaceEntry,\n): void {\n\twrite1(bc, x.winner);\n\twrite2(bc, x.branches);\n}\n\nexport type WorkflowRemovedEntry = {\n\treadonly originalType: string;\n\treadonly originalName: string | null;\n};\n\nexport function readWorkflowRemovedEntry(\n\tbc: bare.ByteCursor,\n): WorkflowRemovedEntry {\n\treturn {\n\t\toriginalType: bare.readString(bc),\n\t\toriginalName: read1(bc),\n\t};\n}\n\nexport function writeWorkflowRemovedEntry(\n\tbc: bare.ByteCursor,\n\tx: WorkflowRemovedEntry,\n): void {\n\tbare.writeString(bc, x.originalType);\n\twrite1(bc, x.originalName);\n}\n\nexport type WorkflowEntryKind =\n\t| { readonly tag: \"WorkflowStepEntry\"; readonly val: WorkflowStepEntry }\n\t| { readonly tag: \"WorkflowLoopEntry\"; readonly val: WorkflowLoopEntry }\n\t| { readonly tag: \"WorkflowSleepEntry\"; readonly val: WorkflowSleepEntry }\n\t| {\n\t\t\treadonly tag: \"WorkflowMessageEntry\";\n\t\t\treadonly val: WorkflowMessageEntry;\n\t }\n\t| {\n\t\t\treadonly tag: \"WorkflowRollbackCheckpointEntry\";\n\t\t\treadonly val: WorkflowRollbackCheckpointEntry;\n\t }\n\t| { readonly tag: \"WorkflowJoinEntry\"; readonly val: WorkflowJoinEntry }\n\t| { readonly tag: \"WorkflowRaceEntry\"; readonly val: WorkflowRaceEntry }\n\t| {\n\t\t\treadonly tag: \"WorkflowRemovedEntry\";\n\t\t\treadonly val: WorkflowRemovedEntry;\n\t };\n\nexport function readWorkflowEntryKind(bc: bare.ByteCursor): WorkflowEntryKind {\n\tconst offset = bc.offset;\n\tconst tag = bare.readU8(bc);\n\tswitch (tag) {\n\t\tcase 0:\n\t\t\treturn { tag: \"WorkflowStepEntry\", val: readWorkflowStepEntry(bc) };\n\t\tcase 1:\n\t\t\treturn { tag: \"WorkflowLoopEntry\", val: readWorkflowLoopEntry(bc) };\n\t\tcase 2:\n\t\t\treturn {\n\t\t\t\ttag: \"WorkflowSleepEntry\",\n\t\t\t\tval: readWorkflowSleepEntry(bc),\n\t\t\t};\n\t\tcase 3:\n\t\t\treturn {\n\t\t\t\ttag: \"WorkflowMessageEntry\",\n\t\t\t\tval: readWorkflowMessageEntry(bc),\n\t\t\t};\n\t\tcase 4:\n\t\t\treturn {\n\t\t\t\ttag: \"WorkflowRollbackCheckpointEntry\",\n\t\t\t\tval: readWorkflowRollbackCheckpointEntry(bc),\n\t\t\t};\n\t\tcase 5:\n\t\t\treturn { tag: \"WorkflowJoinEntry\", val: readWorkflowJoinEntry(bc) };\n\t\tcase 6:\n\t\t\treturn { tag: \"WorkflowRaceEntry\", val: readWorkflowRaceEntry(bc) };\n\t\tcase 7:\n\t\t\treturn {\n\t\t\t\ttag: \"WorkflowRemovedEntry\",\n\t\t\t\tval: readWorkflowRemovedEntry(bc),\n\t\t\t};\n\t\tdefault: {\n\t\t\tbc.offset = offset;\n\t\t\tthrow new bare.BareError(offset, \"invalid tag\");\n\t\t}\n\t}\n}\n\nexport function writeWorkflowEntryKind(\n\tbc: bare.ByteCursor,\n\tx: WorkflowEntryKind,\n): void {\n\tswitch (x.tag) {\n\t\tcase \"WorkflowStepEntry\": {\n\t\t\tbare.writeU8(bc, 0);\n\t\t\twriteWorkflowStepEntry(bc, x.val);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"WorkflowLoopEntry\": {\n\t\t\tbare.writeU8(bc, 1);\n\t\t\twriteWorkflowLoopEntry(bc, x.val);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"WorkflowSleepEntry\": {\n\t\t\tbare.writeU8(bc, 2);\n\t\t\twriteWorkflowSleepEntry(bc, x.val);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"WorkflowMessageEntry\": {\n\t\t\tbare.writeU8(bc, 3);\n\t\t\twriteWorkflowMessageEntry(bc, x.val);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"WorkflowRollbackCheckpointEntry\": {\n\t\t\tbare.writeU8(bc, 4);\n\t\t\twriteWorkflowRollbackCheckpointEntry(bc, x.val);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"WorkflowJoinEntry\": {\n\t\t\tbare.writeU8(bc, 5);\n\t\t\twriteWorkflowJoinEntry(bc, x.val);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"WorkflowRaceEntry\": {\n\t\t\tbare.writeU8(bc, 6);\n\t\t\twriteWorkflowRaceEntry(bc, x.val);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"WorkflowRemovedEntry\": {\n\t\t\tbare.writeU8(bc, 7);\n\t\t\twriteWorkflowRemovedEntry(bc, x.val);\n\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport type WorkflowEntry = {\n\treadonly id: string;\n\treadonly location: WorkflowLocation;\n\treadonly kind: WorkflowEntryKind;\n};\n\nexport function readWorkflowEntry(bc: bare.ByteCursor): WorkflowEntry {\n\treturn {\n\t\tid: bare.readString(bc),\n\t\tlocation: readWorkflowLocation(bc),\n\t\tkind: readWorkflowEntryKind(bc),\n\t};\n}\n\nexport function writeWorkflowEntry(\n\tbc: bare.ByteCursor,\n\tx: WorkflowEntry,\n): void {\n\tbare.writeString(bc, x.id);\n\twriteWorkflowLocation(bc, x.location);\n\twriteWorkflowEntryKind(bc, x.kind);\n}\n\nfunction read3(bc: bare.ByteCursor): u64 | null {\n\treturn bare.readBool(bc) ? bare.readU64(bc) : null;\n}\n\nfunction write3(bc: bare.ByteCursor, x: u64 | null): void {\n\tbare.writeBool(bc, x !== null);\n\tif (x !== null) {\n\t\tbare.writeU64(bc, x);\n\t}\n}\n\nexport type WorkflowEntryMetadata = {\n\treadonly status: WorkflowEntryStatus;\n\treadonly error: string | null;\n\treadonly attempts: u32;\n\treadonly lastAttemptAt: u64;\n\treadonly createdAt: u64;\n\treadonly completedAt: u64 | null;\n\treadonly rollbackCompletedAt: u64 | null;\n\treadonly rollbackError: string | null;\n};\n\nexport function readWorkflowEntryMetadata(\n\tbc: bare.ByteCursor,\n): WorkflowEntryMetadata {\n\treturn {\n\t\tstatus: readWorkflowEntryStatus(bc),\n\t\terror: read1(bc),\n\t\tattempts: bare.readU32(bc),\n\t\tlastAttemptAt: bare.readU64(bc),\n\t\tcreatedAt: bare.readU64(bc),\n\t\tcompletedAt: read3(bc),\n\t\trollbackCompletedAt: read3(bc),\n\t\trollbackError: read1(bc),\n\t};\n}\n\nexport function writeWorkflowEntryMetadata(\n\tbc: bare.ByteCursor,\n\tx: WorkflowEntryMetadata,\n): void {\n\twriteWorkflowEntryStatus(bc, x.status);\n\twrite1(bc, x.error);\n\tbare.writeU32(bc, x.attempts);\n\tbare.writeU64(bc, x.lastAttemptAt);\n\tbare.writeU64(bc, x.createdAt);\n\twrite3(bc, x.completedAt);\n\twrite3(bc, x.rollbackCompletedAt);\n\twrite1(bc, x.rollbackError);\n}\n\nfunction read4(bc: bare.ByteCursor): readonly string[] {\n\tconst len = bare.readUintSafe(bc);\n\tif (len === 0) {\n\t\treturn [];\n\t}\n\tconst result = [bare.readString(bc)];\n\tfor (let i = 1; i < len; i++) {\n\t\tresult[i] = bare.readString(bc);\n\t}\n\treturn result;\n}\n\nfunction write4(bc: bare.ByteCursor, x: readonly string[]): void {\n\tbare.writeUintSafe(bc, x.length);\n\tfor (let i = 0; i < x.length; i++) {\n\t\tbare.writeString(bc, x[i]);\n\t}\n}\n\nfunction read5(bc: bare.ByteCursor): readonly WorkflowEntry[] {\n\tconst len = bare.readUintSafe(bc);\n\tif (len === 0) {\n\t\treturn [];\n\t}\n\tconst result = [readWorkflowEntry(bc)];\n\tfor (let i = 1; i < len; i++) {\n\t\tresult[i] = readWorkflowEntry(bc);\n\t}\n\treturn result;\n}\n\nfunction write5(bc: bare.ByteCursor, x: readonly WorkflowEntry[]): void {\n\tbare.writeUintSafe(bc, x.length);\n\tfor (let i = 0; i < x.length; i++) {\n\t\twriteWorkflowEntry(bc, x[i]);\n\t}\n}\n\nfunction read6(\n\tbc: bare.ByteCursor,\n): ReadonlyMap<string, WorkflowEntryMetadata> {\n\tconst len = bare.readUintSafe(bc);\n\tconst result = new Map<string, WorkflowEntryMetadata>();\n\tfor (let i = 0; i < len; i++) {\n\t\tconst offset = bc.offset;\n\t\tconst key = bare.readString(bc);\n\t\tif (result.has(key)) {\n\t\t\tbc.offset = offset;\n\t\t\tthrow new bare.BareError(offset, \"duplicated key\");\n\t\t}\n\t\tresult.set(key, readWorkflowEntryMetadata(bc));\n\t}\n\treturn result;\n}\n\nfunction write6(\n\tbc: bare.ByteCursor,\n\tx: ReadonlyMap<string, WorkflowEntryMetadata>,\n): void {\n\tbare.writeUintSafe(bc, x.size);\n\tfor (const kv of x) {\n\t\tbare.writeString(bc, kv[0]);\n\t\twriteWorkflowEntryMetadata(bc, kv[1]);\n\t}\n}\n\nexport type WorkflowHistory = {\n\treadonly nameRegistry: readonly string[];\n\treadonly entries: readonly WorkflowEntry[];\n\treadonly entryMetadata: ReadonlyMap<string, WorkflowEntryMetadata>;\n};\n\nexport function readWorkflowHistory(bc: bare.ByteCursor): WorkflowHistory {\n\treturn {\n\t\tnameRegistry: read4(bc),\n\t\tentries: read5(bc),\n\t\tentryMetadata: read6(bc),\n\t};\n}\n\nexport function writeWorkflowHistory(\n\tbc: bare.ByteCursor,\n\tx: WorkflowHistory,\n): void {\n\twrite4(bc, x.nameRegistry);\n\twrite5(bc, x.entries);\n\twrite6(bc, x.entryMetadata);\n}\n\nexport function encodeWorkflowHistory(x: WorkflowHistory): Uint8Array {\n\tconst bc = new bare.ByteCursor(\n\t\tnew Uint8Array(config.initialBufferLength),\n\t\tconfig,\n\t);\n\twriteWorkflowHistory(bc, x);\n\treturn new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);\n}\n\nexport function decodeWorkflowHistory(bytes: Uint8Array): WorkflowHistory {\n\tconst bc = new bare.ByteCursor(bytes, config);\n\tconst result = readWorkflowHistory(bc);\n\tif (bc.offset < bc.view.byteLength) {\n\t\tthrow new bare.BareError(bc.offset, \"remaining bytes\");\n\t}\n\treturn result;\n}\n\nfunction _assert(condition: boolean, message?: string): asserts condition {\n\tif (!condition) throw new Error(message ?? \"Assertion failed\");\n}\n","import type { WorkflowHistory } from \"@/common/bare/transport/v1\";\nimport {\n\tdecodeWorkflowHistory,\n\tencodeWorkflowHistory,\n} from \"@/common/bare/transport/v1\";\nimport { bufferToArrayBuffer, toUint8Array } from \"@/utils\";\n\nexport function encodeWorkflowHistoryTransport(\n\thistory: WorkflowHistory,\n): ArrayBuffer {\n\treturn bufferToArrayBuffer(encodeWorkflowHistory(history));\n}\n\nexport function decodeWorkflowHistoryTransport(\n\tdata: ArrayBuffer | ArrayBufferView,\n): WorkflowHistory {\n\treturn decodeWorkflowHistory(toUint8Array(data));\n}\n"],"mappings":"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","names":[]}