rivetkit 2.3.0-rc.10 → 2.3.0-rc.11

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 (205) hide show
  1. package/dist/browser/client.d.ts +105 -56
  2. package/dist/browser/client.js +128 -87
  3. package/dist/browser/client.js.map +1 -1
  4. package/dist/browser/inspector/client.js +40 -20
  5. package/dist/browser/inspector/client.js.map +1 -1
  6. package/dist/tsup/actor/errors.cjs +2 -2
  7. package/dist/tsup/actor/errors.js +1 -1
  8. package/dist/tsup/agent-os/index.cjs +2103 -2090
  9. package/dist/tsup/agent-os/index.cjs.map +1 -1
  10. package/dist/tsup/agent-os/index.d.cts +106 -66
  11. package/dist/tsup/agent-os/index.d.ts +106 -66
  12. package/dist/tsup/agent-os/index.js +2102 -2089
  13. package/dist/tsup/agent-os/index.js.map +1 -1
  14. package/dist/tsup/{chunk-4K3MV2MW.cjs → chunk-2NXFKPRB.cjs} +10 -10
  15. package/dist/tsup/chunk-2NXFKPRB.cjs.map +1 -0
  16. package/dist/tsup/{chunk-6BI2MS3S.js → chunk-3P2JUHWJ.js} +2 -2
  17. package/dist/tsup/{chunk-KU6VKVEK.js → chunk-4FP4FFB5.js} +18 -6
  18. package/dist/tsup/chunk-4FP4FFB5.js.map +1 -0
  19. package/dist/tsup/{chunk-KIWH5H3K.js → chunk-BRP62GZC.js} +3 -3
  20. package/dist/tsup/chunk-BRP62GZC.js.map +1 -0
  21. package/dist/tsup/{chunk-G34LIR7S.js → chunk-GRFBV2U7.js} +22 -7
  22. package/dist/tsup/chunk-GRFBV2U7.js.map +1 -0
  23. package/dist/tsup/{chunk-PWFGP2US.cjs → chunk-GX6W4MW3.cjs} +138 -24
  24. package/dist/tsup/chunk-GX6W4MW3.cjs.map +1 -0
  25. package/dist/tsup/{chunk-3YY5S6TV.js → chunk-HXUEHHJF.js} +2 -2
  26. package/dist/tsup/chunk-HXUEHHJF.js.map +1 -0
  27. package/dist/tsup/{chunk-PCBNKI2J.js → chunk-JZ7TWV65.js} +1 -1
  28. package/dist/tsup/chunk-JZ7TWV65.js.map +1 -0
  29. package/dist/tsup/{chunk-QAZLM4WT.cjs → chunk-KORQB2IR.cjs} +3 -3
  30. package/dist/tsup/{chunk-QAZLM4WT.cjs.map → chunk-KORQB2IR.cjs.map} +1 -1
  31. package/dist/tsup/{chunk-BM3EOY7M.js → chunk-KRC4L3YB.js} +134 -20
  32. package/dist/tsup/chunk-KRC4L3YB.js.map +1 -0
  33. package/dist/tsup/{chunk-G5RULGYQ.cjs → chunk-LNP7Q6I6.cjs} +24 -9
  34. package/dist/tsup/chunk-LNP7Q6I6.cjs.map +1 -0
  35. package/dist/tsup/{chunk-Z4C3W2CQ.cjs → chunk-LW5HNCWD.cjs} +3 -3
  36. package/dist/tsup/{chunk-Z4C3W2CQ.cjs.map → chunk-LW5HNCWD.cjs.map} +1 -1
  37. package/dist/tsup/{chunk-J5P6S2LC.cjs → chunk-RDBGKI66.cjs} +25 -13
  38. package/dist/tsup/chunk-RDBGKI66.cjs.map +1 -0
  39. package/dist/tsup/{chunk-T6YVRM4K.js → chunk-T3VCJ4PV.js} +3 -1
  40. package/dist/tsup/chunk-T3VCJ4PV.js.map +1 -0
  41. package/dist/tsup/{chunk-WU2O2KIE.js → chunk-TTLUIDVH.js} +61 -77
  42. package/dist/tsup/chunk-TTLUIDVH.js.map +1 -0
  43. package/dist/tsup/{chunk-LD5YASJU.cjs → chunk-VE2X4KMG.cjs} +2 -2
  44. package/dist/tsup/{chunk-LD5YASJU.cjs.map → chunk-VE2X4KMG.cjs.map} +1 -1
  45. package/dist/tsup/{chunk-XV52XUWU.js → chunk-WXYWDLJY.js} +4 -4
  46. package/dist/tsup/chunk-WXYWDLJY.js.map +1 -0
  47. package/dist/tsup/{chunk-WQ4HNA4W.cjs → chunk-XCDCURZ4.cjs} +4 -2
  48. package/dist/tsup/chunk-XCDCURZ4.cjs.map +1 -0
  49. package/dist/tsup/{chunk-TE4VCDNY.cjs → chunk-XG25CGSW.cjs} +217 -233
  50. package/dist/tsup/chunk-XG25CGSW.cjs.map +1 -0
  51. package/dist/tsup/{chunk-3LGP4JSO.cjs → chunk-Y3JBOFBG.cjs} +8 -8
  52. package/dist/tsup/{chunk-3LGP4JSO.cjs.map → chunk-Y3JBOFBG.cjs.map} +1 -1
  53. package/dist/tsup/{chunk-CMYS77J6.js → chunk-YRQ4F5CD.js} +3 -3
  54. package/dist/tsup/{chunk-2NDZ7JCR.cjs → chunk-ZA7FLHKH.cjs} +1 -1
  55. package/dist/tsup/chunk-ZA7FLHKH.cjs.map +1 -0
  56. package/dist/tsup/client/mod.cjs +9 -9
  57. package/dist/tsup/client/mod.d.cts +4 -4
  58. package/dist/tsup/client/mod.d.ts +4 -4
  59. package/dist/tsup/client/mod.js +8 -8
  60. package/dist/tsup/common/log.cjs +3 -3
  61. package/dist/tsup/common/log.js +2 -2
  62. package/dist/tsup/common/websocket.cjs +4 -4
  63. package/dist/tsup/common/websocket.js +3 -3
  64. package/dist/tsup/{config-Ca8dN4cS.d.cts → config-CTwe3WwC.d.cts} +69 -19
  65. package/dist/tsup/{config-CxjGYf4K.d.cts → config-D49x8NpL.d.cts} +1 -2
  66. package/dist/tsup/{config-CxjGYf4K.d.ts → config-D49x8NpL.d.ts} +1 -2
  67. package/dist/tsup/{config-0Ta55UV0.d.ts → config-De5UVu0V.d.ts} +69 -19
  68. package/dist/tsup/{context-B_IWbWne.d.ts → context-DPHISlUi.d.ts} +8 -8
  69. package/dist/tsup/{context-CUrQ9MHc.d.cts → context-Dmj477Uh.d.cts} +8 -8
  70. package/dist/tsup/db/drizzle.cjs +3 -3
  71. package/dist/tsup/db/drizzle.d.cts +1 -1
  72. package/dist/tsup/db/drizzle.d.ts +1 -1
  73. package/dist/tsup/db/drizzle.js +1 -1
  74. package/dist/tsup/db/mod.cjs +2 -2
  75. package/dist/tsup/db/mod.d.cts +2 -2
  76. package/dist/tsup/db/mod.d.ts +2 -2
  77. package/dist/tsup/db/mod.js +1 -1
  78. package/dist/tsup/dynamic/mod.cjs +24 -0
  79. package/dist/tsup/dynamic/mod.cjs.map +1 -0
  80. package/dist/tsup/dynamic/mod.d.cts +37 -0
  81. package/dist/tsup/dynamic/mod.d.ts +37 -0
  82. package/dist/tsup/dynamic/mod.js +24 -0
  83. package/dist/tsup/dynamic/mod.js.map +1 -0
  84. package/dist/tsup/inspector/mod.cjs +6 -6
  85. package/dist/tsup/inspector/mod.js +5 -5
  86. package/dist/tsup/mod.cjs +501 -315
  87. package/dist/tsup/mod.cjs.map +1 -1
  88. package/dist/tsup/mod.d.cts +4 -4
  89. package/dist/tsup/mod.d.ts +4 -4
  90. package/dist/tsup/mod.js +405 -219
  91. package/dist/tsup/mod.js.map +1 -1
  92. package/dist/tsup/test/mod.cjs +21 -18
  93. package/dist/tsup/test/mod.cjs.map +1 -1
  94. package/dist/tsup/test/mod.d.cts +3 -3
  95. package/dist/tsup/test/mod.d.ts +3 -3
  96. package/dist/tsup/test/mod.js +18 -15
  97. package/dist/tsup/test/mod.js.map +1 -1
  98. package/dist/tsup/utils.cjs +3 -3
  99. package/dist/tsup/utils.d.cts +1 -1
  100. package/dist/tsup/utils.d.ts +1 -1
  101. package/dist/tsup/utils.js +2 -2
  102. package/dist/tsup/workflow/mod.cjs +307 -282
  103. package/dist/tsup/workflow/mod.cjs.map +1 -1
  104. package/dist/tsup/workflow/mod.d.cts +5 -5
  105. package/dist/tsup/workflow/mod.d.ts +5 -5
  106. package/dist/tsup/workflow/mod.js +501 -476
  107. package/dist/tsup/workflow/mod.js.map +1 -1
  108. package/package.json +22 -11
  109. package/src/actor/config.ts +48 -41
  110. package/src/actor/contexts/index.ts +7 -2
  111. package/src/actor/definition.ts +11 -14
  112. package/src/actor/driver.ts +3 -3
  113. package/src/actor/errors.ts +9 -3
  114. package/src/actor/instance/mod.ts +22 -30
  115. package/src/actor/keys.ts +1 -1
  116. package/src/actor/mod.ts +20 -20
  117. package/src/actor/schema.ts +2 -2
  118. package/src/agent-os/actor/index.ts +38 -18
  119. package/src/agent-os/actor/preview.ts +1 -2
  120. package/src/agent-os/actor/session.ts +2 -2
  121. package/src/agent-os/config.ts +1 -1
  122. package/src/agent-os/fs/database-vfs.ts +1 -1
  123. package/src/agent-os/index.ts +16 -15
  124. package/src/client/actor-common.ts +90 -54
  125. package/src/client/actor-conn.ts +8 -36
  126. package/src/client/actor-handle.ts +67 -50
  127. package/src/client/actor-query.ts +5 -5
  128. package/src/client/errors.ts +1 -1
  129. package/src/client/lifecycle-errors.ts +2 -4
  130. package/src/client/query.ts +1 -1
  131. package/src/client/queue.ts +8 -3
  132. package/src/client/raw-utils.ts +8 -6
  133. package/src/client/resolve-gateway-target.ts +1 -1
  134. package/src/client/utils.ts +2 -7
  135. package/src/common/actor-websocket.ts +3 -1
  136. package/src/common/bare/actor-persist/v1.ts +205 -163
  137. package/src/common/bare/actor-persist/v2.ts +265 -213
  138. package/src/common/bare/actor-persist/v3.ts +176 -172
  139. package/src/common/bare/actor-persist/v4.ts +254 -253
  140. package/src/common/bare/transport/v1.ts +659 -543
  141. package/src/common/client-protocol-versioned.ts +66 -64
  142. package/src/common/database/config.ts +2 -8
  143. package/src/common/database/native-database.ts +1 -1
  144. package/src/common/database/shared.ts +1 -0
  145. package/src/common/encoding.ts +250 -16
  146. package/src/common/eventsource.ts +1 -1
  147. package/src/common/inline-websocket-adapter.ts +14 -13
  148. package/src/common/log.ts +1 -0
  149. package/src/common/router.ts +13 -17
  150. package/src/common/utils.ts +0 -149
  151. package/src/common/websocket-interface.ts +1 -1
  152. package/src/db/mod.ts +1 -1
  153. package/src/drivers/engine/actor-driver.ts +63 -72
  154. package/src/dynamic/instance.ts +32 -0
  155. package/src/dynamic/internal.ts +50 -0
  156. package/src/dynamic/isolate-runtime.ts +66 -0
  157. package/src/dynamic/mod.ts +32 -0
  158. package/src/engine-client/actor-http-client.ts +1 -1
  159. package/src/engine-client/actor-websocket-client.ts +6 -5
  160. package/src/engine-client/api-endpoints.ts +47 -2
  161. package/src/engine-client/api-utils.ts +2 -2
  162. package/src/engine-client/driver.ts +1 -1
  163. package/src/engine-client/mod.ts +6 -3
  164. package/src/engine-client/ws-proxy.ts +4 -4
  165. package/src/inspector/client.browser.ts +5 -11
  166. package/src/inspector/mod.ts +1 -3
  167. package/src/registry/config/envoy.ts +1 -2
  168. package/src/registry/config/index.ts +7 -7
  169. package/src/registry/index.ts +70 -71
  170. package/src/registry/napi-runtime.ts +7 -2
  171. package/src/registry/native-validation.ts +10 -12
  172. package/src/registry/native.ts +179 -153
  173. package/src/registry/process-metrics.ts +238 -0
  174. package/src/registry/runtime.ts +1 -3
  175. package/src/registry/wasm-runtime.ts +3 -2
  176. package/src/registry/write-through-proxy.ts +40 -0
  177. package/src/serde.ts +2 -2
  178. package/src/serverless/configure.ts +18 -7
  179. package/src/test/mod.ts +11 -8
  180. package/src/utils/endpoint-parser.ts +1 -1
  181. package/src/utils/router.ts +1 -1
  182. package/src/utils/serve.ts +4 -5
  183. package/src/utils.ts +1 -2
  184. package/src/workflow/context.ts +61 -33
  185. package/src/workflow/driver.ts +4 -6
  186. package/src/workflow/inspector.ts +4 -3
  187. package/src/workflow/mod.ts +15 -17
  188. package/dist/tsup/chunk-2NDZ7JCR.cjs.map +0 -1
  189. package/dist/tsup/chunk-3YY5S6TV.js.map +0 -1
  190. package/dist/tsup/chunk-4K3MV2MW.cjs.map +0 -1
  191. package/dist/tsup/chunk-BM3EOY7M.js.map +0 -1
  192. package/dist/tsup/chunk-G34LIR7S.js.map +0 -1
  193. package/dist/tsup/chunk-G5RULGYQ.cjs.map +0 -1
  194. package/dist/tsup/chunk-J5P6S2LC.cjs.map +0 -1
  195. package/dist/tsup/chunk-KIWH5H3K.js.map +0 -1
  196. package/dist/tsup/chunk-KU6VKVEK.js.map +0 -1
  197. package/dist/tsup/chunk-PCBNKI2J.js.map +0 -1
  198. package/dist/tsup/chunk-PWFGP2US.cjs.map +0 -1
  199. package/dist/tsup/chunk-T6YVRM4K.js.map +0 -1
  200. package/dist/tsup/chunk-TE4VCDNY.cjs.map +0 -1
  201. package/dist/tsup/chunk-WQ4HNA4W.cjs.map +0 -1
  202. package/dist/tsup/chunk-WU2O2KIE.js.map +0 -1
  203. package/dist/tsup/chunk-XV52XUWU.js.map +0 -1
  204. /package/dist/tsup/{chunk-6BI2MS3S.js.map → chunk-3P2JUHWJ.js.map} +0 -0
  205. /package/dist/tsup/{chunk-CMYS77J6.js.map → chunk-YRQ4F5CD.js.map} +0 -0
@@ -1,13 +1,13 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
2
2
 
3
- var _chunkG5RULGYQcjs = require('./chunk-G5RULGYQ.cjs');
3
+ var _chunkLNP7Q6I6cjs = require('./chunk-LNP7Q6I6.cjs');
4
4
 
5
5
 
6
- var _chunkPWFGP2UScjs = require('./chunk-PWFGP2US.cjs');
6
+ var _chunkGX6W4MW3cjs = require('./chunk-GX6W4MW3.cjs');
7
7
 
8
8
 
9
9
 
10
- var _chunkJ5P6S2LCcjs = require('./chunk-J5P6S2LC.cjs');
10
+ var _chunkRDBGKI66cjs = require('./chunk-RDBGKI66.cjs');
11
11
 
12
12
  // src/workflow/inspector.ts
13
13
  function createHistoryEmitter() {
@@ -39,7 +39,7 @@ function createWorkflowInspectorAdapter() {
39
39
  };
40
40
  const update = (snapshot) => {
41
41
  const transportHistory = toWorkflowHistory(snapshot);
42
- const next = _chunkG5RULGYQcjs.encodeWorkflowHistoryTransport.call(void 0, transportHistory);
42
+ const next = _chunkLNP7Q6I6cjs.encodeWorkflowHistoryTransport.call(void 0, transportHistory);
43
43
  history = next;
44
44
  emitter.emit(next);
45
45
  };
@@ -55,7 +55,7 @@ function createWorkflowInspectorAdapter() {
55
55
  };
56
56
  }
57
57
  function encodeCbor(value) {
58
- return _chunkJ5P6S2LCcjs.bufferToArrayBuffer.call(void 0, _chunkPWFGP2UScjs.encodeCborCompat.call(void 0, value));
58
+ return _chunkRDBGKI66cjs.bufferToArrayBuffer.call(void 0, _chunkGX6W4MW3cjs.encodeCborCompat.call(void 0, value));
59
59
  }
60
60
  function encodeOptionalCbor(value) {
61
61
  if (value === void 0) {
@@ -144,7 +144,7 @@ function toWorkflowEntryKind(kind) {
144
144
  }
145
145
  };
146
146
  default:
147
- _chunkJ5P6S2LCcjs.assertUnreachable.call(void 0, kind);
147
+ _chunkRDBGKI66cjs.assertUnreachable.call(void 0, kind);
148
148
  }
149
149
  }
150
150
  function toWorkflowEntry(entry) {
@@ -167,7 +167,7 @@ function toWorkflowEntryStatus(status) {
167
167
  case "exhausted":
168
168
  return "EXHAUSTED" /* EXHAUSTED */;
169
169
  default:
170
- _chunkJ5P6S2LCcjs.assertUnreachable.call(void 0, status);
170
+ _chunkRDBGKI66cjs.assertUnreachable.call(void 0, status);
171
171
  }
172
172
  }
173
173
  function toWorkflowSleepState(state) {
@@ -179,7 +179,7 @@ function toWorkflowSleepState(state) {
179
179
  case "interrupted":
180
180
  return "INTERRUPTED" /* INTERRUPTED */;
181
181
  default:
182
- _chunkJ5P6S2LCcjs.assertUnreachable.call(void 0, state);
182
+ _chunkRDBGKI66cjs.assertUnreachable.call(void 0, state);
183
183
  }
184
184
  }
185
185
  function toWorkflowBranchStatusType(status) {
@@ -195,7 +195,7 @@ function toWorkflowBranchStatusType(status) {
195
195
  case "cancelled":
196
196
  return "CANCELLED" /* CANCELLED */;
197
197
  default:
198
- _chunkJ5P6S2LCcjs.assertUnreachable.call(void 0, status);
198
+ _chunkRDBGKI66cjs.assertUnreachable.call(void 0, status);
199
199
  }
200
200
  }
201
201
  function toWorkflowBranchStatus(status) {
@@ -242,4 +242,4 @@ function toWorkflowHistory(snapshot) {
242
242
 
243
243
 
244
244
  exports.createWorkflowInspectorAdapter = createWorkflowInspectorAdapter;
245
- //# sourceMappingURL=chunk-4K3MV2MW.cjs.map
245
+ //# sourceMappingURL=chunk-2NXFKPRB.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-2NXFKPRB.cjs","../../src/workflow/inspector.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACA;ACUA,SAAS,oBAAA,CAAA,EAAuB;AAC/B,EAAA,MAAM,UAAA,kBAAY,IAAI,GAAA,CAAqB,CAAA;AAE3C,EAAA,OAAO;AAAA,IACN,EAAA,EAAI,CAAC,QAAA,EAAA,GAA8B;AAClC,MAAA,SAAA,CAAU,GAAA,CAAI,QAAQ,CAAA;AACtB,MAAA,OAAO,CAAA,EAAA,GAAM,SAAA,CAAU,MAAA,CAAO,QAAQ,CAAA;AAAA,IACvC,CAAA;AAAA,IACA,IAAA,EAAM,CAAC,OAAA,EAAA,GAA6C;AACnD,MAAA,IAAA,CAAA,MAAW,SAAA,GAAY,SAAA,EAAW;AACjC,QAAA,QAAA,CAAS,OAAO,CAAA;AAAA,MACjB;AAAA,IACD;AAAA,EACD,CAAA;AACD;AAaO,SAAS,8BAAA,CAAA,EASd;AACD,EAAA,MAAM,QAAA,EAAU,oBAAA,CAAqB,CAAA;AACrC,EAAA,IAAI,QAAA,EAAkD,IAAA;AACtD,EAAA,IAAI,SAAA,EAAgD,MAAA,CAAA,EAAA,GAAY,IAAA;AAChE,EAAA,IAAI,eAAA,EAEmD,MAAA,CAAA,EAAA,GAAY;AAClE,IAAA,MAAM,IAAI,KAAA,CAAM,8CAA8C,CAAA;AAAA,EAC/D,CAAA;AAEA,EAAA,MAAM,QAAA,EAAoC;AAAA,IACzC,UAAA,EAAY,CAAA,EAAA,GAAM,OAAA;AAAA,IAClB,QAAA,EAAU,MAAA,CAAA,EAAA,GAAY,MAAM,QAAA,CAAS,CAAA;AAAA,IACrC,gBAAA,EAAkB,CAAC,QAAA,EAAA,GAAa,OAAA,CAAQ,EAAA,CAAG,QAAQ,CAAA;AAAA,IACnD,cAAA,EAAgB,MAAA,CAAO,OAAA,EAAA,GAAY,MAAM,cAAA,CAAe,OAAO;AAAA,EAChE,CAAA;AAEA,EAAA,MAAM,OAAA,EAAS,CAAC,QAAA,EAAA,GAAsC;AACrD,IAAA,MAAM,iBAAA,EAAmB,iBAAA,CAAkB,QAAQ,CAAA;AACnD,IAAA,MAAM,KAAA,EAAO,8DAAA,gBAA+C,CAAA;AAC5D,IAAA,QAAA,EAAU,IAAA;AACV,IAAA,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAA;AAAA,EAClB,CAAA;AAEA,EAAA,OAAO;AAAA,IACN,OAAA;AAAA,IACA,MAAA;AAAA,IACA,WAAA,EAAa,CAAC,EAAA,EAAA,GAAO;AACpB,MAAA,SAAA,EAAW,EAAA;AAAA,IACZ,CAAA;AAAA,IACA,iBAAA,EAAmB,CAAC,EAAA,EAAA,GAAO;AAC1B,MAAA,eAAA,EAAiB,EAAA;AAAA,IAClB;AAAA,EACD,CAAA;AACD;AAEA,SAAS,UAAA,CAAW,KAAA,EAA6B;AAChD,EAAA,OAAO,mDAAA,gDAAoB,KAAyC,CAAC,CAAA;AACtE;AAEA,SAAS,kBAAA,CAAmB,KAAA,EAAoC;AAC/D,EAAA,GAAA,CAAI,MAAA,IAAU,KAAA,CAAA,EAAW;AACxB,IAAA,OAAO,IAAA;AAAA,EACR;AACA,EAAA,OAAO,UAAA,CAAW,KAAK,CAAA;AACxB;AAEA,SAAS,KAAA,CAAM,KAAA,EAAuB;AACrC,EAAA,OAAO,MAAA,CAAO,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,KAAK,CAAC,CAAC,CAAA;AAC7C;AAEA,SAAS,kBAAA,CAAmB,QAAA,EAAgD;AAC3E,EAAA,OAAO,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,EAAA,GAAY;AAChC,IAAA,GAAA,CAAI,OAAO,QAAA,IAAY,QAAA,EAAU;AAChC,MAAA,OAAO,EAAE,GAAA,EAAK,mBAAA,EAAqB,GAAA,EAAK,QAAQ,CAAA;AAAA,IACjD;AACA,IAAA,OAAO;AAAA,MACN,GAAA,EAAK,6BAAA;AAAA,MACL,GAAA,EAAK;AAAA,QACJ,IAAA,EAAM,OAAA,CAAQ,IAAA;AAAA,QACd,SAAA,EAAW,OAAA,CAAQ;AAAA,MACpB;AAAA,IACD,CAAA;AAAA,EACD,CAAC,CAAA;AACF;AAEA,SAAS,mBAAA,CAAoB,IAAA,EAA8C;AAC1E,EAAA,OAAA,CAAQ,IAAA,CAAK,IAAA,EAAM;AAAA,IAClB,KAAK,MAAA;AACJ,MAAA,OAAO;AAAA,QACN,GAAA,EAAK,mBAAA;AAAA,QACL,GAAA,EAAK;AAAA,UACJ,MAAA,EAAQ,kBAAA,CAAmB,IAAA,CAAK,IAAA,CAAK,MAAM,CAAA;AAAA,UAC3C,KAAA,mBAAO,IAAA,CAAK,IAAA,CAAK,KAAA,UAAS;AAAA,QAC3B;AAAA,MACD,CAAA;AAAA,IACD,KAAK,MAAA;AACJ,MAAA,OAAO;AAAA,QACN,GAAA,EAAK,mBAAA;AAAA,QACL,GAAA,EAAK;AAAA,UACJ,KAAA,EAAO,UAAA,CAAW,IAAA,CAAK,IAAA,CAAK,KAAK,CAAA;AAAA,UACjC,SAAA,EAAW,IAAA,CAAK,IAAA,CAAK,SAAA;AAAA,UACrB,MAAA,EAAQ,kBAAA,CAAmB,IAAA,CAAK,IAAA,CAAK,MAAM;AAAA,QAC5C;AAAA,MACD,CAAA;AAAA,IACD,KAAK,OAAA;AACJ,MAAA,OAAO;AAAA,QACN,GAAA,EAAK,oBAAA;AAAA,QACL,GAAA,EAAK;AAAA,UACJ,QAAA,EAAU,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,QAAQ,CAAA;AAAA,UAClC,KAAA,EAAO,oBAAA,CAAqB,IAAA,CAAK,IAAA,CAAK,KAAK;AAAA,QAC5C;AAAA,MACD,CAAA;AAAA,IACD,KAAK,SAAA;AACJ,MAAA,OAAO;AAAA,QACN,GAAA,EAAK,sBAAA;AAAA,QACL,GAAA,EAAK;AAAA,UACJ,IAAA,EAAM,IAAA,CAAK,IAAA,CAAK,IAAA;AAAA,UAChB,WAAA,EAAa,UAAA,CAAW,IAAA,CAAK,IAAA,CAAK,IAAI;AAAA,QACvC;AAAA,MACD,CAAA;AAAA,IACD,KAAK,qBAAA;AACJ,MAAA,OAAO;AAAA,QACN,GAAA,EAAK,iCAAA;AAAA,QACL,GAAA,EAAK,EAAE,IAAA,EAAM,IAAA,CAAK,IAAA,CAAK,KAAK;AAAA,MAC7B,CAAA;AAAA,IACD,KAAK,MAAA;AACJ,MAAA,OAAO;AAAA,QACN,GAAA,EAAK,mBAAA;AAAA,QACL,GAAA,EAAK;AAAA,UACJ,QAAA,EAAU,yBAAA,CAA0B,IAAA,CAAK,IAAA,CAAK,QAAQ;AAAA,QACvD;AAAA,MACD,CAAA;AAAA,IACD,KAAK,MAAA;AACJ,MAAA,OAAO;AAAA,QACN,GAAA,EAAK,mBAAA;AAAA,QACL,GAAA,EAAK;AAAA,UACJ,MAAA,mBAAQ,IAAA,CAAK,IAAA,CAAK,MAAA,UAAU,MAAA;AAAA,UAC5B,QAAA,EAAU,yBAAA,CAA0B,IAAA,CAAK,IAAA,CAAK,QAAQ;AAAA,QACvD;AAAA,MACD,CAAA;AAAA,IACD,KAAK,SAAA;AACJ,MAAA,OAAO;AAAA,QACN,GAAA,EAAK,sBAAA;AAAA,QACL,GAAA,EAAK;AAAA,UACJ,YAAA,EAAc,IAAA,CAAK,IAAA,CAAK,YAAA;AAAA,UACxB,YAAA,mBAAc,IAAA,CAAK,IAAA,CAAK,YAAA,UAAgB;AAAA,QACzC;AAAA,MACD,CAAA;AAAA,IACD,OAAA;AACC,MAAA,iDAAA,IAA+B,CAAA;AAAA,EACjC;AACD;AAEA,SAAS,eAAA,CAAgB,KAAA,EAAsD;AAC9E,EAAA,OAAO;AAAA,IACN,EAAA,EAAI,KAAA,CAAM,EAAA;AAAA,IACV,QAAA,EAAU,kBAAA,CAAmB,KAAA,CAAM,QAAQ,CAAA;AAAA,IAC3C,IAAA,EAAM,mBAAA,CAAoB,KAAA,CAAM,IAAI;AAAA,EACrC,CAAA;AACD;AAEA,SAAS,qBAAA,CACR,MAAA,EACgC;AAChC,EAAA,OAAA,CAAQ,MAAA,EAAQ;AAAA,IACf,KAAK,SAAA;AACJ,MAAA,OAAA,uBAAA;AAAA,IACD,KAAK,SAAA;AACJ,MAAA,OAAA,uBAAA;AAAA,IACD,KAAK,WAAA;AACJ,MAAA,OAAA,2BAAA;AAAA,IACD,KAAK,QAAA;AACJ,MAAA,OAAA,qBAAA;AAAA,IACD,KAAK,WAAA;AACJ,MAAA,OAAA,2BAAA;AAAA,IACD,OAAA;AACC,MAAA,iDAAA,MAAiC,CAAA;AAAA,EACnC;AACD;AAEA,SAAS,oBAAA,CAAqB,KAAA,EAAiD;AAC9E,EAAA,OAAA,CAAQ,KAAA,EAAO;AAAA,IACd,KAAK,SAAA;AACJ,MAAA,OAAA,uBAAA;AAAA,IACD,KAAK,WAAA;AACJ,MAAA,OAAA,2BAAA;AAAA,IACD,KAAK,aAAA;AACJ,MAAA,OAAA,+BAAA;AAAA,IACD,OAAA;AACC,MAAA,iDAAA,KAAgC,CAAA;AAAA,EAClC;AACD;AAEA,SAAS,0BAAA,CACR,MAAA,EACqC;AACrC,EAAA,OAAA,CAAQ,MAAA,EAAQ;AAAA,IACf,KAAK,SAAA;AACJ,MAAA,OAAA,uBAAA;AAAA,IACD,KAAK,SAAA;AACJ,MAAA,OAAA,uBAAA;AAAA,IACD,KAAK,WAAA;AACJ,MAAA,OAAA,2BAAA;AAAA,IACD,KAAK,QAAA;AACJ,MAAA,OAAA,qBAAA;AAAA,IACD,KAAK,WAAA;AACJ,MAAA,OAAA,2BAAA;AAAA,IACD,OAAA;AACC,MAAA,iDAAA,MAAiC,CAAA;AAAA,EACnC;AACD;AAEA,SAAS,sBAAA,CACR,MAAA,EACiC;AACjC,EAAA,OAAO;AAAA,IACN,MAAA,EAAQ,0BAAA,CAA2B,MAAA,CAAO,MAAM,CAAA;AAAA,IAChD,MAAA,EAAQ,kBAAA,CAAmB,MAAA,CAAO,MAAM,CAAA;AAAA,IACxC,KAAA,mBAAO,MAAA,CAAO,KAAA,UAAS;AAAA,EACxB,CAAA;AACD;AAEA,SAAS,yBAAA,CACR,QAAA,EACsD;AACtD,EAAA,OAAO,IAAI,GAAA;AAAA,IACV,MAAA,CAAO,OAAA,CAAQ,QAAQ,CAAA,CAAE,GAAA,CAAI,CAAC,CAAC,IAAA,EAAM,MAAM,CAAA,EAAA,GAAM;AAAA,MAChD,IAAA;AAAA,MACA,sBAAA,CAAuB,MAAM;AAAA,IAC9B,CAAC;AAAA,EACF,CAAA;AACD;AAEA,SAAS,uBAAA,CACR,QAAA,EACkC;AAClC,EAAA,MAAM,oBAAA,EACL,QAAA,CAGC,mBAAA;AACF,EAAA,MAAM,cAAA,EACL,QAAA,CAGC,aAAA;AAEF,EAAA,OAAO;AAAA,IACN,MAAA,EAAQ,qBAAA,CAAsB,QAAA,CAAS,MAAM,CAAA;AAAA,IAC7C,KAAA,mBAAO,QAAA,CAAS,KAAA,UAAS,MAAA;AAAA,IACzB,QAAA,EAAU,QAAA,CAAS,QAAA;AAAA,IACnB,aAAA,EAAe,KAAA,CAAM,QAAA,CAAS,aAAa,CAAA;AAAA,IAC3C,SAAA,EAAW,KAAA,CAAM,QAAA,CAAS,SAAS,CAAA;AAAA,IACnC,WAAA,EACC,QAAA,CAAS,YAAA,IAAgB,KAAA,EAAA,EACtB,KAAA,EACA,KAAA,CAAM,QAAA,CAAS,WAAW,CAAA;AAAA,IAC9B,mBAAA,EACC,oBAAA,IAAwB,KAAA,EAAA,EACrB,KAAA,EACA,KAAA,CAAM,mBAAmB,CAAA;AAAA,IAC7B,aAAA,mBAAe,aAAA,UAAiB;AAAA,EACjC,CAAA;AACD;AAEA,SAAS,iBAAA,CACR,QAAA,EAC4B;AAC5B,EAAA,MAAM,cAAA,kBAAgB,IAAI,GAAA,CAA6C,CAAA;AACvE,EAAA,IAAA,CAAA,MAAW,CAAC,EAAA,EAAI,QAAQ,EAAA,GAAK,QAAA,CAAS,aAAA,EAAe;AACpD,IAAA,aAAA,CAAc,GAAA,CAAI,EAAA,EAAI,uBAAA,CAAwB,QAAQ,CAAC,CAAA;AAAA,EACxD;AAEA,EAAA,OAAO;AAAA,IACN,YAAA,EAAc,CAAC,GAAG,QAAA,CAAS,YAAY,CAAA;AAAA,IACvC,OAAA,EAAS,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,eAAe,CAAA;AAAA,IAC7C;AAAA,EACD,CAAA;AACD;AD5EA;AACA;AACE;AACF,wEAAC","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-2NXFKPRB.cjs","sourcesContent":[null,"import type {\n\tBranchStatus,\n\tBranchStatusType,\n\tEntryKind,\n\tEntryStatus,\n\tLocation,\n\tSleepState,\n\tWorkflowEntryMetadataSnapshot,\n\tWorkflowHistoryEntry,\n\tWorkflowHistorySnapshot,\n\tWorkflowState,\n} from \"@rivetkit/workflow-engine\";\nimport type * as inspectorSchema from \"@/common/bare/generated/inspector/v4\";\nimport * as transport from \"@/common/bare/transport/v1\";\nimport type { JsonCompatValue } from \"@/common/encoding\";\nimport { encodeWorkflowHistoryTransport } from \"@/common/inspector-transport\";\nimport { encodeCborCompat } from \"@/serde\";\nimport { assertUnreachable, bufferToArrayBuffer } from \"@/utils\";\n\ntype HistoryListener = (history: inspectorSchema.WorkflowHistory) => void;\n\nfunction createHistoryEmitter() {\n\tconst listeners = new Set<HistoryListener>();\n\n\treturn {\n\t\ton: (listener: HistoryListener) => {\n\t\t\tlisteners.add(listener);\n\t\t\treturn () => listeners.delete(listener);\n\t\t},\n\t\temit: (history: inspectorSchema.WorkflowHistory) => {\n\t\t\tfor (const listener of listeners) {\n\t\t\t\tlistener(history);\n\t\t\t}\n\t\t},\n\t};\n}\n\nexport interface WorkflowInspectorAdapter {\n\tgetHistory: () => inspectorSchema.WorkflowHistory | null;\n\tgetState: () => Promise<WorkflowState | null>;\n\tonHistoryUpdated: (\n\t\tlistener: (history: inspectorSchema.WorkflowHistory) => void,\n\t) => () => void;\n\treplayFromStep: (\n\t\tentryId?: string,\n\t) => Promise<inspectorSchema.WorkflowHistory | null>;\n}\n\nexport function createWorkflowInspectorAdapter(): {\n\tadapter: WorkflowInspectorAdapter;\n\tupdate: (snapshot: WorkflowHistorySnapshot) => void;\n\tsetGetState: (fn: () => Promise<WorkflowState | null>) => void;\n\tsetReplayFromStep: (\n\t\tfn: (\n\t\t\tentryId?: string,\n\t\t) => Promise<inspectorSchema.WorkflowHistory | null>,\n\t) => void;\n} {\n\tconst emitter = createHistoryEmitter();\n\tlet history: inspectorSchema.WorkflowHistory | null = null;\n\tlet getState: () => Promise<WorkflowState | null> = async () => null;\n\tlet replayFromStep: (\n\t\tentryId?: string,\n\t) => Promise<inspectorSchema.WorkflowHistory | null> = async () => {\n\t\tthrow new Error(\"Workflow replay controls are not initialized\");\n\t};\n\n\tconst adapter: WorkflowInspectorAdapter = {\n\t\tgetHistory: () => history,\n\t\tgetState: async () => await getState(),\n\t\tonHistoryUpdated: (listener) => emitter.on(listener),\n\t\treplayFromStep: async (entryId) => await replayFromStep(entryId),\n\t};\n\n\tconst update = (snapshot: WorkflowHistorySnapshot) => {\n\t\tconst transportHistory = toWorkflowHistory(snapshot);\n\t\tconst next = encodeWorkflowHistoryTransport(transportHistory);\n\t\thistory = next;\n\t\temitter.emit(next);\n\t};\n\n\treturn {\n\t\tadapter,\n\t\tupdate,\n\t\tsetGetState: (fn) => {\n\t\t\tgetState = fn;\n\t\t},\n\t\tsetReplayFromStep: (fn) => {\n\t\t\treplayFromStep = fn;\n\t\t},\n\t};\n}\n\nfunction encodeCbor(value: unknown): ArrayBuffer {\n\treturn bufferToArrayBuffer(encodeCborCompat(value as JsonCompatValue));\n}\n\nfunction encodeOptionalCbor(value: unknown): ArrayBuffer | null {\n\tif (value === undefined) {\n\t\treturn null;\n\t}\n\treturn encodeCbor(value);\n}\n\nfunction toU64(value: number): bigint {\n\treturn BigInt(Math.max(0, Math.floor(value)));\n}\n\nfunction toWorkflowLocation(location: Location): transport.WorkflowLocation {\n\treturn location.map((segment) => {\n\t\tif (typeof segment === \"number\") {\n\t\t\treturn { tag: \"WorkflowNameIndex\", val: segment };\n\t\t}\n\t\treturn {\n\t\t\ttag: \"WorkflowLoopIterationMarker\",\n\t\t\tval: {\n\t\t\t\tloop: segment.loop,\n\t\t\t\titeration: segment.iteration,\n\t\t\t},\n\t\t};\n\t});\n}\n\nfunction toWorkflowEntryKind(kind: EntryKind): transport.WorkflowEntryKind {\n\tswitch (kind.type) {\n\t\tcase \"step\":\n\t\t\treturn {\n\t\t\t\ttag: \"WorkflowStepEntry\",\n\t\t\t\tval: {\n\t\t\t\t\toutput: encodeOptionalCbor(kind.data.output),\n\t\t\t\t\terror: kind.data.error ?? null,\n\t\t\t\t},\n\t\t\t};\n\t\tcase \"loop\":\n\t\t\treturn {\n\t\t\t\ttag: \"WorkflowLoopEntry\",\n\t\t\t\tval: {\n\t\t\t\t\tstate: encodeCbor(kind.data.state),\n\t\t\t\t\titeration: kind.data.iteration,\n\t\t\t\t\toutput: encodeOptionalCbor(kind.data.output),\n\t\t\t\t},\n\t\t\t};\n\t\tcase \"sleep\":\n\t\t\treturn {\n\t\t\t\ttag: \"WorkflowSleepEntry\",\n\t\t\t\tval: {\n\t\t\t\t\tdeadline: toU64(kind.data.deadline),\n\t\t\t\t\tstate: toWorkflowSleepState(kind.data.state),\n\t\t\t\t},\n\t\t\t};\n\t\tcase \"message\":\n\t\t\treturn {\n\t\t\t\ttag: \"WorkflowMessageEntry\",\n\t\t\t\tval: {\n\t\t\t\t\tname: kind.data.name,\n\t\t\t\t\tmessageData: encodeCbor(kind.data.data),\n\t\t\t\t},\n\t\t\t};\n\t\tcase \"rollback_checkpoint\":\n\t\t\treturn {\n\t\t\t\ttag: \"WorkflowRollbackCheckpointEntry\",\n\t\t\t\tval: { name: kind.data.name },\n\t\t\t};\n\t\tcase \"join\":\n\t\t\treturn {\n\t\t\t\ttag: \"WorkflowJoinEntry\",\n\t\t\t\tval: {\n\t\t\t\t\tbranches: toWorkflowBranchStatusMap(kind.data.branches),\n\t\t\t\t},\n\t\t\t};\n\t\tcase \"race\":\n\t\t\treturn {\n\t\t\t\ttag: \"WorkflowRaceEntry\",\n\t\t\t\tval: {\n\t\t\t\t\twinner: kind.data.winner ?? null,\n\t\t\t\t\tbranches: toWorkflowBranchStatusMap(kind.data.branches),\n\t\t\t\t},\n\t\t\t};\n\t\tcase \"removed\":\n\t\t\treturn {\n\t\t\t\ttag: \"WorkflowRemovedEntry\",\n\t\t\t\tval: {\n\t\t\t\t\toriginalType: kind.data.originalType,\n\t\t\t\t\toriginalName: kind.data.originalName ?? null,\n\t\t\t\t},\n\t\t\t};\n\t\tdefault:\n\t\t\tassertUnreachable(kind as never);\n\t}\n}\n\nfunction toWorkflowEntry(entry: WorkflowHistoryEntry): transport.WorkflowEntry {\n\treturn {\n\t\tid: entry.id,\n\t\tlocation: toWorkflowLocation(entry.location),\n\t\tkind: toWorkflowEntryKind(entry.kind),\n\t};\n}\n\nfunction toWorkflowEntryStatus(\n\tstatus: EntryStatus,\n): transport.WorkflowEntryStatus {\n\tswitch (status) {\n\t\tcase \"pending\":\n\t\t\treturn transport.WorkflowEntryStatus.PENDING;\n\t\tcase \"running\":\n\t\t\treturn transport.WorkflowEntryStatus.RUNNING;\n\t\tcase \"completed\":\n\t\t\treturn transport.WorkflowEntryStatus.COMPLETED;\n\t\tcase \"failed\":\n\t\t\treturn transport.WorkflowEntryStatus.FAILED;\n\t\tcase \"exhausted\":\n\t\t\treturn transport.WorkflowEntryStatus.EXHAUSTED;\n\t\tdefault:\n\t\t\tassertUnreachable(status as never);\n\t}\n}\n\nfunction toWorkflowSleepState(state: SleepState): transport.WorkflowSleepState {\n\tswitch (state) {\n\t\tcase \"pending\":\n\t\t\treturn transport.WorkflowSleepState.PENDING;\n\t\tcase \"completed\":\n\t\t\treturn transport.WorkflowSleepState.COMPLETED;\n\t\tcase \"interrupted\":\n\t\t\treturn transport.WorkflowSleepState.INTERRUPTED;\n\t\tdefault:\n\t\t\tassertUnreachable(state as never);\n\t}\n}\n\nfunction toWorkflowBranchStatusType(\n\tstatus: BranchStatusType,\n): transport.WorkflowBranchStatusType {\n\tswitch (status) {\n\t\tcase \"pending\":\n\t\t\treturn transport.WorkflowBranchStatusType.PENDING;\n\t\tcase \"running\":\n\t\t\treturn transport.WorkflowBranchStatusType.RUNNING;\n\t\tcase \"completed\":\n\t\t\treturn transport.WorkflowBranchStatusType.COMPLETED;\n\t\tcase \"failed\":\n\t\t\treturn transport.WorkflowBranchStatusType.FAILED;\n\t\tcase \"cancelled\":\n\t\t\treturn transport.WorkflowBranchStatusType.CANCELLED;\n\t\tdefault:\n\t\t\tassertUnreachable(status as never);\n\t}\n}\n\nfunction toWorkflowBranchStatus(\n\tstatus: BranchStatus,\n): transport.WorkflowBranchStatus {\n\treturn {\n\t\tstatus: toWorkflowBranchStatusType(status.status),\n\t\toutput: encodeOptionalCbor(status.output),\n\t\terror: status.error ?? null,\n\t};\n}\n\nfunction toWorkflowBranchStatusMap(\n\tbranches: Record<string, BranchStatus>,\n): ReadonlyMap<string, transport.WorkflowBranchStatus> {\n\treturn new Map(\n\t\tObject.entries(branches).map(([name, status]) => [\n\t\t\tname,\n\t\t\ttoWorkflowBranchStatus(status),\n\t\t]),\n\t);\n}\n\nfunction toWorkflowEntryMetadata(\n\tmetadata: WorkflowEntryMetadataSnapshot,\n): transport.WorkflowEntryMetadata {\n\tconst rollbackCompletedAt = (\n\t\tmetadata as WorkflowEntryMetadataSnapshot & {\n\t\t\trollbackCompletedAt?: number;\n\t\t}\n\t).rollbackCompletedAt;\n\tconst rollbackError = (\n\t\tmetadata as WorkflowEntryMetadataSnapshot & {\n\t\t\trollbackError?: string | null;\n\t\t}\n\t).rollbackError;\n\n\treturn {\n\t\tstatus: toWorkflowEntryStatus(metadata.status),\n\t\terror: metadata.error ?? null,\n\t\tattempts: metadata.attempts,\n\t\tlastAttemptAt: toU64(metadata.lastAttemptAt),\n\t\tcreatedAt: toU64(metadata.createdAt),\n\t\tcompletedAt:\n\t\t\tmetadata.completedAt === undefined\n\t\t\t\t? null\n\t\t\t\t: toU64(metadata.completedAt),\n\t\trollbackCompletedAt:\n\t\t\trollbackCompletedAt === undefined\n\t\t\t\t? null\n\t\t\t\t: toU64(rollbackCompletedAt),\n\t\trollbackError: rollbackError ?? null,\n\t};\n}\n\nfunction toWorkflowHistory(\n\tsnapshot: WorkflowHistorySnapshot,\n): transport.WorkflowHistory {\n\tconst entryMetadata = new Map<string, transport.WorkflowEntryMetadata>();\n\tfor (const [id, metadata] of snapshot.entryMetadata) {\n\t\tentryMetadata.set(id, toWorkflowEntryMetadata(metadata));\n\t}\n\n\treturn {\n\t\tnameRegistry: [...snapshot.nameRegistry],\n\t\tentries: snapshot.entries.map(toWorkflowEntry),\n\t\tentryMetadata,\n\t};\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getLogger
3
- } from "./chunk-KU6VKVEK.js";
3
+ } from "./chunk-4FP4FFB5.js";
4
4
 
5
5
  // src/client/log.ts
6
6
  function logger() {
@@ -46,4 +46,4 @@ export {
46
46
  logger,
47
47
  importWebSocket
48
48
  };
49
- //# sourceMappingURL=chunk-6BI2MS3S.js.map
49
+ //# sourceMappingURL=chunk-3P2JUHWJ.js.map
@@ -2,7 +2,7 @@ import {
2
2
  INTERNAL_ERROR_CODE,
3
3
  INTERNAL_ERROR_DESCRIPTION,
4
4
  RivetError
5
- } from "./chunk-KIWH5H3K.js";
5
+ } from "./chunk-BRP62GZC.js";
6
6
 
7
7
  // src/utils/env-vars.ts
8
8
  var getRivetEngine = () => getEnvUniversal("RIVET_ENGINE");
@@ -144,7 +144,7 @@ function noopNext() {
144
144
  // package.json
145
145
  var package_default = {
146
146
  name: "rivetkit",
147
- version: "2.3.0-rc.10",
147
+ version: "2.3.0-rc.11",
148
148
  description: "Lightweight libraries for building stateful actors on edge platforms",
149
149
  license: "Apache-2.0",
150
150
  keywords: [
@@ -216,6 +216,16 @@ var package_default = {
216
216
  default: "./dist/tsup/db/drizzle.cjs"
217
217
  }
218
218
  },
219
+ "./dynamic": {
220
+ import: {
221
+ types: "./dist/tsup/dynamic/mod.d.ts",
222
+ default: "./dist/tsup/dynamic/mod.js"
223
+ },
224
+ require: {
225
+ types: "./dist/tsup/dynamic/mod.d.cts",
226
+ default: "./dist/tsup/dynamic/mod.cjs"
227
+ }
228
+ },
219
229
  "./client": {
220
230
  import: {
221
231
  browser: {
@@ -295,7 +305,7 @@ var package_default = {
295
305
  "./dist/tsup/chunk-*.cjs"
296
306
  ],
297
307
  scripts: {
298
- build: "tsup src/mod.ts src/client/mod.ts src/common/log.ts src/common/websocket.ts src/actor/errors.ts src/utils.ts src/workflow/mod.ts src/test/mod.ts src/inspector/mod.ts src/db/mod.ts src/db/drizzle.ts && tsup src/agent-os/index.ts --no-clean --out-dir dist/tsup/agent-os",
308
+ build: "tsup src/mod.ts src/client/mod.ts src/common/log.ts src/common/websocket.ts src/actor/errors.ts src/utils.ts src/workflow/mod.ts src/test/mod.ts src/inspector/mod.ts src/db/mod.ts src/db/drizzle.ts src/dynamic/mod.ts && tsup src/agent-os/index.ts --no-clean --out-dir dist/tsup/agent-os",
299
309
  "build:browser": "tsup --config tsup.browser.config.ts",
300
310
  "check-types": "tsc --noEmit",
301
311
  lint: "biome check . && pnpm run check:test-skips && pnpm run check:wait-for-comments",
@@ -312,13 +322,14 @@ var package_default = {
312
322
  "actor-config-schema-gen": "tsx scripts/actor-config-schema-gen.ts"
313
323
  },
314
324
  dependencies: {
315
- "@rivet-dev/agent-os-core": "^0.1.1",
316
325
  "@hono/node-server": "^1.18.2",
317
326
  "@hono/node-ws": "^1.1.1",
318
327
  "@hono/zod-openapi": "^1.1.5",
328
+ "@rivet-dev/agent-os-core": "^0.1.1",
319
329
  "@rivetkit/bare-ts": "^0.6.2",
320
330
  "@rivetkit/engine-cli": "workspace:*",
321
331
  "@rivetkit/engine-envoy-protocol": "workspace:*",
332
+ "@rivetkit/on-change": "6.0.1",
322
333
  "@rivetkit/rivetkit-napi": "workspace:*",
323
334
  "@rivetkit/rivetkit-wasm": "workspace:*",
324
335
  "@rivetkit/traces": "workspace:*",
@@ -336,10 +347,10 @@ var package_default = {
336
347
  zod: "^4.1.0"
337
348
  },
338
349
  devDependencies: {
350
+ "@biomejs/biome": "^2.3",
339
351
  "@copilotkit/llmock": "^1.6.0",
340
352
  "@rivet-dev/agent-os-common": "*",
341
353
  "@rivet-dev/agent-os-pi": "^0.1.1",
342
- "@biomejs/biome": "^2.3",
343
354
  "@standard-schema/spec": "^1.0.0",
344
355
  "@types/invariant": "^2",
345
356
  "@types/node": "^22.13.1",
@@ -419,6 +430,7 @@ function configureDefaultLogger(logLevel) {
419
430
  messageKey: "msg",
420
431
  // Do not include pid/hostname in output
421
432
  base: {},
433
+ errorKey: "error",
422
434
  // Keep the numeric level so the logfmt sink can match Pino's levels.
423
435
  formatters: {
424
436
  level(_label, number) {
@@ -788,4 +800,4 @@ export {
788
800
  getBaseLogger,
789
801
  getLogger
790
802
  };
791
- //# sourceMappingURL=chunk-KU6VKVEK.js.map
803
+ //# sourceMappingURL=chunk-4FP4FFB5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/env-vars.ts","../../src/common/utils.ts","../../package.json","../../src/common/log.ts","../../src/utils.ts"],"sourcesContent":["// This file consolidates all environment variables that affect RivetKit's behavior.\n//\n// IMPORTANT: When adding or modifying environment variables here, also update the\n// documentation at: website/src/content/docs/general/environment-variables.mdx\n\nimport { getEnvUniversal } from \"@/utils\";\n\n// Rivet configuration\nexport const getRivetEngine = (): string | undefined =>\n\tgetEnvUniversal(\"RIVET_ENGINE\");\nexport const getRivetEndpoint = (): string | undefined =>\n\tgetEnvUniversal(\"RIVET_ENDPOINT\");\nexport const getRivetToken = (): string | undefined =>\n\tgetEnvUniversal(\"RIVET_TOKEN\");\nexport const getRivetNamespace = (): string | undefined =>\n\tgetEnvUniversal(\"RIVET_NAMESPACE\");\nexport const getRivetPool = (): string | undefined =>\n\tgetEnvUniversal(\"RIVET_POOL\");\nexport const getRivetTotalSlots = (): number | undefined => {\n\tconst value = getEnvUniversal(\"RIVET_TOTAL_SLOTS\");\n\treturn value !== undefined ? parseInt(value, 10) : undefined;\n};\nexport const getRivetRunEngine = (): boolean =>\n\tgetEnvUniversal(\"RIVET_RUN_ENGINE\") === \"1\";\nexport const getRivetRunEngineVersion = (): string | undefined =>\n\tgetEnvUniversal(\"RIVET_RUN_ENGINE_VERSION\");\nexport const getRivetEnvoyKind = (): string | undefined =>\n\tgetEnvUniversal(\"RIVET_ENVOY_KIND\");\nexport const getRivetEnvoyVersion = (): number | undefined => {\n\tconst value = getEnvUniversal(\"RIVET_ENVOY_VERSION\");\n\treturn value !== undefined ? parseInt(value, 10) : undefined;\n};\nexport const getRivetPublicEndpoint = (): string | undefined =>\n\tgetEnvUniversal(\"RIVET_PUBLIC_ENDPOINT\");\nexport const getRivetPublicToken = (): string | undefined =>\n\tgetEnvUniversal(\"RIVET_PUBLIC_TOKEN\");\n// There is no RIVET_PUBLIC_NAMESPACE because the frontend and backend cannot\n// use different namespaces\n\n// RivetKit configuration\nexport const getRivetkitInspectorDisable = (): boolean =>\n\tgetEnvUniversal(\"RIVET_INSPECTOR_DISABLE\") === \"1\";\nexport const getRivetkitStoragePath = (): string | undefined =>\n\tgetEnvUniversal(\"RIVETKIT_STORAGE_PATH\");\nexport const getRivetkitRuntime = (): string | undefined =>\n\tgetEnvUniversal(\"RIVETKIT_RUNTIME\");\n\n// Logging configuration\n// DEPRECATED: LOG_LEVEL will be removed in a future version\nexport const getLogLevel = (): string | undefined =>\n\tgetEnvUniversal(\"RIVET_LOG_LEVEL\") ?? getEnvUniversal(\"LOG_LEVEL\");\nexport const getLogTarget = (): boolean =>\n\tgetEnvUniversal(\"RIVET_LOG_TARGET\") === \"1\";\nexport const getLogTimestamp = (): boolean =>\n\tgetEnvUniversal(\"RIVET_LOG_TIMESTAMP\") === \"1\";\nexport const getLogMessage = (): boolean =>\n\tgetEnvUniversal(\"RIVET_LOG_MESSAGE\") === \"1\";\nexport const getLogErrorStack = (): boolean =>\n\tgetEnvUniversal(\"RIVET_LOG_ERROR_STACK\") === \"1\";\nexport const getLogHeaders = (): boolean =>\n\tgetEnvUniversal(\"RIVET_LOG_HEADERS\") === \"1\";\n\n// Environment configuration\nexport const getNodeEnv = (): string | undefined => getEnvUniversal(\"NODE_ENV\");\nexport const getNextPhase = (): string | undefined =>\n\tgetEnvUniversal(\"NEXT_PHASE\");\nexport const isDev = (): boolean => getNodeEnv() !== \"production\";\n\n// Experimental\n/**\n * Enables experimental OTel tracing for Rivet Actors.\n *\n * When disabled, actors use an in-memory no-op traces implementation.\n */\nexport const getRivetExperimentalOtel = (): boolean =>\n\tgetEnvUniversal(\"RIVET_EXPERIMENTAL_OTEL\") === \"1\";\n","import type { Next } from \"hono\";\nimport type { ContentfulStatusCode } from \"hono/utils/http-status\";\nimport * as errors from \"@/actor/errors\";\nimport { getLogErrorStack } from \"@/utils/env-vars\";\n\nexport function assertUnreachable(x: never): never {\n\tthrow new Error(`Unreachable case: ${x}`);\n}\n\n/**\n * Safely stringifies an object, ensuring that the stringified object is under a certain size.\n * @param obj any object to stringify\n * @param maxSize maximum size of the stringified object in bytes\n * @returns stringified object\n */\nexport function safeStringify(obj: unknown, maxSize: number) {\n\tlet size = 0;\n\n\tfunction replacer(key: string, value: unknown) {\n\t\tif (value === null || value === undefined) return value;\n\t\tconst valueSize =\n\t\t\ttypeof value === \"string\"\n\t\t\t\t? value.length\n\t\t\t\t: JSON.stringify(value).length;\n\t\tsize += key.length + valueSize;\n\n\t\tif (size > maxSize) {\n\t\t\tthrow new Error(\n\t\t\t\t`JSON object exceeds size limit of ${maxSize} bytes.`,\n\t\t\t);\n\t\t}\n\n\t\treturn value;\n\t}\n\n\treturn JSON.stringify(obj, replacer);\n}\n\nexport interface DeconstructedError {\n\t__type: \"ActorError\";\n\tstatusCode: ContentfulStatusCode;\n\tpublic: boolean;\n\tgroup: string;\n\tcode: string;\n\tmessage: string;\n\tmetadata?: unknown;\n\tactor?: errors.ActorSpecifier;\n}\n\nfunction isCanonicalStructuredRivetError(\n\terror: unknown,\n): error is errors.RivetErrorLike {\n\treturn (\n\t\terror instanceof errors.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\n/**\n * Deconstructs errors into response fields. Bridge callback errors that cross\n * into rivetkit-core are sanitized there; this only classifies JS-local errors.\n */\nexport function deconstructError(\n\terror: unknown,\n\texposeInternalError = false,\n): DeconstructedError {\n\t// Build response error information. Only return errors if flagged as public in order to prevent leaking internal behavior.\n\tlet statusCode: ContentfulStatusCode;\n\tlet public_: boolean;\n\tlet group: string;\n\tlet code: string;\n\tlet message: string;\n\tlet metadata: unknown;\n\tlet actor: errors.ActorSpecifier | undefined;\n\t// Structured errors from core or from pre-built `RivetError` instances are canonical.\n\t// Only unstructured errors go through the classifier below.\n\tif (isCanonicalStructuredRivetError(error)) {\n\t\tstatusCode = (\n\t\t\ttypeof error.statusCode === \"number\"\n\t\t\t\t? error.statusCode\n\t\t\t\t: error.public\n\t\t\t\t\t? 400\n\t\t\t\t\t: 500\n\t\t) as ContentfulStatusCode;\n\t\tpublic_ = error.public ?? false;\n\t\tgroup = error.group;\n\t\tcode = error.code;\n\t\tmessage = error.message;\n\t\tmetadata = error.metadata;\n\t\tactor = error.actor;\n\t} else if (errors.ActorError.isActorError(error) && error.public) {\n\t\t// Check if error has statusCode (could be ActorError instance or DeconstructedError)\n\t\tstatusCode = (\n\t\t\t\"statusCode\" in error && error.statusCode ? error.statusCode : 400\n\t\t) as ContentfulStatusCode;\n\t\tpublic_ = true;\n\t\tgroup = error.group;\n\t\tcode = error.code;\n\t\tmessage = getErrorMessage(error);\n\t\tmetadata = error.metadata;\n\t\tactor = error.actor;\n\t} else if (exposeInternalError) {\n\t\tif (errors.ActorError.isActorError(error)) {\n\t\t\tstatusCode = 500;\n\t\t\tpublic_ = false;\n\t\t\tgroup = error.group;\n\t\t\tcode = error.code;\n\t\t\tmessage = getErrorMessage(error);\n\t\t\tmetadata = error.metadata;\n\t\t\tactor = error.actor;\n\t\t} else {\n\t\t\tstatusCode = 500;\n\t\t\tpublic_ = false;\n\t\t\tgroup = \"rivetkit\";\n\t\t\tcode = errors.INTERNAL_ERROR_CODE;\n\t\t\tmessage = getErrorMessage(error);\n\t\t}\n\t} else {\n\t\tstatusCode = 500;\n\t\tpublic_ = false;\n\t\tgroup = \"rivetkit\";\n\t\tcode = errors.INTERNAL_ERROR_CODE;\n\t\tmessage = errors.INTERNAL_ERROR_DESCRIPTION;\n\t\tif (errors.ActorError.isActorError(error)) {\n\t\t\tactor = error.actor;\n\t\t}\n\t\tmetadata = {\n\t\t\t//url: `https://hub.rivet.dev/projects/${actorMetadata.project.slug}/environments/${actorMetadata.environment.slug}/actors?actorId=${actorMetadata.actor.id}`,\n\t\t} satisfies errors.InternalErrorMetadata;\n\t}\n\n\treturn {\n\t\t__type: \"ActorError\",\n\t\tstatusCode,\n\t\tpublic: public_,\n\t\tgroup,\n\t\tcode,\n\t\tmessage,\n\t\tmetadata,\n\t\tactor,\n\t};\n}\n\nexport function stringifyError(error: unknown): string {\n\tif (error instanceof Error) {\n\t\tif (typeof process !== \"undefined\" && getLogErrorStack()) {\n\t\t\tlet stack: string | undefined;\n\t\t\ttry {\n\t\t\t\tstack = error.stack;\n\t\t\t} catch {\n\t\t\t\tstack = undefined;\n\t\t\t}\n\t\t\treturn `${error.name}: ${error.message}${stack ? `\\n${stack}` : \"\"}`;\n\t\t} else {\n\t\t\treturn `${error.name}: ${error.message}`;\n\t\t}\n\t} else if (typeof error === \"string\") {\n\t\treturn error;\n\t} else if (typeof error === \"object\" && error !== null) {\n\t\ttry {\n\t\t\treturn `${JSON.stringify(error)}`;\n\t\t} catch {\n\t\t\treturn \"[cannot stringify error]\";\n\t\t}\n\t} else {\n\t\treturn `Unknown error: ${getErrorMessage(error)}`;\n\t}\n}\n\nfunction getErrorMessage(err: unknown): string {\n\tif (\n\t\terr &&\n\t\ttypeof err === \"object\" &&\n\t\t\"message\" in err &&\n\t\ttypeof err.message === \"string\"\n\t) {\n\t\treturn err.message;\n\t} else {\n\t\treturn String(err);\n\t}\n}\n\n/** Generates a `Next` handler to pass to middleware in order to be able to call arbitrary middleware. */\nexport function noopNext(): Next {\n\treturn async () => {};\n}\n","{\n\t\"name\": \"rivetkit\",\n\t\"version\": \"2.3.0-rc.11\",\n\t\"description\": \"Lightweight libraries for building stateful actors on edge platforms\",\n\t\"license\": \"Apache-2.0\",\n\t\"keywords\": [\n\t\t\"rivetkit\",\n\t\t\"stateful\",\n\t\t\"serverless\",\n\t\t\"actors\",\n\t\t\"agents\",\n\t\t\"realtime\",\n\t\t\"websocket\",\n\t\t\"actors\",\n\t\t\"framework\"\n\t],\n\t\"files\": [\n\t\t\"dist\",\n\t\t\"schemas\",\n\t\t\"src\",\n\t\t\"package.json\"\n\t],\n\t\"type\": \"module\",\n\t\"exports\": {\n\t\t\".\": {\n\t\t\t\"import\": {\n\t\t\t\t\"types\": \"./dist/tsup/mod.d.ts\",\n\t\t\t\t\"default\": \"./dist/tsup/mod.js\"\n\t\t\t},\n\t\t\t\"require\": {\n\t\t\t\t\"types\": \"./dist/tsup/mod.d.cts\",\n\t\t\t\t\"default\": \"./dist/tsup/mod.cjs\"\n\t\t\t}\n\t\t},\n\t\t\"./workflow\": {\n\t\t\t\"import\": {\n\t\t\t\t\"types\": \"./dist/tsup/workflow/mod.d.ts\",\n\t\t\t\t\"default\": \"./dist/tsup/workflow/mod.js\"\n\t\t\t},\n\t\t\t\"require\": {\n\t\t\t\t\"types\": \"./dist/tsup/workflow/mod.d.cts\",\n\t\t\t\t\"default\": \"./dist/tsup/workflow/mod.cjs\"\n\t\t\t}\n\t\t},\n\t\t\"./test\": {\n\t\t\t\"import\": {\n\t\t\t\t\"types\": \"./dist/tsup/test/mod.d.ts\",\n\t\t\t\t\"default\": \"./dist/tsup/test/mod.js\"\n\t\t\t},\n\t\t\t\"require\": {\n\t\t\t\t\"types\": \"./dist/tsup/test/mod.d.cts\",\n\t\t\t\t\"default\": \"./dist/tsup/test/mod.cjs\"\n\t\t\t}\n\t\t},\n\t\t\"./db\": {\n\t\t\t\"import\": {\n\t\t\t\t\"types\": \"./dist/tsup/db/mod.d.ts\",\n\t\t\t\t\"default\": \"./dist/tsup/db/mod.js\"\n\t\t\t},\n\t\t\t\"require\": {\n\t\t\t\t\"types\": \"./dist/tsup/db/mod.d.cts\",\n\t\t\t\t\"default\": \"./dist/tsup/db/mod.cjs\"\n\t\t\t}\n\t\t},\n\t\t\"./db/drizzle\": {\n\t\t\t\"import\": {\n\t\t\t\t\"types\": \"./dist/tsup/db/drizzle.d.ts\",\n\t\t\t\t\"default\": \"./dist/tsup/db/drizzle.js\"\n\t\t\t},\n\t\t\t\"require\": {\n\t\t\t\t\"types\": \"./dist/tsup/db/drizzle.d.cts\",\n\t\t\t\t\"default\": \"./dist/tsup/db/drizzle.cjs\"\n\t\t\t}\n\t\t},\n\t\t\"./dynamic\": {\n\t\t\t\"import\": {\n\t\t\t\t\"types\": \"./dist/tsup/dynamic/mod.d.ts\",\n\t\t\t\t\"default\": \"./dist/tsup/dynamic/mod.js\"\n\t\t\t},\n\t\t\t\"require\": {\n\t\t\t\t\"types\": \"./dist/tsup/dynamic/mod.d.cts\",\n\t\t\t\t\"default\": \"./dist/tsup/dynamic/mod.cjs\"\n\t\t\t}\n\t\t},\n\t\t\"./client\": {\n\t\t\t\"import\": {\n\t\t\t\t\"browser\": {\n\t\t\t\t\t\"types\": \"./dist/browser/client.d.ts\",\n\t\t\t\t\t\"default\": \"./dist/browser/client.js\"\n\t\t\t\t},\n\t\t\t\t\"types\": \"./dist/tsup/client/mod.d.ts\",\n\t\t\t\t\"default\": \"./dist/tsup/client/mod.js\"\n\t\t\t},\n\t\t\t\"require\": {\n\t\t\t\t\"types\": \"./dist/tsup/client/mod.d.cts\",\n\t\t\t\t\"default\": \"./dist/tsup/client/mod.cjs\"\n\t\t\t}\n\t\t},\n\t\t\"./log\": {\n\t\t\t\"import\": {\n\t\t\t\t\"types\": \"./dist/tsup/common/log.d.ts\",\n\t\t\t\t\"default\": \"./dist/tsup/common/log.js\"\n\t\t\t},\n\t\t\t\"require\": {\n\t\t\t\t\"types\": \"./dist/tsup/common/log.d.cts\",\n\t\t\t\t\"default\": \"./dist/tsup/common/log.cjs\"\n\t\t\t}\n\t\t},\n\t\t\"./errors\": {\n\t\t\t\"import\": {\n\t\t\t\t\"types\": \"./dist/tsup/actor/errors.d.ts\",\n\t\t\t\t\"default\": \"./dist/tsup/actor/errors.js\"\n\t\t\t},\n\t\t\t\"require\": {\n\t\t\t\t\"types\": \"./dist/tsup/actor/errors.d.cts\",\n\t\t\t\t\"default\": \"./dist/tsup/actor/errors.cjs\"\n\t\t\t}\n\t\t},\n\t\t\"./inspector\": {\n\t\t\t\"import\": {\n\t\t\t\t\"types\": \"./dist/tsup/inspector/mod.d.ts\",\n\t\t\t\t\"default\": \"./dist/tsup/inspector/mod.js\"\n\t\t\t},\n\t\t\t\"require\": {\n\t\t\t\t\"types\": \"./dist/tsup/inspector/mod.d.cts\",\n\t\t\t\t\"default\": \"./dist/tsup/inspector/mod.cjs\"\n\t\t\t}\n\t\t},\n\t\t\"./inspector/client\": {\n\t\t\t\"import\": {\n\t\t\t\t\"types\": \"./dist/browser/inspector/client.d.ts\",\n\t\t\t\t\"default\": \"./dist/browser/inspector/client.js\"\n\t\t\t}\n\t\t},\n\t\t\"./utils\": {\n\t\t\t\"import\": {\n\t\t\t\t\"types\": \"./dist/tsup/utils.d.ts\",\n\t\t\t\t\"default\": \"./dist/tsup/utils.js\"\n\t\t\t},\n\t\t\t\"require\": {\n\t\t\t\t\"types\": \"./dist/tsup/utils.d.cts\",\n\t\t\t\t\"default\": \"./dist/tsup/utils.cjs\"\n\t\t\t}\n\t\t},\n\t\t\"./agent-os\": {\n\t\t\t\"import\": {\n\t\t\t\t\"types\": \"./dist/tsup/agent-os/index.d.ts\",\n\t\t\t\t\"default\": \"./dist/tsup/agent-os/index.js\"\n\t\t\t},\n\t\t\t\"require\": {\n\t\t\t\t\"types\": \"./dist/tsup/agent-os/index.d.cts\",\n\t\t\t\t\"default\": \"./dist/tsup/agent-os/index.cjs\"\n\t\t\t}\n\t\t}\n\t},\n\t\"engines\": {\n\t\t\"node\": \">=22.0.0\"\n\t},\n\t\"sideEffects\": [\n\t\t\"./dist/tsup/chunk-*.js\",\n\t\t\"./dist/tsup/chunk-*.cjs\"\n\t],\n\t\"scripts\": {\n\t\t\"build\": \"tsup src/mod.ts src/client/mod.ts src/common/log.ts src/common/websocket.ts src/actor/errors.ts src/utils.ts src/workflow/mod.ts src/test/mod.ts src/inspector/mod.ts src/db/mod.ts src/db/drizzle.ts src/dynamic/mod.ts && tsup src/agent-os/index.ts --no-clean --out-dir dist/tsup/agent-os\",\n\t\t\"build:browser\": \"tsup --config tsup.browser.config.ts\",\n\t\t\"check-types\": \"tsc --noEmit\",\n\t\t\"lint\": \"biome check . && pnpm run check:test-skips && pnpm run check:wait-for-comments\",\n\t\t\"lint:fix\": \"biome check --write .\",\n\t\t\"check:test-skips\": \"tsx scripts/check-annotated-skips.ts\",\n\t\t\"check:wait-for-comments\": \"tsx scripts/check-wait-for-comments.ts\",\n\t\t\"format\": \"biome format .\",\n\t\t\"format:write\": \"biome format --write .\",\n\t\t\"test\": \"vitest run\",\n\t\t\"test:platforms\": \"pnpm run build && RIVETKIT_INCLUDE_PLATFORM_TESTS=1 vitest run tests/platforms --passWithNoTests\",\n\t\t\"test:watch\": \"vitest\",\n\t\t\"dump-asyncapi\": \"tsx scripts/dump-asyncapi.ts\",\n\t\t\"registry-config-schema-gen\": \"tsx scripts/registry-config-schema-gen.ts\",\n\t\t\"actor-config-schema-gen\": \"tsx scripts/actor-config-schema-gen.ts\"\n\t},\n\t\"dependencies\": {\n\t\t\"@hono/node-server\": \"^1.18.2\",\n\t\t\"@hono/node-ws\": \"^1.1.1\",\n\t\t\"@hono/zod-openapi\": \"^1.1.5\",\n\t\t\"@rivet-dev/agent-os-core\": \"^0.1.1\",\n\t\t\"@rivetkit/bare-ts\": \"^0.6.2\",\n\t\t\"@rivetkit/engine-cli\": \"workspace:*\",\n\t\t\"@rivetkit/engine-envoy-protocol\": \"workspace:*\",\n\t\t\"@rivetkit/on-change\": \"6.0.1\",\n\t\t\"@rivetkit/rivetkit-napi\": \"workspace:*\",\n\t\t\"@rivetkit/rivetkit-wasm\": \"workspace:*\",\n\t\t\"@rivetkit/traces\": \"workspace:*\",\n\t\t\"@rivetkit/virtual-websocket\": \"workspace:*\",\n\t\t\"@rivetkit/workflow-engine\": \"workspace:*\",\n\t\t\"cbor-x\": \"^1.6.0\",\n\t\t\"drizzle-orm\": \"^0.44.2\",\n\t\t\"get-port\": \"^7.1.0\",\n\t\t\"hono\": \"^4.7.0\",\n\t\t\"invariant\": \"^2.2.4\",\n\t\t\"p-retry\": \"^6.2.1\",\n\t\t\"pino\": \"^9.5.0\",\n\t\t\"uuid\": \"^12.0.0\",\n\t\t\"vbare\": \"^0.0.4\",\n\t\t\"zod\": \"^4.1.0\"\n\t},\n\t\"devDependencies\": {\n\t\t\"@biomejs/biome\": \"^2.3\",\n\t\t\"@copilotkit/llmock\": \"^1.6.0\",\n\t\t\"@rivet-dev/agent-os-common\": \"*\",\n\t\t\"@rivet-dev/agent-os-pi\": \"^0.1.1\",\n\t\t\"@standard-schema/spec\": \"^1.0.0\",\n\t\t\"@types/invariant\": \"^2\",\n\t\t\"@types/node\": \"^22.13.1\",\n\t\t\"eventsource\": \"^4.0.0\",\n\t\t\"tsup\": \"^8.4.0\",\n\t\t\"tsx\": \"^4.19.4\",\n\t\t\"typescript\": \"^5.7.3\",\n\t\t\"vite-tsconfig-paths\": \"^5.1.4\",\n\t\t\"vitest\": \"^3.1.1\",\n\t\t\"ws\": \"^8.18.1\"\n\t},\n\t\"peerDependencies\": {\n\t\t\"drizzle-kit\": \"^0.31.2\",\n\t\t\"eventsource\": \"^4.0.0\",\n\t\t\"ws\": \"^8.0.0\"\n\t},\n\t\"peerDependenciesMeta\": {\n\t\t\"drizzle-kit\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eventsource\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"ws\": {\n\t\t\t\"optional\": true\n\t\t}\n\t},\n\t\"stableVersion\": \"0.8.0\"\n}\n","import {\n\ttype DestinationStream,\n\ttype LevelWithSilent,\n\ttype Logger,\n\tpino,\n\tstdTimeFunctions,\n} from \"pino\";\nimport { z } from \"zod/v4\";\nimport { getLogLevel, getLogTarget, getLogTimestamp } from \"@/utils/env-vars\";\n\nexport type { Logger } from \"pino\";\n\nlet baseLogger: Logger | undefined;\nlet configuredLogLevel: LogLevel | undefined;\n\n/** Cache of child loggers by logger name. */\nconst loggerCache = new Map<string, Logger>();\n\nexport const LogLevelSchema = z.enum([\n\t\"trace\",\n\t\"debug\",\n\t\"info\",\n\t\"warn\",\n\t\"error\",\n\t\"fatal\",\n\t\"silent\",\n]);\n\nexport type LogLevel = z.infer<typeof LogLevelSchema>;\n\nexport function getPinoLevel(logLevel?: LogLevel): LevelWithSilent {\n\t// Priority: provided > configured > env > default\n\tif (logLevel) {\n\t\treturn logLevel;\n\t}\n\n\tif (configuredLogLevel) {\n\t\treturn configuredLogLevel;\n\t}\n\n\tconst raw = (getLogLevel() || \"warn\").toString().toLowerCase();\n\n\tconst parsed = LogLevelSchema.safeParse(raw);\n\tif (parsed.success) {\n\t\treturn parsed.data;\n\t}\n\n\t// Default to info if invalid\n\treturn \"info\";\n}\n\nexport function getIncludeTarget(): boolean {\n\treturn getLogTarget();\n}\n\n/**\n * Configure a custom base logger.\n */\nexport function configureBaseLogger(logger: Logger): void {\n\tbaseLogger = logger;\n\tloggerCache.clear();\n}\n\n/**\n * Configure the default logger with optional log level.\n */\nexport function configureDefaultLogger(logLevel?: LogLevel) {\n\t// Store the configured log level\n\tif (logLevel) {\n\t\tconfiguredLogLevel = logLevel;\n\t}\n\n\tbaseLogger = pino(\n\t\t{\n\t\t\tlevel: getPinoLevel(logLevel),\n\t\t\tmessageKey: \"msg\",\n\t\t\t// Do not include pid/hostname in output\n\t\t\tbase: {},\n\t\t\terrorKey: \"error\",\n\t\t\t// Keep the numeric level so the logfmt sink can match Pino's levels.\n\t\t\tformatters: {\n\t\t\t\tlevel(_label: string, number: number) {\n\t\t\t\t\treturn { level: number };\n\t\t\t\t},\n\t\t\t},\n\t\t\ttimestamp: getLogTimestamp() ? stdTimeFunctions.epochTime : false,\n\t\t},\n\t\tcreateLogfmtDestination(),\n\t);\n\n\tloggerCache.clear();\n}\n\n/**\n * Get or initialize the base logger.\n */\nexport function getBaseLogger(): Logger {\n\tif (!baseLogger) {\n\t\tconfigureDefaultLogger();\n\t}\n\treturn baseLogger!;\n}\n\n/**\n * Returns a child logger with `target` bound for the given name.\n */\nexport function getLogger(name = \"default\"): Logger {\n\t// Check cache first\n\tconst cached = loggerCache.get(name);\n\tif (cached) {\n\t\treturn cached;\n\t}\n\n\t// Create\n\tconst base = getBaseLogger();\n\n\t// Add target to log if enabled\n\tconst child = getIncludeTarget() ? base.child({ target: name }) : base;\n\n\t// Cache the logger\n\tloggerCache.set(name, child);\n\n\treturn child;\n}\n\nconst PINO_LEVEL_LABELS: Record<number, string> = {\n\t10: \"trace\",\n\t20: \"debug\",\n\t30: \"info\",\n\t40: \"warn\",\n\t50: \"error\",\n\t60: \"fatal\",\n};\n\nfunction createLogfmtDestination(): DestinationStream {\n\treturn {\n\t\twrite(msg: string): void {\n\t\t\tconst line = formatLogfmtLine(msg);\n\t\t\tif (typeof process !== \"undefined\" && process.stdout?.write) {\n\t\t\t\tprocess.stdout.write(`${line}\\n`);\n\t\t\t} else {\n\t\t\t\tconsole.log(line);\n\t\t\t}\n\t\t},\n\t};\n}\n\nfunction formatLogfmtLine(raw: string): string {\n\tlet data: Record<string, unknown>;\n\ttry {\n\t\tdata = JSON.parse(raw);\n\t} catch {\n\t\treturn raw.trimEnd();\n\t}\n\n\tconst parts: string[] = [];\n\tappendLogfmtEntry(parts, \"level\", formatPinoLevel(data.level));\n\n\tif (data.time !== undefined) {\n\t\tappendLogfmtEntry(parts, \"ts\", data.time);\n\t}\n\n\tfor (const [key, value] of Object.entries(data)) {\n\t\tif (key === \"level\" || key === \"time\") {\n\t\t\tcontinue;\n\t\t}\n\t\tappendLogfmtEntry(parts, key, value);\n\t}\n\n\treturn parts.join(\" \");\n}\n\nfunction formatPinoLevel(level: unknown): string {\n\tif (typeof level === \"number\") {\n\t\treturn PINO_LEVEL_LABELS[level] ?? level.toString();\n\t}\n\n\tif (typeof level === \"string\") {\n\t\treturn level.toLowerCase();\n\t}\n\n\treturn \"info\";\n}\n\nfunction appendLogfmtEntry(parts: string[], key: string, value: unknown): void {\n\tconst safeKey = key.replace(/[\\s=\"]/g, \"\");\n\tif (safeKey.length === 0) {\n\t\treturn;\n\t}\n\n\tparts.push(`${safeKey}=${formatLogfmtValue(value)}`);\n}\n\nfunction formatLogfmtValue(value: unknown): string {\n\tif (typeof value === \"number\" || typeof value === \"boolean\") {\n\t\treturn String(value);\n\t}\n\n\tif (value === null || value === undefined) {\n\t\treturn \"null\";\n\t}\n\n\tif (typeof value === \"string\") {\n\t\treturn quoteLogfmtString(value);\n\t}\n\n\treturn quoteLogfmtString(JSON.stringify(value));\n}\n\nfunction quoteLogfmtString(value: string): string {\n\tif (!/[\\s=\"]/.test(value)) {\n\t\treturn value;\n\t}\n\n\treturn `\"${value.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\")}\"`;\n}\n","import type { Context as HonoContext, Handler as HonoHandler } from \"hono\";\nimport { stringifyError } from \"@/common/utils\";\nimport pkgJson from \"../package.json\" with { type: \"json\" };\nimport { getLogger } from \"./common/log\";\nimport { assertUnreachable } from \"./common/utils\";\n\n/** @experimental */\nexport { stringifyError };\n\n/** @experimental */\nexport { assertUnreachable };\n\n/**\n * Joins multiple abort signals into one.\n *\n * The returned signal aborts when the first input signal aborts.\n * Uses `AbortSignal.any(...)` when available, with a runtime fallback.\n *\n * @experimental\n */\nexport function joinSignals(\n\t...signals: Array<AbortSignal | undefined | null>\n): AbortSignal {\n\tconst validSignals = signals.filter(\n\t\t(signal): signal is AbortSignal => signal != null,\n\t);\n\n\tif (validSignals.length === 0) {\n\t\treturn new AbortController().signal;\n\t}\n\n\tif (validSignals.length === 1) {\n\t\treturn validSignals[0];\n\t}\n\n\tconst signalAny = (\n\t\tAbortSignal as typeof AbortSignal & {\n\t\t\tany?: (signals: AbortSignal[]) => AbortSignal;\n\t\t}\n\t).any;\n\tif (typeof signalAny === \"function\") {\n\t\treturn signalAny(validSignals);\n\t}\n\n\tconst controller = new AbortController();\n\tconst cleanups: Array<() => void> = [];\n\n\tconst abortWithSignal = (signal: AbortSignal) => {\n\t\tif (controller.signal.aborted) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (const cleanup of cleanups) {\n\t\t\tcleanup();\n\t\t}\n\n\t\tconst reason = (signal as AbortSignal & { reason?: unknown }).reason;\n\t\tcontroller.abort(reason);\n\t};\n\n\tfor (const signal of validSignals) {\n\t\tif (signal.aborted) {\n\t\t\tabortWithSignal(signal);\n\t\t\tbreak;\n\t\t}\n\n\t\tconst onAbort = () => abortWithSignal(signal);\n\t\tsignal.addEventListener(\"abort\", onAbort, { once: true });\n\t\tcleanups.push(() => signal.removeEventListener(\"abort\", onAbort));\n\t}\n\n\treturn controller.signal;\n}\n\n/**\n * Returns a promise that resolves after the given number of milliseconds.\n *\n * @experimental\n */\nexport function sleep(ms: number): Promise<void> {\n\treturn new Promise<void>((resolve) => setTimeout(resolve, ms));\n}\n\n/**\n * Creates a fixed-rate interval tick function that can be awaited in a loop.\n *\n * @example\n * const tick = interval(100);\n * while (!c.aborted) {\n * await tick();\n * if (c.aborted) break;\n * // ... game logic\n * }\n *\n * @experimental\n */\nexport function interval(ms: number): () => Promise<void> {\n\treturn () => sleep(ms);\n}\n\nexport const VERSION = pkgJson.version;\n\nlet _userAgent: string | undefined;\n\nfunction logger() {\n\treturn getLogger(\"utils\");\n}\n\n/**\n * Builds the HTTP user agent used by this library.\n *\n * @experimental\n */\nexport function httpUserAgent(): string {\n\t// Return cached value if already initialized\n\tif (_userAgent !== undefined) {\n\t\treturn _userAgent;\n\t}\n\n\t// Library\n\tlet userAgent = `RivetKit/${VERSION}`;\n\n\t// Navigator\n\tconst navigatorObj =\n\t\ttypeof navigator !== \"undefined\" ? navigator : undefined;\n\tif (navigatorObj?.userAgent) userAgent += ` ${navigatorObj.userAgent}`;\n\n\t_userAgent = userAgent;\n\n\treturn userAgent;\n}\n\nexport type UpgradeWebSocket = (\n\tcreateEvents: (c: HonoContext) => any,\n) => HonoHandler;\n\nexport type GetUpgradeWebSocket = () => UpgradeWebSocket;\n\n/**\n * Reads an environment variable from Deno or Node runtimes.\n *\n * @experimental\n */\nexport function getEnvUniversal(key: string): string | undefined {\n\tif (typeof Deno !== \"undefined\") {\n\t\treturn Deno.env.get(key);\n\t} else if (typeof process !== \"undefined\") {\n\t\t// Do this after Deno since `process` is sometimes polyfilled\n\t\treturn process.env[key];\n\t}\n}\n\n/**\n * Traces a debug value and returns it.\n *\n * @experimental\n */\nexport function dbg<T>(x: T): T {\n\tconsole.trace(`=== DEBUG ===\\n${x}`);\n\treturn x;\n}\n\n/**\n * Converts various ArrayBuffer-like types to Uint8Array.\n * Handles ArrayBuffer, ArrayBufferView (including typed arrays), and passes through existing Uint8Array.\n *\n * @param data - The ArrayBuffer or ArrayBufferView to convert\n * @returns A Uint8Array view of the data\n *\n * @experimental\n */\nexport function toUint8Array(data: ArrayBuffer | ArrayBufferView): Uint8Array {\n\tif (data instanceof Uint8Array) {\n\t\treturn data;\n\t} else if (data instanceof ArrayBuffer) {\n\t\treturn new Uint8Array(data);\n\t} else if (ArrayBuffer.isView(data)) {\n\t\t// Handle other ArrayBufferView types (Int8Array, Uint16Array, DataView, etc.)\n\t\treturn new Uint8Array(\n\t\t\tdata.buffer.slice(\n\t\t\t\tdata.byteOffset,\n\t\t\t\tdata.byteOffset + data.byteLength,\n\t\t\t),\n\t\t);\n\t} else {\n\t\tthrow new TypeError(\"Input must be ArrayBuffer or ArrayBufferView\");\n\t}\n}\n\n// Long timeouts\n//\n// JavaScript timers use a signed 32-bit integer for delays, so values above 2^31-1 (~24.8 days)\n// are not reliable and may fire immediately or overflow.\n//\n// https://developer.mozilla.org/en-US/docs/Web/API/Window/setTimeout#maximum_delay_value\nconst TIMEOUT_MAX = 2147483647; // 2^31-1\n\nexport type LongTimeoutHandle = { abort: () => void };\n\n/**\n * Polyfill for Promise.withResolvers().\n *\n * This is specifically for Cloudflare Workers. Their implementation of Promise.withResolvers does not work correctly.\n *\n * @experimental\n */\nexport function promiseWithResolvers<T>(onReject: (reason?: any) => void): {\n\tpromise: Promise<T>;\n\tresolve: (value: T | PromiseLike<T>) => void;\n\treject: (reason?: any) => void;\n} {\n\tlet resolve!: (value: T | PromiseLike<T>) => void;\n\tlet reject!: (reason?: any) => void;\n\tconst promise = new Promise<T>((res, rej) => {\n\t\tresolve = res;\n\t\treject = rej;\n\t});\n\tpromise.catch(onReject);\n\treturn { promise, resolve, reject };\n}\n\n/**\n * Sets a timeout that supports delays larger than the JavaScript timer limit.\n *\n * @experimental\n */\nexport function setLongTimeout(\n\tlistener: () => void,\n\tafter: number,\n): LongTimeoutHandle {\n\tlet timeout: ReturnType<typeof setTimeout> | undefined;\n\n\tfunction start(remaining: number) {\n\t\tif (remaining <= TIMEOUT_MAX) {\n\t\t\ttimeout = setTimeout(listener, remaining);\n\t\t} else {\n\t\t\ttimeout = setTimeout(() => {\n\t\t\t\tstart(remaining - TIMEOUT_MAX);\n\t\t\t}, TIMEOUT_MAX);\n\t\t}\n\t}\n\n\tstart(after);\n\n\treturn {\n\t\tabort: () => {\n\t\t\tif (timeout !== undefined) clearTimeout(timeout);\n\t\t},\n\t};\n}\n\n/**\n * A tiny utility that coalesces/enqueues async operations so only the latest\n * queued task runs per cycle, while callers receive a promise that resolves\n * when the task for the cycle they joined has completed.\n */\nexport class SinglePromiseQueue {\n\t/** Next operation to execute in the queue. If attempting to enqueue another op, it will override the existing op. */\n\t#queuedOp?: () => Promise<void>;\n\n\t/** The currently running promise of #drainLoop. Do not await this, instead await `pending` to await the current cycle. */\n\trunningDrainLoop?: Promise<void>;\n\n\t/** Pending resolver fro the currently queued entry. */\n\t#pending?: ReturnType<typeof promiseWithResolvers<void>>;\n\n\t/** Queue the next operation and return a promise that resolves when it flushes. */\n\tenqueue(op: () => Promise<void>): Promise<void> {\n\t\t// Replace any previously queued operation with the latest one\n\t\tthis.#queuedOp = op;\n\n\t\t// Ensure a shared resolver exists for all callers in this cycle\n\t\tif (!this.#pending) {\n\t\t\tthis.#pending = promiseWithResolvers<void>((reason) =>\n\t\t\t\tlogger().warn({\n\t\t\t\t\tmsg: \"unhandled single promise queue rejection\",\n\t\t\t\t\treason,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\tconst waitForThisCycle = this.#pending.promise;\n\n\t\t// Start runner if not already running\n\t\tif (!this.runningDrainLoop) {\n\t\t\tthis.runningDrainLoop = this.#drainLoop();\n\t\t}\n\n\t\treturn waitForThisCycle;\n\t}\n\n\t/** Drain queued operations sequentially until there is nothing left. */\n\tasync #drainLoop(): Promise<void> {\n\t\ttry {\n\t\t\twhile (this.#queuedOp) {\n\t\t\t\t// Capture current cycle resolver then reset for the next cycle\n\t\t\t\tconst resolver = this.#pending;\n\t\t\t\tthis.#pending = undefined;\n\n\t\t\t\t// Capture and clear the currently queued operation\n\t\t\t\tconst op = this.#queuedOp;\n\t\t\t\tthis.#queuedOp = undefined;\n\n\t\t\t\ttry {\n\t\t\t\t\tawait op();\n\t\t\t\t\t// Notify all waiters for this cycle\n\t\t\t\t\tresolver?.resolve();\n\t\t\t\t} catch (err) {\n\t\t\t\t\tlogger().error({\n\t\t\t\t\t\tmsg: \"error in SinglePromiseQueue drain loop\",\n\t\t\t\t\t\terror: stringifyError(err),\n\t\t\t\t\t});\n\t\t\t\t\t// Reject all waiters for this cycle\n\t\t\t\t\tresolver?.reject(err);\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tthis.runningDrainLoop = undefined;\n\t\t}\n\t}\n}\n\n/**\n * Converts a Buffer or Uint8Array into an ArrayBuffer view.\n *\n * @experimental\n */\nexport function bufferToArrayBuffer(buf: Buffer | Uint8Array): ArrayBuffer {\n\treturn buf.buffer.slice(\n\t\tbuf.byteOffset,\n\t\tbuf.byteOffset + buf.byteLength,\n\t) as ArrayBuffer;\n}\n\n/**\n * Properly combines a base URL endpoint with a path, preserving any base path in the endpoint.\n *\n * @example\n * combineUrlPath(\"http://localhost:8787/rivet\", \"/actors/action\")\n * // Returns: \"http://localhost:8787/rivet/actors/action\"\n *\n * @example\n * combineUrlPath(\"http://localhost:8787/rivet\", \"/actors?type=foo\", { namespace: \"test\" })\n * // Returns: \"http://localhost:8787/rivet/actors?type=foo&namespace=test\"\n *\n * @param endpoint The base URL endpoint that may contain a path component\n * @param path The path to append to the endpoint (may include query parameters)\n * @param queryParams Optional additional query parameters to append\n * @returns The properly combined URL string\n *\n * @experimental\n */\nexport function combineUrlPath(\n\tendpoint: string,\n\tpath: string,\n\tqueryParams?: Record<string, string | undefined>,\n): string {\n\tconst baseUrl = new URL(endpoint);\n\n\t// Extract path and query from the provided path\n\tconst pathParts = path.split(\"?\");\n\tconst pathOnly = pathParts[0];\n\tconst existingQuery = pathParts[1] || \"\";\n\n\t// Remove trailing slash from base path and ensure path starts with /\n\tconst basePath = baseUrl.pathname.replace(/\\/$/, \"\");\n\tconst cleanPath = pathOnly.startsWith(\"/\") ? pathOnly : `/${pathOnly}`;\n\t// Combine paths and remove any double slashes\n\tconst fullPath = (basePath + cleanPath).replace(/\\/\\//g, \"/\");\n\n\t// Build query string\n\tconst queryParts: string[] = [];\n\tif (existingQuery) {\n\t\tqueryParts.push(existingQuery);\n\t}\n\tif (queryParams) {\n\t\tfor (const [key, value] of Object.entries(queryParams)) {\n\t\t\tif (value !== undefined) {\n\t\t\t\tqueryParts.push(\n\t\t\t\t\t`${encodeURIComponent(key)}=${encodeURIComponent(value)}`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst fullQuery = queryParts.length > 0 ? `?${queryParts.join(\"&\")}` : \"\";\n\treturn `${baseUrl.protocol}//${baseUrl.host}${fullPath}${fullQuery}`;\n}\n\n/**\n * Compares two ArrayBuffer values by byte content.\n *\n * @experimental\n */\nexport function arrayBuffersEqual(\n\tbuf1: ArrayBuffer,\n\tbuf2: ArrayBuffer,\n): boolean {\n\tif (buf1.byteLength !== buf2.byteLength) return false;\n\n\tconst view1 = new Uint8Array(buf1);\n\tconst view2 = new Uint8Array(buf2);\n\n\tfor (let i = 0; i < view1.length; i++) {\n\t\tif (view1[i] !== view2[i]) return false;\n\t}\n\treturn true;\n}\n\nexport const EXTRA_ERROR_LOG = {\n\tissues: \"https://github.com/rivet-dev/rivet/issues\",\n\tsupport: \"https://rivet.dev/discord\",\n\tversion: VERSION,\n};\n\nexport type Runtime = \"deno\" | \"bun\" | \"node\";\n\n/**\n * Detects the current JavaScript runtime from the user agent.\n *\n * @experimental\n */\nexport function detectRuntime(): Runtime {\n\tconst userAgent =\n\t\ttypeof navigator !== \"undefined\" ? navigator.userAgent : \"\";\n\tif (userAgent.includes(\"Deno\")) {\n\t\treturn \"deno\";\n\t}\n\tif (userAgent.includes(\"Bun\")) {\n\t\treturn \"bun\";\n\t}\n\treturn \"node\";\n}\n\nexport type DeepReadonly<T> = {\n\treadonly [K in keyof T]: T[K] extends object ? DeepReadonly<T[K]> : T[K];\n};\n\nexport type DeepMutable<T> = {\n\t-readonly [K in keyof T]: T[K] extends object ? DeepMutable<T[K]> : T[K];\n};\n"],"mappings":"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","names":["logger"]}
@@ -116,7 +116,7 @@ function decodeBridgeRivetErrorPayload(value) {
116
116
  if (!isRivetErrorLike(payload)) {
117
117
  return void 0;
118
118
  }
119
- if (payload.actor !== void 0 && !isActorSpecifier(payload.actor)) {
119
+ if (payload.actor !== void 0 && payload.actor !== null && !isActorSpecifier(payload.actor)) {
120
120
  return void 0;
121
121
  }
122
122
  return payload;
@@ -133,7 +133,7 @@ function decodeBridgeRivetError(value) {
133
133
  metadata: payload.metadata,
134
134
  public: payload.public,
135
135
  statusCode: payload.statusCode,
136
- actor: payload.actor
136
+ actor: payload.actor ?? void 0
137
137
  });
138
138
  }
139
139
  function isRivetErrorCode(error, group, code) {
@@ -242,4 +242,4 @@ export {
242
242
  forbiddenError,
243
243
  unsupportedFeature
244
244
  };
245
- //# sourceMappingURL=chunk-KIWH5H3K.js.map
245
+ //# sourceMappingURL=chunk-BRP62GZC.js.map
@@ -0,0 +1 @@
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/** 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\tpublic?: boolean;\n\tstatusCode?: number;\n\tactor?: ActorSpecifier;\n}\n\nexport interface BridgeRivetErrorPayload extends RivetErrorLike {}\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\"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(!(\"__type\" in error) || isTypedErrorTag(error.__type))\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 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.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\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\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\tpublic: error.public,\n\t\tstatusCode: error.statusCode,\n\t\tactor: error.actor,\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 payload = JSON.parse(\n\t\t\tvalue.slice(BRIDGE_RIVET_ERROR_PREFIX.length),\n\t\t) as BridgeRivetErrorPayload;\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\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\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":[]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  bufferToArrayBuffer,
3
3
  toUint8Array
4
- } from "./chunk-KU6VKVEK.js";
4
+ } from "./chunk-4FP4FFB5.js";
5
5
 
6
6
  // src/common/bare/transport/v1.ts
7
7
  import * as bare from "@rivetkit/bare-ts";
@@ -35,7 +35,10 @@ function readWorkflowPathSegment(bc) {
35
35
  case 0:
36
36
  return { tag: "WorkflowNameIndex", val: readWorkflowNameIndex(bc) };
37
37
  case 1:
38
- return { tag: "WorkflowLoopIterationMarker", val: readWorkflowLoopIterationMarker(bc) };
38
+ return {
39
+ tag: "WorkflowLoopIterationMarker",
40
+ val: readWorkflowLoopIterationMarker(bc)
41
+ };
39
42
  default: {
40
43
  bc.offset = offset;
41
44
  throw new bare.BareError(offset, "invalid tag");
@@ -331,17 +334,29 @@ function readWorkflowEntryKind(bc) {
331
334
  case 1:
332
335
  return { tag: "WorkflowLoopEntry", val: readWorkflowLoopEntry(bc) };
333
336
  case 2:
334
- return { tag: "WorkflowSleepEntry", val: readWorkflowSleepEntry(bc) };
337
+ return {
338
+ tag: "WorkflowSleepEntry",
339
+ val: readWorkflowSleepEntry(bc)
340
+ };
335
341
  case 3:
336
- return { tag: "WorkflowMessageEntry", val: readWorkflowMessageEntry(bc) };
342
+ return {
343
+ tag: "WorkflowMessageEntry",
344
+ val: readWorkflowMessageEntry(bc)
345
+ };
337
346
  case 4:
338
- return { tag: "WorkflowRollbackCheckpointEntry", val: readWorkflowRollbackCheckpointEntry(bc) };
347
+ return {
348
+ tag: "WorkflowRollbackCheckpointEntry",
349
+ val: readWorkflowRollbackCheckpointEntry(bc)
350
+ };
339
351
  case 5:
340
352
  return { tag: "WorkflowJoinEntry", val: readWorkflowJoinEntry(bc) };
341
353
  case 6:
342
354
  return { tag: "WorkflowRaceEntry", val: readWorkflowRaceEntry(bc) };
343
355
  case 7:
344
- return { tag: "WorkflowRemovedEntry", val: readWorkflowRemovedEntry(bc) };
356
+ return {
357
+ tag: "WorkflowRemovedEntry",
358
+ val: readWorkflowRemovedEntry(bc)
359
+ };
345
360
  default: {
346
361
  bc.offset = offset;
347
362
  throw new bare.BareError(offset, "invalid tag");
@@ -531,4 +546,4 @@ export {
531
546
  encodeWorkflowHistoryTransport,
532
547
  decodeWorkflowHistoryTransport
533
548
  };
534
- //# sourceMappingURL=chunk-G34LIR7S.js.map
549
+ //# sourceMappingURL=chunk-GRFBV2U7.js.map
@@ -0,0 +1 @@
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":[]}