ollama-intern-mcp 1.0.1 → 2.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.
Files changed (102) hide show
  1. package/README.es.md +53 -13
  2. package/README.fr.md +94 -54
  3. package/README.hi.md +53 -13
  4. package/README.it.md +93 -53
  5. package/README.ja.md +53 -13
  6. package/README.md +59 -17
  7. package/README.pt-BR.md +53 -13
  8. package/README.zh.md +123 -83
  9. package/dist/corpus/indexer.d.ts +7 -0
  10. package/dist/corpus/indexer.d.ts.map +1 -1
  11. package/dist/corpus/indexer.js +12 -0
  12. package/dist/corpus/indexer.js.map +1 -1
  13. package/dist/corpus/manifest.d.ts +11 -1
  14. package/dist/corpus/manifest.d.ts.map +1 -1
  15. package/dist/corpus/manifest.js +7 -1
  16. package/dist/corpus/manifest.js.map +1 -1
  17. package/dist/corpus/refresh.d.ts +12 -0
  18. package/dist/corpus/refresh.d.ts.map +1 -1
  19. package/dist/corpus/refresh.js +15 -1
  20. package/dist/corpus/refresh.js.map +1 -1
  21. package/dist/errors.d.ts +1 -1
  22. package/dist/errors.d.ts.map +1 -1
  23. package/dist/errors.js.map +1 -1
  24. package/dist/guardrails/bannedPhrases.d.ts +38 -0
  25. package/dist/guardrails/bannedPhrases.d.ts.map +1 -0
  26. package/dist/guardrails/bannedPhrases.js +83 -0
  27. package/dist/guardrails/bannedPhrases.js.map +1 -0
  28. package/dist/guardrails/stringifiedArrayGuard.d.ts +45 -0
  29. package/dist/guardrails/stringifiedArrayGuard.d.ts.map +1 -0
  30. package/dist/guardrails/stringifiedArrayGuard.js +88 -0
  31. package/dist/guardrails/stringifiedArrayGuard.js.map +1 -0
  32. package/dist/ollama.d.ts +17 -0
  33. package/dist/ollama.d.ts.map +1 -1
  34. package/dist/ollama.js.map +1 -1
  35. package/dist/profiles.d.ts +17 -8
  36. package/dist/profiles.d.ts.map +1 -1
  37. package/dist/profiles.js +31 -22
  38. package/dist/profiles.js.map +1 -1
  39. package/dist/tiers.d.ts +56 -7
  40. package/dist/tiers.d.ts.map +1 -1
  41. package/dist/tiers.js +56 -7
  42. package/dist/tiers.js.map +1 -1
  43. package/dist/tools/batch.d.ts +2 -0
  44. package/dist/tools/batch.d.ts.map +1 -1
  45. package/dist/tools/batch.js +2 -1
  46. package/dist/tools/batch.js.map +1 -1
  47. package/dist/tools/changeBrief.d.ts +2 -2
  48. package/dist/tools/changeBrief.d.ts.map +1 -1
  49. package/dist/tools/changeBrief.js +2 -2
  50. package/dist/tools/changeBrief.js.map +1 -1
  51. package/dist/tools/classify.d.ts +14 -9
  52. package/dist/tools/classify.d.ts.map +1 -1
  53. package/dist/tools/classify.js +28 -13
  54. package/dist/tools/classify.js.map +1 -1
  55. package/dist/tools/corpusAnswer.d.ts.map +1 -1
  56. package/dist/tools/corpusAnswer.js +1 -0
  57. package/dist/tools/corpusAnswer.js.map +1 -1
  58. package/dist/tools/draft.d.ts +4 -0
  59. package/dist/tools/draft.d.ts.map +1 -1
  60. package/dist/tools/draft.js +55 -1
  61. package/dist/tools/draft.js.map +1 -1
  62. package/dist/tools/extract.d.ts +13 -5
  63. package/dist/tools/extract.d.ts.map +1 -1
  64. package/dist/tools/extract.js +26 -9
  65. package/dist/tools/extract.js.map +1 -1
  66. package/dist/tools/incidentBrief.d.ts +2 -2
  67. package/dist/tools/incidentBrief.d.ts.map +1 -1
  68. package/dist/tools/incidentBrief.js +2 -2
  69. package/dist/tools/incidentBrief.js.map +1 -1
  70. package/dist/tools/packs/changePack.d.ts +3 -3
  71. package/dist/tools/packs/changePack.d.ts.map +1 -1
  72. package/dist/tools/packs/changePack.js +2 -1
  73. package/dist/tools/packs/changePack.js.map +1 -1
  74. package/dist/tools/packs/incidentPack.d.ts +3 -3
  75. package/dist/tools/packs/incidentPack.d.ts.map +1 -1
  76. package/dist/tools/packs/incidentPack.js +2 -1
  77. package/dist/tools/packs/incidentPack.js.map +1 -1
  78. package/dist/tools/repoBrief.d.ts.map +1 -1
  79. package/dist/tools/repoBrief.js +1 -0
  80. package/dist/tools/repoBrief.js.map +1 -1
  81. package/dist/tools/research.d.ts +3 -3
  82. package/dist/tools/research.d.ts.map +1 -1
  83. package/dist/tools/research.js +3 -1
  84. package/dist/tools/research.js.map +1 -1
  85. package/dist/tools/runner.d.ts +7 -0
  86. package/dist/tools/runner.d.ts.map +1 -1
  87. package/dist/tools/runner.js +2 -1
  88. package/dist/tools/runner.js.map +1 -1
  89. package/dist/tools/summarizeDeep.d.ts +3 -3
  90. package/dist/tools/summarizeDeep.d.ts.map +1 -1
  91. package/dist/tools/summarizeDeep.js +3 -3
  92. package/dist/tools/summarizeDeep.js.map +1 -1
  93. package/dist/tools/summarizeFast.d.ts.map +1 -1
  94. package/dist/tools/summarizeFast.js +1 -0
  95. package/dist/tools/summarizeFast.js.map +1 -1
  96. package/dist/tools/triageLogs.d.ts +1 -1
  97. package/dist/tools/triageLogs.d.ts.map +1 -1
  98. package/dist/tools/triageLogs.js +4 -1
  99. package/dist/tools/triageLogs.js.map +1 -1
  100. package/dist/version.d.ts +1 -1
  101. package/dist/version.js +1 -1
  102. package/package.json +2 -1
package/README.es.md CHANGED
@@ -49,7 +49,7 @@ Devuelve un "sobre" que apunta a un archivo en el disco:
49
49
  "next_checks": ["residency.evicted across last 24h", "OLLAMA_MAX_LOADED_MODELS vs loaded size"]
50
50
  },
51
51
  "tier_used": "deep",
52
- "model": "qwen2.5:14b-instruct-q4_K_M",
52
+ "model": "hermes3:8b",
53
53
  "hardware_profile": "dev-rtx5080",
54
54
  "tokens_in": 4180, "tokens_out": 612,
55
55
  "elapsed_ms": 8410,
@@ -112,25 +112,65 @@ Requiere [Ollama](https://ollama.com) instalado localmente y los modelos de nive
112
112
 
113
113
  El mismo archivo, escrito en `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) o `%APPDATA%\Claude\claude_desktop_config.json` (Windows).
114
114
 
115
+ ### Uso con Hermes
116
+
117
+ Este MCP fue validado de extremo a extremo con el [Agente Hermes](https://github.com/NousResearch/Hermes) contra `hermes3:8b` en Ollama (19 de abril de 2026). Hermes es un agente externo que *llama* a la superficie primitiva de este MCP; él se encarga de la planificación, nosotros realizamos el trabajo.
118
+
119
+ Configuración de referencia ([hermes.config.example.yaml](hermes.config.example.yaml) en este repositorio):
120
+
121
+ ```yaml
122
+ model:
123
+ provider: custom
124
+ base_url: http://localhost:11434/v1
125
+ default: hermes3:8b
126
+ context_length: 65536 # Hermes requires 64K floor under model.*
127
+
128
+ providers:
129
+ local-ollama:
130
+ name: local-ollama
131
+ base_url: http://localhost:11434/v1
132
+ api_mode: openai_chat
133
+ api_key: ollama
134
+ model: hermes3:8b
135
+
136
+ mcp_servers:
137
+ ollama-intern:
138
+ command: npx
139
+ args: ["-y", "ollama-intern-mcp"]
140
+ env:
141
+ OLLAMA_HOST: http://localhost:11434
142
+ INTERN_PROFILE: dev-rtx5080
143
+ # hermes3:8b is the default ladder in v2.0.0, so tier overrides are
144
+ # only needed if you're pinning a different local model.
145
+ ```
146
+
147
+ **La estructura del prompt es importante.** Los prompts de invocación de herramientas imperativos ("Llama a X con los argumentos…") son la prueba de integración; proporcionan a un modelo local de 8B suficiente estructura para generar llamadas de herramientas limpias (`tool_calls`). Los prompts de tareas múltiples en formato de lista ("haz A, luego B, luego C") son puntos de referencia de capacidad para modelos más grandes; no interpretes un fallo en formato de lista en un modelo de 8B como "el sistema está dañado". Consulta [handbook/with-hermes](https://mcp-tool-shop-org.github.io/ollama-intern-mcp/handbook/with-hermes/) para obtener una guía completa de la integración y las limitaciones de transporte conocidas (transmisión de Ollama `/v1` + shim no transmisivo de openai-SDK).
148
+
115
149
  ### Descarga de modelos
116
150
 
117
151
  **Perfil de desarrollo predeterminado (RTX 5080 16GB y similar):**
118
152
 
119
153
  ```bash
120
- ollama pull qwen2.5:7b-instruct-q4_K_M
121
- ollama pull qwen2.5-coder:7b-instruct-q4_K_M
122
- ollama pull qwen2.5:14b-instruct-q4_K_M
154
+ ollama pull hermes3:8b
123
155
  ollama pull nomic-embed-text
124
- export OLLAMA_MAX_LOADED_MODELS=4
156
+ export OLLAMA_MAX_LOADED_MODELS=2
125
157
  export OLLAMA_KEEP_ALIVE=-1
126
158
  ```
127
159
 
160
+ **Ruta alternativa de Qwen 3 (mismo hardware, para herramientas de Qwen):**
161
+
162
+ ```bash
163
+ ollama pull qwen3:8b
164
+ ollama pull qwen3:14b
165
+ ollama pull nomic-embed-text
166
+ export INTERN_PROFILE=dev-rtx5080-qwen3
167
+ ```
168
+
128
169
  **Perfil M5 Max (128GB unificados):**
129
170
 
130
171
  ```bash
131
- ollama pull qwen2.5:14b-instruct-q4_K_M
132
- ollama pull qwen2.5-coder:32b-instruct-q4_K_M
133
- ollama pull llama3.3:70b-instruct-q4_K_M
172
+ ollama pull qwen3:14b
173
+ ollama pull qwen3:32b
134
174
  ollama pull nomic-embed-text
135
175
  export INTERN_PROFILE=m5-max
136
176
  ```
@@ -148,7 +188,7 @@ Cada herramienta devuelve la misma estructura:
148
188
  result: <tool-specific>,
149
189
  tier_used: "instant" | "workhorse" | "deep" | "embed",
150
190
  model: string,
151
- hardware_profile: string, // "dev-rtx5080" | "dev-rtx5080-llama" | "m5-max"
191
+ hardware_profile: string, // "dev-rtx5080" | "dev-rtx5080-qwen3" | "m5-max"
152
192
  tokens_in: number,
153
193
  tokens_out: number,
154
194
  elapsed_ms: number,
@@ -171,11 +211,11 @@ Cada llamada se registra como una línea en formato NDJSON en `~/.ollama-intern/
171
211
 
172
212
  | Perfil | Instantáneo | Potente | Profundo | Incorporado |
173
213
  |---|---|---|---|---|
174
- | **`dev-rtx5080`** (predeterminado) | qwen2.5 7B | qwen2.5-coder 7B | qwen2.5 14B | nomic-embed-text |
175
- | `dev-rtx5080-llama` | qwen2.5 7B | qwen2.5-coder 7B | **llama3.1 8B** | nomic-embed-text |
176
- | `m5-max` | qwen2.5 14B | qwen2.5-coder 32B | llama3.3 70B | nomic-embed-text |
214
+ | **`dev-rtx5080`** (predeterminado) | hermes3 8B | hermes3 8B | hermes3 8B | nomic-embed-text |
215
+ | `dev-rtx5080-qwen3` | qwen3 8B | qwen3 8B | qwen3 14B | nomic-embed-text |
216
+ | `m5-max` | qwen3 14B | qwen3 14B | qwen3 32B | nomic-embed-text |
177
217
 
178
- **Dentro de la misma familia, en la configuración predeterminada:** Los resultados deficientes son problemas de diseño o de la herramienta, no de incompatibilidades entre diferentes modelos. `dev-rtx5080-llama` es el punto de referencia: ejecute las mismas evaluaciones de referencia con Llama 8B antes de implementar Llama en M5 Max.
218
+ **Configuración de desarrollo predeterminada** consolida los tres niveles de trabajo en `hermes3:8b`: la ruta de integración del Agente Hermes validada. El uso del mismo modelo de arriba a abajo significa que solo hay un componente que descargar, un costo de alojamiento y un conjunto de comportamientos que comprender. Los usuarios que prefieren Qwen 3 (con su infraestructura `THINK_BY_SHAPE`) pueden optar por `dev-rtx5080-qwen3`. `m5-max` es la versión de Qwen 3 optimizada para memoria unificada.
179
219
 
180
220
  ---
181
221
 
package/README.fr.md CHANGED
@@ -15,13 +15,13 @@
15
15
 
16
16
  > **L'assistant local pour Claude Code.** 28 outils structurés, rapports basés sur des preuves, artefacts durables.
17
17
 
18
- Un serveur MCP qui fournit à Claude Code un **assistant local** avec des règles, des niveaux, un bureau et un classeur. Claude choisit l' _outil_ ; l'outil choisit le _niveau_ (Instantané / Polyvalent / Approfondi / Intégration) ; le niveau écrit un fichier que vous pourrez ouvrir la semaine prochaine.
18
+ Un serveur MCP qui fournit à Claude Code un **assistant local** avec des règles, des niveaux, un bureau et un classeur. Claude choisit l' _outil_ ; l'outil choisit le _niveau_ (Instantané / Polyvalent / Approfondi / Intégré) ; le niveau écrit un fichier que vous pourrez ouvrir la semaine prochaine.
19
19
 
20
20
  Pas de cloud. Pas de télémétrie. Rien d'"autonome". Chaque appel montre son travail.
21
21
 
22
22
  ---
23
23
 
24
- ## Exemple principal un appel, un artefact
24
+ ## Exemple principal : un appel, un artefact
25
25
 
26
26
  ```jsonc
27
27
  // Claude → ollama-intern-mcp
@@ -49,7 +49,7 @@ Renvoie une enveloppe pointant vers un fichier sur le disque :
49
49
  "next_checks": ["residency.evicted across last 24h", "OLLAMA_MAX_LOADED_MODELS vs loaded size"]
50
50
  },
51
51
  "tier_used": "deep",
52
- "model": "qwen2.5:14b-instruct-q4_K_M",
52
+ "model": "hermes3:8b",
53
53
  "hardware_profile": "dev-rtx5080",
54
54
  "tokens_in": 4180, "tokens_out": 612,
55
55
  "elapsed_ms": 8410,
@@ -57,19 +57,19 @@ Renvoie une enveloppe pointant vers un fichier sur le disque :
57
57
  }
58
58
  ```
59
59
 
60
- Ce fichier Markdown est la sortie du bureau de l'assistant titres, bloc de preuves avec identifiants cités, instructions d'investigation `next_checks`, bannière `faible : vrai` si les preuves sont limitées. Il est déterministe : le rendu est du code, pas une invite. Ouvrez-le demain, comparez-le la semaine prochaine, exportez-le dans un manuel avec `ollama_artifact_export_to_path`.
60
+ Ce fichier Markdown est la sortie du bureau de l'assistant : titres, bloc de preuves avec identifiants cités, instructions d'investigation `next_checks`, bannière `faible : vrai` si les preuves sont limitées. Il est déterministe : le rendu est du code, pas une invite. Ouvrez-le demain, comparez-le la semaine prochaine, exportez-le dans un manuel avec `ollama_artifact_export_to_path`.
61
61
 
62
62
  Chaque concurrent dans cette catégorie commence par "économiser les jetons". Nous commençons par _voici le fichier que l'assistant a écrit_.
63
63
 
64
64
  ---
65
65
 
66
- ## Ce qu'il y a ici — quatre niveaux, 28 outils
66
+ ## Ce qu'il contient : quatre niveaux, 28 outils
67
67
 
68
- | Niveau | Nombre | Ce qui se trouve ici |
68
+ | Niveau | Nombre | Ce qui s'y trouve |
69
69
  |---|---|---|
70
- | **Atoms** | 15 | Primitives structurées. `classifier`, `extraire`, `trier_journaux`, `résumer_rapide` / `approfondi`, `brouillon`, `recherche`, `recherche_corpus` / `répondre` / `indexer` / `actualiser` / `lister`, `recherche_intégration`, `intégration`, `chat`. Les opérations par lots (`classifier`, `extraire`, `trier_journaux`) acceptent `items: [{id, text}]`. |
70
+ | **Atoms** | 15 | Primitives structurées. `classifier`, `extraire`, `trier_journaux`, `résumer_rapide` / `approfondi`, `brouillon`, `recherche`, `recherche_corpus` / `répondre` / `indexer` / `actualiser` / `lister`, `recherche_intégrée`, `intégrer`, `chat`. Les opérations par lots (`classifier`, `extraire`, `trier_journaux`) acceptent `items: [{id, text}]`. |
71
71
  | **Briefs** | 3 | Rapports structurés basés sur des preuves. `rapport_incident`, `rapport_dépôt`, `rapport_modification`. Chaque affirmation cite un identifiant de preuve ; les inconnues sont supprimées côté serveur. Les preuves faibles affichent `faible : vrai` plutôt qu'une narration fausse. |
72
- | **Packs** | 3 | Tâches composées avec un pipeline fixe qui écrit du Markdown + JSON durables dans `~/.ollama-intern/artifacts/`. `paquet_incident`, `paquet_dépôt`, `paquet_modification`. Rendu déterministe aucun appel de modèle sur la forme de l'artefact. |
72
+ | **Packs** | 3 | Tâches composées avec un pipeline fixe qui écrit du Markdown + JSON durables dans `~/.ollama-intern/artifacts/`. `paquet_incident`, `paquet_dépôt`, `paquet_modification`. Rendu déterministe : aucun appel de modèle sur la forme de l'artefact. |
73
73
  | **Artifacts** | 7 | Interface de continuité sur les sorties des paquets. `liste_artefacts` / `lire` / `différencier` / `exporter_vers_chemin`, plus trois extraits déterministes : `note_incident`, `section_intégration`, `note_version`. |
74
74
 
75
75
  Total : **18 primitives + 3 paquets + 7 outils d'artefact = 28**.
@@ -112,30 +112,70 @@ Nécessite [Ollama](https://ollama.com) installé localement et les modèles de
112
112
 
113
113
  Le même bloc, écrit dans `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) ou `%APPDATA%\Claude\claude_desktop_config.json` (Windows).
114
114
 
115
- ### Téléchargement des modèles
115
+ ### Utilisation avec Hermes
116
+
117
+ Ce MCP a été validé de bout en bout avec [Hermes Agent](https://github.com/NousResearch/Hermes) contre `hermes3:8b` sur Ollama (2026-04-19). Hermes est un agent externe qui *appelle* cette surface de primitives figée du MCP ; il effectue la planification, nous effectuons le travail.
118
+
119
+ Configuration de référence ([hermes.config.example.yaml](hermes.config.example.yaml) dans ce dépôt) :
120
+
121
+ ```yaml
122
+ model:
123
+ provider: custom
124
+ base_url: http://localhost:11434/v1
125
+ default: hermes3:8b
126
+ context_length: 65536 # Hermes requires 64K floor under model.*
127
+
128
+ providers:
129
+ local-ollama:
130
+ name: local-ollama
131
+ base_url: http://localhost:11434/v1
132
+ api_mode: openai_chat
133
+ api_key: ollama
134
+ model: hermes3:8b
135
+
136
+ mcp_servers:
137
+ ollama-intern:
138
+ command: npx
139
+ args: ["-y", "ollama-intern-mcp"]
140
+ env:
141
+ OLLAMA_HOST: http://localhost:11434
142
+ INTERN_PROFILE: dev-rtx5080
143
+ # hermes3:8b is the default ladder in v2.0.0, so tier overrides are
144
+ # only needed if you're pinning a different local model.
145
+ ```
146
+
147
+ **La forme de l'invite est importante.** Les invites d'invocation d'outils impératives ("Appeler X avec les arguments...") sont le test d'intégration ; elles fournissent à un modèle local de 8 Go suffisamment de structure pour générer des `tool_calls` propres. Les invites multi-tâches en forme de liste ("faire A, puis B, puis C") sont des références de performances pour les modèles plus importants ; n'interprétez pas un échec en forme de liste sur un modèle de 8 Go comme "le câblage est cassé". Consultez [handbook/with-hermes](https://mcp-tool-shop-org.github.io/ollama-intern-mcp/handbook/with-hermes/) pour la visite guidée complète de l'intégration et les limitations de transport connues (streaming Ollama `/v1` + shim non-streaming openai-SDK).
116
148
 
117
- **Profil de développement par défaut (RTX 5080 16 Go et similaire) :**
149
+ ### Téléchargements de modèles
150
+
151
+ **Profil de développement par défaut (RTX 5080 16 Go et équivalent) :**
118
152
 
119
153
  ```bash
120
- ollama pull qwen2.5:7b-instruct-q4_K_M
121
- ollama pull qwen2.5-coder:7b-instruct-q4_K_M
122
- ollama pull qwen2.5:14b-instruct-q4_K_M
154
+ ollama pull hermes3:8b
123
155
  ollama pull nomic-embed-text
124
- export OLLAMA_MAX_LOADED_MODELS=4
156
+ export OLLAMA_MAX_LOADED_MODELS=2
125
157
  export OLLAMA_KEEP_ALIVE=-1
126
158
  ```
127
159
 
160
+ **Environnement alternatif Qwen 3 (même matériel, pour les outils Qwen) :**
161
+
162
+ ```bash
163
+ ollama pull qwen3:8b
164
+ ollama pull qwen3:14b
165
+ ollama pull nomic-embed-text
166
+ export INTERN_PROFILE=dev-rtx5080-qwen3
167
+ ```
168
+
128
169
  **Profil M5 Max (128 Go unifiés) :**
129
170
 
130
171
  ```bash
131
- ollama pull qwen2.5:14b-instruct-q4_K_M
132
- ollama pull qwen2.5-coder:32b-instruct-q4_K_M
133
- ollama pull llama3.3:70b-instruct-q4_K_M
172
+ ollama pull qwen3:14b
173
+ ollama pull qwen3:32b
134
174
  ollama pull nomic-embed-text
135
175
  export INTERN_PROFILE=m5-max
136
176
  ```
137
177
 
138
- Les variables d'environnement par niveau (`INTERN_TIER_INSTANT`, `INTERN_TIER_WORKHORSE`, `INTERN_TIER_DEEP`, `INTERN_EMBED_MODEL`) remplacent toujours les choix de profil pour les cas ponctuels.
178
+ Les variables d'environnement par niveau (`INTERN_TIER_INSTANT`, `INTERN_TIER_WORKHORSE`, `INTERN_TIER_DEEP`, `INTERN_EMBED_MODEL`) continuent de remplacer les choix de profil pour les cas ponctuels.
139
179
 
140
180
  ---
141
181
 
@@ -148,7 +188,7 @@ Chaque outil renvoie la même structure :
148
188
  result: <tool-specific>,
149
189
  tier_used: "instant" | "workhorse" | "deep" | "embed",
150
190
  model: string,
151
- hardware_profile: string, // "dev-rtx5080" | "dev-rtx5080-llama" | "m5-max"
191
+ hardware_profile: string, // "dev-rtx5080" | "dev-rtx5080-qwen3" | "m5-max"
152
192
  tokens_in: number,
153
193
  tokens_out: number,
154
194
  elapsed_ms: number,
@@ -161,62 +201,62 @@ Chaque outil renvoie la même structure :
161
201
  }
162
202
  ```
163
203
 
164
- `résidence` provient de l'API Ollama `/api/ps`. Lorsque `évincé : vrai` ou `taille_vram < taille`, le modèle est paginé sur le disque et l'inférence est réduite de 5 à 10 fois affichez cela à l'utilisateur pour qu'il sache de redémarrer Ollama ou de réduire le nombre de modèles chargés.
204
+ La "résidence" provient de `/api/ps` d'Ollama. Si `evicted: true` ou `size_vram < size`, le modèle est déchargé sur le disque et la vitesse d'inférence diminue de 5 à 10 fois. Cette information est affichée à l'utilisateur pour qu'il sache de redémarrer Ollama ou de réduire le nombre de modèles chargés.
165
205
 
166
- Chaque appel est enregistré sous forme d'une seule ligne NDJSON dans `~/.ollama-intern/log.ndjson`. Filtrez par `hardware_profile` pour empêcher les chiffres de développement d'être inclus dans les benchmarks publiés.
206
+ Chaque appel est enregistré sous forme d'une ligne NDJSON dans `~/.ollama-intern/log.ndjson`. Filtrez par `hardware_profile` pour éviter que les données de développement ne soient incluses dans les benchmarks publiés.
167
207
 
168
208
  ---
169
209
 
170
210
  ## Profils matériels
171
211
 
172
- | Profil | Instantané | Polyvalent | Approfondi | Intégration |
212
+ | Profil | Instant | Workhorse | Deep | Embed |
173
213
  |---|---|---|---|---|
174
- | **`dev-rtx5080`** (par défaut) | qwen2.5 7B | qwen2.5-coder 7B | qwen2.5 14B | nomic-embed-text |
175
- | `dev-rtx5080-llama` | qwen2.5 7B | qwen2.5-coder 7B | **llama3.1 8B** | nomic-embed-text |
176
- | `m5-max` | qwen2.5 14B | qwen2.5-coder 32B | llama3.3 70B | nomic-embed-text |
214
+ | **`dev-rtx5080`** (par défaut) | hermes3 8B | hermes3 8B | hermes3 8B | nomic-embed-text |
215
+ | `dev-rtx5080-qwen3` | qwen3 8B | qwen3 8B | qwen3 14B | nomic-embed-text |
216
+ | `m5-max` | qwen3 14B | qwen3 14B | qwen3 32B | nomic-embed-text |
177
217
 
178
- **Comparaison au sein de la même famille sur l'environnement de développement par défaut** : les résultats médiocres sont donc des problèmes de conception ou d'outils, et non des incompatibilités entre différentes familles de modèles. `dev-rtx5080-llama` est la référence : exécutez les mêmes évaluations de référence avec Llama 8B avant de déployer Llama sur M5 Max.
218
+ Le profil **"par défaut"** regroupe les trois niveaux de travail sur `hermes3:8b`, qui représente le chemin d'intégration validé de Hermes Agent. L'utilisation du même modèle du début à la fin simplifie la compréhension, réduit le coût de résidence et facilite la gestion. Les utilisateurs qui préfèrent Qwen 3 (avec sa fonctionnalité `THINK_BY_SHAPE`) peuvent choisir le profil `dev-rtx5080-qwen3`. Le profil `m5-max` est une version de Qwen 3 optimisée pour la mémoire unifiée.
179
219
 
180
220
  ---
181
221
 
182
- ## Principes directeurs
222
+ ## Règles de preuve
183
223
 
184
224
  Ces règles sont appliquées côté serveur, et non dans la requête :
185
225
 
186
- - **Citations obligatoires.** Chaque affirmation est étayée par un identifiant de source.
187
- - **Informations inconnues supprimées côté serveur.** Les modèles qui citent des identifiants qui ne figurent pas dans le paquet de sources voient ces identifiants supprimés, avec un avertissement, avant que le résultat ne soit renvoyé.
188
- - **"Faible" signifie "faible".** Les sources de qualité inférieure sont marquées `weak: true` avec des notes explicatives. Elles ne sont jamais "améliorées" pour créer une narration artificielle.
189
- - **Axé sur l'investigation, pas sur la prescription.** Seuls les éléments `next_checks` / `read_next` / `likely_breakpoints` sont autorisés. Les requêtes qui demandent "appliquer cette correction" sont interdites.
190
- - **Rendu déterministe.** La forme du balisage des artefacts est du code, et non une requête. `draft` est réservé aux textes où la formulation du modèle est importante.
191
- - **Comparaisons au sein du même paquet uniquement.** Les comparaisons `artifact_diff` entre différents paquets sont refusées ; les charges utiles restent distinctes.
226
+ - **Citations obligatoires.** Chaque affirmation concise cite un identifiant de preuve.
227
+ - **Les inconnues sont supprimées côté serveur.** Les modèles qui citent des identifiants qui ne figurent pas dans le paquet de preuves voient ces identifiants supprimés, avec un avertissement, avant que le résultat ne soit renvoyé.
228
+ - **Les informations faibles sont considérées comme telles.** Les informations de faible qualité sont marquées `weak: true` avec des notes de couverture et ne sont jamais intégrées dans un récit fallacieux.
229
+ - **Fonctionnalité d'investigation, pas prescriptive.** Seuls les éléments `next_checks` / `read_next` / `likely_breakpoints` sont autorisés. Les requêtes qui demandent "appliquer cette correction" sont interdites.
230
+ - **Rendu déterministe.** La forme du balisage des artefacts est du code, et non une requête. `draft` reste réservé aux textes où le choix des mots du modèle est important.
231
+ - **Différences au sein du même paquet uniquement.** Les comparaisons `artifact_diff` entre différents paquets sont refusées ; les charges utiles restent distinctes.
192
232
 
193
233
  ---
194
234
 
195
235
  ## Artefacts et continuité
196
236
 
197
- Les paquets écrivent dans `~/.ollama-intern/artifacts/{incident,repo,change}/<slug>.(md|json)`. La couche d'artefacts vous offre une continuité sans en faire un outil de gestion de fichiers :
237
+ Les paquets écrivent dans `~/.ollama-intern/artifacts/{incident,repo,change}/<slug>.(md|json)`. Le niveau des artefacts offre une continuité sans transformer cela en un outil de gestion de fichiers :
198
238
 
199
239
  - `artifact_list` — index contenant uniquement des métadonnées, filtrable par paquet, date, motif de slug
200
240
  - `artifact_read` — lecture typée par `{pack, slug}` ou `{json_path}`
201
- - `artifact_diff` — comparaison structurée au sein du même paquet ; les modifications de qualité inférieure sont signalées
202
- - `artifact_export_to_path` — écrit un artefact existant (avec un en-tête de provenance) dans un répertoire déclaré par l'appelant (`allowed_roots`). Refuse les fichiers existants, sauf si `overwrite: true`.
241
+ - `artifact_diff` — comparaison structurée au sein du même paquet ; les modifications faibles sont mises en évidence
242
+ - `artifact_export_to_path` — écrit un artefact existant (avec un en-tête de provenance) dans un emplacement déclaré par l'utilisateur (`allowed_roots`). Refuse les fichiers existants, sauf si `overwrite: true` est spécifié.
203
243
  - `artifact_incident_note_snippet` — fragment de note d'incident
204
- - `artifact_onboarding_section_snippet` — fragment de guide d'utilisation
244
+ - `artifact_onboarding_section_snippet` — fragment du manuel
205
245
  - `artifact_release_note_snippet` — fragment de note de version (DRAFT)
206
246
 
207
- Aucun appel de modèle dans cette couche. Tout est généré à partir de contenu stocké.
247
+ Aucun appel de modèle dans ce niveau. Tout est généré à partir de contenu stocké.
208
248
 
209
249
  ---
210
250
 
211
251
  ## Modèle de menace et télémétrie
212
252
 
213
- **Données traitées :** chemins de fichiers que l'appelant fournit explicitement (`ollama_research`, outils de corpus), texte intégré et artefacts que l'appelant demande d'être écrits dans `~/.ollama-intern/artifacts/` ou dans un répertoire déclaré par l'appelant (`allowed_roots`).
253
+ **Données traitées :** chemins de fichiers que l'utilisateur fournit explicitement (`ollama_research`, outils de corpus), texte intégré et artefacts que l'utilisateur demande d'être écrits dans `~/.ollama-intern/artifacts/` ou dans un emplacement déclaré par l'utilisateur (`allowed_roots`).
214
254
 
215
- **Données NON traitées :** tout ce qui se trouve en dehors de `source_paths` / `allowed_roots`. `..` est rejeté avant la normalisation. `artifact_export_to_path` refuse les fichiers existants, sauf si `overwrite: true`. Les brouillons ciblant les chemins protégés (`memory/`, `.claude/`, `docs/canon/`, etc.) nécessitent une confirmation explicite (`confirm_write: true`), qui est appliquée côté serveur.
255
+ **Données non modifiées :** tout ce qui se trouve en dehors des chemins `source_paths` / `allowed_roots`. L'utilisation de `..` est bloquée avant la normalisation. La fonction `artifact_export_to_path` refuse d'écrire sur des fichiers existants, sauf si `overwrite: true` est spécifié. Les versions préliminaires ciblant des chemins protégés (`memory/`, `.claude/`, `docs/canon/`, etc.) nécessitent une confirmation explicite `confirm_write: true`, ce qui est appliqué côté serveur.
216
256
 
217
- **Trafic sortant :** **désactivé par défaut.** Le seul trafic sortant est vers le point de terminaison HTTP local d'Ollama. Aucun appel cloud, aucun ping de mise à jour, aucun rapport de crash.
257
+ **Communication réseau sortante :** **désactivée par défaut.** Le seul trafic sortant est dirigé vers le point de terminaison HTTP local d'Ollama. Aucune communication avec le cloud, aucun signalement de mises à jour, aucun rapport de crash.
218
258
 
219
- **Télémétrie :** **aucune.** Chaque appel est enregistré sous forme d'une seule ligne NDJSON dans `~/.ollama-intern/log.ndjson` sur votre machine. Rien ne quitte l'appareil.
259
+ **Télémétrie :** **inexistante.** Chaque appel est enregistré sous forme d'une seule ligne NDJSON dans le fichier `~/.ollama-intern/log.ndjson` sur votre machine. Rien ne quitte l'appareil.
220
260
 
221
261
  **Erreurs :** format structuré `{ code, message, hint, retryable }`. Les traces de pile ne sont jamais exposées dans les résultats des outils.
222
262
 
@@ -226,24 +266,24 @@ Politique complète : [SECURITY.md](SECURITY.md).
226
266
 
227
267
  ## Normes
228
268
 
229
- Conçu selon les normes [Shipcheck](https://github.com/mcp-tool-shop-org/shipcheck). Les tests A à D doivent être réussis ; voir [SHIP_GATE.md](SHIP_GATE.md) et [SCORECARD.md](SCORECARD.md).
269
+ Conforme aux exigences de [Shipcheck](https://github.com/mcp-tool-shop-org/shipcheck). Les tests A à D sont obligatoires ; voir [SHIP_GATE.md](SHIP_GATE.md) et [SCORECARD.md](SCORECARD.md).
230
270
 
231
- - **A. Sécurité** — SECURITY.md, modèle de menace, pas de télémétrie, sécurité des chemins, `confirm_write` pour les chemins protégés
232
- - **B. Erreurs** — format structuré pour tous les résultats des outils ; pas de piles brutes
233
- - **C. Documentation** — README à jour, CHANGELOG, LICENSE ; schémas des outils auto-documentés
234
- - **D. Hygiène** — `npm run verify` (395 tests), CI avec analyse des dépendances, Dependabot, fichier de verrouillage, `engines.node`
271
+ - **A. Sécurité** — SECURITY.md, modèle de menace, absence de télémétrie, sécurité des chemins, `confirm_write` sur les chemins protégés.
272
+ - **B. Erreurs** — Format structuré pour tous les résultats des outils ; pas de traces de pile brutes.
273
+ - **C. Documentation** — README à jour, CHANGELOG, LICENSE ; les schémas des outils sont auto-documentés.
274
+ - **D. Qualité** — `npm run verify` (395 tests), CI avec analyse des dépendances, Dependabot, fichier de verrouillage, `engines.node`.
235
275
 
236
276
  ---
237
277
 
238
- ## Plan d'action (renforcement de la sécurité, et non extension des fonctionnalités)
278
+ ## Feuille de route (renforcement de la sécurité, pas extension des fonctionnalités)
239
279
 
240
- - **Phase 1 — Infrastructure de délégation** ✓ Livré : interface atomique, enveloppe uniforme, routage par niveaux, mécanismes de sécurité.
241
- - **Phase 2 — Infrastructure de vérification**Livré : segmentation de schéma v2, BM25 + RRF, corpus dynamiques, résumés étayés par des preuves, ensemble d'outils d'évaluation de la récupération.
242
- - **Phase 3 — Infrastructure de regroupement et d'artefacts** ✓ Livré : ensembles de données avec artefacts durables + niveau de continuité.
243
- - **Phase 4 — Infrastructure d'adoption (du produit)** — Observations d'utilisation réelle sur le RTX 5080, correction des aspects problématiques qui apparaissent.
244
- - **Phase 5 — Tests de performance du M5 Max** — Publication des résultats une fois que le matériel est disponible (environ le 24 avril 2026).
280
+ - **Phase 1 — Infrastructure de délégation** ✓ Implémentée : interface atomique, enveloppe uniforme, routage hiérarchique, protections.
281
+ - **Phase 2 — Infrastructure de vérité**Implémentée : segmentation de schéma v2, BM25 + RRF, corpus dynamiques, résumés étayés par des preuves, ensemble d'évaluation de la récupération.
282
+ - **Phase 3 — Infrastructure de paquets et d'artefacts** ✓ Implémentée : paquets avec pipelines fixes et artefacts durables + niveau de continuité.
283
+ - **Phase 4 — Infrastructure d'adoption (du produit)** — Observation de l'utilisation réelle sur le RTX 5080, correction des problèmes qui apparaissent.
284
+ - **Phase 5 — Benchmarks M5 Max** — Publication des résultats une fois le matériel disponible (environ le 24 avril 2026).
245
285
 
246
- Phase par couche de renforcement de la sécurité. L'interface atomique/de regroupement/d'artefacts reste figée.
286
+ Phase par couche de renforcement de la sécurité. L'interface atomique/paquet/artefact reste figée.
247
287
 
248
288
  ---
249
289
 
package/README.hi.md CHANGED
@@ -49,7 +49,7 @@
49
49
  "next_checks": ["residency.evicted across last 24h", "OLLAMA_MAX_LOADED_MODELS vs loaded size"]
50
50
  },
51
51
  "tier_used": "deep",
52
- "model": "qwen2.5:14b-instruct-q4_K_M",
52
+ "model": "hermes3:8b",
53
53
  "hardware_profile": "dev-rtx5080",
54
54
  "tokens_in": 4180, "tokens_out": 612,
55
55
  "elapsed_ms": 8410,
@@ -112,25 +112,65 @@ npm install -g ollama-intern-mcp
112
112
 
113
113
  एक ही ब्लॉक, `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) या `%APPDATA%\Claude\claude_desktop_config.json` (Windows) में लिखा गया है।
114
114
 
115
+ ### हर्मेस के साथ उपयोग करें
116
+
117
+ इस एमसीपी (MCP) का परीक्षण 'हर्मेस एजेंट' ([https://github.com/NousResearch/Hermes](https://github.com/NousResearch/Hermes)) के साथ `hermes3:8b` पर ओलामा (Ollama) पर किया गया था (19 अप्रैल, 2026)। हर्मेस एक बाहरी एजेंट है जो इस एमसीपी की 'फ्रीज्ड प्रिमिटिव सरफेस' को *कॉल करता है* — यह योजना बनाता है, और हम काम करते हैं।
118
+
119
+ संदर्भ कॉन्फ़िगरेशन ([hermes.config.example.yaml](hermes.config.example.yaml) इस रिपॉजिटरी में):
120
+
121
+ ```yaml
122
+ model:
123
+ provider: custom
124
+ base_url: http://localhost:11434/v1
125
+ default: hermes3:8b
126
+ context_length: 65536 # Hermes requires 64K floor under model.*
127
+
128
+ providers:
129
+ local-ollama:
130
+ name: local-ollama
131
+ base_url: http://localhost:11434/v1
132
+ api_mode: openai_chat
133
+ api_key: ollama
134
+ model: hermes3:8b
135
+
136
+ mcp_servers:
137
+ ollama-intern:
138
+ command: npx
139
+ args: ["-y", "ollama-intern-mcp"]
140
+ env:
141
+ OLLAMA_HOST: http://localhost:11434
142
+ INTERN_PROFILE: dev-rtx5080
143
+ # hermes3:8b is the default ladder in v2.0.0, so tier overrides are
144
+ # only needed if you're pinning a different local model.
145
+ ```
146
+
147
+ **प्रॉम्प्ट का स्वरूप महत्वपूर्ण है।** अनिवार्य टूल-इनवोकेशन प्रॉम्प्ट ("X को इस तर्क के साथ कॉल करें...") एकीकरण परीक्षण हैं — वे 8B के स्थानीय मॉडल को 'टूल_कॉल' उत्पन्न करने के लिए पर्याप्त ढांचा प्रदान करते हैं। सूची-रूप में दिए गए मल्टी-टास्क प्रॉम्प्ट ("A करें, फिर B करें, फिर C करें") बड़े मॉडलों के लिए क्षमता बेंचमार्क हैं; 8B पर सूची-रूप में दिए गए प्रॉम्प्ट में विफलता को "कनेक्शन टूटा हुआ है" के रूप में न समझें। पूर्ण एकीकरण विवरण और ज्ञात परिवहन संबंधी सीमाओं के लिए [handbook/with-hermes](https://mcp-tool-shop-org.github.io/ollama-intern-mcp/handbook/with-hermes/) देखें (ओलामा `/v1` स्ट्रीमिंग + openai-SDK गैर-स्ट्रीमिंग शिम)।
148
+
115
149
  ### मॉडल डाउनलोड
116
150
 
117
151
  **डिफ़ॉल्ट देव प्रोफ़ाइल (RTX 5080 16GB और इसी तरह):**
118
152
 
119
153
  ```bash
120
- ollama pull qwen2.5:7b-instruct-q4_K_M
121
- ollama pull qwen2.5-coder:7b-instruct-q4_K_M
122
- ollama pull qwen2.5:14b-instruct-q4_K_M
154
+ ollama pull hermes3:8b
123
155
  ollama pull nomic-embed-text
124
- export OLLAMA_MAX_LOADED_MODELS=4
156
+ export OLLAMA_MAX_LOADED_MODELS=2
125
157
  export OLLAMA_KEEP_ALIVE=-1
126
158
  ```
127
159
 
160
+ **क्वेन 3 का वैकल्पिक विकल्प (समान हार्डवेयर, क्वेन टूलिंग के लिए):**
161
+
162
+ ```bash
163
+ ollama pull qwen3:8b
164
+ ollama pull qwen3:14b
165
+ ollama pull nomic-embed-text
166
+ export INTERN_PROFILE=dev-rtx5080-qwen3
167
+ ```
168
+
128
169
  **M5 मैक्स प्रोफ़ाइल (128GB एकीकृत):**
129
170
 
130
171
  ```bash
131
- ollama pull qwen2.5:14b-instruct-q4_K_M
132
- ollama pull qwen2.5-coder:32b-instruct-q4_K_M
133
- ollama pull llama3.3:70b-instruct-q4_K_M
172
+ ollama pull qwen3:14b
173
+ ollama pull qwen3:32b
134
174
  ollama pull nomic-embed-text
135
175
  export INTERN_PROFILE=m5-max
136
176
  ```
@@ -148,7 +188,7 @@ export INTERN_PROFILE=m5-max
148
188
  result: <tool-specific>,
149
189
  tier_used: "instant" | "workhorse" | "deep" | "embed",
150
190
  model: string,
151
- hardware_profile: string, // "dev-rtx5080" | "dev-rtx5080-llama" | "m5-max"
191
+ hardware_profile: string, // "dev-rtx5080" | "dev-rtx5080-qwen3" | "m5-max"
152
192
  tokens_in: number,
153
193
  tokens_out: number,
154
194
  elapsed_ms: number,
@@ -171,11 +211,11 @@ export INTERN_PROFILE=m5-max
171
211
 
172
212
  | प्रोफ़ाइल | तत्काल | कार्यशील | गहन | एम्बेड |
173
213
  |---|---|---|---|---|
174
- | **`dev-rtx5080`** (डिफ़ॉल्ट) | qwen2.5 7B | qwen2.5-coder 7B | qwen2.5 14B | nomic-embed-text |
175
- | `dev-rtx5080-llama` | qwen2.5 7B | qwen2.5-coder 7B | **llama3.1 8B** | nomic-embed-text |
176
- | `m5-max` | qwen2.5 14B | qwen2.5-coder 32B | llama3.3 70B | nomic-embed-text |
214
+ | **`dev-rtx5080`** (डिफ़ॉल्ट) | hermes3 8B | hermes3 8B | hermes3 8B | nomic-embed-text |
215
+ | `dev-rtx5080-qwen3` | qwen3 8B | qwen3 8B | qwen3 14B | nomic-embed-text |
216
+ | `m5-max` | qwen3 14B | qwen3 14B | qwen3 32B | nomic-embed-text |
177
217
 
178
- **एक ही परिवार के मॉडलों का उपयोग:** डिफ़ॉल्ट विकास परिवेश में, खराब आउटपुट उपकरण या डिज़ाइन की समस्याओं के कारण होते हैं, कि विभिन्न मॉडलों के बीच असंगति के कारण। `dev-rtx5080-llama` एक मानक है - M5 Max पर Llama का उपयोग करने से पहले, Llama 8B के माध्यम से समान मूल्यांकन चलाएं।
218
+ **डिफ़ॉल्ट विकास (डेवलपमेंट) वातावरण** तीनों कार्य स्तरों को `hermes3:8b` पर समेटता है यह मान्य हर्मेस एजेंट एकीकरण पथ है। समान मॉडल का उपयोग शीर्ष से नीचे तक करने का मतलब है कि केवल एक चीज डाउनलोड करनी है, एक ही निवास लागत है, और समझने के लिए केवल एक व्यवहार है। जो उपयोगकर्ता क्वेन 3 को पसंद करते हैं (इसके `THINK_BY_SHAPE` के साथ), वे `dev-rtx5080-qwen3` का उपयोग कर सकते हैं। `m5-max` क्वेन 3 का वह संस्करण है जो एकीकृत मेमोरी के लिए अनुकूलित है।
179
219
 
180
220
  ---
181
221