@mka-rainmaker/ama 0.2.0 → 0.3.1
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/README.md +81 -58
- package/dist/analyzers/baseline/java.d.ts.map +1 -1
- package/dist/analyzers/baseline/java.js +110 -1
- package/dist/analyzers/baseline/java.js.map +1 -1
- package/dist/analyzers/baseline/python.d.ts.map +1 -1
- package/dist/analyzers/baseline/python.js +19 -1
- package/dist/analyzers/baseline/python.js.map +1 -1
- package/dist/analyzers/sidecar/protocol.d.ts +6 -6
- package/dist/cli/commands/upgrade.d.ts +27 -0
- package/dist/cli/commands/upgrade.d.ts.map +1 -0
- package/dist/cli/commands/upgrade.js +136 -0
- package/dist/cli/commands/upgrade.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/graph/index.d.ts +1 -0
- package/dist/graph/index.d.ts.map +1 -1
- package/dist/graph/index.js +1 -0
- package/dist/graph/index.js.map +1 -1
- package/dist/graph/python-calls.d.ts +1 -1
- package/dist/graph/python-calls.d.ts.map +1 -1
- package/dist/graph/python-calls.js +0 -0
- package/dist/graph/python-calls.js.map +1 -1
- package/dist/graph/route-tests.d.ts +15 -0
- package/dist/graph/route-tests.d.ts.map +1 -0
- package/dist/graph/route-tests.js +67 -0
- package/dist/graph/route-tests.js.map +1 -0
- package/dist/graph/types.d.ts +1 -1
- package/dist/graph/types.d.ts.map +1 -1
- package/dist/indexer/ignore.d.ts.map +1 -1
- package/dist/indexer/ignore.js +13 -1
- package/dist/indexer/ignore.js.map +1 -1
- package/dist/indexer/indexer.d.ts.map +1 -1
- package/dist/indexer/indexer.js +12 -4
- package/dist/indexer/indexer.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +5 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/session.d.ts +18 -1
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js +21 -1
- package/dist/mcp/session.js.map +1 -1
- package/dist/query/service.d.ts.map +1 -1
- package/dist/query/service.js +1 -0
- package/dist/query/service.js.map +1 -1
- package/package.json +3 -6
package/README.md
CHANGED
|
@@ -1,38 +1,85 @@
|
|
|
1
1
|
# Ama 🐶
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<p align="center">
|
|
4
|
+
<a href="https://www.npmjs.com/package/@mka-rainmaker/ama"><img alt="npm" src="https://img.shields.io/npm/v/@mka-rainmaker/ama?label=npm&color=007ec6"></a>
|
|
5
|
+
<a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-e0a100"></a>
|
|
6
|
+
<img alt="Node.js 24+ or bundled" src="https://img.shields.io/badge/Node.js-24%2B%20or%20bundled-44883e">
|
|
7
|
+
</p>
|
|
8
|
+
<p align="center">
|
|
9
|
+
<img alt="macOS supported" src="https://img.shields.io/badge/macOS-supported-4c8eda">
|
|
10
|
+
<img alt="Linux supported" src="https://img.shields.io/badge/Linux-supported-4c8eda">
|
|
11
|
+
<img alt="Windows supported" src="https://img.shields.io/badge/Windows-supported-4c8eda">
|
|
12
|
+
</p>
|
|
13
|
+
<p align="center">
|
|
14
|
+
<img alt="Claude Code supported" src="https://img.shields.io/badge/Claude_Code-supported-8a3ffc">
|
|
15
|
+
<img alt="Cursor supported" src="https://img.shields.io/badge/Cursor-supported-8a3ffc">
|
|
16
|
+
<img alt="Windsurf supported" src="https://img.shields.io/badge/Windsurf-supported-8a3ffc">
|
|
17
|
+
<img alt="Codex supported" src="https://img.shields.io/badge/Codex-supported-8a3ffc">
|
|
18
|
+
<img alt="any MCP client" src="https://img.shields.io/badge/+_any_MCP_client-via_config-9f9f9f">
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
**Ama** is a local-first **code-intelligence server** that speaks the [Model Context Protocol (MCP)](https://modelcontextprotocol.io). It parses a codebase into a queryable knowledge graph of symbols and their relationships, then hands that graph to AI coding agents — so an agent answers *"who calls this?"*, *"what breaks if I change this?"*, and *"which tests cover this route?"* in a **single tool call** instead of dozens of file reads.
|
|
4
22
|
|
|
5
23
|
Named after a puppy: small, eager, and a little smarter every day.
|
|
6
24
|
|
|
7
|
-
> Status: **0.
|
|
25
|
+
> Status: **0.3** — deep TypeScript analysis; a baseline call graph for Python (incl. FastAPI route→handler→test impact); framework-route detection across TypeScript, Python, Go, PHP, Java, and Rust; syntactic breadth for 13 more languages; an embeddable library API; 27 MCP tools; an `ama` CLI (with self-update via `ama upgrade`); persistent, auto-syncing incremental indexing; and **self-contained, no-Node install bundles** for macOS/Linux/Windows — all able to index Ama's own source cleanly as the built-in regression test.
|
|
26
|
+
|
|
27
|
+
**1. Install Ama** — a self-contained bundle (no Node needed) or via npm (Node 24+):
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# macOS / Linux — self-contained, no Node required
|
|
31
|
+
curl -fsSL https://raw.githubusercontent.com/mka-rainmaker/ama/main/install.sh | sh
|
|
32
|
+
|
|
33
|
+
# Windows (PowerShell)
|
|
34
|
+
irm https://raw.githubusercontent.com/mka-rainmaker/ama/main/install.ps1 | iex
|
|
35
|
+
|
|
36
|
+
# …or, if you already have Node 24+
|
|
37
|
+
npm install -g @mka-rainmaker/ama
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**2. Wire it into your agent:**
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
ama install # auto-configures Claude Code / Cursor / Windsurf / Codex
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**3. Ask your agent structural questions** — *"who calls `createServer`?"*, *"what breaks if I change `AmaSession`?"* It runs `index_repository` once, then queries the graph; Ama re-indexes automatically as you edit.
|
|
47
|
+
|
|
48
|
+
(No install at all? `npx -y @mka-rainmaker/ama mcp` works as the MCP command — see [Configure your coding agent](#configure-your-coding-agent).)
|
|
8
49
|
|
|
9
50
|
## Why Ama
|
|
10
51
|
|
|
11
52
|
Most code-graph tools parse every language the same way: one fast, syntactic pass that sees *shapes* but not *meaning*. Ama takes a different bet — **use each language's real compiler when one exists.**
|
|
12
53
|
|
|
13
54
|
- **Deep tier — language-specific semantic analysis.** TypeScript via the TypeScript Compiler API today; .NET via Roslyn and Java via its native tooling next. This resolves types, overloads, generics, imports/re-exports, interface dispatch, and cross-file symbol binding that a purely syntactic parser cannot.
|
|
14
|
-
- **Baseline tier — universal syntactic analysis for breadth.** Every other language
|
|
55
|
+
- **Baseline tier — universal syntactic analysis for breadth.** Every other language gets parsed for structure (and, where it pays off, a heuristic call graph), so the whole repo is navigable from day one.
|
|
15
56
|
|
|
16
|
-
Every answer reports **which tier produced it**, so partial coverage never quietly masquerades as complete.
|
|
17
|
-
|
|
18
|
-
And because it's built for agents:
|
|
57
|
+
Every answer reports **which tier produced it**, so partial coverage never quietly masquerades as complete. And because it's built for agents:
|
|
19
58
|
|
|
20
59
|
- **100% local.** No external APIs, no API keys, no telemetry. Your code never leaves your machine.
|
|
21
|
-
- **Cheaper and faster.** Fewer tool calls and fewer tokens per question
|
|
60
|
+
- **Cheaper and faster.** Fewer tool calls and fewer tokens per question — one graph query replaces a pile of file reads.
|
|
22
61
|
|
|
23
|
-
##
|
|
62
|
+
## Benchmarks
|
|
24
63
|
|
|
25
|
-
|
|
64
|
+
On Ama's own repo (5 representative questions): **~99% fewer tokens and ~96% fewer tool calls** to *obtain* an answer than the grep-then-read an agent falls back to without a graph — one focused, structured result instead of pulling whole files into context. That headline is a **ceiling** (the baseline reads every grep-matching file in full); [`docs/benchmarks`](docs/benchmarks/README.md) has the methodology and honest caveats, and `node scripts/benchmark.mjs` reproduces it.
|
|
26
65
|
|
|
27
|
-
|
|
66
|
+
## How auto-sync works
|
|
28
67
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
68
|
+
Ama keeps the graph current while connected, so you never run a manual sync:
|
|
69
|
+
|
|
70
|
+
- A native **file watcher** debounces bursts of edits, then re-indexes each changed file **in place** (no full rebuild).
|
|
71
|
+
- On reconnect, Ama **reconciles** anything that changed while it was away (size/mtime + content-hash diff).
|
|
72
|
+
- `index_status()` reports what's indexed, per-language coverage + tier, and how many edits are pending.
|
|
32
73
|
|
|
33
|
-
|
|
74
|
+
## Framework-aware routes
|
|
34
75
|
|
|
35
|
-
|
|
76
|
+
Ama maps HTTP routes to their handlers across stacks, so *"who handles `POST /reports`?"* is one query:
|
|
77
|
+
|
|
78
|
+
- **TypeScript** — Express, NestJS, Fastify, Hapi, Koa, Hono, tRPC, GraphQL, plus filename routers (Next.js Pages & App, Nuxt, Astro, SvelteKit).
|
|
79
|
+
- **Python** — Flask, FastAPI, Django (`urls.py`); FastAPI `TestClient` calls link **test → route → handler**, so `impact_analysis` / `affected` reach route tests.
|
|
80
|
+
- **Go** (Gin/chi), **PHP** (Laravel), **Java** (Spring `@GetMapping`), **Rust** (actix attribute macros).
|
|
81
|
+
|
|
82
|
+
## Configure your coding agent
|
|
36
83
|
|
|
37
84
|
**Fastest — let Ama wire itself in:**
|
|
38
85
|
|
|
@@ -76,33 +123,38 @@ claude mcp add ama -- ama mcp
|
|
|
76
123
|
|
|
77
124
|
### Fewer tools, lower token cost
|
|
78
125
|
|
|
79
|
-
Ama exposes 27 tools by default. To trade that for a small high-signal set, set
|
|
80
|
-
`AMA_MCP_TOOLS` on the server — `minimal` (just `explore` + indexing), or a comma-separated
|
|
81
|
-
list of tool names (the indexing tools are always included):
|
|
126
|
+
Ama exposes 27 tools by default. To trade that for a small high-signal set, set `AMA_MCP_TOOLS` on the server — `minimal` (just `explore` + indexing), or a comma-separated list of tool names (the indexing tools are always included):
|
|
82
127
|
|
|
83
128
|
```json
|
|
84
129
|
{ "mcpServers": { "ama": { "command": "ama", "args": ["mcp"], "env": { "AMA_MCP_TOOLS": "minimal" } } } }
|
|
85
130
|
```
|
|
86
131
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
Once connected, point Ama at a repo and start asking graph questions:
|
|
132
|
+
## MCP tools
|
|
90
133
|
|
|
91
|
-
|
|
92
|
-
|
|
134
|
+
| Tool | What it does |
|
|
135
|
+
|---|---|
|
|
136
|
+
| `index_repository(path)` | Build the graph for a directory or project. Run first. |
|
|
137
|
+
| `index_status()` | What's indexed: node/edge counts, per-language coverage + tier, pending edits. |
|
|
138
|
+
| `search_symbol(query)` / `search_code(query)` | Find symbols by name (add `exact: true` for a precise dotted match), or search snippet text. |
|
|
139
|
+
| `find_callers` / `find_callees` | Who calls a function/method, and what it calls. |
|
|
140
|
+
| `find_referrers` / `find_imports` / `find_importers` | Where a symbol is used / what a file imports / who imports it. |
|
|
141
|
+
| `impact_analysis(symbol)` | Transitive blast radius for change/test selection. |
|
|
142
|
+
| `explore(question)` | Relevant symbols, a relationship map, and blast radius in one call. |
|
|
143
|
+
| `get_code_snippet(symbol)` / `file_skeleton(file)` | A symbol's source, or a file's symbol outline. |
|
|
93
144
|
|
|
94
|
-
|
|
145
|
+
…and more (overrides, interfaces, type users, routes → handlers, circular imports). Call `get_graph_schema()` for the full node/edge model, or `ama --help` for the CLI.
|
|
95
146
|
|
|
96
|
-
|
|
147
|
+
## CLI
|
|
97
148
|
|
|
98
149
|
The same package ships an `ama` CLI mirroring the query surface, for one-shot use and scripting (e.g. `git diff --name-only | ama affected`):
|
|
99
150
|
|
|
100
151
|
```bash
|
|
101
152
|
ama --help # list commands
|
|
102
153
|
ama mcp # run the MCP server over stdio (what coding agents spawn)
|
|
154
|
+
ama upgrade # update Ama in place (npm or bundle); --check to see the latest release
|
|
103
155
|
```
|
|
104
156
|
|
|
105
|
-
|
|
157
|
+
## Programmatic API
|
|
106
158
|
|
|
107
159
|
Embed Ama as a library — index a repo and query its graph from your own code (the same surface the MCP server and CLI use):
|
|
108
160
|
|
|
@@ -118,47 +170,18 @@ ama.close(); // release resources when done
|
|
|
118
170
|
|
|
119
171
|
`index(root)` returns a transport-free `AmaSession` (aliased `Ama`) with the full query surface; `open(root)` reuses a persisted index. See [`src/api.ts`](src/api.ts) for the exported types.
|
|
120
172
|
|
|
121
|
-
## What's in 0.1
|
|
122
|
-
|
|
123
|
-
- **Deep TypeScript analysis** via the TypeScript Compiler API — types, overloads, generics, imports/re-exports, inheritance, interface dispatch, cross-file binding, and call graphs.
|
|
124
|
-
- **Baseline breadth** for 13 more languages via tree-sitter: C, C++, C#, Go, Java, JavaScript, Kotlin, PHP, Python, Rust, Swift, and Vue/Svelte single-file components.
|
|
125
|
-
- **27 MCP tools** — search, call graph, references, type usage, inheritance/overrides, imports/importers, routes → handlers, code snippets, plus higher-order `explore`, `impact_analysis`, and `search_code` — each tagging the tier that produced it.
|
|
126
|
-
- **Persistent indexing** (SQLite + full-text search) with **incremental re-indexing**: edits are picked up automatically while connected.
|
|
127
|
-
- **Cross-project queries** — index several repos in one session and target any of them by path.
|
|
128
|
-
- **An `ama` CLI** for one-shot queries and scripting.
|
|
129
|
-
|
|
130
|
-
## Next
|
|
131
|
-
|
|
132
|
-
- **Deep-tier .NET (Roslyn) and Java analyzers** behind the sidecar protocol (the protocol + harness ship in 0.1; the analyzers need their language toolchains).
|
|
133
|
-
- More baseline languages and richer framework awareness.
|
|
134
|
-
|
|
135
173
|
## How it works
|
|
136
174
|
|
|
137
175
|
```
|
|
138
176
|
source files ──▶ analyzer (deep | baseline) ──▶ graph (nodes + edges) ──▶ store ──▶ query ──▶ MCP tools
|
|
139
177
|
```
|
|
140
178
|
|
|
141
|
-
- **Graph model** — language-agnostic `nodes` (File, Module, Class, Interface, Enum, Function, Method, …) and `edges` (Defines, Calls, Inherits, Implements, UsesType, Imports, References, …). Each symbol gets a stable, location-independent id.
|
|
179
|
+
- **Graph model** — language-agnostic `nodes` (File, Module, Class, Interface, Enum, Function, Method, Route, …) and `edges` (Defines, Calls, Inherits, Implements, UsesType, Imports, References, …). Each symbol gets a stable, location-independent id.
|
|
142
180
|
- **Analyzers** — pluggable per language, each declaring its tier (`deep` or `baseline`). The TypeScript deep analyzer is the reference implementation.
|
|
143
|
-
- **Store** — in-memory, or SQLite with full-text search for persistence.
|
|
181
|
+
- **Store** — in-memory, or SQLite with full-text search (FTS5) for persistence.
|
|
144
182
|
- **Query service** — search, call-graph traversal, code snippets, and impact analysis.
|
|
145
183
|
- **MCP server** — exposes the query surface over stdio.
|
|
146
184
|
|
|
147
|
-
## MCP tools
|
|
148
|
-
|
|
149
|
-
| Tool | What it does |
|
|
150
|
-
|---|---|
|
|
151
|
-
| `index_repository(path)` | Build the graph for a directory or project. Run first. |
|
|
152
|
-
| `index_status()` | What's indexed: node/edge counts, per-language coverage + tier. |
|
|
153
|
-
| `search_symbol(query)` / `search_code(query)` | Find symbols by name, or search snippet text. |
|
|
154
|
-
| `find_callers` / `find_callees` | Who calls a function/method, and what it calls. |
|
|
155
|
-
| `find_referrers` / `find_imports` / `find_importers` | Where a symbol is used / what a file imports / who imports it. |
|
|
156
|
-
| `impact_analysis(symbol)` | Transitive blast radius for change/test selection. |
|
|
157
|
-
| `explore(question)` | Relevant symbols, a relationship map, and blast radius in one call. |
|
|
158
|
-
| `get_code_snippet(symbol)` / `file_skeleton(file)` | A symbol's source, or a file's symbol outline. |
|
|
159
|
-
|
|
160
|
-
…and more (overrides, interfaces, type users, routes → handlers, circular imports). Call `get_graph_schema()` for the full node/edge model, or `ama --help` for the CLI.
|
|
161
|
-
|
|
162
185
|
## How Ama is built
|
|
163
186
|
|
|
164
187
|
Ama improves itself by **dogfooding**: each change is made by using Ama's own tools on Ama's own source, and is only considered done once Ama can **re-index itself cleanly** — that self-index is the project's built-in regression test. Lessons learned along the way are recorded in [`docs/insights/`](docs/insights/README.md) so they compound over time. See [`docs/SELF_IMPROVEMENT_LOOP.md`](docs/SELF_IMPROVEMENT_LOOP.md) for the workflow and [`AGENTS.md`](AGENTS.md) for contributor and agent conventions.
|
|
@@ -176,7 +199,7 @@ npm test # run the test suite (vitest)
|
|
|
176
199
|
npm run typecheck # type-check without emitting
|
|
177
200
|
```
|
|
178
201
|
|
|
179
|
-
|
|
202
|
+
Issues and the backlog live in [GitHub Issues](https://github.com/mka-rainmaker/ama/issues); see [`CONTRIBUTING.md`](CONTRIBUTING.md) for the workflow.
|
|
180
203
|
|
|
181
204
|
## License
|
|
182
205
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../../src/analyzers/baseline/java.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../../src/analyzers/baseline/java.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAmOlD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,YAatB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { symbolId } from "../../graph/index.js";
|
|
1
|
+
import { CALL_REF_PREFIX, symbolId } from "../../graph/index.js";
|
|
2
2
|
import { ancestorDirs } from "./paths.js";
|
|
3
3
|
/** Try a repo-relative file under every ancestor directory of the importer. A
|
|
4
4
|
* package import gives a *source-root-relative* path (`com/example/Foo.java`)
|
|
@@ -112,6 +112,114 @@ function javaRoutes(root, rel) {
|
|
|
112
112
|
}
|
|
113
113
|
return { nodes, edges };
|
|
114
114
|
}
|
|
115
|
+
/** Symbol-typed Java CST nodes — the ones walkSymbols turns into graph nodes — so a method's
|
|
116
|
+
* qualified name is the dotted chain of these ancestors' names (e.g. `Sample.square`). */
|
|
117
|
+
const JAVA_SYMBOL_TYPES = new Set([
|
|
118
|
+
"class_declaration",
|
|
119
|
+
"interface_declaration",
|
|
120
|
+
"enum_declaration",
|
|
121
|
+
"method_declaration",
|
|
122
|
+
]);
|
|
123
|
+
/** Reproduce walkSymbols' dotted qualified name for `node`: the `name` of each symbol-typed
|
|
124
|
+
* ancestor, outermost first. Undefined if a link is anonymous (can't qualify) — it must match the
|
|
125
|
+
* id of the Method node walkSymbols already emitted, so call edges resolve to it. */
|
|
126
|
+
function javaQualifiedName(node) {
|
|
127
|
+
const parts = [];
|
|
128
|
+
for (let n = node; n; n = n.parent) {
|
|
129
|
+
if (!JAVA_SYMBOL_TYPES.has(n.type))
|
|
130
|
+
continue;
|
|
131
|
+
const name = n.childForFieldName("name")?.text;
|
|
132
|
+
if (!name)
|
|
133
|
+
return undefined;
|
|
134
|
+
parts.unshift(name);
|
|
135
|
+
}
|
|
136
|
+
return parts.length ? parts.join(".") : undefined;
|
|
137
|
+
}
|
|
138
|
+
/** Every descendant (and self) of a given CST type. */
|
|
139
|
+
function* eachOfType(node, type) {
|
|
140
|
+
if (node.type === type)
|
|
141
|
+
yield node;
|
|
142
|
+
for (const c of node.namedChildren)
|
|
143
|
+
yield* eachOfType(c, type);
|
|
144
|
+
}
|
|
145
|
+
/** The nearest enclosing method_declaration — the symbol a call site belongs to. */
|
|
146
|
+
function enclosingMethod(node) {
|
|
147
|
+
for (let n = node.parent; n; n = n.parent) {
|
|
148
|
+
if (n.type === "method_declaration")
|
|
149
|
+
return n;
|
|
150
|
+
}
|
|
151
|
+
return undefined;
|
|
152
|
+
}
|
|
153
|
+
/** Method names ubiquitous on java.lang.Object / common stdlib types — a baseline call to one of
|
|
154
|
+
* these (`obj.toString()`, `System.out.println(...)`) almost never targets a user method in an
|
|
155
|
+
* imported file, so a `call:` candidate for it is pure noise (it cannot resolve, or resolves wrong
|
|
156
|
+
* by name). Conservative on purpose — only names you would never define-and-call cross-file. (#38) */
|
|
157
|
+
const JAVA_BUILTINS = new Set([
|
|
158
|
+
"toString",
|
|
159
|
+
"equals",
|
|
160
|
+
"hashCode",
|
|
161
|
+
"getClass",
|
|
162
|
+
"clone",
|
|
163
|
+
"finalize",
|
|
164
|
+
"notify",
|
|
165
|
+
"notifyAll",
|
|
166
|
+
"wait",
|
|
167
|
+
"println",
|
|
168
|
+
"print",
|
|
169
|
+
]);
|
|
170
|
+
/** Heuristic baseline call edges for Java. A `method_invocation` whose name matches a method defined
|
|
171
|
+
* in the SAME file resolves by name to a `Calls` edge from the enclosing method (within-file); a
|
|
172
|
+
* non-local name becomes a `call:<name>` candidate that {@link deriveCallEdges} resolves cross-file
|
|
173
|
+
* via the import graph — so find_callers/find_callees span Java classes and files instead of the
|
|
174
|
+
* empty `callsTotal: 0` the baseline tier used to give. A name defined more than once locally is
|
|
175
|
+
* ambiguous (skipped); a call outside any method is skipped. (#34) */
|
|
176
|
+
function javaCalls(root, rel) {
|
|
177
|
+
const byName = new Map(); // simple name → id, or null when ambiguous
|
|
178
|
+
for (const m of eachOfType(root, "method_declaration")) {
|
|
179
|
+
const qn = javaQualifiedName(m);
|
|
180
|
+
const simple = m.childForFieldName("name")?.text;
|
|
181
|
+
if (!qn || !simple)
|
|
182
|
+
continue;
|
|
183
|
+
byName.set(simple, byName.has(simple) ? null : symbolId({ file: rel, qualifiedName: qn }));
|
|
184
|
+
}
|
|
185
|
+
const edges = [];
|
|
186
|
+
const seen = new Set();
|
|
187
|
+
for (const call of eachOfType(root, "method_invocation")) {
|
|
188
|
+
const enc = enclosingMethod(call);
|
|
189
|
+
const name = call.childForFieldName("name")?.text;
|
|
190
|
+
if (!enc || !name)
|
|
191
|
+
continue;
|
|
192
|
+
const local = byName.get(name);
|
|
193
|
+
if (local === null)
|
|
194
|
+
continue; // a name defined more than once locally — don't guess
|
|
195
|
+
const callerQn = javaQualifiedName(enc);
|
|
196
|
+
if (!callerQn)
|
|
197
|
+
continue;
|
|
198
|
+
const from = symbolId({ file: rel, qualifiedName: callerQn });
|
|
199
|
+
if (local) {
|
|
200
|
+
// resolved within this file (slice 1)
|
|
201
|
+
const key = `c ${from} ${local}`;
|
|
202
|
+
if (from === local || seen.has(key))
|
|
203
|
+
continue; // skip self-recursion + duplicate sites
|
|
204
|
+
seen.add(key);
|
|
205
|
+
edges.push({ from, to: local, kind: "Calls", provenance: "heuristic" });
|
|
206
|
+
}
|
|
207
|
+
else if (!JAVA_BUILTINS.has(name)) {
|
|
208
|
+
// not local — a cross-file candidate deriveCallEdges resolves via the import graph (slice 2)
|
|
209
|
+
const key = `r ${from} ${name}`;
|
|
210
|
+
if (seen.has(key))
|
|
211
|
+
continue;
|
|
212
|
+
seen.add(key);
|
|
213
|
+
edges.push({
|
|
214
|
+
from,
|
|
215
|
+
to: `${CALL_REF_PREFIX}${name}`,
|
|
216
|
+
kind: "References",
|
|
217
|
+
provenance: "call-ref",
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return { nodes: [], edges };
|
|
222
|
+
}
|
|
115
223
|
/**
|
|
116
224
|
* Baseline (syntactic) spec for Java. Java gives every kind its own CST node
|
|
117
225
|
* type — class/interface/enum declarations and methods — so each maps directly
|
|
@@ -130,5 +238,6 @@ export const javaSpec = {
|
|
|
130
238
|
},
|
|
131
239
|
resolveImports: javaImports,
|
|
132
240
|
collectRoutes: javaRoutes,
|
|
241
|
+
collectCalls: javaCalls,
|
|
133
242
|
};
|
|
134
243
|
//# sourceMappingURL=java.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"java.js","sourceRoot":"","sources":["../../../src/analyzers/baseline/java.ts"],"names":[],"mappings":"AACA,OAAO,EAAkC,QAAQ,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"java.js","sourceRoot":"","sources":["../../../src/analyzers/baseline/java.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../../src/analyzers/baseline/python.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../../src/analyzers/baseline/python.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAuTlD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,EAAE,YAWxB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as path from "node:path";
|
|
2
|
-
import { CALL_REF_PREFIX, 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
|
|
@@ -271,6 +271,24 @@ function pythonCalls(root, rel) {
|
|
|
271
271
|
if (!callerQn)
|
|
272
272
|
continue;
|
|
273
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
|
+
}
|
|
274
292
|
const local = byName.get(name);
|
|
275
293
|
if (local === null)
|
|
276
294
|
continue; // a name defined more than once locally — don't guess
|
|
@@ -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":"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"}
|
|
@@ -102,13 +102,13 @@ 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;
|
|
106
|
+
type: "analyze";
|
|
107
107
|
files: string[];
|
|
108
108
|
root: string;
|
|
109
109
|
}, {
|
|
110
|
-
type: "analyze";
|
|
111
110
|
id: number;
|
|
111
|
+
type: "analyze";
|
|
112
112
|
files: string[];
|
|
113
113
|
root: string;
|
|
114
114
|
}>;
|
|
@@ -222,6 +222,7 @@ 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;
|
|
@@ -249,13 +250,13 @@ declare const resultSchema: z.ZodObject<{
|
|
|
249
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;
|
|
@@ -283,7 +284,6 @@ declare const resultSchema: z.ZodObject<{
|
|
|
283
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;
|
|
@@ -412,6 +412,7 @@ 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;
|
|
@@ -439,13 +440,13 @@ export declare const sidecarMessageSchema: z.ZodDiscriminatedUnion<"type", [z.Zo
|
|
|
439
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;
|
|
@@ -473,7 +474,6 @@ export declare const sidecarMessageSchema: z.ZodDiscriminatedUnion<"type", [z.Zo
|
|
|
473
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;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { CliCommand } from "../index.js";
|
|
2
|
+
/** How the running `ama` was installed — determines how (and whether) we can self-update. */
|
|
3
|
+
export type InstallMethod = "bundle" | "npm" | "npx" | "source" | "unknown";
|
|
4
|
+
/**
|
|
5
|
+
* Classify the install from the running CLI module's directory. `exists` probes for the bundle's
|
|
6
|
+
* vendored node (injectable for tests). Order matters: an npx run lives under `node_modules` too,
|
|
7
|
+
* so it's checked first; a bundle's `dist` lives under `lib/`, never under `node_modules`.
|
|
8
|
+
*/
|
|
9
|
+
export declare function detectInstall(moduleDir: string, exists?: (p: string) => boolean): InstallMethod;
|
|
10
|
+
/** The action to take for a given install method — either a command to run or a message to print. */
|
|
11
|
+
export type UpgradePlan = {
|
|
12
|
+
kind: "run";
|
|
13
|
+
command: string;
|
|
14
|
+
args: string[];
|
|
15
|
+
note: string;
|
|
16
|
+
} | {
|
|
17
|
+
kind: "message";
|
|
18
|
+
text: string;
|
|
19
|
+
};
|
|
20
|
+
/** Decide how to update `version` ("latest" or a pinned tag) for the detected method. Pure. */
|
|
21
|
+
export declare function upgradePlan(method: InstallMethod, version: string, opts?: {
|
|
22
|
+
isWindows?: boolean;
|
|
23
|
+
}): UpgradePlan;
|
|
24
|
+
/** Numeric semver "greater than" — `a` newer than `b`. Ignores any leading `v` (strip before call). */
|
|
25
|
+
export declare function isNewer(a: string, b: string): boolean;
|
|
26
|
+
export declare const upgradeCommand: CliCommand;
|
|
27
|
+
//# sourceMappingURL=upgrade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAK9C,6FAA6F;AAC7F,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5E;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAoB,GAC1C,aAAa,CAaf;AAED,qGAAqG;AACrG,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,+FAA+F;AAC/F,wBAAgB,WAAW,CACzB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,WAAW,CAoCb;AAED,uGAAuG;AACvG,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CASrD;AAgBD,eAAO,MAAM,cAAc,EAAE,UA2C5B,CAAC"}
|