@evolith/smart-cli 0.0.1-beta

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 (241) hide show
  1. package/ARCHITECTURE.md +121 -0
  2. package/README.es.md +425 -0
  3. package/README.md +419 -0
  4. package/dist/app.module.d.ts +2 -0
  5. package/dist/app.module.js +59 -0
  6. package/dist/app.module.js.map +1 -0
  7. package/dist/application/services/index.d.ts +54 -0
  8. package/dist/application/services/index.js +307 -0
  9. package/dist/application/services/index.js.map +1 -0
  10. package/dist/application/services/services.test.d.ts +1 -0
  11. package/dist/application/services/services.test.js +176 -0
  12. package/dist/application/services/services.test.js.map +1 -0
  13. package/dist/application/use-cases/validate-satellite.use-case.d.ts +18 -0
  14. package/dist/application/use-cases/validate-satellite.use-case.js +92 -0
  15. package/dist/application/use-cases/validate-satellite.use-case.js.map +1 -0
  16. package/dist/application/use-cases/validate-satellite.use-case.spec.d.ts +1 -0
  17. package/dist/application/use-cases/validate-satellite.use-case.spec.js +102 -0
  18. package/dist/application/use-cases/validate-satellite.use-case.spec.js.map +1 -0
  19. package/dist/commands/adr/adr.command.d.ts +28 -0
  20. package/dist/commands/adr/adr.command.js +357 -0
  21. package/dist/commands/adr/adr.command.js.map +1 -0
  22. package/dist/commands/architecture/scaffold.command.d.ts +7 -0
  23. package/dist/commands/architecture/scaffold.command.js +162 -0
  24. package/dist/commands/architecture/scaffold.command.js.map +1 -0
  25. package/dist/commands/commands.test.d.ts +1 -0
  26. package/dist/commands/commands.test.js +131 -0
  27. package/dist/commands/commands.test.js.map +1 -0
  28. package/dist/commands/completion/completion.command.d.ts +20 -0
  29. package/dist/commands/completion/completion.command.js +215 -0
  30. package/dist/commands/completion/completion.command.js.map +1 -0
  31. package/dist/commands/docs/docs.command.d.ts +9 -0
  32. package/dist/commands/docs/docs.command.js +77 -0
  33. package/dist/commands/docs/docs.command.js.map +1 -0
  34. package/dist/commands/history/history.command.d.ts +29 -0
  35. package/dist/commands/history/history.command.js +268 -0
  36. package/dist/commands/history/history.command.js.map +1 -0
  37. package/dist/commands/init/agents.command.d.ts +22 -0
  38. package/dist/commands/init/agents.command.js +502 -0
  39. package/dist/commands/init/agents.command.js.map +1 -0
  40. package/dist/commands/init/init.command.d.ts +20 -0
  41. package/dist/commands/init/init.command.js +329 -0
  42. package/dist/commands/init/init.command.js.map +1 -0
  43. package/dist/commands/init/upgrade.command.d.ts +9 -0
  44. package/dist/commands/init/upgrade.command.js +77 -0
  45. package/dist/commands/init/upgrade.command.js.map +1 -0
  46. package/dist/commands/mcp/mcp-serve.command.d.ts +15 -0
  47. package/dist/commands/mcp/mcp-serve.command.js +106 -0
  48. package/dist/commands/mcp/mcp-serve.command.js.map +1 -0
  49. package/dist/commands/sdlc/generate-domain.command.d.ts +5 -0
  50. package/dist/commands/sdlc/generate-domain.command.js +55 -0
  51. package/dist/commands/sdlc/generate-domain.command.js.map +1 -0
  52. package/dist/commands/sdlc/handoff.command.d.ts +22 -0
  53. package/dist/commands/sdlc/handoff.command.js +273 -0
  54. package/dist/commands/sdlc/handoff.command.js.map +1 -0
  55. package/dist/commands/sdlc/sdlc.command.d.ts +4 -0
  56. package/dist/commands/sdlc/sdlc.command.js +34 -0
  57. package/dist/commands/sdlc/sdlc.command.js.map +1 -0
  58. package/dist/commands/standards/standards.command.d.ts +27 -0
  59. package/dist/commands/standards/standards.command.js +308 -0
  60. package/dist/commands/standards/standards.command.js.map +1 -0
  61. package/dist/commands/validate/validate.command.d.ts +19 -0
  62. package/dist/commands/validate/validate.command.js +231 -0
  63. package/dist/commands/validate/validate.command.js.map +1 -0
  64. package/dist/config/runtimes.json +196 -0
  65. package/dist/config/tool-catalog.json +343 -0
  66. package/dist/core/abstractions/index.d.ts +6 -0
  67. package/dist/core/abstractions/index.js +23 -0
  68. package/dist/core/abstractions/index.js.map +1 -0
  69. package/dist/core/abstractions/interfaces.d.ts +60 -0
  70. package/dist/core/abstractions/interfaces.js +5 -0
  71. package/dist/core/abstractions/interfaces.js.map +1 -0
  72. package/dist/core/abstractions/providers/config-parser.provider.d.ts +15 -0
  73. package/dist/core/abstractions/providers/config-parser.provider.js +68 -0
  74. package/dist/core/abstractions/providers/config-parser.provider.js.map +1 -0
  75. package/dist/core/abstractions/providers/logger.provider.d.ts +10 -0
  76. package/dist/core/abstractions/providers/logger.provider.js +84 -0
  77. package/dist/core/abstractions/providers/logger.provider.js.map +1 -0
  78. package/dist/core/abstractions/providers/mock-filesystem.provider.d.ts +30 -0
  79. package/dist/core/abstractions/providers/mock-filesystem.provider.js +122 -0
  80. package/dist/core/abstractions/providers/mock-filesystem.provider.js.map +1 -0
  81. package/dist/core/abstractions/providers/node-filesystem.provider.d.ts +19 -0
  82. package/dist/core/abstractions/providers/node-filesystem.provider.js +104 -0
  83. package/dist/core/abstractions/providers/node-filesystem.provider.js.map +1 -0
  84. package/dist/core/architecture/nx-workspace.strategy.d.ts +11 -0
  85. package/dist/core/architecture/nx-workspace.strategy.js +107 -0
  86. package/dist/core/architecture/nx-workspace.strategy.js.map +1 -0
  87. package/dist/core/architecture/workspace-manager.strategy.d.ts +7 -0
  88. package/dist/core/architecture/workspace-manager.strategy.js +3 -0
  89. package/dist/core/architecture/workspace-manager.strategy.js.map +1 -0
  90. package/dist/core/config/config.service.d.ts +15 -0
  91. package/dist/core/config/config.service.js +55 -0
  92. package/dist/core/config/config.service.js.map +1 -0
  93. package/dist/core/config/config.service.spec.d.ts +1 -0
  94. package/dist/core/config/config.service.spec.js +43 -0
  95. package/dist/core/config/config.service.spec.js.map +1 -0
  96. package/dist/core/di/container.d.ts +25 -0
  97. package/dist/core/di/container.js +87 -0
  98. package/dist/core/di/container.js.map +1 -0
  99. package/dist/core/di/container.spec.d.ts +1 -0
  100. package/dist/core/di/container.spec.js +137 -0
  101. package/dist/core/di/container.spec.js.map +1 -0
  102. package/dist/core/errors/index.d.ts +26 -0
  103. package/dist/core/errors/index.js +67 -0
  104. package/dist/core/errors/index.js.map +1 -0
  105. package/dist/core/filesystem/file-manager.service.d.ts +4 -0
  106. package/dist/core/filesystem/file-manager.service.js +96 -0
  107. package/dist/core/filesystem/file-manager.service.js.map +1 -0
  108. package/dist/core/filesystem/file-manager.service.spec.d.ts +1 -0
  109. package/dist/core/filesystem/file-manager.service.spec.js +103 -0
  110. package/dist/core/filesystem/file-manager.service.spec.js.map +1 -0
  111. package/dist/core/mcp/mcp-server.service.d.ts +7 -0
  112. package/dist/core/mcp/mcp-server.service.js +31 -0
  113. package/dist/core/mcp/mcp-server.service.js.map +1 -0
  114. package/dist/core/mcp/metrics.service.d.ts +37 -0
  115. package/dist/core/mcp/metrics.service.js +72 -0
  116. package/dist/core/mcp/metrics.service.js.map +1 -0
  117. package/dist/core/mcp/prompts/index.d.ts +22 -0
  118. package/dist/core/mcp/prompts/index.js +175 -0
  119. package/dist/core/mcp/prompts/index.js.map +1 -0
  120. package/dist/core/mcp/resources/index.d.ts +11 -0
  121. package/dist/core/mcp/resources/index.js +193 -0
  122. package/dist/core/mcp/resources/index.js.map +1 -0
  123. package/dist/core/mcp/server.d.ts +25 -0
  124. package/dist/core/mcp/server.js +413 -0
  125. package/dist/core/mcp/server.js.map +1 -0
  126. package/dist/core/mcp/tools/agent.d.ts +41 -0
  127. package/dist/core/mcp/tools/agent.js +195 -0
  128. package/dist/core/mcp/tools/agent.js.map +1 -0
  129. package/dist/core/mcp/tools/architecture.d.ts +27 -0
  130. package/dist/core/mcp/tools/architecture.js +166 -0
  131. package/dist/core/mcp/tools/architecture.js.map +1 -0
  132. package/dist/core/mcp/tools/sdlc.d.ts +32 -0
  133. package/dist/core/mcp/tools/sdlc.js +189 -0
  134. package/dist/core/mcp/tools/sdlc.js.map +1 -0
  135. package/dist/core/mcp/tools/tool-utils.d.ts +4 -0
  136. package/dist/core/mcp/tools/tool-utils.js +18 -0
  137. package/dist/core/mcp/tools/tool-utils.js.map +1 -0
  138. package/dist/core/mcp/tools/validate.d.ts +18 -0
  139. package/dist/core/mcp/tools/validate.js +56 -0
  140. package/dist/core/mcp/tools/validate.js.map +1 -0
  141. package/dist/core/mcp/watcher.service.d.ts +8 -0
  142. package/dist/core/mcp/watcher.service.js +82 -0
  143. package/dist/core/mcp/watcher.service.js.map +1 -0
  144. package/dist/core/mcp/watcher.service.spec.d.ts +1 -0
  145. package/dist/core/mcp/watcher.service.spec.js +70 -0
  146. package/dist/core/mcp/watcher.service.spec.js.map +1 -0
  147. package/dist/core/observability/command-watcher.d.ts +45 -0
  148. package/dist/core/observability/command-watcher.js +168 -0
  149. package/dist/core/observability/command-watcher.js.map +1 -0
  150. package/dist/core/observability/error-reporter.d.ts +47 -0
  151. package/dist/core/observability/error-reporter.js +163 -0
  152. package/dist/core/observability/error-reporter.js.map +1 -0
  153. package/dist/core/observability/index.d.ts +4 -0
  154. package/dist/core/observability/index.js +24 -0
  155. package/dist/core/observability/index.js.map +1 -0
  156. package/dist/core/observability/observability.test.d.ts +1 -0
  157. package/dist/core/observability/observability.test.js +224 -0
  158. package/dist/core/observability/observability.test.js.map +1 -0
  159. package/dist/core/observability/structured-logger.d.ts +53 -0
  160. package/dist/core/observability/structured-logger.js +123 -0
  161. package/dist/core/observability/structured-logger.js.map +1 -0
  162. package/dist/core/observability/timing.d.ts +23 -0
  163. package/dist/core/observability/timing.js +140 -0
  164. package/dist/core/observability/timing.js.map +1 -0
  165. package/dist/core/services/command-executor.service.d.ts +3 -0
  166. package/dist/core/services/command-executor.service.js +12 -0
  167. package/dist/core/services/command-executor.service.js.map +1 -0
  168. package/dist/core/services/command-history.service.d.ts +38 -0
  169. package/dist/core/services/command-history.service.js +146 -0
  170. package/dist/core/services/command-history.service.js.map +1 -0
  171. package/dist/core/services/command-providers.d.ts +1 -0
  172. package/dist/core/services/command-providers.js +17 -0
  173. package/dist/core/services/command-providers.js.map +1 -0
  174. package/dist/core/services/runtime-catalog.service.d.ts +2 -0
  175. package/dist/core/services/runtime-catalog.service.js +7 -0
  176. package/dist/core/services/runtime-catalog.service.js.map +1 -0
  177. package/dist/core/sync/sync.service.d.ts +4 -0
  178. package/dist/core/sync/sync.service.js +81 -0
  179. package/dist/core/sync/sync.service.js.map +1 -0
  180. package/dist/core/sync/sync.service.spec.d.ts +1 -0
  181. package/dist/core/sync/sync.service.spec.js +63 -0
  182. package/dist/core/sync/sync.service.spec.js.map +1 -0
  183. package/dist/core/validators/ruleset-validator.service.d.ts +56 -0
  184. package/dist/core/validators/ruleset-validator.service.js +263 -0
  185. package/dist/core/validators/ruleset-validator.service.js.map +1 -0
  186. package/dist/core/validators/ruleset-validator.service.spec.d.ts +1 -0
  187. package/dist/core/validators/ruleset-validator.service.spec.js +121 -0
  188. package/dist/core/validators/ruleset-validator.service.spec.js.map +1 -0
  189. package/dist/domain/entities/index.d.ts +72 -0
  190. package/dist/domain/entities/index.js +119 -0
  191. package/dist/domain/entities/index.js.map +1 -0
  192. package/dist/domain/interfaces.d.ts +224 -0
  193. package/dist/domain/interfaces.js +3 -0
  194. package/dist/domain/interfaces.js.map +1 -0
  195. package/dist/domain/services/adr.service.d.ts +50 -0
  196. package/dist/domain/services/adr.service.js +125 -0
  197. package/dist/domain/services/adr.service.js.map +1 -0
  198. package/dist/domain/services/agent-registry.service.d.ts +26 -0
  199. package/dist/domain/services/agent-registry.service.js +152 -0
  200. package/dist/domain/services/agent-registry.service.js.map +1 -0
  201. package/dist/domain/services/index.d.ts +33 -0
  202. package/dist/domain/services/index.js +126 -0
  203. package/dist/domain/services/index.js.map +1 -0
  204. package/dist/domain/services/services.test.d.ts +1 -0
  205. package/dist/domain/services/services.test.js +236 -0
  206. package/dist/domain/services/services.test.js.map +1 -0
  207. package/dist/domain/services/standards.service.d.ts +47 -0
  208. package/dist/domain/services/standards.service.js +129 -0
  209. package/dist/domain/services/standards.service.js.map +1 -0
  210. package/dist/domain/services/tool-usage-telemetry.service.d.ts +46 -0
  211. package/dist/domain/services/tool-usage-telemetry.service.js +181 -0
  212. package/dist/domain/services/tool-usage-telemetry.service.js.map +1 -0
  213. package/dist/infrastructure/catalog/catalog-loader.d.ts +22 -0
  214. package/dist/infrastructure/catalog/catalog-loader.js +135 -0
  215. package/dist/infrastructure/catalog/catalog-loader.js.map +1 -0
  216. package/dist/infrastructure/catalog/catalog-loader.test.d.ts +1 -0
  217. package/dist/infrastructure/catalog/catalog-loader.test.js +184 -0
  218. package/dist/infrastructure/catalog/catalog-loader.test.js.map +1 -0
  219. package/dist/infrastructure/cli/command-executor.d.ts +20 -0
  220. package/dist/infrastructure/cli/command-executor.js +109 -0
  221. package/dist/infrastructure/cli/command-executor.js.map +1 -0
  222. package/dist/infrastructure/cli/command-executor.test.d.ts +1 -0
  223. package/dist/infrastructure/cli/command-executor.test.js +98 -0
  224. package/dist/infrastructure/cli/command-executor.test.js.map +1 -0
  225. package/dist/infrastructure/cli/providers/index.d.ts +52 -0
  226. package/dist/infrastructure/cli/providers/index.js +175 -0
  227. package/dist/infrastructure/cli/providers/index.js.map +1 -0
  228. package/dist/infrastructure/formatters/output-formatter.service.d.ts +28 -0
  229. package/dist/infrastructure/formatters/output-formatter.service.js +198 -0
  230. package/dist/infrastructure/formatters/output-formatter.service.js.map +1 -0
  231. package/dist/main.d.ts +2 -0
  232. package/dist/main.js +10 -0
  233. package/dist/main.js.map +1 -0
  234. package/dist/test/mocks/index.d.ts +44 -0
  235. package/dist/test/mocks/index.js +135 -0
  236. package/dist/test/mocks/index.js.map +1 -0
  237. package/package.json +80 -0
  238. package/shell/completion.bash +85 -0
  239. package/shell/completion.fish +72 -0
  240. package/shell/completion.zsh +83 -0
  241. package/templates/evolith.yaml.example +45 -0
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const validate_satellite_use_case_1 = require("./validate-satellite.use-case");
4
+ jest.mock('../../core/validators/ruleset-validator.service');
5
+ describe('ValidateSatelliteUseCase', () => {
6
+ let mockValidator;
7
+ let useCase;
8
+ const mockResult = {
9
+ status: 'passed',
10
+ rulesChecked: 5,
11
+ issues: [],
12
+ coreRef: { version: '1.0.0', path: '/core' },
13
+ timestamp: '2024-01-01T00:00:00.000Z',
14
+ };
15
+ beforeEach(() => {
16
+ mockValidator = {
17
+ validate: jest.fn().mockResolvedValue(mockResult),
18
+ loadRulesetById: jest.fn().mockResolvedValue([]),
19
+ };
20
+ useCase = new validate_satellite_use_case_1.ValidateSatelliteUseCase(mockValidator);
21
+ });
22
+ describe('execute', () => {
23
+ it('should validate satellite with default options', async () => {
24
+ const { result } = await useCase.execute({
25
+ satellitePath: '/satellite',
26
+ });
27
+ expect(result).toBe(mockResult);
28
+ expect(mockValidator.validate).toHaveBeenCalledWith('/satellite', undefined);
29
+ });
30
+ it('should validate with custom core path', async () => {
31
+ const { result } = await useCase.execute({
32
+ satellitePath: '/satellite',
33
+ corePath: '/custom-core',
34
+ });
35
+ expect(mockValidator.validate).toHaveBeenCalledWith('/satellite', '/custom-core');
36
+ });
37
+ it('should load specific ruleset when rulesetId provided', async () => {
38
+ const resultWithRuleset = {
39
+ ...mockResult,
40
+ issues: [{ ruleId: 'TEST', severity: 'MUST', category: 'test', title: 'Test', description: 'Test issue', blocking: true }],
41
+ };
42
+ mockValidator.loadRulesetById.mockResolvedValue(resultWithRuleset.issues);
43
+ const { result } = await useCase.execute({
44
+ satellitePath: '/satellite',
45
+ rulesetId: 'acl',
46
+ });
47
+ expect(mockValidator.loadRulesetById).toHaveBeenCalledWith(expect.any(String), 'acl');
48
+ expect(result.status).toBe('failed');
49
+ });
50
+ it('should return warning status when non-blocking issues exist', async () => {
51
+ const warningResult = {
52
+ ...mockResult,
53
+ status: 'warning',
54
+ issues: [{ ruleId: 'WARN', severity: 'SHOULD', category: 'test', title: 'Warning', description: 'Warning issue', blocking: false }],
55
+ };
56
+ mockValidator.validate.mockResolvedValue(warningResult);
57
+ const { result } = await useCase.execute({
58
+ satellitePath: '/satellite',
59
+ });
60
+ expect(result.status).toBe('warning');
61
+ });
62
+ });
63
+ describe('executeWithFormat', () => {
64
+ it('should return markdown formatted output', async () => {
65
+ const { result, formattedOutput } = await useCase.executeWithFormat({ satellitePath: '/satellite' }, 'markdown');
66
+ expect(result).toBe(mockResult);
67
+ expect(formattedOutput).toContain('# Validation Report');
68
+ expect(formattedOutput).toContain('**Status:** PASSED');
69
+ expect(formattedOutput).toContain('**Rules Checked:** 5');
70
+ });
71
+ it('should include blocking issues in markdown', async () => {
72
+ const resultWithIssues = {
73
+ status: 'failed',
74
+ rulesChecked: 3,
75
+ issues: [
76
+ {
77
+ ruleId: 'GOV-01',
78
+ severity: 'MUST',
79
+ category: 'governance',
80
+ title: 'Missing file',
81
+ description: 'evolith.yaml is missing',
82
+ file: '/satellite/evolith.yaml',
83
+ blocking: true,
84
+ },
85
+ ],
86
+ coreRef: { version: null, path: null },
87
+ timestamp: '2024-01-01T00:00:00.000Z',
88
+ };
89
+ mockValidator.validate.mockResolvedValue(resultWithIssues);
90
+ const { formattedOutput } = await useCase.executeWithFormat({ satellitePath: '/satellite' }, 'markdown');
91
+ expect(formattedOutput).toContain('## Blocking Issues');
92
+ expect(formattedOutput).toContain('**GOV-01**');
93
+ expect(formattedOutput).toContain('Missing file');
94
+ });
95
+ it('should return json format without formatted output', async () => {
96
+ const { result, formattedOutput } = await useCase.executeWithFormat({ satellitePath: '/satellite' }, 'json');
97
+ expect(result).toBe(mockResult);
98
+ expect(formattedOutput).toBeUndefined();
99
+ });
100
+ });
101
+ });
102
+ //# sourceMappingURL=validate-satellite.use-case.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-satellite.use-case.spec.js","sourceRoot":"","sources":["../../../src/application/use-cases/validate-satellite.use-case.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { CommandRunner } from 'nest-commander';
2
+ interface ADRCommandOptions {
3
+ create?: boolean;
4
+ list?: boolean;
5
+ get?: string;
6
+ update?: string;
7
+ matrix?: boolean;
8
+ status?: string;
9
+ reason?: string;
10
+ }
11
+ export declare class ADRCommand extends CommandRunner {
12
+ private readonly timer;
13
+ run(passedParam: string[], options?: ADRCommandOptions): Promise<void>;
14
+ private interactiveMode;
15
+ private createADR;
16
+ private listADRs;
17
+ private getADR;
18
+ private updateADR;
19
+ private showMatrix;
20
+ parseCreate(): boolean;
21
+ parseList(): boolean;
22
+ parseGet(val: string): string;
23
+ parseUpdate(val: string): string;
24
+ parseStatus(val: string): string;
25
+ parseReason(val: string): string;
26
+ parseMatrix(): boolean;
27
+ }
28
+ export {};
@@ -0,0 +1,357 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ 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;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __metadata = (this && this.__metadata) || function (k, v) {
42
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
+ };
44
+ var __importDefault = (this && this.__importDefault) || function (mod) {
45
+ return (mod && mod.__esModule) ? mod : { "default": mod };
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.ADRCommand = void 0;
49
+ const nest_commander_1 = require("nest-commander");
50
+ const p = __importStar(require("@clack/prompts"));
51
+ const chalk_1 = __importDefault(require("chalk"));
52
+ const container_1 = require("../../core/di/container");
53
+ const adr_service_1 = require("../../domain/services/adr.service");
54
+ const observability_1 = require("../../core/observability");
55
+ let ADRCommand = class ADRCommand extends nest_commander_1.CommandRunner {
56
+ constructor() {
57
+ super(...arguments);
58
+ this.timer = new observability_1.OperationTimer();
59
+ }
60
+ async run(passedParam, options) {
61
+ this.timer.start('ADRCommand.run');
62
+ const fs = (0, container_1.getContainer)().createFileSystem();
63
+ if (options?.create) {
64
+ await this.createADR(fs);
65
+ }
66
+ else if (options?.list) {
67
+ await this.listADRs(fs);
68
+ }
69
+ else if (options?.get) {
70
+ await this.getADR(fs, options.get);
71
+ }
72
+ else if (options?.update) {
73
+ await this.updateADR(fs, options.update, options.status, options.reason);
74
+ }
75
+ else if (options?.matrix) {
76
+ await this.showMatrix(fs);
77
+ }
78
+ else {
79
+ await this.interactiveMode(fs);
80
+ }
81
+ this.timer.end();
82
+ }
83
+ async interactiveMode(fs) {
84
+ console.clear();
85
+ p.intro(chalk_1.default.bgCyan.white.bold(' Evolith ADR - Architecture Decision Records '));
86
+ const action = await p.select({
87
+ message: '¿Qué acción deseas realizar?',
88
+ options: [
89
+ { value: 'create', label: 'Crear ADR', hint: 'Nuevo Architecture Decision Record' },
90
+ { value: 'list', label: 'Listar ADRs', hint: 'Ver todos los ADRs' },
91
+ { value: 'matrix', label: 'Ver Matriz', hint: 'Ver ADR Matrix summary' },
92
+ { value: 'get', label: 'Ver ADR', hint: 'Detalles de un ADR específico' },
93
+ { value: 'update', label: 'Actualizar Status', hint: 'Cambiar estado de un ADR' },
94
+ ],
95
+ });
96
+ switch (action) {
97
+ case 'create':
98
+ await this.createADR(fs);
99
+ break;
100
+ case 'list':
101
+ await this.listADRs(fs);
102
+ break;
103
+ case 'matrix':
104
+ await this.showMatrix(fs);
105
+ break;
106
+ case 'get':
107
+ const id = await p.text({ message: 'ID del ADR (ej: ADR-0001):' });
108
+ await this.getADR(fs, id);
109
+ break;
110
+ case 'update':
111
+ const updateId = await p.text({ message: 'ID del ADR:' });
112
+ const newStatus = await p.select({
113
+ message: 'Nuevo estado:',
114
+ options: [
115
+ { value: 'Accepted', label: 'Accepted' },
116
+ { value: 'Deprecated', label: 'Deprecated' },
117
+ { value: 'Superseded', label: 'Superseded' },
118
+ { value: 'Amended', label: 'Amended' },
119
+ ],
120
+ });
121
+ const reason = await p.text({ message: 'Razón del cambio:' });
122
+ await this.updateADR(fs, updateId, newStatus, reason);
123
+ break;
124
+ }
125
+ }
126
+ async createADR(fs) {
127
+ observability_1.logger.info('Creating new ADR');
128
+ const title = await p.text({
129
+ message: 'Título del ADR:',
130
+ placeholder: 'Use PostgreSQL as primary database',
131
+ validate: (v) => String(v).length < 5 ? 'Título demasiado corto' : undefined,
132
+ });
133
+ const context = await p.text({
134
+ message: 'Contexto (describe el problema):',
135
+ placeholder: 'Necesitamos decidir sobre la base de datos...',
136
+ });
137
+ const decision = await p.text({
138
+ message: 'Decisión (qué se decidió):',
139
+ placeholder: 'Se decidió usar PostgreSQL porque...',
140
+ });
141
+ const positive = await p.text({
142
+ message: 'Consecuencias positivas (una por línea, separadas por pipe |):',
143
+ placeholder: 'Mejora rendimiento | Consistency',
144
+ });
145
+ const negative = await p.text({
146
+ message: 'Consecuencias negativas (una por línea, separadas por pipe |):',
147
+ placeholder: 'Mayor complejidad | Costo adicional',
148
+ });
149
+ const tagsInput = await p.text({
150
+ message: 'Tags (separados por comma, opcional):',
151
+ placeholder: 'database, backend, infrastructure',
152
+ });
153
+ const positiveList = positive.split('|').map(l => l.trim()).filter(l => l);
154
+ const negativeList = negative.split('|').map(l => l.trim()).filter(l => l);
155
+ const tags = tagsInput ? tagsInput.split(',').map(t => t.trim()).filter(t => t) : [];
156
+ const service = new adr_service_1.ADRService(fs, process.cwd());
157
+ const spinner = p.spinner();
158
+ spinner.start('Creando ADR...');
159
+ try {
160
+ const input = {
161
+ title: title,
162
+ context: context,
163
+ decision: decision,
164
+ consequences: { positive: positiveList, negative: negativeList },
165
+ tags,
166
+ };
167
+ const adr = await service.create(input);
168
+ spinner.stop();
169
+ p.log.success(chalk_1.default.green(`✓ ADR ${adr.id} creado exitosamente`));
170
+ p.log.info(` Título: ${adr.title}`);
171
+ p.log.info(` Estado: ${adr.status}`);
172
+ p.log.info(` Archivo: reference/architecture/adrs/${adr.id}.md`);
173
+ }
174
+ catch (error) {
175
+ spinner.stop();
176
+ observability_1.logger.error('Failed to create ADR', { error });
177
+ p.log.error(chalk_1.default.red('✗ Error creando ADR'));
178
+ }
179
+ }
180
+ async listADRs(fs) {
181
+ observability_1.logger.info('Listing ADRs');
182
+ const service = new adr_service_1.ADRService(fs, process.cwd());
183
+ const adrs = await service.list();
184
+ if (adrs.length === 0) {
185
+ p.log.warn('No hay ADRs registrados. Usa "evolith adr --create" para crear el primero.');
186
+ return;
187
+ }
188
+ p.log.info(`\nTotal ADRs: ${adrs.length}\n`);
189
+ const table = adrs.map(adr => ({
190
+ id: adr.id,
191
+ title: adr.title.length > 50 ? adr.title.substring(0, 47) + '...' : adr.title,
192
+ status: adr.status,
193
+ date: adr.date,
194
+ }));
195
+ console.table(table);
196
+ }
197
+ async getADR(fs, id) {
198
+ observability_1.logger.info('Getting ADR', { id });
199
+ const service = new adr_service_1.ADRService(fs, process.cwd());
200
+ const adr = await service.get(id);
201
+ if (!adr) {
202
+ p.log.error(chalk_1.default.red(`ADR ${id} no encontrado`));
203
+ return;
204
+ }
205
+ console.log(chalk_1.default.bold(`\n${adr.id}: ${adr.title}\n`));
206
+ console.log(`Status: ${chalk_1.default.cyan(adr.status)}`);
207
+ console.log(`Date: ${adr.date}`);
208
+ console.log(`\n${chalk_1.default.bold('Context:')}\n${adr.context}`);
209
+ console.log(`\n${chalk_1.default.bold('Decision:')}\n${adr.decision}`);
210
+ console.log(`\n${chalk_1.default.bold('Consequences:')}`);
211
+ console.log(`${chalk_1.default.green('Positive:')} ${adr.consequences.positive.join(', ')}`);
212
+ console.log(`${chalk_1.default.red('Negative:')} ${adr.consequences.negative.join(', ')}`);
213
+ if (adr.tags && adr.tags.length > 0) {
214
+ console.log(`\nTags: ${adr.tags.map(t => chalk_1.default.yellow(`[${t}]`)).join(' ')}`);
215
+ }
216
+ }
217
+ async updateADR(fs, id, status, reason) {
218
+ observability_1.logger.info('Updating ADR status', { id, status });
219
+ if (!status) {
220
+ p.log.error('Estado requerido. Usa --status <Accepted|Deprecated|Superseded|Amended>');
221
+ return;
222
+ }
223
+ const service = new adr_service_1.ADRService(fs, process.cwd());
224
+ const spinner = p.spinner();
225
+ spinner.start(`Actualizando ADR ${id}...`);
226
+ try {
227
+ const updated = await service.updateStatus(id, status, reason);
228
+ spinner.stop();
229
+ if (updated) {
230
+ p.log.success(chalk_1.default.green(`✓ ADR ${id} actualizado a ${status}`));
231
+ }
232
+ else {
233
+ p.log.error(chalk_1.default.red(`ADR ${id} no encontrado`));
234
+ }
235
+ }
236
+ catch (error) {
237
+ spinner.stop();
238
+ observability_1.logger.error('Failed to update ADR', { error });
239
+ p.log.error(chalk_1.default.red('✗ Error actualizando ADR'));
240
+ }
241
+ }
242
+ async showMatrix(fs) {
243
+ observability_1.logger.info('Showing ADR Matrix');
244
+ const service = new adr_service_1.ADRService(fs, process.cwd());
245
+ const matrix = await service.getMatrix();
246
+ console.log(chalk_1.default.bold('\n╔══════════════════════════════════════════════╗'));
247
+ console.log(chalk_1.default.bold('║ ADR MATRIX SUMMARY ║'));
248
+ console.log(chalk_1.default.bold('╠══════════════════════════════════════════════╣'));
249
+ console.log(`║ Total ADRs: ${String(matrix.summary.total).padStart(4)} ║`);
250
+ console.log(`║ Proposed: ${String(matrix.summary.proposed).padStart(4)} ║`);
251
+ console.log(`║ Accepted: ${String(matrix.summary.accepted).padStart(4)} ║`);
252
+ console.log(`║ Deprecated: ${String(matrix.summary.deprecated).padStart(4)} ║`);
253
+ console.log(chalk_1.default.bold('╠══════════════════════════════════════════════╣'));
254
+ const latestAdrs = matrix.adrs.slice(0, 5);
255
+ if (latestAdrs.length > 0) {
256
+ console.log(chalk_1.default.bold('║ Recent ADRs: ║'));
257
+ for (const adr of latestAdrs) {
258
+ const title = adr.title.length > 35 ? adr.title.substring(0, 32) + '...' : adr.title;
259
+ console.log(`║ ${adr.id} ${title.padEnd(35)} ║`);
260
+ }
261
+ }
262
+ console.log(chalk_1.default.bold('╚══════════════════════════════════════════════╝'));
263
+ console.log(`\nLast updated: ${matrix.lastUpdated}\n`);
264
+ }
265
+ parseCreate() {
266
+ return true;
267
+ }
268
+ parseList() {
269
+ return true;
270
+ }
271
+ parseGet(val) {
272
+ return val;
273
+ }
274
+ parseUpdate(val) {
275
+ return val;
276
+ }
277
+ parseStatus(val) {
278
+ return val;
279
+ }
280
+ parseReason(val) {
281
+ return val;
282
+ }
283
+ parseMatrix() {
284
+ return true;
285
+ }
286
+ };
287
+ exports.ADRCommand = ADRCommand;
288
+ __decorate([
289
+ (0, nest_commander_1.Option)({
290
+ flags: '-c, --create',
291
+ description: 'Crear nuevo ADR',
292
+ }),
293
+ __metadata("design:type", Function),
294
+ __metadata("design:paramtypes", []),
295
+ __metadata("design:returntype", Boolean)
296
+ ], ADRCommand.prototype, "parseCreate", null);
297
+ __decorate([
298
+ (0, nest_commander_1.Option)({
299
+ flags: '-l, --list',
300
+ description: 'Listar todos los ADRs',
301
+ }),
302
+ __metadata("design:type", Function),
303
+ __metadata("design:paramtypes", []),
304
+ __metadata("design:returntype", Boolean)
305
+ ], ADRCommand.prototype, "parseList", null);
306
+ __decorate([
307
+ (0, nest_commander_1.Option)({
308
+ flags: '-g, --get [id]',
309
+ description: 'Ver ADR específico',
310
+ }),
311
+ __metadata("design:type", Function),
312
+ __metadata("design:paramtypes", [String]),
313
+ __metadata("design:returntype", String)
314
+ ], ADRCommand.prototype, "parseGet", null);
315
+ __decorate([
316
+ (0, nest_commander_1.Option)({
317
+ flags: '-u, --update [id]',
318
+ description: 'Actualizar estado de ADR',
319
+ }),
320
+ __metadata("design:type", Function),
321
+ __metadata("design:paramtypes", [String]),
322
+ __metadata("design:returntype", String)
323
+ ], ADRCommand.prototype, "parseUpdate", null);
324
+ __decorate([
325
+ (0, nest_commander_1.Option)({
326
+ flags: '-s, --status [status]',
327
+ description: 'Nuevo estado: Accepted, Deprecated, Superseded, Amended',
328
+ }),
329
+ __metadata("design:type", Function),
330
+ __metadata("design:paramtypes", [String]),
331
+ __metadata("design:returntype", String)
332
+ ], ADRCommand.prototype, "parseStatus", null);
333
+ __decorate([
334
+ (0, nest_commander_1.Option)({
335
+ flags: '-r, --reason [text]',
336
+ description: 'Razón del cambio de estado',
337
+ }),
338
+ __metadata("design:type", Function),
339
+ __metadata("design:paramtypes", [String]),
340
+ __metadata("design:returntype", String)
341
+ ], ADRCommand.prototype, "parseReason", null);
342
+ __decorate([
343
+ (0, nest_commander_1.Option)({
344
+ flags: '-m, --matrix',
345
+ description: 'Mostrar ADR Matrix summary',
346
+ }),
347
+ __metadata("design:type", Function),
348
+ __metadata("design:paramtypes", []),
349
+ __metadata("design:returntype", Boolean)
350
+ ], ADRCommand.prototype, "parseMatrix", null);
351
+ exports.ADRCommand = ADRCommand = __decorate([
352
+ (0, nest_commander_1.Command)({
353
+ name: 'adr',
354
+ description: 'Gestión de Architecture Decision Records (ADRs)',
355
+ })
356
+ ], ADRCommand);
357
+ //# sourceMappingURL=adr.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adr.command.js","sourceRoot":"","sources":["../../../src/commands/adr/adr.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { CommandRunner } from 'nest-commander';
2
+ export declare class ScaffoldCommand extends CommandRunner {
3
+ private strategy;
4
+ run(passedParam: string[], options?: Record<string, any>): Promise<void>;
5
+ parseFrontend(val: string): string;
6
+ parseOrm(val: string): string;
7
+ }