mirror of
http://10.0.2.1:3031/sauer/claude-code.git
synced 2026-06-30 12:56:58 +10:00
120 lines
17 KiB
TypeScript
120 lines
17 KiB
TypeScript
|
|
import { c as _c } from "react/compiler-runtime";
|
||
|
|
import React from 'react';
|
||
|
|
import { Box, Text } from '../../ink.js';
|
||
|
|
import { getPlatform } from '../../utils/platform.js';
|
||
|
|
import type { SandboxDependencyCheck } from '../../utils/sandbox/sandbox-adapter.js';
|
||
|
|
type Props = {
|
||
|
|
depCheck: SandboxDependencyCheck;
|
||
|
|
};
|
||
|
|
export function SandboxDependenciesTab(t0) {
|
||
|
|
const $ = _c(24);
|
||
|
|
const {
|
||
|
|
depCheck
|
||
|
|
} = t0;
|
||
|
|
let t1;
|
||
|
|
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
||
|
|
t1 = getPlatform();
|
||
|
|
$[0] = t1;
|
||
|
|
} else {
|
||
|
|
t1 = $[0];
|
||
|
|
}
|
||
|
|
const platform = t1;
|
||
|
|
const isMac = platform === "macos";
|
||
|
|
let t2;
|
||
|
|
if ($[1] !== depCheck.errors) {
|
||
|
|
t2 = depCheck.errors.some(_temp);
|
||
|
|
$[1] = depCheck.errors;
|
||
|
|
$[2] = t2;
|
||
|
|
} else {
|
||
|
|
t2 = $[2];
|
||
|
|
}
|
||
|
|
const rgMissing = t2;
|
||
|
|
let t3;
|
||
|
|
if ($[3] !== depCheck.errors) {
|
||
|
|
t3 = depCheck.errors.some(_temp2);
|
||
|
|
$[3] = depCheck.errors;
|
||
|
|
$[4] = t3;
|
||
|
|
} else {
|
||
|
|
t3 = $[4];
|
||
|
|
}
|
||
|
|
const bwrapMissing = t3;
|
||
|
|
let t4;
|
||
|
|
if ($[5] !== depCheck.errors) {
|
||
|
|
t4 = depCheck.errors.some(_temp3);
|
||
|
|
$[5] = depCheck.errors;
|
||
|
|
$[6] = t4;
|
||
|
|
} else {
|
||
|
|
t4 = $[6];
|
||
|
|
}
|
||
|
|
const socatMissing = t4;
|
||
|
|
const seccompMissing = depCheck.warnings.length > 0;
|
||
|
|
let t5;
|
||
|
|
if ($[7] !== bwrapMissing || $[8] !== depCheck.errors || $[9] !== rgMissing || $[10] !== seccompMissing || $[11] !== socatMissing) {
|
||
|
|
const otherErrors = depCheck.errors.filter(_temp4);
|
||
|
|
const rgInstallHint = isMac ? "brew install ripgrep" : "apt install ripgrep";
|
||
|
|
let t6;
|
||
|
|
if ($[13] === Symbol.for("react.memo_cache_sentinel")) {
|
||
|
|
t6 = isMac && <Box flexDirection="column"><Text>seatbelt: <Text color="success">built-in (macOS)</Text></Text></Box>;
|
||
|
|
$[13] = t6;
|
||
|
|
} else {
|
||
|
|
t6 = $[13];
|
||
|
|
}
|
||
|
|
let t7;
|
||
|
|
let t8;
|
||
|
|
if ($[14] !== rgMissing) {
|
||
|
|
t7 = <Text>ripgrep (rg):{" "}{rgMissing ? <Text color="error">not found</Text> : <Text color="success">found</Text>}</Text>;
|
||
|
|
t8 = rgMissing && <Text dimColor={true}>{" "}· {rgInstallHint}</Text>;
|
||
|
|
$[14] = rgMissing;
|
||
|
|
$[15] = t7;
|
||
|
|
$[16] = t8;
|
||
|
|
} else {
|
||
|
|
t7 = $[15];
|
||
|
|
t8 = $[16];
|
||
|
|
}
|
||
|
|
let t9;
|
||
|
|
if ($[17] !== t7 || $[18] !== t8) {
|
||
|
|
t9 = <Box flexDirection="column">{t7}{t8}</Box>;
|
||
|
|
$[17] = t7;
|
||
|
|
$[18] = t8;
|
||
|
|
$[19] = t9;
|
||
|
|
} else {
|
||
|
|
t9 = $[19];
|
||
|
|
}
|
||
|
|
let t10;
|
||
|
|
if ($[20] !== bwrapMissing || $[21] !== seccompMissing || $[22] !== socatMissing) {
|
||
|
|
t10 = !isMac && <><Box flexDirection="column"><Text>bubblewrap (bwrap):{" "}{bwrapMissing ? <Text color="error">not installed</Text> : <Text color="success">installed</Text>}</Text>{bwrapMissing && <Text dimColor={true}>{" "}· apt install bubblewrap</Text>}</Box><Box flexDirection="column"><Text>socat:{" "}{socatMissing ? <Text color="error">not installed</Text> : <Text color="success">installed</Text>}</Text>{socatMissing && <Text dimColor={true}>{" "}· apt install socat</Text>}</Box><Box flexDirection="column"><Text>seccomp filter:{" "}{seccompMissing ? <Text color="warning">not installed</Text> : <Text color="success">installed</Text>}{seccompMissing && <Text dimColor={true}> (required to block unix domain sockets)</Text>}</Text>{seccompMissing && <Box flexDirection="column"><Text dimColor={true}>{" "}· npm install -g @anthropic-ai/sandbox-runtime</Text><Text dimColor={true}>{" "}· or copy vendor/seccomp/* from sandbox-runtime and set</Text><Text dimColor={true}>{" "}sandbox.seccomp.bpfPath and applyPath in settings.json</Text></Box>}</Box></>;
|
||
|
|
$[20] = bwrapMissing;
|
||
|
|
$[21] = seccompMissing;
|
||
|
|
$[22] = socatMissing;
|
||
|
|
$[23] = t10;
|
||
|
|
} else {
|
||
|
|
t10 = $[23];
|
||
|
|
}
|
||
|
|
t5 = <Box flexDirection="column" paddingY={1} gap={1}>{t6}{t9}{t10}{otherErrors.map(_temp5)}</Box>;
|
||
|
|
$[7] = bwrapMissing;
|
||
|
|
$[8] = depCheck.errors;
|
||
|
|
$[9] = rgMissing;
|
||
|
|
$[10] = seccompMissing;
|
||
|
|
$[11] = socatMissing;
|
||
|
|
$[12] = t5;
|
||
|
|
} else {
|
||
|
|
t5 = $[12];
|
||
|
|
}
|
||
|
|
return t5;
|
||
|
|
}
|
||
|
|
function _temp5(err) {
|
||
|
|
return <Text key={err} color="error">{err}</Text>;
|
||
|
|
}
|
||
|
|
function _temp4(e_2) {
|
||
|
|
return !e_2.includes("ripgrep") && !e_2.includes("bwrap") && !e_2.includes("socat");
|
||
|
|
}
|
||
|
|
function _temp3(e_1) {
|
||
|
|
return e_1.includes("socat");
|
||
|
|
}
|
||
|
|
function _temp2(e_0) {
|
||
|
|
return e_0.includes("bwrap");
|
||
|
|
}
|
||
|
|
function _temp(e) {
|
||
|
|
return e.includes("ripgrep");
|
||
|
|
}
|
||
|
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkJveCIsIlRleHQiLCJnZXRQbGF0Zm9ybSIsIlNhbmRib3hEZXBlbmRlbmN5Q2hlY2siLCJQcm9wcyIsImRlcENoZWNrIiwiU2FuZGJveERlcGVuZGVuY2llc1RhYiIsInQwIiwiJCIsIl9jIiwidDEiLCJTeW1ib2wiLCJmb3IiLCJwbGF0Zm9ybSIsImlzTWFjIiwidDIiLCJlcnJvcnMiLCJzb21lIiwiX3RlbXAiLCJyZ01pc3NpbmciLCJ0MyIsIl90ZW1wMiIsImJ3cmFwTWlzc2luZyIsInQ0IiwiX3RlbXAzIiwic29jYXRNaXNzaW5nIiwic2VjY29tcE1pc3NpbmciLCJ3YXJuaW5ncyIsImxlbmd0aCIsInQ1Iiwib3RoZXJFcnJvcnMiLCJmaWx0ZXIiLCJfdGVtcDQiLCJyZ0luc3RhbGxIaW50IiwidDYiLCJ0NyIsInQ4IiwidDkiLCJ0MTAiLCJtYXAiLCJfdGVtcDUiLCJlcnIiLCJlXzIiLCJlIiwiaW5jbHVkZXMiLCJlXzEiLCJlXzAiXSwic291cmNlcyI6WyJTYW5kYm94RGVwZW5kZW5jaWVzVGFiLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBCb3gsIFRleHQgfSBmcm9tICcuLi8uLi9pbmsuanMnXG5pbXBvcnQgeyBnZXRQbGF0Zm9ybSB9IGZyb20gJy4uLy4uL3V0aWxzL3BsYXRmb3JtLmpzJ1xuaW1wb3J0IHR5cGUgeyBTYW5kYm94RGVwZW5kZW5jeUNoZWNrIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2FuZGJveC9zYW5kYm94LWFkYXB0ZXIuanMnXG5cbnR5cGUgUHJvcHMgPSB7XG4gIGRlcENoZWNrOiBTYW5kYm94RGVwZW5kZW5jeUNoZWNrXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBTYW5kYm94RGVwZW5kZW5jaWVzVGFiKHsgZGVwQ2hlY2sgfTogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBwbGF0Zm9ybSA9IGdldFBsYXRmb3JtKClcbiAgY29uc3QgaXNNYWMgPSBwbGF0Zm9ybSA9PT0gJ21hY29zJ1xuXG4gIC8vIHJpcGdyZXAgaXMgcmVxdWlyZWQgb24gYWxsIHBsYXRmb3JtcyAodXNlZCB0byBzY2FuIGZvciBkYW5nZXJvdXMgZGlycykuXG4gIC8vIE9uIG1hY09TLCBzZWF0YmVsdCBpcyBidWlsdCBpbnRvIHRoZSBPUyDigJQgcmlwZ3JlcCBpcyB0aGUgb25seSBydW50aW1lIGRlcC5cbiAgLy8gT24gTGludXgvV1NMLCBid3JhcCArIHNvY2F0IGFyZSByZXF1aXJlZCwgc2VjY29tcCBpcyBvcHRpb25hbC5cbiAgLy9cbiAgLy8gIzMxODA0OiBwcmV2aW91c2x5IHRoaXMgdGFiIHVuY29uZGl0aW9uYWxseSByZW5kZXJlZCBMaW51eCBkZXBzIChid3JhcCxcbiAgLy8gc29jYXQsIHNlY2NvbXApLiBXaGVuIHJpcGdyZXAgd2FzIG1pc3Npbmcgb24gbWFjT1MsIHVzZXJzIHNhdyBjb25mdXNpbmdcbiAgLy8gTGludXggaW5zdGFsbCBpbnN0cnVjdGlvbnMgYW5kIG5vIG1lbnRpb24gb2YgdGhlIGFjdHVhbCBwcm9ibGVtLlxuICBjb25zdCByZ01pc3NpbmcgPSBkZXBDaGVjay5lcnJvcnMuc29tZShlID0+IGUuaW5jbHVkZXMoJ3JpcGdyZXAnKSlcbiAgY29uc3QgYndyYXBNaXNzaW5nID0gZGVwQ2hlY2suZXJyb3JzLnNvbWUoZSA9PiBlLmluY2x1ZGVzKCdid3JhcCcpKVxuICBjb25zdCBzb2NhdE1pc3NpbmcgPSBkZXBDaGVjay5lcnJvcnMuc29tZShlID0+IGUuaW5jbHVkZXMoJ3NvY2F0JykpXG4gIGNvbnN0IHNlY2NvbXBNaXNzaW5nID0gZGVwQ2hlY2sud2FybmluZ3MubGVuZ3RoID4gMFxuXG4gIC8vIEFueSBlcnJvcnMgd2UgZG9uJ3QgaGF2ZSBhIGRlZGljYXRlZCByb3cgZm9yIOKAlCByZW5kZXIgdmVyYmF0aW0gc28gdGhleVxuICAvLyBhcmVuJ3Qgc2lsZW50bHkgc3dhbGxvd2VkIChlLmcuIFwiVW5zdXBwb3J0ZWQgcGxhdGZvcm1cIiBvciBmdXR1cmUgZGVwcykuXG4gIGNvbnN0IG90aGVyRXJyb3JzID0gZGVwQ2hlY2suZXJyb3JzLmZpbHRlcihcbiAgICBlID0+ICFlLmluY2x1ZGVzKCdyaXBncmVwJykgJiYgIWUuaW5jbHVkZXMoJ2J3cmFwJykgJiYgIWUuaW5jbHVkZXMoJ3NvY2F0JyksXG4gIClcblxuICBjb25zdCByZ0luc3RhbGxIaW50ID0gaXNNYWMgPyAnYnJldyBpbnN0YWxsIHJpcGdyZXAnIDogJ2FwdCBpbnN0YWxsIHJpcGdyZXAnXG5cbiAgcmV0dXJuIChcbiAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBwYWRkaW5nWT17MX0gZ2FwPXsxfT5cbiAgICAgIHtpc01hYyAmJiAoXG4gICAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiPlxuICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAgc2VhdGJlbHQ6IDxUZXh0IGNvbG9yPVwic3VjY2Vzc1wiPmJ1aWx0LWluIChtYWNPUyk8L1RleHQ+XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICA8L0JveD5cbiAgICAgICl9XG5cbiAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiPlxuICAgICAgICA8VGV4dD5cbiAgICAgICAgICByaXBncmVwIChyZyk6eycgJ31cbiAgICAgICAgICB7cmdNaXNzaW5nID8gKFxuICAgICAgICAgICAgPFRleHQgY29sb3I9XCJlcnJvclwiPm5vdCBmb3VuZDwvVGV4dD5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRleHQgY29sb3I9XCJzdWNjZXNzXCI+Zm91bmQ8L1RleHQ+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgICB7cmdNaXNzaW5nICYmIChcbiAgICAgICAgICA8VGV4dCBkaW1Db2xvcj5cbiAgICAgICAgICAgIHsnICAnfcK3IHtyZ0luc3RhbGxIaW50fVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvQm94PlxuXG4gICAgICB7IWlzTWFjICYmIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIj5cbiAgICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAgICBidWJibGV3cmFwIChid3JhcCk6eycgJ31cbiAgICAgICAgICAgICAge2J3cmFwTWlzc2luZyA/IChcbiAgICAgICAgICAgICAgICA8VGV4dCBjb2xvcj1cImVycm9yXCI+bm90IGluc3RhbGxlZDwvVGV4dD5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8VGV4dCBjb2xvcj1cInN1Y2Nlc3NcIj5pbnN0YWxsZWQ8L1RleHQ+XG4gICAgICAgICAgICAgICl
|