Commit 9335cbd30f89

Vincent Demeester <vincent@sbr.pm>
2026-02-09 10:58:11
feat(shpool): added pir support to ssh wrapper
Extended shpool-ssh-wrapper to support pir (pi with Vertex AI provider) in addition to pi. This enables using pi with different providers via SSH session patterns. Supported patterns: - ssh host/pir/home - Pi with Vertex AI in ~/src/home - ssh host/pir:sonnet/home - Pi with Vertex AI and model selection - ssh host/review-pir/pr-123 - Review sessions with pir
1 parent a2ee9ce
Changed files (1)
tools
shpool-ssh-wrapper
tools/shpool-ssh-wrapper/default.nix
@@ -59,7 +59,8 @@ pkgs.writeScriptBin "shpool-ssh-wrapper" ''
   #   opencode/*      - OpenCode CLI
   #   oco/*           - OpenCode with Vertex AI
   #   pi/*            - Pi coding agent
-  #   review-<tool>/* - Review sessions with specified tool (cr, copilot, opencode, oco, pi)
+  #   pir/*           - Pi coding agent (read-only/Vertex AI)
+  #   review-<tool>/* - Review sessions with specified tool (cr, copilot, opencode, oco, pi, pir)
   #
   # Model selection (optional):
   #   claude:opus/home      - Use opus model
@@ -70,6 +71,8 @@ pkgs.writeScriptBin "shpool-ssh-wrapper" ''
   #   ssh host/claude:opus/home               # Claude with opus in ~/src/home
   #   ssh host/pi/home                        # Pi coding agent in ~/src/home
   #   ssh host/pi:sonnet/home                 # Pi with sonnet in ~/src/home
+  #   ssh host/pir/home                       # Pi (Vertex AI) in ~/src/home
+  #   ssh host/pir:sonnet/home                # Pi (Vertex AI) with sonnet in ~/src/home
   #   ssh host/review-copilot/pr-123="prompt" # Review with copilot
 
   set -euo pipefail
@@ -182,6 +185,14 @@ pkgs.writeScriptBin "shpool-ssh-wrapper" ''
           # Pi coding agent session
           run_ai_session "$SESSION_NAME" "pi" "pi"
           ;;
+      pir:*/*)
+          # Pi coding agent (Vertex AI) with model selection
+          run_ai_session "$SESSION_NAME" "pir" "pir"
+          ;;
+      pir/*)
+          # Pi coding agent (Vertex AI) session
+          run_ai_session "$SESSION_NAME" "pir" "pir"
+          ;;
       review-cr/*|review-claude/*)
           # Review with Claude Code (cr)
           if [ -z "$WORK_DIR" ]; then
@@ -247,6 +258,19 @@ pkgs.writeScriptBin "shpool-ssh-wrapper" ''
           fi
           run_with_command "$SESSION_NAME" "pi" "$WORK_DIR"
           ;;
+      review-pir/*)
+          # Review with Pi coding agent (Vertex AI)
+          if [ -z "$WORK_DIR" ]; then
+              if ${pkgs.shpool}/bin/shpool list 2>/dev/null | grep -q "^$SESSION_NAME "; then
+                  exec ${pkgs.shpool}/bin/shpool attach -f "$SESSION_NAME"
+              else
+                  echo "Error: new review sessions require a prompt (use session=prompt syntax)" >&2
+                  echo "Example: ssh host/review-pir/pr-123=\"Review https://github.com/...\"" >&2
+                  exit 1
+              fi
+          fi
+          run_with_command "$SESSION_NAME" "pir" "$WORK_DIR"
+          ;;
       *)
           # If work directory specified, cd into it before attaching
           if [ -n "$WORK_DIR" ]; then