Files
ccs/package.json
T
kaitranntt 5f71eba6f6 feat(cliproxy): add CLIProxyAPI integration for OAuth profiles
Complete integration of CLIProxyAPI for zero-config OAuth profiles.

New profiles:
- ccs gemini: Gemini via OAuth
- ccs chatgpt: ChatGPT via OAuth
- ccs qwen: Qwen via OAuth

Implementation:
- Phase 1: Binary infrastructure (download-on-demand)
- Phase 2: Proxy executor (spawn/kill pattern)
- Phase 3: OAuth integration (browser-based auth)
- Phase 4: Profile registration (routing + help text)
- Phase 5: Diagnostics (doctor command + errors)

Files added:
- src/cliproxy/*.ts (binary-manager, platform-detector, executor, auth-handler, config-generator, types, index)

Files modified:
- src/ccs.ts (CLIProxy routing)
- src/auth/profile-detector.ts (cliproxy profile type)
- src/commands/help-command.ts (new profiles in help)
- src/management/doctor.ts (CLIProxy health checks)
- src/utils/error-manager.ts (OAuth/port/download errors)
- CHANGELOG.md (v5.0.0 release notes)

Tests: 42/42 passed
2025-11-28 16:28:15 -05:00

88 lines
2.3 KiB
JSON

{
"name": "@kaitranntt/ccs",
"version": "5.0.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": ">=14.0.0",
"bun": ">=1.0.0"
},
"packageManager": "bun@1.2.21",
"os": [
"darwin",
"linux",
"win32"
],
"preferGlobal": true,
"scripts": {
"build": "tsc && node scripts/add-shebang.js",
"build:watch": "tsc --watch",
"prebuild": "rm -rf dist tsconfig.tsbuildinfo",
"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 && bun run format:check && bun run test",
"test": "bun run build && bun run test:all",
"test:all": "bun run test:unit && bun run test:npm",
"test:unit": "mocha tests/shared/unit/**/*.test.js --timeout 5000",
"test:npm": "mocha tests/npm/**/*.test.js --timeout 10000",
"test:native": "bash tests/native/unix/edge-cases.sh",
"test:edge-cases": "bash tests/edge-cases.sh",
"prepublishOnly": "npm run validate && node scripts/sync-version.js",
"prepack": "npm run validate && node scripts/sync-version.js",
"prepare": "node scripts/check-executables.js",
"postinstall": "node scripts/postinstall.js"
},
"dependencies": {
"cli-table3": "^0.6.5",
"ora": "^9.0.0"
},
"devDependencies": {
"@types/node": "^20.19.25",
"@typescript-eslint/eslint-plugin": "^8.48.0",
"@typescript-eslint/parser": "^8.48.0",
"eslint": "^9.39.1",
"eslint-config-prettier": "^10.1.8",
"mocha": "^11.7.5",
"prettier": "^3.6.2",
"typescript": "5.3"
}
}