codingbuddy 0.0.0-canary.20260110143102.g46c6902 → 0.0.0-canary.20260110153828.g20644c9

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.
@@ -20,6 +20,7 @@ export declare class ConfigService implements OnModuleInit {
20
20
  private resolveProjectRoot;
21
21
  onModuleInit(): Promise<void>;
22
22
  setProjectRoot(root: string): void;
23
+ setProjectRootAndReload(root: string): Promise<void>;
23
24
  getProjectRoot(): string;
24
25
  loadProjectConfig(): Promise<ProjectConfig>;
25
26
  getProjectConfig(): Promise<ProjectConfig>;
@@ -13,6 +13,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.ConfigService = void 0;
14
14
  const common_1 = require("@nestjs/common");
15
15
  const fs_1 = require("fs");
16
+ const promises_1 = require("fs/promises");
16
17
  const path = require("path");
17
18
  const config_loader_1 = require("./config.loader");
18
19
  const ignore_parser_1 = require("./ignore.parser");
@@ -55,10 +56,44 @@ let ConfigService = ConfigService_1 = class ConfigService {
55
56
  this.isLoaded = false;
56
57
  this.projectConfig = null;
57
58
  }
59
+ async setProjectRootAndReload(root) {
60
+ if (root.includes('\x00')) {
61
+ throw new Error('Path contains null bytes (possible null byte injection)');
62
+ }
63
+ const normalizedPath = path.resolve(root);
64
+ let pathStat;
65
+ try {
66
+ pathStat = await (0, promises_1.stat)(normalizedPath);
67
+ }
68
+ catch (error) {
69
+ if (error.code === 'ENOENT') {
70
+ throw new Error(`Project root does not exist: ${normalizedPath}`);
71
+ }
72
+ throw error;
73
+ }
74
+ if (!pathStat.isDirectory()) {
75
+ throw new Error(`Project root is not a directory: ${normalizedPath}`);
76
+ }
77
+ let resolvedPath;
78
+ try {
79
+ resolvedPath = await (0, promises_1.realpath)(normalizedPath);
80
+ }
81
+ catch {
82
+ this.logger.warn(`Failed to resolve symlinks for ${normalizedPath}, using as-is`);
83
+ resolvedPath = normalizedPath;
84
+ }
85
+ (0, config_loader_1.clearProjectRootCache)();
86
+ this.projectRoot = resolvedPath;
87
+ this.isLoaded = false;
88
+ this.projectConfig = null;
89
+ await this.loadProjectConfig();
90
+ this.logger.log(`Project root changed to: ${resolvedPath}`);
91
+ }
58
92
  getProjectRoot() {
59
93
  return this.projectRoot;
60
94
  }
61
95
  async loadProjectConfig() {
96
+ (0, ignore_parser_1.clearRegexCache)();
62
97
  this.logger.log(`Loading project config from: ${this.projectRoot}`);
63
98
  let configResult;
64
99
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/config/config.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/config/config.service.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export declare const IGNORE_FILE_NAME = ".codingignore";
2
+ export declare function clearRegexCache(): void;
2
3
  export interface IgnoreParseResult {
3
4
  patterns: string[];
4
5
  source: string | null;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IGNORE_FILE_NAME = void 0;
4
+ exports.clearRegexCache = clearRegexCache;
4
5
  exports.parseIgnoreLine = parseIgnoreLine;
5
6
  exports.parseIgnoreContent = parseIgnoreContent;
6
7
  exports.loadIgnoreFile = loadIgnoreFile;
@@ -12,6 +13,19 @@ const fs_1 = require("fs");
12
13
  const path = require("path");
13
14
  const file_utils_1 = require("../shared/file.utils");
14
15
  exports.IGNORE_FILE_NAME = '.codingignore';
16
+ const regexCache = new Map();
17
+ function getCachedRegex(pattern) {
18
+ const cached = regexCache.get(pattern);
19
+ if (cached) {
20
+ return cached;
21
+ }
22
+ const regex = patternToRegex(pattern);
23
+ regexCache.set(pattern, regex);
24
+ return regex;
25
+ }
26
+ function clearRegexCache() {
27
+ regexCache.clear();
28
+ }
15
29
  function parseIgnoreLine(line) {
16
30
  const trimmed = line.trim();
17
31
  if (trimmed === '') {
@@ -101,7 +115,7 @@ function shouldIgnore(relativePath, patterns) {
101
115
  for (const pattern of patterns) {
102
116
  const isNegated = pattern.startsWith('!');
103
117
  const actualPattern = isNegated ? pattern.slice(1) : pattern;
104
- const regex = patternToRegex(actualPattern);
118
+ const regex = getCachedRegex(actualPattern);
105
119
  if (regex.test(normalizedPath)) {
106
120
  ignored = !isNegated;
107
121
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ignore.parser.js","sourceRoot":"","sources":["../../../src/config/ignore.parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ignore.parser.js","sourceRoot":"","sources":["../../../src/config/ignore.parser.ts"],"names":[],"mappings":";;;AAkCA,0CAEC;AAgBD,0CAeC;AAKD,gDAYC;AAKD,wCA2BC;AAWD,wCA6DC;AAMD,oCAqBC;AAKD,sCAEC;AAKD,4DAiBC;AApPD,2BAAgC;AAChC,6BAA6B;AAC7B,qDAAoD;AAKvC,QAAA,gBAAgB,GAAG,eAAe,CAAC;AAMhD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;AAO7C,SAAS,cAAc,CAAC,OAAe;IACrC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACtC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC;AACf,CAAC;AAMD,SAAgB,eAAe;IAC7B,UAAU,CAAC,KAAK,EAAE,CAAC;AACrB,CAAC;AAgBD,SAAgB,eAAe,CAAC,IAAY;IAE1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAG5B,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAKD,SAAgB,kBAAkB,CAAC,OAAe;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAKM,KAAK,UAAU,cAAc,CAClC,WAAmB;IAEnB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,wBAAgB,CAAC,CAAC;IAE5D,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,IAAA,yBAAY,EAAC,UAAU,CAAC,CAAC;IAE/C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO;YACL,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAE7C,OAAO;QACL,QAAQ;QACR,MAAM,EAAE,UAAU;KACnB,CAAC;AACJ,CAAC;AAWD,SAAgB,cAAc,CAAC,OAAe;IAC5C,IAAI,QAAQ,GAAG,OAAO,CAAC;IAGvB,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,SAAS,EAAE,CAAC;QACd,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAGD,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,SAAS,EAAE,CAAC;QACd,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAGD,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,cAAc,EAAE,CAAC;QACnB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAGD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACtD,IAAI,kBAAkB,EAAE,CAAC;QACvB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAGD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAIzD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEjD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAE5C,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAE3C,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAE5C,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAG3C,IAAI,cAAc,EAAE,CAAC;QACnB,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;IAC5B,CAAC;SAAM,IAAI,kBAAkB,EAAE,CAAC;QAE9B,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IAClC,CAAC;SAAM,CAAC;QAEN,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IAChC,CAAC;IAGD,IAAI,SAAS,EAAE,CAAC;QACd,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAChC,CAAC;IAED,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAMD,SAAgB,YAAY,CAC1B,YAAoB,EACpB,QAAkB;IAGlB,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAExD,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAE7D,MAAM,KAAK,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;QAE5C,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,OAAO,GAAG,CAAC,SAAS,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAKD,SAAgB,aAAa,CAAC,KAAe,EAAE,QAAkB;IAC/D,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACvD,CAAC;AAKD,SAAgB,wBAAwB;IACtC,OAAO;QACL,eAAe;QACf,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,cAAc;QACd,OAAO;QACP,WAAW;QACX,WAAW;QACX,MAAM;QACN,QAAQ;QACR,eAAe;KAChB,CAAC;AACJ,CAAC"}
@@ -14,4 +14,5 @@ export declare class ConfigHandler extends AbstractHandler {
14
14
  getToolDefinitions(): ToolDefinition[];
15
15
  private handleGetProjectConfig;
16
16
  private handleSuggestConfigUpdates;
17
+ private handleSetProjectRoot;
17
18
  }
@@ -17,6 +17,7 @@ const config_diff_service_1 = require("../../config/config-diff.service");
17
17
  const analyzer_service_1 = require("../../analyzer/analyzer.service");
18
18
  const response_utils_1 = require("../response.utils");
19
19
  const validation_constants_1 = require("../../shared/validation.constants");
20
+ const security_utils_1 = require("../../shared/security.utils");
20
21
  let ConfigHandler = class ConfigHandler extends abstract_handler_1.AbstractHandler {
21
22
  constructor(configService, configDiffService, analyzerService) {
22
23
  super();
@@ -25,7 +26,7 @@ let ConfigHandler = class ConfigHandler extends abstract_handler_1.AbstractHandl
25
26
  this.analyzerService = analyzerService;
26
27
  }
27
28
  getHandledTools() {
28
- return ['get_project_config', 'suggest_config_updates'];
29
+ return ['get_project_config', 'suggest_config_updates', 'set_project_root'];
29
30
  }
30
31
  async handleTool(toolName, args) {
31
32
  if (toolName === 'get_project_config') {
@@ -34,6 +35,9 @@ let ConfigHandler = class ConfigHandler extends abstract_handler_1.AbstractHandl
34
35
  if (toolName === 'suggest_config_updates') {
35
36
  return this.handleSuggestConfigUpdates(args);
36
37
  }
38
+ if (toolName === 'set_project_root') {
39
+ return this.handleSetProjectRoot(args);
40
+ }
37
41
  return (0, response_utils_1.createErrorResponse)(`Unknown tool: ${toolName}`);
38
42
  }
39
43
  getToolDefinitions() {
@@ -61,6 +65,20 @@ let ConfigHandler = class ConfigHandler extends abstract_handler_1.AbstractHandl
61
65
  required: [],
62
66
  },
63
67
  },
68
+ {
69
+ name: 'set_project_root',
70
+ description: 'Set the project root directory. Use this when the MCP server is launched from a different directory than the target project.',
71
+ inputSchema: {
72
+ type: 'object',
73
+ properties: {
74
+ projectRoot: {
75
+ type: 'string',
76
+ description: 'The absolute path to the project root directory',
77
+ },
78
+ },
79
+ required: ['projectRoot'],
80
+ },
81
+ },
64
82
  ];
65
83
  }
66
84
  async handleGetProjectConfig() {
@@ -74,7 +92,12 @@ let ConfigHandler = class ConfigHandler extends abstract_handler_1.AbstractHandl
74
92
  }
75
93
  async handleSuggestConfigUpdates(args) {
76
94
  try {
77
- const projectRoot = (0, validation_constants_1.extractOptionalString)(args, 'projectRoot') ?? process.cwd();
95
+ const configProjectRoot = this.configService.getProjectRoot();
96
+ const projectRootInput = (0, validation_constants_1.extractOptionalString)(args, 'projectRoot') ?? configProjectRoot;
97
+ const projectRoot = (0, security_utils_1.assertPathSafe)(projectRootInput, {
98
+ basePath: configProjectRoot,
99
+ allowAbsolute: true,
100
+ });
78
101
  const analysis = await this.analyzerService.analyzeProject(projectRoot);
79
102
  await this.configService.reload();
80
103
  const currentConfig = await this.configService.getSettings();
@@ -85,6 +108,28 @@ let ConfigHandler = class ConfigHandler extends abstract_handler_1.AbstractHandl
85
108
  return (0, response_utils_1.createErrorResponse)(`Failed to suggest config updates: ${error instanceof Error ? error.message : 'Unknown error'}`);
86
109
  }
87
110
  }
111
+ async handleSetProjectRoot(args) {
112
+ try {
113
+ const projectRootInput = (0, validation_constants_1.extractOptionalString)(args, 'projectRoot');
114
+ if (!projectRootInput || projectRootInput.trim() === '') {
115
+ return (0, response_utils_1.createErrorResponse)('projectRoot is required and must be a non-empty string');
116
+ }
117
+ const currentProjectRoot = this.configService.getProjectRoot();
118
+ const projectRoot = (0, security_utils_1.assertPathSafe)(projectRootInput, {
119
+ basePath: currentProjectRoot,
120
+ allowAbsolute: true,
121
+ });
122
+ await this.configService.setProjectRootAndReload(projectRoot);
123
+ return (0, response_utils_1.createJsonResponse)({
124
+ success: true,
125
+ projectRoot: this.configService.getProjectRoot(),
126
+ message: `Project root set to: ${this.configService.getProjectRoot()}`,
127
+ });
128
+ }
129
+ catch (error) {
130
+ return (0, response_utils_1.createErrorResponse)(`Failed to set project root: ${error instanceof Error ? error.message : 'Unknown error'}`);
131
+ }
132
+ }
88
133
  };
89
134
  exports.ConfigHandler = ConfigHandler;
90
135
  exports.ConfigHandler = ConfigHandler = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"config.handler.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/config.handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.handler.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/config.handler.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,11 @@ import type { ToolDefinition } from './base.handler';
2
2
  import type { ToolResponse } from '../response.utils';
3
3
  import { AbstractHandler } from './abstract-handler';
4
4
  import { ConventionsAnalyzer } from '../../analyzer/conventions.analyzer';
5
+ import { ConfigService } from '../../config/config.service';
5
6
  export declare class ConventionsHandler extends AbstractHandler {
6
7
  private readonly conventionsAnalyzer;
7
- constructor(conventionsAnalyzer: ConventionsAnalyzer);
8
+ private readonly configService;
9
+ constructor(conventionsAnalyzer: ConventionsAnalyzer, configService: ConfigService);
8
10
  protected getHandledTools(): string[];
9
11
  protected handleTool(toolName: string, args: Record<string, unknown> | undefined): Promise<ToolResponse>;
10
12
  getToolDefinitions(): ToolDefinition[];
@@ -13,13 +13,15 @@ exports.ConventionsHandler = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const abstract_handler_1 = require("./abstract-handler");
15
15
  const conventions_analyzer_1 = require("../../analyzer/conventions.analyzer");
16
+ const config_service_1 = require("../../config/config.service");
16
17
  const response_utils_1 = require("../response.utils");
17
18
  const validation_constants_1 = require("../../shared/validation.constants");
18
19
  const security_utils_1 = require("../../shared/security.utils");
19
20
  let ConventionsHandler = class ConventionsHandler extends abstract_handler_1.AbstractHandler {
20
- constructor(conventionsAnalyzer) {
21
+ constructor(conventionsAnalyzer, configService) {
21
22
  super();
22
23
  this.conventionsAnalyzer = conventionsAnalyzer;
24
+ this.configService = configService;
23
25
  }
24
26
  getHandledTools() {
25
27
  return ['get_code_conventions'];
@@ -52,9 +54,10 @@ let ConventionsHandler = class ConventionsHandler extends abstract_handler_1.Abs
52
54
  }
53
55
  async handleGetCodeConventions(args) {
54
56
  try {
55
- const projectRootInput = (0, validation_constants_1.extractOptionalString)(args, 'projectRoot') ?? process.cwd();
57
+ const configProjectRoot = this.configService.getProjectRoot();
58
+ const projectRootInput = (0, validation_constants_1.extractOptionalString)(args, 'projectRoot') ?? configProjectRoot;
56
59
  const projectRoot = (0, security_utils_1.assertPathSafe)(projectRootInput, {
57
- basePath: process.cwd(),
60
+ basePath: configProjectRoot,
58
61
  allowAbsolute: true,
59
62
  });
60
63
  const conventions = await this.conventionsAnalyzer.analyzeProjectConventions(projectRoot);
@@ -68,6 +71,7 @@ let ConventionsHandler = class ConventionsHandler extends abstract_handler_1.Abs
68
71
  exports.ConventionsHandler = ConventionsHandler;
69
72
  exports.ConventionsHandler = ConventionsHandler = __decorate([
70
73
  (0, common_1.Injectable)(),
71
- __metadata("design:paramtypes", [conventions_analyzer_1.ConventionsAnalyzer])
74
+ __metadata("design:paramtypes", [conventions_analyzer_1.ConventionsAnalyzer,
75
+ config_service_1.ConfigService])
72
76
  ], ConventionsHandler);
73
77
  //# sourceMappingURL=conventions.handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conventions.handler.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/conventions.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAG5C,yDAAqD;AACrD,8EAA0E;AAC1E,sDAA4E;AAC5E,4EAA0E;AAC1E,gEAA6D;AAOtD,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,kCAAe;IACrD,YAA6B,mBAAwC;QACnE,KAAK,EAAE,CAAC;QADmB,wBAAmB,GAAnB,mBAAmB,CAAqB;IAErE,CAAC;IAES,eAAe;QACvB,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAClC,CAAC;IAES,KAAK,CAAC,UAAU,CACxB,QAAgB,EAChB,IAAyC;QAEzC,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,sBAAsB;gBACzB,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;YAC7C;gBACE,OAAO,IAAA,oCAAmB,EAAC,iBAAiB,QAAQ,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,WAAW,EACT,kGAAkG;gBACpG,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,WAAW,EAAE;4BACX,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,gEAAgE;yBACnE;qBACF;oBACD,QAAQ,EAAE,EAAE;iBACb;aACF;SACF,CAAC;IACJ,CAAC;IAKO,KAAK,CAAC,wBAAwB,CACpC,IAAyC;QAEzC,IAAI,CAAC;YACH,MAAM,gBAAgB,GACpB,IAAA,4CAAqB,EAAC,IAAI,EAAE,aAAa,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAG9D,MAAM,WAAW,GAAG,IAAA,+BAAc,EAAC,gBAAgB,EAAE;gBACnD,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE;gBACvB,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;YAEH,MAAM,WAAW,GACf,MAAM,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;YAExE,OAAO,IAAA,mCAAkB,EAAC,WAAW,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAA,oCAAmB,EACxB,uCAAuC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAChG,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AApEY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;qCAEuC,0CAAmB;GAD1D,kBAAkB,CAoE9B"}
1
+ {"version":3,"file":"conventions.handler.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/conventions.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAG5C,yDAAqD;AACrD,8EAA0E;AAC1E,gEAA4D;AAC5D,sDAA4E;AAC5E,4EAA0E;AAC1E,gEAA6D;AAOtD,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,kCAAe;IACrD,YACmB,mBAAwC,EACxC,aAA4B;QAE7C,KAAK,EAAE,CAAC;QAHS,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,kBAAa,GAAb,aAAa,CAAe;IAG/C,CAAC;IAES,eAAe;QACvB,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAClC,CAAC;IAES,KAAK,CAAC,UAAU,CACxB,QAAgB,EAChB,IAAyC;QAEzC,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,sBAAsB;gBACzB,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;YAC7C;gBACE,OAAO,IAAA,oCAAmB,EAAC,iBAAiB,QAAQ,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,WAAW,EACT,kGAAkG;gBACpG,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,WAAW,EAAE;4BACX,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,gEAAgE;yBACnE;qBACF;oBACD,QAAQ,EAAE,EAAE;iBACb;aACF;SACF,CAAC;IACJ,CAAC;IAKO,KAAK,CAAC,wBAAwB,CACpC,IAAyC;QAEzC,IAAI,CAAC;YACH,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;YAC9D,MAAM,gBAAgB,GACpB,IAAA,4CAAqB,EAAC,IAAI,EAAE,aAAa,CAAC,IAAI,iBAAiB,CAAC;YAGlE,MAAM,WAAW,GAAG,IAAA,+BAAc,EAAC,gBAAgB,EAAE;gBACnD,QAAQ,EAAE,iBAAiB;gBAC3B,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;YAEH,MAAM,WAAW,GACf,MAAM,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;YAExE,OAAO,IAAA,mCAAkB,EAAC,WAAW,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAA,oCAAmB,EACxB,uCAAuC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAChG,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AAxEY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;qCAG6B,0CAAmB;QACzB,8BAAa;GAHpC,kBAAkB,CAwE9B"}
@@ -10,12 +10,13 @@ exports.RulesModule = void 0;
10
10
  const common_1 = require("@nestjs/common");
11
11
  const rules_service_1 = require("./rules.service");
12
12
  const custom_1 = require("../custom");
13
+ const config_module_1 = require("../config/config.module");
13
14
  let RulesModule = class RulesModule {
14
15
  };
15
16
  exports.RulesModule = RulesModule;
16
17
  exports.RulesModule = RulesModule = __decorate([
17
18
  (0, common_1.Module)({
18
- imports: [custom_1.CustomModule],
19
+ imports: [custom_1.CustomModule, config_module_1.CodingBuddyConfigModule],
19
20
  providers: [rules_service_1.RulesService],
20
21
  exports: [rules_service_1.RulesService],
21
22
  })
@@ -1 +1 @@
1
- {"version":3,"file":"rules.module.js","sourceRoot":"","sources":["../../../src/rules/rules.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,mDAA+C;AAC/C,sCAAyC;AAOlC,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IALvB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,qBAAY,CAAC;QACvB,SAAS,EAAE,CAAC,4BAAY,CAAC;QACzB,OAAO,EAAE,CAAC,4BAAY,CAAC;KACxB,CAAC;GACW,WAAW,CAAG"}
1
+ {"version":3,"file":"rules.module.js","sourceRoot":"","sources":["../../../src/rules/rules.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,mDAA+C;AAC/C,sCAAyC;AACzC,2DAAkE;AAO3D,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IALvB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,qBAAY,EAAE,uCAAuB,CAAC;QAChD,SAAS,EAAE,CAAC,4BAAY,CAAC;QACzB,OAAO,EAAE,CAAC,4BAAY,CAAC;KACxB,CAAC;GACW,WAAW,CAAG"}
@@ -1,10 +1,12 @@
1
1
  import { AgentProfile, SearchResult } from './rules.types';
2
2
  import { CustomService } from '../custom';
3
+ import { ConfigService } from '../config/config.service';
3
4
  export declare class RulesService {
4
5
  private readonly customService;
6
+ private readonly configService;
5
7
  private readonly logger;
6
8
  private readonly rulesDir;
7
- constructor(customService: CustomService);
9
+ constructor(customService: CustomService, configService: ConfigService);
8
10
  private findDevRulesDir;
9
11
  private checkExists;
10
12
  getRuleContent(relativePath: string): Promise<string>;
@@ -18,10 +18,12 @@ const path = require("path");
18
18
  const security_utils_1 = require("../shared/security.utils");
19
19
  const agent_schema_1 = require("./agent.schema");
20
20
  const custom_1 = require("../custom");
21
+ const config_service_1 = require("../config/config.service");
21
22
  const keyword_types_1 = require("../keyword/keyword.types");
22
23
  let RulesService = RulesService_1 = class RulesService {
23
- constructor(customService) {
24
+ constructor(customService, configService) {
24
25
  this.customService = customService;
26
+ this.configService = configService;
25
27
  this.logger = new common_1.Logger(RulesService_1.name);
26
28
  if (process.env.CODINGBUDDY_RULES_DIR) {
27
29
  this.rulesDir = process.env.CODINGBUDDY_RULES_DIR;
@@ -117,7 +119,7 @@ let RulesService = RulesService_1 = class RulesService {
117
119
  async searchRules(query) {
118
120
  const results = [];
119
121
  const queryLower = query.toLowerCase();
120
- const projectRoot = process.cwd();
122
+ const projectRoot = this.configService.getProjectRoot();
121
123
  const customRules = await this.customService.listCustomRules(projectRoot);
122
124
  for (const customRule of customRules) {
123
125
  const lines = customRule.content.split('\n');
@@ -170,6 +172,7 @@ let RulesService = RulesService_1 = class RulesService {
170
172
  exports.RulesService = RulesService;
171
173
  exports.RulesService = RulesService = RulesService_1 = __decorate([
172
174
  (0, common_1.Injectable)(),
173
- __metadata("design:paramtypes", [custom_1.CustomService])
175
+ __metadata("design:paramtypes", [custom_1.CustomService,
176
+ config_service_1.ConfigService])
174
177
  ], RulesService);
175
178
  //# sourceMappingURL=rules.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rules.service.js","sourceRoot":"","sources":["../../../src/rules/rules.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,kCAAkC;AAClC,2BAAgC;AAChC,6BAA6B;AAE7B,6DAAsD;AACtD,iDAAqE;AACrE,sCAA0C;AAC1C,4DAAuD;AAGhD,IAAM,YAAY,oBAAlB,MAAM,YAAY;IAIvB,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAHxC,WAAM,GAAG,IAAI,eAAM,CAAC,cAAY,CAAC,IAAI,CAAC,CAAC;QAStD,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;YACtC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YAGH,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qCAAqC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxE,CAAC;QAAC,MAAM,CAAC;YAEP,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,iEAAiE,CAClE,CAAC;YACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAEO,eAAe;QAIrB,MAAM,UAAU,GAAG;YACjB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,sCAAsC,CAAC;YAC/D,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,mCAAmC,CAAC;YAC5D,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,uBAAuB,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC;SAC9C,CAAC;QAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChC,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAGD,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAEO,WAAW,CAAC,OAAe;QACjC,IAAI,CAAC;YACH,OAAO,IAAA,eAAU,EAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,YAAoB;QAEvC,IAAI,CAAC,IAAA,2BAAU,EAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,YAAY,EAAE,CAAC,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACxD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,YAAY,EAAE,EAAE,KAAK,CAAC,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,6BAA6B,YAAY,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,KAAK;iBACjB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;iBAChC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;YAEpC,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;YAClD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,MAAgB;QAC3C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAS,2BAAW,CAAC,CAAC;QAElD,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACxE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAErE,MAAM,gBAAgB,GAAG,2BAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAClD,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAChC,CAAC;QAEF,OAAO,CAAC,GAAG,gBAAgB,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,WAAW,CAAC,SAAiB;QAC3B,OAAQ,2BAAiC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEnC,MAAM,SAAS,GAAG,IAAA,gCAAiB,EAAC,MAAM,CAAC,CAAC;YAE5C,OAAO,EAAE,GAAI,SAAqC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAC1E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,+BAAgB,EAAE,CAAC;gBACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,IAAI,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBAClE,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAGvC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAE1E,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;YAEd,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC5B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC5C,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAClD,KAAK,EAAE,CAAC;gBACV,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,OAAO;oBACP,KAAK;oBACL,MAAM,EAAE,QAAQ;iBACjB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAGD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,aAAa,GAAG;YACpB,eAAe;YACf,kBAAkB;YAClB,2BAA2B;YAC3B,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;SACvC,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAChD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,OAAO,GAAa,EAAE,CAAC;gBAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;gBAEd,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAC5B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC5C,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBAClD,KAAK,EAAE,CAAC;oBACV,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACd,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;CACF,CAAA;AA5LY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;qCAKiC,sBAAa;GAJ9C,YAAY,CA4LxB"}
1
+ {"version":3,"file":"rules.service.js","sourceRoot":"","sources":["../../../src/rules/rules.service.ts"],"names":[],"mappings":"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"}