code-graph-context 2.4.1 → 2.4.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/dist/cli/cli.js CHANGED
@@ -246,7 +246,7 @@ program
246
246
  .option('-p, --port <port>', 'Neo4j Bolt port', '7687')
247
247
  .option('--http-port <port>', 'Neo4j Browser port', '7474')
248
248
  .option('--password <password>', 'Neo4j password', 'PASSWORD')
249
- .option('-m, --memory <size>', 'Max heap memory (e.g., 2G, 4G)', '2G')
249
+ .option('-m, --memory <size>', 'Max heap memory (e.g., 2G, 4G)', '4G')
250
250
  .option('-f, --force', 'Recreate container even if exists')
251
251
  .action(runInit);
252
252
  program.command('status').description('Check Neo4j and Docker status').action(runStatus);
@@ -434,7 +434,8 @@ export const NESTJS_FRAMEWORK_SCHEMA = {
434
434
  },
435
435
  {
436
436
  type: 'function',
437
- pattern: (parsedNode) => parsedNode.sourceNode?.getName()?.endsWith('Service'),
437
+ // Use pre-extracted name property (works after AST cleanup in streaming/chunking)
438
+ pattern: (parsedNode) => parsedNode.properties?.name?.endsWith('Service'),
438
439
  confidence: 0.7,
439
440
  priority: 7,
440
441
  },
@@ -516,13 +517,11 @@ export const NESTJS_FRAMEWORK_SCHEMA = {
516
517
  detectionPatterns: [
517
518
  {
518
519
  type: 'function',
520
+ // Use pre-extracted decoratorNames from context (works after AST cleanup in streaming/chunking)
519
521
  pattern: (parsedNode) => {
520
- const node = parsedNode.sourceNode;
521
- if (!node)
522
- return false;
523
- const decorators = node.getDecorators?.() ?? [];
522
+ const decoratorNames = parsedNode.properties?.context?.decoratorNames ?? [];
524
523
  const messageDecorators = ['MessagePattern', 'EventPattern'];
525
- return decorators.some((d) => messageDecorators.includes(d.getName()));
524
+ return messageDecorators.some((d) => decoratorNames.includes(d));
526
525
  },
527
526
  confidence: 0.98,
528
527
  priority: 15,
@@ -570,13 +569,11 @@ export const NESTJS_FRAMEWORK_SCHEMA = {
570
569
  detectionPatterns: [
571
570
  {
572
571
  type: 'function',
572
+ // Use pre-extracted decoratorNames from context (works after AST cleanup in streaming/chunking)
573
573
  pattern: (parsedNode) => {
574
- const node = parsedNode.sourceNode;
575
- if (!node)
576
- return false;
577
- const decorators = node.getDecorators?.() ?? [];
574
+ const decoratorNames = parsedNode.properties?.context?.decoratorNames ?? [];
578
575
  const httpDecorators = ['Get', 'Post', 'Put', 'Delete', 'Patch', 'Head', 'Options'];
579
- return decorators.some((d) => httpDecorators.includes(d.getName()));
576
+ return httpDecorators.some((d) => decoratorNames.includes(d));
580
577
  },
581
578
  confidence: 0.98,
582
579
  priority: 15,
@@ -729,16 +726,11 @@ export const NESTJS_FRAMEWORK_SCHEMA = {
729
726
  if (parsedSourceNode.properties?.filePath !== parsedTargetNode.properties?.filePath) {
730
727
  return false;
731
728
  }
732
- // Access AST nodes to check parent relationship
733
- const sourceNode = parsedSourceNode.sourceNode;
734
- const targetNode = parsedTargetNode.sourceNode;
735
- if (sourceNode && targetNode) {
736
- const methodParent = targetNode.getParent();
737
- if (methodParent === sourceNode) {
738
- return true;
739
- }
740
- }
741
- return false;
729
+ // CRITICAL FIX: Use pre-extracted parentClassName property (works after AST cleanup in streaming/chunking)
730
+ // The method's parentClassName should match the controller's name
731
+ const targetParentClassName = parsedTargetNode.properties?.parentClassName;
732
+ const sourceName = parsedSourceNode.properties?.name;
733
+ return !!targetParentClassName && targetParentClassName === sourceName;
742
734
  },
743
735
  contextExtractor: (parsedSourceNode, parsedTargetNode) => ({
744
736
  endpointType: 'RPC',
@@ -761,16 +753,11 @@ export const NESTJS_FRAMEWORK_SCHEMA = {
761
753
  if (parsedSourceNode.properties?.filePath !== parsedTargetNode.properties?.filePath) {
762
754
  return false;
763
755
  }
764
- // Access AST nodes to check parent relationship
765
- const sourceNode = parsedSourceNode.sourceNode;
766
- const targetNode = parsedTargetNode.sourceNode;
767
- if (sourceNode && targetNode) {
768
- const methodParent = targetNode.getParent();
769
- if (methodParent === sourceNode) {
770
- return true;
771
- }
772
- }
773
- return false;
756
+ // CRITICAL FIX: Use pre-extracted parentClassName property (works after AST cleanup in streaming/chunking)
757
+ // The method's parentClassName should match the controller's name
758
+ const targetParentClassName = parsedTargetNode.properties?.parentClassName;
759
+ const sourceName = parsedSourceNode.properties?.name;
760
+ return !!targetParentClassName && targetParentClassName === sourceName;
774
761
  },
775
762
  contextExtractor: (parsedSourceNode, parsedTargetNode) => ({
776
763
  httpMethod: parsedTargetNode.properties?.context?.httpMethod ?? '',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "code-graph-context",
3
- "version": "2.4.1",
3
+ "version": "2.4.2",
4
4
  "description": "MCP server that builds code graphs to provide rich context to LLMs",
5
5
  "type": "module",
6
6
  "homepage": "https://github.com/drewdrewH/code-graph-context#readme",