@mcptoolshop/claude-synergy 0.0.0 → 1.0.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/CHANGELOG.md +126 -0
- package/CONTRIBUTING.md +101 -0
- package/LICENSE +21 -0
- package/README.es.md +340 -0
- package/README.fr.md +340 -0
- package/README.hi.md +340 -0
- package/README.it.md +340 -0
- package/README.ja.md +340 -0
- package/README.md +337 -5
- package/README.pt-BR.md +340 -0
- package/README.zh.md +340 -0
- package/dist/chunk-HCIZPSW4.js +469 -0
- package/dist/chunk-YFGUTT22.js +754 -0
- package/dist/cli.js +2090 -0
- package/dist/fetch-playwright-HQ6OTMSQ.js +80 -0
- package/dist/ingest-3LJNQWS7.js +6 -0
- package/dist/mcp-server.js +497 -0
- package/package.json +81 -7
- package/products.yaml +456 -0
- package/schema-vec.sql +43 -0
- package/schema.sql +155 -0
- package/synergies/01-skill-portability.md +33 -0
- package/synergies/02-mcp-server-portability.md +33 -0
- package/synergies/03-design-to-code-bundle.md +33 -0
- package/synergies/04-computer-use-cross-surface.md +33 -0
- package/synergies/05-ollama-cost-shifting.md +36 -0
- package/synergies/06-agent-sdk-graduation.md +34 -0
- package/synergies/07-code-review-in-ci.md +33 -0
- package/synergies/08-universal-skill-md-format.md +46 -0
- package/synergies/09-mcp-across-seven-surfaces.md +48 -0
- package/synergies/10-anthropic-byok-across-surfaces.md +46 -0
- package/synergies/11-claude-code-orchestrates-aider.md +52 -0
- package/synergies/12-mcp-config-format-gotcha.md +60 -0
- package/synergies/INDEX.md +47 -0
package/README.zh.md
ADDED
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="README.ja.md">日本語</a> | <a href="README.md">English</a> | <a href="README.es.md">Español</a> | <a href="README.fr.md">Français</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center"><img src="https://raw.githubusercontent.com/mcp-tool-shop-org/brand/main/logos/claude-synergy/readme.png" alt="Claude Synergy" width="400"></p>
|
|
6
|
+
|
|
7
|
+
一个本地、可查询的镜像,记录了 Anthropic 及其相关人工智能开发工具的所有更新日志,此外,还提供一个精心策划的“协同”层,描述了跨产品的工作流程,以便嵌入在系统中的大型语言模型(LLM)代理能够了解该系统的功能。
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
|
|
11
|
+
[](https://github.com/mcp-tool-shop-org/claude-synergy/actions/workflows/test.yml) [](https://www.npmjs.com/package/@mcptoolshop/claude-synergy) [](#license) [](https://mcp-tool-shop-org.github.io/claude-synergy/)
|
|
12
|
+
|
|
13
|
+
请提供需要翻译的英文文本。
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
$ hk query redact
|
|
17
|
+
2026-05-11 anthropic-cli@1.7.1 [changed] redact api-key headers in debug logs
|
|
18
|
+
2026-05-11 anthropic-sdk-java@2.31.0 [changed] redact api-key headers in debug logs
|
|
19
|
+
2026-05-11 anthropic-sdk-go@1.42.0 [changed] redact api-key headers in debug logs
|
|
20
|
+
2026-05-07 anthropic-sdk-typescript@0.95.1 [changed] redact api-key headers in debug logs
|
|
21
|
+
|
|
22
|
+
4 results
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**通过一次完整的FTS查询,我们发现了一个跨SDK的安全修复方案,但单个版本的更新日志中并未将其标记为CVE漏洞。** 这就是最直观的演示:当所有更新日志并排比较时,隐藏的模式就会显现出来。
|
|
26
|
+
|
|
27
|
+
代码仓库:[github.com/mcp-tool-shop-org/claude-synergy](https://github.com/mcp-tool-shop-org/claude-synergy)
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 问题
|
|
32
|
+
|
|
33
|
+
Claude Code 命令行工具大约每天都会有新版本发布。Claude API 的发布频率也几乎与之相同。SDK 的版本与命令行工具的发布同步。Claude Design、Cowork、Chat 和移动端应用通过统一的帮助中心进行更新。MCP 生态系统每周发布约 200-300 个新服务器。此外,还有 7 个主要的 AI 开发工具(Cursor、Aider、Continue、Copilot、Cody、Windsurf),它们各自按照自己的节奏发布更新日志。
|
|
34
|
+
|
|
35
|
+
这些系统中的大型语言模型(LLM)代理具有固定的训练截止时间,这意味着它们所掌握的知识存在滞后。 每天,这种差距都在扩大。 系统会不断推出新的功能,而这些功能可能超出了代理的知识范围。 即使错误被修复,代理仍然可能无法绕过这些问题。 还会添加新的环境变量和配置项,但代理可能永远不会建议使用它们。 涉及多个模块的复杂工作流程仍然未被发现。
|
|
36
|
+
|
|
37
|
+
**这个项目填补了空白。** “协同”部分使其成为一个产品,而不仅仅是一个镜像。
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 这里有什么?
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
claude-synergy/
|
|
45
|
+
├── products/ # 44 product directories (1,186 release files)
|
|
46
|
+
│ ├── claude-code/ # Anthropic CLI — 117 releases
|
|
47
|
+
│ ├── claude-agent-sdk-{python,typescript}/ # Agent SDKs
|
|
48
|
+
│ ├── anthropic-sdk-{python,typescript,go,java,csharp,ruby,php}/ # 7 language SDKs
|
|
49
|
+
│ ├── claude-api/ # Platform release notes
|
|
50
|
+
│ ├── anthropic-apps/ # Design / Cowork / Chat / Mobile (Help Center feed)
|
|
51
|
+
│ ├── claude-code-action/ # GitHub Action
|
|
52
|
+
│ ├── anthropic-cli/ # `ant` CLI
|
|
53
|
+
│ ├── mcp-{python,typescript,go,java,csharp,kotlin,ruby,swift,rust,php}-sdk/
|
|
54
|
+
│ ├── mcp-{spec,inspector,registry,mcpb,conformance}/
|
|
55
|
+
│ ├── cursor/ # RSS feed
|
|
56
|
+
│ ├── aider/ # raw HISTORY.md
|
|
57
|
+
│ ├── continue-{dev,cli}/ # GH releases
|
|
58
|
+
│ ├── cody-enterprise/ # filtered Sourcegraph RSS
|
|
59
|
+
│ ├── github-copilot/ # HTML scrape (github.blog)
|
|
60
|
+
│ ├── vscode-copilot-chat/ # HTML scrape (code.visualstudio.com)
|
|
61
|
+
│ ├── windsurf/ # Playwright fetcher (CSR-only changelog)
|
|
62
|
+
│ ├── skills/ # Anthropic Skills catalog
|
|
63
|
+
│ └── plugins-{official,community,knowledge-work}/ # Plugin marketplaces
|
|
64
|
+
├── synergies/ # 12 curated cross-product workflows
|
|
65
|
+
├── src/ # TypeScript implementation
|
|
66
|
+
├── test/ # 382 tests (unit, integration, regression, smoke)
|
|
67
|
+
├── data/claude-synergy.db # SQLite database (created by `hk init`)
|
|
68
|
+
├── schema.sql # Tier 2a tables (products, releases, changes, entities, FTS5, …)
|
|
69
|
+
├── schema-vec.sql # Tier 2b tables (chunks, chunks_vec, chunks_fts)
|
|
70
|
+
├── SOURCES.md # 5-tier source landscape with fetch strategies
|
|
71
|
+
└── URGENT_FINDINGS.md # 23 actionable items surfaced from the corpus
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**实时数据(截至 v1.0.0 版本):** 44 个产品 / 1,186 个发布文件 / 6,042 次变更 / 1,225 个实体 / 12 个协同关系 / 382 个测试。
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## 状态:所有层级产品已发货
|
|
79
|
+
|
|
80
|
+
| 等级;层级。 | 状态。 | 有什么东西? |
|
|
81
|
+
|------|--------|--------------|
|
|
82
|
+
| 1. -- bootstrap (Markdown 文档) | ✅ 已发货。 | “Study-swarm”项目在2026年1月至5月期间发布了706个文件,随后,在第四阶段的扩展中,该数量增加到1186个。 |
|
|
83
|
+
| 2a - SQLite + FTS5 + 命令行界面。 | ✅ 已发货。 | `hk` 命令行工具;包含 15 个子命令;数据摄取速度低于 300 毫秒。 |
|
|
84
|
+
| 2b — sqlite-vec + 上下文检索 | ✅ 已发货。 | 提供商接口(无/结构化/ollama/claude-haiku 上下文 × ollama/voyage 嵌入 × 无/ollama-judge/voyage/cohere 重新排序)。 |
|
|
85
|
+
| 3. 同步 + MCP 服务器。 | ✅ 已发货。 | `hk fetch / sync / seed-markers`;`claude-synergy-mcp` 通过标准输入/输出接口提供了 8 个工具。 |
|
|
86
|
+
| 4a — 扩展范围,超越 Anthropic 的范畴。 | ✅ 已发货。 | +15 个 MCP SDK,Cursor (RSS),Aider (HISTORY.md),Continue.dev,Cody Enterprise (已过滤的 RSS)。 |
|
|
87
|
+
| 4b — HTML 网页抓取工具。 | ✅ 已发货。 | GitHub Copilot + VS Code 聊天功能 (Windsurf 需要 Playwright — v0.7) |
|
|
88
|
+
| 4c - 将HTML内容转换为Markdown格式并导入。 | ✅ 已发货。 | HTML 代码块(在 Copilot、VS Code 或 Cursor 中)现在针对 FTS5 和实体提取功能,会生成每条要点对应的一行数据。 |
|
|
89
|
+
| 4d — playwright + MCP 注册 + YAML 配置文件。 | ✅ 已发货。 | 使用 Playwright 进行网页抓取;Smithery + 官方 MCP 注册信息作为第四级目录;产品信息已整合到 `products.yaml` 文件中。 |
|
|
90
|
+
|
|
91
|
+
v0.8 及后续版本的开发计划,请参考 [URGENT_FINDINGS.md](URGENT_FINDINGS.md) 文件以及相关问题列表。
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 安全与数据模型
|
|
96
|
+
|
|
97
|
+
这个工具在本地运行。**涉及的数据:** 一个派生的 SQLite 数据库和 markdown 发布文件,所有数据都可以重新生成。**网络:** 仅在您运行 `hk fetch`/`hk sync`(GitHub API、RSS 订阅源、变更日志页面、MCP 注册表)或 `hk embed` 并使用远程提供商(Voyage、Cohere)时,才会进行出站 HTTPS 请求。**安全:** 从环境变量中读取 `GITHUB_TOKEN`、`VOYAGE_API_KEY`、`COHERE_API_KEY`、`ANTHROPIC_API_KEY`,这些信息不会被记录,也不会存储到磁盘。**没有遥测功能。** 请参阅 [SECURITY.md](SECURITY.md) 了解报告政策。
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 安装
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
git clone https://github.com/mcp-tool-shop-org/claude-synergy
|
|
105
|
+
cd claude-synergy
|
|
106
|
+
pnpm install
|
|
107
|
+
pnpm build # produces dist/cli.js + dist/mcp-server.js
|
|
108
|
+
npm link # makes `hk` and `claude-synergy-mcp` available globally
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
对于无需构建的开发,可以直接使用 `npx tsx src/cli.ts ...`。 **pnpm 10 的一个问题:** `pnpm dev` 会在 `--` 之后忽略 CLI 标志;对于开发,请使用 `npx tsx`。
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## CLI 命令行界面 — 15 个命令
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
# DB lifecycle
|
|
119
|
+
hk init # create DB with schema
|
|
120
|
+
hk ingest # parse products/*/releases/*.md → DB (idempotent)
|
|
121
|
+
hk embed # generate chunks + embeddings (sqlite-vec)
|
|
122
|
+
hk fetch [--product X] # incremental pull from sources
|
|
123
|
+
hk sync # combined fetch → ingest → embed (cron-friendly)
|
|
124
|
+
hk seed-markers # one-time setup after initial corpus
|
|
125
|
+
|
|
126
|
+
# Search
|
|
127
|
+
hk query "managed agents" # FTS5 keyword search
|
|
128
|
+
hk hybrid "credential exfiltration" # FTS5 + vec hybrid via RRF (+ optional --rerank)
|
|
129
|
+
|
|
130
|
+
# Entity lookups
|
|
131
|
+
hk env-var CLAUDE_CODE_WORKFLOWS # when introduced + history
|
|
132
|
+
hk command code-review # slash command + rename history
|
|
133
|
+
hk model claude-opus-4-7 # model launch + mentions across products
|
|
134
|
+
hk cve CVE-2025-66414 # CVE references in corpus
|
|
135
|
+
|
|
136
|
+
# Browsing
|
|
137
|
+
hk latest [--product X] [--limit N] # recent releases
|
|
138
|
+
hk products # list all 44 with counts
|
|
139
|
+
hk top env_var # most-mentioned by entity type
|
|
140
|
+
# (env_var, slash_command, cli_option,
|
|
141
|
+
# model_id, beta_header, cve, ghsa,
|
|
142
|
+
# hook_event, setting_key)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 示例工作流程
|
|
148
|
+
|
|
149
|
+
**查找 Claude Code 环境变量的引入时间:**
|
|
150
|
+
```
|
|
151
|
+
$ hk env-var CLAUDE_CODE_WORKFLOWS
|
|
152
|
+
env var CLAUDE_CODE_WORKFLOWS — 1 mention:
|
|
153
|
+
|
|
154
|
+
2026-05-21 claude-code@2.1.147 [added]
|
|
155
|
+
Added the `Workflow` tool for deterministic multi-agent orchestration.
|
|
156
|
+
It is off by default — set `CLAUDE_CODE_WORKFLOWS=1` to enable
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
**跟踪跨 SDK 的破坏性变更:**
|
|
160
|
+
```
|
|
161
|
+
$ hk query TodoWrite --limit 5
|
|
162
|
+
2026-05-15 claude-agent-sdk-python@0.2.82 [breaking] Headless and SDK sessions now use Task tools...
|
|
163
|
+
2026-05-14 claude-agent-sdk-typescript@0.3.142 [breaking] Headless and SDK sessions now use Task tools...
|
|
164
|
+
2026-05-08 claude-agent-sdk-typescript@0.2.136 [deprecated] Deprecated TodoWrite tool...
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**规划模型迁移:**
|
|
168
|
+
```
|
|
169
|
+
$ hk model claude-opus-4-20250514
|
|
170
|
+
model id claude-opus-4-20250514 — 2 mentions:
|
|
171
|
+
|
|
172
|
+
2026-04-14 anthropic-sdk-python@0.94.0 [deprecated]
|
|
173
|
+
Deprecation of the Claude Sonnet 4 model and the Claude Opus 4 model,
|
|
174
|
+
with retirement on the Claude API scheduled for June 15, 2026...
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
**对整个语料库进行语义搜索:**
|
|
178
|
+
```
|
|
179
|
+
$ hk hybrid "credential exfiltration" --limit 3
|
|
180
|
+
2026-03-25 claude-code@2.1.83 [added] vec#5 rrf=0.0154
|
|
181
|
+
Added `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1` to strip Anthropic and
|
|
182
|
+
cloud provider credentials from subprocess environments...
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
查询中永远不会出现 "env_scrub",vec 通过语义相似性将其呈现出来。 纯 FTS5 完全无法识别它。
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## MCP 服务器 — 允许您的代理访问此语料库
|
|
190
|
+
|
|
191
|
+
`claude-synergy-mcp` 通过标准输入/输出 (stdio) 暴露 8 个工具。 通过 `~/.claude/.mcp.json` 或您项目的 `.mcp.json` 文件,将其连接到 Claude Code(或任何 MCP 主机)。
|
|
192
|
+
|
|
193
|
+
```json
|
|
194
|
+
{
|
|
195
|
+
"mcpServers": {
|
|
196
|
+
"claude-synergy": {
|
|
197
|
+
"command": "claude-synergy-mcp",
|
|
198
|
+
"env": {
|
|
199
|
+
"CLAUDE_SYNERGY_DB": "/path/to/claude-synergy/data/claude-synergy.db"
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
对于 GitHub Copilot 的 `.vscode/mcp.json`,请使用 `servers` 包装器,而不是 `mcpServers`(请参阅 [synergy 12](synergies/12-mcp-config-format-gotcha.md))。
|
|
207
|
+
|
|
208
|
+
暴露的工具:
|
|
209
|
+
|
|
210
|
+
| 工具 | 用途 |
|
|
211
|
+
|---|---|
|
|
212
|
+
| `search` | 混合 FTS5 + vec;可选的重新排序。 默认模式用于自然语言查询。 |
|
|
213
|
+
| `lookup_entity` | 精确的实体历史记录:环境变量、斜杠命令、模型 ID、CVE 等。 |
|
|
214
|
+
| `latest_releases` | 产品(或单个产品)的最新发布版本 |
|
|
215
|
+
| `get_release` | 单个发布版本的完整内容 |
|
|
216
|
+
| `list_products` | 带有计数和最新版本的枚举 |
|
|
217
|
+
| `top_entities` | 按类型提及最多的实体 |
|
|
218
|
+
| `list_synergies` | 精心策划的跨产品工作流程 |
|
|
219
|
+
| `read_synergy` | 单个协同文件(synergy file)的完整文本 |
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## 数据源 — 5 个层级,6 种抓取策略
|
|
224
|
+
|
|
225
|
+
完整的详细信息请参阅 [SOURCES.md](SOURCES.md)。
|
|
226
|
+
|
|
227
|
+
- **第一层级 (GitHub 发布):** `gh api repos/<owner>/<repo>/releases`,涵盖 22 个产品,包括 Anthropic SDK(7 种语言)、Agent SDK(2 个)、ant CLI、claude-code-action、claude-code-security-review 以及 15 个 MCP 生态系统 SDK。
|
|
228
|
+
- **第二层级 (原始 markdown):** `anthropics/claude-code/CHANGELOG.md` + `Aider-AI/aider/HISTORY.md`
|
|
229
|
+
- **第三层级 (HTML / RSS):** `platform.claude.com/docs/release-notes`、`support.claude.com/articles/12138966`、`cursor.com/changelog/rss.xml`(已过滤)、`sourcegraph.com/changelog/featured.rss`、`github.blog/changelog/label/copilot/`、`code.visualstudio.com/updates/v1_NNN`
|
|
230
|
+
- **第四层级 (目录):** `anthropics/skills`、`claude-plugins-{official,community}`、`knowledge-work-plugins`
|
|
231
|
+
- **第五层级 (建议):** `@ClaudeCodeLog` X 账号;marckrenn 变更日志镜像
|
|
232
|
+
|
|
233
|
+
抓取策略:`gh-releases | rss | raw-changelog | html-scrape | catalog | playwright`。 增加一个新产品,就在 `products.yaml` 文件中增加一条记录。
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## 协同(Synergies) — 解锁的内容
|
|
238
|
+
|
|
239
|
+
12 个精心策划的跨产品工作流程。 每个工作流程都描述了一种组合模式、触发正确的答案的因素,以及启用它的变更日志证据。 示例:
|
|
240
|
+
|
|
241
|
+
- **08 — 通用 SKILL.md 格式** (代码 + 光标 + Codex):一位技能作者,三个人工智能代理读取。
|
|
242
|
+
- **09 — MCP 在七个表面上的应用** (代码 + 光标 + 继续 + Copilot + Windsurf + Cody + API):一个二进制文件,所有代理都使用。
|
|
243
|
+
- **10 — Anthropic BYOK 在各个表面上的应用**:一个 API 密钥,用于在 7 个编辑器中使用 Claude,并实现统一的计费。
|
|
244
|
+
- **11 — Claude Code 协调 Aider**:将成本较高的编辑任务转移到廉价模型,同时 Claude 进行规划。
|
|
245
|
+
- **12 — MCP 配置格式的常见问题**:Copilot 使用 `servers`,其他组件使用 `mcpServers`。
|
|
246
|
+
|
|
247
|
+
完整的索引请参考 [synergies/INDEX.md](synergies/INDEX.md)。
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## 测试
|
|
252
|
+
|
|
253
|
+
Vitest 测试套件覆盖单元测试、集成测试、回归测试和初步测试。 **[test-spec-3.md](test-spec-3.md) 是当前版本 (v0.7.0) 的权威文档**;[test-spec.md](test-spec.md) (v1) 和 [test-spec-2.md](test-spec-2.md) (v2) 仍然保存在代码库中,作为设计演进的历史记录。
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
pnpm test # unit + integration + regression (~16s, 382 tests)
|
|
257
|
+
pnpm test:watch # interactive
|
|
258
|
+
pnpm test:coverage # generate coverage/index.html (thresholds: 78/75/85/78)
|
|
259
|
+
pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
布局:
|
|
263
|
+
|
|
264
|
+
| 目录 | 涵盖内容 |
|
|
265
|
+
|-----|----------------|
|
|
266
|
+
| `test/unit/` | 模块级别 — 提取、导入、查询、数据库、嵌入、混合、获取 + 所有提供商 + 获取 RSS/变更日志/HTML + 获取 MCP 注册表 + 获取 Playwright + 产品配置 |
|
|
267
|
+
| `test/integration/` | 端到端 — 流水线、同步、MCP 服务器 (stdio JSON-RPC)、命令行界面 |
|
|
268
|
+
| `test/regression/` | §8.1–§8.18 — 每个部分都用于防止开发过程中出现的实际错误。 |
|
|
269
|
+
| `test/smoke/` | 可选的完整语料库,用于测试 `products/` 目录下的文件 (1143 个文件)。 |
|
|
270
|
+
| `test/fixtures/` | 3 个模拟产品 + 模拟 HTTP 响应 (RSS / GH / Voyage / Cohere / Ollama / Anthropic / Smithery / 官方 MCP 注册表) |
|
|
271
|
+
| `test/helpers/` | `temp-db.ts`, `fetch-mock.ts`, `mcp-client.ts`, `seed-corpus.ts`, `golden-vectors.ts`, `playwright-mock.ts`, `yaml-fixtures.ts` |
|
|
272
|
+
|
|
273
|
+
**默认情况下,测试中不使用网络** — 提供商的 HTTP 请求通过 `vi.spyOn(global, 'fetch')` 进行模拟。 使用真实的 SQLite 数据库,存储在临时文件中 (而不是 `:memory:`),因为 `sqlite-vec` 扩展的加载方式在不同版本和磁盘上有所不同,磁盘是规范的存储路径。 Playwright 通过动态导入加载,并通过 `vi.doMock('playwright', ...)` 进行模拟,因此测试可以在不安装真实浏览器的情况下通过。
|
|
274
|
+
|
|
275
|
+
CI:`.github/workflows/test.yml` 在代码提交和拉取请求时运行 `pnpm test:coverage`。
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## 故障排除
|
|
280
|
+
|
|
281
|
+
**"数据库已锁定" 或 WAL 错误**
|
|
282
|
+
|
|
283
|
+
另一个 `hk` 进程 (或一个过时的 MCP 服务器) 正在持有 SQLite 数据库的打开状态。 关闭其他 `hk` 进程,然后重试。 如果问题仍然存在,请检查 `data/claude-synergy.db` 旁边是否存在 `-wal` 或 `-shm` 文件,这些是正常的 WAL 模式文件,当最后一个连接关闭时,它们将被清理。 在其他进程打开数据库时,请勿删除这些文件。
|
|
284
|
+
|
|
285
|
+
**"找不到 sqlite-vec 扩展" / sqlite-vec 加载失败"**
|
|
286
|
+
|
|
287
|
+
`sqlite-vec` 原生扩展加载失败。 常见原因:
|
|
288
|
+
|
|
289
|
+
1. **Node 版本过旧** — `claude-synergy` 需要 Node 22+。 使用 `node -v` 检查版本。
|
|
290
|
+
2. **原生模块需要重新构建** — 运行 `npm rebuild better-sqlite3` (或 `pnpm rebuild better-sqlite3`)。
|
|
291
|
+
3. **平台不匹配** — 在 Windows/ARM 上,`better-sqlite3` 需要 C++ 编译工具链。 安装 [windows-build-tools](https://github.com/nicedoc/windows-build-tools) 或带有 "Desktop development with C++" 的 Visual Studio Build Tools。
|
|
292
|
+
|
|
293
|
+
注意:`sqlite-vec` 是可选的。 FTS5 关键字搜索 (`hk query`) 可以在没有它的情况下工作。 只有 `hk embed` 和 `hk hybrid` 需要向量扩展。
|
|
294
|
+
|
|
295
|
+
**"产品 X 同步失败" / 获取错误"**
|
|
296
|
+
|
|
297
|
+
`hk fetch` 和 `hk sync` 调用外部 API。 常见原因:
|
|
298
|
+
|
|
299
|
+
- **GitHub 速率限制** — `gh-releases` 策略会调用 `gh api`,该命令会使用您的 `GITHUB_TOKEN`。 未进行身份验证的请求的速率限制为每小时 60 次;请使用 `gh auth login` 进行身份验证,或在您的环境中设置 `GITHUB_TOKEN`。
|
|
300
|
+
- **网络/代理** — RSS 和 HTML 获取器使用 `fetch()` 函数。请检查网络连接以及任何企业代理设置(`HTTPS_PROXY`)。
|
|
301
|
+
- **未知产品** — `hk fetch --product foo` 只能用于 `products.yaml` 文件中列出的产品。 运行 `hk products` 以查看所有可用名称。
|
|
302
|
+
|
|
303
|
+
同步操作是幂等的,即使在部分失败后也可以安全地重新运行。 已经获取的发布内容将被跳过。
|
|
304
|
+
|
|
305
|
+
**“嵌入服务不可用”**
|
|
306
|
+
|
|
307
|
+
`hk embed` 命令会调用外部嵌入服务:
|
|
308
|
+
|
|
309
|
+
- **Ollama (默认)** — 确保 Ollama 正在运行 (`ollama serve`),并且已下载嵌入模型 (`ollama pull nomic-embed-text`)。
|
|
310
|
+
- **Voyage** — 在您的环境中设置 `VOYAGE_API_KEY`。 检查您的 API 密钥,请访问 [dash.voyageai.com](https://dash.voyageai.com)。
|
|
311
|
+
|
|
312
|
+
**模式版本不匹配/数据库损坏**
|
|
313
|
+
|
|
314
|
+
如果数据库是使用较旧的模式版本创建的,并且迁移失败,或者在崩溃后数据看起来不正确:
|
|
315
|
+
|
|
316
|
+
```bash
|
|
317
|
+
rm data/claude-synergy.db data/claude-synergy.db-wal data/claude-synergy.db-shm
|
|
318
|
+
hk init
|
|
319
|
+
hk ingest
|
|
320
|
+
hk embed --context structured --embedding ollama # optional, for vector search
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
这种情况是安全的,因为数据库是派生的缓存。 所有原始数据都位于 `products/*/releases/*.md` 文件中。
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## 相关文件
|
|
328
|
+
|
|
329
|
+
- [CONTRIBUTING.md](CONTRIBUTING.md) — 如何添加产品、运行测试、提交拉取请求
|
|
330
|
+
- [URGENT_FINDINGS.md](URGENT_FINDINGS.md) — 23 项可执行的操作(安全漏洞、模型淘汰、破坏性更改、配置注意事项)
|
|
331
|
+
- [SOURCES.md](SOURCES.md) — 包含 5 级来源的文档,以及获取策略
|
|
332
|
+
- [synergies/INDEX.md](synergies/INDEX.md) — 12 个精选的跨产品工作流程
|
|
333
|
+
- [schema.sql](schema.sql) + [schema-vec.sql](schema-vec.sql) — SQLite + sqlite-vec 模式
|
|
334
|
+
- [test-spec-3.md](test-spec-3.md) (当前) + [test-spec-2.md](test-spec-2.md), [test-spec.md](test-spec.md) (历史) — 测试套件规范
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## 许可证
|
|
339
|
+
|
|
340
|
+
MIT。 由 <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a> 构建。
|