@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.
Files changed (151) hide show
  1. package/README.md +286 -45
  2. package/dist/cli/commands/convention.d.ts +1 -1
  3. package/dist/cli/commands/convention.d.ts.map +1 -1
  4. package/dist/cli/commands/convention.js +174 -31
  5. package/dist/cli/commands/convention.js.map +1 -1
  6. package/dist/cli/commands/docs.d.ts +3 -1
  7. package/dist/cli/commands/docs.d.ts.map +1 -1
  8. package/dist/cli/commands/docs.js +13 -2
  9. package/dist/cli/commands/docs.js.map +1 -1
  10. package/dist/cli/commands/export.d.ts.map +1 -1
  11. package/dist/cli/commands/export.js +6 -1
  12. package/dist/cli/commands/export.js.map +1 -1
  13. package/dist/cli/commands/start.d.ts +2 -0
  14. package/dist/cli/commands/start.d.ts.map +1 -0
  15. package/dist/cli/commands/start.js +172 -0
  16. package/dist/cli/commands/start.js.map +1 -0
  17. package/dist/cli/index.js +10 -2
  18. package/dist/cli/index.js.map +1 -1
  19. package/dist/config/ConfigManager.d.ts +18 -0
  20. package/dist/config/ConfigManager.d.ts.map +1 -1
  21. package/dist/config/ConfigManager.js +55 -2
  22. package/dist/config/ConfigManager.js.map +1 -1
  23. package/dist/config/ConventionSchema.d.ts +59 -0
  24. package/dist/config/ConventionSchema.d.ts.map +1 -1
  25. package/dist/config/ConventionSchema.js +11 -0
  26. package/dist/config/ConventionSchema.js.map +1 -1
  27. package/dist/config/defaults.d.ts +60 -2
  28. package/dist/config/defaults.d.ts.map +1 -1
  29. package/dist/config/defaults.js +136 -20
  30. package/dist/config/defaults.js.map +1 -1
  31. package/dist/config/types.d.ts +71 -0
  32. package/dist/config/types.d.ts.map +1 -1
  33. package/dist/core/analyzer/AstAnalyzer.d.ts +11 -2
  34. package/dist/core/analyzer/AstAnalyzer.d.ts.map +1 -1
  35. package/dist/core/analyzer/AstAnalyzer.js +21 -5
  36. package/dist/core/analyzer/AstAnalyzer.js.map +1 -1
  37. package/dist/core/analyzer/ConventionDetector.d.ts +12 -1
  38. package/dist/core/analyzer/ConventionDetector.d.ts.map +1 -1
  39. package/dist/core/analyzer/ConventionDetector.js +120 -20
  40. package/dist/core/analyzer/ConventionDetector.js.map +1 -1
  41. package/dist/core/analyzer/ConventionMlResolver.d.ts +4 -0
  42. package/dist/core/analyzer/ConventionMlResolver.d.ts.map +1 -0
  43. package/dist/core/analyzer/ConventionMlResolver.js +17 -0
  44. package/dist/core/analyzer/ConventionMlResolver.js.map +1 -0
  45. package/dist/core/analyzer/PatternAggregator.d.ts +11 -2
  46. package/dist/core/analyzer/PatternAggregator.d.ts.map +1 -1
  47. package/dist/core/analyzer/PatternAggregator.js +87 -15
  48. package/dist/core/analyzer/PatternAggregator.js.map +1 -1
  49. package/dist/core/analyzer/SemanticCoherencePhase.d.ts +10 -0
  50. package/dist/core/analyzer/SemanticCoherencePhase.d.ts.map +1 -0
  51. package/dist/core/analyzer/SemanticCoherencePhase.js +191 -0
  52. package/dist/core/analyzer/SemanticCoherencePhase.js.map +1 -0
  53. package/dist/core/analyzer/SemanticCoherenceService.d.ts +11 -0
  54. package/dist/core/analyzer/SemanticCoherenceService.d.ts.map +1 -0
  55. package/dist/core/analyzer/SemanticCoherenceService.js +56 -0
  56. package/dist/core/analyzer/SemanticCoherenceService.js.map +1 -0
  57. package/dist/core/analyzer/visitors/ComponentVisitor.d.ts.map +1 -1
  58. package/dist/core/analyzer/visitors/ComponentVisitor.js +2 -2
  59. package/dist/core/analyzer/visitors/ComponentVisitor.js.map +1 -1
  60. package/dist/core/analyzer/visitors/ErrorHandlingVisitor.d.ts.map +1 -1
  61. package/dist/core/analyzer/visitors/ErrorHandlingVisitor.js +2 -2
  62. package/dist/core/analyzer/visitors/ErrorHandlingVisitor.js.map +1 -1
  63. package/dist/core/analyzer/visitors/ImportVisitor.d.ts +5 -0
  64. package/dist/core/analyzer/visitors/ImportVisitor.d.ts.map +1 -1
  65. package/dist/core/analyzer/visitors/ImportVisitor.js +8 -3
  66. package/dist/core/analyzer/visitors/ImportVisitor.js.map +1 -1
  67. package/dist/core/analyzer/visitors/NamingVisitor.d.ts +20 -2
  68. package/dist/core/analyzer/visitors/NamingVisitor.d.ts.map +1 -1
  69. package/dist/core/analyzer/visitors/NamingVisitor.js +464 -25
  70. package/dist/core/analyzer/visitors/NamingVisitor.js.map +1 -1
  71. package/dist/core/analyzer/visitors/SchemaVisitor.d.ts +7 -0
  72. package/dist/core/analyzer/visitors/SchemaVisitor.d.ts.map +1 -0
  73. package/dist/core/analyzer/visitors/SchemaVisitor.js +50 -0
  74. package/dist/core/analyzer/visitors/SchemaVisitor.js.map +1 -0
  75. package/dist/core/analyzer/visitors/StructureVisitor.d.ts +4 -1
  76. package/dist/core/analyzer/visitors/StructureVisitor.d.ts.map +1 -1
  77. package/dist/core/analyzer/visitors/StructureVisitor.js +38 -4
  78. package/dist/core/analyzer/visitors/StructureVisitor.js.map +1 -1
  79. package/dist/core/analyzer/visitors/types.d.ts +4 -0
  80. package/dist/core/analyzer/visitors/types.d.ts.map +1 -1
  81. package/dist/core/classifier/CodeBertEmbedder.d.ts +9 -0
  82. package/dist/core/classifier/CodeBertEmbedder.d.ts.map +1 -0
  83. package/dist/core/classifier/CodeBertEmbedder.js +33 -0
  84. package/dist/core/classifier/CodeBertEmbedder.js.map +1 -0
  85. package/dist/core/classifier/ConfidenceGate.d.ts +2 -0
  86. package/dist/core/classifier/ConfidenceGate.d.ts.map +1 -1
  87. package/dist/core/classifier/ConfidenceGate.js +6 -2
  88. package/dist/core/classifier/ConfidenceGate.js.map +1 -1
  89. package/dist/core/exporter/FreshnessChecker.d.ts +5 -1
  90. package/dist/core/exporter/FreshnessChecker.d.ts.map +1 -1
  91. package/dist/core/exporter/FreshnessChecker.js +5 -10
  92. package/dist/core/exporter/FreshnessChecker.js.map +1 -1
  93. package/dist/core/generator/DocGenerator.d.ts +6 -1
  94. package/dist/core/generator/DocGenerator.d.ts.map +1 -1
  95. package/dist/core/generator/DocGenerator.js +62 -7
  96. package/dist/core/generator/DocGenerator.js.map +1 -1
  97. package/dist/core/generator/StalenessTracker.d.ts +7 -1
  98. package/dist/core/generator/StalenessTracker.d.ts.map +1 -1
  99. package/dist/core/generator/StalenessTracker.js +12 -12
  100. package/dist/core/generator/StalenessTracker.js.map +1 -1
  101. package/dist/core/generator/documents/ArchitectureGenerator.d.ts +1 -0
  102. package/dist/core/generator/documents/ArchitectureGenerator.d.ts.map +1 -1
  103. package/dist/core/generator/documents/ArchitectureGenerator.js +37 -12
  104. package/dist/core/generator/documents/ArchitectureGenerator.js.map +1 -1
  105. package/dist/core/generator/documents/ContributingGenerator.d.ts.map +1 -1
  106. package/dist/core/generator/documents/ContributingGenerator.js +20 -13
  107. package/dist/core/generator/documents/ContributingGenerator.js.map +1 -1
  108. package/dist/core/generator/documents/ConventionsGenerator.d.ts.map +1 -1
  109. package/dist/core/generator/documents/ConventionsGenerator.js +16 -2
  110. package/dist/core/generator/documents/ConventionsGenerator.js.map +1 -1
  111. package/dist/core/generator/documents/OnboardingGenerator.d.ts.map +1 -1
  112. package/dist/core/generator/documents/OnboardingGenerator.js +26 -18
  113. package/dist/core/generator/documents/OnboardingGenerator.js.map +1 -1
  114. package/dist/core/generator/documents/ReadmeGenerator.d.ts.map +1 -1
  115. package/dist/core/generator/documents/ReadmeGenerator.js +26 -14
  116. package/dist/core/generator/documents/ReadmeGenerator.js.map +1 -1
  117. package/dist/core/generator/documents/types.d.ts +8 -1
  118. package/dist/core/generator/documents/types.d.ts.map +1 -1
  119. package/dist/core/generator/mlPipelineBuilder.d.ts +8 -0
  120. package/dist/core/generator/mlPipelineBuilder.d.ts.map +1 -0
  121. package/dist/core/generator/mlPipelineBuilder.js +117 -0
  122. package/dist/core/generator/mlPipelineBuilder.js.map +1 -0
  123. package/dist/core/scorer/ComplianceScorer.d.ts +5 -1
  124. package/dist/core/scorer/ComplianceScorer.d.ts.map +1 -1
  125. package/dist/core/scorer/ComplianceScorer.js +47 -23
  126. package/dist/core/scorer/ComplianceScorer.js.map +1 -1
  127. package/dist/core/scorer/ViolationDetector.d.ts +19 -2
  128. package/dist/core/scorer/ViolationDetector.d.ts.map +1 -1
  129. package/dist/core/scorer/ViolationDetector.js +169 -53
  130. package/dist/core/scorer/ViolationDetector.js.map +1 -1
  131. package/dist/models/ModelManager.d.ts +5 -1
  132. package/dist/models/ModelManager.d.ts.map +1 -1
  133. package/dist/models/ModelManager.js +19 -5
  134. package/dist/models/ModelManager.js.map +1 -1
  135. package/dist/models/ModelRegistry.d.ts +1 -1
  136. package/dist/models/ModelRegistry.d.ts.map +1 -1
  137. package/dist/models/ModelRegistry.js +28 -0
  138. package/dist/models/ModelRegistry.js.map +1 -1
  139. package/dist/storage/CustomRuleStore.d.ts +9 -0
  140. package/dist/storage/CustomRuleStore.d.ts.map +1 -0
  141. package/dist/storage/CustomRuleStore.js +22 -0
  142. package/dist/storage/CustomRuleStore.js.map +1 -0
  143. package/dist/storage/ScoreStore.d.ts +2 -5
  144. package/dist/storage/ScoreStore.d.ts.map +1 -1
  145. package/dist/storage/ScoreStore.js +23 -71
  146. package/dist/storage/ScoreStore.js.map +1 -1
  147. package/package.json +4 -3
  148. package/dist/core/classifier/DriftClassifier.d.ts +0 -17
  149. package/dist/core/classifier/DriftClassifier.d.ts.map +0 -1
  150. package/dist/core/classifier/DriftClassifier.js +0 -293
  151. package/dist/core/classifier/DriftClassifier.js.map +0 -1
@@ -1,4 +1,61 @@
1
- import type { CodePlugConfig } from './types.js';
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 SCORE_DB_FILE = "scores.db";
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;AAEjD,eAAO,MAAM,cAAc,EAAE,cAU5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAStF,CAAC;AAEF,eAAO,MAAM,YAAY,cAAc,CAAC;AACxC,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,aAAa,cAAc,CAAC;AACzC,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,eAAe,oBAAoB,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"}
@@ -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: 'ollama',
4
- model: 'llama3',
5
- baseUrl: 'http://localhost:11434/v1',
6
- apiKey: 'ollama',
96
+ provider: "ollama",
97
+ model: "llama3",
98
+ baseUrl: "http://localhost:11434/v1",
99
+ apiKey: "ollama",
7
100
  },
8
101
  models: {
9
- tier: 'default',
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: 'http://localhost:11434/v1', defaultModel: 'llama3' },
14
- openai: { baseUrl: 'https://api.openai.com/v1', defaultModel: 'gpt-4o' },
15
- anthropic: { baseUrl: 'https://api.anthropic.com/v1/', defaultModel: 'claude-sonnet-4-20250514' },
16
- gemini: { baseUrl: 'https://generativelanguage.googleapis.com/v1beta/openai/', defaultModel: 'gemini-2.0-flash' },
17
- openrouter: { baseUrl: 'https://openrouter.ai/api/v1', defaultModel: 'anthropic/claude-sonnet-4-20250514' },
18
- groq: { baseUrl: 'https://api.groq.com/openai/v1', defaultModel: 'llama-3.3-70b-versatile' },
19
- deepseek: { baseUrl: 'https://api.deepseek.com', defaultModel: 'deepseek-chat' },
20
- grok: { baseUrl: 'https://api.x.ai/v1', defaultModel: 'grok-2-latest' },
21
- };
22
- export const CODEPLUG_DIR = '.codeplug';
23
- export const CONVENTIONS_FILE = 'conventions.json';
24
- export const CONFIG_FILE = 'config.json';
25
- export const SCORE_DB_FILE = 'scores.db';
26
- export const DOC_HASHES_FILE = 'doc-hashes.json';
27
- export const VIOLATIONS_FILE = 'violations.json';
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;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAA8D;IACzF,MAAM,EAAE,EAAE,OAAO,EAAE,2BAA2B,EAAE,YAAY,EAAE,QAAQ,EAAE;IACxE,MAAM,EAAE,EAAE,OAAO,EAAE,2BAA2B,EAAE,YAAY,EAAE,QAAQ,EAAE;IACxE,SAAS,EAAE,EAAE,OAAO,EAAE,+BAA+B,EAAE,YAAY,EAAE,0BAA0B,EAAE;IACjG,MAAM,EAAE,EAAE,OAAO,EAAE,0DAA0D,EAAE,YAAY,EAAE,kBAAkB,EAAE;IACjH,UAAU,EAAE,EAAE,OAAO,EAAE,8BAA8B,EAAE,YAAY,EAAE,oCAAoC,EAAE;IAC3G,IAAI,EAAE,EAAE,OAAO,EAAE,gCAAgC,EAAE,YAAY,EAAE,yBAAyB,EAAE;IAC5F,QAAQ,EAAE,EAAE,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE,eAAe,EAAE;IAChF,IAAI,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,eAAe,EAAE;CACxE,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC;AACzC,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}
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
- constructor(projectRoot: string);
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;AAKxE,qBAAa,WAAW;IACV,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,MAAM;IAEjC,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;YAkCzB,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
+ {"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
- constructor(projectRoot) {
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 files = await globby(['**/*.{ts,tsx,js,jsx,mjs,cjs}'], {
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: ['**/node_modules/**', '**/dist/**', '**/build/**', '**/.codeplug/**'],
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":"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"}
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,EAAE,cAAc,EAAE,mBAAmB,EAAuB,MAAM,uBAAuB,CAAC;AActG,qBAAa,kBAAkB;IACvB,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAmBtE,OAAO,CAAC,UAAU;CAQnB"}
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"}