rebrand: 将 opencode 改造为 zmo CLI 并隐藏非 CLI 命令

为打造自有纯 CLI 产品 zmo(类 Claude Code),在保留上游同步能力的前提下做套壳改造:
- 入口隐藏 9 个非 CLI 命令(console/web/github/pr/stats/export/import/db/debug)
- 全面 rebrand:scriptName、Logo、配置目录(~/.config/zmo)、bin 名、构建产物、可见文案
- env 双读兼容(ZMO_* 优先,回退 OPENCODE_*),配置文件名新增 zmo.json
- 刻意保留 @opencode-ai/* 内部包名与 opencode provider,避免破坏功能与上游同步

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-06-05 04:33:26 +08:00
parent cc9b73b0bd
commit b345dfcc50
16 changed files with 68 additions and 64 deletions

View File

@@ -179,8 +179,8 @@ for (const item of targets) {
autoloadTsconfig: true,
autoloadPackageJson: true,
target: name.replace(pkg.name, "bun") as any,
outfile: `dist/${name}/bin/opencode`,
execArgv: [`--user-agent=opencode/${Script.version}`, "--use-system-ca", "--"],
outfile: `dist/${name}/bin/zmo`,
execArgv: [`--user-agent=zmo/${Script.version}`, "--use-system-ca", "--"],
windows: {},
},
files: embeddedFileMap ? { "opencode-web-ui.gen.ts": embeddedFileMap } : {},
@@ -197,7 +197,7 @@ for (const item of targets) {
// Smoke test: only run if binary is for current platform
if (item.os === process.platform && item.arch === process.arch && !item.abi) {
const binaryPath = `dist/${name}/bin/opencode`
const binaryPath = `dist/${name}/bin/zmo`
console.log(`Running smoke test: ${binaryPath} --version`)
try {
const versionOutput = await $`${binaryPath} --version`.text()