chatccc 0.2.245 → 0.2.247
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 +10 -8
- package/config.sample.json +2 -1
- package/deepccc-agent/README.md +20 -6
- package/deepccc-agent/package-lock.json +2027 -1959
- package/deepccc-agent/package.json +4 -2
- package/deepccc-agent/src/__tests__/chat-session.test.ts +59 -0
- package/deepccc-agent/src/__tests__/config.test.ts +9 -1
- package/deepccc-agent/src/__tests__/permissions.test.ts +4 -0
- package/deepccc-agent/src/__tests__/privacy.test.ts +7 -3
- package/deepccc-agent/src/cli.ts +18 -7
- package/deepccc-agent/src/config.ts +13 -0
- package/deepccc-agent/src/index.ts +47 -22
- package/package.json +2 -1
- package/src/__tests__/builtin-chat-session.test.ts +11 -1
- package/src/__tests__/builtin-permissions.test.ts +11 -3
- package/src/__tests__/ccc-adapter.test.ts +9 -0
- package/src/__tests__/config-reload.test.ts +1 -1
- package/src/__tests__/config-utils.test.ts +40 -0
- package/src/__tests__/session-ccc-config.test.ts +21 -0
- package/src/__tests__/web-ui.test.ts +2 -0
- package/src/adapters/ccc-adapter.ts +1 -0
- package/src/config-utils.ts +37 -13
- package/src/config.ts +23 -13
- package/src/session.ts +325 -323
- package/src/web-ui.ts +33 -2
package/README.md
CHANGED
|
@@ -208,15 +208,17 @@ chatccc
|
|
|
208
208
|
|
|
209
209
|
### 3. AI 工具配置
|
|
210
210
|
|
|
211
|
-
Claude Code、Cursor 和 Codex 需要对应的本地工具;CCC Agent 内置于 ChatCCC,开箱即用,**模型接入不限于 DeepSeek
|
|
211
|
+
Claude Code、Cursor 和 Codex 需要对应的本地工具;CCC Agent 内置于 ChatCCC,开箱即用,**模型接入不限于 DeepSeek**——它支持 OpenAI-compatible 和 Anthropic Messages 两种协议(详见下文 CCC Agent)。
|
|
212
212
|
|
|
213
|
-
#### CCC Agent
|
|
214
|
-
|
|
215
|
-
CCC Agent 是 ChatCCC 内置的编程 Agent,不需要额外安装 CLI,开箱即用。在首次配置向导或 Web 管理页中启用后,填写 API Key、Base URL 和模型即可使用;它可以设为 `/new` 的默认 Agent,也可以通过 `/new ccc` 显式创建会话。
|
|
216
|
-
|
|
217
|
-
ChatCCC 会把 `ccc.DEEPSEEK_API_KEY`、`ccc.DEEPSEEK_BASE_URL`、模型和 effort 显式传给内置 Agent;这些配置不会回退读取 `~/.deepccc/config.json`,因此用户无需安装或配置独立的 `deepccc` 包。API Key 为空时 CCC Agent 会自动保持禁用。
|
|
213
|
+
#### CCC Agent
|
|
218
214
|
|
|
219
|
-
|
|
215
|
+
CCC Agent 是 ChatCCC 内置的编程 Agent,不需要额外安装 CLI,开箱即用。在首次配置向导或 Web 管理页中启用后,填写 API Key、Base URL 和模型即可使用;它可以设为 `/new` 的默认 Agent,也可以通过 `/new ccc` 显式创建会话。
|
|
216
|
+
|
|
217
|
+
ChatCCC 会把 `ccc.DEEPSEEK_API_KEY`、`ccc.DEEPSEEK_BASE_URL`、模型和 effort 显式传给内置 Agent;API Key 为空时 CCC Agent 会自动保持禁用。DeepCCC 的传输层选项 `provider`(默认 `openai`)和 `streaming`(默认 `true`)可通过 `~/.deepccc/config.json` 或 `DEEPCCC_PROVIDER` / `DEEPCCC_STREAMING` 配置,无需额外安装独立 CLI。
|
|
218
|
+
|
|
219
|
+
**协议 override:** 也可以在 ChatCCC 的配置(`config.json` 的 `ccc.provider`,或 Web 管理页的「CCC Agent → API 协议」)显式指定 `openai` / `anthropic` 覆盖内核配置;留空(默认)时跟随 `~/.deepccc/config.json` / `DEEPCCC_PROVIDER`。`streaming` 不做 override,始终由 DeepCCC 内核配置控制。
|
|
220
|
+
|
|
221
|
+
**API 支持不限于 DeepSeek。** 默认的 `provider: "openai"` 使用 OpenAI 兼容协议(`@ai-sdk/openai-compatible`),DeepSeek 只是出厂默认端点;设置 `provider: "anthropic"` 后改用 Anthropic Messages 协议(`@ai-sdk/anthropic`)。两种模式都支持流式输出,并复用相同的 API Key、Base URL 和模型配置。
|
|
220
222
|
|
|
221
223
|
| 服务 | Base URL 示例 | 说明 |
|
|
222
224
|
| --- | --- | --- |
|
|
@@ -371,7 +373,7 @@ Codex 的默认模型和推理强度可继续由 `~/.codex/config.toml` 管理
|
|
|
371
373
|
|
|
372
374
|
**微信:** 扫码登录后,在机器人私聊里发送 `/new` 或指定 Agent 的 `/new ...` 命令即可开始。功能与飞书基本一致,但展示为纯文本。
|
|
373
375
|
|
|
374
|
-
**会话停滞保护:** 只有 Agent 明确进入“生成回复中”后,连续 3 分钟没有新增回复字符且尚未报告权威终态,ChatCCC 才判定停滞、结束旧 CLI,并优先补发一次“完成了吗?如果没完成继续”;恢复轮再次发生相同停滞时不再递归续跑。启动、上下文压缩、思考、搜索和工具调用阶段不会触发这项回复停滞计时;DeepCCC 关闭 streaming 时只会在请求完成后一次性返回结果,因此不会启用这项基于流式字符进度的停滞检测。其中 CCC Agent 会单独显示“压缩上下文中”,压缩最多等待 5 分钟,失败时直接报告具体原因且不自动重放。`/new claude` 和 `/new cursor` 等创建会话操作仍有独立的 init 超时,进程资源监控也继续负责识别真正僵死。Codex 只有 `turn.completed` 才算权威终态,阶段性的 `agent_message` 不算;任一 Agent 报告权威终态后若输出流仍超过 10 秒未关闭,ChatCCC 会强制清理该 CLI 并按正常完成收尾,不会重复询问 Agent。
|
|
376
|
+
**会话停滞保护:** 只有 Agent 明确进入“生成回复中”后,连续 3 分钟没有新增回复字符且尚未报告权威终态,ChatCCC 才判定停滞、结束旧 CLI,并优先补发一次“完成了吗?如果没完成继续”;恢复轮再次发生相同停滞时不再递归续跑。启动、上下文压缩、思考、搜索和工具调用阶段不会触发这项回复停滞计时;DeepCCC 关闭 streaming 时只会在请求完成后一次性返回结果,因此不会启用这项基于流式字符进度的停滞检测。其中 CCC Agent 会单独显示“压缩上下文中”,压缩最多等待 5 分钟,失败时直接报告具体原因且不自动重放。`/new claude` 和 `/new cursor` 等创建会话操作仍有独立的 init 超时,进程资源监控也继续负责识别真正僵死。Codex 只有 `turn.completed` 才算权威终态,阶段性的 `agent_message` 不算;任一 Agent 报告权威终态后若输出流仍超过 10 秒未关闭,ChatCCC 会强制清理该 CLI 并按正常完成收尾,不会重复询问 Agent。
|
|
375
377
|
|
|
376
378
|
**CCC Agent 代码搜索:** `search_code` 使用项目自带的跨平台 ripgrep,不要求系统另行安装 `rg`。如果当前平台没有可用的 bundled/system ripgrep,会自动降级为内置 Node 搜索,并继续支持常用正则、glob、结果上限、中止和超时控制。
|
|
377
379
|
|
package/config.sample.json
CHANGED
package/deepccc-agent/README.md
CHANGED
|
@@ -53,7 +53,8 @@ export DEEPCCC_STREAMING="true"
|
|
|
53
53
|
Windows PowerShell:
|
|
54
54
|
|
|
55
55
|
```powershell
|
|
56
|
-
$env:DEEPCCC_API_KEY="sk-..."
|
|
56
|
+
$env:DEEPCCC_API_KEY="sk-..."
|
|
57
|
+
$env:DEEPCCC_PROVIDER="openai"
|
|
57
58
|
$env:DEEPCCC_BASE_URL="https://api.deepseek.com/v1"
|
|
58
59
|
$env:DEEPCCC_MODEL="deepseek-v4-pro"
|
|
59
60
|
$env:DEEPCCC_STREAMING="true"
|
|
@@ -69,8 +70,9 @@ $env:DEEPCCC_STREAMING="true"
|
|
|
69
70
|
也可以创建 `~/.deepccc/config.json`:
|
|
70
71
|
|
|
71
72
|
```json
|
|
72
|
-
{
|
|
73
|
-
"
|
|
73
|
+
{
|
|
74
|
+
"provider": "openai",
|
|
75
|
+
"apiKey": "sk-...",
|
|
74
76
|
"baseURL": "https://api.deepseek.com/v1",
|
|
75
77
|
"model": "deepseek-v4-pro",
|
|
76
78
|
"effort": "",
|
|
@@ -84,6 +86,12 @@ $env:DEEPCCC_STREAMING="true"
|
|
|
84
86
|
}
|
|
85
87
|
```
|
|
86
88
|
|
|
89
|
+
`provider` 可选 `openai` 或 `anthropic`,默认 `openai`,也可以通过
|
|
90
|
+
`DEEPCCC_PROVIDER` 或命令行 `--provider` 覆盖:
|
|
91
|
+
|
|
92
|
+
- `openai` 使用 OpenAI-compatible Chat Completions 协议,兼容 DeepSeek、OpenAI、LiteLLM、vLLM 等服务。
|
|
93
|
+
- `anthropic` 使用 Anthropic Messages 协议。配置中的 `baseURL` 可以继续填写同一个服务基址;DeepCCC 会为不带 `/v1` 的地址自动补上 `/v1`。`effort` 是 OpenAI/DeepSeek 扩展参数,在 Anthropic 模式下不会发送。
|
|
94
|
+
|
|
87
95
|
`streaming` 控制主对话是否使用流式请求,默认 `true`;也可以通过
|
|
88
96
|
`DEEPCCC_STREAMING=true|false` 覆盖。关闭后,终端会在整条模型响应完成后一次性显示结果。
|
|
89
97
|
|
|
@@ -95,11 +103,17 @@ $env:DEEPCCC_STREAMING="true"
|
|
|
95
103
|
deepccc
|
|
96
104
|
```
|
|
97
105
|
|
|
98
|
-
指定其他模型或 OpenAI-compatible 接口:
|
|
106
|
+
指定其他模型或 OpenAI-compatible 接口:
|
|
99
107
|
|
|
100
108
|
```bash
|
|
101
|
-
deepccc --base-url https://api.openai.com/v1 --api-key "$OPENAI_API_KEY" --model gpt-4.1
|
|
102
|
-
```
|
|
109
|
+
deepccc --base-url https://api.openai.com/v1 --api-key "$OPENAI_API_KEY" --model gpt-4.1
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
使用 Anthropic Messages 协议(同样支持流式输出):
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
deepccc --provider anthropic --base-url https://api.example.com --api-key "$API_KEY" --model claude-sonnet-4-6
|
|
116
|
+
```
|
|
103
117
|
|
|
104
118
|
指定工作目录:
|
|
105
119
|
|