@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,11 @@
1
+ /**
2
+ * Template Helpers v3.2 — Facade para todos os utilitários agnósticos e estruturais.
3
+ *
4
+ * Refatorado na Fase 2.3.4: Erradicação final da God Class (777 → 20 linhas).
5
+ */
6
+ export * from './helpers/base-helpers.js';
7
+ export * from './helpers/cross-ref-helpers.js';
8
+ export * from './helpers/summary-helpers.js';
9
+ export * from './helpers/stack-helpers.js';
10
+ export * from './helpers/structure-helpers.js';
11
+ export * from './helpers/security-helpers.js';
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Template Helpers v3.2 — Facade para todos os utilitários agnósticos e estruturais.
3
+ *
4
+ * Refatorado na Fase 2.3.4: Erradicação final da God Class (777 → 20 linhas).
5
+ */
6
+ export * from './helpers/base-helpers.js';
7
+ export * from './helpers/cross-ref-helpers.js';
8
+ export * from './helpers/summary-helpers.js';
9
+ export * from './helpers/stack-helpers.js';
10
+ export * from './helpers/structure-helpers.js';
11
+ export * from './helpers/security-helpers.js';
12
+ //# sourceMappingURL=template-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-helpers.js","sourceRoot":"","sources":["../../../../../src/core/agent-generator/templates/template-helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { StackInfo } from './stack.js';
2
+ export interface AgentAuditFinding {
3
+ type: 'MISSING' | 'OUTDATED' | 'IMPROVEMENT' | 'OK';
4
+ category: string;
5
+ file: string;
6
+ description: string;
7
+ suggestion?: string;
8
+ }
9
+ export type AgentItemStatus = 'KEEP' | 'MODIFY' | 'CREATE' | 'DELETE';
10
+ export interface AgentItem {
11
+ name: string;
12
+ status: AgentItemStatus;
13
+ reason?: string;
14
+ description?: string;
15
+ }
16
+ export interface AgentSuggestion {
17
+ stack: StackInfo;
18
+ hasExistingAgents: boolean;
19
+ suggestedAgents: AgentItem[];
20
+ suggestedRules: AgentItem[];
21
+ suggestedGuards: AgentItem[];
22
+ suggestedWorkflows: AgentItem[];
23
+ suggestedSkills: {
24
+ name: string;
25
+ source: string;
26
+ description: string;
27
+ status: AgentItemStatus;
28
+ }[];
29
+ audit: AgentAuditFinding[];
30
+ command: string;
31
+ }
32
+ export interface AgentGeneratorConfig {
33
+ coverageMinimum: number;
34
+ scoreThreshold: number;
35
+ language: 'pt-BR' | 'en';
36
+ goldenRules: string[];
37
+ blockers: string[];
38
+ }
39
+ export declare const DEFAULT_AGENT_CONFIG: AgentGeneratorConfig;
@@ -0,0 +1,27 @@
1
+ export const DEFAULT_AGENT_CONFIG = {
2
+ coverageMinimum: 80,
3
+ scoreThreshold: 70,
4
+ language: 'pt-BR',
5
+ goldenRules: [
6
+ 'Git Flow completo (branch → PR → review → merge)',
7
+ 'Arquitetura C4 (4 níveis de documentação)',
8
+ 'BDD antes de código',
9
+ 'TDD — Red → Green → Refactor',
10
+ 'Diagnóstico obrigatório antes de codar',
11
+ 'Mockup antes de qualquer UI',
12
+ 'Nunca decidir sozinho — perguntar ao humano',
13
+ 'Qualidade > Velocidade',
14
+ 'Não abrir browser, não tirar screenshot — apenas código',
15
+ ],
16
+ blockers: [
17
+ 'console.log / print() em código de produção',
18
+ 'TODO / FIXME / HACK sem issue vinculada',
19
+ 'any (TypeScript) / type: ignore (Python) sem justificativa',
20
+ 'Testes com .skip() ou @pytest.mark.skip sem motivo',
21
+ 'Secrets, tokens ou senhas hardcoded',
22
+ 'Push direto em main/develop',
23
+ 'Arquivos > 500 linhas sem justificativa',
24
+ 'Imports circulares',
25
+ ],
26
+ };
27
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../../../src/core/agent-generator/types/agent.ts"],"names":[],"mappings":"AAuCA,MAAM,CAAC,MAAM,oBAAoB,GAAyB;IACxD,eAAe,EAAE,EAAE;IACnB,cAAc,EAAE,EAAE;IAClB,QAAQ,EAAE,OAAO;IACjB,WAAW,EAAE;QACX,kDAAkD;QAClD,2CAA2C;QAC3C,qBAAqB;QACrB,8BAA8B;QAC9B,wCAAwC;QACxC,6BAA6B;QAC7B,6CAA6C;QAC7C,wBAAwB;QACxB,yDAAyD;KAC1D;IACD,QAAQ,EAAE;QACR,6CAA6C;QAC7C,yCAAyC;QACzC,4DAA4D;QAC5D,oDAAoD;QACpD,qCAAqC;QACrC,6BAA6B;QAC7B,yCAAyC;QACzC,oBAAoB;KACrB;CACF,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Detailed module information extracted from project analysis.
3
+ */
4
+ export interface ModuleDetail {
5
+ name: string;
6
+ path: string;
7
+ files: string[];
8
+ fileCount: number;
9
+ lineCount: number;
10
+ description: string;
11
+ hasTests: boolean;
12
+ testFiles: string[];
13
+ entities: string[];
14
+ controllers: string[];
15
+ services: string[];
16
+ layer: string;
17
+ }
18
+ /**
19
+ * API endpoint detected from route/controller files.
20
+ */
21
+ export interface DetectedEndpoint {
22
+ method: string;
23
+ path: string;
24
+ file: string;
25
+ handler: string;
26
+ hasAuth: boolean;
27
+ hasValidation: boolean;
28
+ }
29
+ export interface BusinessEntity {
30
+ name: string;
31
+ source: string;
32
+ fields: string[];
33
+ relationships: string[];
34
+ layer: 'model' | 'entity' | 'schema' | 'dto' | 'unknown';
35
+ }
36
+ export interface ComplianceRequirement {
37
+ name: string;
38
+ reason: string;
39
+ mandatoryChecks: string[];
40
+ }
41
+ export interface ExternalIntegration {
42
+ name: string;
43
+ type: 'api' | 'database' | 'queue' | 'storage' | 'payment' | 'auth' | 'government' | 'other';
44
+ detectedFrom: string;
45
+ }
46
+ /**
47
+ * Domain classification inferred from project analysis.
48
+ */
49
+ export interface DomainInsights {
50
+ domain: string;
51
+ subDomain: string;
52
+ description: string;
53
+ businessEntities: BusinessEntity[];
54
+ compliance: ComplianceRequirement[];
55
+ integrations: ExternalIntegration[];
56
+ keywords: string[];
57
+ confidence: number;
58
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=domain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.js","sourceRoot":"","sources":["../../../../../src/core/agent-generator/types/domain.ts"],"names":[],"mappings":""}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Stack detection result from project analysis.
3
+ */
4
+ export interface StackInfo {
5
+ primary: string;
6
+ languages: string[];
7
+ frameworks: string[];
8
+ hasBackend: boolean;
9
+ hasFrontend: boolean;
10
+ hasMobile: boolean;
11
+ hasDatabase: boolean;
12
+ testFramework: string;
13
+ packageManager: string;
14
+ }
15
+ /**
16
+ * Detected framework with version, detected from dependency files.
17
+ */
18
+ export interface FrameworkInfo {
19
+ name: string;
20
+ version: string | null;
21
+ category: 'web' | 'orm' | 'test' | 'lint' | 'build' | 'other';
22
+ confidence: number;
23
+ }
24
+ /**
25
+ * Detected toolchain — build, test, lint, run commands.
26
+ */
27
+ export interface DetectedToolchain {
28
+ buildCmd: string;
29
+ testCmd: string;
30
+ lintCmd: string;
31
+ runCmd: string;
32
+ coverageCmd: string;
33
+ installCmd: string;
34
+ migrateCmd: string | null;
35
+ depsFile: string;
36
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack.js","sourceRoot":"","sources":["../../../../../src/core/agent-generator/types/stack.ts"],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ import { AnalysisReport } from '@girardelli/architect-core/src/core/types/core.js';
2
+ import { RefactoringPlan } from '@girardelli/architect-core/src/core/types/rules.js';
3
+ import { StackInfo, FrameworkInfo, DetectedToolchain } from './stack.js';
4
+ import { DomainInsights, ModuleDetail, DetectedEndpoint } from './domain.js';
5
+ import { AgentGeneratorConfig } from './agent.js';
6
+ export interface TemplateContext {
7
+ report: AnalysisReport;
8
+ plan: RefactoringPlan;
9
+ stack: StackInfo;
10
+ projectName: string;
11
+ stackLabel: string;
12
+ config: AgentGeneratorConfig;
13
+ }
14
+ export interface EnrichedTemplateContext extends TemplateContext {
15
+ domain: DomainInsights;
16
+ modules: ModuleDetail[];
17
+ endpoints: DetectedEndpoint[];
18
+ untestedModules: string[];
19
+ criticalPaths: string[];
20
+ projectDepth: 'small' | 'medium' | 'large' | 'enterprise';
21
+ /** Detected frameworks with versions */
22
+ detectedFrameworks: FrameworkInfo[];
23
+ /** Primary web framework (e.g., 'FastAPI', 'NestJS', 'Django') */
24
+ primaryFramework: FrameworkInfo | null;
25
+ /** Detected toolchain commands */
26
+ toolchain: DetectedToolchain;
27
+ /** Real project structure pattern detected */
28
+ projectStructure: 'clean-architecture' | 'mvc' | 'modular' | 'flat' | 'monorepo' | 'unknown';
29
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../src/core/agent-generator/types/template.ts"],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * AI Provider Factory
3
+ * Zero-dependency, lightweight adapter for multiple LLM endpoints.
4
+ */
5
+ export interface AIProvider {
6
+ /**
7
+ * Translates an explicit AI prompt along with the existing file content
8
+ * into a newly unified source code string.
9
+ */
10
+ executeRefactoringPrompt(fileContent: string, prompt: string): Promise<string>;
11
+ }
12
+ export declare class OpenAIProvider implements AIProvider {
13
+ private apiKey;
14
+ private model;
15
+ private apiUrl;
16
+ constructor(apiKey: string, model?: string, apiUrl?: string);
17
+ executeRefactoringPrompt(fileContent: string, prompt: string): Promise<string>;
18
+ }
19
+ export declare class AnthropicProvider implements AIProvider {
20
+ private apiKey;
21
+ private model;
22
+ constructor(apiKey: string, model?: string);
23
+ executeRefactoringPrompt(fileContent: string, prompt: string): Promise<string>;
24
+ }
25
+ export declare class GeminiProvider implements AIProvider {
26
+ private apiKey;
27
+ private model;
28
+ constructor(apiKey: string, model?: string);
29
+ executeRefactoringPrompt(fileContent: string, prompt: string): Promise<string>;
30
+ }
31
+ export declare class ModelProviderFactory {
32
+ static createProvider(): AIProvider;
33
+ }
@@ -0,0 +1,146 @@
1
+ /**
2
+ * AI Provider Factory
3
+ * Zero-dependency, lightweight adapter for multiple LLM endpoints.
4
+ */
5
+ export class OpenAIProvider {
6
+ apiKey;
7
+ model;
8
+ apiUrl;
9
+ constructor(apiKey, model = 'gpt-4o', apiUrl = 'https://api.openai.com/v1/chat/completions') {
10
+ this.apiKey = apiKey;
11
+ this.model = model;
12
+ this.apiUrl = apiUrl;
13
+ }
14
+ async executeRefactoringPrompt(fileContent, prompt) {
15
+ const systemPrompt = `You are a strict, top-tier Software Architect AI modifying code.
16
+ Return ONLY the fully rewritten source code. Never use markdown code blocks (\`\`\`).
17
+ Do NOT include explanations or prefix/suffix text. Your complete response must be purely the new raw code content.`;
18
+ const userMessage = `${prompt}\n\nCurrent file content:\n\n${fileContent}`;
19
+ const response = await fetch(this.apiUrl, {
20
+ method: 'POST',
21
+ headers: {
22
+ 'Content-Type': 'application/json',
23
+ Authorization: `Bearer ${this.apiKey}`,
24
+ },
25
+ body: JSON.stringify({
26
+ model: this.model,
27
+ messages: [
28
+ { role: 'system', content: systemPrompt },
29
+ { role: 'user', content: userMessage },
30
+ ],
31
+ temperature: 0.1,
32
+ }),
33
+ });
34
+ if (!response.ok) {
35
+ const err = await response.text();
36
+ throw new Error(`OpenAI API Error (${response.status}): ${err}`);
37
+ }
38
+ const data = await response.json();
39
+ let newCode = data.choices[0].message.content.trim();
40
+ // Safety check just in case LLM injected markdown blocks
41
+ if (newCode.startsWith('```') && newCode.endsWith('```')) {
42
+ const lines = newCode.split('\n');
43
+ lines.shift(); // Remove first line (```language)
44
+ lines.pop(); // Remove last line (```)
45
+ newCode = lines.join('\n');
46
+ }
47
+ return newCode;
48
+ }
49
+ }
50
+ export class AnthropicProvider {
51
+ apiKey;
52
+ model;
53
+ constructor(apiKey, model = 'claude-3-7-sonnet-20250219') {
54
+ this.apiKey = apiKey;
55
+ this.model = model;
56
+ }
57
+ async executeRefactoringPrompt(fileContent, prompt) {
58
+ const systemPrompt = `You are a strict Software Architect AI modifying code. Return ONLY the fully rewritten source code. Never use markdown code blocks (\`\`\`). Do NOT include any conversational text.`;
59
+ const userMessage = `${prompt}\n\n<current_file>\n${fileContent}\n</current_file>`;
60
+ const response = await fetch('https://api.anthropic.com/v1/messages', {
61
+ method: 'POST',
62
+ headers: {
63
+ 'Content-Type': 'application/json',
64
+ 'x-api-key': this.apiKey,
65
+ 'anthropic-version': '2023-06-01',
66
+ },
67
+ body: JSON.stringify({
68
+ model: this.model,
69
+ system: systemPrompt,
70
+ messages: [{ role: 'user', content: userMessage }],
71
+ max_tokens: 8192,
72
+ temperature: 0.1,
73
+ }),
74
+ });
75
+ if (!response.ok) {
76
+ const err = await response.text();
77
+ throw new Error(`Anthropic API Error (${response.status}): ${err}`);
78
+ }
79
+ const data = await response.json();
80
+ let newCode = data.content[0].text.trim();
81
+ if (newCode.startsWith('```') && newCode.endsWith('```')) {
82
+ const lines = newCode.split('\n');
83
+ lines.shift();
84
+ lines.pop();
85
+ newCode = lines.join('\n');
86
+ }
87
+ return newCode;
88
+ }
89
+ }
90
+ export class GeminiProvider {
91
+ apiKey;
92
+ model;
93
+ constructor(apiKey, model = 'gemini-2.5-flash') {
94
+ this.apiKey = apiKey;
95
+ this.model = model;
96
+ }
97
+ async executeRefactoringPrompt(fileContent, prompt) {
98
+ const url = `https://generativelanguage.googleapis.com/v1beta/models/${this.model}:generateContent?key=${this.apiKey}`;
99
+ const systemPrompt = 'You are a strict Software Architect AI modifying code. Return ONLY the fully rewritten source code without markdown formatting or conversational filler.';
100
+ const response = await fetch(url, {
101
+ method: 'POST',
102
+ headers: { 'Content-Type': 'application/json' },
103
+ body: JSON.stringify({
104
+ systemInstruction: { parts: [{ text: systemPrompt }] },
105
+ contents: [
106
+ { role: 'user', parts: [{ text: `${prompt}\n\nFile Content:\n\n${fileContent}` }] }
107
+ ],
108
+ generationConfig: { temperature: 0.1 }
109
+ }),
110
+ });
111
+ if (!response.ok) {
112
+ const err = await response.text();
113
+ throw new Error(`Gemini API Error (${response.status}): ${err}`);
114
+ }
115
+ const data = await response.json();
116
+ const candidate = data.candidates?.[0]?.content?.parts?.[0]?.text || '';
117
+ let newCode = candidate.trim();
118
+ if (newCode.startsWith('```') && newCode.endsWith('```')) {
119
+ const lines = newCode.split('\n');
120
+ lines.shift();
121
+ lines.pop();
122
+ newCode = lines.join('\n');
123
+ }
124
+ return newCode;
125
+ }
126
+ }
127
+ export class ModelProviderFactory {
128
+ static createProvider() {
129
+ if (process.env.ANTHROPIC_API_KEY) {
130
+ return new AnthropicProvider(process.env.ANTHROPIC_API_KEY);
131
+ }
132
+ if (process.env.OPENAI_API_KEY) {
133
+ // Allow overriding API URL for OpenAI compatibles (e.g. DeepSeek, Groq, local LMStudio)
134
+ const model = process.env.OPENAI_MODEL_NAME || 'gpt-4o';
135
+ const apiUrl = process.env.OPENAI_BASE_URL
136
+ ? `${process.env.OPENAI_BASE_URL.replace(/\/$/, '')}/chat/completions`
137
+ : undefined;
138
+ return new OpenAIProvider(process.env.OPENAI_API_KEY, model, apiUrl);
139
+ }
140
+ if (process.env.GEMINI_API_KEY) {
141
+ return new GeminiProvider(process.env.GEMINI_API_KEY);
142
+ }
143
+ throw new Error('No AI API Key found in environment variables. Define OPENAI_API_KEY, ANTHROPIC_API_KEY, or GEMINI_API_KEY to execute AI-based refactoring.');
144
+ }
145
+ }
146
+ //# sourceMappingURL=ai-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-provider.js","sourceRoot":"","sources":["../../../../src/core/agent-runtime/ai-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { RefactoringPlan } from '@girardelli/architect-core/src/core/types/rules.js';
2
+ export declare class AgentExecutor {
3
+ private gate;
4
+ private autoMode;
5
+ constructor(autoMode?: boolean);
6
+ /**
7
+ * Main entrypoint for Agent Runtime.
8
+ */
9
+ executePlan(plan: RefactoringPlan): Promise<void>;
10
+ private executeOperation;
11
+ private ensureProtectiveBranch;
12
+ private commitStep;
13
+ }
@@ -0,0 +1,138 @@
1
+ import { writeFileSync, mkdirSync, readFileSync, renameSync, unlinkSync, existsSync } from 'fs';
2
+ import { dirname } from 'path';
3
+ import { execSync } from 'child_process';
4
+ import { HumanGate } from './human-gate.js';
5
+ import { ModelProviderFactory } from './ai-provider.js';
6
+ export class AgentExecutor {
7
+ gate;
8
+ // @ts-ignore - Audit cleanup unused variable
9
+ autoMode;
10
+ constructor(autoMode = false) {
11
+ this.autoMode = autoMode;
12
+ this.gate = new HumanGate(autoMode);
13
+ }
14
+ /**
15
+ * Main entrypoint for Agent Runtime.
16
+ */
17
+ async executePlan(plan) {
18
+ console.log(`\n\x1b[35m=== 🤖 Architect Autonomous Agent ===\x1b[0m`);
19
+ console.log(`Loaded Refactoring Plan: ${plan.steps.length} procedural steps.\n`);
20
+ // 1. Mandatory Git Flow Branching
21
+ this.ensureProtectiveBranch();
22
+ // 2. Load AI Provider if needed
23
+ const needsAI = plan.steps.some((s) => !!s.aiPrompt);
24
+ let aiProvider = null;
25
+ if (needsAI) {
26
+ try {
27
+ aiProvider = ModelProviderFactory.createProvider();
28
+ console.log(`\x1b[32m[AI Engine Ready]\x1b[0m Linked to external LLM provider.\n`);
29
+ }
30
+ catch (e) {
31
+ console.warn(`\x1b[33m[AI Warning]\x1b[0m Could not connect AI Provider (` + e.message + `). Steps requiring AI will be skipped.\n`);
32
+ }
33
+ }
34
+ // 3. Execution Loop
35
+ for (const step of plan.steps) {
36
+ const approved = await this.gate.requestApproval(step);
37
+ if (!approved) {
38
+ console.log(`\x1b[90mSkipping step #${step.id}...\x1b[0m\n`);
39
+ continue;
40
+ }
41
+ console.log(`\n\x1b[36mExecuting Step #${step.id}...\x1b[0m`);
42
+ let successCount = 0;
43
+ for (const op of step.operations) {
44
+ try {
45
+ await this.executeOperation(op, step.aiPrompt, aiProvider);
46
+ successCount++;
47
+ }
48
+ catch (e) {
49
+ console.error(`\x1b[31mFailed to execute operation on ${op.path}:\x1b[0m ${e.message}`);
50
+ }
51
+ }
52
+ // 4. Atomic Commit per Step
53
+ if (successCount > 0) {
54
+ this.commitStep(step);
55
+ }
56
+ }
57
+ this.gate.close();
58
+ console.log(`\n\x1b[32m=== ✅ Autonomous Execution Complete ===\x1b[0m`);
59
+ console.log(`Changes are safed in the current feature branch. Review, test, and push to remote!`);
60
+ }
61
+ async executeOperation(op, aiPrompt, aiProvider) {
62
+ const targetPath = op.path;
63
+ if (op.type === 'CREATE') {
64
+ if (op.content) {
65
+ mkdirSync(dirname(targetPath), { recursive: true });
66
+ writeFileSync(targetPath, op.content, 'utf8');
67
+ console.log(` \x1b[32m✔ Created:\x1b[0m ${targetPath}`);
68
+ }
69
+ }
70
+ else if (op.type === 'MOVE' && op.newPath) {
71
+ if (existsSync(targetPath)) {
72
+ mkdirSync(dirname(op.newPath), { recursive: true });
73
+ renameSync(targetPath, op.newPath);
74
+ console.log(` \x1b[34m✔ Moved:\x1b[0m ${targetPath} -> ${op.newPath}`);
75
+ }
76
+ }
77
+ else if (op.type === 'DELETE') {
78
+ if (existsSync(targetPath)) {
79
+ unlinkSync(targetPath);
80
+ console.log(` \x1b[31m✔ Deleted:\x1b[0m ${targetPath}`);
81
+ }
82
+ }
83
+ else if (op.type === 'MODIFY') {
84
+ if (!existsSync(targetPath)) {
85
+ throw new Error(`Target file ${targetPath} does not exist`);
86
+ }
87
+ const currentContent = readFileSync(targetPath, 'utf8');
88
+ if (aiPrompt) {
89
+ if (!aiProvider)
90
+ throw new Error('AI Provider not configured, cannot execute prompt');
91
+ console.log(` \x1b[35m✨ AI Generating structure for ${targetPath}...\x1b[0m`);
92
+ const newContent = await aiProvider.executeRefactoringPrompt(currentContent, aiPrompt);
93
+ writeFileSync(targetPath, newContent, 'utf8');
94
+ console.log(` \x1b[33m✔ AI Re-wrote:\x1b[0m ${targetPath}`);
95
+ }
96
+ else if (op.content) {
97
+ // Fallback or exact replacement
98
+ writeFileSync(targetPath, op.content, 'utf8');
99
+ console.log(` \x1b[33m✔ Modified:\x1b[0m ${targetPath}`);
100
+ }
101
+ }
102
+ }
103
+ ensureProtectiveBranch() {
104
+ if (process.env.NODE_ENV === 'test')
105
+ return;
106
+ try {
107
+ const currentBranch = execSync('git rev-parse --abbrev-ref HEAD').toString().trim();
108
+ const needsNewBranch = ['main', 'master', 'develop'].includes(currentBranch);
109
+ if (needsNewBranch) {
110
+ const ts = new Date().getTime();
111
+ const branchName = `feature/architect-refactor-${ts}`;
112
+ console.log(`\x1b[36m[Git Flow]\x1b[0m Currently on '${currentBranch}'. Creating protective branch \x1b[33m${branchName}\x1b[0m...`);
113
+ execSync(`git checkout -b ${branchName}`);
114
+ }
115
+ else {
116
+ console.log(`\x1b[32m[Git Flow]\x1b[0m Continuing firmly on non-base branch '${currentBranch}'.`);
117
+ }
118
+ }
119
+ catch (e) {
120
+ console.warn(`\x1b[33m[Warning]\x1b[0m Git repository not detected or git command failed. Proceeding without branch protection.`);
121
+ }
122
+ }
123
+ commitStep(step) {
124
+ if (process.env.NODE_ENV === 'test')
125
+ return;
126
+ try {
127
+ execSync('git add .');
128
+ const msg = `refactor(architect): apply rule ${step.rule}\n\nAuto-applied by Architect Agent.\nMotivation: ${step.title}`;
129
+ execSync(`git commit -m "${msg}"`);
130
+ console.log(` \x1b[32m✔ Git Commit Saved: ${step.rule}\x1b[0m\n`);
131
+ }
132
+ catch (e) {
133
+ // Might happen if there were no actual changes (e.g. content was identical)
134
+ console.log(` \x1b[90m(No git changes detected for this step)\x1b[0m\n`);
135
+ }
136
+ }
137
+ }
138
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/core/agent-runtime/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { RefactorStep } from '@girardelli/architect-core/src/core/types/rules.js';
2
+ export declare class HumanGate {
3
+ private rl;
4
+ private autoMode;
5
+ constructor(autoMode?: boolean);
6
+ /**
7
+ * Request manual approval before applying a refactoring step.
8
+ * If autoMode is true, it always auto-approves.
9
+ */
10
+ requestApproval(step: RefactorStep): Promise<boolean>;
11
+ /**
12
+ * Prints the planned operation visually
13
+ */
14
+ private printOperation;
15
+ close(): void;
16
+ }