@mka-rainmaker/ama 0.1.1 → 0.1.2
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 +19 -1
- package/dist/analyzers/baseline/analyzer.d.ts +10 -0
- package/dist/analyzers/baseline/analyzer.d.ts.map +1 -1
- package/dist/analyzers/baseline/analyzer.js +5 -0
- package/dist/analyzers/baseline/analyzer.js.map +1 -1
- package/dist/analyzers/baseline/python.d.ts.map +1 -1
- package/dist/analyzers/baseline/python.js +99 -0
- package/dist/analyzers/baseline/python.js.map +1 -1
- package/dist/cli/agents.d.ts +28 -0
- package/dist/cli/agents.d.ts.map +1 -0
- package/dist/cli/agents.js +47 -0
- package/dist/cli/agents.js.map +1 -0
- package/dist/cli/commands/install.d.ts +20 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.js +94 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +3 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/mcp/server.d.ts +7 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +59 -28
- package/dist/mcp/server.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -34,7 +34,15 @@ npm install -g @mka-rainmaker/ama
|
|
|
34
34
|
|
|
35
35
|
### Configure your coding agent
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
**Fastest — let Ama wire itself in:**
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
ama install # detects Claude Code / Cursor / Windsurf and writes their MCP config
|
|
41
|
+
ama install --dry-run # preview what it would change, writing nothing
|
|
42
|
+
ama uninstall # remove it again
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Or configure manually — every MCP client spawns the same stdio command (`ama mcp`), only the config location differs.
|
|
38
46
|
|
|
39
47
|
**Claude Code** — add it with one command:
|
|
40
48
|
|
|
@@ -66,6 +74,16 @@ claude mcp add ama -- ama mcp
|
|
|
66
74
|
{ "mcpServers": { "ama": { "command": "npx", "args": ["-y", "@mka-rainmaker/ama", "mcp"] } } }
|
|
67
75
|
```
|
|
68
76
|
|
|
77
|
+
### Fewer tools, lower token cost
|
|
78
|
+
|
|
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):
|
|
82
|
+
|
|
83
|
+
```json
|
|
84
|
+
{ "mcpServers": { "ama": { "command": "ama", "args": ["mcp"], "env": { "AMA_MCP_TOOLS": "minimal" } } } }
|
|
85
|
+
```
|
|
86
|
+
|
|
69
87
|
### Quick start
|
|
70
88
|
|
|
71
89
|
Once connected, point Ama at a repo and start asking graph questions:
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type Parser from "web-tree-sitter";
|
|
2
|
+
import { type GraphEdge, type GraphNode } from "../../graph/index.js";
|
|
2
3
|
import type { AnalysisResult, Analyzer } from "../types.js";
|
|
3
4
|
import { type SymbolRule } from "./walk.js";
|
|
4
5
|
export type { SymbolRule };
|
|
@@ -25,6 +26,15 @@ export interface LanguageSpec {
|
|
|
25
26
|
* module-qualified path; path-based languages can ignore it. (ama-8nr, ama-9yu)
|
|
26
27
|
*/
|
|
27
28
|
readonly resolveImports?: (node: Parser.SyntaxNode, importerRel: string, root: string) => string[][] | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Optional route detector: walk the CST for framework route registrations and return Route
|
|
31
|
+
* nodes plus their handler `References` edges. Baseline tier — a heuristic, syntactic match
|
|
32
|
+
* on decorator/call patterns (e.g. Python's `@app.get("/x")`). (ama-bvg)
|
|
33
|
+
*/
|
|
34
|
+
readonly collectRoutes?: (root: Parser.SyntaxNode, rel: string) => {
|
|
35
|
+
nodes: GraphNode[];
|
|
36
|
+
edges: GraphEdge[];
|
|
37
|
+
};
|
|
28
38
|
}
|
|
29
39
|
/**
|
|
30
40
|
* A language-agnostic, syntactic (tier `baseline`) analyzer driven by a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/baseline/analyzer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/baseline/analyzer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAU,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,EAAE,KAAK,UAAU,EAAe,MAAM,WAAW,CAAC;AAEzD,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACvD;;;;;;;;OAQG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CACxB,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,KACT,MAAM,EAAE,EAAE,GAAG,SAAS,CAAC;IAE5B;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CACvB,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,GAAG,EAAE,MAAM,KACR;QAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,EAAE,SAAS,EAAE,CAAA;KAAE,CAAC;CACjD;AAED;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,QAAQ;IAKnC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJjC,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;gBAEV,IAAI,EAAE,YAAY;IAKzC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAmDrE;oFACgF;IAChF,OAAO,CAAC,cAAc;CAkBvB"}
|
|
@@ -51,6 +51,11 @@ export class BaselineAnalyzer {
|
|
|
51
51
|
walkSymbols(tree.rootNode, this.spec.symbols, rel, id, "", fileNodes, fileEdges);
|
|
52
52
|
if (this.spec.resolveImports)
|
|
53
53
|
this.collectImports(tree.rootNode, rel, root, id, fileEdges);
|
|
54
|
+
if (this.spec.collectRoutes) {
|
|
55
|
+
const routes = this.spec.collectRoutes(tree.rootNode, rel);
|
|
56
|
+
fileNodes.push(...routes.nodes);
|
|
57
|
+
fileEdges.push(...routes.edges);
|
|
58
|
+
}
|
|
54
59
|
nodes.push(...fileNodes);
|
|
55
60
|
edges.push(...fileEdges);
|
|
56
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../../src/analyzers/baseline/analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAkC,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9E,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAmB,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../../src/analyzers/baseline/analyzer.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":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAsIlD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,EAAE,YAUxB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as path from "node:path";
|
|
2
|
+
import { symbolId } from "../../graph/index.js";
|
|
2
3
|
/**
|
|
3
4
|
* Resolve a Python relative import (`from .x import y`, `from . import m`,
|
|
4
5
|
* `from ..pkg import z`) to candidate repo-relative module files. The leading
|
|
@@ -43,6 +44,103 @@ function pythonImports(node, importerRel) {
|
|
|
43
44
|
}
|
|
44
45
|
return groups;
|
|
45
46
|
}
|
|
47
|
+
/** Flask/FastAPI HTTP-verb decorator attributes (`@app.get(...)`); `route` is handled
|
|
48
|
+
* separately as Flask's any-/default-GET form. (ama-bvg) */
|
|
49
|
+
const ROUTE_METHOD_ATTRS = new Set(["get", "post", "put", "delete", "patch", "options", "head"]);
|
|
50
|
+
/** Normalize a framework route path to the `:param` form — Flask `<id>`/`<int:id>` and
|
|
51
|
+
* FastAPI `{id}` both become `:id` — and ensure a leading slash. (ama-bvg) */
|
|
52
|
+
function normalizeRoutePath(p) {
|
|
53
|
+
const s = p.replace(/<(?:[^:>]+:)?([^>]+)>/g, ":$1").replace(/\{([^}]+)\}/g, ":$1");
|
|
54
|
+
return s.startsWith("/") ? s : `/${s}`;
|
|
55
|
+
}
|
|
56
|
+
/** The first string-literal argument of a call's `arguments`, unquoted. */
|
|
57
|
+
function firstStringArg(args) {
|
|
58
|
+
if (!args)
|
|
59
|
+
return undefined;
|
|
60
|
+
for (const a of args.namedChildren) {
|
|
61
|
+
if (a.type === "string")
|
|
62
|
+
return a.namedChildren.find((c) => c.type === "string_content")?.text;
|
|
63
|
+
}
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
/** Method + normalized path for a Flask/FastAPI route decorator, else undefined. `@x.route(p)`
|
|
67
|
+
* → GET (Flask default; the `methods=` kwarg is a later refinement); `@x.get(p)` etc. take the
|
|
68
|
+
* verb from the attribute name. (ama-bvg) */
|
|
69
|
+
function routeFromDecorator(dec) {
|
|
70
|
+
const call = dec.namedChildren.find((c) => c.type === "call");
|
|
71
|
+
const fn = call?.childForFieldName("function");
|
|
72
|
+
if (!call || fn?.type !== "attribute")
|
|
73
|
+
return undefined;
|
|
74
|
+
const attr = fn.childForFieldName("attribute")?.text?.toLowerCase();
|
|
75
|
+
if (!attr || (attr !== "route" && !ROUTE_METHOD_ATTRS.has(attr)))
|
|
76
|
+
return undefined;
|
|
77
|
+
const raw = firstStringArg(call.childForFieldName("arguments"));
|
|
78
|
+
if (raw === undefined)
|
|
79
|
+
return undefined;
|
|
80
|
+
return { method: attr === "route" ? "GET" : attr.toUpperCase(), path: normalizeRoutePath(raw) };
|
|
81
|
+
}
|
|
82
|
+
/** The handler's qualified name, matching walkSymbols' nesting: prepend each enclosing
|
|
83
|
+
* class/function name (a class method is `Class.method`; a top-level def is just its name). */
|
|
84
|
+
function qualifiedNameOf(fn) {
|
|
85
|
+
const own = fn.childForFieldName("name")?.text;
|
|
86
|
+
if (!own)
|
|
87
|
+
return undefined;
|
|
88
|
+
const parts = [];
|
|
89
|
+
for (let p = fn.parent; p; p = p.parent) {
|
|
90
|
+
if (p.type === "class_definition" || p.type === "function_definition") {
|
|
91
|
+
const n = p.childForFieldName("name")?.text;
|
|
92
|
+
if (n)
|
|
93
|
+
parts.unshift(n);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
parts.push(own);
|
|
97
|
+
return parts.join(".");
|
|
98
|
+
}
|
|
99
|
+
function* eachDecorated(node) {
|
|
100
|
+
if (node.type === "decorated_definition")
|
|
101
|
+
yield node;
|
|
102
|
+
for (const c of node.namedChildren)
|
|
103
|
+
yield* eachDecorated(c);
|
|
104
|
+
}
|
|
105
|
+
/** Detect Flask/FastAPI routes: a decorated function whose decorator is `@<obj>.route(path)`
|
|
106
|
+
* or `@<obj>.<verb>(path)` becomes a `METHOD /path` Route referencing the function. (ama-bvg) */
|
|
107
|
+
function pythonRoutes(root, rel) {
|
|
108
|
+
const nodes = [];
|
|
109
|
+
const edges = [];
|
|
110
|
+
for (const dd of eachDecorated(root)) {
|
|
111
|
+
const fn = dd.childForFieldName("definition");
|
|
112
|
+
if (fn?.type !== "function_definition")
|
|
113
|
+
continue;
|
|
114
|
+
const handler = qualifiedNameOf(fn);
|
|
115
|
+
if (!handler)
|
|
116
|
+
continue;
|
|
117
|
+
for (const dec of dd.namedChildren) {
|
|
118
|
+
if (dec.type !== "decorator")
|
|
119
|
+
continue;
|
|
120
|
+
const route = routeFromDecorator(dec);
|
|
121
|
+
if (!route)
|
|
122
|
+
continue;
|
|
123
|
+
const name = `${route.method} ${route.path}`;
|
|
124
|
+
const routeId = symbolId({ file: rel, qualifiedName: name });
|
|
125
|
+
nodes.push({
|
|
126
|
+
id: routeId,
|
|
127
|
+
kind: "Route",
|
|
128
|
+
name,
|
|
129
|
+
file: rel,
|
|
130
|
+
qualifiedName: name,
|
|
131
|
+
tier: "baseline",
|
|
132
|
+
range: { startLine: fn.startPosition.row + 1, endLine: fn.endPosition.row + 1 },
|
|
133
|
+
});
|
|
134
|
+
edges.push({
|
|
135
|
+
from: routeId,
|
|
136
|
+
to: symbolId({ file: rel, qualifiedName: handler }),
|
|
137
|
+
kind: "References",
|
|
138
|
+
provenance: "heuristic",
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return { nodes, edges };
|
|
143
|
+
}
|
|
46
144
|
/**
|
|
47
145
|
* Baseline (syntactic) spec for Python. Functions and classes are the symbols
|
|
48
146
|
* worth a node; methods are `function_definition` too (Python doesn't
|
|
@@ -59,5 +157,6 @@ export const pythonSpec = {
|
|
|
59
157
|
class_definition: { kind: "Class" },
|
|
60
158
|
},
|
|
61
159
|
resolveImports: pythonImports,
|
|
160
|
+
collectRoutes: pythonRoutes,
|
|
62
161
|
};
|
|
63
162
|
//# sourceMappingURL=python.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python.js","sourceRoot":"","sources":["../../../src/analyzers/baseline/python.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"python.js","sourceRoot":"","sources":["../../../src/analyzers/baseline/python.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** A coding agent Ama can wire itself into by merging an entry into the agent's JSON
|
|
2
|
+
* MCP config. Global (user-scope) configs under $HOME. (ama-di3) */
|
|
3
|
+
export interface AgentSpec {
|
|
4
|
+
readonly id: string;
|
|
5
|
+
readonly name: string;
|
|
6
|
+
/** The MCP config file to merge the ama server into. */
|
|
7
|
+
configPath(home: string): string;
|
|
8
|
+
/** Paths whose existence means this agent is installed; detection succeeds if any exists. */
|
|
9
|
+
markers(home: string): string[];
|
|
10
|
+
}
|
|
11
|
+
/** The key Ama registers itself under in an agent's `mcpServers`. */
|
|
12
|
+
export declare const SERVER_NAME = "ama";
|
|
13
|
+
/** The MCP server entry written for each agent. `ama` is on PATH (the user ran `ama install`). */
|
|
14
|
+
export declare const AMA_SERVER: {
|
|
15
|
+
readonly command: "ama";
|
|
16
|
+
readonly args: readonly ["mcp"];
|
|
17
|
+
};
|
|
18
|
+
export declare const AGENTS: readonly AgentSpec[];
|
|
19
|
+
type Json = Record<string, unknown>;
|
|
20
|
+
/** Add the ama MCP server to a config, preserving every other key and server. Pure +
|
|
21
|
+
* idempotent — re-running yields the same config. (ama-di3) */
|
|
22
|
+
export declare function withAmaServer(config: Json | undefined): Json;
|
|
23
|
+
/** Remove the ama MCP server, leaving every other server and key intact. Pure. (ama-di3) */
|
|
24
|
+
export declare function withoutAmaServer(config: Json | undefined): Json;
|
|
25
|
+
/** The agents detected as installed for `home` — any of an agent's markers present. */
|
|
26
|
+
export declare function detectAgents(home: string, exists: (p: string) => boolean): AgentSpec[];
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/cli/agents.ts"],"names":[],"mappings":"AAEA;qEACqE;AACrE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,6FAA6F;IAC7F,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACjC;AAED,qEAAqE;AACrE,eAAO,MAAM,WAAW,QAAQ,CAAC;AACjC,kGAAkG;AAClG,eAAO,MAAM,UAAU;;;CAA6C,CAAC;AAErE,eAAO,MAAM,MAAM,EAAE,SAAS,SAAS,EAmBtC,CAAC;AAEF,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpC;gEACgE;AAChE,wBAAgB,aAAa,CAAC,MAAM,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,CAM5D;AAED,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,CAM/D;AAED,uFAAuF;AACvF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,EAAE,CAEtF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import * as path from "node:path";
|
|
2
|
+
/** The key Ama registers itself under in an agent's `mcpServers`. */
|
|
3
|
+
export const SERVER_NAME = "ama";
|
|
4
|
+
/** The MCP server entry written for each agent. `ama` is on PATH (the user ran `ama install`). */
|
|
5
|
+
export const AMA_SERVER = { command: "ama", args: ["mcp"] };
|
|
6
|
+
export const AGENTS = [
|
|
7
|
+
{
|
|
8
|
+
id: "claude-code",
|
|
9
|
+
name: "Claude Code",
|
|
10
|
+
configPath: (h) => path.join(h, ".claude.json"),
|
|
11
|
+
markers: (h) => [path.join(h, ".claude.json"), path.join(h, ".claude")],
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
id: "cursor",
|
|
15
|
+
name: "Cursor",
|
|
16
|
+
configPath: (h) => path.join(h, ".cursor", "mcp.json"),
|
|
17
|
+
markers: (h) => [path.join(h, ".cursor")],
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
id: "windsurf",
|
|
21
|
+
name: "Windsurf",
|
|
22
|
+
configPath: (h) => path.join(h, ".codeium", "windsurf", "mcp_config.json"),
|
|
23
|
+
markers: (h) => [path.join(h, ".codeium")],
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
/** Add the ama MCP server to a config, preserving every other key and server. Pure +
|
|
27
|
+
* idempotent — re-running yields the same config. (ama-di3) */
|
|
28
|
+
export function withAmaServer(config) {
|
|
29
|
+
const next = { ...(config ?? {}) };
|
|
30
|
+
const servers = { ...(next.mcpServers ?? {}) };
|
|
31
|
+
servers[SERVER_NAME] = { ...AMA_SERVER };
|
|
32
|
+
next.mcpServers = servers;
|
|
33
|
+
return next;
|
|
34
|
+
}
|
|
35
|
+
/** Remove the ama MCP server, leaving every other server and key intact. Pure. (ama-di3) */
|
|
36
|
+
export function withoutAmaServer(config) {
|
|
37
|
+
const next = { ...(config ?? {}) };
|
|
38
|
+
const servers = { ...(next.mcpServers ?? {}) };
|
|
39
|
+
delete servers[SERVER_NAME];
|
|
40
|
+
next.mcpServers = servers;
|
|
41
|
+
return next;
|
|
42
|
+
}
|
|
43
|
+
/** The agents detected as installed for `home` — any of an agent's markers present. */
|
|
44
|
+
export function detectAgents(home, exists) {
|
|
45
|
+
return AGENTS.filter((a) => a.markers(home).some(exists));
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/cli/agents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAalC,qEAAqE;AACrE,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC;AACjC,kGAAkG;AAClG,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAW,CAAC;AAErE,MAAM,CAAC,MAAM,MAAM,GAAyB;IAC1C;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC;QAC/C,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;KACxE;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC;QACtD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;KAC1C;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC;QAC1E,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;KAC3C;CACF,CAAC;AAIF;gEACgE;AAChE,MAAM,UAAU,aAAa,CAAC,MAAwB;IACpD,MAAM,IAAI,GAAS,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;IACzC,MAAM,OAAO,GAAS,EAAE,GAAG,CAAE,IAAI,CAAC,UAA+B,IAAI,EAAE,CAAC,EAAE,CAAC;IAC3E,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;IACzC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;IAC1B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,gBAAgB,CAAC,MAAwB;IACvD,MAAM,IAAI,GAAS,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;IACzC,MAAM,OAAO,GAAS,EAAE,GAAG,CAAE,IAAI,CAAC,UAA+B,IAAI,EAAE,CAAC,EAAE,CAAC;IAC3E,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;IAC1B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,MAA8B;IACvE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type AgentSpec } from "../agents.js";
|
|
2
|
+
import type { CliCommand } from "../index.js";
|
|
3
|
+
interface AgentResult {
|
|
4
|
+
agent: AgentSpec;
|
|
5
|
+
file: string;
|
|
6
|
+
ok: boolean;
|
|
7
|
+
error?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Wire ama into every detected agent's MCP config, merging idempotently (other servers and
|
|
11
|
+
* keys preserved). `dryRun` detects but writes nothing. `home` is a parameter so tests run
|
|
12
|
+
* against a temp dir, never the real `~`. (ama-di3)
|
|
13
|
+
*/
|
|
14
|
+
export declare function installAgents(home: string, dryRun?: boolean): AgentResult[];
|
|
15
|
+
/** Remove ama from every agent config that currently has it. (ama-di3) */
|
|
16
|
+
export declare function uninstallAgents(home: string): AgentResult[];
|
|
17
|
+
export declare const installCommand: CliCommand;
|
|
18
|
+
export declare const uninstallCommand: CliCommand;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,SAAS,EAIf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,UAAU,WAAW;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAeD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,WAAW,EAAE,CAWzE;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAe3D;AAED,eAAO,MAAM,cAAc,EAAE,UAmB5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,UAe9B,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import * as fs from "node:fs";
|
|
2
|
+
import * as os from "node:os";
|
|
3
|
+
import * as path from "node:path";
|
|
4
|
+
import { AGENTS, detectAgents, withAmaServer, withoutAmaServer, } from "../agents.js";
|
|
5
|
+
function readJson(file) {
|
|
6
|
+
try {
|
|
7
|
+
return JSON.parse(fs.readFileSync(file, "utf8"));
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
return undefined; // missing or unparseable → start fresh (install) / nothing to remove
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
function writeJson(file, data) {
|
|
14
|
+
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
15
|
+
fs.writeFileSync(file, `${JSON.stringify(data, null, 2)}\n`);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Wire ama into every detected agent's MCP config, merging idempotently (other servers and
|
|
19
|
+
* keys preserved). `dryRun` detects but writes nothing. `home` is a parameter so tests run
|
|
20
|
+
* against a temp dir, never the real `~`. (ama-di3)
|
|
21
|
+
*/
|
|
22
|
+
export function installAgents(home, dryRun = false) {
|
|
23
|
+
return detectAgents(home, fs.existsSync).map((agent) => {
|
|
24
|
+
const file = agent.configPath(home);
|
|
25
|
+
if (dryRun)
|
|
26
|
+
return { agent, file, ok: true };
|
|
27
|
+
try {
|
|
28
|
+
writeJson(file, withAmaServer(readJson(file)));
|
|
29
|
+
return { agent, file, ok: true };
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
return { agent, file, ok: false, error: err instanceof Error ? err.message : String(err) };
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/** Remove ama from every agent config that currently has it. (ama-di3) */
|
|
37
|
+
export function uninstallAgents(home) {
|
|
38
|
+
const out = [];
|
|
39
|
+
for (const agent of AGENTS) {
|
|
40
|
+
const file = agent.configPath(home);
|
|
41
|
+
const config = readJson(file);
|
|
42
|
+
const servers = config?.mcpServers;
|
|
43
|
+
if (!config || !servers || !("ama" in servers))
|
|
44
|
+
continue;
|
|
45
|
+
try {
|
|
46
|
+
writeJson(file, withoutAmaServer(config));
|
|
47
|
+
out.push({ agent, file, ok: true });
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
out.push({ agent, file, ok: false, error: err instanceof Error ? err.message : String(err) });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return out;
|
|
54
|
+
}
|
|
55
|
+
export const installCommand = {
|
|
56
|
+
name: "install",
|
|
57
|
+
summary: "Wire the ama MCP server into your installed coding agents (--dry-run to preview)",
|
|
58
|
+
run(args, ctx) {
|
|
59
|
+
const dryRun = args.includes("--dry-run");
|
|
60
|
+
const results = installAgents(os.homedir(), dryRun);
|
|
61
|
+
if (results.length === 0) {
|
|
62
|
+
ctx.error?.("No supported agents detected (Claude Code, Cursor, Windsurf). See the README to configure manually.");
|
|
63
|
+
return 1;
|
|
64
|
+
}
|
|
65
|
+
for (const r of results) {
|
|
66
|
+
if (!r.ok)
|
|
67
|
+
ctx.error?.(`✗ ${r.agent.name}: ${r.error}`);
|
|
68
|
+
else
|
|
69
|
+
ctx.write(`${dryRun ? "would wire" : "✓"} ${r.agent.name.padEnd(12)} ${r.file}`);
|
|
70
|
+
}
|
|
71
|
+
if (!dryRun && results.some((r) => r.ok))
|
|
72
|
+
ctx.write("Restart the agent(s) to load Ama.");
|
|
73
|
+
return results.some((r) => !r.ok) ? 1 : 0;
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
export const uninstallCommand = {
|
|
77
|
+
name: "uninstall",
|
|
78
|
+
summary: "Remove the ama MCP server from your coding agents",
|
|
79
|
+
run(_args, ctx) {
|
|
80
|
+
const results = uninstallAgents(os.homedir());
|
|
81
|
+
if (results.length === 0) {
|
|
82
|
+
ctx.write("Ama was not wired into any detected agent.");
|
|
83
|
+
return 0;
|
|
84
|
+
}
|
|
85
|
+
for (const r of results) {
|
|
86
|
+
if (!r.ok)
|
|
87
|
+
ctx.error?.(`✗ ${r.agent.name}: ${r.error}`);
|
|
88
|
+
else
|
|
89
|
+
ctx.write(`✓ removed from ${r.agent.name}`);
|
|
90
|
+
}
|
|
91
|
+
return results.some((r) => !r.ok) ? 1 : 0;
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAiCA,kEAAkE;AAClE,MAAM,WAAW,UAAU;IACzB,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,qCAAqC;IACrC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;;;;OAKG;IACH,KAAK,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;wFACoF;IACpF,KAAK,CAAC,IAAI,MAAM,CAAC;CAClB;AAED,qCAAqC;AACrC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iFAAiF;IACjF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAChE;AAgBD;;;;GAIG;AACH,wBAAsB,GAAG,CACvB,IAAI,EAAE,MAAM,EAAE,EACd,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,GAAG,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAkD,EACzE,GAAG,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAkD,GACxE,OAAO,CAAC,MAAM,CAAC,CA4BjB;AAaD;8CAC8C;AAC9C,eAAO,MAAM,QAAQ,EAAE,SAAS,UAAU,EA+BzC,CAAC;AAEF,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAY1C"}
|
package/dist/cli/index.js
CHANGED
|
@@ -6,6 +6,7 @@ import { ensureBaselineWasmTier } from "../runtime/wasm-tier.js";
|
|
|
6
6
|
import { cyclesCommand } from "./commands/cycles.js";
|
|
7
7
|
import { filesCommand } from "./commands/files.js";
|
|
8
8
|
import { affectedCommand, impactCommand } from "./commands/impact.js";
|
|
9
|
+
import { installCommand, uninstallCommand } from "./commands/install.js";
|
|
9
10
|
import { indexCommand, initCommand, uninitCommand } from "./commands/lifecycle.js";
|
|
10
11
|
import { calleesCommand, callersCommand, exploreCommand, handlersCommand, implementationsCommand, importersCommand, importsCommand, interfacesCommand, nodeCommand, overriddenByCommand, overridesCommand, referrersCommand, returnsCommand, routesCommand, skeletonCommand, typeUsersCommand, typesUsedCommand, } from "./commands/query.js";
|
|
11
12
|
import { searchCodeCommand, searchCommand } from "./commands/search.js";
|
|
@@ -86,6 +87,7 @@ export const COMMANDS = [
|
|
|
86
87
|
importsCommand,
|
|
87
88
|
indexCommand,
|
|
88
89
|
initCommand,
|
|
90
|
+
installCommand,
|
|
89
91
|
interfacesCommand,
|
|
90
92
|
nodeCommand,
|
|
91
93
|
overriddenByCommand,
|
|
@@ -101,6 +103,7 @@ export const COMMANDS = [
|
|
|
101
103
|
typeUsersCommand,
|
|
102
104
|
typesUsedCommand,
|
|
103
105
|
uninitCommand,
|
|
106
|
+
uninstallCommand,
|
|
104
107
|
];
|
|
105
108
|
export async function main() {
|
|
106
109
|
const argv = process.argv.slice(2);
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA6BjD,SAAS,KAAK,CAAC,QAA+B;IAC5C,MAAM,KAAK,GAAG,CAAC,sCAAsC,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;IACxE,uFAAuF;IACvF,KAAK,CAAC,IAAI,CACR,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,wEAAwE,CAC9F,CAAC;IACF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,OAAO,IAAI,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CACvB,IAAc,EACd,QAA+B,EAC/B,MAA8B,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,EACzE,MAA8B,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC;IAEzE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAE3B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC7D,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC1C,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACzB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;QAChC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,6EAA6E;IAC7E,qEAAqE;IACrE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,OAAO,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAChD,IAAI,OAAO,CAAC,KAAK;YAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;AACpF,CAAC;AAED;4EAC4E;AAC5E,SAAS,cAAc;IACrB,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;8CAC8C;AAC9C,MAAM,CAAC,MAAM,QAAQ,GAA0B;IAC7C,eAAe;IACf,cAAc;IACd,cAAc;IACd,aAAa;IACb,cAAc;IACd,YAAY;IACZ,eAAe;IACf,aAAa;IACb,sBAAsB;IACtB,gBAAgB;IAChB,cAAc;IACd,YAAY;IACZ,WAAW;IACX,cAAc;IACd,iBAAiB;IACjB,WAAW;IACX,mBAAmB;IACnB,gBAAgB;IAChB,gBAAgB;IAChB,cAAc;IACd,aAAa;IACb,iBAAiB;IACjB,aAAa;IACb,eAAe;IACf,aAAa;IACb,WAAW;IACX,gBAAgB;IAChB,gBAAgB;IAChB,aAAa;IACb,gBAAgB;CACjB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,oFAAoF;IACpF,wFAAwF;IACxF,sFAAsF;IACtF,sEAAsE;IACtE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QACtB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC5D,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,+EAA+E;IAC/E,gFAAgF;IAChF,IAAI,CAAC,sBAAsB,EAAE,EAAE,CAAC;QAC9B,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
package/dist/mcp/server.d.ts
CHANGED
|
@@ -11,12 +11,18 @@ export declare function capped<T>(results: T[], limit: number, baseHint?: string
|
|
|
11
11
|
/** A one-glance summary of a tool result — list length, index counts, etc.
|
|
12
12
|
* Exported for unit testing of its banner/hint handling. */
|
|
13
13
|
export declare function resultHint(result: unknown): string;
|
|
14
|
+
/**
|
|
15
|
+
* Resolve AMA_MCP_TOOLS into the set of tool names to expose, or null for all (the default,
|
|
16
|
+
* non-breaking). `minimal` → the essentials + `explore`; a comma list → the essentials + those
|
|
17
|
+
* names. Lets an agent trade the full 27-tool surface for a tiny high-signal set. (ama-tqm)
|
|
18
|
+
*/
|
|
19
|
+
export declare function selectTools(spec: string | undefined): Set<string> | null;
|
|
14
20
|
/**
|
|
15
21
|
* Build the MCP server exposing Ama's tools over one {@link AmaSession}. Pure
|
|
16
22
|
* construction — no transport — so it can be driven by an in-memory client in
|
|
17
23
|
* tests or by stdio in production.
|
|
18
24
|
*/
|
|
19
|
-
export declare function createServer(session?: AmaSession): McpServer;
|
|
25
|
+
export declare function createServer(session?: AmaSession, toolsSpec?: string | undefined): McpServer;
|
|
20
26
|
/** Entry point: serve over stdio. stdout carries JSON-RPC only — log to stderr. */
|
|
21
27
|
export declare function main(): Promise<void>;
|
|
22
28
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/mcp/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAyB1C;;;gFAGgF;AAChF,wBAAgB,MAAM,CAAC,CAAC,EACtB,OAAO,EAAE,CAAC,EAAE,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,GAChB;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAQ/B;AAkCD;6DAC6D;AAC7D,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAmClD;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAyB1C;;;gFAGgF;AAChF,wBAAgB,MAAM,CAAC,CAAC,EACtB,OAAO,EAAE,CAAC,EAAE,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,GAChB;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAQ/B;AAkCD;6DAC6D;AAC7D,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAmClD;AAuBD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CASxE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,OAAO,GAAE,UAA6B,EACtC,SAAS,GAAE,MAAM,GAAG,SAAqC,GACxD,SAAS,CAqjBX;AAED,mFAAmF;AACnF,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAI1C"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -130,23 +130,54 @@ function tap(name, run) {
|
|
|
130
130
|
return result;
|
|
131
131
|
};
|
|
132
132
|
}
|
|
133
|
+
/** Tools always exposed (the index bootstrap) even when AMA_MCP_TOOLS filters the rest. */
|
|
134
|
+
const ESSENTIAL_TOOLS = ["index_repository", "index_status"];
|
|
135
|
+
/**
|
|
136
|
+
* Resolve AMA_MCP_TOOLS into the set of tool names to expose, or null for all (the default,
|
|
137
|
+
* non-breaking). `minimal` → the essentials + `explore`; a comma list → the essentials + those
|
|
138
|
+
* names. Lets an agent trade the full 27-tool surface for a tiny high-signal set. (ama-tqm)
|
|
139
|
+
*/
|
|
140
|
+
export function selectTools(spec) {
|
|
141
|
+
const raw = spec?.trim();
|
|
142
|
+
if (!raw)
|
|
143
|
+
return null;
|
|
144
|
+
if (raw.toLowerCase() === "minimal")
|
|
145
|
+
return new Set([...ESSENTIAL_TOOLS, "explore"]);
|
|
146
|
+
const names = raw
|
|
147
|
+
.split(",")
|
|
148
|
+
.map((s) => s.trim())
|
|
149
|
+
.filter(Boolean);
|
|
150
|
+
return new Set([...ESSENTIAL_TOOLS, ...names]);
|
|
151
|
+
}
|
|
133
152
|
/**
|
|
134
153
|
* Build the MCP server exposing Ama's tools over one {@link AmaSession}. Pure
|
|
135
154
|
* construction — no transport — so it can be driven by an in-memory client in
|
|
136
155
|
* tests or by stdio in production.
|
|
137
156
|
*/
|
|
138
|
-
export function createServer(session = new AmaSession()) {
|
|
157
|
+
export function createServer(session = new AmaSession(), toolsSpec = process.env.AMA_MCP_TOOLS) {
|
|
139
158
|
const server = new McpServer({ name: "ama", version: serverStamp.version });
|
|
159
|
+
// AMA_MCP_TOOLS minimal-tools mode: register everything, but disable (hide from
|
|
160
|
+
// tools/list) any tool not in the selected set. Bind first so the `tool` rename below
|
|
161
|
+
// never recurses into the wrapper. (ama-tqm)
|
|
162
|
+
const selected = selectTools(toolsSpec);
|
|
163
|
+
const baseRegister = server.registerTool.bind(server);
|
|
164
|
+
// biome-ignore lint/suspicious/noExplicitAny: thin pass-through; the public type is the cast.
|
|
165
|
+
const tool = ((name, config, cb) => {
|
|
166
|
+
const reg = baseRegister(name, config, cb);
|
|
167
|
+
if (selected && !selected.has(name))
|
|
168
|
+
reg.disable();
|
|
169
|
+
return reg;
|
|
170
|
+
});
|
|
140
171
|
// Fires on each connection's initialize handshake — i.e. on reconnect. Arm a
|
|
141
172
|
// catch-up so the first query reconciles edits made while disconnected.
|
|
142
173
|
server.server.oninitialized = () => session.markForCatchUp();
|
|
143
|
-
|
|
174
|
+
tool("index_repository", {
|
|
144
175
|
description: "Build the code graph for a directory or project. Run this first.",
|
|
145
176
|
inputSchema: {
|
|
146
177
|
path: z.string().describe("Directory to index (absolute or relative)."),
|
|
147
178
|
},
|
|
148
179
|
}, tap("index_repository", async ({ path }) => json(await session.indexRepository(path))));
|
|
149
|
-
|
|
180
|
+
tool("index_status", {
|
|
150
181
|
description: "Whether anything is indexed, with node/edge counts, per-language coverage + tier, " +
|
|
151
182
|
"and how many edits are pending auto-sync.",
|
|
152
183
|
inputSchema: {},
|
|
@@ -154,12 +185,12 @@ export function createServer(session = new AmaSession()) {
|
|
|
154
185
|
await session.catchUpIfNeeded();
|
|
155
186
|
return json(session.indexStatus());
|
|
156
187
|
}));
|
|
157
|
-
|
|
188
|
+
tool("sync_index", {
|
|
158
189
|
description: "Reconcile files that changed on disk since indexing (a manual catch-up). " +
|
|
159
190
|
"Returns the repo-relative paths re-indexed and removed.",
|
|
160
191
|
inputSchema: {},
|
|
161
192
|
}, tap("sync_index", async () => json(await session.sync())));
|
|
162
|
-
|
|
193
|
+
tool("search_symbol", {
|
|
163
194
|
description: "Find symbols by name (case-insensitive substring). The query also accepts " +
|
|
164
195
|
"inline filters to scope a search: path:<file-substring>, kind:<NodeKind>, " +
|
|
165
196
|
"lang:<typescript|python|…>, name:<substring> (quote values with spaces). " +
|
|
@@ -182,7 +213,7 @@ export function createServer(session = new AmaSession()) {
|
|
|
182
213
|
const { shown, hint } = capped(results, max, lowHint);
|
|
183
214
|
return reply(session, shown, hint);
|
|
184
215
|
}));
|
|
185
|
-
|
|
216
|
+
tool("find_callers", {
|
|
186
217
|
description: "Every place that calls a function or method — each result is " +
|
|
187
218
|
"{ symbol, at: { line, column } } so you see who calls it and where.",
|
|
188
219
|
inputSchema: {
|
|
@@ -190,7 +221,7 @@ export function createServer(session = new AmaSession()) {
|
|
|
190
221
|
projectPath: projectPathSchema,
|
|
191
222
|
},
|
|
192
223
|
}, tap("find_callers", queryTool(session, ({ symbol, projectPath }) => session.findCallers(symbol, projectPath))));
|
|
193
|
-
|
|
224
|
+
tool("find_callees", {
|
|
194
225
|
description: "What a function or method calls — each result is { symbol, at: { line, column } }, " +
|
|
195
226
|
"the callee and the call site.",
|
|
196
227
|
inputSchema: {
|
|
@@ -198,21 +229,21 @@ export function createServer(session = new AmaSession()) {
|
|
|
198
229
|
projectPath: projectPathSchema,
|
|
199
230
|
},
|
|
200
231
|
}, tap("find_callees", queryTool(session, ({ symbol, projectPath }) => session.findCallees(symbol, projectPath))));
|
|
201
|
-
|
|
232
|
+
tool("find_handlers", {
|
|
202
233
|
description: "The handler symbols a framework route maps to.",
|
|
203
234
|
inputSchema: {
|
|
204
235
|
route: z.string().describe('Route id or name, e.g. "GET /users".'),
|
|
205
236
|
projectPath: projectPathSchema,
|
|
206
237
|
},
|
|
207
238
|
}, tap("find_handlers", queryTool(session, ({ route, projectPath }) => session.findHandlers(route, projectPath))));
|
|
208
|
-
|
|
239
|
+
tool("find_routes", {
|
|
209
240
|
description: "Every framework route that maps to a symbol (handler).",
|
|
210
241
|
inputSchema: {
|
|
211
242
|
symbol: z.string().describe("Handler symbol id, simple name, or dotted qualified name."),
|
|
212
243
|
projectPath: projectPathSchema,
|
|
213
244
|
},
|
|
214
245
|
}, tap("find_routes", queryTool(session, ({ symbol, projectPath }) => session.findRoutes(symbol, projectPath))));
|
|
215
|
-
|
|
246
|
+
tool("find_overrides", {
|
|
216
247
|
description: "The supertype methods a method overrides or implements (method → the " +
|
|
217
248
|
"interface/base method of the same name).",
|
|
218
249
|
inputSchema: {
|
|
@@ -220,7 +251,7 @@ export function createServer(session = new AmaSession()) {
|
|
|
220
251
|
projectPath: projectPathSchema,
|
|
221
252
|
},
|
|
222
253
|
}, tap("find_overrides", queryTool(session, ({ symbol, projectPath }) => session.findOverrides(symbol, projectPath))));
|
|
223
|
-
|
|
254
|
+
tool("find_overridden_by", {
|
|
224
255
|
description: "The subtype methods that override a method — what breaks if you change this " +
|
|
225
256
|
"interface/base method.",
|
|
226
257
|
inputSchema: {
|
|
@@ -228,7 +259,7 @@ export function createServer(session = new AmaSession()) {
|
|
|
228
259
|
projectPath: projectPathSchema,
|
|
229
260
|
},
|
|
230
261
|
}, tap("find_overridden_by", queryTool(session, ({ symbol, projectPath }) => session.findOverriddenBy(symbol, projectPath))));
|
|
231
|
-
|
|
262
|
+
tool("find_referrers", {
|
|
232
263
|
description: "Everything that references a symbol via a References edge: who reads a module-level " +
|
|
233
264
|
"constant/variable, the routes that map to a handler, and other dispatch references. " +
|
|
234
265
|
"Use this for 'who uses X' when X isn't called (reads aren't calls, so find_callers " +
|
|
@@ -238,63 +269,63 @@ export function createServer(session = new AmaSession()) {
|
|
|
238
269
|
projectPath: projectPathSchema,
|
|
239
270
|
},
|
|
240
271
|
}, tap("find_referrers", queryTool(session, ({ symbol, projectPath }) => session.findReferrers(symbol, projectPath))));
|
|
241
|
-
|
|
272
|
+
tool("find_implementations", {
|
|
242
273
|
description: "Every class that implements an interface.",
|
|
243
274
|
inputSchema: {
|
|
244
275
|
symbol: z.string().describe("Interface id, simple name, or dotted qualified name."),
|
|
245
276
|
projectPath: projectPathSchema,
|
|
246
277
|
},
|
|
247
278
|
}, tap("find_implementations", queryTool(session, ({ symbol, projectPath }) => session.findImplementations(symbol, projectPath))));
|
|
248
|
-
|
|
279
|
+
tool("find_interfaces", {
|
|
249
280
|
description: "The interfaces a class implements.",
|
|
250
281
|
inputSchema: {
|
|
251
282
|
symbol: z.string().describe("Class id, simple name, or dotted qualified name."),
|
|
252
283
|
projectPath: projectPathSchema,
|
|
253
284
|
},
|
|
254
285
|
}, tap("find_interfaces", queryTool(session, ({ symbol, projectPath }) => session.findInterfaces(symbol, projectPath))));
|
|
255
|
-
|
|
286
|
+
tool("find_importers", {
|
|
256
287
|
description: "Every file that imports (or re-exports) a symbol.",
|
|
257
288
|
inputSchema: {
|
|
258
289
|
symbol: z.string().describe("Symbol id, simple name, or dotted qualified name."),
|
|
259
290
|
projectPath: projectPathSchema,
|
|
260
291
|
},
|
|
261
292
|
}, tap("find_importers", queryTool(session, ({ symbol, projectPath }) => session.findImporters(symbol, projectPath))));
|
|
262
|
-
|
|
293
|
+
tool("find_imports", {
|
|
263
294
|
description: "The symbols a file imports (or re-exports).",
|
|
264
295
|
inputSchema: {
|
|
265
296
|
file: z.string().describe("File node id (repo-relative path) or basename."),
|
|
266
297
|
projectPath: projectPathSchema,
|
|
267
298
|
},
|
|
268
299
|
}, tap("find_imports", queryTool(session, ({ file, projectPath }) => session.findImports(file, projectPath))));
|
|
269
|
-
|
|
300
|
+
tool("find_type_users", {
|
|
270
301
|
description: "Every symbol that uses a type in a parameter, return, or property.",
|
|
271
302
|
inputSchema: {
|
|
272
303
|
type: z.string().describe("Type id, simple name, or dotted qualified name."),
|
|
273
304
|
projectPath: projectPathSchema,
|
|
274
305
|
},
|
|
275
306
|
}, tap("find_type_users", queryTool(session, ({ type, projectPath }) => session.findTypeUsers(type, projectPath))));
|
|
276
|
-
|
|
307
|
+
tool("find_types_used", {
|
|
277
308
|
description: "The named types a symbol uses in its parameters, return, or properties.",
|
|
278
309
|
inputSchema: {
|
|
279
310
|
symbol: z.string().describe("Symbol id, simple name, or dotted qualified name."),
|
|
280
311
|
projectPath: projectPathSchema,
|
|
281
312
|
},
|
|
282
313
|
}, tap("find_types_used", queryTool(session, ({ symbol, projectPath }) => session.findTypesUsed(symbol, projectPath))));
|
|
283
|
-
|
|
314
|
+
tool("find_returns", {
|
|
284
315
|
description: "The named type(s) a function or method returns — the return half of find_types_used.",
|
|
285
316
|
inputSchema: {
|
|
286
317
|
symbol: z.string().describe("Function/method id, simple name, or dotted qualified name."),
|
|
287
318
|
projectPath: projectPathSchema,
|
|
288
319
|
},
|
|
289
320
|
}, tap("find_returns", queryTool(session, ({ symbol, projectPath }) => session.findReturns(symbol, projectPath))));
|
|
290
|
-
|
|
321
|
+
tool("get_code_snippet", {
|
|
291
322
|
description: "A symbol's verbatim source.",
|
|
292
323
|
inputSchema: {
|
|
293
324
|
symbol: z.string().describe("Symbol id, simple name, or dotted qualified name."),
|
|
294
325
|
projectPath: projectPathSchema,
|
|
295
326
|
},
|
|
296
327
|
}, tap("get_code_snippet", queryTool(session, ({ symbol, projectPath }) => session.getCodeSnippet(symbol, projectPath))));
|
|
297
|
-
|
|
328
|
+
tool("node", {
|
|
298
329
|
description: "Everything about one symbol or file at once: definition, source, callers, callees, " +
|
|
299
330
|
"and dependents.",
|
|
300
331
|
inputSchema: {
|
|
@@ -302,7 +333,7 @@ export function createServer(session = new AmaSession()) {
|
|
|
302
333
|
projectPath: projectPathSchema,
|
|
303
334
|
},
|
|
304
335
|
}, tap("node", queryTool(session, ({ ref, projectPath }) => session.node(ref, projectPath))));
|
|
305
|
-
|
|
336
|
+
tool("file_skeleton", {
|
|
306
337
|
description: "A file's outline in one call: the symbols it defines (kind, name, line range) " +
|
|
307
338
|
"plus the files that depend on it — a structured, cheaper alternative to reading " +
|
|
308
339
|
"the whole file.",
|
|
@@ -311,7 +342,7 @@ export function createServer(session = new AmaSession()) {
|
|
|
311
342
|
projectPath: projectPathSchema,
|
|
312
343
|
},
|
|
313
344
|
}, tap("file_skeleton", queryTool(session, ({ file, projectPath }) => session.fileSkeleton(file, projectPath))));
|
|
314
|
-
|
|
345
|
+
tool("impact_analysis", {
|
|
315
346
|
description: "The transitive blast radius of a symbol: everything that could break if you change it " +
|
|
316
347
|
"(callers, callers of callers, …), optionally bounded by depth.",
|
|
317
348
|
inputSchema: {
|
|
@@ -325,17 +356,17 @@ export function createServer(session = new AmaSession()) {
|
|
|
325
356
|
projectPath: projectPathSchema,
|
|
326
357
|
},
|
|
327
358
|
}, tap("impact_analysis", queryTool(session, ({ symbol, maxDepth, projectPath, }) => session.impactAnalysis(symbol, maxDepth, projectPath))));
|
|
328
|
-
|
|
359
|
+
tool("get_graph_schema", {
|
|
329
360
|
description: "A census of the index: how many nodes of each kind and edges of each kind it holds.",
|
|
330
361
|
inputSchema: { projectPath: projectPathSchema },
|
|
331
362
|
}, tap("get_graph_schema", queryTool(session, ({ projectPath }) => session.getGraphSchema(projectPath))));
|
|
332
|
-
|
|
363
|
+
tool("circular_imports", {
|
|
333
364
|
description: "File-level import cycles: groups of two or more files that (transitively) import " +
|
|
334
365
|
"each other. Each group is a strongly-connected component — high-signal for refactoring " +
|
|
335
366
|
"and untangling module graphs. Empty when the import graph is acyclic.",
|
|
336
367
|
inputSchema: { projectPath: projectPathSchema },
|
|
337
368
|
}, tap("circular_imports", queryTool(session, ({ projectPath }) => session.circularImports(projectPath))));
|
|
338
|
-
|
|
369
|
+
tool("affected", {
|
|
339
370
|
description: "Files affected by changing the given files: the transitive set that imports from them " +
|
|
340
371
|
"(directly or via a defined symbol) — which files/tests to recheck. Pass testsOnly to " +
|
|
341
372
|
"get just the affected test files (which tests to run for a change).",
|
|
@@ -348,7 +379,7 @@ export function createServer(session = new AmaSession()) {
|
|
|
348
379
|
projectPath: projectPathSchema,
|
|
349
380
|
},
|
|
350
381
|
}, tap("affected", queryTool(session, ({ files, testsOnly, projectPath, }) => session.affected(files, { testsOnly }, projectPath))));
|
|
351
|
-
|
|
382
|
+
tool("search_code", {
|
|
352
383
|
description: "Full-text search over symbol bodies — find code containing a string, not just by name.",
|
|
353
384
|
inputSchema: {
|
|
354
385
|
query: z.string().describe("Text to find inside symbol source (case-insensitive)."),
|
|
@@ -365,7 +396,7 @@ export function createServer(session = new AmaSession()) {
|
|
|
365
396
|
const { shown, hint } = capped(results, max, termHint);
|
|
366
397
|
return reply(session, shown, hint);
|
|
367
398
|
}));
|
|
368
|
-
|
|
399
|
+
tool("explore", {
|
|
369
400
|
description: "A one-call overview of a question: matching symbols grouped by file, their " +
|
|
370
401
|
"caller/callee relationships, and the combined blast radius. Deep-dives only the " +
|
|
371
402
|
"top matches (see totalMatches); pass limit to widen or narrow.",
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|