summaryrefslogtreecommitdiff
path: root/packages/cli/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src')
-rw-r--r--packages/cli/src/utils/sandbox-macos-minimal.sb7
-rw-r--r--packages/cli/src/utils/sandbox-macos-strict.sb2
-rw-r--r--packages/cli/src/utils/sandbox.ts4
3 files changed, 9 insertions, 4 deletions
diff --git a/packages/cli/src/utils/sandbox-macos-minimal.sb b/packages/cli/src/utils/sandbox-macos-minimal.sb
index c304b838..5a8b46dd 100644
--- a/packages/cli/src/utils/sandbox-macos-minimal.sb
+++ b/packages/cli/src/utils/sandbox-macos-minimal.sb
@@ -3,13 +3,14 @@
;; allow everything by default
(allow default)
-;; deny all writes EXCEPT under project directory, temp directory, stdout/stderr and /dev/null
+;; deny all writes EXCEPT under specific paths
(deny file-write*)
(allow file-write*
(subpath (param "TARGET_DIR"))
(subpath (param "TMP_DIR"))
+ (subpath (string-append (param "HOME_DIR") "/.gemini"))
+ (subpath (string-append (param "HOME_DIR") "/.npm"))
(literal "/dev/stdout")
(literal "/dev/stderr")
(literal "/dev/null")
-)
-
+) \ No newline at end of file
diff --git a/packages/cli/src/utils/sandbox-macos-strict.sb b/packages/cli/src/utils/sandbox-macos-strict.sb
index 4c7c2df0..c477077f 100644
--- a/packages/cli/src/utils/sandbox-macos-strict.sb
+++ b/packages/cli/src/utils/sandbox-macos-strict.sb
@@ -66,6 +66,8 @@
(allow file-write*
(subpath (param "TARGET_DIR"))
(subpath (param "TMP_DIR"))
+ (subpath (string-append (param "HOME_DIR") "/.gemini"))
+ (subpath (string-append (param "HOME_DIR") "/.npm"))
(literal "/dev/stdout")
(literal "/dev/stderr")
(literal "/dev/null")
diff --git a/packages/cli/src/utils/sandbox.ts b/packages/cli/src/utils/sandbox.ts
index ef26792d..0f7e1e10 100644
--- a/packages/cli/src/utils/sandbox.ts
+++ b/packages/cli/src/utils/sandbox.ts
@@ -145,9 +145,11 @@ export async function start_sandbox(sandbox: string) {
process.env.SEATBELT_PROFILE ??= 'minimal';
const args = [
'-D',
- `TARGET_DIR=${process.cwd()}`,
+ `TARGET_DIR=${fs.realpathSync(process.cwd())}`,
'-D',
`TMP_DIR=${fs.realpathSync(os.tmpdir())}`,
+ '-D',
+ `HOME_DIR=${fs.realpathSync(os.homedir())}`,
'-f',
new URL(
`sandbox-macos-${process.env.SEATBELT_PROFILE}.sb`,