mirror of
https://github.com/tiennm99/ccs.git
synced 2026-07-16 10:16:49 +00:00
## [7.41.0](https://github.com/kaitranntt/ccs/compare/v7.40.0...v7.41.0) (2026-02-11) ### Features * **config:** add CCS_DIR env var and --config-dir flag for config directory override ([7a0e6a4](https://github.com/kaitranntt/ccs/commit/7a0e6a4112b50dad14bf48004b07a77d1a5fd4d8)), closes [#507](https://github.com/kaitranntt/ccs/issues/507) * **env:** add ccs env command for third-party tool integration ([2e85064](https://github.com/kaitranntt/ccs/commit/2e85064b8a6a3eed694abb56bef70bf889f648d3)), closes [#503](https://github.com/kaitranntt/ccs/issues/503) * update cliproxy, config loader, glmt transformer, and provider routes ([8c6afe2](https://github.com/kaitranntt/ccs/commit/8c6afe2e73049ecfbb12cb29a894e83eb2576354)) ### Bug Fixes * **cliproxy:** prevent OAuth process hang on Qwen device code flow ([086bf95](https://github.com/kaitranntt/ccs/commit/086bf958e9c6c9d6d745e78a29a95a9a58490bf1)), closes [#314](https://github.com/kaitranntt/ccs/issues/314) * **cliproxy:** strip Gemini-unsupported schema fields including "examples" ([505d6d0](https://github.com/kaitranntt/ccs/commit/505d6d0f111b11e4e231742d65d2a3bbfb73864a)), closes [#155](https://github.com/kaitranntt/ccs/issues/155) * **config:** dynamic health message, cache getters, static imports, cloud hint ([706cca8](https://github.com/kaitranntt/ccs/commit/706cca8b3e57c1f9e6c559dc4c1a18ed6854a96d)) * **config:** lazy-evaluate paths, fix TOCTOU, segment-boundary cloud detection ([d5abc7d](https://github.com/kaitranntt/ccs/commit/d5abc7d69170132cc5c604c453e45f54fa2973b6)) * **config:** migrate all hardcoded paths to getCcsDir() and improve validation ([60d6bbd](https://github.com/kaitranntt/ccs/commit/60d6bbd0271a4bad4df1eaa705c11d34f7abd464)) * **config:** resolve remaining hardcoded paths and improve readability ([c8800b4](https://github.com/kaitranntt/ccs/commit/c8800b418a8ee2143366a2e199c42384ff5693f4)) * **delegation:** use exitCode instead of killed for process termination checks ([4b1fcac](https://github.com/kaitranntt/ccs/commit/4b1fcacf307e0bb8935495202f0322210eb395ea)) * **env:** add key sanitization and shell completions ([76457a5](https://github.com/kaitranntt/ccs/commit/76457a567d7d1fe52a983a3c6e37b49d503071c9)) * **env:** add missing CLIProxy profiles to bash completion and shell validation ([6d9351d](https://github.com/kaitranntt/ccs/commit/6d9351dcbc1baa4135d75361301e36cafc3556a3)) * **env:** address all PR review feedback ([44b3152](https://github.com/kaitranntt/ccs/commit/44b3152d347a7f0c96af4e2e4cd8027ea30634fc)) * **env:** address P1-P3 review items from code review ([3f5ecd4](https://github.com/kaitranntt/ccs/commit/3f5ecd4d6963a25ce909cd7e17fcca610d9dc978)) * **env:** fix fish escaping, profile parsing, and add OPENAI_MODEL mapping ([d5c03d1](https://github.com/kaitranntt/ccs/commit/d5c03d1f2d2ad600b4106a9a2fb38a028d099338)) * **env:** improve empty profile UX and consolidate shell validation constants ([b96eacf](https://github.com/kaitranntt/ccs/commit/b96eacfc06a97e89796620c1ea675aaac290e427)) * **env:** sync CLIProxy profiles across all shell completions and improve error messages ([a98f4a5](https://github.com/kaitranntt/ccs/commit/a98f4a54278f9f8d9e4b30ccccc900514c08b32f)) * **env:** use single quotes to prevent shell injection via eval ([a5dc15d](https://github.com/kaitranntt/ccs/commit/a5dc15d174dec2e39b251d63bc4a4093003fc0cb)) * separate type-only exports and migrate test imports from dist/ to src/ ([0483444](https://github.com/kaitranntt/ccs/commit/048344486456bd561c03a1441060bfc4ca650655)) ### Documentation * update local docs for ccs env command ([38bd562](https://github.com/kaitranntt/ccs/commit/38bd562687865c2cb523734509143390f83a5dcc)) ### Code Refactoring * **config:** DRY precedence logic, dynamic recovery messages, CCS_HOME cloud warning ([9699e01](https://github.com/kaitranntt/ccs/commit/9699e01725c3b33ca1bf24a4eeea7ec7f7e9c220)) * **utils:** extract killWithEscalation to shared process-utils ([90b4627](https://github.com/kaitranntt/ccs/commit/90b4627740ae90374b06e0013c09bd583e1ddb39)) ### Tests * **cliproxy:** add edge case coverage for Gemini schema sanitizer ([917f0bb](https://github.com/kaitranntt/ccs/commit/917f0bbef7b7132dca0c37e474a82a9bb07f0df1)) * **utils:** add unit tests for killWithEscalation ([dc9b276](https://github.com/kaitranntt/ccs/commit/dc9b27623bd3cd92dd1b556329d20fd62043b37b))
136 lines
4.1 KiB
JSON
136 lines
4.1 KiB
JSON
{
|
|
"name": "@kaitranntt/ccs",
|
|
"version": "7.41.0",
|
|
"description": "Claude Code Switch - Instant profile switching between Claude Sonnet 4.5 and GLM 4.6",
|
|
"keywords": [
|
|
"cli",
|
|
"claude",
|
|
"glm",
|
|
"ai",
|
|
"profile",
|
|
"switch"
|
|
],
|
|
"homepage": "https://github.com/kaitranntt/ccs",
|
|
"bugs": {
|
|
"url": "https://github.com/kaitranntt/ccs/issues"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/kaitranntt/ccs.git"
|
|
},
|
|
"license": "MIT",
|
|
"author": {
|
|
"name": "Tam Nhu Tran (Kai)",
|
|
"email": "kaitranntt@users.noreply.github.com"
|
|
},
|
|
"main": "dist/ccs.js",
|
|
"types": "dist/ccs.d.ts",
|
|
"bin": {
|
|
"ccs": "dist/ccs.js"
|
|
},
|
|
"files": [
|
|
"dist/",
|
|
"lib/",
|
|
"scripts/",
|
|
"config/",
|
|
".claude/",
|
|
"VERSION",
|
|
"README.md",
|
|
"LICENSE"
|
|
],
|
|
"engines": {
|
|
"node": ">=18.0.0",
|
|
"bun": ">=1.0.0"
|
|
},
|
|
"packageManager": "bun@1.2.21",
|
|
"os": [
|
|
"darwin",
|
|
"linux",
|
|
"win32"
|
|
],
|
|
"preferGlobal": true,
|
|
"scripts": {
|
|
"preinstall": "node scripts/preinstall.js",
|
|
"postuninstall": "node scripts/postuninstall.js",
|
|
"build": "tsc && node scripts/add-shebang.js",
|
|
"build:watch": "tsc --watch",
|
|
"build:server": "tsc && node scripts/add-shebang.js",
|
|
"build:all": "bun run ui:build && bun run build:server",
|
|
"prebuild": "node scripts/clean-dist.js",
|
|
"prebuild:all": "rm -rf dist tsconfig.tsbuildinfo",
|
|
"postbuild:all": "node scripts/verify-bundle.js",
|
|
"typecheck": "tsc --noEmit",
|
|
"lint": "eslint src/",
|
|
"lint:fix": "eslint src/ --fix",
|
|
"format": "prettier --write src/",
|
|
"format:check": "prettier --check src/",
|
|
"validate": "bun run typecheck && bun run lint:fix && bun run format:check && bun run test:all",
|
|
"verify:bundle": "node scripts/verify-bundle.js",
|
|
"test": "bun run build && bun run test:all",
|
|
"test:ci": "bun run test:all",
|
|
"test:all": "bun test tests/unit tests/integration tests/npm",
|
|
"test:unit": "bun test tests/unit/",
|
|
"test:npm": "bun test tests/npm/",
|
|
"test:native": "bash tests/native/unix/edge-cases.sh",
|
|
"test:e2e": "bun test tests/e2e/ --bail --timeout 60000",
|
|
"dev": "bun run build:server && bun dist/ccs.js config --dev",
|
|
"dev:symlink": "bash scripts/dev-symlink.sh",
|
|
"dev:unlink": "bash scripts/dev-symlink.sh --restore",
|
|
"ui:build": "cd ui && bun run build",
|
|
"ui:preview": "cd ui && bun run preview",
|
|
"ui:validate": "cd ui && bun run validate",
|
|
"prepare": "husky",
|
|
"postinstall": "node scripts/postinstall.js"
|
|
},
|
|
"dependencies": {
|
|
"bcrypt": "^6.0.0",
|
|
"boxen": "^5.1.2",
|
|
"chalk": "^4.1.2",
|
|
"chokidar": "^3.6.0",
|
|
"cli-table3": "^0.6.5",
|
|
"express": "^4.18.2",
|
|
"express-rate-limit": "^8.2.1",
|
|
"express-session": "^1.18.2",
|
|
"get-port": "^5.1.1",
|
|
"gradient-string": "^2.0.2",
|
|
"http-proxy-agent": "^7.0.2",
|
|
"https-proxy-agent": "^7.0.6",
|
|
"js-yaml": "^4.1.1",
|
|
"listr2": "^3.14.0",
|
|
"open": "^8.4.2",
|
|
"ora": "^5.4.1",
|
|
"ws": "^8.16.0"
|
|
},
|
|
"devDependencies": {
|
|
"@commitlint/cli": "^20.1.0",
|
|
"@commitlint/config-conventional": "^20.0.0",
|
|
"@semantic-release/changelog": "^6.0.3",
|
|
"@semantic-release/commit-analyzer": "^13.0.1",
|
|
"@semantic-release/git": "^10.0.1",
|
|
"@semantic-release/github": "^12.0.2",
|
|
"@semantic-release/npm": "^13.1.3",
|
|
"@semantic-release/release-notes-generator": "^14.1.0",
|
|
"@tailwindcss/vite": "^4.1.17",
|
|
"@types/bcrypt": "^6.0.0",
|
|
"@types/chokidar": "^2.1.7",
|
|
"@types/express": "^4.17.21",
|
|
"@types/express-rate-limit": "6.0.0",
|
|
"@types/express-session": "^1.18.2",
|
|
"@types/js-yaml": "^4.0.9",
|
|
"@types/node": "^20.19.25",
|
|
"@types/ws": "^8.5.10",
|
|
"@typescript-eslint/eslint-plugin": "^8.48.0",
|
|
"@typescript-eslint/parser": "^8.48.0",
|
|
"@vitejs/plugin-react": "^5.1.1",
|
|
"conventional-changelog-conventionalcommits": "^9.1.0",
|
|
"eslint": "^9.39.1",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"husky": "^9.1.7",
|
|
"mocha": "^11.7.5",
|
|
"prettier": "^3.6.2",
|
|
"semantic-release": "^25.0.2",
|
|
"typescript": "5.3",
|
|
"vite": "^7.2.4"
|
|
}
|
|
}
|