ai-first-cli 1.3.5 → 1.3.8

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 (126) hide show
  1. package/CHANGELOG.md +186 -0
  2. package/README.es.md +68 -0
  3. package/README.md +53 -15
  4. package/ai/graph/knowledge-graph.json +1 -1
  5. package/ai-context/index-state.json +86 -2
  6. package/dist/analyzers/architecture.d.ts.map +1 -1
  7. package/dist/analyzers/architecture.js +72 -5
  8. package/dist/analyzers/architecture.js.map +1 -1
  9. package/dist/analyzers/entrypoints.d.ts.map +1 -1
  10. package/dist/analyzers/entrypoints.js +253 -0
  11. package/dist/analyzers/entrypoints.js.map +1 -1
  12. package/dist/analyzers/symbols.d.ts.map +1 -1
  13. package/dist/analyzers/symbols.js +47 -2
  14. package/dist/analyzers/symbols.js.map +1 -1
  15. package/dist/analyzers/techStack.d.ts.map +1 -1
  16. package/dist/analyzers/techStack.js +86 -0
  17. package/dist/analyzers/techStack.js.map +1 -1
  18. package/dist/commands/ai-first.d.ts.map +1 -1
  19. package/dist/commands/ai-first.js +78 -4
  20. package/dist/commands/ai-first.js.map +1 -1
  21. package/dist/config/configLoader.d.ts +6 -0
  22. package/dist/config/configLoader.d.ts.map +1 -0
  23. package/dist/config/configLoader.js +232 -0
  24. package/dist/config/configLoader.js.map +1 -0
  25. package/dist/config/index.d.ts +3 -0
  26. package/dist/config/index.d.ts.map +1 -0
  27. package/dist/config/index.js +2 -0
  28. package/dist/config/index.js.map +1 -0
  29. package/dist/config/types.d.ts +101 -0
  30. package/dist/config/types.d.ts.map +1 -0
  31. package/dist/config/types.js +2 -0
  32. package/dist/config/types.js.map +1 -0
  33. package/dist/core/content/contentProcessor.d.ts +4 -0
  34. package/dist/core/content/contentProcessor.d.ts.map +1 -0
  35. package/dist/core/content/contentProcessor.js +235 -0
  36. package/dist/core/content/contentProcessor.js.map +1 -0
  37. package/dist/core/content/index.d.ts +3 -0
  38. package/dist/core/content/index.d.ts.map +1 -0
  39. package/dist/core/content/index.js +2 -0
  40. package/dist/core/content/index.js.map +1 -0
  41. package/dist/core/content/types.d.ts +32 -0
  42. package/dist/core/content/types.d.ts.map +1 -0
  43. package/dist/core/content/types.js +2 -0
  44. package/dist/core/content/types.js.map +1 -0
  45. package/dist/core/gitAnalyzer.d.ts +14 -0
  46. package/dist/core/gitAnalyzer.d.ts.map +1 -1
  47. package/dist/core/gitAnalyzer.js +98 -0
  48. package/dist/core/gitAnalyzer.js.map +1 -1
  49. package/dist/core/multiRepo/index.d.ts +3 -0
  50. package/dist/core/multiRepo/index.d.ts.map +1 -0
  51. package/dist/core/multiRepo/index.js +2 -0
  52. package/dist/core/multiRepo/index.js.map +1 -0
  53. package/dist/core/multiRepo/multiRepoScanner.d.ts +18 -0
  54. package/dist/core/multiRepo/multiRepoScanner.d.ts.map +1 -0
  55. package/dist/core/multiRepo/multiRepoScanner.js +131 -0
  56. package/dist/core/multiRepo/multiRepoScanner.js.map +1 -0
  57. package/dist/core/rag/index.d.ts +3 -0
  58. package/dist/core/rag/index.d.ts.map +1 -0
  59. package/dist/core/rag/index.js +2 -0
  60. package/dist/core/rag/index.js.map +1 -0
  61. package/dist/core/rag/vectorIndex.d.ts +28 -0
  62. package/dist/core/rag/vectorIndex.d.ts.map +1 -0
  63. package/dist/core/rag/vectorIndex.js +71 -0
  64. package/dist/core/rag/vectorIndex.js.map +1 -0
  65. package/dist/mcp/index.d.ts +2 -0
  66. package/dist/mcp/index.d.ts.map +1 -0
  67. package/dist/mcp/index.js +2 -0
  68. package/dist/mcp/index.js.map +1 -0
  69. package/dist/mcp/server.d.ts +7 -0
  70. package/dist/mcp/server.d.ts.map +1 -0
  71. package/dist/mcp/server.js +154 -0
  72. package/dist/mcp/server.js.map +1 -0
  73. package/dist/utils/fileUtils.d.ts.map +1 -1
  74. package/dist/utils/fileUtils.js +5 -0
  75. package/dist/utils/fileUtils.js.map +1 -1
  76. package/docs/planning/evaluator-v1.0.0/README.md +112 -0
  77. package/docs/planning/evaluator-v1.0.0/improvements_plan_2026-03-28.md +237 -0
  78. package/package.json +13 -3
  79. package/src/analyzers/architecture.ts +75 -6
  80. package/src/analyzers/entrypoints.ts +285 -0
  81. package/src/analyzers/symbols.ts +52 -2
  82. package/src/analyzers/techStack.ts +90 -0
  83. package/src/commands/ai-first.ts +83 -4
  84. package/src/config/configLoader.ts +274 -0
  85. package/src/config/index.ts +27 -0
  86. package/src/config/types.ts +117 -0
  87. package/src/core/content/contentProcessor.ts +292 -0
  88. package/src/core/content/index.ts +9 -0
  89. package/src/core/content/types.ts +35 -0
  90. package/src/core/gitAnalyzer.ts +130 -0
  91. package/src/core/multiRepo/index.ts +2 -0
  92. package/src/core/multiRepo/multiRepoScanner.ts +177 -0
  93. package/src/core/rag/index.ts +2 -0
  94. package/src/core/rag/vectorIndex.ts +105 -0
  95. package/src/mcp/index.ts +1 -0
  96. package/src/mcp/server.ts +179 -0
  97. package/src/utils/fileUtils.ts +5 -0
  98. package/tests/entrypoints-languages.test.ts +373 -0
  99. package/tests/framework-detection.test.ts +296 -0
  100. package/tests/v1.3.8-integration.test.ts +361 -0
  101. package/BETA_EVALUATION_REPORT.md +0 -151
  102. package/ai-context/context/flows/App.json +0 -17
  103. package/ai-context/context/flows/DashboardPage.json +0 -14
  104. package/ai-context/context/flows/LoginPage.json +0 -14
  105. package/ai-context/context/flows/admin.json +0 -10
  106. package/ai-context/context/flows/androidresources.json +0 -11
  107. package/ai-context/context/flows/authController.json +0 -14
  108. package/ai-context/context/flows/entrypoints.json +0 -9
  109. package/ai-context/context/flows/fastapiAdapter.json +0 -14
  110. package/ai-context/context/flows/fastapiadapter.json +0 -11
  111. package/ai-context/context/flows/index.json +0 -19
  112. package/ai-context/context/flows/indexer.json +0 -9
  113. package/ai-context/context/flows/indexstate.json +0 -9
  114. package/ai-context/context/flows/init.json +0 -22
  115. package/ai-context/context/flows/main.json +0 -18
  116. package/ai-context/context/flows/mainactivity.json +0 -9
  117. package/ai-context/context/flows/models.json +0 -15
  118. package/ai-context/context/flows/posts.json +0 -15
  119. package/ai-context/context/flows/repoMapper.json +0 -20
  120. package/ai-context/context/flows/repomapper.json +0 -11
  121. package/ai-context/context/flows/serializers.json +0 -10
  122. package/ai-context-evaluation-report-1774223059505.md +0 -206
  123. package/dist/scripts/ai-context-evaluator.js +0 -367
  124. package/quick-evaluation-report-1774396002305.md +0 -64
  125. package/quick-evaluator.ts +0 -200
  126. package/scripts/ai-context-evaluator.ts +0 -440
@@ -0,0 +1,232 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ const DEFAULT_CONFIG_PATH = 'ai-first.config.json';
4
+ const PRESETS = {
5
+ full: {
6
+ name: 'full',
7
+ description: 'Full analysis with all analyzers enabled',
8
+ analysis: {
9
+ detailLevel: 'full',
10
+ inclusionLevel: 'full',
11
+ analyzers: {
12
+ architecture: { enabled: true },
13
+ techStack: { enabled: true },
14
+ entrypoints: { enabled: true },
15
+ conventions: { enabled: true },
16
+ symbols: { enabled: true },
17
+ dependencies: { enabled: true },
18
+ aiRules: { enabled: true },
19
+ },
20
+ },
21
+ output: {
22
+ directory: 'ai-context',
23
+ formats: ['md', 'json'],
24
+ prettyPrint: true,
25
+ includeMetadata: true,
26
+ },
27
+ index: {
28
+ enabled: true,
29
+ type: 'sqlite',
30
+ incremental: true,
31
+ },
32
+ },
33
+ quick: {
34
+ name: 'quick',
35
+ description: 'Fast analysis with basic information',
36
+ analysis: {
37
+ detailLevel: 'skeleton',
38
+ inclusionLevel: 'directory',
39
+ maxFileSize: 10000,
40
+ analyzers: {
41
+ architecture: { enabled: true },
42
+ techStack: { enabled: true },
43
+ entrypoints: { enabled: true },
44
+ conventions: { enabled: false },
45
+ symbols: { enabled: false },
46
+ dependencies: { enabled: false },
47
+ aiRules: { enabled: false },
48
+ },
49
+ },
50
+ output: {
51
+ directory: 'ai-context',
52
+ formats: ['md'],
53
+ prettyPrint: false,
54
+ includeMetadata: false,
55
+ },
56
+ index: {
57
+ enabled: false,
58
+ type: 'memory',
59
+ },
60
+ },
61
+ api: {
62
+ name: 'api',
63
+ description: 'Focused on API and backend analysis',
64
+ analysis: {
65
+ detailLevel: 'signatures',
66
+ inclusionLevel: 'compress',
67
+ analyzers: {
68
+ architecture: { enabled: true },
69
+ techStack: { enabled: true },
70
+ entrypoints: { enabled: true },
71
+ conventions: { enabled: true },
72
+ symbols: { enabled: true },
73
+ dependencies: { enabled: true },
74
+ aiRules: { enabled: false },
75
+ },
76
+ },
77
+ output: {
78
+ directory: 'ai-context',
79
+ formats: ['md', 'json'],
80
+ prettyPrint: true,
81
+ includeMetadata: true,
82
+ },
83
+ index: {
84
+ enabled: true,
85
+ type: 'sqlite',
86
+ incremental: true,
87
+ },
88
+ },
89
+ docs: {
90
+ name: 'docs',
91
+ description: 'Generate documentation-focused output',
92
+ analysis: {
93
+ detailLevel: 'full',
94
+ inclusionLevel: 'full',
95
+ analyzers: {
96
+ architecture: { enabled: true },
97
+ techStack: { enabled: true },
98
+ entrypoints: { enabled: true },
99
+ conventions: { enabled: true },
100
+ symbols: { enabled: true },
101
+ dependencies: { enabled: false },
102
+ aiRules: { enabled: false },
103
+ },
104
+ },
105
+ output: {
106
+ directory: 'ai-context',
107
+ formats: ['md', 'html'],
108
+ prettyPrint: true,
109
+ includeMetadata: true,
110
+ },
111
+ index: {
112
+ enabled: false,
113
+ type: 'memory',
114
+ },
115
+ },
116
+ };
117
+ const DEFAULT_CONFIG = {
118
+ version: '1.0.0',
119
+ preset: 'full',
120
+ analysis: PRESETS.full.analysis,
121
+ output: PRESETS.full.output,
122
+ index: PRESETS.full.index,
123
+ };
124
+ function validateConfig(config) {
125
+ const errors = [];
126
+ const warnings = [];
127
+ if (!config || typeof config !== 'object') {
128
+ errors.push({ field: 'root', message: 'Config must be an object' });
129
+ return { valid: false, errors, warnings };
130
+ }
131
+ const cfg = config;
132
+ if (!cfg.version || typeof cfg.version !== 'string') {
133
+ errors.push({ field: 'version', message: 'Version is required and must be a string' });
134
+ }
135
+ if (cfg.preset !== undefined) {
136
+ const validPresets = ['full', 'quick', 'api', 'docs'];
137
+ if (!validPresets.includes(cfg.preset)) {
138
+ errors.push({
139
+ field: 'preset',
140
+ message: `Invalid preset. Must be one of: ${validPresets.join(', ')}`,
141
+ value: cfg.preset,
142
+ });
143
+ }
144
+ }
145
+ if (cfg.analysis && typeof cfg.analysis !== 'object') {
146
+ errors.push({ field: 'analysis', message: 'Analysis must be an object' });
147
+ }
148
+ if (cfg.output && typeof cfg.output !== 'object') {
149
+ errors.push({ field: 'output', message: 'Output must be an object' });
150
+ }
151
+ if (cfg.index && typeof cfg.index !== 'object') {
152
+ errors.push({ field: 'index', message: 'Index must be an object' });
153
+ }
154
+ return { valid: errors.length === 0, errors, warnings };
155
+ }
156
+ function mergeConfig(base, override) {
157
+ const result = {
158
+ ...base,
159
+ ...override,
160
+ };
161
+ if (override.analysis) {
162
+ result.analysis = { ...base.analysis, ...override.analysis };
163
+ }
164
+ if (override.output) {
165
+ result.output = { ...base.output, ...override.output };
166
+ }
167
+ if (override.index) {
168
+ result.index = { ...base.index, ...override.index };
169
+ }
170
+ return result;
171
+ }
172
+ export function getPreset(name) {
173
+ return PRESETS[name];
174
+ }
175
+ export function listPresets() {
176
+ return Object.values(PRESETS);
177
+ }
178
+ export function loadConfig(options = {}) {
179
+ const { configPath = DEFAULT_CONFIG_PATH, preset, overrides, validate = true, throwOnError = false, } = options;
180
+ let config = { ...DEFAULT_CONFIG };
181
+ let source = 'default';
182
+ if (fs.existsSync(configPath)) {
183
+ try {
184
+ const fileContent = fs.readFileSync(configPath, 'utf-8');
185
+ const loadedConfig = JSON.parse(fileContent);
186
+ config = mergeConfig(DEFAULT_CONFIG, loadedConfig);
187
+ source = 'file';
188
+ }
189
+ catch (error) {
190
+ const parseError = {
191
+ field: 'configFile',
192
+ message: `Failed to parse config file: ${error instanceof Error ? error.message : String(error)}`,
193
+ value: configPath,
194
+ };
195
+ if (throwOnError) {
196
+ throw new Error(parseError.message);
197
+ }
198
+ return {
199
+ config: DEFAULT_CONFIG,
200
+ source: 'default',
201
+ validation: { valid: false, errors: [parseError], warnings: [] },
202
+ };
203
+ }
204
+ }
205
+ if (preset && PRESETS[preset]) {
206
+ const p = PRESETS[preset];
207
+ const presetData = {
208
+ analysis: p.analysis,
209
+ output: p.output,
210
+ index: p.index,
211
+ };
212
+ config = mergeConfig(config, presetData);
213
+ source = source === 'default' ? 'preset' : 'merged';
214
+ }
215
+ if (overrides) {
216
+ config = mergeConfig(config, overrides);
217
+ source = 'merged';
218
+ }
219
+ const validation = validateConfig(config);
220
+ if (!validation.valid && throwOnError) {
221
+ const errorMessages = validation.errors.map(e => e.message).join('; ');
222
+ throw new Error(`Configuration validation failed: ${errorMessages}`);
223
+ }
224
+ return { config, source, validation };
225
+ }
226
+ export function resolveConfigPath(customPath) {
227
+ if (customPath) {
228
+ return path.resolve(customPath);
229
+ }
230
+ return path.resolve(DEFAULT_CONFIG_PATH);
231
+ }
232
+ //# sourceMappingURL=configLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configLoader.js","sourceRoot":"","sources":["../../src/config/configLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export type { AnalysisPreset, ConfigDetailLevel, ConfigInclusionLevel, FilePatternConfig, AnalyzerConfig, AnalysisConfig, FileInclusionConfig, OutputConfig, GitConfig, IndexConfig, ContextConfig, PresetConfig, AIFirstConfig, ValidationResult, ValidationError, ValidationWarning, ConfigLoadOptions, ConfigLoadResult, } from './types.js';
2
+ export { loadConfig, getPreset, listPresets, resolveConfigPath, } from './configLoader.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,WAAW,EACX,aAAa,EACb,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,UAAU,EACV,SAAS,EACT,WAAW,EACX,iBAAiB,GAClB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { loadConfig, getPreset, listPresets, resolveConfigPath, } from './configLoader.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAqBA,OAAO,EACL,UAAU,EACV,SAAS,EACT,WAAW,EACX,iBAAiB,GAClB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,101 @@
1
+ export type AnalysisPreset = 'full' | 'quick' | 'api' | 'docs';
2
+ export type ConfigDetailLevel = 'full' | 'signatures' | 'skeleton';
3
+ export type ConfigInclusionLevel = 'full' | 'compress' | 'directory' | 'exclude';
4
+ export interface FilePatternConfig {
5
+ include?: string[];
6
+ exclude?: string[];
7
+ }
8
+ export interface AnalyzerConfig {
9
+ enabled: boolean;
10
+ options?: Record<string, unknown>;
11
+ }
12
+ export interface AnalysisConfig {
13
+ preset?: AnalysisPreset;
14
+ detailLevel?: ConfigDetailLevel;
15
+ inclusionLevel?: ConfigInclusionLevel;
16
+ filePatterns?: FilePatternConfig;
17
+ maxFileSize?: number;
18
+ includePatterns?: string[];
19
+ excludePatterns?: string[];
20
+ analyzers?: {
21
+ architecture?: AnalyzerConfig;
22
+ techStack?: AnalyzerConfig;
23
+ entrypoints?: AnalyzerConfig;
24
+ conventions?: AnalyzerConfig;
25
+ symbols?: AnalyzerConfig;
26
+ dependencies?: AnalyzerConfig;
27
+ aiRules?: AnalyzerConfig;
28
+ };
29
+ }
30
+ export interface FileInclusionConfig {
31
+ level: ConfigInclusionLevel;
32
+ patterns: string[];
33
+ maxFileSize?: number;
34
+ }
35
+ export interface OutputConfig {
36
+ directory: string;
37
+ formats: ('md' | 'json' | 'html')[];
38
+ prettyPrint?: boolean;
39
+ includeMetadata?: boolean;
40
+ }
41
+ export interface GitConfig {
42
+ includeCommits?: number;
43
+ excludePatterns?: string[];
44
+ }
45
+ export interface IndexConfig {
46
+ enabled: boolean;
47
+ type: 'sqlite' | 'memory';
48
+ incremental?: boolean;
49
+ watch?: boolean;
50
+ }
51
+ export interface ContextConfig {
52
+ maxTokens?: number;
53
+ includeEmbeddings?: boolean;
54
+ semanticSearch?: boolean;
55
+ maxResults?: number;
56
+ }
57
+ export interface PresetConfig {
58
+ name: AnalysisPreset;
59
+ description: string;
60
+ analysis: Partial<AnalysisConfig>;
61
+ output: Partial<OutputConfig>;
62
+ index: Partial<IndexConfig>;
63
+ }
64
+ export interface AIFirstConfig {
65
+ version: string;
66
+ preset?: AnalysisPreset;
67
+ analysis?: AnalysisConfig;
68
+ output?: OutputConfig;
69
+ index?: IndexConfig;
70
+ context?: ContextConfig;
71
+ git?: GitConfig;
72
+ fileInclusion?: FileInclusionConfig;
73
+ }
74
+ export interface ValidationResult {
75
+ valid: boolean;
76
+ errors: ValidationError[];
77
+ warnings: ValidationWarning[];
78
+ }
79
+ export interface ValidationError {
80
+ field: string;
81
+ message: string;
82
+ value?: unknown;
83
+ }
84
+ export interface ValidationWarning {
85
+ field: string;
86
+ message: string;
87
+ suggestion?: string;
88
+ }
89
+ export interface ConfigLoadOptions {
90
+ configPath?: string;
91
+ preset?: AnalysisPreset;
92
+ overrides?: Partial<AIFirstConfig>;
93
+ validate?: boolean;
94
+ throwOnError?: boolean;
95
+ }
96
+ export interface ConfigLoadResult {
97
+ config: AIFirstConfig;
98
+ source: 'default' | 'file' | 'preset' | 'merged';
99
+ validation: ValidationResult;
100
+ }
101
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { ContentProcessorOptions, ProcessedContent, InclusionLevel } from './types.js';
2
+ export declare function processContent(content: string, options?: ContentProcessorOptions): ProcessedContent;
3
+ export declare function classifyFile(filePath: string, includePatterns: string[], compressPatterns: string[], directoryPatterns: string[], excludePatterns: string[]): InclusionLevel;
4
+ //# sourceMappingURL=contentProcessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contentProcessor.d.ts","sourceRoot":"","sources":["../../../src/core/content/contentProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAe,cAAc,EAAE,MAAM,YAAY,CAAC;AAEpG,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,uBAA4B,GACpC,gBAAgB,CAiDlB;AAiMD,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EAAE,EACzB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,iBAAiB,EAAE,MAAM,EAAE,EAC3B,eAAe,EAAE,MAAM,EAAE,GACxB,cAAc,CAkBhB"}
@@ -0,0 +1,235 @@
1
+ export function processContent(content, options = {}) {
2
+ const { inclusionLevel = 'full', detailLevel = 'full', language = detectLanguage(content), preserveComments = true, preserveImports = true } = options;
3
+ const originalLength = content.length;
4
+ let processedContent = content;
5
+ if (inclusionLevel === 'directory') {
6
+ return {
7
+ originalLength,
8
+ processedLength: 0,
9
+ compressionRatio: 100,
10
+ content: '',
11
+ tokens: 0
12
+ };
13
+ }
14
+ if (inclusionLevel === 'exclude') {
15
+ return {
16
+ originalLength,
17
+ processedLength: 0,
18
+ compressionRatio: 100,
19
+ content: '',
20
+ tokens: 0
21
+ };
22
+ }
23
+ if (inclusionLevel === 'compress' || detailLevel !== 'full') {
24
+ processedContent = compressContent(content, detailLevel, language, preserveComments, preserveImports);
25
+ }
26
+ const processedLength = processedContent.length;
27
+ const compressionRatio = originalLength > 0
28
+ ? ((originalLength - processedLength) / originalLength) * 100
29
+ : 0;
30
+ const tokens = estimateTokens(processedContent);
31
+ return {
32
+ originalLength,
33
+ processedLength,
34
+ compressionRatio,
35
+ content: processedContent,
36
+ tokens
37
+ };
38
+ }
39
+ function compressContent(content, detailLevel, language, preserveComments, preserveImports) {
40
+ const lines = content.split('\n');
41
+ const result = [];
42
+ let inFunction = false;
43
+ let braceCount = 0;
44
+ let functionSignature = null;
45
+ let inComment = false;
46
+ let commentBlock = [];
47
+ for (let i = 0; i < lines.length; i++) {
48
+ const line = lines[i];
49
+ const trimmed = line.trim();
50
+ if (trimmed.startsWith('/*')) {
51
+ inComment = true;
52
+ }
53
+ if (inComment) {
54
+ if (preserveComments && detailLevel !== 'skeleton') {
55
+ commentBlock.push(line);
56
+ }
57
+ if (trimmed.includes('*/')) {
58
+ inComment = false;
59
+ if (commentBlock.length > 0) {
60
+ result.push(...commentBlock);
61
+ commentBlock = [];
62
+ }
63
+ }
64
+ continue;
65
+ }
66
+ if (trimmed.startsWith('//') || trimmed.startsWith('#')) {
67
+ if (preserveComments && detailLevel !== 'skeleton') {
68
+ result.push(line);
69
+ }
70
+ continue;
71
+ }
72
+ if (preserveImports && isImportLine(trimmed, language)) {
73
+ result.push(line);
74
+ continue;
75
+ }
76
+ if (isExportLine(trimmed, language)) {
77
+ if (detailLevel === 'skeleton') {
78
+ const simplified = simplifyExport(line, language);
79
+ if (simplified)
80
+ result.push(simplified);
81
+ continue;
82
+ }
83
+ }
84
+ if (isFunctionSignature(line, language)) {
85
+ if (inFunction) {
86
+ braceCount = 0;
87
+ }
88
+ inFunction = true;
89
+ functionSignature = line;
90
+ braceCount += countBraces(line);
91
+ if (detailLevel === 'signatures' || detailLevel === 'skeleton') {
92
+ const signature = extractSignature(line, language);
93
+ if (signature)
94
+ result.push(signature);
95
+ }
96
+ continue;
97
+ }
98
+ if (inFunction) {
99
+ braceCount += countBraces(line);
100
+ if (braceCount <= 0) {
101
+ inFunction = false;
102
+ functionSignature = null;
103
+ }
104
+ if (detailLevel === 'full') {
105
+ result.push(line);
106
+ }
107
+ continue;
108
+ }
109
+ if (detailLevel === 'full') {
110
+ result.push(line);
111
+ }
112
+ }
113
+ return result.join('\n');
114
+ }
115
+ function isImportLine(line, language) {
116
+ const importPatterns = [
117
+ /^import\s+/,
118
+ /^from\s+\w+\s+import/,
119
+ /^require\s*\(/,
120
+ /^using\s+/,
121
+ /^#include/,
122
+ /^#import/,
123
+ /^const\s+\w+\s+=\s+require\s*\(/,
124
+ ];
125
+ return importPatterns.some(pattern => pattern.test(line));
126
+ }
127
+ function isExportLine(line, language) {
128
+ const exportPatterns = [
129
+ /^export\s+/,
130
+ /^module\.exports\s*=/,
131
+ /^exports\./,
132
+ /^public\s+/,
133
+ ];
134
+ return exportPatterns.some(pattern => pattern.test(line));
135
+ }
136
+ function simplifyExport(line, language) {
137
+ const simplified = line.replace(/\{[\s\S]*\}/, '{ ... }');
138
+ return simplified;
139
+ }
140
+ function isFunctionSignature(line, language) {
141
+ const patterns = [
142
+ /^(export\s+)?(async\s+)?function\s+\w+\s*\(/,
143
+ /^(export\s+)?(async\s+)?function\s*\(/,
144
+ /^(export\s+)?const\s+\w+\s*=\s*(async\s*)?\(/,
145
+ /^(export\s+)?(async\s+)?\w+\s*\([^)]*\)\s*{/,
146
+ /^(export\s+)?(async\s+)?\w+\s*\([^)]*\)\s*:\s*\w+\s*{/,
147
+ /^(export\s+)?class\s+\w+/,
148
+ /^(export\s+)?interface\s+\w+/,
149
+ /^(export\s+)?type\s+\w+\s*=/,
150
+ /^(public|private|protected)\s+(async\s+)?\w+\s*\(/,
151
+ /^\s*(async\s+)?def\s+\w+\s*\(/,
152
+ /^func\s+\w+\s*\(/,
153
+ ];
154
+ return patterns.some(pattern => pattern.test(line));
155
+ }
156
+ function extractSignature(line, language) {
157
+ const signatureMatch = line.match(/^(.*\{)/);
158
+ if (signatureMatch) {
159
+ return signatureMatch[1] + ' ... }';
160
+ }
161
+ const arrowMatch = line.match(/^(.*=>).*$/);
162
+ if (arrowMatch) {
163
+ return arrowMatch[1] + ' ...;';
164
+ }
165
+ const classMatch = line.match(/^(export\s+)?class\s+\w+([^{]*)(\{)?/);
166
+ if (classMatch) {
167
+ return classMatch[1] || '' + 'class ' + line.match(/class\s+(\w+)/)?.[1] + ' { ... }';
168
+ }
169
+ const interfaceMatch = line.match(/^(export\s+)?interface\s+\w+/);
170
+ if (interfaceMatch) {
171
+ return line + ' { ... }';
172
+ }
173
+ return line + ';';
174
+ }
175
+ function countBraces(line) {
176
+ let count = 0;
177
+ for (const char of line) {
178
+ if (char === '{')
179
+ count++;
180
+ if (char === '}')
181
+ count--;
182
+ }
183
+ return count;
184
+ }
185
+ function detectLanguage(content) {
186
+ if (content.includes('interface ') || content.includes(': string') || content.includes(': number')) {
187
+ return 'typescript';
188
+ }
189
+ if (content.includes('def ') || content.includes('import ') && content.includes(':')) {
190
+ return 'python';
191
+ }
192
+ if (content.includes('func ') || content.includes('package main')) {
193
+ return 'go';
194
+ }
195
+ if (content.includes('fn ') || content.includes('let mut ')) {
196
+ return 'rust';
197
+ }
198
+ return 'javascript';
199
+ }
200
+ function estimateTokens(content) {
201
+ return Math.ceil(content.length / 4);
202
+ }
203
+ export function classifyFile(filePath, includePatterns, compressPatterns, directoryPatterns, excludePatterns) {
204
+ if (matchesPatterns(filePath, excludePatterns)) {
205
+ return 'exclude';
206
+ }
207
+ if (matchesPatterns(filePath, directoryPatterns)) {
208
+ return 'directory';
209
+ }
210
+ if (matchesPatterns(filePath, compressPatterns)) {
211
+ return 'compress';
212
+ }
213
+ if (includePatterns.length === 0 || matchesPatterns(filePath, includePatterns)) {
214
+ return 'full';
215
+ }
216
+ return 'exclude';
217
+ }
218
+ function matchesPatterns(filePath, patterns) {
219
+ if (patterns.length === 0)
220
+ return false;
221
+ return patterns.some(pattern => {
222
+ const regex = globToRegex(pattern);
223
+ return regex.test(filePath);
224
+ });
225
+ }
226
+ function globToRegex(pattern) {
227
+ let regex = pattern
228
+ .replace(/\*\*/g, '{{GLOBSTAR}}')
229
+ .replace(/\*/g, '[^/]*')
230
+ .replace(/\?/g, '.')
231
+ .replace(/\./g, '\\.')
232
+ .replace('{{GLOBSTAR}}', '.*');
233
+ return new RegExp(`^${regex}$`);
234
+ }
235
+ //# sourceMappingURL=contentProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contentProcessor.js","sourceRoot":"","sources":["../../../src/core/content/contentProcessor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { processContent, classifyFile } from './contentProcessor.js';
2
+ export type { InclusionLevel, DetailLevel, FileClassification, ContentProcessorOptions, ProcessedContent, CompressionStats } from './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/content/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrE,YAAY,EACV,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { processContent, classifyFile } from './contentProcessor.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/content/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC"}