@dinyangetoh/codeplug-cli 0.1.3 → 0.1.4
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/README.md +286 -45
- package/dist/cli/commands/convention.d.ts +1 -1
- package/dist/cli/commands/convention.d.ts.map +1 -1
- package/dist/cli/commands/convention.js +174 -31
- package/dist/cli/commands/convention.js.map +1 -1
- package/dist/cli/commands/docs.d.ts +3 -1
- package/dist/cli/commands/docs.d.ts.map +1 -1
- package/dist/cli/commands/docs.js +13 -2
- package/dist/cli/commands/docs.js.map +1 -1
- package/dist/cli/commands/export.d.ts.map +1 -1
- package/dist/cli/commands/export.js +6 -1
- package/dist/cli/commands/export.js.map +1 -1
- package/dist/cli/commands/start.d.ts +2 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +172 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/index.js +10 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/config/ConfigManager.d.ts +18 -0
- package/dist/config/ConfigManager.d.ts.map +1 -1
- package/dist/config/ConfigManager.js +55 -2
- package/dist/config/ConfigManager.js.map +1 -1
- package/dist/config/ConventionSchema.d.ts +59 -0
- package/dist/config/ConventionSchema.d.ts.map +1 -1
- package/dist/config/ConventionSchema.js +11 -0
- package/dist/config/ConventionSchema.js.map +1 -1
- package/dist/config/defaults.d.ts +60 -2
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +136 -20
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/types.d.ts +71 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/core/analyzer/AstAnalyzer.d.ts +11 -2
- package/dist/core/analyzer/AstAnalyzer.d.ts.map +1 -1
- package/dist/core/analyzer/AstAnalyzer.js +21 -5
- package/dist/core/analyzer/AstAnalyzer.js.map +1 -1
- package/dist/core/analyzer/ConventionDetector.d.ts +12 -1
- package/dist/core/analyzer/ConventionDetector.d.ts.map +1 -1
- package/dist/core/analyzer/ConventionDetector.js +120 -20
- package/dist/core/analyzer/ConventionDetector.js.map +1 -1
- package/dist/core/analyzer/ConventionMlResolver.d.ts +4 -0
- package/dist/core/analyzer/ConventionMlResolver.d.ts.map +1 -0
- package/dist/core/analyzer/ConventionMlResolver.js +17 -0
- package/dist/core/analyzer/ConventionMlResolver.js.map +1 -0
- package/dist/core/analyzer/PatternAggregator.d.ts +11 -2
- package/dist/core/analyzer/PatternAggregator.d.ts.map +1 -1
- package/dist/core/analyzer/PatternAggregator.js +87 -15
- package/dist/core/analyzer/PatternAggregator.js.map +1 -1
- package/dist/core/analyzer/SemanticCoherencePhase.d.ts +10 -0
- package/dist/core/analyzer/SemanticCoherencePhase.d.ts.map +1 -0
- package/dist/core/analyzer/SemanticCoherencePhase.js +191 -0
- package/dist/core/analyzer/SemanticCoherencePhase.js.map +1 -0
- package/dist/core/analyzer/SemanticCoherenceService.d.ts +11 -0
- package/dist/core/analyzer/SemanticCoherenceService.d.ts.map +1 -0
- package/dist/core/analyzer/SemanticCoherenceService.js +56 -0
- package/dist/core/analyzer/SemanticCoherenceService.js.map +1 -0
- package/dist/core/analyzer/visitors/ComponentVisitor.d.ts.map +1 -1
- package/dist/core/analyzer/visitors/ComponentVisitor.js +2 -2
- package/dist/core/analyzer/visitors/ComponentVisitor.js.map +1 -1
- package/dist/core/analyzer/visitors/ErrorHandlingVisitor.d.ts.map +1 -1
- package/dist/core/analyzer/visitors/ErrorHandlingVisitor.js +2 -2
- package/dist/core/analyzer/visitors/ErrorHandlingVisitor.js.map +1 -1
- package/dist/core/analyzer/visitors/ImportVisitor.d.ts +5 -0
- package/dist/core/analyzer/visitors/ImportVisitor.d.ts.map +1 -1
- package/dist/core/analyzer/visitors/ImportVisitor.js +8 -3
- package/dist/core/analyzer/visitors/ImportVisitor.js.map +1 -1
- package/dist/core/analyzer/visitors/NamingVisitor.d.ts +20 -2
- package/dist/core/analyzer/visitors/NamingVisitor.d.ts.map +1 -1
- package/dist/core/analyzer/visitors/NamingVisitor.js +464 -25
- package/dist/core/analyzer/visitors/NamingVisitor.js.map +1 -1
- package/dist/core/analyzer/visitors/SchemaVisitor.d.ts +7 -0
- package/dist/core/analyzer/visitors/SchemaVisitor.d.ts.map +1 -0
- package/dist/core/analyzer/visitors/SchemaVisitor.js +50 -0
- package/dist/core/analyzer/visitors/SchemaVisitor.js.map +1 -0
- package/dist/core/analyzer/visitors/StructureVisitor.d.ts +4 -1
- package/dist/core/analyzer/visitors/StructureVisitor.d.ts.map +1 -1
- package/dist/core/analyzer/visitors/StructureVisitor.js +38 -4
- package/dist/core/analyzer/visitors/StructureVisitor.js.map +1 -1
- package/dist/core/analyzer/visitors/types.d.ts +4 -0
- package/dist/core/analyzer/visitors/types.d.ts.map +1 -1
- package/dist/core/classifier/CodeBertEmbedder.d.ts +9 -0
- package/dist/core/classifier/CodeBertEmbedder.d.ts.map +1 -0
- package/dist/core/classifier/CodeBertEmbedder.js +33 -0
- package/dist/core/classifier/CodeBertEmbedder.js.map +1 -0
- package/dist/core/classifier/ConfidenceGate.d.ts +2 -0
- package/dist/core/classifier/ConfidenceGate.d.ts.map +1 -1
- package/dist/core/classifier/ConfidenceGate.js +6 -2
- package/dist/core/classifier/ConfidenceGate.js.map +1 -1
- package/dist/core/exporter/FreshnessChecker.d.ts +5 -1
- package/dist/core/exporter/FreshnessChecker.d.ts.map +1 -1
- package/dist/core/exporter/FreshnessChecker.js +5 -10
- package/dist/core/exporter/FreshnessChecker.js.map +1 -1
- package/dist/core/generator/DocGenerator.d.ts +6 -1
- package/dist/core/generator/DocGenerator.d.ts.map +1 -1
- package/dist/core/generator/DocGenerator.js +62 -7
- package/dist/core/generator/DocGenerator.js.map +1 -1
- package/dist/core/generator/StalenessTracker.d.ts +7 -1
- package/dist/core/generator/StalenessTracker.d.ts.map +1 -1
- package/dist/core/generator/StalenessTracker.js +12 -12
- package/dist/core/generator/StalenessTracker.js.map +1 -1
- package/dist/core/generator/documents/ArchitectureGenerator.d.ts +1 -0
- package/dist/core/generator/documents/ArchitectureGenerator.d.ts.map +1 -1
- package/dist/core/generator/documents/ArchitectureGenerator.js +37 -12
- package/dist/core/generator/documents/ArchitectureGenerator.js.map +1 -1
- package/dist/core/generator/documents/ContributingGenerator.d.ts.map +1 -1
- package/dist/core/generator/documents/ContributingGenerator.js +20 -13
- package/dist/core/generator/documents/ContributingGenerator.js.map +1 -1
- package/dist/core/generator/documents/ConventionsGenerator.d.ts.map +1 -1
- package/dist/core/generator/documents/ConventionsGenerator.js +16 -2
- package/dist/core/generator/documents/ConventionsGenerator.js.map +1 -1
- package/dist/core/generator/documents/OnboardingGenerator.d.ts.map +1 -1
- package/dist/core/generator/documents/OnboardingGenerator.js +26 -18
- package/dist/core/generator/documents/OnboardingGenerator.js.map +1 -1
- package/dist/core/generator/documents/ReadmeGenerator.d.ts.map +1 -1
- package/dist/core/generator/documents/ReadmeGenerator.js +26 -14
- package/dist/core/generator/documents/ReadmeGenerator.js.map +1 -1
- package/dist/core/generator/documents/types.d.ts +8 -1
- package/dist/core/generator/documents/types.d.ts.map +1 -1
- package/dist/core/generator/mlPipelineBuilder.d.ts +8 -0
- package/dist/core/generator/mlPipelineBuilder.d.ts.map +1 -0
- package/dist/core/generator/mlPipelineBuilder.js +117 -0
- package/dist/core/generator/mlPipelineBuilder.js.map +1 -0
- package/dist/core/scorer/ComplianceScorer.d.ts +5 -1
- package/dist/core/scorer/ComplianceScorer.d.ts.map +1 -1
- package/dist/core/scorer/ComplianceScorer.js +47 -23
- package/dist/core/scorer/ComplianceScorer.js.map +1 -1
- package/dist/core/scorer/ViolationDetector.d.ts +19 -2
- package/dist/core/scorer/ViolationDetector.d.ts.map +1 -1
- package/dist/core/scorer/ViolationDetector.js +169 -53
- package/dist/core/scorer/ViolationDetector.js.map +1 -1
- package/dist/models/ModelManager.d.ts +5 -1
- package/dist/models/ModelManager.d.ts.map +1 -1
- package/dist/models/ModelManager.js +19 -5
- package/dist/models/ModelManager.js.map +1 -1
- package/dist/models/ModelRegistry.d.ts +1 -1
- package/dist/models/ModelRegistry.d.ts.map +1 -1
- package/dist/models/ModelRegistry.js +28 -0
- package/dist/models/ModelRegistry.js.map +1 -1
- package/dist/storage/CustomRuleStore.d.ts +9 -0
- package/dist/storage/CustomRuleStore.d.ts.map +1 -0
- package/dist/storage/CustomRuleStore.js +22 -0
- package/dist/storage/CustomRuleStore.js.map +1 -0
- package/dist/storage/ScoreStore.d.ts +2 -5
- package/dist/storage/ScoreStore.d.ts.map +1 -1
- package/dist/storage/ScoreStore.js +23 -71
- package/dist/storage/ScoreStore.js.map +1 -1
- package/package.json +4 -3
- package/dist/core/classifier/DriftClassifier.d.ts +0 -17
- package/dist/core/classifier/DriftClassifier.d.ts.map +0 -1
- package/dist/core/classifier/DriftClassifier.js +0 -293
- package/dist/core/classifier/DriftClassifier.js.map +0 -1
|
@@ -1,4 +1,61 @@
|
|
|
1
|
-
import type { CodePlugConfig } from
|
|
1
|
+
import type { CodePlugConfig, Dimension, Severity } from "./types.js";
|
|
2
|
+
export declare const DEFAULT_STRUCTURE: {
|
|
3
|
+
architecture: {
|
|
4
|
+
featureBased: string[];
|
|
5
|
+
mvc: string[];
|
|
6
|
+
layered: string[];
|
|
7
|
+
};
|
|
8
|
+
directoryPlacement: {
|
|
9
|
+
dir: string;
|
|
10
|
+
filePattern: string;
|
|
11
|
+
patternName: string;
|
|
12
|
+
}[];
|
|
13
|
+
};
|
|
14
|
+
export declare const DEFAULT_ANALYSIS: {
|
|
15
|
+
include: string[];
|
|
16
|
+
ignore: string[];
|
|
17
|
+
};
|
|
18
|
+
export declare const DEFAULT_SCORING: {
|
|
19
|
+
weights: Record<Severity, number>;
|
|
20
|
+
threshold: number;
|
|
21
|
+
trendWindow: number;
|
|
22
|
+
};
|
|
23
|
+
export declare const DEFAULT_CONVENTION: {
|
|
24
|
+
confidenceThreshold: number;
|
|
25
|
+
minPatternConfidence: number;
|
|
26
|
+
enableSemanticCoherence: boolean;
|
|
27
|
+
semanticFitThreshold: number;
|
|
28
|
+
useSentenceSimilarityFallback: boolean;
|
|
29
|
+
enableMlResolver: boolean;
|
|
30
|
+
mlResolverBand: number;
|
|
31
|
+
severityMap: Partial<Record<Dimension, Severity>>;
|
|
32
|
+
};
|
|
33
|
+
export declare const DEFAULT_DRIFT: {
|
|
34
|
+
confidenceThreshold: number;
|
|
35
|
+
enableMlFallback: boolean;
|
|
36
|
+
mlSimilarityThreshold: number;
|
|
37
|
+
namingPatterns: {
|
|
38
|
+
camelCase: string;
|
|
39
|
+
PascalCase: string;
|
|
40
|
+
SCREAMING_SNAKE_CASE: string;
|
|
41
|
+
"kebab-case": string;
|
|
42
|
+
snake_case: string;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
export declare const DEFAULT_DOCS: {
|
|
46
|
+
enableMlPipeline: boolean;
|
|
47
|
+
tracked: string[];
|
|
48
|
+
exportTargets: {
|
|
49
|
+
file: string;
|
|
50
|
+
dir: string;
|
|
51
|
+
}[];
|
|
52
|
+
devScripts: string[];
|
|
53
|
+
};
|
|
54
|
+
export declare const DEFAULT_NAMING: {
|
|
55
|
+
stemStopwords: string[];
|
|
56
|
+
reservedFileStems: string[];
|
|
57
|
+
allowDefaultImports: boolean;
|
|
58
|
+
};
|
|
2
59
|
export declare const DEFAULT_CONFIG: CodePlugConfig;
|
|
3
60
|
export declare const PROVIDER_PRESETS: Record<string, {
|
|
4
61
|
baseUrl: string;
|
|
@@ -7,7 +64,8 @@ export declare const PROVIDER_PRESETS: Record<string, {
|
|
|
7
64
|
export declare const CODEPLUG_DIR = ".codeplug";
|
|
8
65
|
export declare const CONVENTIONS_FILE = "conventions.json";
|
|
9
66
|
export declare const CONFIG_FILE = "config.json";
|
|
10
|
-
export declare const
|
|
67
|
+
export declare const SCORES_FILE = "scores.json";
|
|
11
68
|
export declare const DOC_HASHES_FILE = "doc-hashes.json";
|
|
12
69
|
export declare const VIOLATIONS_FILE = "violations.json";
|
|
70
|
+
export declare const RULES_FILE = "rules.json";
|
|
13
71
|
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtE,eAAO,MAAM,iBAAiB;;;;;;;;;;;CAuB7B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;CAQ5B,CAAC;AAEF,eAAO,MAAM,eAAe;aAC+B,MAAM,CAC7D,QAAQ,EACR,MAAM,CACP;;;CAGF,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;iBAkBxB,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;CAC1C,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;CAWzB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;CAiBxB,CAAC;AAEF,eAAO,MAAM,cAAc;;;;CAI1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cAiB5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CACnC,MAAM,EACN;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAyB1C,CAAC;AAEF,eAAO,MAAM,YAAY,cAAc,CAAC;AACxC,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,UAAU,eAAe,CAAC"}
|
package/dist/config/defaults.js
CHANGED
|
@@ -1,28 +1,144 @@
|
|
|
1
|
+
export const DEFAULT_STRUCTURE = {
|
|
2
|
+
architecture: {
|
|
3
|
+
featureBased: ["features", "modules", "domains", "pages"],
|
|
4
|
+
mvc: ["models", "views", "controllers"],
|
|
5
|
+
layered: ["controllers", "services", "repositories", "entities"],
|
|
6
|
+
},
|
|
7
|
+
directoryPlacement: [
|
|
8
|
+
{
|
|
9
|
+
dir: "helpers",
|
|
10
|
+
filePattern: "[Hh]elper",
|
|
11
|
+
patternName: "*Helper files in helpers/",
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
dir: "hooks",
|
|
15
|
+
filePattern: "^use[A-Z]",
|
|
16
|
+
patternName: "use* hooks in hooks/",
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
dir: "services",
|
|
20
|
+
filePattern: "Service$",
|
|
21
|
+
patternName: "*Service files in services/",
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
};
|
|
25
|
+
export const DEFAULT_ANALYSIS = {
|
|
26
|
+
include: ["**/*.{ts,tsx,js,jsx,mjs,cjs}"],
|
|
27
|
+
ignore: [
|
|
28
|
+
"**/node_modules/**",
|
|
29
|
+
"**/dist/**",
|
|
30
|
+
"**/build/**",
|
|
31
|
+
"**/.codeplug/**",
|
|
32
|
+
],
|
|
33
|
+
};
|
|
34
|
+
export const DEFAULT_SCORING = {
|
|
35
|
+
weights: { critical: 15, high: 8, medium: 3, low: 1 },
|
|
36
|
+
threshold: 70,
|
|
37
|
+
trendWindow: 8,
|
|
38
|
+
};
|
|
39
|
+
export const DEFAULT_CONVENTION = {
|
|
40
|
+
confidenceThreshold: 60,
|
|
41
|
+
minPatternConfidence: 50,
|
|
42
|
+
enableSemanticCoherence: false,
|
|
43
|
+
semanticFitThreshold: 0.6,
|
|
44
|
+
useSentenceSimilarityFallback: true,
|
|
45
|
+
enableMlResolver: true,
|
|
46
|
+
mlResolverBand: 10,
|
|
47
|
+
severityMap: {
|
|
48
|
+
naming: "medium",
|
|
49
|
+
structure: "high",
|
|
50
|
+
component: "medium",
|
|
51
|
+
testing: "medium",
|
|
52
|
+
"error-handling": "high",
|
|
53
|
+
imports: "low",
|
|
54
|
+
git: "low",
|
|
55
|
+
state: "medium",
|
|
56
|
+
api: "medium",
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
export const DEFAULT_DRIFT = {
|
|
60
|
+
confidenceThreshold: 0.7,
|
|
61
|
+
enableMlFallback: false,
|
|
62
|
+
mlSimilarityThreshold: 0.6,
|
|
63
|
+
namingPatterns: {
|
|
64
|
+
camelCase: "^[a-z][a-zA-Z0-9]*$",
|
|
65
|
+
PascalCase: "^[A-Z][a-zA-Z0-9]*$",
|
|
66
|
+
SCREAMING_SNAKE_CASE: "^[A-Z][A-Z0-9_]*$",
|
|
67
|
+
"kebab-case": "^[a-z][a-z0-9-]*$",
|
|
68
|
+
snake_case: "^[a-z][a-z0-9_]*$",
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
export const DEFAULT_DOCS = {
|
|
72
|
+
enableMlPipeline: true,
|
|
73
|
+
tracked: [
|
|
74
|
+
"README.md",
|
|
75
|
+
"ARCHITECTURE.md",
|
|
76
|
+
"CONVENTIONS.md",
|
|
77
|
+
"CONTRIBUTING.md",
|
|
78
|
+
"ONBOARDING.md",
|
|
79
|
+
],
|
|
80
|
+
exportTargets: [
|
|
81
|
+
{ file: "CLAUDE.md", dir: "." },
|
|
82
|
+
{ file: "conventions.mdc", dir: ".cursor/rules" },
|
|
83
|
+
{ file: "copilot-instructions.md", dir: ".github" },
|
|
84
|
+
{ file: "codeplug-export.json", dir: ".codeplug/exports" },
|
|
85
|
+
{ file: "ci-report.json", dir: ".codeplug" },
|
|
86
|
+
],
|
|
87
|
+
devScripts: ["build", "test", "lint", "dev", "typecheck", "coverage"],
|
|
88
|
+
};
|
|
89
|
+
export const DEFAULT_NAMING = {
|
|
90
|
+
stemStopwords: ["helper", "util", "service", "type", "hook", "api"],
|
|
91
|
+
reservedFileStems: ["types", "constants", "defaults", "index"],
|
|
92
|
+
allowDefaultImports: true,
|
|
93
|
+
};
|
|
1
94
|
export const DEFAULT_CONFIG = {
|
|
2
95
|
llm: {
|
|
3
|
-
provider:
|
|
4
|
-
model:
|
|
5
|
-
baseUrl:
|
|
6
|
-
apiKey:
|
|
96
|
+
provider: "ollama",
|
|
97
|
+
model: "llama3",
|
|
98
|
+
baseUrl: "http://localhost:11434/v1",
|
|
99
|
+
apiKey: "ollama",
|
|
7
100
|
},
|
|
8
101
|
models: {
|
|
9
|
-
tier:
|
|
102
|
+
tier: "default",
|
|
10
103
|
},
|
|
104
|
+
structure: DEFAULT_STRUCTURE,
|
|
105
|
+
analysis: DEFAULT_ANALYSIS,
|
|
106
|
+
scoring: DEFAULT_SCORING,
|
|
107
|
+
convention: DEFAULT_CONVENTION,
|
|
108
|
+
drift: DEFAULT_DRIFT,
|
|
109
|
+
docs: DEFAULT_DOCS,
|
|
110
|
+
naming: DEFAULT_NAMING,
|
|
11
111
|
};
|
|
12
112
|
export const PROVIDER_PRESETS = {
|
|
13
|
-
ollama: { baseUrl:
|
|
14
|
-
openai: { baseUrl:
|
|
15
|
-
anthropic: {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
113
|
+
ollama: { baseUrl: "http://localhost:11434/v1", defaultModel: "llama3" },
|
|
114
|
+
openai: { baseUrl: "https://api.openai.com/v1", defaultModel: "gpt-4o" },
|
|
115
|
+
anthropic: {
|
|
116
|
+
baseUrl: "https://api.anthropic.com/v1/",
|
|
117
|
+
defaultModel: "claude-sonnet-4-20250514",
|
|
118
|
+
},
|
|
119
|
+
gemini: {
|
|
120
|
+
baseUrl: "https://generativelanguage.googleapis.com/v1beta/openai/",
|
|
121
|
+
defaultModel: "gemini-2.0-flash",
|
|
122
|
+
},
|
|
123
|
+
openrouter: {
|
|
124
|
+
baseUrl: "https://openrouter.ai/api/v1",
|
|
125
|
+
defaultModel: "anthropic/claude-sonnet-4-20250514",
|
|
126
|
+
},
|
|
127
|
+
groq: {
|
|
128
|
+
baseUrl: "https://api.groq.com/openai/v1",
|
|
129
|
+
defaultModel: "llama-3.3-70b-versatile",
|
|
130
|
+
},
|
|
131
|
+
deepseek: {
|
|
132
|
+
baseUrl: "https://api.deepseek.com",
|
|
133
|
+
defaultModel: "deepseek-chat",
|
|
134
|
+
},
|
|
135
|
+
grok: { baseUrl: "https://api.x.ai/v1", defaultModel: "grok-2-latest" },
|
|
136
|
+
};
|
|
137
|
+
export const CODEPLUG_DIR = ".codeplug";
|
|
138
|
+
export const CONVENTIONS_FILE = "conventions.json";
|
|
139
|
+
export const CONFIG_FILE = "config.json";
|
|
140
|
+
export const SCORES_FILE = "scores.json";
|
|
141
|
+
export const DOC_HASHES_FILE = "doc-hashes.json";
|
|
142
|
+
export const VIOLATIONS_FILE = "violations.json";
|
|
143
|
+
export const RULES_FILE = "rules.json";
|
|
28
144
|
//# sourceMappingURL=defaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,GAAG,EAAE;QACH,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,2BAA2B;QACpC,MAAM,EAAE,QAAQ;KACjB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,SAAS;KAChB;
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"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"}
|
package/dist/config/types.d.ts
CHANGED
|
@@ -33,9 +33,69 @@ export interface LlmConfig {
|
|
|
33
33
|
export interface ModelsConfig {
|
|
34
34
|
tier: ModelTier;
|
|
35
35
|
}
|
|
36
|
+
export interface StructureRule {
|
|
37
|
+
dir: string;
|
|
38
|
+
filePattern: string;
|
|
39
|
+
patternName: string;
|
|
40
|
+
}
|
|
41
|
+
export interface StructureConfig {
|
|
42
|
+
architecture?: {
|
|
43
|
+
featureBased?: string[];
|
|
44
|
+
mvc?: string[];
|
|
45
|
+
layered?: string[];
|
|
46
|
+
};
|
|
47
|
+
directoryPlacement?: StructureRule[];
|
|
48
|
+
}
|
|
49
|
+
export interface AnalysisConfig {
|
|
50
|
+
include?: string[];
|
|
51
|
+
ignore?: string[];
|
|
52
|
+
}
|
|
53
|
+
export interface ScoringConfig {
|
|
54
|
+
weights?: Record<Severity, number>;
|
|
55
|
+
threshold?: number;
|
|
56
|
+
trendWindow?: number;
|
|
57
|
+
}
|
|
58
|
+
export interface ConventionConfig {
|
|
59
|
+
confidenceThreshold?: number;
|
|
60
|
+
minPatternConfidence?: number;
|
|
61
|
+
severityMap?: Partial<Record<Dimension, Severity>>;
|
|
62
|
+
enableSemanticCoherence?: boolean;
|
|
63
|
+
semanticFitThreshold?: number;
|
|
64
|
+
useSentenceSimilarityFallback?: boolean;
|
|
65
|
+
enableMlResolver?: boolean;
|
|
66
|
+
mlResolverBand?: number;
|
|
67
|
+
}
|
|
68
|
+
export interface DriftConfig {
|
|
69
|
+
confidenceThreshold?: number;
|
|
70
|
+
namingPatterns?: Record<string, string>;
|
|
71
|
+
enableMlFallback?: boolean;
|
|
72
|
+
mlSimilarityThreshold?: number;
|
|
73
|
+
}
|
|
74
|
+
export interface ExportTarget {
|
|
75
|
+
file: string;
|
|
76
|
+
dir: string;
|
|
77
|
+
}
|
|
78
|
+
export interface DocsConfig {
|
|
79
|
+
tracked?: string[];
|
|
80
|
+
exportTargets?: ExportTarget[];
|
|
81
|
+
devScripts?: string[];
|
|
82
|
+
enableMlPipeline?: boolean;
|
|
83
|
+
}
|
|
84
|
+
export interface NamingConfig {
|
|
85
|
+
stemStopwords?: string[];
|
|
86
|
+
reservedFileStems?: string[];
|
|
87
|
+
allowDefaultImports?: boolean;
|
|
88
|
+
}
|
|
36
89
|
export interface CodePlugConfig {
|
|
37
90
|
llm: LlmConfig;
|
|
38
91
|
models: ModelsConfig;
|
|
92
|
+
structure?: StructureConfig;
|
|
93
|
+
analysis?: AnalysisConfig;
|
|
94
|
+
scoring?: ScoringConfig;
|
|
95
|
+
convention?: ConventionConfig;
|
|
96
|
+
drift?: DriftConfig;
|
|
97
|
+
docs?: DocsConfig;
|
|
98
|
+
naming?: NamingConfig;
|
|
39
99
|
}
|
|
40
100
|
export interface ConventionInitOptions {
|
|
41
101
|
force?: boolean;
|
|
@@ -43,6 +103,7 @@ export interface ConventionInitOptions {
|
|
|
43
103
|
export interface ConventionAuditOptions {
|
|
44
104
|
since?: string;
|
|
45
105
|
ci?: boolean;
|
|
106
|
+
filePaths?: string[];
|
|
46
107
|
}
|
|
47
108
|
export interface ConventionScoreOptions {
|
|
48
109
|
trend?: boolean;
|
|
@@ -55,6 +116,7 @@ export interface DocsGenerateOptions {
|
|
|
55
116
|
doc?: string;
|
|
56
117
|
audience?: string;
|
|
57
118
|
style?: string;
|
|
119
|
+
enableMlPipeline?: boolean;
|
|
58
120
|
}
|
|
59
121
|
export interface ExportOptions {
|
|
60
122
|
target?: string;
|
|
@@ -67,6 +129,7 @@ export interface AnalysisResult {
|
|
|
67
129
|
durationMs: number;
|
|
68
130
|
patterns: DetectedPattern[];
|
|
69
131
|
folderStructure: FolderNode;
|
|
132
|
+
filePaths?: string[];
|
|
70
133
|
}
|
|
71
134
|
export interface DetectedPattern {
|
|
72
135
|
dimension: Dimension;
|
|
@@ -92,6 +155,7 @@ export interface Violation {
|
|
|
92
155
|
expected: string;
|
|
93
156
|
found: string;
|
|
94
157
|
autoFixable: boolean;
|
|
158
|
+
fileScorePercent?: number;
|
|
95
159
|
}
|
|
96
160
|
export interface ComplianceScore {
|
|
97
161
|
total: number;
|
|
@@ -135,4 +199,11 @@ export interface PipelineResult {
|
|
|
135
199
|
extractions: string[];
|
|
136
200
|
entities: NerEntityResult[];
|
|
137
201
|
}
|
|
202
|
+
export interface CustomRule {
|
|
203
|
+
id: string;
|
|
204
|
+
pattern: string;
|
|
205
|
+
scope: 'filename' | 'path' | 'content';
|
|
206
|
+
message: string;
|
|
207
|
+
severity?: Severity;
|
|
208
|
+
}
|
|
138
209
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAC9D,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC;AAClI,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3C,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,SAAS,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,16 @@
|
|
|
1
|
-
import type { AnalysisResult } from '../../config/types.js';
|
|
1
|
+
import type { AnalysisConfig, AnalysisResult, ConventionConfig, NamingConfig, StructureConfig } from '../../config/types.js';
|
|
2
2
|
export declare class AstAnalyzer {
|
|
3
3
|
private projectRoot;
|
|
4
|
-
|
|
4
|
+
private analysisConfig;
|
|
5
|
+
private structureConfig?;
|
|
6
|
+
private namingConfig?;
|
|
7
|
+
private conventionConfig?;
|
|
8
|
+
constructor(projectRoot: string, options?: {
|
|
9
|
+
analysisConfig?: AnalysisConfig;
|
|
10
|
+
structureConfig?: StructureConfig;
|
|
11
|
+
namingConfig?: NamingConfig;
|
|
12
|
+
conventionConfig?: ConventionConfig;
|
|
13
|
+
});
|
|
5
14
|
analyze(): Promise<AnalysisResult>;
|
|
6
15
|
private processBatches;
|
|
7
16
|
private parseFile;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AstAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/core/analyzer/AstAnalyzer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"AstAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/core/analyzer/AstAnalyzer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAc,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMzI,qBAAa,WAAW;IAOpB,OAAO,CAAC,WAAW;IANrB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,gBAAgB,CAAC,CAAmB;gBAGlC,WAAW,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,cAAc,CAAC;QAAC,eAAe,CAAC,EAAE,eAAe,CAAC;QAAC,YAAY,CAAC,EAAE,YAAY,CAAC;QAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;KAAE;IAQ9I,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;YAuCzB,cAAc;YAUf,SAAS;IA0BvB,OAAO,CAAC,eAAe;CAgCxB;AAED,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;CAC7B"}
|
|
@@ -1,34 +1,50 @@
|
|
|
1
1
|
import { join, extname } from 'node:path';
|
|
2
2
|
import { readFile } from 'node:fs/promises';
|
|
3
|
+
import { DEFAULT_ANALYSIS } from '../../config/defaults.js';
|
|
3
4
|
const SUPPORTED_EXTENSIONS = new Set(['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs']);
|
|
4
5
|
const BATCH_SIZE = 50;
|
|
5
6
|
export class AstAnalyzer {
|
|
6
7
|
projectRoot;
|
|
7
|
-
|
|
8
|
+
analysisConfig;
|
|
9
|
+
structureConfig;
|
|
10
|
+
namingConfig;
|
|
11
|
+
conventionConfig;
|
|
12
|
+
constructor(projectRoot, options) {
|
|
8
13
|
this.projectRoot = projectRoot;
|
|
14
|
+
this.analysisConfig = options?.analysisConfig ?? DEFAULT_ANALYSIS;
|
|
15
|
+
this.structureConfig = options?.structureConfig;
|
|
16
|
+
this.namingConfig = options?.namingConfig;
|
|
17
|
+
this.conventionConfig = options?.conventionConfig;
|
|
9
18
|
}
|
|
10
19
|
async analyze() {
|
|
11
20
|
const start = Date.now();
|
|
12
21
|
const { globby } = await import('globby');
|
|
13
|
-
const
|
|
22
|
+
const include = this.analysisConfig.include ?? DEFAULT_ANALYSIS.include;
|
|
23
|
+
const ignore = this.analysisConfig.ignore ?? DEFAULT_ANALYSIS.ignore;
|
|
24
|
+
const files = await globby(include ?? ['**/*.{ts,tsx,js,jsx,mjs,cjs}'], {
|
|
14
25
|
cwd: this.projectRoot,
|
|
15
26
|
gitignore: true,
|
|
16
|
-
ignore:
|
|
27
|
+
ignore: ignore,
|
|
17
28
|
absolute: false,
|
|
18
29
|
});
|
|
19
30
|
const sourceFiles = files.filter((f) => SUPPORTED_EXTENSIONS.has(extname(f)));
|
|
20
31
|
const { PatternAggregator } = await import('./PatternAggregator.js');
|
|
21
|
-
const aggregator = new PatternAggregator(
|
|
32
|
+
const aggregator = new PatternAggregator({
|
|
33
|
+
structureConfig: this.structureConfig,
|
|
34
|
+
namingConfig: this.namingConfig,
|
|
35
|
+
conventionConfig: this.conventionConfig,
|
|
36
|
+
});
|
|
22
37
|
for await (const batch of this.processBatches(sourceFiles)) {
|
|
23
38
|
aggregator.ingest(batch);
|
|
24
39
|
}
|
|
25
40
|
const folderStructure = this.buildFolderTree(sourceFiles);
|
|
26
|
-
aggregator.ingestStructure(folderStructure);
|
|
41
|
+
aggregator.ingestStructure(folderStructure, sourceFiles);
|
|
27
42
|
return {
|
|
28
43
|
fileCount: sourceFiles.length,
|
|
29
44
|
durationMs: Date.now() - start,
|
|
30
45
|
patterns: aggregator.getPatterns(),
|
|
31
46
|
folderStructure,
|
|
47
|
+
filePaths: sourceFiles,
|
|
32
48
|
};
|
|
33
49
|
}
|
|
34
50
|
async *processBatches(files) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AstAnalyzer.js","sourceRoot":"","sources":["../../../src/core/analyzer/AstAnalyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"AstAnalyzer.js","sourceRoot":"","sources":["../../../src/core/analyzer/AstAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,17 @@
|
|
|
1
|
-
import type { AnalysisResult, ConventionCandidate } from '../../config/types.js';
|
|
1
|
+
import type { AnalysisResult, ConventionCandidate, ConventionConfig, ModelTier, StructureConfig } from '../../config/types.js';
|
|
2
2
|
export declare class ConventionDetector {
|
|
3
|
+
private conventionConfig;
|
|
4
|
+
private structureConfig?;
|
|
5
|
+
private modelTier?;
|
|
6
|
+
constructor(options?: {
|
|
7
|
+
conventionConfig?: ConventionConfig;
|
|
8
|
+
structureConfig?: StructureConfig;
|
|
9
|
+
modelTier?: ModelTier;
|
|
10
|
+
});
|
|
3
11
|
detect(analysis: AnalysisResult): Promise<ConventionCandidate[]>;
|
|
12
|
+
private bootstrapSemanticConvention;
|
|
13
|
+
private bootstrapDirectoryPlacement;
|
|
14
|
+
private collectDirsFromPaths;
|
|
4
15
|
private generateId;
|
|
5
16
|
}
|
|
6
17
|
//# sourceMappingURL=ConventionDetector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConventionDetector.d.ts","sourceRoot":"","sources":["../../../src/core/analyzer/ConventionDetector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ConventionDetector.d.ts","sourceRoot":"","sources":["../../../src/core/analyzer/ConventionDetector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,SAAS,EAET,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAI/B,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,SAAS,CAAC,CAAY;gBAElB,OAAO,CAAC,EAAE;QACpB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QACpC,eAAe,CAAC,EAAE,eAAe,CAAC;QAClC,SAAS,CAAC,EAAE,SAAS,CAAC;KACvB;IAMK,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAsEtE,OAAO,CAAC,2BAA2B;IAuBnC,OAAO,CAAC,2BAA2B;IA8BnC,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,UAAU;CAQnB"}
|