@evolith/smart-cli 0.0.1-beta → 0.0.3-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 (199) hide show
  1. package/ARCHITECTURE.md +667 -89
  2. package/dist/app.module.js +2 -2
  3. package/dist/app.module.js.map +1 -1
  4. package/dist/app.module.spec.d.ts +1 -0
  5. package/dist/app.module.spec.js +305 -0
  6. package/dist/app.module.spec.js.map +1 -0
  7. package/dist/application/services/index.d.ts +14 -5
  8. package/dist/application/services/index.js +41 -3
  9. package/dist/application/services/index.js.map +1 -1
  10. package/dist/application/services/phase-transition.use-case.spec.d.ts +1 -0
  11. package/dist/application/services/phase-transition.use-case.spec.js +297 -0
  12. package/dist/application/services/phase-transition.use-case.spec.js.map +1 -0
  13. package/dist/commands/adr/adr.command.spec.d.ts +1 -0
  14. package/dist/commands/adr/adr.command.spec.js +409 -0
  15. package/dist/commands/adr/adr.command.spec.js.map +1 -0
  16. package/dist/commands/architecture/scaffold.command.spec.d.ts +1 -0
  17. package/dist/commands/architecture/scaffold.command.spec.js +207 -0
  18. package/dist/commands/architecture/scaffold.command.spec.js.map +1 -0
  19. package/dist/commands/completion/completion.command.spec.d.ts +1 -0
  20. package/dist/commands/completion/completion.command.spec.js +240 -0
  21. package/dist/commands/completion/completion.command.spec.js.map +1 -0
  22. package/dist/commands/docs/docs.command.d.ts +5 -0
  23. package/dist/commands/docs/docs.command.js +159 -3
  24. package/dist/commands/docs/docs.command.js.map +1 -1
  25. package/dist/commands/docs/docs.command.spec.d.ts +1 -0
  26. package/dist/commands/docs/docs.command.spec.js +87 -0
  27. package/dist/commands/docs/docs.command.spec.js.map +1 -0
  28. package/dist/commands/drift/drift.command.d.ts +24 -0
  29. package/dist/commands/drift/drift.command.js +250 -0
  30. package/dist/commands/drift/drift.command.js.map +1 -0
  31. package/dist/commands/drift/drift.command.spec.d.ts +1 -0
  32. package/dist/commands/drift/drift.command.spec.js +327 -0
  33. package/dist/commands/drift/drift.command.spec.js.map +1 -0
  34. package/dist/commands/history/history.command.spec.d.ts +1 -0
  35. package/dist/commands/history/history.command.spec.js +392 -0
  36. package/dist/commands/history/history.command.spec.js.map +1 -0
  37. package/dist/commands/init/agents.command.spec.d.ts +1 -0
  38. package/dist/commands/init/agents.command.spec.js +550 -0
  39. package/dist/commands/init/agents.command.spec.js.map +1 -0
  40. package/dist/commands/init/init.command.spec.d.ts +1 -0
  41. package/dist/commands/init/init.command.spec.js +272 -0
  42. package/dist/commands/init/init.command.spec.js.map +1 -0
  43. package/dist/commands/init/upgrade.command.d.ts +10 -0
  44. package/dist/commands/init/upgrade.command.js +134 -1
  45. package/dist/commands/init/upgrade.command.js.map +1 -1
  46. package/dist/commands/init/upgrade.command.spec.d.ts +1 -0
  47. package/dist/commands/init/upgrade.command.spec.js +378 -0
  48. package/dist/commands/init/upgrade.command.spec.js.map +1 -0
  49. package/dist/commands/mcp/mcp-serve.command.spec.d.ts +1 -0
  50. package/dist/commands/mcp/mcp-serve.command.spec.js +58 -0
  51. package/dist/commands/mcp/mcp-serve.command.spec.js.map +1 -0
  52. package/dist/commands/sdlc/gate-status.command.d.ts +5 -0
  53. package/dist/commands/sdlc/gate-status.command.js +114 -0
  54. package/dist/commands/sdlc/gate-status.command.js.map +1 -0
  55. package/dist/commands/sdlc/generate-domain.command.spec.d.ts +1 -0
  56. package/dist/commands/sdlc/generate-domain.command.spec.js +47 -0
  57. package/dist/commands/sdlc/generate-domain.command.spec.js.map +1 -0
  58. package/dist/commands/sdlc/handoff.command.spec.d.ts +1 -0
  59. package/dist/commands/sdlc/handoff.command.spec.js +395 -0
  60. package/dist/commands/sdlc/handoff.command.spec.js.map +1 -0
  61. package/dist/commands/sdlc/sdlc.command.js +3 -1
  62. package/dist/commands/sdlc/sdlc.command.js.map +1 -1
  63. package/dist/commands/sdlc/sdlc.command.spec.d.ts +1 -0
  64. package/dist/commands/sdlc/sdlc.command.spec.js +45 -0
  65. package/dist/commands/sdlc/sdlc.command.spec.js.map +1 -0
  66. package/dist/commands/standards/standards.command.spec.d.ts +1 -0
  67. package/dist/commands/standards/standards.command.spec.js +311 -0
  68. package/dist/commands/standards/standards.command.spec.js.map +1 -0
  69. package/dist/commands/validate/validate.command.d.ts +4 -0
  70. package/dist/commands/validate/validate.command.js +39 -0
  71. package/dist/commands/validate/validate.command.js.map +1 -1
  72. package/dist/commands/validate/validate.command.spec.d.ts +1 -0
  73. package/dist/commands/validate/validate.command.spec.js +368 -0
  74. package/dist/commands/validate/validate.command.spec.js.map +1 -0
  75. package/dist/core/abstractions/providers/logger.provider.spec.d.ts +1 -0
  76. package/dist/core/abstractions/providers/logger.provider.spec.js +212 -0
  77. package/dist/core/abstractions/providers/logger.provider.spec.js.map +1 -0
  78. package/dist/core/agents/agent-ruleset-builder.d.ts +30 -0
  79. package/dist/core/agents/agent-ruleset-builder.js +75 -0
  80. package/dist/core/agents/agent-ruleset-builder.js.map +1 -0
  81. package/dist/core/agents/agent-ruleset-builder.spec.d.ts +1 -0
  82. package/dist/core/agents/agent-ruleset-builder.spec.js +135 -0
  83. package/dist/core/agents/agent-ruleset-builder.spec.js.map +1 -0
  84. package/dist/core/di/container.spec.js +164 -0
  85. package/dist/core/di/container.spec.js.map +1 -1
  86. package/dist/core/mcp/metrics.service.spec.d.ts +1 -0
  87. package/dist/core/mcp/metrics.service.spec.js +159 -0
  88. package/dist/core/mcp/metrics.service.spec.js.map +1 -0
  89. package/dist/core/mcp/prompts/index.js +36 -0
  90. package/dist/core/mcp/prompts/index.js.map +1 -1
  91. package/dist/core/mcp/prompts/index.spec.d.ts +1 -0
  92. package/dist/core/mcp/prompts/index.spec.js +150 -0
  93. package/dist/core/mcp/prompts/index.spec.js.map +1 -0
  94. package/dist/core/mcp/resources/index.js +16 -0
  95. package/dist/core/mcp/resources/index.js.map +1 -1
  96. package/dist/core/mcp/resources/index.spec.d.ts +1 -0
  97. package/dist/core/mcp/resources/index.spec.js +212 -0
  98. package/dist/core/mcp/resources/index.spec.js.map +1 -0
  99. package/dist/core/mcp/server.d.ts +15 -9
  100. package/dist/core/mcp/server.js +480 -174
  101. package/dist/core/mcp/server.js.map +1 -1
  102. package/dist/core/mcp/server.spec.d.ts +1 -0
  103. package/dist/core/mcp/server.spec.js +563 -0
  104. package/dist/core/mcp/server.spec.js.map +1 -0
  105. package/dist/core/mcp/tools/agent.spec.d.ts +1 -0
  106. package/dist/core/mcp/tools/agent.spec.js +171 -0
  107. package/dist/core/mcp/tools/agent.spec.js.map +1 -0
  108. package/dist/core/mcp/tools/architecture.d.ts +2 -0
  109. package/dist/core/mcp/tools/architecture.js +68 -0
  110. package/dist/core/mcp/tools/architecture.js.map +1 -1
  111. package/dist/core/mcp/tools/architecture.spec.d.ts +1 -0
  112. package/dist/core/mcp/tools/architecture.spec.js +145 -0
  113. package/dist/core/mcp/tools/architecture.spec.js.map +1 -0
  114. package/dist/core/mcp/tools/moscow.d.ts +30 -0
  115. package/dist/core/mcp/tools/moscow.js +113 -0
  116. package/dist/core/mcp/tools/moscow.js.map +1 -0
  117. package/dist/core/mcp/tools/moscow.spec.d.ts +1 -0
  118. package/dist/core/mcp/tools/moscow.spec.js +209 -0
  119. package/dist/core/mcp/tools/moscow.spec.js.map +1 -0
  120. package/dist/core/mcp/tools/sdlc.js +2 -1
  121. package/dist/core/mcp/tools/sdlc.js.map +1 -1
  122. package/dist/core/mcp/tools/sdlc.spec.d.ts +1 -0
  123. package/dist/core/mcp/tools/sdlc.spec.js +170 -0
  124. package/dist/core/mcp/tools/sdlc.spec.js.map +1 -0
  125. package/dist/core/mcp/tools/validate.spec.d.ts +1 -0
  126. package/dist/core/mcp/tools/validate.spec.js +130 -0
  127. package/dist/core/mcp/tools/validate.spec.js.map +1 -0
  128. package/dist/core/mcp/watcher.service.spec.js +109 -8
  129. package/dist/core/mcp/watcher.service.spec.js.map +1 -1
  130. package/dist/core/observability/error-reporter.spec.d.ts +1 -0
  131. package/dist/core/observability/error-reporter.spec.js +291 -0
  132. package/dist/core/observability/error-reporter.spec.js.map +1 -0
  133. package/dist/core/observability/structured-logger.spec.d.ts +1 -0
  134. package/dist/core/observability/structured-logger.spec.js +197 -0
  135. package/dist/core/observability/structured-logger.spec.js.map +1 -0
  136. package/dist/core/observability/timing.spec.d.ts +1 -0
  137. package/dist/core/observability/timing.spec.js +216 -0
  138. package/dist/core/observability/timing.spec.js.map +1 -0
  139. package/dist/core/services/command-history.service.spec.d.ts +1 -0
  140. package/dist/core/services/command-history.service.spec.js +166 -0
  141. package/dist/core/services/command-history.service.spec.js.map +1 -0
  142. package/dist/core/upgrade/satellite-upgrade.service.d.ts +48 -0
  143. package/dist/core/upgrade/satellite-upgrade.service.js +358 -0
  144. package/dist/core/upgrade/satellite-upgrade.service.js.map +1 -0
  145. package/dist/core/upgrade/satellite-upgrade.service.spec.d.ts +1 -0
  146. package/dist/core/upgrade/satellite-upgrade.service.spec.js +163 -0
  147. package/dist/core/upgrade/satellite-upgrade.service.spec.js.map +1 -0
  148. package/dist/core/validators/architecture-drift.service.d.ts +68 -0
  149. package/dist/core/validators/architecture-drift.service.js +266 -0
  150. package/dist/core/validators/architecture-drift.service.js.map +1 -0
  151. package/dist/core/validators/architecture-drift.service.spec.d.ts +1 -0
  152. package/dist/core/validators/architecture-drift.service.spec.js +315 -0
  153. package/dist/core/validators/architecture-drift.service.spec.js.map +1 -0
  154. package/dist/core/validators/deep-architecture-analyzer.d.ts +58 -0
  155. package/dist/core/validators/deep-architecture-analyzer.js +333 -0
  156. package/dist/core/validators/deep-architecture-analyzer.js.map +1 -0
  157. package/dist/core/validators/deep-architecture-analyzer.spec.d.ts +1 -0
  158. package/dist/core/validators/deep-architecture-analyzer.spec.js +216 -0
  159. package/dist/core/validators/deep-architecture-analyzer.spec.js.map +1 -0
  160. package/dist/core/validators/phase-gate-validator.service.d.ts +71 -0
  161. package/dist/core/validators/phase-gate-validator.service.js +273 -0
  162. package/dist/core/validators/phase-gate-validator.service.js.map +1 -0
  163. package/dist/core/validators/phase-gate-validator.service.spec.d.ts +1 -0
  164. package/dist/core/validators/phase-gate-validator.service.spec.js +326 -0
  165. package/dist/core/validators/phase-gate-validator.service.spec.js.map +1 -0
  166. package/dist/core/validators/ruleset-validator-architecture.spec.d.ts +1 -0
  167. package/dist/core/validators/ruleset-validator-architecture.spec.js +178 -0
  168. package/dist/core/validators/ruleset-validator-architecture.spec.js.map +1 -0
  169. package/dist/core/validators/ruleset-validator.service.d.ts +24 -0
  170. package/dist/core/validators/ruleset-validator.service.js +394 -0
  171. package/dist/core/validators/ruleset-validator.service.js.map +1 -1
  172. package/dist/core/validators/ruleset-validator.service.spec.js +351 -3
  173. package/dist/core/validators/ruleset-validator.service.spec.js.map +1 -1
  174. package/dist/domain/services/adr.service.spec.d.ts +1 -0
  175. package/dist/domain/services/adr.service.spec.js +141 -0
  176. package/dist/domain/services/adr.service.spec.js.map +1 -0
  177. package/dist/domain/services/agent-registry.service.spec.d.ts +1 -0
  178. package/dist/domain/services/agent-registry.service.spec.js +162 -0
  179. package/dist/domain/services/agent-registry.service.spec.js.map +1 -0
  180. package/dist/domain/services/index.d.ts +1 -0
  181. package/dist/domain/services/index.js +3 -1
  182. package/dist/domain/services/index.js.map +1 -1
  183. package/dist/domain/services/moscow-prioritization.service.d.ts +44 -0
  184. package/dist/domain/services/moscow-prioritization.service.js +213 -0
  185. package/dist/domain/services/moscow-prioritization.service.js.map +1 -0
  186. package/dist/domain/services/moscow-prioritization.service.spec.d.ts +1 -0
  187. package/dist/domain/services/moscow-prioritization.service.spec.js +285 -0
  188. package/dist/domain/services/moscow-prioritization.service.spec.js.map +1 -0
  189. package/dist/domain/services/standards.service.spec.d.ts +1 -0
  190. package/dist/domain/services/standards.service.spec.js +600 -0
  191. package/dist/domain/services/standards.service.spec.js.map +1 -0
  192. package/dist/domain/services/tool-usage-telemetry.service.spec.d.ts +1 -0
  193. package/dist/domain/services/tool-usage-telemetry.service.spec.js +180 -0
  194. package/dist/domain/services/tool-usage-telemetry.service.spec.js.map +1 -0
  195. package/dist/infrastructure/formatters/output-formatter.service.spec.d.ts +1 -0
  196. package/dist/infrastructure/formatters/output-formatter.service.spec.js +164 -0
  197. package/dist/infrastructure/formatters/output-formatter.service.spec.js.map +1 -0
  198. package/dist/main.js +0 -0
  199. package/package.json +2 -2
@@ -0,0 +1,240 @@
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 __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const completion_command_1 = require("./completion.command");
37
+ jest.mock('fs-extra', () => ({
38
+ pathExists: jest.fn(),
39
+ readFile: jest.fn(),
40
+ appendFile: jest.fn(),
41
+ ensureDir: jest.fn(),
42
+ copy: jest.fn(),
43
+ }));
44
+ jest.mock('chalk', () => {
45
+ const chalkFn = (str) => str;
46
+ chalkFn.green = (str) => str;
47
+ chalkFn.red = (str) => str;
48
+ chalkFn.bold = (str) => str;
49
+ chalkFn.bgCyan = { black: { bold: (str) => str } };
50
+ chalkFn.cyan = (str) => str;
51
+ chalkFn.yellow = (str) => str;
52
+ chalkFn.blue = (str) => str;
53
+ chalkFn.dim = (str) => str;
54
+ return chalkFn;
55
+ });
56
+ const fs = __importStar(require("fs-extra"));
57
+ describe('CompletionCommand', () => {
58
+ let command;
59
+ let logSpy;
60
+ beforeEach(() => {
61
+ command = new completion_command_1.CompletionCommand();
62
+ logSpy = jest.spyOn(console, 'log').mockImplementation(() => { });
63
+ jest.clearAllMocks();
64
+ });
65
+ afterEach(() => {
66
+ logSpy.mockRestore();
67
+ });
68
+ describe('run', () => {
69
+ it('should show completion help when no install option', async () => {
70
+ await command.run([], {});
71
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Shell Completion'));
72
+ });
73
+ it('should call installCompletion when install option is provided', async () => {
74
+ fs.pathExists.mockResolvedValue(true);
75
+ fs.readFile.mockResolvedValue('');
76
+ await command.run([], { install: 'bash' });
77
+ expect(fs.pathExists).toHaveBeenCalled();
78
+ });
79
+ it('should install for specified shell', async () => {
80
+ fs.pathExists.mockResolvedValue(true);
81
+ fs.readFile.mockResolvedValue('');
82
+ await command.run([], { install: 'zsh' });
83
+ expect(fs.pathExists).toHaveBeenCalled();
84
+ });
85
+ it('should install for fish shell', async () => {
86
+ fs.pathExists.mockResolvedValue(true);
87
+ await command.run([], { install: 'fish' });
88
+ expect(fs.pathExists).toHaveBeenCalled();
89
+ });
90
+ it('should handle unknown shell', async () => {
91
+ fs.pathExists.mockResolvedValue(true);
92
+ await command.run([], { install: 'powershell' });
93
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Unknown shell'));
94
+ });
95
+ });
96
+ describe('detectShell', () => {
97
+ it('should detect zsh from SHELL env', () => {
98
+ const originalShell = process.env.SHELL;
99
+ process.env.SHELL = '/bin/zsh';
100
+ const cmd = new completion_command_1.CompletionCommand();
101
+ const result = cmd.detectShell();
102
+ expect(result).toBe('zsh');
103
+ process.env.SHELL = originalShell;
104
+ });
105
+ it('should detect bash from SHELL env', () => {
106
+ const originalShell = process.env.SHELL;
107
+ process.env.SHELL = '/bin/bash';
108
+ const cmd = new completion_command_1.CompletionCommand();
109
+ const result = cmd.detectShell();
110
+ expect(result).toBe('bash');
111
+ process.env.SHELL = originalShell;
112
+ });
113
+ it('should detect fish from SHELL env', () => {
114
+ const originalShell = process.env.SHELL;
115
+ process.env.SHELL = '/usr/bin/fish';
116
+ const cmd = new completion_command_1.CompletionCommand();
117
+ const result = cmd.detectShell();
118
+ expect(result).toBe('fish');
119
+ process.env.SHELL = originalShell;
120
+ });
121
+ it('should default to bash when SHELL is empty', () => {
122
+ const originalShell = process.env.SHELL;
123
+ process.env.SHELL = '';
124
+ const cmd = new completion_command_1.CompletionCommand();
125
+ const result = cmd.detectShell();
126
+ expect(result).toBe('bash');
127
+ process.env.SHELL = originalShell;
128
+ });
129
+ it('should default to bash when SHELL is undefined', () => {
130
+ const originalShell = process.env.SHELL;
131
+ delete process.env.SHELL;
132
+ const cmd = new completion_command_1.CompletionCommand();
133
+ const result = cmd.detectShell();
134
+ expect(result).toBe('bash');
135
+ process.env.SHELL = originalShell;
136
+ });
137
+ });
138
+ describe('installBash', () => {
139
+ it('should report script not found', async () => {
140
+ fs.pathExists.mockResolvedValue(false);
141
+ await command.installBash('/some/dir');
142
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Bash completion script not found'));
143
+ });
144
+ it('should report already installed', async () => {
145
+ fs.pathExists.mockResolvedValue(true);
146
+ fs.readFile.mockResolvedValue('# Evolith CLI completion\nsource "..."');
147
+ await command.installBash('/some/dir');
148
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Bash completion already installed'));
149
+ });
150
+ it('should install completion when not present', async () => {
151
+ fs.pathExists.mockResolvedValueOnce(true);
152
+ fs.pathExists.mockResolvedValueOnce(false);
153
+ await command.installBash('/some/dir');
154
+ expect(fs.appendFile).toHaveBeenCalled();
155
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Bash completion installed'));
156
+ });
157
+ it('should install when bashrc does not exist', async () => {
158
+ fs.pathExists.mockResolvedValueOnce(true);
159
+ fs.pathExists.mockResolvedValueOnce(false);
160
+ await command.installBash('/some/dir');
161
+ expect(fs.appendFile).toHaveBeenCalled();
162
+ });
163
+ });
164
+ describe('installZsh', () => {
165
+ it('should report script not found', async () => {
166
+ fs.pathExists.mockResolvedValue(false);
167
+ await command.installZsh('/some/dir');
168
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Zsh completion script not found'));
169
+ });
170
+ it('should report already installed', async () => {
171
+ fs.pathExists.mockResolvedValue(true);
172
+ fs.readFile.mockResolvedValue('# Evolith CLI completion\nsource "..."');
173
+ await command.installZsh('/some/dir');
174
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Zsh completion already installed'));
175
+ });
176
+ it('should install completion when not present', async () => {
177
+ fs.pathExists.mockResolvedValueOnce(true);
178
+ fs.pathExists.mockResolvedValueOnce(false);
179
+ await command.installZsh('/some/dir');
180
+ expect(fs.appendFile).toHaveBeenCalled();
181
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Zsh completion installed'));
182
+ });
183
+ });
184
+ describe('installFish', () => {
185
+ it('should report script not found', async () => {
186
+ fs.pathExists.mockResolvedValue(false);
187
+ await command.installFish('/some/dir');
188
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Fish completion script not found'));
189
+ });
190
+ it('should install fish completion', async () => {
191
+ fs.pathExists.mockResolvedValue(true);
192
+ await command.installFish('/some/dir');
193
+ expect(fs.ensureDir).toHaveBeenCalled();
194
+ expect(fs.copy).toHaveBeenCalled();
195
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Fish completion installed'));
196
+ });
197
+ });
198
+ describe('installCompletion', () => {
199
+ it('should report completion scripts not found', async () => {
200
+ fs.pathExists.mockResolvedValue(false);
201
+ await command.installCompletion('bash');
202
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Completion scripts not found'));
203
+ });
204
+ });
205
+ describe('showCompletionHelp', () => {
206
+ it('should display usage information', async () => {
207
+ await command.showCompletionHelp('bash');
208
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Usage:'));
209
+ });
210
+ it('should display supported shells', async () => {
211
+ await command.showCompletionHelp('zsh');
212
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Supported shells:'));
213
+ });
214
+ it('should display examples', async () => {
215
+ await command.showCompletionHelp('fish');
216
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Examples:'));
217
+ });
218
+ it('should show detected shell', async () => {
219
+ await command.showCompletionHelp('bash');
220
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Detected shell: bash'));
221
+ });
222
+ });
223
+ describe('findCliPath', () => {
224
+ it('should return process.argv[1]', async () => {
225
+ const result = await command.findCliPath();
226
+ expect(result).toBe(process.argv[1]);
227
+ });
228
+ });
229
+ describe('parseInstall', () => {
230
+ it('should return the value', () => {
231
+ expect(command.parseInstall('bash')).toBe('bash');
232
+ });
233
+ });
234
+ describe('parseShell', () => {
235
+ it('should return the value', () => {
236
+ expect(command.parseShell('zsh')).toBe('zsh');
237
+ });
238
+ });
239
+ });
240
+ //# sourceMappingURL=completion.command.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.command.spec.js","sourceRoot":"","sources":["../../../src/commands/completion/completion.command.spec.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,14 @@
1
1
  import { CommandRunner } from 'nest-commander';
2
2
  interface DocsCommandOptions {
3
3
  dryRun?: boolean;
4
+ force?: boolean;
5
+ template?: string;
4
6
  }
5
7
  export declare class DocsCommand extends CommandRunner {
6
8
  run(passedParam: string[], options?: DocsCommandOptions): Promise<void>;
9
+ private getTemplates;
7
10
  parseDryRun(): boolean;
11
+ parseForce(): boolean;
12
+ parseTemplate(val: string): string;
8
13
  }
9
14
  export {};
@@ -47,31 +47,187 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
47
47
  Object.defineProperty(exports, "__esModule", { value: true });
48
48
  exports.DocsCommand = void 0;
49
49
  const nest_commander_1 = require("nest-commander");
50
+ const fs = __importStar(require("fs-extra"));
51
+ const path = __importStar(require("path"));
50
52
  const p = __importStar(require("@clack/prompts"));
51
53
  const chalk_1 = __importDefault(require("chalk"));
54
+ const DEFAULT_TEMPLATES = [
55
+ {
56
+ filename: 'README.md',
57
+ description: 'Project overview and getting started',
58
+ content: `# Project Name
59
+
60
+ ## Overview
61
+ Brief description of the project.
62
+
63
+ ## Getting Started
64
+ Instructions for setting up and running the project.
65
+
66
+ ## Architecture
67
+ Link to architecture decision records and design documents.
68
+
69
+ ## Documentation
70
+ - [AGENTS.md](./AGENTS.md) - Agent configuration
71
+ - [MASTER_INDEX.md](./MASTER_INDEX.md) - Documentation index
72
+
73
+ ## License
74
+ License information.
75
+ `,
76
+ },
77
+ {
78
+ filename: 'AGENTS.md',
79
+ description: 'AI agent configuration and rules',
80
+ content: `# Agent Configuration
81
+
82
+ ## Project Context
83
+ Description of the project for AI agents.
84
+
85
+ ## Rules
86
+ - Follow established coding conventions
87
+ - Maintain bilingual parity (EN/ES)
88
+ - Validate all internal links
89
+
90
+ ## Conventions
91
+ - Use relative paths for internal references
92
+ - Keep documentation business-readable
93
+ - Isolate technical details in dedicated sections
94
+ `,
95
+ },
96
+ {
97
+ filename: 'MASTER_INDEX.md',
98
+ description: 'Master documentation index',
99
+ content: `# Master Index
100
+
101
+ ## Architecture
102
+ - [Architecture Overview](./reference/architecture/README.md)
103
+ - [ADR Registry](./reference/architecture/adrs/README.md)
104
+
105
+ ## Governance
106
+ - [Standards](./reference/governance/standards/README.md)
107
+ - [Rulesets](./reference/governance/rulesets/README.md)
108
+
109
+ ## Knowledge
110
+ - [Demo References](./reference/knowledge/demo/README.md)
111
+ `,
112
+ },
113
+ {
114
+ filename: '.evolith/evolith.yaml',
115
+ description: 'Evolith configuration file',
116
+ content: `coreRef:
117
+ version: "1.0.0"
118
+ path: "../evolith"
119
+ governance:
120
+ version: "1.0"
121
+ product:
122
+ name: "project-name"
123
+ type: "library"
124
+ `,
125
+ },
126
+ ];
52
127
  let DocsCommand = class DocsCommand extends nest_commander_1.CommandRunner {
53
128
  async run(passedParam, options) {
129
+ const dryRun = options?.dryRun || false;
130
+ const force = options?.force || false;
54
131
  p.intro(chalk_1.default.bgYellow.black.bold(' Evolith SDK - Document Scaffold '));
55
- p.outro(chalk_1.default.green('Documentación base generada exitosamente.'));
132
+ const targetDir = process.cwd();
133
+ const templates = this.getTemplates(options?.template);
134
+ const filesToCreate = [];
135
+ const filesToUpdate = [];
136
+ const filesSkipped = [];
137
+ for (const template of templates) {
138
+ const filePath = path.join(targetDir, template.filename);
139
+ const exists = await fs.pathExists(filePath);
140
+ if (exists && !force) {
141
+ filesSkipped.push(template);
142
+ }
143
+ else if (exists && force) {
144
+ filesToUpdate.push(template);
145
+ }
146
+ else {
147
+ filesToCreate.push(template);
148
+ }
149
+ }
150
+ if (filesToCreate.length === 0 && filesToUpdate.length === 0) {
151
+ p.log.info('All documentation files already exist. Use --force to overwrite.');
152
+ p.outro(chalk_1.default.yellow('No changes made.'));
153
+ return;
154
+ }
155
+ p.log.info(`Files to create: ${filesToCreate.length}`);
156
+ p.log.info(`Files to update: ${filesToUpdate.length}`);
157
+ p.log.info(`Files skipped: ${filesSkipped.length}`);
158
+ if (dryRun) {
159
+ p.log.info(chalk_1.default.cyan('[DRY RUN] No files will be written.'));
160
+ for (const t of [...filesToCreate, ...filesToUpdate]) {
161
+ p.log.message(` ${chalk_1.default.green('+')} ${t.filename} - ${t.description}`);
162
+ }
163
+ p.outro(chalk_1.default.green('Dry run completed.'));
164
+ return;
165
+ }
166
+ let created = 0;
167
+ let updated = 0;
168
+ for (const template of filesToCreate) {
169
+ const filePath = path.join(targetDir, template.filename);
170
+ await fs.ensureDir(path.dirname(filePath));
171
+ await fs.writeFile(filePath, template.content, 'utf-8');
172
+ p.log.success(`Created: ${template.filename}`);
173
+ created++;
174
+ }
175
+ for (const template of filesToUpdate) {
176
+ const filePath = path.join(targetDir, template.filename);
177
+ await fs.writeFile(filePath, template.content, 'utf-8');
178
+ p.log.success(`Updated: ${template.filename}`);
179
+ updated++;
180
+ }
181
+ p.outro(chalk_1.default.green(`Documentation scaffolded: ${created} created, ${updated} updated.`));
182
+ }
183
+ getTemplates(templateName) {
184
+ if (templateName === 'minimal') {
185
+ return DEFAULT_TEMPLATES.filter(t => ['README.md', 'AGENTS.md'].includes(t.filename));
186
+ }
187
+ return DEFAULT_TEMPLATES;
56
188
  }
57
189
  parseDryRun() {
58
190
  return true;
59
191
  }
192
+ parseForce() {
193
+ return true;
194
+ }
195
+ parseTemplate(val) {
196
+ return val;
197
+ }
60
198
  };
61
199
  exports.DocsCommand = DocsCommand;
62
200
  __decorate([
63
201
  (0, nest_commander_1.Option)({
64
202
  flags: '-d, --dry-run',
65
- description: 'Ejecuta en modo simulacro sin alterar archivos',
203
+ description: 'Run in dry-run mode without writing files',
66
204
  }),
67
205
  __metadata("design:type", Function),
68
206
  __metadata("design:paramtypes", []),
69
207
  __metadata("design:returntype", Boolean)
70
208
  ], DocsCommand.prototype, "parseDryRun", null);
209
+ __decorate([
210
+ (0, nest_commander_1.Option)({
211
+ flags: '-f, --force',
212
+ description: 'Overwrite existing files',
213
+ }),
214
+ __metadata("design:type", Function),
215
+ __metadata("design:paramtypes", []),
216
+ __metadata("design:returntype", Boolean)
217
+ ], DocsCommand.prototype, "parseForce", null);
218
+ __decorate([
219
+ (0, nest_commander_1.Option)({
220
+ flags: '-t, --template <type>',
221
+ description: 'Template type to use (default, minimal)',
222
+ }),
223
+ __metadata("design:type", Function),
224
+ __metadata("design:paramtypes", [String]),
225
+ __metadata("design:returntype", String)
226
+ ], DocsCommand.prototype, "parseTemplate", null);
71
227
  exports.DocsCommand = DocsCommand = __decorate([
72
228
  (0, nest_commander_1.Command)({
73
229
  name: 'docs',
74
- description: 'Andamia la documentación base requerida por Evolith',
230
+ description: 'Scaffolds base documentation required by Evolith',
75
231
  })
76
232
  ], DocsCommand);
77
233
  //# sourceMappingURL=docs.command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"docs.command.js","sourceRoot":"","sources":["../../../src/commands/docs/docs.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAgE;AAChE,kDAAoC;AACpC,kDAA0B;AAUnB,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,8BAAa;IAC5C,KAAK,CAAC,GAAG,CAAC,WAAqB,EAAE,OAA4B;QAC3D,CAAC,CAAC,KAAK,CAAC,eAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAExE,CAAC,CAAC,KAAK,CAAC,eAAK,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAC;IACpE,CAAC;IAMD,WAAW;QACT,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAdY,kCAAW;AAWtB;IAJC,IAAA,uBAAM,EAAC;QACN,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,gDAAgD;KAC9D,CAAC;;;;8CAGD;sBAbU,WAAW;IAJvB,IAAA,wBAAO,EAAC;QACP,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,qDAAqD;KACnE,CAAC;GACW,WAAW,CAcvB"}
1
+ {"version":3,"file":"docs.command.js","sourceRoot":"","sources":["../../../src/commands/docs/docs.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,87 @@
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 __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const docs_command_1 = require("./docs.command");
37
+ jest.mock('fs-extra', () => ({
38
+ pathExists: jest.fn(),
39
+ writeFile: jest.fn(),
40
+ ensureDir: jest.fn(),
41
+ }));
42
+ jest.mock('@clack/prompts', () => ({
43
+ intro: jest.fn(),
44
+ outro: jest.fn(),
45
+ log: {
46
+ info: jest.fn(),
47
+ success: jest.fn(),
48
+ message: jest.fn(),
49
+ },
50
+ }));
51
+ const fs = __importStar(require("fs-extra"));
52
+ const p = __importStar(require("@clack/prompts"));
53
+ describe('DocsCommand', () => {
54
+ let command;
55
+ beforeEach(() => {
56
+ command = new docs_command_1.DocsCommand();
57
+ jest.clearAllMocks();
58
+ });
59
+ describe('run', () => {
60
+ it('should create documentation files', async () => {
61
+ fs.pathExists.mockResolvedValue(false);
62
+ await command.run([], {});
63
+ expect(fs.writeFile).toHaveBeenCalled();
64
+ });
65
+ it('should skip existing files when force is false', async () => {
66
+ fs.pathExists.mockResolvedValue(true);
67
+ await command.run([], { force: false });
68
+ expect(fs.writeFile).not.toHaveBeenCalled();
69
+ });
70
+ it('should overwrite existing files when force is true', async () => {
71
+ fs.pathExists.mockResolvedValue(true);
72
+ await command.run([], { force: true });
73
+ expect(fs.writeFile).toHaveBeenCalled();
74
+ });
75
+ it('should not write files in dry run mode', async () => {
76
+ fs.pathExists.mockResolvedValue(false);
77
+ await command.run([], { dryRun: true });
78
+ expect(fs.writeFile).not.toHaveBeenCalled();
79
+ });
80
+ it('should show dry run message', async () => {
81
+ fs.pathExists.mockResolvedValue(false);
82
+ await command.run([], { dryRun: true });
83
+ expect(p.log.info).toHaveBeenCalledWith(expect.stringContaining('DRY RUN'));
84
+ });
85
+ });
86
+ });
87
+ //# sourceMappingURL=docs.command.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.command.spec.js","sourceRoot":"","sources":["../../../src/commands/docs/docs.command.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { CommandRunner } from 'nest-commander';
2
+ interface DriftOptions {
3
+ path?: string;
4
+ level?: string;
5
+ json?: boolean;
6
+ history?: boolean;
7
+ trend?: boolean;
8
+ }
9
+ export declare class DriftCommand extends CommandRunner {
10
+ run(_passedParam: string[], options?: DriftOptions): Promise<void>;
11
+ private printDriftReport;
12
+ private printViolations;
13
+ private showTrend;
14
+ private showHistory;
15
+ private getScoreColor;
16
+ private getSeverityColor;
17
+ private getTrendColor;
18
+ parsePath(val: string): string;
19
+ parseLevel(val: string): string;
20
+ parseJson(): boolean;
21
+ parseHistory(): boolean;
22
+ parseTrend(): boolean;
23
+ }
24
+ export {};