@girardelli/architect-agents 8.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 (258) hide show
  1. package/dist/src/core/agent-generator/context-enricher.d.ts +17 -0
  2. package/dist/src/core/agent-generator/context-enricher.js +51 -0
  3. package/dist/src/core/agent-generator/context-enricher.js.map +1 -0
  4. package/dist/src/core/agent-generator/detectors/base-detector.d.ts +8 -0
  5. package/dist/src/core/agent-generator/detectors/base-detector.js +12 -0
  6. package/dist/src/core/agent-generator/detectors/base-detector.js.map +1 -0
  7. package/dist/src/core/agent-generator/detectors/dart-detector.d.ts +5 -0
  8. package/dist/src/core/agent-generator/detectors/dart-detector.js +16 -0
  9. package/dist/src/core/agent-generator/detectors/dart-detector.js.map +1 -0
  10. package/dist/src/core/agent-generator/detectors/framework-registry.d.ts +5 -0
  11. package/dist/src/core/agent-generator/detectors/framework-registry.js +81 -0
  12. package/dist/src/core/agent-generator/detectors/framework-registry.js.map +1 -0
  13. package/dist/src/core/agent-generator/detectors/go-detector.d.ts +5 -0
  14. package/dist/src/core/agent-generator/detectors/go-detector.js +25 -0
  15. package/dist/src/core/agent-generator/detectors/go-detector.js.map +1 -0
  16. package/dist/src/core/agent-generator/detectors/java-detector.d.ts +5 -0
  17. package/dist/src/core/agent-generator/detectors/java-detector.js +44 -0
  18. package/dist/src/core/agent-generator/detectors/java-detector.js.map +1 -0
  19. package/dist/src/core/agent-generator/detectors/node-detector.d.ts +5 -0
  20. package/dist/src/core/agent-generator/detectors/node-detector.js +28 -0
  21. package/dist/src/core/agent-generator/detectors/node-detector.js.map +1 -0
  22. package/dist/src/core/agent-generator/detectors/php-detector.d.ts +5 -0
  23. package/dist/src/core/agent-generator/detectors/php-detector.js +28 -0
  24. package/dist/src/core/agent-generator/detectors/php-detector.js.map +1 -0
  25. package/dist/src/core/agent-generator/detectors/python-detector.d.ts +7 -0
  26. package/dist/src/core/agent-generator/detectors/python-detector.js +116 -0
  27. package/dist/src/core/agent-generator/detectors/python-detector.js.map +1 -0
  28. package/dist/src/core/agent-generator/detectors/ruby-detector.d.ts +5 -0
  29. package/dist/src/core/agent-generator/detectors/ruby-detector.js +23 -0
  30. package/dist/src/core/agent-generator/detectors/ruby-detector.js.map +1 -0
  31. package/dist/src/core/agent-generator/detectors/rust-detector.d.ts +5 -0
  32. package/dist/src/core/agent-generator/detectors/rust-detector.js +18 -0
  33. package/dist/src/core/agent-generator/detectors/rust-detector.js.map +1 -0
  34. package/dist/src/core/agent-generator/detectors/structure-detector.d.ts +4 -0
  35. package/dist/src/core/agent-generator/detectors/structure-detector.js +35 -0
  36. package/dist/src/core/agent-generator/detectors/structure-detector.js.map +1 -0
  37. package/dist/src/core/agent-generator/detectors/toolchain-detector.d.ts +5 -0
  38. package/dist/src/core/agent-generator/detectors/toolchain-detector.js +164 -0
  39. package/dist/src/core/agent-generator/detectors/toolchain-detector.js.map +1 -0
  40. package/dist/src/core/agent-generator/domain-inferrer.d.ts +51 -0
  41. package/dist/src/core/agent-generator/domain-inferrer.js +585 -0
  42. package/dist/src/core/agent-generator/domain-inferrer.js.map +1 -0
  43. package/dist/src/core/agent-generator/engines/audit-engine.d.ts +8 -0
  44. package/dist/src/core/agent-generator/engines/audit-engine.js +84 -0
  45. package/dist/src/core/agent-generator/engines/audit-engine.js.map +1 -0
  46. package/dist/src/core/agent-generator/engines/context-builder.d.ts +12 -0
  47. package/dist/src/core/agent-generator/engines/context-builder.js +84 -0
  48. package/dist/src/core/agent-generator/engines/context-builder.js.map +1 -0
  49. package/dist/src/core/agent-generator/engines/generation-engine.d.ts +7 -0
  50. package/dist/src/core/agent-generator/engines/generation-engine.js +160 -0
  51. package/dist/src/core/agent-generator/engines/generation-engine.js.map +1 -0
  52. package/dist/src/core/agent-generator/engines/generation-engine_deps.d.ts +21 -0
  53. package/dist/src/core/agent-generator/engines/generation-engine_deps.js +17 -0
  54. package/dist/src/core/agent-generator/engines/generation-engine_deps.js.map +1 -0
  55. package/dist/src/core/agent-generator/engines/suggestion-engine.d.ts +13 -0
  56. package/dist/src/core/agent-generator/engines/suggestion-engine.js +171 -0
  57. package/dist/src/core/agent-generator/engines/suggestion-engine.js.map +1 -0
  58. package/dist/src/core/agent-generator/engines/suggestion-engine_deps.d.ts +8 -0
  59. package/dist/src/core/agent-generator/engines/suggestion-engine_deps.js +5 -0
  60. package/dist/src/core/agent-generator/engines/suggestion-engine_deps.js.map +1 -0
  61. package/dist/src/core/agent-generator/enrichers/analysis-helpers.d.ts +9 -0
  62. package/dist/src/core/agent-generator/enrichers/analysis-helpers.js +51 -0
  63. package/dist/src/core/agent-generator/enrichers/analysis-helpers.js.map +1 -0
  64. package/dist/src/core/agent-generator/enrichers/description-generator.d.ts +4 -0
  65. package/dist/src/core/agent-generator/enrichers/description-generator.js +82 -0
  66. package/dist/src/core/agent-generator/enrichers/description-generator.js.map +1 -0
  67. package/dist/src/core/agent-generator/enrichers/endpoint-extractor.d.ts +7 -0
  68. package/dist/src/core/agent-generator/enrichers/endpoint-extractor.js +90 -0
  69. package/dist/src/core/agent-generator/enrichers/endpoint-extractor.js.map +1 -0
  70. package/dist/src/core/agent-generator/enrichers/layer-classifier.d.ts +12 -0
  71. package/dist/src/core/agent-generator/enrichers/layer-classifier.js +152 -0
  72. package/dist/src/core/agent-generator/enrichers/layer-classifier.js.map +1 -0
  73. package/dist/src/core/agent-generator/enrichers/module-extractor.d.ts +10 -0
  74. package/dist/src/core/agent-generator/enrichers/module-extractor.js +173 -0
  75. package/dist/src/core/agent-generator/enrichers/module-extractor.js.map +1 -0
  76. package/dist/src/core/agent-generator/framework-detector.d.ts +17 -0
  77. package/dist/src/core/agent-generator/framework-detector.js +56 -0
  78. package/dist/src/core/agent-generator/framework-detector.js.map +1 -0
  79. package/dist/src/core/agent-generator/index.d.ts +25 -0
  80. package/dist/src/core/agent-generator/index.js +37 -0
  81. package/dist/src/core/agent-generator/index.js.map +1 -0
  82. package/dist/src/core/agent-generator/stack-detector.d.ts +13 -0
  83. package/dist/src/core/agent-generator/stack-detector.js +124 -0
  84. package/dist/src/core/agent-generator/stack-detector.js.map +1 -0
  85. package/dist/src/core/agent-generator/templates/core/agents.d.ts +9 -0
  86. package/dist/src/core/agent-generator/templates/core/agents.js +1127 -0
  87. package/dist/src/core/agent-generator/templates/core/agents.js.map +1 -0
  88. package/dist/src/core/agent-generator/templates/core/architecture-rules.d.ts +6 -0
  89. package/dist/src/core/agent-generator/templates/core/architecture-rules.js +275 -0
  90. package/dist/src/core/agent-generator/templates/core/architecture-rules.js.map +1 -0
  91. package/dist/src/core/agent-generator/templates/core/general-rules.d.ts +7 -0
  92. package/dist/src/core/agent-generator/templates/core/general-rules.js +301 -0
  93. package/dist/src/core/agent-generator/templates/core/general-rules.js.map +1 -0
  94. package/dist/src/core/agent-generator/templates/core/hooks-generator.d.ts +20 -0
  95. package/dist/src/core/agent-generator/templates/core/hooks-generator.js +235 -0
  96. package/dist/src/core/agent-generator/templates/core/hooks-generator.js.map +1 -0
  97. package/dist/src/core/agent-generator/templates/core/index-md.d.ts +6 -0
  98. package/dist/src/core/agent-generator/templates/core/index-md.js +247 -0
  99. package/dist/src/core/agent-generator/templates/core/index-md.js.map +1 -0
  100. package/dist/src/core/agent-generator/templates/core/orchestrator.d.ts +7 -0
  101. package/dist/src/core/agent-generator/templates/core/orchestrator.js +423 -0
  102. package/dist/src/core/agent-generator/templates/core/orchestrator.js.map +1 -0
  103. package/dist/src/core/agent-generator/templates/core/preflight.d.ts +7 -0
  104. package/dist/src/core/agent-generator/templates/core/preflight.js +213 -0
  105. package/dist/src/core/agent-generator/templates/core/preflight.js.map +1 -0
  106. package/dist/src/core/agent-generator/templates/core/quality-gates.d.ts +10 -0
  107. package/dist/src/core/agent-generator/templates/core/quality-gates.js +255 -0
  108. package/dist/src/core/agent-generator/templates/core/quality-gates.js.map +1 -0
  109. package/dist/src/core/agent-generator/templates/core/security-rules.d.ts +6 -0
  110. package/dist/src/core/agent-generator/templates/core/security-rules.js +529 -0
  111. package/dist/src/core/agent-generator/templates/core/security-rules.js.map +1 -0
  112. package/dist/src/core/agent-generator/templates/core/skills-generator.d.ts +18 -0
  113. package/dist/src/core/agent-generator/templates/core/skills-generator.js +547 -0
  114. package/dist/src/core/agent-generator/templates/core/skills-generator.js.map +1 -0
  115. package/dist/src/core/agent-generator/templates/core/workflow-fix-bug.d.ts +6 -0
  116. package/dist/src/core/agent-generator/templates/core/workflow-fix-bug.js +238 -0
  117. package/dist/src/core/agent-generator/templates/core/workflow-fix-bug.js.map +1 -0
  118. package/dist/src/core/agent-generator/templates/core/workflow-new-feature.d.ts +7 -0
  119. package/dist/src/core/agent-generator/templates/core/workflow-new-feature.js +321 -0
  120. package/dist/src/core/agent-generator/templates/core/workflow-new-feature.js.map +1 -0
  121. package/dist/src/core/agent-generator/templates/core/workflow-review.d.ts +6 -0
  122. package/dist/src/core/agent-generator/templates/core/workflow-review.js +105 -0
  123. package/dist/src/core/agent-generator/templates/core/workflow-review.js.map +1 -0
  124. package/dist/src/core/agent-generator/templates/domain/index.d.ts +21 -0
  125. package/dist/src/core/agent-generator/templates/domain/index.js +1179 -0
  126. package/dist/src/core/agent-generator/templates/domain/index.js.map +1 -0
  127. package/dist/src/core/agent-generator/templates/helpers/base-helpers.d.ts +10 -0
  128. package/dist/src/core/agent-generator/templates/helpers/base-helpers.js +20 -0
  129. package/dist/src/core/agent-generator/templates/helpers/base-helpers.js.map +1 -0
  130. package/dist/src/core/agent-generator/templates/helpers/cross-ref-helpers.d.ts +2 -0
  131. package/dist/src/core/agent-generator/templates/helpers/cross-ref-helpers.js +77 -0
  132. package/dist/src/core/agent-generator/templates/helpers/cross-ref-helpers.js.map +1 -0
  133. package/dist/src/core/agent-generator/templates/helpers/security-helpers.d.ts +2 -0
  134. package/dist/src/core/agent-generator/templates/helpers/security-helpers.js +182 -0
  135. package/dist/src/core/agent-generator/templates/helpers/security-helpers.js.map +1 -0
  136. package/dist/src/core/agent-generator/templates/helpers/stack-helpers.d.ts +4 -0
  137. package/dist/src/core/agent-generator/templates/helpers/stack-helpers.js +69 -0
  138. package/dist/src/core/agent-generator/templates/helpers/stack-helpers.js.map +1 -0
  139. package/dist/src/core/agent-generator/templates/helpers/structure-helpers.d.ts +2 -0
  140. package/dist/src/core/agent-generator/templates/helpers/structure-helpers.js +275 -0
  141. package/dist/src/core/agent-generator/templates/helpers/structure-helpers.js.map +1 -0
  142. package/dist/src/core/agent-generator/templates/helpers/summary-helpers.d.ts +6 -0
  143. package/dist/src/core/agent-generator/templates/helpers/summary-helpers.js +56 -0
  144. package/dist/src/core/agent-generator/templates/helpers/summary-helpers.js.map +1 -0
  145. package/dist/src/core/agent-generator/templates/stack/index.d.ts +7 -0
  146. package/dist/src/core/agent-generator/templates/stack/index.js +695 -0
  147. package/dist/src/core/agent-generator/templates/stack/index.js.map +1 -0
  148. package/dist/src/core/agent-generator/templates/template-helpers.d.ts +11 -0
  149. package/dist/src/core/agent-generator/templates/template-helpers.js +12 -0
  150. package/dist/src/core/agent-generator/templates/template-helpers.js.map +1 -0
  151. package/dist/src/core/agent-generator/types/agent.d.ts +39 -0
  152. package/dist/src/core/agent-generator/types/agent.js +27 -0
  153. package/dist/src/core/agent-generator/types/agent.js.map +1 -0
  154. package/dist/src/core/agent-generator/types/domain.d.ts +58 -0
  155. package/dist/src/core/agent-generator/types/domain.js +2 -0
  156. package/dist/src/core/agent-generator/types/domain.js.map +1 -0
  157. package/dist/src/core/agent-generator/types/stack.d.ts +36 -0
  158. package/dist/src/core/agent-generator/types/stack.js +2 -0
  159. package/dist/src/core/agent-generator/types/stack.js.map +1 -0
  160. package/dist/src/core/agent-generator/types/template.d.ts +29 -0
  161. package/dist/src/core/agent-generator/types/template.js +2 -0
  162. package/dist/src/core/agent-generator/types/template.js.map +1 -0
  163. package/dist/src/core/agent-runtime/ai-provider.d.ts +33 -0
  164. package/dist/src/core/agent-runtime/ai-provider.js +146 -0
  165. package/dist/src/core/agent-runtime/ai-provider.js.map +1 -0
  166. package/dist/src/core/agent-runtime/executor.d.ts +13 -0
  167. package/dist/src/core/agent-runtime/executor.js +138 -0
  168. package/dist/src/core/agent-runtime/executor.js.map +1 -0
  169. package/dist/src/core/agent-runtime/human-gate.d.ts +16 -0
  170. package/dist/src/core/agent-runtime/human-gate.js +70 -0
  171. package/dist/src/core/agent-runtime/human-gate.js.map +1 -0
  172. package/dist/tests/agent-generator.test.d.ts +1 -0
  173. package/dist/tests/agent-generator.test.js +349 -0
  174. package/dist/tests/agent-generator.test.js.map +1 -0
  175. package/dist/tests/agent-runtime.test.d.ts +1 -0
  176. package/dist/tests/agent-runtime.test.js +107 -0
  177. package/dist/tests/agent-runtime.test.js.map +1 -0
  178. package/dist/tests/context-enricher.test.d.ts +1 -0
  179. package/dist/tests/context-enricher.test.js +875 -0
  180. package/dist/tests/context-enricher.test.js.map +1 -0
  181. package/dist/tests/framework-detector.test.d.ts +1 -0
  182. package/dist/tests/framework-detector.test.js +882 -0
  183. package/dist/tests/framework-detector.test.js.map +1 -0
  184. package/dist/tests/stack-detector.test.d.ts +1 -0
  185. package/dist/tests/stack-detector.test.js +183 -0
  186. package/dist/tests/stack-detector.test.js.map +1 -0
  187. package/dist/tests/template-generation.test.d.ts +1 -0
  188. package/dist/tests/template-generation.test.js +571 -0
  189. package/dist/tests/template-generation.test.js.map +1 -0
  190. package/dist/tests/template-helpers.test.d.ts +1 -0
  191. package/dist/tests/template-helpers.test.js +967 -0
  192. package/dist/tests/template-helpers.test.js.map +1 -0
  193. package/package.json +24 -0
  194. package/src/core/agent-generator/context-enricher.ts +67 -0
  195. package/src/core/agent-generator/detectors/base-detector.ts +18 -0
  196. package/src/core/agent-generator/detectors/dart-detector.ts +17 -0
  197. package/src/core/agent-generator/detectors/framework-registry.ts +82 -0
  198. package/src/core/agent-generator/detectors/go-detector.ts +26 -0
  199. package/src/core/agent-generator/detectors/java-detector.ts +46 -0
  200. package/src/core/agent-generator/detectors/node-detector.ts +28 -0
  201. package/src/core/agent-generator/detectors/php-detector.ts +28 -0
  202. package/src/core/agent-generator/detectors/python-detector.ts +125 -0
  203. package/src/core/agent-generator/detectors/ruby-detector.ts +24 -0
  204. package/src/core/agent-generator/detectors/rust-detector.ts +19 -0
  205. package/src/core/agent-generator/detectors/structure-detector.ts +38 -0
  206. package/src/core/agent-generator/detectors/toolchain-detector.ts +181 -0
  207. package/src/core/agent-generator/domain-inferrer.ts +630 -0
  208. package/src/core/agent-generator/engines/audit-engine.ts +98 -0
  209. package/src/core/agent-generator/engines/context-builder.ts +96 -0
  210. package/src/core/agent-generator/engines/generation-engine.ts +184 -0
  211. package/src/core/agent-generator/engines/generation-engine_deps.ts +21 -0
  212. package/src/core/agent-generator/engines/suggestion-engine.ts +202 -0
  213. package/src/core/agent-generator/engines/suggestion-engine_deps.ts +8 -0
  214. package/src/core/agent-generator/enrichers/analysis-helpers.ts +58 -0
  215. package/src/core/agent-generator/enrichers/description-generator.ts +91 -0
  216. package/src/core/agent-generator/enrichers/endpoint-extractor.ts +114 -0
  217. package/src/core/agent-generator/enrichers/layer-classifier.ts +156 -0
  218. package/src/core/agent-generator/enrichers/module-extractor.ts +203 -0
  219. package/src/core/agent-generator/framework-detector.ts +66 -0
  220. package/src/core/agent-generator/index.ts +55 -0
  221. package/src/core/agent-generator/stack-detector.ts +115 -0
  222. package/src/core/agent-generator/templates/core/agents.ts +1168 -0
  223. package/src/core/agent-generator/templates/core/architecture-rules.ts +288 -0
  224. package/src/core/agent-generator/templates/core/general-rules.ts +306 -0
  225. package/src/core/agent-generator/templates/core/hooks-generator.ts +244 -0
  226. package/src/core/agent-generator/templates/core/index-md.ts +261 -0
  227. package/src/core/agent-generator/templates/core/orchestrator.ts +462 -0
  228. package/src/core/agent-generator/templates/core/preflight.ts +216 -0
  229. package/src/core/agent-generator/templates/core/quality-gates.ts +257 -0
  230. package/src/core/agent-generator/templates/core/security-rules.ts +544 -0
  231. package/src/core/agent-generator/templates/core/skills-generator.ts +586 -0
  232. package/src/core/agent-generator/templates/core/workflow-fix-bug.ts +240 -0
  233. package/src/core/agent-generator/templates/core/workflow-new-feature.ts +323 -0
  234. package/src/core/agent-generator/templates/core/workflow-review.ts +107 -0
  235. package/src/core/agent-generator/templates/domain/index.ts +1204 -0
  236. package/src/core/agent-generator/templates/helpers/base-helpers.ts +33 -0
  237. package/src/core/agent-generator/templates/helpers/cross-ref-helpers.ts +79 -0
  238. package/src/core/agent-generator/templates/helpers/security-helpers.ts +198 -0
  239. package/src/core/agent-generator/templates/helpers/stack-helpers.ts +80 -0
  240. package/src/core/agent-generator/templates/helpers/structure-helpers.ts +293 -0
  241. package/src/core/agent-generator/templates/helpers/summary-helpers.ts +67 -0
  242. package/src/core/agent-generator/templates/stack/index.ts +705 -0
  243. package/src/core/agent-generator/templates/template-helpers.ts +12 -0
  244. package/src/core/agent-generator/types/agent.ts +65 -0
  245. package/src/core/agent-generator/types/domain.ts +63 -0
  246. package/src/core/agent-generator/types/stack.ts +38 -0
  247. package/src/core/agent-generator/types/template.ts +31 -0
  248. package/src/core/agent-runtime/ai-provider.ts +178 -0
  249. package/src/core/agent-runtime/executor.ts +148 -0
  250. package/src/core/agent-runtime/human-gate.ts +69 -0
  251. package/tests/agent-generator.test.ts +428 -0
  252. package/tests/agent-runtime.test.ts +125 -0
  253. package/tests/context-enricher.test.ts +972 -0
  254. package/tests/framework-detector.test.ts +1172 -0
  255. package/tests/stack-detector.test.ts +241 -0
  256. package/tests/template-generation.test.ts +709 -0
  257. package/tests/template-helpers.test.ts +1130 -0
  258. package/tsconfig.json +14 -0
@@ -0,0 +1,4 @@
1
+ import { AnalysisReport } from '@girardelli/architect-core/src/core/types/core.js';
2
+ export declare class StructureDetector {
3
+ detectProjectStructure(report: AnalysisReport): 'clean-architecture' | 'mvc' | 'modular' | 'flat' | 'monorepo' | 'unknown';
4
+ }
@@ -0,0 +1,35 @@
1
+ export class StructureDetector {
2
+ detectProjectStructure(report) {
3
+ const paths = report.dependencyGraph.nodes.map(n => n.toLowerCase());
4
+ // Clean Architecture / DDD
5
+ const hasDomain = paths.some(p => p.includes('/domain/'));
6
+ const hasApplication = paths.some(p => p.includes('/application/'));
7
+ const hasInfrastructure = paths.some(p => p.includes('/infrastructure/'));
8
+ const hasPresentation = paths.some(p => p.includes('/presentation/'));
9
+ if ((hasDomain && hasInfrastructure) || (hasDomain && hasApplication && hasPresentation)) {
10
+ return 'clean-architecture';
11
+ }
12
+ // MVC
13
+ const hasModels = paths.some(p => p.includes('/models/'));
14
+ const hasViews = paths.some(p => p.includes('/views/'));
15
+ const hasControllers = paths.some(p => p.includes('/controllers/'));
16
+ if (hasModels && hasViews && hasControllers)
17
+ return 'mvc';
18
+ // Modular (NestJS, feature-based)
19
+ const hasModules = paths.some(p => p.includes('/modules/'));
20
+ const hasFeatures = paths.some(p => p.includes('/features/'));
21
+ if (hasModules || hasFeatures)
22
+ return 'modular';
23
+ // Monorepo
24
+ const hasPackages = paths.some(p => p.includes('/packages/'));
25
+ const hasApps = paths.some(p => p.includes('/apps/'));
26
+ if (hasPackages || hasApps)
27
+ return 'monorepo';
28
+ // Flat
29
+ const maxDepth = Math.max(...paths.map(p => p.split('/').length));
30
+ if (maxDepth <= 3)
31
+ return 'flat';
32
+ return 'unknown';
33
+ }
34
+ }
35
+ //# sourceMappingURL=structure-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structure-detector.js","sourceRoot":"","sources":["../../../../../src/core/agent-generator/detectors/structure-detector.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,iBAAiB;IACrB,sBAAsB,CAAC,MAAsB;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAErE,2BAA2B;QAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1D,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;QACpE,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC1E,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,SAAS,IAAI,iBAAiB,CAAC,IAAI,CAAC,SAAS,IAAI,cAAc,IAAI,eAAe,CAAC,EAAE,CAAC;YACzF,OAAO,oBAAoB,CAAC;QAC9B,CAAC;QAED,MAAM;QACN,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QACxD,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;QACpE,IAAI,SAAS,IAAI,QAAQ,IAAI,cAAc;YAAE,OAAO,KAAK,CAAC;QAE1D,kCAAkC;QAClC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QAC9D,IAAI,UAAU,IAAI,WAAW;YAAE,OAAO,SAAS,CAAC;QAEhD,WAAW;QACX,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtD,IAAI,WAAW,IAAI,OAAO;YAAE,OAAO,UAAU,CAAC;QAE9C,OAAO;QACP,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,IAAI,QAAQ,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC;QAEjC,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ import { AnalysisReport } from '@girardelli/architect-core/src/core/types/core.js';
2
+ import { FrameworkInfo, DetectedToolchain } from '@girardelli/architect-agents/src/core/agent-generator/types/stack.js';
3
+ export declare class ToolchainDetector {
4
+ detectToolchain(projectPath: string, report: AnalysisReport, primaryFw: FrameworkInfo | null, allFrameworks: FrameworkInfo[]): DetectedToolchain;
5
+ }
@@ -0,0 +1,164 @@
1
+ import { existsSync } from 'fs';
2
+ import { join } from 'path';
3
+ export class ToolchainDetector {
4
+ detectToolchain(projectPath, report, primaryFw, allFrameworks) {
5
+ const lang = report.projectInfo.primaryLanguages[0] || 'Unknown';
6
+ const hasMakefile = existsSync(join(projectPath, 'Makefile'));
7
+ // @ts-ignore - Audit cleanup unused variable
8
+ const hasDockerCompose = existsSync(join(projectPath, 'docker-compose.yml')) || existsSync(join(projectPath, 'docker-compose.yaml'));
9
+ const hasTest = (name) => allFrameworks.some(f => f.name === name);
10
+ const hasLint = (name) => allFrameworks.some(f => f.name === name && f.category === 'lint');
11
+ // Python
12
+ if (lang === 'Python') {
13
+ const fwName = primaryFw?.name || 'Python';
14
+ const hasPytest = hasTest('pytest');
15
+ const hasRuff = hasLint('Ruff');
16
+ const hasPoetry = existsSync(join(projectPath, 'poetry.lock'));
17
+ const hasPipenv = existsSync(join(projectPath, 'Pipfile.lock'));
18
+ let runCmd = 'python -m main';
19
+ if (fwName === 'FastAPI')
20
+ runCmd = 'uvicorn app.main:app --reload';
21
+ else if (fwName === 'Django')
22
+ runCmd = 'python manage.py runserver';
23
+ else if (fwName === 'Flask')
24
+ runCmd = 'flask run --debug';
25
+ let installCmd = 'pip install -r requirements.txt';
26
+ if (hasPoetry)
27
+ installCmd = 'poetry install';
28
+ else if (hasPipenv)
29
+ installCmd = 'pipenv install';
30
+ return {
31
+ buildCmd: hasMakefile ? 'make build' : (fwName === 'Django' ? 'python manage.py check' : 'python -m py_compile main.py'),
32
+ testCmd: hasPytest ? 'pytest' : 'python -m unittest discover',
33
+ lintCmd: hasRuff ? 'ruff check .' : (hasLint('Flake8') ? 'flake8 .' : (hasLint('Pylint') ? 'pylint src/' : 'ruff check .')),
34
+ runCmd,
35
+ coverageCmd: hasPytest ? 'pytest --cov' : 'coverage run -m pytest',
36
+ installCmd,
37
+ migrateCmd: fwName === 'Django' ? 'python manage.py migrate' : (fwName === 'FastAPI' ? 'alembic upgrade head' : null),
38
+ depsFile: hasPoetry ? 'pyproject.toml' : (hasPipenv ? 'Pipfile' : 'requirements.txt'),
39
+ };
40
+ }
41
+ // TypeScript / JavaScript
42
+ if (lang === 'TypeScript' || lang === 'JavaScript') {
43
+ const hasYarn = existsSync(join(projectPath, 'yarn.lock'));
44
+ const hasPnpm = existsSync(join(projectPath, 'pnpm-lock.yaml'));
45
+ const pm = hasPnpm ? 'pnpm' : (hasYarn ? 'yarn' : 'npm');
46
+ return {
47
+ buildCmd: `${pm} run build`,
48
+ testCmd: hasTest('Vitest') ? `${pm} run test` : (hasTest('Jest') ? `${pm} test` : `${pm} test`),
49
+ lintCmd: hasLint('Biome') ? `${pm} run lint` : (hasLint('ESLint') ? `${pm} run lint` : 'npx eslint .'),
50
+ runCmd: `${pm} run dev`,
51
+ coverageCmd: `${pm} run test -- --coverage`,
52
+ installCmd: `${pm} install`,
53
+ migrateCmd: primaryFw?.name === 'NestJS' ? 'npx typeorm migration:run' : null,
54
+ depsFile: 'package.json',
55
+ };
56
+ }
57
+ // Java / Kotlin
58
+ if (lang === 'Java' || lang === 'Kotlin') {
59
+ const hasMaven = existsSync(join(projectPath, 'pom.xml'));
60
+ const hasGradle = existsSync(join(projectPath, 'build.gradle')) || existsSync(join(projectPath, 'build.gradle.kts'));
61
+ if (hasMaven) {
62
+ return {
63
+ buildCmd: 'mvn clean package',
64
+ testCmd: 'mvn test',
65
+ lintCmd: 'mvn checkstyle:check',
66
+ runCmd: 'mvn spring-boot:run',
67
+ coverageCmd: 'mvn jacoco:report',
68
+ installCmd: 'mvn install',
69
+ migrateCmd: 'mvn flyway:migrate',
70
+ depsFile: 'pom.xml',
71
+ };
72
+ }
73
+ if (hasGradle) {
74
+ return {
75
+ buildCmd: './gradlew build',
76
+ testCmd: './gradlew test',
77
+ lintCmd: './gradlew check',
78
+ runCmd: './gradlew bootRun',
79
+ coverageCmd: './gradlew jacocoTestReport',
80
+ installCmd: './gradlew dependencies',
81
+ migrateCmd: './gradlew flywayMigrate',
82
+ depsFile: existsSync(join(projectPath, 'build.gradle.kts')) ? 'build.gradle.kts' : 'build.gradle',
83
+ };
84
+ }
85
+ }
86
+ // PHP
87
+ if (lang === 'PHP') {
88
+ return {
89
+ buildCmd: 'composer install --no-dev',
90
+ testCmd: primaryFw?.name === 'Laravel' ? 'php artisan test' : 'vendor/bin/phpunit',
91
+ lintCmd: 'vendor/bin/phpstan analyse',
92
+ runCmd: primaryFw?.name === 'Laravel' ? 'php artisan serve' : 'php -S localhost:8000',
93
+ coverageCmd: 'vendor/bin/phpunit --coverage-text',
94
+ installCmd: 'composer install',
95
+ migrateCmd: primaryFw?.name === 'Laravel' ? 'php artisan migrate' : null,
96
+ depsFile: 'composer.json',
97
+ };
98
+ }
99
+ // Go
100
+ if (lang === 'Go') {
101
+ return {
102
+ buildCmd: 'go build ./...',
103
+ testCmd: 'go test ./...',
104
+ lintCmd: 'golangci-lint run',
105
+ runCmd: 'go run .',
106
+ coverageCmd: 'go test -coverprofile=coverage.out ./...',
107
+ installCmd: 'go mod download',
108
+ migrateCmd: null,
109
+ depsFile: 'go.mod',
110
+ };
111
+ }
112
+ // Ruby
113
+ if (lang === 'Ruby') {
114
+ return {
115
+ buildCmd: 'bundle exec rake build',
116
+ testCmd: hasTest('RSpec') ? 'bundle exec rspec' : 'bundle exec rake test',
117
+ lintCmd: 'bundle exec rubocop',
118
+ runCmd: primaryFw?.name === 'Ruby on Rails' ? 'rails server' : 'ruby app.rb',
119
+ coverageCmd: 'bundle exec rspec --format documentation',
120
+ installCmd: 'bundle install',
121
+ migrateCmd: primaryFw?.name === 'Ruby on Rails' ? 'rails db:migrate' : null,
122
+ depsFile: 'Gemfile',
123
+ };
124
+ }
125
+ // Dart
126
+ if (lang === 'Dart') {
127
+ return {
128
+ buildCmd: 'flutter build',
129
+ testCmd: 'flutter test',
130
+ lintCmd: 'dart analyze',
131
+ runCmd: 'flutter run',
132
+ coverageCmd: 'flutter test --coverage',
133
+ installCmd: 'flutter pub get',
134
+ migrateCmd: null,
135
+ depsFile: 'pubspec.yaml',
136
+ };
137
+ }
138
+ // Rust
139
+ if (lang === 'Rust') {
140
+ return {
141
+ buildCmd: 'cargo build',
142
+ testCmd: 'cargo test',
143
+ lintCmd: 'cargo clippy',
144
+ runCmd: 'cargo run',
145
+ coverageCmd: 'cargo tarpaulin',
146
+ installCmd: 'cargo build',
147
+ migrateCmd: null,
148
+ depsFile: 'Cargo.toml',
149
+ };
150
+ }
151
+ // Fallback
152
+ return {
153
+ buildCmd: hasMakefile ? 'make build' : 'echo "No build command detected"',
154
+ testCmd: hasMakefile ? 'make test' : 'echo "No test command detected"',
155
+ lintCmd: hasMakefile ? 'make lint' : 'echo "No lint command detected"',
156
+ runCmd: hasMakefile ? 'make run' : 'echo "No run command detected"',
157
+ coverageCmd: 'echo "No coverage command detected"',
158
+ installCmd: 'echo "No install command detected"',
159
+ migrateCmd: null,
160
+ depsFile: 'unknown',
161
+ };
162
+ }
163
+ }
164
+ //# sourceMappingURL=toolchain-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolchain-detector.js","sourceRoot":"","sources":["../../../../../src/core/agent-generator/detectors/toolchain-detector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { AnalysisReport } from '@girardelli/architect-core/src/core/types/core.js';
2
+ import { DomainInsights } from './types/domain.js';
3
+ /**
4
+ * DomainInferrer — Analyzes project metadata, file names, module structure,
5
+ * README content, and keywords to infer the business domain and context.
6
+ *
7
+ * This enables context-aware agent generation that understands WHAT the
8
+ * project does, not just HOW it's built.
9
+ */
10
+ export declare class DomainInferrer {
11
+ private static readonly DOMAIN_PATTERNS;
12
+ private static readonly COMPLIANCE_MAP;
13
+ /**
14
+ * Infer domain insights from the analysis report.
15
+ */
16
+ infer(report: AnalysisReport, projectPath: string): DomainInsights;
17
+ /**
18
+ * Extract all relevant keywords from the project.
19
+ */
20
+ private extractAllKeywords;
21
+ /**
22
+ * Classify project domain based on keyword matching.
23
+ */
24
+ private classifyDomain;
25
+ /**
26
+ * Extract business entities from model/entity/schema file names.
27
+ */
28
+ private extractBusinessEntities;
29
+ private inferEntityLayer;
30
+ /**
31
+ * Infer compliance requirements from domain and keywords.
32
+ */
33
+ private inferCompliance;
34
+ /**
35
+ * Detect external integrations from file names, imports, and keywords.
36
+ */
37
+ private detectIntegrations;
38
+ /**
39
+ * Build a human-readable description of the project.
40
+ */
41
+ private buildDescription;
42
+ /**
43
+ * Split camelCase, PascalCase, snake_case, kebab-case identifiers into parts.
44
+ */
45
+ /**
46
+ * Extract keywords from project files on disk (pyproject.toml, README.md, package.json).
47
+ * These provide high-value domain signals that the scanner may miss.
48
+ */
49
+ private extractKeywordsFromProjectFiles;
50
+ private splitIdentifier;
51
+ }