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.
- package/CHANGELOG.md +28 -2
- package/README.md +21 -14
- package/SECURITY.md +1 -1
- package/dist/batch/schema.js +2 -0
- package/dist/server.js +2 -0
- package/dist/services/agent-targets.js +1 -0
- package/dist/services/call-spines.js +101 -0
- package/dist/services/context-builder.js +83 -24
- package/dist/services/explore-presentation.js +160 -0
- package/dist/services/project.js +5 -2
- package/dist/services/public-errors.js +7 -1
- package/dist/services/relationships.js +104 -0
- package/dist/services/test-candidates.js +15 -8
- package/dist/tools/explore.js +73 -2
- package/dist/tools/find_test_candidates.js +124 -0
- package/dist/tools/get_impact.js +3 -30
- package/dist/tools/relationship-schema.js +31 -0
- package/docs/support.md +13 -13
- package/package.json +2 -2
- package/skills/structural-code-editing/SKILL.md +6 -4
- package/skills/structural-code-editing/releases.json +12 -2
|
@@ -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.
|
|
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.
|
|
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
|
|
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
|
-
|
|
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.
|
|
6
|
-
"sha256": "
|
|
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
|
}
|