@nimbus-sh/worker 0.1.4 → 0.1.6

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 (141) hide show
  1. package/README.md +37 -0
  2. package/dist/_shared/crypto.d.ts +15 -0
  3. package/dist/_shared/crypto.d.ts.map +1 -0
  4. package/dist/_shared/crypto.js +122 -0
  5. package/dist/facets/manager.d.ts +24 -0
  6. package/dist/facets/manager.d.ts.map +1 -1
  7. package/dist/facets/manager.js +279 -70
  8. package/dist/facets/process.d.ts +11 -2
  9. package/dist/facets/process.d.ts.map +1 -1
  10. package/dist/facets/process.js +187 -21
  11. package/dist/facets/vite-dev-server.d.ts +2 -0
  12. package/dist/facets/vite-dev-server.d.ts.map +1 -1
  13. package/dist/facets/vite-dev-server.js +39 -12
  14. package/dist/index.d.ts +2 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +2 -0
  17. package/dist/loaders/child-process/spawn-facet.d.ts +1 -3
  18. package/dist/loaders/child-process/spawn-facet.d.ts.map +1 -1
  19. package/dist/loaders/child-process/spawn-facet.js +1 -12
  20. package/dist/loaders/child-process/spawn-pool.d.ts +1 -1
  21. package/dist/loaders/child-process/spawn-pool.d.ts.map +1 -1
  22. package/dist/loaders/child-process/spawn-pool.js +1 -6
  23. package/dist/loaders/loader-pool.d.ts +7 -0
  24. package/dist/loaders/loader-pool.d.ts.map +1 -1
  25. package/dist/loaders/loader-pool.js +3 -1
  26. package/dist/npm/installer.d.ts.map +1 -1
  27. package/dist/npm/installer.js +47 -27
  28. package/dist/npm/pre-bundle-facet.d.ts.map +1 -1
  29. package/dist/npm/pre-bundle-facet.js +2 -1
  30. package/dist/npm/resolve-one-facet.d.ts.map +1 -1
  31. package/dist/npm/resolve-one-facet.js +41 -13
  32. package/dist/npm/resolver.d.ts.map +1 -1
  33. package/dist/npm/resolver.js +70 -35
  34. package/dist/router/index.d.ts.map +1 -1
  35. package/dist/router/index.js +45 -21
  36. package/dist/router/remote-api.d.ts.map +1 -1
  37. package/dist/router/remote-api.js +29 -8
  38. package/dist/runtime/barrel-synthesizer.d.ts +7 -0
  39. package/dist/runtime/barrel-synthesizer.d.ts.map +1 -1
  40. package/dist/runtime/barrel-synthesizer.js +11 -0
  41. package/dist/runtime/clang-runner.d.ts +2 -2
  42. package/dist/runtime/clang-runner.d.ts.map +1 -1
  43. package/dist/runtime/clang-runner.js +64 -47
  44. package/dist/runtime/esbuild-service.d.ts +12 -5
  45. package/dist/runtime/esbuild-service.d.ts.map +1 -1
  46. package/dist/runtime/esbuild-service.js +28 -14
  47. package/dist/runtime/node-runner.d.ts +2 -0
  48. package/dist/runtime/node-runner.d.ts.map +1 -1
  49. package/dist/runtime/node-shims.d.ts +4 -2
  50. package/dist/runtime/node-shims.d.ts.map +1 -1
  51. package/dist/runtime/node-shims.js +404 -55
  52. package/dist/runtime/os-contracts.d.ts +128 -0
  53. package/dist/runtime/os-contracts.d.ts.map +1 -0
  54. package/dist/runtime/os-contracts.js +1 -0
  55. package/dist/runtime/package-manager.d.ts +31 -0
  56. package/dist/runtime/package-manager.d.ts.map +1 -1
  57. package/dist/runtime/package-manager.js +162 -15
  58. package/dist/runtime/port-registry.d.ts +5 -0
  59. package/dist/runtime/port-registry.d.ts.map +1 -1
  60. package/dist/runtime/port-registry.js +22 -1
  61. package/dist/runtime/pyodide-runtime-assets.d.ts +19 -0
  62. package/dist/runtime/pyodide-runtime-assets.d.ts.map +1 -0
  63. package/dist/runtime/pyodide-runtime-assets.js +44 -0
  64. package/dist/runtime/python-repl.d.ts +3 -0
  65. package/dist/runtime/python-repl.d.ts.map +1 -1
  66. package/dist/runtime/python-repl.js +18 -32
  67. package/dist/runtime/python-runner.d.ts +8 -9
  68. package/dist/runtime/python-runner.d.ts.map +1 -1
  69. package/dist/runtime/python-runner.js +958 -118
  70. package/dist/runtime/python-socket-shim.d.ts +11 -0
  71. package/dist/runtime/python-socket-shim.d.ts.map +1 -0
  72. package/dist/runtime/python-socket-shim.js +526 -0
  73. package/dist/runtime/require-resolver.d.ts.map +1 -1
  74. package/dist/runtime/require-resolver.js +2 -11
  75. package/dist/runtime/ruby-gems.d.ts +25 -0
  76. package/dist/runtime/ruby-gems.d.ts.map +1 -0
  77. package/dist/runtime/ruby-gems.js +582 -0
  78. package/dist/runtime/ruby-runner.d.ts +2 -4
  79. package/dist/runtime/ruby-runner.d.ts.map +1 -1
  80. package/dist/runtime/ruby-runner.js +335 -34
  81. package/dist/runtime/runtime-catalog.d.ts +16 -4
  82. package/dist/runtime/runtime-catalog.d.ts.map +1 -1
  83. package/dist/runtime/runtime-catalog.js +21 -10
  84. package/dist/runtime/runtime-registry.d.ts +3 -0
  85. package/dist/runtime/runtime-registry.d.ts.map +1 -1
  86. package/dist/runtime/runtime-registry.js +4 -0
  87. package/dist/runtime/sqlite-runtime-fs-bridge.d.ts +43 -0
  88. package/dist/runtime/sqlite-runtime-fs-bridge.d.ts.map +1 -0
  89. package/dist/runtime/sqlite-runtime-fs-bridge.js +224 -0
  90. package/dist/runtime/static-server.d.ts +3 -0
  91. package/dist/runtime/static-server.d.ts.map +1 -0
  92. package/dist/runtime/static-server.js +121 -0
  93. package/dist/runtime/vfs-snapshot.d.ts +57 -0
  94. package/dist/runtime/vfs-snapshot.d.ts.map +1 -0
  95. package/dist/runtime/vfs-snapshot.js +141 -0
  96. package/dist/runtime/virtual-socket-kernel.d.ts +16 -0
  97. package/dist/runtime/virtual-socket-kernel.d.ts.map +1 -0
  98. package/dist/runtime/virtual-socket-kernel.js +360 -0
  99. package/dist/runtime/wasi-instance.d.ts +6 -3
  100. package/dist/runtime/wasi-instance.d.ts.map +1 -1
  101. package/dist/runtime/wasm-runner.d.ts +1 -25
  102. package/dist/runtime/wasm-runner.d.ts.map +1 -1
  103. package/dist/runtime/wasm-runner.js +1 -160
  104. package/dist/session/agent.d.ts +43 -0
  105. package/dist/session/agent.d.ts.map +1 -0
  106. package/dist/session/agent.js +1252 -0
  107. package/dist/session/init.d.ts.map +1 -1
  108. package/dist/session/init.js +64 -19
  109. package/dist/session/nimbus-session.d.ts +14 -2
  110. package/dist/session/nimbus-session.d.ts.map +1 -1
  111. package/dist/session/nimbus-session.js +104 -30
  112. package/dist/session/programmatic.d.ts +10 -0
  113. package/dist/session/programmatic.d.ts.map +1 -1
  114. package/dist/session/programmatic.js +121 -0
  115. package/dist/session/routes.d.ts.map +1 -1
  116. package/dist/session/routes.js +19 -1
  117. package/dist/session/rpc.d.ts +11 -0
  118. package/dist/session/rpc.d.ts.map +1 -1
  119. package/dist/session/rpc.js +56 -43
  120. package/dist/session/supervisor-rpc.d.ts +15 -0
  121. package/dist/session/supervisor-rpc.d.ts.map +1 -1
  122. package/dist/session/supervisor-rpc.js +32 -0
  123. package/dist/session/ws.d.ts +4 -3
  124. package/dist/session/ws.d.ts.map +1 -1
  125. package/dist/session/ws.js +11 -1
  126. package/dist/shell/unix-commands.d.ts.map +1 -1
  127. package/dist/shell/unix-commands.js +52 -51
  128. package/dist/vfs/path.d.ts +8 -4
  129. package/dist/vfs/path.d.ts.map +1 -1
  130. package/dist/vfs/path.js +16 -4
  131. package/dist/vfs/sqlite-vfs.d.ts +2 -0
  132. package/dist/vfs/sqlite-vfs.d.ts.map +1 -1
  133. package/dist/vfs/sqlite-vfs.js +11 -0
  134. package/dist/vfs/symlink-registry.d.ts +7 -1
  135. package/dist/vfs/symlink-registry.d.ts.map +1 -1
  136. package/dist/vfs/symlink-registry.js +16 -11
  137. package/package.json +4 -1
  138. package/public/index.html +240 -0
  139. package/public/s/index.html +1316 -128
  140. package/runtime-contracts/pyodide-workerd-adapter.json +18 -0
  141. package/scripts/bundle-runtime.mjs +99 -24
package/README.md CHANGED
@@ -215,6 +215,43 @@ await box.startProcess('node --watch /home/user/app/server.js');
215
215
  const port = await box.ports.expose(3000);
216
216
  ```
217
217
 
218
+ ## Session Agent
219
+
220
+ The bundled session shell includes an Agent surface inside the editor
221
+ workspace. The route lives inside the session Durable Object under
222
+ `/api/agent/*`; the stable Cloudflare OAuth callback is
223
+ `/api/nimbus/oauth/callback`.
224
+
225
+ The agent can use the same session tools as the SDK: shell exec, files,
226
+ runtime installs, long-running processes, logs, and preview ports. Model calls
227
+ use the AI SDK with Cloudflare Workers AI's OpenAI-compatible endpoint and an
228
+ optional AI Gateway name.
229
+
230
+ For user-owned quota, create a Cloudflare OAuth client with response type
231
+ `Code`, grant type `Authorization Code`, token authentication method `None`,
232
+ and redirect URL `https://<your-nimbus-host>/api/nimbus/oauth/callback`.
233
+ Nimbus uses PKCE and stores user OAuth tokens only in encrypted `HttpOnly`,
234
+ `Secure`, `SameSite=Lax` browser cookies scoped to the session URL.
235
+
236
+ Non-secret values can be generated with `@nimbus-sh/config` or written as
237
+ `vars`:
238
+
239
+ | Var | What |
240
+ |---|---|
241
+ | `NIMBUS_CF_OAUTH_CLIENT_ID` | Cloudflare OAuth client ID. |
242
+ | `NIMBUS_CF_OAUTH_SCOPES` | Space-delimited Cloudflare OAuth scope IDs. |
243
+ | `NIMBUS_CF_OAUTH_REDIRECT_URI` | Optional callback override; default is `<origin>/api/nimbus/oauth/callback`. |
244
+ | `NIMBUS_CLOUDFLARE_ACCOUNT_ID` | Owner-token fallback account ID. |
245
+ | `NIMBUS_AGENT_MODEL` | Workers AI model, default `@cf/moonshotai/kimi-k2.6`. |
246
+ | `NIMBUS_AGENT_GATEWAY_ID` | AI Gateway name, default `default`. |
247
+
248
+ Secrets stay in Workers secret storage:
249
+
250
+ ```bash
251
+ npx wrangler secret put NIMBUS_AGENT_COOKIE_SECRET
252
+ npx wrangler secret put NIMBUS_CLOUDFLARE_API_TOKEN
253
+ ```
254
+
218
255
  ### Hooks
219
256
 
220
257
  ```ts
@@ -0,0 +1,15 @@
1
+ export interface SealedJsonOptions {
2
+ purpose?: string;
3
+ minSecretLength?: number;
4
+ }
5
+ export declare function randomBase64Url(byteLength: number): string;
6
+ export declare function sha256Base64Url(input: string): Promise<string>;
7
+ export declare function pkceChallenge(verifier: string): Promise<string>;
8
+ export declare function sealJson(value: unknown, secret: string, options?: SealedJsonOptions): Promise<string>;
9
+ export declare function unsealJson<T>(value: string, secret: string, options?: SealedJsonOptions): Promise<T | null>;
10
+ export declare function encodeJsonBase64Url(value: unknown): string;
11
+ export declare function decodeJsonBase64Url<T>(value: string): T;
12
+ export declare function base64Url(bytes: Uint8Array): string;
13
+ export declare function base64UrlDecode(value: string): Uint8Array;
14
+ export declare function base64Utf8(value: string): string;
15
+ //# sourceMappingURL=crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/_shared/crypto.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGpE;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAErE;AAED,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,MAAM,CAAC,CAejB;AAED,wBAAsB,UAAU,CAAC,CAAC,EAChC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CA6BnB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE1D;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,CAEvD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAUnD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CASzD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQhD"}
@@ -0,0 +1,122 @@
1
+ const textEncoder = new TextEncoder();
2
+ const textDecoder = new TextDecoder();
3
+ const SEALED_JSON_V2 = 'v2.';
4
+ const SEALED_JSON_V1 = 'v1.';
5
+ const HKDF_SALT = textEncoder.encode('nimbus-sh sealed-json v2');
6
+ const BASE64URL_RE = /^[A-Za-z0-9_-]*$/;
7
+ export function randomBase64Url(byteLength) {
8
+ const bytes = new Uint8Array(byteLength);
9
+ crypto.getRandomValues(bytes);
10
+ return base64Url(bytes);
11
+ }
12
+ export async function sha256Base64Url(input) {
13
+ const digest = await crypto.subtle.digest('SHA-256', textEncoder.encode(input));
14
+ return base64Url(new Uint8Array(digest));
15
+ }
16
+ export async function pkceChallenge(verifier) {
17
+ return sha256Base64Url(verifier);
18
+ }
19
+ export async function sealJson(value, secret, options = {}) {
20
+ const purpose = normalizePurpose(options.purpose);
21
+ const key = await hkdfAesGcmKey(secret, purpose, options.minSecretLength);
22
+ const iv = new Uint8Array(12);
23
+ crypto.getRandomValues(iv);
24
+ const plaintext = textEncoder.encode(JSON.stringify(value));
25
+ const ciphertext = new Uint8Array(await crypto.subtle.encrypt({ name: 'AES-GCM', iv, additionalData: aad(purpose) }, key, plaintext));
26
+ const packed = new Uint8Array(iv.length + ciphertext.length);
27
+ packed.set(iv, 0);
28
+ packed.set(ciphertext, iv.length);
29
+ return SEALED_JSON_V2 + base64Url(packed);
30
+ }
31
+ export async function unsealJson(value, secret, options = {}) {
32
+ if (value.startsWith(SEALED_JSON_V2)) {
33
+ const purpose = normalizePurpose(options.purpose);
34
+ const packed = base64UrlDecode(value.slice(SEALED_JSON_V2.length));
35
+ if (packed.length <= 12)
36
+ return null;
37
+ const iv = packed.slice(0, 12);
38
+ const ciphertext = packed.slice(12);
39
+ const key = await hkdfAesGcmKey(secret, purpose, options.minSecretLength);
40
+ const plaintext = await crypto.subtle.decrypt({ name: 'AES-GCM', iv, additionalData: aad(purpose) }, key, ciphertext);
41
+ return JSON.parse(textDecoder.decode(plaintext));
42
+ }
43
+ // Backward compatibility for the original agent OAuth cookie format.
44
+ // New cookies are always v2 and purpose-bound through AES-GCM AAD.
45
+ if (value.startsWith(SEALED_JSON_V1)) {
46
+ const packed = base64UrlDecode(value.slice(SEALED_JSON_V1.length));
47
+ if (packed.length <= 12)
48
+ return null;
49
+ const iv = packed.slice(0, 12);
50
+ const ciphertext = packed.slice(12);
51
+ const key = await legacyShaAesGcmKey(secret, options.minSecretLength);
52
+ const plaintext = await crypto.subtle.decrypt({ name: 'AES-GCM', iv }, key, ciphertext);
53
+ return JSON.parse(textDecoder.decode(plaintext));
54
+ }
55
+ return null;
56
+ }
57
+ export function encodeJsonBase64Url(value) {
58
+ return base64Url(textEncoder.encode(JSON.stringify(value)));
59
+ }
60
+ export function decodeJsonBase64Url(value) {
61
+ return JSON.parse(textDecoder.decode(base64UrlDecode(value)));
62
+ }
63
+ export function base64Url(bytes) {
64
+ let binary = '';
65
+ const chunk = 0x8000;
66
+ for (let i = 0; i < bytes.length; i += chunk) {
67
+ binary += String.fromCharCode(...bytes.subarray(i, i + chunk));
68
+ }
69
+ return btoa(binary)
70
+ .replace(/\+/g, '-')
71
+ .replace(/\//g, '_')
72
+ .replace(/=+$/g, '');
73
+ }
74
+ export function base64UrlDecode(value) {
75
+ if (!BASE64URL_RE.test(value) || value.length % 4 === 1) {
76
+ throw new Error('Invalid base64url input');
77
+ }
78
+ const padded = value.replace(/-/g, '+').replace(/_/g, '/').padEnd(Math.ceil(value.length / 4) * 4, '=');
79
+ const binary = atob(padded);
80
+ const bytes = new Uint8Array(binary.length);
81
+ for (let i = 0; i < binary.length; i++)
82
+ bytes[i] = binary.charCodeAt(i);
83
+ return bytes;
84
+ }
85
+ export function base64Utf8(value) {
86
+ const bytes = textEncoder.encode(value);
87
+ let binary = '';
88
+ const chunk = 0x8000;
89
+ for (let i = 0; i < bytes.length; i += chunk) {
90
+ binary += String.fromCharCode(...bytes.subarray(i, i + chunk));
91
+ }
92
+ return btoa(binary);
93
+ }
94
+ async function hkdfAesGcmKey(secret, purpose, minSecretLength = 32) {
95
+ assertSecret(secret, minSecretLength);
96
+ const material = await crypto.subtle.importKey('raw', textEncoder.encode(secret), 'HKDF', false, ['deriveKey']);
97
+ return crypto.subtle.deriveKey({
98
+ name: 'HKDF',
99
+ hash: 'SHA-256',
100
+ salt: HKDF_SALT,
101
+ info: textEncoder.encode(purpose),
102
+ }, material, { name: 'AES-GCM', length: 256 }, false, ['encrypt', 'decrypt']);
103
+ }
104
+ async function legacyShaAesGcmKey(secret, minSecretLength = 32) {
105
+ assertSecret(secret, minSecretLength);
106
+ const digest = await crypto.subtle.digest('SHA-256', textEncoder.encode(secret));
107
+ return crypto.subtle.importKey('raw', digest, 'AES-GCM', false, ['decrypt']);
108
+ }
109
+ function assertSecret(secret, minSecretLength) {
110
+ if (!secret || secret.length < minSecretLength) {
111
+ throw new Error(`Sealed JSON secret must be ${minSecretLength}+ characters`);
112
+ }
113
+ }
114
+ function normalizePurpose(purpose) {
115
+ const value = (purpose || 'default').trim();
116
+ if (!value)
117
+ return 'default';
118
+ return value.slice(0, 128);
119
+ }
120
+ function aad(purpose) {
121
+ return textEncoder.encode(`nimbus-sh:${purpose}:sealed-json:v2`);
122
+ }
@@ -179,6 +179,11 @@ export interface FacetManagerHooks {
179
179
  /** Fired right after processTable.spawn — lets the session print a notification. */
180
180
  onSpawn?: (pid: number, command: string, longRunning: boolean) => void;
181
181
  }
182
+ export interface LongRunningWorkerSpawnOptions {
183
+ port?: number;
184
+ modules?: Record<string, any>;
185
+ compatibilityFlags?: string[];
186
+ }
182
187
  export declare class FacetManager {
183
188
  private ctx;
184
189
  private env;
@@ -218,6 +223,7 @@ export declare class FacetManager {
218
223
  cwd?: string;
219
224
  filename?: string;
220
225
  dirname?: string;
226
+ stdin?: string;
221
227
  /**
222
228
  * G4 (runtime-pkg wave): caller-supplied display label for the
223
229
  * processTable entry. When set, takes precedence over the
@@ -237,6 +243,9 @@ export declare class FacetManager {
237
243
  skipSpawn?: boolean;
238
244
  /** G4: when skipSpawn is true, the PID the caller allocated. */
239
245
  callerPid?: number;
246
+ /** Return stdout/stderr in the result while keeping supervisor RPC
247
+ * available for VFS and child_process operations. */
248
+ captureOutput?: boolean;
240
249
  }): Promise<FacetExecResult>;
241
250
  /**
242
251
  * W5 Lever 5: push a DiagFailure into the OOM ring for every facet
@@ -300,6 +309,21 @@ export declare class FacetManager {
300
309
  pid: number;
301
310
  facetStub: any;
302
311
  };
312
+ /**
313
+ * Spawn a long-running dynamic Worker and register its routeable port.
314
+ *
315
+ * This is the shared primitive for any runtime that exposes
316
+ * handleHttpRequest(Request): Node facets, Vite adapters, Python virtual
317
+ * sockets, and future WASI socket servers should use
318
+ * this path instead of each owning process-table and PortRegistry plumbing.
319
+ */
320
+ spawnWorker(workerCode: string, command: string, cwd: string, opts?: LongRunningWorkerSpawnOptions): {
321
+ pid: number;
322
+ facetStub: any;
323
+ };
324
+ registerPort(pid: number, port: number, facetStub: any): void;
325
+ attachReservedPorts(pid: number, facetStub: any): number[];
326
+ finishProcess(pid: number, exitCode: number, reason?: string): void;
303
327
  /** Kill a running process by PID. */
304
328
  kill(pid: number): boolean;
305
329
  get stats(): {
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/facets/manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAG9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAKhE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAO/D,6CAA6C;AAC7C,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC1E;AAglCD;;;;;;;;GAQG;AAKH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,SAAS,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,EAC3C,WAAW,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAkJnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,SAAS,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,EAC3C,WAAW,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CA2FnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,oCAAoC,CAClD,GAAG,EAAE,SAAS,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,EAC3C,WAAW,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAsHnB;AAkkBD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE,oFAAoF;IACpF,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;CACxE;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,GAAG,CAA0B;IACrC,qEAAqE;IACrE,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,KAAK,CAAoB;IACjC;;;;;;OAMG;IACH,OAAO,CAAC,OAAO,CAA+B;gBAG5C,GAAG,EAAE,kBAAkB,EACvB,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,KAAK,GAAE,iBAAsB;IAS/B,MAAM,CAAC,GAAG,EAAE,SAAS;IACrB;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,cAAc;IAEzC;;;;;;OAMG;IACG,IAAI,CACR,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;QACJ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB;;;;;;;;;;;;;WAaG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,qEAAqE;QACrE,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,gEAAgE;QAChE,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GACA,OAAO,CAAC,eAAe,CAAC;IAsJ3B;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;YA+Bd,cAAc;YAqEd,cAAc;IAsC5B,sEAAsE;IACtE,OAAO,CAAC,eAAe;IAwBvB,yBAAyB;YACX,gBAAgB;IAoC9B;;;;OAIG;IACH;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAmB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,GAAG,CAAA;KAAE;IAKvF;;;OAGG;IACG,SAAS,CACb,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE;QACJ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;KACV,GACL,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,GAAG,CAAA;KAAE,CAAC;IA8D3C;;;;;;;;;OASG;IACH,KAAK,CACH,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAC3B;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,GAAG,CAAA;KAAE;IAiClC,qCAAqC;IACrC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAa1B,IAAI,KAAK;;;;;;MAAsC;CAChD"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/facets/manager.ts"],"names":[],"mappings":"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"}