@evolith/smart-cli 0.0.3-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 (156) hide show
  1. package/README.es.md +51 -15
  2. package/README.md +51 -15
  3. package/dist/app.module.js +2 -0
  4. package/dist/app.module.js.map +1 -1
  5. package/dist/application/ports/webhook-notifier.port.d.ts +4 -0
  6. package/dist/application/ports/webhook-notifier.port.js +3 -0
  7. package/dist/application/ports/webhook-notifier.port.js.map +1 -0
  8. package/dist/application/services/index.d.ts +1 -0
  9. package/dist/application/services/index.js +28 -2
  10. package/dist/application/services/index.js.map +1 -1
  11. package/dist/application/services/initialize-project.spec.d.ts +1 -0
  12. package/dist/application/services/initialize-project.spec.js +211 -0
  13. package/dist/application/services/initialize-project.spec.js.map +1 -0
  14. package/dist/application/use-cases/evaluate-gate.use-case.d.ts +20 -0
  15. package/dist/application/use-cases/evaluate-gate.use-case.js +72 -0
  16. package/dist/application/use-cases/evaluate-gate.use-case.js.map +1 -0
  17. package/dist/application/use-cases/validate-satellite.use-case.d.ts +1 -0
  18. package/dist/application/use-cases/validate-satellite.use-case.js +7 -3
  19. package/dist/application/use-cases/validate-satellite.use-case.js.map +1 -1
  20. package/dist/commands/adr/adr.command.d.ts +2 -0
  21. package/dist/commands/adr/adr.command.js +36 -14
  22. package/dist/commands/adr/adr.command.js.map +1 -1
  23. package/dist/commands/architecture/scaffold.command.d.ts +1 -0
  24. package/dist/commands/architecture/scaffold.command.js +23 -1
  25. package/dist/commands/architecture/scaffold.command.js.map +1 -1
  26. package/dist/commands/gate/gate.command.d.ts +23 -0
  27. package/dist/commands/gate/gate.command.js +210 -0
  28. package/dist/commands/gate/gate.command.js.map +1 -0
  29. package/dist/commands/sdlc/gate-status.command.d.ts +3 -1
  30. package/dist/commands/sdlc/gate-status.command.js +78 -3
  31. package/dist/commands/sdlc/gate-status.command.js.map +1 -1
  32. package/dist/commands/sdlc/gate-status.command.spec.d.ts +1 -0
  33. package/dist/commands/sdlc/gate-status.command.spec.js +302 -0
  34. package/dist/commands/sdlc/gate-status.command.spec.js.map +1 -0
  35. package/dist/commands/sdlc/generate-domain.command.d.ts +2 -0
  36. package/dist/commands/sdlc/generate-domain.command.js +123 -12
  37. package/dist/commands/sdlc/generate-domain.command.js.map +1 -1
  38. package/dist/commands/sdlc/generate-domain.command.spec.js +103 -29
  39. package/dist/commands/sdlc/generate-domain.command.spec.js.map +1 -1
  40. package/dist/commands/sdlc/handoff.command.js +2 -2
  41. package/dist/commands/sdlc/handoff.command.js.map +1 -1
  42. package/dist/commands/sdlc/sdlc.command.js +40 -6
  43. package/dist/commands/sdlc/sdlc.command.js.map +1 -1
  44. package/dist/commands/sdlc/sdlc.command.spec.js +48 -14
  45. package/dist/commands/sdlc/sdlc.command.spec.js.map +1 -1
  46. package/dist/commands/validate/validate.command.d.ts +2 -0
  47. package/dist/commands/validate/validate.command.js +16 -2
  48. package/dist/commands/validate/validate.command.js.map +1 -1
  49. package/dist/core/abstractions/interfaces.d.ts +1 -0
  50. package/dist/core/abstractions/interfaces.js.map +1 -1
  51. package/dist/core/abstractions/providers/config-parser.provider.spec.d.ts +1 -0
  52. package/dist/core/abstractions/providers/config-parser.provider.spec.js +18 -0
  53. package/dist/core/abstractions/providers/config-parser.provider.spec.js.map +1 -0
  54. package/dist/core/abstractions/providers/mock-filesystem.provider.d.ts +1 -0
  55. package/dist/core/abstractions/providers/mock-filesystem.provider.js +4 -0
  56. package/dist/core/abstractions/providers/mock-filesystem.provider.js.map +1 -1
  57. package/dist/core/abstractions/providers/mock-filesystem.provider.spec.d.ts +1 -0
  58. package/dist/core/abstractions/providers/mock-filesystem.provider.spec.js +56 -0
  59. package/dist/core/abstractions/providers/mock-filesystem.provider.spec.js.map +1 -0
  60. package/dist/core/abstractions/providers/node-filesystem.provider.d.ts +1 -0
  61. package/dist/core/abstractions/providers/node-filesystem.provider.js +4 -0
  62. package/dist/core/abstractions/providers/node-filesystem.provider.js.map +1 -1
  63. package/dist/core/architecture/nx-workspace.strategy.d.ts +3 -0
  64. package/dist/core/architecture/nx-workspace.strategy.js +35 -6
  65. package/dist/core/architecture/nx-workspace.strategy.js.map +1 -1
  66. package/dist/core/architecture/nx-workspace.strategy.spec.d.ts +1 -0
  67. package/dist/core/architecture/nx-workspace.strategy.spec.js +187 -0
  68. package/dist/core/architecture/nx-workspace.strategy.spec.js.map +1 -0
  69. package/dist/core/architecture/workspace-manager.strategy.d.ts +1 -0
  70. package/dist/core/generators/hexagonal-scaffolder.d.ts +6 -0
  71. package/dist/core/generators/hexagonal-scaffolder.js +260 -0
  72. package/dist/core/generators/hexagonal-scaffolder.js.map +1 -0
  73. package/dist/core/generators/hexagonal-scaffolder.spec.d.ts +1 -0
  74. package/dist/core/generators/hexagonal-scaffolder.spec.js +164 -0
  75. package/dist/core/generators/hexagonal-scaffolder.spec.js.map +1 -0
  76. package/dist/core/generators/mermaid-class-parser.d.ts +38 -0
  77. package/dist/core/generators/mermaid-class-parser.js +183 -0
  78. package/dist/core/generators/mermaid-class-parser.js.map +1 -0
  79. package/dist/core/generators/mermaid-class-parser.spec.d.ts +1 -0
  80. package/dist/core/generators/mermaid-class-parser.spec.js +148 -0
  81. package/dist/core/generators/mermaid-class-parser.spec.js.map +1 -0
  82. package/dist/core/mcp/server.d.ts +3 -1
  83. package/dist/core/mcp/server.js +82 -108
  84. package/dist/core/mcp/server.js.map +1 -1
  85. package/dist/core/mcp/server.spec.js +20 -4
  86. package/dist/core/mcp/server.spec.js.map +1 -1
  87. package/dist/core/mcp/tools/gate.d.ts +1 -0
  88. package/dist/core/mcp/tools/gate.js +68 -0
  89. package/dist/core/mcp/tools/gate.js.map +1 -0
  90. package/dist/core/metrics/dora-calculator.d.ts +18 -0
  91. package/dist/core/metrics/dora-calculator.js +146 -0
  92. package/dist/core/metrics/dora-calculator.js.map +1 -0
  93. package/dist/core/metrics/dora-calculator.spec.d.ts +1 -0
  94. package/dist/core/metrics/dora-calculator.spec.js +164 -0
  95. package/dist/core/metrics/dora-calculator.spec.js.map +1 -0
  96. package/dist/core/metrics/git-log-reader.d.ts +14 -0
  97. package/dist/core/metrics/git-log-reader.js +39 -0
  98. package/dist/core/metrics/git-log-reader.js.map +1 -0
  99. package/dist/core/metrics/git-log-reader.spec.d.ts +1 -0
  100. package/dist/core/metrics/git-log-reader.spec.js +108 -0
  101. package/dist/core/metrics/git-log-reader.spec.js.map +1 -0
  102. package/dist/core/observability/command-watcher.spec.d.ts +1 -0
  103. package/dist/core/observability/command-watcher.spec.js +123 -0
  104. package/dist/core/observability/command-watcher.spec.js.map +1 -0
  105. package/dist/core/observability/index.d.ts +1 -0
  106. package/dist/core/observability/index.js +3 -1
  107. package/dist/core/observability/index.js.map +1 -1
  108. package/dist/core/observability/tool-usage-telemetry.service.d.ts +46 -0
  109. package/dist/core/observability/tool-usage-telemetry.service.js +181 -0
  110. package/dist/core/observability/tool-usage-telemetry.service.js.map +1 -0
  111. package/dist/core/services/command-history.service.d.ts +1 -0
  112. package/dist/core/services/command-history.service.js +4 -0
  113. package/dist/core/services/command-history.service.js.map +1 -1
  114. package/dist/core/services/command-history.service.spec.js +217 -126
  115. package/dist/core/services/command-history.service.spec.js.map +1 -1
  116. package/dist/core/upgrade/satellite-upgrade.service.spec.js +204 -144
  117. package/dist/core/upgrade/satellite-upgrade.service.spec.js.map +1 -1
  118. package/dist/core/validators/deep-architecture-analyzer.spec.js +27 -57
  119. package/dist/core/validators/deep-architecture-analyzer.spec.js.map +1 -1
  120. package/dist/core/validators/evaluators/evaluator.interface.d.ts +14 -0
  121. package/dist/core/validators/evaluators/evaluator.interface.js +3 -0
  122. package/dist/core/validators/evaluators/evaluator.interface.js.map +1 -0
  123. package/dist/core/validators/evaluators/native-evaluator.d.ts +31 -0
  124. package/dist/core/validators/evaluators/native-evaluator.js +461 -0
  125. package/dist/core/validators/evaluators/native-evaluator.js.map +1 -0
  126. package/dist/core/validators/evaluators/opa-evaluator.d.ts +20 -0
  127. package/dist/core/validators/evaluators/opa-evaluator.js +249 -0
  128. package/dist/core/validators/evaluators/opa-evaluator.js.map +1 -0
  129. package/dist/core/validators/phase-gate-validator.service.d.ts +4 -0
  130. package/dist/core/validators/phase-gate-validator.service.js +74 -9
  131. package/dist/core/validators/phase-gate-validator.service.js.map +1 -1
  132. package/dist/core/validators/rule-evaluation-engine.d.ts +34 -0
  133. package/dist/core/validators/rule-evaluation-engine.js +187 -0
  134. package/dist/core/validators/rule-evaluation-engine.js.map +1 -0
  135. package/dist/core/validators/rule-evaluation-engine.spec.d.ts +1 -0
  136. package/dist/core/validators/rule-evaluation-engine.spec.js +243 -0
  137. package/dist/core/validators/rule-evaluation-engine.spec.js.map +1 -0
  138. package/dist/core/validators/ruleset-validator.service.d.ts +2 -0
  139. package/dist/core/validators/ruleset-validator.service.js +29 -4
  140. package/dist/core/validators/ruleset-validator.service.js.map +1 -1
  141. package/dist/domain/gate-evidence.d.ts +59 -0
  142. package/dist/domain/gate-evidence.js +38 -0
  143. package/dist/domain/gate-evidence.js.map +1 -0
  144. package/dist/domain/services/adr.service.d.ts +2 -2
  145. package/dist/domain/services/adr.service.js +12 -8
  146. package/dist/domain/services/adr.service.js.map +1 -1
  147. package/dist/infrastructure/adapters/webhook.adapter.d.ts +5 -0
  148. package/dist/infrastructure/adapters/webhook.adapter.js +19 -0
  149. package/dist/infrastructure/adapters/webhook.adapter.js.map +1 -0
  150. package/dist/infrastructure/cli/command-executor.spec.d.ts +1 -0
  151. package/dist/infrastructure/cli/command-executor.spec.js +149 -0
  152. package/dist/infrastructure/cli/command-executor.spec.js.map +1 -0
  153. package/dist/infrastructure/cli/providers/providers.spec.d.ts +1 -0
  154. package/dist/infrastructure/cli/providers/providers.spec.js +251 -0
  155. package/dist/infrastructure/cli/providers/providers.spec.js.map +1 -0
  156. package/package.json +23 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mermaid-class-parser.js","sourceRoot":"","sources":["../../../src/core/generators/mermaid-class-parser.ts"],"names":[],"mappings":";;AAuMA,oDAQC;AAMD,8CA+DC;AAMD,sCAOC;AA5ND,MAAM,cAAc,GAA+B;IACjD,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,SAAS;CACf,CAAC;AAEF,SAAS,eAAe,CAAC,MAAc;IACrC,OAAO,cAAc,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC;AAC5C,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAW;IACtC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAChD,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACpC,IAAI,CAAC,KAAK,aAAa,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,aAAa,CAAC;IAC5D,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,eAAe;QAAE,OAAO,WAAW,CAAC;IACnE,IAAI,CAAC,KAAK,YAAY;QAAE,OAAO,YAAY,CAAC;IAC5C,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,eAAe;QAAE,OAAO,SAAS,CAAC;IAC/D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,WAAW,CAAC,CAAS;IAC5B,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,cAAc,CAAC,CAAS;IAC/B,MAAM,GAAG,GAA2B;QAClC,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,QAAQ;QACb,GAAG,EAAE,QAAQ;QACb,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,yBAAyB;KAClC,CAAC;IACF,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAKD,MAAM,SAAS,GAAG,gDAAgD,CAAC;AAInE,MAAM,OAAO,GAAG,iCAAiC,CAAC;AAElD,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAGtD,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;QAC7C,OAAO;YACL,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC;YACpC,IAAI;YACJ,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC;YAC9B,UAAU,EAAE,cAAc,CAAC,GAAG,IAAI,MAAM,CAAC;SAC7B,CAAC;IACjB,CAAC;IAGD,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC3C,OAAO;YACL,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC;YACpC,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;YAC9B,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC;SACb,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAGD,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC5B,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAEtB,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,CAA0B;IAC1C,OAAO,QAAQ,IAAI,CAAC,CAAC;AACvB,CAAC;AAOD,MAAM,MAAM,GACV,sHAAsH,CAAC;AAEzH,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACvD,OAAO;QACL,IAAI,EAAE,EAAE,EAAE,KAAK;QACf,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC;AACJ,CAAC;AAOD,SAAgB,oBAAoB,CAAC,QAAgB;IACnD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,+BAA+B,CAAC;IAC3C,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAMD,SAAgB,iBAAiB,CAAC,KAAa;IAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,MAAM,aAAa,GAAsB,EAAE,CAAC;IAE5C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAGtB,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,GAAG,GAAa;gBACpB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBAClB,UAAU,EAAE,SAAS;gBACrB,UAAU,EAAE,EAAE;gBACd,OAAO,EAAE,EAAE;aACZ,CAAC;YACF,CAAC,EAAE,CAAC;YACJ,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC9B,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAChD,IAAI,WAAW,EAAE,CAAC;oBAChB,GAAG,CAAC,UAAU,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvD,CAAC;qBAAM,CAAC;oBACN,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;oBAClC,IAAI,MAAM,EAAE,CAAC;wBACX,IAAI,QAAQ,CAAC,MAAM,CAAC;4BAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;;4BAC1C,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACnC,CAAC;gBACH,CAAC;gBACD,CAAC,EAAE,CAAC;YACN,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QAGD,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3F,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QAGD,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,GAAG,EAAE,CAAC;YACR,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QAED,CAAC,EAAE,CAAC;IACN,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;AACpC,CAAC;AAMD,SAAgB,aAAa,CAAC,QAAgB;IAC5C,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;IAC9B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const mermaid_class_parser_1 = require("./mermaid-class-parser");
4
+ const SAMPLE_DIAGRAM = `
5
+ classDiagram
6
+ class User {
7
+ <<Entity>>
8
+ +String id
9
+ +String name
10
+ -String email
11
+ +validate() void
12
+ +fullName() String
13
+ }
14
+
15
+ class Email {
16
+ <<Value Object>>
17
+ +String value
18
+ +isValid() bool
19
+ }
20
+
21
+ class UserRepository {
22
+ <<Repository>>
23
+ +findById(id String) User
24
+ +save(user User) void
25
+ }
26
+
27
+ class UserService {
28
+ <<Service>>
29
+ +createUser(name String) User
30
+ }
31
+
32
+ User --> Email : has
33
+ UserRepository --> User
34
+ `;
35
+ const SAMPLE_MARKDOWN = `
36
+ # DDD Model
37
+
38
+ Some text.
39
+
40
+ \`\`\`mermaid
41
+ ${SAMPLE_DIAGRAM}
42
+ \`\`\`
43
+
44
+ More text.
45
+ `;
46
+ describe('extractMermaidBlocks', () => {
47
+ it('extracts blocks from markdown', () => {
48
+ const blocks = (0, mermaid_class_parser_1.extractMermaidBlocks)(SAMPLE_MARKDOWN);
49
+ expect(blocks).toHaveLength(1);
50
+ expect(blocks[0]).toContain('classDiagram');
51
+ });
52
+ it('returns empty array when no mermaid blocks', () => {
53
+ expect((0, mermaid_class_parser_1.extractMermaidBlocks)('# No code\nJust text.')).toHaveLength(0);
54
+ });
55
+ it('extracts multiple blocks', () => {
56
+ const md = '```mermaid\nclassDiagram\n class A\n```\n\n```mermaid\nclassDiagram\n class B\n```';
57
+ expect((0, mermaid_class_parser_1.extractMermaidBlocks)(md)).toHaveLength(2);
58
+ });
59
+ });
60
+ describe('parseClassDiagram', () => {
61
+ let diagram;
62
+ beforeEach(() => {
63
+ diagram = (0, mermaid_class_parser_1.parseClassDiagram)(SAMPLE_DIAGRAM);
64
+ });
65
+ it('returns non-null for valid classDiagram', () => {
66
+ expect(diagram).not.toBeNull();
67
+ });
68
+ it('returns null for non-classDiagram mermaid block', () => {
69
+ expect((0, mermaid_class_parser_1.parseClassDiagram)('flowchart LR\n A --> B')).toBeNull();
70
+ });
71
+ it('parses 4 classes', () => {
72
+ expect(diagram.classes).toHaveLength(4);
73
+ });
74
+ it('parses User as Entity with correct properties', () => {
75
+ const user = diagram.classes.find(c => c.name === 'User');
76
+ expect(user.stereotype).toBe('Entity');
77
+ expect(user.properties).toHaveLength(3);
78
+ expect(user.properties[0]).toMatchObject({ name: 'id', type: 'string', visibility: 'public' });
79
+ expect(user.properties[1]).toMatchObject({ name: 'name', type: 'string', visibility: 'public' });
80
+ expect(user.properties[2]).toMatchObject({ name: 'email', type: 'string', visibility: 'private' });
81
+ });
82
+ it('parses User methods', () => {
83
+ const user = diagram.classes.find(c => c.name === 'User');
84
+ expect(user.methods).toHaveLength(2);
85
+ expect(user.methods[0]).toMatchObject({ name: 'validate', returnType: 'void' });
86
+ expect(user.methods[1]).toMatchObject({ name: 'fullName', returnType: 'string' });
87
+ });
88
+ it('parses Email as ValueObject', () => {
89
+ const email = diagram.classes.find(c => c.name === 'Email');
90
+ expect(email.stereotype).toBe('ValueObject');
91
+ expect(email.properties).toHaveLength(1);
92
+ expect(email.methods).toHaveLength(1);
93
+ expect(email.methods[0]).toMatchObject({ name: 'isValid', returnType: 'boolean' });
94
+ });
95
+ it('parses UserRepository as Repository with methods', () => {
96
+ const repo = diagram.classes.find(c => c.name === 'UserRepository');
97
+ expect(repo.stereotype).toBe('Repository');
98
+ expect(repo.methods).toHaveLength(2);
99
+ expect(repo.methods[0]).toMatchObject({ name: 'findById' });
100
+ expect(repo.methods[0].params).toHaveLength(1);
101
+ expect(repo.methods[0].params[0]).toMatchObject({ name: 'id', type: 'string' });
102
+ });
103
+ it('parses UserService as Service', () => {
104
+ const svc = diagram.classes.find(c => c.name === 'UserService');
105
+ expect(svc.stereotype).toBe('Service');
106
+ });
107
+ it('parses 2 relationships', () => {
108
+ expect(diagram.relationships).toHaveLength(2);
109
+ expect(diagram.relationships[0]).toMatchObject({ from: 'User', to: 'Email', arrow: '-->' });
110
+ expect(diagram.relationships[0].label).toBe('has');
111
+ expect(diagram.relationships[1]).toMatchObject({ from: 'UserRepository', to: 'User' });
112
+ });
113
+ });
114
+ describe('parseDddModel', () => {
115
+ it('extracts diagram from markdown', () => {
116
+ const result = (0, mermaid_class_parser_1.parseDddModel)(SAMPLE_MARKDOWN);
117
+ expect(result).not.toBeNull();
118
+ expect(result.classes).toHaveLength(4);
119
+ });
120
+ it('returns null when no valid classDiagram found', () => {
121
+ expect((0, mermaid_class_parser_1.parseDddModel)('# Nothing here')).toBeNull();
122
+ });
123
+ });
124
+ describe('Aggregate stereotype', () => {
125
+ it('parses <<Aggregate Root>> as Aggregate', () => {
126
+ const d = (0, mermaid_class_parser_1.parseClassDiagram)(`
127
+ classDiagram
128
+ class Order {
129
+ <<Aggregate Root>>
130
+ +String orderId
131
+ }
132
+ `);
133
+ expect(d.classes[0].stereotype).toBe('Aggregate');
134
+ });
135
+ });
136
+ describe('type mapping', () => {
137
+ it('maps Int → number', () => {
138
+ const d = (0, mermaid_class_parser_1.parseClassDiagram)(`
139
+ classDiagram
140
+ class Counter {
141
+ <<Entity>>
142
+ +Int value
143
+ }
144
+ `);
145
+ expect(d.classes[0].properties[0].type).toBe('number');
146
+ });
147
+ });
148
+ //# sourceMappingURL=mermaid-class-parser.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mermaid-class-parser.spec.js","sourceRoot":"","sources":["../../../src/core/generators/mermaid-class-parser.spec.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@ export interface McpServerOptions {
7
7
  apiKey?: string;
8
8
  port?: number;
9
9
  transport?: McpTransport;
10
+ stdin?: import('node:stream').Readable;
11
+ stdout?: import('node:stream').Writable;
10
12
  }
11
13
  declare class DirectMcpServer {
12
14
  private transport;
@@ -14,7 +16,7 @@ declare class DirectMcpServer {
14
16
  private rulesetValidator;
15
17
  private metricsService;
16
18
  private readonly transportType;
17
- constructor(transportType?: McpTransport, port?: number, apiKey?: string, rulesetValidator?: RulesetValidatorService, metricsService?: McpMetricsService);
19
+ constructor(transportType?: McpTransport, port?: number, apiKey?: string, rulesetValidator?: RulesetValidatorService, metricsService?: McpMetricsService, stdin?: import('node:stream').Readable, stdout?: import('node:stream').Writable);
18
20
  start(): Promise<void>;
19
21
  stop(): Promise<void>;
20
22
  private handleMessage;
@@ -42,7 +42,9 @@ const agent_1 = require("./tools/agent");
42
42
  const architecture_1 = require("./tools/architecture");
43
43
  const sdlc_1 = require("./tools/sdlc");
44
44
  const moscow_1 = require("./tools/moscow");
45
+ const gate_1 = require("./tools/gate");
45
46
  const metrics_service_1 = require("./metrics.service");
47
+ const streamableHttp_js_1 = require("@modelcontextprotocol/sdk/server/streamableHttp.js");
46
48
  class MinimalStdioTransport {
47
49
  constructor(stdin, stdout) {
48
50
  this.readBuffer = '';
@@ -50,12 +52,7 @@ class MinimalStdioTransport {
50
52
  this.stdout = stdout || process.stdout;
51
53
  this.readBuffer = '';
52
54
  this.started = false;
53
- }
54
- async start() {
55
- if (this.started)
56
- return;
57
- this.started = true;
58
- this.stdin.on('data', (chunk) => {
55
+ this.handleData = (chunk) => {
59
56
  this.readBuffer += chunk.toString();
60
57
  let newlineIndex;
61
58
  while ((newlineIndex = this.readBuffer.indexOf('\n')) !== -1) {
@@ -68,26 +65,43 @@ class MinimalStdioTransport {
68
65
  this.onmessage(message);
69
66
  }
70
67
  }
71
- catch (e) {
68
+ catch {
72
69
  if (this.onerror) {
73
70
  this.onerror(new Error(`Invalid JSON: ${line}`));
74
71
  }
75
72
  }
76
73
  }
77
74
  }
78
- });
79
- this.stdin.on('end', () => {
75
+ };
76
+ this.handleEnd = () => {
80
77
  if (this.onclose) {
81
78
  this.onclose();
82
79
  }
83
- });
84
- this.stdin.on('error', (err) => {
80
+ };
81
+ this.handleError = (err) => {
85
82
  if (this.onerror) {
86
83
  this.onerror(err);
87
84
  }
88
- });
85
+ };
86
+ }
87
+ async start() {
88
+ if (this.started)
89
+ return;
90
+ this.started = true;
91
+ this.stdin.on('data', this.handleData);
92
+ this.stdin.on('end', this.handleEnd);
93
+ this.stdin.on('error', this.handleError);
89
94
  }
90
95
  async close() {
96
+ if (!this.started)
97
+ return;
98
+ this.stdin.off('data', this.handleData);
99
+ this.stdin.off('end', this.handleEnd);
100
+ this.stdin.off('error', this.handleError);
101
+ this.onmessage = undefined;
102
+ this.onerror = undefined;
103
+ this.onclose = undefined;
104
+ this.readBuffer = '';
91
105
  this.started = false;
92
106
  }
93
107
  async send(message) {
@@ -102,14 +116,28 @@ class MinimalStdioTransport {
102
116
  });
103
117
  }
104
118
  }
105
- class MinimalHttpTransport {
119
+ class McpHttpTransportWrapper {
106
120
  constructor(port, apiKey) {
107
121
  this.server = null;
108
- this.logger = new common_1.Logger(MinimalHttpTransport.name);
109
- this.sseClients = [];
122
+ this.logger = new common_1.Logger(McpHttpTransportWrapper.name);
110
123
  this.started = false;
111
124
  this.port = port;
112
125
  this.apiKey = apiKey;
126
+ this.mcpTransport = new streamableHttp_js_1.StreamableHTTPServerTransport({
127
+ sessionIdGenerator: () => Math.random().toString(36).substring(2, 10)
128
+ });
129
+ this.mcpTransport.onerror = (error) => {
130
+ if (this.onerror)
131
+ this.onerror(error);
132
+ };
133
+ this.mcpTransport.onclose = () => {
134
+ if (this.onclose)
135
+ this.onclose();
136
+ };
137
+ this.mcpTransport.onmessage = (message) => {
138
+ if (this.onmessage)
139
+ this.onmessage(message);
140
+ };
113
141
  }
114
142
  async start() {
115
143
  if (this.started)
@@ -139,10 +167,7 @@ class MinimalHttpTransport {
139
167
  }
140
168
  async close() {
141
169
  this.started = false;
142
- for (const client of this.sseClients) {
143
- client.res.end();
144
- }
145
- this.sseClients = [];
170
+ await this.mcpTransport.close();
146
171
  if (this.server) {
147
172
  await new Promise((resolve) => {
148
173
  this.server.close(() => resolve());
@@ -151,42 +176,21 @@ class MinimalHttpTransport {
151
176
  }
152
177
  }
153
178
  async send(message) {
154
- const data = `event: message\ndata: ${JSON.stringify(message)}\n\n`;
155
- const clientsToRemove = [];
156
- for (const client of this.sseClients) {
157
- try {
158
- client.res.write(data);
159
- }
160
- catch {
161
- clientsToRemove.push(client);
162
- }
163
- }
164
- for (const client of clientsToRemove) {
165
- const index = this.sseClients.indexOf(client);
166
- if (index > -1) {
167
- this.sseClients.splice(index, 1);
168
- }
169
- }
179
+ await this.mcpTransport.send(message);
170
180
  }
171
181
  handleRequest(req, res) {
172
182
  const url = new URL(req.url || '/', `http://127.0.0.1:${this.port}`);
173
183
  if (!this.validateAuth(req, res)) {
174
184
  return;
175
185
  }
176
- if (req.method === 'POST' && url.pathname === '/message') {
177
- this.handlePostMessage(req, res);
178
- }
179
- else if (req.method === 'GET' && url.pathname === '/sse') {
180
- this.handleSseConnection(req, res);
181
- }
182
- else if (req.method === 'GET' && url.pathname === '/health') {
186
+ if (req.method === 'GET' && url.pathname === '/health') {
183
187
  res.writeHead(200, { 'Content-Type': 'application/json' });
184
188
  res.end(JSON.stringify({ status: 'ok', transport: 'http', protocol: 'mcp' }));
189
+ return;
185
190
  }
186
- else {
187
- res.writeHead(404, { 'Content-Type': 'application/json' });
188
- res.end(JSON.stringify({ error: 'Not found' }));
189
- }
191
+ this.mcpTransport.handleRequest(req, res).catch((err) => {
192
+ this.logger.error(`MCP Transport error: ${err.message}`);
193
+ });
190
194
  }
191
195
  validateAuth(req, res) {
192
196
  if (!this.apiKey)
@@ -201,68 +205,18 @@ class MinimalHttpTransport {
201
205
  }
202
206
  return true;
203
207
  }
204
- async handlePostMessage(req, res) {
205
- let body = '';
206
- req.on('data', (chunk) => {
207
- body += chunk.toString();
208
- });
209
- req.on('end', async () => {
210
- try {
211
- const message = JSON.parse(body);
212
- if (this.onmessage) {
213
- await this.onmessage(message);
214
- }
215
- res.writeHead(202, { 'Content-Type': 'application/json' });
216
- res.end(JSON.stringify({ status: 'accepted' }));
217
- }
218
- catch (error) {
219
- this.logger.error(`Invalid POST message: ${error}`);
220
- res.writeHead(400, { 'Content-Type': 'application/json' });
221
- res.end(JSON.stringify({ error: 'Invalid JSON' }));
222
- }
223
- });
224
- req.on('error', (error) => {
225
- this.logger.error(`Request error: ${error.message}`);
226
- if (this.onerror) {
227
- this.onerror(error);
228
- }
229
- if (!res.headersSent) {
230
- res.writeHead(500, { 'Content-Type': 'application/json' });
231
- res.end(JSON.stringify({ error: 'Internal server error' }));
232
- }
233
- });
234
- }
235
- handleSseConnection(req, res) {
236
- const clientId = `client-${Date.now()}-${Math.random().toString(36).substring(2, 7)}`;
237
- res.writeHead(200, {
238
- 'Content-Type': 'text/event-stream',
239
- 'Cache-Control': 'no-cache',
240
- 'Connection': 'keep-alive',
241
- 'Access-Control-Allow-Origin': '*',
242
- });
243
- res.write(': connected\n\n');
244
- this.sseClients.push({ id: clientId, res });
245
- req.on('close', () => {
246
- const index = this.sseClients.findIndex(c => c.id === clientId);
247
- if (index > -1) {
248
- this.sseClients.splice(index, 1);
249
- }
250
- this.logger.debug(`SSE client disconnected: ${clientId}`);
251
- });
252
- this.logger.debug(`SSE client connected: ${clientId}`);
253
- }
254
208
  }
255
209
  class DirectMcpServer {
256
- constructor(transportType = 'stdio', port = 49100, apiKey, rulesetValidator, metricsService) {
210
+ constructor(transportType = 'stdio', port = 49100, apiKey, rulesetValidator, metricsService, stdin, stdout) {
257
211
  this.logger = new common_1.Logger(DirectMcpServer.name);
258
212
  this.transportType = transportType;
259
213
  this.rulesetValidator = rulesetValidator || new ruleset_validator_service_1.RulesetValidatorService();
260
214
  this.metricsService = metricsService || new metrics_service_1.McpMetricsService();
261
215
  if (transportType === 'http') {
262
- this.transport = new MinimalHttpTransport(port, apiKey);
216
+ this.transport = new McpHttpTransportWrapper(port, apiKey);
263
217
  }
264
218
  else {
265
- this.transport = new MinimalStdioTransport();
219
+ this.transport = new MinimalStdioTransport(stdin, stdout);
266
220
  }
267
221
  }
268
222
  async start() {
@@ -273,6 +227,9 @@ class DirectMcpServer {
273
227
  transport.onerror = (error) => {
274
228
  this.logger.error(`Transport error: ${error.message}`);
275
229
  };
230
+ transport.onclose = () => {
231
+ this.logger.log('Transport closed');
232
+ };
276
233
  await transport.start();
277
234
  this.logger.log(`Evolith MCP Server started on ${this.transportType}`);
278
235
  }
@@ -336,7 +293,11 @@ class DirectMcpServer {
336
293
  message: error instanceof Error ? error.message : String(error),
337
294
  },
338
295
  };
339
- await this.transport.send(errorResponse);
296
+ try {
297
+ await this.transport.send(errorResponse);
298
+ }
299
+ catch {
300
+ }
340
301
  }
341
302
  }
342
303
  async dispatchRequest(method, params) {
@@ -374,6 +335,23 @@ class DirectMcpServer {
374
335
  required: ['path'],
375
336
  },
376
337
  },
338
+ {
339
+ name: 'evolith-gate-evaluate',
340
+ description: 'Evaluate a specific SDLC phase gate',
341
+ inputSchema: {
342
+ type: 'object',
343
+ properties: {
344
+ phase: { type: 'string', description: 'Phase identifier (discovery, design, construction, qa, release)' },
345
+ projectPath: { type: 'string', description: 'Path to the repository to validate' },
346
+ rulesetRef: { type: 'string', description: 'Optional ruleset reference' },
347
+ evidenceMode: { type: 'string', description: 'full or summary', default: 'full' },
348
+ evaluatedBy: { type: 'string', description: 'human, agent, or ci', default: 'agent' },
349
+ initiative: { type: 'string', description: 'Optional initiative context' },
350
+ tenant: { type: 'string', description: 'Optional tenant context' },
351
+ },
352
+ required: ['phase', 'projectPath'],
353
+ },
354
+ },
377
355
  {
378
356
  name: 'evolith-agent-install',
379
357
  description: 'Install a new Evolith agent',
@@ -602,6 +580,9 @@ class DirectMcpServer {
602
580
  if (name === 'evolith-validate') {
603
581
  result = await (0, validate_1.handleValidateTool)(args, this.rulesetValidator);
604
582
  }
583
+ else if (name === 'evolith-gate-evaluate') {
584
+ result = await (0, gate_1.handleGateEvaluateTool)(args);
585
+ }
605
586
  else if (name.startsWith('evolith-agent')) {
606
587
  result = await (0, agent_1.handleAgentTools)(name, args);
607
588
  }
@@ -702,17 +683,10 @@ class DirectMcpServer {
702
683
  return getPrompt(params);
703
684
  }
704
685
  }
705
- function validateApiKey(apiKey, validKey) {
706
- if (!validKey)
707
- return true;
708
- if (!apiKey)
709
- return false;
710
- return apiKey === validKey;
711
- }
712
686
  async function startMcpServer(options = {}) {
713
687
  const transport = options.transport || 'stdio';
714
688
  const port = options.port || 49100;
715
- const server = new DirectMcpServer(transport, port, options.apiKey, options.rulesetValidator, options.metricsService);
689
+ const server = new DirectMcpServer(transport, port, options.apiKey, options.rulesetValidator, options.metricsService, options.stdin, options.stdout);
716
690
  await server.start();
717
691
  return server;
718
692
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/core/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/core/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -89,6 +89,7 @@ describe('MCP Server', () => {
89
89
  const server = await (0, server_1.startMcpServer)();
90
90
  expect(server).toBeDefined();
91
91
  expect(server.stop).toBeDefined();
92
+ await server.stop();
92
93
  });
93
94
  it('should start server with custom validator', async () => {
94
95
  const options = {
@@ -96,6 +97,7 @@ describe('MCP Server', () => {
96
97
  };
97
98
  const server = await (0, server_1.startMcpServer)(options);
98
99
  expect(server).toBeDefined();
100
+ await server.stop();
99
101
  });
100
102
  it('should start server with metrics service', async () => {
101
103
  const options = {
@@ -103,6 +105,7 @@ describe('MCP Server', () => {
103
105
  };
104
106
  const server = await (0, server_1.startMcpServer)(options);
105
107
  expect(server).toBeDefined();
108
+ await server.stop();
106
109
  });
107
110
  it('should stop server cleanly', async () => {
108
111
  const server = await (0, server_1.startMcpServer)();
@@ -553,10 +556,23 @@ describe('MCP Server', () => {
553
556
  });
554
557
  await new Promise(resolve => setTimeout(resolve, 50));
555
558
  const http = await Promise.resolve().then(() => __importStar(require('node:http')));
556
- const sseReq = http.get(`http://127.0.0.1:${testPort}/sse`, () => { });
557
- await server.stop();
558
- await new Promise(resolve => setTimeout(resolve, 50));
559
- sseReq.destroy();
559
+ await new Promise((resolve, reject) => {
560
+ const sseReq = http.get(`http://127.0.0.1:${testPort}/sse`, (res) => {
561
+ res.once('data', () => {
562
+ server.stop().then(() => {
563
+ sseReq.destroy();
564
+ resolve();
565
+ }).catch(reject);
566
+ });
567
+ res.once('error', reject);
568
+ });
569
+ sseReq.once('error', (err) => {
570
+ if (err.code === 'ECONNRESET' || err.code === 'ECONNREFUSED')
571
+ resolve();
572
+ else
573
+ reject(err);
574
+ });
575
+ });
560
576
  });
561
577
  });
562
578
  });