cgb-builder 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +369 -0
  3. package/dist/bundle/generator.d.ts +51 -0
  4. package/dist/bundle/generator.d.ts.map +1 -0
  5. package/dist/bundle/generator.js +291 -0
  6. package/dist/bundle/generator.js.map +1 -0
  7. package/dist/cli/index.d.ts +7 -0
  8. package/dist/cli/index.d.ts.map +1 -0
  9. package/dist/cli/index.js +388 -0
  10. package/dist/cli/index.js.map +1 -0
  11. package/dist/graph/db.d.ts +43 -0
  12. package/dist/graph/db.d.ts.map +1 -0
  13. package/dist/graph/db.js +321 -0
  14. package/dist/graph/db.js.map +1 -0
  15. package/dist/graph/engine.d.ts +62 -0
  16. package/dist/graph/engine.d.ts.map +1 -0
  17. package/dist/graph/engine.js +246 -0
  18. package/dist/graph/engine.js.map +1 -0
  19. package/dist/index.d.ts +13 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +22 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/mcp/server.d.ts +17 -0
  24. package/dist/mcp/server.d.ts.map +1 -0
  25. package/dist/mcp/server.js +458 -0
  26. package/dist/mcp/server.js.map +1 -0
  27. package/dist/parser/adapter.d.ts +10 -0
  28. package/dist/parser/adapter.d.ts.map +1 -0
  29. package/dist/parser/adapter.js +6 -0
  30. package/dist/parser/adapter.js.map +1 -0
  31. package/dist/parser/adapters/csharp.d.ts +24 -0
  32. package/dist/parser/adapters/csharp.d.ts.map +1 -0
  33. package/dist/parser/adapters/csharp.js +318 -0
  34. package/dist/parser/adapters/csharp.js.map +1 -0
  35. package/dist/parser/adapters/go.d.ts +21 -0
  36. package/dist/parser/adapters/go.d.ts.map +1 -0
  37. package/dist/parser/adapters/go.js +186 -0
  38. package/dist/parser/adapters/go.js.map +1 -0
  39. package/dist/parser/adapters/java.d.ts +22 -0
  40. package/dist/parser/adapters/java.d.ts.map +1 -0
  41. package/dist/parser/adapters/java.js +235 -0
  42. package/dist/parser/adapters/java.js.map +1 -0
  43. package/dist/parser/adapters/python.d.ts +19 -0
  44. package/dist/parser/adapters/python.d.ts.map +1 -0
  45. package/dist/parser/adapters/python.js +201 -0
  46. package/dist/parser/adapters/python.js.map +1 -0
  47. package/dist/parser/adapters/typescript.d.ts +24 -0
  48. package/dist/parser/adapters/typescript.d.ts.map +1 -0
  49. package/dist/parser/adapters/typescript.js +349 -0
  50. package/dist/parser/adapters/typescript.js.map +1 -0
  51. package/dist/parser/index.d.ts +42 -0
  52. package/dist/parser/index.d.ts.map +1 -0
  53. package/dist/parser/index.js +191 -0
  54. package/dist/parser/index.js.map +1 -0
  55. package/dist/parser/tree-sitter-engine.d.ts +25 -0
  56. package/dist/parser/tree-sitter-engine.d.ts.map +1 -0
  57. package/dist/parser/tree-sitter-engine.js +107 -0
  58. package/dist/parser/tree-sitter-engine.js.map +1 -0
  59. package/dist/parser/utils.d.ts +19 -0
  60. package/dist/parser/utils.d.ts.map +1 -0
  61. package/dist/parser/utils.js +111 -0
  62. package/dist/parser/utils.js.map +1 -0
  63. package/dist/types.d.ts +93 -0
  64. package/dist/types.d.ts.map +1 -0
  65. package/dist/types.js +16 -0
  66. package/dist/types.js.map +1 -0
  67. package/dist/watcher/index.d.ts +36 -0
  68. package/dist/watcher/index.d.ts.map +1 -0
  69. package/dist/watcher/index.js +139 -0
  70. package/dist/watcher/index.js.map +1 -0
  71. package/package.json +81 -0
@@ -0,0 +1,291 @@
1
+ "use strict";
2
+ /**
3
+ * AI Context Bundle Generator.
4
+ *
5
+ * Generates a compact, AI-optimized Markdown document from the graph that
6
+ * contains exactly the context needed for a task — no more, no less.
7
+ *
8
+ * Bundle anatomy:
9
+ * 1. Header — project root, generated-at, root file
10
+ * 2. Graph overview — stats, layers
11
+ * 3. Target file summary — nodes in this file
12
+ * 4. Direct dependencies — what this file imports (signatures only)
13
+ * 5. Reverse dependencies — who imports this file (impact surface)
14
+ * 6. Call chain — functions called and their call graph
15
+ * 7. Inheritance hierarchy — class/interface relationships
16
+ * 8. Source file — actual source of the root file
17
+ */
18
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ var desc = Object.getOwnPropertyDescriptor(m, k);
21
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
22
+ desc = { enumerable: true, get: function() { return m[k]; } };
23
+ }
24
+ Object.defineProperty(o, k2, desc);
25
+ }) : (function(o, m, k, k2) {
26
+ if (k2 === undefined) k2 = k;
27
+ o[k2] = m[k];
28
+ }));
29
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
30
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
31
+ }) : function(o, v) {
32
+ o["default"] = v;
33
+ });
34
+ var __importStar = (this && this.__importStar) || (function () {
35
+ var ownKeys = function(o) {
36
+ ownKeys = Object.getOwnPropertyNames || function (o) {
37
+ var ar = [];
38
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
39
+ return ar;
40
+ };
41
+ return ownKeys(o);
42
+ };
43
+ return function (mod) {
44
+ if (mod && mod.__esModule) return mod;
45
+ var result = {};
46
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
47
+ __setModuleDefault(result, mod);
48
+ return result;
49
+ };
50
+ })();
51
+ Object.defineProperty(exports, "__esModule", { value: true });
52
+ exports.BundleGenerator = void 0;
53
+ const fs = __importStar(require("fs"));
54
+ const path = __importStar(require("path"));
55
+ /** Rough token estimate: 1 token ≈ 4 characters */
56
+ function estimateTokens(text) {
57
+ return Math.ceil(text.length / 4);
58
+ }
59
+ const DEFAULT_OPTIONS = {
60
+ depth: 2,
61
+ includeSource: true,
62
+ maxDependencyLines: 30,
63
+ };
64
+ class BundleGenerator {
65
+ db;
66
+ engine;
67
+ projectRoot;
68
+ constructor(db, engine, projectRoot) {
69
+ this.db = db;
70
+ this.engine = engine;
71
+ this.projectRoot = projectRoot;
72
+ }
73
+ /**
74
+ * Generate a context bundle for a given file or node ID.
75
+ */
76
+ generate(filePathOrNodeId, opts = {}) {
77
+ const options = { ...DEFAULT_OPTIONS, ...opts };
78
+ const sections = [];
79
+ // Resolve to an absolute file path
80
+ const filePath = this.resolveTarget(filePathOrNodeId);
81
+ const relPath = path.relative(this.projectRoot, filePath).replace(/\\/g, '/');
82
+ // ── 1. Header ─────────────────────────────────────────────────────────────
83
+ sections.push(this.buildHeader(relPath));
84
+ // ── 2. Graph overview ────────────────────────────────────────────────────
85
+ sections.push(this.buildGraphOverview());
86
+ // ── 3. Target file nodes ─────────────────────────────────────────────────
87
+ sections.push(this.buildFileNodes(filePath, relPath));
88
+ // ── 4. Direct imports ────────────────────────────────────────────────────
89
+ const fileNodeId = `file:${filePath}`;
90
+ const depsResult = this.engine.deps(fileNodeId, options.depth);
91
+ if (depsResult) {
92
+ sections.push(this.buildDepsSection(depsResult.direct, depsResult.transitive, options));
93
+ }
94
+ // ── 5. Who imports this file (reverse impact) ────────────────────────────
95
+ sections.push(this.buildReverseImporters(fileNodeId));
96
+ // ── 6. Class hierarchy ───────────────────────────────────────────────────
97
+ sections.push(this.buildClassHierarchy(filePath));
98
+ // ── 7. Source file ───────────────────────────────────────────────────────
99
+ if (options.includeSource && fs.existsSync(filePath)) {
100
+ sections.push(this.buildSourceSection(filePath, relPath));
101
+ }
102
+ // Filter empty sections
103
+ const nonEmpty = sections.filter((s) => s.content.trim().length > 0);
104
+ const totalTokens = nonEmpty.reduce((sum, s) => sum + s.tokenEstimate, 0);
105
+ return {
106
+ generatedAt: new Date().toISOString(),
107
+ rootFile: relPath,
108
+ totalTokenEstimate: totalTokens,
109
+ sections: nonEmpty,
110
+ };
111
+ }
112
+ /**
113
+ * Render a bundle to a Markdown string ready for injection into an AI prompt.
114
+ */
115
+ render(bundle) {
116
+ const lines = [
117
+ `<!-- CODE GRAPH BUNDLE | ${bundle.rootFile} | ${bundle.generatedAt} | ~${bundle.totalTokenEstimate} tokens -->`,
118
+ '',
119
+ ];
120
+ for (const section of bundle.sections) {
121
+ lines.push(`## ${section.title}`);
122
+ lines.push('');
123
+ lines.push(section.content);
124
+ lines.push('');
125
+ }
126
+ return lines.join('\n');
127
+ }
128
+ // ─── Section builders ──────────────────────────────────────────────────────
129
+ buildHeader(relPath) {
130
+ const stats = this.db.getStats();
131
+ const content = [
132
+ `**Target file:** \`${relPath}\``,
133
+ `**Project root:** \`${this.projectRoot}\``,
134
+ `**Graph:** ${stats.files} files · ${stats.nodes} nodes · ${stats.edges} edges`,
135
+ ].join('\n');
136
+ return { title: 'Context Bundle', content, tokenEstimate: estimateTokens(content) };
137
+ }
138
+ buildGraphOverview() {
139
+ const layers = this.engine.layers();
140
+ if (layers.length === 0) {
141
+ return { title: 'Architecture Layers', content: '_No layers detected._', tokenEstimate: 5 };
142
+ }
143
+ const lines = ['| Layer | Files | Node Types |', '|-------|-------|-----------|'];
144
+ for (const layer of layers.slice(0, 12)) {
145
+ const kindStr = Object.entries(layer.kinds)
146
+ .filter(([k]) => k !== 'file')
147
+ .map(([k, c]) => `${k}:${c}`)
148
+ .join(', ');
149
+ lines.push(`| \`${layer.layer}\` | ${layer.nodeCount} | ${kindStr || '—'} |`);
150
+ }
151
+ const content = lines.join('\n');
152
+ return { title: 'Architecture Layers', content, tokenEstimate: estimateTokens(content) };
153
+ }
154
+ buildFileNodes(filePath, relPath) {
155
+ const nodes = this.db.getNodesByFile(filePath).filter((n) => n.kind !== 'file');
156
+ if (nodes.length === 0) {
157
+ return {
158
+ title: `Symbols in \`${relPath}\``,
159
+ content: '_No symbols found._',
160
+ tokenEstimate: 5,
161
+ };
162
+ }
163
+ const lines = [];
164
+ const grouped = this.groupByKind(nodes);
165
+ for (const [kind, kindNodes] of Object.entries(grouped)) {
166
+ lines.push(`**${capitalize(kind)}s**`);
167
+ for (const node of kindNodes) {
168
+ lines.push(`- \`${node.name}\` — ${node.description}`);
169
+ }
170
+ }
171
+ const content = lines.join('\n');
172
+ return {
173
+ title: `Symbols in \`${relPath}\``,
174
+ content,
175
+ tokenEstimate: estimateTokens(content),
176
+ };
177
+ }
178
+ buildDepsSection(direct, transitive, options) {
179
+ const lines = [];
180
+ if (direct.length === 0) {
181
+ return { title: 'Dependencies', content: '_No imports._', tokenEstimate: 3 };
182
+ }
183
+ lines.push(`**Direct imports** (${direct.length})`);
184
+ for (const dep of direct) {
185
+ const relDep = dep.isExternal
186
+ ? dep.name
187
+ : path.relative(this.projectRoot, dep.filePath).replace(/\\/g, '/');
188
+ lines.push(`- \`${relDep}\` [${dep.kind}]${dep.description ? ` — ${dep.description}` : ''}`);
189
+ }
190
+ if (transitive.length > 0 && options.depth > 1) {
191
+ lines.push('');
192
+ lines.push(`**Transitive imports** (${transitive.length} total)`);
193
+ const nonExternal = transitive.filter((n) => !n.isExternal).slice(0, 10);
194
+ for (const dep of nonExternal) {
195
+ const relDep = path.relative(this.projectRoot, dep.filePath).replace(/\\/g, '/');
196
+ lines.push(`- \`${relDep}\``);
197
+ }
198
+ if (transitive.length > 10) {
199
+ lines.push(`- _… and ${transitive.length - 10} more_`);
200
+ }
201
+ }
202
+ const content = lines.join('\n');
203
+ return { title: 'Dependencies', content, tokenEstimate: estimateTokens(content) };
204
+ }
205
+ buildReverseImporters(fileNodeId) {
206
+ const edges = this.db.getEdgesToByKind(fileNodeId, 'imports');
207
+ if (edges.length === 0) {
208
+ return {
209
+ title: 'Imported By',
210
+ content: '_Not imported by any tracked file._',
211
+ tokenEstimate: 5,
212
+ };
213
+ }
214
+ const lines = [`**${edges.length} file(s) import this module:**`];
215
+ for (const edge of edges.slice(0, 20)) {
216
+ const from = this.db.getNode(edge.fromId);
217
+ if (!from)
218
+ continue;
219
+ const relPath = from.isExternal
220
+ ? from.name
221
+ : path.relative(this.projectRoot, from.filePath).replace(/\\/g, '/');
222
+ lines.push(`- \`${relPath}\` — ${edge.reason}`);
223
+ }
224
+ if (edges.length > 20) {
225
+ lines.push(`- _… and ${edges.length - 20} more_`);
226
+ }
227
+ const content = lines.join('\n');
228
+ return { title: 'Imported By', content, tokenEstimate: estimateTokens(content) };
229
+ }
230
+ buildClassHierarchy(filePath) {
231
+ const classNodes = this.db
232
+ .getNodesByFile(filePath)
233
+ .filter((n) => n.kind === 'class' || n.kind === 'interface');
234
+ if (classNodes.length === 0) {
235
+ return { title: 'Class Hierarchy', content: '', tokenEstimate: 0 };
236
+ }
237
+ const lines = [];
238
+ for (const cls of classNodes) {
239
+ // Find what this class inherits
240
+ const inheritsEdges = this.db.getEdgesFromByKind(cls.id, 'inherits');
241
+ const implementsEdges = this.db.getEdgesFromByKind(cls.id, 'implements');
242
+ // Find what implements/extends this
243
+ const subclasses = this.db.getEdgesToByKind(cls.id, 'inherits');
244
+ lines.push(`**\`${cls.name}\`** [${cls.kind}]`);
245
+ for (const e of inheritsEdges) {
246
+ const parent = this.db.getNode(e.toId);
247
+ lines.push(` ↑ extends \`${parent?.name ?? e.toId}\``);
248
+ }
249
+ for (const e of implementsEdges) {
250
+ const iface = this.db.getNode(e.toId);
251
+ lines.push(` ↑ implements \`${iface?.name ?? e.toId}\``);
252
+ }
253
+ for (const e of subclasses) {
254
+ const child = this.db.getNode(e.fromId);
255
+ lines.push(` ↓ extended by \`${child?.name ?? e.fromId}\``);
256
+ }
257
+ }
258
+ const content = lines.join('\n');
259
+ return { title: 'Class Hierarchy', content, tokenEstimate: estimateTokens(content) };
260
+ }
261
+ buildSourceSection(filePath, relPath) {
262
+ const source = fs.readFileSync(filePath, 'utf-8');
263
+ const ext = path.extname(filePath).slice(1);
264
+ const content = `\`\`\`${ext}\n${source}\n\`\`\``;
265
+ return {
266
+ title: `Source: \`${relPath}\``,
267
+ content,
268
+ tokenEstimate: estimateTokens(content),
269
+ };
270
+ }
271
+ // ─── Helpers ───────────────────────────────────────────────────────────────
272
+ resolveTarget(target) {
273
+ if (path.isAbsolute(target))
274
+ return target;
275
+ return path.resolve(this.projectRoot, target);
276
+ }
277
+ groupByKind(nodes) {
278
+ const groups = {};
279
+ for (const node of nodes) {
280
+ if (!groups[node.kind])
281
+ groups[node.kind] = [];
282
+ groups[node.kind].push(node);
283
+ }
284
+ return groups;
285
+ }
286
+ }
287
+ exports.BundleGenerator = BundleGenerator;
288
+ function capitalize(s) {
289
+ return s.charAt(0).toUpperCase() + s.slice(1);
290
+ }
291
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/bundle/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Code Graph Builder CLI
4
+ * Usage: cgb <command> [options]
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;GAGG"}