{"_id":"@cocovs/shengsuanyun-coding-agent","_rev":"3-a2d9afd396348513a618f7805039a95d","name":"@cocovs/shengsuanyun-coding-agent","dist-tags":{"latest":"0.75.5-shengsuanyun.2"},"versions":{"0.75.5":{"name":"@cocovs/shengsuanyun-coding-agent","version":"0.75.5","_id":"@cocovs/shengsuanyun-coding-agent@0.75.5","maintainers":[{"name":"cocovs","email":"bartcocovs@gmail.com"}],"pi":{"themes":["./themes/shengsuanyun-dark.json"],"extensions":["./src/extension.ts"]},"bin":{"shengsuanyun-agent":"bin/shengsuanyun-agent.js"},"dist":{"shasum":"d895b61a867c4e77c77c192268fdc34d65fd025c","tarball":"https://registry.npmjs.org/@cocovs/shengsuanyun-coding-agent/-/shengsuanyun-coding-agent-0.75.5.tgz","fileCount":5,"integrity":"sha512-evQHUmcyIH5RAn28gpQOS6uKsr6A5VcJzhuyaQ0sHo7LTQbBxTLd18Fx4kPPuCUGZbB4CBfgeU9ieXUMI5Wyew==","signatures":[{"sig":"MEUCICTx42QZH+wIFhdTRU0PFLgFt58Mcn14ThySXwBLc6qqAiEAmcYmyBOCz3mIFtuxtEGvYT1R6EVsNAO5TtQjwHFV54I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14598},"type":"module","gitHead":"9791aa2abc0a60e4d0d9249644ac0ff3f23b14c0","scripts":{"dev":"node ./bin/shengsuanyun-agent.js","build":"echo 'nothing to build'","check":"node --check ./bin/shengsuanyun-agent.js","list-models":"node ./bin/shengsuanyun-agent.js --list-models shengsuanyun"},"_npmUser":{"name":"cocovs","email":"bartcocovs@gmail.com"},"_npmVersion":"10.9.8","description":"Shengsuanyun branded Pi coding agent prototype","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@earendil-works/pi-coding-agent":"0.75.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/shengsuanyun-coding-agent_0.75.5_1779767664787_0.1664089962584352","host":"s3://npm-registry-packages-npm-production"}},"0.75.5-shengsuanyun.1":{"name":"@cocovs/shengsuanyun-coding-agent","version":"0.75.5-shengsuanyun.1","_id":"@cocovs/shengsuanyun-coding-agent@0.75.5-shengsuanyun.1","maintainers":[{"name":"cocovs","email":"bartcocovs@gmail.com"}],"pi":{"themes":["./themes/shengsuanyun-dark.json"],"extensions":["./src/extension.ts"]},"bin":{"shengsuanyun-agent":"bin/shengsuanyun-agent.js"},"dist":{"shasum":"67393ed858a367a630b76cd016e96f67265bb221","tarball":"https://registry.npmjs.org/@cocovs/shengsuanyun-coding-agent/-/shengsuanyun-coding-agent-0.75.5-shengsuanyun.1.tgz","fileCount":5,"integrity":"sha512-inJBTrdBCO1V5Zdj9aUkzacBJc0VPtWtk1EHHH+oPbBIlv9JD/fKmcDEbmykccxNkSZXadVED1KQjhCxLrhMzQ==","signatures":[{"sig":"MEUCIAK/l2hV5b8eaf6R6zhHMtH5+BELKrPEJaGxdt0yXLjRAiEAhrUVOwkpeY44jLREW7QIWiD5QdByM3/8mO+AJLLWhwM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15355},"type":"module","gitHead":"3d02ee01c5311670e01ec382692bb6fcef563a03","scripts":{"dev":"node ./bin/shengsuanyun-agent.js","build":"echo 'nothing to build'","check":"node --check ./bin/shengsuanyun-agent.js","list-models":"node ./bin/shengsuanyun-agent.js --list-models shengsuanyun"},"_npmUser":{"name":"cocovs","email":"bartcocovs@gmail.com"},"_npmVersion":"10.9.8","description":"Shengsuanyun branded Pi coding agent prototype","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@earendil-works/pi-coding-agent":"0.75.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/shengsuanyun-coding-agent_0.75.5-shengsuanyun.1_1779769468083_0.9811971059730069","host":"s3://npm-registry-packages-npm-production"}},"0.75.5-shengsuanyun.2":{"name":"@cocovs/shengsuanyun-coding-agent","version":"0.75.5-shengsuanyun.2","type":"module","description":"Shengsuanyun branded Pi coding agent prototype","bin":{"shengsuanyun-agent":"bin/shengsuanyun-agent.js"},"scripts":{"build":"echo 'nothing to build'","check":"node --check ./bin/shengsuanyun-agent.js","dev":"node ./bin/shengsuanyun-agent.js","list-models":"node ./bin/shengsuanyun-agent.js --list-models shengsuanyun"},"pi":{"extensions":["./src/extension.ts"],"themes":["./themes/shengsuanyun-dark.json"]},"dependencies":{"@earendil-works/pi-coding-agent":"0.75.5"},"_id":"@cocovs/shengsuanyun-coding-agent@0.75.5-shengsuanyun.2","gitHead":"16ec765f27ee68bc806b11b76876498490937186","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-xQxT/46iBUYq3/BugMpDEof7rCx6G0VrJ+W3Clqph6TIe6YUHeH0wcBgMzROpj6nekFm8eL+RbApWcl6nyCZdQ==","shasum":"9662bbd07ed1ad4d433627dce1974c55c46fe810","tarball":"https://registry.npmjs.org/@cocovs/shengsuanyun-coding-agent/-/shengsuanyun-coding-agent-0.75.5-shengsuanyun.2.tgz","fileCount":7,"unpackedSize":24686,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDX8x8gPJOITbKEGogFVLvmLTeuPtgiE7u4uyOWNrjxeAIhAJFwM/1H+dfSKiTaDSD/T7Vmue1D8M1KX6roFdaGu6iB"}]},"_npmUser":{"name":"cocovs","email":"bartcocovs@gmail.com"},"directories":{},"maintainers":[{"name":"cocovs","email":"bartcocovs@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/shengsuanyun-coding-agent_0.75.5-shengsuanyun.2_1780374590006_0.1275845428725677"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-26T03:54:24.654Z","modified":"2026-06-02T04:29:50.280Z","0.75.5":"2026-05-26T03:54:24.932Z","0.75.5-shengsuanyun.1":"2026-05-26T04:24:28.222Z","0.75.5-shengsuanyun.2":"2026-06-02T04:29:50.156Z"},"description":"Shengsuanyun branded Pi coding agent prototype","maintainers":[{"name":"cocovs","email":"bartcocovs@gmail.com"}],"readme":"# 胜算云 Coding Agent CLI\n\n胜算云 Coding Agent CLI 是基于 Pi 的胜算云分发版本。它通过 Pi extension/theme/provider 机制接入胜算云大模型网关，并提供独立命令：\n\n```bash\nshengsuanyun-agent\n```\n\n## 安装\n\n```bash\nnpm install -g @cocovs/shengsuanyun-coding-agent@0.75.5-shengsuanyun.2\n```\n\n建议先安装本地代码搜索工具，避免首次启动时由 Pi 自动下载失败：\n\n```bash\nbrew install ripgrep fd\n```\n\n配置胜算云模型网关 API key：\n\n```bash\nexport SHENGSUANYUN_GATEWAY_API_KEY=\"...\"\n```\n\n启动 CLI：\n\n```bash\nshengsuanyun-agent\n```\n\n非交互验证：\n\n```bash\nshengsuanyun-agent --print \"只回复 OK\"\n```\n\n## 截图\n\n启动页：\n\n![胜算云 Coding Agent 启动页](./assets/ssc-startup.svg)\n\n模型选择：\n\n![胜算云模型选择](./assets/ssc-model.svg)\n\n## 默认行为\n\n- 默认网关：`https://router.shengsuanyun.com/api/v1`\n- 默认 provider：`shengsuanyun`\n- 默认模型：`deepseek/deepseek-v4-pro`\n- 交互式 `/model` 默认查看和切换胜算云模型，范围为 `shengsuanyun/**`\n- 默认协议：OpenAI Chat Completions\n- 实际调用路径：`${SHENGSUANYUN_GATEWAY_BASE_URL}/chat/completions`\n- 模型列表路径：`${SHENGSUANYUN_GATEWAY_BASE_URL}/models`\n\n切换默认模型：\n\n```bash\nSHENGSUANYUN_GATEWAY_MODEL=ali/qwen3-coder-plus shengsuanyun-agent\n```\n\n查看胜算云模型列表：\n\n```bash\nshengsuanyun-agent --list-models shengsuanyun\n```\n\n如果当前网络或代理环境无法访问模型列表接口，CLI 会使用内置的胜算云 fallback 模型列表。也可以显式指定 fallback 模型：\n\n```bash\nexport SHENGSUANYUN_GATEWAY_MODELS=\"deepseek/deepseek-v4-pro=DeepSeek-V4-Pro,ali/qwen3.6-max-preview=Qwen3.6 Max\"\n```\n\n## 环境变量\n\n| 变量 | 说明 |\n| --- | --- |\n| `SHENGSUANYUN_GATEWAY_API_KEY` | 胜算云模型网关 API key |\n| `SHENGSUANYUN_GATEWAY_BASE_URL` | 覆盖默认网关地址 |\n| `SHENGSUANYUN_GATEWAY_MODEL` | 覆盖 CLI 默认启动模型 |\n| `SHENGSUANYUN_GATEWAY_MODELS_URL` | 覆盖模型列表接口地址 |\n| `SHENGSUANYUN_GATEWAY_MODELS` | 模型列表接口失败时的 fallback，格式为 `model-id=显示名,other-model` |\n\n## 协议边界\n\n当前版本只接入 OpenAI Chat Completions 兼容协议。动态模型发现只注册 `support_apis` 包含 `/chat/completions` 的模型。\n\n这个限制是有意保留的：Pi 的 `api` 决定请求体、流式响应解析、tool calling 格式和兼容性选项，不能只靠同一份模型列表安全混用。\n\n后续多协议支持建议拆为独立 provider：\n\n- `shengsuanyun-openai`：`/v1/chat/completions` -> `openai-completions`\n- `shengsuanyun-responses`：`/v1/responses` -> `openai-responses`\n- `shengsuanyun-claude`：`/v1/messages` -> `anthropic-messages`\n- `shengsuanyun-gemini`：Gemini 兼容路径 -> `google-generative-ai`\n\n## 本地开发\n\n在仓库根目录安装依赖：\n\n```bash\nnpm install --ignore-scripts\n```\n\n运行 workspace CLI：\n\n```bash\nnpm run dev --workspace @cocovs/shengsuanyun-coding-agent\n```\n\n构建 Pi 后运行本地 bin：\n\n```bash\nnpm run build\n./node_modules/.bin/shengsuanyun-agent\n```\n\n发布前验证：\n\n```bash\nnpm run check --workspace @cocovs/shengsuanyun-coding-agent\nnpm pack --workspace @cocovs/shengsuanyun-coding-agent --dry-run\nnpm run check\ngit diff --check\n```\n\n## 版本与发布\n\n这个 package 跟随官方 Pi 版本发布。当前依赖的官方 Pi 版本是 `0.75.5`。\n\n正常发布 tag：\n\n```bash\ngit tag shengsuanyun-agent-v0.75.5\ngit push origin shengsuanyun-agent-v0.75.5\n```\n\n同一个官方 Pi 版本上补发胜算云侧修复时，使用 prerelease 版本：\n\n```bash\ngit tag shengsuanyun-agent-v0.75.5-shengsuanyun.2\ngit push origin shengsuanyun-agent-v0.75.5-shengsuanyun.2\n```\n\nGitHub Actions 会从 tag 中提取版本号，并发布 `@cocovs/shengsuanyun-coding-agent`。发布前需要在 GitHub Actions secrets 中配置 `NPM_TOKEN`。\n\n## 上游同步\n\n本仓库是官方 Pi 的胜算云分发版本。上游同步建议使用 rebase：\n\n```bash\ngit remote add upstream https://github.com/earendil-works/pi.git\ngit fetch upstream\ngit rebase upstream/main\n```\n\n同步后至少验证：\n\n```bash\nnpm install --ignore-scripts\nnpm run check\n./node_modules/.bin/shengsuanyun-agent --print \"只回复 OK\"\n```\n","readmeFilename":"README.md"}