@grafema/cli 0.2.4-beta → 0.2.6-beta

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 (139) hide show
  1. package/README.md +85 -0
  2. package/dist/cli.js +7 -2
  3. package/dist/cli.js.map +1 -0
  4. package/dist/commands/analyze.d.ts +3 -1
  5. package/dist/commands/analyze.d.ts.map +1 -1
  6. package/dist/commands/analyze.js +8 -266
  7. package/dist/commands/analyze.js.map +1 -0
  8. package/dist/commands/analyzeAction.d.ts +28 -0
  9. package/dist/commands/analyzeAction.d.ts.map +1 -0
  10. package/dist/commands/analyzeAction.js +243 -0
  11. package/dist/commands/analyzeAction.js.map +1 -0
  12. package/dist/commands/check.d.ts +2 -6
  13. package/dist/commands/check.d.ts.map +1 -1
  14. package/dist/commands/check.js +34 -48
  15. package/dist/commands/check.js.map +1 -0
  16. package/dist/commands/context.d.ts +16 -0
  17. package/dist/commands/context.d.ts.map +1 -0
  18. package/dist/commands/context.js +238 -0
  19. package/dist/commands/context.js.map +1 -0
  20. package/dist/commands/coverage.js +1 -0
  21. package/dist/commands/coverage.js.map +1 -0
  22. package/dist/commands/doctor/checks.d.ts.map +1 -1
  23. package/dist/commands/doctor/checks.js +10 -6
  24. package/dist/commands/doctor/checks.js.map +1 -0
  25. package/dist/commands/doctor/output.js +1 -0
  26. package/dist/commands/doctor/output.js.map +1 -0
  27. package/dist/commands/doctor/types.js +1 -0
  28. package/dist/commands/doctor/types.js.map +1 -0
  29. package/dist/commands/doctor.js +1 -0
  30. package/dist/commands/doctor.js.map +1 -0
  31. package/dist/commands/explain.d.ts.map +1 -1
  32. package/dist/commands/explain.js +5 -3
  33. package/dist/commands/explain.js.map +1 -0
  34. package/dist/commands/explore.d.ts.map +1 -1
  35. package/dist/commands/explore.js +9 -4
  36. package/dist/commands/explore.js.map +1 -0
  37. package/dist/commands/file.d.ts +15 -0
  38. package/dist/commands/file.d.ts.map +1 -0
  39. package/dist/commands/file.js +144 -0
  40. package/dist/commands/file.js.map +1 -0
  41. package/dist/commands/get.d.ts.map +1 -1
  42. package/dist/commands/get.js +7 -0
  43. package/dist/commands/get.js.map +1 -0
  44. package/dist/commands/impact.d.ts.map +1 -1
  45. package/dist/commands/impact.js +3 -3
  46. package/dist/commands/impact.js.map +1 -0
  47. package/dist/commands/init.d.ts.map +1 -1
  48. package/dist/commands/init.js +20 -2
  49. package/dist/commands/init.js.map +1 -0
  50. package/dist/commands/ls.d.ts.map +1 -1
  51. package/dist/commands/ls.js +10 -2
  52. package/dist/commands/ls.js.map +1 -0
  53. package/dist/commands/overview.d.ts.map +1 -1
  54. package/dist/commands/overview.js +1 -0
  55. package/dist/commands/overview.js.map +1 -0
  56. package/dist/commands/query.d.ts +8 -0
  57. package/dist/commands/query.d.ts.map +1 -1
  58. package/dist/commands/query.js +217 -43
  59. package/dist/commands/query.js.map +1 -0
  60. package/dist/commands/schema.d.ts.map +1 -1
  61. package/dist/commands/schema.js +4 -2
  62. package/dist/commands/schema.js.map +1 -0
  63. package/dist/commands/server.d.ts +2 -1
  64. package/dist/commands/server.d.ts.map +1 -1
  65. package/dist/commands/server.js +76 -14
  66. package/dist/commands/server.js.map +1 -0
  67. package/dist/commands/setup-skill.d.ts +17 -0
  68. package/dist/commands/setup-skill.d.ts.map +1 -0
  69. package/dist/commands/setup-skill.js +131 -0
  70. package/dist/commands/setup-skill.js.map +1 -0
  71. package/dist/commands/stats.js +1 -0
  72. package/dist/commands/stats.js.map +1 -0
  73. package/dist/commands/trace.d.ts.map +1 -1
  74. package/dist/commands/trace.js +21 -10
  75. package/dist/commands/trace.js.map +1 -0
  76. package/dist/commands/types.js +1 -0
  77. package/dist/commands/types.js.map +1 -0
  78. package/dist/plugins/builtinPlugins.d.ts +10 -0
  79. package/dist/plugins/builtinPlugins.d.ts.map +1 -0
  80. package/dist/plugins/builtinPlugins.js +68 -0
  81. package/dist/plugins/builtinPlugins.js.map +1 -0
  82. package/dist/plugins/pluginLoader.d.ts +16 -0
  83. package/dist/plugins/pluginLoader.d.ts.map +1 -0
  84. package/dist/plugins/pluginLoader.js +101 -0
  85. package/dist/plugins/pluginLoader.js.map +1 -0
  86. package/dist/plugins/pluginResolver.js +38 -0
  87. package/dist/utils/codePreview.d.ts +1 -0
  88. package/dist/utils/codePreview.d.ts.map +1 -1
  89. package/dist/utils/codePreview.js +6 -3
  90. package/dist/utils/codePreview.js.map +1 -0
  91. package/dist/utils/errorFormatter.js +1 -0
  92. package/dist/utils/errorFormatter.js.map +1 -0
  93. package/dist/utils/formatNode.d.ts +1 -1
  94. package/dist/utils/formatNode.d.ts.map +1 -1
  95. package/dist/utils/formatNode.js +3 -2
  96. package/dist/utils/formatNode.js.map +1 -0
  97. package/dist/utils/pathUtils.d.ts +2 -0
  98. package/dist/utils/pathUtils.d.ts.map +1 -0
  99. package/dist/utils/pathUtils.js +9 -0
  100. package/dist/utils/pathUtils.js.map +1 -0
  101. package/dist/utils/progressRenderer.d.ts +119 -0
  102. package/dist/utils/progressRenderer.d.ts.map +1 -0
  103. package/dist/utils/progressRenderer.js +245 -0
  104. package/dist/utils/progressRenderer.js.map +1 -0
  105. package/dist/utils/spinner.d.ts +39 -0
  106. package/dist/utils/spinner.d.ts.map +1 -0
  107. package/dist/utils/spinner.js +84 -0
  108. package/dist/utils/spinner.js.map +1 -0
  109. package/package.json +8 -9
  110. package/skills/grafema-codebase-analysis/SKILL.md +295 -0
  111. package/skills/grafema-codebase-analysis/references/node-edge-types.md +123 -0
  112. package/skills/grafema-codebase-analysis/references/query-patterns.md +205 -0
  113. package/src/cli.ts +8 -2
  114. package/src/commands/analyze.ts +7 -342
  115. package/src/commands/analyzeAction.ts +284 -0
  116. package/src/commands/check.ts +38 -70
  117. package/src/commands/context.ts +309 -0
  118. package/src/commands/doctor/checks.ts +9 -6
  119. package/src/commands/explain.ts +4 -3
  120. package/src/commands/explore.tsx +15 -9
  121. package/src/commands/file.ts +179 -0
  122. package/src/commands/get.ts +8 -0
  123. package/src/commands/impact.ts +3 -4
  124. package/src/commands/init.ts +19 -3
  125. package/src/commands/ls.ts +11 -2
  126. package/src/commands/overview.ts +0 -4
  127. package/src/commands/query.ts +235 -44
  128. package/src/commands/schema.ts +3 -2
  129. package/src/commands/server.ts +85 -15
  130. package/src/commands/setup-skill.ts +162 -0
  131. package/src/commands/trace.ts +18 -9
  132. package/src/plugins/builtinPlugins.ts +108 -0
  133. package/src/plugins/pluginLoader.ts +123 -0
  134. package/src/plugins/pluginResolver.js +38 -0
  135. package/src/utils/codePreview.ts +7 -3
  136. package/src/utils/formatNode.ts +3 -3
  137. package/src/utils/pathUtils.ts +9 -0
  138. package/src/utils/progressRenderer.ts +288 -0
  139. package/src/utils/spinner.ts +94 -0
@@ -1,18 +1,30 @@
1
1
  /**
2
- * Server command - Manage RFDB server lifecycle
2
+ * Server command - Manage RFDB (Rega Flow Database) server lifecycle
3
3
  *
4
4
  * Provides explicit control over the RFDB server process:
5
5
  * grafema server start - Start detached server
6
6
  * grafema server stop - Stop server gracefully
7
7
  * grafema server status - Check if server is running
8
+ * grafema server graphql - Start GraphQL API server
8
9
  */
9
10
  import { Command } from 'commander';
10
11
  import { resolve, join } from 'path';
11
12
  import { existsSync, unlinkSync, writeFileSync, readFileSync } from 'fs';
12
13
  import { spawn } from 'child_process';
13
14
  import { setTimeout as sleep } from 'timers/promises';
14
- import { RFDBClient, loadConfig, findRfdbBinary, getBinaryNotFoundMessage } from '@grafema/core';
15
+ import { RFDBClient, loadConfig, RFDBServerBackend, findRfdbBinary } from '@grafema/core';
15
16
  import { exitWithError } from '../utils/errorFormatter.js';
17
+ /**
18
+ * Find RFDB server binary using shared utility.
19
+ * Wraps findRfdbBinary() with CLI-specific error logging.
20
+ */
21
+ function findServerBinary(explicitPath) {
22
+ const binaryPath = findRfdbBinary({ explicitPath });
23
+ if (!binaryPath && explicitPath) {
24
+ console.error(`Specified binary not found: ${explicitPath}`);
25
+ }
26
+ return binaryPath;
27
+ }
16
28
  /**
17
29
  * Check if server is running by attempting to ping it
18
30
  */
@@ -46,7 +58,7 @@ function getProjectPaths(projectPath) {
46
58
  }
47
59
  // Create main server command with subcommands
48
60
  export const serverCommand = new Command('server')
49
- .description('Manage RFDB server lifecycle')
61
+ .description('Manage RFDB (Rega Flow Database) server lifecycle')
50
62
  .addHelpText('after', `
51
63
  Examples:
52
64
  grafema server start Start the RFDB server
@@ -89,10 +101,10 @@ serverCommand
89
101
  unlinkSync(socketPath);
90
102
  }
91
103
  // Determine binary path: CLI flag > config > auto-detect
92
- let explicitPath;
104
+ let binaryPath = null;
93
105
  if (options.binary) {
94
106
  // Explicit --binary flag
95
- explicitPath = options.binary;
107
+ binaryPath = findServerBinary(options.binary);
96
108
  }
97
109
  else {
98
110
  // Try to read from config
@@ -100,22 +112,26 @@ serverCommand
100
112
  const config = loadConfig(projectPath);
101
113
  const serverConfig = config.server;
102
114
  if (serverConfig?.binaryPath) {
103
- explicitPath = serverConfig.binaryPath;
115
+ binaryPath = findServerBinary(serverConfig.binaryPath);
104
116
  }
105
117
  }
106
118
  catch {
107
119
  // Config not found or invalid - continue with auto-detect
108
120
  }
121
+ // Auto-detect if not specified
122
+ if (!binaryPath) {
123
+ binaryPath = findServerBinary();
124
+ }
109
125
  }
110
- const binaryPath = findRfdbBinary({ explicitPath });
111
126
  if (!binaryPath) {
112
- // If explicit path was given but not found, show specific error
113
- if (explicitPath) {
114
- exitWithError(`Specified binary not found: ${resolve(explicitPath)}`, [
115
- 'Check the path and try again'
116
- ]);
117
- }
118
- exitWithError('RFDB server binary not found', getBinaryNotFoundMessage().split('\n').slice(2));
127
+ exitWithError('RFDB server binary not found', [
128
+ 'Specify path: grafema server start --binary /path/to/rfdb-server',
129
+ 'Or add to config.yaml:',
130
+ ' server:',
131
+ ' binaryPath: /path/to/rfdb-server',
132
+ 'Or install: npm install @grafema/rfdb',
133
+ 'Or build: cargo build --release && cp target/release/rfdb-server ~/.local/bin/'
134
+ ]);
119
135
  }
120
136
  console.log(`Starting RFDB server...`);
121
137
  console.log(` Binary: ${binaryPath}`);
@@ -286,3 +302,49 @@ serverCommand
286
302
  }
287
303
  }
288
304
  });
305
+ // grafema server graphql
306
+ serverCommand
307
+ .command('graphql')
308
+ .description('Start GraphQL API server (requires RFDB server running)')
309
+ .option('-p, --project <path>', 'Project path', '.')
310
+ .option('--port <number>', 'Port to listen on', '4000')
311
+ .option('--host <string>', 'Hostname to bind to', 'localhost')
312
+ .action(async (options) => {
313
+ const projectPath = resolve(options.project);
314
+ const { socketPath } = getProjectPaths(projectPath);
315
+ // Check if RFDB server is running
316
+ const status = await isServerRunning(socketPath);
317
+ if (!status.running) {
318
+ exitWithError('RFDB server not running', [
319
+ 'Start the server first: grafema server start',
320
+ 'Or run: grafema analyze (starts server automatically)'
321
+ ]);
322
+ }
323
+ // Create backend connection
324
+ const backend = new RFDBServerBackend({ socketPath });
325
+ await backend.connect();
326
+ // Import and start GraphQL server
327
+ const { startServer } = await import('@grafema/api');
328
+ const port = parseInt(options.port, 10);
329
+ console.log('Starting Grafema GraphQL API...');
330
+ console.log(` RFDB Socket: ${socketPath}`);
331
+ if (status.version) {
332
+ console.log(` RFDB Version: ${status.version}`);
333
+ }
334
+ console.log('');
335
+ const server = startServer({
336
+ backend,
337
+ port,
338
+ hostname: options.host,
339
+ });
340
+ // Handle shutdown
341
+ const shutdown = async () => {
342
+ console.log('\nShutting down GraphQL server...');
343
+ server.close();
344
+ await backend.close();
345
+ process.exit(0);
346
+ };
347
+ process.on('SIGINT', shutdown);
348
+ process.on('SIGTERM', shutdown);
349
+ });
350
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Setup-skill command - Install Grafema Agent Skill into a project
3
+ */
4
+ import { Command } from 'commander';
5
+ interface SetupSkillOptions {
6
+ outputDir?: string;
7
+ platform?: string;
8
+ force?: boolean;
9
+ }
10
+ /**
11
+ * Install the Grafema Agent Skill into a project directory.
12
+ * Returns true if skill was installed, false if skipped.
13
+ */
14
+ export declare function installSkill(projectPath: string, options?: SetupSkillOptions): boolean;
15
+ export declare const setupSkillCommand: Command;
16
+ export {};
17
+ //# sourceMappingURL=setup-skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-skill.d.ts","sourceRoot":"","sources":["../../src/commands/setup-skill.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,UAAU,iBAAiB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAkDD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CA0B1F;AAED,eAAO,MAAM,iBAAiB,SAuD1B,CAAC"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Setup-skill command - Install Grafema Agent Skill into a project
3
+ */
4
+ import { Command } from 'commander';
5
+ import { resolve, join } from 'path';
6
+ import { existsSync, mkdirSync, readFileSync, cpSync } from 'fs';
7
+ import { fileURLToPath } from 'url';
8
+ const __dirname = fileURLToPath(new URL('.', import.meta.url));
9
+ /** Default install paths per platform */
10
+ const PLATFORM_PATHS = {
11
+ claude: '.claude/skills',
12
+ gemini: '.gemini/skills',
13
+ cursor: '.cursor/skills',
14
+ };
15
+ const SKILL_DIR_NAME = 'grafema-codebase-analysis';
16
+ /**
17
+ * Get the bundled skill source directory.
18
+ * In the published package, skills/ is at the package root alongside dist/.
19
+ */
20
+ function getSkillSourceDir() {
21
+ // __dirname is dist/commands/ -> go up to package root, then into skills/
22
+ return join(__dirname, '..', '..', 'skills', SKILL_DIR_NAME);
23
+ }
24
+ /**
25
+ * Read version from skill metadata.
26
+ */
27
+ function getSkillVersion(skillDir) {
28
+ const skillMd = join(skillDir, 'SKILL.md');
29
+ if (!existsSync(skillMd))
30
+ return null;
31
+ const content = readFileSync(skillMd, 'utf-8');
32
+ const versionMatch = content.match(/version:\s*"?([^"\n]+)"?/);
33
+ return versionMatch ? versionMatch[1].trim() : null;
34
+ }
35
+ /**
36
+ * Resolve the target directory for skill installation.
37
+ */
38
+ function resolveTargetDir(projectPath, options) {
39
+ if (options.outputDir) {
40
+ return resolve(options.outputDir, SKILL_DIR_NAME);
41
+ }
42
+ const platform = options.platform || 'claude';
43
+ const basePath = PLATFORM_PATHS[platform];
44
+ if (!basePath) {
45
+ throw new Error(`Unknown platform: ${platform}. Supported: ${Object.keys(PLATFORM_PATHS).join(', ')}`);
46
+ }
47
+ return join(projectPath, basePath, SKILL_DIR_NAME);
48
+ }
49
+ /**
50
+ * Copy skill directory recursively.
51
+ */
52
+ function copySkill(sourceDir, targetDir) {
53
+ mkdirSync(targetDir, { recursive: true });
54
+ cpSync(sourceDir, targetDir, { recursive: true });
55
+ }
56
+ /**
57
+ * Install the Grafema Agent Skill into a project directory.
58
+ * Returns true if skill was installed, false if skipped.
59
+ */
60
+ export function installSkill(projectPath, options = {}) {
61
+ const sourceDir = getSkillSourceDir();
62
+ if (!existsSync(sourceDir)) {
63
+ throw new Error(`Skill source not found at ${sourceDir}. Package may be corrupted.`);
64
+ }
65
+ const targetDir = resolveTargetDir(projectPath, options);
66
+ // Check if already installed
67
+ if (existsSync(targetDir) && !options.force) {
68
+ const installedVersion = getSkillVersion(targetDir);
69
+ const sourceVersion = getSkillVersion(sourceDir);
70
+ if (installedVersion === sourceVersion) {
71
+ return false; // Same version, skip
72
+ }
73
+ // Different version — warn but don't overwrite without --force
74
+ console.log(` Skill exists (v${installedVersion}), latest is v${sourceVersion}`);
75
+ console.log(' Use --force to update, or run: grafema setup-skill --force');
76
+ return false;
77
+ }
78
+ copySkill(sourceDir, targetDir);
79
+ return true;
80
+ }
81
+ export const setupSkillCommand = new Command('setup-skill')
82
+ .description('Install Grafema Agent Skill into your project')
83
+ .argument('[path]', 'Project path', '.')
84
+ .option('--output-dir <path>', 'Custom output directory (overrides --platform)')
85
+ .option('--platform <name>', 'Target platform: claude, gemini, cursor', 'claude')
86
+ .option('-f, --force', 'Overwrite existing skill')
87
+ .addHelpText('after', `
88
+ Examples:
89
+ grafema setup-skill Install for Claude Code (.claude/skills/)
90
+ grafema setup-skill --platform gemini Install for Gemini CLI (.gemini/skills/)
91
+ grafema setup-skill --force Update existing skill
92
+ grafema setup-skill --output-dir ./my-skills/
93
+ `)
94
+ .action(async (path, options) => {
95
+ const projectPath = resolve(path);
96
+ const sourceDir = getSkillSourceDir();
97
+ if (!existsSync(sourceDir)) {
98
+ console.error('✗ Skill source not found. Package may be corrupted.');
99
+ process.exit(1);
100
+ }
101
+ const targetDir = resolveTargetDir(projectPath, options);
102
+ // Check if already installed
103
+ if (existsSync(targetDir) && !options.force) {
104
+ const installedVersion = getSkillVersion(targetDir);
105
+ const sourceVersion = getSkillVersion(sourceDir);
106
+ if (installedVersion === sourceVersion) {
107
+ console.log(`✓ Grafema skill already installed (v${installedVersion})`);
108
+ console.log(` Location: ${targetDir}`);
109
+ return;
110
+ }
111
+ console.log(` Skill exists (v${installedVersion}), latest is v${sourceVersion}`);
112
+ console.log(' Use --force to update');
113
+ return;
114
+ }
115
+ try {
116
+ copySkill(sourceDir, targetDir);
117
+ }
118
+ catch (err) {
119
+ console.error('✗ Failed to install skill:', err.message);
120
+ process.exit(1);
121
+ }
122
+ const sourceVersion = getSkillVersion(sourceDir);
123
+ console.log(`✓ Grafema skill installed (v${sourceVersion})`);
124
+ console.log(` Location: ${targetDir}`);
125
+ console.log('');
126
+ console.log('Next steps:');
127
+ console.log(' 1. Ensure Grafema MCP server is configured in your AI agent');
128
+ console.log(' 2. Run "grafema analyze" to build the code graph');
129
+ console.log(' 3. Your AI agent will now prefer graph queries over reading files');
130
+ });
131
+ //# sourceMappingURL=setup-skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-skill.js","sourceRoot":"","sources":["../../src/commands/setup-skill.ts"],"names":[],"mappings":"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"}
@@ -57,3 +57,4 @@ Examples:
57
57
  await backend.close();
58
58
  }
59
59
  });
60
+ //# sourceMappingURL=stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/commands/trace.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,iBAAiB,EAAgC,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAgBlG;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,iBAAiB,EAAE,YAAY,EAAE,CAAC;IAClC,cAAc,EAAE,KAAK,CAAC;QACpB,KAAK,EAAE,OAAO,CAAC;QACf,OAAO,EAAE,WAAW,EAAE,CAAC;KACxB,CAAC,CAAC;IACH,UAAU,EAAE;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;CACH;AAiBD,eAAO,MAAM,YAAY,SAqHrB,CAAC;AAsOL;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAiDpD;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,iBAAiB,EAC1B,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,YAAY,EAAE,CAAC,CAoBzB;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAYxB;AAyED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,oBAAoB,CAAC,CAuE/B"}
1
+ {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/commands/trace.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,iBAAiB,EAAmD,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAgBrH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,iBAAiB,EAAE,YAAY,EAAE,CAAC;IAClC,cAAc,EAAE,KAAK,CAAC;QACpB,KAAK,EAAE,OAAO,CAAC;QACf,OAAO,EAAE,WAAW,EAAE,CAAC;KACxB,CAAC,CAAC;IACH,UAAU,EAAE;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;CACH;AAiBD,eAAO,MAAM,YAAY,SAqHrB,CAAC;AA+OL;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAiDpD;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,iBAAiB,EAC1B,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,YAAY,EAAE,CAAC,CAoBzB;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAYxB;AAyED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,oBAAoB,CAAC,CAuE/B"}
@@ -7,9 +7,9 @@
7
7
  * grafema trace --to "addNode#0.type" (sink-based trace)
8
8
  */
9
9
  import { Command } from 'commander';
10
- import { resolve, join } from 'path';
10
+ import { isAbsolute, resolve, join } from 'path';
11
11
  import { existsSync } from 'fs';
12
- import { RFDBServerBackend, parseSemanticId, traceValues } from '@grafema/core';
12
+ import { RFDBServerBackend, parseSemanticId, parseSemanticIdV2, traceValues } from '@grafema/core';
13
13
  import { formatNodeDisplay, formatNodeInline } from '../utils/formatNode.js';
14
14
  import { exitWithError } from '../utils/errorFormatter.js';
15
15
  export const traceCommand = new Command('trace')
@@ -139,12 +139,22 @@ async function findVariables(backend, varName, scopeName) {
139
139
  if (name.toLowerCase() === varName.toLowerCase()) {
140
140
  // If scope specified, check if variable is in that scope
141
141
  if (scopeName) {
142
- const parsed = parseSemanticId(node.id);
143
- if (!parsed)
144
- continue; // Skip nodes with invalid IDs
145
- // Check if scopeName appears anywhere in the scope chain
146
- if (!parsed.scopePath.some(s => s.toLowerCase() === lowerScopeName)) {
147
- continue;
142
+ // Try v2 parsing first
143
+ const parsedV2 = parseSemanticIdV2(node.id);
144
+ if (parsedV2) {
145
+ if (!parsedV2.namedParent || parsedV2.namedParent.toLowerCase() !== lowerScopeName) {
146
+ continue;
147
+ }
148
+ }
149
+ else {
150
+ // Fallback to v1 parsing
151
+ const parsed = parseSemanticId(node.id);
152
+ if (!parsed)
153
+ continue; // Skip nodes with invalid IDs
154
+ // Check if scopeName appears anywhere in the scope chain
155
+ if (!parsed.scopePath.some(s => s.toLowerCase() === lowerScopeName)) {
156
+ continue;
157
+ }
148
158
  }
149
159
  }
150
160
  results.push({
@@ -559,7 +569,7 @@ async function handleSinkTrace(backend, sinkSpec, projectPath, jsonOutput) {
559
569
  const sourcesCount = pv.sources.length;
560
570
  console.log(` - ${JSON.stringify(pv.value)} (${sourcesCount} source${sourcesCount === 1 ? '' : 's'})`);
561
571
  for (const src of pv.sources.slice(0, 3)) {
562
- const relativePath = src.file.startsWith(projectPath)
572
+ const relativePath = isAbsolute(src.file)
563
573
  ? src.file.substring(projectPath.length + 1)
564
574
  : src.file;
565
575
  console.log(` <- ${relativePath}:${src.line}`);
@@ -683,7 +693,7 @@ async function handleRouteTrace(backend, pattern, projectPath, jsonOutput, maxDe
683
693
  });
684
694
  // Format traced values
685
695
  const sources = await Promise.all(traced.map(async (t) => {
686
- const relativePath = t.source.file.startsWith(projectPath)
696
+ const relativePath = isAbsolute(t.source.file)
687
697
  ? t.source.file.substring(projectPath.length + 1)
688
698
  : t.source.file;
689
699
  if (t.isUnknown) {
@@ -763,3 +773,4 @@ async function handleRouteTrace(backend, pattern, projectPath, jsonOutput, maxDe
763
773
  }
764
774
  }
765
775
  }
776
+ //# sourceMappingURL=trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/commands/trace.ts"],"names":[],"mappings":"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"}
@@ -77,3 +77,4 @@ Use with query --type:
77
77
  await backend.close();
78
78
  }
79
79
  });
80
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/commands/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Built-in plugin registry — maps plugin names to factory functions.
3
+ *
4
+ * Each entry creates a fresh plugin instance. Plugin names match the class names
5
+ * and are referenced by name in .grafema/config.yaml under phases:
6
+ * discovery, indexing, analysis, enrichment, validation.
7
+ */
8
+ import type { Plugin } from '@grafema/core';
9
+ export declare const BUILTIN_PLUGINS: Record<string, () => Plugin>;
10
+ //# sourceMappingURL=builtinPlugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtinPlugins.d.ts","sourceRoot":"","sources":["../../src/plugins/builtinPlugins.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAmD5C,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,MAAM,CAgDxD,CAAC"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Built-in plugin registry — maps plugin names to factory functions.
3
+ *
4
+ * Each entry creates a fresh plugin instance. Plugin names match the class names
5
+ * and are referenced by name in .grafema/config.yaml under phases:
6
+ * discovery, indexing, analysis, enrichment, validation.
7
+ */
8
+ import {
9
+ // Discovery
10
+ SimpleProjectDiscovery, MonorepoServiceDiscovery, WorkspaceDiscovery,
11
+ // Indexing
12
+ JSModuleIndexer, RustModuleIndexer,
13
+ // Analysis
14
+ JSASTAnalyzer, ExpressRouteAnalyzer, ExpressResponseAnalyzer, NestJSRouteAnalyzer, SocketIOAnalyzer, DatabaseAnalyzer, FetchAnalyzer, ServiceLayerAnalyzer, ReactAnalyzer, RustAnalyzer,
15
+ // Enrichment
16
+ MethodCallResolver, ArgumentParameterLinker, AliasTracker, ValueDomainAnalyzer, MountPointResolver, ExpressHandlerLinker, PrefixEvaluator, InstanceOfResolver, ImportExportLinker, FunctionCallResolver, HTTPConnectionEnricher, ConfigRoutingMapBuilder, ServiceConnectionEnricher, RustFFIEnricher, RejectionPropagationEnricher, CallbackCallResolver,
17
+ // Validation
18
+ CallResolverValidator, EvalBanValidator, SQLInjectionValidator, AwaitInLoopValidator, ShadowingDetector, GraphConnectivityValidator, DataFlowValidator, TypeScriptDeadCodeValidator, BrokenImportValidator, UnconnectedRouteValidator, PackageCoverageValidator, } from '@grafema/core';
19
+ export const BUILTIN_PLUGINS = {
20
+ // Discovery
21
+ SimpleProjectDiscovery: () => new SimpleProjectDiscovery(),
22
+ MonorepoServiceDiscovery: () => new MonorepoServiceDiscovery(),
23
+ WorkspaceDiscovery: () => new WorkspaceDiscovery(),
24
+ // Indexing
25
+ JSModuleIndexer: () => new JSModuleIndexer(),
26
+ RustModuleIndexer: () => new RustModuleIndexer(),
27
+ // Analysis
28
+ JSASTAnalyzer: () => new JSASTAnalyzer(),
29
+ ExpressRouteAnalyzer: () => new ExpressRouteAnalyzer(),
30
+ ExpressResponseAnalyzer: () => new ExpressResponseAnalyzer(),
31
+ NestJSRouteAnalyzer: () => new NestJSRouteAnalyzer(),
32
+ SocketIOAnalyzer: () => new SocketIOAnalyzer(),
33
+ DatabaseAnalyzer: () => new DatabaseAnalyzer(),
34
+ FetchAnalyzer: () => new FetchAnalyzer(),
35
+ ServiceLayerAnalyzer: () => new ServiceLayerAnalyzer(),
36
+ ReactAnalyzer: () => new ReactAnalyzer(),
37
+ RustAnalyzer: () => new RustAnalyzer(),
38
+ // Enrichment
39
+ MethodCallResolver: () => new MethodCallResolver(),
40
+ ArgumentParameterLinker: () => new ArgumentParameterLinker(),
41
+ AliasTracker: () => new AliasTracker(),
42
+ ValueDomainAnalyzer: () => new ValueDomainAnalyzer(),
43
+ MountPointResolver: () => new MountPointResolver(),
44
+ ExpressHandlerLinker: () => new ExpressHandlerLinker(),
45
+ PrefixEvaluator: () => new PrefixEvaluator(),
46
+ InstanceOfResolver: () => new InstanceOfResolver(),
47
+ ImportExportLinker: () => new ImportExportLinker(),
48
+ FunctionCallResolver: () => new FunctionCallResolver(),
49
+ HTTPConnectionEnricher: () => new HTTPConnectionEnricher(),
50
+ ConfigRoutingMapBuilder: () => new ConfigRoutingMapBuilder(),
51
+ ServiceConnectionEnricher: () => new ServiceConnectionEnricher(),
52
+ RustFFIEnricher: () => new RustFFIEnricher(),
53
+ RejectionPropagationEnricher: () => new RejectionPropagationEnricher(),
54
+ CallbackCallResolver: () => new CallbackCallResolver(),
55
+ // Validation
56
+ CallResolverValidator: () => new CallResolverValidator(),
57
+ EvalBanValidator: () => new EvalBanValidator(),
58
+ SQLInjectionValidator: () => new SQLInjectionValidator(),
59
+ AwaitInLoopValidator: () => new AwaitInLoopValidator(),
60
+ ShadowingDetector: () => new ShadowingDetector(),
61
+ GraphConnectivityValidator: () => new GraphConnectivityValidator(),
62
+ DataFlowValidator: () => new DataFlowValidator(),
63
+ TypeScriptDeadCodeValidator: () => new TypeScriptDeadCodeValidator(),
64
+ BrokenImportValidator: () => new BrokenImportValidator(),
65
+ UnconnectedRouteValidator: () => new UnconnectedRouteValidator(),
66
+ PackageCoverageValidator: () => new PackageCoverageValidator(),
67
+ };
68
+ //# sourceMappingURL=builtinPlugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtinPlugins.js","sourceRoot":"","sources":["../../src/plugins/builtinPlugins.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Plugin loading — resolves built-in and custom plugins from config.
3
+ *
4
+ * Handles:
5
+ * - ESM resolve hook for custom plugin @grafema/* imports
6
+ * - Loading custom plugins from .grafema/plugins/
7
+ * - Creating plugin instances from config phases
8
+ */
9
+ import type { Plugin, GrafemaConfig } from '@grafema/core';
10
+ export declare function registerPluginResolver(): void;
11
+ /**
12
+ * Load custom plugins from .grafema/plugins/ directory
13
+ */
14
+ export declare function loadCustomPlugins(projectPath: string, log: (msg: string) => void): Promise<Record<string, () => Plugin>>;
15
+ export declare function createPlugins(config: GrafemaConfig['plugins'], customPlugins?: Record<string, () => Plugin>, verbose?: boolean): Plugin[];
16
+ //# sourceMappingURL=pluginLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginLoader.d.ts","sourceRoot":"","sources":["../../src/plugins/pluginLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAgB3D,wBAAgB,sBAAsB,IAAI,IAAI,CAiB7C;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACzB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,CAAC,CA2CvC;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,EAChC,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,MAAM,CAAM,EAChD,OAAO,GAAE,OAAe,GACvB,MAAM,EAAE,CAmBV"}