Sfoglia il codice sorgente

feat(claude): add integration for claude sandboxing in projects

Joe 1 settimana fa
parent
commit
6cd84e0350
3 ha cambiato i file con 29 aggiunte e 11 eliminazioni
  1. 1 11
      .config/nvim/init.lua
  2. 1 0
      .scripts/project_launch.zsh
  3. 27 0
      .scripts/start-claude.zsh

+ 1 - 11
.config/nvim/init.lua

@@ -424,7 +424,7 @@ local function config_like_a_butterfly()
     MakeTerm("ts", "Beta", "zsh")
     MakeTerm("tr", "Gamma", "zsh")
     MakeTerm("ta", "Delta", "zsh")
-    MakeTerm("tn", "Epsilon", "claude")
+    MakeTerm("tn", "Epsilon", "start-claude.zsh")
     MakeTerm("te", "Zeta", "/bin/zsh $DOTFILES_DIR/.scripts/omniscratch.zsh")
     MakeTerm("ti", "Eta", "lazydocker", true)
     MakeTerm("to", "Theta", "lazygit", true)
@@ -831,16 +831,6 @@ local function config_aerial()
     })
     vim.keymap.set("n", "Sa", ":AerialOpen<CR>")
     vim.keymap.set("n", "SA", ":AerialToggle!<CR>")
-    vim.api.nvim_create_autocmd({ "FileType", "BufEnter" }, {
-        group = vim.api.nvim_create_augroup("AerialConfig", { clear = true }),
-        callback = function(args)
-            for _, win in ipairs(vim.fn.getwininfo()) do
-                if (win.bufnr == args.buf) then
-                    vim.wo[win.winid].statuscolumn = ""
-                end
-            end
-        end,
-    })
 end
 
 local function config_oil()

+ 1 - 0
.scripts/project_launch.zsh

@@ -19,6 +19,7 @@ if [ -z "$1" ]; then
         -E "venv" \
         -E ".venv" \
         -x echo {//} \
+        | sort -u -r \
         | fzf);
 else 
     PROJECT="$1"

+ 27 - 0
.scripts/start-claude.zsh

@@ -0,0 +1,27 @@
+#!/bin/zsh
+set -euo pipefail
+
+has_sandbox() {
+    local dir="$1/agent"
+    [[ -f "${dir}/Dockerfile" && -x "${dir}/start-claude-sandbox.sh" ]]
+}
+
+if git rev-parse --is-inside-work-tree &>/dev/null; then
+    repo="$(git rev-parse --show-toplevel)"
+
+    if has_sandbox "$repo"; then
+        exec "${repo}/agent/start-claude-sandbox.sh" "$@"
+        exit 0
+    fi
+
+    git_common="$(cd "$(git rev-parse --git-common-dir)" && pwd)"
+    main_repo="$(dirname "$git_common")"
+
+    if [[ "$main_repo" != "$repo" ]] && has_sandbox "$main_repo"; then
+        exec "${main_repo}/agent/start-claude-sandbox.sh" "$@"
+        exit 0
+    fi
+fi
+
+exec claude "$@"
+exit 0