cc-viewer 1.6.330 → 1.6.333

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.
Files changed (123) hide show
  1. package/README.md +7 -8
  2. package/cli.js +6 -6
  3. package/concepts/ar/GlobalSettings.md +5 -2
  4. package/concepts/ar/ProxySwitch.md +15 -5
  5. package/concepts/da/GlobalSettings.md +5 -2
  6. package/concepts/da/ProxySwitch.md +15 -5
  7. package/concepts/de/GlobalSettings.md +5 -2
  8. package/concepts/de/ProxySwitch.md +15 -5
  9. package/concepts/en/GlobalSettings.md +7 -2
  10. package/concepts/en/ProxySwitch.md +15 -5
  11. package/concepts/es/GlobalSettings.md +5 -2
  12. package/concepts/es/ProxySwitch.md +15 -5
  13. package/concepts/fr/GlobalSettings.md +5 -2
  14. package/concepts/fr/ProxySwitch.md +15 -5
  15. package/concepts/it/GlobalSettings.md +5 -2
  16. package/concepts/it/ProxySwitch.md +15 -5
  17. package/concepts/ja/GlobalSettings.md +5 -2
  18. package/concepts/ja/ProxySwitch.md +15 -5
  19. package/concepts/ko/GlobalSettings.md +5 -2
  20. package/concepts/ko/ProxySwitch.md +15 -5
  21. package/concepts/no/GlobalSettings.md +5 -2
  22. package/concepts/no/ProxySwitch.md +15 -5
  23. package/concepts/pl/GlobalSettings.md +5 -2
  24. package/concepts/pl/ProxySwitch.md +15 -5
  25. package/concepts/pt-BR/GlobalSettings.md +5 -2
  26. package/concepts/pt-BR/ProxySwitch.md +34 -24
  27. package/concepts/ru/GlobalSettings.md +5 -2
  28. package/concepts/ru/ProxySwitch.md +15 -5
  29. package/concepts/th/GlobalSettings.md +5 -2
  30. package/concepts/th/ProxySwitch.md +15 -5
  31. package/concepts/tr/GlobalSettings.md +5 -2
  32. package/concepts/tr/ProxySwitch.md +34 -24
  33. package/concepts/uk/GlobalSettings.md +5 -2
  34. package/concepts/uk/ProxySwitch.md +15 -5
  35. package/concepts/zh/GlobalSettings.md +5 -2
  36. package/concepts/zh/ProxySwitch.md +15 -5
  37. package/concepts/zh-TW/GlobalSettings.md +7 -4
  38. package/concepts/zh-TW/ProxySwitch.md +15 -5
  39. package/dist/assets/App-BUcRXok_.js +2 -0
  40. package/dist/assets/{MdxEditorPanel-BmO4cIBT.js → MdxEditorPanel-B0pZ244F.js} +1 -1
  41. package/dist/assets/{Mobile-ZXwho8zA.js → Mobile-ZwY4z6l3.js} +1 -1
  42. package/dist/assets/{_baseUniq-jDC_lFvH.js → _baseUniq-DWlfWgt4.js} +1 -1
  43. package/dist/assets/{arc-D_MHcfPz.js → arc-CzmkWEz_.js} +1 -1
  44. package/dist/assets/{architectureDiagram-Q4EWVU46-D3LhuQ4p.js → architectureDiagram-Q4EWVU46-CYaOQmkg.js} +1 -1
  45. package/dist/assets/{blockDiagram-DXYQGD6D-Bi9G2rJp.js → blockDiagram-DXYQGD6D-Dall5YkT.js} +1 -1
  46. package/dist/assets/{c4Diagram-AHTNJAMY-DlY0w3X4.js → c4Diagram-AHTNJAMY-DAk_9Ur1.js} +1 -1
  47. package/dist/assets/{channel-C87hLHco.js → channel-Ccyxypgy.js} +1 -1
  48. package/dist/assets/{chunk-4BX2VUAB-DodXg0hV.js → chunk-4BX2VUAB-CvbVyElK.js} +1 -1
  49. package/dist/assets/{chunk-4TB4RGXK-Ba2E_IX7.js → chunk-4TB4RGXK-BRyhy_Du.js} +1 -1
  50. package/dist/assets/{chunk-55IACEB6-CWG3ZdRs.js → chunk-55IACEB6-a32qQl3r.js} +1 -1
  51. package/dist/assets/{chunk-EDXVE4YY-lT5M-dRo.js → chunk-EDXVE4YY-KDrHEMBT.js} +1 -1
  52. package/dist/assets/{chunk-FMBD7UC4-BY_2pfoq.js → chunk-FMBD7UC4-BY0F4AhW.js} +1 -1
  53. package/dist/assets/{chunk-OYMX7WX6-DzLhEX7n.js → chunk-OYMX7WX6-7lPaUOt9.js} +1 -1
  54. package/dist/assets/{chunk-QZHKN3VN-BvdoGurF.js → chunk-QZHKN3VN-C9UszWzd.js} +1 -1
  55. package/dist/assets/{chunk-YZCP3GAM-C7rlhtyD.js → chunk-YZCP3GAM-YG3JSfbH.js} +1 -1
  56. package/dist/assets/classDiagram-6PBFFD2Q-CYXcQTEj.js +1 -0
  57. package/dist/assets/classDiagram-v2-HSJHXN6E-CYXcQTEj.js +1 -0
  58. package/dist/assets/clone-BRA0Q3Eo.js +1 -0
  59. package/dist/assets/{cose-bilkent-S5V4N54A-DhsYplMy.js → cose-bilkent-S5V4N54A-DIU72glS.js} +1 -1
  60. package/dist/assets/{dagre-KV5264BT-PLnp9yct.js → dagre-KV5264BT-EouMsh-P.js} +1 -1
  61. package/dist/assets/{diagram-5BDNPKRD-DqvSM_bo.js → diagram-5BDNPKRD-Cgr24o-m.js} +1 -1
  62. package/dist/assets/{diagram-G4DWMVQ6-DYN80unA.js → diagram-G4DWMVQ6-DSNxAipm.js} +1 -1
  63. package/dist/assets/{diagram-MMDJMWI5-D-jv3M8U.js → diagram-MMDJMWI5-D8OP-yt5.js} +1 -1
  64. package/dist/assets/{diagram-TYMM5635-BbVwY3fb.js → diagram-TYMM5635-BF-y_3p_.js} +1 -1
  65. package/dist/assets/{erDiagram-SMLLAGMA-9-rp8xsO.js → erDiagram-SMLLAGMA-kJejykzr.js} +1 -1
  66. package/dist/assets/{flowDiagram-DWJPFMVM-Bu_JuIe2.js → flowDiagram-DWJPFMVM-B7mSPWGk.js} +1 -1
  67. package/dist/assets/{ganttDiagram-T4ZO3ILL-B-PvSqDf.js → ganttDiagram-T4ZO3ILL-DN1NKD86.js} +1 -1
  68. package/dist/assets/{gitGraphDiagram-UUTBAWPF-DGloG4Vg.js → gitGraphDiagram-UUTBAWPF-gN8Ai_7H.js} +1 -1
  69. package/dist/assets/{graph-CbR0Gq9P.js → graph-CSC5UcCt.js} +1 -1
  70. package/dist/assets/{index-D4Pum3K_.js → index-BMKeFQ8D.js} +2 -2
  71. package/dist/assets/{index-Dyqfqy0-.js → index-C5sBul9J.js} +1 -1
  72. package/dist/assets/{index-D8UlD-Rs.js → index-CLOW0OUz.js} +1 -1
  73. package/dist/assets/{index-70lDhcDm.js → index-Cv33V1Pr.js} +1 -1
  74. package/dist/assets/{index-jdQotxUf.js → index-Cwi-o2jM.js} +1 -1
  75. package/dist/assets/{index-7ibWcMau.js → index-DHgN3ufc.js} +1 -1
  76. package/dist/assets/{index-CtigeZCJ.js → index-DI6crI9z.js} +1 -1
  77. package/dist/assets/{index-CtLTny8H.js → index-bUhmgSxt.js} +1 -1
  78. package/dist/assets/{infoDiagram-42DDH7IO-FGosRpTG.js → infoDiagram-42DDH7IO-DuSgqRNf.js} +1 -1
  79. package/dist/assets/{ishikawaDiagram-UXIWVN3A-BlclfpV5.js → ishikawaDiagram-UXIWVN3A-B4EdK2CC.js} +1 -1
  80. package/dist/assets/{journeyDiagram-VCZTEJTY--UkR986E.js → journeyDiagram-VCZTEJTY-B5wbjiO8.js} +1 -1
  81. package/dist/assets/{jszip.min-PwTGeWmJ.js → jszip.min-Dx820onf.js} +1 -1
  82. package/dist/assets/{kanban-definition-6JOO6SKY-1oO9JAku.js → kanban-definition-6JOO6SKY-1UxMJBgT.js} +1 -1
  83. package/dist/assets/{layout-DKdPIoav.js → layout-BZ4cy_A3.js} +1 -1
  84. package/dist/assets/{linear-D2uKszhd.js → linear-BKdLoimm.js} +1 -1
  85. package/dist/assets/{mermaid.core-Adp4RVnV.js → mermaid.core-DMom7_rg.js} +2 -2
  86. package/dist/assets/{min-Czdk6h6Y.js → min-wRNE9X51.js} +1 -1
  87. package/dist/assets/{mindmap-definition-QFDTVHPH-Bs7NLrcq.js → mindmap-definition-QFDTVHPH-BNmfJpA6.js} +1 -1
  88. package/dist/assets/{pieDiagram-DEJITSTG-D7z6f5QH.js → pieDiagram-DEJITSTG-vaH4-8Or.js} +1 -1
  89. package/dist/assets/{quadrantDiagram-34T5L4WZ-2rae23Td.js → quadrantDiagram-34T5L4WZ-C2AY6FOB.js} +1 -1
  90. package/dist/assets/{requirementDiagram-MS252O5E-B4uC_pLr.js → requirementDiagram-MS252O5E-aUdzXxVm.js} +1 -1
  91. package/dist/assets/{sankeyDiagram-XADWPNL6-xo0rKzRA.js → sankeyDiagram-XADWPNL6-911CtS8z.js} +1 -1
  92. package/dist/assets/seqResourceLoaders-BPRKtmaY.js +2 -0
  93. package/dist/assets/{seqResourceLoaders-BFMsIN74.css → seqResourceLoaders-P_ytfji6.css} +1 -1
  94. package/dist/assets/{sequenceDiagram-FGHM5R23-3zQ_CXGR.js → sequenceDiagram-FGHM5R23-2R6stVjM.js} +1 -1
  95. package/dist/assets/{stateDiagram-FHFEXIEX-BnAvwAN8.js → stateDiagram-FHFEXIEX-CbgRIOYj.js} +1 -1
  96. package/dist/assets/{stateDiagram-v2-QKLJ7IA2-Q4raD3B2.js → stateDiagram-v2-QKLJ7IA2-Xsvwai6m.js} +1 -1
  97. package/dist/assets/{timeline-definition-GMOUNBTQ-BMSMoqEA.js → timeline-definition-GMOUNBTQ-BhhXvDyp.js} +1 -1
  98. package/dist/assets/{vendor-antd-TJ9xmLQO.js → vendor-antd-DM2TzIqO.js} +1 -1
  99. package/dist/assets/{vendor-codemirror-CIGft5iF.js → vendor-codemirror-Bfrxv9Q7.js} +1 -1
  100. package/dist/assets/{vendor-mdxeditor-BuIUwnOf.js → vendor-mdxeditor-CtZ5Rl88.js} +2 -2
  101. package/dist/assets/{vendor-qrcode-BOhJZrOT.js → vendor-qrcode-55J239aW.js} +1 -1
  102. package/dist/assets/{vendor-virtuoso-CyrVCdOW.js → vendor-virtuoso-DY16TiQ-.js} +1 -1
  103. package/dist/assets/{vennDiagram-DHZGUBPP-Dd_tCka1.js → vennDiagram-DHZGUBPP-H7FLlPyO.js} +1 -1
  104. package/dist/assets/{wardley-RL74JXVD-DGkrRuSv.js → wardley-RL74JXVD-Dp35Fq7j.js} +1 -1
  105. package/dist/assets/{wardleyDiagram-NUSXRM2D-DlbDpNJR.js → wardleyDiagram-NUSXRM2D-CcKrzQBH.js} +1 -1
  106. package/dist/assets/{xychartDiagram-5P7HB3ND-CtBG1yl-.js → xychartDiagram-5P7HB3ND-CwTqQPcT.js} +1 -1
  107. package/dist/index.html +4 -4
  108. package/dist/voice-packs/default/pack.json +1 -1
  109. package/findcc.js +50 -40
  110. package/interceptor.js +1 -1
  111. package/package.json +8 -4
  112. package/plugins/README.md +8 -0
  113. package/server/_paths.js +24 -22
  114. package/server/interceptor.js +39 -25
  115. package/server/lib/interceptor-core.js +107 -0
  116. package/server/routes/preferences.js +14 -1
  117. package/server.js +1 -0
  118. package/ultraAgents/README.md +49 -40
  119. package/dist/assets/App-DPdFPyOI.js +0 -2
  120. package/dist/assets/classDiagram-6PBFFD2Q-DiOul2Ap.js +0 -1
  121. package/dist/assets/classDiagram-v2-HSJHXN6E-DiOul2Ap.js +0 -1
  122. package/dist/assets/clone-r-iPz1mj.js +0 -1
  123. package/dist/assets/seqResourceLoaders-DXQFWqYa.js +0 -2
@@ -13,8 +13,13 @@
13
13
  | **名称** | ✅ | 代理的显示名称,方便区分不同代理 |
14
14
  | **地址 (Base URL)** | ✅ | API 服务的基础地址(如 `https://api.example.com`),原始请求的 origin 会被替换为此地址 |
15
15
  | **API Key** | ✅ | 代理服务的 API 密钥,会替换原始请求中的认证信息 |
16
- | **模型** | ❌ | 代理支持的模型列表,用逗号分隔(如 `model-a, model-b`) |
17
- | **当前模型** | ❌ | 从模型列表中选择当前使用的模型,请求中的 `model` 字段会被替换 |
16
+ | **ANTHROPIC_MODEL** | ❌ | 主模型。凡属于 `fable` / `mythos` 家族的模型请求都会被改写为此值 |
17
+ | **ANTHROPIC_DEFAULT_OPUS_MODEL** | ❌ | 扩展:`model` 包含 `opus` 的请求会被改写为此值 |
18
+ | **ANTHROPIC_DEFAULT_SONNET_MODEL** | ❌ | 扩展:`model` 包含 `sonnet` 的请求会被改写为此值 |
19
+ | **ANTHROPIC_DEFAULT_HAIKU_MODEL** | ❌ | 扩展:`model` 包含 `haiku` 的请求会被改写为此值 |
20
+ | **强度等级** | ❌ | 向请求体注入 `output_config.effort`(`low`/`medium`/`high`/`xhigh`/`max`),保持"默认"则跳过 |
21
+
22
+ 模型匹配是对请求 `model` 字段的大小写无关子串判断,因此任意版本(如 `claude-opus-4-8`、未来的 `claude-opus-5`)都会映射到同一家族,无需重新配置。家族字段留空表示该家族保持不变;无法识别的家族会原样透传。
18
23
 
19
24
  ## 工作原理
20
25
 
@@ -22,7 +27,8 @@
22
27
 
23
28
  1. **URL 重写** — 将请求的 origin 替换为代理的 Base URL
24
29
  2. **认证替换** — 将请求头中的 `x-api-key` 或 `Authorization` 替换为代理的 API Key
25
- 3. **模型替换** — 如果指定了当前模型,将请求体中的 `model` 字段替换
30
+ 3. **模型替换** — 按家族改写请求体的 `model` 字段(opus/sonnet/haiku → 对应字段;fable/mythos → `ANTHROPIC_MODEL`)
31
+ 4. **强度注入** — 若设置了强度等级,则注入 `output_config.effort`(`count_tokens` / 心跳请求会跳过)
26
32
 
27
33
  ## 配置文件
28
34
 
@@ -38,8 +44,11 @@
38
44
  "name": "My Proxy",
39
45
  "baseURL": "https://api.example.com",
40
46
  "apiKey": "sk-xxx",
41
- "models": ["model-a", "model-b"],
42
- "activeModel": "model-a"
47
+ "ANTHROPIC_MODEL": "model-primary",
48
+ "ANTHROPIC_DEFAULT_OPUS_MODEL": "model-opus",
49
+ "ANTHROPIC_DEFAULT_SONNET_MODEL": "model-sonnet",
50
+ "ANTHROPIC_DEFAULT_HAIKU_MODEL": "model-haiku",
51
+ "effort": "max"
43
52
  }
44
53
  ]
45
54
  }
@@ -47,4 +56,5 @@
47
56
 
48
57
  - `active` — 当前使用的 profile ID,设为 `"max"` 表示直连(不走代理)
49
58
  - `profiles` — profile 列表,`id: "max"` 为内置直连模式,不可删除
59
+ - 使用旧版 `models` / `activeModel` 的 profile 在加载时会自动迁移为 `ANTHROPIC_MODEL`
50
60
  - 修改文件后约 1.5 秒自动生效(通过 `fs.watchFile` 监听),无需重启
@@ -163,10 +163,13 @@ claude() { ... }
163
163
  | `active` | 当前激活的配置 ID(`"max"` = 直连,无代理) |
164
164
  | `id` | 唯一标识 |
165
165
  | `name` | 显示名称 |
166
- | `baseURL` | 代理 API 地址(替换请求 origin) |
167
- | `apiKey` | 代理 API 密钥(替换认证头) |
168
- | `models` | 可用模型列表 |
169
- | `activeModel` | 当前选中的模型 |
166
+ | `baseURL` | 代理 API 位址(替換請求 origin) |
167
+ | `apiKey` | 代理 API 金鑰(替換認證標頭) |
168
+ | `ANTHROPIC_MODEL` | 主模型(fable/mythos 家族映射到此) |
169
+ | `ANTHROPIC_DEFAULT_OPUS_MODEL` | opus 家族對應的模型(擴充) |
170
+ | `ANTHROPIC_DEFAULT_SONNET_MODEL` | sonnet 家族對應的模型(擴充) |
171
+ | `ANTHROPIC_DEFAULT_HAIKU_MODEL` | haiku 家族對應的模型(擴充) |
172
+ | `effort` | 強制的 `output_config.effort` 等級 |
170
173
 
171
174
  ## 九、插件系统
172
175
 
@@ -13,8 +13,13 @@ Hot-Switch Proxy lets you dynamically redirect API requests to a different endpo
13
13
  | **Name** | ✅ | Display name for this proxy, used to identify it |
14
14
  | **Base URL** | ✅ | Base URL of the API service (e.g. `https://api.example.com`). The original request origin will be replaced |
15
15
  | **API Key** | ✅ | API key for the proxy service, replaces the original authentication |
16
- | **Models** | ❌ | Comma-separated list of models supported by this proxy (e.g. `model-a, model-b`) |
17
- | **Active Model** | ❌ | Select the active model from the list. The `model` field in requests will be replaced |
16
+ | **ANTHROPIC_MODEL** | ❌ | 主模型。凡屬於 `fable` / `mythos` 家族的模型請求都會被改寫為此值 |
17
+ | **ANTHROPIC_DEFAULT_OPUS_MODEL** | ❌ | 擴充:`model` 包含 `opus` 的請求會被改寫為此值 |
18
+ | **ANTHROPIC_DEFAULT_SONNET_MODEL** | ❌ | 擴充:`model` 包含 `sonnet` 的請求會被改寫為此值 |
19
+ | **ANTHROPIC_DEFAULT_HAIKU_MODEL** | ❌ | 擴充:`model` 包含 `haiku` 的請求會被改寫為此值 |
20
+ | **強度等級** | ❌ | 向請求體注入 `output_config.effort`(`low`/`medium`/`high`/`xhigh`/`max`),保持「預設」則跳過 |
21
+
22
+ 模型比對是對請求 `model` 欄位的大小寫無關子字串判斷,因此任意版本(如 `claude-opus-4-8`、未來的 `claude-opus-5`)都會映射到同一家族,無需重新設定。家族欄位留空表示該家族保持不變;無法辨識的家族會原樣透傳。
18
23
 
19
24
  ## How It Works
20
25
 
@@ -22,7 +27,8 @@ When a proxy is active, `server/interceptor.js` performs the following before ea
22
27
 
23
28
  1. **URL Rewrite** — Replaces the request origin with the proxy's Base URL
24
29
  2. **Auth Replace** — Replaces `x-api-key` or `Authorization` header with the proxy's API Key
25
- 3. **Model Replace** — If an active model is set, replaces the `model` field in the request body
30
+ 3. **Model Replace** — 依家族改寫請求體的 `model` 欄位(opus/sonnet/haiku 對應欄位;fable/mythos `ANTHROPIC_MODEL`)
31
+ 4. **Effort Inject** — 若設定了強度等級,則注入 `output_config.effort`(`count_tokens` / 心跳請求會跳過)
26
32
 
27
33
  ## Config File
28
34
 
@@ -38,8 +44,11 @@ Configuration is stored at `~/.claude/cc-viewer/profile.json`. Click the folder
38
44
  "name": "My Proxy",
39
45
  "baseURL": "https://api.example.com",
40
46
  "apiKey": "sk-xxx",
41
- "models": ["model-a", "model-b"],
42
- "activeModel": "model-a"
47
+ "ANTHROPIC_MODEL": "model-primary",
48
+ "ANTHROPIC_DEFAULT_OPUS_MODEL": "model-opus",
49
+ "ANTHROPIC_DEFAULT_SONNET_MODEL": "model-sonnet",
50
+ "ANTHROPIC_DEFAULT_HAIKU_MODEL": "model-haiku",
51
+ "effort": "max"
43
52
  }
44
53
  ]
45
54
  }
@@ -47,4 +56,5 @@ Configuration is stored at `~/.claude/cc-viewer/profile.json`. Click the folder
47
56
 
48
57
  - `active` — ID of the current profile. Set to `"max"` for direct connection (no proxy)
49
58
  - `profiles` — Profile list. `id: "max"` is built-in and cannot be deleted
59
+ - 使用舊版 `models` / `activeModel` 的 profile 在載入時會自動遷移為 `ANTHROPIC_MODEL`
50
60
  - Changes take effect within ~1.5 seconds (monitored via `fs.watchFile`), no restart needed