@evolith/smart-cli 0.0.2-beta → 1.1.0

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 (271) hide show
  1. package/README.es.md +51 -15
  2. package/README.md +51 -15
  3. package/dist/app.module.js +2 -2
  4. package/dist/app.module.js.map +1 -1
  5. package/dist/app.module.spec.d.ts +1 -0
  6. package/dist/app.module.spec.js +305 -0
  7. package/dist/app.module.spec.js.map +1 -0
  8. package/dist/application/ports/webhook-notifier.port.d.ts +4 -0
  9. package/dist/application/ports/webhook-notifier.port.js +3 -0
  10. package/dist/application/ports/webhook-notifier.port.js.map +1 -0
  11. package/dist/application/services/index.d.ts +1 -0
  12. package/dist/application/services/index.js +28 -2
  13. package/dist/application/services/index.js.map +1 -1
  14. package/dist/application/services/initialize-project.spec.d.ts +1 -0
  15. package/dist/application/services/initialize-project.spec.js +211 -0
  16. package/dist/application/services/initialize-project.spec.js.map +1 -0
  17. package/dist/application/use-cases/evaluate-gate.use-case.d.ts +20 -0
  18. package/dist/application/use-cases/evaluate-gate.use-case.js +72 -0
  19. package/dist/application/use-cases/evaluate-gate.use-case.js.map +1 -0
  20. package/dist/application/use-cases/validate-satellite.use-case.d.ts +1 -0
  21. package/dist/application/use-cases/validate-satellite.use-case.js +7 -3
  22. package/dist/application/use-cases/validate-satellite.use-case.js.map +1 -1
  23. package/dist/commands/adr/adr.command.d.ts +2 -0
  24. package/dist/commands/adr/adr.command.js +36 -14
  25. package/dist/commands/adr/adr.command.js.map +1 -1
  26. package/dist/commands/adr/adr.command.spec.d.ts +1 -0
  27. package/dist/commands/adr/adr.command.spec.js +409 -0
  28. package/dist/commands/adr/adr.command.spec.js.map +1 -0
  29. package/dist/commands/architecture/scaffold.command.d.ts +1 -0
  30. package/dist/commands/architecture/scaffold.command.js +23 -1
  31. package/dist/commands/architecture/scaffold.command.js.map +1 -1
  32. package/dist/commands/architecture/scaffold.command.spec.d.ts +1 -0
  33. package/dist/commands/architecture/scaffold.command.spec.js +207 -0
  34. package/dist/commands/architecture/scaffold.command.spec.js.map +1 -0
  35. package/dist/commands/completion/completion.command.spec.d.ts +1 -0
  36. package/dist/commands/completion/completion.command.spec.js +240 -0
  37. package/dist/commands/completion/completion.command.spec.js.map +1 -0
  38. package/dist/commands/docs/docs.command.spec.d.ts +1 -0
  39. package/dist/commands/docs/docs.command.spec.js +87 -0
  40. package/dist/commands/docs/docs.command.spec.js.map +1 -0
  41. package/dist/commands/drift/drift.command.spec.d.ts +1 -0
  42. package/dist/commands/drift/drift.command.spec.js +327 -0
  43. package/dist/commands/drift/drift.command.spec.js.map +1 -0
  44. package/dist/commands/gate/gate.command.d.ts +23 -0
  45. package/dist/commands/gate/gate.command.js +210 -0
  46. package/dist/commands/gate/gate.command.js.map +1 -0
  47. package/dist/commands/history/history.command.spec.d.ts +1 -0
  48. package/dist/commands/history/history.command.spec.js +392 -0
  49. package/dist/commands/history/history.command.spec.js.map +1 -0
  50. package/dist/commands/init/agents.command.spec.js +398 -0
  51. package/dist/commands/init/agents.command.spec.js.map +1 -1
  52. package/dist/commands/init/init.command.spec.d.ts +1 -0
  53. package/dist/commands/init/init.command.spec.js +272 -0
  54. package/dist/commands/init/init.command.spec.js.map +1 -0
  55. package/dist/commands/init/upgrade.command.spec.d.ts +1 -0
  56. package/dist/commands/init/upgrade.command.spec.js +378 -0
  57. package/dist/commands/init/upgrade.command.spec.js.map +1 -0
  58. package/dist/commands/mcp/mcp-serve.command.spec.d.ts +1 -0
  59. package/dist/commands/mcp/mcp-serve.command.spec.js +58 -0
  60. package/dist/commands/mcp/mcp-serve.command.spec.js.map +1 -0
  61. package/dist/commands/sdlc/gate-status.command.d.ts +3 -1
  62. package/dist/commands/sdlc/gate-status.command.js +78 -3
  63. package/dist/commands/sdlc/gate-status.command.js.map +1 -1
  64. package/dist/commands/sdlc/gate-status.command.spec.d.ts +1 -0
  65. package/dist/commands/sdlc/gate-status.command.spec.js +302 -0
  66. package/dist/commands/sdlc/gate-status.command.spec.js.map +1 -0
  67. package/dist/commands/sdlc/generate-domain.command.d.ts +2 -0
  68. package/dist/commands/sdlc/generate-domain.command.js +123 -12
  69. package/dist/commands/sdlc/generate-domain.command.js.map +1 -1
  70. package/dist/commands/sdlc/generate-domain.command.spec.d.ts +1 -0
  71. package/dist/commands/sdlc/generate-domain.command.spec.js +121 -0
  72. package/dist/commands/sdlc/generate-domain.command.spec.js.map +1 -0
  73. package/dist/commands/sdlc/handoff.command.js +2 -2
  74. package/dist/commands/sdlc/handoff.command.js.map +1 -1
  75. package/dist/commands/sdlc/handoff.command.spec.d.ts +1 -0
  76. package/dist/commands/sdlc/handoff.command.spec.js +395 -0
  77. package/dist/commands/sdlc/handoff.command.spec.js.map +1 -0
  78. package/dist/commands/sdlc/sdlc.command.js +40 -6
  79. package/dist/commands/sdlc/sdlc.command.js.map +1 -1
  80. package/dist/commands/sdlc/sdlc.command.spec.d.ts +1 -0
  81. package/dist/commands/sdlc/sdlc.command.spec.js +79 -0
  82. package/dist/commands/sdlc/sdlc.command.spec.js.map +1 -0
  83. package/dist/commands/standards/standards.command.spec.d.ts +1 -0
  84. package/dist/commands/standards/standards.command.spec.js +311 -0
  85. package/dist/commands/standards/standards.command.spec.js.map +1 -0
  86. package/dist/commands/validate/validate.command.d.ts +2 -0
  87. package/dist/commands/validate/validate.command.js +16 -2
  88. package/dist/commands/validate/validate.command.js.map +1 -1
  89. package/dist/commands/validate/validate.command.spec.d.ts +1 -0
  90. package/dist/commands/validate/validate.command.spec.js +368 -0
  91. package/dist/commands/validate/validate.command.spec.js.map +1 -0
  92. package/dist/core/abstractions/interfaces.d.ts +1 -0
  93. package/dist/core/abstractions/interfaces.js.map +1 -1
  94. package/dist/core/abstractions/providers/config-parser.provider.spec.d.ts +1 -0
  95. package/dist/core/abstractions/providers/config-parser.provider.spec.js +18 -0
  96. package/dist/core/abstractions/providers/config-parser.provider.spec.js.map +1 -0
  97. package/dist/core/abstractions/providers/logger.provider.spec.d.ts +1 -0
  98. package/dist/core/abstractions/providers/logger.provider.spec.js +212 -0
  99. package/dist/core/abstractions/providers/logger.provider.spec.js.map +1 -0
  100. package/dist/core/abstractions/providers/mock-filesystem.provider.d.ts +1 -0
  101. package/dist/core/abstractions/providers/mock-filesystem.provider.js +4 -0
  102. package/dist/core/abstractions/providers/mock-filesystem.provider.js.map +1 -1
  103. package/dist/core/abstractions/providers/mock-filesystem.provider.spec.d.ts +1 -0
  104. package/dist/core/abstractions/providers/mock-filesystem.provider.spec.js +56 -0
  105. package/dist/core/abstractions/providers/mock-filesystem.provider.spec.js.map +1 -0
  106. package/dist/core/abstractions/providers/node-filesystem.provider.d.ts +1 -0
  107. package/dist/core/abstractions/providers/node-filesystem.provider.js +4 -0
  108. package/dist/core/abstractions/providers/node-filesystem.provider.js.map +1 -1
  109. package/dist/core/architecture/nx-workspace.strategy.d.ts +3 -0
  110. package/dist/core/architecture/nx-workspace.strategy.js +35 -6
  111. package/dist/core/architecture/nx-workspace.strategy.js.map +1 -1
  112. package/dist/core/architecture/nx-workspace.strategy.spec.d.ts +1 -0
  113. package/dist/core/architecture/nx-workspace.strategy.spec.js +187 -0
  114. package/dist/core/architecture/nx-workspace.strategy.spec.js.map +1 -0
  115. package/dist/core/architecture/workspace-manager.strategy.d.ts +1 -0
  116. package/dist/core/di/container.spec.js +164 -0
  117. package/dist/core/di/container.spec.js.map +1 -1
  118. package/dist/core/generators/hexagonal-scaffolder.d.ts +6 -0
  119. package/dist/core/generators/hexagonal-scaffolder.js +260 -0
  120. package/dist/core/generators/hexagonal-scaffolder.js.map +1 -0
  121. package/dist/core/generators/hexagonal-scaffolder.spec.d.ts +1 -0
  122. package/dist/core/generators/hexagonal-scaffolder.spec.js +164 -0
  123. package/dist/core/generators/hexagonal-scaffolder.spec.js.map +1 -0
  124. package/dist/core/generators/mermaid-class-parser.d.ts +38 -0
  125. package/dist/core/generators/mermaid-class-parser.js +183 -0
  126. package/dist/core/generators/mermaid-class-parser.js.map +1 -0
  127. package/dist/core/generators/mermaid-class-parser.spec.d.ts +1 -0
  128. package/dist/core/generators/mermaid-class-parser.spec.js +148 -0
  129. package/dist/core/generators/mermaid-class-parser.spec.js.map +1 -0
  130. package/dist/core/mcp/metrics.service.spec.d.ts +1 -0
  131. package/dist/core/mcp/metrics.service.spec.js +159 -0
  132. package/dist/core/mcp/metrics.service.spec.js.map +1 -0
  133. package/dist/core/mcp/prompts/index.js +36 -0
  134. package/dist/core/mcp/prompts/index.js.map +1 -1
  135. package/dist/core/mcp/prompts/index.spec.d.ts +1 -0
  136. package/dist/core/mcp/prompts/index.spec.js +150 -0
  137. package/dist/core/mcp/prompts/index.spec.js.map +1 -0
  138. package/dist/core/mcp/resources/index.js +16 -0
  139. package/dist/core/mcp/resources/index.js.map +1 -1
  140. package/dist/core/mcp/resources/index.spec.d.ts +1 -0
  141. package/dist/core/mcp/resources/index.spec.js +212 -0
  142. package/dist/core/mcp/resources/index.spec.js.map +1 -0
  143. package/dist/core/mcp/server.d.ts +4 -1
  144. package/dist/core/mcp/server.js +250 -25
  145. package/dist/core/mcp/server.js.map +1 -1
  146. package/dist/core/mcp/server.spec.d.ts +1 -0
  147. package/dist/core/mcp/server.spec.js +579 -0
  148. package/dist/core/mcp/server.spec.js.map +1 -0
  149. package/dist/core/mcp/tools/agent.spec.d.ts +1 -0
  150. package/dist/core/mcp/tools/agent.spec.js +171 -0
  151. package/dist/core/mcp/tools/agent.spec.js.map +1 -0
  152. package/dist/core/mcp/tools/architecture.d.ts +2 -0
  153. package/dist/core/mcp/tools/architecture.js +68 -0
  154. package/dist/core/mcp/tools/architecture.js.map +1 -1
  155. package/dist/core/mcp/tools/architecture.spec.d.ts +1 -0
  156. package/dist/core/mcp/tools/architecture.spec.js +145 -0
  157. package/dist/core/mcp/tools/architecture.spec.js.map +1 -0
  158. package/dist/core/mcp/tools/gate.d.ts +1 -0
  159. package/dist/core/mcp/tools/gate.js +68 -0
  160. package/dist/core/mcp/tools/gate.js.map +1 -0
  161. package/dist/core/mcp/tools/moscow.d.ts +30 -0
  162. package/dist/core/mcp/tools/moscow.js +113 -0
  163. package/dist/core/mcp/tools/moscow.js.map +1 -0
  164. package/dist/core/mcp/tools/moscow.spec.d.ts +1 -0
  165. package/dist/core/mcp/tools/moscow.spec.js +209 -0
  166. package/dist/core/mcp/tools/moscow.spec.js.map +1 -0
  167. package/dist/core/mcp/tools/sdlc.js +2 -1
  168. package/dist/core/mcp/tools/sdlc.js.map +1 -1
  169. package/dist/core/mcp/tools/sdlc.spec.d.ts +1 -0
  170. package/dist/core/mcp/tools/sdlc.spec.js +170 -0
  171. package/dist/core/mcp/tools/sdlc.spec.js.map +1 -0
  172. package/dist/core/mcp/tools/validate.spec.d.ts +1 -0
  173. package/dist/core/mcp/tools/validate.spec.js +130 -0
  174. package/dist/core/mcp/tools/validate.spec.js.map +1 -0
  175. package/dist/core/mcp/watcher.service.spec.js +109 -8
  176. package/dist/core/mcp/watcher.service.spec.js.map +1 -1
  177. package/dist/core/metrics/dora-calculator.d.ts +18 -0
  178. package/dist/core/metrics/dora-calculator.js +146 -0
  179. package/dist/core/metrics/dora-calculator.js.map +1 -0
  180. package/dist/core/metrics/dora-calculator.spec.d.ts +1 -0
  181. package/dist/core/metrics/dora-calculator.spec.js +164 -0
  182. package/dist/core/metrics/dora-calculator.spec.js.map +1 -0
  183. package/dist/core/metrics/git-log-reader.d.ts +14 -0
  184. package/dist/core/metrics/git-log-reader.js +39 -0
  185. package/dist/core/metrics/git-log-reader.js.map +1 -0
  186. package/dist/core/metrics/git-log-reader.spec.d.ts +1 -0
  187. package/dist/core/metrics/git-log-reader.spec.js +108 -0
  188. package/dist/core/metrics/git-log-reader.spec.js.map +1 -0
  189. package/dist/core/observability/command-watcher.spec.d.ts +1 -0
  190. package/dist/core/observability/command-watcher.spec.js +123 -0
  191. package/dist/core/observability/command-watcher.spec.js.map +1 -0
  192. package/dist/core/observability/error-reporter.spec.d.ts +1 -0
  193. package/dist/core/observability/error-reporter.spec.js +291 -0
  194. package/dist/core/observability/error-reporter.spec.js.map +1 -0
  195. package/dist/core/observability/index.d.ts +1 -0
  196. package/dist/core/observability/index.js +3 -1
  197. package/dist/core/observability/index.js.map +1 -1
  198. package/dist/core/observability/structured-logger.spec.d.ts +1 -0
  199. package/dist/core/observability/structured-logger.spec.js +197 -0
  200. package/dist/core/observability/structured-logger.spec.js.map +1 -0
  201. package/dist/core/observability/timing.spec.d.ts +1 -0
  202. package/dist/core/observability/timing.spec.js +216 -0
  203. package/dist/core/observability/timing.spec.js.map +1 -0
  204. package/dist/core/observability/tool-usage-telemetry.service.d.ts +46 -0
  205. package/dist/core/observability/tool-usage-telemetry.service.js +181 -0
  206. package/dist/core/observability/tool-usage-telemetry.service.js.map +1 -0
  207. package/dist/core/services/command-history.service.d.ts +1 -0
  208. package/dist/core/services/command-history.service.js +4 -0
  209. package/dist/core/services/command-history.service.js.map +1 -1
  210. package/dist/core/services/command-history.service.spec.js +217 -126
  211. package/dist/core/services/command-history.service.spec.js.map +1 -1
  212. package/dist/core/upgrade/satellite-upgrade.service.spec.js +212 -132
  213. package/dist/core/upgrade/satellite-upgrade.service.spec.js.map +1 -1
  214. package/dist/core/validators/deep-architecture-analyzer.d.ts +58 -0
  215. package/dist/core/validators/deep-architecture-analyzer.js +333 -0
  216. package/dist/core/validators/deep-architecture-analyzer.js.map +1 -0
  217. package/dist/core/validators/deep-architecture-analyzer.spec.d.ts +1 -0
  218. package/dist/core/validators/deep-architecture-analyzer.spec.js +186 -0
  219. package/dist/core/validators/deep-architecture-analyzer.spec.js.map +1 -0
  220. package/dist/core/validators/evaluators/evaluator.interface.d.ts +14 -0
  221. package/dist/core/validators/evaluators/evaluator.interface.js +3 -0
  222. package/dist/core/validators/evaluators/evaluator.interface.js.map +1 -0
  223. package/dist/core/validators/evaluators/native-evaluator.d.ts +31 -0
  224. package/dist/core/validators/evaluators/native-evaluator.js +461 -0
  225. package/dist/core/validators/evaluators/native-evaluator.js.map +1 -0
  226. package/dist/core/validators/evaluators/opa-evaluator.d.ts +20 -0
  227. package/dist/core/validators/evaluators/opa-evaluator.js +249 -0
  228. package/dist/core/validators/evaluators/opa-evaluator.js.map +1 -0
  229. package/dist/core/validators/phase-gate-validator.service.d.ts +4 -0
  230. package/dist/core/validators/phase-gate-validator.service.js +76 -9
  231. package/dist/core/validators/phase-gate-validator.service.js.map +1 -1
  232. package/dist/core/validators/rule-evaluation-engine.d.ts +34 -0
  233. package/dist/core/validators/rule-evaluation-engine.js +187 -0
  234. package/dist/core/validators/rule-evaluation-engine.js.map +1 -0
  235. package/dist/core/validators/rule-evaluation-engine.spec.d.ts +1 -0
  236. package/dist/core/validators/rule-evaluation-engine.spec.js +243 -0
  237. package/dist/core/validators/rule-evaluation-engine.spec.js.map +1 -0
  238. package/dist/core/validators/ruleset-validator-architecture.spec.js +2 -2
  239. package/dist/core/validators/ruleset-validator-architecture.spec.js.map +1 -1
  240. package/dist/core/validators/ruleset-validator.service.d.ts +2 -0
  241. package/dist/core/validators/ruleset-validator.service.js +36 -11
  242. package/dist/core/validators/ruleset-validator.service.js.map +1 -1
  243. package/dist/core/validators/ruleset-validator.service.spec.js +347 -0
  244. package/dist/core/validators/ruleset-validator.service.spec.js.map +1 -1
  245. package/dist/domain/gate-evidence.d.ts +59 -0
  246. package/dist/domain/gate-evidence.js +38 -0
  247. package/dist/domain/gate-evidence.js.map +1 -0
  248. package/dist/domain/services/adr.service.d.ts +2 -2
  249. package/dist/domain/services/adr.service.js +12 -8
  250. package/dist/domain/services/adr.service.js.map +1 -1
  251. package/dist/domain/services/index.d.ts +1 -0
  252. package/dist/domain/services/index.js +3 -1
  253. package/dist/domain/services/index.js.map +1 -1
  254. package/dist/domain/services/moscow-prioritization.service.d.ts +44 -0
  255. package/dist/domain/services/moscow-prioritization.service.js +213 -0
  256. package/dist/domain/services/moscow-prioritization.service.js.map +1 -0
  257. package/dist/domain/services/moscow-prioritization.service.spec.d.ts +1 -0
  258. package/dist/domain/services/moscow-prioritization.service.spec.js +285 -0
  259. package/dist/domain/services/moscow-prioritization.service.spec.js.map +1 -0
  260. package/dist/domain/services/standards.service.spec.js +461 -1
  261. package/dist/domain/services/standards.service.spec.js.map +1 -1
  262. package/dist/infrastructure/adapters/webhook.adapter.d.ts +5 -0
  263. package/dist/infrastructure/adapters/webhook.adapter.js +19 -0
  264. package/dist/infrastructure/adapters/webhook.adapter.js.map +1 -0
  265. package/dist/infrastructure/cli/command-executor.spec.d.ts +1 -0
  266. package/dist/infrastructure/cli/command-executor.spec.js +149 -0
  267. package/dist/infrastructure/cli/command-executor.spec.js.map +1 -0
  268. package/dist/infrastructure/cli/providers/providers.spec.d.ts +1 -0
  269. package/dist/infrastructure/cli/providers/providers.spec.js +251 -0
  270. package/dist/infrastructure/cli/providers/providers.spec.js.map +1 -0
  271. package/package.json +23 -5
package/README.es.md CHANGED
@@ -25,7 +25,7 @@ Descarga el binario más reciente desde [GitHub Releases](https://github.com/bey
25
25
 
26
26
  ```bash
27
27
  smart-cli --version
28
- # smart-cli version 0.0.1-beta
28
+ # smart-cli version 0.0.3-beta
29
29
  ```
30
30
 
31
31
  ## Inicio Rápido
@@ -73,8 +73,12 @@ Opciones:
73
73
  --format <formato> Formato de salida: json, table, yaml, markdown
74
74
  --output <archivo> Escribir salida a archivo
75
75
  --ruleset <id> Validar ruleset específico (acl, open-core, inheritance)
76
+ --engine <engine> Motor de evaluación de políticas: native u opa (por defecto: native)
76
77
  ```
77
78
 
79
+ **Evaluación de Políticas Dual-Engine:**
80
+ La CLI soporta la evaluación de políticas utilizando el motor integrado en TypeScript (`native`) o módulos WebAssembly de Open Policy Agent (`opa`). Ver [Core ADR-0041](../../reference/architecture/adrs/core/0041-dual-engine-policy-evaluation.es.md) para más detalles.
81
+
78
82
  **Ejemplos:**
79
83
 
80
84
  ```bash
@@ -229,6 +233,16 @@ smart-cli mcp serve
229
233
 
230
234
  El servidor se comunica vía stdio JSON-RPC.
231
235
 
236
+ ### Smoke Test MCP
237
+
238
+ Usar el smoke test antes de releases o cambios de protocolo MCP:
239
+
240
+ ```bash
241
+ npm run mcp:smoke
242
+ ```
243
+
244
+ El smoke verifica `initialize`, `tools/list`, `resources/list`, `prompts/list` y una llamada real `tools/call` mediante la CLI compilada.
245
+
232
246
  También puedes iniciar en modo HTTP:
233
247
 
234
248
  ```bash
@@ -243,12 +257,21 @@ smart-cli mcp serve --transport http --port 3000
243
257
  | `evolith-agent-install` | Instalar nuevo agente |
244
258
  | `evolith-agent-list` | Listar agentes instalados |
245
259
  | `evolith-agent-validate` | Validar ruleset del agente |
246
- | `evolith-architecture-validate` | Validar arquitectura |
247
- | `evolith-sdlc-handoff` | Generar transición de fase |
248
- | `evolith-sdlc-status` | Mostrar estado de fase SDLC |
249
- | `evolith-config-get` | Obtener valor de configuración |
250
- | `evolith-config-set` | Establecer valor de configuración |
260
+ | `evolith-agent-upgrade` | Actualizar un agente existente |
261
+ | `evolith-agent-remove` | Eliminar un agente |
262
+ | `evolith-architecture-validate` | Validar arquitectura (F1/F2/F3) con análisis profundo opcional |
263
+ | `evolith-sdlc-handoff` | Generar manifiesto de artefactos de transición de fase |
264
+ | `evolith-sdlc-status` | Mostrar estado de phase gate SDLC |
265
+ | `evolith-config-get` | Obtener valor de configuración de `evolith.yaml` |
266
+ | `evolith-config-set` | Establecer valor de configuración en `evolith.yaml` |
251
267
  | `evolith-metrics` | Obtener métricas del servidor MCP |
268
+ | `evolith-moscow-create` | Crear un nuevo análisis de priorización MoSCoW |
269
+ | `evolith-moscow-load` | Cargar un análisis MoSCoW existente |
270
+ | `evolith-moscow-update` | Actualizar un ítem en un análisis MoSCoW |
271
+ | `evolith-moscow-remove` | Eliminar un ítem de un análisis MoSCoW |
272
+ | `evolith-moscow-list` | Listar todos los análisis MoSCoW de un repositorio |
273
+ | `evolith-moscow-validate` | Validar la corrección de un análisis MoSCoW |
274
+ | `evolith-moscow-report` | Generar un reporte markdown desde un análisis MoSCoW |
252
275
 
253
276
  ### Configuración para Cursor AI
254
277
 
@@ -297,15 +320,15 @@ Resultado: ✓ El repositorio cumple con los estándares de Evolith
297
320
  Reglas verificadas: 12
298
321
  Todas las puertas pasaron
299
322
 
300
- Tú: Muéstrame los ADR
301
- Agente: Déjame obtener la lista de ADR...
323
+ Tú: Muéstrame el estado SDLC
324
+ Agente: Déjame verificar el estado de los phase gates...
302
325
 
303
- await mcp.callTool('evolith-adr-list', {})
326
+ await mcp.callTool('evolith-sdlc-status', {
327
+ path: '/user/project'
328
+ })
304
329
 
305
- Resultado: Se encontraron 5 ADR:
306
- - ADR-0001: Plantilla de Registro de Decisión de Arquitectura
307
- - ADR-0002: Arquitectura Hexagonal (aceptado)
308
- - ADR-0003: Pirámide de Pruebas (aceptado)
330
+ Resultado: Fase 1 3 gates pasados, 0 fallados
331
+ Todos los artefactos de evidencia presentes
309
332
  ```
310
333
 
311
334
  ## Configuración
@@ -315,7 +338,7 @@ Evolith usa un archivo `evolith.yaml` en la raíz del repositorio:
315
338
  ```yaml
316
339
  coreRef:
317
340
  version: "1.0.0"
318
- path: "../evolith"
341
+ path: "../../evolith"
319
342
 
320
343
  governance:
321
344
  version: "1.0"
@@ -389,9 +412,15 @@ npm link # Enlazar globalmente para pruebas
389
412
  ### Ejecutar Pruebas
390
413
 
391
414
  ```bash
415
+ # Ejecutar todas las pruebas
392
416
  npm test
417
+
418
+ # Ejecutar con reporte de cobertura
419
+ npm run test:cov
393
420
  ```
394
421
 
422
+ **Cobertura (v0.0.3-beta):** 88.7% statements · 89.8% lines · 77.0% branches · 83.6% functions · 1 369 tests
423
+
395
424
  ### Estructura del Proyecto
396
425
 
397
426
  ```
@@ -407,6 +436,13 @@ sdk/cli/
407
436
  └── docs/ # Documentación
408
437
  ```
409
438
 
439
+ ## Documentación
440
+
441
+ - [Guía de Demo SMART CLI](docs/SMART-CLI-DEMO.es.md) - Guía completa que cubre todos los comandos, flujo SDLC, tipos de producto, integración MCP y validación de arquitectura
442
+ - [Visión](docs/VISION.es.md) - Visión y hoja de ruta de la CLI
443
+ - [Modelos de Datos](docs/data-models.es.md) - Modelos de datos del dominio
444
+ - [Integración MCP](docs/MCP-INTEGRATION.md) - Detalles de integración del servidor MCP
445
+
410
446
  ## Contribuir
411
447
 
412
448
  1. Haz fork del repositorio
@@ -422,4 +458,4 @@ ISC
422
458
 
423
459
  - [Documentación](https://github.com/beyondnetcode/evolith_arch32#readme)
424
460
  - [Rastreador de Incidencias](https://github.com/beyondnetcode/evolith_arch32/issues)
425
- - [Discusiones](https://github.com/beyondnetcode/evolith_arch32/discussions)
461
+ - [Discusiones](https://github.com/beyondnetcode/evolith_arch32/discussions)
package/README.md CHANGED
@@ -25,7 +25,7 @@ Download the latest binary from [GitHub Releases](https://github.com/beyondnetco
25
25
 
26
26
  ```bash
27
27
  smart-cli --version
28
- # smart-cli version 0.0.1-beta
28
+ # smart-cli version 0.0.3-beta
29
29
  ```
30
30
 
31
31
  ## Quickstart
@@ -73,8 +73,12 @@ Options:
73
73
  --format <format> Output format: json, table, yaml, markdown
74
74
  --output <file> Write output to file
75
75
  --ruleset <id> Validate specific ruleset (acl, open-core, inheritance)
76
+ --engine <engine> Policy evaluation engine: native or opa (default: native)
76
77
  ```
77
78
 
79
+ **Dual-Engine Policy Evaluation:**
80
+ The CLI supports evaluating policies using either the built-in TypeScript engine (`native`) or Open Policy Agent WebAssembly modules (`opa`). See [Core ADR-0041](../../reference/architecture/adrs/core/0041-dual-engine-policy-evaluation.md) for details.
81
+
78
82
  **Examples:**
79
83
 
80
84
  ```bash
@@ -229,6 +233,16 @@ smart-cli mcp serve
229
233
 
230
234
  The server communicates via stdio JSON-RPC.
231
235
 
236
+ ### MCP Smoke Test
237
+
238
+ Use the smoke test before releases or MCP protocol changes:
239
+
240
+ ```bash
241
+ npm run mcp:smoke
242
+ ```
243
+
244
+ The smoke verifies `initialize`, `tools/list`, `resources/list`, `prompts/list`, and a real `tools/call` through the built CLI.
245
+
232
246
  ### Available MCP Tools
233
247
 
234
248
  | Tool | Description |
@@ -237,12 +251,21 @@ The server communicates via stdio JSON-RPC.
237
251
  | `evolith-agent-install` | Install new agent |
238
252
  | `evolith-agent-list` | List installed agents |
239
253
  | `evolith-agent-validate` | Validate agent ruleset |
240
- | `evolith-architecture-validate` | Validate architecture |
241
- | `evolith-sdlc-handoff` | Generate phase handoff |
242
- | `evolith-sdlc-status` | Show SDLC phase status |
243
- | `evolith-config-get` | Get configuration value |
244
- | `evolith-config-set` | Set configuration value |
254
+ | `evolith-agent-upgrade` | Upgrade an existing agent |
255
+ | `evolith-agent-remove` | Remove an agent |
256
+ | `evolith-architecture-validate` | Validate architecture (F1/F2/F3) with optional deep analysis |
257
+ | `evolith-sdlc-handoff` | Generate phase handoff artifact manifest |
258
+ | `evolith-sdlc-status` | Show SDLC phase gate status |
259
+ | `evolith-config-get` | Get configuration value from `evolith.yaml` |
260
+ | `evolith-config-set` | Set configuration value in `evolith.yaml` |
245
261
  | `evolith-metrics` | Get MCP server metrics |
262
+ | `evolith-moscow-create` | Create a new MoSCoW prioritization analysis |
263
+ | `evolith-moscow-load` | Load an existing MoSCoW analysis |
264
+ | `evolith-moscow-update` | Update an item in a MoSCoW analysis |
265
+ | `evolith-moscow-remove` | Remove an item from a MoSCoW analysis |
266
+ | `evolith-moscow-list` | List all MoSCoW analyses for a repository |
267
+ | `evolith-moscow-validate` | Validate a MoSCoW analysis for correctness |
268
+ | `evolith-moscow-report` | Generate a markdown report from a MoSCoW analysis |
246
269
 
247
270
  ### Cursor AI Configuration
248
271
 
@@ -291,15 +314,15 @@ Result: ✓ Repository is compliant with Evolith standards
291
314
  Rules checked: 12
292
315
  All gates passed
293
316
 
294
- You: Show me the ADRs
295
- Agent: Let me fetch the ADR list...
317
+ You: Show me the SDLC status
318
+ Agent: Let me check the phase gate status...
296
319
 
297
- await mcp.callTool('evolith-adr-list', {})
320
+ await mcp.callTool('evolith-sdlc-status', {
321
+ path: '/user/project'
322
+ })
298
323
 
299
- Result: Found 5 ADRs:
300
- - ADR-0001: Architecture Decision Record Template
301
- - ADR-0002: Hexagonal Architecture (accepted)
302
- - ADR-0003: Testing Pyramid (accepted)
324
+ Result: Phase 1 — 3 gates passed, 0 failed
325
+ All evidence artifacts present
303
326
  ```
304
327
 
305
328
  ## Configuration
@@ -309,7 +332,7 @@ Evolith uses an `evolith.yaml` file in the repository root:
309
332
  ```yaml
310
333
  coreRef:
311
334
  version: "1.0.0"
312
- path: "../evolith"
335
+ path: "../../evolith"
313
336
 
314
337
  governance:
315
338
  version: "1.0"
@@ -383,9 +406,15 @@ npm link # Link globally for testing
383
406
  ### Running Tests
384
407
 
385
408
  ```bash
409
+ # Run all tests
386
410
  npm test
411
+
412
+ # Run with coverage report
413
+ npm run test:cov
387
414
  ```
388
415
 
416
+ **Coverage (as of v0.0.3-beta):** 88.7% statements · 89.8% lines · 77.0% branches · 83.6% functions · 1 369 tests
417
+
389
418
  ### Project Structure
390
419
 
391
420
  ```
@@ -401,6 +430,13 @@ sdk/cli/
401
430
  └── docs/ # Documentation
402
431
  ```
403
432
 
433
+ ## Documentation
434
+
435
+ - [SMART CLI Demo Guide](docs/SMART-CLI-DEMO.md) - Comprehensive guide covering all commands, SDLC flow, product types, MCP integration, and architecture validation
436
+ - [Vision](docs/VISION.md) - CLI vision and roadmap
437
+ - [Data Models](docs/data-models.md) - Domain data models
438
+ - [MCP Integration](docs/MCP-INTEGRATION.md) - MCP server integration details
439
+
404
440
  ## Contributing
405
441
 
406
442
  1. Fork the repository
@@ -416,4 +452,4 @@ ISC
416
452
 
417
453
  - [Documentation](https://github.com/beyondnetcode/evolith_arch32#readme)
418
454
  - [Issue Tracker](https://github.com/beyondnetcode/evolith_arch32/issues)
419
- - [Discussions](https://github.com/beyondnetcode/evolith_arch32/discussions)
455
+ - [Discussions](https://github.com/beyondnetcode/evolith_arch32/discussions)
@@ -18,7 +18,6 @@ const config_service_1 = require("./core/config/config.service");
18
18
  const file_manager_service_1 = require("./core/filesystem/file-manager.service");
19
19
  const sync_service_1 = require("./core/sync/sync.service");
20
20
  const watcher_service_1 = require("./core/mcp/watcher.service");
21
- const mcp_server_service_1 = require("./core/mcp/mcp-server.service");
22
21
  const sdlc_command_1 = require("./commands/sdlc/sdlc.command");
23
22
  const handoff_command_1 = require("./commands/sdlc/handoff.command");
24
23
  const generate_domain_command_1 = require("./commands/sdlc/generate-domain.command");
@@ -28,6 +27,7 @@ const standards_command_1 = require("./commands/standards/standards.command");
28
27
  const completion_command_1 = require("./commands/completion/completion.command");
29
28
  const history_command_1 = require("./commands/history/history.command");
30
29
  const drift_command_1 = require("./commands/drift/drift.command");
30
+ const gate_command_1 = require("./commands/gate/gate.command");
31
31
  let AppModule = class AppModule {
32
32
  };
33
33
  exports.AppModule = AppModule;
@@ -45,7 +45,6 @@ exports.AppModule = AppModule = __decorate([
45
45
  file_manager_service_1.FileManagerService,
46
46
  sync_service_1.SyncService,
47
47
  watcher_service_1.WatcherService,
48
- mcp_server_service_1.McpServerService,
49
48
  sdlc_command_1.SdlcCommand,
50
49
  handoff_command_1.HandoffCommand,
51
50
  generate_domain_command_1.GenerateDomainCommand,
@@ -55,6 +54,7 @@ exports.AppModule = AppModule = __decorate([
55
54
  completion_command_1.CompletionCommand,
56
55
  history_command_1.HistoryCommand,
57
56
  drift_command_1.DriftCommand,
57
+ gate_command_1.GateCommand,
58
58
  ],
59
59
  })
60
60
  ], AppModule);
@@ -1 +1 @@
1
- {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,+DAA2D;AAC3D,mEAA+D;AAC/D,2EAAuE;AACvE,+DAA2D;AAC3D,qEAAiE;AACjE,wEAAmE;AACnE,iEAA6D;AAC7D,iFAA4E;AAC5E,2DAAuD;AACvD,gEAA4D;AAC5D,sEAAiE;AACjE,+DAA2D;AAC3D,qEAAiE;AACjE,qFAAgF;AAChF,+EAA2E;AAC3E,4DAAwD;AACxD,8EAA0E;AAC1E,iFAA6E;AAC7E,wEAAoE;AACpE,kEAA8D;AA2BvD,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IAzBrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,EAAE;QACX,SAAS,EAAE;YACT,0BAAW;YACX,8BAAa;YACb,kCAAe;YACf,0BAAW;YACX,gCAAc;YACd,mCAAe;YACf,8BAAa;YACb,yCAAkB;YAClB,0BAAW;YACX,gCAAc;YACd,qCAAgB;YAChB,0BAAW;YACX,gCAAc;YACd,+CAAqB;YACrB,kCAAe;YACf,wBAAU;YACV,oCAAgB;YAChB,sCAAiB;YACjB,gCAAc;YACd,4BAAY;SACb;KACF,CAAC;GACW,SAAS,CAAG"}
1
+ {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,+DAA2D;AAC3D,mEAA+D;AAC/D,2EAAuE;AACvE,+DAA2D;AAC3D,qEAAiE;AACjE,wEAAmE;AACnE,iEAA6D;AAC7D,iFAA4E;AAC5E,2DAAuD;AACvD,gEAA4D;AAC5D,+DAA2D;AAC3D,qEAAiE;AACjE,qFAAgF;AAChF,+EAA2E;AAC3E,4DAAwD;AACxD,8EAA0E;AAC1E,iFAA6E;AAC7E,wEAAoE;AACpE,kEAA8D;AAC9D,+DAA2D;AA2BpD,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IAzBrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,EAAE;QACX,SAAS,EAAE;YACT,0BAAW;YACX,8BAAa;YACb,kCAAe;YACf,0BAAW;YACX,gCAAc;YACd,mCAAe;YACf,8BAAa;YACb,yCAAkB;YAClB,0BAAW;YACX,gCAAc;YACd,0BAAW;YACX,gCAAc;YACd,+CAAqB;YACrB,kCAAe;YACf,wBAAU;YACV,oCAAgB;YAChB,sCAAiB;YACjB,gCAAc;YACd,4BAAY;YACZ,0BAAW;SACZ;KACF,CAAC;GACW,SAAS,CAAG"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,305 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const testing_1 = require("@nestjs/testing");
4
+ const app_module_1 = require("./app.module");
5
+ const init_command_1 = require("./commands/init/init.command");
6
+ const agents_command_1 = require("./commands/init/agents.command");
7
+ const validate_command_1 = require("./commands/validate/validate.command");
8
+ const docs_command_1 = require("./commands/docs/docs.command");
9
+ const upgrade_command_1 = require("./commands/init/upgrade.command");
10
+ const mcp_serve_command_1 = require("./commands/mcp/mcp-serve.command");
11
+ const config_service_1 = require("./core/config/config.service");
12
+ const file_manager_service_1 = require("./core/filesystem/file-manager.service");
13
+ const sync_service_1 = require("./core/sync/sync.service");
14
+ const watcher_service_1 = require("./core/mcp/watcher.service");
15
+ const sdlc_command_1 = require("./commands/sdlc/sdlc.command");
16
+ const handoff_command_1 = require("./commands/sdlc/handoff.command");
17
+ const generate_domain_command_1 = require("./commands/sdlc/generate-domain.command");
18
+ const scaffold_command_1 = require("./commands/architecture/scaffold.command");
19
+ const adr_command_1 = require("./commands/adr/adr.command");
20
+ const standards_command_1 = require("./commands/standards/standards.command");
21
+ const completion_command_1 = require("./commands/completion/completion.command");
22
+ const history_command_1 = require("./commands/history/history.command");
23
+ const drift_command_1 = require("./commands/drift/drift.command");
24
+ jest.mock('@clack/prompts', () => ({
25
+ intro: jest.fn(),
26
+ outro: jest.fn(),
27
+ note: jest.fn(),
28
+ select: jest.fn(),
29
+ text: jest.fn(),
30
+ confirm: jest.fn(),
31
+ multiselect: jest.fn(),
32
+ group: jest.fn(),
33
+ spinner: jest.fn(() => ({ start: jest.fn(), stop: jest.fn() })),
34
+ cancel: jest.fn(),
35
+ log: {
36
+ info: jest.fn(),
37
+ warn: jest.fn(),
38
+ success: jest.fn(),
39
+ error: jest.fn(),
40
+ message: jest.fn(),
41
+ },
42
+ }));
43
+ jest.mock('chalk', () => {
44
+ const chalkFn = (str) => str;
45
+ chalkFn.green = (str) => str;
46
+ chalkFn.red = (str) => str;
47
+ chalkFn.bold = (str) => str;
48
+ chalkFn.yellow = (str) => str;
49
+ chalkFn.blue = (str) => str;
50
+ chalkFn.cyan = (str) => str;
51
+ chalkFn.bgCyan = { white: { bold: (str) => str } };
52
+ chalkFn.bgGreen = { white: { bold: (str) => str } };
53
+ chalkFn.bgBlue = { white: { bold: (str) => str } };
54
+ chalkFn.bgYellow = { white: { bold: (str) => str } };
55
+ chalkFn.bgRed = { white: { bold: (str) => str } };
56
+ chalkFn.bgMagenta = { white: { bold: (str) => str } };
57
+ chalkFn.gray = (str) => str;
58
+ return chalkFn;
59
+ });
60
+ jest.mock('./core/mcp/tools/tool-utils', () => ({
61
+ getFileSystem: jest.fn(() => ({
62
+ exists: jest.fn(),
63
+ readFile: jest.fn(),
64
+ writeFile: jest.fn(),
65
+ readJson: jest.fn(),
66
+ writeJson: jest.fn(),
67
+ ensureDir: jest.fn(),
68
+ readdirNames: jest.fn(),
69
+ remove: jest.fn(),
70
+ })),
71
+ getContainer: jest.fn(() => ({
72
+ createFileSystem: jest.fn(),
73
+ })),
74
+ }));
75
+ jest.mock('./core/di/container', () => ({
76
+ getContainer: jest.fn(() => ({
77
+ createFileSystem: jest.fn(() => ({
78
+ exists: jest.fn(),
79
+ readFile: jest.fn(),
80
+ writeFile: jest.fn(),
81
+ readJson: jest.fn(),
82
+ writeJson: jest.fn(),
83
+ ensureDir: jest.fn(),
84
+ readdirNames: jest.fn(),
85
+ remove: jest.fn(),
86
+ })),
87
+ createLogger: jest.fn(() => ({
88
+ info: jest.fn(),
89
+ warn: jest.fn(),
90
+ error: jest.fn(),
91
+ debug: jest.fn(),
92
+ })),
93
+ createConfigParser: jest.fn(() => ({
94
+ parse: jest.fn(),
95
+ stringify: jest.fn(),
96
+ })),
97
+ resolve: jest.fn(),
98
+ registerInstance: jest.fn(),
99
+ registerSingleton: jest.fn(),
100
+ registerTransient: jest.fn(),
101
+ })),
102
+ resetContainer: jest.fn(),
103
+ createChildContainer: jest.fn(),
104
+ }));
105
+ jest.mock('./infrastructure/catalog/catalog-loader', () => ({
106
+ catalogLoader: {
107
+ loadRuntimeCatalog: jest.fn(() => []),
108
+ getMonorepoOptions: jest.fn(() => []),
109
+ getArchitecturePatterns: jest.fn(() => []),
110
+ getDefaultDatabase: jest.fn(() => 'postgresql'),
111
+ getApiProtocols: jest.fn(() => []),
112
+ },
113
+ }));
114
+ jest.mock('./application/services', () => ({
115
+ InitializeProjectUseCase: jest.fn().mockImplementation(() => ({
116
+ execute: jest.fn(),
117
+ })),
118
+ }));
119
+ jest.mock('./core/observability', () => ({
120
+ logger: {
121
+ info: jest.fn(),
122
+ error: jest.fn(),
123
+ warn: jest.fn(),
124
+ },
125
+ errorReporter: {
126
+ report: jest.fn(),
127
+ printSummary: jest.fn(),
128
+ },
129
+ OperationTimer: jest.fn().mockImplementation(() => ({
130
+ start: jest.fn(),
131
+ end: jest.fn().mockReturnValue(500),
132
+ })),
133
+ commandWatcher: {
134
+ start: jest.fn(),
135
+ end: jest.fn(),
136
+ },
137
+ }));
138
+ describe('AppModule', () => {
139
+ it('should compile the module', async () => {
140
+ const module = await testing_1.Test.createTestingModule({
141
+ imports: [app_module_1.AppModule],
142
+ }).compile();
143
+ expect(module).toBeDefined();
144
+ });
145
+ it('should provide InitCommand', async () => {
146
+ const module = await testing_1.Test.createTestingModule({
147
+ imports: [app_module_1.AppModule],
148
+ }).compile();
149
+ const command = module.get(init_command_1.InitCommand);
150
+ expect(command).toBeDefined();
151
+ expect(command).toBeInstanceOf(init_command_1.InitCommand);
152
+ });
153
+ it('should provide AgentsCommand', async () => {
154
+ const module = await testing_1.Test.createTestingModule({
155
+ imports: [app_module_1.AppModule],
156
+ }).compile();
157
+ const command = module.get(agents_command_1.AgentsCommand);
158
+ expect(command).toBeDefined();
159
+ expect(command).toBeInstanceOf(agents_command_1.AgentsCommand);
160
+ });
161
+ it('should provide ValidateCommand', async () => {
162
+ const module = await testing_1.Test.createTestingModule({
163
+ imports: [app_module_1.AppModule],
164
+ }).compile();
165
+ const command = module.get(validate_command_1.ValidateCommand);
166
+ expect(command).toBeDefined();
167
+ expect(command).toBeInstanceOf(validate_command_1.ValidateCommand);
168
+ });
169
+ it('should provide DocsCommand', async () => {
170
+ const module = await testing_1.Test.createTestingModule({
171
+ imports: [app_module_1.AppModule],
172
+ }).compile();
173
+ const command = module.get(docs_command_1.DocsCommand);
174
+ expect(command).toBeDefined();
175
+ expect(command).toBeInstanceOf(docs_command_1.DocsCommand);
176
+ });
177
+ it('should provide UpgradeCommand', async () => {
178
+ const module = await testing_1.Test.createTestingModule({
179
+ imports: [app_module_1.AppModule],
180
+ }).compile();
181
+ const command = module.get(upgrade_command_1.UpgradeCommand);
182
+ expect(command).toBeDefined();
183
+ expect(command).toBeInstanceOf(upgrade_command_1.UpgradeCommand);
184
+ });
185
+ it('should provide McpServeCommand', async () => {
186
+ const module = await testing_1.Test.createTestingModule({
187
+ imports: [app_module_1.AppModule],
188
+ }).compile();
189
+ const command = module.get(mcp_serve_command_1.McpServeCommand);
190
+ expect(command).toBeDefined();
191
+ expect(command).toBeInstanceOf(mcp_serve_command_1.McpServeCommand);
192
+ });
193
+ it('should provide ConfigService', async () => {
194
+ const module = await testing_1.Test.createTestingModule({
195
+ imports: [app_module_1.AppModule],
196
+ }).compile();
197
+ const service = module.get(config_service_1.ConfigService);
198
+ expect(service).toBeDefined();
199
+ expect(service).toBeInstanceOf(config_service_1.ConfigService);
200
+ });
201
+ it('should provide FileManagerService', async () => {
202
+ const module = await testing_1.Test.createTestingModule({
203
+ imports: [app_module_1.AppModule],
204
+ }).compile();
205
+ const service = module.get(file_manager_service_1.FileManagerService);
206
+ expect(service).toBeDefined();
207
+ expect(service).toBeInstanceOf(file_manager_service_1.FileManagerService);
208
+ });
209
+ it('should provide SyncService', async () => {
210
+ const module = await testing_1.Test.createTestingModule({
211
+ imports: [app_module_1.AppModule],
212
+ }).compile();
213
+ const service = module.get(sync_service_1.SyncService);
214
+ expect(service).toBeDefined();
215
+ expect(service).toBeInstanceOf(sync_service_1.SyncService);
216
+ });
217
+ it('should provide WatcherService', async () => {
218
+ const module = await testing_1.Test.createTestingModule({
219
+ imports: [app_module_1.AppModule],
220
+ }).compile();
221
+ const service = module.get(watcher_service_1.WatcherService);
222
+ expect(service).toBeDefined();
223
+ expect(service).toBeInstanceOf(watcher_service_1.WatcherService);
224
+ });
225
+ it('should provide SdlcCommand', async () => {
226
+ const module = await testing_1.Test.createTestingModule({
227
+ imports: [app_module_1.AppModule],
228
+ }).compile();
229
+ const command = module.get(sdlc_command_1.SdlcCommand);
230
+ expect(command).toBeDefined();
231
+ expect(command).toBeInstanceOf(sdlc_command_1.SdlcCommand);
232
+ });
233
+ it('should provide HandoffCommand', async () => {
234
+ const module = await testing_1.Test.createTestingModule({
235
+ imports: [app_module_1.AppModule],
236
+ }).compile();
237
+ const command = module.get(handoff_command_1.HandoffCommand);
238
+ expect(command).toBeDefined();
239
+ expect(command).toBeInstanceOf(handoff_command_1.HandoffCommand);
240
+ });
241
+ it('should provide GenerateDomainCommand', async () => {
242
+ const module = await testing_1.Test.createTestingModule({
243
+ imports: [app_module_1.AppModule],
244
+ }).compile();
245
+ const command = module.get(generate_domain_command_1.GenerateDomainCommand);
246
+ expect(command).toBeDefined();
247
+ expect(command).toBeInstanceOf(generate_domain_command_1.GenerateDomainCommand);
248
+ });
249
+ it('should provide ScaffoldCommand', async () => {
250
+ const module = await testing_1.Test.createTestingModule({
251
+ imports: [app_module_1.AppModule],
252
+ }).compile();
253
+ const command = module.get(scaffold_command_1.ScaffoldCommand);
254
+ expect(command).toBeDefined();
255
+ expect(command).toBeInstanceOf(scaffold_command_1.ScaffoldCommand);
256
+ });
257
+ it('should provide ADRCommand', async () => {
258
+ const module = await testing_1.Test.createTestingModule({
259
+ imports: [app_module_1.AppModule],
260
+ }).compile();
261
+ const command = module.get(adr_command_1.ADRCommand);
262
+ expect(command).toBeDefined();
263
+ expect(command).toBeInstanceOf(adr_command_1.ADRCommand);
264
+ });
265
+ it('should provide StandardsCommand', async () => {
266
+ const module = await testing_1.Test.createTestingModule({
267
+ imports: [app_module_1.AppModule],
268
+ }).compile();
269
+ const command = module.get(standards_command_1.StandardsCommand);
270
+ expect(command).toBeDefined();
271
+ expect(command).toBeInstanceOf(standards_command_1.StandardsCommand);
272
+ });
273
+ it('should provide CompletionCommand', async () => {
274
+ const module = await testing_1.Test.createTestingModule({
275
+ imports: [app_module_1.AppModule],
276
+ }).compile();
277
+ const command = module.get(completion_command_1.CompletionCommand);
278
+ expect(command).toBeDefined();
279
+ expect(command).toBeInstanceOf(completion_command_1.CompletionCommand);
280
+ });
281
+ it('should provide HistoryCommand', async () => {
282
+ const module = await testing_1.Test.createTestingModule({
283
+ imports: [app_module_1.AppModule],
284
+ }).compile();
285
+ const command = module.get(history_command_1.HistoryCommand);
286
+ expect(command).toBeDefined();
287
+ expect(command).toBeInstanceOf(history_command_1.HistoryCommand);
288
+ });
289
+ it('should provide DriftCommand', async () => {
290
+ const module = await testing_1.Test.createTestingModule({
291
+ imports: [app_module_1.AppModule],
292
+ }).compile();
293
+ const command = module.get(drift_command_1.DriftCommand);
294
+ expect(command).toBeDefined();
295
+ expect(command).toBeInstanceOf(drift_command_1.DriftCommand);
296
+ });
297
+ it('should be a valid NestJS module', async () => {
298
+ const module = await testing_1.Test.createTestingModule({
299
+ imports: [app_module_1.AppModule],
300
+ }).compile();
301
+ expect(module).toBeDefined();
302
+ expect(module.get(init_command_1.InitCommand)).toBeDefined();
303
+ });
304
+ });
305
+ //# sourceMappingURL=app.module.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.module.spec.js","sourceRoot":"","sources":["../src/app.module.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { GateEvidence } from '../../domain/gate-evidence';
2
+ export interface WebhookNotifierPort {
3
+ notify(url: string, evidence: GateEvidence): Promise<void>;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=webhook-notifier.port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-notifier.port.js","sourceRoot":"","sources":["../../../src/application/ports/webhook-notifier.port.ts"],"names":[],"mappings":""}
@@ -25,6 +25,7 @@ export declare class InitializeProjectUseCase {
25
25
  private scaffoldEvolithYaml;
26
26
  private scaffoldReadme;
27
27
  private scaffoldByRuntime;
28
+ private scaffoldGeneric;
28
29
  private scaffoldNodeJs;
29
30
  private scaffoldDotnet;
30
31
  private scaffoldPython;