chatccc 0.2.245 → 0.2.246
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 +8 -8
- package/deepccc-agent/README.md +28 -14
- package/deepccc-agent/os-prompts/darwin.md +8 -8
- package/deepccc-agent/os-prompts/linux.md +8 -8
- package/deepccc-agent/os-prompts/win32.md +9 -9
- package/deepccc-agent/package-lock.json +70 -2
- package/deepccc-agent/package.json +65 -63
- package/deepccc-agent/src/__tests__/chat-session.test.ts +741 -682
- package/deepccc-agent/src/__tests__/config.test.ts +34 -26
- package/deepccc-agent/src/__tests__/permissions.test.ts +199 -195
- package/deepccc-agent/src/__tests__/privacy.test.ts +12 -8
- package/deepccc-agent/src/cli.ts +20 -9
- package/deepccc-agent/src/config.ts +101 -88
- package/deepccc-agent/src/index.ts +86 -61
- package/package.json +74 -73
- package/src/__tests__/builtin-chat-session.test.ts +532 -522
- package/src/__tests__/builtin-permissions.test.ts +219 -211
- package/src/__tests__/ccc-adapter.test.ts +194 -185
- package/src/__tests__/session.test.ts +369 -369
- package/src/adapters/adapter-interface.ts +42 -42
- package/src/adapters/ccc-adapter.ts +150 -149
- package/src/session.ts +323 -323
package/README.md
CHANGED
|
@@ -208,15 +208,15 @@ 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
|
+
**API 支持不限于 DeepSeek。** 默认的 `provider: "openai"` 使用 OpenAI 兼容协议(`@ai-sdk/openai-compatible`),DeepSeek 只是出厂默认端点;设置 `provider: "anthropic"` 后改用 Anthropic Messages 协议(`@ai-sdk/anthropic`)。两种模式都支持流式输出,并复用相同的 API Key、Base URL 和模型配置。
|
|
220
220
|
|
|
221
221
|
| 服务 | Base URL 示例 | 说明 |
|
|
222
222
|
| --- | --- | --- |
|
|
@@ -371,7 +371,7 @@ Codex 的默认模型和推理强度可继续由 `~/.codex/config.toml` 管理
|
|
|
371
371
|
|
|
372
372
|
**微信:** 扫码登录后,在机器人私聊里发送 `/new` 或指定 Agent 的 `/new ...` 命令即可开始。功能与飞书基本一致,但展示为纯文本。
|
|
373
373
|
|
|
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。
|
|
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。
|
|
375
375
|
|
|
376
376
|
**CCC Agent 代码搜索:** `search_code` 使用项目自带的跨平台 ripgrep,不要求系统另行安装 `rg`。如果当前平台没有可用的 bundled/system ripgrep,会自动降级为内置 Node 搜索,并继续支持常用正则、glob、结果上限、中止和超时控制。
|
|
377
377
|
|
package/deepccc-agent/README.md
CHANGED
|
@@ -45,18 +45,19 @@ deepccc 的本地缓存优化实测命中率 **96.7%**,有效降低重复请
|
|
|
45
45
|
|
|
46
46
|
```bash
|
|
47
47
|
export DEEPCCC_API_KEY="sk-..."
|
|
48
|
-
export DEEPCCC_BASE_URL="https://api.deepseek.com/v1"
|
|
49
|
-
export DEEPCCC_MODEL="deepseek-v4-pro"
|
|
50
|
-
export DEEPCCC_STREAMING="true"
|
|
48
|
+
export DEEPCCC_BASE_URL="https://api.deepseek.com/v1"
|
|
49
|
+
export DEEPCCC_MODEL="deepseek-v4-pro"
|
|
50
|
+
export DEEPCCC_STREAMING="true"
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
Windows PowerShell:
|
|
54
54
|
|
|
55
55
|
```powershell
|
|
56
56
|
$env:DEEPCCC_API_KEY="sk-..."
|
|
57
|
-
$env:
|
|
58
|
-
$env:
|
|
59
|
-
$env:
|
|
57
|
+
$env:DEEPCCC_PROVIDER="openai"
|
|
58
|
+
$env:DEEPCCC_BASE_URL="https://api.deepseek.com/v1"
|
|
59
|
+
$env:DEEPCCC_MODEL="deepseek-v4-pro"
|
|
60
|
+
$env:DEEPCCC_STREAMING="true"
|
|
60
61
|
```
|
|
61
62
|
|
|
62
63
|
也兼容这些 DeepSeek 别名:
|
|
@@ -70,22 +71,29 @@ $env:DEEPCCC_STREAMING="true"
|
|
|
70
71
|
|
|
71
72
|
```json
|
|
72
73
|
{
|
|
74
|
+
"provider": "openai",
|
|
73
75
|
"apiKey": "sk-...",
|
|
74
76
|
"baseURL": "https://api.deepseek.com/v1",
|
|
75
|
-
"model": "deepseek-v4-pro",
|
|
76
|
-
"effort": "",
|
|
77
|
-
"streaming": true,
|
|
77
|
+
"model": "deepseek-v4-pro",
|
|
78
|
+
"effort": "",
|
|
79
|
+
"streaming": true,
|
|
78
80
|
"rawStreamLogs": {
|
|
79
81
|
"enabled": false,
|
|
80
82
|
"maxBytesPerTurn": 1048576,
|
|
81
83
|
"retentionDays": 7,
|
|
82
84
|
"keepCompleted": false
|
|
83
85
|
}
|
|
84
|
-
}
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
`
|
|
88
|
-
`
|
|
86
|
+
}
|
|
87
|
+
```
|
|
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
|
+
|
|
95
|
+
`streaming` 控制主对话是否使用流式请求,默认 `true`;也可以通过
|
|
96
|
+
`DEEPCCC_STREAMING=true|false` 覆盖。关闭后,终端会在整条模型响应完成后一次性显示结果。
|
|
89
97
|
|
|
90
98
|
## 命令行交互
|
|
91
99
|
|
|
@@ -101,6 +109,12 @@ deepccc
|
|
|
101
109
|
deepccc --base-url https://api.openai.com/v1 --api-key "$OPENAI_API_KEY" --model gpt-4.1
|
|
102
110
|
```
|
|
103
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
|
+
```
|
|
117
|
+
|
|
104
118
|
指定工作目录:
|
|
105
119
|
|
|
106
120
|
```bash
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
## macOS Command-Line Notes
|
|
2
|
-
|
|
3
|
-
You are running on macOS. run_command executes through zsh, a POSIX shell. Quoting follows standard POSIX conventions (the same habits you already know from bash):
|
|
4
|
-
|
|
5
|
-
- Double quotes are stripped and group an argument containing spaces: `echo "hello world"` prints `hello world`.
|
|
6
|
-
- Single quotes are literal quoting characters: `'a b'` is a single argument `a b`.
|
|
7
|
-
- Backticks and `$(...)` perform command substitution; quote them if you need literal text.
|
|
8
|
-
- Paths use `/` separators and `~` expands to the home directory.
|
|
1
|
+
## macOS Command-Line Notes
|
|
2
|
+
|
|
3
|
+
You are running on macOS. run_command executes through zsh, a POSIX shell. Quoting follows standard POSIX conventions (the same habits you already know from bash):
|
|
4
|
+
|
|
5
|
+
- Double quotes are stripped and group an argument containing spaces: `echo "hello world"` prints `hello world`.
|
|
6
|
+
- Single quotes are literal quoting characters: `'a b'` is a single argument `a b`.
|
|
7
|
+
- Backticks and `$(...)` perform command substitution; quote them if you need literal text.
|
|
8
|
+
- Paths use `/` separators and `~` expands to the home directory.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
## Linux Command-Line Notes
|
|
2
|
-
|
|
3
|
-
You are running on Linux. run_command executes through a POSIX shell (bash/sh). Quoting follows standard POSIX conventions (the same habits you already know from bash):
|
|
4
|
-
|
|
5
|
-
- Double quotes are stripped and group an argument containing spaces: `echo "hello world"` prints `hello world`.
|
|
6
|
-
- Single quotes are literal quoting characters: `'a b'` is a single argument `a b`.
|
|
7
|
-
- Backticks and `$(...)` perform command substitution; quote them if you need literal text.
|
|
8
|
-
- Paths use `/` separators and `~` expands to the home directory.
|
|
1
|
+
## Linux Command-Line Notes
|
|
2
|
+
|
|
3
|
+
You are running on Linux. run_command executes through a POSIX shell (bash/sh). Quoting follows standard POSIX conventions (the same habits you already know from bash):
|
|
4
|
+
|
|
5
|
+
- Double quotes are stripped and group an argument containing spaces: `echo "hello world"` prints `hello world`.
|
|
6
|
+
- Single quotes are literal quoting characters: `'a b'` is a single argument `a b`.
|
|
7
|
+
- Backticks and `$(...)` perform command substitution; quote them if you need literal text.
|
|
8
|
+
- Paths use `/` separators and `~` expands to the home directory.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
## Windows Command-Line Notes
|
|
2
|
-
|
|
3
|
-
You are running on Windows. run_command executes through cmd.exe, not bash. cmd quoting differs from bash and breaks common habits:
|
|
4
|
-
|
|
5
|
-
- Double quotes are NOT stripped: `echo "hello world"` prints `"hello world"` (quotes included), and `"a b" "c"` passes the literal arguments `"a b"` and `"c"` (quotes included) to the program.
|
|
6
|
-
- Single quotes are NOT quoting characters in cmd.exe: `'a b'` is parsed as two arguments (`'a` and `b'`).
|
|
7
|
-
- Multi-line or quote-heavy inline scripts (python -c "...\n...", ssh host "bash -c '...'") frequently break under cmd quoting; write the script to a temporary file and execute that file instead.
|
|
8
|
-
- PowerShell-only syntax (Get-Item, 2>$null, Select-Object) is unavailable; the shell is cmd.exe unless you explicitly invoke powershell.
|
|
9
|
-
- To pass an argument containing spaces, use double quotes and expect the quotes to reach the program literally; when the target accepts file input, prefer writing the value to a file.
|
|
1
|
+
## Windows Command-Line Notes
|
|
2
|
+
|
|
3
|
+
You are running on Windows. run_command executes through cmd.exe, not bash. cmd quoting differs from bash and breaks common habits:
|
|
4
|
+
|
|
5
|
+
- Double quotes are NOT stripped: `echo "hello world"` prints `"hello world"` (quotes included), and `"a b" "c"` passes the literal arguments `"a b"` and `"c"` (quotes included) to the program.
|
|
6
|
+
- Single quotes are NOT quoting characters in cmd.exe: `'a b'` is parsed as two arguments (`'a` and `b'`).
|
|
7
|
+
- Multi-line or quote-heavy inline scripts (python -c "...\n...", ssh host "bash -c '...'") frequently break under cmd quoting; write the script to a temporary file and execute that file instead.
|
|
8
|
+
- PowerShell-only syntax (Get-Item, 2>$null, Select-Object) is unavailable; the shell is cmd.exe unless you explicitly invoke powershell.
|
|
9
|
+
- To pass an argument containing spaces, use double quotes and expect the quotes to reach the program literally; when the target accepts file input, prefer writing the value to a file.
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "deepccc",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.16",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "deepccc",
|
|
9
|
-
"version": "0.1.
|
|
9
|
+
"version": "0.1.16",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
|
+
"@ai-sdk/anthropic": "^3.0.105",
|
|
12
13
|
"@ai-sdk/openai-compatible": "^2.0.47",
|
|
13
14
|
"@vscode/ripgrep": "^1.18.0",
|
|
14
15
|
"ai": "^6.0.184"
|
|
@@ -26,6 +27,52 @@
|
|
|
26
27
|
"node": ">=20"
|
|
27
28
|
}
|
|
28
29
|
},
|
|
30
|
+
"node_modules/@ai-sdk/anthropic": {
|
|
31
|
+
"version": "3.0.105",
|
|
32
|
+
"resolved": "https://registry.npmjs.org/@ai-sdk/anthropic/-/anthropic-3.0.105.tgz",
|
|
33
|
+
"integrity": "sha512-6B9UjgK14JwG4PtyhHKMQrqg49s90FClsreNZ9HmMdSWZ9tJFHuYmy4cauS/BqO/6rKC+qcNEXTP45+qivdypA==",
|
|
34
|
+
"license": "Apache-2.0",
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"@ai-sdk/provider": "3.0.14",
|
|
37
|
+
"@ai-sdk/provider-utils": "4.0.41"
|
|
38
|
+
},
|
|
39
|
+
"engines": {
|
|
40
|
+
"node": ">=18"
|
|
41
|
+
},
|
|
42
|
+
"peerDependencies": {
|
|
43
|
+
"zod": "^3.25.76 || ^4.1.8"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider": {
|
|
47
|
+
"version": "3.0.14",
|
|
48
|
+
"resolved": "https://registry.npmjs.org/@ai-sdk/provider/-/provider-3.0.14.tgz",
|
|
49
|
+
"integrity": "sha512-5X1k57JBJ4H7H1QjX7CnJYAB1I19r/trVZTMcSms7/kLNZ8RaU4Nt2agcwZzv82Hfx6Q7/TOLU7agAKeFfc8cA==",
|
|
50
|
+
"license": "Apache-2.0",
|
|
51
|
+
"dependencies": {
|
|
52
|
+
"json-schema": "^0.4.0"
|
|
53
|
+
},
|
|
54
|
+
"engines": {
|
|
55
|
+
"node": ">=18"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils": {
|
|
59
|
+
"version": "4.0.41",
|
|
60
|
+
"resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-4.0.41.tgz",
|
|
61
|
+
"integrity": "sha512-I7hhjfw01yEI8NkuAsT8Mv6xbWFr/lqLXMdaJQ2zWfXEpxog1eT7skDcv1+RY29/+5btzH8wD+vVvy48bk9oNQ==",
|
|
62
|
+
"license": "Apache-2.0",
|
|
63
|
+
"dependencies": {
|
|
64
|
+
"@ai-sdk/provider": "3.0.14",
|
|
65
|
+
"@standard-schema/spec": "^1.1.0",
|
|
66
|
+
"eventsource-parser": "^3.0.8",
|
|
67
|
+
"undici": "^5.29.0"
|
|
68
|
+
},
|
|
69
|
+
"engines": {
|
|
70
|
+
"node": ">=18"
|
|
71
|
+
},
|
|
72
|
+
"peerDependencies": {
|
|
73
|
+
"zod": "^3.25.76 || ^4.1.8"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
29
76
|
"node_modules/@ai-sdk/gateway": {
|
|
30
77
|
"version": "3.0.143",
|
|
31
78
|
"resolved": "https://registry.npmjs.org/@ai-sdk/gateway/-/gateway-3.0.143.tgz",
|
|
@@ -530,6 +577,15 @@
|
|
|
530
577
|
"node": ">=18"
|
|
531
578
|
}
|
|
532
579
|
},
|
|
580
|
+
"node_modules/@fastify/busboy": {
|
|
581
|
+
"version": "2.1.1",
|
|
582
|
+
"resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz",
|
|
583
|
+
"integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==",
|
|
584
|
+
"license": "MIT",
|
|
585
|
+
"engines": {
|
|
586
|
+
"node": ">=14"
|
|
587
|
+
}
|
|
588
|
+
},
|
|
533
589
|
"node_modules/@jridgewell/sourcemap-codec": {
|
|
534
590
|
"version": "1.5.5",
|
|
535
591
|
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
|
|
@@ -1749,6 +1805,18 @@
|
|
|
1749
1805
|
"node": ">=14.17"
|
|
1750
1806
|
}
|
|
1751
1807
|
},
|
|
1808
|
+
"node_modules/undici": {
|
|
1809
|
+
"version": "5.29.0",
|
|
1810
|
+
"resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz",
|
|
1811
|
+
"integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==",
|
|
1812
|
+
"license": "MIT",
|
|
1813
|
+
"dependencies": {
|
|
1814
|
+
"@fastify/busboy": "^2.0.0"
|
|
1815
|
+
},
|
|
1816
|
+
"engines": {
|
|
1817
|
+
"node": ">=14.0"
|
|
1818
|
+
}
|
|
1819
|
+
},
|
|
1752
1820
|
"node_modules/undici-types": {
|
|
1753
1821
|
"version": "6.21.0",
|
|
1754
1822
|
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
|
|
@@ -1,63 +1,65 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "deepccc",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "A lightweight
|
|
5
|
-
"license": "Apache-2.0",
|
|
6
|
-
"keywords": [
|
|
7
|
-
"agent",
|
|
8
|
-
"deepseek",
|
|
9
|
-
"coding-agent",
|
|
10
|
-
"openai-compatible",
|
|
11
|
-
"
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"test
|
|
47
|
-
"
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
"@
|
|
52
|
-
"ai": "^
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "deepccc",
|
|
3
|
+
"version": "0.1.16",
|
|
4
|
+
"description": "A lightweight coding agent with OpenAI-compatible and Anthropic Messages API support.",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"agent",
|
|
8
|
+
"deepseek",
|
|
9
|
+
"coding-agent",
|
|
10
|
+
"openai-compatible",
|
|
11
|
+
"anthropic",
|
|
12
|
+
"cli"
|
|
13
|
+
],
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git+https://github.com/wzj998/deepccc-agent.git"
|
|
17
|
+
},
|
|
18
|
+
"bugs": {
|
|
19
|
+
"url": "https://github.com/wzj998/deepccc-agent/issues"
|
|
20
|
+
},
|
|
21
|
+
"homepage": "https://github.com/wzj998/deepccc-agent#readme",
|
|
22
|
+
"type": "module",
|
|
23
|
+
"main": "./dist/index.js",
|
|
24
|
+
"types": "./dist/index.d.ts",
|
|
25
|
+
"exports": {
|
|
26
|
+
".": {
|
|
27
|
+
"types": "./dist/index.d.ts",
|
|
28
|
+
"import": "./dist/index.js"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"bin": {
|
|
32
|
+
"deepccc": "bin/deepccc.mjs"
|
|
33
|
+
},
|
|
34
|
+
"files": [
|
|
35
|
+
"dist/",
|
|
36
|
+
"bin/",
|
|
37
|
+
"docs/",
|
|
38
|
+
"os-prompts/",
|
|
39
|
+
"package.json",
|
|
40
|
+
"README.md",
|
|
41
|
+
"LICENSE"
|
|
42
|
+
],
|
|
43
|
+
"scripts": {
|
|
44
|
+
"build": "node node_modules/typescript/bin/tsc -p tsconfig.build.json",
|
|
45
|
+
"prepack": "node node_modules/typescript/bin/tsc -p tsconfig.build.json",
|
|
46
|
+
"test": "vitest run",
|
|
47
|
+
"test:watch": "vitest",
|
|
48
|
+
"typecheck": "node node_modules/typescript/bin/tsc --noEmit"
|
|
49
|
+
},
|
|
50
|
+
"dependencies": {
|
|
51
|
+
"@ai-sdk/anthropic": "^3.0.105",
|
|
52
|
+
"@ai-sdk/openai-compatible": "^2.0.47",
|
|
53
|
+
"@vscode/ripgrep": "^1.18.0",
|
|
54
|
+
"ai": "^6.0.184"
|
|
55
|
+
},
|
|
56
|
+
"devDependencies": {
|
|
57
|
+
"@types/node": "^20.0.0",
|
|
58
|
+
"tsx": "^4.0.0",
|
|
59
|
+
"typescript": "^5.0.0",
|
|
60
|
+
"vitest": "^3.2.4"
|
|
61
|
+
},
|
|
62
|
+
"engines": {
|
|
63
|
+
"node": ">=20"
|
|
64
|
+
}
|
|
65
|
+
}
|