diff --git a/zsh/.local/share/zsh/functions/use-bedrock b/zsh/.local/share/zsh/functions/use-bedrock new file mode 100644 index 0000000..cb36ea7 --- /dev/null +++ b/zsh/.local/share/zsh/functions/use-bedrock @@ -0,0 +1,33 @@ +use-bedrock() { + local force=0 + + while getopts "f" opt; do + case $opt in + f) force=1 ;; + *) echo "Usage: use-bedrock [-f]" >&2; return 1 ;; + esac + done + OPTIND=1 + + if [[ "$force" -eq 0 ]] && [[ -n "$AWS_ACCESS_KEY_ID" ]] && [[ -n "$AWS_SECRET_ACCESS_KEY" ]]; then + echo "AWS credentials already set. Skipping Bedrock setup. Use -f to force re-authentication." >&2 + return + fi + + aws sso login --use-device-code || return 1 + + local creds + creds=$(aws configure export-credentials --format env) || return 1 + eval "$creds" + + export CLAUDE_CODE_USE_BEDROCK=1 + export CLAUDE_BEDROCK_AWS_REGION="${AWS_REGION:-us-east-2}" + export ANTHROPIC_DEFAULT_OPUS_MODEL="${BEDROCK_OPUS_MODEL:-us.anthropic.claude-opus-4-7-v1}" + export ANTHROPIC_DEFAULT_SONNET_MODEL="${BEDROCK_SONNET_MODEL:-us.anthropic.claude-sonnet-4-6}" + export ANTHROPIC_DEFAULT_HAIKU_MODEL="${BEDROCK_HAIKU_MODEL:-us.anthropic.claude-haiku-4-5-20251001-v1:0}" + + unset CLAUDE_CODE_USE_VERTEX + + printf 'Bedrock environment set.\n\tOpus: %s\n\tSonnet: %s\n\tHaiku: %s\n' \ + "$ANTHROPIC_DEFAULT_OPUS_MODEL" "$ANTHROPIC_DEFAULT_SONNET_MODEL" "$ANTHROPIC_DEFAULT_HAIKU_MODEL" >&2 +} diff --git a/zsh/.local/share/zsh/functions/use-vertex b/zsh/.local/share/zsh/functions/use-vertex new file mode 100644 index 0000000..b195860 --- /dev/null +++ b/zsh/.local/share/zsh/functions/use-vertex @@ -0,0 +1,25 @@ +use-vertex() { + local project="${ANTHROPIC_VERTEX_PROJECT_ID:-sandbox-jason-7023}" + local region="${CLOUD_ML_REGION:-us-east5}" + + # Probe/refresh ADC + if ! gcloud auth application-default print-access-token >/dev/null 2>&1; then + gcloud auth login --update-adc || return 1 + fi + + export CLAUDE_CODE_USE_VERTEX=1 + export ANTHROPIC_VERTEX_PROJECT_ID="$project" + export CLOUD_ML_REGION="$region" + export ANTHROPIC_DEFAULT_OPUS_MODEL="${VERTEX_OPUS_MODEL:-claude-opus-4-7}" + export ANTHROPIC_DEFAULT_SONNET_MODEL="${VERTEX_SONNET_MODEL:-claude-sonnet-4-6}" + export ANTHROPIC_DEFAULT_HAIKU_MODEL="${VERTEX_HAIKU_MODEL:-claude-haiku-4-5-20251001}" + + # pi google-vertex provider auto-activates with all three present + export GOOGLE_CLOUD_PROJECT="$project" + export GOOGLE_CLOUD_LOCATION="$region" + + unset CLAUDE_CODE_USE_BEDROCK CLAUDE_BEDROCK_AWS_REGION + + printf 'Vertex AI environment set.\n\tOpus: %s\n\tSonnet: %s\n\tHaiku: %s\n' \ + "$ANTHROPIC_DEFAULT_OPUS_MODEL" "$ANTHROPIC_DEFAULT_SONNET_MODEL" "$ANTHROPIC_DEFAULT_HAIKU_MODEL" >&2 +}