@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
@@ -0,0 +1,243 @@
1
+ /**
2
+ * Analyze command action — connects to RFDB, loads plugins, runs Orchestrator.
3
+ *
4
+ * Extracted from analyze.ts (REG-435) to keep command definition separate
5
+ * from execution logic.
6
+ */
7
+ import { resolve, join } from 'path';
8
+ import { existsSync, mkdirSync } from 'fs';
9
+ import { Orchestrator, RFDBServerBackend, DiagnosticReporter, DiagnosticWriter, createLogger, loadConfig, StrictModeFailure, } from '@grafema/core';
10
+ import { ProgressRenderer } from '../utils/progressRenderer.js';
11
+ import { loadCustomPlugins, createPlugins } from '../plugins/pluginLoader.js';
12
+ export async function fetchNodeEdgeCounts(backend) {
13
+ const [nodeCount, edgeCount] = await Promise.all([backend.nodeCount(), backend.edgeCount()]);
14
+ return { nodeCount, edgeCount };
15
+ }
16
+ export function exitWithCode(code, exitFn = process.exit) {
17
+ exitFn(code);
18
+ }
19
+ /**
20
+ * Determine log level from CLI options.
21
+ * Priority: --log-level > --quiet > --verbose > default ('silent')
22
+ *
23
+ * By default, logs are silent to allow clean progress UI.
24
+ * Use --verbose to see detailed logs (disables interactive progress).
25
+ */
26
+ function getLogLevel(options) {
27
+ if (options.logLevel) {
28
+ const validLevels = ['silent', 'errors', 'warnings', 'info', 'debug'];
29
+ if (validLevels.includes(options.logLevel)) {
30
+ return options.logLevel;
31
+ }
32
+ }
33
+ if (options.quiet)
34
+ return 'silent';
35
+ if (options.verbose)
36
+ return 'info'; // --verbose shows logs instead of progress UI
37
+ return 'silent'; // Default: silent logs, clean progress UI
38
+ }
39
+ export async function analyzeAction(path, options) {
40
+ const projectPath = resolve(path);
41
+ const grafemaDir = join(projectPath, '.grafema');
42
+ const dbPath = join(grafemaDir, 'graph.rfdb');
43
+ if (!existsSync(grafemaDir)) {
44
+ mkdirSync(grafemaDir, { recursive: true });
45
+ }
46
+ // Two log levels for CLI output:
47
+ // - info: important results (shows unless --quiet)
48
+ // - debug: verbose details (shows only with --verbose)
49
+ const info = options.quiet ? () => { } : console.log;
50
+ const debug = options.verbose ? console.log : () => { };
51
+ // Create logger based on CLI flags
52
+ const logLevel = getLogLevel(options);
53
+ const logFile = options.logFile ? resolve(options.logFile) : undefined;
54
+ const logger = createLogger(logLevel, logFile ? { logFile } : undefined);
55
+ if (logFile) {
56
+ debug(`Log file: ${logFile}`);
57
+ }
58
+ debug(`Analyzing project: ${projectPath}`);
59
+ // Connect to RFDB server
60
+ // Default: require explicit `grafema server start`
61
+ // Use --auto-start for CI or backwards compatibility
62
+ // In normal mode (not verbose), suppress backend logs for clean progress UI
63
+ const backend = new RFDBServerBackend({
64
+ dbPath,
65
+ autoStart: options.autoStart ?? false,
66
+ silent: !options.verbose // Silent in normal mode (show progress), verbose shows logs
67
+ });
68
+ try {
69
+ await backend.connect();
70
+ }
71
+ catch (err) {
72
+ if (!options.autoStart && err instanceof Error && err.message.includes('not running')) {
73
+ console.error('');
74
+ console.error('RFDB server is not running.');
75
+ console.error('');
76
+ console.error('Start the server first:');
77
+ console.error(' grafema server start');
78
+ console.error('');
79
+ console.error('Or use --auto-start flag:');
80
+ console.error(' grafema analyze --auto-start');
81
+ console.error('');
82
+ process.exit(1);
83
+ }
84
+ throw err;
85
+ }
86
+ if (options.clear) {
87
+ debug('Clearing existing database...');
88
+ await backend.clear();
89
+ }
90
+ const config = loadConfig(projectPath, logger);
91
+ // Extract services from config (REG-174)
92
+ if (config.services.length > 0) {
93
+ debug(`Loaded ${config.services.length} service(s) from config`);
94
+ for (const svc of config.services) {
95
+ const entry = svc.entryPoint ? ` (entry: ${svc.entryPoint})` : '';
96
+ debug(` - ${svc.name}: ${svc.path}${entry}`);
97
+ }
98
+ }
99
+ // Load custom plugins from .grafema/plugins/
100
+ const customPlugins = await loadCustomPlugins(projectPath, debug);
101
+ const plugins = createPlugins(config.plugins, customPlugins, options.verbose);
102
+ debug(`Loaded ${plugins.length} plugins`);
103
+ // Resolve strict mode: CLI flag overrides config
104
+ const strictMode = options.strict ?? config.strict ?? false;
105
+ if (strictMode) {
106
+ debug('Strict mode enabled - analysis will fail on unresolved references');
107
+ }
108
+ const startTime = Date.now();
109
+ // Create progress renderer for CLI output
110
+ // In quiet mode, use a no-op renderer (skip rendering)
111
+ // In verbose mode, use non-interactive (newlines per update)
112
+ // In normal mode, use interactive (spinner with line overwrite)
113
+ const renderer = options.quiet
114
+ ? null
115
+ : new ProgressRenderer({
116
+ isInteractive: !options.verbose && process.stdout.isTTY,
117
+ });
118
+ // Poll graph stats periodically to show node/edge counts in progress
119
+ let statsInterval = null;
120
+ if (renderer && !options.quiet) {
121
+ statsInterval = setInterval(async () => {
122
+ try {
123
+ const stats = await fetchNodeEdgeCounts(backend);
124
+ renderer.setStats(stats.nodeCount, stats.edgeCount);
125
+ }
126
+ catch {
127
+ // Ignore stats errors during analysis
128
+ }
129
+ }, 500); // Poll every 500ms
130
+ statsInterval.unref?.();
131
+ }
132
+ const orchestrator = new Orchestrator({
133
+ graph: backend,
134
+ plugins,
135
+ serviceFilter: options.service || null,
136
+ entrypoint: options.entrypoint,
137
+ forceAnalysis: options.clear || false,
138
+ logger,
139
+ services: config.services.length > 0 ? config.services : undefined, // Pass config services (REG-174)
140
+ strictMode, // REG-330: Pass strict mode flag
141
+ onProgress: (progress) => {
142
+ renderer?.update(progress);
143
+ },
144
+ });
145
+ let exitCode = 0;
146
+ try {
147
+ await orchestrator.run(projectPath);
148
+ await backend.flush();
149
+ const elapsedSeconds = (Date.now() - startTime) / 1000;
150
+ const stats = await fetchNodeEdgeCounts(backend);
151
+ // Clear progress line in interactive mode, then show results
152
+ if (renderer && process.stdout.isTTY) {
153
+ process.stdout.write('\r\x1b[K'); // Clear line
154
+ }
155
+ info('');
156
+ info(renderer ? renderer.finish(elapsedSeconds) : `Analysis complete in ${elapsedSeconds.toFixed(2)}s`);
157
+ info(` Nodes: ${stats.nodeCount}`);
158
+ info(` Edges: ${stats.edgeCount}`);
159
+ // Get diagnostics and report summary
160
+ const diagnostics = orchestrator.getDiagnostics();
161
+ const reporter = new DiagnosticReporter(diagnostics);
162
+ // Print summary if there are any issues
163
+ if (diagnostics.count() > 0) {
164
+ info('');
165
+ info(reporter.categorizedSummary());
166
+ // In verbose mode, print full report
167
+ if (options.verbose) {
168
+ debug('');
169
+ debug(reporter.report({ format: 'text', includeSummary: false }));
170
+ }
171
+ }
172
+ // Always write diagnostics.log (required for `grafema check` command)
173
+ const writer = new DiagnosticWriter();
174
+ await writer.write(diagnostics, grafemaDir);
175
+ if (options.debug) {
176
+ debug(`Diagnostics written to ${writer.getLogPath(grafemaDir)}`);
177
+ }
178
+ // Determine exit code based on severity
179
+ if (diagnostics.hasFatal()) {
180
+ exitCode = 1;
181
+ }
182
+ else if (diagnostics.hasErrors()) {
183
+ exitCode = 2; // Completed with errors
184
+ }
185
+ else {
186
+ exitCode = 0; // Success (maybe warnings)
187
+ }
188
+ }
189
+ catch (e) {
190
+ const diagnostics = orchestrator.getDiagnostics();
191
+ const reporter = new DiagnosticReporter(diagnostics);
192
+ // Clear progress line in interactive mode
193
+ if (renderer && process.stdout.isTTY) {
194
+ process.stdout.write('\r\x1b[K');
195
+ }
196
+ // Check if this is a strict mode failure (REG-332: structured output)
197
+ if (e instanceof StrictModeFailure) {
198
+ // Format ONLY from diagnostics, not from error.message
199
+ console.error('');
200
+ console.error(`✗ Strict mode: ${e.count} unresolved reference(s) found during ENRICHMENT.`);
201
+ console.error('');
202
+ console.error(reporter.formatStrict(e.diagnostics, {
203
+ verbose: options.verbose,
204
+ suppressedCount: e.suppressedCount, // REG-332
205
+ }));
206
+ console.error('');
207
+ console.error('Run without --strict for graceful degradation, or fix the underlying issues.');
208
+ }
209
+ else {
210
+ // Generic error handling (non-strict)
211
+ const error = e instanceof Error ? e : new Error(String(e));
212
+ console.error('');
213
+ console.error(`✗ Analysis failed: ${error.message}`);
214
+ console.error('');
215
+ console.error('→ Run with --debug for detailed diagnostics');
216
+ if (diagnostics.count() > 0) {
217
+ console.error('');
218
+ console.error(reporter.report({ format: 'text', includeSummary: true }));
219
+ }
220
+ }
221
+ // Write diagnostics.log in debug mode even on failure
222
+ if (options.debug) {
223
+ const writer = new DiagnosticWriter();
224
+ await writer.write(diagnostics, grafemaDir);
225
+ console.error(`Diagnostics written to ${writer.getLogPath(grafemaDir)}`);
226
+ }
227
+ exitCode = 1;
228
+ }
229
+ finally {
230
+ // Stop stats polling
231
+ if (statsInterval) {
232
+ clearInterval(statsInterval);
233
+ statsInterval = null;
234
+ }
235
+ if (backend.connected) {
236
+ await backend.close();
237
+ }
238
+ // Exit with appropriate code
239
+ // 0 = success, 1 = fatal, 2 = errors
240
+ exitWithCode(exitCode);
241
+ }
242
+ }
243
+ //# sourceMappingURL=analyzeAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzeAction.js","sourceRoot":"","sources":["../../src/commands/analyzeAction.ts"],"names":[],"mappings":"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"}
@@ -6,11 +6,7 @@
6
6
  * 2. Built-in validators: --guarantee=<name> (e.g., --guarantee=node-creation)
7
7
  */
8
8
  import { Command } from 'commander';
9
- export interface DiagnosticCheckCategory {
10
- name: string;
11
- description: string;
12
- codes: string[];
13
- }
14
- export declare const CHECK_CATEGORIES: Record<string, DiagnosticCheckCategory>;
9
+ import { DIAGNOSTIC_CATEGORIES } from '@grafema/core';
10
+ export { DIAGNOSTIC_CATEGORIES as CHECK_CATEGORIES };
15
11
  export declare const checkCommand: Command;
16
12
  //# sourceMappingURL=check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiCpC,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAGD,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAqBpE,CAAC;AAEF,eAAO,MAAM,YAAY,SA2OtB,CAAC"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAKL,qBAAqB,EACtB,MAAM,eAAe,CAAC;AAiBvB,OAAO,EAAE,qBAAqB,IAAI,gBAAgB,EAAE,CAAC;AAErD,eAAO,MAAM,YAAY,SA2OtB,CAAC"}
@@ -8,44 +8,26 @@
8
8
  import { Command } from 'commander';
9
9
  import { resolve, join } from 'path';
10
10
  import { existsSync, readFileSync } from 'fs';
11
- import { RFDBServerBackend, GuaranteeManager, NodeCreationValidator, GraphFreshnessChecker, IncrementalReanalyzer } from '@grafema/core';
11
+ import { RFDBServerBackend, GuaranteeManager, GraphFreshnessChecker, IncrementalReanalyzer, DIAGNOSTIC_CATEGORIES, } from '@grafema/core';
12
12
  import { exitWithError } from '../utils/errorFormatter.js';
13
13
  // Available built-in validators
14
+ // Add new validators here as they are implemented
14
15
  const BUILT_IN_VALIDATORS = {
15
- 'node-creation': {
16
- name: 'NodeCreationValidator',
17
- description: 'Validates that all nodes are created through NodeFactory'
18
- }
19
- };
20
- // Available diagnostic categories
21
- export const CHECK_CATEGORIES = {
22
- 'connectivity': {
23
- name: 'Graph Connectivity',
24
- description: 'Check for disconnected nodes in the graph',
25
- codes: ['ERR_DISCONNECTED_NODES', 'ERR_DISCONNECTED_NODE'],
26
- },
27
- 'calls': {
28
- name: 'Call Resolution',
29
- description: 'Check for unresolved function calls',
30
- codes: ['ERR_UNRESOLVED_CALL'],
31
- },
32
- 'dataflow': {
33
- name: 'Data Flow',
34
- description: 'Check for missing assignments and broken references',
35
- codes: ['ERR_MISSING_ASSIGNMENT', 'ERR_BROKEN_REFERENCE', 'ERR_NO_LEAF_NODE'],
36
- },
37
- 'imports': {
38
- name: 'Import Validation',
39
- description: 'Check for broken imports and undefined symbols',
40
- codes: ['ERR_BROKEN_IMPORT', 'ERR_UNDEFINED_SYMBOL'],
41
- },
16
+ // Example:
17
+ // 'my-validator': {
18
+ // name: 'MyValidator',
19
+ // description: 'Validates something important',
20
+ // create: () => new MyValidator()
21
+ // }
42
22
  };
23
+ // Re-export for backward compatibility (deprecated - import from @grafema/core instead)
24
+ export { DIAGNOSTIC_CATEGORIES as CHECK_CATEGORIES };
43
25
  export const checkCommand = new Command('check')
44
26
  .description('Check invariants/guarantees')
45
27
  .argument('[rule]', 'Specific rule ID to check (or "all" for all rules)')
46
28
  .option('-p, --project <path>', 'Project path', '.')
47
29
  .option('-f, --file <path>', 'Path to guarantees YAML file')
48
- .option('-g, --guarantee <name>', 'Run a built-in guarantee validator (e.g., node-creation)')
30
+ .option('-g, --guarantee <name>', 'Run a built-in guarantee validator')
49
31
  .option('-j, --json', 'Output results as JSON')
50
32
  .option('-q, --quiet', 'Only output failures')
51
33
  .option('--list-guarantees', 'List available built-in guarantees')
@@ -59,7 +41,7 @@ Examples:
59
41
  grafema check calls Check call resolution
60
42
  grafema check dataflow Check data flow integrity
61
43
  grafema check all Run all diagnostic categories
62
- grafema check --guarantee node-creation Run built-in validator
44
+ grafema check --guarantee <name> Run built-in validator
63
45
  grafema check --list-categories List available categories
64
46
  grafema check --list-guarantees List built-in guarantees
65
47
  grafema check --fail-on-stale CI mode: fail if graph is stale
@@ -70,7 +52,7 @@ Examples:
70
52
  if (options.listCategories) {
71
53
  console.log('Available diagnostic categories:');
72
54
  console.log('');
73
- for (const [key, category] of Object.entries(CHECK_CATEGORIES)) {
55
+ for (const [key, category] of Object.entries(DIAGNOSTIC_CATEGORIES)) {
74
56
  console.log(` ${key}`);
75
57
  console.log(` ${category.name}`);
76
58
  console.log(` ${category.description}`);
@@ -91,7 +73,7 @@ Examples:
91
73
  return;
92
74
  }
93
75
  // Check if rule argument is a category name
94
- if (rule && (rule in CHECK_CATEGORIES || rule === 'all')) {
76
+ if (rule && (rule in DIAGNOSTIC_CATEGORIES || rule === 'all')) {
95
77
  await runCategoryCheck(rule, options);
96
78
  return;
97
79
  }
@@ -122,7 +104,7 @@ Examples:
122
104
  await backend.connect();
123
105
  // Check graph freshness
124
106
  const freshnessChecker = new GraphFreshnessChecker();
125
- const freshness = await freshnessChecker.checkFreshness(backend);
107
+ const freshness = await freshnessChecker.checkFreshness(backend, projectPath);
126
108
  if (!freshness.isFresh) {
127
109
  if (options.failOnStale) {
128
110
  console.error(`✗ Graph is stale: ${freshness.staleCount} module(s) changed`);
@@ -252,7 +234,7 @@ async function runBuiltInValidator(guaranteeName, projectPath, options) {
252
234
  await backend.connect();
253
235
  // Check graph freshness
254
236
  const freshnessChecker = new GraphFreshnessChecker();
255
- const freshness = await freshnessChecker.checkFreshness(backend);
237
+ const freshness = await freshnessChecker.checkFreshness(backend, resolvedPath);
256
238
  if (!freshness.isFresh) {
257
239
  if (options.failOnStale) {
258
240
  console.error(`✗ Graph is stale: ${freshness.staleCount} module(s) changed`);
@@ -290,18 +272,20 @@ async function runBuiltInValidator(guaranteeName, projectPath, options) {
290
272
  console.log('');
291
273
  }
292
274
  try {
293
- let validator;
294
- let validatorName;
295
- switch (guaranteeName) {
296
- case 'node-creation':
297
- validator = new NodeCreationValidator();
298
- validatorName = 'NodeCreationValidator';
299
- break;
300
- default:
275
+ const validatorInfo = BUILT_IN_VALIDATORS[guaranteeName];
276
+ if (!validatorInfo) {
277
+ const available = Object.keys(BUILT_IN_VALIDATORS);
278
+ if (available.length === 0) {
301
279
  exitWithError(`Unknown guarantee: ${guaranteeName}`, [
302
- 'Use --list-guarantees to see available options'
280
+ 'No built-in guarantees are currently available'
303
281
  ]);
282
+ }
283
+ exitWithError(`Unknown guarantee: ${guaranteeName}`, [
284
+ `Available: ${available.join(', ')}`
285
+ ]);
304
286
  }
287
+ const validator = validatorInfo.create();
288
+ const validatorName = validatorInfo.name;
305
289
  if (!options.quiet) {
306
290
  console.log(`Running ${validatorName}...`);
307
291
  console.log('');
@@ -328,7 +312,7 @@ async function runBuiltInValidator(guaranteeName, projectPath, options) {
328
312
  console.log(`\x1b[31m✗\x1b[0m Found ${violations} violation(s):`);
329
313
  console.log('');
330
314
  for (const issue of issues.slice(0, 10)) {
331
- const location = issue.file ? `${issue.file}${issue.line ? `:${issue.line}` : ''}` : '';
315
+ const _location = issue.file ? `${issue.file}${issue.line ? `:${issue.line}` : ''}` : '';
332
316
  console.log(` \x1b[31m•\x1b[0m [${issue.type}] ${issue.message}`);
333
317
  if (issue.suggestion && !options.quiet) {
334
318
  console.log(` Suggestion: ${issue.suggestion}`);
@@ -370,7 +354,7 @@ async function runCategoryCheck(category, options) {
370
354
  try {
371
355
  return JSON.parse(line);
372
356
  }
373
- catch (e) {
357
+ catch {
374
358
  return null;
375
359
  }
376
360
  })
@@ -378,12 +362,13 @@ async function runCategoryCheck(category, options) {
378
362
  // Filter diagnostics by category codes
379
363
  let filteredDiagnostics = allDiagnostics;
380
364
  if (category !== 'all') {
381
- const categoryInfo = CHECK_CATEGORIES[category];
382
- if (!categoryInfo) {
365
+ if (!(category in DIAGNOSTIC_CATEGORIES)) {
383
366
  exitWithError(`Unknown category: ${category}`, [
384
367
  'Use --list-categories to see available options'
385
368
  ]);
386
369
  }
370
+ const categoryKey = category;
371
+ const categoryInfo = DIAGNOSTIC_CATEGORIES[categoryKey];
387
372
  filteredDiagnostics = allDiagnostics.filter((d) => categoryInfo.codes.includes(d.code));
388
373
  }
389
374
  if (options.json) {
@@ -396,7 +381,7 @@ async function runCategoryCheck(category, options) {
396
381
  else {
397
382
  const categoryName = category === 'all'
398
383
  ? 'All Categories'
399
- : CHECK_CATEGORIES[category].name;
384
+ : DIAGNOSTIC_CATEGORIES[category].name;
400
385
  if (!options.quiet) {
401
386
  console.log(`Checking ${categoryName}...`);
402
387
  console.log('');
@@ -469,3 +454,4 @@ async function runCategoryCheck(category, options) {
469
454
  }
470
455
  }
471
456
  }
457
+ //# sourceMappingURL=check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Context command — Show deep context for a graph node
3
+ *
4
+ * Displays the full graph neighborhood: source code + all incoming/outgoing edges
5
+ * with code context at each connected node's location.
6
+ *
7
+ * Works for ANY node type: FUNCTION, VARIABLE, MODULE, http:route, CALL, etc.
8
+ *
9
+ * Output is grep-friendly with stable prefixes:
10
+ * -> outgoing edges
11
+ * <- incoming edges
12
+ * > highlighted source lines
13
+ */
14
+ import { Command } from 'commander';
15
+ export declare const contextCommand: Command;
16
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6BpC,eAAO,MAAM,cAAc,SA0EvB,CAAC"}