@relayflows/sdk 2.0.28 → 2.0.30

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 (120) hide show
  1. package/dist/authored-flow-executor.d.ts.map +1 -1
  2. package/dist/authored-flow-executor.js +10 -1
  3. package/dist/authored-flow-executor.js.map +1 -1
  4. package/dist/authored-step-index.d.ts +6 -0
  5. package/dist/authored-step-index.d.ts.map +1 -1
  6. package/dist/authored-step-index.js +42 -14
  7. package/dist/authored-step-index.js.map +1 -1
  8. package/dist/bundle-extensions.d.ts.map +1 -1
  9. package/dist/bundle-extensions.js +4 -7
  10. package/dist/bundle-extensions.js.map +1 -1
  11. package/dist/bundle.d.ts.map +1 -1
  12. package/dist/bundle.js +41 -7
  13. package/dist/bundle.js.map +1 -1
  14. package/dist/canonical.d.ts.map +1 -1
  15. package/dist/canonical.js +18 -6
  16. package/dist/canonical.js.map +1 -1
  17. package/dist/cli/status.d.ts +12 -0
  18. package/dist/cli/status.d.ts.map +1 -1
  19. package/dist/cli/status.js +39 -1
  20. package/dist/cli/status.js.map +1 -1
  21. package/dist/flow-extension-compat.d.ts.map +1 -1
  22. package/dist/flow-extension-compat.js +26 -8
  23. package/dist/flow-extension-compat.js.map +1 -1
  24. package/dist/flow-extension-loader.d.ts +7 -0
  25. package/dist/flow-extension-loader.d.ts.map +1 -1
  26. package/dist/flow-extension-loader.js +48 -22
  27. package/dist/flow-extension-loader.js.map +1 -1
  28. package/dist/fs-descriptor.d.ts +17 -0
  29. package/dist/fs-descriptor.d.ts.map +1 -0
  30. package/dist/fs-descriptor.js +96 -0
  31. package/dist/fs-descriptor.js.map +1 -0
  32. package/dist/hosted-base-snapshot.d.ts +25 -0
  33. package/dist/hosted-base-snapshot.d.ts.map +1 -0
  34. package/dist/hosted-base-snapshot.js +278 -0
  35. package/dist/hosted-base-snapshot.js.map +1 -0
  36. package/dist/hosted-extension-declarations.d.ts +10 -0
  37. package/dist/hosted-extension-declarations.d.ts.map +1 -0
  38. package/dist/hosted-extension-declarations.js +272 -0
  39. package/dist/hosted-extension-declarations.js.map +1 -0
  40. package/dist/hosted-extension-isolation.d.ts +82 -0
  41. package/dist/hosted-extension-isolation.d.ts.map +1 -0
  42. package/dist/hosted-extension-isolation.js +322 -0
  43. package/dist/hosted-extension-isolation.js.map +1 -0
  44. package/dist/hosted-extension-manifest.d.ts +9 -0
  45. package/dist/hosted-extension-manifest.d.ts.map +1 -0
  46. package/dist/hosted-extension-manifest.js +235 -0
  47. package/dist/hosted-extension-manifest.js.map +1 -0
  48. package/dist/hosted-extension-protocol.d.ts +16 -0
  49. package/dist/hosted-extension-protocol.d.ts.map +1 -0
  50. package/dist/hosted-extension-protocol.js +224 -0
  51. package/dist/hosted-extension-protocol.js.map +1 -0
  52. package/dist/hosted-extension-runtime.d.ts +30 -0
  53. package/dist/hosted-extension-runtime.d.ts.map +1 -0
  54. package/dist/hosted-extension-runtime.js +167 -0
  55. package/dist/hosted-extension-runtime.js.map +1 -0
  56. package/dist/hosted-extension-sandbox-source.d.ts +9 -0
  57. package/dist/hosted-extension-sandbox-source.d.ts.map +1 -0
  58. package/dist/hosted-extension-sandbox-source.js +95 -0
  59. package/dist/hosted-extension-sandbox-source.js.map +1 -0
  60. package/dist/hosted-extension-sandbox.d.ts +39 -0
  61. package/dist/hosted-extension-sandbox.d.ts.map +1 -0
  62. package/dist/hosted-extension-sandbox.js +418 -0
  63. package/dist/hosted-extension-sandbox.js.map +1 -0
  64. package/dist/hosted-project.d.ts +3 -0
  65. package/dist/hosted-project.d.ts.map +1 -0
  66. package/dist/hosted-project.js +19 -0
  67. package/dist/hosted-project.js.map +1 -0
  68. package/dist/hosted-promise-safety.d.ts +12 -0
  69. package/dist/hosted-promise-safety.d.ts.map +1 -0
  70. package/dist/hosted-promise-safety.js +63 -0
  71. package/dist/hosted-promise-safety.js.map +1 -0
  72. package/dist/index.d.ts +2 -0
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +2 -0
  75. package/dist/index.js.map +1 -1
  76. package/dist/intrinsic-array.d.ts +3 -0
  77. package/dist/intrinsic-array.d.ts.map +1 -0
  78. package/dist/intrinsic-array.js +14 -0
  79. package/dist/intrinsic-array.js.map +1 -0
  80. package/dist/json-value.d.ts +6 -1
  81. package/dist/json-value.d.ts.map +1 -1
  82. package/dist/json-value.js +155 -36
  83. package/dist/json-value.js.map +1 -1
  84. package/dist/llm-worker.d.ts +9 -0
  85. package/dist/llm-worker.d.ts.map +1 -1
  86. package/dist/llm-worker.js +15 -1
  87. package/dist/llm-worker.js.map +1 -1
  88. package/dist/plugin-store.d.ts +8 -2
  89. package/dist/plugin-store.d.ts.map +1 -1
  90. package/dist/plugin-store.js +233 -56
  91. package/dist/plugin-store.js.map +1 -1
  92. package/dist/semver-range.d.ts.map +1 -1
  93. package/dist/semver-range.js +27 -15
  94. package/dist/semver-range.js.map +1 -1
  95. package/package.json +2 -2
  96. package/src/authored-flow-executor.ts +10 -1
  97. package/src/authored-step-index.ts +46 -12
  98. package/src/bundle-extensions.ts +6 -5
  99. package/src/bundle.ts +52 -7
  100. package/src/canonical.ts +20 -6
  101. package/src/cli/status.ts +50 -1
  102. package/src/flow-extension-compat.ts +32 -7
  103. package/src/flow-extension-loader.ts +56 -21
  104. package/src/fs-descriptor.ts +127 -0
  105. package/src/hosted-base-snapshot.ts +351 -0
  106. package/src/hosted-extension-declarations.ts +387 -0
  107. package/src/hosted-extension-isolation.ts +457 -0
  108. package/src/hosted-extension-manifest.ts +249 -0
  109. package/src/hosted-extension-protocol.ts +262 -0
  110. package/src/hosted-extension-runtime.ts +266 -0
  111. package/src/hosted-extension-sandbox-source.ts +94 -0
  112. package/src/hosted-extension-sandbox.ts +489 -0
  113. package/src/hosted-project.ts +18 -0
  114. package/src/hosted-promise-safety.ts +68 -0
  115. package/src/index.ts +18 -0
  116. package/src/intrinsic-array.ts +14 -0
  117. package/src/json-value.ts +184 -32
  118. package/src/llm-worker.ts +15 -1
  119. package/src/plugin-store.ts +323 -56
  120. package/src/semver-range.ts +39 -14
@@ -0,0 +1,418 @@
1
+ import { createRequire } from 'node:module';
2
+ import { closeSync, constants, existsSync, fstatSync, lstatSync, openSync, readSync, realpathSync, } from 'node:fs';
3
+ import { dirname, join, parse, resolve } from 'node:path';
4
+ import { ChildProcess, spawn } from 'node:child_process';
5
+ import { EventEmitter } from 'node:events';
6
+ import { Writable } from 'node:stream';
7
+ import { payloadManifest, sha256 } from './bundle.js';
8
+ import { closeDescriptor, descriptorIsFile, openDescriptor, readDescriptor, statDescriptor, } from './fs-descriptor.js';
9
+ import { snapshotJsonValue } from './json-value.js';
10
+ import { PluginError } from './plugin-manifest.js';
11
+ import { assertHostedPromiseSafety, frozenHostedPromiseValue, hostedPromiseValue, } from './hosted-promise-safety.js';
12
+ import { appendIntrinsicArray } from './intrinsic-array.js';
13
+ import { HOSTED_EXTENSION_SANDBOX_SOURCE } from './hosted-extension-sandbox-source.js';
14
+ import { exchangeHostedExtension, } from './hosted-extension-protocol.js';
15
+ import { readStoredPluginFiles } from './plugin-store.js';
16
+ const HOSTED_WRITE = 'cloud:babysitter-turn';
17
+ const CREATE_REQUIRE = createRequire;
18
+ const CLOSE_SYNC = closeSync;
19
+ const EXISTS_SYNC = existsSync;
20
+ const FSTAT_SYNC = fstatSync;
21
+ const LSTAT_SYNC = lstatSync;
22
+ const OPEN_SYNC = openSync;
23
+ const READ_SYNC = readSync;
24
+ const REALPATH_SYNC = realpathSync;
25
+ const PATH_DIRNAME = dirname;
26
+ const PATH_JOIN = join;
27
+ const PATH_PARSE = parse;
28
+ const PATH_RESOLVE = resolve;
29
+ const SPAWN = spawn;
30
+ const PROCESS_EXEC_PATH = process.execPath;
31
+ const PROCESS_NODE_VERSION = process.versions.node;
32
+ const PROCESS_PLATFORM = process.platform;
33
+ const PROMISE = Promise;
34
+ const EVENT_ON = Function.prototype.call.bind(EventEmitter.prototype.on);
35
+ const CHILD_PROCESS_KILL = Function.prototype.call.bind(ChildProcess.prototype.kill);
36
+ const ARRAY_IS_ARRAY = Array.isArray;
37
+ const BUFFER_FROM = Buffer.from;
38
+ const BUFFER_ALLOC_UNSAFE = Buffer.allocUnsafe;
39
+ const BUFFER_TO_STRING = Function.prototype.call.bind(Buffer.prototype.toString);
40
+ const BIG_INT = BigInt;
41
+ const JSON_PARSE = JSON.parse;
42
+ const OBJECT_ENTRIES = Object.entries;
43
+ const OBJECT_FREEZE = Object.freeze;
44
+ const OBJECT_GET_OWN_PROPERTY_DESCRIPTOR = Object.getOwnPropertyDescriptor;
45
+ const NUMBER = Number;
46
+ const NUMBER_IS_SAFE_INTEGER = Number.isSafeInteger;
47
+ const REGEXP_EXEC = Function.prototype.call.bind(RegExp.prototype.exec);
48
+ const SET = Set;
49
+ const SET_ADD = Function.prototype.call.bind(Set.prototype.add);
50
+ const SET_HAS = Function.prototype.call.bind(Set.prototype.has);
51
+ const STRING = String;
52
+ const STRING_SPLIT = Function.prototype.call.bind(String.prototype.split);
53
+ const STRING_STARTS_WITH = Function.prototype.call.bind(String.prototype.startsWith);
54
+ const WRITABLE_END = Function.prototype.call.bind(Writable.prototype.end);
55
+ const WRITABLE_WRITE = Function.prototype.call.bind(Writable.prototype.write);
56
+ const DEFAULT_TIMEOUT_MS = 10_000;
57
+ const MAX_SURFACE_PACKAGE_BYTES = 64 * 1024;
58
+ const MAX_SURFACE_RUNTIME_BYTES = 512 * 1024;
59
+ const MAX_NODE_EXECUTABLE_BYTES = 512 * 1024 * 1024;
60
+ const SURFACE_READ_FLAGS = constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0) | (constants.O_NONBLOCK ?? 0);
61
+ const NODE_EXECUTABLE = captureNodeExecutable();
62
+ // These hard limits are inherited across prlimit -> bubblewrap -> Node and its
63
+ // descendants. RLIMIT_AS stays high enough for Node 22-26's large virtual V8
64
+ // and Wasm reservations; RLIMIT_DATA is the tighter bound on anonymous/native
65
+ // allocations (including Buffer mmap on supported Linux kernels). Together
66
+ // with 64 MiB old-space they refuse two hostile 2 GiB Buffers without preventing
67
+ // the pinned TypeScript handler from starting on supported Node releases.
68
+ const ADDRESS_SPACE_BYTES = 16 * 1024 * 1024 * 1024;
69
+ const DATA_BYTES = 3 * 1024 * 1024 * 1024;
70
+ const SURFACE_RUNTIME_SHA256 = OBJECT_FREEZE({
71
+ 'flow.js': '4aaeacc55de3074f4d121ce7253c3be50a93757e6540ba8159889a9450d1c05c',
72
+ 'helpers/providers.js': '7bc62eccaa3a9e786ae0a689bf74160585149e91feef8208e17ef8eca51eed7f',
73
+ 'provider-trigger.js': 'e2664c65397f93fb486eb6f1e756c7cec3f88b3851d79c23567cad986f80f1ff',
74
+ 'schedule.js': '8fe72f176a75ec0b5f26e12db7a597575c259a2e2cbb59690f9dc20a5e63940b',
75
+ 'triggers.js': '4a3515b571a318f6c7a5661f9310bc9af43e3faf20ea39903a9b363c51258e4c',
76
+ 'triggers/github.js': 'e312994320f82aad0af00d09c504175d929cc6c601dfe1bc522632462ad9a48b',
77
+ });
78
+ const SURFACE_PACKAGE_JSON = '{"name":"@relayflows/surface","type":"module","exports":{".":"./index.js","./runtime":"./runtime.js"}}';
79
+ const SURFACE_INDEX = "export { flow } from './dist/flow.js';\nexport { github } from './dist/triggers/github.js';\n";
80
+ const SURFACE_RUNTIME = "export { getFlowDefinition } from './dist/flow.js';\n";
81
+ export async function runHostedExtensionSandbox(options) {
82
+ assertHostedPromiseSafety('plugin_unsupported');
83
+ if (PROCESS_PLATFORM !== 'linux')
84
+ return unsupported('hosted extension isolation requires Linux');
85
+ const nodeOverride = ownOption(options, 'nodePath');
86
+ if (nodeOverride === undefined && !supportsHostedSandboxFlags(PROCESS_NODE_VERSION)) {
87
+ return unsupported(`hosted extension isolation does not support Node ${PROCESS_NODE_VERSION}`);
88
+ }
89
+ const bwrap = executable(ownOption(options, 'bubblewrapPath') ?? '/usr/bin/bwrap', 'bubblewrap');
90
+ const prlimit = executable(ownOption(options, 'prlimitPath') ?? '/usr/bin/prlimit', 'prlimit');
91
+ const nodeCapture = nodeOverride === undefined
92
+ ? NODE_EXECUTABLE
93
+ : captureExecutable(nodeOverride, 'Node');
94
+ if (nodeCapture === undefined)
95
+ return unsupported('Node is unavailable');
96
+ let nodeBytes;
97
+ try {
98
+ nodeBytes = readCapturedExecutable(nodeCapture, 'Node');
99
+ }
100
+ finally {
101
+ if (nodeOverride !== undefined)
102
+ CLOSE_SYNC(nodeCapture.descriptor);
103
+ }
104
+ const timeoutMs = ownOption(options, 'timeoutMs') ?? DEFAULT_TIMEOUT_MS;
105
+ if (!NUMBER_IS_SAFE_INTEGER(timeoutMs) || timeoutMs < 1 || timeoutMs > 60_000) {
106
+ return unsupported('hosted extension timeout must be an integer from 1 to 60000ms');
107
+ }
108
+ const entryPath = PATH_RESOLVE(options.artifactDirectory, options.entry);
109
+ if (!STRING_STARTS_WITH(entryPath, `${PATH_RESOLVE(options.artifactDirectory)}/`)) {
110
+ throw new PluginError('plugin_path_invalid', `${options.entry}: hosted extension entry escapes its artifact.`);
111
+ }
112
+ const surfaceRoot = await resolveSurfaceRoot(options.surfaceVersion, ownOption(options, 'surfaceRoot'));
113
+ const storedFiles = await readStoredPluginFiles(options.artifactDirectory, options.artifactDigest);
114
+ const payloadFiles = [];
115
+ for (let index = 0; index < storedFiles.length; index += 1) {
116
+ const file = storedFiles[index];
117
+ if (file.path !== 'manifest.json')
118
+ appendIntrinsicArray(payloadFiles, file);
119
+ }
120
+ if (sha256(payloadManifest(payloadFiles)) !== options.artifactDigest) {
121
+ throw new PluginError('plugin_source_drift', 'Hosted extension changed while its isolated snapshot was created.');
122
+ }
123
+ const dataFiles = [
124
+ { destination: '/runtime/node', bytes: nodeBytes },
125
+ { destination: '/runtime/runner.mjs', bytes: BUFFER_FROM(HOSTED_EXTENSION_SANDBOX_SOURCE) },
126
+ ];
127
+ const surfaceFiles = await readSurfaceFiles(surfaceRoot);
128
+ for (let index = 0; index < surfaceFiles.length; index += 1) {
129
+ appendIntrinsicArray(dataFiles, surfaceFiles[index]);
130
+ }
131
+ for (let index = 0; index < payloadFiles.length; index += 1) {
132
+ const file = payloadFiles[index];
133
+ appendIntrinsicArray(dataFiles, {
134
+ destination: `/extension/src/${file.path}`,
135
+ bytes: file.data,
136
+ });
137
+ }
138
+ const destinations = [];
139
+ for (let index = 0; index < dataFiles.length; index += 1) {
140
+ appendIntrinsicArray(destinations, dataFiles[index].destination);
141
+ }
142
+ const args = sandboxArguments({ dataDestinations: destinations });
143
+ await ownOption(options, 'beforeLaunch')?.();
144
+ const commandArgs = [`--as=${ADDRESS_SPACE_BYTES}`, `--data=${DATA_BYTES}`, '--', bwrap];
145
+ for (let index = 0; index < args.length; index += 1)
146
+ appendIntrinsicArray(commandArgs, args[index]);
147
+ const stdio = ['pipe', 'ignore', 'pipe', 'pipe'];
148
+ for (let index = 0; index < dataFiles.length; index += 1)
149
+ appendIntrinsicArray(stdio, 'pipe');
150
+ const child = SPAWN(prlimit, commandArgs, { cwd: '/', env: {}, stdio });
151
+ for (let index = 0; index < dataFiles.length; index += 1) {
152
+ const feed = child.stdio[index + 4];
153
+ EVENT_ON(feed, 'error', () => undefined);
154
+ WRITABLE_WRITE(feed, dataFiles[index].bytes);
155
+ WRITABLE_END(feed);
156
+ }
157
+ const childClosed = child.exitCode !== null || child.signalCode !== null
158
+ ? new PROMISE(resolvePromise => resolvePromise())
159
+ : new PROMISE(resolvePromise => { EVENT_ON(child, 'close', () => resolvePromise()); });
160
+ try {
161
+ return await exchangeHostedExtension(child, child.stdio[3], child.stdin, child.stderr, timeoutMs, {
162
+ type: 'execute',
163
+ entry: `/extension/src/${options.entry}`,
164
+ surfaceRuntime: '/extension/node_modules/@relayflows/surface/runtime.js',
165
+ capability: HOSTED_WRITE,
166
+ identity: options.identity,
167
+ input: options.input,
168
+ }, options.invoke);
169
+ }
170
+ finally {
171
+ if (child.exitCode === null && child.signalCode === null)
172
+ CHILD_PROCESS_KILL(child, 'SIGKILL');
173
+ await childClosed;
174
+ }
175
+ }
176
+ async function resolveSurfaceRoot(expectedVersion, override) {
177
+ if (override !== undefined)
178
+ return await checkedSurfaceRoot(override, expectedVersion);
179
+ let resolved;
180
+ try {
181
+ resolved = REALPATH_SYNC(CREATE_REQUIRE(import.meta.url).resolve('@relayflows/surface'));
182
+ }
183
+ catch {
184
+ return unsupported('hosted extension cannot resolve @relayflows/surface');
185
+ }
186
+ let directory = PATH_DIRNAME(resolved);
187
+ const root = PATH_PARSE(directory).root;
188
+ while (directory !== root) {
189
+ const packageJson = PATH_JOIN(directory, 'package.json');
190
+ if (EXISTS_SYNC(packageJson)) {
191
+ try {
192
+ const manifest = surfacePackageManifest(await readBoundedSurfaceFile(packageJson, MAX_SURFACE_PACKAGE_BYTES));
193
+ if (manifest.name === '@relayflows/surface' && manifest.version === expectedVersion) {
194
+ return REALPATH_SYNC(directory);
195
+ }
196
+ }
197
+ catch { /* keep walking */ }
198
+ }
199
+ directory = PATH_DIRNAME(directory);
200
+ }
201
+ return unsupported('hosted extension resolved an invalid @relayflows/surface package');
202
+ }
203
+ async function checkedSurfaceRoot(root, expectedVersion) {
204
+ let real;
205
+ try {
206
+ real = REALPATH_SYNC(root);
207
+ }
208
+ catch {
209
+ return unsupported('hosted extension cannot resolve @relayflows/surface');
210
+ }
211
+ try {
212
+ const manifest = surfacePackageManifest(await readBoundedSurfaceFile(PATH_JOIN(real, 'package.json'), MAX_SURFACE_PACKAGE_BYTES));
213
+ if (manifest.name === '@relayflows/surface' && manifest.version === expectedVersion)
214
+ return real;
215
+ }
216
+ catch { /* fall through */ }
217
+ return unsupported('hosted extension resolved an invalid @relayflows/surface package');
218
+ }
219
+ async function readSurfaceFiles(surfaceRoot) {
220
+ const entries = OBJECT_ENTRIES(SURFACE_RUNTIME_SHA256);
221
+ const files = [
222
+ { destination: '/extension/node_modules/@relayflows/surface/package.json', bytes: BUFFER_FROM(SURFACE_PACKAGE_JSON) },
223
+ { destination: '/extension/node_modules/@relayflows/surface/index.js', bytes: BUFFER_FROM(SURFACE_INDEX) },
224
+ { destination: '/extension/node_modules/@relayflows/surface/runtime.js', bytes: BUFFER_FROM(SURFACE_RUNTIME) },
225
+ ];
226
+ for (let index = 0; index < entries.length; index += 1) {
227
+ const file = entries[index][0];
228
+ const expected = entries[index][1];
229
+ let bytes;
230
+ try {
231
+ bytes = await readBoundedSurfaceFile(PATH_JOIN(surfaceRoot, 'dist', file), MAX_SURFACE_RUNTIME_BYTES);
232
+ }
233
+ catch {
234
+ return unsupported(`hosted extension cannot read pinned Surface runtime ${file}`);
235
+ }
236
+ if (sha256(bytes) !== expected) {
237
+ return unsupported(`hosted extension Surface runtime ${file} differs from the reviewed bytes`);
238
+ }
239
+ appendIntrinsicArray(files, {
240
+ destination: `/extension/node_modules/@relayflows/surface/dist/${file}`,
241
+ bytes,
242
+ });
243
+ }
244
+ return frozenHostedPromiseValue(files);
245
+ }
246
+ function surfacePackageManifest(bytes) {
247
+ const value = snapshotJsonValue(JSON_PARSE(BUFFER_TO_STRING(bytes, 'utf8')), 'Surface package manifest', {
248
+ maxBytes: MAX_SURFACE_PACKAGE_BYTES,
249
+ maxDepth: 3,
250
+ maxNodes: 64,
251
+ });
252
+ if (typeof value !== 'object' || value === null || ARRAY_IS_ARRAY(value)) {
253
+ return unsupported('hosted extension resolved an invalid @relayflows/surface package');
254
+ }
255
+ return value;
256
+ }
257
+ async function readBoundedSurfaceFile(path, maxBytes) {
258
+ const descriptor = await openDescriptor(path, SURFACE_READ_FLAGS);
259
+ try {
260
+ const before = await statDescriptor(descriptor, { bigint: true });
261
+ if (!descriptorIsFile(before) || before.size < 0n || before.size > BIG_INT(maxBytes)) {
262
+ return unsupported(`hosted extension cannot read bounded Surface file ${path}`);
263
+ }
264
+ const size = NUMBER(before.size);
265
+ const bytes = BUFFER_ALLOC_UNSAFE(size);
266
+ let offset = 0;
267
+ while (offset < size) {
268
+ const bytesRead = await readDescriptor(descriptor, bytes, offset, size - offset, offset);
269
+ if (bytesRead === 0)
270
+ return unsupported(`hosted extension Surface file ${path} changed while reading`);
271
+ offset += bytesRead;
272
+ }
273
+ const extra = BUFFER_ALLOC_UNSAFE(1);
274
+ if ((await readDescriptor(descriptor, extra, 0, 1, size)) !== 0) {
275
+ return unsupported(`hosted extension Surface file ${path} changed while reading`);
276
+ }
277
+ const after = await statDescriptor(descriptor, { bigint: true });
278
+ if (after.size !== before.size || after.mtimeNs !== before.mtimeNs || after.ctimeNs !== before.ctimeNs) {
279
+ return unsupported(`hosted extension Surface file ${path} changed while reading`);
280
+ }
281
+ return hostedPromiseValue(bytes);
282
+ }
283
+ finally {
284
+ await closeDescriptor(descriptor);
285
+ }
286
+ }
287
+ /** @internal Pure construction seam for hostile-intrinsic regressions. */
288
+ export function sandboxArguments(input) {
289
+ const args = [
290
+ '--unshare-all', '--die-with-parent', '--new-session', '--clearenv', '--cap-drop', 'ALL', '--dir', '/usr',
291
+ ];
292
+ const libraryPaths = ['/usr/lib', '/usr/lib64', '/lib', '/lib64'];
293
+ for (let index = 0; index < libraryPaths.length; index += 1) {
294
+ const path = libraryPaths[index];
295
+ if (EXISTS_SYNC(path))
296
+ appendIntrinsicArray(args, '--ro-bind', REALPATH_SYNC(path), path);
297
+ }
298
+ appendIntrinsicArray(args, '--proc', '/proc', '--dev', '/dev', '--tmpfs', '/tmp', '--dir', '/runtime', '--dir', '/extension', '--dir', '/extension/node_modules', '--dir', '/extension/node_modules/@relayflows', '--dir', '/extension/node_modules/@relayflows/surface', '--dir', '/extension/node_modules/@relayflows/surface/dist', '--dir', '/extension/node_modules/@relayflows/surface/dist/helpers', '--dir', '/extension/node_modules/@relayflows/surface/dist/triggers', '--dir', '/extension/src');
299
+ const directories = new SET();
300
+ const fixedDirectories = [
301
+ '/runtime', '/extension', '/extension/node_modules', '/extension/node_modules/@relayflows',
302
+ '/extension/node_modules/@relayflows/surface', '/extension/node_modules/@relayflows/surface/dist',
303
+ '/extension/node_modules/@relayflows/surface/dist/helpers',
304
+ '/extension/node_modules/@relayflows/surface/dist/triggers', '/extension/src',
305
+ ];
306
+ for (let index = 0; index < fixedDirectories.length; index += 1) {
307
+ SET_ADD(directories, fixedDirectories[index]);
308
+ }
309
+ for (let index = 0; index < input.dataDestinations.length; index += 1) {
310
+ const parts = STRING_SPLIT(input.dataDestinations[index], '/');
311
+ let directory = '';
312
+ for (let partIndex = 1; partIndex < parts.length - 1; partIndex += 1) {
313
+ directory += `/${parts[partIndex]}`;
314
+ if (!SET_HAS(directories, directory)) {
315
+ SET_ADD(directories, directory);
316
+ appendIntrinsicArray(args, '--dir', directory);
317
+ }
318
+ }
319
+ }
320
+ for (let index = 0; index < input.dataDestinations.length; index += 1) {
321
+ const destination = input.dataDestinations[index];
322
+ appendIntrinsicArray(args, '--perms', destination === '/runtime/node' ? '0500' : '0400', '--ro-bind-data', STRING(index + 4), destination);
323
+ }
324
+ appendIntrinsicArray(args, '--chdir', '/extension/src', '--setenv', 'HOME', '/tmp', '--setenv', 'TMPDIR', '/tmp', '--setenv', 'PATH', '/runtime', '/runtime/node', '--permission', '--experimental-strip-types', '--max-old-space-size=64', '--allow-fs-read=/runtime', '--allow-fs-read=/extension', '/runtime/runner.mjs');
325
+ return args;
326
+ }
327
+ function captureNodeExecutable() {
328
+ try {
329
+ return captureExecutable(PROCESS_EXEC_PATH, 'Node');
330
+ }
331
+ catch {
332
+ return undefined;
333
+ }
334
+ }
335
+ /** @internal Descriptor-pinning seam for the executable replacement regression. */
336
+ export function captureExecutable(path, name) {
337
+ let real;
338
+ try {
339
+ real = REALPATH_SYNC(path);
340
+ }
341
+ catch {
342
+ return unsupported(`${name} is unavailable`);
343
+ }
344
+ let descriptor;
345
+ try {
346
+ descriptor = OPEN_SYNC(real, SURFACE_READ_FLAGS);
347
+ }
348
+ catch {
349
+ return unsupported(`${name} is unavailable`);
350
+ }
351
+ try {
352
+ const stat = FSTAT_SYNC(descriptor, { bigint: true });
353
+ if (!descriptorIsFile(stat) || stat.size < 1n || stat.size > BIG_INT(MAX_NODE_EXECUTABLE_BYTES)) {
354
+ return unsupported(`${name} is not a bounded regular file`);
355
+ }
356
+ const bytes = readExecutableDescriptor(descriptor, NUMBER(stat.size), name);
357
+ const after = FSTAT_SYNC(descriptor, { bigint: true });
358
+ if (after.dev !== stat.dev || after.ino !== stat.ino || after.size !== stat.size
359
+ || after.mtimeNs !== stat.mtimeNs || after.ctimeNs !== stat.ctimeNs) {
360
+ return unsupported(`${name} changed while being captured`);
361
+ }
362
+ return OBJECT_FREEZE({ descriptor, sha256: sha256(bytes), stat });
363
+ }
364
+ catch (error) {
365
+ CLOSE_SYNC(descriptor);
366
+ throw error;
367
+ }
368
+ }
369
+ /** @internal Reads the inode captured before authored code could replace its path. */
370
+ export function readCapturedExecutable(capture, name) {
371
+ const size = NUMBER(capture.stat.size);
372
+ const bytes = readExecutableDescriptor(capture.descriptor, size, name);
373
+ const after = FSTAT_SYNC(capture.descriptor, { bigint: true });
374
+ if (after.dev !== capture.stat.dev || after.ino !== capture.stat.ino
375
+ || after.size !== capture.stat.size || sha256(bytes) !== capture.sha256) {
376
+ return unsupported(`${name} changed while reading`);
377
+ }
378
+ return bytes;
379
+ }
380
+ function readExecutableDescriptor(descriptor, size, name) {
381
+ const bytes = BUFFER_ALLOC_UNSAFE(size);
382
+ let offset = 0;
383
+ while (offset < size) {
384
+ const bytesRead = READ_SYNC(descriptor, bytes, offset, size - offset, offset);
385
+ if (bytesRead === 0)
386
+ return unsupported(`${name} changed while reading`);
387
+ offset += bytesRead;
388
+ }
389
+ return bytes;
390
+ }
391
+ function executable(path, name) {
392
+ let real;
393
+ try {
394
+ real = REALPATH_SYNC(path);
395
+ }
396
+ catch {
397
+ return unsupported(`${name} is unavailable`);
398
+ }
399
+ if (!descriptorIsFile(LSTAT_SYNC(real)))
400
+ return unsupported(`${name} is not a regular file`);
401
+ return real;
402
+ }
403
+ function ownOption(options, name) {
404
+ const descriptor = OBJECT_GET_OWN_PROPERTY_DESCRIPTOR(options, name);
405
+ return descriptor !== undefined && 'value' in descriptor ? descriptor.value : undefined;
406
+ }
407
+ export function supportsHostedSandboxFlags(version) {
408
+ const match = REGEXP_EXEC(/^(\d+)\.(\d+)\.(\d+)(?:-|$)/, version);
409
+ if (match === null)
410
+ return false;
411
+ const major = NUMBER(match[1]);
412
+ const minor = NUMBER(match[2]);
413
+ return major >= 24 || (major === 23 && minor >= 5) || (major === 22 && minor >= 13);
414
+ }
415
+ function unsupported(message) {
416
+ throw new PluginError('plugin_unsupported', message);
417
+ }
418
+ //# sourceMappingURL=hosted-extension-sandbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hosted-extension-sandbox.js","sourceRoot":"","sources":["../src/hosted-extension-sandbox.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Project discovery for hosted authority, captured before authored code runs. */
2
+ export declare function findHostedProject(start: string): string | undefined;
3
+ //# sourceMappingURL=hosted-project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hosted-project.d.ts","sourceRoot":"","sources":["../src/hosted-project.ts"],"names":[],"mappings":"AAQA,kFAAkF;AAClF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQnE"}
@@ -0,0 +1,19 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { dirname, join, resolve } from 'node:path';
3
+ const EXISTS_SYNC = existsSync;
4
+ const PATH_DIRNAME = dirname;
5
+ const PATH_JOIN = join;
6
+ const PATH_RESOLVE = resolve;
7
+ /** Project discovery for hosted authority, captured before authored code runs. */
8
+ export function findHostedProject(start) {
9
+ let current = PATH_RESOLVE(start);
10
+ for (;;) {
11
+ if (EXISTS_SYNC(PATH_JOIN(current, 'flows.json')))
12
+ return current;
13
+ const parent = PATH_DIRNAME(current);
14
+ if (parent === current)
15
+ return undefined;
16
+ current = parent;
17
+ }
18
+ }
19
+ //# sourceMappingURL=hosted-project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hosted-project.js","sourceRoot":"","sources":["../src/hosted-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnD,MAAM,WAAW,GAAG,UAAU,CAAC;AAC/B,MAAM,YAAY,GAAG,OAAO,CAAC;AAC7B,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,MAAM,YAAY,GAAG,OAAO,CAAC;AAE7B,kFAAkF;AAClF,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,IAAI,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,SAAS,CAAC;QACR,IAAI,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAAE,OAAO,OAAO,CAAC;QAClE,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,SAAS,CAAC;QACzC,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { type PluginFailureKind } from './plugin-manifest.js';
2
+ /**
3
+ * Promise resolution reads a returned object's inherited `then` property.
4
+ * Refuse if module initialization did not begin in a pristine realm where the
5
+ * inert prototype slot could be locked for the lifetime of the process.
6
+ */
7
+ export declare function assertHostedPromiseSafety(code: PluginFailureKind, message?: string): void;
8
+ /** Shadow inherited thenables before an object is used to settle a promise. */
9
+ export declare function hostedPromiseValue<T extends object>(value: T): T;
10
+ /** Freeze a behavior-free object after shadowing inherited thenables. */
11
+ export declare function frozenHostedPromiseValue<T extends object>(value: T): Readonly<T>;
12
+ //# sourceMappingURL=hosted-promise-safety.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hosted-promise-safety.d.ts","sourceRoot":"","sources":["../src/hosted-promise-safety.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AA4C3E;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,iBAAiB,EACvB,OAAO,SAA+D,GACrE,IAAI,CAIN;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAGhE;AAED,yEAAyE;AACzE,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAEhF"}
@@ -0,0 +1,63 @@
1
+ import { PluginError } from './plugin-manifest.js';
2
+ const OBJECT_DEFINE_PROPERTY = Object.defineProperty;
3
+ const OBJECT_FREEZE = Object.freeze;
4
+ const OBJECT_GET_OWN_PROPERTY_DESCRIPTOR = Object.getOwnPropertyDescriptor;
5
+ const OBJECT_PROTOTYPE = Object.prototype;
6
+ const INERT_THEN = {
7
+ configurable: false,
8
+ enumerable: false,
9
+ value: undefined,
10
+ writable: false,
11
+ };
12
+ const PROTOTYPE_THEN_GET = () => undefined;
13
+ const PROTOTYPE_THEN_SET = function setOwnThen(value) {
14
+ if (this === OBJECT_PROTOTYPE)
15
+ return;
16
+ // Preserve ordinary `object.then = value` behavior for dependencies while
17
+ // keeping the inherited slot immutable. Assignment reaches this setter only
18
+ // when the receiver does not already have its own `then` property.
19
+ OBJECT_DEFINE_PROPERTY(this, 'then', {
20
+ configurable: true,
21
+ enumerable: true,
22
+ value,
23
+ writable: true,
24
+ });
25
+ };
26
+ const LOCKED_PROTOTYPE_THEN = {
27
+ configurable: false,
28
+ enumerable: false,
29
+ get: PROTOTYPE_THEN_GET,
30
+ set: PROTOTYPE_THEN_SET,
31
+ };
32
+ // Promise assimilation consults the prototype after every async operation,
33
+ // not just at the public entry point. Lock this one dangerous slot while the
34
+ // realm is pristine so authored code cannot install a thenable between awaits.
35
+ const initialThen = OBJECT_GET_OWN_PROPERTY_DESCRIPTOR(OBJECT_PROTOTYPE, 'then');
36
+ if (initialThen === undefined)
37
+ OBJECT_DEFINE_PROPERTY(OBJECT_PROTOTYPE, 'then', LOCKED_PROTOTYPE_THEN);
38
+ const installedThen = OBJECT_GET_OWN_PROPERTY_DESCRIPTOR(OBJECT_PROTOTYPE, 'then');
39
+ const PROMISE_PROTOTYPE_SAFE = installedThen !== undefined
40
+ && installedThen.get === PROTOTYPE_THEN_GET
41
+ && installedThen.set === PROTOTYPE_THEN_SET
42
+ && installedThen.configurable === false
43
+ && installedThen.enumerable === false;
44
+ /**
45
+ * Promise resolution reads a returned object's inherited `then` property.
46
+ * Refuse if module initialization did not begin in a pristine realm where the
47
+ * inert prototype slot could be locked for the lifetime of the process.
48
+ */
49
+ export function assertHostedPromiseSafety(code, message = 'Hosted isolation refuses an ambient Object.prototype.then.') {
50
+ if (!PROMISE_PROTOTYPE_SAFE) {
51
+ throw new PluginError(code, message);
52
+ }
53
+ }
54
+ /** Shadow inherited thenables before an object is used to settle a promise. */
55
+ export function hostedPromiseValue(value) {
56
+ OBJECT_DEFINE_PROPERTY(value, 'then', INERT_THEN);
57
+ return value;
58
+ }
59
+ /** Freeze a behavior-free object after shadowing inherited thenables. */
60
+ export function frozenHostedPromiseValue(value) {
61
+ return OBJECT_FREEZE(hostedPromiseValue(value));
62
+ }
63
+ //# sourceMappingURL=hosted-promise-safety.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hosted-promise-safety.js","sourceRoot":"","sources":["../src/hosted-promise-safety.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA0B,MAAM,sBAAsB,CAAC;AAE3E,MAAM,sBAAsB,GAAG,MAAM,CAAC,cAAc,CAAC;AACrD,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;AACpC,MAAM,kCAAkC,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAC3E,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC;AAC1C,MAAM,UAAU,GAAG;IACjB,YAAY,EAAE,KAAK;IACnB,UAAU,EAAE,KAAK;IACjB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,KAAK;CACP,CAAC;AACX,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;AAC3C,MAAM,kBAAkB,GAAG,SAAS,UAAU,CAAe,KAAc;IACzE,IAAI,IAAI,KAAK,gBAAgB;QAAE,OAAO;IACtC,0EAA0E;IAC1E,4EAA4E;IAC5E,mEAAmE;IACnE,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE;QACnC,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,IAAI;QAChB,KAAK;QACL,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;AACL,CAAC,CAAC;AACF,MAAM,qBAAqB,GAAG;IAC5B,YAAY,EAAE,KAAK;IACnB,UAAU,EAAE,KAAK;IACjB,GAAG,EAAE,kBAAkB;IACvB,GAAG,EAAE,kBAAkB;CACf,CAAC;AAEX,2EAA2E;AAC3E,6EAA6E;AAC7E,+EAA+E;AAC/E,MAAM,WAAW,GAAG,kCAAkC,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AACjF,IAAI,WAAW,KAAK,SAAS;IAAE,sBAAsB,CAAC,gBAAgB,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC;AACvG,MAAM,aAAa,GAAG,kCAAkC,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AACnF,MAAM,sBAAsB,GAAG,aAAa,KAAK,SAAS;OACrD,aAAa,CAAC,GAAG,KAAK,kBAAkB;OACxC,aAAa,CAAC,GAAG,KAAK,kBAAkB;OACxC,aAAa,CAAC,YAAY,KAAK,KAAK;OACpC,aAAa,CAAC,UAAU,KAAK,KAAK,CAAC;AAExC;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAuB,EACvB,OAAO,GAAG,4DAA4D;IAEtE,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,MAAM,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,kBAAkB,CAAmB,KAAQ;IAC3D,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAClD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,wBAAwB,CAAmB,KAAQ;IACjE,OAAO,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;AAClD,CAAC"}
package/dist/index.d.ts CHANGED
@@ -3,6 +3,8 @@ export { MODEL_PRICING } from './model-pricing.js';
3
3
  export type { HeaderBudget } from './budget.js';
4
4
  export type { StepSpend } from './protocol.js';
5
5
  export { SPEC_SCHEMA_VERSION } from './spec.js';
6
+ export { runHostedCapabilityExtension, loadHostedExtensionRuntime, type HostedExtensionArtifact, type HostedExtensionInstallation, type HostedExtensionBase, type HostedExtensionRuntime, type HostedCapabilityAuthority, type HostedBabysitterCapability, type RunHostedExtensionOptions, type HostedExtensionResult, } from './hosted-extension-isolation.js';
7
+ export { hostedExtensionDispatchFromVerifiedDelivery, type HostedExtensionDispatch, type HostedEventIdentity, } from './flow-extension-loader.js';
6
8
  export { CloudFlowError, type CloudConnectionOptions, type CloudConfigurationReason } from './cloud-http.js';
7
9
  export { listCloudRuns, getCloudRunDetail, getCloudRunSteps, getCloudRunLog, type CloudRunSummary, type CloudRunList, type CloudRunDetail, type CloudStep, type CloudStepAttempt, type CloudStepTranscript, type CloudToolCall, type CloudToolCount, type CloudRunLog, } from './cloud-read.js';
8
10
  export { parseAgentTranscript, renderAgentTranscript, type ParsedTranscript, type TranscriptEntry, } from './cloud-transcript.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,6 +3,8 @@
3
3
  // (kernel DESIGN.md §5).
4
4
  export { MODEL_PRICING } from './model-pricing.js';
5
5
  export { SPEC_SCHEMA_VERSION } from './spec.js';
6
+ export { runHostedCapabilityExtension, loadHostedExtensionRuntime, } from './hosted-extension-isolation.js';
7
+ export { hostedExtensionDispatchFromVerifiedDelivery, } from './flow-extension-loader.js';
6
8
  export { CloudFlowError } from './cloud-http.js';
7
9
  export { listCloudRuns, getCloudRunDetail, getCloudRunSteps, getCloudRunLog, } from './cloud-read.js';
8
10
  export { parseAgentTranscript, renderAgentTranscript, } from './cloud-transcript.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,yEAAyE;AACzE,yBAAyB;AAqDzB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,cAAc,EAA8D,MAAM,iBAAiB,CAAC;AAC7G,OAAO,EACL,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,cAAc,GAGnE,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,oBAAoB,EAAE,qBAAqB,GAE5C,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,UAAU,EAAE,eAAe,EAAE,mBAAmB,GAEjD,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,kBAAkB,EAAE,qBAAqB,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EACzF,kBAAkB,EAAE,yBAAyB,EAAE,cAAc,GAG9D,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,WAAW,EAAE,oBAAoB,GAE1F,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAwB,MAAM,gBAAgB,CAAC;AACnG,OAAO,EACL,aAAa,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,sBAAsB,GAEpH,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,2BAA2B,EAAE,oBAAoB,EAAE,aAAa,GAEjE,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,GAE3E,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,sBAAsB,EAAiD,MAAM,eAAe,CAAC;AAEzI,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,WAAW,EACX,WAAW,EACX,0BAA0B,EAC1B,iBAAiB,EACjB,YAAY,EACZ,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAyB,MAAM,eAAe,CAAC;AAEpE,OAAO,EACL,yBAAyB,GAG1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,SAAS,EACT,gBAAgB,GAUjB,MAAM,gBAAgB,CAAC;AAMxB,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,GAInB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,EAA2D,MAAM,UAAU,CAAC;AA6C3F,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEvE,OAAO,EAAE,aAAa,EAA6B,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAA2B,MAAM,aAAa,CAAC;AAEnE,OAAO,EACL,mBAAmB,EACnB,gBAAgB,GAIjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,kBAAkB,GAInB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,uBAAuB,GAIxB,MAAM,6BAA6B,CAAC;AAErC,iFAAiF;AACjF,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,GAInB,MAAM,gBAAgB,CAAC;AAExB,uEAAuE;AACvE,yEAAyE;AACzE,4EAA4E;AAC5E,2BAA2B;AAC3B,OAAO,EACL,iBAAiB,GAGlB,MAAM,yBAAyB,CAAC;AAEjC,2EAA2E;AAC3E,6EAA6E;AAC7E,oEAAoE;AACpE,gCAAgC;AAChC,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,OAAO,EACP,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,GAMhB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,UAAU,EAA4C,MAAM,kBAAkB,CAAC;AAExF,OAAO,EAAE,cAAc,EAAsB,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,iBAAiB,EAAyB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}