@mka-rainmaker/ama 0.1.2 → 0.3.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 (74) hide show
  1. package/README.md +81 -53
  2. package/dist/analyzers/baseline/analyzer.d.ts +9 -0
  3. package/dist/analyzers/baseline/analyzer.d.ts.map +1 -1
  4. package/dist/analyzers/baseline/analyzer.js +5 -0
  5. package/dist/analyzers/baseline/analyzer.js.map +1 -1
  6. package/dist/analyzers/baseline/go.d.ts.map +1 -1
  7. package/dist/analyzers/baseline/go.js +67 -0
  8. package/dist/analyzers/baseline/go.js.map +1 -1
  9. package/dist/analyzers/baseline/java.d.ts.map +1 -1
  10. package/dist/analyzers/baseline/java.js +84 -0
  11. package/dist/analyzers/baseline/java.js.map +1 -1
  12. package/dist/analyzers/baseline/php.d.ts.map +1 -1
  13. package/dist/analyzers/baseline/php.js +56 -0
  14. package/dist/analyzers/baseline/php.js.map +1 -1
  15. package/dist/analyzers/baseline/python.d.ts.map +1 -1
  16. package/dist/analyzers/baseline/python.js +178 -2
  17. package/dist/analyzers/baseline/python.js.map +1 -1
  18. package/dist/analyzers/baseline/rust.d.ts.map +1 -1
  19. package/dist/analyzers/baseline/rust.js +80 -0
  20. package/dist/analyzers/baseline/rust.js.map +1 -1
  21. package/dist/analyzers/sidecar/protocol.d.ts +28 -28
  22. package/dist/analyzers/typescript/analyzer.d.ts.map +1 -1
  23. package/dist/analyzers/typescript/analyzer.js +51 -1
  24. package/dist/analyzers/typescript/analyzer.js.map +1 -1
  25. package/dist/api.d.ts +34 -0
  26. package/dist/api.d.ts.map +1 -0
  27. package/dist/api.js +38 -0
  28. package/dist/api.js.map +1 -0
  29. package/dist/cli/agents.d.ts +11 -2
  30. package/dist/cli/agents.d.ts.map +1 -1
  31. package/dist/cli/agents.js +39 -0
  32. package/dist/cli/agents.js.map +1 -1
  33. package/dist/cli/commands/install.d.ts.map +1 -1
  34. package/dist/cli/commands/install.js +31 -8
  35. package/dist/cli/commands/install.js.map +1 -1
  36. package/dist/cli/commands/upgrade.d.ts +27 -0
  37. package/dist/cli/commands/upgrade.d.ts.map +1 -0
  38. package/dist/cli/commands/upgrade.js +136 -0
  39. package/dist/cli/commands/upgrade.js.map +1 -0
  40. package/dist/cli/index.d.ts.map +1 -1
  41. package/dist/cli/index.js +2 -0
  42. package/dist/cli/index.js.map +1 -1
  43. package/dist/graph/index.d.ts +3 -1
  44. package/dist/graph/index.d.ts.map +1 -1
  45. package/dist/graph/index.js +3 -1
  46. package/dist/graph/index.js.map +1 -1
  47. package/dist/graph/prisma-link.d.ts +9 -4
  48. package/dist/graph/prisma-link.d.ts.map +1 -1
  49. package/dist/graph/prisma-link.js +25 -10
  50. package/dist/graph/prisma-link.js.map +1 -1
  51. package/dist/graph/python-calls.d.ts +14 -0
  52. package/dist/graph/python-calls.d.ts.map +1 -0
  53. package/dist/graph/python-calls.js +0 -0
  54. package/dist/graph/python-calls.js.map +1 -0
  55. package/dist/graph/route-tests.d.ts +15 -0
  56. package/dist/graph/route-tests.d.ts.map +1 -0
  57. package/dist/graph/route-tests.js +67 -0
  58. package/dist/graph/route-tests.js.map +1 -0
  59. package/dist/graph/types.d.ts +1 -1
  60. package/dist/graph/types.d.ts.map +1 -1
  61. package/dist/indexer/ignore.d.ts.map +1 -1
  62. package/dist/indexer/ignore.js +13 -1
  63. package/dist/indexer/ignore.js.map +1 -1
  64. package/dist/indexer/indexer.d.ts.map +1 -1
  65. package/dist/indexer/indexer.js +22 -1
  66. package/dist/indexer/indexer.js.map +1 -1
  67. package/dist/mcp/server.d.ts.map +1 -1
  68. package/dist/mcp/server.js +7 -2
  69. package/dist/mcp/server.js.map +1 -1
  70. package/dist/query/service.d.ts +3 -0
  71. package/dist/query/service.d.ts.map +1 -1
  72. package/dist/query/service.js +19 -2
  73. package/dist/query/service.js.map +1 -1
  74. package/package.json +11 -1
@@ -1,5 +1,5 @@
1
1
  import * as path from "node:path";
2
- import { symbolId } from "../../graph/index.js";
2
+ import { CALL_REF_PREFIX, ROUTE_REF_PREFIX, symbolId, } from "../../graph/index.js";
3
3
  /**
4
4
  * Resolve a Python relative import (`from .x import y`, `from . import m`,
5
5
  * `from ..pkg import z`) to candidate repo-relative module files. The leading
@@ -141,6 +141,181 @@ function pythonRoutes(root, rel) {
141
141
  }
142
142
  return { nodes, edges };
143
143
  }
144
+ /** Django URL-pattern functions in `urls.py`. */
145
+ const DJANGO_URL_FUNCS = new Set(["path", "re_path"]);
146
+ function* eachCall(node) {
147
+ if (node.type === "call")
148
+ yield node;
149
+ for (const c of node.namedChildren)
150
+ yield* eachCall(c);
151
+ }
152
+ /** Detect Django URL patterns: `path("users/<int:pk>/", view)` / `re_path(...)` in urls.py —
153
+ * method-agnostic (the view handles every verb), so each forms an `ANY /path` Route. The view
154
+ * is a cross-module reference (`views.foo`), not a same-file symbol, so no handler edge. (ama-a2r) */
155
+ function djangoUrlRoutes(root, rel) {
156
+ const nodes = [];
157
+ for (const call of eachCall(root)) {
158
+ const fn = call.childForFieldName("function");
159
+ if (fn?.type !== "identifier" || !DJANGO_URL_FUNCS.has(fn.text))
160
+ continue;
161
+ const raw = firstStringArg(call.childForFieldName("arguments"));
162
+ if (raw === undefined)
163
+ continue;
164
+ const name = `ANY ${normalizeRoutePath(raw)}`;
165
+ nodes.push({
166
+ id: symbolId({ file: rel, qualifiedName: name }),
167
+ kind: "Route",
168
+ name,
169
+ file: rel,
170
+ qualifiedName: name,
171
+ tier: "baseline",
172
+ range: { startLine: call.startPosition.row + 1, endLine: call.endPosition.row + 1 },
173
+ });
174
+ }
175
+ return { nodes, edges: [] };
176
+ }
177
+ /** Python route detection across shapes: Flask/FastAPI decorators + Django urls.py `path()`. */
178
+ function pythonRoutesAll(root, rel) {
179
+ const decorated = pythonRoutes(root, rel);
180
+ const django = djangoUrlRoutes(root, rel);
181
+ return {
182
+ nodes: [...decorated.nodes, ...django.nodes],
183
+ edges: [...decorated.edges, ...django.edges],
184
+ };
185
+ }
186
+ /** The nearest enclosing `function_definition` of a node, or undefined (module-level). */
187
+ function enclosingFunction(node) {
188
+ for (let p = node.parent; p; p = p.parent) {
189
+ if (p.type === "function_definition")
190
+ return p;
191
+ }
192
+ return undefined;
193
+ }
194
+ function* eachFunction(node) {
195
+ if (node.type === "function_definition")
196
+ yield node;
197
+ for (const c of node.namedChildren)
198
+ yield* eachFunction(c);
199
+ }
200
+ /** The simple (last-segment) name a call targets: `foo()` → "foo", `obj.bar()` → "bar". */
201
+ function calleeName(call) {
202
+ const fn = call.childForFieldName("function");
203
+ if (fn?.type === "identifier")
204
+ return fn.text;
205
+ if (fn?.type === "attribute")
206
+ return fn.childForFieldName("attribute")?.text;
207
+ return undefined;
208
+ }
209
+ /** Common Python builtins — not emitted as cross-file call candidates (they resolve to no
210
+ * project function, so they'd only add dangling candidates). (ama-bnj) */
211
+ const PYTHON_BUILTINS = new Set([
212
+ "print",
213
+ "len",
214
+ "range",
215
+ "str",
216
+ "int",
217
+ "float",
218
+ "bool",
219
+ "list",
220
+ "dict",
221
+ "set",
222
+ "tuple",
223
+ "isinstance",
224
+ "issubclass",
225
+ "super",
226
+ "open",
227
+ "enumerate",
228
+ "zip",
229
+ "map",
230
+ "filter",
231
+ "sorted",
232
+ "reversed",
233
+ "sum",
234
+ "min",
235
+ "max",
236
+ "abs",
237
+ "round",
238
+ "getattr",
239
+ "setattr",
240
+ "hasattr",
241
+ "type",
242
+ "repr",
243
+ "format",
244
+ "iter",
245
+ "next",
246
+ "any",
247
+ "all",
248
+ ]);
249
+ /** Heuristic baseline call edges. A call to a function/method defined in the SAME file resolves
250
+ * straight to a `Calls` edge (name-based; an ambiguous name defined more than once, and
251
+ * module-level calls with no enclosing function, are skipped). A call to a name NOT defined
252
+ * locally (and not a builtin) becomes a `call:<name>` candidate that {@link deriveCallEdges}
253
+ * resolves cross-file via the import graph. (ama-bnj) */
254
+ function pythonCalls(root, rel) {
255
+ const byName = new Map(); // simple name → id, or null when ambiguous
256
+ for (const fn of eachFunction(root)) {
257
+ const qn = qualifiedNameOf(fn);
258
+ if (!qn)
259
+ continue;
260
+ const simple = qn.slice(qn.lastIndexOf(".") + 1);
261
+ byName.set(simple, byName.has(simple) ? null : symbolId({ file: rel, qualifiedName: qn }));
262
+ }
263
+ const edges = [];
264
+ const seen = new Set();
265
+ for (const call of eachCall(root)) {
266
+ const enc = enclosingFunction(call);
267
+ const name = calleeName(call);
268
+ if (!enc || !name)
269
+ continue;
270
+ const callerQn = qualifiedNameOf(enc);
271
+ if (!callerQn)
272
+ continue;
273
+ const from = symbolId({ file: rel, qualifiedName: callerQn });
274
+ // TestClient-style route call: `client.<verb>("/path")` — link the test to the route it
275
+ // exercises (resolved cross-file by deriveRouteTestEdges via the route's path). (ama-f2c)
276
+ if (ROUTE_METHOD_ATTRS.has(name.toLowerCase())) {
277
+ const reqPath = firstStringArg(call.childForFieldName("arguments"));
278
+ if (reqPath?.startsWith("/")) {
279
+ const key = `t ${from} ${name} ${reqPath}`;
280
+ if (!seen.has(key)) {
281
+ seen.add(key);
282
+ edges.push({
283
+ from,
284
+ to: `${ROUTE_REF_PREFIX}${name.toUpperCase()} ${reqPath}`,
285
+ kind: "References",
286
+ provenance: "call-ref",
287
+ });
288
+ }
289
+ continue;
290
+ }
291
+ }
292
+ const local = byName.get(name);
293
+ if (local === null)
294
+ continue; // a name defined more than once locally — don't guess
295
+ if (local) {
296
+ // resolved within this file (slice 1)
297
+ const key = `c ${from} ${local}`;
298
+ if (from === local || seen.has(key))
299
+ continue; // skip self-recursion + duplicate sites
300
+ seen.add(key);
301
+ edges.push({ from, to: local, kind: "Calls", provenance: "heuristic" });
302
+ }
303
+ else if (!PYTHON_BUILTINS.has(name)) {
304
+ // not local — a cross-file candidate deriveCallEdges resolves via the import graph (slice 2)
305
+ const key = `r ${from} ${name}`;
306
+ if (seen.has(key))
307
+ continue;
308
+ seen.add(key);
309
+ edges.push({
310
+ from,
311
+ to: `${CALL_REF_PREFIX}${name}`,
312
+ kind: "References",
313
+ provenance: "call-ref",
314
+ });
315
+ }
316
+ }
317
+ return { nodes: [], edges };
318
+ }
144
319
  /**
145
320
  * Baseline (syntactic) spec for Python. Functions and classes are the symbols
146
321
  * worth a node; methods are `function_definition` too (Python doesn't
@@ -157,6 +332,7 @@ export const pythonSpec = {
157
332
  class_definition: { kind: "Class" },
158
333
  },
159
334
  resolveImports: pythonImports,
160
- collectRoutes: pythonRoutes,
335
+ collectRoutes: pythonRoutesAll,
336
+ collectCalls: pythonCalls,
161
337
  };
162
338
  //# sourceMappingURL=python.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"python.js","sourceRoot":"","sources":["../../../src/analyzers/baseline/python.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"python.js","sourceRoot":"","sources":["../../../src/analyzers/baseline/python.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EACL,eAAe,EAGf,gBAAgB,EAChB,QAAQ,GACT,MAAM,sBAAsB,CAAC;AAG9B;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,IAAuB,EAAE,WAAmB;IACjE,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB;QAAE,OAAO,SAAS,CAAC;IAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC;IAC9E,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC,CAAC,oDAAoD;IAC9E,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;IAC9E,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,gFAAgF;IAChF,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;QAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,IAAI,IAAI,KAAK,GAAG;QAAE,IAAI,GAAG,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,CAAC,QAAkB,EAAY,EAAE;QAClD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACzC,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,MAAyB,EAAY,EAAE,CACrD,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;IAC5E,IAAI,MAAM;QAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,qCAAqC;IACtF,gFAAgF;IAChF,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,KAAK,KAAK,QAAQ;YAAE,SAAS;QACjC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACpE,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACzC,MAAM,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;YACrE,IAAI,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;6DAC6D;AAC7D,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AAEjG;+EAC+E;AAC/E,SAAS,kBAAkB,CAAC,CAAS;IACnC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACpF,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACzC,CAAC;AAED,2EAA2E;AAC3E,SAAS,cAAc,CAAC,IAA8B;IACpD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,EAAE,IAAI,CAAC;IACjG,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;8CAE8C;AAC9C,SAAS,kBAAkB,CAAC,GAAsB;IAChD,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAC9D,MAAM,EAAE,GAAG,IAAI,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACxD,MAAM,IAAI,GAAG,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IACpE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACnF,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;IAChE,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,OAAO,EAAE,MAAM,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;AAClG,CAAC;AAED;gGACgG;AAChG,SAAS,eAAe,CAAC,EAAqB;IAC5C,MAAM,GAAG,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;IAC/C,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QACxC,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,IAAI,CAAC,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YACtE,MAAM,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;YAC5C,IAAI,CAAC;gBAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,QAAQ,CAAC,CAAC,aAAa,CAAC,IAAuB;IAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAsB;QAAE,MAAM,IAAI,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa;QAAE,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;kGACkG;AAClG,SAAS,YAAY,CACnB,IAAuB,EACvB,GAAW;IAEX,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,KAAK,MAAM,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,EAAE,EAAE,IAAI,KAAK,qBAAqB;YAAE,SAAS;QACjD,MAAM,OAAO,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC;YACnC,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;gBAAE,SAAS;YACvC,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,OAAO;gBACb,IAAI;gBACJ,IAAI,EAAE,GAAG;gBACT,aAAa,EAAE,IAAI;gBACnB,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,EAAE;aAChF,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,OAAO;gBACb,EAAE,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;gBACnD,IAAI,EAAE,YAAY;gBAClB,UAAU,EAAE,WAAW;aACxB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED,iDAAiD;AACjD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAEtD,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAuB;IACxC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,MAAM,IAAI,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa;QAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;uGAEuG;AACvG,SAAS,eAAe,CACtB,IAAuB,EACvB,GAAW;IAEX,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,EAAE,EAAE,IAAI,KAAK,YAAY,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;YAAE,SAAS;QAC1E,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;QAChE,IAAI,GAAG,KAAK,SAAS;YAAE,SAAS;QAChC,MAAM,IAAI,GAAG,OAAO,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;YAChD,IAAI,EAAE,OAAO;YACb,IAAI;YACJ,IAAI,EAAE,GAAG;YACT,aAAa,EAAE,IAAI;YACnB,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,EAAE;SACpF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAC9B,CAAC;AAED,gGAAgG;AAChG,SAAS,eAAe,CACtB,IAAuB,EACvB,GAAW;IAEX,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1C,OAAO;QACL,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;QAC5C,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;KAC7C,CAAC;AACJ,CAAC;AAED,0FAA0F;AAC1F,SAAS,iBAAiB,CAAC,IAAuB;IAChD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1C,IAAI,CAAC,CAAC,IAAI,KAAK,qBAAqB;YAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,QAAQ,CAAC,CAAC,YAAY,CAAC,IAAuB;IAC5C,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB;QAAE,MAAM,IAAI,CAAC;IACpD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa;QAAE,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,2FAA2F;AAC3F,SAAS,UAAU,CAAC,IAAuB;IACzC,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,EAAE,EAAE,IAAI,KAAK,YAAY;QAAE,OAAO,EAAE,CAAC,IAAI,CAAC;IAC9C,IAAI,EAAE,EAAE,IAAI,KAAK,WAAW;QAAE,OAAO,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC;IAC7E,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;2EAC2E;AAC3E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,YAAY;IACZ,YAAY;IACZ,OAAO;IACP,MAAM;IACN,WAAW;IACX,KAAK;IACL,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,SAAS;IACT,SAAS;IACT,SAAS;IACT,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;CACN,CAAC,CAAC;AAEH;;;;0DAI0D;AAC1D,SAAS,WAAW,CAClB,IAAuB,EACvB,GAAW;IAEX,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC,CAAC,2CAA2C;IAC5F,KAAK,MAAM,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7F,CAAC;IACD,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI;YAAE,SAAS;QAC5B,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9D,wFAAwF;QACxF,0FAA0F;QAC1F,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;YACpE,IAAI,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,KAAK,IAAI,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACd,KAAK,CAAC,IAAI,CAAC;wBACT,IAAI;wBACJ,EAAE,EAAE,GAAG,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,OAAO,EAAE;wBACzD,IAAI,EAAE,YAAY;wBAClB,UAAU,EAAE,UAAU;qBACvB,CAAC,CAAC;gBACL,CAAC;gBACD,SAAS;YACX,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS,CAAC,sDAAsD;QACpF,IAAI,KAAK,EAAE,CAAC;YACV,sCAAsC;YACtC,MAAM,GAAG,GAAG,KAAK,IAAI,IAAI,KAAK,EAAE,CAAC;YACjC,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,wCAAwC;YACvF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;QAC1E,CAAC;aAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,6FAA6F;YAC7F,MAAM,GAAG,GAAG,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI;gBACJ,EAAE,EAAE,GAAG,eAAe,GAAG,IAAI,EAAE;gBAC/B,IAAI,EAAE,YAAY;gBAClB,UAAU,EAAE,UAAU;aACvB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAiB;IACtC,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE;QACP,mBAAmB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;QACzC,gBAAgB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;KACpC;IACD,cAAc,EAAE,aAAa;IAC7B,aAAa,EAAE,eAAe;IAC9B,YAAY,EAAE,WAAW;CAC1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rust.d.ts","sourceRoot":"","sources":["../../../src/analyzers/baseline/rust.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAuBlD;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,EAAE,YAatB,CAAC"}
1
+ {"version":3,"file":"rust.d.ts","sourceRoot":"","sources":["../../../src/analyzers/baseline/rust.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AA2GlD;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,EAAE,YActB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import * as path from "node:path";
2
+ import { symbolId } from "../../graph/index.js";
2
3
  /** Files whose `mod foo;` submodules live in the *same* directory (a crate root
3
4
  * or a `mod.rs`); any other `foo.rs` owns a `foo/` directory for its submodules. */
4
5
  const RUST_DIR_MODULES = new Set(["mod", "lib", "main"]);
@@ -21,6 +22,84 @@ function rustImports(node, importerRel) {
21
22
  const base = baseDir === "." ? name : `${baseDir}/${name}`;
22
23
  return [[`${base}.rs`, `${base}/mod.rs`]];
23
24
  }
25
+ /** actix-web route attribute macros — `#[get("/x")]` — by macro name → HTTP verb. (ama-a2r) */
26
+ const RUST_ROUTE_VERBS = new Map([
27
+ ["get", "GET"],
28
+ ["post", "POST"],
29
+ ["put", "PUT"],
30
+ ["delete", "DELETE"],
31
+ ["patch", "PATCH"],
32
+ ["head", "HEAD"],
33
+ ]);
34
+ function firstOfType(node, type) {
35
+ if (node.type === type)
36
+ return node;
37
+ for (const c of node.namedChildren) {
38
+ const found = firstOfType(c, type);
39
+ if (found)
40
+ return found;
41
+ }
42
+ return undefined;
43
+ }
44
+ /** Normalize an actix route path: `{id}` → `:id`; ensure a leading slash. (ama-a2r) */
45
+ function normalizeRustRoutePath(p) {
46
+ const s = p.replace(/\{([^}]+)\}/g, ":$1");
47
+ return s.startsWith("/") ? s : `/${s}`;
48
+ }
49
+ /** A route `{verb, path}` among the `attribute_item`s immediately preceding `siblings[fnIndex]`
50
+ * (a function_item), or undefined — `#[get("/x")]` → `attribute` (`get` + a string token). */
51
+ function rustRouteFromAttrs(siblings, fnIndex) {
52
+ for (let j = fnIndex - 1; j >= 0 && siblings[j]?.type === "attribute_item"; j--) {
53
+ const attr = siblings[j]?.namedChildren.find((c) => c.type === "attribute");
54
+ if (!attr)
55
+ continue;
56
+ const verb = RUST_ROUTE_VERBS.get(firstOfType(attr, "identifier")?.text ?? "");
57
+ const str = firstOfType(attr, "string_literal");
58
+ if (verb && str)
59
+ return { verb, path: str.text.replace(/^"|"$/g, "") };
60
+ }
61
+ return undefined;
62
+ }
63
+ /** Detect actix-web routes: a `#[get("/x")]`-style attribute on a `fn` becomes a `METHOD /x`
64
+ * Route referencing the function. Recurses so functions inside `mod` blocks are covered. (ama-a2r) */
65
+ function rustRoutes(root, rel) {
66
+ const nodes = [];
67
+ const edges = [];
68
+ const visit = (node) => {
69
+ const kids = node.namedChildren;
70
+ for (let i = 0; i < kids.length; i++) {
71
+ const k = kids[i];
72
+ if (!k)
73
+ continue;
74
+ if (k.type === "function_item") {
75
+ const route = rustRouteFromAttrs(kids, i);
76
+ const fnName = k.childForFieldName("name")?.text;
77
+ if (route && fnName) {
78
+ const name = `${route.verb} ${normalizeRustRoutePath(route.path)}`;
79
+ const routeId = symbolId({ file: rel, qualifiedName: name });
80
+ nodes.push({
81
+ id: routeId,
82
+ kind: "Route",
83
+ name,
84
+ file: rel,
85
+ qualifiedName: name,
86
+ tier: "baseline",
87
+ range: { startLine: k.startPosition.row + 1, endLine: k.endPosition.row + 1 },
88
+ });
89
+ edges.push({
90
+ from: routeId,
91
+ to: symbolId({ file: rel, qualifiedName: fnName }),
92
+ kind: "References",
93
+ provenance: "heuristic",
94
+ });
95
+ }
96
+ }
97
+ visit(k);
98
+ }
99
+ };
100
+ visit(root);
101
+ return { nodes, edges };
102
+ }
24
103
  /**
25
104
  * Baseline (syntactic) spec for Rust. Rust gives each kind its own node type, so
26
105
  * the plain map suffices: struct → Class, enum → Enum, trait → Interface, fn →
@@ -41,5 +120,6 @@ export const rustSpec = {
41
120
  trait_item: { kind: "Interface" },
42
121
  },
43
122
  resolveImports: rustImports,
123
+ collectRoutes: rustRoutes,
44
124
  };
45
125
  //# sourceMappingURL=rust.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rust.js","sourceRoot":"","sources":["../../../src/analyzers/baseline/rust.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAIlC;qFACqF;AACrF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAEzD;;;;mFAImF;AACnF,SAAS,WAAW,CAAC,IAAuB,EAAE,WAAmB;IAC/D,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IAC/C,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC;QAAE,OAAO,EAAE,CAAC,CAAC,gBAAgB;IAC9F,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;IAClD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9E,MAAM,IAAI,GAAG,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC;IAC3D,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAiB;IACpC,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,OAAO,EAAE,MAAM;IACf,OAAO,EAAE;QACP,aAAa,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;QACnC,8EAA8E;QAC9E,uBAAuB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;QAC7C,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;QAC9B,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QAC3B,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;KAClC;IACD,cAAc,EAAE,WAAW;CAC5B,CAAC"}
1
+ {"version":3,"file":"rust.js","sourceRoot":"","sources":["../../../src/analyzers/baseline/rust.ts"],"names":[],"mappings":"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"}
@@ -22,9 +22,9 @@ export declare const graphNodeSchema: z.ZodObject<{
22
22
  kind: "File" | "Module" | "Class" | "Interface" | "Enum" | "TypeAlias" | "Function" | "Method" | "Property" | "Variable" | "Route" | "Component";
23
23
  name: string;
24
24
  id: string;
25
+ tier: "deep" | "baseline";
25
26
  file: string;
26
27
  qualifiedName: string;
27
- tier: "deep" | "baseline";
28
28
  range?: {
29
29
  startLine: number;
30
30
  endLine: number;
@@ -33,9 +33,9 @@ export declare const graphNodeSchema: z.ZodObject<{
33
33
  kind: "File" | "Module" | "Class" | "Interface" | "Enum" | "TypeAlias" | "Function" | "Method" | "Property" | "Variable" | "Route" | "Component";
34
34
  name: string;
35
35
  id: string;
36
+ tier: "deep" | "baseline";
36
37
  file: string;
37
38
  qualifiedName: string;
38
- tier: "deep" | "baseline";
39
39
  range?: {
40
40
  startLine: number;
41
41
  endLine: number;
@@ -75,11 +75,11 @@ export declare const graphEdgeSchema: z.ZodObject<{
75
75
  line: number;
76
76
  column: number;
77
77
  } | undefined;
78
- provenance?: "resolved" | "heuristic" | "dispatch" | undefined;
79
78
  sites?: {
80
79
  line: number;
81
80
  column: number;
82
81
  }[] | undefined;
82
+ provenance?: "resolved" | "heuristic" | "dispatch" | undefined;
83
83
  }, {
84
84
  kind: "Defines" | "Calls" | "Instantiates" | "Overrides" | "Inherits" | "Implements" | "UsesType" | "Returns" | "Imports" | "ImportsType" | "References";
85
85
  from: string;
@@ -88,11 +88,11 @@ export declare const graphEdgeSchema: z.ZodObject<{
88
88
  line: number;
89
89
  column: number;
90
90
  } | undefined;
91
- provenance?: "resolved" | "heuristic" | "dispatch" | undefined;
92
91
  sites?: {
93
92
  line: number;
94
93
  column: number;
95
94
  }[] | undefined;
95
+ provenance?: "resolved" | "heuristic" | "dispatch" | undefined;
96
96
  }>;
97
97
  /** Ama → sidecar: analyze these repo-relative `files` rooted at the absolute `root`.
98
98
  * `id` correlates the matching `result`/`error`. */
@@ -102,15 +102,15 @@ export declare const analyzeRequestSchema: z.ZodObject<{
102
102
  root: z.ZodString;
103
103
  files: z.ZodArray<z.ZodString, "many">;
104
104
  }, "strip", z.ZodTypeAny, {
105
- type: "analyze";
106
105
  id: number;
107
- root: string;
106
+ type: "analyze";
108
107
  files: string[];
108
+ root: string;
109
109
  }, {
110
- type: "analyze";
111
110
  id: number;
112
- root: string;
111
+ type: "analyze";
113
112
  files: string[];
113
+ root: string;
114
114
  }>;
115
115
  /** Sidecar → Ama: the analysis of one request's files. */
116
116
  declare const resultSchema: z.ZodObject<{
@@ -137,9 +137,9 @@ declare const resultSchema: z.ZodObject<{
137
137
  kind: "File" | "Module" | "Class" | "Interface" | "Enum" | "TypeAlias" | "Function" | "Method" | "Property" | "Variable" | "Route" | "Component";
138
138
  name: string;
139
139
  id: string;
140
+ tier: "deep" | "baseline";
140
141
  file: string;
141
142
  qualifiedName: string;
142
- tier: "deep" | "baseline";
143
143
  range?: {
144
144
  startLine: number;
145
145
  endLine: number;
@@ -148,9 +148,9 @@ declare const resultSchema: z.ZodObject<{
148
148
  kind: "File" | "Module" | "Class" | "Interface" | "Enum" | "TypeAlias" | "Function" | "Method" | "Property" | "Variable" | "Route" | "Component";
149
149
  name: string;
150
150
  id: string;
151
+ tier: "deep" | "baseline";
151
152
  file: string;
152
153
  qualifiedName: string;
153
- tier: "deep" | "baseline";
154
154
  range?: {
155
155
  startLine: number;
156
156
  endLine: number;
@@ -189,11 +189,11 @@ declare const resultSchema: z.ZodObject<{
189
189
  line: number;
190
190
  column: number;
191
191
  } | undefined;
192
- provenance?: "resolved" | "heuristic" | "dispatch" | undefined;
193
192
  sites?: {
194
193
  line: number;
195
194
  column: number;
196
195
  }[] | undefined;
196
+ provenance?: "resolved" | "heuristic" | "dispatch" | undefined;
197
197
  }, {
198
198
  kind: "Defines" | "Calls" | "Instantiates" | "Overrides" | "Inherits" | "Implements" | "UsesType" | "Returns" | "Imports" | "ImportsType" | "References";
199
199
  from: string;
@@ -202,11 +202,11 @@ declare const resultSchema: z.ZodObject<{
202
202
  line: number;
203
203
  column: number;
204
204
  } | undefined;
205
- provenance?: "resolved" | "heuristic" | "dispatch" | undefined;
206
205
  sites?: {
207
206
  line: number;
208
207
  column: number;
209
208
  }[] | undefined;
209
+ provenance?: "resolved" | "heuristic" | "dispatch" | undefined;
210
210
  }>, "many">;
211
211
  resolution: z.ZodOptional<z.ZodObject<{
212
212
  callsTotal: z.ZodNumber;
@@ -222,13 +222,14 @@ declare const resultSchema: z.ZodObject<{
222
222
  unresolved: Record<string, number>;
223
223
  }>>;
224
224
  }, "strip", z.ZodTypeAny, {
225
+ id: number;
225
226
  nodes: {
226
227
  kind: "File" | "Module" | "Class" | "Interface" | "Enum" | "TypeAlias" | "Function" | "Method" | "Property" | "Variable" | "Route" | "Component";
227
228
  name: string;
228
229
  id: string;
230
+ tier: "deep" | "baseline";
229
231
  file: string;
230
232
  qualifiedName: string;
231
- tier: "deep" | "baseline";
232
233
  range?: {
233
234
  startLine: number;
234
235
  endLine: number;
@@ -242,27 +243,27 @@ declare const resultSchema: z.ZodObject<{
242
243
  line: number;
243
244
  column: number;
244
245
  } | undefined;
245
- provenance?: "resolved" | "heuristic" | "dispatch" | undefined;
246
246
  sites?: {
247
247
  line: number;
248
248
  column: number;
249
249
  }[] | undefined;
250
+ provenance?: "resolved" | "heuristic" | "dispatch" | undefined;
250
251
  }[];
251
252
  type: "result";
252
- id: number;
253
253
  resolution?: {
254
254
  callsTotal: number;
255
255
  callsResolved: number;
256
256
  unresolved: Record<string, number>;
257
257
  } | undefined;
258
258
  }, {
259
+ id: number;
259
260
  nodes: {
260
261
  kind: "File" | "Module" | "Class" | "Interface" | "Enum" | "TypeAlias" | "Function" | "Method" | "Property" | "Variable" | "Route" | "Component";
261
262
  name: string;
262
263
  id: string;
264
+ tier: "deep" | "baseline";
263
265
  file: string;
264
266
  qualifiedName: string;
265
- tier: "deep" | "baseline";
266
267
  range?: {
267
268
  startLine: number;
268
269
  endLine: number;
@@ -276,14 +277,13 @@ declare const resultSchema: z.ZodObject<{
276
277
  line: number;
277
278
  column: number;
278
279
  } | undefined;
279
- provenance?: "resolved" | "heuristic" | "dispatch" | undefined;
280
280
  sites?: {
281
281
  line: number;
282
282
  column: number;
283
283
  }[] | undefined;
284
+ provenance?: "resolved" | "heuristic" | "dispatch" | undefined;
284
285
  }[];
285
286
  type: "result";
286
- id: number;
287
287
  resolution?: {
288
288
  callsTotal: number;
289
289
  callsResolved: number;
@@ -327,9 +327,9 @@ export declare const sidecarMessageSchema: z.ZodDiscriminatedUnion<"type", [z.Zo
327
327
  kind: "File" | "Module" | "Class" | "Interface" | "Enum" | "TypeAlias" | "Function" | "Method" | "Property" | "Variable" | "Route" | "Component";
328
328
  name: string;
329
329
  id: string;
330
+ tier: "deep" | "baseline";
330
331
  file: string;
331
332
  qualifiedName: string;
332
- tier: "deep" | "baseline";
333
333
  range?: {
334
334
  startLine: number;
335
335
  endLine: number;
@@ -338,9 +338,9 @@ export declare const sidecarMessageSchema: z.ZodDiscriminatedUnion<"type", [z.Zo
338
338
  kind: "File" | "Module" | "Class" | "Interface" | "Enum" | "TypeAlias" | "Function" | "Method" | "Property" | "Variable" | "Route" | "Component";
339
339
  name: string;
340
340
  id: string;
341
+ tier: "deep" | "baseline";
341
342
  file: string;
342
343
  qualifiedName: string;
343
- tier: "deep" | "baseline";
344
344
  range?: {
345
345
  startLine: number;
346
346
  endLine: number;
@@ -379,11 +379,11 @@ export declare const sidecarMessageSchema: z.ZodDiscriminatedUnion<"type", [z.Zo
379
379
  line: number;
380
380
  column: number;
381
381
  } | undefined;
382
- provenance?: "resolved" | "heuristic" | "dispatch" | undefined;
383
382
  sites?: {
384
383
  line: number;
385
384
  column: number;
386
385
  }[] | undefined;
386
+ provenance?: "resolved" | "heuristic" | "dispatch" | undefined;
387
387
  }, {
388
388
  kind: "Defines" | "Calls" | "Instantiates" | "Overrides" | "Inherits" | "Implements" | "UsesType" | "Returns" | "Imports" | "ImportsType" | "References";
389
389
  from: string;
@@ -392,11 +392,11 @@ export declare const sidecarMessageSchema: z.ZodDiscriminatedUnion<"type", [z.Zo
392
392
  line: number;
393
393
  column: number;
394
394
  } | undefined;
395
- provenance?: "resolved" | "heuristic" | "dispatch" | undefined;
396
395
  sites?: {
397
396
  line: number;
398
397
  column: number;
399
398
  }[] | undefined;
399
+ provenance?: "resolved" | "heuristic" | "dispatch" | undefined;
400
400
  }>, "many">;
401
401
  resolution: z.ZodOptional<z.ZodObject<{
402
402
  callsTotal: z.ZodNumber;
@@ -412,13 +412,14 @@ export declare const sidecarMessageSchema: z.ZodDiscriminatedUnion<"type", [z.Zo
412
412
  unresolved: Record<string, number>;
413
413
  }>>;
414
414
  }, "strip", z.ZodTypeAny, {
415
+ id: number;
415
416
  nodes: {
416
417
  kind: "File" | "Module" | "Class" | "Interface" | "Enum" | "TypeAlias" | "Function" | "Method" | "Property" | "Variable" | "Route" | "Component";
417
418
  name: string;
418
419
  id: string;
420
+ tier: "deep" | "baseline";
419
421
  file: string;
420
422
  qualifiedName: string;
421
- tier: "deep" | "baseline";
422
423
  range?: {
423
424
  startLine: number;
424
425
  endLine: number;
@@ -432,27 +433,27 @@ export declare const sidecarMessageSchema: z.ZodDiscriminatedUnion<"type", [z.Zo
432
433
  line: number;
433
434
  column: number;
434
435
  } | undefined;
435
- provenance?: "resolved" | "heuristic" | "dispatch" | undefined;
436
436
  sites?: {
437
437
  line: number;
438
438
  column: number;
439
439
  }[] | undefined;
440
+ provenance?: "resolved" | "heuristic" | "dispatch" | undefined;
440
441
  }[];
441
442
  type: "result";
442
- id: number;
443
443
  resolution?: {
444
444
  callsTotal: number;
445
445
  callsResolved: number;
446
446
  unresolved: Record<string, number>;
447
447
  } | undefined;
448
448
  }, {
449
+ id: number;
449
450
  nodes: {
450
451
  kind: "File" | "Module" | "Class" | "Interface" | "Enum" | "TypeAlias" | "Function" | "Method" | "Property" | "Variable" | "Route" | "Component";
451
452
  name: string;
452
453
  id: string;
454
+ tier: "deep" | "baseline";
453
455
  file: string;
454
456
  qualifiedName: string;
455
- tier: "deep" | "baseline";
456
457
  range?: {
457
458
  startLine: number;
458
459
  endLine: number;
@@ -466,14 +467,13 @@ export declare const sidecarMessageSchema: z.ZodDiscriminatedUnion<"type", [z.Zo
466
467
  line: number;
467
468
  column: number;
468
469
  } | undefined;
469
- provenance?: "resolved" | "heuristic" | "dispatch" | undefined;
470
470
  sites?: {
471
471
  line: number;
472
472
  column: number;
473
473
  }[] | undefined;
474
+ provenance?: "resolved" | "heuristic" | "dispatch" | undefined;
474
475
  }[];
475
476
  type: "result";
476
- id: number;
477
477
  resolution?: {
478
478
  callsTotal: number;
479
479
  callsResolved: number;
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/typescript/analyzer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAmB,MAAM,aAAa,CAAC;AAkB7E;;;;;;;;;;;;;;GAcG;AACH,qBAAa,kBAAmB,YAAW,QAAQ;IACjD,QAAQ,CAAC,QAAQ,gBAAgB;IACjC,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAU;IAChC,QAAQ,CAAC,UAAU,2CAA4C;IAE/D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,cAAc;IA+FtD,OAAO,CAAC,QAAQ;IAyBhB,OAAO,CAAC,KAAK;IAqHb;;;oBAGgB;IAChB,OAAO,CAAC,YAAY;IAoGpB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,oBAAoB;IAwE5B,oFAAoF;IACpF,OAAO,CAAC,eAAe;IAqBvB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAkDtB;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAkEzB;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IAoOrB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAsCzB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,uBAAuB;IA6D/B;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IA8FzB;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IA0ErB;;;;OAIG;IACH,OAAO,CAAC,aAAa;CA0BtB"}
1
+ {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/typescript/analyzer.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAmB,MAAM,aAAa,CAAC;AAkB7E;;;;;;;;;;;;;;GAcG;AACH,qBAAa,kBAAmB,YAAW,QAAQ;IACjD,QAAQ,CAAC,QAAQ,gBAAgB;IACjC,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAU;IAChC,QAAQ,CAAC,UAAU,2CAA4C;IAE/D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,cAAc;IA+FtD,OAAO,CAAC,QAAQ;IAyBhB,OAAO,CAAC,KAAK;IAqHb;;;oBAGgB;IAChB,OAAO,CAAC,YAAY;IAoGpB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,oBAAoB;IAyE5B,oFAAoF;IACpF,OAAO,CAAC,eAAe;IAqBvB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAkDtB;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAkEzB;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IAoOrB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAsCzB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,uBAAuB;IA6D/B;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IA8FzB;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IA0ErB;;;;OAIG;IACH,OAAO,CAAC,aAAa;CA0BtB"}