ast-mcp-server 0.14.3 → 0.15.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.
@@ -43,6 +43,20 @@ La selección default conserva los siete kinds. `contains` aplicable es `unsuppo
43
43
 
44
44
  For each dimension, `groups.length + omitted_group_count = total_group_count` and group counts sum to `covered_diagnostic_count`. Code coverage plus omitted diagnostics equals the total; file coverage additionally includes `unfiled_diagnostic_count`. File groups expose normalized project-relative paths only and may include paths absent from the raw page.
45
45
 
46
+ ## Angular templates
47
+
48
+ In an Angular project (`@angular/core` resolvable from the tsconfig directory), `ast_find_references` also reports usages of a component member inside its external `templateUrl` template and inline `template`. Each item carries `origin` (`compiler`, `template_external` or `template_inline`), and the response adds `template_coverage` and `template_reference_count`. `reference_count` stays TypeScript-only; `total` counts both kinds.
49
+
50
+ Read `template_coverage` before inferring absence. Only `completed` proves every template of the declaring component was examined. `unfinished` (for example `compiler_missing`, `compiler_unsupported`, `template_unresolved`, `template_parse_error`, `size_exceeded`) and `unsupported` (for example an inherited member) never prove that no template usage exists. `not_applicable` means the feature is off and the response is unchanged.
51
+
52
+ `ast_rename_symbol` updates external templates in the same reviewed plan and rewrites them only through `ast_apply_operation`. It fails closed: coverage `unfinished` or `unsupported` returns `INCOMPLETE_EVIDENCE`, and an inline template usage, a new name that collides with a template local, or `$any` returns `MUTATION_BLOCKED`. Pipe names, `#ref`/`let-` targets, child inputs and outputs, host bindings and `styleUrls` are not renamed. Apply is sequential, not globally atomic; rollback restores the owned templates.
53
+
54
+ Limits to state when reporting:
55
+
56
+ - `ast_explore` is TypeScript-only: its references omit template usages. This is tracked in issue #380. Use `ast_find_references` for template evidence; rename still blocks independently.
57
+ - Diagnostics stay TypeScript-only: `ast_get_diagnostics` and the post-apply delta do not detect template errors. A template-only breakage produces no diagnostic, so run the project's Angular build or tests after a rename.
58
+ - Detection uses the user's own `@angular/compiler`, never a bundled one. It is an optional peer (`>=20.0.0 <23.0.0`) that the project already installs with Angular. If it is missing or out of range, coverage is `unfinished` and rename is blocked. Yarn PnP projects without `node_modules` resolve nothing and report `unfinished`.
59
+
46
60
  ## Contributor contract
47
61
 
48
62
  Al agregar o modificar una tool, mantener schemas, metadata, annotations, handler, errores y serialización en su módulo. Exportar un descriptor congelado y ubicarlo deliberadamente en `src/tools/catalog.ts`; el catálogo solo admite hechos estáticos de efecto, batch, compatibilidad y formatos directos.
@@ -20,6 +20,12 @@ El setup falla cerrado ante un registro `ast` conflictivo. No borrar ni reemplaz
20
20
 
21
21
  Preferir `file_path` relativo; un suffix ambiguo debe devolver candidatos. `ast_get_file` solo admite archivos del tsconfig activo y `snapshot_state: "fresh"` no implica cero diagnostics. `ast_explore` es read-only: revisar `budget`, `completeness`, `unresolved` y `truncation`; sus `call_spines` son recorridos estáticos, no stacks de runtime.
22
22
 
23
+ ### Angular templates
24
+
25
+ `ast_find_references` adds template usages (`origin: "template_external" | "template_inline"`, `template_coverage`, `template_reference_count`) only when `@angular/core` resolves; otherwise the response is unchanged. Treat `template_coverage.status` other than `completed` as not proving absence. `ast_explore` is TypeScript-only for references (tracked in issue #380), and diagnostics stay TypeScript-only, so template errors are never detected.
26
+
27
+ `ast_rename_symbol` edits external templates and returns `INCOMPLETE_EVIDENCE` (coverage `unfinished` or `unsupported`) or `MUTATION_BLOCKED` (inline usage, template-local collision, `$any`). The user's `@angular/compiler` is an optional peer, never bundled; Yarn PnP projects without `node_modules` report `unfinished`. See the Angular templates section of `SKILL.md`.
28
+
23
29
  ## Trust, freshness y ausencia
24
30
 
25
31
  Solo `provenance: "compiler"`, `confidence: "exact"`, `resolution: "resolved"` y `freshness.state: "fresh"` producen evidencia autoritativa. `syntax` describe estructura; `heuristic` nunca autoriza una mutación. El índice acelera, pero el compilador valida. Administrar su cache derivada solo con `ast-tool cache inspect` y `ast-tool cache clear --yes`, nunca borrándola manualmente. La ausencia usa el contrato específico: solo `ast_find_test_candidates` usa `completeness.proven_empty` para evidencia vacía de tests afectados; `ast_explore.call_spines` usa `empty_proven`; listados, búsquedas y referencias agotan paginación con `total`, `has_more` y `next_offset` según corresponda, nunca con `proven_empty`.
@@ -6,11 +6,11 @@
6
6
  "files": [
7
7
  {
8
8
  "path": "SKILL.md",
9
- "sha256": "33d0c6520c1ed54d42a502251a08baed86153bf9b6c275aed4525b2968f1553b"
9
+ "sha256": "94ff4ce2a97d33cad56b7c1ed8057d0ff7ca22988aebd7923b21319326307c18"
10
10
  },
11
11
  {
12
12
  "path": "references/operations.md",
13
- "sha256": "d52f01637e33e65ce523d19a810ce9488ab92228809768ec66a584120c24ad98"
13
+ "sha256": "ee5dd8138b4f4570ee256c820c69b94d650a3d454119fff80b1dc08a6297b380"
14
14
  }
15
15
  ]
16
16
  },