@anthropic-ai/sandbox-runtime 0.0.1 → 0.0.3

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 (56) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +168 -88
  3. package/dist/cli.js +73 -8
  4. package/dist/cli.js.map +1 -1
  5. package/dist/index.d.ts +6 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +5 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/sandbox/generate-seccomp-filter.d.ts +56 -0
  10. package/dist/sandbox/generate-seccomp-filter.d.ts.map +1 -0
  11. package/dist/sandbox/generate-seccomp-filter.js +158 -0
  12. package/dist/sandbox/generate-seccomp-filter.js.map +1 -0
  13. package/dist/sandbox/linux-sandbox-utils.d.ts +50 -3
  14. package/dist/sandbox/linux-sandbox-utils.d.ts.map +1 -1
  15. package/dist/sandbox/linux-sandbox-utils.js +267 -84
  16. package/dist/sandbox/linux-sandbox-utils.js.map +1 -1
  17. package/dist/sandbox/macos-sandbox-utils.d.ts +4 -1
  18. package/dist/sandbox/macos-sandbox-utils.d.ts.map +1 -1
  19. package/dist/sandbox/macos-sandbox-utils.js +89 -22
  20. package/dist/sandbox/macos-sandbox-utils.js.map +1 -1
  21. package/dist/sandbox/sandbox-config.d.ts +122 -0
  22. package/dist/sandbox/sandbox-config.d.ts.map +1 -0
  23. package/dist/sandbox/sandbox-config.js +75 -0
  24. package/dist/sandbox/sandbox-config.js.map +1 -0
  25. package/dist/sandbox/sandbox-manager.d.ts +4 -4
  26. package/dist/sandbox/sandbox-manager.d.ts.map +1 -1
  27. package/dist/sandbox/sandbox-manager.js +146 -237
  28. package/dist/sandbox/sandbox-manager.js.map +1 -1
  29. package/dist/sandbox/sandbox-schemas.d.ts +0 -76
  30. package/dist/sandbox/sandbox-schemas.d.ts.map +1 -1
  31. package/dist/sandbox/sandbox-schemas.js +1 -230
  32. package/dist/sandbox/sandbox-schemas.js.map +1 -1
  33. package/dist/sandbox/sandbox-utils.d.ts.map +1 -1
  34. package/dist/sandbox/sandbox-utils.js +25 -3
  35. package/dist/sandbox/sandbox-utils.js.map +1 -1
  36. package/dist/vendor/seccomp/arm64/apply-seccomp +0 -0
  37. package/dist/vendor/seccomp/arm64/unix-block.bpf +0 -0
  38. package/dist/vendor/seccomp/x64/apply-seccomp +0 -0
  39. package/dist/vendor/seccomp/x64/unix-block.bpf +0 -0
  40. package/dist/vendor/seccomp-src/apply-seccomp.c +98 -0
  41. package/dist/vendor/seccomp-src/seccomp-unix-block.c +97 -0
  42. package/package.json +10 -4
  43. package/vendor/seccomp/arm64/apply-seccomp +0 -0
  44. package/vendor/seccomp/arm64/unix-block.bpf +0 -0
  45. package/vendor/seccomp/x64/apply-seccomp +0 -0
  46. package/vendor/seccomp/x64/unix-block.bpf +0 -0
  47. package/vendor/seccomp-src/apply-seccomp.c +98 -0
  48. package/vendor/seccomp-src/seccomp-unix-block.c +97 -0
  49. package/dist/utils/exec.d.ts +0 -13
  50. package/dist/utils/exec.d.ts.map +0 -1
  51. package/dist/utils/exec.js +0 -38
  52. package/dist/utils/exec.js.map +0 -1
  53. package/dist/utils/settings.d.ts +0 -147
  54. package/dist/utils/settings.d.ts.map +0 -1
  55. package/dist/utils/settings.js +0 -244
  56. package/dist/utils/settings.js.map +0 -1
@@ -3,16 +3,15 @@ import { createSocksProxyServer } from './socks-proxy.js';
3
3
  import { logForDebugging } from '../utils/debug.js';
4
4
  import { getPlatform } from '../utils/platform.js';
5
5
  import * as fs from 'fs';
6
- import { WEB_FETCH_TOOL_NAME, FILE_EDIT_TOOL_NAME, FILE_READ_TOOL_NAME, } from '../utils/settings.js';
7
- import { getSettings, permissionRuleValueFromString } from '../utils/settings.js';
8
- import { wrapCommandWithSandboxLinux, initializeLinuxNetworkBridge, hasLinuxSandboxDependenciesSync, } from './linux-sandbox-utils.js';
9
- import { wrapCommandWithSandboxMacOS, startMacOSSandboxLogMonitor, hasMacOSSandboxDependenciesSync, } from './macos-sandbox-utils.js';
6
+ import { wrapCommandWithSandboxLinux, initializeLinuxNetworkBridge, } from './linux-sandbox-utils.js';
7
+ import { wrapCommandWithSandboxMacOS, startMacOSSandboxLogMonitor, } from './macos-sandbox-utils.js';
10
8
  import { getDefaultWritePaths, containsGlobChars, removeTrailingGlobSuffix, } from './sandbox-utils.js';
11
9
  import { SandboxViolationStore } from './sandbox-violation-store.js';
12
10
  import { EOL } from 'node:os';
13
11
  // ============================================================================
14
12
  // Private Module State
15
13
  // ============================================================================
14
+ let config;
16
15
  let httpProxyServer;
17
16
  let socksProxyServer;
18
17
  let managerContext;
@@ -37,79 +36,41 @@ function registerCleanup() {
37
36
  process.once('SIGTERM', cleanupHandler);
38
37
  cleanupRegistered = true;
39
38
  }
40
- function getWebFetchRules(behavior) {
41
- const settings = getSettings();
42
- if (!settings?.permissions) {
43
- return [];
44
- }
45
- const rulesArray = settings.permissions[behavior] || [];
46
- return rulesArray.filter(ruleString => {
47
- const rule = permissionRuleValueFromString(ruleString);
48
- return (rule.toolName === WEB_FETCH_TOOL_NAME &&
49
- rule.ruleContent?.startsWith('domain:'));
50
- });
51
- }
52
- function matchesWebFetchRule(hostname, ruleString) {
53
- const rule = permissionRuleValueFromString(ruleString);
54
- if (rule.toolName !== WEB_FETCH_TOOL_NAME ||
55
- !rule.ruleContent?.startsWith('domain:')) {
56
- return false;
57
- }
58
- const domainPattern = rule.ruleContent.substring('domain:'.length);
39
+ function matchesDomainPattern(hostname, pattern) {
59
40
  // Support wildcard patterns like *.example.com
60
41
  // This matches any subdomain but not the base domain itself
61
- if (domainPattern.startsWith('*.')) {
62
- const baseDomain = domainPattern.substring(2); // Remove '*.'
42
+ if (pattern.startsWith('*.')) {
43
+ const baseDomain = pattern.substring(2); // Remove '*.'
63
44
  return hostname.toLowerCase().endsWith('.' + baseDomain.toLowerCase());
64
45
  }
65
46
  // Exact match for non-wildcard patterns
66
- return hostname.toLowerCase() === domainPattern.toLowerCase();
67
- }
68
- function getFileEditRules(behavior) {
69
- const settings = getSettings();
70
- if (!settings?.permissions) {
71
- return [];
72
- }
73
- const rulesArray = settings.permissions[behavior] || [];
74
- return rulesArray.filter(ruleString => {
75
- const rule = permissionRuleValueFromString(ruleString);
76
- return rule.toolName === FILE_EDIT_TOOL_NAME;
77
- });
78
- }
79
- function getFileReadRules(behavior) {
80
- const settings = getSettings();
81
- if (!settings?.permissions) {
82
- return [];
83
- }
84
- const rulesArray = settings.permissions[behavior] || [];
85
- // Get rules for Read tool
86
- return rulesArray.filter(ruleString => {
87
- const rule = permissionRuleValueFromString(ruleString);
88
- return rule.toolName === FILE_READ_TOOL_NAME;
89
- });
47
+ return hostname.toLowerCase() === pattern.toLowerCase();
90
48
  }
91
49
  async function filterNetworkRequest(port, host, sandboxAskCallback) {
92
- // Check WebFetch permission rules (port-agnostic, hostname only)
93
- const denyRules = getWebFetchRules('deny');
94
- for (const rule of denyRules) {
95
- if (matchesWebFetchRule(host, rule)) {
96
- logForDebugging(`Denied by WebFetch rule: ${host}:${port}`);
50
+ if (!config) {
51
+ logForDebugging('No config available, denying network request');
52
+ return false;
53
+ }
54
+ // Check denied domains first
55
+ for (const deniedDomain of config.network.deniedDomains) {
56
+ if (matchesDomainPattern(host, deniedDomain)) {
57
+ logForDebugging(`Denied by config rule: ${host}:${port}`);
97
58
  return false;
98
59
  }
99
60
  }
100
- const allowRules = getWebFetchRules('allow');
101
- for (const rule of allowRules) {
102
- if (matchesWebFetchRule(host, rule)) {
103
- logForDebugging(`Allowed by WebFetch rule: ${host}:${port}`);
61
+ // Check allowed domains
62
+ for (const allowedDomain of config.network.allowedDomains) {
63
+ if (matchesDomainPattern(host, allowedDomain)) {
64
+ logForDebugging(`Allowed by config rule: ${host}:${port}`);
104
65
  return true;
105
66
  }
106
67
  }
107
68
  // No matching rules - ask user or deny
108
69
  if (!sandboxAskCallback) {
109
- logForDebugging(`No matching WebFetch rule, denying: ${host}:${port}`);
70
+ logForDebugging(`No matching config rule, denying: ${host}:${port}`);
110
71
  return false;
111
72
  }
112
- logForDebugging(`No matching WebFetch rule, asking user: ${host}:${port}`);
73
+ logForDebugging(`No matching config rule, asking user: ${host}:${port}`);
113
74
  try {
114
75
  const userAllowed = await sandboxAskCallback({ host, port });
115
76
  if (userAllowed) {
@@ -172,56 +133,31 @@ async function startSocksProxyServer(sandboxAskCallback) {
172
133
  .catch(reject);
173
134
  });
174
135
  }
175
- async function startHttpProxyOrUseExistingPort(providedPort, sandboxAskCallback) {
176
- if (providedPort !== undefined) {
177
- logForDebugging(`Using provided HTTP proxy port: ${providedPort}`);
178
- return providedPort;
179
- }
180
- const port = await startHttpProxyServer(sandboxAskCallback);
181
- logForDebugging(`Started HTTP proxy server on port ${port}`);
182
- return port;
183
- }
184
- async function startSocksProxyOrUseExistingPort(providedPort, sandboxAskCallback) {
185
- if (providedPort !== undefined) {
186
- logForDebugging(`Using provided SOCKS proxy port: ${providedPort}`);
187
- return providedPort;
188
- }
189
- const port = await startSocksProxyServer(sandboxAskCallback);
190
- logForDebugging(`Started SOCKS proxy server on port ${port}`);
191
- return port;
192
- }
193
136
  // ============================================================================
194
137
  // Public Module Functions (will be exported via namespace)
195
138
  // ============================================================================
196
- async function initialize(sandboxAskCallback, enableLogMonitor = false) {
197
- if (!isSandboxingEnabled()) {
198
- return;
199
- }
139
+ async function initialize(runtimeConfig, sandboxAskCallback, enableLogMonitor = false) {
140
+ // Store config for use by other functions
141
+ config = runtimeConfig;
200
142
  // Return if already initializing
201
143
  if (initializationPromise) {
202
144
  await initializationPromise;
203
145
  return;
204
146
  }
205
- const settings = getSettings();
206
- // Start log monitor for macOS if enabled and sandboxing is enabled
207
- if (enableLogMonitor && getPlatform() === 'macos' && isSandboxingEnabled()) {
208
- logMonitorShutdown = startMacOSSandboxLogMonitor(sandboxViolationStore.addViolation.bind(sandboxViolationStore), getIgnoreViolations());
147
+ // Start log monitor for macOS if enabled
148
+ if (enableLogMonitor && getPlatform() === 'macos') {
149
+ logMonitorShutdown = startMacOSSandboxLogMonitor(sandboxViolationStore.addViolation.bind(sandboxViolationStore), config.ignoreViolations);
209
150
  logForDebugging('Started macOS sandbox log monitor');
210
151
  }
211
152
  // Register cleanup handlers first time
212
153
  registerCleanup();
213
154
  // Initialize network infrastructure
214
- // Network filtering is based on WebFetch permission rules, so proxy servers
215
- // must always be initialized when sandbox is enabled
216
155
  initializationPromise = (async () => {
217
156
  try {
218
- // Check if ports are provided in settings
219
- const providedHttpProxyPort = settings.sandbox?.network?.httpProxyPort;
220
- const providedSocksProxyPort = settings.sandbox?.network?.socksProxyPort;
221
- // Start proxy servers in parallel, using provided ports when available
157
+ // Start proxy servers in parallel
222
158
  const [httpProxyPort, socksProxyPort] = await Promise.all([
223
- startHttpProxyOrUseExistingPort(providedHttpProxyPort, sandboxAskCallback),
224
- startSocksProxyOrUseExistingPort(providedSocksProxyPort, sandboxAskCallback),
159
+ startHttpProxyServer(sandboxAskCallback),
160
+ startSocksProxyServer(sandboxAskCallback),
225
161
  ]);
226
162
  // Initialize platform-specific infrastructure
227
163
  let linuxBridge;
@@ -256,46 +192,20 @@ function isSupportedPlatform(platform) {
256
192
  return supportedPlatforms.includes(platform);
257
193
  }
258
194
  function isSandboxingEnabled() {
259
- // Sandboxing is not supported on Windows
260
- if (!isSupportedPlatform(getPlatform())) {
261
- return false;
262
- }
263
- // On Linux, check if required dependencies are available
264
- if (getPlatform() === 'linux' && !hasLinuxSandboxDependenciesSync()) {
265
- console.error('Sandbox disabled: Required dependencies not found. Please install: bwrap, socat, and ripgrep');
266
- console.error(' Install with: apt install bubblewrap socat ripgrep');
267
- return false;
268
- }
269
- // On macOS, check if required dependencies are available
270
- if (getPlatform() === 'macos' && !hasMacOSSandboxDependenciesSync()) {
271
- console.error('Sandbox disabled: ripgrep (rg) not found. Please install ripgrep.');
272
- console.error(' Install with: brew install ripgrep');
273
- return false;
274
- }
275
- // Sandbox is always enabled (unless platform is not supported or dependencies are missing)
276
- return true;
195
+ // Sandboxing is enabled if config has been set (via initialize())
196
+ return config !== undefined;
277
197
  }
278
198
  function getFsReadConfig() {
279
- // Build read config from Read permission deny rules
280
- const denyRules = getFileReadRules('deny');
281
- const denyPaths = denyRules
282
- .map(ruleString => {
283
- const rule = permissionRuleValueFromString(ruleString);
284
- return rule.ruleContent || null;
285
- })
286
- .filter((path) => path !== null)
287
- .map(path => {
288
- // Normalize by removing trailing /** for consistency
289
- return removeTrailingGlobSuffix(path);
290
- })
199
+ if (!config) {
200
+ return { denyOnly: [] };
201
+ }
202
+ // Filter out glob patterns on Linux
203
+ const denyPaths = config.filesystem.denyRead
204
+ .map(path => removeTrailingGlobSuffix(path))
291
205
  .filter(path => {
292
- // On Linux, filter out glob patterns since they're not fully supported
293
- // (trailing /** already removed by normalization above)
294
- if (getPlatform() === 'linux') {
295
- if (containsGlobChars(path)) {
296
- logForDebugging(`Skipping glob pattern on Linux: ${path}`);
297
- return false;
298
- }
206
+ if (getPlatform() === 'linux' && containsGlobChars(path)) {
207
+ logForDebugging(`Skipping glob pattern on Linux: ${path}`);
208
+ return false;
299
209
  }
300
210
  return true;
301
211
  });
@@ -304,53 +214,30 @@ function getFsReadConfig() {
304
214
  };
305
215
  }
306
216
  function getFsWriteConfig() {
307
- // Build write config from Edit permission allow/deny rules
308
- const allowRules = getFileEditRules('allow');
309
- const allowPaths = allowRules
310
- .map(ruleString => {
311
- const rule = permissionRuleValueFromString(ruleString);
312
- return rule.ruleContent || null;
313
- })
314
- .filter((path) => path !== null)
315
- .map(path => {
316
- // Normalize by removing trailing /** for consistency
317
- return removeTrailingGlobSuffix(path);
318
- })
217
+ if (!config) {
218
+ return { allowOnly: getDefaultWritePaths(), denyWithinAllow: [] };
219
+ }
220
+ // Filter out glob patterns on Linux for allowWrite
221
+ const allowPaths = config.filesystem.allowWrite
222
+ .map(path => removeTrailingGlobSuffix(path))
319
223
  .filter(path => {
320
- // On Linux, filter out glob patterns since they're not fully supported
321
- // (trailing /** already removed by normalization above)
322
- if (getPlatform() === 'linux') {
323
- if (containsGlobChars(path)) {
324
- logForDebugging(`Skipping glob pattern on Linux: ${path}`);
325
- return false;
326
- }
224
+ if (getPlatform() === 'linux' && containsGlobChars(path)) {
225
+ logForDebugging(`Skipping glob pattern on Linux: ${path}`);
226
+ return false;
327
227
  }
328
228
  return true;
329
229
  });
330
- // Get Edit deny rules - these become the denyWithinAllow paths
331
- const denyRules = getFileEditRules('deny');
332
- const denyPaths = denyRules
333
- .map(ruleString => {
334
- const rule = permissionRuleValueFromString(ruleString);
335
- return rule.ruleContent || null;
336
- })
337
- .filter((path) => path !== null)
338
- .map(path => {
339
- // Normalize by removing trailing /** for consistency
340
- return removeTrailingGlobSuffix(path);
341
- })
230
+ // Filter out glob patterns on Linux for denyWrite
231
+ const denyPaths = config.filesystem.denyWrite
232
+ .map(path => removeTrailingGlobSuffix(path))
342
233
  .filter(path => {
343
- // On Linux, filter out glob patterns since they're not fully supported
344
- // (trailing /** already removed by normalization above)
345
- if (getPlatform() === 'linux') {
346
- if (containsGlobChars(path)) {
347
- logForDebugging(`Skipping glob pattern on Linux: ${path}`);
348
- return false;
349
- }
234
+ if (getPlatform() === 'linux' && containsGlobChars(path)) {
235
+ logForDebugging(`Skipping glob pattern on Linux: ${path}`);
236
+ return false;
350
237
  }
351
238
  return true;
352
239
  });
353
- // Build allowOnly list: default paths + Edit allow rules
240
+ // Build allowOnly list: default paths + configured allow paths
354
241
  const allowOnly = [...getDefaultWritePaths(), ...allowPaths];
355
242
  return {
356
243
  allowOnly,
@@ -358,49 +245,30 @@ function getFsWriteConfig() {
358
245
  };
359
246
  }
360
247
  function getNetworkRestrictionConfig() {
361
- // Build network config from WebFetch permission allow/deny rules
362
- const allowRules = getWebFetchRules('allow');
363
- const allowedHosts = allowRules
364
- .map(ruleString => {
365
- const rule = permissionRuleValueFromString(ruleString);
366
- // Extract domain from "domain:example.com" format
367
- if (rule.ruleContent?.startsWith('domain:')) {
368
- return rule.ruleContent.substring('domain:'.length);
369
- }
370
- return null;
371
- })
372
- .filter((host) => host !== null);
373
- const denyRules = getWebFetchRules('deny');
374
- const deniedHosts = denyRules
375
- .map(ruleString => {
376
- const rule = permissionRuleValueFromString(ruleString);
377
- // Extract domain from "domain:example.com" format
378
- if (rule.ruleContent?.startsWith('domain:')) {
379
- return rule.ruleContent.substring('domain:'.length);
380
- }
381
- return null;
382
- })
383
- .filter((host) => host !== null);
248
+ if (!config) {
249
+ return {};
250
+ }
251
+ const allowedHosts = config.network.allowedDomains;
252
+ const deniedHosts = config.network.deniedDomains;
384
253
  return {
385
254
  ...(allowedHosts.length > 0 && { allowedHosts }),
386
255
  ...(deniedHosts.length > 0 && { deniedHosts }),
387
256
  };
388
257
  }
389
258
  function getAllowUnixSockets() {
390
- const settings = getSettings();
391
- return settings.sandbox?.network?.allowUnixSockets;
259
+ return config?.network?.allowUnixSockets;
260
+ }
261
+ function getAllowAllUnixSockets() {
262
+ return config?.network?.allowAllUnixSockets;
392
263
  }
393
264
  function getAllowLocalBinding() {
394
- const settings = getSettings();
395
- return settings.sandbox?.network?.allowLocalBinding;
265
+ return config?.network?.allowLocalBinding;
396
266
  }
397
267
  function getIgnoreViolations() {
398
- const settings = getSettings();
399
- return settings.sandbox?.ignoreViolations;
268
+ return config?.ignoreViolations;
400
269
  }
401
270
  function getEnableWeakerNestedSandbox() {
402
- const settings = getSettings();
403
- return settings.sandbox?.enableWeakerNestedSandbox;
271
+ return config?.enableWeakerNestedSandbox;
404
272
  }
405
273
  function getProxyPort() {
406
274
  return managerContext?.httpProxyPort;
@@ -419,7 +287,7 @@ function getLinuxSocksSocketPath() {
419
287
  * Returns true if initialized successfully, false otherwise
420
288
  */
421
289
  async function waitForNetworkInitialization() {
422
- if (!isSandboxingEnabled()) {
290
+ if (!config) {
423
291
  return false;
424
292
  }
425
293
  if (initializationPromise) {
@@ -433,17 +301,14 @@ async function waitForNetworkInitialization() {
433
301
  }
434
302
  return managerContext !== undefined;
435
303
  }
436
- async function wrapWithSandbox(command) {
437
- // If no sandboxing is enabled, return command as-is
438
- if (!isSandboxingEnabled()) {
304
+ async function wrapWithSandbox(command, binShell) {
305
+ // If no config, return command as-is
306
+ if (!config) {
439
307
  return command;
440
308
  }
441
309
  const platform = getPlatform();
442
- const isSandboxed = isSandboxingEnabled();
443
- // Wait for network initialization if needed
444
- if (isSandboxed) {
445
- await waitForNetworkInitialization();
446
- }
310
+ // Wait for network initialization
311
+ await waitForNetworkInitialization();
447
312
  switch (platform) {
448
313
  case 'macos':
449
314
  return await wrapCommandWithSandboxMacOS({
@@ -454,8 +319,10 @@ async function wrapWithSandbox(command) {
454
319
  writeConfig: getFsWriteConfig(),
455
320
  needsNetworkRestriction: true,
456
321
  allowUnixSockets: getAllowUnixSockets(),
322
+ allowAllUnixSockets: getAllowAllUnixSockets(),
457
323
  allowLocalBinding: getAllowLocalBinding(),
458
324
  ignoreViolations: getIgnoreViolations(),
325
+ binShell,
459
326
  });
460
327
  case 'linux':
461
328
  return wrapCommandWithSandboxLinux({
@@ -469,6 +336,8 @@ async function wrapWithSandbox(command) {
469
336
  readConfig: getFsReadConfig(),
470
337
  writeConfig: getFsWriteConfig(),
471
338
  enableWeakerNestedSandbox: getEnableWeakerNestedSandbox(),
339
+ allowAllUnixSockets: getAllowAllUnixSockets(),
340
+ binShell,
472
341
  });
473
342
  default:
474
343
  // Unsupported platform - this should not happen since isSandboxingEnabled() checks platform support
@@ -483,11 +352,35 @@ async function reset() {
483
352
  }
484
353
  if (managerContext?.linuxBridge) {
485
354
  const { httpSocketPath, socksSocketPath, httpBridgeProcess, socksBridgeProcess, } = managerContext.linuxBridge;
486
- // Kill HTTP bridge
355
+ // Create array to wait for process exits
356
+ const exitPromises = [];
357
+ // Kill HTTP bridge and wait for it to exit
487
358
  if (httpBridgeProcess.pid && !httpBridgeProcess.killed) {
488
359
  try {
489
360
  process.kill(httpBridgeProcess.pid, 'SIGTERM');
490
- logForDebugging('Killed HTTP bridge process');
361
+ logForDebugging('Sent SIGTERM to HTTP bridge process');
362
+ // Wait for process to exit
363
+ exitPromises.push(new Promise((resolve) => {
364
+ httpBridgeProcess.once('exit', () => {
365
+ logForDebugging('HTTP bridge process exited');
366
+ resolve();
367
+ });
368
+ // Timeout after 5 seconds
369
+ setTimeout(() => {
370
+ if (!httpBridgeProcess.killed) {
371
+ logForDebugging('HTTP bridge did not exit, forcing SIGKILL', { level: 'warn' });
372
+ try {
373
+ if (httpBridgeProcess.pid) {
374
+ process.kill(httpBridgeProcess.pid, 'SIGKILL');
375
+ }
376
+ }
377
+ catch {
378
+ // Process may have already exited
379
+ }
380
+ }
381
+ resolve();
382
+ }, 5000);
383
+ }));
491
384
  }
492
385
  catch (err) {
493
386
  if (err.code !== 'ESRCH') {
@@ -497,11 +390,33 @@ async function reset() {
497
390
  }
498
391
  }
499
392
  }
500
- // Kill SOCKS bridge
393
+ // Kill SOCKS bridge and wait for it to exit
501
394
  if (socksBridgeProcess.pid && !socksBridgeProcess.killed) {
502
395
  try {
503
396
  process.kill(socksBridgeProcess.pid, 'SIGTERM');
504
- logForDebugging('Killed SOCKS bridge process');
397
+ logForDebugging('Sent SIGTERM to SOCKS bridge process');
398
+ // Wait for process to exit
399
+ exitPromises.push(new Promise((resolve) => {
400
+ socksBridgeProcess.once('exit', () => {
401
+ logForDebugging('SOCKS bridge process exited');
402
+ resolve();
403
+ });
404
+ // Timeout after 5 seconds
405
+ setTimeout(() => {
406
+ if (!socksBridgeProcess.killed) {
407
+ logForDebugging('SOCKS bridge did not exit, forcing SIGKILL', { level: 'warn' });
408
+ try {
409
+ if (socksBridgeProcess.pid) {
410
+ process.kill(socksBridgeProcess.pid, 'SIGKILL');
411
+ }
412
+ }
413
+ catch {
414
+ // Process may have already exited
415
+ }
416
+ }
417
+ resolve();
418
+ }, 5000);
419
+ }));
505
420
  }
506
421
  catch (err) {
507
422
  if (err.code !== 'ESRCH') {
@@ -511,6 +426,8 @@ async function reset() {
511
426
  }
512
427
  }
513
428
  }
429
+ // Wait for both processes to exit
430
+ await Promise.all(exitPromises);
514
431
  // Clean up sockets
515
432
  if (httpSocketPath) {
516
433
  try {
@@ -571,7 +488,7 @@ function getSandboxViolationStore() {
571
488
  return sandboxViolationStore;
572
489
  }
573
490
  function annotateStderrWithSandboxFailures(command, stderr) {
574
- if (!isSandboxingEnabled()) {
491
+ if (!config) {
575
492
  return stderr;
576
493
  }
577
494
  const violations = sandboxViolationStore.getViolationsForCommand(command);
@@ -594,31 +511,24 @@ function annotateStderrWithSandboxFailures(command, stderr) {
594
511
  * Patterns ending with /** are excluded since they work as subpaths.
595
512
  */
596
513
  function getLinuxGlobPatternWarnings() {
597
- // Only warn on Linux with sandboxing enabled
514
+ // Only warn on Linux
598
515
  // macOS supports glob patterns via regex conversion
599
- if (getPlatform() !== 'linux' || !isSandboxingEnabled()) {
600
- return [];
601
- }
602
- const settings = getSettings();
603
- if (!settings?.permissions) {
516
+ if (getPlatform() !== 'linux' || !config) {
604
517
  return [];
605
518
  }
606
519
  const globPatterns = [];
607
- // Check allow and deny rules for glob patterns
608
- for (const behavior of ['allow', 'deny']) {
609
- const rules = settings.permissions[behavior] || [];
610
- for (const ruleString of rules) {
611
- const rule = permissionRuleValueFromString(ruleString);
612
- // Only check Edit and Read rules (file operations)
613
- if ((rule.toolName === 'Edit' || rule.toolName === 'Read') &&
614
- rule.ruleContent) {
615
- // Strip trailing /** since that's just a subpath (directory and everything under it)
616
- const pathWithoutTrailingStar = removeTrailingGlobSuffix(rule.ruleContent);
617
- // Only warn if there are still glob characters after removing trailing /**
618
- if (containsGlobChars(pathWithoutTrailingStar)) {
619
- globPatterns.push(ruleString);
620
- }
621
- }
520
+ // Check filesystem paths for glob patterns
521
+ const allPaths = [
522
+ ...config.filesystem.denyRead,
523
+ ...config.filesystem.allowWrite,
524
+ ...config.filesystem.denyWrite,
525
+ ];
526
+ for (const path of allPaths) {
527
+ // Strip trailing /** since that's just a subpath (directory and everything under it)
528
+ const pathWithoutTrailingStar = removeTrailingGlobSuffix(path);
529
+ // Only warn if there are still glob characters after removing trailing /**
530
+ if (containsGlobChars(pathWithoutTrailingStar)) {
531
+ globPatterns.push(path);
622
532
  }
623
533
  }
624
534
  return globPatterns;
@@ -639,7 +549,6 @@ export const SandboxManager = {
639
549
  getNetworkRestrictionConfig,
640
550
  getAllowUnixSockets,
641
551
  getAllowLocalBinding,
642
- getIgnoreViolations,
643
552
  getEnableWeakerNestedSandbox,
644
553
  getProxyPort,
645
554
  getSocksProxyPort,
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-manager.js","sourceRoot":"","sources":["../../src/sandbox/sandbox-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAiB,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,WAAW,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAA;AAQjF,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,+BAA+B,GAEhC,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAQ7B,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E,IAAI,eAAqE,CAAA;AACzE,IAAI,gBAA+C,CAAA;AACnD,IAAI,cAAqD,CAAA;AACzD,IAAI,qBAAqE,CAAA;AACzE,IAAI,iBAAiB,GAAG,KAAK,CAAA;AAC7B,IAAI,kBAA4C,CAAA;AAChD,MAAM,qBAAqB,GAAG,IAAI,qBAAqB,EAAE,CAAA;AAEzD,+EAA+E;AAC/E,0CAA0C;AAC1C,+EAA+E;AAE/E,SAAS,eAAe;IACtB,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAM;IACR,CAAC;IACD,MAAM,cAAc,GAAG,GAAG,EAAE,CAC1B,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAChB,eAAe,CAAC,qCAAqC,CAAC,EAAE,EAAE;YACxD,KAAK,EAAE,OAAO;SACf,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACJ,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACpC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;IACtC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;IACvC,iBAAiB,GAAG,IAAI,CAAA;AAC1B,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAkC;IAC1D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IAEvD,OAAO,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QACpC,MAAM,IAAI,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAA;QACtD,OAAO,CACL,IAAI,CAAC,QAAQ,KAAK,mBAAmB;YACrC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,CACxC,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB,EAAE,UAAkB;IAC/D,MAAM,IAAI,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAA;IACtD,IACE,IAAI,CAAC,QAAQ,KAAK,mBAAmB;QACrC,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,EACxC,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAElE,+CAA+C;IAC/C,4DAA4D;IAC5D,IAAI,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA,CAAC,cAAc;QAC5D,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,CAAA;IACxE,CAAC;IAED,wCAAwC;IACxC,OAAO,QAAQ,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,WAAW,EAAE,CAAA;AAC/D,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAkC;IAC1D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IAEvD,OAAO,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QACpC,MAAM,IAAI,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAA;QACtD,OAAO,IAAI,CAAC,QAAQ,KAAK,mBAAmB,CAAA;IAC9C,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAkC;IAC1D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IAEvD,0BAA0B;IAC1B,OAAO,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QACpC,MAAM,IAAI,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAA;QACtD,OAAO,IAAI,CAAC,QAAQ,KAAK,mBAAmB,CAAA;IAC9C,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,IAAY,EACZ,IAAY,EACZ,kBAAuC;IAEvC,iEAAiE;IACjE,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAC1C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACpC,eAAe,CAAC,4BAA4B,IAAI,IAAI,IAAI,EAAE,CAAC,CAAA;YAC3D,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAC5C,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACpC,eAAe,CAAC,6BAA6B,IAAI,IAAI,IAAI,EAAE,CAAC,CAAA;YAC5D,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,eAAe,CAAC,uCAAuC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAA;QACtE,OAAO,KAAK,CAAA;IACd,CAAC;IAED,eAAe,CAAC,2CAA2C,IAAI,IAAI,IAAI,EAAE,CAAC,CAAA;IAC1E,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5D,IAAI,WAAW,EAAE,CAAC;YAChB,eAAe,CAAC,iBAAiB,IAAI,IAAI,IAAI,EAAE,CAAC,CAAA;YAChD,OAAO,IAAI,CAAA;QACb,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,gBAAgB,IAAI,IAAI,IAAI,EAAE,CAAC,CAAA;YAC/C,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAe,CAAC,iCAAiC,KAAK,EAAE,EAAE;YACxD,KAAK,EAAE,OAAO;SACf,CAAC,CAAA;QACF,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,kBAAuC;IAEvC,eAAe,GAAG,qBAAqB,CAAC;QACtC,MAAM,EAAE,CAAC,IAAY,EAAE,IAAY,EAAE,EAAE,CACrC,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC;KACvD,CAAC,CAAA;IAEF,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAA;YAC9D,OAAM;QACR,CAAC;QAED,MAAM,MAAM,GAAG,eAAe,CAAA;QAE9B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC5B,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;YAChC,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC3C,MAAM,CAAC,KAAK,EAAE,CAAA;gBACd,eAAe,CAAC,qCAAqC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;gBACpE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACvB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAA;YACzD,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,kBAAuC;IAEvC,gBAAgB,GAAG,sBAAsB,CAAC;QACxC,MAAM,EAAE,CAAC,IAAY,EAAE,IAAY,EAAE,EAAE,CACrC,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC;KACvD,CAAC,CAAA;IAEF,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,0CAA0C;YAC1C,MAAM,CAAC,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAA;YAC/D,OAAM;QACR,CAAC;QAED,gBAAgB;aACb,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC;aACtB,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE;YACrB,gBAAgB,EAAE,KAAK,EAAE,CAAA;YACzB,OAAO,CAAC,IAAI,CAAC,CAAA;QACf,CAAC,CAAC;aACD,KAAK,CAAC,MAAM,CAAC,CAAA;IAClB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,+BAA+B,CAC5C,YAAgC,EAChC,kBAAuC;IAEvC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,eAAe,CAAC,mCAAmC,YAAY,EAAE,CAAC,CAAA;QAClE,OAAO,YAAY,CAAA;IACrB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,kBAAkB,CAAC,CAAA;IAC3D,eAAe,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAA;IAC5D,OAAO,IAAI,CAAA;AACb,CAAC;AAED,KAAK,UAAU,gCAAgC,CAC7C,YAAgC,EAChC,kBAAuC;IAEvC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,eAAe,CAAC,oCAAoC,YAAY,EAAE,CAAC,CAAA;QACnE,OAAO,YAAY,CAAA;IACrB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,kBAAkB,CAAC,CAAA;IAC5D,eAAe,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAA;IAC7D,OAAO,IAAI,CAAA;AACb,CAAC;AAED,+EAA+E;AAC/E,2DAA2D;AAC3D,+EAA+E;AAE/E,KAAK,UAAU,UAAU,CACvB,kBAAuC,EACvC,gBAAgB,GAAG,KAAK;IAExB,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;QAC3B,OAAM;IACR,CAAC;IAED,iCAAiC;IACjC,IAAI,qBAAqB,EAAE,CAAC;QAC1B,MAAM,qBAAqB,CAAA;QAC3B,OAAM;IACR,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAE9B,mEAAmE;IACnE,IAAI,gBAAgB,IAAI,WAAW,EAAE,KAAK,OAAO,IAAI,mBAAmB,EAAE,EAAE,CAAC;QAC3E,kBAAkB,GAAG,2BAA2B,CAC9C,qBAAqB,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAC9D,mBAAmB,EAAE,CACtB,CAAA;QACD,eAAe,CAAC,mCAAmC,CAAC,CAAA;IACtD,CAAC;IAED,uCAAuC;IACvC,eAAe,EAAE,CAAA;IAEjB,oCAAoC;IACpC,4EAA4E;IAC5E,qDAAqD;IACrD,qBAAqB,GAAG,CAAC,KAAK,IAAI,EAAE;QAClC,IAAI,CAAC;YACH,0CAA0C;YAC1C,MAAM,qBAAqB,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAA;YACtE,MAAM,sBAAsB,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAA;YAExE,uEAAuE;YACvE,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACxD,+BAA+B,CAC7B,qBAAqB,EACrB,kBAAkB,CACnB;gBACD,gCAAgC,CAC9B,sBAAsB,EACtB,kBAAkB,CACnB;aACF,CAAC,CAAA;YAEF,8CAA8C;YAC9C,IAAI,WAAkD,CAAA;YACtD,IAAI,WAAW,EAAE,KAAK,OAAO,EAAE,CAAC;gBAC9B,WAAW,GAAG,MAAM,4BAA4B,CAC9C,aAAa,EACb,cAAc,CACf,CAAA;YACH,CAAC;YAED,MAAM,OAAO,GAA8B;gBACzC,aAAa;gBACb,cAAc;gBACd,WAAW;aACZ,CAAA;YACD,cAAc,GAAG,OAAO,CAAA;YACxB,eAAe,CAAC,oCAAoC,CAAC,CAAA;YACrD,OAAO,OAAO,CAAA;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wDAAwD;YACxD,qBAAqB,GAAG,SAAS,CAAA;YACjC,cAAc,GAAG,SAAS,CAAA;YAC1B,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBAChB,eAAe,CAAC,2CAA2C,CAAC,EAAE,EAAE;oBAC9D,KAAK,EAAE,OAAO;iBACf,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YACF,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,qBAAqB,CAAA;AAC7B,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAkB;IAC7C,MAAM,kBAAkB,GAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACzD,OAAO,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAC9C,CAAC;AAED,SAAS,mBAAmB;IAC1B,yCAAyC;IACzC,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QACxC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,yDAAyD;IACzD,IAAI,WAAW,EAAE,KAAK,OAAO,IAAI,CAAC,+BAA+B,EAAE,EAAE,CAAC;QACpE,OAAO,CAAC,KAAK,CACX,8FAA8F,CAC/F,CAAA;QACD,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;QACrE,OAAO,KAAK,CAAA;IACd,CAAC;IAED,yDAAyD;IACzD,IAAI,WAAW,EAAE,KAAK,OAAO,IAAI,CAAC,+BAA+B,EAAE,EAAE,CAAC;QACpE,OAAO,CAAC,KAAK,CACX,mEAAmE,CACpE,CAAA;QACD,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;QACrD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,2FAA2F;IAC3F,OAAO,IAAI,CAAA;AACb,CAAC;AAGD,SAAS,eAAe;IACtB,oDAAoD;IACpD,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAE1C,MAAM,SAAS,GAAG,SAAS;SACxB,GAAG,CAAC,UAAU,CAAC,EAAE;QAChB,MAAM,IAAI,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAA;QACtD,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAA;IACjC,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;SAC/C,GAAG,CAAC,IAAI,CAAC,EAAE;QACV,qDAAqD;QACrD,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC,CAAC;SACD,MAAM,CAAC,IAAI,CAAC,EAAE;QACb,uEAAuE;QACvE,wDAAwD;QACxD,IAAI,WAAW,EAAE,KAAK,OAAO,EAAE,CAAC;YAC9B,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,eAAe,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAA;gBAC1D,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;IAEJ,OAAO;QACL,QAAQ,EAAE,SAAS;KACpB,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,2DAA2D;IAC3D,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAC5C,MAAM,UAAU,GAAG,UAAU;SAC1B,GAAG,CAAC,UAAU,CAAC,EAAE;QAChB,MAAM,IAAI,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAA;QACtD,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAA;IACjC,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;SAC/C,GAAG,CAAC,IAAI,CAAC,EAAE;QACV,qDAAqD;QACrD,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC,CAAC;SACD,MAAM,CAAC,IAAI,CAAC,EAAE;QACb,uEAAuE;QACvE,wDAAwD;QACxD,IAAI,WAAW,EAAE,KAAK,OAAO,EAAE,CAAC;YAC9B,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,eAAe,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAA;gBAC1D,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;IAEJ,+DAA+D;IAC/D,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAC1C,MAAM,SAAS,GAAG,SAAS;SACxB,GAAG,CAAC,UAAU,CAAC,EAAE;QAChB,MAAM,IAAI,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAA;QACtD,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAA;IACjC,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;SAC/C,GAAG,CAAC,IAAI,CAAC,EAAE;QACV,qDAAqD;QACrD,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC,CAAC;SACD,MAAM,CAAC,IAAI,CAAC,EAAE;QACb,uEAAuE;QACvE,wDAAwD;QACxD,IAAI,WAAW,EAAE,KAAK,OAAO,EAAE,CAAC;YAC9B,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,eAAe,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAA;gBAC1D,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;IAEJ,yDAAyD;IACzD,MAAM,SAAS,GAAG,CAAC,GAAG,oBAAoB,EAAE,EAAE,GAAG,UAAU,CAAC,CAAA;IAE5D,OAAO;QACL,SAAS;QACT,eAAe,EAAE,SAAS;KAC3B,CAAA;AACH,CAAC;AAED,SAAS,2BAA2B;IAClC,iEAAiE;IACjE,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAC5C,MAAM,YAAY,GAAG,UAAU;SAC5B,GAAG,CAAC,UAAU,CAAC,EAAE;QAChB,MAAM,IAAI,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAA;QACtD,kDAAkD;QAClD,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QACrD,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;IAElD,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAC1C,MAAM,WAAW,GAAG,SAAS;SAC1B,GAAG,CAAC,UAAU,CAAC,EAAE;QAChB,MAAM,IAAI,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAA;QACtD,kDAAkD;QAClD,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QACrD,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;IAElD,OAAO;QACL,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;QAChD,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;KAC/C,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB;IAC1B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,OAAO,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAA;AACpD,CAAC;AAED,SAAS,oBAAoB;IAC3B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,OAAO,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,CAAA;AACrD,CAAC;AAED,SAAS,mBAAmB;IAC1B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,OAAO,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAA;AAC3C,CAAC;AAED,SAAS,4BAA4B;IACnC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,OAAO,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAA;AACpD,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,cAAc,EAAE,aAAa,CAAA;AACtC,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,cAAc,EAAE,cAAc,CAAA;AACvC,CAAC;AAED,SAAS,sBAAsB;IAC7B,OAAO,cAAc,EAAE,WAAW,EAAE,cAAc,CAAA;AACpD,CAAC;AAED,SAAS,uBAAuB;IAC9B,OAAO,cAAc,EAAE,WAAW,EAAE,eAAe,CAAA;AACrD,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,4BAA4B;IACzC,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,qBAAqB,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,qBAAqB,CAAA;YAC3B,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,cAAc,KAAK,SAAS,CAAA;AACrC,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAAe;IAC5C,oDAAoD;IACpD,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,WAAW,GAAG,mBAAmB,EAAE,CAAA;IAEzC,4CAA4C;IAC5C,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,4BAA4B,EAAE,CAAA;IACtC,CAAC;IAED,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,MAAM,2BAA2B,CAAC;gBACvC,OAAO;gBACP,aAAa,EAAE,YAAY,EAAE;gBAC7B,cAAc,EAAE,iBAAiB,EAAE;gBACnC,UAAU,EAAE,eAAe,EAAE;gBAC7B,WAAW,EAAE,gBAAgB,EAAE;gBAC/B,uBAAuB,EAAE,IAAI;gBAC7B,gBAAgB,EAAE,mBAAmB,EAAE;gBACvC,iBAAiB,EAAE,oBAAoB,EAAE;gBACzC,gBAAgB,EAAE,mBAAmB,EAAE;aACxC,CAAC,CAAA;QAEJ,KAAK,OAAO;YACV,OAAO,2BAA2B,CAAC;gBACjC,OAAO;gBACP,sBAAsB,EAAE,IAAI;gBAC5B,yBAAyB,EAAE,IAAI;gBAC/B,cAAc,EAAE,sBAAsB,EAAE;gBACxC,eAAe,EAAE,uBAAuB,EAAE;gBAC1C,aAAa,EAAE,cAAc,EAAE,aAAa;gBAC5C,cAAc,EAAE,cAAc,EAAE,cAAc;gBAC9C,UAAU,EAAE,eAAe,EAAE;gBAC7B,WAAW,EAAE,gBAAgB,EAAE;gBAC/B,yBAAyB,EAAE,4BAA4B,EAAE;aAC1D,CAAC,CAAA;QAEJ;YACE,oGAAoG;YACpG,MAAM,IAAI,KAAK,CACb,uDAAuD,QAAQ,EAAE,CAClE,CAAA;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,KAAK;IAClB,mBAAmB;IACnB,IAAI,kBAAkB,EAAE,CAAC;QACvB,kBAAkB,EAAE,CAAA;QACpB,kBAAkB,GAAG,SAAS,CAAA;IAChC,CAAC;IAED,IAAI,cAAc,EAAE,WAAW,EAAE,CAAC;QAChC,MAAM,EACJ,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,kBAAkB,GACnB,GAAG,cAAc,CAAC,WAAW,CAAA;QAE9B,mBAAmB;QACnB,IAAI,iBAAiB,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;gBAC9C,eAAe,CAAC,4BAA4B,CAAC,CAAA;YAC/C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAK,GAA6B,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACpD,eAAe,CAAC,8BAA8B,GAAG,EAAE,EAAE;wBACnD,KAAK,EAAE,OAAO;qBACf,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,IAAI,kBAAkB,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;YACzD,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;gBAC/C,eAAe,CAAC,6BAA6B,CAAC,CAAA;YAChD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAK,GAA6B,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACpD,eAAe,CAAC,+BAA+B,GAAG,EAAE,EAAE;wBACpD,KAAK,EAAE,OAAO;qBACf,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;gBAC1C,eAAe,CAAC,wBAAwB,CAAC,CAAA;YAC3C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,eAAe,CAAC,8BAA8B,GAAG,EAAE,EAAE;oBACnD,KAAK,EAAE,OAAO;iBACf,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,EAAE,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;gBAC3C,eAAe,CAAC,yBAAyB,CAAC,CAAA;YAC5C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,eAAe,CAAC,+BAA+B,GAAG,EAAE,EAAE;oBACpD,KAAK,EAAE,OAAO;iBACf,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,MAAM,aAAa,GAAoB,EAAE,CAAA;IAEzC,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,eAAe,CAAA,CAAC,8CAA8C;QAC7E,MAAM,SAAS,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAC5C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACnB,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,wBAAwB,EAAE,CAAC;oBACxD,eAAe,CAAC,oCAAoC,KAAK,CAAC,OAAO,EAAE,EAAE;wBACnE,KAAK,EAAE,OAAO;qBACf,CAAC,CAAA;gBACJ,CAAC;gBACD,OAAO,EAAE,CAAA;YACX,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QACF,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC/B,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;YACjE,eAAe,CAAC,qCAAqC,KAAK,CAAC,OAAO,EAAE,EAAE;gBACpE,KAAK,EAAE,OAAO;aACf,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QACF,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAChC,CAAC;IAED,gCAAgC;IAChC,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IAEhC,mBAAmB;IACnB,eAAe,GAAG,SAAS,CAAA;IAC3B,gBAAgB,GAAG,SAAS,CAAA;IAC5B,cAAc,GAAG,SAAS,CAAA;IAC1B,qBAAqB,GAAG,SAAS,CAAA;AACnC,CAAC;AAED,SAAS,wBAAwB;IAC/B,OAAO,qBAAqB,CAAA;AAC9B,CAAC;AAED,SAAS,iCAAiC,CACxC,OAAe,EACf,MAAc;IAEd,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,UAAU,GAAG,qBAAqB,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAA;IACzE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,SAAS,GAAG,MAAM,CAAA;IACtB,SAAS,IAAI,GAAG,GAAG,sBAAsB,GAAG,GAAG,CAAA;IAC/C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,SAAS,IAAI,SAAS,CAAC,IAAI,GAAG,GAAG,CAAA;IACnC,CAAC;IACD,SAAS,IAAI,uBAAuB,CAAA;IAEpC,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,2BAA2B;IAClC,6CAA6C;IAC7C,oDAAoD;IACpD,IAAI,WAAW,EAAE,KAAK,OAAO,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;QACxD,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,YAAY,GAAa,EAAE,CAAA;IAEjC,+CAA+C;IAC/C,KAAK,MAAM,QAAQ,IAAI,CAAC,OAAO,EAAE,MAAM,CAAU,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;QAClD,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAA;YAEtD,mDAAmD;YACnD,IACE,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC;gBACtD,IAAI,CAAC,WAAW,EAChB,CAAC;gBACD,qFAAqF;gBACrF,MAAM,uBAAuB,GAAG,wBAAwB,CACtD,IAAI,CAAC,WAAW,CACjB,CAAA;gBAED,2EAA2E;gBAC3E,IAAI,iBAAiB,CAAC,uBAAuB,CAAC,EAAE,CAAC;oBAC/C,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC;AAmCD,+EAA+E;AAC/E,qCAAqC;AACrC,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAoB;IAC7C,UAAU;IACV,mBAAmB;IACnB,mBAAmB;IACnB,eAAe;IACf,gBAAgB;IAChB,2BAA2B;IAC3B,mBAAmB;IACnB,oBAAoB;IACpB,mBAAmB;IACnB,4BAA4B;IAC5B,YAAY;IACZ,iBAAiB;IACjB,sBAAsB;IACtB,uBAAuB;IACvB,4BAA4B;IAC5B,eAAe;IACf,KAAK;IACL,wBAAwB;IACxB,iCAAiC;IACjC,2BAA2B;CACnB,CAAA"}
1
+ {"version":3,"file":"sandbox-manager.js","sourceRoot":"","sources":["../../src/sandbox/sandbox-manager.ts"],"names":[],"mappings":"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"}