mirror of
https://github.com/roger2ai/Claude-Code-Compiled.git
synced 2026-05-18 15:56:35 +08:00
fix: add postinstall stubs + turndown dep, update build docs
- scripts/postinstall.sh auto-creates @ant/* stubs after bun install - Add turndown to package.json dependencies - Update both READMEs with postinstall note in build steps - Update missing packages section to explain postinstall mechanism
This commit is contained in:
19
README.md
19
README.md
@@ -87,7 +87,7 @@ Two Anthropic-internal packages that can't be installed from npm:
|
||||
git clone https://github.com/roger2ai/Claude-Code-Compiled.git
|
||||
cd Claude-Code-Compiled
|
||||
|
||||
# Install dependencies
|
||||
# Install dependencies (postinstall auto-creates @ant/* stubs)
|
||||
bun install
|
||||
|
||||
# Patch Commander.js (multi-char short flags not supported upstream)
|
||||
@@ -215,17 +215,16 @@ These Anthropic-internal experimental features are disabled via `feature()` flag
|
||||
| WorkflowTool | Gated behind `feature('WORKFLOW_SCRIPTS')` |
|
||||
| TungstenTool | Gated behind `USER_TYPE=ant` |
|
||||
|
||||
### Missing Internal Packages (no runtime impact)
|
||||
### Missing Internal Packages (auto-created by postinstall)
|
||||
|
||||
All `@ant/*` package references are behind `feature()` guards and tree-shaken at build time:
|
||||
All `@ant/*` package references are behind `feature()` guards and tree-shaken at build time. Stubs are auto-created by `scripts/postinstall.sh` after `bun install`:
|
||||
|
||||
| Package | Purpose | Impact |
|
||||
|---------|---------|--------|
|
||||
| `@ant/claude-for-chrome-mcp` | Chrome browser MCP | None — dead code |
|
||||
| `@ant/computer-use-mcp` | Computer Use MCP | None — dead code |
|
||||
| `@ant/computer-use-input` | Mouse/keyboard control | None — dead code |
|
||||
| `@ant/computer-use-swift` | macOS native screenshots | None — dead code |
|
||||
| `@anthropic-ai/claude-agent-sdk` | SDK type reference | None — `import type` only |
|
||||
| Package | Purpose | How It's Handled |
|
||||
|---------|---------|------------------|
|
||||
| `@ant/claude-for-chrome-mcp` | Chrome browser MCP | Stub in postinstall — dead code |
|
||||
| `@ant/computer-use-mcp` | Computer Use MCP | Stub in postinstall — dead code |
|
||||
| `@ant/computer-use-input` | Mouse/keyboard control | Stub in postinstall — dead code |
|
||||
| `@ant/computer-use-swift` | macOS native screenshots | Stub in postinstall — dead code |
|
||||
|
||||
**Summary: All core CLI functionality (file ops, commands, search, API calls, MCP) works. Missing features are Anthropic-internal experiments not available in the official release either.**
|
||||
|
||||
|
||||
19
README_CN.md
19
README_CN.md
@@ -87,7 +87,7 @@
|
||||
git clone https://github.com/roger2ai/Claude-Code-Compiled.git
|
||||
cd Claude-Code-Compiled
|
||||
|
||||
# 安装依赖
|
||||
# 安装依赖(postinstall 自动创建 @ant/* stub)
|
||||
bun install
|
||||
|
||||
# 修补 Commander.js(多字符短标志不支持)
|
||||
@@ -215,17 +215,16 @@ claude-code/
|
||||
| WorkflowTool | `feature('WORKFLOW_SCRIPTS')` 返回 false |
|
||||
| TungstenTool | `USER_TYPE=ant` 条件不满足 |
|
||||
|
||||
### 缺失的内部包(无运行时影响)
|
||||
### 缺失的内部包(postinstall 自动创建 stub)
|
||||
|
||||
所有 `@ant/*` 包引用都在 `feature()` 守卫的 dead code 分支内,编译时被完全剔除:
|
||||
所有 `@ant/*` 包引用都在 `feature()` 守卫的 dead code 分支内,编译时被完全剔除。Stub 由 `scripts/postinstall.sh` 在 `bun install` 后自动创建:
|
||||
|
||||
| 包 | 用途 | 影响 |
|
||||
|------|------|------|
|
||||
| `@ant/claude-for-chrome-mcp` | Chrome 浏览器 MCP | 无 — dead code |
|
||||
| `@ant/computer-use-mcp` | Computer Use MCP | 无 — dead code |
|
||||
| `@ant/computer-use-input` | 鼠标/键盘控制 | 无 — dead code |
|
||||
| `@ant/computer-use-swift` | macOS 原生截图 | 无 — dead code |
|
||||
| `@anthropic-ai/claude-agent-sdk` | SDK 类型引用 | 无 — 仅 `import type` |
|
||||
| 包 | 用途 | 处理方式 |
|
||||
|------|------|----------|
|
||||
| `@ant/claude-for-chrome-mcp` | Chrome 浏览器 MCP | postinstall stub — dead code |
|
||||
| `@ant/computer-use-mcp` | Computer Use MCP | postinstall stub — dead code |
|
||||
| `@ant/computer-use-input` | 鼠标/键盘控制 | postinstall stub — dead code |
|
||||
| `@ant/computer-use-swift` | macOS 原生截图 | postinstall stub — dead code |
|
||||
|
||||
**总结:所有核心 CLI 功能(文件操作、命令执行、搜索、API 调用、MCP 集成)均可正常使用。缺失的功能均为 Anthropic 内部实验性功能,在官方公开版本中同样不存在。**
|
||||
|
||||
|
||||
16
bun.lock
16
bun.lock
@@ -9,6 +9,7 @@
|
||||
"@anthropic-ai/bedrock-sdk": "*",
|
||||
"@anthropic-ai/foundry-sdk": "*",
|
||||
"@anthropic-ai/mcpb": "*",
|
||||
"@anthropic-ai/sandbox-runtime": "*",
|
||||
"@anthropic-ai/sdk": "^0.39.0",
|
||||
"@anthropic-ai/vertex-sdk": "*",
|
||||
"@aws-sdk/client-bedrock": "*",
|
||||
@@ -78,6 +79,7 @@
|
||||
"strip-ansi": "^7.1.0",
|
||||
"supports-hyperlinks": "^3.0.0",
|
||||
"tree-kill": "^1.2.2",
|
||||
"turndown": "^7.1.3",
|
||||
"type-fest": "^4.30.0",
|
||||
"undici": "^7.0.0",
|
||||
"usehooks-ts": "^3.1.0",
|
||||
@@ -101,6 +103,8 @@
|
||||
|
||||
"@anthropic-ai/mcpb": ["@anthropic-ai/mcpb@2.1.2", "", { "dependencies": { "@inquirer/prompts": "^6.0.1", "commander": "^13.1.0", "fflate": "^0.8.2", "galactus": "^1.0.0", "ignore": "^7.0.5", "node-forge": "^1.3.2", "pretty-bytes": "^5.6.0", "zod": "^3.25.67", "zod-to-json-schema": "^3.24.6" }, "bin": { "mcpb": "dist/cli/cli.js" } }, "sha512-goRbBC8ySo7SWb7tRzr+tL6FxDc4JPTRCdgfD2omba7freofvjq5rom1lBnYHZHo6Mizs1jAHJeN53aZbDoy8A=="],
|
||||
|
||||
"@anthropic-ai/sandbox-runtime": ["@anthropic-ai/sandbox-runtime@0.0.46", "", { "dependencies": { "@pondwader/socks5-server": "^1.0.10", "@types/lodash-es": "^4.17.12", "commander": "^12.1.0", "lodash-es": "^4.17.23", "shell-quote": "^1.8.3", "zod": "^3.24.1" }, "bin": { "srt": "dist/cli.js" } }, "sha512-FeVZ4rbdiHNPiMtf70xkiwogDGXYcCKCPmYjrED2HGNlk5jOabgrlvUROz0SsVksIh24SVRuTwNTK/yGBFm/5w=="],
|
||||
|
||||
"@anthropic-ai/sdk": ["@anthropic-ai/sdk@0.39.0", "", { "dependencies": { "@types/node": "^18.11.18", "@types/node-fetch": "^2.6.4", "abort-controller": "^3.0.0", "agentkeepalive": "^4.2.1", "form-data-encoder": "1.7.2", "formdata-node": "^4.3.2", "node-fetch": "^2.6.7" } }, "sha512-eMyDIPRZbt1CCLErRCi3exlAvNkBtRe+kW5vvJyef93PmNr/clstYgHhtvmkxN82nlKgzyGPCyGxrm0JQ1ZIdg=="],
|
||||
|
||||
"@anthropic-ai/vertex-sdk": ["@anthropic-ai/vertex-sdk@0.14.4", "", { "dependencies": { "@anthropic-ai/sdk": ">=0.50.3 <1", "google-auth-library": "^9.4.2" } }, "sha512-BZUPRWghZxfSFtAxU563wH+jfWBPoedAwsVxG35FhmNsjeV8tyfN+lFriWhCpcZApxA4NdT6Soov+PzfnxxD5g=="],
|
||||
@@ -299,6 +303,8 @@
|
||||
|
||||
"@js-sdsl/ordered-map": ["@js-sdsl/ordered-map@4.4.2", "", {}, "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw=="],
|
||||
|
||||
"@mixmark-io/domino": ["@mixmark-io/domino@2.2.0", "", {}, "sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw=="],
|
||||
|
||||
"@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.29.0", "", { "dependencies": { "@hono/node-server": "^1.19.9", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", "eventsource-parser": "^3.0.0", "express": "^5.2.1", "express-rate-limit": "^8.2.1", "hono": "^4.11.4", "jose": "^6.1.3", "json-schema-typed": "^8.0.2", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.25 || ^4.0", "zod-to-json-schema": "^3.25.1" }, "peerDependencies": { "@cfworker/json-schema": "^4.1.1" }, "optionalPeers": ["@cfworker/json-schema"] }, "sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ=="],
|
||||
|
||||
"@opentelemetry/api": ["@opentelemetry/api@1.9.1", "", {}, "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q=="],
|
||||
@@ -343,6 +349,8 @@
|
||||
|
||||
"@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.40.0", "", {}, "sha512-cifvXDhcqMwwTlTK04GBNeIe7yyo28Mfby85QXFe1Yk8nmi36Ab/5UQwptOx84SsoGNRg+EVSjwzfSZMy6pmlw=="],
|
||||
|
||||
"@pondwader/socks5-server": ["@pondwader/socks5-server@1.0.10", "", {}, "sha512-bQY06wzzR8D2+vVCUoBsr5QS2U6UgPUQRmErNwtsuI6vLcyRKkafjkr3KxbtGFf9aBBIV2mcvlsKD1UYaIV+sg=="],
|
||||
|
||||
"@protobufjs/aspromise": ["@protobufjs/aspromise@1.1.2", "", {}, "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ=="],
|
||||
|
||||
"@protobufjs/base64": ["@protobufjs/base64@1.1.2", "", {}, "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="],
|
||||
@@ -457,6 +465,10 @@
|
||||
|
||||
"@smithy/uuid": ["@smithy/uuid@1.1.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g=="],
|
||||
|
||||
"@types/lodash": ["@types/lodash@4.17.24", "", {}, "sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ=="],
|
||||
|
||||
"@types/lodash-es": ["@types/lodash-es@4.17.12", "", { "dependencies": { "@types/lodash": "*" } }, "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ=="],
|
||||
|
||||
"@types/mute-stream": ["@types/mute-stream@0.0.4", "", { "dependencies": { "@types/node": "*" } }, "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow=="],
|
||||
|
||||
"@types/node": ["@types/node@18.19.130", "", { "dependencies": { "undici-types": "~5.26.4" } }, "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg=="],
|
||||
@@ -973,6 +985,8 @@
|
||||
|
||||
"tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
||||
|
||||
"turndown": ["turndown@7.2.2", "", { "dependencies": { "@mixmark-io/domino": "^2.2.0" } }, "sha512-1F7db8BiExOKxjSMU2b7if62D/XOyQyZbPKq/nUwopfgnHlqXHqQ0lvfUTeUIr1lZJzOPFn43dODyMSIfvWRKQ=="],
|
||||
|
||||
"type-fest": ["type-fest@4.41.0", "", {}, "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA=="],
|
||||
|
||||
"type-is": ["type-is@2.0.1", "", { "dependencies": { "content-type": "^1.0.5", "media-typer": "^1.1.0", "mime-types": "^3.0.0" } }, "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw=="],
|
||||
@@ -1045,6 +1059,8 @@
|
||||
|
||||
"@anthropic-ai/mcpb/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="],
|
||||
|
||||
"@anthropic-ai/sandbox-runtime/commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="],
|
||||
|
||||
"@anthropic-ai/vertex-sdk/@anthropic-ai/sdk": ["@anthropic-ai/sdk@0.80.0", "", { "dependencies": { "json-schema-to-ts": "^3.1.1" }, "peerDependencies": { "zod": "^3.25.0 || ^4.0.0" }, "optionalPeers": ["zod"], "bin": { "anthropic-ai-sdk": "bin/cli" } }, "sha512-WeXLn7zNVk3yjeshn+xZHvld6AoFUOR3Sep6pSoHho5YbSi6HwcirqgPA5ccFuW8QTVJAAU7N8uQQC6Wa9TG+g=="],
|
||||
|
||||
"@aws-crypto/crc32/@aws-crypto/util": ["@aws-crypto/util@5.2.0", "", { "dependencies": { "@aws-sdk/types": "^3.222.0", "@smithy/util-utf8": "^2.0.0", "tslib": "^2.6.2" } }, "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ=="],
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"start": "bun run src/main.tsx"
|
||||
"start": "bun run src/main.tsx",
|
||||
"postinstall": "bash scripts/postinstall.sh"
|
||||
},
|
||||
"dependencies": {
|
||||
"@alcalzone/ansi-tokenize": "^0.1.0",
|
||||
@@ -90,6 +91,8 @@
|
||||
"ws": "^8.18.0",
|
||||
"xss": "^1.0.0",
|
||||
"yaml": "^2.8.3",
|
||||
"zod": "^3.23.0"
|
||||
"zod": "^3.23.0",
|
||||
"turndown": "^7.1.3",
|
||||
"@anthropic-ai/sandbox-runtime": "*"
|
||||
}
|
||||
}
|
||||
119
scripts/postinstall.sh
Executable file
119
scripts/postinstall.sh
Executable file
@@ -0,0 +1,119 @@
|
||||
#!/bin/bash
|
||||
# postinstall.sh — Create stubs for Anthropic internal packages
|
||||
# Run automatically after `bun install` via package.json scripts
|
||||
|
||||
set -e
|
||||
|
||||
STUBS_DIR="node_modules/@ant"
|
||||
SANDBOX_DIR="node_modules/@anthropic-ai/sandbox-runtime"
|
||||
|
||||
echo "[postinstall] Creating stub packages..."
|
||||
|
||||
# ── @ant/claude-for-chrome-mcp ──────────────────────────────────────────────
|
||||
mkdir -p "$STUBS_DIR/claude-for-chrome-mcp"
|
||||
cat > "$STUBS_DIR/claude-for-chrome-mcp/package.json" << 'EOF'
|
||||
{ "name": "@ant/claude-for-chrome-mcp", "version": "0.0.0", "main": "index.js" }
|
||||
EOF
|
||||
cat > "$STUBS_DIR/claude-for-chrome-mcp/index.js" << 'EOF'
|
||||
module.exports = { BROWSER_TOOLS: [], setupClaudeInChrome: () => ({}) };
|
||||
EOF
|
||||
|
||||
# ── @ant/computer-use-input ─────────────────────────────────────────────────
|
||||
mkdir -p "$STUBS_DIR/computer-use-input"
|
||||
cat > "$STUBS_DIR/computer-use-input/package.json" << 'EOF'
|
||||
{ "name": "@ant/computer-use-input", "version": "0.0.0", "main": "index.js" }
|
||||
EOF
|
||||
cat > "$STUBS_DIR/computer-use-input/index.js" << 'EOF'
|
||||
module.exports = {};
|
||||
EOF
|
||||
|
||||
# ── @ant/computer-use-mcp ──────────────────────────────────────────────────
|
||||
mkdir -p "$STUBS_DIR/computer-use-mcp"
|
||||
cat > "$STUBS_DIR/computer-use-mcp/package.json" << 'EOF'
|
||||
{ "name": "@ant/computer-use-mcp", "version": "0.0.0", "main": "index.js" }
|
||||
EOF
|
||||
cat > "$STUBS_DIR/computer-use-mcp/index.js" << 'EOF'
|
||||
module.exports = {
|
||||
buildComputerUseTools: () => ({}),
|
||||
bindSessionContext: () => ({}),
|
||||
DEFAULT_GRANT_FLAGS: {},
|
||||
API_RESIZE_PARAMS: {},
|
||||
targetImageSize: () => ({ width: 0, height: 0 }),
|
||||
};
|
||||
EOF
|
||||
mkdir -p "$STUBS_DIR/computer-use-mcp/sentinelApps"
|
||||
cat > "$STUBS_DIR/computer-use-mcp/sentinelApps/index.js" << 'EOF'
|
||||
module.exports = { getSentinelCategory: () => '' };
|
||||
EOF
|
||||
mkdir -p "$STUBS_DIR/computer-use-mcp/types"
|
||||
cat > "$STUBS_DIR/computer-use-mcp/types/index.js" << 'EOF'
|
||||
module.exports = { DEFAULT_GRANT_FLAGS: {} };
|
||||
EOF
|
||||
|
||||
# ── @ant/computer-use-swift ─────────────────────────────────────────────────
|
||||
mkdir -p "$STUBS_DIR/computer-use-swift"
|
||||
cat > "$STUBS_DIR/computer-use-swift/package.json" << 'EOF'
|
||||
{ "name": "@ant/computer-use-swift", "version": "0.0.0", "main": "index.js" }
|
||||
EOF
|
||||
cat > "$STUBS_DIR/computer-use-swift/index.js" << 'EOF'
|
||||
module.exports = {};
|
||||
EOF
|
||||
|
||||
# ── @anthropic-ai/sandbox-runtime ───────────────────────────────────────────
|
||||
# Only create stub if not already installed (e.g. from npm)
|
||||
if [ ! -f "$SANDBOX_DIR/dist/index.js" ]; then
|
||||
echo "[postinstall] Creating sandbox-runtime stub (install @anthropic-ai/sandbox-runtime for real sandboxing)..."
|
||||
mkdir -p "$SANDBOX_DIR"
|
||||
cat > "$SANDBOX_DIR/package.json" << 'EOF'
|
||||
{ "name": "@anthropic-ai/sandbox-runtime", "version": "0.0.0-stub", "main": "index.js" }
|
||||
EOF
|
||||
cat > "$SANDBOX_DIR/index.js" << 'STUBEOF'
|
||||
class SandboxManager {
|
||||
static getFsReadConfig() { return null; }
|
||||
static getFsWriteConfig() { return null; }
|
||||
static getNetworkConfig() { return null; }
|
||||
static getNetworkRestrictionConfig() { return null; }
|
||||
static isSandboxingEnabled() { return false; }
|
||||
static isSupportedPlatform() { return false; }
|
||||
static areUnsandboxedCommandsAllowed() { return true; }
|
||||
static isAutoAllowBashIfSandboxedEnabled() { return false; }
|
||||
static getSandboxConfig() { return null; }
|
||||
static refreshConfig() {}
|
||||
static reset() { return Promise.resolve(); }
|
||||
static wrapWithSandbox(cmd) { return Promise.resolve(cmd); }
|
||||
static getExcludedCommands() { return []; }
|
||||
static getSandboxSettings() { return null; }
|
||||
static setSandboxSettings() {}
|
||||
static getIgnoreViolations() { return null; }
|
||||
static getIgnoreViolationsConfig() { return null; }
|
||||
static checkDependencies() { return { errors: [], warnings: [] }; }
|
||||
static initialize() { return Promise.resolve(); }
|
||||
static updateConfig() {}
|
||||
static getAllowUnixSockets() { return undefined; }
|
||||
static getAllowLocalBinding() { return undefined; }
|
||||
static getEnableWeakerNestedSandbox() { return undefined; }
|
||||
static getProxyPort() { return undefined; }
|
||||
static getSocksProxyPort() { return undefined; }
|
||||
static getLinuxHttpSocketPath() { return undefined; }
|
||||
static getLinuxSocksSocketPath() { return undefined; }
|
||||
static waitForNetworkInitialization() { return Promise.resolve(true); }
|
||||
static cleanupAfterCommand() {}
|
||||
static getSandboxViolationStore() { return new SandboxViolationStore(); }
|
||||
static annotateStderrWithSandboxFailures(_cmd, stderr) { return stderr; }
|
||||
static getLinuxGlobPatternWarnings() { return []; }
|
||||
}
|
||||
class SandboxViolationStore {
|
||||
constructor() {}
|
||||
addViolation() {}
|
||||
getViolations() { return []; }
|
||||
clear() {}
|
||||
}
|
||||
const SandboxRuntimeConfigSchema = {
|
||||
parse: (x) => x,
|
||||
safeParse: (x) => ({ success: true, data: x }),
|
||||
};
|
||||
module.exports = { SandboxManager, SandboxViolationStore, SandboxRuntimeConfigSchema };
|
||||
STUBEOF
|
||||
fi
|
||||
|
||||
echo "[postinstall] Stubs created."
|
||||
Reference in New Issue
Block a user