@nanonets/graft 0.4.3 → 0.4.4

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 (40) hide show
  1. package/README.md +4 -0
  2. package/dist/ask/ask.d.ts.map +1 -1
  3. package/dist/ask/ask.js +78 -36
  4. package/dist/ask/ask.js.map +1 -1
  5. package/dist/claude/settings-merge.d.ts.map +1 -1
  6. package/dist/claude/settings-merge.js +10 -0
  7. package/dist/claude/settings-merge.js.map +1 -1
  8. package/dist/claude/shim-template.js +1 -1
  9. package/dist/claude/skill-template.d.ts.map +1 -1
  10. package/dist/claude/skill-template.js +32 -14
  11. package/dist/claude/skill-template.js.map +1 -1
  12. package/dist/cli.d.ts +1 -0
  13. package/dist/cli.d.ts.map +1 -1
  14. package/dist/cli.js +50 -3
  15. package/dist/cli.js.map +1 -1
  16. package/dist/graph/build.d.ts.map +1 -1
  17. package/dist/graph/build.js +5 -0
  18. package/dist/graph/build.js.map +1 -1
  19. package/dist/graph/load.d.ts +18 -0
  20. package/dist/graph/load.d.ts.map +1 -0
  21. package/dist/graph/load.js +83 -0
  22. package/dist/graph/load.js.map +1 -0
  23. package/dist/graph/traverse-cli.d.ts +28 -0
  24. package/dist/graph/traverse-cli.d.ts.map +1 -0
  25. package/dist/graph/traverse-cli.js +112 -0
  26. package/dist/graph/traverse-cli.js.map +1 -0
  27. package/dist/graph/traverse.d.ts +89 -0
  28. package/dist/graph/traverse.d.ts.map +1 -0
  29. package/dist/graph/traverse.js +158 -0
  30. package/dist/graph/traverse.js.map +1 -0
  31. package/dist/graph/write.d.ts.map +1 -1
  32. package/dist/graph/write.js +16 -1
  33. package/dist/graph/write.js.map +1 -1
  34. package/dist/hosts/instructions.d.ts.map +1 -1
  35. package/dist/hosts/instructions.js +14 -4
  36. package/dist/hosts/instructions.js.map +1 -1
  37. package/dist/mcp/tools.d.ts.map +1 -1
  38. package/dist/mcp/tools.js +94 -12
  39. package/dist/mcp/tools.js.map +1 -1
  40. package/package.json +1 -1
@@ -10,14 +10,24 @@ system and carry exact file:line spans, kept in sync with the code through git.
10
10
 
11
11
  For ANY task here — understanding how something works, finding where code lives,
12
12
  or scoping a change — get context from the graph before grepping or opening
13
- source files:
13
+ source files. Re-ask freely (it's cheap) and reuse literal identifiers you
14
+ already have (symbol, error string, file name) as the query.
14
15
 
15
16
  - Run \`graft ask "<your question>" --source\` → ranked nodes with the relevant
16
- code spans inlined. The node usually IS the answer; stop there.
17
+ code spans inlined. Match the tool to the task shape: for understanding or
18
+ editing, the top node IS the answer — cite its \`covers:\` file:line spans and
19
+ edit straight from \`--source\`. For exhaustive tasks ("every occurrence /
20
+ every caller of this pattern"), ranked results are top-N, not complete — use
21
+ graft to orient, then enumerate with grep over the source and verify each hit.
22
+ - \`graft callers/callees <symbol>\` and \`graft impact <symbol> [-d N]\` give
23
+ precomputed, exact edges — who calls/is called by a symbol, and the full
24
+ blast radius — for structural questions, skip ranking and use these directly.
17
25
  - Or browse: \`graft/INDEX.md\` lists every node; follow the links.
18
26
 
19
- Only open source files when a node genuinely lacks a needed detail, and then at
20
- the exact file:line the node points to — never re-read whole files.
27
+ If a returned span is truncated ("+N more lines"), open the file at that exact
28
+ range before finalizing. Only open source files when a node genuinely lacks a
29
+ needed detail, and then at the exact file:line the node points to — never
30
+ re-read whole files.
21
31
 
22
32
  After big code changes, refresh the graph with \`graft build\` (deterministic,
23
33
  no API key, $0).`;
@@ -1 +1 @@
1
- {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/hosts/instructions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,UAAU,eAAe;IAC7B,OAAO;;;;;;;;;;;;;;;;;iBAiBQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO;;;;EAIP,eAAe,EAAE;CAClB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO;;;EAGP,eAAe,EAAE;CAClB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,GAAG,eAAe,EAAE;CAC5B,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/hosts/instructions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,UAAU,eAAe;IAC7B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2BQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO;;;;EAIP,eAAe,EAAE;CAClB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO;;;EAGP,eAAe,EAAE;CAClB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,GAAG,eAAe,EAAE;CAC5B,CAAC;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,KAAK,EAAE,OAAO,EA4B1B,CAAC;AAEF,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAiCpC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAWD,eAAO,MAAM,KAAK,EAAE,OAAO,EAyD1B,CAAC;AAiBF,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CA8DpC"}
package/dist/mcp/tools.js CHANGED
@@ -1,14 +1,21 @@
1
1
  /**
2
- * The three MCP tools, as pure functions over the existing engine.
2
+ * The MCP tools, as pure functions over the existing engine.
3
3
  * `callTool` never throws — hosts get soft errors as isError content.
4
4
  */
5
5
  import { Graft } from '../engine.js';
6
6
  import { formatAsk } from '../ask/ask.js';
7
7
  import { formatCheckReport } from '../context/check.js';
8
8
  import { formatGraphCheckReport } from '../graph/check.js';
9
- import { formatBlastRadius } from '../claude/format.js';
10
- import { readGraph, wiringPath } from '../graph/write.js';
9
+ import { loadGraphCached } from '../graph/load.js';
11
10
  import { contextDirFor } from '../context/node-file.js';
11
+ import { resolveSymbol, callersOf, calleesOf, impactOf, impactOfFile } from '../graph/traverse.js';
12
+ import { headerOf, hitLine, looseNoteFor } from '../graph/traverse-cli.js';
13
+ /** Default BFS depth for `graft_blast_radius`, same default as `graft impact`. */
14
+ const DEFAULT_BLAST_DEPTH = 2;
15
+ const NO_GRAPH = 'no graph found — run `graft build` first';
16
+ function unknownSymbolText(query) {
17
+ return `no symbol "${query}" in the graph — check spelling or run \`graft build\``;
18
+ }
12
19
  export const TOOLS = [
13
20
  {
14
21
  name: 'graft_ask',
@@ -29,14 +36,59 @@ export const TOOLS = [
29
36
  },
30
37
  {
31
38
  name: 'graft_blast_radius',
32
- description: 'List what depends on a file — who breaks if it changes.',
39
+ description: 'BFS over incoming call/reference/import/implements/extends edges from a file or symbol — who breaks if it changes ($0, no LLM).',
33
40
  inputSchema: {
34
41
  type: 'object',
35
- properties: { file: { type: 'string', description: 'repo-relative path, e.g. src/cache.ts' } },
42
+ properties: {
43
+ file: { type: 'string', description: 'repo-relative file path, or a symbol name (bare, qualified, or package-qualified)' },
44
+ symbol: { type: 'string', description: 'alternative to `file` — a symbol name (bare, qualified, or package-qualified)' },
45
+ depth: { type: 'number', description: 'max BFS depth (default 2)' },
46
+ },
36
47
  required: ['file'],
37
48
  },
38
49
  },
50
+ {
51
+ name: 'graft_callers',
52
+ description: 'Who calls/references/imports/implements/extends a symbol (depth 1, $0, no LLM).',
53
+ inputSchema: {
54
+ type: 'object',
55
+ properties: {
56
+ symbol: { type: 'string', description: 'bare name, qualified (Class.method), or package-qualified (pkg.Fn)' },
57
+ in: { type: 'string', description: 'narrow matches to nodes whose path contains this substring' },
58
+ },
59
+ required: ['symbol'],
60
+ },
61
+ },
62
+ {
63
+ name: 'graft_callees',
64
+ description: 'What a symbol calls/references/imports/implements/extends (depth 1, $0, no LLM).',
65
+ inputSchema: {
66
+ type: 'object',
67
+ properties: {
68
+ symbol: { type: 'string', description: 'bare name, qualified (Class.method), or package-qualified (pkg.Fn)' },
69
+ in: { type: 'string', description: 'narrow matches to nodes whose path contains this substring' },
70
+ },
71
+ required: ['symbol'],
72
+ },
73
+ },
39
74
  ];
75
+ /** Render every resolved match's header + edge report (or the loud zero-edge
76
+ * note), one block per match, joined with a blank line — the same grouping
77
+ * `graft callers`/`callees`/`impact` use for multi-match symbols. */
78
+ function renderMatches(kind, matches, hitsFor) {
79
+ return matches
80
+ .map((m) => {
81
+ const hits = hitsFor(m);
82
+ const lines = [headerOf(m)];
83
+ if (hits.length === 0)
84
+ lines.push(looseNoteFor(kind, m.name));
85
+ else
86
+ for (const h of hits)
87
+ lines.push(hitLine(kind, h));
88
+ return lines.join('\n');
89
+ })
90
+ .join('\n\n');
91
+ }
40
92
  export function callTool(root, name, args) {
41
93
  try {
42
94
  switch (name) {
@@ -59,14 +111,44 @@ export function callTool(root, name, args) {
59
111
  return { text: parts.join('\n\n'), isError: false };
60
112
  }
61
113
  case 'graft_blast_radius': {
62
- const file = String(args.file ?? '');
63
- if (!file)
64
- return { text: 'graft_blast_radius requires a file', isError: true };
65
- const w = readGraph(wiringPath(contextDirFor(root)));
114
+ const query = String(args.symbol ?? args.file ?? '');
115
+ if (!query)
116
+ return { text: 'graft_blast_radius requires a file or symbol', isError: true };
117
+ const w = loadGraphCached(contextDirFor(root));
118
+ if (!w)
119
+ return { text: NO_GRAPH, isError: true };
120
+ const matches = resolveSymbol(w, query);
121
+ if (matches.length === 0)
122
+ return { text: unknownSymbolText(query), isError: true };
123
+ const depth = typeof args.depth === 'number' && Number.isFinite(args.depth) && args.depth >= 1
124
+ ? args.depth
125
+ : DEFAULT_BLAST_DEPTH;
126
+ // impactOf's BFS is over incoming edges — same wording family as "callers".
127
+ // A file-kind match must aggregate impact over the file node AND every
128
+ // symbol it defines: a `calls`/`references`/etc. edge into a function
129
+ // defined in the file targets the SYMBOL id, never the FILE id, so
130
+ // walking the file node alone silently drops dependents that call
131
+ // into it rather than merely importing it. Symbol-kind matches keep
132
+ // the plain single-seed walk.
133
+ const text = renderMatches('impact', matches, (m) => m.kind === 'file' ? impactOfFile(w, m, depth) : impactOf(w, m, depth));
134
+ return { text, isError: false };
135
+ }
136
+ case 'graft_callers':
137
+ case 'graft_callees': {
138
+ const symbol = String(args.symbol ?? '');
139
+ if (!symbol)
140
+ return { text: `${name} requires a symbol`, isError: true };
141
+ const w = loadGraphCached(contextDirFor(root));
66
142
  if (!w)
67
- return { text: 'no graph found — run `graft build` first', isError: true };
68
- const br = formatBlastRadius(w, file);
69
- return { text: br ?? `no known dependents of ${file}`, isError: false };
143
+ return { text: NO_GRAPH, isError: true };
144
+ const inOpt = typeof args.in === 'string' && args.in ? { in: args.in } : {};
145
+ const matches = resolveSymbol(w, symbol, inOpt);
146
+ if (matches.length === 0)
147
+ return { text: unknownSymbolText(symbol), isError: true };
148
+ const kind = name === 'graft_callers' ? 'callers' : 'callees';
149
+ const walk = kind === 'callers' ? callersOf : calleesOf;
150
+ const text = renderMatches(kind, matches, (m) => walk(w, m));
151
+ return { text, isError: false };
70
152
  }
71
153
  default:
72
154
  return { text: `unknown tool: ${name}`, isError: true };
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nanonets/graft",
3
- "version": "0.4.3",
3
+ "version": "0.4.4",
4
4
  "description": "Build a repo's context graph as a folder of linked markdown files that live in the repo and stay in sync with the code through git.",
5
5
  "keywords": [
6
6
  "ai",