@mcptoolshop/claude-synergy 1.1.1 → 1.2.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/README.es.md +26 -22
- package/README.fr.md +8 -4
- package/README.hi.md +8 -4
- package/README.it.md +28 -24
- package/README.ja.md +8 -4
- package/README.md +12 -8
- package/README.pt-BR.md +8 -4
- package/README.zh.md +30 -26
- package/dist/chunk-2J45LIMO.js +745 -0
- package/dist/chunk-6MUY565T.js +1155 -0
- package/dist/{chunk-H3466JDH.js → chunk-CEIOLMDT.js} +197 -885
- package/dist/{chunk-HZEQG3WT.js → chunk-KFAQPOGV.js} +21 -142
- package/dist/chunk-MZLFGICO.js +133 -0
- package/dist/cli.js +22 -1156
- package/dist/embed-OCOZWLXF.js +10 -0
- package/dist/fetch-CRO7KXFP.js +11 -0
- package/dist/{ingest-Z45YH7OX.js → ingest-D23NTE25.js} +2 -1
- package/dist/mcp-server.js +175 -2
- package/package.json +1 -1
- package/products.yaml +9 -4
package/README.es.md
CHANGED
|
@@ -73,7 +73,7 @@ claude-synergy/
|
|
|
73
73
|
└── URGENT_FINDINGS.md # 23 actionable items surfaced from the corpus
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
**
|
|
76
|
+
**Datos actualizados (a partir de la versión 1.2.1):** 44 productos / 1.171 archivos de lanzamiento / 6.573 cambios / 1.260 entidades / 12 sinergias / 519 pruebas / 13 herramientas MCP / 17 comandos de línea de comandos. (La base de datos se actualizó mediante `sync_now` el 24 de mayo de 2026).
|
|
77
77
|
|
|
78
78
|
---
|
|
79
79
|
|
|
@@ -84,12 +84,14 @@ claude-synergy/
|
|
|
84
84
|
| **1 — corpus de Markdown (inicialización)** | ✅ implementado | Study-swarm recopiló 706 archivos de lanzamiento de enero a mayo de 2026; se ampliaron a 1186 en la etapa 4. |
|
|
85
85
|
| **2a — SQLite + FTS5 + CLI** | ✅ implementado | CLI `hk`; 15 subcomandos; ingestión en menos de 300 ms. |
|
|
86
86
|
| **2b — sqlite-vec + Recuperación contextual** | ✅ implementado | Proveedor adaptable (ninguno/estructurado/ollama/contexto de Claude-haiku × incrustaciones de ollama/viaje × ninguno/ollama-judge/viaje/cohere para reordenar). |
|
|
87
|
-
| **3 — sincronización + servidor MCP** | ✅ implementado | `hk fetch / sync / seed-markers`; `claude-synergy-mcp` expone
|
|
87
|
+
| **3 — sincronización + servidor MCP** | ✅ implementado | `hk fetch / sync / seed-markers`; `claude-synergy-mcp` expone 13 herramientas a través de stdio (8 en la versión inicial de la capa 3, 3 añadidas en la versión 1.1, 2 añadidas en la versión 1.2). |
|
|
88
88
|
| **4a — extender más allá de Anthropic** | ✅ implementado | +15 SDKs de MCP, Cursor (RSS), Aider (HISTORY.md), Continue.dev, Cody Enterprise (RSS filtrado). |
|
|
89
89
|
| **4b — rastreador de HTML** | ✅ implementado | GitHub Copilot + VS Code Chat (Windsurf necesita Playwright — v0.7). |
|
|
90
90
|
| **4c — ingestión de HTML a Markdown con turndown** | ✅ implementado | Los cuerpos de HTML (Copilot/VS Code/Cursor) ahora generan filas individuales para FTS5 + extracción de entidades. |
|
|
91
91
|
| **4d — Playwright + registro de MCP + configuración YAML** | ✅ implementado | Windsurf a través de Playwright; Smithery + registro oficial de MCP como catálogos de la etapa 4; productos consolidados en `products.yaml`. |
|
|
92
|
-
| **5 — Navegación con ventanas en la versión 1.1 + integración de OpenAI** | ✅ implementado | `hk diff` / `hk breaking`, límites de fecha para todos los comandos de navegación, 3 nuevas herramientas MCP (un total de 11), proveedor de incrustación de OpenAI, dimensión de incrustación configurable, `claude-code
|
|
92
|
+
| **5 — Navegación con ventanas en la versión 1.1 + integración de OpenAI** | ✅ implementado | `hk diff` / `hk breaking`, límites de fecha para todos los comandos de navegación, 3 nuevas herramientas MCP (un total de 11), proveedor de incrustación de OpenAI, dimensión de incrustación configurable, sincronización automática de `claude-code`, analizador genérico `keep-a-changelog`. |
|
|
93
|
+
| **6 — Sincronización desde MCP en la versión 1.2** | ✅ implementado | `sync_status` (frescura por producto, detección de "obsoleto") y `sync_now` (obtención bajo demanda → ingestión → incrustación con vista previa de `dry_run` + bloqueo de concurrencia en el proceso). Elimina la brecha donde un agente podía consultar la base de datos pero no actualizarla. **También corrige:** el error de "limpieza de marcadores" donde `INSERT OR REPLACE INTO products` desencadenaba un DELETE en la clave externa `markers`, restableciendo silenciosamente el cursor `since` de cada producto en cada ingestión (regresión §8.20). |
|
|
94
|
+
| **6.1 — Centralización de marcadores en la versión 1.2.1** | ✅ implementado | Se centralizó la función `writeMarker` en `fetchOne` para que cada extracción exitosa actualice el marcador. Las estrategias que devolvían 0 elementos con fecha dentro del período especificado (especialmente el registro de cambios "raw" de `aider`) nunca escribían un marcador y volvían a descargar `HISTORY.md` en cada sincronización. Se renombró la estrategia `webfetch` no implementada a `manual` para `claude-api` y `anthropic-apps`; ahora, `sync_status` muestra los productos configurados manualmente como "manual" en lugar de "nunca" y los excluye de `stale_only` (regresión §8.21). |
|
|
93
95
|
|
|
94
96
|
Hoja de ruta para la versión 0.8+: se encuentra en [URGENT_FINDINGS.md](URGENT_FINDINGS.md) y en los problemas.
|
|
95
97
|
|
|
@@ -149,7 +151,7 @@ hk top env_var # most-mentioned by entity type
|
|
|
149
151
|
# hook_event, setting_key)
|
|
150
152
|
```
|
|
151
153
|
|
|
152
|
-
**Novedades en la versión 1.1:** `hk diff` y `hk breaking` responden a la pregunta "¿qué ha cambiado recientemente?" sin necesidad de un término de búsqueda. Los límites de fecha son uniformes: cada comando de navegación
|
|
154
|
+
**Novedades en la versión 1.1:** `hk diff` y `hk breaking` responden a la pregunta "¿qué ha cambiado recientemente?" sin necesidad de un término de búsqueda. Los límites de fecha son uniformes: cada comando de navegación acepta `--since` y `--until` en formato `YYYY-MM-DD` (o ISO 8601 completo), o en formato relativo (`7d`, `2w`, `3m`, `1y`).
|
|
153
155
|
|
|
154
156
|
---
|
|
155
157
|
|
|
@@ -193,7 +195,7 @@ $ hk hybrid "credential exfiltration" --limit 3
|
|
|
193
195
|
|
|
194
196
|
La consulta nunca dice "env_scrub"; el sistema lo muestra por similitud semántica. FTS5 puro no lo encuentra en absoluto.
|
|
195
197
|
|
|
196
|
-
**Cambios en claude-code esta semana:**
|
|
198
|
+
**Cambios realizados en claude-code esta semana:**
|
|
197
199
|
```
|
|
198
200
|
$ hk diff claude-code --since 7d
|
|
199
201
|
claude-code@2.1.147 2026-05-21 (3 changes)
|
|
@@ -205,7 +207,7 @@ claude-code@2.1.146 2026-05-19 (1 change)
|
|
|
205
207
|
[fixed] Restored `--debug` flag accidentally removed in 2.1.144.
|
|
206
208
|
```
|
|
207
209
|
|
|
208
|
-
**
|
|
210
|
+
**Explorar cambios importantes en toda la base de datos:**
|
|
209
211
|
```
|
|
210
212
|
$ hk breaking --since 30d --limit 5
|
|
211
213
|
2026-05-15 claude-agent-sdk-python@0.2.82 Headless and SDK sessions now use Task tools by default.
|
|
@@ -244,7 +246,7 @@ Herramientas disponibles:
|
|
|
244
246
|
|---|---|
|
|
245
247
|
| `search` | FTS5 + vec híbrido; reordenamiento opcional. Modo predeterminado para consultas en lenguaje natural. (+ límite superior de fecha `until`) |
|
|
246
248
|
| `lookup_entity` | Historial exacto de entidades: variables de entorno, comandos, ID de modelos, CVE, etc. |
|
|
247
|
-
| `latest_releases` | Lanzamientos recientes en
|
|
249
|
+
| `latest_releases` | Lanzamientos recientes en productos (o en uno). (+ límite inferior de fecha `since`) |
|
|
248
250
|
| `get_release` | Contenido completo de un lanzamiento. |
|
|
249
251
|
| `list_products` | Enumeración con conteos + última versión. |
|
|
250
252
|
| `top_entities` | Entidades más mencionadas por tipo. |
|
|
@@ -252,9 +254,11 @@ Herramientas disponibles:
|
|
|
252
254
|
| `read_synergy` | Texto completo de un archivo de sinergia. |
|
|
253
255
|
| `get_changes_since` | **Nuevo.** Cambios en un intervalo de tiempo, agrupados por producto y versión. Entradas: `since` (obligatorio), `until?`, `product?`, `kind?`, `limit?`. |
|
|
254
256
|
| `search_breaking_changes` | **Nuevo.** Lista plana de cambios importantes: no se necesita un término de búsqueda. Entradas: `product?`, `since?`, `until?`, `limit?`. |
|
|
255
|
-
| `compare_versions` | **
|
|
257
|
+
| `compare_versions` | **Versión 1.1.** Todos los cambios entre dos versiones de un mismo producto. Entradas: `product`, `from_version`, `to_version`. |
|
|
258
|
+
| `sync_status` | **Versión 1.2.** Frescura de la sincronización por producto: última marca de tiempo de obtención, horas desde la última obtención, número de lanzamientos ingeridos. Entradas: `product?`, `stale_only?`, `stale_hours?`. Utilice esto ANTES de confiar en `latest_releases` para saber si la base de datos está obsoleta. |
|
|
259
|
+
| `sync_now` | **Versión 1.2.** Actualización bajo demanda (similar a `hk sync`). Entradas: `product?`, `dry_run?`, `include_ingest?`, `include_embed?`, `timeout_ms?`. Rechaza con `InvalidParams` si ya hay otra operación `sync_now` en curso. NO se confirma en git. |
|
|
256
260
|
|
|
257
|
-
Las
|
|
261
|
+
Las herramientas de la versión 1.1 son similares a `hk diff` / `hk breaking` y al flujo de trabajo de comparación de versiones que anteriormente requería scripts. Las herramientas de sincronización de la versión 1.2 eliminan la brecha donde una sesión podía consultar la base de datos pero no actualizarla: `sync_status` informa sobre la obsolescencia, `sync_now` ejecuta el proceso. Consulte [manual → servidor MCP](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/mcp-server/) para obtener los esquemas de entrada completos.
|
|
258
262
|
|
|
259
263
|
---
|
|
260
264
|
|
|
@@ -262,11 +266,11 @@ Las tres nuevas herramientas replican `hk diff` / `hk breaking` y el flujo de tr
|
|
|
262
266
|
|
|
263
267
|
Panorama general en [SOURCES.md](SOURCES.md).
|
|
264
268
|
|
|
265
|
-
- **Nivel 1 (Lanzamientos de GitHub)** — `gh api repos/<owner>/<repo>/releases` para 23 productos,
|
|
266
|
-
- **Nivel 2 (
|
|
269
|
+
- **Nivel 1 (Lanzamientos de GitHub)** — `gh api repos/<owner>/<repo>/releases` para 23 productos, incluyendo los SDK de Anthropic (7 idiomas), los SDK de Agentes (2), la herramienta de línea de comandos ant, **claude-code** (ahora sincronizado automáticamente a través de gh-releases desde la versión 1.1; anteriormente, se actualizaba manualmente), claude-code-action, claude-code-security-review y 15 SDK del ecosistema MCP.
|
|
270
|
+
- **Nivel 2 (Markdown sin formato)** — `Aider-AI/aider/HISTORY.md`. El analizador genérico `keep-a-changelog` (versión 1.1+) también está disponible para cualquier producto cuyo origen sea un archivo CHANGELOG.md en formato Keep-a-Changelog; se configura a través de una entrada en `products.yaml`.
|
|
267
271
|
- **Nivel 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`.
|
|
268
|
-
- **Nivel 4 (
|
|
269
|
-
- **Nivel 5 (
|
|
272
|
+
- **Nivel 4 (Catálogo)** — `anthropics/skills`, `claude-plugins-{official,community}`, `knowledge-work-plugins`.
|
|
273
|
+
- **Nivel 5 (Informativo)** — Cuenta de X `@ClaudeCodeLog`; espejo de changelog de marckrenn.
|
|
270
274
|
|
|
271
275
|
Estrategias de recuperación: `gh-releases | rss | raw-changelog | html-scrape | catalog | playwright`. Nuevo producto = una entrada en `products.yaml`.
|
|
272
276
|
|
|
@@ -291,7 +295,7 @@ Estrategias de recuperación: `gh-releases | rss | raw-changelog | html-scrape |
|
|
|
291
295
|
El conjunto de pruebas Vitest cubre los niveles de unidad / integración / regresión / pruebas básicas. **[test-spec-3.md](test-spec-3.md) es la autoridad actual** a partir de la versión v0.7.0; [test-spec.md](test-spec.md) (v1) y [test-spec-2.md](test-spec-2.md) (v2) permanecen en el repositorio como registro histórico de la línea de diseño.
|
|
292
296
|
|
|
293
297
|
```bash
|
|
294
|
-
pnpm test # unit + integration + regression (~
|
|
298
|
+
pnpm test # unit + integration + regression (~36s, 519 tests)
|
|
295
299
|
pnpm test:watch # interactive
|
|
296
300
|
pnpm test:coverage # generate coverage/index.html (thresholds: 78/75/85/78)
|
|
297
301
|
pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
|
|
@@ -301,9 +305,9 @@ Estructura:
|
|
|
301
305
|
|
|
302
306
|
| Directorio | Lo que cubre |
|
|
303
307
|
|-----|----------------|
|
|
304
|
-
| `test/unit/` | por módulo: extracción, ingestión, consulta (incl. `until` / navegación / desde / comparación), base de datos (incl. migración de configuración de
|
|
305
|
-
| `test/integration/` | de extremo a extremo: canalización, sincronización, servidor MCP (JSON-RPC
|
|
306
|
-
| `test/regression/` | §8.1–§8.19
|
|
308
|
+
| `test/unit/` | por módulo: extracción, ingestión, consulta (incl. `until` / navegación / desde / comparación), base de datos (incl. migración de la configuración de dimensiones v3), incrustación, híbrido, obtención + cada proveedor (Ollama / Voyage / **OpenAI**) + obtención de RSS/changelog (incl. analizador **keep-a-changelog**) / HTML + obtención del registro MCP + obtención de Playwright + configuración de productos + ingestión/consulta de Synergy. |
|
|
309
|
+
| `test/integration/` | de extremo a extremo: canalización, sincronización, servidor MCP (JSON-RPC estándar, 13 herramientas, incluyendo `sync_status` / `sync_now`), línea de comandos (incl. `hk diff`, `hk breaking`). |
|
|
310
|
+
| `test/regression/` | §8.1–§8.19: cada uno protege contra un error real corregido durante el desarrollo (§8.19: la paginación de salida temprana de ghReleases conserva los elementos dentro del rango). |
|
|
307
311
|
| `test/smoke/` | Prueba completa con todo el corpus contra productos reales (1143 archivos). |
|
|
308
312
|
| `test/fixtures/` | 3 productos falsos + respuestas HTTP simuladas (RSS / GH / Voyage / Cohere / Ollama / Anthropic / Smithery / Registro oficial de MCP). |
|
|
309
313
|
| `test/helpers/` | `temp-db.ts`, `fetch-mock.ts`, `mcp-client.ts`, `seed-corpus.ts`, `golden-vectors.ts`, `playwright-mock.ts`, `yaml-fixtures.ts` |
|
|
@@ -344,13 +348,13 @@ La sincronización es idempotente: es seguro volver a ejecutarla después de un
|
|
|
344
348
|
|
|
345
349
|
`hk embed` llama a un servicio de incrustación externo:
|
|
346
350
|
|
|
347
|
-
- **Ollama (
|
|
348
|
-
- **Voyage (1024 dimensiones)**:
|
|
349
|
-
- **OpenAI (1536 dimensiones por defecto, configurable)**:
|
|
351
|
+
- **Ollama (predeterminado, 768 dimensiones)**: asegúrese de que Ollama esté en ejecución (`ollama serve`) y que el modelo de incrustación se haya descargado (`ollama pull nomic-embed-text`).
|
|
352
|
+
- **Voyage (1024 dimensiones)**: establezca `VOYAGE_API_KEY` en su entorno. Verifique su clave de API en [dash.voyageai.com](https://dash.voyageai.com).
|
|
353
|
+
- **OpenAI (1536 dimensiones por defecto, configurable)**: establezca `OPENAI_API_KEY`. El modelo predeterminado es `text-embedding-3-small`; sobrescríbalo con `OPENAI_EMBED_MODEL` (por ejemplo, `text-embedding-3-large` para 3072 dimensiones). Utilícelo a través de `hk hybrid --embed openai` o `hk embed --embed openai`.
|
|
350
354
|
|
|
351
355
|
**Incompatibilidad de dimensiones de incrustación al cambiar de proveedor**
|
|
352
356
|
|
|
353
|
-
Cada proveedor
|
|
357
|
+
Cada proveedor produce vectores de una dimensión fija (Ollama 768, Voyage 1024, OpenAI 1536 por defecto; OpenAI admite dimensiones configurables dentro del tamaño nativo del modelo). La base de datos almacena la dimensión activa en `schema_meta.embedding_dim`. Cambiar de proveedor a diferentes dimensiones mientras existen fragmentos genera un error `EMBEDDING_DIM_MISMATCH` (`AppError`) en lugar de corromper silenciosamente la tabla de vectores. Para cambiar:
|
|
354
358
|
|
|
355
359
|
```bash
|
|
356
360
|
rm data/claude-synergy.db data/claude-synergy.db-wal data/claude-synergy.db-shm
|
|
@@ -359,7 +363,7 @@ hk ingest
|
|
|
359
363
|
hk embed --embed openai # new provider, new dim, fresh chunks_vec
|
|
360
364
|
```
|
|
361
365
|
|
|
362
|
-
Para la truncación de Matryoshka de OpenAI (dimensión
|
|
366
|
+
Para la truncación de Matryoshka de OpenAI (dimensión inferior a la nativa), establezca `OPENAI_EMBED_MODEL` y pase la dimensión deseada a través de la construcción del proveedor en `hk embed`; consulte la [sección de incrustaciones del manual](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cli-reference/#embedding-providers-and-dimensions) para obtener más detalles.
|
|
363
367
|
|
|
364
368
|
**Incompatibilidad de versión de esquema / base de datos corrupta**
|
|
365
369
|
|
package/README.fr.md
CHANGED
|
@@ -73,7 +73,7 @@ claude-synergy/
|
|
|
73
73
|
└── URGENT_FINDINGS.md # 23 actionable items surfaced from the corpus
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
**Chiffres en direct (version v1.1
|
|
76
|
+
**Chiffres en direct (version v1.2.1) :** 44 produits / 1 171 fichiers de publication / 6 573 modifications / 1 260 entités / 12 synergies / 519 tests / 13 outils MCP / 17 commandes CLI. (La base de données a été actualisée via `sync_now` le 24 mai 2026.)
|
|
77
77
|
|
|
78
78
|
---
|
|
79
79
|
|
|
@@ -90,6 +90,8 @@ claude-synergy/
|
|
|
90
90
|
| **4c — ingestion HTML→Markdown avec turndown** | ✅ réalisé | Les corps HTML (Copilot/VS Code/Cursor) génèrent désormais des lignes individuelles pour FTS5 + l'extraction d'entités. |
|
|
91
91
|
| **4d — Playwright + registre MCP + configuration YAML** | ✅ réalisé | Windsurf via Playwright ; Smithery + registre MCP officiel comme catalogues de l'étape 4 ; les produits sont regroupés dans `products.yaml`. |
|
|
92
92
|
| **5 — Navigation avec fenêtrage v1.1 + intégration OpenAI** | ✅ réalisé | `hk diff` / `hk breaking`, limites de date pour toutes les commandes de navigation, 3 nouveaux outils MCP (total de 11), fournisseur d'intégration OpenAI, dimension d'intégration configurable, synchronisation automatique de `claude-code`, analyseur générique `keep-a-changelog`. |
|
|
93
|
+
| **6 — v1.2 synchronisation à partir de MCP** | ✅ réalisé | `sync_status` (état de fraîcheur par produit, détection "jamais/obsolète") et `sync_now` (récupération à la demande → ingestion → intégration avec aperçu `dry_run` + verrouillage de concurrence en cours). Comble le fossé où un agent pouvait interroger la base de données, mais pas la mettre à jour. **Corrige également :** un bug de suppression de marqueur où `INSERT OR REPLACE INTO products` déclenchait une suppression sur la clé étrangère `markers`, remettant silencieusement à zéro le curseur `since` de chaque produit à chaque ingestion (régression §8.20). |
|
|
94
|
+
| **6.1 — v1.2.1 centralisation des marqueurs de récupération** | ✅ réalisé | La fonction `writeMarker` a été centralisée dans `fetchOne` afin que chaque récupération réussie mette à jour le marqueur. Les stratégies qui renvoyaient 0 éléments datés dans la plage spécifiée (notamment `aider` pour le journal des modifications brut) n'écrivaient pas de marqueur et ré-téléchargeaient `HISTORY.md` à chaque synchronisation. La stratégie `webfetch` non implémentée a été renommée en `manual` pour `claude-api` et `anthropic-apps` ; `sync_status` affiche désormais les produits "manuels" comme "manual" au lieu de "jamais" et les exclut de `stale_only` (régression §8.21). |
|
|
93
95
|
|
|
94
96
|
Feuille de route pour la version 0.8+ : consultable dans [URGENT_FINDINGS.md](URGENT_FINDINGS.md) et les problèmes.
|
|
95
97
|
|
|
@@ -253,8 +255,10 @@ Outils exposés :
|
|
|
253
255
|
| `get_changes_since` | **Nouveau.** Modifications dans une fenêtre de temps, regroupées par produit + version. Entrées : `since` (obligatoire), `until?`, `product?`, `kind?`, `limit?`. |
|
|
254
256
|
| `search_breaking_changes` | **Nouveau.** Liste plate des modifications importantes — aucun terme de recherche n'est nécessaire. Entrées : `product?`, `since?`, `until?`, `limit?`. |
|
|
255
257
|
| `compare_versions` | **Nouveau.** Toutes les modifications entre deux versions d'un même produit. Entrées : `product`, `from_version`, `to_version`. |
|
|
258
|
+
| `sync_status` | **v1.2.** Fraîcheur de la synchronisation par produit : horodatage de la dernière récupération, heures écoulées depuis la récupération, nombre de publications ingérées. Paramètres : `product?`, `stale_only?`, `stale_hours?`. Utilisez cette fonctionnalité AVANT de faire confiance à `latest_releases` pour savoir si la base de données est obsolète. |
|
|
259
|
+
| `sync_now` | **v1.2.** Actualisation à la demande (similaire à `hk sync`). Paramètres : `product?`, `dry_run?`, `include_ingest?`, `include_embed?`, `timeout_ms?`. Renvoie une erreur `InvalidParams` si une autre instance de `sync_now` est déjà en cours. NE COMMET PAS les modifications dans Git. |
|
|
256
260
|
|
|
257
|
-
Les
|
|
261
|
+
Les outils v1.1 sont similaires à `hk diff` / `hk breaking` et au flux de travail de comparaison de versions qui nécessitait auparavant des scripts. Les outils de synchronisation v1.2 comblent le fossé où une session pouvait interroger la base de données, mais pas la mettre à jour : `sync_status` signale l'obsolescence, `sync_now` exécute le pipeline. Consultez [le manuel → serveur MCP](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/mcp-server/) pour les schémas de paramètres complets.
|
|
258
262
|
|
|
259
263
|
---
|
|
260
264
|
|
|
@@ -291,7 +295,7 @@ Index complet dans [synergies/INDEX.md](synergies/INDEX.md).
|
|
|
291
295
|
La suite Vitest couvre les niveaux unitaires, d'intégration, de régression et de test de base. **[test-spec-3.md](test-spec-3.md) est la référence actuelle** à partir de la version v0.7.0 ; [test-spec.md](test-spec.md) (v1) et [test-spec-2.md](test-spec-2.md) (v2) restent dans le dépôt comme enregistrement historique de l'évolution de la conception.
|
|
292
296
|
|
|
293
297
|
```bash
|
|
294
|
-
pnpm test # unit + integration + regression (~
|
|
298
|
+
pnpm test # unit + integration + regression (~36s, 519 tests)
|
|
295
299
|
pnpm test:watch # interactive
|
|
296
300
|
pnpm test:coverage # generate coverage/index.html (thresholds: 78/75/85/78)
|
|
297
301
|
pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
|
|
@@ -302,7 +306,7 @@ Structure :
|
|
|
302
306
|
| Dossier | Ce qu'il couvre |
|
|
303
307
|
|-----|----------------|
|
|
304
308
|
| `test/unit/` | par module — extraction, ingestion, requête (incl. `until` / navigation / depuis / comparaison), base de données (incl. migration de configuration de dimension v3), intégration, hybride, récupération + tous les fournisseurs (Ollama / Voyage / **OpenAI**) + récupération-RSS/changelog (incl. analyseur **keep-a-changelog**) / HTML + récupération-registre-MCP + récupération-playwright + configuration-produits + ingestion/requête de synergies. |
|
|
305
|
-
| `test/integration/` | de bout en bout — pipeline, synchronisation, serveur MCP (JSON-RPC
|
|
309
|
+
| `test/integration/` | de bout en bout — pipeline, synchronisation, serveur MCP (JSON-RPC via stdin/stdout, 13 outils dont `sync_status` / `sync_now`), CLI (dont `hk diff`, `hk breaking`) |
|
|
306
310
|
| `test/regression/` | §8.1–§8.19 — chacun protège contre un bug réel corrigé pendant le développement (§8.19 : la pagination précoce de ghReleases préserve les éléments dans la fenêtre). |
|
|
307
311
|
| `test/smoke/` | Test complet sur l'ensemble des fichiers (1 143 fichiers) simulant les produits réels. |
|
|
308
312
|
| `test/fixtures/` | 3 produits factices + réponses HTTP simulées (RSS / GH / Voyage / Cohere / Ollama / Anthropic / Smithery / Registre MCP officiel). |
|
package/README.hi.md
CHANGED
|
@@ -73,7 +73,7 @@ claude-synergy/
|
|
|
73
73
|
└── URGENT_FINDINGS.md # 23 actionable items surfaced from the corpus
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
**वर्तमान आंकड़े (v1.1
|
|
76
|
+
**वर्तमान आंकड़े (v1.2.1 के अनुसार):** 44 उत्पाद / 1,171 रिलीज़ फ़ाइलें / 6,573 परिवर्तन / 1,260 इकाइयां / 12 तालमेल / 519 परीक्षण / 13 एमसीपी उपकरण / 17 सीएलआई कमांड। (डेटाबेस 2026-05-24 को `sync_now` के माध्यम से अपडेट किया गया।)
|
|
77
77
|
|
|
78
78
|
---
|
|
79
79
|
|
|
@@ -90,6 +90,8 @@ claude-synergy/
|
|
|
90
90
|
| **4c — टर्नडाउन एचटीएमएल→मार्कडाउन इनजेस्ट** | ✅ जारी किया गया | एचटीएमएल बॉडी (कोपायलट/वीएस कोड/कर्सर) अब एफटीएस5 (FTS5) + एंटिटी एक्सट्रैक्शन के लिए प्रति-बुलेट पंक्तियाँ उत्पन्न करते हैं। |
|
|
91
91
|
| **4d — प्लेराइट + एमसीपी रजिस्ट्री + YAML कॉन्फ़िगरेशन** | ✅ जारी किया गया | प्लेराइट के माध्यम से विंडसर्फ़; स्मिथरी + आधिकारिक एमसीपी रजिस्ट्री को चौथे स्तर के कैटलॉग के रूप में उपयोग किया जाता है; उत्पादों को `products.yaml` में समेकित किया गया है। |
|
|
92
92
|
| **5 — v1.1 विंडो ब्राउज़िंग + ओपनएआई एम्बेड** | ✅ जारी किया गया | `hk diff` / `hk breaking`, सभी ब्राउज़िंग कमांड के लिए तारीख सीमा, 3 नए एमसीपी उपकरण (कुल 11), ओपनएआई एम्बेडिंग प्रदाता, कॉन्फ़िगर करने योग्य एम्बेडिंग आयाम, `claude-code` ऑटो-सिंक, सामान्य `keep-a-changelog` पार्सर। |
|
|
93
|
+
| **6 — v1.2 एमसीपी से सिंक** | ✅ जारी किया गया | `sync_status` (प्रत्येक उत्पाद की ताज़गी की स्थिति, कभी नहीं/पुरानी स्थिति का पता लगाना) और `sync_now` (मांग पर डेटा प्राप्त करना → संसाधित करना → `dry_run` पूर्वावलोकन के साथ एम्बेड करना + प्रक्रिया में समवर्ती लॉक)। यह उस स्थिति को समाप्त करता है जहां एक उपयोगकर्ता डेटाबेस से जानकारी प्राप्त कर सकता था लेकिन उसे अपडेट नहीं कर सकता था। **इसके अतिरिक्त, यह निम्नलिखित समस्या को भी ठीक करता है:** "मार्कर-वाइप" बग, जिसमें `INSERT OR REPLACE INTO products` कमांड `markers` विदेशी कुंजी पर एक DELETE ऑपरेशन चलाता था, जिसके कारण प्रत्येक उत्पाद के लिए `since` कर्सर हर बार डेटा आयात करने पर रीसेट हो जाता था (प्रतिगमन §8.20)। |
|
|
94
|
+
| **6.1 — v1.2.1 फ़ेचर-मार्कर केंद्रीकरण** | ✅ जारी किया गया | `writeMarker` फ़ंक्शन को `fetchOne` में केंद्रीकृत किया गया है, ताकि प्रत्येक सफल डेटा आयात के साथ मार्कर अपडेट हो जाए। पहले, उन रणनीतियों ने जो 0 इन-विंडो दिनांकित आइटम लौटाती थीं (विशेष रूप से `aider` कच्चा परिवर्तन लॉग), मार्कर नहीं लिखते थीं और हर सिंक पर `HISTORY.md` फ़ाइल को फिर से डाउनलोड करती थीं। `webfetch` रणनीति, जिसे लागू नहीं किया गया था, का नाम बदलकर `manual` कर दिया गया है, जिसका उपयोग `claude-api` और `anthropic-apps` के लिए किया जाता है; `sync_status` अब मैन्युअल उत्पादों को "never" के बजाय "manual" के रूप में प्रदर्शित करता है और उन्हें `stale_only` से बाहर रखता है (प्रतिगमन §8.21)। |
|
|
93
95
|
|
|
94
96
|
v0.8+ के लिए रोडमैप: [URGENT_FINDINGS.md](URGENT_FINDINGS.md) और मुद्दों में ट्रैक किया गया है।
|
|
95
97
|
|
|
@@ -253,8 +255,10 @@ GitHub Copilot के लिए `.vscode/mcp.json` फ़ाइल में, `m
|
|
|
253
255
|
| `get_changes_since` | **नया।** एक समय विंडो में परिवर्तन, उत्पाद+संस्करण द्वारा समूहीकृत। इनपुट: `since` (आवश्यक), `until?`, `product?`, `kind?`, `limit?`. |
|
|
254
256
|
| `search_breaking_changes` | **नया।** महत्वपूर्ण परिवर्तनों की एक सपाट सूची — किसी खोज शब्द की आवश्यकता नहीं। इनपुट: `product?`, `since?`, `until?`, `limit?`. |
|
|
255
257
|
| `compare_versions` | **नया।** एक उत्पाद के दो संस्करणों के बीच सभी परिवर्तन। इनपुट: `product`, `from_version`, `to_version`. |
|
|
258
|
+
| `sync_status` | **v1.2.** प्रत्येक उत्पाद के लिए सिंक की ताज़गी की स्थिति — अंतिम डेटा आयात का समय, डेटा आयात के बाद से घंटे, संसाधित रिलीज़ की संख्या। इनपुट: `product?`, `stale_only?`, `stale_hours?`. `latest_releases` पर भरोसा करने से पहले, यह जांचना महत्वपूर्ण है कि डेटाबेस पुराना है या नहीं। |
|
|
259
|
+
| `sync_now` | **v1.2.** मांग पर ताज़ा करना (यह `hk sync` के समान है)। इनपुट: `product?`, `dry_run?`, `include_ingest?`, `include_embed?`, `timeout_ms?`. यदि कोई अन्य `sync_now` प्रक्रिया चल रही है, तो यह `InvalidParams` त्रुटि प्रदर्शित करता है। यह परिवर्तन सीधे git में नहीं करता है। |
|
|
256
260
|
|
|
257
|
-
|
|
261
|
+
v1.1 उपकरण `hk diff` / `hk breaking` और संस्करण तुलना कार्यप्रवाह को प्रतिबिंबित करते हैं, जिसके लिए पहले स्क्रिप्टिंग की आवश्यकता होती थी। v1.2 सिंक उपकरण उस स्थिति को समाप्त करते हैं जहां एक सत्र डेटाबेस से जानकारी प्राप्त कर सकता था लेकिन उसे अपडेट नहीं कर सकता था — `sync_status` पुरानी स्थिति की रिपोर्ट करता है, और `sync_now` पाइपलाइन चलाता है। पूर्ण इनपुट स्कीमा के लिए, [हैंडबुक → एमसीपी सर्वर](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/mcp-server/) देखें।
|
|
258
262
|
|
|
259
263
|
---
|
|
260
264
|
|
|
@@ -291,7 +295,7 @@ GitHub Copilot के लिए `.vscode/mcp.json` फ़ाइल में, `m
|
|
|
291
295
|
विटेस्ट (Vitest) में यूनिट, इंटीग्रेशन, रिग्रेशन और स्मोक परीक्षण शामिल हैं। v0.7.0 के अनुसार, "[test-spec-3.md](test-spec-3.md)" वर्तमान में आधिकारिक दस्तावेज है; [test-spec.md](test-spec.md) (v1) और [test-spec-2.md](test-spec-2.md) (v2) डिज़ाइन के ऐतिहासिक रिकॉर्ड के रूप में रिपॉजिटरी में मौजूद हैं।
|
|
292
296
|
|
|
293
297
|
```bash
|
|
294
|
-
pnpm test # unit + integration + regression (~
|
|
298
|
+
pnpm test # unit + integration + regression (~36s, 519 tests)
|
|
295
299
|
pnpm test:watch # interactive
|
|
296
300
|
pnpm test:coverage # generate coverage/index.html (thresholds: 78/75/85/78)
|
|
297
301
|
pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
|
|
@@ -302,7 +306,7 @@ pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
|
|
|
302
306
|
| मुझे खेद है, लेकिन मैं इस अनुरोध को पूरा करने में असमर्थ हूं क्योंकि यह अपूर्ण है। कृपया पूरा वाक्य या पाठ प्रदान करें जिसका आप अनुवाद करवाना चाहते हैं। | यह क्या शामिल करता है। |
|
|
303
307
|
|-----|----------------|
|
|
304
308
|
| `test/unit/` | प्रति-मॉड्यूल — निकालें, इनजेस्ट करें, क्वेरी करें (शामिल `until` / ब्राउज़ / since / तुलना), डेटाबेस (शामिल dim-config v3 माइग्रेशन), एम्बेड, हाइब्रिड, फेच + प्रत्येक प्रदाता (Ollama / Voyage / **OpenAI**) + फेच-rss/changelog (शामिल **keep-a-changelog** पार्सर)/html + फेच-mcp-registry + फेच-playwright + उत्पादों-कॉन्फ़िग + सि synergy इनजेस्ट/क्वेरी |
|
|
305
|
-
| `test/integration/` | एंड-टू-एंड — पाइपलाइन, सिंक, एमसीपी सर्वर (stdio JSON-RPC,
|
|
309
|
+
| `test/integration/` | एंड-टू-एंड — पाइपलाइन, सिंक, एमसीपी सर्वर (stdio JSON-RPC, 13 उपकरण जिनमें `sync_status` / `sync_now` शामिल हैं), सीएलआई (जिनमें `hk diff`, `hk breaking` शामिल हैं)। |
|
|
306
310
|
| `test/regression/` | §8.1–§8.19 — प्रत्येक एक वास्तविक बग से बचाता है जिसे विकास के दौरान ठीक किया गया था (§8.19: ghReleases शुरुआती-निकास पेजिंग विंडो में आइटम को संरक्षित करता है) |
|
|
307
311
|
| `test/smoke/` | पूर्ण डेटासेट, वास्तविक `products/` (1,143 फ़ाइलें) के लिए। |
|
|
308
312
|
| `test/fixtures/` | 3 नकली उत्पाद + मॉक एचटीटीपी प्रतिक्रियाएं (RSS / GH / Voyage / Cohere / Ollama / Anthropic / Smithery / आधिकारिक MCP रजिस्ट्री)। |
|
package/README.it.md
CHANGED
|
@@ -73,7 +73,7 @@ claude-synergy/
|
|
|
73
73
|
└── URGENT_FINDINGS.md # 23 actionable items surfaced from the corpus
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
**Dati aggiornati (alla versione
|
|
76
|
+
**Dati aggiornati (alla versione 1.2.1):** 44 prodotti / 1.171 file di rilascio / 6.573 modifiche / 1.260 entità / 12 sinergie / 519 test / 13 strumenti MCP / 17 comandi CLI. (Il database è stato aggiornato tramite `sync_now` il 24 maggio 2026.)
|
|
77
77
|
|
|
78
78
|
---
|
|
79
79
|
|
|
@@ -84,12 +84,14 @@ claude-synergy/
|
|
|
84
84
|
| **1 — corpus in formato Markdown (bootstrap)** | ✅ implementato | Study-swarm ha inserito 706 file di rilascio da gennaio a maggio 2026; ampliato a 1.186 con il livello 4. |
|
|
85
85
|
| **2a — SQLite + FTS5 + CLI** | ✅ implementato | CLI `hk`; 15 sottocomandi; ingestione inferiore a 300ms. |
|
|
86
86
|
| **2b — sqlite-vec + Recupero contestuale** | ✅ implementato | Provider pluggable (nessuno/strutturato/ollama/claude-haiku contesto × ollama/voyage embed × nessuno/ollama-judge/voyage/cohere rerank). |
|
|
87
|
-
| **3 — sincronizzazione + server MCP** | ✅ implementato | `hk fetch / sync / seed-markers`; `claude-synergy-mcp` espone
|
|
87
|
+
| **3 — sincronizzazione + server MCP** | ✅ implementato | `hk fetch / sync / seed-markers`; `claude-synergy-mcp` espone 13 strumenti tramite stdio (8 nella versione originale, 3 aggiunti nella v1.1, 2 aggiunti nella v1.2). |
|
|
88
88
|
| **4a — estensione oltre Anthropic** | ✅ implementato | +15 SDK MCP, Cursor (RSS), Aider (HISTORY.md), Continue.dev, Cody Enterprise (RSS filtrato). |
|
|
89
89
|
| **4b — fetcher per l'estrazione da HTML** | ✅ implementato | GitHub Copilot + VS Code Chat (Windsurf richiede Playwright — v0.7). |
|
|
90
90
|
| **4c — ingestione da HTML a Markdown con turndown** | ✅ implementato | I corpi HTML (Copilot/VS Code/Cursor) ora generano righe separate per ogni elemento per FTS5 + estrazione di entità. |
|
|
91
91
|
| **4d — Playwright + registro MCP + configurazione YAML** | ✅ implementato | Windsurf tramite Playwright; Smithery + registro ufficiale MCP come cataloghi del livello 4; prodotti consolidati in `products.yaml`. |
|
|
92
|
-
| **5 — v1.1: navigazione con
|
|
92
|
+
| **5 — v1.1: navigazione con finestre + integrazione OpenAI** | ✅ implementato | `hk diff` / `hk breaking`, limiti di data per tutti i comandi di navigazione, 3 nuovi strumenti MCP (totale di 11), provider di embedding OpenAI, dimensione dell'embedding configurabile, sincronizzazione automatica di `claude-code`, parser generico `keep-a-changelog`. |
|
|
93
|
+
| **6 — v1.2: sincronizzazione da MCP** | ✅ implementato | `sync_status` (freschezza per prodotto, rilevamento di dati obsoleti) e `sync_now` (recupero su richiesta → ingestione → embedding con anteprima `dry_run` + blocco di concorrenza in-process). Risolve il problema in cui un'applicazione poteva interrogare il database ma non aggiornarlo. **Corregge anche:** un bug che causava la cancellazione di tutti i marker quando `INSERT OR REPLACE INTO products` propagava una cancellazione sulla chiave esterna `markers`, reimpostando silenziosamente il cursore `since` di ogni prodotto ad ogni ingestione (regressione §8.20). |
|
|
94
|
+
| **6.1 — Centralizzazione del marcatore nel modulo fetcher (versione 1.2.1)** | ✅ implementato | La funzione `writeMarker` è stata centralizzata in `fetchOne` in modo che ogni operazione di recupero riuscita aggiorni il marcatore. Le strategie che restituivano 0 elementi datati all'interno della finestra temporale (in particolare, il registro delle modifiche "raw" di `aider`) non scrivevano mai un marcatore e scaricavano ripetutamente il file `HISTORY.md` ad ogni sincronizzazione. La strategia `webfetch` non implementata è stata rinominata in `manual` per `claude-api` e `anthropic-apps`; `sync_status` ora visualizza i prodotti configurati manualmente come "manual" invece di "mai" e li esclude da `stale_only` (regressione §8.21). |
|
|
93
95
|
|
|
94
96
|
Roadmap per la versione 0.8+: disponibile in [URGENT_FINDINGS.md](URGENT_FINDINGS.md) e nella sezione issues.
|
|
95
97
|
|
|
@@ -205,7 +207,7 @@ claude-code@2.1.146 2026-05-19 (1 change)
|
|
|
205
207
|
[fixed] Restored `--debug` flag accidentally removed in 2.1.144.
|
|
206
208
|
```
|
|
207
209
|
|
|
208
|
-
**Esplora le modifiche
|
|
210
|
+
**Esplora le modifiche che interrompono il funzionamento in tutto il database:**
|
|
209
211
|
```
|
|
210
212
|
$ hk breaking --since 30d --limit 5
|
|
211
213
|
2026-05-15 claude-agent-sdk-python@0.2.82 Headless and SDK sessions now use Task tools by default.
|
|
@@ -215,7 +217,7 @@ $ hk breaking --since 30d --limit 5
|
|
|
215
217
|
2026-04-22 windsurf@1.10.0 Removed `cascade.run` JSON-RPC method.
|
|
216
218
|
```
|
|
217
219
|
|
|
218
|
-
Non è necessario un termine di ricerca — `hk breaking` è la risposta alla domanda "è
|
|
220
|
+
Non è necessario un termine di ricerca — `hk breaking` è la risposta alla domanda "è cambiato qualcosa di importante di recente?".
|
|
219
221
|
|
|
220
222
|
---
|
|
221
223
|
|
|
@@ -242,19 +244,21 @@ Strumenti esposti:
|
|
|
242
244
|
|
|
243
245
|
| Strumento | Scopo |
|
|
244
246
|
|---|---|
|
|
245
|
-
| `search` | FTS5 + vettoriale; opzionale
|
|
247
|
+
| `search` | FTS5 + vettoriale; opzionale riordinamento. Modalità predefinita per le query in linguaggio naturale. (+ limite superiore di data `until`) |
|
|
246
248
|
| `lookup_entity` | Cronologia esatta delle entità: variabili d'ambiente, comandi, ID dei modelli, CVE, ecc. |
|
|
247
|
-
| `latest_releases` | Rilasci recenti
|
|
249
|
+
| `latest_releases` | Rilasci recenti per prodotto (o per uno specifico). (+ limite inferiore di data `since`) |
|
|
248
250
|
| `get_release` | Contenuto completo di un rilascio. |
|
|
249
251
|
| `list_products` | Elenco con conteggi + ultima versione. |
|
|
250
252
|
| `top_entities` | Entità più menzionate per tipo. |
|
|
251
|
-
| `list_synergies` | Flussi di lavoro
|
|
253
|
+
| `list_synergies` | Flussi di lavoro curati tra prodotti. (+ filtro opzionale per `prodotto`) |
|
|
252
254
|
| `read_synergy` | Testo completo di un file di sinergia. |
|
|
253
255
|
| `get_changes_since` | **Nuovo.** Modifiche in un intervallo di tempo, raggruppate per prodotto+versione. Input: `since` (obbligatorio), `until?`, `product?`, `kind?`, `limit?`. |
|
|
254
|
-
| `search_breaking_changes` | **Nuovo.** Elenco piatto delle modifiche
|
|
255
|
-
| `compare_versions` | **
|
|
256
|
+
| `search_breaking_changes` | **Nuovo.** Elenco piatto delle modifiche che interrompono il funzionamento — non è necessario un termine di ricerca. Input: `product?`, `since?`, `until?`, `limit?`. |
|
|
257
|
+
| `compare_versions` | **v1.1.** Tutte le modifiche tra due versioni dello stesso prodotto. Input: `product`, `from_version`, `to_version`. |
|
|
258
|
+
| `sync_status` | **v1.2.** Freschezza della sincronizzazione per prodotto — ultimo timestamp di recupero, ore dall'ultimo recupero, numero di rilasci ingeriti. Input: `product?`, `stale_only?`, `stale_hours?`. Utilizzare PRIMA di fidarsi di `latest_releases` per sapere se il database è obsoleto. |
|
|
259
|
+
| `sync_now` | **v1.2.** Aggiornamento su richiesta (simile a `hk sync`). Input: `product?`, `dry_run?`, `include_ingest?`, `include_embed?`, `timeout_ms?`. Rifiuta con `InvalidParams` se un altro `sync_now` è già in corso. NON commette le modifiche nel repository git. |
|
|
256
260
|
|
|
257
|
-
|
|
261
|
+
Gli strumenti della v1.1 replicano `hk diff` / `hk breaking` e il flusso di lavoro di confronto delle versioni che in precedenza richiedeva script. Gli strumenti di sincronizzazione della v1.2 colmano la lacuna in cui una sessione poteva interrogare il database ma non aggiornarlo — `sync_status` segnala l'obsolescenza, `sync_now` esegue la pipeline. Consultare [handbook → server MCP](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/mcp-server/) per gli schemi di input completi.
|
|
258
262
|
|
|
259
263
|
---
|
|
260
264
|
|
|
@@ -262,11 +266,11 @@ I tre nuovi strumenti replicano `hk diff` / `hk breaking` e il flusso di lavoro
|
|
|
262
266
|
|
|
263
267
|
Panoramica completa in [SOURCES.md](SOURCES.md).
|
|
264
268
|
|
|
265
|
-
- **Livello 1 (GitHub Releases)** — `gh api repos/<owner>/<repo>/releases` per 23 prodotti,
|
|
266
|
-
- **Livello 2 (markdown grezzo)** — `Aider-AI/aider/HISTORY.md`.
|
|
269
|
+
- **Livello 1 (GitHub Releases)** — `gh api repos/<owner>/<repo>/releases` per 23 prodotti, tra cui gli SDK di Anthropic (7 lingue), gli SDK per agenti (2), l'interfaccia a riga di comando di ant, **claude-code** (ora sincronizzato automaticamente tramite gh-releases dalla versione 1.1 – precedentemente configurato manualmente), claude-code-action, claude-code-security-review e 15 SDK dell'ecosistema MCP.
|
|
270
|
+
- **Livello 2 (markdown grezzo)** — `Aider-AI/aider/HISTORY.md`. È disponibile anche il parser generico `keep-a-changelog` (versione 1.1+) per qualsiasi prodotto il cui sorgente sia un file CHANGELOG.md nel formato Keep-a-Changelog; la configurazione avviene tramite una voce in `products.yaml`.
|
|
267
271
|
- **Livello 3 (HTML / RSS)** — `platform.claude.com/docs/release-notes`, `support.claude.com/articles/12138966`, `cursor.com/changelog/rss.xml`, `sourcegraph.com/changelog/featured.rss` (filtrato), `github.blog/changelog/label/copilot/`, `code.visualstudio.com/updates/v1_NNN`.
|
|
268
272
|
- **Livello 4 (catalogo)** — `anthropics/skills`, `claude-plugins-{official,community}`, `knowledge-work-plugins`.
|
|
269
|
-
- **Livello 5 (
|
|
273
|
+
- **Livello 5 (informativo)** — Account X `@ClaudeCodeLog`; mirror del changelog di marckrenn.
|
|
270
274
|
|
|
271
275
|
Strategie di acquisizione: `gh-releases | rss | raw-changelog | html-scrape | catalog | playwright`. Nuovo prodotto = una voce in `products.yaml`.
|
|
272
276
|
|
|
@@ -291,7 +295,7 @@ Indice completo in [synergies/INDEX.md](synergies/INDEX.md).
|
|
|
291
295
|
La suite di test Vitest copre i livelli di unità, integrazione, regressione e test preliminari. **[test-spec-3.md](test-spec-3.md) è la documentazione di riferimento corrente** a partire dalla versione 0.7.0; [test-spec.md](test-spec.md) (versione 1) e [test-spec-2.md](test-spec-2.md) (versione 2) rimangono nel repository come documentazione storica della progettazione.
|
|
292
296
|
|
|
293
297
|
```bash
|
|
294
|
-
pnpm test # unit + integration + regression (~
|
|
298
|
+
pnpm test # unit + integration + regression (~36s, 519 tests)
|
|
295
299
|
pnpm test:watch # interactive
|
|
296
300
|
pnpm test:coverage # generate coverage/index.html (thresholds: 78/75/85/78)
|
|
297
301
|
pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
|
|
@@ -301,9 +305,9 @@ Layout:
|
|
|
301
305
|
|
|
302
306
|
| Directory | Cosa copre |
|
|
303
307
|
|-----|----------------|
|
|
304
|
-
| `test/unit/` | per
|
|
305
|
-
| `test/integration/` | end-to-end
|
|
306
|
-
| `test/regression/` | §8.1–§8.19 — ciascuno protegge da un bug
|
|
308
|
+
| `test/unit/` | per modulo: estrazione, acquisizione, interrogazione (inclusi `until` / navigazione / da / confronto), database (inclusa la migrazione della configurazione dimensionale v3), incorporamento, ibrido, acquisizione + ogni provider (Ollama / Voyage / **OpenAI**) + acquisizione-RSS/changelog (incluso il parser **keep-a-changelog**) / HTML + acquisizione-registro-MCP + acquisizione-playwright + configurazione-prodotti + acquisizione/interrogazione sinergica. |
|
|
309
|
+
| `test/integration/` | end-to-end: pipeline, sincronizzazione, server MCP (JSON-RPC standard input/output, 13 strumenti inclusi `sync_status` / `sync_now`), interfaccia a riga di comando (inclusi `hk diff`, `hk breaking`). |
|
|
310
|
+
| `test/regression/` | §8.1–§8.19 — ciascuno protegge da un reale bug corretto durante lo sviluppo (§8.19: la paginazione early-exit di ghReleases preserva gli elementi all'interno dell'intervallo). |
|
|
307
311
|
| `test/smoke/` | Test completo con l'intero corpus rispetto alla directory `products/` (1.143 file). |
|
|
308
312
|
| `test/fixtures/` | 3 prodotti fittizi + risposte HTTP simulate (RSS / GH / Voyage / Cohere / Ollama / Anthropic / Smithery / Registro MCP ufficiale). |
|
|
309
313
|
| `test/helpers/` | `temp-db.ts`, `fetch-mock.ts`, `mcp-client.ts`, `seed-corpus.ts`, `golden-vectors.ts`, `playwright-mock.ts`, `yaml-fixtures.ts` |
|
|
@@ -344,13 +348,13 @@ La sincronizzazione è idempotente: è sicuro rieseguirla anche in caso di un er
|
|
|
344
348
|
|
|
345
349
|
Il comando `hk embed` chiama un servizio esterno di embedding:
|
|
346
350
|
|
|
347
|
-
- **Ollama (predefinito, 768 dimensioni)
|
|
348
|
-
- **Voyage (1024 dimensioni)
|
|
349
|
-
- **OpenAI (1536 dimensioni predefinite, configurabili)
|
|
351
|
+
- **Ollama (predefinito, 768 dimensioni)** — assicurarsi che Ollama sia in esecuzione (`ollama serve`) e che il modello di incorporamento sia stato scaricato (`ollama pull nomic-embed-text`).
|
|
352
|
+
- **Voyage (1024 dimensioni)** — impostare `VOYAGE_API_KEY` nell'ambiente. Controllare la chiave API su [dash.voyageai.com](https://dash.voyageai.com).
|
|
353
|
+
- **OpenAI (1536 dimensioni predefinite, configurabili)** — impostare `OPENAI_API_KEY`. Il modello predefinito è `text-embedding-3-small`; sovrascriverlo con `OPENAI_EMBED_MODEL` (ad esempio, `text-embedding-3-large` per 3072 dimensioni). Utilizzare tramite `hk hybrid --embed openai` o `hk embed --embed openai`.
|
|
350
354
|
|
|
351
|
-
**Incompatibilità
|
|
355
|
+
**Incompatibilità della dimensione dell'incorporamento durante la modifica del provider**
|
|
352
356
|
|
|
353
|
-
Ogni provider produce vettori di una dimensione fissa (Ollama 768, Voyage 1024, OpenAI 1536 per impostazione predefinita; OpenAI supporta dimensioni configurabili all'interno delle dimensioni native del modello). Il database memorizza la dimensione attiva in `schema_meta.embedding_dim`.
|
|
357
|
+
Ogni provider produce vettori di una dimensione fissa (Ollama 768, Voyage 1024, OpenAI 1536 per impostazione predefinita; OpenAI supporta dimensioni configurabili all'interno delle dimensioni native del modello). Il database memorizza la dimensione attiva in `schema_meta.embedding_dim`. La modifica del provider con dimensioni diverse mentre esistono chunk genera un errore `EMBEDDING_DIM_MISMATCH` (`AppError`) anziché corrompere silenziosamente la tabella dei vettori. Per cambiare provider:
|
|
354
358
|
|
|
355
359
|
```bash
|
|
356
360
|
rm data/claude-synergy.db data/claude-synergy.db-wal data/claude-synergy.db-shm
|
|
@@ -359,7 +363,7 @@ hk ingest
|
|
|
359
363
|
hk embed --embed openai # new provider, new dim, fresh chunks_vec
|
|
360
364
|
```
|
|
361
365
|
|
|
362
|
-
Per la troncatura
|
|
366
|
+
Per la troncatura Matryoshka di OpenAI (dimensione inferiore a quella nativa), impostare `OPENAI_EMBED_MODEL` e passare la dimensione desiderata tramite la costruzione del provider in `hk embed`; consultare la [sezione sull'incorporamento della guida](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cli-reference/#embedding-providers-and-dimensions) per i dettagli.
|
|
363
367
|
|
|
364
368
|
**Incompatibilità di versione dello schema / database corrotto**
|
|
365
369
|
|
package/README.ja.md
CHANGED
|
@@ -73,7 +73,7 @@ claude-synergy/
|
|
|
73
73
|
└── URGENT_FINDINGS.md # 23 actionable items surfaced from the corpus
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
**現在の数値 (v1.1
|
|
76
|
+
**現在の数値 (v1.2.1時点):** 44製品 / 1,171リリースファイル / 6,573変更 / 1,260エンティティ / 12の相乗効果 / 519テスト / 13のMCPツール / 17のCLIコマンド。 (2026年5月24日に`sync_now`でコーパスを更新しました。)
|
|
77
77
|
|
|
78
78
|
---
|
|
79
79
|
|
|
@@ -90,6 +90,8 @@ claude-synergy/
|
|
|
90
90
|
| **4c — turndown HTML→Markdownインジェスト** | ✅ リリース済み | HTMLの本文(Copilot/VS Code/Cursor)が、FTS5とエンティティ抽出のための、行ごとのリストを生成 |
|
|
91
91
|
| **4d — Playwright + MCPレジストリ + YAML設定** | ✅ リリース済み | WindsurfはPlaywright経由; Smitheryと公式MCPレジストリをTier-4カタログとして使用; 製品は`products.yaml`に統合 |
|
|
92
92
|
| **5 — v1.1:ウィンドウ表示機能 + OpenAIの埋め込み機能** | ✅ リリース済み | `hk diff` / `hk breaking`:すべての閲覧コマンドで日付範囲を指定可能。3つの新しいMCPツール(合計11個)、OpenAIの埋め込み機能、設定可能な埋め込み次元、`claude-code`の自動同期、汎用的な`keep-a-changelog`パーサー。 |
|
|
93
|
+
| **6 — v1.2 sync-from-MCP** | ✅ リリース済み | `sync_status`(製品ごとの鮮度、"never"または"stale"の状態検出)と`sync_now`(オンデマンドでの取得→取り込み→埋め込み。`dry_run`プレビューと、処理中の同時実行ロック機能付き)。 これにより、コーパスを問い合わせできるものの、更新できないという問題を解消します。 **また、以下の問題を修正:** `INSERT OR REPLACE INTO products`によって`markers`の外部キーにDELETEが連鎖し、すべての製品の`since`カーソルが、取り込みのたびにリセットされていたバグ(回帰 §8.20)。 |
|
|
94
|
+
| **6.1 — v1.2.1 fetcher-markerの中央管理** | ✅ リリース済み | `fetchOne`内で`writeMarker`を中央管理化し、すべての正常な取得でマーカーを更新するようにしました。 以前は、一定期間内に0件のアイテムを返した戦略(特に`aider`のraw-changelog)は、マーカーを書き込まず、`HISTORY.md`を毎回再取得していました。 実装されていない`webfetch`戦略を、`claude-api`および`anthropic-apps`向けに`manual`に改名しました。 `sync_status`では、現在、手動で設定された製品を"never"ではなく"manual"として表示し、`stale_only`から除外するようにしました(回帰 §8.21)。 |
|
|
93
95
|
|
|
94
96
|
v0.8以降のロードマップ:[URGENT_FINDINGS.md](URGENT_FINDINGS.md)およびissueで追跡中。
|
|
95
97
|
|
|
@@ -253,8 +255,10 @@ GitHub Copilotの`.vscode/mcp.json`ファイルでは、`mcpServers`ではなく
|
|
|
253
255
|
| `get_changes_since` | **新規。** 製品とバージョンごとにグループ化された、時間範囲内の変更点。入力:`since`(必須)、`until?`、`product?`、`kind?`、`limit?`。 |
|
|
254
256
|
| `search_breaking_changes` | **新規。** 検索語句不要の、変更点のフラットリスト。入力:`product?`、`since?`、`until?`、`limit?`。 |
|
|
255
257
|
| `compare_versions` | **新規。** 単一の製品の2つのバージョン間のすべての変更点。入力:`product`、`from_version`、`to_version`。 |
|
|
258
|
+
| `sync_status` | **v1.2.** 製品ごとの同期の鮮度:最終取得時刻、取得からの経過時間、取り込まれたリリース数。 入力:`product?`、`stale_only?`、`stale_hours?`。 `latest_releases`を信頼する前に、コーパスが最新の状態かどうかを確認するために使用してください。 |
|
|
259
|
+
| `sync_now` | **v1.2.** オンデマンドでの更新(`hk sync`と同様)。 入力:`product?`、`dry_run?`、`include_ingest?`、`include_embed?`、`timeout_ms?`。 別の`sync_now`が実行中の場合、`InvalidParams`エラーで拒否されます。 Gitへのコミットは行いません。 |
|
|
256
260
|
|
|
257
|
-
|
|
261
|
+
v1.1のツールは、`hk diff` / `hk breaking`および、以前はスクリプトが必要だったバージョン比較のワークフローを模倣しています。 v1.2の同期ツールは、セッションがコーパスを問い合わせできるものの、更新できないという問題を解消します。 `sync_status`は鮮度を報告し、`sync_now`はパイプラインを実行します。 完全な入力スキーマについては、[マニュアル → MCPサーバー](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/mcp-server/)を参照してください。
|
|
258
262
|
|
|
259
263
|
---
|
|
260
264
|
|
|
@@ -291,7 +295,7 @@ GitHub Copilotの`.vscode/mcp.json`ファイルでは、`mcpServers`ではなく
|
|
|
291
295
|
Vitestスイートは、ユニットテスト、統合テスト、回帰テスト、および初期動作確認(smoke)の各レベルをカバーします。**[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)は、設計の経緯を示すための履歴として、リポジトリに残っています。
|
|
292
296
|
|
|
293
297
|
```bash
|
|
294
|
-
pnpm test # unit + integration + regression (~
|
|
298
|
+
pnpm test # unit + integration + regression (~36s, 519 tests)
|
|
295
299
|
pnpm test:watch # interactive
|
|
296
300
|
pnpm test:coverage # generate coverage/index.html (thresholds: 78/75/85/78)
|
|
297
301
|
pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
|
|
@@ -302,7 +306,7 @@ pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
|
|
|
302
306
|
| ディレクトリ | 内容 |
|
|
303
307
|
|-----|----------------|
|
|
304
308
|
| `test/unit/` | モジュールごと — 抽出、取り込み、クエリ(`until` / 閲覧 / `since` / 比較を含む)、データベース(次元設定v3移行を含む)、埋め込み、ハイブリッド、取り込み + すべてのプロバイダー(Ollama / Voyage / **OpenAI**)+ RSS/変更ログの取り込み(**keep-a-changelog**パーサーを含む)/HTML + MCPレジストリの取り込み + Playwrightの取り込み + 製品設定 + 連携の取り込み/クエリ |
|
|
305
|
-
| `test/integration/` |
|
|
309
|
+
| `test/integration/` | エンドツーエンド:パイプライン、同期、MCPサーバー(stdio JSON-RPC、13のツール(`sync_status` / `sync_now`を含む)、CLI(`hk diff`、`hk breaking`を含む)) |
|
|
306
310
|
| `test/regression/` | §8.1–§8.19 — それぞれが、開発中に修正された実際のバグに対する対策。(§8.19:ghReleasesの早期終了ページネーションは、指定範囲内のアイテムを保持します) |
|
|
307
311
|
| `test/smoke/` | 実際の`products/`ディレクトリ(1,143個のファイル)に対するフルコーパスのテスト。 |
|
|
308
312
|
| `test/fixtures/` | 3つのダミー製品と、モックHTTPレスポンス(RSS / GH / Voyage / Cohere / Ollama / Anthropic / Smithery / 公式MCPレジストリ)。 |
|
package/README.md
CHANGED
|
@@ -73,7 +73,7 @@ claude-synergy/
|
|
|
73
73
|
└── URGENT_FINDINGS.md # 23 actionable items surfaced from the corpus
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
**Live numbers (as of v1.1
|
|
76
|
+
**Live numbers (as of v1.2.1):** 44 products / 1,171 release files / 6,573 changes / 1,260 entities / 12 synergies / 519 tests / 13 MCP tools / 17 CLI commands. (Corpus refreshed via `sync_now` on 2026-05-24.)
|
|
77
77
|
|
|
78
78
|
---
|
|
79
79
|
|
|
@@ -84,14 +84,16 @@ claude-synergy/
|
|
|
84
84
|
| **1 — bootstrap (markdown corpus)** | ✅ shipped | Study-swarm seeded 706 release files Jan→May 2026; extended to 1,186 by Tier 4d |
|
|
85
85
|
| **2a — SQLite + FTS5 + CLI** | ✅ shipped | `hk` CLI; 15 subcommands; sub-300ms ingest |
|
|
86
86
|
| **2b — sqlite-vec + Contextual Retrieval** | ✅ shipped | Provider-pluggable (none/structured/ollama/claude-haiku context × ollama/voyage embed × none/ollama-judge/voyage/cohere rerank) |
|
|
87
|
-
| **3 — sync + MCP server** | ✅ shipped | `hk fetch / sync / seed-markers`; `claude-synergy-mcp` exposes
|
|
87
|
+
| **3 — sync + MCP server** | ✅ shipped | `hk fetch / sync / seed-markers`; `claude-synergy-mcp` exposes 13 tools over stdio (8 at original Tier-3 ship, 3 added in v1.1, 2 added in v1.2) |
|
|
88
88
|
| **4a — extend beyond Anthropic** | ✅ shipped | +15 MCP SDKs, Cursor (RSS), Aider (HISTORY.md), Continue.dev, Cody Enterprise (RSS filtered) |
|
|
89
89
|
| **4b — HTML-scrape fetcher** | ✅ shipped | GitHub Copilot + VS Code Chat (Windsurf needs Playwright — v0.7) |
|
|
90
90
|
| **4c — turndown HTML→markdown ingest** | ✅ shipped | HTML bodies (Copilot/VS Code/Cursor) now produce per-bullet rows for FTS5 + entity extraction |
|
|
91
91
|
| **4d — Playwright + MCP registry + YAML config** | ✅ shipped | Windsurf via Playwright; Smithery + official MCP Registry as Tier-4 catalogs; products consolidated into `products.yaml` |
|
|
92
92
|
| **5 — v1.1 windowed browsing + OpenAI embed** | ✅ shipped | `hk diff` / `hk breaking`, date bounds across all browsing commands, 3 new MCP tools (11 total), OpenAI embedding provider, configurable embedding dimension, `claude-code` auto-sync, generic `keep-a-changelog` parser |
|
|
93
|
+
| **6 — v1.2 sync-from-MCP** | ✅ shipped | `sync_status` (per-product freshness, never/stale detection) and `sync_now` (on-demand fetch → ingest → embed with `dry_run` preview + in-process concurrency lock). Closes the seam where a calling agent could query the corpus but not refresh it. **Also fixes:** marker-wipe bug where `INSERT OR REPLACE INTO products` cascaded a DELETE on the `markers` FK, silently resetting every product's `since` cursor on each ingest (regression §8.20). |
|
|
94
|
+
| **6.1 — v1.2.1 fetcher-marker centralization** | ✅ shipped | Centralized `writeMarker` in `fetchOne` so every successful fetch updates the marker — pre-fix, strategies that returned 0 in-window dated items (most notably `aider` raw-changelog) never wrote a marker and re-pulled `HISTORY.md` on every sync. Renamed unimplemented `webfetch` strategy to `manual` for `claude-api` + `anthropic-apps`; `sync_status` now renders manual products as "manual" instead of "never" and excludes them from `stale_only` (regression §8.21). |
|
|
93
95
|
|
|
94
|
-
Roadmap beyond v1.
|
|
96
|
+
Roadmap beyond v1.2: tracked in [URGENT_FINDINGS.md](URGENT_FINDINGS.md) and issues.
|
|
95
97
|
|
|
96
98
|
---
|
|
97
99
|
|
|
@@ -221,7 +223,7 @@ No search term needed — `hk breaking` is the answer to "did anything load-bear
|
|
|
221
223
|
|
|
222
224
|
## MCP server — give your agents access to this corpus
|
|
223
225
|
|
|
224
|
-
`claude-synergy-mcp` exposes
|
|
226
|
+
`claude-synergy-mcp` exposes 13 tools over stdio. Wire into Claude Code (or any MCP host) via `~/.claude/.mcp.json` or your project's `.mcp.json`:
|
|
225
227
|
|
|
226
228
|
```json
|
|
227
229
|
{
|
|
@@ -252,9 +254,11 @@ Tools exposed:
|
|
|
252
254
|
| `read_synergy` | Full text of one synergy file |
|
|
253
255
|
| `get_changes_since` | **New.** Changes in a time window, grouped by product+version. Inputs: `since` (required), `until?`, `product?`, `kind?`, `limit?`. |
|
|
254
256
|
| `search_breaking_changes` | **New.** Flat list of breaking changes — no search term needed. Inputs: `product?`, `since?`, `until?`, `limit?`. |
|
|
255
|
-
| `compare_versions` | **
|
|
257
|
+
| `compare_versions` | **v1.1.** All changes between two versions of one product. Inputs: `product`, `from_version`, `to_version`. |
|
|
258
|
+
| `sync_status` | **v1.2.** Per-product sync freshness — last fetch timestamp, hours since fetch, ingested release count. Inputs: `product?`, `stale_only?`, `stale_hours?`. Use BEFORE trusting `latest_releases` to know if the corpus is stale. |
|
|
259
|
+
| `sync_now` | **v1.2.** On-demand refresh (mirrors `hk sync`). Inputs: `product?`, `dry_run?`, `include_ingest?`, `include_embed?`, `timeout_ms?`. Rejects with `InvalidParams` if another `sync_now` is already in flight. Does NOT commit to git. |
|
|
256
260
|
|
|
257
|
-
The
|
|
261
|
+
The v1.1 tools mirror `hk diff` / `hk breaking` and the version-comparison workflow that previously required scripting. The v1.2 sync tools close the seam where a session could query the corpus but not refresh it — `sync_status` reports staleness, `sync_now` runs the pipeline. See [handbook → MCP server](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/mcp-server/) for full input schemas.
|
|
258
262
|
|
|
259
263
|
---
|
|
260
264
|
|
|
@@ -291,7 +295,7 @@ Full index in [synergies/INDEX.md](synergies/INDEX.md).
|
|
|
291
295
|
Vitest suite covers unit / integration / regression / smoke tiers. **[test-spec-3.md](test-spec-3.md) is the current authority** as of v0.7.0; [test-spec.md](test-spec.md) (v1) and [test-spec-2.md](test-spec-2.md) (v2) remain in the repo as historical record of the design lineage.
|
|
292
296
|
|
|
293
297
|
```bash
|
|
294
|
-
pnpm test # unit + integration + regression (~
|
|
298
|
+
pnpm test # unit + integration + regression (~36s, 519 tests)
|
|
295
299
|
pnpm test:watch # interactive
|
|
296
300
|
pnpm test:coverage # generate coverage/index.html (thresholds: 78/75/85/78)
|
|
297
301
|
pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
|
|
@@ -302,7 +306,7 @@ Layout:
|
|
|
302
306
|
| Dir | What it covers |
|
|
303
307
|
|-----|----------------|
|
|
304
308
|
| `test/unit/` | per-module — extract, ingest, query (incl. `until` / browse / since / compare), db (incl. dim-config v3 migration), embed, hybrid, fetch + every provider (Ollama / Voyage / **OpenAI**) + fetch-rss/changelog (incl. **keep-a-changelog** parser)/html + fetch-mcp-registry + fetch-playwright + products-config + synergy ingest/query |
|
|
305
|
-
| `test/integration/` | end-to-end — pipeline, sync, MCP server (stdio JSON-RPC,
|
|
309
|
+
| `test/integration/` | end-to-end — pipeline, sync, MCP server (stdio JSON-RPC, 13 tools incl. `sync_status` / `sync_now`), CLI (incl. `hk diff`, `hk breaking`) |
|
|
306
310
|
| `test/regression/` | §8.1–§8.19 — each protects against a real bug fixed during development (§8.19: ghReleases early-exit pagination preserves in-window items) |
|
|
307
311
|
| `test/smoke/` | opt-in full-corpus against real `products/` (1,143 files) |
|
|
308
312
|
| `test/fixtures/` | 3 fake products + mock HTTP responses (RSS / GH / Voyage / Cohere / Ollama / Anthropic / Smithery / Official MCP Registry) |
|