mycontext-cli 0.4.8 → 0.4.10

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 (70) hide show
  1. package/README.md +113 -97
  2. package/dist/agents/communication/AgentCommunicationManager.d.ts +27 -0
  3. package/dist/agents/communication/AgentCommunicationManager.d.ts.map +1 -0
  4. package/dist/agents/communication/AgentCommunicationManager.js +293 -0
  5. package/dist/agents/communication/AgentCommunicationManager.js.map +1 -0
  6. package/dist/agents/evolution/CodeEvolutionEngine.d.ts +92 -0
  7. package/dist/agents/evolution/CodeEvolutionEngine.d.ts.map +1 -0
  8. package/dist/agents/evolution/CodeEvolutionEngine.js +639 -0
  9. package/dist/agents/evolution/CodeEvolutionEngine.js.map +1 -0
  10. package/dist/agents/implementations/ArchitectAgent.d.ts +39 -0
  11. package/dist/agents/implementations/ArchitectAgent.d.ts.map +1 -0
  12. package/dist/agents/implementations/ArchitectAgent.js +345 -0
  13. package/dist/agents/implementations/ArchitectAgent.js.map +1 -0
  14. package/dist/agents/implementations/CodeGenSubAgent.d.ts +12 -0
  15. package/dist/agents/implementations/CodeGenSubAgent.d.ts.map +1 -1
  16. package/dist/agents/implementations/CodeGenSubAgent.js +296 -43
  17. package/dist/agents/implementations/CodeGenSubAgent.js.map +1 -1
  18. package/dist/agents/implementations/PromptConstructorAgent.d.ts +50 -0
  19. package/dist/agents/implementations/PromptConstructorAgent.d.ts.map +1 -0
  20. package/dist/agents/implementations/PromptConstructorAgent.js +481 -0
  21. package/dist/agents/implementations/PromptConstructorAgent.js.map +1 -0
  22. package/dist/agents/implementations/SecurityAgent.d.ts +31 -0
  23. package/dist/agents/implementations/SecurityAgent.d.ts.map +1 -0
  24. package/dist/agents/implementations/SecurityAgent.js +453 -0
  25. package/dist/agents/implementations/SecurityAgent.js.map +1 -0
  26. package/dist/agents/intelligence/ProjectIntelligence.d.ts +127 -0
  27. package/dist/agents/intelligence/ProjectIntelligence.d.ts.map +1 -0
  28. package/dist/agents/intelligence/ProjectIntelligence.js +456 -0
  29. package/dist/agents/intelligence/ProjectIntelligence.js.map +1 -0
  30. package/dist/agents/interfaces/AgentCommunication.d.ts +65 -0
  31. package/dist/agents/interfaces/AgentCommunication.d.ts.map +1 -0
  32. package/dist/agents/interfaces/AgentCommunication.js +13 -0
  33. package/dist/agents/interfaces/AgentCommunication.js.map +1 -0
  34. package/dist/agents/learning/CrossProjectLearning.d.ts +99 -0
  35. package/dist/agents/learning/CrossProjectLearning.d.ts.map +1 -0
  36. package/dist/agents/learning/CrossProjectLearning.js +517 -0
  37. package/dist/agents/learning/CrossProjectLearning.js.map +1 -0
  38. package/dist/cli.js +47 -0
  39. package/dist/cli.js.map +1 -1
  40. package/dist/commands/agent-flow.d.ts +21 -0
  41. package/dist/commands/agent-flow.d.ts.map +1 -0
  42. package/dist/commands/agent-flow.js +225 -0
  43. package/dist/commands/agent-flow.js.map +1 -0
  44. package/dist/commands/generate-components.d.ts +0 -13
  45. package/dist/commands/generate-components.d.ts.map +1 -1
  46. package/dist/commands/generate-components.js +23 -385
  47. package/dist/commands/generate-components.js.map +1 -1
  48. package/dist/commands/generate.d.ts +4 -1
  49. package/dist/commands/generate.d.ts.map +1 -1
  50. package/dist/commands/generate.js +173 -1
  51. package/dist/commands/generate.js.map +1 -1
  52. package/dist/commands/predict.d.ts +36 -0
  53. package/dist/commands/predict.d.ts.map +1 -0
  54. package/dist/commands/predict.js +539 -0
  55. package/dist/commands/predict.js.map +1 -0
  56. package/dist/utils/clean.d.ts +6 -0
  57. package/dist/utils/clean.d.ts.map +1 -0
  58. package/dist/utils/clean.js +220 -0
  59. package/dist/utils/clean.js.map +1 -0
  60. package/dist/utils/githubModelsClient.d.ts.map +1 -1
  61. package/dist/utils/githubModelsClient.js +11 -12
  62. package/dist/utils/githubModelsClient.js.map +1 -1
  63. package/dist/utils/hybridAIClient.d.ts +1 -0
  64. package/dist/utils/hybridAIClient.d.ts.map +1 -1
  65. package/dist/utils/hybridAIClient.js +23 -9
  66. package/dist/utils/hybridAIClient.js.map +1 -1
  67. package/dist/utils/ollamaClient.d.ts.map +1 -1
  68. package/dist/utils/ollamaClient.js +6 -4
  69. package/dist/utils/ollamaClient.js.map +1 -1
  70. package/package.json +2 -1
@@ -0,0 +1,453 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SecurityAgent = void 0;
4
+ class SecurityAgent {
5
+ constructor() {
6
+ this.name = "SecurityAgent";
7
+ this.description = "Security analysis, vulnerability scanning, and secure coding practices";
8
+ this.personality = "vigilant";
9
+ this.llmProvider = "github";
10
+ this.expertise = ["security", "compliance", "vulnerability-assessment"];
11
+ }
12
+ async run(input) {
13
+ return this.execute(input);
14
+ }
15
+ async execute(input) {
16
+ const { code, component, context } = input;
17
+ try {
18
+ // Perform security analysis
19
+ const vulnerabilities = await this.scanVulnerabilities(code, component);
20
+ const securityChecks = await this.performSecurityChecks(code, component);
21
+ const recommendations = await this.generateSecurityRecommendations(vulnerabilities, component);
22
+ return {
23
+ vulnerabilities,
24
+ securityChecks,
25
+ recommendations,
26
+ score: this.calculateSecurityScore(vulnerabilities, securityChecks),
27
+ complianceStatus: this.checkCompliance(component, securityChecks),
28
+ };
29
+ }
30
+ catch (error) {
31
+ throw new Error(`Security analysis failed: ${error.message}`);
32
+ }
33
+ }
34
+ async scanVulnerabilities(code, component) {
35
+ const vulnerabilities = [];
36
+ // XSS Detection
37
+ const xssVulns = this.detectXSS(code);
38
+ vulnerabilities.push(...xssVulns);
39
+ // CSRF Detection
40
+ const csrfVulns = this.detectCSRF(code, component);
41
+ vulnerabilities.push(...csrfVulns);
42
+ // Injection Vulnerabilities
43
+ const injectionVulns = this.detectInjection(code);
44
+ vulnerabilities.push(...injectionVulns);
45
+ // Authentication Issues
46
+ const authVulns = this.detectAuthenticationIssues(code, component);
47
+ vulnerabilities.push(...authVulns);
48
+ // Data Exposure
49
+ const dataVulns = this.detectDataExposure(code);
50
+ vulnerabilities.push(...dataVulns);
51
+ return vulnerabilities;
52
+ }
53
+ detectXSS(code) {
54
+ const vulnerabilities = [];
55
+ // Dangerous innerHTML usage
56
+ if (code.includes("dangerouslySetInnerHTML") &&
57
+ !code.includes("DOMPurify")) {
58
+ vulnerabilities.push({
59
+ type: "XSS",
60
+ severity: "high",
61
+ description: "Potential XSS vulnerability: dangerouslySetInnerHTML without sanitization",
62
+ location: "dangerouslySetInnerHTML usage",
63
+ fix: "Use DOMPurify or avoid dangerouslySetInnerHTML",
64
+ });
65
+ }
66
+ // Direct HTML injection
67
+ const htmlInjectionPattern = /innerHTML\s*=\s*[^;]+(?:props|state|input)/;
68
+ if (htmlInjectionPattern.test(code)) {
69
+ vulnerabilities.push({
70
+ type: "XSS",
71
+ severity: "high",
72
+ description: "Direct HTML injection detected",
73
+ location: "innerHTML assignment",
74
+ fix: "Sanitize input or use textContent instead",
75
+ });
76
+ }
77
+ // Unsafe eval usage
78
+ if (code.includes("eval(") || code.includes("Function(")) {
79
+ vulnerabilities.push({
80
+ type: "XSS",
81
+ severity: "critical",
82
+ description: "Unsafe eval() or Function() usage detected",
83
+ location: "eval/Function call",
84
+ fix: "Replace with safer alternatives",
85
+ });
86
+ }
87
+ return vulnerabilities;
88
+ }
89
+ detectCSRF(code, component) {
90
+ const vulnerabilities = [];
91
+ // Check for forms without CSRF protection
92
+ if (code.includes("<form") || code.includes("form onSubmit")) {
93
+ if (!code.includes("csrf") &&
94
+ !code.includes("token") &&
95
+ !code.includes("_token")) {
96
+ vulnerabilities.push({
97
+ type: "CSRF",
98
+ severity: "medium",
99
+ description: "Form submission without CSRF protection",
100
+ location: "form element",
101
+ fix: "Add CSRF token to form submissions",
102
+ });
103
+ }
104
+ }
105
+ // Check for state-changing operations
106
+ const stateChangingMethods = ["POST", "PUT", "DELETE", "PATCH"];
107
+ for (const method of stateChangingMethods) {
108
+ if (code.includes(`method: '${method}'`) ||
109
+ code.includes(`method: "${method}"`)) {
110
+ if (!code.includes("csrf") && !code.includes("token")) {
111
+ vulnerabilities.push({
112
+ type: "CSRF",
113
+ severity: "medium",
114
+ description: `${method} request without CSRF protection`,
115
+ location: `${method} request`,
116
+ fix: "Include CSRF token in request headers",
117
+ });
118
+ }
119
+ }
120
+ }
121
+ return vulnerabilities;
122
+ }
123
+ detectInjection(code) {
124
+ const vulnerabilities = [];
125
+ // SQL Injection (for server-side code)
126
+ const sqlInjectionPattern = /(?:SELECT|INSERT|UPDATE|DELETE).*(?:\$\{|`\$\{|\+.*\$)/i;
127
+ if (sqlInjectionPattern.test(code)) {
128
+ vulnerabilities.push({
129
+ type: "SQL_INJECTION",
130
+ severity: "critical",
131
+ description: "Potential SQL injection vulnerability",
132
+ location: "SQL query construction",
133
+ fix: "Use parameterized queries or ORM",
134
+ });
135
+ }
136
+ // Command Injection
137
+ const commandInjectionPattern = /(?:exec|spawn|system).*(?:\$\{|`\$\{|\+.*\$)/;
138
+ if (commandInjectionPattern.test(code)) {
139
+ vulnerabilities.push({
140
+ type: "COMMAND_INJECTION",
141
+ severity: "critical",
142
+ description: "Potential command injection vulnerability",
143
+ location: "system command execution",
144
+ fix: "Validate and sanitize all inputs to system commands",
145
+ });
146
+ }
147
+ // Path Traversal
148
+ if (code.includes("..") &&
149
+ (code.includes("readFile") || code.includes("writeFile"))) {
150
+ vulnerabilities.push({
151
+ type: "PATH_TRAVERSAL",
152
+ severity: "high",
153
+ description: "Potential path traversal vulnerability",
154
+ location: "file system access",
155
+ fix: "Validate file paths and use path.resolve()",
156
+ });
157
+ }
158
+ return vulnerabilities;
159
+ }
160
+ detectAuthenticationIssues(code, component) {
161
+ const vulnerabilities = [];
162
+ // Hardcoded credentials
163
+ const credentialPatterns = [
164
+ /password\s*[:=]\s*['"][^'"]+['"]/i,
165
+ /secret\s*[:=]\s*['"][^'"]+['"]/i,
166
+ /api_?key\s*[:=]\s*['"][^'"]+['"]/i,
167
+ /token\s*[:=]\s*['"][^'"]+['"]/i,
168
+ ];
169
+ for (const pattern of credentialPatterns) {
170
+ if (pattern.test(code)) {
171
+ vulnerabilities.push({
172
+ type: "HARDCODED_CREDENTIALS",
173
+ severity: "critical",
174
+ description: "Hardcoded credentials detected",
175
+ location: "credential assignment",
176
+ fix: "Move credentials to environment variables",
177
+ });
178
+ }
179
+ }
180
+ // Weak password requirements
181
+ if (code.includes("password") &&
182
+ !code.includes("strength") &&
183
+ !code.includes("validation")) {
184
+ vulnerabilities.push({
185
+ type: "WEAK_PASSWORD_POLICY",
186
+ severity: "medium",
187
+ description: "Password input without strength validation",
188
+ location: "password field",
189
+ fix: "Implement password strength requirements",
190
+ });
191
+ }
192
+ // Session management issues
193
+ if (code.includes("localStorage") &&
194
+ (code.includes("token") || code.includes("session"))) {
195
+ vulnerabilities.push({
196
+ type: "INSECURE_STORAGE",
197
+ severity: "medium",
198
+ description: "Sensitive data stored in localStorage",
199
+ location: "localStorage usage",
200
+ fix: "Use secure, httpOnly cookies or sessionStorage for sensitive data",
201
+ });
202
+ }
203
+ return vulnerabilities;
204
+ }
205
+ detectDataExposure(code) {
206
+ const vulnerabilities = [];
207
+ // Console.log with sensitive data
208
+ if (code.includes("console.log") &&
209
+ (code.includes("password") ||
210
+ code.includes("token") ||
211
+ code.includes("secret"))) {
212
+ vulnerabilities.push({
213
+ type: "DATA_EXPOSURE",
214
+ severity: "medium",
215
+ description: "Sensitive data logged to console",
216
+ location: "console.log statement",
217
+ fix: "Remove or mask sensitive data in logs",
218
+ });
219
+ }
220
+ // Error messages exposing internal info
221
+ if (code.includes("throw new Error") &&
222
+ (code.includes("database") || code.includes("internal"))) {
223
+ vulnerabilities.push({
224
+ type: "INFORMATION_DISCLOSURE",
225
+ severity: "low",
226
+ description: "Error messages may expose internal information",
227
+ location: "error handling",
228
+ fix: "Use generic error messages for users",
229
+ });
230
+ }
231
+ // Unmasked sensitive inputs
232
+ if (code.includes('type="text"') &&
233
+ (code.includes("password") ||
234
+ code.includes("ssn") ||
235
+ code.includes("credit"))) {
236
+ vulnerabilities.push({
237
+ type: "DATA_EXPOSURE",
238
+ severity: "medium",
239
+ description: "Sensitive input field not properly masked",
240
+ location: "input field",
241
+ fix: "Use appropriate input types (password, etc.)",
242
+ });
243
+ }
244
+ return vulnerabilities;
245
+ }
246
+ async performSecurityChecks(code, component) {
247
+ return {
248
+ inputValidation: this.checkInputValidation(code),
249
+ outputEncoding: this.checkOutputEncoding(code),
250
+ accessControl: this.checkAccessControl(code, component),
251
+ dataProtection: this.checkDataProtection(code),
252
+ communicationSecurity: this.checkCommunicationSecurity(code),
253
+ errorHandling: this.checkErrorHandling(code),
254
+ };
255
+ }
256
+ checkInputValidation(code) {
257
+ const checks = {
258
+ hasValidation: false,
259
+ validationLibrary: null,
260
+ sanitization: false,
261
+ typeChecking: false,
262
+ };
263
+ // Check for validation libraries
264
+ if (code.includes("zod") || code.includes("yup") || code.includes("joi")) {
265
+ checks.hasValidation = true;
266
+ if (code.includes("zod"))
267
+ checks.validationLibrary = "zod";
268
+ else if (code.includes("yup"))
269
+ checks.validationLibrary = "yup";
270
+ else if (code.includes("joi"))
271
+ checks.validationLibrary = "joi";
272
+ }
273
+ // Check for sanitization
274
+ if (code.includes("DOMPurify") || code.includes("sanitize")) {
275
+ checks.sanitization = true;
276
+ }
277
+ // Check for TypeScript
278
+ if (code.includes("interface ") || code.includes("type ")) {
279
+ checks.typeChecking = true;
280
+ }
281
+ return checks;
282
+ }
283
+ checkOutputEncoding(code) {
284
+ return {
285
+ hasEncoding: code.includes("encodeURIComponent") || code.includes("escape"),
286
+ htmlEscaping: code.includes("escape") || code.includes("htmlEntities"),
287
+ jsonSerialization: code.includes("JSON.stringify"),
288
+ contentTypeHeaders: code.includes("Content-Type"),
289
+ };
290
+ }
291
+ checkAccessControl(code, component) {
292
+ return {
293
+ hasAuthentication: code.includes("auth") || code.includes("login"),
294
+ hasAuthorization: code.includes("permission") || code.includes("role"),
295
+ routeProtection: code.includes("protected") || code.includes("guard"),
296
+ roleBasedAccess: code.includes("role") && code.includes("check"),
297
+ };
298
+ }
299
+ checkDataProtection(code) {
300
+ return {
301
+ encryption: code.includes("encrypt") || code.includes("crypto"),
302
+ hashing: code.includes("hash") || code.includes("bcrypt"),
303
+ secureTransmission: code.includes("https") || code.includes("ssl"),
304
+ dataMinimization: !code.includes(".*"), // Simplified check
305
+ };
306
+ }
307
+ checkCommunicationSecurity(code) {
308
+ return {
309
+ httpsOnly: !code.includes("http://"),
310
+ secureHeaders: code.includes("helmet") || code.includes("security-headers"),
311
+ corsConfiguration: code.includes("cors"),
312
+ certificateValidation: code.includes("cert") || code.includes("ssl"),
313
+ };
314
+ }
315
+ checkErrorHandling(code) {
316
+ return {
317
+ hasErrorBoundaries: code.includes("ErrorBoundary") || code.includes("componentDidCatch"),
318
+ sanitizedErrors: !code.includes("console.error") || code.includes("sanitize"),
319
+ logSecurity: code.includes("winston") || code.includes("pino"),
320
+ gracefulDegradation: code.includes("fallback") || code.includes("catch"),
321
+ };
322
+ }
323
+ async generateSecurityRecommendations(vulnerabilities, component) {
324
+ const recommendations = [];
325
+ // High-severity recommendations
326
+ const criticalVulns = vulnerabilities.filter((v) => v.severity === "critical");
327
+ if (criticalVulns.length > 0) {
328
+ recommendations.push("🚨 CRITICAL: Address critical security vulnerabilities immediately");
329
+ criticalVulns.forEach((vuln) => {
330
+ recommendations.push(` - ${vuln.description}: ${vuln.fix}`);
331
+ });
332
+ }
333
+ // Authentication recommendations
334
+ if (component.name.includes("Login") || component.name.includes("Auth")) {
335
+ recommendations.push("Implement multi-factor authentication");
336
+ recommendations.push("Use secure session management");
337
+ recommendations.push("Implement account lockout mechanisms");
338
+ }
339
+ // Form security recommendations
340
+ if (component.type === "form" || component.name.includes("Form")) {
341
+ recommendations.push("Add CSRF protection to all forms");
342
+ recommendations.push("Implement input validation and sanitization");
343
+ recommendations.push("Use HTTPS for all form submissions");
344
+ }
345
+ // API security recommendations
346
+ if (component.context?.includes("api") ||
347
+ component.dependencies?.includes("fetch")) {
348
+ recommendations.push("Implement API rate limiting");
349
+ recommendations.push("Use proper authentication headers");
350
+ recommendations.push("Validate all API responses");
351
+ }
352
+ // General security recommendations
353
+ recommendations.push("Regular security audits and dependency updates");
354
+ recommendations.push("Implement Content Security Policy (CSP)");
355
+ recommendations.push("Use security headers (HSTS, X-Frame-Options, etc.)");
356
+ return recommendations;
357
+ }
358
+ calculateSecurityScore(vulnerabilities, securityChecks) {
359
+ let score = 100;
360
+ // Deduct points for vulnerabilities
361
+ vulnerabilities.forEach((vuln) => {
362
+ switch (vuln.severity) {
363
+ case "critical":
364
+ score -= 25;
365
+ break;
366
+ case "high":
367
+ score -= 15;
368
+ break;
369
+ case "medium":
370
+ score -= 10;
371
+ break;
372
+ case "low":
373
+ score -= 5;
374
+ break;
375
+ }
376
+ });
377
+ // Add points for security measures
378
+ if (securityChecks.inputValidation.hasValidation)
379
+ score += 5;
380
+ if (securityChecks.outputEncoding.hasEncoding)
381
+ score += 3;
382
+ if (securityChecks.accessControl.hasAuthentication)
383
+ score += 5;
384
+ if (securityChecks.dataProtection.encryption)
385
+ score += 5;
386
+ if (securityChecks.communicationSecurity.httpsOnly)
387
+ score += 3;
388
+ if (securityChecks.errorHandling.hasErrorBoundaries)
389
+ score += 2;
390
+ return Math.max(0, Math.min(100, score));
391
+ }
392
+ checkCompliance(component, securityChecks) {
393
+ return {
394
+ owasp: this.checkOWASPCompliance(securityChecks),
395
+ gdpr: this.checkGDPRCompliance(component, securityChecks),
396
+ pci: this.checkPCICompliance(component, securityChecks),
397
+ hipaa: this.checkHIPAACompliance(component, securityChecks),
398
+ };
399
+ }
400
+ checkOWASPCompliance(securityChecks) {
401
+ const checks = [];
402
+ if (securityChecks.inputValidation.hasValidation)
403
+ checks.push("Input Validation");
404
+ if (securityChecks.outputEncoding.hasEncoding)
405
+ checks.push("Output Encoding");
406
+ if (securityChecks.accessControl.hasAuthentication)
407
+ checks.push("Authentication");
408
+ if (securityChecks.dataProtection.encryption)
409
+ checks.push("Data Protection");
410
+ if (securityChecks.communicationSecurity.httpsOnly)
411
+ checks.push("Secure Communication");
412
+ return {
413
+ compliant: checks.length >= 4,
414
+ checks,
415
+ missing: 5 - checks.length,
416
+ };
417
+ }
418
+ checkGDPRCompliance(component, securityChecks) {
419
+ const hasDataProcessing = component.context?.includes("user") ||
420
+ component.context?.includes("personal");
421
+ return {
422
+ applicable: hasDataProcessing,
423
+ dataMinimization: securityChecks.dataProtection.dataMinimization,
424
+ encryptionAtRest: securityChecks.dataProtection.encryption,
425
+ encryptionInTransit: securityChecks.communicationSecurity.httpsOnly,
426
+ needsConsentMechanism: hasDataProcessing,
427
+ };
428
+ }
429
+ checkPCICompliance(component, securityChecks) {
430
+ const hasPaymentData = component.context?.includes("payment") ||
431
+ component.context?.includes("card");
432
+ return {
433
+ applicable: hasPaymentData,
434
+ dataEncryption: securityChecks.dataProtection.encryption,
435
+ secureTransmission: securityChecks.communicationSecurity.httpsOnly,
436
+ accessControl: securityChecks.accessControl.hasAuthorization,
437
+ needsTokenization: hasPaymentData,
438
+ };
439
+ }
440
+ checkHIPAACompliance(component, securityChecks) {
441
+ const hasHealthData = component.context?.includes("health") ||
442
+ component.context?.includes("medical");
443
+ return {
444
+ applicable: hasHealthData,
445
+ dataEncryption: securityChecks.dataProtection.encryption,
446
+ accessControl: securityChecks.accessControl.roleBasedAccess,
447
+ auditLogging: securityChecks.errorHandling.logSecurity,
448
+ needsBAA: hasHealthData,
449
+ };
450
+ }
451
+ }
452
+ exports.SecurityAgent = SecurityAgent;
453
+ //# sourceMappingURL=SecurityAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecurityAgent.js","sourceRoot":"","sources":["../../../src/agents/implementations/SecurityAgent.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;IAA1B;QACE,SAAI,GAAG,eAAe,CAAC;QACvB,gBAAW,GACT,wEAAwE,CAAC;QAC3E,gBAAW,GAAG,UAAU,CAAC;QACzB,gBAAW,GAAG,QAAQ,CAAC;QACvB,cAAS,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,0BAA0B,CAAC,CAAC;IAkiBrE,CAAC;IAhiBC,KAAK,CAAC,GAAG,CAAC,KAAU;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAU;QACtB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAE3C,IAAI,CAAC;YACH,4BAA4B;YAC5B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACxE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACzE,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAChE,eAAe,EACf,SAAS,CACV,CAAC;YAEF,OAAO;gBACL,eAAe;gBACf,cAAc;gBACd,eAAe;gBACf,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,cAAc,CAAC;gBACnE,gBAAgB,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,cAAc,CAAC;aAClE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,IAAY,EACZ,SAAc;QAEd,MAAM,eAAe,GAAG,EAAE,CAAC;QAE3B,gBAAgB;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACtC,eAAe,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAElC,iBAAiB;QACjB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnD,eAAe,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QAEnC,4BAA4B;QAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAClD,eAAe,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;QAExC,wBAAwB;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnE,eAAe,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QAEnC,gBAAgB;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAChD,eAAe,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QAEnC,OAAO,eAAe,CAAC;IACzB,CAAC;IAEO,SAAS,CAAC,IAAY;QAC5B,MAAM,eAAe,GAAG,EAAE,CAAC;QAE3B,4BAA4B;QAC5B,IACE,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC3B,CAAC;YACD,eAAe,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,MAAM;gBAChB,WAAW,EACT,2EAA2E;gBAC7E,QAAQ,EAAE,+BAA+B;gBACzC,GAAG,EAAE,gDAAgD;aACtD,CAAC,CAAC;QACL,CAAC;QAED,wBAAwB;QACxB,MAAM,oBAAoB,GAAG,4CAA4C,CAAC;QAC1E,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,eAAe,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,MAAM;gBAChB,WAAW,EAAE,gCAAgC;gBAC7C,QAAQ,EAAE,sBAAsB;gBAChC,GAAG,EAAE,2CAA2C;aACjD,CAAC,CAAC;QACL,CAAC;QAED,oBAAoB;QACpB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACzD,eAAe,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,UAAU;gBACpB,WAAW,EAAE,4CAA4C;gBACzD,QAAQ,EAAE,oBAAoB;gBAC9B,GAAG,EAAE,iCAAiC;aACvC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAEO,UAAU,CAAC,IAAY,EAAE,SAAc;QAC7C,MAAM,eAAe,GAAG,EAAE,CAAC;QAE3B,0CAA0C;QAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YAC7D,IACE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACtB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACvB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACxB,CAAC;gBACD,eAAe,CAAC,IAAI,CAAC;oBACnB,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,QAAQ;oBAClB,WAAW,EAAE,yCAAyC;oBACtD,QAAQ,EAAE,cAAc;oBACxB,GAAG,EAAE,oCAAoC;iBAC1C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChE,KAAK,MAAM,MAAM,IAAI,oBAAoB,EAAE,CAAC;YAC1C,IACE,IAAI,CAAC,QAAQ,CAAC,YAAY,MAAM,GAAG,CAAC;gBACpC,IAAI,CAAC,QAAQ,CAAC,YAAY,MAAM,GAAG,CAAC,EACpC,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBACtD,eAAe,CAAC,IAAI,CAAC;wBACnB,IAAI,EAAE,MAAM;wBACZ,QAAQ,EAAE,QAAQ;wBAClB,WAAW,EAAE,GAAG,MAAM,kCAAkC;wBACxD,QAAQ,EAAE,GAAG,MAAM,UAAU;wBAC7B,GAAG,EAAE,uCAAuC;qBAC7C,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAEO,eAAe,CAAC,IAAY;QAClC,MAAM,eAAe,GAAG,EAAE,CAAC;QAE3B,uCAAuC;QACvC,MAAM,mBAAmB,GACvB,yDAAyD,CAAC;QAC5D,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,eAAe,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,eAAe;gBACrB,QAAQ,EAAE,UAAU;gBACpB,WAAW,EAAE,uCAAuC;gBACpD,QAAQ,EAAE,wBAAwB;gBAClC,GAAG,EAAE,kCAAkC;aACxC,CAAC,CAAC;QACL,CAAC;QAED,oBAAoB;QACpB,MAAM,uBAAuB,GAC3B,8CAA8C,CAAC;QACjD,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,eAAe,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,mBAAmB;gBACzB,QAAQ,EAAE,UAAU;gBACpB,WAAW,EAAE,2CAA2C;gBACxD,QAAQ,EAAE,0BAA0B;gBACpC,GAAG,EAAE,qDAAqD;aAC3D,CAAC,CAAC;QACL,CAAC;QAED,iBAAiB;QACjB,IACE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACnB,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EACzD,CAAC;YACD,eAAe,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,gBAAgB;gBACtB,QAAQ,EAAE,MAAM;gBAChB,WAAW,EAAE,wCAAwC;gBACrD,QAAQ,EAAE,oBAAoB;gBAC9B,GAAG,EAAE,4CAA4C;aAClD,CAAC,CAAC;QACL,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAEO,0BAA0B,CAAC,IAAY,EAAE,SAAc;QAC7D,MAAM,eAAe,GAAG,EAAE,CAAC;QAE3B,wBAAwB;QACxB,MAAM,kBAAkB,GAAG;YACzB,mCAAmC;YACnC,iCAAiC;YACjC,mCAAmC;YACnC,gCAAgC;SACjC,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;YACzC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,eAAe,CAAC,IAAI,CAAC;oBACnB,IAAI,EAAE,uBAAuB;oBAC7B,QAAQ,EAAE,UAAU;oBACpB,WAAW,EAAE,gCAAgC;oBAC7C,QAAQ,EAAE,uBAAuB;oBACjC,GAAG,EAAE,2CAA2C;iBACjD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,6BAA6B;QAC7B,IACE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YACzB,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC1B,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAC5B,CAAC;YACD,eAAe,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,sBAAsB;gBAC5B,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,4CAA4C;gBACzD,QAAQ,EAAE,gBAAgB;gBAC1B,GAAG,EAAE,0CAA0C;aAChD,CAAC,CAAC;QACL,CAAC;QAED,4BAA4B;QAC5B,IACE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;YAC7B,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EACpD,CAAC;YACD,eAAe,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,kBAAkB;gBACxB,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,uCAAuC;gBACpD,QAAQ,EAAE,oBAAoB;gBAC9B,GAAG,EAAE,mEAAmE;aACzE,CAAC,CAAC;QACL,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAEO,kBAAkB,CAAC,IAAY;QACrC,MAAM,eAAe,GAAG,EAAE,CAAC;QAE3B,kCAAkC;QAClC,IACE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC5B,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;gBACxB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAC1B,CAAC;YACD,eAAe,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,eAAe;gBACrB,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,kCAAkC;gBAC/C,QAAQ,EAAE,uBAAuB;gBACjC,GAAG,EAAE,uCAAuC;aAC7C,CAAC,CAAC;QACL,CAAC;QAED,wCAAwC;QACxC,IACE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAChC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EACxD,CAAC;YACD,eAAe,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,wBAAwB;gBAC9B,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,gDAAgD;gBAC7D,QAAQ,EAAE,gBAAgB;gBAC1B,GAAG,EAAE,sCAAsC;aAC5C,CAAC,CAAC;QACL,CAAC;QAED,4BAA4B;QAC5B,IACE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC5B,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;gBACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACpB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAC1B,CAAC;YACD,eAAe,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,eAAe;gBACrB,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,2CAA2C;gBACxD,QAAQ,EAAE,aAAa;gBACvB,GAAG,EAAE,8CAA8C;aACpD,CAAC,CAAC;QACL,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,IAAY,EACZ,SAAc;QAEd,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YAChD,cAAc,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAC9C,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,CAAC;YACvD,cAAc,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAC9C,qBAAqB,EAAE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC;YAC5D,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;SAC7C,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,IAAY;QACvC,MAAM,MAAM,GAAG;YACb,aAAa,EAAE,KAAK;YACpB,iBAAiB,EAAE,IAAqB;YACxC,YAAY,EAAE,KAAK;YACnB,YAAY,EAAE,KAAK;SACpB,CAAC;QAEF,iCAAiC;QACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACzE,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;YAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,MAAM,CAAC,iBAAiB,GAAG,KAAK,CAAC;iBACtD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,MAAM,CAAC,iBAAiB,GAAG,KAAK,CAAC;iBAC3D,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,MAAM,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAClE,CAAC;QAED,yBAAyB;QACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5D,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1D,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,mBAAmB,CAAC,IAAY;QACtC,OAAO;YACL,WAAW,EACT,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAChE,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;YACtE,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAClD,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;SAClD,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,IAAY,EAAE,SAAc;QACrD,OAAO;YACL,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAClE,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACtE,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YACrE,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;SACjE,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,IAAY;QACtC,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC/D,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACzD,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAClE,gBAAgB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,mBAAmB;SAC5D,CAAC;IACJ,CAAC;IAEO,0BAA0B,CAAC,IAAY;QAC7C,OAAO;YACL,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YACpC,aAAa,EACX,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAC9D,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACxC,qBAAqB,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;SACrE,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,IAAY;QACrC,OAAO;YACL,kBAAkB,EAChB,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACtE,eAAe,EACb,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC9D,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC9D,mBAAmB,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;SACzE,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,+BAA+B,CAC3C,eAAsB,EACtB,SAAc;QAEd,MAAM,eAAe,GAAG,EAAE,CAAC;QAE3B,gCAAgC;QAChC,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CACjC,CAAC;QACF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,eAAe,CAAC,IAAI,CAClB,oEAAoE,CACrE,CAAC;YACF,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC7B,eAAe,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;QACL,CAAC;QAED,iCAAiC;QACjC,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACxE,eAAe,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YAC9D,eAAe,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YACtD,eAAe,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QAC/D,CAAC;QAED,gCAAgC;QAChC,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACjE,eAAe,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACzD,eAAe,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YACpE,eAAe,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAC7D,CAAC;QAED,+BAA+B;QAC/B,IACE,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC;YAClC,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,EACzC,CAAC;YACD,eAAe,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACpD,eAAe,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YAC1D,eAAe,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACrD,CAAC;QAED,mCAAmC;QACnC,eAAe,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QACvE,eAAe,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QAChE,eAAe,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAE3E,OAAO,eAAe,CAAC;IACzB,CAAC;IAEO,sBAAsB,CAC5B,eAAsB,EACtB,cAAmB;QAEnB,IAAI,KAAK,GAAG,GAAG,CAAC;QAEhB,oCAAoC;QACpC,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/B,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACtB,KAAK,UAAU;oBACb,KAAK,IAAI,EAAE,CAAC;oBACZ,MAAM;gBACR,KAAK,MAAM;oBACT,KAAK,IAAI,EAAE,CAAC;oBACZ,MAAM;gBACR,KAAK,QAAQ;oBACX,KAAK,IAAI,EAAE,CAAC;oBACZ,MAAM;gBACR,KAAK,KAAK;oBACR,KAAK,IAAI,CAAC,CAAC;oBACX,MAAM;YACV,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,mCAAmC;QACnC,IAAI,cAAc,CAAC,eAAe,CAAC,aAAa;YAAE,KAAK,IAAI,CAAC,CAAC;QAC7D,IAAI,cAAc,CAAC,cAAc,CAAC,WAAW;YAAE,KAAK,IAAI,CAAC,CAAC;QAC1D,IAAI,cAAc,CAAC,aAAa,CAAC,iBAAiB;YAAE,KAAK,IAAI,CAAC,CAAC;QAC/D,IAAI,cAAc,CAAC,cAAc,CAAC,UAAU;YAAE,KAAK,IAAI,CAAC,CAAC;QACzD,IAAI,cAAc,CAAC,qBAAqB,CAAC,SAAS;YAAE,KAAK,IAAI,CAAC,CAAC;QAC/D,IAAI,cAAc,CAAC,aAAa,CAAC,kBAAkB;YAAE,KAAK,IAAI,CAAC,CAAC;QAEhE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC;IAEO,eAAe,CAAC,SAAc,EAAE,cAAmB;QACzD,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;YAChD,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC;YACzD,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,cAAc,CAAC;YACvD,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,cAAc,CAAC;SAC5D,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,cAAmB;QAC9C,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,cAAc,CAAC,eAAe,CAAC,aAAa;YAC9C,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClC,IAAI,cAAc,CAAC,cAAc,CAAC,WAAW;YAC3C,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjC,IAAI,cAAc,CAAC,aAAa,CAAC,iBAAiB;YAChD,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAChC,IAAI,cAAc,CAAC,cAAc,CAAC,UAAU;YAC1C,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjC,IAAI,cAAc,CAAC,qBAAqB,CAAC,SAAS;YAChD,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAEtC,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;YAC7B,MAAM;YACN,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM;SAC3B,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,SAAc,EAAE,cAAmB;QAC7D,MAAM,iBAAiB,GACrB,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC;YACnC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QAE1C,OAAO;YACL,UAAU,EAAE,iBAAiB;YAC7B,gBAAgB,EAAE,cAAc,CAAC,cAAc,CAAC,gBAAgB;YAChE,gBAAgB,EAAE,cAAc,CAAC,cAAc,CAAC,UAAU;YAC1D,mBAAmB,EAAE,cAAc,CAAC,qBAAqB,CAAC,SAAS;YACnE,qBAAqB,EAAE,iBAAiB;SACzC,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,SAAc,EAAE,cAAmB;QAC5D,MAAM,cAAc,GAClB,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC;YACtC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEtC,OAAO;YACL,UAAU,EAAE,cAAc;YAC1B,cAAc,EAAE,cAAc,CAAC,cAAc,CAAC,UAAU;YACxD,kBAAkB,EAAE,cAAc,CAAC,qBAAqB,CAAC,SAAS;YAClE,aAAa,EAAE,cAAc,CAAC,aAAa,CAAC,gBAAgB;YAC5D,iBAAiB,EAAE,cAAc;SAClC,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,SAAc,EAAE,cAAmB;QAC9D,MAAM,aAAa,GACjB,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC;YACrC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEzC,OAAO;YACL,UAAU,EAAE,aAAa;YACzB,cAAc,EAAE,cAAc,CAAC,cAAc,CAAC,UAAU;YACxD,aAAa,EAAE,cAAc,CAAC,aAAa,CAAC,eAAe;YAC3D,YAAY,EAAE,cAAc,CAAC,aAAa,CAAC,WAAW;YACtD,QAAQ,EAAE,aAAa;SACxB,CAAC;IACJ,CAAC;CACF;AAxiBD,sCAwiBC"}
@@ -0,0 +1,127 @@
1
+ export interface ProjectIntelligence {
2
+ codebaseAwareness: CodebaseMap;
3
+ architecturalPatterns: ArchitecturalPattern[];
4
+ domainKnowledge: DomainKnowledge;
5
+ historicalDecisions: DecisionRecord[];
6
+ }
7
+ export interface CodebaseMap {
8
+ files: FileMetadata[];
9
+ dependencies: DependencyGraph;
10
+ componentHierarchy: ComponentHierarchy;
11
+ apiEndpoints: APIEndpoint[];
12
+ }
13
+ export interface ArchitecturalPattern {
14
+ id: string;
15
+ name: string;
16
+ pattern: string;
17
+ frequency: number;
18
+ confidence: number;
19
+ examples: string[];
20
+ context: string;
21
+ }
22
+ export interface DomainKnowledge {
23
+ businessTerms: BusinessTerm[];
24
+ userPersonas: UserPersona[];
25
+ workflows: BusinessWorkflow[];
26
+ rules: BusinessRule[];
27
+ }
28
+ export interface DecisionRecord {
29
+ id: string;
30
+ decision: string;
31
+ reasoning: string;
32
+ alternatives: string[];
33
+ timestamp: Date;
34
+ context: Record<string, any>;
35
+ outcome?: string;
36
+ }
37
+ export interface FileMetadata {
38
+ path: string;
39
+ type: "component" | "page" | "api" | "utility" | "test" | "config";
40
+ language: string;
41
+ complexity: number;
42
+ dependencies: string[];
43
+ exports: string[];
44
+ patterns: string[];
45
+ lastModified: Date;
46
+ }
47
+ export declare class ProjectIntelligenceEngine {
48
+ private projectPath;
49
+ private intelligence;
50
+ constructor(projectPath?: string);
51
+ analyzeProject(): Promise<ProjectIntelligence>;
52
+ private analyzeCodebase;
53
+ private analyzeFile;
54
+ private detectFileType;
55
+ private detectLanguage;
56
+ private calculateComplexity;
57
+ private extractDependencies;
58
+ private extractExports;
59
+ private detectPatterns;
60
+ private analyzeAPIRoutes;
61
+ private extractHTTPMethods;
62
+ private convertFilePathToRoute;
63
+ private extractMiddleware;
64
+ private extractParameters;
65
+ private extractPatterns;
66
+ private findPatternExamples;
67
+ private determinePatternContext;
68
+ private extractDomainKnowledge;
69
+ private extractFromPRD;
70
+ private extractFromTypes;
71
+ private extractFromBrand;
72
+ private loadHistoricalDecisions;
73
+ recordDecision(decision: Omit<DecisionRecord, "id" | "timestamp">): Promise<void>;
74
+ private saveHistoricalDecisions;
75
+ private saveIntelligenceCache;
76
+ getRecommendations(): Promise<string[]>;
77
+ }
78
+ interface APIEndpoint {
79
+ path: string;
80
+ methods: string[];
81
+ file: string;
82
+ middleware: string[];
83
+ parameters: string[];
84
+ }
85
+ interface ComponentHierarchy {
86
+ [componentName: string]: {
87
+ children: string[];
88
+ parent?: string;
89
+ props: string[];
90
+ };
91
+ }
92
+ interface DependencyGraph {
93
+ [fileName: string]: string[];
94
+ }
95
+ interface BusinessTerm {
96
+ term: string;
97
+ definition: string;
98
+ context: string;
99
+ aliases: string[];
100
+ }
101
+ interface UserPersona {
102
+ name: string;
103
+ description: string;
104
+ needs: string[];
105
+ behaviors: string[];
106
+ }
107
+ interface BusinessWorkflow {
108
+ id: string;
109
+ name: string;
110
+ steps: WorkflowStep[];
111
+ actors: string[];
112
+ }
113
+ interface WorkflowStep {
114
+ id: string;
115
+ action: string;
116
+ actor: string;
117
+ condition?: string;
118
+ }
119
+ interface BusinessRule {
120
+ id: string;
121
+ rule: string;
122
+ description: string;
123
+ scope: string;
124
+ priority: "low" | "medium" | "high";
125
+ }
126
+ export {};
127
+ //# sourceMappingURL=ProjectIntelligence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectIntelligence.d.ts","sourceRoot":"","sources":["../../../src/agents/intelligence/ProjectIntelligence.ts"],"names":[],"mappings":"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"}