experimental-agent 0.0.4 → 0.1.1

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 (44) hide show
  1. package/dist/agent-workflow.d.mts +2 -3
  2. package/dist/agent-workflow.d.ts +2 -3
  3. package/dist/agent-workflow.js +947 -436
  4. package/dist/agent-workflow.mjs +3 -2
  5. package/dist/chunk-2IIWVPZB.mjs +334 -0
  6. package/dist/chunk-A63YU65A.mjs +20 -0
  7. package/dist/{chunk-3ODWQVIA.mjs → chunk-BJTO5JO5.mjs} +1 -2
  8. package/dist/chunk-GJETDXOU.mjs +361 -0
  9. package/dist/chunk-RDKDLHXM.mjs +2031 -0
  10. package/dist/{chunk-T7PMZLOX.mjs → chunk-T2UUL6VC.mjs} +4 -4
  11. package/dist/{chunk-TQRCSTCF.mjs → chunk-VGJISV6O.mjs} +9 -4
  12. package/dist/chunk-VS7U6SXN.mjs +1261 -0
  13. package/dist/{client-SREKHM6I.mjs → client-66JIQLSA.mjs} +2 -2
  14. package/dist/client-DjcE0ATp.d.mts +710 -0
  15. package/dist/client-DwrDzn4_.d.ts +710 -0
  16. package/dist/client.mjs +1 -1
  17. package/dist/{handler-36FM5H35.mjs → handler-BQY5SOI2.mjs} +2 -2
  18. package/dist/index.d.mts +18 -4
  19. package/dist/index.d.ts +18 -4
  20. package/dist/index.js +1178 -509
  21. package/dist/index.mjs +152 -49
  22. package/dist/lifecycle-workflow.d.mts +3 -2
  23. package/dist/lifecycle-workflow.d.ts +3 -2
  24. package/dist/lifecycle-workflow.js +111 -5
  25. package/dist/lifecycle-workflow.mjs +3 -2
  26. package/dist/local-fs-handlers-Q5W52DKV.mjs +290 -0
  27. package/dist/next/loader.js +7 -7
  28. package/dist/next/loader.mjs +3 -3
  29. package/dist/next.js +9 -4
  30. package/dist/next.mjs +11 -6
  31. package/dist/{process-manager-JAKAXROL.mjs → process-manager-ZCET3VD2.mjs} +1 -1
  32. package/dist/{sandbox-QAPGBVYM.mjs → sandbox-27X2DSE3.mjs} +4 -3
  33. package/dist/{storage-Q376OZH3.mjs → storage-KQYV42J4.mjs} +3 -3
  34. package/dist/{client-6g79J0s3.d.mts → types-DuTc4UQW.d.mts} +229 -590
  35. package/dist/{client-6g79J0s3.d.ts → types-DuTc4UQW.d.ts} +229 -590
  36. package/dist/vercel-SD3JTECG.mjs +20 -0
  37. package/dist/{vercel-sdk-VHKEX2GQ.mjs → vercel-sdk-I6A4MVAN.mjs} +3 -3
  38. package/package.json +3 -3
  39. package/dist/chunk-GSRJYPWF.mjs +0 -284
  40. package/dist/chunk-JCPQQWIK.mjs +0 -2057
  41. package/dist/chunk-JEE2FQ4O.mjs +0 -844
  42. package/dist/chunk-VBLZWXVE.mjs +0 -318
  43. package/dist/local-fs-handlers-P4WGW3QY.mjs +0 -235
  44. package/dist/vercel-LLXAHKVJ.mjs +0 -20
@@ -2,9 +2,10 @@ import {
2
2
  agentMessageHook,
3
3
  agentWorkflow,
4
4
  approvalHook
5
- } from "./chunk-JCPQQWIK.mjs";
5
+ } from "./chunk-RDKDLHXM.mjs";
6
+ import "./chunk-A63YU65A.mjs";
6
7
  import "./chunk-64THY7Y7.mjs";
7
- import "./chunk-3ODWQVIA.mjs";
8
+ import "./chunk-BJTO5JO5.mjs";
8
9
  export {
9
10
  agentMessageHook,
10
11
  agentWorkflow,
@@ -0,0 +1,334 @@
1
+ import {
2
+ MessageNotFoundError,
3
+ SandboxNotFoundError,
4
+ SessionNotFoundError,
5
+ StorageError
6
+ } from "./chunk-HJGPUEFC.mjs";
7
+
8
+ // src/storage/client.ts
9
+ function getStorageClient(rpcFn, name) {
10
+ async function rpc(method, params) {
11
+ const result = await rpcFn({ name, method, params });
12
+ if ("error" in result) {
13
+ throw new StorageError({ reason: result.error.message });
14
+ }
15
+ return result.result;
16
+ }
17
+ return {
18
+ session: {
19
+ get: async (id) => {
20
+ try {
21
+ const result = await rpc("session.get", { id });
22
+ if (result === null) {
23
+ return new SessionNotFoundError({ id });
24
+ }
25
+ return result;
26
+ } catch (e) {
27
+ if (e instanceof StorageError) {
28
+ return e;
29
+ }
30
+ return new StorageError({ reason: String(e), cause: e });
31
+ }
32
+ },
33
+ set: async (session) => {
34
+ try {
35
+ return await rpc("session.set", session);
36
+ } catch (e) {
37
+ if (e instanceof StorageError) {
38
+ return e;
39
+ }
40
+ return new StorageError({ reason: String(e), cause: e });
41
+ }
42
+ },
43
+ list: async (opts) => {
44
+ try {
45
+ return await rpc("session.list", {
46
+ tags: opts?.tags,
47
+ order: opts?.order,
48
+ cursor: opts?.cursor,
49
+ limit: opts?.limit
50
+ });
51
+ } catch (e) {
52
+ if (e instanceof StorageError) {
53
+ return e;
54
+ }
55
+ return new StorageError({ reason: String(e), cause: e });
56
+ }
57
+ },
58
+ tag: {
59
+ set: async ({ sessionId, tags }) => {
60
+ try {
61
+ return await rpc("session.tag.set", { sessionId, tags });
62
+ } catch (e) {
63
+ if (e instanceof StorageError) {
64
+ return e;
65
+ }
66
+ return new StorageError({ reason: String(e), cause: e });
67
+ }
68
+ }
69
+ }
70
+ },
71
+ message: {
72
+ list: async (sessionId, opts) => {
73
+ try {
74
+ return await rpc("message.list", {
75
+ sessionId,
76
+ cursor: opts?.cursor,
77
+ limit: opts?.limit
78
+ });
79
+ } catch (e) {
80
+ if (e instanceof StorageError) {
81
+ return e;
82
+ }
83
+ return new StorageError({ reason: String(e), cause: e });
84
+ }
85
+ },
86
+ get: async (id) => {
87
+ try {
88
+ const result = await rpc("message.get", { id });
89
+ if (result === null) {
90
+ return new MessageNotFoundError({ id });
91
+ }
92
+ return result;
93
+ } catch (e) {
94
+ if (e instanceof StorageError) {
95
+ return e;
96
+ }
97
+ return new StorageError({ reason: String(e), cause: e });
98
+ }
99
+ },
100
+ set: async (message) => {
101
+ try {
102
+ return await rpc("message.set", message);
103
+ } catch (e) {
104
+ if (e instanceof StorageError) {
105
+ return e;
106
+ }
107
+ return new StorageError({ reason: String(e), cause: e });
108
+ }
109
+ }
110
+ },
111
+ part: {
112
+ listByMessage: async (messageId, opts) => {
113
+ try {
114
+ const result = await rpc("part.listByMessage", {
115
+ messageId,
116
+ cursor: opts?.cursor,
117
+ limit: opts?.limit
118
+ });
119
+ return result;
120
+ } catch (e) {
121
+ if (e instanceof StorageError) {
122
+ return e;
123
+ }
124
+ return new StorageError({ reason: String(e), cause: e });
125
+ }
126
+ },
127
+ listBySession: async (sessionId, opts) => {
128
+ try {
129
+ const result = await rpc("part.listBySession", {
130
+ sessionId,
131
+ cursor: opts?.cursor,
132
+ limit: opts?.limit
133
+ });
134
+ return result;
135
+ } catch (e) {
136
+ if (e instanceof StorageError) {
137
+ return e;
138
+ }
139
+ return new StorageError({ reason: String(e), cause: e });
140
+ }
141
+ },
142
+ set: async (part) => {
143
+ try {
144
+ return await rpc("part.set", part);
145
+ } catch (e) {
146
+ if (e instanceof StorageError) {
147
+ return e;
148
+ }
149
+ return new StorageError({ reason: String(e), cause: e });
150
+ }
151
+ },
152
+ delete: async (id) => {
153
+ try {
154
+ await rpc("part.delete", { id });
155
+ } catch (e) {
156
+ if (e instanceof StorageError) {
157
+ return e;
158
+ }
159
+ return new StorageError({ reason: String(e), cause: e });
160
+ }
161
+ }
162
+ },
163
+ sandbox: {
164
+ get: async (key) => {
165
+ try {
166
+ const result = await rpc("sandbox.get", { key });
167
+ if (result === null) {
168
+ return new SandboxNotFoundError({ id: key });
169
+ }
170
+ return result;
171
+ } catch (e) {
172
+ if (e instanceof StorageError) {
173
+ return e;
174
+ }
175
+ return new StorageError({ reason: String(e), cause: e });
176
+ }
177
+ },
178
+ getBySession: async (sessionId) => {
179
+ try {
180
+ const result = await rpc("sandbox.getBySession", { sessionId });
181
+ if (result === null) {
182
+ return new SandboxNotFoundError({ id: sessionId });
183
+ }
184
+ return result;
185
+ } catch (e) {
186
+ if (e instanceof StorageError) {
187
+ return e;
188
+ }
189
+ return new StorageError({ reason: String(e), cause: e });
190
+ }
191
+ },
192
+ set: async (record) => {
193
+ try {
194
+ await rpc("sandbox.set", record);
195
+ return record;
196
+ } catch (e) {
197
+ if (e instanceof StorageError) {
198
+ return e;
199
+ }
200
+ return new StorageError({ reason: String(e), cause: e });
201
+ }
202
+ },
203
+ list: async (opts) => {
204
+ try {
205
+ return await rpc("sandbox.list", {
206
+ tags: opts?.tags,
207
+ order: opts?.order,
208
+ cursor: opts?.cursor,
209
+ limit: opts?.limit
210
+ });
211
+ } catch (e) {
212
+ if (e instanceof StorageError) {
213
+ return e;
214
+ }
215
+ return new StorageError({ reason: String(e), cause: e });
216
+ }
217
+ },
218
+ tag: {
219
+ set: async ({ sandboxId, tags }) => {
220
+ try {
221
+ return await rpc("sandbox.tag.set", { sandboxId, tags });
222
+ } catch (e) {
223
+ if (e instanceof StorageError) {
224
+ return e;
225
+ }
226
+ return new StorageError({ reason: String(e), cause: e });
227
+ }
228
+ }
229
+ },
230
+ acquireLock: async (record, lockTimeoutMs) => {
231
+ try {
232
+ return await rpc("sandbox.acquireLock", {
233
+ record,
234
+ lockTimeoutMs
235
+ });
236
+ } catch (e) {
237
+ if (e instanceof StorageError) {
238
+ return e;
239
+ }
240
+ return new StorageError({ reason: String(e), cause: e });
241
+ }
242
+ }
243
+ },
244
+ setup: {
245
+ get: async (key) => {
246
+ try {
247
+ return await rpc("setup.get", { key });
248
+ } catch (e) {
249
+ if (e instanceof StorageError) {
250
+ return e;
251
+ }
252
+ return new StorageError({ reason: String(e), cause: e });
253
+ }
254
+ },
255
+ set: async (snapshot) => {
256
+ try {
257
+ await rpc("setup.set", snapshot);
258
+ return snapshot;
259
+ } catch (e) {
260
+ if (e instanceof StorageError) {
261
+ return e;
262
+ }
263
+ return new StorageError({ reason: String(e), cause: e });
264
+ }
265
+ },
266
+ acquireLock: async (key, lockId, lockTimeoutMs) => {
267
+ try {
268
+ return await rpc("setup.acquireLock", {
269
+ key,
270
+ lockId,
271
+ lockTimeoutMs
272
+ });
273
+ } catch (e) {
274
+ if (e instanceof StorageError) {
275
+ return e;
276
+ }
277
+ return new StorageError({ reason: String(e), cause: e });
278
+ }
279
+ }
280
+ },
281
+ command: {
282
+ get: async (id) => {
283
+ try {
284
+ return await rpc("command.get", { id });
285
+ } catch (e) {
286
+ if (e instanceof StorageError) {
287
+ return e;
288
+ }
289
+ return new StorageError({ reason: String(e), cause: e });
290
+ }
291
+ },
292
+ set: async (command) => {
293
+ try {
294
+ return await rpc("command.set", command);
295
+ } catch (e) {
296
+ if (e instanceof StorageError) {
297
+ return e;
298
+ }
299
+ return new StorageError({ reason: String(e), cause: e });
300
+ }
301
+ },
302
+ list: async (sessionId, opts) => {
303
+ try {
304
+ const result = await rpc("command.list", {
305
+ sessionId,
306
+ includeFinished: opts?.includeFinished,
307
+ cursor: opts?.cursor,
308
+ limit: opts?.limit
309
+ });
310
+ return result;
311
+ } catch (e) {
312
+ if (e instanceof StorageError) {
313
+ return e;
314
+ }
315
+ return new StorageError({ reason: String(e), cause: e });
316
+ }
317
+ }
318
+ }
319
+ };
320
+ }
321
+ var DEFAULT_NAMESPACE = "default";
322
+ var LOCAL_STORAGE_VERSION = "v1";
323
+ function getStorage(opts) {
324
+ const name = opts.config.name ?? DEFAULT_NAMESPACE;
325
+ return getStorageClient(opts.rpc, name);
326
+ }
327
+
328
+ export {
329
+ getStorageClient,
330
+ DEFAULT_NAMESPACE,
331
+ LOCAL_STORAGE_VERSION,
332
+ getStorage
333
+ };
334
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3N0b3JhZ2UvY2xpZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgdHlwZSB7IHogfSBmcm9tIFwiem9kXCI7XG5pbXBvcnQge1xuICBNZXNzYWdlTm90Rm91bmRFcnJvcixcbiAgU2FuZGJveE5vdEZvdW5kRXJyb3IsXG4gIFNlc3Npb25Ob3RGb3VuZEVycm9yLFxuICBTdG9yYWdlRXJyb3IsXG59IGZyb20gXCIuLi9lcnJvcnNcIjtcbmltcG9ydCB0eXBlIHsgU3RvcmFnZU1ldGhvZHMgfSBmcm9tIFwiLi9ycGNcIjtcbmltcG9ydCB0eXBlIHtcbiAgQ29tbWFuZCxcbiAgTGlzdFJlc3VsdCxcbiAgUGFydCxcbiAgU2V0dXBTbmFwc2hvdCxcbiAgU3RvcmFnZSxcbiAgU3RvcmFnZUNvbmZpZyxcbn0gZnJvbSBcIi4vdHlwZXNcIjtcblxudHlwZSBScGNSZXNwb25zZTxUPiA9XG4gIHwgeyByZXN1bHQ6IFQgfVxuICB8IHsgZXJyb3I6IHsgY29kZTogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfSB9O1xuXG5leHBvcnQgdHlwZSBScGNGbiA9IChwYXJhbXM6IHtcbiAgbmFtZT86IHN0cmluZztcbiAgbWV0aG9kOiBzdHJpbmc7XG4gIHBhcmFtczogdW5rbm93bjtcbn0pID0+IFByb21pc2U8UnBjUmVzcG9uc2U8dW5rbm93bj4+O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RvcmFnZUNsaWVudChycGNGbjogUnBjRm4sIG5hbWU/OiBzdHJpbmcpOiBTdG9yYWdlIHtcbiAgYXN5bmMgZnVuY3Rpb24gcnBjPE0gZXh0ZW5kcyBrZXlvZiBTdG9yYWdlTWV0aG9kcz4oXG4gICAgbWV0aG9kOiBNLFxuICAgIHBhcmFtczogei5pbmZlcjxTdG9yYWdlTWV0aG9kc1tNXVtcInBhcmFtc1wiXT5cbiAgKTogUHJvbWlzZTx6LmluZmVyPFN0b3JhZ2VNZXRob2RzW01dW1wicmVzdWx0XCJdPj4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJwY0ZuKHsgbmFtZSwgbWV0aG9kLCBwYXJhbXMgfSk7XG5cbiAgICBpZiAoXCJlcnJvclwiIGluIHJlc3VsdCkge1xuICAgICAgdGhyb3cgbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogcmVzdWx0LmVycm9yLm1lc3NhZ2UgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdC5yZXN1bHQgYXMgei5pbmZlcjxTdG9yYWdlTWV0aG9kc1tNXVtcInJlc3VsdFwiXT47XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHNlc3Npb246IHtcbiAgICAgIGdldDogYXN5bmMgKGlkKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcnBjKFwic2Vzc2lvbi5nZXRcIiwgeyBpZCB9KTtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNlc3Npb25Ob3RGb3VuZEVycm9yKHsgaWQgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFN0b3JhZ2VFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgU3RvcmFnZUVycm9yKHsgcmVhc29uOiBTdHJpbmcoZSksIGNhdXNlOiBlIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgc2V0OiBhc3luYyAoc2Vzc2lvbikgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBycGMoXCJzZXNzaW9uLnNldFwiLCBzZXNzaW9uKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBsaXN0OiBhc3luYyAob3B0cykgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBycGMoXCJzZXNzaW9uLmxpc3RcIiwge1xuICAgICAgICAgICAgdGFnczogb3B0cz8udGFncyxcbiAgICAgICAgICAgIG9yZGVyOiBvcHRzPy5vcmRlcixcbiAgICAgICAgICAgIGN1cnNvcjogb3B0cz8uY3Vyc29yLFxuICAgICAgICAgICAgbGltaXQ6IG9wdHM/LmxpbWl0LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRhZzoge1xuICAgICAgICBzZXQ6IGFzeW5jICh7IHNlc3Npb25JZCwgdGFncyB9KSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBycGMoXCJzZXNzaW9uLnRhZy5zZXRcIiwgeyBzZXNzaW9uSWQsIHRhZ3MgfSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgbWVzc2FnZToge1xuICAgICAgbGlzdDogYXN5bmMgKHNlc3Npb25JZCwgb3B0cykgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBycGMoXCJtZXNzYWdlLmxpc3RcIiwge1xuICAgICAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICAgICAgY3Vyc29yOiBvcHRzPy5jdXJzb3IsXG4gICAgICAgICAgICBsaW1pdDogb3B0cz8ubGltaXQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFN0b3JhZ2VFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgU3RvcmFnZUVycm9yKHsgcmVhc29uOiBTdHJpbmcoZSksIGNhdXNlOiBlIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZ2V0OiBhc3luYyAoaWQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBycGMoXCJtZXNzYWdlLmdldFwiLCB7IGlkIH0pO1xuICAgICAgICAgIGlmIChyZXN1bHQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTWVzc2FnZU5vdEZvdW5kRXJyb3IoeyBpZCB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZXQ6IGFzeW5jIChtZXNzYWdlKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IHJwYyhcIm1lc3NhZ2Uuc2V0XCIsIG1lc3NhZ2UpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9LFxuICAgIHBhcnQ6IHtcbiAgICAgIGxpc3RCeU1lc3NhZ2U6IGFzeW5jIChtZXNzYWdlSWQsIG9wdHMpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBycGMoXCJwYXJ0Lmxpc3RCeU1lc3NhZ2VcIiwge1xuICAgICAgICAgICAgbWVzc2FnZUlkLFxuICAgICAgICAgICAgY3Vyc29yOiBvcHRzPy5jdXJzb3IsXG4gICAgICAgICAgICBsaW1pdDogb3B0cz8ubGltaXQsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdCBhcyBMaXN0UmVzdWx0PFBhcnQ+O1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGxpc3RCeVNlc3Npb246IGFzeW5jIChzZXNzaW9uSWQsIG9wdHMpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBycGMoXCJwYXJ0Lmxpc3RCeVNlc3Npb25cIiwge1xuICAgICAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICAgICAgY3Vyc29yOiBvcHRzPy5jdXJzb3IsXG4gICAgICAgICAgICBsaW1pdDogb3B0cz8ubGltaXQsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdCBhcyBMaXN0UmVzdWx0PFBhcnQ+O1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHNldDogYXN5bmMgKHBhcnQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gKGF3YWl0IHJwYyhcInBhcnQuc2V0XCIsIHBhcnQpKSBhcyBQYXJ0O1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGRlbGV0ZTogYXN5bmMgKGlkKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgcnBjKFwicGFydC5kZWxldGVcIiwgeyBpZCB9KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSxcbiAgICBzYW5kYm94OiB7XG4gICAgICBnZXQ6IGFzeW5jIChrZXkpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBycGMoXCJzYW5kYm94LmdldFwiLCB7IGtleSB9KTtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNhbmRib3hOb3RGb3VuZEVycm9yKHsgaWQ6IGtleSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBnZXRCeVNlc3Npb246IGFzeW5jIChzZXNzaW9uSWQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBycGMoXCJzYW5kYm94LmdldEJ5U2Vzc2lvblwiLCB7IHNlc3Npb25JZCB9KTtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNhbmRib3hOb3RGb3VuZEVycm9yKHsgaWQ6IHNlc3Npb25JZCB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZXQ6IGFzeW5jIChyZWNvcmQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCBycGMoXCJzYW5kYm94LnNldFwiLCByZWNvcmQpO1xuICAgICAgICAgIHJldHVybiByZWNvcmQ7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFN0b3JhZ2VFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgU3RvcmFnZUVycm9yKHsgcmVhc29uOiBTdHJpbmcoZSksIGNhdXNlOiBlIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgbGlzdDogYXN5bmMgKG9wdHMpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gYXdhaXQgcnBjKFwic2FuZGJveC5saXN0XCIsIHtcbiAgICAgICAgICAgIHRhZ3M6IG9wdHM/LnRhZ3MsXG4gICAgICAgICAgICBvcmRlcjogb3B0cz8ub3JkZXIsXG4gICAgICAgICAgICBjdXJzb3I6IG9wdHM/LmN1cnNvcixcbiAgICAgICAgICAgIGxpbWl0OiBvcHRzPy5saW1pdCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB0YWc6IHtcbiAgICAgICAgc2V0OiBhc3luYyAoeyBzYW5kYm94SWQsIHRhZ3MgfSkgPT4ge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgcnBjKFwic2FuZGJveC50YWcuc2V0XCIsIHsgc2FuZGJveElkLCB0YWdzIH0pO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGFjcXVpcmVMb2NrOiBhc3luYyAocmVjb3JkLCBsb2NrVGltZW91dE1zKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIChhd2FpdCBycGMoXCJzYW5kYm94LmFjcXVpcmVMb2NrXCIsIHtcbiAgICAgICAgICAgIHJlY29yZCxcbiAgICAgICAgICAgIGxvY2tUaW1lb3V0TXMsXG4gICAgICAgICAgfSkpIGFzIGltcG9ydChcIi4vdHlwZXNcIikuU2FuZGJveFJlY29yZCB8IG51bGw7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFN0b3JhZ2VFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgU3RvcmFnZUVycm9yKHsgcmVhc29uOiBTdHJpbmcoZSksIGNhdXNlOiBlIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IHtcbiAgICAgIGdldDogYXN5bmMgKGtleSkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiAoYXdhaXQgcnBjKFwic2V0dXAuZ2V0XCIsIHsga2V5IH0pKSBhcyBTZXR1cFNuYXBzaG90IHwgbnVsbDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZXQ6IGFzeW5jIChzbmFwc2hvdCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHJwYyhcInNldHVwLnNldFwiLCBzbmFwc2hvdCk7XG4gICAgICAgICAgcmV0dXJuIHNuYXBzaG90O1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGFjcXVpcmVMb2NrOiBhc3luYyAoa2V5LCBsb2NrSWQsIGxvY2tUaW1lb3V0TXMpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gKGF3YWl0IHJwYyhcInNldHVwLmFjcXVpcmVMb2NrXCIsIHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIGxvY2tJZCxcbiAgICAgICAgICAgIGxvY2tUaW1lb3V0TXMsXG4gICAgICAgICAgfSkpIGFzIFNldHVwU25hcHNob3QgfCBudWxsO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9LFxuICAgIGNvbW1hbmQ6IHtcbiAgICAgIGdldDogYXN5bmMgKGlkKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIChhd2FpdCBycGMoXCJjb21tYW5kLmdldFwiLCB7IGlkIH0pKSBhcyBDb21tYW5kIHwgbnVsbDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZXQ6IGFzeW5jIChjb21tYW5kKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIChhd2FpdCBycGMoXCJjb21tYW5kLnNldFwiLCBjb21tYW5kKSkgYXMgQ29tbWFuZDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBsaXN0OiBhc3luYyAoc2Vzc2lvbklkLCBvcHRzKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcnBjKFwiY29tbWFuZC5saXN0XCIsIHtcbiAgICAgICAgICAgIHNlc3Npb25JZCxcbiAgICAgICAgICAgIGluY2x1ZGVGaW5pc2hlZDogb3B0cz8uaW5jbHVkZUZpbmlzaGVkLFxuICAgICAgICAgICAgY3Vyc29yOiBvcHRzPy5jdXJzb3IsXG4gICAgICAgICAgICBsaW1pdDogb3B0cz8ubGltaXQsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdCBhcyBMaXN0UmVzdWx0PENvbW1hbmQ+O1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSBcImRlZmF1bHRcIjtcbmV4cG9ydCBjb25zdCBMT0NBTF9TVE9SQUdFX1ZFUlNJT04gPSBcInYxXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdG9yYWdlKG9wdHM6IHtcbiAgY29uZmlnOiBTdG9yYWdlQ29uZmlnO1xuICBycGM6IFJwY0ZuO1xufSk6IFN0b3JhZ2Uge1xuICBjb25zdCBuYW1lID0gb3B0cy5jb25maWcubmFtZSA/PyBERUZBVUxUX05BTUVTUEFDRTtcbiAgcmV0dXJuIGdldFN0b3JhZ2VDbGllbnQob3B0cy5ycGMsIG5hbWUpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7QUEyQk8sU0FBUyxpQkFBaUIsT0FBYyxNQUF3QjtBQUNyRSxpQkFBZSxJQUNiLFFBQ0EsUUFDK0M7QUFDL0MsVUFBTSxTQUFTLE1BQU0sTUFBTSxFQUFFLE1BQU0sUUFBUSxPQUFPLENBQUM7QUFFbkQsUUFBSSxXQUFXLFFBQVE7QUFDckIsWUFBTSxJQUFJLGFBQWEsRUFBRSxRQUFRLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFBQSxJQUN6RDtBQUVBLFdBQU8sT0FBTztBQUFBLEVBQ2hCO0FBRUEsU0FBTztBQUFBLElBQ0wsU0FBUztBQUFBLE1BQ1AsS0FBSyxPQUFPLE9BQU87QUFDakIsWUFBSTtBQUNGLGdCQUFNLFNBQVMsTUFBTSxJQUFJLGVBQWUsRUFBRSxHQUFHLENBQUM7QUFDOUMsY0FBSSxXQUFXLE1BQU07QUFDbkIsbUJBQU8sSUFBSSxxQkFBcUIsRUFB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
@@ -0,0 +1,20 @@
1
+ // src/rpc-registry.ts
2
+ var registry = /* @__PURE__ */ new Map();
3
+ function registerRpc(name, fn) {
4
+ registry.set(name, fn);
5
+ }
6
+ function resolveRpc(name) {
7
+ const fn = registry.get(name);
8
+ if (!fn) {
9
+ throw new Error(
10
+ `No RPC registered for agent "${name}". Ensure withAgent is set up in next.config.ts.`
11
+ );
12
+ }
13
+ return fn;
14
+ }
15
+
16
+ export {
17
+ registerRpc,
18
+ resolveRpc
19
+ };
20
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3JwYy1yZWdpc3RyeS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBNb2R1bGUtbGV2ZWwgcmVnaXN0cnkgZm9yIGFnZW50IFJQQyBmdW5jdGlvbnMuXG4gKlxuICogUlBDIGZ1bmN0aW9ucyBhcmUgYXN5bmMgc3RlcCBmdW5jdGlvbnMgZ2VuZXJhdGVkIGJ5IHRoZSBOZXh0LmpzIGxvYWRlclxuICogKGluIHN0ZXBzLmpzKS4gVGhleSBjYW5ub3QgYmUgc2VyaWFsaXplZCBieSBkZXZhbHVlLCBzbyB0aGV5IG11c3Qgbm90XG4gKiBhcHBlYXIgaW4gd29ya2Zsb3cgYXJndW1lbnRzLiBJbnN0ZWFkLCB0aGUgbG9hZGVyIGluaXQgcmVnaXN0ZXJzIGVhY2hcbiAqIGFnZW50J3MgUlBDIGhlcmUsIGFuZCB3b3JrZmxvdyBzdGVwIGZ1bmN0aW9ucyBsb29rIGl0IHVwIGJ5IGFnZW50IG5hbWUuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBScGNQYXlsb2FkLCBScGNSZXN1bHQgfSBmcm9tIFwiLi9jbGllbnRcIjtcblxudHlwZSBScGNGbiA9IChwYXJhbXM6IFJwY1BheWxvYWQpID0+IFByb21pc2U8UnBjUmVzdWx0PjtcblxuY29uc3QgcmVnaXN0cnkgPSBuZXcgTWFwPHN0cmluZywgUnBjRm4+KCk7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlclJwYyhuYW1lOiBzdHJpbmcsIGZuOiBScGNGbik6IHZvaWQge1xuICByZWdpc3RyeS5zZXQobmFtZSwgZm4pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVJwYyhuYW1lOiBzdHJpbmcpOiBScGNGbiB7XG4gIGNvbnN0IGZuID0gcmVnaXN0cnkuZ2V0KG5hbWUpO1xuICBpZiAoIWZuKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYE5vIFJQQyByZWdpc3RlcmVkIGZvciBhZ2VudCBcIiR7bmFtZX1cIi4gRW5zdXJlIHdpdGhBZ2VudCBpcyBzZXQgdXAgaW4gbmV4dC5jb25maWcudHMuYFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIGZuO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQWFBLElBQU0sV0FBVyxvQkFBSSxJQUFtQjtBQUVqQyxTQUFTLFlBQVksTUFBYyxJQUFpQjtBQUN6RCxXQUFTLElBQUksTUFBTSxFQUFFO0FBQ3ZCO0FBRU8sU0FBUyxXQUFXLE1BQXFCO0FBQzlDLFFBQU0sS0FBSyxTQUFTLElBQUksSUFBSTtBQUM1QixNQUFJLENBQUMsSUFBSTtBQUNQLFVBQU0sSUFBSTtBQUFBLE1BQ1IsZ0NBQWdDLElBQUk7QUFBQSxJQUN0QztBQUFBLEVBQ0Y7QUFDQSxTQUFPO0FBQ1Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -1,8 +1,7 @@
1
1
  var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
2
  get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
3
  }) : x)(function(x) {
4
- if (typeof require !== "undefined")
5
- return require.apply(this, arguments);
4
+ if (typeof require !== "undefined") return require.apply(this, arguments);
6
5
  throw Error('Dynamic require of "' + x + '" is not supported');
7
6
  });
8
7