codeguardian-mcp 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.
- package/LICENSE +21 -0
- package/README.md +348 -0
- package/dist/agent/agentTools.d.ts +26 -0
- package/dist/agent/agentTools.d.ts.map +1 -0
- package/dist/agent/agentTools.js +699 -0
- package/dist/agent/agentTools.js.map +1 -0
- package/dist/agent/autoValidator.d.ts +110 -0
- package/dist/agent/autoValidator.d.ts.map +1 -0
- package/dist/agent/autoValidator.js +964 -0
- package/dist/agent/autoValidator.js.map +1 -0
- package/dist/agent/fileWatcher.d.ts +28 -0
- package/dist/agent/fileWatcher.d.ts.map +1 -0
- package/dist/agent/fileWatcher.js +88 -0
- package/dist/agent/fileWatcher.js.map +1 -0
- package/dist/agent/guardianPersistence.d.ts +98 -0
- package/dist/agent/guardianPersistence.d.ts.map +1 -0
- package/dist/agent/guardianPersistence.js +296 -0
- package/dist/agent/guardianPersistence.js.map +1 -0
- package/dist/agent/mcpNotifications.d.ts +38 -0
- package/dist/agent/mcpNotifications.d.ts.map +1 -0
- package/dist/agent/mcpNotifications.js +81 -0
- package/dist/agent/mcpNotifications.js.map +1 -0
- package/dist/analyzers/aiPatterns.d.ts +16 -0
- package/dist/analyzers/aiPatterns.d.ts.map +1 -0
- package/dist/analyzers/aiPatterns.js +103 -0
- package/dist/analyzers/aiPatterns.js.map +1 -0
- package/dist/analyzers/antiPatterns.d.ts +60 -0
- package/dist/analyzers/antiPatterns.d.ts.map +1 -0
- package/dist/analyzers/antiPatterns.js +198 -0
- package/dist/analyzers/antiPatterns.js.map +1 -0
- package/dist/analyzers/builtinTypes.d.ts +18 -0
- package/dist/analyzers/builtinTypes.d.ts.map +1 -0
- package/dist/analyzers/builtinTypes.js +1275 -0
- package/dist/analyzers/builtinTypes.js.map +1 -0
- package/dist/analyzers/complexity.d.ts +14 -0
- package/dist/analyzers/complexity.d.ts.map +1 -0
- package/dist/analyzers/complexity.js +610 -0
- package/dist/analyzers/complexity.js.map +1 -0
- package/dist/analyzers/findingVerifier.d.ts +59 -0
- package/dist/analyzers/findingVerifier.d.ts.map +1 -0
- package/dist/analyzers/findingVerifier.js +1169 -0
- package/dist/analyzers/findingVerifier.js.map +1 -0
- package/dist/analyzers/impactAnalyzer.d.ts +53 -0
- package/dist/analyzers/impactAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/impactAnalyzer.js +152 -0
- package/dist/analyzers/impactAnalyzer.js.map +1 -0
- package/dist/analyzers/languageDetector.d.ts +48 -0
- package/dist/analyzers/languageDetector.d.ts.map +1 -0
- package/dist/analyzers/languageDetector.js +404 -0
- package/dist/analyzers/languageDetector.js.map +1 -0
- package/dist/analyzers/parsers/incrementalParser.d.ts +53 -0
- package/dist/analyzers/parsers/incrementalParser.d.ts.map +1 -0
- package/dist/analyzers/parsers/incrementalParser.js +193 -0
- package/dist/analyzers/parsers/incrementalParser.js.map +1 -0
- package/dist/analyzers/parsers/scopeResolver.d.ts +92 -0
- package/dist/analyzers/parsers/scopeResolver.d.ts.map +1 -0
- package/dist/analyzers/parsers/scopeResolver.js +324 -0
- package/dist/analyzers/parsers/scopeResolver.js.map +1 -0
- package/dist/analyzers/parsers/semanticIndex.d.ts +127 -0
- package/dist/analyzers/parsers/semanticIndex.d.ts.map +1 -0
- package/dist/analyzers/parsers/semanticIndex.js +429 -0
- package/dist/analyzers/parsers/semanticIndex.js.map +1 -0
- package/dist/analyzers/parsers/sessionDiffAnalyzer.d.ts +42 -0
- package/dist/analyzers/parsers/sessionDiffAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/parsers/sessionDiffAnalyzer.js +233 -0
- package/dist/analyzers/parsers/sessionDiffAnalyzer.js.map +1 -0
- package/dist/analyzers/parsers/treeSitterParser.d.ts +76 -0
- package/dist/analyzers/parsers/treeSitterParser.d.ts.map +1 -0
- package/dist/analyzers/parsers/treeSitterParser.js +709 -0
- package/dist/analyzers/parsers/treeSitterParser.js.map +1 -0
- package/dist/analyzers/relevanceScorer.d.ts +43 -0
- package/dist/analyzers/relevanceScorer.d.ts.map +1 -0
- package/dist/analyzers/relevanceScorer.js +200 -0
- package/dist/analyzers/relevanceScorer.js.map +1 -0
- package/dist/analyzers/standardLibrary.d.ts +22 -0
- package/dist/analyzers/standardLibrary.d.ts.map +1 -0
- package/dist/analyzers/standardLibrary.js +211 -0
- package/dist/analyzers/standardLibrary.js.map +1 -0
- package/dist/analyzers/symbolGraph.d.ts +30 -0
- package/dist/analyzers/symbolGraph.d.ts.map +1 -0
- package/dist/analyzers/symbolGraph.js +380 -0
- package/dist/analyzers/symbolGraph.js.map +1 -0
- package/dist/analyzers/symbolTable.d.ts +18 -0
- package/dist/analyzers/symbolTable.d.ts.map +1 -0
- package/dist/analyzers/symbolTable.js +176 -0
- package/dist/analyzers/symbolTable.js.map +1 -0
- package/dist/analyzers/typeChecker.d.ts +13 -0
- package/dist/analyzers/typeChecker.d.ts.map +1 -0
- package/dist/analyzers/typeChecker.js +580 -0
- package/dist/analyzers/typeChecker.js.map +1 -0
- package/dist/analyzers/usagePatterns.d.ts +42 -0
- package/dist/analyzers/usagePatterns.d.ts.map +1 -0
- package/dist/analyzers/usagePatterns.js +75 -0
- package/dist/analyzers/usagePatterns.js.map +1 -0
- package/dist/api-contract/context/backend.d.ts +19 -0
- package/dist/api-contract/context/backend.d.ts.map +1 -0
- package/dist/api-contract/context/backend.js +64 -0
- package/dist/api-contract/context/backend.js.map +1 -0
- package/dist/api-contract/context/contract.d.ts +34 -0
- package/dist/api-contract/context/contract.d.ts.map +1 -0
- package/dist/api-contract/context/contract.js +306 -0
- package/dist/api-contract/context/contract.js.map +1 -0
- package/dist/api-contract/context/frontend.d.ts +19 -0
- package/dist/api-contract/context/frontend.d.ts.map +1 -0
- package/dist/api-contract/context/frontend.js +64 -0
- package/dist/api-contract/context/frontend.js.map +1 -0
- package/dist/api-contract/detector.d.ts +28 -0
- package/dist/api-contract/detector.d.ts.map +1 -0
- package/dist/api-contract/detector.js +393 -0
- package/dist/api-contract/detector.js.map +1 -0
- package/dist/api-contract/extractors/python.d.ts +32 -0
- package/dist/api-contract/extractors/python.d.ts.map +1 -0
- package/dist/api-contract/extractors/python.js +521 -0
- package/dist/api-contract/extractors/python.js.map +1 -0
- package/dist/api-contract/extractors/pythonAstUtils.d.ts +44 -0
- package/dist/api-contract/extractors/pythonAstUtils.d.ts.map +1 -0
- package/dist/api-contract/extractors/pythonAstUtils.js +489 -0
- package/dist/api-contract/extractors/pythonAstUtils.js.map +1 -0
- package/dist/api-contract/extractors/tsAstUtils.d.ts +47 -0
- package/dist/api-contract/extractors/tsAstUtils.d.ts.map +1 -0
- package/dist/api-contract/extractors/tsAstUtils.js +173 -0
- package/dist/api-contract/extractors/tsAstUtils.js.map +1 -0
- package/dist/api-contract/extractors/typescript.d.ts +32 -0
- package/dist/api-contract/extractors/typescript.d.ts.map +1 -0
- package/dist/api-contract/extractors/typescript.js +666 -0
- package/dist/api-contract/extractors/typescript.js.map +1 -0
- package/dist/api-contract/index.d.ts +104 -0
- package/dist/api-contract/index.d.ts.map +1 -0
- package/dist/api-contract/index.js +232 -0
- package/dist/api-contract/index.js.map +1 -0
- package/dist/api-contract/types.d.ts +151 -0
- package/dist/api-contract/types.d.ts.map +1 -0
- package/dist/api-contract/types.js +19 -0
- package/dist/api-contract/types.js.map +1 -0
- package/dist/api-contract/validators/endpoint.d.ts +21 -0
- package/dist/api-contract/validators/endpoint.d.ts.map +1 -0
- package/dist/api-contract/validators/endpoint.js +224 -0
- package/dist/api-contract/validators/endpoint.js.map +1 -0
- package/dist/api-contract/validators/index.d.ts +40 -0
- package/dist/api-contract/validators/index.d.ts.map +1 -0
- package/dist/api-contract/validators/index.js +875 -0
- package/dist/api-contract/validators/index.js.map +1 -0
- package/dist/api-contract/validators/parameter.d.ts +17 -0
- package/dist/api-contract/validators/parameter.d.ts.map +1 -0
- package/dist/api-contract/validators/parameter.js +250 -0
- package/dist/api-contract/validators/parameter.js.map +1 -0
- package/dist/api-contract/validators/type.d.ts +38 -0
- package/dist/api-contract/validators/type.d.ts.map +1 -0
- package/dist/api-contract/validators/type.js +244 -0
- package/dist/api-contract/validators/type.js.map +1 -0
- package/dist/context/apiContract/complexTypeSupport.d.ts +83 -0
- package/dist/context/apiContract/complexTypeSupport.d.ts.map +1 -0
- package/dist/context/apiContract/complexTypeSupport.js +665 -0
- package/dist/context/apiContract/complexTypeSupport.js.map +1 -0
- package/dist/context/apiContract/graphqlSupport.d.ts +105 -0
- package/dist/context/apiContract/graphqlSupport.d.ts.map +1 -0
- package/dist/context/apiContract/graphqlSupport.js +671 -0
- package/dist/context/apiContract/graphqlSupport.js.map +1 -0
- package/dist/context/apiContract/index.d.ts +14 -0
- package/dist/context/apiContract/index.d.ts.map +1 -0
- package/dist/context/apiContract/index.js +17 -0
- package/dist/context/apiContract/index.js.map +1 -0
- package/dist/context/apiContract/webSocketSupport.d.ts +104 -0
- package/dist/context/apiContract/webSocketSupport.d.ts.map +1 -0
- package/dist/context/apiContract/webSocketSupport.js +465 -0
- package/dist/context/apiContract/webSocketSupport.js.map +1 -0
- package/dist/context/apiContractContext.d.ts +15 -0
- package/dist/context/apiContractContext.d.ts.map +1 -0
- package/dist/context/apiContractContext.js +979 -0
- package/dist/context/apiContractContext.js.map +1 -0
- package/dist/context/apiContractExtraction.d.ts +52 -0
- package/dist/context/apiContractExtraction.d.ts.map +1 -0
- package/dist/context/apiContractExtraction.js +438 -0
- package/dist/context/apiContractExtraction.js.map +1 -0
- package/dist/context/contextLineage.d.ts +79 -0
- package/dist/context/contextLineage.d.ts.map +1 -0
- package/dist/context/contextLineage.js +259 -0
- package/dist/context/contextLineage.js.map +1 -0
- package/dist/context/contextOrchestrator.d.ts +57 -0
- package/dist/context/contextOrchestrator.d.ts.map +1 -0
- package/dist/context/contextOrchestrator.js +162 -0
- package/dist/context/contextOrchestrator.js.map +1 -0
- package/dist/context/intentTracker.d.ts +73 -0
- package/dist/context/intentTracker.d.ts.map +1 -0
- package/dist/context/intentTracker.js +168 -0
- package/dist/context/intentTracker.js.map +1 -0
- package/dist/context/projectContext.d.ts +219 -0
- package/dist/context/projectContext.d.ts.map +1 -0
- package/dist/context/projectContext.js +1984 -0
- package/dist/context/projectContext.js.map +1 -0
- package/dist/prompts/index.d.ts +17 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +260 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/library.d.ts +51 -0
- package/dist/prompts/library.d.ts.map +1 -0
- package/dist/prompts/library.js +65 -0
- package/dist/prompts/library.js.map +1 -0
- package/dist/prompts/templates.d.ts +44 -0
- package/dist/prompts/templates.d.ts.map +1 -0
- package/dist/prompts/templates.js +97 -0
- package/dist/prompts/templates.js.map +1 -0
- package/dist/queue/jobPersistence.d.ts +46 -0
- package/dist/queue/jobPersistence.d.ts.map +1 -0
- package/dist/queue/jobPersistence.js +158 -0
- package/dist/queue/jobPersistence.js.map +1 -0
- package/dist/queue/jobQueue.d.ts +116 -0
- package/dist/queue/jobQueue.d.ts.map +1 -0
- package/dist/queue/jobQueue.js +275 -0
- package/dist/queue/jobQueue.js.map +1 -0
- package/dist/queue/validationJob.d.ts +69 -0
- package/dist/queue/validationJob.d.ts.map +1 -0
- package/dist/queue/validationJob.js +435 -0
- package/dist/queue/validationJob.js.map +1 -0
- package/dist/resources/index.d.ts +15 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +328 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/validationReportStore.d.ts +170 -0
- package/dist/resources/validationReportStore.d.ts.map +1 -0
- package/dist/resources/validationReportStore.js +515 -0
- package/dist/resources/validationReportStore.js.map +1 -0
- package/dist/server.d.ts +12 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +102 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/asyncValidation.d.ts +19 -0
- package/dist/tools/asyncValidation.d.ts.map +1 -0
- package/dist/tools/asyncValidation.js +346 -0
- package/dist/tools/asyncValidation.js.map +1 -0
- package/dist/tools/buildContext.d.ts +17 -0
- package/dist/tools/buildContext.d.ts.map +1 -0
- package/dist/tools/buildContext.js +188 -0
- package/dist/tools/buildContext.js.map +1 -0
- package/dist/tools/getDependencyGraph.d.ts +16 -0
- package/dist/tools/getDependencyGraph.d.ts.map +1 -0
- package/dist/tools/getDependencyGraph.js +436 -0
- package/dist/tools/getDependencyGraph.js.map +1 -0
- package/dist/tools/incrementalValidation.d.ts +71 -0
- package/dist/tools/incrementalValidation.d.ts.map +1 -0
- package/dist/tools/incrementalValidation.js +203 -0
- package/dist/tools/incrementalValidation.js.map +1 -0
- package/dist/tools/index.d.ts +24 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +106 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/validateCode.d.ts +17 -0
- package/dist/tools/validateCode.d.ts.map +1 -0
- package/dist/tools/validateCode.js +368 -0
- package/dist/tools/validateCode.js.map +1 -0
- package/dist/tools/validateCodeLite.d.ts +2 -0
- package/dist/tools/validateCodeLite.d.ts.map +1 -0
- package/dist/tools/validateCodeLite.js +2 -0
- package/dist/tools/validateCodeLite.js.map +1 -0
- package/dist/tools/validation/builtins.d.ts +92 -0
- package/dist/tools/validation/builtins.d.ts.map +1 -0
- package/dist/tools/validation/builtins.js +2184 -0
- package/dist/tools/validation/builtins.js.map +1 -0
- package/dist/tools/validation/contextualNaming.d.ts +99 -0
- package/dist/tools/validation/contextualNaming.d.ts.map +1 -0
- package/dist/tools/validation/contextualNaming.js +959 -0
- package/dist/tools/validation/contextualNaming.js.map +1 -0
- package/dist/tools/validation/deadCode.d.ts +115 -0
- package/dist/tools/validation/deadCode.d.ts.map +1 -0
- package/dist/tools/validation/deadCode.js +861 -0
- package/dist/tools/validation/deadCode.js.map +1 -0
- package/dist/tools/validation/extractors/index.d.ts +131 -0
- package/dist/tools/validation/extractors/index.d.ts.map +1 -0
- package/dist/tools/validation/extractors/index.js +233 -0
- package/dist/tools/validation/extractors/index.js.map +1 -0
- package/dist/tools/validation/extractors/javascript.d.ts +73 -0
- package/dist/tools/validation/extractors/javascript.d.ts.map +1 -0
- package/dist/tools/validation/extractors/javascript.js +1841 -0
- package/dist/tools/validation/extractors/javascript.js.map +1 -0
- package/dist/tools/validation/extractors/python.d.ts +93 -0
- package/dist/tools/validation/extractors/python.d.ts.map +1 -0
- package/dist/tools/validation/extractors/python.js +799 -0
- package/dist/tools/validation/extractors/python.js.map +1 -0
- package/dist/tools/validation/manifest.d.ts +45 -0
- package/dist/tools/validation/manifest.d.ts.map +1 -0
- package/dist/tools/validation/manifest.js +719 -0
- package/dist/tools/validation/manifest.js.map +1 -0
- package/dist/tools/validation/parser.d.ts +58 -0
- package/dist/tools/validation/parser.d.ts.map +1 -0
- package/dist/tools/validation/parser.js +232 -0
- package/dist/tools/validation/parser.js.map +1 -0
- package/dist/tools/validation/registry.d.ts +15 -0
- package/dist/tools/validation/registry.d.ts.map +1 -0
- package/dist/tools/validation/registry.js +169 -0
- package/dist/tools/validation/registry.js.map +1 -0
- package/dist/tools/validation/scoring.d.ts +54 -0
- package/dist/tools/validation/scoring.d.ts.map +1 -0
- package/dist/tools/validation/scoring.js +242 -0
- package/dist/tools/validation/scoring.js.map +1 -0
- package/dist/tools/validation/types.d.ts +120 -0
- package/dist/tools/validation/types.d.ts.map +1 -0
- package/dist/tools/validation/types.js +11 -0
- package/dist/tools/validation/types.js.map +1 -0
- package/dist/tools/validation/unusedLocals.d.ts +36 -0
- package/dist/tools/validation/unusedLocals.d.ts.map +1 -0
- package/dist/tools/validation/unusedLocals.js +333 -0
- package/dist/tools/validation/unusedLocals.js.map +1 -0
- package/dist/tools/validation/validation.d.ts +98 -0
- package/dist/tools/validation/validation.d.ts.map +1 -0
- package/dist/tools/validation/validation.js +1837 -0
- package/dist/tools/validation/validation.js.map +1 -0
- package/dist/types/codeGraph.d.ts +163 -0
- package/dist/types/codeGraph.d.ts.map +1 -0
- package/dist/types/codeGraph.js +9 -0
- package/dist/types/codeGraph.js.map +1 -0
- package/dist/types/symbolGraph.d.ts +68 -0
- package/dist/types/symbolGraph.d.ts.map +1 -0
- package/dist/types/symbolGraph.js +10 -0
- package/dist/types/symbolGraph.js.map +1 -0
- package/dist/types/tools.d.ts +43 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/types/tools.js +7 -0
- package/dist/types/tools.js.map +1 -0
- package/dist/utils/fileFilter.d.ts +37 -0
- package/dist/utils/fileFilter.d.ts.map +1 -0
- package/dist/utils/fileFilter.js +91 -0
- package/dist/utils/fileFilter.js.map +1 -0
- package/dist/utils/gitUtils.d.ts +28 -0
- package/dist/utils/gitUtils.d.ts.map +1 -0
- package/dist/utils/gitUtils.js +81 -0
- package/dist/utils/gitUtils.js.map +1 -0
- package/dist/utils/logger.d.ts +15 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +38 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/serialization.d.ts +25 -0
- package/dist/utils/serialization.d.ts.map +1 -0
- package/dist/utils/serialization.js +53 -0
- package/dist/utils/serialization.js.map +1 -0
- package/package.json +90 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"treeSitterParser.js","sourceRoot":"","sources":["../../../src/analyzers/parsers/treeSitterParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Relevance Scorer
|
|
3
|
+
*
|
|
4
|
+
* Scores symbols by relevance to the current validation context.
|
|
5
|
+
* Inspired by Augment Code's "helpfulness over relevance" approach.
|
|
6
|
+
*
|
|
7
|
+
* Uses multiple signals:
|
|
8
|
+
* - Import relationships (what's explicitly imported)
|
|
9
|
+
* - Intent-based context (recently edited symbols) - NEW
|
|
10
|
+
* - Co-occurrence patterns (symbols often used together)
|
|
11
|
+
* - Usage frequency (popular symbols)
|
|
12
|
+
* - File proximity (symbols from nearby files)
|
|
13
|
+
*
|
|
14
|
+
* @format
|
|
15
|
+
*/
|
|
16
|
+
import { ProjectContext } from "../context/projectContext.js";
|
|
17
|
+
import { type LineageContext } from "../context/contextLineage.js";
|
|
18
|
+
export interface RelevanceContext {
|
|
19
|
+
importedSymbols?: string[];
|
|
20
|
+
currentFile?: string;
|
|
21
|
+
recentFiles?: string[];
|
|
22
|
+
lineageContext?: LineageContext | null;
|
|
23
|
+
}
|
|
24
|
+
export interface ScoredSymbol {
|
|
25
|
+
symbol: string;
|
|
26
|
+
score: number;
|
|
27
|
+
reasons: string[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Score all symbols by relevance to the current context
|
|
31
|
+
* Returns symbols sorted by relevance (highest first)
|
|
32
|
+
*/
|
|
33
|
+
export declare function scoreSymbolRelevance(projectContext: ProjectContext, relevanceContext: RelevanceContext, maxResults?: number): ScoredSymbol[];
|
|
34
|
+
/**
|
|
35
|
+
* Filter symbols to only the most relevant ones
|
|
36
|
+
* This is the main API for validation to use
|
|
37
|
+
*/
|
|
38
|
+
export declare function getRelevantSymbolsForValidation(projectContext: ProjectContext, relevanceContext: RelevanceContext, minScore?: number, maxResults?: number): string[];
|
|
39
|
+
/**
|
|
40
|
+
* Get detailed relevance information for debugging/logging
|
|
41
|
+
*/
|
|
42
|
+
export declare function explainRelevance(projectContext: ProjectContext, relevanceContext: RelevanceContext, topN?: number): string;
|
|
43
|
+
//# sourceMappingURL=relevanceScorer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relevanceScorer.d.ts","sourceRoot":"","sources":["../../src/analyzers/relevanceScorer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAK9D,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,gBAAgB;IAE/B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAG3B,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAGvB,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,GAAE,MAAY,GACvB,YAAY,EAAE,CAuHhB;AAsFD;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,GAAE,MAAY,EACtB,UAAU,GAAE,MAAY,GACvB,MAAM,EAAE,CAkBV;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,GAAE,MAAW,GAChB,MAAM,CAaR"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Relevance Scorer
|
|
3
|
+
*
|
|
4
|
+
* Scores symbols by relevance to the current validation context.
|
|
5
|
+
* Inspired by Augment Code's "helpfulness over relevance" approach.
|
|
6
|
+
*
|
|
7
|
+
* Uses multiple signals:
|
|
8
|
+
* - Import relationships (what's explicitly imported)
|
|
9
|
+
* - Intent-based context (recently edited symbols) - NEW
|
|
10
|
+
* - Co-occurrence patterns (symbols often used together)
|
|
11
|
+
* - Usage frequency (popular symbols)
|
|
12
|
+
* - File proximity (symbols from nearby files)
|
|
13
|
+
*
|
|
14
|
+
* @format
|
|
15
|
+
*/
|
|
16
|
+
import { getRelevantSymbols } from "./symbolGraph.js";
|
|
17
|
+
import { logger } from "../utils/logger.js";
|
|
18
|
+
import { intentTracker } from "../context/intentTracker.js";
|
|
19
|
+
import { contextLineage, } from "../context/contextLineage.js";
|
|
20
|
+
/**
|
|
21
|
+
* Score all symbols by relevance to the current context
|
|
22
|
+
* Returns symbols sorted by relevance (highest first)
|
|
23
|
+
*/
|
|
24
|
+
export function scoreSymbolRelevance(projectContext, relevanceContext, maxResults = 200) {
|
|
25
|
+
const startTime = Date.now();
|
|
26
|
+
const scores = new Map();
|
|
27
|
+
const { importedSymbols = [], currentFile, recentFiles = [], lineageContext, } = relevanceContext;
|
|
28
|
+
const symbolGraph = projectContext.symbolGraph;
|
|
29
|
+
if (!symbolGraph) {
|
|
30
|
+
logger.warn("Symbol graph not available, falling back to all symbols");
|
|
31
|
+
return getAllSymbolsWithBasicScoring(projectContext, maxResults);
|
|
32
|
+
}
|
|
33
|
+
// Signal 1: Explicitly imported symbols (highest priority)
|
|
34
|
+
for (const imported of importedSymbols) {
|
|
35
|
+
addScore(scores, imported, 1.0, "Explicitly imported");
|
|
36
|
+
}
|
|
37
|
+
// Signal 2: Symbols related to imports (via symbol graph)
|
|
38
|
+
const relatedToImports = getRelevantSymbols(symbolGraph, importedSymbols, 50);
|
|
39
|
+
for (const symbol of relatedToImports) {
|
|
40
|
+
addScore(scores, symbol, 0.8, "Related to imports");
|
|
41
|
+
}
|
|
42
|
+
// Signal 3: Symbols from current file
|
|
43
|
+
if (currentFile && projectContext.files.has(currentFile)) {
|
|
44
|
+
const fileInfo = projectContext.files.get(currentFile);
|
|
45
|
+
for (const symbol of fileInfo.symbols) {
|
|
46
|
+
addScore(scores, symbol.name, 0.7, "From current file");
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// Signal 4: Intent-based - Recently edited files & symbols (NEW - merged)
|
|
50
|
+
const intent = intentTracker.getCurrentIntent();
|
|
51
|
+
const allRecentFiles = new Set([...recentFiles, ...intent.recentFiles]);
|
|
52
|
+
// Boost symbols from recently edited files (high priority)
|
|
53
|
+
for (const filePath of allRecentFiles) {
|
|
54
|
+
if (projectContext.files.has(filePath)) {
|
|
55
|
+
const fileInfo = projectContext.files.get(filePath);
|
|
56
|
+
for (const symbol of fileInfo.symbols) {
|
|
57
|
+
addScore(scores, symbol.name, 0.9, "Recently edited");
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Boost specific recently edited symbols
|
|
62
|
+
for (const symbol of intent.recentSymbols) {
|
|
63
|
+
addScore(scores, symbol, 0.6, "Recently edited");
|
|
64
|
+
}
|
|
65
|
+
// Signal 5: Git lineage - Recently modified files (NEW)
|
|
66
|
+
if (lineageContext) {
|
|
67
|
+
// Symbols from recently modified files
|
|
68
|
+
for (const filePath of lineageContext.recentlyModifiedFiles.slice(0, 10)) {
|
|
69
|
+
if (projectContext.files.has(filePath)) {
|
|
70
|
+
const fileInfo = projectContext.files.get(filePath);
|
|
71
|
+
const lineageScore = contextLineage.getFileLineageScore(filePath, lineageContext);
|
|
72
|
+
for (const symbol of fileInfo.symbols) {
|
|
73
|
+
addScore(scores, symbol.name, lineageScore * 0.5, "Recently modified (git)");
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// Symbols from hotspot files (frequently changed)
|
|
78
|
+
for (const filePath of lineageContext.hotspotFiles.slice(0, 5)) {
|
|
79
|
+
if (projectContext.files.has(filePath)) {
|
|
80
|
+
const fileInfo = projectContext.files.get(filePath);
|
|
81
|
+
for (const symbol of fileInfo.symbols) {
|
|
82
|
+
addScore(scores, symbol.name, 0.35, "Hotspot file");
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Signal 7: Frequently used symbols (global popularity)
|
|
88
|
+
const popularSymbols = getPopularSymbols(symbolGraph, 100);
|
|
89
|
+
for (const { symbol, usageCount } of popularSymbols) {
|
|
90
|
+
const popularityScore = Math.min(0.4, usageCount / 100);
|
|
91
|
+
addScore(scores, symbol, popularityScore, `Popular (${usageCount} uses)`);
|
|
92
|
+
}
|
|
93
|
+
// Signal 8: Symbols from files that import similar things
|
|
94
|
+
const similarFiles = findSimilarFiles(projectContext, importedSymbols);
|
|
95
|
+
for (const filePath of similarFiles.slice(0, 5)) {
|
|
96
|
+
const fileInfo = projectContext.files.get(filePath);
|
|
97
|
+
for (const symbol of fileInfo.symbols) {
|
|
98
|
+
addScore(scores, symbol.name, 0.3, "From similar file");
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// Convert to sorted array
|
|
102
|
+
const scored = Array.from(scores.entries())
|
|
103
|
+
.map(([symbol, { score, reasons }]) => ({
|
|
104
|
+
symbol,
|
|
105
|
+
score,
|
|
106
|
+
reasons: Array.from(reasons),
|
|
107
|
+
}))
|
|
108
|
+
.sort((a, b) => b.score - a.score)
|
|
109
|
+
.slice(0, maxResults);
|
|
110
|
+
const elapsed = Date.now() - startTime;
|
|
111
|
+
logger.debug(`Scored ${scores.size} symbols in ${elapsed}ms, returning top ${scored.length}`);
|
|
112
|
+
return scored;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Add score to a symbol with a reason
|
|
116
|
+
*/
|
|
117
|
+
function addScore(scores, symbol, scoreToAdd, reason) {
|
|
118
|
+
if (!scores.has(symbol)) {
|
|
119
|
+
scores.set(symbol, { score: 0, reasons: new Set() });
|
|
120
|
+
}
|
|
121
|
+
const entry = scores.get(symbol);
|
|
122
|
+
entry.score += scoreToAdd;
|
|
123
|
+
entry.reasons.add(reason);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get most popular symbols by usage count
|
|
127
|
+
*/
|
|
128
|
+
function getPopularSymbols(symbolGraph, limit) {
|
|
129
|
+
return Array.from(symbolGraph.usage.entries())
|
|
130
|
+
.map(([symbol, usage]) => ({ symbol, usageCount: usage.usageCount }))
|
|
131
|
+
.sort((a, b) => b.usageCount - a.usageCount)
|
|
132
|
+
.slice(0, limit);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Find files that import similar symbols (similar context)
|
|
136
|
+
*/
|
|
137
|
+
function findSimilarFiles(projectContext, importedSymbols) {
|
|
138
|
+
const fileScores = new Map();
|
|
139
|
+
for (const [filePath, fileInfo] of projectContext.files) {
|
|
140
|
+
let matchCount = 0;
|
|
141
|
+
// Count how many of the imported symbols this file also imports
|
|
142
|
+
for (const imp of fileInfo.imports) {
|
|
143
|
+
const fileImports = [...imp.namedImports, imp.defaultImport].filter(Boolean);
|
|
144
|
+
for (const imported of importedSymbols) {
|
|
145
|
+
if (fileImports.includes(imported)) {
|
|
146
|
+
matchCount++;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
if (matchCount > 0) {
|
|
151
|
+
fileScores.set(filePath, matchCount);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return Array.from(fileScores.entries())
|
|
155
|
+
.sort((a, b) => b[1] - a[1])
|
|
156
|
+
.map(([filePath]) => filePath);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Fallback: Get all symbols with basic scoring when symbol graph unavailable
|
|
160
|
+
*/
|
|
161
|
+
function getAllSymbolsWithBasicScoring(projectContext, maxResults) {
|
|
162
|
+
const scored = [];
|
|
163
|
+
for (const [symbol, definitions] of projectContext.symbolIndex) {
|
|
164
|
+
scored.push({
|
|
165
|
+
symbol,
|
|
166
|
+
score: 0.5, // Neutral score
|
|
167
|
+
reasons: [`Defined in ${definitions.length} file(s)`],
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
return scored.slice(0, maxResults);
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Filter symbols to only the most relevant ones
|
|
174
|
+
* This is the main API for validation to use
|
|
175
|
+
*/
|
|
176
|
+
export function getRelevantSymbolsForValidation(projectContext, relevanceContext, minScore = 0.3, maxResults = 200) {
|
|
177
|
+
const scored = scoreSymbolRelevance(projectContext, relevanceContext, maxResults * 2);
|
|
178
|
+
// Filter by minimum score and limit results
|
|
179
|
+
const relevant = scored
|
|
180
|
+
.filter((s) => s.score >= minScore)
|
|
181
|
+
.slice(0, maxResults)
|
|
182
|
+
.map((s) => s.symbol);
|
|
183
|
+
logger.debug(`Filtered to ${relevant.length} relevant symbols (min score: ${minScore})`);
|
|
184
|
+
return relevant;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Get detailed relevance information for debugging/logging
|
|
188
|
+
*/
|
|
189
|
+
export function explainRelevance(projectContext, relevanceContext, topN = 10) {
|
|
190
|
+
const scored = scoreSymbolRelevance(projectContext, relevanceContext, topN);
|
|
191
|
+
const lines = [`Top ${topN} relevant symbols:`, ""];
|
|
192
|
+
for (const { symbol, score, reasons } of scored) {
|
|
193
|
+
lines.push(` ${symbol} (score: ${score.toFixed(2)})`);
|
|
194
|
+
for (const reason of reasons) {
|
|
195
|
+
lines.push(` - ${reason}`);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return lines.join("\n");
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=relevanceScorer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relevanceScorer.js","sourceRoot":"","sources":["../../src/analyzers/relevanceScorer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard Library Registry
|
|
3
|
+
* Maintains lists of standard library functions, classes, and modules
|
|
4
|
+
* to prevent false positives when detecting hallucinations
|
|
5
|
+
*/
|
|
6
|
+
export declare const PYTHON_BUILTINS: Set<string>;
|
|
7
|
+
export declare const PYTHON_STDLIB: Record<string, string[]>;
|
|
8
|
+
export declare const PYTHON_THIRD_PARTY: Record<string, string[]>;
|
|
9
|
+
export declare const JS_BUILTINS: Set<string>;
|
|
10
|
+
export declare const JS_STDLIB: Record<string, string[]>;
|
|
11
|
+
export declare const JS_THIRD_PARTY: Record<string, string[]>;
|
|
12
|
+
export declare const JS_KEYWORDS: Set<string>;
|
|
13
|
+
export declare const PYTHON_KEYWORDS: Set<string>;
|
|
14
|
+
/**
|
|
15
|
+
* Check if a function/class is from a standard library
|
|
16
|
+
*/
|
|
17
|
+
export declare function isStandardLibrary(name: string, language: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Get the module/package for a standard library function
|
|
20
|
+
*/
|
|
21
|
+
export declare function getStandardLibraryModule(name: string, language: string): string | null;
|
|
22
|
+
//# sourceMappingURL=standardLibrary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standardLibrary.d.ts","sourceRoot":"","sources":["../../src/analyzers/standardLibrary.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,eAAO,MAAM,eAAe,aAe1B,CAAC;AAGH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CA+BlD,CAAC;AAGF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAuBvD,CAAC;AAGF,eAAO,MAAM,WAAW,aActB,CAAC;AAGH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAW9C,CAAC;AAGF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAmBnD,CAAC;AAGF,eAAO,MAAM,WAAW,aAMtB,CAAC;AAGH,eAAO,MAAM,eAAe,aAK1B,CAAC;AAEH;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAoCzE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkBtF"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard Library Registry
|
|
3
|
+
* Maintains lists of standard library functions, classes, and modules
|
|
4
|
+
* to prevent false positives when detecting hallucinations
|
|
5
|
+
*/
|
|
6
|
+
// Python built-in functions
|
|
7
|
+
export const PYTHON_BUILTINS = new Set([
|
|
8
|
+
// Built-in functions
|
|
9
|
+
'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes',
|
|
10
|
+
'callable', 'chr', 'classmethod', 'compile', 'complex', 'delattr', 'dict', 'dir',
|
|
11
|
+
'divmod', 'enumerate', 'eval', 'exec', 'filter', 'float', 'format', 'frozenset',
|
|
12
|
+
'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int',
|
|
13
|
+
'isinstance', 'issubclass', 'iter', 'len', 'list', 'locals', 'map', 'max',
|
|
14
|
+
'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print',
|
|
15
|
+
'property', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice',
|
|
16
|
+
'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip',
|
|
17
|
+
'__import__',
|
|
18
|
+
// Common exceptions
|
|
19
|
+
'Exception', 'ValueError', 'TypeError', 'KeyError', 'AttributeError', 'IndexError',
|
|
20
|
+
'RuntimeError', 'NotImplementedError', 'StopIteration', 'ImportError', 'JSONDecodeError',
|
|
21
|
+
]);
|
|
22
|
+
// Python standard library modules and their common functions
|
|
23
|
+
export const PYTHON_STDLIB = {
|
|
24
|
+
'os': ['getenv', 'environ', 'path', 'getcwd', 'chdir', 'listdir', 'mkdir', 'remove', 'rename', 'system', 'walk'],
|
|
25
|
+
'os.path': ['join', 'exists', 'isfile', 'isdir', 'basename', 'dirname', 'abspath', 'split'],
|
|
26
|
+
'sys': ['argv', 'exit', 'path', 'version', 'platform', 'stdout', 'stderr', 'stdin'],
|
|
27
|
+
'json': ['loads', 'dumps', 'load', 'dump', 'JSONDecodeError'],
|
|
28
|
+
'datetime': ['datetime', 'date', 'time', 'timedelta', 'timezone', 'utcnow', 'now', 'strptime', 'strftime'],
|
|
29
|
+
'time': ['sleep', 'time', 'strftime', 'strptime'],
|
|
30
|
+
're': ['match', 'search', 'findall', 'sub', 'compile', 'split'],
|
|
31
|
+
'math': ['sqrt', 'pow', 'floor', 'ceil', 'sin', 'cos', 'tan', 'log', 'exp'],
|
|
32
|
+
'random': ['random', 'randint', 'choice', 'shuffle', 'sample'],
|
|
33
|
+
'collections': ['defaultdict', 'Counter', 'OrderedDict', 'namedtuple', 'deque'],
|
|
34
|
+
'itertools': ['chain', 'combinations', 'permutations', 'product', 'cycle'],
|
|
35
|
+
'functools': ['wraps', 'lru_cache', 'partial', 'reduce'],
|
|
36
|
+
'pathlib': ['Path', 'PurePath'],
|
|
37
|
+
'typing': ['List', 'Dict', 'Set', 'Tuple', 'Optional', 'Union', 'Any', 'Callable'],
|
|
38
|
+
'asyncio': ['run', 'create_task', 'gather', 'sleep', 'wait', 'Queue'],
|
|
39
|
+
'logging': ['getLogger', 'info', 'debug', 'warning', 'error', 'critical'],
|
|
40
|
+
'unittest': ['TestCase', 'main', 'mock', 'patch'],
|
|
41
|
+
'pytest': ['fixture', 'mark', 'raises', 'skip'],
|
|
42
|
+
'requests': ['get', 'post', 'put', 'delete', 'patch', 'Session'],
|
|
43
|
+
'urllib': ['request', 'parse', 'error'],
|
|
44
|
+
'hashlib': ['md5', 'sha1', 'sha256', 'sha512', 'new'],
|
|
45
|
+
'base64': ['b64encode', 'b64decode'],
|
|
46
|
+
'pickle': ['dump', 'load', 'dumps', 'loads'],
|
|
47
|
+
'csv': ['reader', 'writer', 'DictReader', 'DictWriter'],
|
|
48
|
+
'subprocess': ['run', 'Popen', 'call', 'check_output'],
|
|
49
|
+
'threading': ['Thread', 'Lock', 'Event', 'Semaphore'],
|
|
50
|
+
'multiprocessing': ['Process', 'Pool', 'Queue', 'Manager'],
|
|
51
|
+
'traceback': ['format_exc', 'print_exc', 'format_stack', 'print_stack'],
|
|
52
|
+
'hmac': ['new', 'compare_digest'],
|
|
53
|
+
'uuid': ['UUID', 'uuid4', 'uuid1', 'uuid3', 'uuid5'],
|
|
54
|
+
};
|
|
55
|
+
// Python popular third-party libraries
|
|
56
|
+
export const PYTHON_THIRD_PARTY = {
|
|
57
|
+
'fastapi': ['FastAPI', 'APIRouter', 'Depends', 'HTTPException', 'status', 'Request', 'Response', 'File', 'UploadFile', 'Form', 'Query', 'Path', 'Body', 'Header'],
|
|
58
|
+
'fastapi.security': ['OAuth2PasswordBearer', 'OAuth2PasswordRequestForm', 'HTTPBearer', 'HTTPAuthorizationCredentials'],
|
|
59
|
+
'pydantic': ['BaseModel', 'Field', 'validator', 'root_validator', 'ValidationError'],
|
|
60
|
+
'sqlalchemy': ['create_engine', 'Column', 'Integer', 'String', 'Boolean', 'DateTime', 'ForeignKey', 'relationship', 'Table', 'MetaData'],
|
|
61
|
+
'sqlalchemy.orm': ['Session', 'sessionmaker', 'declarative_base', 'relationship', 'Query', 'select', 'where', 'order_by', 'scalars', 'execute', 'add', 'commit', 'refresh', 'query'],
|
|
62
|
+
'sqlalchemy.ext.declarative': ['declarative_base'],
|
|
63
|
+
'flask': ['Flask', 'request', 'jsonify', 'render_template', 'redirect', 'url_for', 'session', 'abort'],
|
|
64
|
+
'django.db': ['models', 'connection', 'transaction'],
|
|
65
|
+
'django.db.models': ['Model', 'CharField', 'IntegerField', 'DateTimeField', 'ForeignKey', 'ManyToManyField', 'Q', 'F'],
|
|
66
|
+
'django.http': ['HttpResponse', 'JsonResponse', 'HttpRequest', 'HttpResponseRedirect'],
|
|
67
|
+
'django.shortcuts': ['render', 'redirect', 'get_object_or_404'],
|
|
68
|
+
'django.contrib.auth': ['authenticate', 'login', 'logout', 'get_user_model'],
|
|
69
|
+
'pandas': ['DataFrame', 'Series', 'read_csv', 'read_excel', 'read_json'],
|
|
70
|
+
'numpy': ['array', 'zeros', 'ones', 'arange', 'linspace', 'random'],
|
|
71
|
+
'dotenv': ['load_dotenv', 'find_dotenv', 'dotenv_values'],
|
|
72
|
+
'jwt': ['encode', 'decode', 'PyJWT'],
|
|
73
|
+
'bcrypt': ['hashpw', 'checkpw', 'gensalt'],
|
|
74
|
+
'redis': ['Redis', 'StrictRedis'],
|
|
75
|
+
'celery': ['Celery', 'task', 'shared_task'],
|
|
76
|
+
'pytest': ['fixture', 'mark', 'raises', 'skip', 'parametrize'],
|
|
77
|
+
'httpx': ['AsyncClient', 'Client', 'get', 'post', 'Timeout', 'Limits'],
|
|
78
|
+
'openai': ['OpenAI', 'ChatCompletion', 'Completion'],
|
|
79
|
+
};
|
|
80
|
+
// JavaScript/TypeScript built-in objects and functions
|
|
81
|
+
export const JS_BUILTINS = new Set([
|
|
82
|
+
// Global objects
|
|
83
|
+
'Object', 'Array', 'String', 'Number', 'Boolean', 'Symbol', 'BigInt',
|
|
84
|
+
'Math', 'Date', 'RegExp', 'Error', 'Map', 'Set', 'WeakMap', 'WeakSet',
|
|
85
|
+
'Promise', 'Proxy', 'Reflect', 'JSON', 'Intl',
|
|
86
|
+
// Global functions
|
|
87
|
+
'parseInt', 'parseFloat', 'isNaN', 'isFinite', 'encodeURI', 'decodeURI',
|
|
88
|
+
'encodeURIComponent', 'decodeURIComponent', 'eval', 'setTimeout', 'setInterval',
|
|
89
|
+
'clearTimeout', 'clearInterval', 'console',
|
|
90
|
+
// Common methods
|
|
91
|
+
'toString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable',
|
|
92
|
+
'toLocaleString', 'constructor',
|
|
93
|
+
]);
|
|
94
|
+
// JavaScript/TypeScript standard library
|
|
95
|
+
export const JS_STDLIB = {
|
|
96
|
+
'fs': ['readFile', 'writeFile', 'readFileSync', 'writeFileSync', 'existsSync', 'mkdirSync', 'readdirSync'],
|
|
97
|
+
'path': ['join', 'resolve', 'dirname', 'basename', 'extname', 'normalize'],
|
|
98
|
+
'http': ['createServer', 'request', 'get'],
|
|
99
|
+
'https': ['createServer', 'request', 'get'],
|
|
100
|
+
'crypto': ['createHash', 'randomBytes', 'createCipheriv', 'createDecipheriv'],
|
|
101
|
+
'util': ['promisify', 'inspect', 'format', 'inherits'],
|
|
102
|
+
'events': ['EventEmitter'],
|
|
103
|
+
'stream': ['Readable', 'Writable', 'Transform', 'pipeline'],
|
|
104
|
+
'buffer': ['Buffer'],
|
|
105
|
+
'process': ['env', 'argv', 'exit', 'cwd', 'nextTick'],
|
|
106
|
+
};
|
|
107
|
+
// JavaScript/TypeScript popular third-party libraries
|
|
108
|
+
export const JS_THIRD_PARTY = {
|
|
109
|
+
'react': ['useState', 'useEffect', 'useContext', 'useReducer', 'useCallback', 'useMemo', 'useRef', 'useImperativeHandle', 'useLayoutEffect', 'useDebugValue', 'Component', 'PureComponent', 'createElement', 'Fragment', 'StrictMode', 'Suspense', 'lazy'],
|
|
110
|
+
'react-dom': ['render', 'hydrate', 'createPortal', 'findDOMNode', 'unmountComponentAtNode'],
|
|
111
|
+
'express': ['Router', 'json', 'urlencoded', 'static', 'use', 'get', 'post', 'put', 'delete', 'patch'],
|
|
112
|
+
'axios': ['get', 'post', 'put', 'delete', 'patch', 'request', 'create'],
|
|
113
|
+
'lodash': ['map', 'filter', 'reduce', 'find', 'findIndex', 'forEach', 'some', 'every', 'debounce', 'throttle', 'cloneDeep', 'merge'],
|
|
114
|
+
'moment': ['format', 'parse', 'add', 'subtract', 'diff', 'isBefore', 'isAfter'],
|
|
115
|
+
'dayjs': ['format', 'parse', 'add', 'subtract', 'diff', 'isBefore', 'isAfter'],
|
|
116
|
+
'joi': ['object', 'string', 'number', 'boolean', 'array', 'validate'],
|
|
117
|
+
'yup': ['object', 'string', 'number', 'boolean', 'array', 'validate'],
|
|
118
|
+
'bcrypt': ['hash', 'compare', 'genSalt', 'hashSync', 'compareSync'],
|
|
119
|
+
'jsonwebtoken': ['sign', 'verify', 'decode'],
|
|
120
|
+
'mongoose': ['Schema', 'model', 'connect', 'connection'],
|
|
121
|
+
'sequelize': ['Sequelize', 'Model', 'DataTypes'],
|
|
122
|
+
'typeorm': ['Entity', 'Column', 'PrimaryGeneratedColumn', 'ManyToOne', 'OneToMany', 'ManyToMany', 'CreateDateColumn', 'UpdateDateColumn'],
|
|
123
|
+
'next': ['useRouter', 'usePathname', 'useSearchParams', 'Link', 'Image', 'Head'],
|
|
124
|
+
'vue': ['ref', 'reactive', 'computed', 'watch', 'onMounted', 'onUnmounted', 'defineComponent'],
|
|
125
|
+
'angular': ['Component', 'Injectable', 'NgModule', 'Input', 'Output', 'EventEmitter'],
|
|
126
|
+
'react-query': ['useQuery', 'useMutation', 'useQueryClient', 'QueryClient', 'QueryClientProvider'],
|
|
127
|
+
};
|
|
128
|
+
// JavaScript/TypeScript keywords (not functions)
|
|
129
|
+
export const JS_KEYWORDS = new Set([
|
|
130
|
+
'async', 'await', 'break', 'case', 'catch', 'class', 'const', 'continue',
|
|
131
|
+
'debugger', 'default', 'delete', 'do', 'else', 'export', 'extends', 'finally',
|
|
132
|
+
'for', 'function', 'if', 'import', 'in', 'instanceof', 'let', 'new', 'return',
|
|
133
|
+
'static', 'super', 'switch', 'this', 'throw', 'try', 'typeof', 'var', 'void',
|
|
134
|
+
'while', 'with', 'yield',
|
|
135
|
+
]);
|
|
136
|
+
// Python keywords (not functions)
|
|
137
|
+
export const PYTHON_KEYWORDS = new Set([
|
|
138
|
+
'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def',
|
|
139
|
+
'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if',
|
|
140
|
+
'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise',
|
|
141
|
+
'return', 'try', 'while', 'with', 'yield',
|
|
142
|
+
]);
|
|
143
|
+
/**
|
|
144
|
+
* Check if a function/class is from a standard library
|
|
145
|
+
*/
|
|
146
|
+
export function isStandardLibrary(name, language) {
|
|
147
|
+
if (language === 'python') {
|
|
148
|
+
// Check built-ins
|
|
149
|
+
if (PYTHON_BUILTINS.has(name))
|
|
150
|
+
return true;
|
|
151
|
+
// Check keywords
|
|
152
|
+
if (PYTHON_KEYWORDS.has(name))
|
|
153
|
+
return true;
|
|
154
|
+
// Check standard library
|
|
155
|
+
for (const funcs of Object.values(PYTHON_STDLIB)) {
|
|
156
|
+
if (funcs.includes(name))
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
// Check popular third-party
|
|
160
|
+
for (const funcs of Object.values(PYTHON_THIRD_PARTY)) {
|
|
161
|
+
if (funcs.includes(name))
|
|
162
|
+
return true;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
else if (language === 'javascript' || language === 'typescript') {
|
|
166
|
+
// Check built-ins
|
|
167
|
+
if (JS_BUILTINS.has(name))
|
|
168
|
+
return true;
|
|
169
|
+
// Check keywords
|
|
170
|
+
if (JS_KEYWORDS.has(name))
|
|
171
|
+
return true;
|
|
172
|
+
// Check standard library
|
|
173
|
+
for (const funcs of Object.values(JS_STDLIB)) {
|
|
174
|
+
if (funcs.includes(name))
|
|
175
|
+
return true;
|
|
176
|
+
}
|
|
177
|
+
// Check popular third-party
|
|
178
|
+
for (const funcs of Object.values(JS_THIRD_PARTY)) {
|
|
179
|
+
if (funcs.includes(name))
|
|
180
|
+
return true;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Get the module/package for a standard library function
|
|
187
|
+
*/
|
|
188
|
+
export function getStandardLibraryModule(name, language) {
|
|
189
|
+
if (language === 'python') {
|
|
190
|
+
for (const [module, funcs] of Object.entries(PYTHON_STDLIB)) {
|
|
191
|
+
if (funcs.includes(name))
|
|
192
|
+
return module;
|
|
193
|
+
}
|
|
194
|
+
for (const [module, funcs] of Object.entries(PYTHON_THIRD_PARTY)) {
|
|
195
|
+
if (funcs.includes(name))
|
|
196
|
+
return module;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
else if (language === 'javascript' || language === 'typescript') {
|
|
200
|
+
for (const [module, funcs] of Object.entries(JS_STDLIB)) {
|
|
201
|
+
if (funcs.includes(name))
|
|
202
|
+
return module;
|
|
203
|
+
}
|
|
204
|
+
for (const [module, funcs] of Object.entries(JS_THIRD_PARTY)) {
|
|
205
|
+
if (funcs.includes(name))
|
|
206
|
+
return module;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return null;
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=standardLibrary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standardLibrary.js","sourceRoot":"","sources":["../../src/analyzers/standardLibrary.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Symbol Graph Builder
|
|
3
|
+
*
|
|
4
|
+
* Builds symbol-level dependency graphs to understand relationships between
|
|
5
|
+
* functions, classes, and other symbols across the codebase.
|
|
6
|
+
*
|
|
7
|
+
* Inspired by Augment Code's semantic dependency analysis.
|
|
8
|
+
*
|
|
9
|
+
* @format
|
|
10
|
+
*/
|
|
11
|
+
import { ProjectContext } from "../context/projectContext.js";
|
|
12
|
+
import { SymbolGraph, SymbolUsage, SymbolGraphOptions, RelatedSymbols } from "../types/symbolGraph.js";
|
|
13
|
+
/**
|
|
14
|
+
* Build symbol-level dependency graph from project context
|
|
15
|
+
*/
|
|
16
|
+
export declare function buildSymbolGraph(context: ProjectContext, options?: SymbolGraphOptions): Promise<SymbolGraph>;
|
|
17
|
+
/**
|
|
18
|
+
* Find symbols related to a given symbol
|
|
19
|
+
*/
|
|
20
|
+
export declare function findRelatedSymbols(graph: SymbolGraph, symbolName: string, maxResults?: number): RelatedSymbols;
|
|
21
|
+
/**
|
|
22
|
+
* Get symbols that are most relevant to a set of imports
|
|
23
|
+
* This is useful for validation - given what's imported, what else is likely needed?
|
|
24
|
+
*/
|
|
25
|
+
export declare function getRelevantSymbols(graph: SymbolGraph, importedSymbols: string[], maxResults?: number): string[];
|
|
26
|
+
/**
|
|
27
|
+
* Get usage statistics for a symbol
|
|
28
|
+
*/
|
|
29
|
+
export declare function getSymbolUsage(graph: SymbolGraph, symbolName: string): SymbolUsage | null;
|
|
30
|
+
//# sourceMappingURL=symbolGraph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbolGraph.d.ts","sourceRoot":"","sources":["../../src/analyzers/symbolGraph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,cAAc,EAAY,MAAM,8BAA8B,CAAC;AAKxE,OAAO,EACL,WAAW,EAEX,WAAW,EACX,kBAAkB,EAClB,cAAc,EAEf,MAAM,yBAAyB,CAAC;AAGjC;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,WAAW,CAAC,CA8CtB;AAoTD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,MAAW,GACtB,cAAc,CAiDhB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,EAClB,eAAe,EAAE,MAAM,EAAE,EACzB,UAAU,GAAE,MAAW,GACtB,MAAM,EAAE,CAmBV;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,MAAM,GACjB,WAAW,GAAG,IAAI,CAEpB"}
|