codingbuddy 0.0.0-canary.20251219151055.e4122b3 → 0.0.0-dev.20251217094948.321eff2

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 (100) hide show
  1. package/README.md +16 -140
  2. package/dist/src/keyword/keyword.module.js.map +1 -1
  3. package/dist/src/keyword/keyword.service.spec.d.ts +1 -0
  4. package/dist/src/keyword/keyword.service.spec.js +225 -0
  5. package/dist/src/keyword/keyword.service.spec.js.map +1 -0
  6. package/dist/src/main.js +0 -0
  7. package/dist/src/mcp/mcp.module.js +1 -2
  8. package/dist/src/mcp/mcp.module.js.map +1 -1
  9. package/dist/src/mcp/mcp.service.d.ts +7 -16
  10. package/dist/src/mcp/mcp.service.js +65 -140
  11. package/dist/src/mcp/mcp.service.js.map +1 -1
  12. package/dist/src/rules/rules.service.js +2 -2
  13. package/dist/src/rules/rules.service.js.map +1 -1
  14. package/dist/tsconfig.tsbuildinfo +1 -0
  15. package/package.json +7 -22
  16. package/dist/src/analyzer/analyzer.module.d.ts +0 -2
  17. package/dist/src/analyzer/analyzer.module.js +0 -21
  18. package/dist/src/analyzer/analyzer.module.js.map +0 -1
  19. package/dist/src/analyzer/analyzer.service.d.ts +0 -10
  20. package/dist/src/analyzer/analyzer.service.js +0 -74
  21. package/dist/src/analyzer/analyzer.service.js.map +0 -1
  22. package/dist/src/analyzer/analyzer.types.d.ts +0 -70
  23. package/dist/src/analyzer/analyzer.types.js +0 -3
  24. package/dist/src/analyzer/analyzer.types.js.map +0 -1
  25. package/dist/src/analyzer/code.sampler.d.ts +0 -7
  26. package/dist/src/analyzer/code.sampler.js +0 -161
  27. package/dist/src/analyzer/code.sampler.js.map +0 -1
  28. package/dist/src/analyzer/config.analyzer.d.ts +0 -7
  29. package/dist/src/analyzer/config.analyzer.js +0 -182
  30. package/dist/src/analyzer/config.analyzer.js.map +0 -1
  31. package/dist/src/analyzer/directory.analyzer.d.ts +0 -12
  32. package/dist/src/analyzer/directory.analyzer.js +0 -156
  33. package/dist/src/analyzer/directory.analyzer.js.map +0 -1
  34. package/dist/src/analyzer/index.d.ts +0 -7
  35. package/dist/src/analyzer/index.js +0 -32
  36. package/dist/src/analyzer/index.js.map +0 -1
  37. package/dist/src/analyzer/package.analyzer.d.ts +0 -12
  38. package/dist/src/analyzer/package.analyzer.js +0 -126
  39. package/dist/src/analyzer/package.analyzer.js.map +0 -1
  40. package/dist/src/cli/cli.d.ts +0 -10
  41. package/dist/src/cli/cli.js +0 -98
  42. package/dist/src/cli/cli.js.map +0 -1
  43. package/dist/src/cli/cli.types.d.ts +0 -18
  44. package/dist/src/cli/cli.types.js +0 -3
  45. package/dist/src/cli/cli.types.js.map +0 -1
  46. package/dist/src/cli/index.d.ts +0 -6
  47. package/dist/src/cli/index.js +0 -15
  48. package/dist/src/cli/index.js.map +0 -1
  49. package/dist/src/cli/init/config.generator.d.ts +0 -16
  50. package/dist/src/cli/init/config.generator.js +0 -70
  51. package/dist/src/cli/init/config.generator.js.map +0 -1
  52. package/dist/src/cli/init/config.writer.d.ts +0 -10
  53. package/dist/src/cli/init/config.writer.js +0 -43
  54. package/dist/src/cli/init/config.writer.js.map +0 -1
  55. package/dist/src/cli/init/index.d.ts +0 -5
  56. package/dist/src/cli/init/index.js +0 -16
  57. package/dist/src/cli/init/index.js.map +0 -1
  58. package/dist/src/cli/init/init.command.d.ts +0 -3
  59. package/dist/src/cli/init/init.command.js +0 -80
  60. package/dist/src/cli/init/init.command.js.map +0 -1
  61. package/dist/src/cli/init/prompt.builder.d.ts +0 -7
  62. package/dist/src/cli/init/prompt.builder.js +0 -225
  63. package/dist/src/cli/init/prompt.builder.js.map +0 -1
  64. package/dist/src/cli/utils/console.d.ts +0 -11
  65. package/dist/src/cli/utils/console.js +0 -33
  66. package/dist/src/cli/utils/console.js.map +0 -1
  67. package/dist/src/cli/utils/index.d.ts +0 -2
  68. package/dist/src/cli/utils/index.js +0 -7
  69. package/dist/src/cli/utils/index.js.map +0 -1
  70. package/dist/src/config/config.loader.d.ts +0 -22
  71. package/dist/src/config/config.loader.js +0 -105
  72. package/dist/src/config/config.loader.js.map +0 -1
  73. package/dist/src/config/config.module.d.ts +0 -2
  74. package/dist/src/config/config.module.js +0 -21
  75. package/dist/src/config/config.module.js.map +0 -1
  76. package/dist/src/config/config.schema.d.ts +0 -544
  77. package/dist/src/config/config.schema.js +0 -98
  78. package/dist/src/config/config.schema.js.map +0 -1
  79. package/dist/src/config/config.service.d.ts +0 -33
  80. package/dist/src/config/config.service.js +0 -126
  81. package/dist/src/config/config.service.js.map +0 -1
  82. package/dist/src/config/config.types.d.ts +0 -2
  83. package/dist/src/config/config.types.js +0 -6
  84. package/dist/src/config/config.types.js.map +0 -1
  85. package/dist/src/config/context.loader.d.ts +0 -23
  86. package/dist/src/config/context.loader.js +0 -146
  87. package/dist/src/config/context.loader.js.map +0 -1
  88. package/dist/src/config/ignore.parser.d.ts +0 -12
  89. package/dist/src/config/ignore.parser.js +0 -132
  90. package/dist/src/config/ignore.parser.js.map +0 -1
  91. package/dist/src/config/index.d.ts +0 -13
  92. package/dist/src/config/index.js +0 -41
  93. package/dist/src/config/index.js.map +0 -1
  94. package/dist/src/shared/file.utils.d.ts +0 -4
  95. package/dist/src/shared/file.utils.js +0 -37
  96. package/dist/src/shared/file.utils.js.map +0 -1
  97. package/dist/src/shared/path.utils.d.ts +0 -2
  98. package/dist/src/shared/path.utils.js +0 -14
  99. package/dist/src/shared/path.utils.js.map +0 -1
  100. package/dist/tsconfig.build.tsbuildinfo +0 -1
@@ -1,33 +0,0 @@
1
- import { OnModuleInit } from '@nestjs/common';
2
- import { type ContextFile } from './context.loader';
3
- import type { CodingBuddyConfig } from './config.schema';
4
- export interface ProjectConfig {
5
- settings: CodingBuddyConfig;
6
- ignorePatterns: string[];
7
- contextFiles: ContextFile[];
8
- sources: {
9
- config: string | null;
10
- ignore: string | null;
11
- context: string | null;
12
- };
13
- }
14
- export declare class ConfigService implements OnModuleInit {
15
- private readonly logger;
16
- private projectRoot;
17
- private projectConfig;
18
- private isLoaded;
19
- constructor();
20
- onModuleInit(): Promise<void>;
21
- setProjectRoot(root: string): void;
22
- getProjectRoot(): string;
23
- loadProjectConfig(): Promise<ProjectConfig>;
24
- getProjectConfig(): Promise<ProjectConfig>;
25
- getSettings(): Promise<CodingBuddyConfig>;
26
- getIgnorePatterns(): Promise<string[]>;
27
- shouldIgnorePath(relativePath: string): Promise<boolean>;
28
- getContextFiles(): Promise<ContextFile[]>;
29
- getFormattedContext(): Promise<string>;
30
- getLanguage(): Promise<string | undefined>;
31
- reload(): Promise<ProjectConfig>;
32
- isConfigLoaded(): boolean;
33
- }
@@ -1,126 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var ConfigService_1;
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.ConfigService = void 0;
14
- const common_1 = require("@nestjs/common");
15
- const config_loader_1 = require("./config.loader");
16
- const ignore_parser_1 = require("./ignore.parser");
17
- const context_loader_1 = require("./context.loader");
18
- let ConfigService = ConfigService_1 = class ConfigService {
19
- constructor() {
20
- this.logger = new common_1.Logger(ConfigService_1.name);
21
- this.projectConfig = null;
22
- this.isLoaded = false;
23
- this.projectRoot = process.env.CODINGBUDDY_PROJECT_ROOT ?? process.cwd();
24
- }
25
- async onModuleInit() {
26
- await this.loadProjectConfig();
27
- }
28
- setProjectRoot(root) {
29
- this.projectRoot = root;
30
- this.isLoaded = false;
31
- this.projectConfig = null;
32
- }
33
- getProjectRoot() {
34
- return this.projectRoot;
35
- }
36
- async loadProjectConfig() {
37
- this.logger.log(`Loading project config from: ${this.projectRoot}`);
38
- let configResult;
39
- try {
40
- configResult = await (0, config_loader_1.loadConfig)(this.projectRoot);
41
- if (configResult.source) {
42
- this.logger.log(`Loaded config from: ${configResult.source}`);
43
- }
44
- else {
45
- this.logger.log('No config file found, using defaults');
46
- }
47
- }
48
- catch (error) {
49
- if (error instanceof config_loader_1.ConfigLoadError) {
50
- this.logger.error(`Config load error: ${error.message}`);
51
- }
52
- configResult = { config: {}, source: null, warnings: [] };
53
- }
54
- const ignoreResult = await (0, ignore_parser_1.loadIgnoreFile)(this.projectRoot);
55
- const allIgnorePatterns = [
56
- ...(0, ignore_parser_1.getDefaultIgnorePatterns)(),
57
- ...ignoreResult.patterns,
58
- ];
59
- if (ignoreResult.source) {
60
- this.logger.log(`Loaded ignore patterns from: ${ignoreResult.source}`);
61
- }
62
- const contextResult = await (0, context_loader_1.loadContextFiles)(this.projectRoot);
63
- if (contextResult.source) {
64
- this.logger.log(`Loaded ${contextResult.files.length} context files from: ${contextResult.source}`);
65
- }
66
- if (contextResult.errors.length > 0) {
67
- this.logger.warn(`Context loading errors: ${contextResult.errors.join(', ')}`);
68
- }
69
- this.projectConfig = {
70
- settings: configResult.config,
71
- ignorePatterns: allIgnorePatterns,
72
- contextFiles: contextResult.files,
73
- sources: {
74
- config: configResult.source,
75
- ignore: ignoreResult.source,
76
- context: contextResult.source,
77
- },
78
- };
79
- this.isLoaded = true;
80
- return this.projectConfig;
81
- }
82
- async getProjectConfig() {
83
- if (!this.isLoaded || !this.projectConfig) {
84
- return this.loadProjectConfig();
85
- }
86
- return this.projectConfig;
87
- }
88
- async getSettings() {
89
- const config = await this.getProjectConfig();
90
- return config.settings;
91
- }
92
- async getIgnorePatterns() {
93
- const config = await this.getProjectConfig();
94
- return config.ignorePatterns;
95
- }
96
- async shouldIgnorePath(relativePath) {
97
- const patterns = await this.getIgnorePatterns();
98
- return (0, ignore_parser_1.shouldIgnore)(relativePath, patterns);
99
- }
100
- async getContextFiles() {
101
- const config = await this.getProjectConfig();
102
- return config.contextFiles;
103
- }
104
- async getFormattedContext() {
105
- const files = await this.getContextFiles();
106
- return (0, context_loader_1.formatContextForAI)(files);
107
- }
108
- async getLanguage() {
109
- const settings = await this.getSettings();
110
- return settings.language;
111
- }
112
- async reload() {
113
- this.isLoaded = false;
114
- this.projectConfig = null;
115
- return this.loadProjectConfig();
116
- }
117
- isConfigLoaded() {
118
- return this.isLoaded;
119
- }
120
- };
121
- exports.ConfigService = ConfigService;
122
- exports.ConfigService = ConfigService = ConfigService_1 = __decorate([
123
- (0, common_1.Injectable)(),
124
- __metadata("design:paramtypes", [])
125
- ], ConfigService);
126
- //# sourceMappingURL=config.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/config/config.service.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export type { CodingBuddyConfig, TechStackConfig, ArchitectureConfig, ConventionsConfig, TestStrategyConfig, TechDetail, ArchitectureLayer, NamingConvention, } from './config.schema';
2
- export { isCodingBuddyConfig } from './config.schema';
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isCodingBuddyConfig = void 0;
4
- var config_schema_1 = require("./config.schema");
5
- Object.defineProperty(exports, "isCodingBuddyConfig", { enumerable: true, get: function () { return config_schema_1.isCodingBuddyConfig; } });
6
- //# sourceMappingURL=config.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.types.js","sourceRoot":"","sources":["../../../src/config/config.types.ts"],"names":[],"mappings":";;;AA0CA,iDAAsD;AAA7C,oHAAA,mBAAmB,OAAA"}
@@ -1,23 +0,0 @@
1
- export declare const CONTEXT_DIR_NAME = ".codingbuddy";
2
- export declare const KNOWN_SUBDIRS: {
3
- readonly context: "context";
4
- readonly prompts: "prompts";
5
- readonly agents: "agents";
6
- };
7
- export type ContextFileType = 'context' | 'prompt' | 'agent' | 'other';
8
- export interface ContextFile {
9
- path: string;
10
- content: string;
11
- type: ContextFileType;
12
- extension: string;
13
- }
14
- export interface ContextLoadResult {
15
- files: ContextFile[];
16
- source: string | null;
17
- errors: string[];
18
- }
19
- export declare function getContextFileType(relativePath: string): ContextFileType;
20
- export declare function isLoadableFile(filePath: string): boolean;
21
- export declare function loadContextFiles(projectRoot: string): Promise<ContextLoadResult>;
22
- export declare function formatContextForAI(files: ContextFile[]): string;
23
- export declare function hasContextDir(projectRoot: string): boolean;
@@ -1,146 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.KNOWN_SUBDIRS = exports.CONTEXT_DIR_NAME = void 0;
4
- exports.getContextFileType = getContextFileType;
5
- exports.isLoadableFile = isLoadableFile;
6
- exports.loadContextFiles = loadContextFiles;
7
- exports.formatContextForAI = formatContextForAI;
8
- exports.hasContextDir = hasContextDir;
9
- const fs_1 = require("fs");
10
- const path = require("path");
11
- const file_utils_1 = require("../shared/file.utils");
12
- exports.CONTEXT_DIR_NAME = '.codingbuddy';
13
- exports.KNOWN_SUBDIRS = {
14
- context: 'context',
15
- prompts: 'prompts',
16
- agents: 'agents',
17
- };
18
- function getContextFileType(relativePath) {
19
- const parts = relativePath.split('/');
20
- if (parts[0] === exports.KNOWN_SUBDIRS.context) {
21
- return 'context';
22
- }
23
- if (parts[0] === exports.KNOWN_SUBDIRS.prompts) {
24
- return 'prompt';
25
- }
26
- if (parts[0] === exports.KNOWN_SUBDIRS.agents) {
27
- return 'agent';
28
- }
29
- return 'other';
30
- }
31
- function isLoadableFile(filePath) {
32
- const ext = path.extname(filePath).toLowerCase();
33
- const loadableExtensions = [
34
- '.md',
35
- '.txt',
36
- '.json',
37
- '.yaml',
38
- '.yml',
39
- '.js',
40
- '.ts',
41
- '.jsx',
42
- '.tsx',
43
- ];
44
- return loadableExtensions.includes(ext);
45
- }
46
- async function getAllFiles(dirPath, basePath = '') {
47
- const files = [];
48
- const entries = await (0, file_utils_1.safeReadDirWithTypes)(dirPath);
49
- for (const entry of entries) {
50
- const relativePath = basePath ? `${basePath}/${entry.name}` : entry.name;
51
- const fullPath = path.join(dirPath, entry.name);
52
- if (entry.isDirectory()) {
53
- const subFiles = await getAllFiles(fullPath, relativePath);
54
- files.push(...subFiles);
55
- }
56
- else if (entry.isFile()) {
57
- files.push(relativePath);
58
- }
59
- }
60
- return files;
61
- }
62
- async function loadContextFile(contextDir, relativePath) {
63
- const fullPath = path.join(contextDir, relativePath);
64
- const content = await (0, file_utils_1.tryReadFile)(fullPath);
65
- if (content === undefined) {
66
- return null;
67
- }
68
- const extension = path.extname(relativePath).toLowerCase();
69
- return {
70
- path: relativePath,
71
- content,
72
- type: getContextFileType(relativePath),
73
- extension,
74
- };
75
- }
76
- async function loadContextFiles(projectRoot) {
77
- const contextDir = path.join(projectRoot, exports.CONTEXT_DIR_NAME);
78
- if (!(0, fs_1.existsSync)(contextDir)) {
79
- return {
80
- files: [],
81
- source: null,
82
- errors: [],
83
- };
84
- }
85
- const allFiles = await getAllFiles(contextDir);
86
- const loadableFiles = allFiles.filter(isLoadableFile);
87
- const files = [];
88
- const errors = [];
89
- for (const relativePath of loadableFiles) {
90
- const file = await loadContextFile(contextDir, relativePath);
91
- if (file) {
92
- files.push(file);
93
- }
94
- else {
95
- errors.push(`Failed to load: ${relativePath}`);
96
- }
97
- }
98
- return {
99
- files,
100
- source: contextDir,
101
- errors,
102
- };
103
- }
104
- function getFilesByType(files, type) {
105
- return files.filter(f => f.type === type);
106
- }
107
- function formatContextForAI(files) {
108
- if (files.length === 0) {
109
- return '';
110
- }
111
- const sections = [];
112
- const contextFiles = getFilesByType(files, 'context');
113
- const promptFiles = getFilesByType(files, 'prompt');
114
- const agentFiles = getFilesByType(files, 'agent');
115
- const otherFiles = getFilesByType(files, 'other');
116
- if (contextFiles.length > 0) {
117
- sections.push('## Project Context\n');
118
- for (const file of contextFiles) {
119
- sections.push(`### ${file.path}\n\n${file.content}\n`);
120
- }
121
- }
122
- if (promptFiles.length > 0) {
123
- sections.push('## Custom Prompts\n');
124
- for (const file of promptFiles) {
125
- sections.push(`### ${file.path}\n\n${file.content}\n`);
126
- }
127
- }
128
- if (agentFiles.length > 0) {
129
- sections.push('## Custom Agents\n');
130
- for (const file of agentFiles) {
131
- sections.push(`### ${file.path}\n\n${file.content}\n`);
132
- }
133
- }
134
- if (otherFiles.length > 0) {
135
- sections.push('## Additional Files\n');
136
- for (const file of otherFiles) {
137
- sections.push(`### ${file.path}\n\n${file.content}\n`);
138
- }
139
- }
140
- return sections.join('\n');
141
- }
142
- function hasContextDir(projectRoot) {
143
- const contextDir = path.join(projectRoot, exports.CONTEXT_DIR_NAME);
144
- return (0, fs_1.existsSync)(contextDir);
145
- }
146
- //# sourceMappingURL=context.loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.loader.js","sourceRoot":"","sources":["../../../src/config/context.loader.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- export declare const IGNORE_FILE_NAME = ".codingignore";
2
- export interface IgnoreParseResult {
3
- patterns: string[];
4
- source: string | null;
5
- }
6
- export declare function parseIgnoreLine(line: string): string | null;
7
- export declare function parseIgnoreContent(content: string): string[];
8
- export declare function loadIgnoreFile(projectRoot: string): Promise<IgnoreParseResult>;
9
- export declare function patternToRegex(pattern: string): RegExp;
10
- export declare function shouldIgnore(relativePath: string, patterns: string[]): boolean;
11
- export declare function filterIgnored(paths: string[], patterns: string[]): string[];
12
- export declare function getDefaultIgnorePatterns(): string[];
@@ -1,132 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IGNORE_FILE_NAME = void 0;
4
- exports.parseIgnoreLine = parseIgnoreLine;
5
- exports.parseIgnoreContent = parseIgnoreContent;
6
- exports.loadIgnoreFile = loadIgnoreFile;
7
- exports.patternToRegex = patternToRegex;
8
- exports.shouldIgnore = shouldIgnore;
9
- exports.filterIgnored = filterIgnored;
10
- exports.getDefaultIgnorePatterns = getDefaultIgnorePatterns;
11
- const fs_1 = require("fs");
12
- const path = require("path");
13
- const file_utils_1 = require("../shared/file.utils");
14
- exports.IGNORE_FILE_NAME = '.codingignore';
15
- function parseIgnoreLine(line) {
16
- const trimmed = line.trim();
17
- if (trimmed === '') {
18
- return null;
19
- }
20
- if (trimmed.startsWith('#')) {
21
- return null;
22
- }
23
- return trimmed;
24
- }
25
- function parseIgnoreContent(content) {
26
- const lines = content.split('\n');
27
- const patterns = [];
28
- for (const line of lines) {
29
- const parsed = parseIgnoreLine(line);
30
- if (parsed !== null) {
31
- patterns.push(parsed);
32
- }
33
- }
34
- return patterns;
35
- }
36
- async function loadIgnoreFile(projectRoot) {
37
- const ignorePath = path.join(projectRoot, exports.IGNORE_FILE_NAME);
38
- if (!(0, fs_1.existsSync)(ignorePath)) {
39
- return {
40
- patterns: [],
41
- source: null,
42
- };
43
- }
44
- const content = await (0, file_utils_1.safeReadFile)(ignorePath);
45
- if (content === null) {
46
- return {
47
- patterns: [],
48
- source: null,
49
- };
50
- }
51
- const patterns = parseIgnoreContent(content);
52
- return {
53
- patterns,
54
- source: ignorePath,
55
- };
56
- }
57
- function patternToRegex(pattern) {
58
- let regexStr = pattern;
59
- const isNegated = regexStr.startsWith('!');
60
- if (isNegated) {
61
- regexStr = regexStr.slice(1);
62
- }
63
- const isDirOnly = regexStr.endsWith('/');
64
- if (isDirOnly) {
65
- regexStr = regexStr.slice(0, -1);
66
- }
67
- const isRootAnchored = regexStr.startsWith('/');
68
- if (isRootAnchored) {
69
- regexStr = regexStr.slice(1);
70
- }
71
- const startsWithGlobstar = regexStr.startsWith('**/');
72
- if (startsWithGlobstar) {
73
- regexStr = regexStr.slice(3);
74
- }
75
- regexStr = regexStr.replace(/[.+^${}()|[\]\\]/g, '\\$&');
76
- regexStr = regexStr.replace(/\*\*\//g, '(.*/)?');
77
- regexStr = regexStr.replace(/\*\*$/g, '.*');
78
- regexStr = regexStr.replace(/\*\*/g, '.*');
79
- regexStr = regexStr.replace(/\*/g, '[^/]*');
80
- regexStr = regexStr.replace(/\?/g, '[^/]');
81
- if (isRootAnchored) {
82
- regexStr = '^' + regexStr;
83
- }
84
- else if (startsWithGlobstar) {
85
- regexStr = '^(.*/)?' + regexStr;
86
- }
87
- else {
88
- regexStr = '(^|/)' + regexStr;
89
- }
90
- if (isDirOnly) {
91
- regexStr = regexStr + '(/|$)';
92
- }
93
- else {
94
- regexStr = regexStr + '($|/)';
95
- }
96
- return new RegExp(regexStr);
97
- }
98
- function shouldIgnore(relativePath, patterns) {
99
- const normalizedPath = relativePath.replace(/\\/g, '/');
100
- let ignored = false;
101
- for (const pattern of patterns) {
102
- const isNegated = pattern.startsWith('!');
103
- const actualPattern = isNegated ? pattern.slice(1) : pattern;
104
- const regex = patternToRegex(actualPattern);
105
- if (regex.test(normalizedPath)) {
106
- ignored = !isNegated;
107
- }
108
- }
109
- return ignored;
110
- }
111
- function filterIgnored(paths, patterns) {
112
- return paths.filter(p => !shouldIgnore(p, patterns));
113
- }
114
- function getDefaultIgnorePatterns() {
115
- return [
116
- 'node_modules/',
117
- '.git/',
118
- 'dist/',
119
- 'build/',
120
- '.next/',
121
- '.nuxt/',
122
- 'coverage/',
123
- '.nyc_output/',
124
- '*.log',
125
- '.DS_Store',
126
- 'Thumbs.db',
127
- '.env',
128
- '.env.*',
129
- '!.env.example',
130
- ];
131
- }
132
- //# sourceMappingURL=ignore.parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ignore.parser.js","sourceRoot":"","sources":["../../../src/config/ignore.parser.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- export type { CodingBuddyConfig, TechStackConfig, ArchitectureConfig, ConventionsConfig, TestStrategyConfig, TechDetail, ArchitectureLayer, NamingConvention, } from './config.schema';
2
- export { CodingBuddyConfigSchema, TechStackConfigSchema, ArchitectureConfigSchema, ConventionsConfigSchema, TestStrategyConfigSchema, TechDetailSchema, ArchitectureLayerSchema, NamingConventionSchema, } from './config.schema';
3
- export type { ValidationResult, ValidationError } from './config.schema';
4
- export { validateConfig, parseConfig, isCodingBuddyConfig, } from './config.schema';
5
- export type { ConfigLoadResult } from './config.loader';
6
- export { CONFIG_FILE_NAMES, ConfigLoadError, findConfigFile, loadConfig, hasConfigFile, } from './config.loader';
7
- export type { IgnoreParseResult } from './ignore.parser';
8
- export { IGNORE_FILE_NAME, parseIgnoreContent, loadIgnoreFile, patternToRegex, shouldIgnore, filterIgnored, getDefaultIgnorePatterns, } from './ignore.parser';
9
- export type { ContextFile, ContextFileType, ContextLoadResult, } from './context.loader';
10
- export { CONTEXT_DIR_NAME, KNOWN_SUBDIRS, loadContextFiles, formatContextForAI, hasContextDir, } from './context.loader';
11
- export type { ProjectConfig } from './config.service';
12
- export { ConfigService } from './config.service';
13
- export { CodingBuddyConfigModule } from './config.module';
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CodingBuddyConfigModule = exports.ConfigService = exports.hasContextDir = exports.formatContextForAI = exports.loadContextFiles = exports.KNOWN_SUBDIRS = exports.CONTEXT_DIR_NAME = exports.getDefaultIgnorePatterns = exports.filterIgnored = exports.shouldIgnore = exports.patternToRegex = exports.loadIgnoreFile = exports.parseIgnoreContent = exports.IGNORE_FILE_NAME = exports.hasConfigFile = exports.loadConfig = exports.findConfigFile = exports.ConfigLoadError = exports.CONFIG_FILE_NAMES = exports.isCodingBuddyConfig = exports.parseConfig = exports.validateConfig = exports.NamingConventionSchema = exports.ArchitectureLayerSchema = exports.TechDetailSchema = exports.TestStrategyConfigSchema = exports.ConventionsConfigSchema = exports.ArchitectureConfigSchema = exports.TechStackConfigSchema = exports.CodingBuddyConfigSchema = void 0;
4
- var config_schema_1 = require("./config.schema");
5
- Object.defineProperty(exports, "CodingBuddyConfigSchema", { enumerable: true, get: function () { return config_schema_1.CodingBuddyConfigSchema; } });
6
- Object.defineProperty(exports, "TechStackConfigSchema", { enumerable: true, get: function () { return config_schema_1.TechStackConfigSchema; } });
7
- Object.defineProperty(exports, "ArchitectureConfigSchema", { enumerable: true, get: function () { return config_schema_1.ArchitectureConfigSchema; } });
8
- Object.defineProperty(exports, "ConventionsConfigSchema", { enumerable: true, get: function () { return config_schema_1.ConventionsConfigSchema; } });
9
- Object.defineProperty(exports, "TestStrategyConfigSchema", { enumerable: true, get: function () { return config_schema_1.TestStrategyConfigSchema; } });
10
- Object.defineProperty(exports, "TechDetailSchema", { enumerable: true, get: function () { return config_schema_1.TechDetailSchema; } });
11
- Object.defineProperty(exports, "ArchitectureLayerSchema", { enumerable: true, get: function () { return config_schema_1.ArchitectureLayerSchema; } });
12
- Object.defineProperty(exports, "NamingConventionSchema", { enumerable: true, get: function () { return config_schema_1.NamingConventionSchema; } });
13
- var config_schema_2 = require("./config.schema");
14
- Object.defineProperty(exports, "validateConfig", { enumerable: true, get: function () { return config_schema_2.validateConfig; } });
15
- Object.defineProperty(exports, "parseConfig", { enumerable: true, get: function () { return config_schema_2.parseConfig; } });
16
- Object.defineProperty(exports, "isCodingBuddyConfig", { enumerable: true, get: function () { return config_schema_2.isCodingBuddyConfig; } });
17
- var config_loader_1 = require("./config.loader");
18
- Object.defineProperty(exports, "CONFIG_FILE_NAMES", { enumerable: true, get: function () { return config_loader_1.CONFIG_FILE_NAMES; } });
19
- Object.defineProperty(exports, "ConfigLoadError", { enumerable: true, get: function () { return config_loader_1.ConfigLoadError; } });
20
- Object.defineProperty(exports, "findConfigFile", { enumerable: true, get: function () { return config_loader_1.findConfigFile; } });
21
- Object.defineProperty(exports, "loadConfig", { enumerable: true, get: function () { return config_loader_1.loadConfig; } });
22
- Object.defineProperty(exports, "hasConfigFile", { enumerable: true, get: function () { return config_loader_1.hasConfigFile; } });
23
- var ignore_parser_1 = require("./ignore.parser");
24
- Object.defineProperty(exports, "IGNORE_FILE_NAME", { enumerable: true, get: function () { return ignore_parser_1.IGNORE_FILE_NAME; } });
25
- Object.defineProperty(exports, "parseIgnoreContent", { enumerable: true, get: function () { return ignore_parser_1.parseIgnoreContent; } });
26
- Object.defineProperty(exports, "loadIgnoreFile", { enumerable: true, get: function () { return ignore_parser_1.loadIgnoreFile; } });
27
- Object.defineProperty(exports, "patternToRegex", { enumerable: true, get: function () { return ignore_parser_1.patternToRegex; } });
28
- Object.defineProperty(exports, "shouldIgnore", { enumerable: true, get: function () { return ignore_parser_1.shouldIgnore; } });
29
- Object.defineProperty(exports, "filterIgnored", { enumerable: true, get: function () { return ignore_parser_1.filterIgnored; } });
30
- Object.defineProperty(exports, "getDefaultIgnorePatterns", { enumerable: true, get: function () { return ignore_parser_1.getDefaultIgnorePatterns; } });
31
- var context_loader_1 = require("./context.loader");
32
- Object.defineProperty(exports, "CONTEXT_DIR_NAME", { enumerable: true, get: function () { return context_loader_1.CONTEXT_DIR_NAME; } });
33
- Object.defineProperty(exports, "KNOWN_SUBDIRS", { enumerable: true, get: function () { return context_loader_1.KNOWN_SUBDIRS; } });
34
- Object.defineProperty(exports, "loadContextFiles", { enumerable: true, get: function () { return context_loader_1.loadContextFiles; } });
35
- Object.defineProperty(exports, "formatContextForAI", { enumerable: true, get: function () { return context_loader_1.formatContextForAI; } });
36
- Object.defineProperty(exports, "hasContextDir", { enumerable: true, get: function () { return context_loader_1.hasContextDir; } });
37
- var config_service_1 = require("./config.service");
38
- Object.defineProperty(exports, "ConfigService", { enumerable: true, get: function () { return config_service_1.ConfigService; } });
39
- var config_module_1 = require("./config.module");
40
- Object.defineProperty(exports, "CodingBuddyConfigModule", { enumerable: true, get: function () { return config_module_1.CodingBuddyConfigModule; } });
41
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":";;;AAmBA,iDASyB;AARvB,wHAAA,uBAAuB,OAAA;AACvB,sHAAA,qBAAqB,OAAA;AACrB,yHAAA,wBAAwB,OAAA;AACxB,wHAAA,uBAAuB,OAAA;AACvB,yHAAA,wBAAwB,OAAA;AACxB,iHAAA,gBAAgB,OAAA;AAChB,wHAAA,uBAAuB,OAAA;AACvB,uHAAA,sBAAsB,OAAA;AASxB,iDAIyB;AAHvB,+GAAA,cAAc,OAAA;AACd,4GAAA,WAAW,OAAA;AACX,oHAAA,mBAAmB,OAAA;AASrB,iDAMyB;AALvB,kHAAA,iBAAiB,OAAA;AACjB,gHAAA,eAAe,OAAA;AACf,+GAAA,cAAc,OAAA;AACd,2GAAA,UAAU,OAAA;AACV,8GAAA,aAAa,OAAA;AASf,iDAQyB;AAPvB,iHAAA,gBAAgB,OAAA;AAChB,mHAAA,kBAAkB,OAAA;AAClB,+GAAA,cAAc,OAAA;AACd,+GAAA,cAAc,OAAA;AACd,6GAAA,YAAY,OAAA;AACZ,8GAAA,aAAa,OAAA;AACb,yHAAA,wBAAwB,OAAA;AAa1B,mDAM0B;AALxB,kHAAA,gBAAgB,OAAA;AAChB,+GAAA,aAAa,OAAA;AACb,kHAAA,gBAAgB,OAAA;AAChB,oHAAA,kBAAkB,OAAA;AAClB,+GAAA,aAAa,OAAA;AASf,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,iDAA0D;AAAjD,wHAAA,uBAAuB,OAAA"}
@@ -1,4 +0,0 @@
1
- import { type Dirent } from 'fs';
2
- export declare function safeReadFile(filePath: string): Promise<string | null>;
3
- export declare function tryReadFile(filePath: string): Promise<string | undefined>;
4
- export declare function safeReadDirWithTypes(dirPath: string): Promise<Dirent[]>;
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.safeReadFile = safeReadFile;
4
- exports.tryReadFile = tryReadFile;
5
- exports.safeReadDirWithTypes = safeReadDirWithTypes;
6
- const fs_1 = require("fs");
7
- async function safeReadFile(filePath) {
8
- try {
9
- return await fs_1.promises.readFile(filePath, 'utf-8');
10
- }
11
- catch (error) {
12
- if (error.code === 'ENOENT') {
13
- return null;
14
- }
15
- throw error;
16
- }
17
- }
18
- async function tryReadFile(filePath) {
19
- try {
20
- return await fs_1.promises.readFile(filePath, 'utf-8');
21
- }
22
- catch {
23
- return undefined;
24
- }
25
- }
26
- async function safeReadDirWithTypes(dirPath) {
27
- try {
28
- return await fs_1.promises.readdir(dirPath, { withFileTypes: true });
29
- }
30
- catch (error) {
31
- if (error.code === 'ENOENT') {
32
- return [];
33
- }
34
- throw error;
35
- }
36
- }
37
- //# sourceMappingURL=file.utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file.utils.js","sourceRoot":"","sources":["../../../src/shared/file.utils.ts"],"names":[],"mappings":";;AAMA,oCASC;AAMD,kCAQC;AAMD,oDASC;AA5CD,2BAAiD;AAM1C,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,IAAI,CAAC;QACH,OAAO,MAAM,aAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAMM,KAAK,UAAU,WAAW,CAC/B,QAAgB;IAEhB,IAAI,CAAC;QACH,OAAO,MAAM,aAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAMM,KAAK,UAAU,oBAAoB,CAAC,OAAe;IACxD,IAAI,CAAC;QACH,OAAO,MAAM,aAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function normalizePath(filePath: string): string;
2
- export declare function pathContainsSegment(filePath: string, segment: string): boolean;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.normalizePath = normalizePath;
4
- exports.pathContainsSegment = pathContainsSegment;
5
- function normalizePath(filePath) {
6
- return filePath.replace(/\\/g, '/');
7
- }
8
- function pathContainsSegment(filePath, segment) {
9
- const normalized = normalizePath(filePath.toLowerCase());
10
- const lowerSegment = segment.toLowerCase();
11
- return (normalized.includes(`/${lowerSegment}/`) ||
12
- normalized.startsWith(`${lowerSegment}/`));
13
- }
14
- //# sourceMappingURL=path.utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"path.utils.js","sourceRoot":"","sources":["../../../src/shared/path.utils.ts"],"names":[],"mappings":";;AAIA,sCAEC;AAUD,kDAWC;AAvBD,SAAgB,aAAa,CAAC,QAAgB;IAC5C,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC;AAUD,SAAgB,mBAAmB,CACjC,QAAgB,EAChB,OAAe;IAEf,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAE3C,OAAO,CACL,UAAU,CAAC,QAAQ,CAAC,IAAI,YAAY,GAAG,CAAC;QACxC,UAAU,CAAC,UAAU,CAAC,GAAG,YAAY,GAAG,CAAC,CAC1C,CAAC;AACJ,CAAC"}