sandboxbox 3.0.72 → 3.0.74

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.
@@ -12,7 +12,9 @@
12
12
  "Bash(npm publish)",
13
13
  "Bash(./run-parallel-test.sh)",
14
14
  "Bash(./test-mcp.sh:*)",
15
- "mcp__plugin_glootie-cc_playwright__browser_navigate"
15
+ "mcp__plugin_glootie-cc_playwright__browser_navigate",
16
+ "mcp__plugin_glootie-cc_glootie__execute",
17
+ "Bash(SANDBOX_VERBOSE=true node -e \"\nimport(''./node_modules/sandboxbox/utils/sandbox.js'').then(({ createSandbox }) => {\n import(''fs'').then(fs => {\n import(''path'').then(path => {\n const { existsSync, readdirSync, readFileSync } = fs;\n const { join } = path;\n \n const { sandboxDir, cleanup } = createSandbox(''.'');\n console.log(''Sandbox directory:'', sandboxDir);\n \n const claudeDir = join(sandboxDir, ''.claude'');\n console.log(''\\n.claude exists:'', existsSync(claudeDir));\n \n if (existsSync(claudeDir)) {\n console.log(''.claude contents:'', readdirSync(claudeDir));\n \n const pluginsDir = join(claudeDir, ''plugins'');\n if (existsSync(pluginsDir)) {\n console.log(''\\nplugins contents:'', readdirSync(pluginsDir));\n \n const configPath = join(pluginsDir, ''config.json'');\n if (existsSync(configPath)) {\n console.log(''\\nconfig.json:'', readFileSync(configPath, ''utf8''));\n }\n \n const installedPath = join(pluginsDir, ''installed_plugins.json'');\n if (existsSync(installedPath)) {\n console.log(''\\ninstalled_plugins.json:'', readFileSync(installedPath, ''utf8''));\n }\n \n const marketplacesDir = join(pluginsDir, ''marketplaces'');\n if (existsSync(marketplacesDir)) {\n console.log(''\\nmarketplaces contents:'', readdirSync(marketplacesDir));\n \n const glootieDir = join(marketplacesDir, ''anentrypoint-glootie-cc'');\n if (existsSync(glootieDir)) {\n const mcpPath = join(glootieDir, ''.mcp.json'');\n if (existsSync(mcpPath)) {\n console.log(''\\n.mcp.json exists:'', existsSync(mcpPath));\n console.log(''.mcp.json content:'', readFileSync(mcpPath, ''utf8''));\n }\n }\n }\n }\n \n const settingsPath = join(claudeDir, ''settings.json'');\n if (existsSync(settingsPath)) {\n console.log(''\\nsettings.json:'', readFileSync(settingsPath, ''utf8''));\n }\n }\n \n cleanup();\n });\n });\n});\n\")"
16
18
  ],
17
19
  "deny": [],
18
20
  "ask": []
@@ -0,0 +1,13 @@
1
+ {
2
+ "version": 1,
3
+ "plugins": {
4
+ "glootie-cc@anentrypoint-glootie-cc": {
5
+ "version": "unknown",
6
+ "installedAt": "2025-11-03T17:24:49.912Z",
7
+ "lastUpdated": "2025-11-03T17:24:49.912Z",
8
+ "installPath": "/home/user/.claude/plugins/marketplaces/anentrypoint-glootie-cc/",
9
+ "gitCommitSha": "4df0d89e7a2f1708c913a7bccdb7ccb87123c37d",
10
+ "isLocal": true
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "anentrypoint-glootie-cc": {
3
+ "source": {
4
+ "source": "github",
5
+ "repo": "AnEntrypoint/glootie-cc"
6
+ },
7
+ "installLocation": "/home/user/.claude/plugins/marketplaces/anentrypoint-glootie-cc",
8
+ "lastUpdated": "2025-10-31T08:33:29.549Z"
9
+ }
10
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sandboxbox",
3
- "version": "3.0.72",
3
+ "version": "3.0.74",
4
4
  "description": "Lightweight process containment sandbox for CLI tools - Playwright, Claude Code, and more. Pure Node.js, no dependencies.",
5
5
  "type": "module",
6
6
  "main": "cli.js",
package/utils/sandbox.js CHANGED
@@ -258,6 +258,34 @@ node_modules/
258
258
  }
259
259
  }
260
260
 
261
+ // Update plugin paths in installed_plugins.json
262
+ const installedPluginsPath = join(sandboxPluginsDir, 'installed_plugins.json');
263
+ if (existsSync(installedPluginsPath)) {
264
+ const installedPlugins = JSON.parse(readFileSync(installedPluginsPath, 'utf8'));
265
+ if (installedPlugins.plugins) {
266
+ Object.keys(installedPlugins.plugins).forEach(pluginKey => {
267
+ const plugin = installedPlugins.plugins[pluginKey];
268
+ if (plugin.installPath) {
269
+ plugin.installPath = join(sandboxClaudeDir, 'plugins', 'marketplaces', 'anentrypoint-glootie-cc', '/');
270
+ }
271
+ });
272
+ writeFileSync(installedPluginsPath, JSON.stringify(installedPlugins, null, 2));
273
+ }
274
+ }
275
+
276
+ // Update plugin paths in known_marketplaces.json
277
+ const knownMarketplacesPath = join(sandboxPluginsDir, 'known_marketplaces.json');
278
+ if (existsSync(knownMarketplacesPath)) {
279
+ const knownMarketplaces = JSON.parse(readFileSync(knownMarketplacesPath, 'utf8'));
280
+ Object.keys(knownMarketplaces).forEach(marketplaceKey => {
281
+ const marketplace = knownMarketplaces[marketplaceKey];
282
+ if (marketplace.installLocation) {
283
+ marketplace.installLocation = join(sandboxClaudeDir, 'plugins', 'marketplaces', 'anentrypoint-glootie-cc');
284
+ }
285
+ });
286
+ writeFileSync(knownMarketplacesPath, JSON.stringify(knownMarketplaces, null, 2));
287
+ }
288
+
261
289
  if (VERBOSE_OUTPUT) {
262
290
  console.log('✅ Copied .claude-sandbox plugins to sandbox');
263
291
  }