mirror of
https://github.com/tiennm99/ccs.git
synced 2026-07-16 00:22:34 +00:00
* fix(cliproxy): use double-dash flags for cliproxyapi auth (#24) CLIProxyAPI updated from single-dash to double-dash CLI flags. Changed -login to --login, -codex-login to --codex-login, -antigravity-login to --antigravity-login, -config to --config, and -no-browser to --no-browser. * chore(release): 5.1.1-beta.1 [skip ci] ## [5.1.1-beta.1](https://github.com/kaitranntt/ccs/compare/v5.1.0...v5.1.1-beta.1) (2025-12-01) ### Bug Fixes * **cliproxy:** use double-dash flags for cliproxyapi auth ([#24](https://github.com/kaitranntt/ccs/issues/24)) ([4c81f28](https://github.com/kaitranntt/ccs/commit/4c81f28f0b67ef92cf74d0f5c13a5943ff0a7f00)) * chore(release): 5.1.1-beta.2 [skip ci] ## [5.1.1-beta.2](https://github.com/kaitranntt/ccs/compare/v5.1.1-beta.1...v5.1.1-beta.2) (2025-12-01) ### Bug Fixes * **cliproxy:** use double-dash flags for cliproxyapi auth ([9489884](https://github.com/kaitranntt/ccs/commit/94898848ea4533dcfc142e1b6c9bf939ba655537)) * fix(glmt): handle 401 errors and headers-already-sent exception (#30) - add res.headersSent check before writing error headers - write error as SSE event when headers already sent (streaming mode) - add parseUpstreamError() for user-friendly error messages - return proper HTTP status codes (401, 403, 429, 502, 504) - clear auth error: check ANTHROPIC_AUTH_TOKEN in config Fixes #26 * chore(release): 5.1.1-beta.3 [skip ci] ## [5.1.1-beta.3](https://github.com/kaitranntt/ccs/compare/v5.1.1-beta.2...v5.1.1-beta.3) (2025-12-01) ### Bug Fixes * **glmt:** handle 401 errors and headers-already-sent exception ([#30](https://github.com/kaitranntt/ccs/issues/30)) ([c953382](https://github.com/kaitranntt/ccs/commit/c95338232a37981b95b785b47185ce18d6d94b7a)), closes [#26](https://github.com/kaitranntt/ccs/issues/26) * chore(release): enable success comments and released labels in semantic-release * feat(cliproxy): add qwen code oauth provider support (#31) Add 'qwen' as new CLIProxy OAuth provider with --qwen-login flag. Support qwen3-coder model with base config at config/base-qwen.settings.json. Register qwen OAuth endpoints and token prefix handling. Update help documentation across all CLI entry points. Implements issue #29 * chore(release): 5.2.0-beta.1 [skip ci] # [5.2.0-beta.1](https://github.com/kaitranntt/ccs/compare/v5.1.1-beta.3...v5.2.0-beta.1) (2025-12-01) ### Features * **cliproxy:** add qwen code oauth provider support ([#31](https://github.com/kaitranntt/ccs/issues/31)) ([a3f1e52](https://github.com/kaitranntt/ccs/commit/a3f1e52ac68600ba0806d67aacceb6477ffa3543)), closes [#29](https://github.com/kaitranntt/ccs/issues/29) * feat(cliproxy): auto-update cliproxyapi to latest release on startup - add github api integration to fetch latest release version - check for updates on every startup (cached for 1 hour) - auto-download newer versions when available - rename CLIPROXY_VERSION to CLIPROXY_FALLBACK_VERSION (safety net) - add version tracking (.version file) and caching (.version-cache.json) - non-blocking: startup continues if update check fails * chore(release): 5.2.0-beta.2 [skip ci] # [5.2.0-beta.2](https://github.com/kaitranntt/ccs/compare/v5.2.0-beta.1...v5.2.0-beta.2) (2025-12-01) ### Features * **cliproxy:** auto-update cliproxyapi to latest release on startup ([8873ccd](https://github.com/kaitranntt/ccs/commit/8873ccd981679e8acff8965accdc22215c6e4aa2)) * chore(release): 5.3.0-beta.1 [skip ci] # [5.3.0-beta.1](https://github.com/kaitranntt/ccs/compare/v5.2.0...v5.3.0-beta.1) (2025-12-01) ### Bug Fixes * **cliproxy:** use double-dash flags for cliproxyapi auth ([#24](https://github.com/kaitranntt/ccs/issues/24)) ([4c81f28](https://github.com/kaitranntt/ccs/commit/4c81f28f0b67ef92cf74d0f5c13a5943ff0a7f00)) * **glmt:** handle 401 errors and headers-already-sent exception ([#30](https://github.com/kaitranntt/ccs/issues/30)) ([c953382](https://github.com/kaitranntt/ccs/commit/c95338232a37981b95b785b47185ce18d6d94b7a)), closes [#26](https://github.com/kaitranntt/ccs/issues/26) ### Features * **cliproxy:** add qwen code oauth provider support ([#31](https://github.com/kaitranntt/ccs/issues/31)) ([a3f1e52](https://github.com/kaitranntt/ccs/commit/a3f1e52ac68600ba0806d67aacceb6477ffa3543)), closes [#29](https://github.com/kaitranntt/ccs/issues/29) * **cliproxy:** auto-update cliproxyapi to latest release on startup ([8873ccd](https://github.com/kaitranntt/ccs/commit/8873ccd981679e8acff8965accdc22215c6e4aa2)) * fix(cliproxy): improve qwen oauth error handling - Updated OAuth port documentation with correct flow types per provider - Removed Qwen from port cleanup logic (Device Code Flow has no callback) - Fixed Qwen error messages to show Device Code Flow troubleshooting tips Fixes #29 * chore(release): 5.3.0-beta.2 [skip ci] # [5.3.0-beta.2](https://github.com/kaitranntt/ccs/compare/v5.3.0-beta.1...v5.3.0-beta.2) (2025-12-01) ### Bug Fixes * **cliproxy:** improve qwen oauth error handling ([7e0b0fe](https://github.com/kaitranntt/ccs/commit/7e0b0feca8ce2ed5d505c5bf6c84e54c6df8839e)), closes [#29](https://github.com/kaitranntt/ccs/issues/29) * feat(profile): add profile command with configuration display * feat(shell-completion): add --force flag and fix zsh profile coloring * fix(prompt): improve password input handling with raw mode and buffer support * chore(release): 5.3.0-beta.3 [skip ci] # [5.3.0-beta.3](https://github.com/kaitranntt/ccs/compare/v5.3.0-beta.2...v5.3.0-beta.3) (2025-12-01) ### Bug Fixes * **prompt:** improve password input handling with raw mode and buffer support ([bc56d2e](https://github.com/kaitranntt/ccs/commit/bc56d2e135532b2ae443144dd42217b26bcba951)) ### Features * **profile:** add profile command with configuration display ([53d7a15](https://github.com/kaitranntt/ccs/commit/53d7a15c047e760723e051dc0f7be3c0dd42d087)) * **shell-completion:** add --force flag and fix zsh profile coloring ([7faed1d](https://github.com/kaitranntt/ccs/commit/7faed1d84ba29ba02bf687bae5b3458617512e67)) * chore(release): 5.3.0-beta.4 [skip ci] # [5.3.0-beta.4](https://github.com/kaitranntt/ccs/compare/v5.3.0-beta.3...v5.3.0-beta.4) (2025-12-01) ### Bug Fixes * **cliproxy:** improve qwen oauth error handling ([#33](https://github.com/kaitranntt/ccs/issues/33)) ([1c3374f](https://github.com/kaitranntt/ccs/commit/1c3374f6a7e4440e299d49b58808c6454b4547c2)), closes [#29](https://github.com/kaitranntt/ccs/issues/29) --------- Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net>
118 lines
3.4 KiB
Bash
118 lines
3.4 KiB
Bash
# Bash completion for CCS (Claude Code Switch)
|
|
# Compatible with bash 3.2+
|
|
#
|
|
# Installation:
|
|
# Add to ~/.bashrc or ~/.bash_profile:
|
|
# source /path/to/ccs/scripts/completion/ccs.bash
|
|
#
|
|
# Or install system-wide (requires sudo):
|
|
# sudo cp scripts/completion/ccs.bash /etc/bash_completion.d/ccs
|
|
|
|
_ccs_completion() {
|
|
local cur prev words cword
|
|
COMPREPLY=()
|
|
|
|
# Get current word and previous word
|
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
|
|
|
# Top-level completion (first argument)
|
|
if [[ ${COMP_CWORD} -eq 1 ]]; then
|
|
local commands="auth profile doctor sync update"
|
|
local flags="--help --version --shell-completion -h -v -sc"
|
|
local profiles=""
|
|
|
|
# Add profiles from config.json (settings-based profiles)
|
|
if [[ -f ~/.ccs/config.json ]]; then
|
|
profiles="$profiles $(jq -r '.profiles | keys[]' ~/.ccs/config.json 2>/dev/null || true)"
|
|
fi
|
|
|
|
# Add profiles from profiles.json (account-based profiles)
|
|
if [[ -f ~/.ccs/profiles.json ]]; then
|
|
profiles="$profiles $(jq -r '.profiles | keys[]' ~/.ccs/profiles.json 2>/dev/null || true)"
|
|
fi
|
|
|
|
# Combine all options
|
|
local opts="$commands $flags $profiles"
|
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
|
return 0
|
|
fi
|
|
|
|
# auth subcommands
|
|
if [[ ${prev} == "auth" ]]; then
|
|
local auth_commands="create list show remove default --help -h"
|
|
COMPREPLY=( $(compgen -W "${auth_commands}" -- ${cur}) )
|
|
return 0
|
|
fi
|
|
|
|
# profile subcommands
|
|
if [[ ${prev} == "profile" ]]; then
|
|
local profile_commands="create list remove --help -h"
|
|
COMPREPLY=( $(compgen -W "${profile_commands}" -- ${cur}) )
|
|
return 0
|
|
fi
|
|
|
|
# Completion for profile subcommands
|
|
if [[ ${COMP_WORDS[1]} == "profile" ]]; then
|
|
case "${prev}" in
|
|
remove|delete|rm)
|
|
# Complete with settings profile names
|
|
if [[ -f ~/.ccs/config.json ]]; then
|
|
local profiles=$(jq -r '.profiles | keys[]' ~/.ccs/config.json 2>/dev/null || true)
|
|
COMPREPLY=( $(compgen -W "${profiles}" -- ${cur}) )
|
|
fi
|
|
return 0
|
|
;;
|
|
create)
|
|
# Complete with create flags
|
|
COMPREPLY=( $(compgen -W "--base-url --api-key --model --force --yes -y" -- ${cur}) )
|
|
return 0
|
|
;;
|
|
list)
|
|
# No flags for list
|
|
return 0
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
# Completion for auth subcommands that need profile names
|
|
if [[ ${COMP_WORDS[1]} == "auth" ]]; then
|
|
case "${prev}" in
|
|
show|remove|default)
|
|
# Complete with account profile names only
|
|
if [[ -f ~/.ccs/profiles.json ]]; then
|
|
local profiles=$(jq -r '.profiles | keys[]' ~/.ccs/profiles.json 2>/dev/null || true)
|
|
COMPREPLY=( $(compgen -W "${profiles}" -- ${cur}) )
|
|
fi
|
|
return 0
|
|
;;
|
|
create)
|
|
# No completion for create (user enters new name)
|
|
return 0
|
|
;;
|
|
list)
|
|
# Complete with list flags
|
|
COMPREPLY=( $(compgen -W "--verbose --json" -- ${cur}) )
|
|
return 0
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
# Flags for doctor command
|
|
if [[ ${COMP_WORDS[1]} == "doctor" ]]; then
|
|
COMPREPLY=( $(compgen -W "--help -h" -- ${cur}) )
|
|
return 0
|
|
fi
|
|
|
|
# Flags for shell-completion command
|
|
if [[ ${prev} == "--shell-completion" ]]; then
|
|
COMPREPLY=( $(compgen -W "--bash --zsh --fish --powershell" -- ${cur}) )
|
|
return 0
|
|
fi
|
|
|
|
return 0
|
|
}
|
|
|
|
# Register completion function
|
|
complete -F _ccs_completion ccs
|