@done-coding/cli-cc-switch 0.2.0 → 0.2.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -28,7 +28,8 @@ cc-router [command] [options] # 兼容
28
28
  | ---- | ---- |
29
29
  | `--meta-profile=<name>` | 显式指定 profile 启动 |
30
30
  | `--meta-pick` | 终端交互选择 profile 启动(需 TTY) |
31
- | `--meta-generate` | provider.json + model.json 重建 profile.json |
31
+ | `--meta-silent` | 压制启动前的 profile 名输出(MCP/AI 调用避免污染上下文) |
32
+ | `--meta-generate` | 从 settings.json 重建 profile.json |
32
33
  | `--meta-apiKey=<key>` | 更新指定提供商 apiKey(交互选提供商或 `--meta-provider`,自动重建) |
33
34
  | `--meta-model-name=<name>` | 添加模型(交互选提供商或 `--meta-provider`,自动重建;id=去 `[1m]`、name+`[1m]`) |
34
35
  | `--meta-provider=<id>` | 显式指定提供商(供 apiKey / model-name 跳过交互选择,非独立动作) |
@@ -39,18 +40,46 @@ cc-router [command] [options] # 兼容
39
40
 
40
41
  优先级:`--meta-help` > `--meta-version` > `--meta-generate` > `--meta-model-list` > `--meta-provider-list` > `--meta-model-name` > `--meta-apiKey` > `--meta-pick` > `--meta-profile=`。
41
42
 
42
- `--meta-apiKey` 与 `--meta-model-name` 互斥、均不得与 `--meta-generate` 同用;`--meta-provider` 仅随二者使用。
43
+ `--meta-apiKey` 与 `--meta-model-name` 互斥、均不得与 `--meta-generate` 同用;`--meta-provider` 仅随二者使用;`--meta-silent` 为修饰选项,不参与动作优先级。
44
+
45
+ ## 配置源(settings.json 单源)
46
+
47
+ profile.json 由 settings.json 经 `--meta-generate` 生成(启动不自动生成,保速度;profile 缺失或默认 profile 悬空时提示手动运行):
48
+
49
+ - `~/.done-coding/cc-switch/settings.json` — **唯一源**(含 apiKey,chmod 600):
50
+ ```json5
51
+ {
52
+ defaultProfile: "deepseek-pro", // 可选:未配置 → 启动时交互选择
53
+ disabledDefault: false, // true → 忽略已配默认,强制交互选择
54
+ output: { profileName: true }, // 启动前输出 profile 名(false 关闭)
55
+ providers: {
56
+ deepseek: {
57
+ name: "DeepSeek",
58
+ url: "https://api.deepseek.com/anthropic",
59
+ apiKey: "sk-...",
60
+ envExtraParams: { CLAUDE_CODE_EFFORT_LEVEL: "max" }, // provider 级附加 env
61
+ models: [
62
+ { id: "flash", name: "deepseek-v4-flash[1m]" },
63
+ {
64
+ id: "pro",
65
+ name: "deepseek-v4-pro[1m]",
66
+ envExtraParams: { ANTHROPIC_DEFAULT_HAIKU_MODEL: "deepseek-v4-flash[1m]" }
67
+ }
68
+ ]
69
+ }
70
+ }
71
+ }
72
+ ```
73
+ - `~/.done-coding/cc-switch/profile.json` — 编译快照(运行时读取,原格式、chmod 600)
43
74
 
44
- ## 配置源(provider / model 分层)
45
-
46
- profile.json 由两个 DRY 源经 `--meta-generate` 生成(启动不自动生成,保速度;profile 缺失或默认 profile 悬空时提示手动运行):
75
+ profile 名 = `${provider}-${id}`;每个 profile 的 env 按 `{...通用, ...providerEnvExtraParams, ...modelEnvExtraParams}` 合并(通用 = provider.url/apiKey + model.name 推导的 BASE_URL/AUTH_TOKEN/MODEL/四档/SUBAGENT)。例:pro 档让 haiku 用 flash,在该 model 的 `envExtraParams` 设 `ANTHROPIC_DEFAULT_HAIKU_MODEL`。
47
76
 
48
- - `~/.done-coding/cc-switch/provider.json` — 服务商层:`{ providers: { id: { name, url, apiKey, envExtraParams? } } }`
49
- - `~/.done-coding/cc-switch/model.json` — 模型层:`{ defaultProfile, models: [{ provider, id, name, envExtraParams? }] }`
77
+ ## 启动行为
50
78
 
51
- profile = `${provider}-${id}`;每个 profile 的 env 按 `{...通用, ...providerEnvExtraParams, ...modelEnvExtraParams}` 合并(通用 = provider.url/apiKey + model.name 推导的 BASE_URL/AUTH_TOKEN/MODEL/四档/SUBAGENT)。例:pro 档让 haiku 用 flash,在该 model 的 `envExtraParams` 设 `ANTHROPIC_DEFAULT_HAIKU_MODEL`。
79
+ - 启动前向 stdout 输出当前选中 profile 名一行(`output.profileName` 缺省 true;`--meta-silent` 压制,MCP/AI 调用建议带上)
80
+ - 默认选择解析序:`--meta-profile=<name>` > 交互 pick(`--meta-pick` / `disabledDefault=true`)> `defaultProfile` > 无默认也交互 pick(非 TTY 报错提示 `--meta-profile`)
52
81
 
53
- 运行 `dc-cc-switch --meta-generate` 后生成 profile.json(保持原格式、chmod 600)。
82
+ > 0.3.0 起废弃 provider.json / model.json 分层源,存量配置请迁移为 settings.json。
54
83
 
55
84
  <!-- repo-map:start -->
56
85
 
package/es/cli.mjs CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import { a } from "./main-BC_Ug-V2.js";
2
+ import { a } from "./main-BA58lhLn.js";
3
3
  a();
package/es/index.mjs CHANGED
@@ -1,14 +1,15 @@
1
1
  #!/usr/bin/env node
2
- import { D as e, P as E, b as i, c as n, f as r, h as l, i as o, m as c, p as d, s as m } from "./main-BC_Ug-V2.js";
2
+ import { D as e, P as E, S as i, b as n, c as r, f as S, h as T, i as l, m as o, p as P, s as c } from "./main-BA58lhLn.js";
3
3
  export {
4
- e as DEEPSEEK_TEMPLATE,
4
+ e as DEEPSEEK_SETTINGS_TEMPLATE,
5
5
  E as PROFILE_PATH,
6
- i as buildChildEnv,
7
- n as createAsSubcommand,
8
- r as findEmptyKeys,
9
- l as hasModelEnvConflict,
10
- o as isSecretKey,
11
- c as maskValue,
12
- d as parseArgv,
13
- m as selectProfile
6
+ i as SETTINGS_PATH,
7
+ n as buildChildEnv,
8
+ r as createAsSubcommand,
9
+ S as findEmptyKeys,
10
+ T as hasModelEnvConflict,
11
+ l as isSecretKey,
12
+ o as maskValue,
13
+ P as parseArgv,
14
+ c as selectProfile
14
15
  };