@mcptoolshop/claude-synergy 0.0.0 → 1.0.1
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 +132 -0
- package/CONTRIBUTING.md +101 -0
- package/LICENSE +21 -0
- package/README.es.md +342 -0
- package/README.fr.md +342 -0
- package/README.hi.md +342 -0
- package/README.it.md +342 -0
- package/README.ja.md +342 -0
- package/README.md +337 -4
- package/README.pt-BR.md +342 -0
- package/README.zh.md +342 -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.pt-BR.md
ADDED
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</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.md">English</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
|
+
<p align="center">
|
|
8
|
+
<a href="https://github.com/mcp-tool-shop-org/claude-synergy/actions/workflows/test.yml"><img src="https://github.com/mcp-tool-shop-org/claude-synergy/actions/workflows/test.yml/badge.svg" alt="tests"></a>
|
|
9
|
+
<a href="https://www.npmjs.com/package/@mcptoolshop/claude-synergy"><img src="https://img.shields.io/npm/v/@mcptoolshop/claude-synergy" alt="npm"></a>
|
|
10
|
+
<a href="#license"><img src="https://img.shields.io/badge/license-MIT-blue" alt="license"></a>
|
|
11
|
+
<a href="https://mcp-tool-shop-org.github.io/claude-synergy/"><img src="https://img.shields.io/badge/landing%20page-live-brightgreen" alt="landing page"></a>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
Um espelho local e pesquisável de todos os registros de alterações do Anthropic e de outras ferramentas de desenvolvimento de IA, além de uma camada de **Sinergia** que descreve fluxos de trabalho entre diferentes produtos, para que o agente LLM dentro do sistema saiba o que o sistema pode fazer.
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
$ hk query redact
|
|
18
|
+
2026-05-11 anthropic-cli@1.7.1 [changed] redact api-key headers in debug logs
|
|
19
|
+
2026-05-11 anthropic-sdk-java@2.31.0 [changed] redact api-key headers in debug logs
|
|
20
|
+
2026-05-11 anthropic-sdk-go@1.42.0 [changed] redact api-key headers in debug logs
|
|
21
|
+
2026-05-07 anthropic-sdk-typescript@0.95.1 [changed] redact api-key headers in debug logs
|
|
22
|
+
|
|
23
|
+
4 results
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
**Uma única consulta FTS (Full-Text Search) revela uma correção de segurança coordenada entre diferentes SDKs que não foi identificada como uma vulnerabilidade (CVE) em nenhum registro de alterações individual.** Esse é o exemplo mais impactante: padrões emergem quando todos os registros de alterações são exibidos lado a lado.
|
|
28
|
+
|
|
29
|
+
Repositório: [github.com/mcp-tool-shop-org/claude-synergy](https://github.com/mcp-tool-shop-org/claude-synergy)
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## O problema
|
|
34
|
+
|
|
35
|
+
O CLI do Claude Code é atualizado quase diariamente. A API do Claude é atualizada com a mesma frequência. Os SDKs são atualizados a cada nova versão do CLI. O Claude Design, Cowork, Chat e Mobile são integrados a um Centro de Ajuda unificado. O ecossistema MCP lança cerca de 200 a 300 novos servidores por semana. Além disso, existem 7 principais plataformas de desenvolvimento de IA (Cursor, Aider, Continue, Copilot, Cody, Windsurf), cada uma com seus próprios registros de alterações e ciclos de lançamento.
|
|
36
|
+
|
|
37
|
+
O agente LLM em qualquer uma dessas plataformas tem um limite de treinamento fixo. Essa diferença aumenta a cada dia. Recursos que o agente não conhece são lançados. Bugs são corrigidos, mas o agente ainda tenta contorná-los. Variáveis de ambiente e flags são adicionados, mas o agente nunca os sugere. Fluxos de trabalho que combinam diferentes plataformas permanecem desconhecidos.
|
|
38
|
+
|
|
39
|
+
**Este repositório fecha essa lacuna.** A seção "Sinergia" transforma o projeto em um produto, em vez de apenas um espelho.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## O que está incluído
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
claude-synergy/
|
|
47
|
+
├── products/ # 44 product directories (1,186 release files)
|
|
48
|
+
│ ├── claude-code/ # Anthropic CLI — 117 releases
|
|
49
|
+
│ ├── claude-agent-sdk-{python,typescript}/ # Agent SDKs
|
|
50
|
+
│ ├── anthropic-sdk-{python,typescript,go,java,csharp,ruby,php}/ # 7 language SDKs
|
|
51
|
+
│ ├── claude-api/ # Platform release notes
|
|
52
|
+
│ ├── anthropic-apps/ # Design / Cowork / Chat / Mobile (Help Center feed)
|
|
53
|
+
│ ├── claude-code-action/ # GitHub Action
|
|
54
|
+
│ ├── anthropic-cli/ # `ant` CLI
|
|
55
|
+
│ ├── mcp-{python,typescript,go,java,csharp,kotlin,ruby,swift,rust,php}-sdk/
|
|
56
|
+
│ ├── mcp-{spec,inspector,registry,mcpb,conformance}/
|
|
57
|
+
│ ├── cursor/ # RSS feed
|
|
58
|
+
│ ├── aider/ # raw HISTORY.md
|
|
59
|
+
│ ├── continue-{dev,cli}/ # GH releases
|
|
60
|
+
│ ├── cody-enterprise/ # filtered Sourcegraph RSS
|
|
61
|
+
│ ├── github-copilot/ # HTML scrape (github.blog)
|
|
62
|
+
│ ├── vscode-copilot-chat/ # HTML scrape (code.visualstudio.com)
|
|
63
|
+
│ ├── windsurf/ # Playwright fetcher (CSR-only changelog)
|
|
64
|
+
│ ├── skills/ # Anthropic Skills catalog
|
|
65
|
+
│ └── plugins-{official,community,knowledge-work}/ # Plugin marketplaces
|
|
66
|
+
├── synergies/ # 12 curated cross-product workflows
|
|
67
|
+
├── src/ # TypeScript implementation
|
|
68
|
+
├── test/ # 382 tests (unit, integration, regression, smoke)
|
|
69
|
+
├── data/claude-synergy.db # SQLite database (created by `hk init`)
|
|
70
|
+
├── schema.sql # Tier 2a tables (products, releases, changes, entities, FTS5, …)
|
|
71
|
+
├── schema-vec.sql # Tier 2b tables (chunks, chunks_vec, chunks_fts)
|
|
72
|
+
├── SOURCES.md # 5-tier source landscape with fetch strategies
|
|
73
|
+
└── URGENT_FINDINGS.md # 23 actionable items surfaced from the corpus
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Números atualizados (a partir da versão 1.0.0):** 44 produtos / 1.186 arquivos de lançamento / 6.042 alterações / 1.225 entidades / 12 sinergias / 382 testes.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Status — todas as etapas foram implementadas
|
|
81
|
+
|
|
82
|
+
| Etapa | Status | O que está incluído |
|
|
83
|
+
|------|--------|--------------|
|
|
84
|
+
| **1 — corpus em Markdown (base)** | ✅ implementado | O "Study-swarm" indexou 706 arquivos de lançamento de janeiro a maio de 2026; expandido para 1.186 na etapa 4. |
|
|
85
|
+
| **2a — SQLite + FTS5 + CLI** | ✅ implementado | CLI `hk`; 15 subcomandos; ingestão em menos de 300ms. |
|
|
86
|
+
| **2b — sqlite-vec + Recuperação Contextual** | ✅ implementado | Fornecedor plugável (nenhum/estruturado/ollama/claude-haiku contexto × ollama/voyage embed × nenhum/ollama-judge/voyage/cohere rerank). |
|
|
87
|
+
| **3 — sincronização + servidor MCP** | ✅ implementado | `hk fetch / sync / seed-markers`; o `claude-synergy-mcp` expõe 8 ferramentas via stdio. |
|
|
88
|
+
| **4a — expansão para além do Anthropic** | ✅ implementado | +15 SDKs MCP, Cursor (RSS), Aider (HISTORY.md), Continue.dev, Cody Enterprise (RSS filtrado). |
|
|
89
|
+
| **4b — coletor de HTML** | ✅ implementado | GitHub Copilot + VS Code Chat (Windsurf precisa do Playwright — v0.7). |
|
|
90
|
+
| **4c — ingestão de HTML para Markdown (turndown)** | ✅ implementado | Corpos de HTML (Copilot/VS Code/Cursor) agora geram linhas individuais para o FTS5 e extração de entidades. |
|
|
91
|
+
| **4d — Playwright + registro MCP + configuração YAML** | ✅ implementado | Windsurf via Playwright; Smithery + registro oficial MCP como catálogos da etapa 4; produtos consolidados em `products.yaml`. |
|
|
92
|
+
|
|
93
|
+
Roteiro para a versão 0.8+: acompanhado em [URGENT_FINDINGS.md](URGENT_FINDINGS.md) e nas issues.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Segurança e modelo de dados
|
|
98
|
+
|
|
99
|
+
Esta ferramenta é executada localmente. **Dados acessados:** um banco de dados SQLite derivado e arquivos de lançamento em formato Markdown — todos podem ser recriados. **Rede:** apenas conexões HTTPS de saída quando você executa `hk fetch`/`hk sync` (API do GitHub, feeds RSS, páginas de histórico de alterações, registros MCP) ou `hk embed` com um provedor remoto (Voyage, Cohere). **Credenciais:** lê as variáveis de ambiente `GITHUB_TOKEN`, `VOYAGE_API_KEY`, `COHERE_API_KEY`, `ANTHROPIC_API_KEY` — nunca são registradas e nunca são armazenadas em disco. **Não há telemetria.** Consulte [SECURITY.md](SECURITY.md) para obter informações sobre a política de relatórios.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Instalação
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
git clone https://github.com/mcp-tool-shop-org/claude-synergy
|
|
107
|
+
cd claude-synergy
|
|
108
|
+
pnpm install
|
|
109
|
+
pnpm build # produces dist/cli.js + dist/mcp-server.js
|
|
110
|
+
npm link # makes `hk` and `claude-synergy-mcp` available globally
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Para desenvolvimento sem compilação, use `npx tsx src/cli.ts ...` diretamente. **Particularidade do pnpm 10:** `pnpm dev` ignora os flags do CLI após `--`; use `npx tsx` para desenvolvimento.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Interface de linha de comando (CLI) — 15 comandos
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
# DB lifecycle
|
|
121
|
+
hk init # create DB with schema
|
|
122
|
+
hk ingest # parse products/*/releases/*.md → DB (idempotent)
|
|
123
|
+
hk embed # generate chunks + embeddings (sqlite-vec)
|
|
124
|
+
hk fetch [--product X] # incremental pull from sources
|
|
125
|
+
hk sync # combined fetch → ingest → embed (cron-friendly)
|
|
126
|
+
hk seed-markers # one-time setup after initial corpus
|
|
127
|
+
|
|
128
|
+
# Search
|
|
129
|
+
hk query "managed agents" # FTS5 keyword search
|
|
130
|
+
hk hybrid "credential exfiltration" # FTS5 + vec hybrid via RRF (+ optional --rerank)
|
|
131
|
+
|
|
132
|
+
# Entity lookups
|
|
133
|
+
hk env-var CLAUDE_CODE_WORKFLOWS # when introduced + history
|
|
134
|
+
hk command code-review # slash command + rename history
|
|
135
|
+
hk model claude-opus-4-7 # model launch + mentions across products
|
|
136
|
+
hk cve CVE-2025-66414 # CVE references in corpus
|
|
137
|
+
|
|
138
|
+
# Browsing
|
|
139
|
+
hk latest [--product X] [--limit N] # recent releases
|
|
140
|
+
hk products # list all 44 with counts
|
|
141
|
+
hk top env_var # most-mentioned by entity type
|
|
142
|
+
# (env_var, slash_command, cli_option,
|
|
143
|
+
# model_id, beta_header, cve, ghsa,
|
|
144
|
+
# hook_event, setting_key)
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Exemplos de fluxos de trabalho
|
|
150
|
+
|
|
151
|
+
**Como descobrir quando uma variável de ambiente do Claude Code foi introduzida:**
|
|
152
|
+
```
|
|
153
|
+
$ hk env-var CLAUDE_CODE_WORKFLOWS
|
|
154
|
+
env var CLAUDE_CODE_WORKFLOWS — 1 mention:
|
|
155
|
+
|
|
156
|
+
2026-05-21 claude-code@2.1.147 [added]
|
|
157
|
+
Added the `Workflow` tool for deterministic multi-agent orchestration.
|
|
158
|
+
It is off by default — set `CLAUDE_CODE_WORKFLOWS=1` to enable
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
**Rastrear mudanças incompatíveis entre diferentes SDKs:**
|
|
162
|
+
```
|
|
163
|
+
$ hk query TodoWrite --limit 5
|
|
164
|
+
2026-05-15 claude-agent-sdk-python@0.2.82 [breaking] Headless and SDK sessions now use Task tools...
|
|
165
|
+
2026-05-14 claude-agent-sdk-typescript@0.3.142 [breaking] Headless and SDK sessions now use Task tools...
|
|
166
|
+
2026-05-08 claude-agent-sdk-typescript@0.2.136 [deprecated] Deprecated TodoWrite tool...
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**Planejar uma migração de modelo:**
|
|
170
|
+
```
|
|
171
|
+
$ hk model claude-opus-4-20250514
|
|
172
|
+
model id claude-opus-4-20250514 — 2 mentions:
|
|
173
|
+
|
|
174
|
+
2026-04-14 anthropic-sdk-python@0.94.0 [deprecated]
|
|
175
|
+
Deprecation of the Claude Sonnet 4 model and the Claude Opus 4 model,
|
|
176
|
+
with retirement on the Claude API scheduled for June 15, 2026...
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**Pesquisa semântica em todo o corpus:**
|
|
180
|
+
```
|
|
181
|
+
$ hk hybrid "credential exfiltration" --limit 3
|
|
182
|
+
2026-03-25 claude-code@2.1.83 [added] vec#5 rrf=0.0154
|
|
183
|
+
Added `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1` to strip Anthropic and
|
|
184
|
+
cloud provider credentials from subprocess environments...
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
A consulta nunca menciona "env_scrub" — o sistema o identifica por similaridade semântica. O sistema de busca tradicional (FTS5) não o encontra.
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Servidor MCP — forneça acesso a este corpus para seus agentes
|
|
192
|
+
|
|
193
|
+
`claude-synergy-mcp` expõe 8 ferramentas via stdio. Conecte-se ao Claude Code (ou qualquer host MCP) através de `~/.claude/.mcp.json` ou do arquivo `.mcp.json` do seu projeto:
|
|
194
|
+
|
|
195
|
+
```json
|
|
196
|
+
{
|
|
197
|
+
"mcpServers": {
|
|
198
|
+
"claude-synergy": {
|
|
199
|
+
"command": "claude-synergy-mcp",
|
|
200
|
+
"env": {
|
|
201
|
+
"CLAUDE_SYNERGY_DB": "/path/to/claude-synergy/data/claude-synergy.db"
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Para o arquivo `.vscode/mcp.json` do GitHub Copilot, use o wrapper `servers` em vez de `mcpServers` (veja [synergy 12](synergies/12-mcp-config-format-gotcha.md)).
|
|
209
|
+
|
|
210
|
+
Ferramentas disponíveis:
|
|
211
|
+
|
|
212
|
+
| Ferramenta | Propósito |
|
|
213
|
+
|---|---|
|
|
214
|
+
| `search` | FTS5 + busca vetorial; reclassificação opcional. Modo padrão para consultas em linguagem natural. |
|
|
215
|
+
| `lookup_entity` | Histórico completo de entidades: variáveis de ambiente, comandos, IDs de modelos, CVEs, etc. |
|
|
216
|
+
| `latest_releases` | Lançamentos recentes em todos os produtos (ou em um). |
|
|
217
|
+
| `get_release` | Conteúdo completo de um lançamento. |
|
|
218
|
+
| `list_products` | Enumeração com contagens + versão mais recente. |
|
|
219
|
+
| `top_entities` | Entidades mais mencionadas por tipo. |
|
|
220
|
+
| `list_synergies` | Fluxos de trabalho entre produtos, selecionados. |
|
|
221
|
+
| `read_synergy` | Texto completo de um arquivo de sinergia. |
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Fontes — 5 níveis, 6 estratégias de busca
|
|
226
|
+
|
|
227
|
+
Visão geral completa em [SOURCES.md](SOURCES.md).
|
|
228
|
+
|
|
229
|
+
- **Nível 1 (Lançamentos do GitHub)** — `gh api repos/<owner>/<repo>/releases` para 22 produtos, incluindo SDKs da Anthropic (7 linguagens), SDKs de Agentes (2), ant CLI, claude-code-action, claude-code-security-review e 15 SDKs do ecossistema MCP.
|
|
230
|
+
- **Nível 2 (markdown bruto)** — `anthropics/claude-code/CHANGELOG.md` + `Aider-AI/aider/HISTORY.md`
|
|
231
|
+
- **Nível 3 (HTML / RSS)** — `platform.claude.com/docs/release-notes`, `support.claude.com/articles/12138966`, `cursor.com/changelog/rss.xml`, `sourcegraph.com/changelog/featured.rss` (filtrado), `github.blog/changelog/label/copilot/`, `code.visualstudio.com/updates/v1_NNN`
|
|
232
|
+
- **Nível 4 (catálogo)** — `anthropics/skills`, `claude-plugins-{official,community}`, `knowledge-work-plugins`
|
|
233
|
+
- **Nível 5 (consultoria)** — Conta X `@ClaudeCodeLog`; espelho de changelog do marckrenn.
|
|
234
|
+
|
|
235
|
+
Estratégias de busca: `gh-releases | rss | raw-changelog | html-scrape | catalog | playwright`. Novo produto = uma entrada em `products.yaml`.
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## Sinergias — o que é desbloqueado
|
|
240
|
+
|
|
241
|
+
12 fluxos de trabalho entre produtos, selecionados. Cada um descreve um padrão de composição, o gatilho que o torna a resposta correta e a evidência do changelog que o possibilita. Exemplos:
|
|
242
|
+
|
|
243
|
+
- **08 — Universal SKILL.md format** (Code + Cursor + Codex): um autor de skill, três agentes o leem.
|
|
244
|
+
- **09 — MCP across seven surfaces** (Code + Cursor + Continue + Copilot + Windsurf + Cody + API): um binário, todos os agentes.
|
|
245
|
+
- **10 — Anthropic BYOK across surfaces**: uma chave de API alimenta o Claude em 7 editores com faturamento unificado.
|
|
246
|
+
- **11 — Claude Code orquestra Aider**: transfere edições pesadas para um modelo mais barato enquanto o Claude planeja.
|
|
247
|
+
- **12 — MCP config format gotcha**: o Copilot usa `servers`; todos os outros usam `mcpServers`.
|
|
248
|
+
|
|
249
|
+
Índice completo em [synergies/INDEX.md](synergies/INDEX.md).
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## Testes
|
|
254
|
+
|
|
255
|
+
O conjunto de testes Vitest cobre os níveis de unidade / integração / regressão / teste rápido. **[test-spec-3.md](test-spec-3.md) é a documentação atual** a partir da versão v0.7.0; [test-spec.md](test-spec.md) (v1) e [test-spec-2.md](test-spec-2.md) (v2) permanecem no repositório como registro histórico da linhagem do design.
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
pnpm test # unit + integration + regression (~16s, 382 tests)
|
|
259
|
+
pnpm test:watch # interactive
|
|
260
|
+
pnpm test:coverage # generate coverage/index.html (thresholds: 78/75/85/78)
|
|
261
|
+
pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
Estrutura:
|
|
265
|
+
|
|
266
|
+
| Diretório | O que ele cobre |
|
|
267
|
+
|-----|----------------|
|
|
268
|
+
| `test/unit/` | por módulo — extração, ingestão, consulta, banco de dados, incorporação, busca híbrida, busca + todos os provedores + busca-rss/changelog/html + busca-mcp-registry + busca-playwright + configuração de produtos. |
|
|
269
|
+
| `test/integration/` | teste de ponta a ponta — pipeline, sincronização, servidor MCP (stdio JSON-RPC), CLI. |
|
|
270
|
+
| `test/regression/` | §8.1–§8.18 — cada um protege contra um erro real corrigido durante o desenvolvimento. |
|
|
271
|
+
| `test/smoke/` | Teste completo com um conjunto de dados simulado, representando os arquivos reais do diretório `products/` (1.143 arquivos). |
|
|
272
|
+
| `test/fixtures/` | 3 produtos simulados + respostas HTTP simuladas (RSS / GH / Voyage / Cohere / Ollama / Anthropic / Smithery / Registro oficial do MCP). |
|
|
273
|
+
| `test/helpers/` | `temp-db.ts`, `fetch-mock.ts`, `mcp-client.ts`, `seed-corpus.ts`, `golden-vectors.ts`, `playwright-mock.ts`, `yaml-fixtures.ts` |
|
|
274
|
+
|
|
275
|
+
**Sem conexão de rede nos testes por padrão** — o provedor HTTP é simulado usando `vi.spyOn(global, 'fetch')`. O SQLite real é usado em arquivos temporários (não `:memory:`) porque a forma como a extensão `sqlite-vec` é carregada varia entre as versões, e o armazenamento em disco é o caminho padrão. O Playwright é carregado dinamicamente e simulado usando `vi.doMock('playwright', ...)` para que os testes sejam executados sem a necessidade de instalar um navegador real.
|
|
276
|
+
|
|
277
|
+
CI: O arquivo `.github/workflows/test.yml` executa `pnpm test:coverage` a cada envio e solicitação de alteração.
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## Solução de problemas
|
|
282
|
+
|
|
283
|
+
**"Banco de dados bloqueado" ou erros WAL**
|
|
284
|
+
|
|
285
|
+
Outro processo `hk` (ou um servidor MCP desatualizado) está mantendo o banco de dados SQLite aberto. Feche outros processos `hk` e tente novamente. Se o problema persistir, verifique se há arquivos `-wal` ou `-shm` próximos a `data/claude-synergy.db` — esses são arquivos normais do modo WAL e serão removidos quando a última conexão for fechada. Não os exclua enquanto outro processo tiver o banco de dados aberto.
|
|
286
|
+
|
|
287
|
+
**"Extensão sqlite-vec não encontrada" / falha ao carregar sqlite-vec**
|
|
288
|
+
|
|
289
|
+
A extensão nativa `sqlite-vec` falhou ao carregar. Causas comuns:
|
|
290
|
+
|
|
291
|
+
1. **Versão do Node muito antiga** — `claude-synergy` requer Node 22+. Verifique com `node -v`.
|
|
292
|
+
2. **Módulo nativo precisa ser recompilado** — execute `npm rebuild better-sqlite3` (ou `pnpm rebuild better-sqlite3`).
|
|
293
|
+
3. **Incompatibilidade de plataforma** — no Windows/ARM, `better-sqlite3` precisa de um conjunto de ferramentas de compilação C++. Instale o [windows-build-tools](https://github.com/nicedoc/windows-build-tools) ou as Ferramentas de Build do Visual Studio com "Desenvolvimento de desktop com C++".
|
|
294
|
+
|
|
295
|
+
Observação: `sqlite-vec` é opcional. A pesquisa de palavras-chave FTS5 (`hk query`) funciona sem ela. Apenas `hk embed` e `hk hybrid` requerem a extensão de vetor.
|
|
296
|
+
|
|
297
|
+
**"Falha na sincronização do produto X" / erros de fetch**
|
|
298
|
+
|
|
299
|
+
`hk fetch` e `hk sync` chamam APIs externas. Causas comuns:
|
|
300
|
+
|
|
301
|
+
- **Limite de taxa do GitHub** — a estratégia `gh-releases` chama `gh api`, que usa seu `GITHUB_TOKEN`. As solicitações não autenticadas atingem 60 requisições/hora; autentique-se com `gh auth login` ou defina `GITHUB_TOKEN` no seu ambiente.
|
|
302
|
+
- **Rede / proxy** — os buscadores RSS e HTML usam `fetch()`. Verifique a conectividade e quaisquer configurações de proxy corporativos (`HTTPS_PROXY`).
|
|
303
|
+
- **Produto desconhecido** — `hk fetch --product foo` funciona apenas para produtos listados em `products.yaml`. Execute `hk products` para ver todos os nomes disponíveis.
|
|
304
|
+
|
|
305
|
+
A sincronização é idempotente — é seguro executá-la novamente após uma falha parcial. As versões já baixadas são ignoradas.
|
|
306
|
+
|
|
307
|
+
**"Provedor de incorporação não responde"**
|
|
308
|
+
|
|
309
|
+
`hk embed` chama um serviço de incorporação externo:
|
|
310
|
+
|
|
311
|
+
- **Ollama (padrão)** — certifique-se de que o Ollama está em execução (`ollama serve`) e que o modelo de incorporação foi baixado (`ollama pull nomic-embed-text`).
|
|
312
|
+
- **Voyage** — defina `VOYAGE_API_KEY` no seu ambiente. Verifique sua chave de API em [dash.voyageai.com](https://dash.voyageai.com).
|
|
313
|
+
|
|
314
|
+
**Incompatibilidade de versão do esquema / banco de dados corrompido**
|
|
315
|
+
|
|
316
|
+
Se o banco de dados foi criado com uma versão de esquema mais antiga e a migração falha, ou se os dados parecem incorretos após uma falha:
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
rm data/claude-synergy.db data/claude-synergy.db-wal data/claude-synergy.db-shm
|
|
320
|
+
hk init
|
|
321
|
+
hk ingest
|
|
322
|
+
hk embed --context structured --embedding ollama # optional, for vector search
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
Isso é seguro — o banco de dados é um cache derivado. Todos os dados de origem estão nos arquivos `products/*/releases/*.md`.
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
## Arquivos relacionados
|
|
330
|
+
|
|
331
|
+
- [CONTRIBUTING.md](CONTRIBUTING.md) — como adicionar produtos, executar testes e enviar solicitações de alteração (PRs).
|
|
332
|
+
- [URGENT_FINDINGS.md](URGENT_FINDINGS.md) — 23 itens que exigem ação imediata (vulnerabilidades de segurança, descontinuação de modelos, alterações incompatíveis, problemas de configuração).
|
|
333
|
+
- [SOURCES.md](SOURCES.md) — panorama de fontes em 5 níveis, com estratégias de obtenção.
|
|
334
|
+
- [synergies/INDEX.md](synergies/INDEX.md) — 12 fluxos de trabalho entre produtos, selecionados e organizados.
|
|
335
|
+
- [schema.sql](schema.sql) + [schema-vec.sql](schema-vec.sql) — esquemas SQLite e sqlite-vec.
|
|
336
|
+
- [test-spec-3.md](test-spec-3.md) (atual) + [test-spec-2.md](test-spec-2.md), [test-spec.md](test-spec.md) (histórico) — especificações do conjunto de testes.
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
## Licença
|
|
341
|
+
|
|
342
|
+
MIT. Desenvolvido por <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>.
|