@codebakers/mcp 5.2.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 (140) hide show
  1. package/INSTALL.md +221 -0
  2. package/LICENSE +21 -0
  3. package/README.md +412 -0
  4. package/dist/cli.d.ts +9 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +236 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/index.d.ts +12 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +526 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/tools/analyze-mockups.d.ts +18 -0
  13. package/dist/tools/analyze-mockups.d.ts.map +1 -0
  14. package/dist/tools/analyze-mockups.js +497 -0
  15. package/dist/tools/analyze-mockups.js.map +1 -0
  16. package/dist/tools/autonomous-build.d.ts +19 -0
  17. package/dist/tools/autonomous-build.d.ts.map +1 -0
  18. package/dist/tools/autonomous-build.js +287 -0
  19. package/dist/tools/autonomous-build.js.map +1 -0
  20. package/dist/tools/check-gate.d.ts +21 -0
  21. package/dist/tools/check-gate.d.ts.map +1 -0
  22. package/dist/tools/check-gate.js +446 -0
  23. package/dist/tools/check-gate.js.map +1 -0
  24. package/dist/tools/check-scope.d.ts +22 -0
  25. package/dist/tools/check-scope.d.ts.map +1 -0
  26. package/dist/tools/check-scope.js +251 -0
  27. package/dist/tools/check-scope.js.map +1 -0
  28. package/dist/tools/deploy-vercel.d.ts +18 -0
  29. package/dist/tools/deploy-vercel.d.ts.map +1 -0
  30. package/dist/tools/deploy-vercel.js +178 -0
  31. package/dist/tools/deploy-vercel.js.map +1 -0
  32. package/dist/tools/diagnose-error.d.ts +20 -0
  33. package/dist/tools/diagnose-error.d.ts.map +1 -0
  34. package/dist/tools/diagnose-error.js +351 -0
  35. package/dist/tools/diagnose-error.js.map +1 -0
  36. package/dist/tools/enforce-feature.d.ts +25 -0
  37. package/dist/tools/enforce-feature.d.ts.map +1 -0
  38. package/dist/tools/enforce-feature.js +387 -0
  39. package/dist/tools/enforce-feature.js.map +1 -0
  40. package/dist/tools/execute-atomic-unit.d.ts +23 -0
  41. package/dist/tools/execute-atomic-unit.d.ts.map +1 -0
  42. package/dist/tools/execute-atomic-unit.js +107 -0
  43. package/dist/tools/execute-atomic-unit.js.map +1 -0
  44. package/dist/tools/fix-commit.d.ts +23 -0
  45. package/dist/tools/fix-commit.d.ts.map +1 -0
  46. package/dist/tools/fix-commit.js +213 -0
  47. package/dist/tools/fix-commit.js.map +1 -0
  48. package/dist/tools/fix-mockups.d.ts +21 -0
  49. package/dist/tools/fix-mockups.d.ts.map +1 -0
  50. package/dist/tools/fix-mockups.js +595 -0
  51. package/dist/tools/fix-mockups.js.map +1 -0
  52. package/dist/tools/generate-api-route.d.ts +18 -0
  53. package/dist/tools/generate-api-route.d.ts.map +1 -0
  54. package/dist/tools/generate-api-route.js +212 -0
  55. package/dist/tools/generate-api-route.js.map +1 -0
  56. package/dist/tools/generate-chatbot.d.ts +20 -0
  57. package/dist/tools/generate-chatbot.d.ts.map +1 -0
  58. package/dist/tools/generate-chatbot.js +555 -0
  59. package/dist/tools/generate-chatbot.js.map +1 -0
  60. package/dist/tools/generate-component.d.ts +18 -0
  61. package/dist/tools/generate-component.d.ts.map +1 -0
  62. package/dist/tools/generate-component.js +159 -0
  63. package/dist/tools/generate-component.js.map +1 -0
  64. package/dist/tools/generate-docs.d.ts +21 -0
  65. package/dist/tools/generate-docs.d.ts.map +1 -0
  66. package/dist/tools/generate-docs.js +782 -0
  67. package/dist/tools/generate-docs.js.map +1 -0
  68. package/dist/tools/generate-e2e-tests.d.ts +12 -0
  69. package/dist/tools/generate-e2e-tests.d.ts.map +1 -0
  70. package/dist/tools/generate-e2e-tests.js +37 -0
  71. package/dist/tools/generate-e2e-tests.js.map +1 -0
  72. package/dist/tools/generate-migration.d.ts +21 -0
  73. package/dist/tools/generate-migration.d.ts.map +1 -0
  74. package/dist/tools/generate-migration.js +94 -0
  75. package/dist/tools/generate-migration.js.map +1 -0
  76. package/dist/tools/generate-schema.d.ts +18 -0
  77. package/dist/tools/generate-schema.d.ts.map +1 -0
  78. package/dist/tools/generate-schema.js +422 -0
  79. package/dist/tools/generate-schema.js.map +1 -0
  80. package/dist/tools/generate-spec.d.ts +18 -0
  81. package/dist/tools/generate-spec.d.ts.map +1 -0
  82. package/dist/tools/generate-spec.js +446 -0
  83. package/dist/tools/generate-spec.js.map +1 -0
  84. package/dist/tools/generate-store-contracts.d.ts +17 -0
  85. package/dist/tools/generate-store-contracts.d.ts.map +1 -0
  86. package/dist/tools/generate-store-contracts.js +356 -0
  87. package/dist/tools/generate-store-contracts.js.map +1 -0
  88. package/dist/tools/generate-store.d.ts +16 -0
  89. package/dist/tools/generate-store.d.ts.map +1 -0
  90. package/dist/tools/generate-store.js +166 -0
  91. package/dist/tools/generate-store.js.map +1 -0
  92. package/dist/tools/generate-unit-tests.d.ts +14 -0
  93. package/dist/tools/generate-unit-tests.d.ts.map +1 -0
  94. package/dist/tools/generate-unit-tests.js +85 -0
  95. package/dist/tools/generate-unit-tests.js.map +1 -0
  96. package/dist/tools/get-context.d.ts +35 -0
  97. package/dist/tools/get-context.d.ts.map +1 -0
  98. package/dist/tools/get-context.js +367 -0
  99. package/dist/tools/get-context.js.map +1 -0
  100. package/dist/tools/init-session.d.ts +22 -0
  101. package/dist/tools/init-session.d.ts.map +1 -0
  102. package/dist/tools/init-session.js +232 -0
  103. package/dist/tools/init-session.js.map +1 -0
  104. package/dist/tools/map-dependencies.d.ts +25 -0
  105. package/dist/tools/map-dependencies.d.ts.map +1 -0
  106. package/dist/tools/map-dependencies.js +480 -0
  107. package/dist/tools/map-dependencies.js.map +1 -0
  108. package/dist/tools/optimize-performance.d.ts +18 -0
  109. package/dist/tools/optimize-performance.d.ts.map +1 -0
  110. package/dist/tools/optimize-performance.js +285 -0
  111. package/dist/tools/optimize-performance.js.map +1 -0
  112. package/dist/tools/run-interview.d.ts +23 -0
  113. package/dist/tools/run-interview.d.ts.map +1 -0
  114. package/dist/tools/run-interview.js +371 -0
  115. package/dist/tools/run-interview.js.map +1 -0
  116. package/dist/tools/run-tests.d.ts +12 -0
  117. package/dist/tools/run-tests.d.ts.map +1 -0
  118. package/dist/tools/run-tests.js +30 -0
  119. package/dist/tools/run-tests.js.map +1 -0
  120. package/dist/tools/scan-security.d.ts +19 -0
  121. package/dist/tools/scan-security.d.ts.map +1 -0
  122. package/dist/tools/scan-security.js +358 -0
  123. package/dist/tools/scan-security.js.map +1 -0
  124. package/dist/tools/validate-accessibility.d.ts +18 -0
  125. package/dist/tools/validate-accessibility.d.ts.map +1 -0
  126. package/dist/tools/validate-accessibility.js +251 -0
  127. package/dist/tools/validate-accessibility.js.map +1 -0
  128. package/dist/tools/validate-mockups.d.ts +21 -0
  129. package/dist/tools/validate-mockups.d.ts.map +1 -0
  130. package/dist/tools/validate-mockups.js +433 -0
  131. package/dist/tools/validate-mockups.js.map +1 -0
  132. package/dist/tools/verify-completeness.d.ts +13 -0
  133. package/dist/tools/verify-completeness.d.ts.map +1 -0
  134. package/dist/tools/verify-completeness.js +68 -0
  135. package/dist/tools/verify-completeness.js.map +1 -0
  136. package/dist/tools/verify-mockups.d.ts +14 -0
  137. package/dist/tools/verify-mockups.d.ts.map +1 -0
  138. package/dist/tools/verify-mockups.js +85 -0
  139. package/dist/tools/verify-mockups.js.map +1 -0
  140. package/package.json +50 -0
@@ -0,0 +1,287 @@
1
+ /**
2
+ * codebakers_autonomous_build
3
+ *
4
+ * Full Autonomous Build Orchestrator
5
+ *
6
+ * Builds entire application from FLOWS.md with zero human intervention.
7
+ * Executes all features sequentially with full atomic unit protocol.
8
+ */
9
+ import * as fs from 'fs/promises';
10
+ import * as path from 'path';
11
+ import { executeAtomicUnit } from './execute-atomic-unit';
12
+ import { verifyCompleteness } from './verify-completeness';
13
+ import { validateAccessibility } from './validate-accessibility';
14
+ import { optimizePerformance } from './optimize-performance';
15
+ import { scanSecurity } from './scan-security';
16
+ import { deployVercel } from './deploy-vercel';
17
+ import { generateDocs } from './generate-docs';
18
+ import { generateChatbot } from './generate-chatbot';
19
+ export async function autonomousBuild(args) {
20
+ const cwd = process.cwd();
21
+ const { mode, stop_on_error = false, skip_quality_gates = false, skip_deploy = false, skip_docs = false, skip_chatbot = false } = args;
22
+ console.error('🍞 CodeBakers: Autonomous Build Starting');
23
+ try {
24
+ // Load FLOWS.md
25
+ const flowsPath = path.join(cwd, 'FLOWS.md');
26
+ const flowsExist = await fs.access(flowsPath).then(() => true).catch(() => false);
27
+ if (!flowsExist) {
28
+ return `🍞 CodeBakers: Autonomous Build BLOCKED
29
+
30
+ ❌ FLOWS.md not found
31
+
32
+ Run codebakers_run_interview first to generate flows.`;
33
+ }
34
+ const flowsContent = await fs.readFile(flowsPath, 'utf-8');
35
+ // Extract features (simple parsing)
36
+ const features = extractFeatures(flowsContent, mode);
37
+ if (features.length === 0) {
38
+ return `🍞 CodeBakers: No features to build
39
+
40
+ ${mode === 'full' ? 'All features already complete' : 'No pending features found'}
41
+
42
+ Check FLOWS.md for status.`;
43
+ }
44
+ console.error(`Found ${features.length} features to build`);
45
+ const results = [];
46
+ // Build each feature sequentially
47
+ for (let i = 0; i < features.length; i++) {
48
+ const feature = features[i];
49
+ console.error(`\n[${i + 1}/${features.length}] Building: ${feature.name}`);
50
+ try {
51
+ // Execute atomic unit
52
+ const result = await executeAtomicUnit({
53
+ feature_name: feature.name,
54
+ entity: feature.entity || 'Item',
55
+ operations: feature.operations || ['list', 'create', 'update', 'delete'],
56
+ });
57
+ console.error(result);
58
+ // Verify completeness
59
+ const verification = await verifyCompleteness({ feature_name: feature.name });
60
+ console.error(verification);
61
+ results.push({ feature: feature.name, status: 'success' });
62
+ // Update FLOWS.md to mark complete
63
+ await markFlowComplete(cwd, feature.name);
64
+ }
65
+ catch (error) {
66
+ const errorMsg = error instanceof Error ? error.message : String(error);
67
+ console.error(`❌ Failed: ${errorMsg}`);
68
+ results.push({ feature: feature.name, status: 'failed', error: errorMsg });
69
+ if (stop_on_error) {
70
+ break;
71
+ }
72
+ }
73
+ }
74
+ // Quality Gates (after all features complete)
75
+ let qualityGates = null;
76
+ if (!skip_quality_gates && results.filter(r => r.status === 'success').length > 0) {
77
+ console.error('\n🔒 Running Quality Gates...\n');
78
+ qualityGates = await runQualityGates(cwd, skip_deploy, skip_docs, skip_chatbot);
79
+ }
80
+ // Generate final report
81
+ const report = generateBuildReport(results, features.length, qualityGates);
82
+ return report;
83
+ }
84
+ catch (error) {
85
+ return `🍞 CodeBakers: Autonomous Build Failed
86
+
87
+ Error: ${error instanceof Error ? error.message : String(error)}`;
88
+ }
89
+ }
90
+ function extractFeatures(flowsContent, mode) {
91
+ const features = [];
92
+ // Simple extraction: look for flow headings
93
+ const flowMatches = flowsContent.matchAll(/## (\d+)\. (.+?) \((.+?)\)/g);
94
+ for (const match of flowMatches) {
95
+ const name = match[2];
96
+ const priority = match[3];
97
+ const status = flowsContent.includes(`${name}`) && flowsContent.includes('complete') ? 'complete' : 'pending';
98
+ if (mode === 'full' || (mode === 'remaining' && status === 'pending')) {
99
+ // Infer entity from flow name
100
+ let entity = 'Item';
101
+ if (name.toLowerCase().includes('message'))
102
+ entity = 'Message';
103
+ if (name.toLowerCase().includes('user'))
104
+ entity = 'User';
105
+ if (name.toLowerCase().includes('inbox'))
106
+ entity = 'Message';
107
+ features.push({
108
+ name,
109
+ entity,
110
+ priority,
111
+ operations: ['list', 'create', 'update', 'delete'],
112
+ });
113
+ }
114
+ }
115
+ return features;
116
+ }
117
+ async function markFlowComplete(cwd, featureName) {
118
+ const flowsPath = path.join(cwd, 'FLOWS.md');
119
+ let content = await fs.readFile(flowsPath, 'utf-8');
120
+ // Find the flow section and mark as complete
121
+ const regex = new RegExp(`(## \\d+\\. ${featureName}.+?\\*\\*Status:\\*\\*) pending`, 'g');
122
+ content = content.replace(regex, '$1 complete');
123
+ await fs.writeFile(flowsPath, content, 'utf-8');
124
+ }
125
+ async function runQualityGates(cwd, skipDeploy, skipDocs, skipChatbot) {
126
+ const gates = {
127
+ accessibility: null,
128
+ performance: null,
129
+ security: null,
130
+ deployment: null,
131
+ documentation: null,
132
+ chatbot: null
133
+ };
134
+ try {
135
+ // Gate 1: Accessibility
136
+ console.error('[1/6] Accessibility validation...');
137
+ const a11yResult = await validateAccessibility({ threshold: 90 });
138
+ gates.accessibility = a11yResult.includes('✅') ? 'pass' : 'fail';
139
+ console.error(a11yResult.split('\n').slice(0, 5).join('\n')); // Show summary
140
+ // Gate 2: Performance
141
+ console.error('[2/6] Performance optimization...');
142
+ const perfResult = await optimizePerformance({ auto_fix: true });
143
+ gates.performance = 'pass'; // Always passes, just applies optimizations
144
+ console.error(perfResult.split('\n').slice(0, 5).join('\n'));
145
+ // Gate 3: Security
146
+ console.error('[3/6] Security scan...');
147
+ const secResult = await scanSecurity({ block_on_critical: true });
148
+ gates.security = secResult.includes('✅ PASS') ? 'pass' : secResult.includes('❌ BLOCKED') ? 'blocked' : 'warnings';
149
+ console.error(secResult.split('\n').slice(0, 8).join('\n'));
150
+ // If security blocked, stop here
151
+ if (gates.security === 'blocked') {
152
+ console.error('\n❌ Security gate BLOCKED - fix critical issues before deployment');
153
+ return gates;
154
+ }
155
+ // Gate 4: Documentation
156
+ if (!skipDocs) {
157
+ console.error('[4/6] Generating documentation...');
158
+ const docsResult = await generateDocs({});
159
+ gates.documentation = docsResult.includes('✅') ? 'generated' : 'failed';
160
+ console.error(docsResult.split('\n').slice(0, 5).join('\n'));
161
+ }
162
+ else {
163
+ gates.documentation = 'skipped';
164
+ }
165
+ // Gate 5: AI Chatbot
166
+ if (!skipChatbot) {
167
+ console.error('[5/6] Generating AI chatbot...');
168
+ const chatbotResult = await generateChatbot({});
169
+ gates.chatbot = chatbotResult.includes('✅') ? 'generated' : 'failed';
170
+ console.error(chatbotResult.split('\n').slice(0, 5).join('\n'));
171
+ }
172
+ else {
173
+ gates.chatbot = 'skipped';
174
+ }
175
+ // Gate 6: Deployment
176
+ if (!skipDeploy && gates.security !== 'blocked') {
177
+ console.error('[6/6] Deploying to Vercel...');
178
+ try {
179
+ const deployResult = await deployVercel({ production: true });
180
+ gates.deployment = deployResult.includes('✅') ? 'deployed' : 'failed';
181
+ gates.deployment_url = deployResult.match(/https:\/\/[^\s]+/)?.[0];
182
+ console.error(deployResult.split('\n').slice(0, 5).join('\n'));
183
+ }
184
+ catch (error) {
185
+ gates.deployment = 'failed';
186
+ gates.deployment_error = error instanceof Error ? error.message : String(error);
187
+ console.error(`Deployment failed: ${gates.deployment_error}`);
188
+ }
189
+ }
190
+ else {
191
+ gates.deployment = 'skipped';
192
+ }
193
+ }
194
+ catch (error) {
195
+ console.error(`Quality gate error: ${error}`);
196
+ }
197
+ return gates;
198
+ }
199
+ function generateBuildReport(results, total, qualityGates = null) {
200
+ const successful = results.filter(r => r.status === 'success').length;
201
+ const failed = results.filter(r => r.status === 'failed').length;
202
+ let report = `🍞 CodeBakers: Autonomous Build Complete\n\n`;
203
+ report += `## Build Summary\n\n`;
204
+ report += `**Features requested:** ${total}\n`;
205
+ report += `**Features completed:** ${successful} ✅\n`;
206
+ report += `**Features failed:** ${failed} ${failed > 0 ? '❌' : ''}\n\n`;
207
+ if (successful > 0) {
208
+ report += `## ✅ Successful Builds\n\n`;
209
+ for (const result of results.filter(r => r.status === 'success')) {
210
+ report += `- ${result.feature}\n`;
211
+ }
212
+ report += `\n`;
213
+ }
214
+ if (failed > 0) {
215
+ report += `## ❌ Failed Builds\n\n`;
216
+ for (const result of results.filter(r => r.status === 'failed')) {
217
+ report += `- ${result.feature}\n`;
218
+ if (result.error) {
219
+ report += ` Error: ${result.error}\n`;
220
+ }
221
+ }
222
+ report += `\n`;
223
+ }
224
+ // Quality Gates Section
225
+ if (qualityGates) {
226
+ report += `---\n\n`;
227
+ report += `## 🔒 Quality Gates\n\n`;
228
+ const gates = [
229
+ { name: 'Accessibility', status: qualityGates.accessibility },
230
+ { name: 'Performance', status: qualityGates.performance },
231
+ { name: 'Security', status: qualityGates.security },
232
+ { name: 'Documentation', status: qualityGates.documentation },
233
+ { name: 'AI Chatbot', status: qualityGates.chatbot },
234
+ { name: 'Deployment', status: qualityGates.deployment }
235
+ ];
236
+ for (const gate of gates) {
237
+ const emoji = gate.status === 'pass' || gate.status === 'generated' || gate.status === 'deployed'
238
+ ? '✅'
239
+ : gate.status === 'fail' || gate.status === 'blocked'
240
+ ? '❌'
241
+ : gate.status === 'warnings'
242
+ ? '⚠️'
243
+ : '⏭️';
244
+ report += `- ${emoji} **${gate.name}:** ${gate.status}\n`;
245
+ }
246
+ report += `\n`;
247
+ // Deployment URL if available
248
+ if (qualityGates.deployment_url) {
249
+ report += `🚀 **Live URL:** ${qualityGates.deployment_url}\n\n`;
250
+ }
251
+ // Security blocked warning
252
+ if (qualityGates.security === 'blocked') {
253
+ report += `⚠️ **Security gate BLOCKED** - Fix critical vulnerabilities before deployment\n\n`;
254
+ }
255
+ }
256
+ report += `---\n\n`;
257
+ if (failed === 0 && qualityGates && qualityGates.deployment === 'deployed') {
258
+ report += `## 🎉 BUILD COMPLETE - PRODUCTION READY\n\n`;
259
+ report += `**Your app is live!**\n\n`;
260
+ if (qualityGates.deployment_url) {
261
+ report += `**URL:** ${qualityGates.deployment_url}\n\n`;
262
+ }
263
+ report += `**Quality Scores:**\n`;
264
+ report += `- Accessibility: ${qualityGates.accessibility === 'pass' ? '✅ Compliant' : '⚠️ Issues found'}\n`;
265
+ report += `- Performance: ✅ Optimized\n`;
266
+ report += `- Security: ${qualityGates.security === 'pass' ? '✅ Secure' : qualityGates.security === 'warnings' ? '⚠️ Warnings' : '❌ Critical issues'}\n`;
267
+ report += `- Documentation: ${qualityGates.documentation === 'generated' ? '✅ Generated' : 'Not generated'}\n`;
268
+ report += `- AI Chatbot: ${qualityGates.chatbot === 'generated' ? '✅ Integrated' : 'Not integrated'}\n\n`;
269
+ report += `**Time saved:** Entire app built autonomously from mockups to production\n`;
270
+ }
271
+ else if (failed === 0) {
272
+ report += `## 🎉 All Features Complete!\n\n`;
273
+ report += `**Next steps:**\n`;
274
+ report += `1. Run tests: codebakers_run_tests { test_type: "all" }\n`;
275
+ report += `2. Review quality gates above\n`;
276
+ report += `3. Deploy: codebakers_deploy_vercel { production: true }\n`;
277
+ }
278
+ else {
279
+ report += `## ⚠️ Some Features Failed\n\n`;
280
+ report += `**Next steps:**\n`;
281
+ report += `1. Review error messages above\n`;
282
+ report += `2. Fix issues manually\n`;
283
+ report += `3. Re-run: codebakers_autonomous_build { mode: "remaining" }\n`;
284
+ }
285
+ return report;
286
+ }
287
+ //# sourceMappingURL=autonomous-build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autonomous-build.js","sourceRoot":"","sources":["../../src/tools/autonomous-build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * codebakers_check_gate
3
+ *
4
+ * Phase Verification Gate Checks
5
+ *
6
+ * Verifies all requirements are met before proceeding to next phase.
7
+ * Based on CodeBakers Method verification gates for each phase.
8
+ *
9
+ * Phase Gates:
10
+ * - Phase 0: PROJECT-SPEC.md complete (Gates 0-5), human approved
11
+ * - Phase 1: All mockups created, design system documented
12
+ * - Phase 2: MOCK-ANALYSIS.md, SCHEMA.sql, DEPENDENCY-MAP.md complete
13
+ * - Phase 3: Foundation built, auth working, all routes resolve
14
+ * - Phase 4: All features implemented, all screens match mockups
15
+ * - Phase 5: All tests passing, Lighthouse >90, no critical vulnerabilities
16
+ * - Phase 6: Deployed, monitoring active, runbook complete
17
+ */
18
+ export declare function checkGate(args: {
19
+ phase?: number;
20
+ }): Promise<string>;
21
+ //# sourceMappingURL=check-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-gate.d.ts","sourceRoot":"","sources":["../../src/tools/check-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAoBH,wBAAsB,SAAS,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAkDzE"}