codingbuddy 2.4.2 → 3.0.2

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 (36) hide show
  1. package/dist/src/agent/agent.types.js +23 -0
  2. package/dist/src/agent/agent.types.js.map +1 -1
  3. package/dist/src/cli/init/gitignore.utils.d.ts +17 -0
  4. package/dist/src/cli/init/gitignore.utils.js +80 -0
  5. package/dist/src/cli/init/gitignore.utils.js.map +1 -0
  6. package/dist/src/cli/init/index.d.ts +3 -0
  7. package/dist/src/cli/init/index.js +7 -1
  8. package/dist/src/cli/init/index.js.map +1 -1
  9. package/dist/src/cli/init/init.command.js +10 -0
  10. package/dist/src/cli/init/init.command.js.map +1 -1
  11. package/dist/src/cli/init/init.constants.d.ts +2 -0
  12. package/dist/src/cli/init/init.constants.js +11 -0
  13. package/dist/src/cli/init/init.constants.js.map +1 -0
  14. package/dist/src/diagnostic/diagnostic-log.service.d.ts +19 -0
  15. package/dist/src/diagnostic/diagnostic-log.service.js +146 -0
  16. package/dist/src/diagnostic/diagnostic-log.service.js.map +1 -0
  17. package/dist/src/diagnostic/diagnostic.module.d.ts +2 -0
  18. package/dist/src/diagnostic/diagnostic.module.js +23 -0
  19. package/dist/src/diagnostic/diagnostic.module.js.map +1 -0
  20. package/dist/src/diagnostic/diagnostic.types.d.ts +21 -0
  21. package/dist/src/diagnostic/diagnostic.types.js +8 -0
  22. package/dist/src/diagnostic/diagnostic.types.js.map +1 -0
  23. package/dist/src/diagnostic/index.d.ts +3 -0
  24. package/dist/src/diagnostic/index.js +20 -0
  25. package/dist/src/diagnostic/index.js.map +1 -0
  26. package/dist/src/keyword/keyword.service.js +19 -0
  27. package/dist/src/keyword/keyword.service.js.map +1 -1
  28. package/dist/src/mcp/handlers/mode.handler.d.ts +3 -1
  29. package/dist/src/mcp/handlers/mode.handler.js +18 -4
  30. package/dist/src/mcp/handlers/mode.handler.js.map +1 -1
  31. package/dist/src/mcp/mcp.module.js +2 -0
  32. package/dist/src/mcp/mcp.module.js.map +1 -1
  33. package/dist/src/skill/i18n/keywords.js +658 -0
  34. package/dist/src/skill/i18n/keywords.js.map +1 -1
  35. package/dist/tsconfig.build.tsbuildinfo +1 -1
  36. package/package.json +3 -3
@@ -27,5 +27,28 @@ exports.FILE_PATTERN_SPECIALISTS = {
27
27
  hook: ['test-strategy-specialist', 'performance-specialist'],
28
28
  service: ['architecture-specialist', 'test-strategy-specialist'],
29
29
  util: ['test-strategy-specialist', 'code-quality-specialist'],
30
+ metrics: ['observability-specialist', 'performance-specialist'],
31
+ tracing: ['observability-specialist'],
32
+ monitoring: ['observability-specialist', 'devops-engineer'],
33
+ telemetry: ['observability-specialist'],
34
+ logging: ['observability-specialist'],
35
+ alert: ['observability-specialist'],
36
+ sli: ['observability-specialist'],
37
+ slo: ['observability-specialist'],
38
+ event: ['event-architecture-specialist'],
39
+ queue: ['event-architecture-specialist'],
40
+ message: ['event-architecture-specialist'],
41
+ saga: ['event-architecture-specialist'],
42
+ websocket: ['event-architecture-specialist', 'performance-specialist'],
43
+ consumer: ['event-architecture-specialist'],
44
+ producer: ['event-architecture-specialist'],
45
+ migration: ['migration-specialist', 'data-engineer'],
46
+ migrate: ['migration-specialist'],
47
+ upgrade: ['migration-specialist'],
48
+ legacy: ['migration-specialist', 'architecture-specialist'],
49
+ deprecate: ['migration-specialist', 'documentation-specialist'],
50
+ rollback: ['migration-specialist'],
51
+ cutover: ['migration-specialist'],
52
+ versioning: ['migration-specialist', 'integration-specialist'],
30
53
  };
31
54
  //# sourceMappingURL=agent.types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.types.js","sourceRoot":"","sources":["../../../src/agent/agent.types.ts"],"names":[],"mappings":";;;AAqDa,QAAA,wBAAwB,GAA6B;IAEhE,IAAI,EAAE,CAAC,qBAAqB,CAAC;IAC7B,KAAK,EAAE,CAAC,qBAAqB,EAAE,0BAA0B,CAAC;IAC1D,QAAQ,EAAE,CAAC,qBAAqB,CAAC;IACjC,KAAK,EAAE,CAAC,qBAAqB,CAAC;IAC9B,KAAK,EAAE,CAAC,qBAAqB,CAAC;IAC9B,GAAG,EAAE,CAAC,qBAAqB,CAAC;IAG5B,SAAS,EAAE;QACT,0BAA0B;QAC1B,gBAAgB;QAChB,wBAAwB;KACzB;IACD,MAAM,EAAE,CAAC,0BAA0B,EAAE,gBAAgB,CAAC;IACtD,IAAI,EAAE,CAAC,0BAA0B,EAAE,qBAAqB,CAAC;IACzD,KAAK,EAAE,CAAC,0BAA0B,CAAC;IACnC,KAAK,EAAE,CAAC,0BAA0B,EAAE,gBAAgB,CAAC;IAGrD,IAAI,EAAE;QACJ,gBAAgB;QAChB,0BAA0B;QAC1B,wBAAwB;KACzB;IACD,MAAM,EAAE,CAAC,gBAAgB,EAAE,0BAA0B,CAAC;IAGtD,GAAG,EAAE,CAAC,qBAAqB,EAAE,wBAAwB,CAAC;IACtD,IAAI,EAAE,CAAC,0BAA0B,EAAE,wBAAwB,CAAC;IAC5D,OAAO,EAAE,CAAC,yBAAyB,EAAE,0BAA0B,CAAC;IAChE,IAAI,EAAE,CAAC,0BAA0B,EAAE,yBAAyB,CAAC;CAC9D,CAAC"}
1
+ {"version":3,"file":"agent.types.js","sourceRoot":"","sources":["../../../src/agent/agent.types.ts"],"names":[],"mappings":";;;AAqDa,QAAA,wBAAwB,GAA6B;IAEhE,IAAI,EAAE,CAAC,qBAAqB,CAAC;IAC7B,KAAK,EAAE,CAAC,qBAAqB,EAAE,0BAA0B,CAAC;IAC1D,QAAQ,EAAE,CAAC,qBAAqB,CAAC;IACjC,KAAK,EAAE,CAAC,qBAAqB,CAAC;IAC9B,KAAK,EAAE,CAAC,qBAAqB,CAAC;IAC9B,GAAG,EAAE,CAAC,qBAAqB,CAAC;IAG5B,SAAS,EAAE;QACT,0BAA0B;QAC1B,gBAAgB;QAChB,wBAAwB;KACzB;IACD,MAAM,EAAE,CAAC,0BAA0B,EAAE,gBAAgB,CAAC;IACtD,IAAI,EAAE,CAAC,0BAA0B,EAAE,qBAAqB,CAAC;IACzD,KAAK,EAAE,CAAC,0BAA0B,CAAC;IACnC,KAAK,EAAE,CAAC,0BAA0B,EAAE,gBAAgB,CAAC;IAGrD,IAAI,EAAE;QACJ,gBAAgB;QAChB,0BAA0B;QAC1B,wBAAwB;KACzB;IACD,MAAM,EAAE,CAAC,gBAAgB,EAAE,0BAA0B,CAAC;IAGtD,GAAG,EAAE,CAAC,qBAAqB,EAAE,wBAAwB,CAAC;IACtD,IAAI,EAAE,CAAC,0BAA0B,EAAE,wBAAwB,CAAC;IAC5D,OAAO,EAAE,CAAC,yBAAyB,EAAE,0BAA0B,CAAC;IAChE,IAAI,EAAE,CAAC,0BAA0B,EAAE,yBAAyB,CAAC;IAG7D,OAAO,EAAE,CAAC,0BAA0B,EAAE,wBAAwB,CAAC;IAC/D,OAAO,EAAE,CAAC,0BAA0B,CAAC;IACrC,UAAU,EAAE,CAAC,0BAA0B,EAAE,iBAAiB,CAAC;IAC3D,SAAS,EAAE,CAAC,0BAA0B,CAAC;IACvC,OAAO,EAAE,CAAC,0BAA0B,CAAC;IACrC,KAAK,EAAE,CAAC,0BAA0B,CAAC;IACnC,GAAG,EAAE,CAAC,0BAA0B,CAAC;IACjC,GAAG,EAAE,CAAC,0BAA0B,CAAC;IAGjC,KAAK,EAAE,CAAC,+BAA+B,CAAC;IACxC,KAAK,EAAE,CAAC,+BAA+B,CAAC;IACxC,OAAO,EAAE,CAAC,+BAA+B,CAAC;IAC1C,IAAI,EAAE,CAAC,+BAA+B,CAAC;IACvC,SAAS,EAAE,CAAC,+BAA+B,EAAE,wBAAwB,CAAC;IACtE,QAAQ,EAAE,CAAC,+BAA+B,CAAC;IAC3C,QAAQ,EAAE,CAAC,+BAA+B,CAAC;IAG3C,SAAS,EAAE,CAAC,sBAAsB,EAAE,eAAe,CAAC;IACpD,OAAO,EAAE,CAAC,sBAAsB,CAAC;IACjC,OAAO,EAAE,CAAC,sBAAsB,CAAC;IACjC,MAAM,EAAE,CAAC,sBAAsB,EAAE,yBAAyB,CAAC;IAC3D,SAAS,EAAE,CAAC,sBAAsB,EAAE,0BAA0B,CAAC;IAC/D,QAAQ,EAAE,CAAC,sBAAsB,CAAC;IAClC,OAAO,EAAE,CAAC,sBAAsB,CAAC;IACjC,UAAU,EAAE,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;CAC/D,CAAC"}
@@ -0,0 +1,17 @@
1
+ export declare class GitignoreReadError extends Error {
2
+ readonly cause: unknown;
3
+ constructor(gitignorePath: string, cause: unknown);
4
+ }
5
+ export declare class GitignoreWriteError extends Error {
6
+ readonly cause: unknown;
7
+ constructor(gitignorePath: string, cause: unknown);
8
+ }
9
+ export interface GitignoreEntry {
10
+ pattern: string;
11
+ comment?: string;
12
+ }
13
+ export interface EnsureGitignoreResult {
14
+ added: string[];
15
+ alreadyExists: string[];
16
+ }
17
+ export declare function ensureGitignoreEntries(projectRoot: string, entries: GitignoreEntry[]): Promise<EnsureGitignoreResult>;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GitignoreWriteError = exports.GitignoreReadError = void 0;
4
+ exports.ensureGitignoreEntries = ensureGitignoreEntries;
5
+ const fs_1 = require("fs");
6
+ const promises_1 = require("fs/promises");
7
+ const path = require("path");
8
+ class GitignoreReadError extends Error {
9
+ constructor(gitignorePath, cause) {
10
+ const message = `Failed to read .gitignore at ${gitignorePath}`;
11
+ super(message);
12
+ this.name = 'GitignoreReadError';
13
+ this.cause = cause;
14
+ }
15
+ }
16
+ exports.GitignoreReadError = GitignoreReadError;
17
+ class GitignoreWriteError extends Error {
18
+ constructor(gitignorePath, cause) {
19
+ const message = `Failed to update .gitignore at ${gitignorePath}`;
20
+ super(message);
21
+ this.name = 'GitignoreWriteError';
22
+ this.cause = cause;
23
+ }
24
+ }
25
+ exports.GitignoreWriteError = GitignoreWriteError;
26
+ function patternExists(content, pattern) {
27
+ const lines = content.split('\n');
28
+ return lines.some(line => line.trim() === pattern);
29
+ }
30
+ async function ensureGitignoreEntries(projectRoot, entries) {
31
+ const gitignorePath = path.join(projectRoot, '.gitignore');
32
+ const result = {
33
+ added: [],
34
+ alreadyExists: [],
35
+ };
36
+ let existingContent = '';
37
+ if ((0, fs_1.existsSync)(gitignorePath)) {
38
+ try {
39
+ existingContent = await (0, promises_1.readFile)(gitignorePath, 'utf-8');
40
+ }
41
+ catch (error) {
42
+ throw new GitignoreReadError(gitignorePath, error);
43
+ }
44
+ }
45
+ for (const entry of entries) {
46
+ if (patternExists(existingContent, entry.pattern)) {
47
+ result.alreadyExists.push(entry.pattern);
48
+ }
49
+ else {
50
+ result.added.push(entry.pattern);
51
+ }
52
+ }
53
+ if (result.added.length === 0) {
54
+ return result;
55
+ }
56
+ const newLines = [];
57
+ const comment = entries.find(e => e.comment)?.comment;
58
+ if (comment) {
59
+ newLines.push(comment);
60
+ }
61
+ for (const pattern of result.added) {
62
+ newLines.push(pattern);
63
+ }
64
+ let finalContent = existingContent;
65
+ if (finalContent.length > 0 && !finalContent.endsWith('\n')) {
66
+ finalContent += '\n';
67
+ }
68
+ if (finalContent.length > 0) {
69
+ finalContent += '\n';
70
+ }
71
+ finalContent += newLines.join('\n') + '\n';
72
+ try {
73
+ await (0, promises_1.writeFile)(gitignorePath, finalContent, 'utf-8');
74
+ }
75
+ catch (error) {
76
+ throw new GitignoreWriteError(gitignorePath, error);
77
+ }
78
+ return result;
79
+ }
80
+ //# sourceMappingURL=gitignore.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitignore.utils.js","sourceRoot":"","sources":["../../../../src/cli/init/gitignore.utils.ts"],"names":[],"mappings":"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"}
@@ -3,3 +3,6 @@ export { buildSystemPrompt, buildAnalysisPrompt } from './prompt.builder';
3
3
  export { ConfigGenerator } from './config.generator';
4
4
  export { writeConfig, findExistingConfig, CONFIG_FILE_NAMES, } from './config.writer';
5
5
  export type { ConfigFormat, WriteConfigOptions } from './config.writer';
6
+ export { ensureGitignoreEntries, GitignoreReadError, GitignoreWriteError, } from './gitignore.utils';
7
+ export type { GitignoreEntry, EnsureGitignoreResult } from './gitignore.utils';
8
+ export { CODINGBUDDY_GITIGNORE_ENTRIES } from './init.constants';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CONFIG_FILE_NAMES = exports.findExistingConfig = exports.writeConfig = exports.ConfigGenerator = exports.buildAnalysisPrompt = exports.buildSystemPrompt = exports.getApiKey = exports.runInit = void 0;
3
+ exports.CODINGBUDDY_GITIGNORE_ENTRIES = exports.GitignoreWriteError = exports.GitignoreReadError = exports.ensureGitignoreEntries = exports.CONFIG_FILE_NAMES = exports.findExistingConfig = exports.writeConfig = exports.ConfigGenerator = exports.buildAnalysisPrompt = exports.buildSystemPrompt = exports.getApiKey = exports.runInit = void 0;
4
4
  var init_command_1 = require("./init.command");
5
5
  Object.defineProperty(exports, "runInit", { enumerable: true, get: function () { return init_command_1.runInit; } });
6
6
  Object.defineProperty(exports, "getApiKey", { enumerable: true, get: function () { return init_command_1.getApiKey; } });
@@ -13,4 +13,10 @@ var config_writer_1 = require("./config.writer");
13
13
  Object.defineProperty(exports, "writeConfig", { enumerable: true, get: function () { return config_writer_1.writeConfig; } });
14
14
  Object.defineProperty(exports, "findExistingConfig", { enumerable: true, get: function () { return config_writer_1.findExistingConfig; } });
15
15
  Object.defineProperty(exports, "CONFIG_FILE_NAMES", { enumerable: true, get: function () { return config_writer_1.CONFIG_FILE_NAMES; } });
16
+ var gitignore_utils_1 = require("./gitignore.utils");
17
+ Object.defineProperty(exports, "ensureGitignoreEntries", { enumerable: true, get: function () { return gitignore_utils_1.ensureGitignoreEntries; } });
18
+ Object.defineProperty(exports, "GitignoreReadError", { enumerable: true, get: function () { return gitignore_utils_1.GitignoreReadError; } });
19
+ Object.defineProperty(exports, "GitignoreWriteError", { enumerable: true, get: function () { return gitignore_utils_1.GitignoreWriteError; } });
20
+ var init_constants_1 = require("./init.constants");
21
+ Object.defineProperty(exports, "CODINGBUDDY_GITIGNORE_ENTRIES", { enumerable: true, get: function () { return init_constants_1.CODINGBUDDY_GITIGNORE_ENTRIES; } });
16
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/init/index.ts"],"names":[],"mappings":";;;AAAA,+CAAoD;AAA3C,uGAAA,OAAO,OAAA;AAAE,yGAAA,SAAS,OAAA;AAC3B,mDAA0E;AAAjE,mHAAA,iBAAiB,OAAA;AAAE,qHAAA,mBAAmB,OAAA;AAC/C,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,iDAIyB;AAHvB,4GAAA,WAAW,OAAA;AACX,mHAAA,kBAAkB,OAAA;AAClB,kHAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/init/index.ts"],"names":[],"mappings":";;;AAAA,+CAAoD;AAA3C,uGAAA,OAAO,OAAA;AAAE,yGAAA,SAAS,OAAA;AAC3B,mDAA0E;AAAjE,mHAAA,iBAAiB,OAAA;AAAE,qHAAA,mBAAmB,OAAA;AAC/C,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,iDAIyB;AAHvB,4GAAA,WAAW,OAAA;AACX,mHAAA,kBAAkB,OAAA;AAClB,kHAAA,iBAAiB,OAAA;AAGnB,qDAI2B;AAHzB,yHAAA,sBAAsB,OAAA;AACtB,qHAAA,kBAAkB,OAAA;AAClB,sHAAA,mBAAmB,OAAA;AAGrB,mDAAiE;AAAxD,+HAAA,6BAA6B,OAAA"}
@@ -8,6 +8,8 @@ const config_writer_1 = require("./config.writer");
8
8
  const console_1 = require("../utils/console");
9
9
  const templates_1 = require("./templates");
10
10
  const init_wizard_1 = require("./init.wizard");
11
+ const gitignore_utils_1 = require("./gitignore.utils");
12
+ const init_constants_1 = require("./init.constants");
11
13
  async function analyzeProjectWithLogging(projectRoot, console) {
12
14
  console.log.step('🔍', 'Analyzing project...');
13
15
  const analyzer = new analyzer_1.AnalyzerService();
@@ -55,6 +57,10 @@ async function runTemplateInit(options, console) {
55
57
  raw: true,
56
58
  });
57
59
  console.log.success(`Configuration saved to ${configPath}`);
60
+ const gitignoreResult = await (0, gitignore_utils_1.ensureGitignoreEntries)(options.projectRoot, init_constants_1.CODINGBUDDY_GITIGNORE_ENTRIES);
61
+ if (gitignoreResult.added.length > 0) {
62
+ console.log.step('📝', `Updated .gitignore: ${gitignoreResult.added.join(', ')}`);
63
+ }
58
64
  console.log.success('');
59
65
  console.log.step('✅', `codingbuddy.config.${options.format} created!`);
60
66
  console.log.info('');
@@ -90,6 +96,10 @@ async function runAiInit(options, console) {
90
96
  format: options.format,
91
97
  });
92
98
  console.log.success(`Configuration saved to ${configPath}`);
99
+ const gitignoreResult = await (0, gitignore_utils_1.ensureGitignoreEntries)(options.projectRoot, init_constants_1.CODINGBUDDY_GITIGNORE_ENTRIES);
100
+ if (gitignoreResult.added.length > 0) {
101
+ console.log.step('📝', `Updated .gitignore: ${gitignoreResult.added.join(', ')}`);
102
+ }
93
103
  console.log.success('');
94
104
  console.log.step('✅', `codingbuddy.config.${options.format} created!`);
95
105
  console.log.info('');
@@ -1 +1 @@
1
- {"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../../src/cli/init/init.command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../../src/cli/init/init.command.ts"],"names":[],"mappings":";;AAkDA,8BAUC;AA4JD,0BAmCC;AAnPD,6CAAuE;AACvE,yDAAqD;AACrD,mDAAkE;AAClE,8CAAsD;AACtD,2CAA+E;AAC/E,+CAAkE;AAClE,uDAA2D;AAC3D,qDAAiE;AAQjE,KAAK,UAAU,yBAAyB,CACtC,WAAmB,EACnB,OAA8C;IAE9C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,IAAI,0BAAe,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAE5D,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAGjD,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,QAAQ,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,CAAC;IAE3E,OAAO,QAAQ,CAAC;AAClB,CAAC;AAMD,SAAgB,SAAS,CAAC,OAAoB;IAC5C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACvC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAKD,KAAK,UAAU,eAAe,CAC5B,OAAoB,EACpB,OAA8C;IAG9C,MAAM,QAAQ,GAAG,MAAM,yBAAyB,CAC9C,OAAO,CAAC,WAAW,EACnB,OAAO,CACR,CAAC;IAGF,MAAM,UAAU,GAAG,MAAM,IAAA,2BAAa,EAAC;QACrC,QAAQ;QACR,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC,CAAC;IAGH,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,kCAAkC;SAC1C,CAAC;IACJ,CAAC;IAGD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,IAAA,gCAAkB,EAAC,UAAU,CAAC,CAAC;IAE9C,MAAM,aAAa,GACjB,OAAO,CAAC,MAAM,KAAK,MAAM;QACvB,CAAC,CAAC,IAAA,oCAAwB,EAAC,MAAM,CAAC;QAClC,CAAC,CAAC,IAAA,kCAAsB,EAAC,MAAM,CAAC,CAAC;IAGrC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,+BAA+B,CAAC,CAAC;IAExD,MAAM,UAAU,GAAG,MAAM,IAAA,2BAAW,EAAC,OAAO,CAAC,WAAW,EAAE,aAAa,EAAE;QACvE,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,GAAG,EAAE,IAAI;KACV,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;IAG5D,MAAM,eAAe,GAAG,MAAM,IAAA,wCAAsB,EAClD,OAAO,CAAC,WAAW,EACnB,8CAA6B,CAC9B,CAAC;IACF,IAAI,eAAe,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,IAAI,CACd,IAAI,EACJ,uBAAuB,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1D,CAAC;IACJ,CAAC;IAGD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAEhD,OAAO;QACL,OAAO,EAAE,IAAI;QACb,UAAU;KACX,CAAC;AACJ,CAAC;AAKD,KAAK,UAAU,SAAS,CACtB,OAAoB,EACpB,OAA8C;IAG9C,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,IAAI,CACd,qEAAqE,CACtE,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,IAAI,CACd,gEAAgE,CACjE,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC7C,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EACH,mFAAmF;SACtF,CAAC;IACJ,CAAC;IAGD,MAAM,QAAQ,GAAG,MAAM,yBAAyB,CAC9C,OAAO,CAAC,WAAW,EACnB,OAAO,CACR,CAAC;IAGF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,mCAAmC,CAAC,CAAC;IAE5D,MAAM,SAAS,GAAG,IAAI,kCAAe,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAElD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAG/C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,+BAA+B,CAAC,CAAC;IAExD,MAAM,UAAU,GAAG,MAAM,IAAA,2BAAW,EAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE;QAChE,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;IAG5D,MAAM,eAAe,GAAG,MAAM,IAAA,wCAAsB,EAClD,OAAO,CAAC,WAAW,EACnB,8CAA6B,CAC9B,CAAC;IACF,IAAI,eAAe,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,IAAI,CACd,IAAI,EACJ,uBAAuB,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1D,CAAC;IACJ,CAAC;IAGD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAE/D,OAAO;QACL,OAAO,EAAE,IAAI;QACb,UAAU;KACX,CAAC;AACJ,CAAC;AAQM,KAAK,UAAU,OAAO,CAAC,OAAoB;IAChD,MAAM,OAAO,GAAG,IAAA,4BAAkB,GAAE,CAAC;IAErC,IAAI,CAAC;QAEH,MAAM,cAAc,GAAG,MAAM,IAAA,kCAAkB,EAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACrE,IAAI,cAAc,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,sCAAsC,cAAc,EAAE,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC9C,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,sCAAsC,cAAc,EAAE;aAC9D,CAAC;QACJ,CAAC;QAED,IAAI,cAAc,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,cAAc,EAAE,CAAC,CAAC;QACrE,CAAC;QAGD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;QAGD,OAAO,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE3B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,OAAO;SACf,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { GitignoreEntry } from './gitignore.utils';
2
+ export declare const CODINGBUDDY_GITIGNORE_ENTRIES: GitignoreEntry[];
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CODINGBUDDY_GITIGNORE_ENTRIES = void 0;
4
+ exports.CODINGBUDDY_GITIGNORE_ENTRIES = [
5
+ {
6
+ pattern: 'docs/codingbuddy/context.md',
7
+ comment: '# Codingbuddy (local workspace)',
8
+ },
9
+ { pattern: 'docs/codingbuddy/sessions/' },
10
+ ];
11
+ //# sourceMappingURL=init.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.constants.js","sourceRoot":"","sources":["../../../../src/cli/init/init.constants.ts"],"names":[],"mappings":";;;AAca,QAAA,6BAA6B,GAAqB;IAC7D;QACE,OAAO,EAAE,6BAA6B;QACtC,OAAO,EAAE,iCAAiC;KAC3C;IACD,EAAE,OAAO,EAAE,4BAA4B,EAAE;CAC1C,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { ConfigService } from '../config/config.service';
2
+ import { type DiagnosticLogEntry, type LogOperationResult } from './diagnostic.types';
3
+ export declare class DiagnosticLogService {
4
+ private readonly configService;
5
+ private readonly logger;
6
+ constructor(configService: ConfigService);
7
+ getLogDir(): string;
8
+ getLogFilePath(): string;
9
+ private ensureLogDir;
10
+ private loadOrCreateLogFile;
11
+ log(level: DiagnosticLogEntry['level'], category: string, message: string, context?: Record<string, unknown>): Promise<LogOperationResult>;
12
+ debug(category: string, message: string, context?: Record<string, unknown>): Promise<LogOperationResult>;
13
+ info(category: string, message: string, context?: Record<string, unknown>): Promise<LogOperationResult>;
14
+ warn(category: string, message: string, context?: Record<string, unknown>): Promise<LogOperationResult>;
15
+ error(category: string, message: string, context?: Record<string, unknown>): Promise<LogOperationResult>;
16
+ logConfigLoading(success: boolean, projectRoot: string, configLanguage?: string, error?: string): Promise<LogOperationResult>;
17
+ readLogs(): Promise<DiagnosticLogEntry[]>;
18
+ clearLogs(): Promise<LogOperationResult>;
19
+ }
@@ -0,0 +1,146 @@
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 DiagnosticLogService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.DiagnosticLogService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const fs = require("fs/promises");
16
+ const fs_1 = require("fs");
17
+ const path = require("path");
18
+ const config_service_1 = require("../config/config.service");
19
+ const diagnostic_types_1 = require("./diagnostic.types");
20
+ let DiagnosticLogService = DiagnosticLogService_1 = class DiagnosticLogService {
21
+ constructor(configService) {
22
+ this.configService = configService;
23
+ this.logger = new common_1.Logger(DiagnosticLogService_1.name);
24
+ }
25
+ getLogDir() {
26
+ const projectRoot = this.configService.getProjectRoot();
27
+ return path.join(projectRoot, diagnostic_types_1.LOG_DIR_PATH);
28
+ }
29
+ getLogFilePath() {
30
+ return path.join(this.getLogDir(), diagnostic_types_1.LOG_FILE_NAME);
31
+ }
32
+ ensureLogDir() {
33
+ const logDir = this.getLogDir();
34
+ if (!(0, fs_1.existsSync)(logDir)) {
35
+ (0, fs_1.mkdirSync)(logDir, { recursive: true });
36
+ this.logger.log(`Created log directory: ${logDir}`);
37
+ }
38
+ }
39
+ async loadOrCreateLogFile() {
40
+ const filePath = this.getLogFilePath();
41
+ if ((0, fs_1.existsSync)(filePath)) {
42
+ try {
43
+ const content = await fs.readFile(filePath, 'utf-8');
44
+ const logFile = JSON.parse(content);
45
+ if (logFile.version === diagnostic_types_1.LOG_SCHEMA_VERSION) {
46
+ return logFile;
47
+ }
48
+ this.logger.warn(`Log schema version mismatch, creating new log file`);
49
+ }
50
+ catch {
51
+ this.logger.warn(`Failed to parse log file, creating new one`);
52
+ }
53
+ }
54
+ return {
55
+ version: diagnostic_types_1.LOG_SCHEMA_VERSION,
56
+ createdAt: new Date().toISOString(),
57
+ entries: [],
58
+ };
59
+ }
60
+ async log(level, category, message, context) {
61
+ try {
62
+ this.ensureLogDir();
63
+ const logFile = await this.loadOrCreateLogFile();
64
+ const entry = {
65
+ timestamp: new Date().toISOString(),
66
+ level,
67
+ category,
68
+ message,
69
+ context,
70
+ };
71
+ logFile.entries.push(entry);
72
+ if (logFile.entries.length > diagnostic_types_1.MAX_LOG_ENTRIES) {
73
+ logFile.entries = logFile.entries.slice(-diagnostic_types_1.MAX_LOG_ENTRIES);
74
+ }
75
+ const filePath = this.getLogFilePath();
76
+ await fs.writeFile(filePath, JSON.stringify(logFile, null, 2), 'utf-8');
77
+ return { success: true, filePath };
78
+ }
79
+ catch (error) {
80
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
81
+ this.logger.error(`Failed to write diagnostic log: ${errorMessage}`);
82
+ return { success: false, error: errorMessage };
83
+ }
84
+ }
85
+ async debug(category, message, context) {
86
+ return this.log('debug', category, message, context);
87
+ }
88
+ async info(category, message, context) {
89
+ return this.log('info', category, message, context);
90
+ }
91
+ async warn(category, message, context) {
92
+ return this.log('warn', category, message, context);
93
+ }
94
+ async error(category, message, context) {
95
+ return this.log('error', category, message, context);
96
+ }
97
+ async logConfigLoading(success, projectRoot, configLanguage, error) {
98
+ const level = success ? 'info' : 'warn';
99
+ const message = success
100
+ ? `Config loaded successfully`
101
+ : `Config loading failed or incomplete`;
102
+ return this.log(level, 'config', message, {
103
+ projectRoot,
104
+ configLanguage: configLanguage || null,
105
+ error: error || null,
106
+ timestamp: new Date().toISOString(),
107
+ });
108
+ }
109
+ async readLogs() {
110
+ try {
111
+ const filePath = this.getLogFilePath();
112
+ if (!(0, fs_1.existsSync)(filePath)) {
113
+ return [];
114
+ }
115
+ const content = await fs.readFile(filePath, 'utf-8');
116
+ const logFile = JSON.parse(content);
117
+ return logFile.entries;
118
+ }
119
+ catch (error) {
120
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
121
+ this.logger.error(`Failed to read diagnostic logs: ${errorMessage}`);
122
+ return [];
123
+ }
124
+ }
125
+ async clearLogs() {
126
+ try {
127
+ const filePath = this.getLogFilePath();
128
+ if ((0, fs_1.existsSync)(filePath)) {
129
+ await fs.unlink(filePath);
130
+ this.logger.log(`Cleared diagnostic log file: ${filePath}`);
131
+ }
132
+ return { success: true, filePath };
133
+ }
134
+ catch (error) {
135
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
136
+ this.logger.error(`Failed to clear diagnostic logs: ${errorMessage}`);
137
+ return { success: false, error: errorMessage };
138
+ }
139
+ }
140
+ };
141
+ exports.DiagnosticLogService = DiagnosticLogService;
142
+ exports.DiagnosticLogService = DiagnosticLogService = DiagnosticLogService_1 = __decorate([
143
+ (0, common_1.Injectable)(),
144
+ __metadata("design:paramtypes", [config_service_1.ConfigService])
145
+ ], DiagnosticLogService);
146
+ //# sourceMappingURL=diagnostic-log.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostic-log.service.js","sourceRoot":"","sources":["../../../src/diagnostic/diagnostic-log.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare class DiagnosticModule {
2
+ }
@@ -0,0 +1,23 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.DiagnosticModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const diagnostic_log_service_1 = require("./diagnostic-log.service");
12
+ const config_module_1 = require("../config/config.module");
13
+ let DiagnosticModule = class DiagnosticModule {
14
+ };
15
+ exports.DiagnosticModule = DiagnosticModule;
16
+ exports.DiagnosticModule = DiagnosticModule = __decorate([
17
+ (0, common_1.Module)({
18
+ imports: [config_module_1.CodingBuddyConfigModule],
19
+ providers: [diagnostic_log_service_1.DiagnosticLogService],
20
+ exports: [diagnostic_log_service_1.DiagnosticLogService],
21
+ })
22
+ ], DiagnosticModule);
23
+ //# sourceMappingURL=diagnostic.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostic.module.js","sourceRoot":"","sources":["../../../src/diagnostic/diagnostic.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qEAAgE;AAChE,2DAAkE;AAO3D,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAAG,CAAA;AAAnB,4CAAgB;2BAAhB,gBAAgB;IAL5B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,uCAAuB,CAAC;QAClC,SAAS,EAAE,CAAC,6CAAoB,CAAC;QACjC,OAAO,EAAE,CAAC,6CAAoB,CAAC;KAChC,CAAC;GACW,gBAAgB,CAAG"}
@@ -0,0 +1,21 @@
1
+ export interface DiagnosticLogEntry {
2
+ timestamp: string;
3
+ level: 'debug' | 'info' | 'warn' | 'error';
4
+ category: string;
5
+ message: string;
6
+ context?: Record<string, unknown>;
7
+ }
8
+ export interface DiagnosticLogFile {
9
+ version: string;
10
+ createdAt: string;
11
+ entries: DiagnosticLogEntry[];
12
+ }
13
+ export interface LogOperationResult {
14
+ success: boolean;
15
+ filePath?: string;
16
+ error?: string;
17
+ }
18
+ export declare const LOG_DIR_PATH = "docs/codingbuddy/log";
19
+ export declare const LOG_FILE_NAME = "diagnostic.log";
20
+ export declare const LOG_SCHEMA_VERSION = "1.0.0";
21
+ export declare const MAX_LOG_ENTRIES = 1000;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAX_LOG_ENTRIES = exports.LOG_SCHEMA_VERSION = exports.LOG_FILE_NAME = exports.LOG_DIR_PATH = void 0;
4
+ exports.LOG_DIR_PATH = 'docs/codingbuddy/log';
5
+ exports.LOG_FILE_NAME = 'diagnostic.log';
6
+ exports.LOG_SCHEMA_VERSION = '1.0.0';
7
+ exports.MAX_LOG_ENTRIES = 1000;
8
+ //# sourceMappingURL=diagnostic.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostic.types.js","sourceRoot":"","sources":["../../../src/diagnostic/diagnostic.types.ts"],"names":[],"mappings":";;;AAgCa,QAAA,YAAY,GAAG,sBAAsB,CAAC;AAKtC,QAAA,aAAa,GAAG,gBAAgB,CAAC;AAKjC,QAAA,kBAAkB,GAAG,OAAO,CAAC;AAK7B,QAAA,eAAe,GAAG,IAAI,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './diagnostic.module';
2
+ export * from './diagnostic-log.service';
3
+ export * from './diagnostic.types';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./diagnostic.module"), exports);
18
+ __exportStar(require("./diagnostic-log.service"), exports);
19
+ __exportStar(require("./diagnostic.types"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/diagnostic/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,2DAAyC;AACzC,qDAAmC"}
@@ -21,6 +21,7 @@ const DEFAULT_CONFIG = {
21
21
  defaultSpecialists: [
22
22
  'architecture-specialist',
23
23
  'test-strategy-specialist',
24
+ 'migration-specialist',
24
25
  ],
25
26
  },
26
27
  ACT: {
@@ -50,6 +51,9 @@ const DEFAULT_CONFIG = {
50
51
  'accessibility-specialist',
51
52
  'performance-specialist',
52
53
  'code-quality-specialist',
54
+ 'observability-specialist',
55
+ 'event-architecture-specialist',
56
+ 'migration-specialist',
53
57
  ],
54
58
  },
55
59
  AUTO: {
@@ -65,6 +69,9 @@ const DEFAULT_CONFIG = {
65
69
  'test-strategy-specialist',
66
70
  'security-specialist',
67
71
  'code-quality-specialist',
72
+ 'observability-specialist',
73
+ 'event-architecture-specialist',
74
+ 'migration-specialist',
68
75
  ],
69
76
  },
70
77
  },
@@ -403,5 +410,17 @@ KeywordService.CONTEXT_SPECIALIST_PATTERNS = [
403
410
  pattern: /외부\s*서비스|external\s*(api|service)|webhook|웹훅|third-?party|circuit\s*breaker|retry\s*pattern|API\s*integration|서드파티|연동|SDK\s*wrapper/i,
404
411
  specialist: 'integration-specialist',
405
412
  },
413
+ {
414
+ pattern: /observability|관측성|distributed\s*trac|분산\s*추적|SLI|SLO|error\s*budget|OpenTelemetry|otel|Prometheus|Grafana|Jaeger|Zipkin|log\s*aggregat|로그\s*수집|alerting\s*strateg|알림\s*전략|메트릭\s*수집|metric\s*collect|tracing\s*infra|monitoring|대시보드|dashboard|logs?\s*manag/i,
415
+ specialist: 'observability-specialist',
416
+ },
417
+ {
418
+ pattern: /event[- ]?driven|이벤트\s*기반|message\s*queue|메시지\s*큐|Kafka|RabbitMQ|SQS|Azure\s*Service\s*Bus|event\s*sourc|CQRS|saga\s*pattern|분산\s*트랜잭션|distributed\s*transaction|pub\/?sub|dead\s*letter|DLQ|websocket|SSE|server[- ]?sent|real[- ]?time|실시간|async\s*messag|비동기\s*통신/i,
419
+ specialist: 'event-architecture-specialist',
420
+ },
421
+ {
422
+ pattern: /migration|마이그레이션|migrate|이전|legacy\s*(system|code|moderniz)|레거시|upgrade\s*(framework|version|library)|업그레이드|strangler\s*fig|branch\s*by\s*abstraction|blue[- ]?green|canary\s*(deploy|release)|rollback|롤백|api\s*version|deprecat|dual[- ]?write|backward\s*compatib|호환성|zero[- ]?downtime|data\s*migration|데이터\s*마이그레이션|schema\s*migration|스키마\s*변경|cutover|전환/i,
423
+ specialist: 'migration-specialist',
424
+ },
406
425
  ];
407
426
  //# sourceMappingURL=keyword.service.js.map