source dump of claude code
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 193 lines 20 kB view raw
1import { c as _c } from "react/compiler-runtime"; 2import React from 'react'; 3import { Box, color, Link, Text, useTheme } from '../../ink.js'; 4import type { CommandResultDisplay } from '../../types/command.js'; 5import { SandboxManager } from '../../utils/sandbox/sandbox-adapter.js'; 6import { Select } from '../CustomSelect/select.js'; 7import { useTabHeaderFocus } from '../design-system/Tabs.js'; 8type Props = { 9 onComplete: (result?: string, options?: { 10 display?: CommandResultDisplay; 11 }) => void; 12}; 13type OverrideMode = 'open' | 'closed'; 14export function SandboxOverridesTab(t0) { 15 const $ = _c(5); 16 const { 17 onComplete 18 } = t0; 19 const isEnabled = SandboxManager.isSandboxingEnabled(); 20 const isLocked = SandboxManager.areSandboxSettingsLockedByPolicy(); 21 const currentAllowUnsandboxed = SandboxManager.areUnsandboxedCommandsAllowed(); 22 if (!isEnabled) { 23 let t1; 24 if ($[0] === Symbol.for("react.memo_cache_sentinel")) { 25 t1 = <Box flexDirection="column" paddingY={1}><Text color="subtle">Sandbox is not enabled. Enable sandbox to configure override settings.</Text></Box>; 26 $[0] = t1; 27 } else { 28 t1 = $[0]; 29 } 30 return t1; 31 } 32 if (isLocked) { 33 let t1; 34 if ($[1] === Symbol.for("react.memo_cache_sentinel")) { 35 t1 = <Text color="subtle">Override settings are managed by a higher-priority configuration and cannot be changed locally.</Text>; 36 $[1] = t1; 37 } else { 38 t1 = $[1]; 39 } 40 let t2; 41 if ($[2] === Symbol.for("react.memo_cache_sentinel")) { 42 t2 = <Box flexDirection="column" paddingY={1}>{t1}<Box marginTop={1}><Text dimColor={true}>Current setting:{" "}{currentAllowUnsandboxed ? "Allow unsandboxed fallback" : "Strict sandbox mode"}</Text></Box></Box>; 43 $[2] = t2; 44 } else { 45 t2 = $[2]; 46 } 47 return t2; 48 } 49 let t1; 50 if ($[3] !== onComplete) { 51 t1 = <OverridesSelect onComplete={onComplete} currentMode={currentAllowUnsandboxed ? "open" : "closed"} />; 52 $[3] = onComplete; 53 $[4] = t1; 54 } else { 55 t1 = $[4]; 56 } 57 return t1; 58} 59 60// Split so useTabHeaderFocus() only runs when the Select renders. Calling it 61// above the early returns registers a down-arrow opt-in even when we return 62// static text — pressing ↓ then blurs the header with no way back. 63function OverridesSelect(t0) { 64 const $ = _c(25); 65 const { 66 onComplete, 67 currentMode 68 } = t0; 69 const [theme] = useTheme(); 70 const { 71 headerFocused, 72 focusHeader 73 } = useTabHeaderFocus(); 74 let t1; 75 if ($[0] !== theme) { 76 t1 = color("success", theme)("(current)"); 77 $[0] = theme; 78 $[1] = t1; 79 } else { 80 t1 = $[1]; 81 } 82 const currentIndicator = t1; 83 const t2 = currentMode === "open" ? `Allow unsandboxed fallback ${currentIndicator}` : "Allow unsandboxed fallback"; 84 let t3; 85 if ($[2] !== t2) { 86 t3 = { 87 label: t2, 88 value: "open" 89 }; 90 $[2] = t2; 91 $[3] = t3; 92 } else { 93 t3 = $[3]; 94 } 95 const t4 = currentMode === "closed" ? `Strict sandbox mode ${currentIndicator}` : "Strict sandbox mode"; 96 let t5; 97 if ($[4] !== t4) { 98 t5 = { 99 label: t4, 100 value: "closed" 101 }; 102 $[4] = t4; 103 $[5] = t5; 104 } else { 105 t5 = $[5]; 106 } 107 let t6; 108 if ($[6] !== t3 || $[7] !== t5) { 109 t6 = [t3, t5]; 110 $[6] = t3; 111 $[7] = t5; 112 $[8] = t6; 113 } else { 114 t6 = $[8]; 115 } 116 const options = t6; 117 let t7; 118 if ($[9] !== onComplete) { 119 t7 = async function handleSelect(value) { 120 const mode = value as OverrideMode; 121 await SandboxManager.setSandboxSettings({ 122 allowUnsandboxedCommands: mode === "open" 123 }); 124 const message = mode === "open" ? "\u2713 Unsandboxed fallback allowed - commands can run outside sandbox when necessary" : "\u2713 Strict sandbox mode - all commands must run in sandbox or be excluded via the `excludedCommands` option"; 125 onComplete(message); 126 }; 127 $[9] = onComplete; 128 $[10] = t7; 129 } else { 130 t7 = $[10]; 131 } 132 const handleSelect = t7; 133 let t8; 134 if ($[11] === Symbol.for("react.memo_cache_sentinel")) { 135 t8 = <Box marginBottom={1}><Text bold={true}>Configure Overrides:</Text></Box>; 136 $[11] = t8; 137 } else { 138 t8 = $[11]; 139 } 140 let t9; 141 if ($[12] !== onComplete) { 142 t9 = () => onComplete(undefined, { 143 display: "skip" 144 }); 145 $[12] = onComplete; 146 $[13] = t9; 147 } else { 148 t9 = $[13]; 149 } 150 let t10; 151 if ($[14] !== focusHeader || $[15] !== handleSelect || $[16] !== headerFocused || $[17] !== options || $[18] !== t9) { 152 t10 = <Select options={options} onChange={handleSelect} onCancel={t9} onUpFromFirstItem={focusHeader} isDisabled={headerFocused} />; 153 $[14] = focusHeader; 154 $[15] = handleSelect; 155 $[16] = headerFocused; 156 $[17] = options; 157 $[18] = t9; 158 $[19] = t10; 159 } else { 160 t10 = $[19]; 161 } 162 let t11; 163 if ($[20] === Symbol.for("react.memo_cache_sentinel")) { 164 t11 = <Text dimColor={true}><Text bold={true} dimColor={true}>Allow unsandboxed fallback:</Text>{" "}When a command fails due to sandbox restrictions, Claude can retry with dangerouslyDisableSandbox to run outside the sandbox (falling back to default permissions).</Text>; 165 $[20] = t11; 166 } else { 167 t11 = $[20]; 168 } 169 let t12; 170 if ($[21] === Symbol.for("react.memo_cache_sentinel")) { 171 t12 = <Text dimColor={true}><Text bold={true} dimColor={true}>Strict sandbox mode:</Text>{" "}All bash commands invoked by the model must run in the sandbox unless they are explicitly listed in excludedCommands.</Text>; 172 $[21] = t12; 173 } else { 174 t12 = $[21]; 175 } 176 let t13; 177 if ($[22] === Symbol.for("react.memo_cache_sentinel")) { 178 t13 = <Box flexDirection="column" marginTop={1} gap={1}>{t11}{t12}<Text dimColor={true}>Learn more:{" "}<Link url="https://code.claude.com/docs/en/sandboxing#configure-sandboxing">code.claude.com/docs/en/sandboxing#configure-sandboxing</Link></Text></Box>; 179 $[22] = t13; 180 } else { 181 t13 = $[22]; 182 } 183 let t14; 184 if ($[23] !== t10) { 185 t14 = <Box flexDirection="column" paddingY={1}>{t8}{t10}{t13}</Box>; 186 $[23] = t10; 187 $[24] = t14; 188 } else { 189 t14 = $[24]; 190 } 191 return t14; 192} 193//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkJveCIsImNvbG9yIiwiTGluayIsIlRleHQiLCJ1c2VUaGVtZSIsIkNvbW1hbmRSZXN1bHREaXNwbGF5IiwiU2FuZGJveE1hbmFnZXIiLCJTZWxlY3QiLCJ1c2VUYWJIZWFkZXJGb2N1cyIsIlByb3BzIiwib25Db21wbGV0ZSIsInJlc3VsdCIsIm9wdGlvbnMiLCJkaXNwbGF5IiwiT3ZlcnJpZGVNb2RlIiwiU2FuZGJveE92ZXJyaWRlc1RhYiIsInQwIiwiJCIsIl9jIiwiaXNFbmFibGVkIiwiaXNTYW5kYm94aW5nRW5hYmxlZCIsImlzTG9ja2VkIiwiYXJlU2FuZGJveFNldHRpbmdzTG9ja2VkQnlQb2xpY3kiLCJjdXJyZW50QWxsb3dVbnNhbmRib3hlZCIsImFyZVVuc2FuZGJveGVkQ29tbWFuZHNBbGxvd2VkIiwidDEiLCJTeW1ib2wiLCJmb3IiLCJ0MiIsIk92ZXJyaWRlc1NlbGVjdCIsImN1cnJlbnRNb2RlIiwidGhlbWUiLCJoZWFkZXJGb2N1c2VkIiwiZm9jdXNIZWFkZXIiLCJjdXJyZW50SW5kaWNhdG9yIiwidDMiLCJsYWJlbCIsInZhbHVlIiwidDQiLCJ0NSIsInQ2IiwidDciLCJoYW5kbGVTZWxlY3QiLCJtb2RlIiwic2V0U2FuZGJveFNldHRpbmdzIiwiYWxsb3dVbnNhbmRib3hlZENvbW1hbmRzIiwibWVzc2FnZSIsInQ4IiwidDkiLCJ1bmRlZmluZWQiLCJ0MTAiLCJ0MTEiLCJ0MTIiLCJ0MTMiLCJ0MTQiXSwic291cmNlcyI6WyJTYW5kYm94T3ZlcnJpZGVzVGFiLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBCb3gsIGNvbG9yLCBMaW5rLCBUZXh0LCB1c2VUaGVtZSB9IGZyb20gJy4uLy4uL2luay5qcydcbmltcG9ydCB0eXBlIHsgQ29tbWFuZFJlc3VsdERpc3BsYXkgfSBmcm9tICcuLi8uLi90eXBlcy9jb21tYW5kLmpzJ1xuaW1wb3J0IHsgU2FuZGJveE1hbmFnZXIgfSBmcm9tICcuLi8uLi91dGlscy9zYW5kYm94L3NhbmRib3gtYWRhcHRlci5qcydcbmltcG9ydCB7IFNlbGVjdCB9IGZyb20gJy4uL0N1c3RvbVNlbGVjdC9zZWxlY3QuanMnXG5pbXBvcnQgeyB1c2VUYWJIZWFkZXJGb2N1cyB9IGZyb20gJy4uL2Rlc2lnbi1zeXN0ZW0vVGFicy5qcydcblxudHlwZSBQcm9wcyA9IHtcbiAgb25Db21wbGV0ZTogKFxuICAgIHJlc3VsdD86IHN0cmluZyxcbiAgICBvcHRpb25zPzogeyBkaXNwbGF5PzogQ29tbWFuZFJlc3VsdERpc3BsYXkgfSxcbiAgKSA9PiB2b2lkXG59XG5cbnR5cGUgT3ZlcnJpZGVNb2RlID0gJ29wZW4nIHwgJ2Nsb3NlZCdcblxuZXhwb3J0IGZ1bmN0aW9uIFNhbmRib3hPdmVycmlkZXNUYWIoeyBvbkNvbXBsZXRlIH06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgaXNFbmFibGVkID0gU2FuZGJveE1hbmFnZXIuaXNTYW5kYm94aW5nRW5hYmxlZCgpXG4gIGNvbnN0IGlzTG9ja2VkID0gU2FuZGJveE1hbmFnZXIuYXJlU2FuZGJveFNldHRpbmdzTG9ja2VkQnlQb2xpY3koKVxuICBjb25zdCBjdXJyZW50QWxsb3dVbnNhbmRib3hlZCA9IFNhbmRib3hNYW5hZ2VyLmFyZVVuc2FuZGJveGVkQ29tbWFuZHNBbGxvd2VkKClcblxuICBpZiAoIWlzRW5hYmxlZCkge1xuICAgIHJldHVybiAoXG4gICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBwYWRkaW5nWT17MX0+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwic3VidGxlXCI+XG4gICAgICAgICAgU2FuZGJveCBpcyBub3QgZW5hYmxlZC4gRW5hYmxlIHNhbmRib3ggdG8gY29uZmlndXJlIG92ZXJyaWRlIHNldHRpbmdzLlxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0JveD5cbiAgICApXG4gIH1cblxuICBpZiAoaXNMb2NrZWQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgcGFkZGluZ1k9ezF9PlxuICAgICAgICA8VGV4dCBjb2xvcj1cInN1YnRsZVwiPlxuICAgICAgICAgIE92ZXJyaWRlIHNldHRpbmdzIGFyZSBtYW5hZ2VkIGJ5IGEgaGlnaGVyLXByaW9yaXR5IGNvbmZpZ3VyYXRpb24gYW5kXG4gICAgICAgICAgY2Fubm90IGJlIGNoYW5nZWQgbG9jYWxseS5cbiAgICAgICAgPC9UZXh0PlxuICAgICAgICA8Qm94IG1hcmdpblRvcD17MX0+XG4gICAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAgICBDdXJyZW50IHNldHRpbmc6eycgJ31cbiAgICAgICAgICAgIHtjdXJyZW50QWxsb3dVbnNhbmRib3hlZFxuICAgICAgICAgICAgICA/ICdBbGxvdyB1bnNhbmRib3hlZCBmYWxsYmFjaydcbiAgICAgICAgICAgICAgOiAnU3RyaWN0IHNhbmRib3ggbW9kZSd9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvQm94PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPE92ZXJyaWRlc1NlbGVjdFxuICAgICAgb25Db21wbGV0ZT17b25Db21wbGV0ZX1cbiAgICAgIGN1cnJlbnRNb2RlPXtjdXJyZW50QWxsb3dVbnNhbmRib3hlZCA/ICdvcGVuJyA6ICdjbG9zZWQnfVxuICAgIC8+XG4gIClcbn1cblxuLy8gU3BsaXQgc28gdXNlVGFiSGVhZGVyRm9jdXMoKSBvbmx5IHJ1bnMgd2hlbiB0aGUgU2VsZWN0IHJlbmRlcnMuIENhbGxpbmcgaXRcbi8vIGFib3ZlIHRoZSBlYXJseSByZXR1cm5zIHJlZ2lzdGVycyBhIGRvd24tYXJyb3cgb3B0LWluIGV2ZW4gd2hlbiB3ZSByZXR1cm5cbi8vIHN0YXRpYyB0ZXh0IOKAlCBwcmVzc2luZyDihpMgdGhlbiBibHVycyB0aGUgaGVhZGVyIHdpdGggbm8gd2F5IGJhY2suXG5mdW5jdGlvbiBPdmVycmlkZXNTZWxlY3Qoe1xuICBvbkNvbXBsZXRlLFxuICBjdXJyZW50TW9kZSxcbn06IFByb3BzICYgeyBjdXJyZW50TW9kZTogT3ZlcnJpZGVNb2RlIH0pOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBbdGhlbWVdID0gdXNlVGhlbWUoKVxuICBjb25zdCB7IGhlYWRlckZvY3VzZWQsIGZvY3VzSGVhZGVyIH0gPSB1c2VUYWJIZWFkZXJGb2N1cygpXG4gIGNvbnN0IGN1cnJlbnRJbmRpY2F0b3IgPSBjb2xvcignc3VjY2VzcycsIHRoZW1lKShgKGN1cnJlbnQpYClcblxuICBjb25zdCBvcHRpb25zID0gW1xuICAgIHtcbiAgICAgIGxhYmVsOlxuICAgICAgICBjdXJyZW50TW9kZSA9PT0gJ29wZW4nXG4gICAgICAgICAgPyBgQWxsb3cgdW5zYW5kYm94ZWQgZmFsbGJhY2sgJHtjdXJyZW50SW5kaWNhdG9yfWBcbiAgICAgICAgICA6ICdBbGxvdyB1bnNhbmRib3hlZCBmYWxsYmFjaycsXG4gICAgICB2YWx1ZTogJ29wZW4nLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6XG4gICAgICAgIGN1cnJlbnRNb2RlID09PSAnY2xvc2VkJ1xuICAgICAgICAgID8gYFN0cmljdCBzYW5kYm94IG1vZGUgJHtjdXJyZW50SW5kaWNhdG9yfWBcbiAgICAgICAgICA6ICdTdHJpY3Qgc2FuZGJveCBtb2RlJyxcbiAgICAgIHZhbHVlOiAnY2xvc2VkJyxcbiAgICB9LFxuICBdXG5cbiAgYXN5bmMgZnVuY3Rpb24gaGFuZGxlU2VsZWN0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBtb2RlID0gdmFsdWUgYXMgT3ZlcnJpZGVNb2RlXG5cbiAgICBhd2FpdCBTYW5kYm94TWFuYWdlci5zZXRTYW5kYm94U2V0dGluZ3Moe1xuICAgICAgYWxsb3dVbnNhbmRib3hlZENvbW1hbmRzOiBtb2RlID09PSAnb3BlbicsXG4gICAgfSlcblxuICAgIGNvbnN0IG1lc3NhZ2UgPVxuICAgICAgbW9kZSA9PT0gJ29wZW4nXG4gICAgICAgID8gJ+KckyBVbnNhbmRib3hlZCBmYWxsYmFjayBhbGxvd2VkIC0gY29tbWFuZHMgY2FuIHJ1biBvdXRzaWRlIHNhbmRib3ggd2hlbiBuZWNlc3NhcnknXG4gICAgICAgIDogJ+KckyBTdHJpY3Qgc2FuZGJveCBtb2RlIC0gYWxsIGNvbW1hbmRzIG11c3QgcnVuIGluIHNhbmRib3ggb3IgYmUgZXhjbHVkZWQgdmlhIHRoZSBgZXhjbHVkZWRDb21tYW5kc2Agb3B0aW9uJ1xuXG4gICAgb25Db21wbGV0ZShtZXNzYWdlKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBwYWRkaW5nWT17MX0+XG4gICAgICA8Qm94IG1hcmdpbkJvdHRvbT17MX0+XG4gICAgICAgIDxUZXh0IGJvbGQ+Q29uZmlndXJlIE92ZXJyaWRlczo8L1RleHQ+XG4gICAgICA8L0JveD5cbiAgICAgIDxTZWxlY3RcbiAgICAgICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVNlbGVjdH1cbiAgICAgICAgb25DYW5jZWw9eygpID0+IG9uQ29tcGxldGUodW5kZWZpbmVkLCB7IGRpc3BsYXk6ICdza2lwJyB9KX1cbiAgICAgICAgb25VcEZyb21GaXJzdEl0ZW09e2ZvY3VzSGVhZGVyfVxuICAgICAgICBpc0Rpc2FibGVkPXtoZWFkZXJGb2N1c2VkfVxuICAgICAgLz5cbiAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIG1hcmdpblRvcD17MX0gZ2FwPXsxfT5cbiAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAgPFRleHQgYm9sZCBkaW1Db2xvcj5cbiAgICAgICAgICAgIEFsbG93IHVuc2FuZGJveGVkIGZhbGxiYWNrOlxuICAgICAgICAgIDwvVGV4dD57JyAnfVxuICAgICAgICAgIFdoZW4gYSBjb21tYW5kIGZhaWxzIGR1ZSB0byBzYW5kYm94IHJlc3RyaWN0aW9ucywgQ2xhdWRlIGNhbiByZXRyeVxuICAgICAgICAgIHdpdGggZGFuZ2Vyb3VzbHlEaXNhYmxlU2FuZGJveCB0byBydW4gb3V0c2lkZSB0aGUgc2FuZGJveCAoZmFsbGluZ1xuICAgICAgICAgIGJhY2sgdG8gZGVmYXVsdCBwZXJtaXNzaW9ucykuXG4gICAgICAgIDwvVGV4dD5cbiAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAgPFRleHQgYm9sZCBkaW1Db2xvcj5cbiAgICAgICAgICAgIFN0cmljdCBzYW5kYm94IG1vZGU6XG4gICAgICAgICAgPC9UZXh0PnsnICd9XG4gICAgICAgICAgQWxsIGJhc2ggY29tbWFuZHMgaW52b2tlZCBieSB0aGUgbW9kZWwgbXVzdCBydW4gaW4gdGhlIHNhbmRib3ggdW5sZXNzXG4gICAgICAgICAgdGhleSBhcmUgZXhwbGljaXRseSBsaXN0ZWQgaW4gZXhjbHVkZWRDb21tYW5kcy5cbiAgICAgICAgPC9UZXh0PlxuICAgICAgICA8VGV4dCBkaW1Db2xvcj5cbiAgICAgICAgICBMZWFybiBtb3JlOnsnICd9XG4gICAgICAgICAgPExpbmsgdXJsPVwiaHR0cHM6Ly9jb2RlLmNsYXVkZS5jb20vZG9jcy9lbi9zYW5kYm94aW5nI2NvbmZpZ3VyZS1zYW5kYm94aW5nXCI+XG4gICAgICAgICAgICBjb2RlLmNsYXVkZS5jb20vZG9jcy9lbi9zYW5kYm94aW5nI2NvbmZpZ3VyZS1zYW5kYm94aW5nXG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0JveD5cbiAgICA8L0JveD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsS0FBSyxNQUFNLE9BQU87QUFDekIsU0FBU0MsR0FBRyxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxRQUFRLFFBQVEsY0FBYztBQUMvRCxjQUFjQyxvQkFBb0IsUUFBUSx3QkFBd0I7QUFDbEUsU0FBU0MsY0FBYyxRQUFRLHdDQUF3QztBQUN2RSxTQUFTQyxNQUFNLFFBQVEsMkJBQTJCO0FBQ2xELFNBQVNDLGlCQUFp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