@girardelli/architect 2.2.0 → 5.0.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 (212) hide show
  1. package/README.md +105 -116
  2. package/architect-run.sh +431 -0
  3. package/assets/banner-v3.html +561 -0
  4. package/dist/agent-generator/context-enricher.d.ts +58 -0
  5. package/dist/agent-generator/context-enricher.d.ts.map +1 -0
  6. package/dist/agent-generator/context-enricher.js +613 -0
  7. package/dist/agent-generator/context-enricher.js.map +1 -0
  8. package/dist/agent-generator/domain-inferrer.d.ts +52 -0
  9. package/dist/agent-generator/domain-inferrer.d.ts.map +1 -0
  10. package/dist/agent-generator/domain-inferrer.js +585 -0
  11. package/dist/agent-generator/domain-inferrer.js.map +1 -0
  12. package/dist/agent-generator/framework-detector.d.ts +40 -0
  13. package/dist/agent-generator/framework-detector.d.ts.map +1 -0
  14. package/dist/agent-generator/framework-detector.js +611 -0
  15. package/dist/agent-generator/framework-detector.js.map +1 -0
  16. package/dist/agent-generator/index.d.ts +47 -0
  17. package/dist/agent-generator/index.d.ts.map +1 -0
  18. package/dist/agent-generator/index.js +545 -0
  19. package/dist/agent-generator/index.js.map +1 -0
  20. package/dist/agent-generator/stack-detector.d.ts +14 -0
  21. package/dist/agent-generator/stack-detector.d.ts.map +1 -0
  22. package/dist/agent-generator/stack-detector.js +124 -0
  23. package/dist/agent-generator/stack-detector.js.map +1 -0
  24. package/dist/agent-generator/templates/core/agents.d.ts +17 -0
  25. package/dist/agent-generator/templates/core/agents.d.ts.map +1 -0
  26. package/dist/agent-generator/templates/core/agents.js +1256 -0
  27. package/dist/agent-generator/templates/core/agents.js.map +1 -0
  28. package/dist/agent-generator/templates/core/architecture-rules.d.ts +7 -0
  29. package/dist/agent-generator/templates/core/architecture-rules.d.ts.map +1 -0
  30. package/dist/agent-generator/templates/core/architecture-rules.js +274 -0
  31. package/dist/agent-generator/templates/core/architecture-rules.js.map +1 -0
  32. package/dist/agent-generator/templates/core/general-rules.d.ts +8 -0
  33. package/dist/agent-generator/templates/core/general-rules.d.ts.map +1 -0
  34. package/dist/agent-generator/templates/core/general-rules.js +301 -0
  35. package/dist/agent-generator/templates/core/general-rules.js.map +1 -0
  36. package/dist/agent-generator/templates/core/hooks-generator.d.ts +21 -0
  37. package/dist/agent-generator/templates/core/hooks-generator.d.ts.map +1 -0
  38. package/dist/agent-generator/templates/core/hooks-generator.js +233 -0
  39. package/dist/agent-generator/templates/core/hooks-generator.js.map +1 -0
  40. package/dist/agent-generator/templates/core/index-md.d.ts +7 -0
  41. package/dist/agent-generator/templates/core/index-md.d.ts.map +1 -0
  42. package/dist/agent-generator/templates/core/index-md.js +246 -0
  43. package/dist/agent-generator/templates/core/index-md.js.map +1 -0
  44. package/dist/agent-generator/templates/core/orchestrator.d.ts +8 -0
  45. package/dist/agent-generator/templates/core/orchestrator.d.ts.map +1 -0
  46. package/dist/agent-generator/templates/core/orchestrator.js +422 -0
  47. package/dist/agent-generator/templates/core/orchestrator.js.map +1 -0
  48. package/dist/agent-generator/templates/core/preflight.d.ts +8 -0
  49. package/dist/agent-generator/templates/core/preflight.d.ts.map +1 -0
  50. package/dist/agent-generator/templates/core/preflight.js +213 -0
  51. package/dist/agent-generator/templates/core/preflight.js.map +1 -0
  52. package/dist/agent-generator/templates/core/quality-gates.d.ts +11 -0
  53. package/dist/agent-generator/templates/core/quality-gates.d.ts.map +1 -0
  54. package/dist/agent-generator/templates/core/quality-gates.js +254 -0
  55. package/dist/agent-generator/templates/core/quality-gates.js.map +1 -0
  56. package/dist/agent-generator/templates/core/security-rules.d.ts +7 -0
  57. package/dist/agent-generator/templates/core/security-rules.d.ts.map +1 -0
  58. package/dist/agent-generator/templates/core/security-rules.js +528 -0
  59. package/dist/agent-generator/templates/core/security-rules.js.map +1 -0
  60. package/dist/agent-generator/templates/core/skills-generator.d.ts +19 -0
  61. package/dist/agent-generator/templates/core/skills-generator.d.ts.map +1 -0
  62. package/dist/agent-generator/templates/core/skills-generator.js +546 -0
  63. package/dist/agent-generator/templates/core/skills-generator.js.map +1 -0
  64. package/dist/agent-generator/templates/core/workflow-fix-bug.d.ts +7 -0
  65. package/dist/agent-generator/templates/core/workflow-fix-bug.d.ts.map +1 -0
  66. package/dist/agent-generator/templates/core/workflow-fix-bug.js +237 -0
  67. package/dist/agent-generator/templates/core/workflow-fix-bug.js.map +1 -0
  68. package/dist/agent-generator/templates/core/workflow-new-feature.d.ts +8 -0
  69. package/dist/agent-generator/templates/core/workflow-new-feature.d.ts.map +1 -0
  70. package/dist/agent-generator/templates/core/workflow-new-feature.js +321 -0
  71. package/dist/agent-generator/templates/core/workflow-new-feature.js.map +1 -0
  72. package/dist/agent-generator/templates/core/workflow-review.d.ts +7 -0
  73. package/dist/agent-generator/templates/core/workflow-review.d.ts.map +1 -0
  74. package/dist/agent-generator/templates/core/workflow-review.js +104 -0
  75. package/dist/agent-generator/templates/core/workflow-review.js.map +1 -0
  76. package/dist/agent-generator/templates/domain/index.d.ts +22 -0
  77. package/dist/agent-generator/templates/domain/index.d.ts.map +1 -0
  78. package/dist/agent-generator/templates/domain/index.js +1176 -0
  79. package/dist/agent-generator/templates/domain/index.js.map +1 -0
  80. package/dist/agent-generator/templates/stack/index.d.ts +8 -0
  81. package/dist/agent-generator/templates/stack/index.d.ts.map +1 -0
  82. package/dist/agent-generator/templates/stack/index.js +695 -0
  83. package/dist/agent-generator/templates/stack/index.js.map +1 -0
  84. package/dist/agent-generator/templates/template-helpers.d.ts +75 -0
  85. package/dist/agent-generator/templates/template-helpers.d.ts.map +1 -0
  86. package/dist/agent-generator/templates/template-helpers.js +726 -0
  87. package/dist/agent-generator/templates/template-helpers.js.map +1 -0
  88. package/dist/agent-generator/types.d.ts +196 -0
  89. package/dist/agent-generator/types.d.ts.map +1 -0
  90. package/dist/agent-generator/types.js +27 -0
  91. package/dist/agent-generator/types.js.map +1 -0
  92. package/dist/analyzer.d.ts +5 -0
  93. package/dist/analyzer.d.ts.map +1 -1
  94. package/dist/analyzer.js +46 -5
  95. package/dist/analyzer.js.map +1 -1
  96. package/dist/analyzers/forecast.d.ts +85 -0
  97. package/dist/analyzers/forecast.d.ts.map +1 -0
  98. package/dist/analyzers/forecast.js +337 -0
  99. package/dist/analyzers/forecast.js.map +1 -0
  100. package/dist/analyzers/git-cache.d.ts +7 -0
  101. package/dist/analyzers/git-cache.d.ts.map +1 -0
  102. package/dist/analyzers/git-cache.js +41 -0
  103. package/dist/analyzers/git-cache.js.map +1 -0
  104. package/dist/analyzers/git-history.d.ts +113 -0
  105. package/dist/analyzers/git-history.d.ts.map +1 -0
  106. package/dist/analyzers/git-history.js +333 -0
  107. package/dist/analyzers/git-history.js.map +1 -0
  108. package/dist/analyzers/index.d.ts +10 -0
  109. package/dist/analyzers/index.d.ts.map +1 -0
  110. package/dist/analyzers/index.js +7 -0
  111. package/dist/analyzers/index.js.map +1 -0
  112. package/dist/analyzers/temporal-scorer.d.ts +72 -0
  113. package/dist/analyzers/temporal-scorer.d.ts.map +1 -0
  114. package/dist/analyzers/temporal-scorer.js +140 -0
  115. package/dist/analyzers/temporal-scorer.js.map +1 -0
  116. package/dist/anti-patterns.d.ts +7 -0
  117. package/dist/anti-patterns.d.ts.map +1 -1
  118. package/dist/anti-patterns.js +25 -6
  119. package/dist/anti-patterns.js.map +1 -1
  120. package/dist/cli.d.ts +2 -3
  121. package/dist/cli.d.ts.map +1 -1
  122. package/dist/cli.js +275 -113
  123. package/dist/cli.js.map +1 -1
  124. package/dist/config.d.ts +6 -0
  125. package/dist/config.d.ts.map +1 -1
  126. package/dist/config.js +48 -11
  127. package/dist/config.js.map +1 -1
  128. package/dist/html-reporter.d.ts +3 -1
  129. package/dist/html-reporter.d.ts.map +1 -1
  130. package/dist/html-reporter.js +248 -12
  131. package/dist/html-reporter.js.map +1 -1
  132. package/dist/index.d.ts +16 -3
  133. package/dist/index.d.ts.map +1 -1
  134. package/dist/index.js +63 -4
  135. package/dist/index.js.map +1 -1
  136. package/dist/project-summarizer.d.ts +38 -0
  137. package/dist/project-summarizer.d.ts.map +1 -0
  138. package/dist/project-summarizer.js +463 -0
  139. package/dist/project-summarizer.js.map +1 -0
  140. package/dist/refactor-reporter.js +1 -1
  141. package/dist/scanner.d.ts +8 -2
  142. package/dist/scanner.d.ts.map +1 -1
  143. package/dist/scanner.js +153 -113
  144. package/dist/scanner.js.map +1 -1
  145. package/dist/scorer.d.ts.map +1 -1
  146. package/dist/scorer.js +24 -11
  147. package/dist/scorer.js.map +1 -1
  148. package/dist/types.d.ts +29 -0
  149. package/dist/types.d.ts.map +1 -1
  150. package/package.json +12 -3
  151. package/src/agent-generator/context-enricher.ts +672 -0
  152. package/src/agent-generator/domain-inferrer.ts +635 -0
  153. package/src/agent-generator/framework-detector.ts +669 -0
  154. package/src/agent-generator/index.ts +634 -0
  155. package/src/agent-generator/stack-detector.ts +115 -0
  156. package/src/agent-generator/templates/core/agents.ts +1296 -0
  157. package/src/agent-generator/templates/core/architecture-rules.ts +287 -0
  158. package/src/agent-generator/templates/core/general-rules.ts +306 -0
  159. package/src/agent-generator/templates/core/hooks-generator.ts +242 -0
  160. package/src/agent-generator/templates/core/index-md.ts +260 -0
  161. package/src/agent-generator/templates/core/orchestrator.ts +459 -0
  162. package/src/agent-generator/templates/core/preflight.ts +215 -0
  163. package/src/agent-generator/templates/core/quality-gates.ts +256 -0
  164. package/src/agent-generator/templates/core/security-rules.ts +543 -0
  165. package/src/agent-generator/templates/core/skills-generator.ts +585 -0
  166. package/src/agent-generator/templates/core/workflow-fix-bug.ts +239 -0
  167. package/src/agent-generator/templates/core/workflow-new-feature.ts +323 -0
  168. package/src/agent-generator/templates/core/workflow-review.ts +106 -0
  169. package/src/agent-generator/templates/domain/index.ts +1201 -0
  170. package/src/agent-generator/templates/stack/index.ts +705 -0
  171. package/src/agent-generator/templates/template-helpers.ts +776 -0
  172. package/src/agent-generator/types.ts +232 -0
  173. package/src/analyzer.ts +51 -5
  174. package/src/analyzers/forecast.ts +496 -0
  175. package/src/analyzers/git-cache.ts +52 -0
  176. package/src/analyzers/git-history.ts +488 -0
  177. package/src/analyzers/index.ts +33 -0
  178. package/src/analyzers/temporal-scorer.ts +227 -0
  179. package/src/anti-patterns.ts +29 -6
  180. package/src/cli.ts +316 -117
  181. package/src/config.ts +52 -11
  182. package/src/html-reporter.ts +263 -13
  183. package/src/index.ts +93 -10
  184. package/src/project-summarizer.ts +521 -0
  185. package/src/refactor-reporter.ts +1 -1
  186. package/src/scanner.ts +136 -90
  187. package/src/scorer.ts +26 -11
  188. package/src/types.ts +27 -0
  189. package/tests/agent-generator.test.ts +427 -0
  190. package/tests/analyzers-integration.test.ts +174 -0
  191. package/tests/architect-adapter-enrichment.test.ts +9 -0
  192. package/tests/context-enricher.test.ts +971 -0
  193. package/tests/fixtures/monorepo/package.json +6 -0
  194. package/tests/fixtures/monorepo/packages/app/package.json +12 -0
  195. package/tests/fixtures/monorepo/packages/app/src/index.ts +6 -0
  196. package/tests/fixtures/monorepo/packages/core/package.json +7 -0
  197. package/tests/fixtures/monorepo/packages/core/src/index.ts +7 -0
  198. package/tests/forecast.test.ts +509 -0
  199. package/tests/framework-detector.test.ts +1172 -0
  200. package/tests/git-history.test.ts +254 -0
  201. package/tests/monorepo-scan.test.ts +170 -0
  202. package/tests/scanner.test.ts +7 -8
  203. package/tests/scorer.test.ts +594 -0
  204. package/tests/stack-detector.test.ts +241 -0
  205. package/tests/template-generation.test.ts +706 -0
  206. package/tests/template-helpers.test.ts +1152 -0
  207. package/tests/temporal-scorer.test.ts +307 -0
  208. package/dist/agent-generator.d.ts +0 -106
  209. package/dist/agent-generator.d.ts.map +0 -1
  210. package/dist/agent-generator.js +0 -1398
  211. package/dist/agent-generator.js.map +0 -1
  212. package/src/agent-generator.ts +0 -1526
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../../src/agent-generator/templates/core/agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { TemplateContext } from '../../types.js';
2
+ /**
3
+ * Generates 01-architecture.md — layer rules, dependency direction,
4
+ * module patterns, and anti-pattern prevention.
5
+ */
6
+ export declare function generateArchitectureRules(ctx: TemplateContext): string;
7
+ //# sourceMappingURL=architecture-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"architecture-rules.d.ts","sourceRoot":"","sources":["../../../../src/agent-generator/templates/core/architecture-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAkLtE"}
@@ -0,0 +1,274 @@
1
+ /**
2
+ * Generates 01-architecture.md — layer rules, dependency direction,
3
+ * module patterns, and anti-pattern prevention.
4
+ */
5
+ export function generateArchitectureRules(ctx) {
6
+ const { stack, projectName, report, config } = ctx;
7
+ const layerRules = buildLayerRules(ctx);
8
+ const modulePattern = buildModulePattern(ctx);
9
+ return `---
10
+ antigravity:
11
+ trigger: 'always_on'
12
+ globs: ['**/*']
13
+ description: 'Regras de arquitetura para ${projectName}'
14
+ priority: HIGH
15
+ ---
16
+
17
+ # 🏗️ Regras de Arquitetura — ${projectName}
18
+
19
+ > **Separação de camadas, direção de dependências, e padrões de módulo.**
20
+
21
+ ---
22
+
23
+ ## 📐 Camadas Arquiteturais
24
+
25
+ ${layerRules}
26
+
27
+ ### Direção de Dependência (OBRIGATÓRIA)
28
+
29
+ \`\`\`
30
+ UI / Controllers → Services → Repositories / Data → Entities
31
+ ↓ ↓ ↓
32
+ (pode usar) (pode usar) (pode usar)
33
+ Services Repositories Entities
34
+ DTOs Entities Value Objects
35
+ DTOs
36
+
37
+ ⚠️ NUNCA:
38
+ Entity → Controller
39
+ Repository → Controller
40
+ Service → Controller
41
+ Data Layer → UI Layer
42
+ \`\`\`
43
+
44
+ ### Regra de Ouro das Camadas
45
+
46
+ \`\`\`
47
+ ╔══════════════════════════════════════════════════════╗
48
+ ║ Uma camada SÓ pode depender de camadas ABAIXO. ║
49
+ ║ NUNCA de camadas acima ou da mesma camada lateral. ║
50
+ ╚══════════════════════════════════════════════════════╝
51
+ \`\`\`
52
+
53
+ ---
54
+
55
+ ## 📦 Padrão de Módulo
56
+
57
+ ${modulePattern}
58
+
59
+ ---
60
+
61
+ ## 🚫 Anti-Patterns a Prevenir
62
+
63
+ ### God Class (> 500 linhas ou > 10 métodos)
64
+ \`\`\`
65
+ ❌ PROIBIDO: Classe com múltiplas responsabilidades
66
+ ✅ CORRETO: Extrair em classes menores com responsabilidade única
67
+
68
+ Se um arquivo ultrapassar 500 linhas:
69
+ 1. PARAR
70
+ 2. Identificar responsabilidades distintas
71
+ 3. Extrair em módulos separados
72
+ 4. Atualizar imports
73
+ \`\`\`
74
+
75
+ ### Circular Dependencies
76
+ \`\`\`
77
+ ❌ PROIBIDO: A importa B, B importa A
78
+ ✅ CORRETO: Extrair interface comum ou usar event/mediator
79
+
80
+ Detecção:
81
+ $ npx madge --circular src/
82
+ $ architect anti-patterns .
83
+ \`\`\`
84
+
85
+ ### Leaky Abstractions
86
+ \`\`\`
87
+ ❌ PROIBIDO: Service expondo detalhes de implementação
88
+ ✅ CORRETO: Interface define contrato, implementação é encapsulada
89
+
90
+ Exemplos:
91
+ - Service retornando QueryBuilder → ERRADO (vaza ORM)
92
+ - Service retornando DTO → CORRETO (abstrai)
93
+ - Controller acessando Entity → ERRADO (vaza modelo)
94
+ - Controller acessando DTO → CORRETO (contrato)
95
+ \`\`\`
96
+
97
+ ### Feature Envy
98
+ \`\`\`
99
+ ❌ PROIBIDO: Método que usa mais atributos de outra classe que da própria
100
+ ✅ CORRETO: Mover método para a classe que possui os dados
101
+ \`\`\`
102
+
103
+ ### Shotgun Surgery
104
+ \`\`\`
105
+ ❌ PROIBIDO: Mudança em 1 feature exige alterar 10+ arquivos
106
+ ✅ CORRETO: Agrupar código relacionado no mesmo módulo
107
+
108
+ Se uma mudança toca > 5 arquivos:
109
+ 1. PARAR
110
+ 2. Reavaliar se o código está no lugar certo
111
+ 3. Considerar refatoração preventiva
112
+ \`\`\`
113
+
114
+ ---
115
+
116
+ ## 🏛️ Princípios Arquiteturais
117
+
118
+ ### DDD (Domain-Driven Design) — Quando Aplicável
119
+ \`\`\`
120
+ Entities: Objetos com identidade (ID único)
121
+ Value Objects: Objetos sem identidade (imutáveis)
122
+ Aggregates: Cluster de entidades com root
123
+ Repositories: Acesso a dados de Aggregates
124
+ Services: Lógica que não pertence a nenhuma entidade
125
+ \`\`\`
126
+
127
+ ### Clean Architecture
128
+ \`\`\`
129
+ Camada mais interna: Entities (regras de negócio)
130
+ Camada média: Use Cases / Services (lógica de aplicação)
131
+ Camada externa: Controllers, Gateways, Presenters (I/O)
132
+
133
+ Dependência: SEMPRE de fora para dentro, NUNCA o contrário.
134
+ \`\`\`
135
+
136
+ ### Event-Driven — Quando Aplicável
137
+ \`\`\`
138
+ Usar eventos quando:
139
+ - Desacoplamento entre módulos é necessário
140
+ - Processamento assíncrono é aceitável
141
+ - Múltiplos handlers para um mesmo trigger
142
+
143
+ NÃO usar eventos quando:
144
+ - Resposta síncrona é necessária
145
+ - Transação atômica é obrigatória
146
+ - Ordem de execução importa
147
+ \`\`\`
148
+
149
+ ---
150
+
151
+ ## 📊 Anti-Patterns Atuais do Projeto
152
+
153
+ ${report.antiPatterns.length > 0
154
+ ? report.antiPatterns.map(a => `- **${a.name}** (${a.severity}) em \`${a.location}\` — ${a.suggestion}`).join('\n')
155
+ : '✅ Nenhum anti-pattern detectado. Manter assim.'}
156
+
157
+ Score atual: **${report.score.overall}/100** | Meta: **${Math.min(100, report.score.overall + 10)}/100**
158
+
159
+ ---
160
+
161
+ ## ✅ Checklist de Arquitetura
162
+
163
+ Antes de criar qualquer módulo novo:
164
+
165
+ \`\`\`
166
+ □ Camada correta? (Controller vs Service vs Repository vs Entity)
167
+ □ Direção de dependência respeitada? (nunca de baixo para cima)
168
+ □ Módulo coeso? (tudo relacionado junto)
169
+ □ Sem circular dependency?
170
+ □ Sem God Class? (< 500 linhas, < 10 métodos)
171
+ □ Interface/abstração antes de implementação?
172
+ □ DTOs para comunicação entre camadas?
173
+ □ Testes por camada? (unit para service, integration para controller)
174
+ \`\`\`
175
+
176
+ ---
177
+
178
+ **Gerado por Architect v3.1 · Score: ${report.score.overall}/100**
179
+ `;
180
+ }
181
+ function buildLayerRules(ctx) {
182
+ const { stack } = ctx;
183
+ if (stack.frameworks.includes('NestJS')) {
184
+ return `| Camada | Responsabilidade | Padrão NestJS |
185
+ |--------|-----------------|---------------|
186
+ | **API** (Controllers) | Routing, validação de request, response shaping | \`*.controller.ts\` + \`@Controller()\` |
187
+ | **Service** | Lógica de negócio, orquestração | \`*.service.ts\` + \`@Injectable()\` |
188
+ | **Data** (Repository) | Acesso a dados, queries | \`*.repository.ts\` ou TypeORM Repository |
189
+ | **Entity** | Modelo de domínio | \`*.entity.ts\` + \`@Entity()\` |
190
+ | **DTO** | Contratos de request/response | \`*.dto.ts\` + class-validator |
191
+ | **Guard** | Autenticação/Autorização | \`*.guard.ts\` + \`@UseGuards()\` |
192
+ | **Pipe** | Validação/transformação | \`*.pipe.ts\` + \`@UsePipes()\` |`;
193
+ }
194
+ if (stack.frameworks.includes('Django') || stack.frameworks.includes('Flask') || stack.frameworks.includes('FastAPI')) {
195
+ return `| Camada | Responsabilidade | Padrão Python |
196
+ |--------|-----------------|---------------|
197
+ | **API** (Views/Routes) | Routing, serialização | views.py / routes.py |
198
+ | **Service** | Lógica de negócio | services.py |
199
+ | **Data** (Repository/ORM) | Acesso a dados | models.py + managers |
200
+ | **Schema** | Validação I/O | serializers.py / schemas.py |
201
+ | **Tasks** | Processamento assíncrono | tasks.py (Celery) |`;
202
+ }
203
+ if (stack.frameworks.includes('Angular')) {
204
+ return `| Camada | Responsabilidade | Padrão Angular |
205
+ |--------|-----------------|----------------|
206
+ | **Component** | UI rendering, user events | \`*.component.ts\` |
207
+ | **Service** | Lógica, API calls, state | \`*.service.ts\` + \`@Injectable()\` |
208
+ | **Model** | Interfaces/types | \`*.model.ts\` / \`*.interface.ts\` |
209
+ | **Guard** | Route protection | \`*.guard.ts\` + \`canActivate\` |
210
+ | **Interceptor** | HTTP middleware | \`*.interceptor.ts\` |
211
+ | **Pipe** | Data transformation | \`*.pipe.ts\` |`;
212
+ }
213
+ // Generic
214
+ return `| Camada | Responsabilidade | Padrão |
215
+ |--------|-----------------|--------|
216
+ | **API / Controllers** | Routing, validação HTTP | controllers/ |
217
+ | **Service** | Lógica de negócio | services/ |
218
+ | **Data / Repository** | Acesso a dados | repositories/ |
219
+ | **Entity / Model** | Modelo de domínio | entities/ ou models/ |
220
+ | **DTO / Schema** | Contratos I/O | dto/ ou schemas/ |`;
221
+ }
222
+ function buildModulePattern(ctx) {
223
+ const { stack } = ctx;
224
+ const ext = stack.primary === 'Python' ? 'py' : stack.primary === 'Dart' ? 'dart' : 'ts';
225
+ if (stack.frameworks.includes('NestJS')) {
226
+ return `\`\`\`
227
+ src/modules/[nome-do-modulo]/
228
+ ├── [nome].module.ts → NestJS Module (imports, providers, exports)
229
+ ├── [nome].controller.ts → HTTP endpoints
230
+ ├── [nome].controller.spec.ts → Testes do controller
231
+ ├── [nome].service.ts → Lógica de negócio
232
+ ├── [nome].service.spec.ts → Testes do service
233
+ ├── dto/
234
+ │ ├── create-[nome].dto.ts → Request de criação
235
+ │ ├── update-[nome].dto.ts → Request de atualização
236
+ │ └── [nome]-response.dto.ts → Response shape
237
+ ├── entities/
238
+ │ └── [nome].entity.ts → TypeORM entity
239
+ ├── guards/ → Guards específicos (se houver)
240
+ └── interfaces/ → Interfaces/types do módulo
241
+ \`\`\``;
242
+ }
243
+ if (stack.frameworks.includes('Angular')) {
244
+ return `\`\`\`
245
+ src/app/modules/[nome-do-modulo]/
246
+ ├── [nome].module.ts → Angular Module
247
+ ├── [nome]-routing.module.ts → Routes
248
+ ├── components/
249
+ │ ├── [nome]-list/
250
+ │ │ ├── [nome]-list.component.ts
251
+ │ │ ├── [nome]-list.component.html
252
+ │ │ ├── [nome]-list.component.scss
253
+ │ │ └── [nome]-list.component.spec.ts
254
+ │ └── [nome]-form/
255
+ │ └── ...
256
+ ├── services/
257
+ │ ├── [nome].service.ts
258
+ │ └── [nome].service.spec.ts
259
+ ├── models/
260
+ │ └── [nome].model.ts
261
+ └── guards/
262
+ \`\`\``;
263
+ }
264
+ return `\`\`\`
265
+ src/modules/[nome-do-modulo]/
266
+ ├── [nome].module.${ext}
267
+ ├── [nome].controller.${ext} → Endpoints / API
268
+ ├── [nome].service.${ext} → Lógica de negócio
269
+ ├── dto/ → Request/Response shapes
270
+ ├── entities/ → Modelos de domínio
271
+ └── __tests__/ → Testes do módulo
272
+ \`\`\``;
273
+ }
274
+ //# sourceMappingURL=architecture-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"architecture-rules.js","sourceRoot":"","sources":["../../../../src/agent-generator/templates/core/architecture-rules.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,GAAoB;IAC5D,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACnD,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAE9C,OAAO;;;;6CAIoC,WAAW;;;;gCAIxB,WAAW;;;;;;;;EAQzC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCV,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgGb,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;QAC5B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAC5B,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,UAAU,CAAC,CAAC,QAAQ,QAAQ,CAAC,CAAC,UAAU,EAAE,CACzE,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,CAAC,CAAC,gDAAgD;;iBAErC,MAAM,CAAC,KAAK,CAAC,OAAO,oBAAoB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;uCAqB1D,MAAM,CAAC,KAAK,CAAC,OAAO;CAC1D,CAAC;AACF,CAAC;AAED,SAAS,eAAe,CAAC,GAAoB;IAC3C,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IAEtB,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,OAAO;;;;;;;;yEAQ8D,CAAC;IACxE,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACtH,OAAO;;;;;;6DAMkD,CAAC;IAC5D,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,OAAO;;;;;;;mDAOwC,CAAC;IAClD,CAAC;IAED,UAAU;IACV,OAAO;;;;;;wDAM+C,CAAC;AACzD,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAoB;IAC9C,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IACtB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzF,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,OAAO;;;;;;;;;;;;;;;OAeJ,CAAC;IACN,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,OAAO;;;;;;;;;;;;;;;;;;OAkBJ,CAAC;IACN,CAAC;IAED,OAAO;;oBAEW,GAAG;wBACC,GAAG;qBACN,GAAG;;;;OAIjB,CAAC;AACR,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { TemplateContext } from '../../types.js';
2
+ /**
3
+ * Generates enterprise-grade 00-general.md rules.
4
+ * Golden rules, git flow, project identity, naming conventions,
5
+ * diagnostic requirements, forbidden actions, compliance checklist.
6
+ */
7
+ export declare function generateGeneralRules(ctx: TemplateContext): string;
8
+ //# sourceMappingURL=general-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"general-rules.d.ts","sourceRoot":"","sources":["../../../../src/agent-generator/templates/core/general-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA+OjE"}
@@ -0,0 +1,301 @@
1
+ import { getEnriched } from '../template-helpers.js';
2
+ /**
3
+ * Generates enterprise-grade 00-general.md rules.
4
+ * Golden rules, git flow, project identity, naming conventions,
5
+ * diagnostic requirements, forbidden actions, compliance checklist.
6
+ */
7
+ export function generateGeneralRules(ctx) {
8
+ const { stack, projectName, stackLabel, config, report } = ctx;
9
+ const enriched = getEnriched(ctx);
10
+ const namingConventions = buildNamingConventions(ctx);
11
+ // Stack-aware forbidden type actions
12
+ const langs = stack.languages.map((l) => l.toLowerCase());
13
+ let typeProhibitions = `❌ any (TypeScript) sem justificativa em comentário
14
+ ❌ @ts-ignore / type: ignore sem justificativa`;
15
+ if (langs.includes('python')) {
16
+ typeProhibitions = `❌ type: ignore sem justificativa em comentário
17
+ ❌ # noqa sem justificativa
18
+ ❌ Any (typing) sem justificativa em comentário`;
19
+ }
20
+ else if (langs.includes('dart')) {
21
+ typeProhibitions = `❌ dynamic sem justificativa em comentário
22
+ ❌ // ignore: sem justificativa
23
+ ❌ as dynamic sem type-check`;
24
+ }
25
+ else if (langs.includes('java') || langs.includes('kotlin')) {
26
+ typeProhibitions = `❌ @SuppressWarnings sem justificativa em comentário
27
+ ❌ Object onde tipo específico é possível
28
+ ❌ Raw types sem justificativa`;
29
+ }
30
+ else if (langs.includes('go')) {
31
+ typeProhibitions = `❌ interface{}/any sem justificativa em comentário
32
+ ❌ //nolint sem justificativa
33
+ ❌ _ (blank identifier) para erros sem tratamento`;
34
+ }
35
+ else if (langs.includes('rust')) {
36
+ typeProhibitions = `❌ unwrap() em código de produção sem justificativa
37
+ ❌ #[allow(...)] sem justificativa em comentário
38
+ ❌ unsafe sem revisão e justificativa`;
39
+ }
40
+ return `---
41
+ antigravity:
42
+ trigger: 'always_on'
43
+ globs: ['**/*']
44
+ description: 'Regras gerais invioláveis para ${projectName}'
45
+ priority: CRITICAL
46
+ ---
47
+
48
+ # 📜 Regras Gerais — ${projectName}
49
+
50
+ > **Estas regras são INVIOLÁVEIS. Não há exceção.**
51
+
52
+ ---
53
+
54
+ ## 🏆 Regras de Ouro
55
+
56
+ \`\`\`
57
+ ╔══════════════════════════════════════════════════════════════╗
58
+ ║ 9 REGRAS DE OURO ║
59
+ ║ ║
60
+ ${config.goldenRules.map((r, i) => `║ ${i + 1}. ${r.padEnd(55)}║`).join('\n')}
61
+ ║ ║
62
+ ║ ⚠️ Violar qualquer regra = PARAR e RECOMEÇAR ║
63
+ ╚══════════════════════════════════════════════════════════════╝
64
+ \`\`\`
65
+
66
+ ---
67
+
68
+ ## 🏢 Identidade do Projeto
69
+
70
+ | Item | Valor |
71
+ |------|-------|
72
+ | **Nome** | ${projectName} |
73
+ | **Stack** | ${stackLabel} |
74
+ | **Score** | ${report.score.overall}/100 |
75
+ | **Linguagens** | ${stack.languages.join(', ')} |
76
+ | **Frameworks** | ${enriched.detectedFrameworks?.filter((f) => f.category === 'web' || f.category === 'orm').map((f) => `${f.name}${f.version ? ` v${f.version}` : ''}`).join(', ') || stack.frameworks.join(', ') || 'Nenhum detectado'} |
77
+ | **Cobertura Mínima** | ${config.coverageMinimum}% |
78
+ | **Score Mínimo** | ${config.scoreThreshold}/100 |
79
+
80
+ ---
81
+
82
+ ## 🔄 Fluxo Completo (Qualquer Ação)
83
+
84
+ \`\`\`
85
+ REQUISIÇÃO
86
+
87
+
88
+ LEITURA OBRIGATÓRIA (INDEX.md → 00-general → PREFLIGHT)
89
+
90
+
91
+ DIAGNÓSTICO (entender ANTES de agir)
92
+
93
+
94
+ ARTEFATOS (mockup → user story → arch → tasks → BDD → TDD)
95
+
96
+
97
+ APROVAÇÃO HUMANA (/approved)
98
+
99
+
100
+ IMPLEMENTAÇÃO (Backend → Integration Doc → Frontend/App)
101
+
102
+
103
+ QUALITY GATES (build + test + coverage + score)
104
+
105
+
106
+ CODE REVIEW
107
+
108
+
109
+ MERGE (via PR, nunca direto)
110
+ \`\`\`
111
+
112
+ ---
113
+
114
+ ## 🌿 Git Flow
115
+
116
+ ### Branch Naming
117
+
118
+ | Tipo | Padrão | Exemplo |
119
+ |------|--------|---------|
120
+ | Feature | \`feature/[ticket]-[descricao]\` | \`feature/PROJ-123-cancelled-tab\` |
121
+ | Bug fix | \`fix/[ticket]-[descricao]\` | \`fix/PROJ-456-null-balance\` |
122
+ | Hotfix | \`hotfix/[descricao]\` | \`hotfix/payment-crash\` |
123
+ | Refactor | \`refactor/[descricao]\` | \`refactor/extract-auth-service\` |
124
+
125
+ ### Commit Messages (Conventional Commits)
126
+
127
+ \`\`\`
128
+ feat: add cancelled refuelings tab
129
+ fix: prevent null balance on payment
130
+ refactor: extract auth service from user module
131
+ docs: update API documentation for v2
132
+ test: add integration tests for payment flow
133
+ chore: upgrade dependencies
134
+ \`\`\`
135
+
136
+ ### Cenários de Git Flow
137
+
138
+ **Cenário A: Feature nova**
139
+ \`\`\`
140
+ git checkout develop
141
+ git pull origin develop
142
+ git checkout -b feature/PROJ-XXX-nome
143
+ # ... implementar ...
144
+ git add [arquivos específicos]
145
+ git commit -m "feat: [descrição]"
146
+ git push -u origin feature/PROJ-XXX-nome
147
+ # Criar PR para develop
148
+ \`\`\`
149
+
150
+ **Cenário B: Bug fix**
151
+ \`\`\`
152
+ git checkout develop
153
+ git pull origin develop
154
+ git checkout -b fix/PROJ-XXX-descricao
155
+ # ... corrigir ...
156
+ git add [arquivos específicos]
157
+ git commit -m "fix: [descrição]"
158
+ git push -u origin fix/PROJ-XXX-descricao
159
+ # Criar PR para develop
160
+ \`\`\`
161
+
162
+ **Cenário C: Hotfix em produção**
163
+ \`\`\`
164
+ git checkout main
165
+ git pull origin main
166
+ git checkout -b hotfix/descricao
167
+ # ... corrigir ...
168
+ git add [arquivos específicos]
169
+ git commit -m "fix: [descrição] (hotfix)"
170
+ git push -u origin hotfix/descricao
171
+ # Criar PR para main E develop
172
+ \`\`\`
173
+
174
+ ---
175
+
176
+ ## 📝 Naming Conventions
177
+
178
+ ${namingConventions}
179
+
180
+ ---
181
+
182
+ ## 🔍 Diagnóstico Obrigatório
183
+
184
+ > **Antes de QUALQUER implementação, execute este diagnóstico.**
185
+
186
+ \`\`\`bash
187
+ # 1. Entender a estrutura
188
+ ls -la src/
189
+ find src/ -name "*.${stack.primary === 'Python' ? 'py' : stack.primary === 'Dart' ? 'dart' : 'ts'}" | head -30
190
+
191
+ # 2. Entender as dependências do módulo
192
+ grep -rn "import" --include="*.${stack.primary === 'Python' ? 'py' : 'ts'}" src/[modulo]/ | head -20
193
+
194
+ # 3. Testes existentes
195
+ find . -name "*.test.*" -o -name "*.spec.*" -o -name "*_test.*" | wc -l
196
+
197
+ # 4. Score atual
198
+ npx @girardelli/architect score .
199
+
200
+ # 5. Anti-patterns
201
+ npx @girardelli/architect anti-patterns .
202
+ \`\`\`
203
+
204
+ ---
205
+
206
+ ## ❌ Ações PROIBIDAS
207
+
208
+ \`\`\`
209
+ ❌ Commitar direto em main ou develop
210
+ ❌ Push --force sem aprovação explícita
211
+ ❌ Merge sem code review
212
+ ❌ Código sem testes
213
+ ❌ Ignorar falhas de build/test
214
+ ❌ Hardcodar secrets, tokens, senhas
215
+ ❌ console.log / print() em produção
216
+ ${typeProhibitions}
217
+ ❌ Testes com .skip() permanente
218
+ ❌ Copiar/colar código (extrair abstração)
219
+ ❌ Alterar mais de 10 arquivos sem reavaliar escopo
220
+ ❌ Implementar sem artefatos aprovados (mockup, US, BDD, TDD)
221
+ ❌ Decidir arquitetura sem consultar o humano
222
+ ❌ Refatorar código alheio ao escopo da task
223
+ \`\`\`
224
+
225
+ ---
226
+
227
+ ## ✅ Checklist de Compliance (Regras de Ouro)
228
+
229
+ Antes de marcar QUALQUER tarefa como "done":
230
+
231
+ \`\`\`
232
+ □ Regra 1: Git Flow completo (branch + PR + review)?
233
+ □ Regra 2: Arquitetura documentada (C4 se nova feature)?
234
+ □ Regra 3: BDD escrito antes do código?
235
+ □ Regra 4: TDD aplicado (RED → GREEN → REFACTOR)?
236
+ □ Regra 5: Diagnóstico feito antes de codar?
237
+ □ Regra 6: Mockup aprovado (se tem UI)?
238
+ □ Regra 7: Decisões validadas com humano?
239
+ □ Regra 8: Qualidade > Velocidade (sem atalhos)?
240
+ □ Regra 9: Apenas código (sem abrir browser, sem screenshots)?
241
+ \`\`\`
242
+
243
+ ---
244
+
245
+ **Gerado por Architect v3.1 · Score: ${report.score.overall}/100 · ${new Date().toISOString().split('T')[0]}**
246
+ `;
247
+ }
248
+ function buildNamingConventions(ctx) {
249
+ const { stack } = ctx;
250
+ const lang = stack.primary;
251
+ if (lang === 'Python') {
252
+ return `| Item | Padrão | Exemplo |
253
+ |------|--------|---------|
254
+ | Classes | PascalCase | \`UserService\` |
255
+ | Funções | snake_case | \`get_active_users\` |
256
+ | Variáveis | snake_case | \`user_count\` |
257
+ | Constantes | UPPER_SNAKE | \`MAX_RETRIES\` |
258
+ | Arquivos | snake_case | \`user_service.py\` |
259
+ | Módulos | snake_case | \`auth_module/\` |
260
+ | Testes | snake_case + \_test | \`user_service_test.py\` |`;
261
+ }
262
+ if (lang === 'Dart') {
263
+ return `| Item | Padrão | Exemplo |
264
+ |------|--------|---------|
265
+ | Classes | PascalCase | \`UserService\` |
266
+ | Funções | camelCase | \`getActiveUsers\` |
267
+ | Variáveis | camelCase | \`userCount\` |
268
+ | Constantes | camelCase (com const) | \`const maxRetries = 3\` |
269
+ | Arquivos | snake_case | \`user_service.dart\` |
270
+ | Widgets | PascalCase | \`UserProfileCard\` |
271
+ | Testes | snake_case + \_test | \`user_service_test.dart\` |`;
272
+ }
273
+ if (lang === 'Go') {
274
+ return `| Item | Padrão | Exemplo |
275
+ |------|--------|---------|
276
+ | Types/Structs | PascalCase (exported) | \`UserService\` |
277
+ | Functions (public) | PascalCase | \`GetActiveUsers\` |
278
+ | Functions (private) | camelCase | \`parseInput\` |
279
+ | Variables | camelCase | \`userCount\` |
280
+ | Constants | PascalCase | \`MaxRetries\` |
281
+ | Files | snake_case | \`user_service.go\` |
282
+ | Tests | snake_case + \_test | \`user_service_test.go\` |`;
283
+ }
284
+ // Default: TypeScript/JavaScript
285
+ return `| Item | Padrão | Exemplo |
286
+ |------|--------|---------|
287
+ | Classes | PascalCase | \`UserService\` |
288
+ | Interfaces | PascalCase (sem I prefix) | \`UserPayload\` |
289
+ | Funções | camelCase | \`getActiveUsers\` |
290
+ | Variáveis | camelCase | \`userCount\` |
291
+ | Constantes | UPPER_SNAKE | \`MAX_RETRIES\` |
292
+ | Enums | PascalCase | \`UserStatus\` |
293
+ | Arquivos | kebab-case | \`user-service.ts\` |
294
+ | Módulos (diretório) | kebab-case | \`user-management/\` |
295
+ | Testes | kebab-case + .spec/.test | \`user-service.spec.ts\` |
296
+ | Entities | PascalCase + .entity | \`User.entity.ts\` |
297
+ | DTOs | PascalCase + .dto | \`CreateUserDto\` |
298
+ | Controllers | PascalCase + .controller | \`user.controller.ts\` |
299
+ | Services | PascalCase + .service | \`user.service.ts\` |`;
300
+ }
301
+ //# sourceMappingURL=general-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"general-rules.js","sourceRoot":"","sources":["../../../../src/agent-generator/templates/core/general-rules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { TemplateContext, EnrichedTemplateContext } from '../../types.js';
2
+ /**
3
+ * Generates executable hook scripts (.sh) for the .agent/hooks/ directory.
4
+ * These are real, runnable shell scripts tied to git lifecycle events.
5
+ *
6
+ * v5.1: Uses project-specific toolchain commands, score thresholds,
7
+ * and coverage targets from the enriched context.
8
+ */
9
+ /**
10
+ * Pre-commit hook: lint + build check
11
+ */
12
+ export declare function generatePreCommitHook(ctx: TemplateContext | EnrichedTemplateContext): string;
13
+ /**
14
+ * Pre-push hook: test + score gate
15
+ */
16
+ export declare function generatePrePushHook(ctx: TemplateContext | EnrichedTemplateContext): string;
17
+ /**
18
+ * Post-analysis hook: remediation actions
19
+ */
20
+ export declare function generatePostAnalysisHook(ctx: TemplateContext | EnrichedTemplateContext): string;
21
+ //# sourceMappingURL=hooks-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks-generator.d.ts","sourceRoot":"","sources":["../../../../src/agent-generator/templates/core/hooks-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAG1E;;;;;;GAMG;AAEH;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,uBAAuB,GAAG,MAAM,CA8E5F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,GAAG,uBAAuB,GAAG,MAAM,CAqE1F;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,eAAe,GAAG,uBAAuB,GAAG,MAAM,CAsE/F"}