ollama-intern-mcp 2.0.2 → 2.1.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 (199) hide show
  1. package/README.es.md +130 -130
  2. package/README.fr.md +130 -130
  3. package/README.hi.md +130 -130
  4. package/README.it.md +130 -130
  5. package/README.ja.md +130 -130
  6. package/README.md +345 -304
  7. package/README.pt-BR.md +130 -130
  8. package/README.zh.md +130 -130
  9. package/SECURITY.md +42 -24
  10. package/dist/corpus/indexer.d.ts +21 -3
  11. package/dist/corpus/indexer.d.ts.map +1 -1
  12. package/dist/corpus/indexer.js +61 -9
  13. package/dist/corpus/indexer.js.map +1 -1
  14. package/dist/corpus/lock.d.ts +26 -0
  15. package/dist/corpus/lock.d.ts.map +1 -0
  16. package/dist/corpus/lock.js +46 -0
  17. package/dist/corpus/lock.js.map +1 -0
  18. package/dist/corpus/manifest.d.ts +51 -0
  19. package/dist/corpus/manifest.d.ts.map +1 -1
  20. package/dist/corpus/manifest.js +11 -3
  21. package/dist/corpus/manifest.js.map +1 -1
  22. package/dist/corpus/refresh.d.ts +30 -0
  23. package/dist/corpus/refresh.d.ts.map +1 -1
  24. package/dist/corpus/refresh.js +73 -14
  25. package/dist/corpus/refresh.js.map +1 -1
  26. package/dist/corpus/searcher.d.ts +9 -0
  27. package/dist/corpus/searcher.d.ts.map +1 -1
  28. package/dist/corpus/searcher.js +18 -0
  29. package/dist/corpus/searcher.js.map +1 -1
  30. package/dist/corpus/storage.d.ts +15 -0
  31. package/dist/corpus/storage.d.ts.map +1 -1
  32. package/dist/corpus/storage.js +19 -1
  33. package/dist/corpus/storage.js.map +1 -1
  34. package/dist/embedMath.d.ts +6 -0
  35. package/dist/embedMath.d.ts.map +1 -1
  36. package/dist/embedMath.js +11 -1
  37. package/dist/embedMath.js.map +1 -1
  38. package/dist/errors.d.ts +1 -1
  39. package/dist/errors.d.ts.map +1 -1
  40. package/dist/errors.js.map +1 -1
  41. package/dist/guardrails/bannedPhrases.d.ts.map +1 -1
  42. package/dist/guardrails/bannedPhrases.js +6 -1
  43. package/dist/guardrails/bannedPhrases.js.map +1 -1
  44. package/dist/guardrails/timeouts.d.ts +7 -0
  45. package/dist/guardrails/timeouts.d.ts.map +1 -1
  46. package/dist/guardrails/timeouts.js +12 -3
  47. package/dist/guardrails/timeouts.js.map +1 -1
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +89 -6
  50. package/dist/index.js.map +1 -1
  51. package/dist/observability.d.ts +24 -0
  52. package/dist/observability.d.ts.map +1 -1
  53. package/dist/observability.js +15 -0
  54. package/dist/observability.js.map +1 -1
  55. package/dist/ollama.d.ts +53 -0
  56. package/dist/ollama.d.ts.map +1 -1
  57. package/dist/ollama.js +200 -21
  58. package/dist/ollama.js.map +1 -1
  59. package/dist/prewarm.d.ts +4 -0
  60. package/dist/prewarm.d.ts.map +1 -1
  61. package/dist/prewarm.js +15 -3
  62. package/dist/prewarm.js.map +1 -1
  63. package/dist/profiles.d.ts +6 -1
  64. package/dist/profiles.d.ts.map +1 -1
  65. package/dist/profiles.js +19 -2
  66. package/dist/profiles.js.map +1 -1
  67. package/dist/semaphore.d.ts +23 -1
  68. package/dist/semaphore.d.ts.map +1 -1
  69. package/dist/semaphore.js +72 -15
  70. package/dist/semaphore.js.map +1 -1
  71. package/dist/sources.js +1 -1
  72. package/dist/sources.js.map +1 -1
  73. package/dist/tools/_helpers.d.ts +29 -0
  74. package/dist/tools/_helpers.d.ts.map +1 -0
  75. package/dist/tools/_helpers.js +39 -0
  76. package/dist/tools/_helpers.js.map +1 -0
  77. package/dist/tools/artifactDiff.js +1 -1
  78. package/dist/tools/artifactDiff.js.map +1 -1
  79. package/dist/tools/artifactPrune.d.ts +41 -0
  80. package/dist/tools/artifactPrune.d.ts.map +1 -0
  81. package/dist/tools/artifactPrune.js +164 -0
  82. package/dist/tools/artifactPrune.js.map +1 -0
  83. package/dist/tools/artifactRead.js +2 -2
  84. package/dist/tools/artifactRead.js.map +1 -1
  85. package/dist/tools/artifacts/diff.d.ts.map +1 -1
  86. package/dist/tools/artifacts/diff.js +11 -0
  87. package/dist/tools/artifacts/diff.js.map +1 -1
  88. package/dist/tools/artifacts/scan.js +1 -1
  89. package/dist/tools/artifacts/scan.js.map +1 -1
  90. package/dist/tools/artifacts/snippets.d.ts.map +1 -1
  91. package/dist/tools/artifacts/snippets.js +50 -32
  92. package/dist/tools/artifacts/snippets.js.map +1 -1
  93. package/dist/tools/batch.d.ts.map +1 -1
  94. package/dist/tools/batch.js +3 -1
  95. package/dist/tools/batch.js.map +1 -1
  96. package/dist/tools/batchProofCheck.d.ts +74 -0
  97. package/dist/tools/batchProofCheck.d.ts.map +1 -0
  98. package/dist/tools/batchProofCheck.js +241 -0
  99. package/dist/tools/batchProofCheck.js.map +1 -0
  100. package/dist/tools/changeBrief.d.ts.map +1 -1
  101. package/dist/tools/changeBrief.js +4 -1
  102. package/dist/tools/changeBrief.js.map +1 -1
  103. package/dist/tools/codeCitation.d.ts +42 -0
  104. package/dist/tools/codeCitation.d.ts.map +1 -0
  105. package/dist/tools/codeCitation.js +196 -0
  106. package/dist/tools/codeCitation.js.map +1 -0
  107. package/dist/tools/codeMap.d.ts +42 -0
  108. package/dist/tools/codeMap.d.ts.map +1 -0
  109. package/dist/tools/codeMap.js +358 -0
  110. package/dist/tools/codeMap.js.map +1 -0
  111. package/dist/tools/corpusAmend.d.ts +39 -0
  112. package/dist/tools/corpusAmend.d.ts.map +1 -0
  113. package/dist/tools/corpusAmend.js +245 -0
  114. package/dist/tools/corpusAmend.js.map +1 -0
  115. package/dist/tools/corpusAmendHistory.d.ts +35 -0
  116. package/dist/tools/corpusAmendHistory.d.ts.map +1 -0
  117. package/dist/tools/corpusAmendHistory.js +62 -0
  118. package/dist/tools/corpusAmendHistory.js.map +1 -0
  119. package/dist/tools/corpusAnswer.d.ts.map +1 -1
  120. package/dist/tools/corpusAnswer.js +54 -4
  121. package/dist/tools/corpusAnswer.js.map +1 -1
  122. package/dist/tools/corpusHealth.d.ts +64 -0
  123. package/dist/tools/corpusHealth.d.ts.map +1 -0
  124. package/dist/tools/corpusHealth.js +192 -0
  125. package/dist/tools/corpusHealth.js.map +1 -0
  126. package/dist/tools/corpusIndex.d.ts.map +1 -1
  127. package/dist/tools/corpusIndex.js +13 -4
  128. package/dist/tools/corpusIndex.js.map +1 -1
  129. package/dist/tools/corpusList.d.ts.map +1 -1
  130. package/dist/tools/corpusList.js +13 -0
  131. package/dist/tools/corpusList.js.map +1 -1
  132. package/dist/tools/corpusRefresh.d.ts +1 -0
  133. package/dist/tools/corpusRefresh.d.ts.map +1 -1
  134. package/dist/tools/corpusRefresh.js +6 -1
  135. package/dist/tools/corpusRefresh.js.map +1 -1
  136. package/dist/tools/corpusRerank.d.ts +70 -0
  137. package/dist/tools/corpusRerank.d.ts.map +1 -0
  138. package/dist/tools/corpusRerank.js +179 -0
  139. package/dist/tools/corpusRerank.js.map +1 -0
  140. package/dist/tools/corpusSearch.d.ts +64 -1
  141. package/dist/tools/corpusSearch.d.ts.map +1 -1
  142. package/dist/tools/corpusSearch.js +242 -11
  143. package/dist/tools/corpusSearch.js.map +1 -1
  144. package/dist/tools/doctor.d.ts +77 -0
  145. package/dist/tools/doctor.d.ts.map +1 -0
  146. package/dist/tools/doctor.js +236 -0
  147. package/dist/tools/doctor.js.map +1 -0
  148. package/dist/tools/draft.js +1 -1
  149. package/dist/tools/draft.js.map +1 -1
  150. package/dist/tools/embed.d.ts +19 -0
  151. package/dist/tools/embed.d.ts.map +1 -1
  152. package/dist/tools/embed.js +35 -0
  153. package/dist/tools/embed.js.map +1 -1
  154. package/dist/tools/embedSearch.d.ts.map +1 -1
  155. package/dist/tools/embedSearch.js +4 -2
  156. package/dist/tools/embedSearch.js.map +1 -1
  157. package/dist/tools/hypothesisDrill.d.ts +44 -0
  158. package/dist/tools/hypothesisDrill.d.ts.map +1 -0
  159. package/dist/tools/hypothesisDrill.js +154 -0
  160. package/dist/tools/hypothesisDrill.js.map +1 -0
  161. package/dist/tools/incidentBrief.d.ts.map +1 -1
  162. package/dist/tools/incidentBrief.js +5 -1
  163. package/dist/tools/incidentBrief.js.map +1 -1
  164. package/dist/tools/logTail.d.ts +30 -0
  165. package/dist/tools/logTail.d.ts.map +1 -0
  166. package/dist/tools/logTail.js +137 -0
  167. package/dist/tools/logTail.js.map +1 -0
  168. package/dist/tools/multiFileRefactorPropose.d.ts +49 -0
  169. package/dist/tools/multiFileRefactorPropose.d.ts.map +1 -0
  170. package/dist/tools/multiFileRefactorPropose.js +203 -0
  171. package/dist/tools/multiFileRefactorPropose.js.map +1 -0
  172. package/dist/tools/packs/changePack.d.ts.map +1 -1
  173. package/dist/tools/packs/changePack.js +13 -2
  174. package/dist/tools/packs/changePack.js.map +1 -1
  175. package/dist/tools/packs/incidentPack.d.ts.map +1 -1
  176. package/dist/tools/packs/incidentPack.js +12 -2
  177. package/dist/tools/packs/incidentPack.js.map +1 -1
  178. package/dist/tools/packs/repoPack.d.ts.map +1 -1
  179. package/dist/tools/packs/repoPack.js +10 -2
  180. package/dist/tools/packs/repoPack.js.map +1 -1
  181. package/dist/tools/refactorPlan.d.ts +40 -0
  182. package/dist/tools/refactorPlan.d.ts.map +1 -0
  183. package/dist/tools/refactorPlan.js +154 -0
  184. package/dist/tools/refactorPlan.js.map +1 -0
  185. package/dist/tools/repoBrief.d.ts.map +1 -1
  186. package/dist/tools/repoBrief.js +4 -1
  187. package/dist/tools/repoBrief.js.map +1 -1
  188. package/dist/tools/research.d.ts.map +1 -1
  189. package/dist/tools/research.js +1 -1
  190. package/dist/tools/research.js.map +1 -1
  191. package/dist/tools/summarizeDeep.d.ts +1 -0
  192. package/dist/tools/summarizeDeep.d.ts.map +1 -1
  193. package/dist/tools/summarizeDeep.js +14 -4
  194. package/dist/tools/summarizeDeep.js.map +1 -1
  195. package/dist/tools/triageLogs.d.ts +6 -0
  196. package/dist/tools/triageLogs.d.ts.map +1 -1
  197. package/dist/tools/triageLogs.js +37 -3
  198. package/dist/tools/triageLogs.js.map +1 -1
  199. package/package.json +62 -61
package/README.es.md CHANGED
@@ -2,16 +2,16 @@
2
2
  <a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.md">English</a> | <a href="README.fr.md">Français</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
3
3
  </p>
4
4
 
5
- <p align="center">
6
- <img src="https://raw.githubusercontent.com/mcp-tool-shop-org/brand/main/logos/ollama-intern-mcp/readme.png" alt="Ollama Intern MCP" width="500">
7
- </p>
5
+ <p align="center">
6
+ <img src="https://raw.githubusercontent.com/mcp-tool-shop-org/brand/main/logos/ollama-intern-mcp/readme.png" alt="Ollama Intern MCP" width="500">
7
+ </p>
8
8
 
9
- <p align="center">
10
- <a href="https://github.com/mcp-tool-shop-org/ollama-intern-mcp/actions"><img alt="CI" src="https://github.com/mcp-tool-shop-org/ollama-intern-mcp/actions/workflows/ci.yml/badge.svg"></a>
11
- <a href="LICENSE"><img alt="MIT License" src="https://img.shields.io/badge/license-MIT-blue.svg"></a>
12
- <a href="https://mcp-tool-shop-org.github.io/ollama-intern-mcp/"><img alt="Landing Page" src="https://img.shields.io/badge/landing-page-8b5cf6"></a>
13
- <a href="https://mcp-tool-shop-org.github.io/ollama-intern-mcp/handbook/"><img alt="Handbook" src="https://img.shields.io/badge/handbook-docs-10b981"></a>
14
- </p>
9
+ <p align="center">
10
+ <a href="https://github.com/mcp-tool-shop-org/ollama-intern-mcp/actions"><img alt="CI" src="https://github.com/mcp-tool-shop-org/ollama-intern-mcp/actions/workflows/ci.yml/badge.svg"></a>
11
+ <a href="LICENSE"><img alt="MIT License" src="https://img.shields.io/badge/license-MIT-blue.svg"></a>
12
+ <a href="https://mcp-tool-shop-org.github.io/ollama-intern-mcp/"><img alt="Landing Page" src="https://img.shields.io/badge/landing-page-8b5cf6"></a>
13
+ <a href="https://mcp-tool-shop-org.github.io/ollama-intern-mcp/handbook/"><img alt="Handbook" src="https://img.shields.io/badge/handbook-docs-10b981"></a>
14
+ </p>
15
15
 
16
16
  > **El "becario" local para Claude Code.** 28 herramientas estructuradas, informes basados en evidencia, artefactos duraderos.
17
17
 
@@ -19,49 +19,49 @@ Un servidor MCP que proporciona a Claude Code un **"becario" local** con reglas,
19
19
 
20
20
  Sin nube. Sin telemetría. Nada de funciones "autónomas". Cada llamada muestra su trabajo.
21
21
 
22
- ---
22
+ ---
23
23
 
24
24
  ## Ejemplo principal: una llamada, un artefacto
25
25
 
26
- ```jsonc
27
- // Claude → ollama-intern-mcp
28
- {
29
- "tool": "ollama_incident_pack",
30
- "arguments": {
31
- "title": "sprite pipeline 5 AM paging regression",
32
- "logs": "[2026-04-16 05:07] worker-3 OOM killed\n[2026-04-16 05:07] ollama /api/ps reports evicted=true size=8.1GB\n...",
33
- "source_paths": ["F:/AI/sprite-foundry/src/worker.ts", "memory/sprite-foundry-visual-mastery.md"]
34
- }
35
- }
36
- ```
26
+ ```jsonc
27
+ // Claude → ollama-intern-mcp
28
+ {
29
+ "tool": "ollama_incident_pack",
30
+ "arguments": {
31
+ "title": "sprite pipeline 5 AM paging regression",
32
+ "logs": "[2026-04-16 05:07] worker-3 OOM killed\n[2026-04-16 05:07] ollama /api/ps reports evicted=true size=8.1GB\n...",
33
+ "source_paths": ["F:/AI/sprite-foundry/src/worker.ts", "memory/sprite-foundry-visual-mastery.md"]
34
+ }
35
+ }
36
+ ```
37
37
 
38
38
  Devuelve un "sobre" que apunta a un archivo en el disco:
39
39
 
40
- ```jsonc
41
- {
42
- "result": {
43
- "pack": "incident",
44
- "slug": "2026-04-16-sprite-pipeline-5-am-paging-regression",
45
- "artifact_md": "~/.ollama-intern/artifacts/incident/2026-04-16-sprite-pipeline-5-am-paging-regression.md",
46
- "artifact_json": "~/.ollama-intern/artifacts/incident/2026-04-16-sprite-pipeline-5-am-paging-regression.json",
47
- "weak": false,
48
- "evidence_count": 6,
49
- "next_checks": ["residency.evicted across last 24h", "OLLAMA_MAX_LOADED_MODELS vs loaded size"]
50
- },
51
- "tier_used": "deep",
52
- "model": "hermes3:8b",
53
- "hardware_profile": "dev-rtx5080",
54
- "tokens_in": 4180, "tokens_out": 612,
55
- "elapsed_ms": 8410,
56
- "residency": { "in_vram": true, "evicted": false }
57
- }
58
- ```
40
+ ```jsonc
41
+ {
42
+ "result": {
43
+ "pack": "incident",
44
+ "slug": "2026-04-16-sprite-pipeline-5-am-paging-regression",
45
+ "artifact_md": "~/.ollama-intern/artifacts/incident/2026-04-16-sprite-pipeline-5-am-paging-regression.md",
46
+ "artifact_json": "~/.ollama-intern/artifacts/incident/2026-04-16-sprite-pipeline-5-am-paging-regression.json",
47
+ "weak": false,
48
+ "evidence_count": 6,
49
+ "next_checks": ["residency.evicted across last 24h", "OLLAMA_MAX_LOADED_MODELS vs loaded size"]
50
+ },
51
+ "tier_used": "deep",
52
+ "model": "hermes3:8b",
53
+ "hardware_profile": "dev-rtx5080",
54
+ "tokens_in": 4180, "tokens_out": 612,
55
+ "elapsed_ms": 8410,
56
+ "residency": { "in_vram": true, "evicted": false }
57
+ }
58
+ ```
59
59
 
60
60
  Ese archivo Markdown es el resultado del "becario" en su escritorio: encabezados, bloque de evidencia con identificadores citados, comandos de investigación `next_checks`, y un indicador `weak: true` si la evidencia es limitada. Es determinista: el renderizador es código, no una instrucción. Ábrelo mañana, compáralo la semana que viene y expórtalo a un manual con `ollama_artifact_export_to_path`.
61
61
 
62
62
  Todos los competidores en esta categoría destacan la función de "ahorro de tokens". Nosotros destacamos el hecho de que _aquí está el archivo que el becario escribió_.
63
63
 
64
- ---
64
+ ---
65
65
 
66
66
  ## ¿Qué hay aquí? Cuatro niveles, 28 herramientas
67
67
 
@@ -79,34 +79,34 @@ Líneas congeladas:
79
79
  - Los paquetes están congelados en 3. No hay nuevos tipos de paquete.
80
80
  - El nivel de artefacto está congelado en 7.
81
81
 
82
- La referencia completa de las herramientas se encuentra en el [manual](https://mcp-tool-shop-org.github.io/ollama-intern-mcp/handbook/reference/).
82
+ La referencia completa de las herramientas se encuentra en el [manual](https://mcp-tool-shop-org.github.io/ollama-intern-mcp/handbook/tools/).
83
83
 
84
- ---
84
+ ---
85
85
 
86
86
  ## Instalación
87
87
 
88
- ```bash
89
- npm install -g ollama-intern-mcp
90
- ```
88
+ ```bash
89
+ npm install -g ollama-intern-mcp
90
+ ```
91
91
 
92
92
  Requiere [Ollama](https://ollama.com) instalado localmente y los modelos de nivel descargados.
93
93
 
94
94
  ### Claude Code
95
95
 
96
- ```json
97
- {
98
- "mcpServers": {
99
- "ollama-intern": {
100
- "command": "npx",
101
- "args": ["-y", "ollama-intern-mcp"],
102
- "env": {
103
- "OLLAMA_HOST": "http://127.0.0.1:11434",
104
- "INTERN_PROFILE": "dev-rtx5080"
105
- }
106
- }
107
- }
108
- }
109
- ```
96
+ ```json
97
+ {
98
+ "mcpServers": {
99
+ "ollama-intern": {
100
+ "command": "npx",
101
+ "args": ["-y", "ollama-intern-mcp"],
102
+ "env": {
103
+ "OLLAMA_HOST": "http://127.0.0.1:11434",
104
+ "INTERN_PROFILE": "dev-rtx5080"
105
+ }
106
+ }
107
+ }
108
+ }
109
+ ```
110
110
 
111
111
  ### Claude Desktop
112
112
 
@@ -118,31 +118,31 @@ Este MCP fue validado de extremo a extremo con el [Agente Hermes](https://github
118
118
 
119
119
  Configuración de referencia ([hermes.config.example.yaml](hermes.config.example.yaml) en este repositorio):
120
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
- ```
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
146
 
147
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
148
 
@@ -150,62 +150,62 @@ mcp_servers:
150
150
 
151
151
  **Perfil de desarrollo predeterminado (RTX 5080 16GB y similar):**
152
152
 
153
- ```bash
154
- ollama pull hermes3:8b
155
- ollama pull nomic-embed-text
156
- export OLLAMA_MAX_LOADED_MODELS=2
157
- export OLLAMA_KEEP_ALIVE=-1
158
- ```
153
+ ```bash
154
+ ollama pull hermes3:8b
155
+ ollama pull nomic-embed-text
156
+ export OLLAMA_MAX_LOADED_MODELS=2
157
+ export OLLAMA_KEEP_ALIVE=-1
158
+ ```
159
159
 
160
160
  **Ruta alternativa de Qwen 3 (mismo hardware, para herramientas de Qwen):**
161
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
- ```
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
168
 
169
169
  **Perfil M5 Max (128GB unificados):**
170
170
 
171
- ```bash
172
- ollama pull qwen3:14b
173
- ollama pull qwen3:32b
174
- ollama pull nomic-embed-text
175
- export INTERN_PROFILE=m5-max
176
- ```
171
+ ```bash
172
+ ollama pull qwen3:14b
173
+ ollama pull qwen3:32b
174
+ ollama pull nomic-embed-text
175
+ export INTERN_PROFILE=m5-max
176
+ ```
177
177
 
178
178
  Las variables de entorno por nivel (`INTERN_TIER_INSTANT`, `INTERN_TIER_WORKHORSE`, `INTERN_TIER_DEEP`, `INTERN_EMBED_MODEL`) aún anulan las selecciones del perfil para casos individuales.
179
179
 
180
- ---
180
+ ---
181
181
 
182
182
  ## "Sobre" uniforme
183
183
 
184
184
  Cada herramienta devuelve la misma estructura:
185
185
 
186
- ```ts
187
- {
188
- result: <tool-specific>,
189
- tier_used: "instant" | "workhorse" | "deep" | "embed",
190
- model: string,
191
- hardware_profile: string, // "dev-rtx5080" | "dev-rtx5080-qwen3" | "m5-max"
192
- tokens_in: number,
193
- tokens_out: number,
194
- elapsed_ms: number,
195
- residency: {
196
- in_vram: boolean,
197
- size_bytes: number,
198
- size_vram_bytes: number,
199
- evicted: boolean
200
- } | null
201
- }
202
- ```
186
+ ```ts
187
+ {
188
+ result: <tool-specific>,
189
+ tier_used: "instant" | "workhorse" | "deep" | "embed",
190
+ model: string,
191
+ hardware_profile: string, // "dev-rtx5080" | "dev-rtx5080-qwen3" | "m5-max"
192
+ tokens_in: number,
193
+ tokens_out: number,
194
+ elapsed_ms: number,
195
+ residency: {
196
+ in_vram: boolean,
197
+ size_bytes: number,
198
+ size_vram_bytes: number,
199
+ evicted: boolean
200
+ } | null
201
+ }
202
+ ```
203
203
 
204
204
  La información de `residency` (residencia) proviene de `/api/ps` de Ollama. Cuando `evicted: true` (desalojado) o `size_vram < size` (tamaño de la VRAM menor que el tamaño), el modelo se carga en el disco y la inferencia se reduce entre 5 y 10 veces. Muestra esta información al usuario para que sepa que debe reiniciar Ollama o reducir el número de modelos cargados.
205
205
 
206
206
  Cada llamada se registra como una línea en formato NDJSON en `~/.ollama-intern/log.ndjson`. Filtra por `hardware_profile` para mantener los datos de desarrollo fuera de los puntos de referencia publicados.
207
207
 
208
- ---
208
+ ---
209
209
 
210
210
  ## Perfiles de hardware
211
211
 
@@ -217,7 +217,7 @@ Cada llamada se registra como una línea en formato NDJSON en `~/.ollama-intern/
217
217
 
218
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.
219
219
 
220
- ---
220
+ ---
221
221
 
222
222
  ## Normas de evidencia
223
223
 
@@ -230,7 +230,7 @@ Estas normas se aplican en el servidor, no en la solicitud:
230
230
  - **Renderizadores deterministas.** La forma del marcador de texto de los artefactos es código, no una solicitud. `draft` se reserva para el texto donde la redacción del modelo es importante.
231
231
  - **Solo diferencias dentro del mismo paquete.** Se rechaza explícitamente la función `artifact_diff` entre diferentes paquetes; los paquetes permanecen distintos.
232
232
 
233
- ---
233
+ ---
234
234
 
235
235
  ## Artefactos y continuidad
236
236
 
@@ -246,7 +246,7 @@ Los paquetes escriben en `~/.ollama-intern/artifacts/{incident,repo,change}/<slu
246
246
 
247
247
  No hay llamadas a modelos en esta capa. Todo se renderiza a partir de contenido almacenado.
248
248
 
249
- ---
249
+ ---
250
250
 
251
251
  ## Modelo de amenazas y telemetría
252
252
 
@@ -262,7 +262,7 @@ No hay llamadas a modelos en esta capa. Todo se renderiza a partir de contenido
262
262
 
263
263
  Política completa: [SECURITY.md](SECURITY.md).
264
264
 
265
- ---
265
+ ---
266
266
 
267
267
  ## Estándares
268
268
 
@@ -273,7 +273,7 @@ Construido según los estándares de [Shipcheck](https://github.com/mcp-tool-sho
273
273
  - **C. Documentación** — README actualizado, CHANGELOG, LICENSE; esquemas de herramientas con autocomentarios
274
274
  - **D. Higiene** — `npm run verify` (395 pruebas), CI con análisis de dependencias, Dependabot, archivo de bloqueo, `engines.node`
275
275
 
276
- ---
276
+ ---
277
277
 
278
278
  ## Hoja de ruta (fortalecimiento, no ampliación del alcance)
279
279
 
@@ -285,12 +285,12 @@ Construido según los estándares de [Shipcheck](https://github.com/mcp-tool-sho
285
285
 
286
286
  Fase por capa de fortalecimiento. La interfaz de átomos/paquetes/artefactos permanece inalterada.
287
287
 
288
- ---
288
+ ---
289
289
 
290
290
  ## Licencia
291
291
 
292
292
  MIT — ver [LICENSE](LICENSE).
293
293
 
294
- ---
294
+ ---
295
295
 
296
- <p align="center">Built by <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a></p>
296
+ <p align="center">Built by <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a></p>