ast-mcp-server 0.9.1 → 0.10.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.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: structural-code-editing
3
3
  description: Leer, navegar y editar proyectos TypeScript/JavaScript mediante el resolver real del compilador y operaciones AST preparadas, revisadas y vinculadas por hash.
4
- version: "4.3.0"
4
+ version: "4.4.0"
5
5
  author: "yail"
6
6
  license: "ISC"
7
7
  metadata:
@@ -46,7 +46,7 @@ El setup falla cerrado ante un registro `ast` conflictivo. No eliminar ni reempl
46
46
 
47
47
  ## Runtime, soporte y errores
48
48
 
49
- El candidato local 0.9.1 requiere Node.js `>=22.13.0` y se verifica con Node.js exacto 22.13.0 y la línea actual de Node.js 24. La versión publicada v0.8.1 conserva su matriz inmutable 22.5.0/24. La publicación de archivos gestionados por setup requiere además GNU coreutils 9.7 `mv` con `--update=none-fail`, `--exchange`, `--no-copy` y `--no-target-directory`, GNU coreutils `ln -L -T`, y procfs en `/proc/self/fd` con `O_DIRECTORY`/`O_NOFOLLOW`. Otras arquitecturas Linux, sistemas sin esos primitivos, macOS y Windows están sin verificar.
49
+ El candidato local 0.10.0 requiere Node.js `>=22.13.0` y se verifica con Node.js exacto 22.13.0 y la línea actual de Node.js 24. La versión publicada v0.8.1 conserva su matriz inmutable 22.5.0/24. La publicación de archivos gestionados por setup requiere además GNU coreutils 9.7 `mv` con `--update=none-fail`, `--exchange`, `--no-copy` y `--no-target-directory`, GNU coreutils `ln -L -T`, y procfs en `/proc/self/fd` con `O_DIRECTORY`/`O_NOFOLLOW`. Otras arquitecturas Linux, sistemas sin esos primitivos, macOS y Windows están sin verificar.
50
50
 
51
51
  El transporte soportado es stdio local bajo los permisos filesystem del usuario que invoca el proceso. No asumir autenticación HTTP, sandbox, aislamiento entre tenants ni una frontera segura para clientes remotos o no confiables.
52
52
 
@@ -73,7 +73,7 @@ Los errores públicos de las tools MCP usan un vocabulario cerrado dentro de `{
73
73
 
74
74
  `ast_get_file` es read-only y solo acepta archivos incluidos por el tsconfig activo. Su modo normal devuelve líneas exactas, paginadas y numeradas desde 1, junto con el hash SHA-256 de los bytes actuales. `symbols_only: true` devuelve selectors y signatures sin cuerpos. `snapshot_state: "fresh"` describe sincronización con el snapshot del compilador, no ausencia de diagnostics; consultar `ast_get_diagnostics` por separado.
75
75
 
76
- `ast_explore` es read-only y no prepara ni aplica operaciones. Sus selectors son directamente reutilizables por las tools primitivas y de mutación. La respuesta declara `freshness`, `completeness`, `truncation`, `unresolved` y `budget`; si el límite de bytes impide incluir todo el contexto, el resultado queda marcado como incompleto.
76
+ `ast_explore` es read-only y no prepara ni aplica operaciones. Sus selectors son directamente reutilizables por las tools primitivas y de mutación. La respuesta admite clusters completos dentro de `max_bytes`, nunca corta source, referencias ni paths, y clasifica lo omitido como `budget`, `incomplete` o `untrusted`. Para un `file_path + symbol_path` exacto, `call_spines` puede pedir paths estáticos de invocación compiler-resolved; no representa stacks de runtime ni relabela referencias genéricas. Ausencia de la opción no ejecuta ese recorrido.
77
77
 
78
78
  ## Modelo de confianza y freshness
79
79
 
@@ -86,7 +86,7 @@ No tratar toda salida como evidencia equivalente. Cuando una relación expone me
86
86
 
87
87
  `fresh` significa que la evidencia coincide con el snapshot sincronizado. `pending`, `rebuilding`, `stale` y `degraded` no deben presentarse como evidencia actual. Las respuestas preservan `causes` (`source_change`, `config_change`, `index_failure`, `watcher_failure`, `compiler_rebuild`) y `checked_at`. `ast_get_impact` rechaza relaciones que no estén fresh; `ast_explore` conserva `completeness`, `unresolved`, `budget` y `truncation` para que una lectura parcial no parezca un negativo.
88
88
 
89
- El resolver interno de candidatos de tests solo acepta impacto fresh y exacto, devuelve evidencia de relación directa o transitiva con IDs bounded y no ejecuta tests. Si la relación es stale, está truncada, es ambigua o solo heurística, no genera candidatos.
89
+ `ast_find_test_candidates` resuelve un símbolo exacto, fuerza impacto entrante y solo acepta evidencia fresh, exacta, resuelta y compiler-authoritative. Devuelve candidatos directos, transitivos o por convención con IDs y paths de relación completos; no ejecuta tests. Evidencia stale, truncada, incompleta, ambigua, heurística o no autoritativa falla cerrada. Solo un recorrido completo puede devolver una página vacía marcada `proven_empty`.
90
90
 
91
91
  Todos los reads son bounded. Respetar `limit`, `reference_limit`, `max_bytes`, y en impacto `max_depth`, `max_nodes` y `max_edges`; revisar siempre `budget` y `truncation` antes de razonar sobre ausencia. Los límites de batch son independientes y también deben mantenerse explícitos.
92
92
 
@@ -115,6 +115,8 @@ Cuando un pipeline conocido requiere varias llamadas MCP dependientes y el clien
115
115
  - Definir `emit` para que los resultados intermedios no entren al contexto.
116
116
  - Mantener paginación y filtros: batch elimina roundtrips, no vuelve razonable leer un monorepo entero.
117
117
  - No generar JavaScript/eval dentro del documento; el contrato es declarativo y limitado.
118
+ - `ast_find_test_candidates` está admitida como lectura: el batch inyecta el `project_root` del pipeline, rechaza conflictos y conserva candidatos completos al paginar. JSON y el TOON final representan el mismo resultado lógico del handler MCP registrado.
119
+ - `ast_explore` también está admitida como lectura mediante el handler MCP registrado. Mantener `max_bytes` y los límites de spines explícitos; los intermediates son JSON y solo el resultado final puede serializarse como TOON.
118
120
 
119
121
  `ast-tool validate pipeline.json` valida schema, orden de referencias y política sin cargar el proyecto. Límites por defecto: 50 steps, 500 invocaciones, 200 items por foreach, concurrencia 4 (máximo 16), input 1 MiB, 10 MiB por resultado retenido/output y 50 MiB de contexto intermedio acumulado. Los errores del CLI permanecen como JSON en stderr aunque el output exitoso solicitado sea TOON.
120
122
 
@@ -2,8 +2,8 @@
2
2
  "schema_version": 1,
3
3
  "algorithm": "sha256",
4
4
  "current": {
5
- "version": "4.3.0",
6
- "sha256": "a8dc2ba8eecbf3a21d7a86092323a2674b0353f5ec1f2bb36ba7ed0cd2890c20"
5
+ "version": "4.4.0",
6
+ "sha256": "253b588c56d44c8f5565db3f33ce227d80c7c29aa6604d362844f44b1278385a"
7
7
  },
8
8
  "predecessors": [
9
9
  {
@@ -55,6 +55,16 @@
55
55
  "version": "4.3.0",
56
56
  "sha256": "f20e2d0a495b4749c457fc681fe4704266ffd2e37feab49e8db42803b0565d91",
57
57
  "npm_versions": ["0.9.0"]
58
+ },
59
+ {
60
+ "version": "4.3.0",
61
+ "sha256": "a8dc2ba8eecbf3a21d7a86092323a2674b0353f5ec1f2bb36ba7ed0cd2890c20",
62
+ "npm_versions": ["0.9.1"]
63
+ },
64
+ {
65
+ "version": "4.3.0",
66
+ "sha256": "bf0814b539cd8638aeed108a4e118fe1f2ab418e2e968a77ad75f2d0dbde93b9",
67
+ "npm_versions": ["0.9.2"]
58
68
  }
59
69
  ]
60
70
  }