@houtini/lm 1.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 (260) hide show
  1. package/CHANGELOG.md +273 -0
  2. package/LICENSE +21 -0
  3. package/README.md +203 -0
  4. package/dist/cache/analysis-cache.d.ts +33 -0
  5. package/dist/cache/analysis-cache.d.ts.map +1 -0
  6. package/dist/cache/analysis-cache.js +56 -0
  7. package/dist/cache/analysis-cache.js.map +1 -0
  8. package/dist/cache/cache-manager.d.ts +29 -0
  9. package/dist/cache/cache-manager.d.ts.map +1 -0
  10. package/dist/cache/cache-manager.js +85 -0
  11. package/dist/cache/cache-manager.js.map +1 -0
  12. package/dist/cache/index.d.ts +16 -0
  13. package/dist/cache/index.d.ts.map +1 -0
  14. package/dist/cache/index.js +17 -0
  15. package/dist/cache/index.js.map +1 -0
  16. package/dist/cache/prompt-cache.d.ts +33 -0
  17. package/dist/cache/prompt-cache.d.ts.map +1 -0
  18. package/dist/cache/prompt-cache.js +61 -0
  19. package/dist/cache/prompt-cache.js.map +1 -0
  20. package/dist/config.d.ts +43 -0
  21. package/dist/config.d.ts.map +1 -0
  22. package/dist/config.js +70 -0
  23. package/dist/config.js.map +1 -0
  24. package/dist/core/ThreeStagePromptManager.d.ts +39 -0
  25. package/dist/core/ThreeStagePromptManager.d.ts.map +1 -0
  26. package/dist/core/ThreeStagePromptManager.js +176 -0
  27. package/dist/core/ThreeStagePromptManager.js.map +1 -0
  28. package/dist/index.d.ts +6 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +230 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/plugins/base-plugin.d.ts +47 -0
  33. package/dist/plugins/base-plugin.d.ts.map +1 -0
  34. package/dist/plugins/base-plugin.js +90 -0
  35. package/dist/plugins/base-plugin.js.map +1 -0
  36. package/dist/plugins/index.d.ts +58 -0
  37. package/dist/plugins/index.d.ts.map +1 -0
  38. package/dist/plugins/index.js +161 -0
  39. package/dist/plugins/index.js.map +1 -0
  40. package/dist/plugins/types.d.ts +5 -0
  41. package/dist/plugins/types.d.ts.map +1 -0
  42. package/dist/plugins/types.js +5 -0
  43. package/dist/plugins/types.js.map +1 -0
  44. package/dist/prompts/analyze/code-quality.d.ts +116 -0
  45. package/dist/prompts/analyze/code-quality.d.ts.map +1 -0
  46. package/dist/prompts/analyze/code-quality.js +433 -0
  47. package/dist/prompts/analyze/code-quality.js.map +1 -0
  48. package/dist/prompts/analyze/compare-integration.d.ts +130 -0
  49. package/dist/prompts/analyze/compare-integration.d.ts.map +1 -0
  50. package/dist/prompts/analyze/compare-integration.js +543 -0
  51. package/dist/prompts/analyze/compare-integration.js.map +1 -0
  52. package/dist/prompts/analyze/count-files.d.ts +109 -0
  53. package/dist/prompts/analyze/count-files.d.ts.map +1 -0
  54. package/dist/prompts/analyze/count-files.js +399 -0
  55. package/dist/prompts/analyze/count-files.js.map +1 -0
  56. package/dist/prompts/analyze/database-queries.d.ts +156 -0
  57. package/dist/prompts/analyze/database-queries.d.ts.map +1 -0
  58. package/dist/prompts/analyze/database-queries.js +759 -0
  59. package/dist/prompts/analyze/database-queries.js.map +1 -0
  60. package/dist/prompts/analyze/dependencies.d.ts +97 -0
  61. package/dist/prompts/analyze/dependencies.d.ts.map +1 -0
  62. package/dist/prompts/analyze/dependencies.js +333 -0
  63. package/dist/prompts/analyze/dependencies.js.map +1 -0
  64. package/dist/prompts/analyze/diff-signatures.d.ts +139 -0
  65. package/dist/prompts/analyze/diff-signatures.d.ts.map +1 -0
  66. package/dist/prompts/analyze/diff-signatures.js +702 -0
  67. package/dist/prompts/analyze/diff-signatures.js.map +1 -0
  68. package/dist/prompts/analyze/find-patterns.d.ts +128 -0
  69. package/dist/prompts/analyze/find-patterns.d.ts.map +1 -0
  70. package/dist/prompts/analyze/find-patterns.js +520 -0
  71. package/dist/prompts/analyze/find-patterns.js.map +1 -0
  72. package/dist/prompts/analyze/find-unused-css.d.ts +151 -0
  73. package/dist/prompts/analyze/find-unused-css.d.ts.map +1 -0
  74. package/dist/prompts/analyze/find-unused-css.js +754 -0
  75. package/dist/prompts/analyze/find-unused-css.js.map +1 -0
  76. package/dist/prompts/analyze/n8n-workflow.d.ts +137 -0
  77. package/dist/prompts/analyze/n8n-workflow.d.ts.map +1 -0
  78. package/dist/prompts/analyze/n8n-workflow.js +529 -0
  79. package/dist/prompts/analyze/n8n-workflow.js.map +1 -0
  80. package/dist/prompts/analyze/project-structure.d.ts +126 -0
  81. package/dist/prompts/analyze/project-structure.d.ts.map +1 -0
  82. package/dist/prompts/analyze/project-structure.js +569 -0
  83. package/dist/prompts/analyze/project-structure.js.map +1 -0
  84. package/dist/prompts/analyze/security-audit.d.ts +142 -0
  85. package/dist/prompts/analyze/security-audit.d.ts.map +1 -0
  86. package/dist/prompts/analyze/security-audit.js +637 -0
  87. package/dist/prompts/analyze/security-audit.js.map +1 -0
  88. package/dist/prompts/analyze/single-file.d.ts +162 -0
  89. package/dist/prompts/analyze/single-file.d.ts.map +1 -0
  90. package/dist/prompts/analyze/single-file.js +665 -0
  91. package/dist/prompts/analyze/single-file.js.map +1 -0
  92. package/dist/prompts/analyze/trace-execution.d.ts +126 -0
  93. package/dist/prompts/analyze/trace-execution.d.ts.map +1 -0
  94. package/dist/prompts/analyze/trace-execution.js +609 -0
  95. package/dist/prompts/analyze/trace-execution.js.map +1 -0
  96. package/dist/prompts/analyze/wordpress-plugin-audit.d.ts +116 -0
  97. package/dist/prompts/analyze/wordpress-plugin-audit.d.ts.map +1 -0
  98. package/dist/prompts/analyze/wordpress-plugin-audit.js +454 -0
  99. package/dist/prompts/analyze/wordpress-plugin-audit.js.map +1 -0
  100. package/dist/prompts/analyze/wordpress-security.d.ts +146 -0
  101. package/dist/prompts/analyze/wordpress-security.d.ts.map +1 -0
  102. package/dist/prompts/analyze/wordpress-security.js +698 -0
  103. package/dist/prompts/analyze/wordpress-security.js.map +1 -0
  104. package/dist/prompts/analyze/wordpress-theme-audit.d.ts +114 -0
  105. package/dist/prompts/analyze/wordpress-theme-audit.d.ts.map +1 -0
  106. package/dist/prompts/analyze/wordpress-theme-audit.js +538 -0
  107. package/dist/prompts/analyze/wordpress-theme-audit.js.map +1 -0
  108. package/dist/prompts/custom/custom-prompt.d.ts +135 -0
  109. package/dist/prompts/custom/custom-prompt.d.ts.map +1 -0
  110. package/dist/prompts/custom/custom-prompt.js +419 -0
  111. package/dist/prompts/custom/custom-prompt.js.map +1 -0
  112. package/dist/prompts/fun/arcade-game.d.ts +152 -0
  113. package/dist/prompts/fun/arcade-game.d.ts.map +1 -0
  114. package/dist/prompts/fun/arcade-game.js +653 -0
  115. package/dist/prompts/fun/arcade-game.js.map +1 -0
  116. package/dist/prompts/fun/create_text_adventure.d.ts +100 -0
  117. package/dist/prompts/fun/create_text_adventure.d.ts.map +1 -0
  118. package/dist/prompts/fun/create_text_adventure.js +397 -0
  119. package/dist/prompts/fun/create_text_adventure.js.map +1 -0
  120. package/dist/prompts/fun/css-art-generator.d.ts +168 -0
  121. package/dist/prompts/fun/css-art-generator.d.ts.map +1 -0
  122. package/dist/prompts/fun/css-art-generator.js +827 -0
  123. package/dist/prompts/fun/css-art-generator.js.map +1 -0
  124. package/dist/prompts/generate/project-documentation.d.ts +137 -0
  125. package/dist/prompts/generate/project-documentation.d.ts.map +1 -0
  126. package/dist/prompts/generate/project-documentation.js +666 -0
  127. package/dist/prompts/generate/project-documentation.js.map +1 -0
  128. package/dist/prompts/generate/refactoring.d.ts +164 -0
  129. package/dist/prompts/generate/refactoring.d.ts.map +1 -0
  130. package/dist/prompts/generate/refactoring.js +621 -0
  131. package/dist/prompts/generate/refactoring.js.map +1 -0
  132. package/dist/prompts/generate/responsive-component.d.ts +147 -0
  133. package/dist/prompts/generate/responsive-component.d.ts.map +1 -0
  134. package/dist/prompts/generate/responsive-component.js +955 -0
  135. package/dist/prompts/generate/responsive-component.js.map +1 -0
  136. package/dist/prompts/generate/typescript-conversion.d.ts +144 -0
  137. package/dist/prompts/generate/typescript-conversion.d.ts.map +1 -0
  138. package/dist/prompts/generate/typescript-conversion.js +527 -0
  139. package/dist/prompts/generate/typescript-conversion.js.map +1 -0
  140. package/dist/prompts/generate/unit-tests.d.ts +139 -0
  141. package/dist/prompts/generate/unit-tests.d.ts.map +1 -0
  142. package/dist/prompts/generate/unit-tests.js +578 -0
  143. package/dist/prompts/generate/unit-tests.js.map +1 -0
  144. package/dist/prompts/generate/wordpress-plugin.d.ts +179 -0
  145. package/dist/prompts/generate/wordpress-plugin.d.ts.map +1 -0
  146. package/dist/prompts/generate/wordpress-plugin.js +763 -0
  147. package/dist/prompts/generate/wordpress-plugin.js.map +1 -0
  148. package/dist/prompts/generate/wordpress-theme-from-static.d.ts +177 -0
  149. package/dist/prompts/generate/wordpress-theme-from-static.d.ts.map +1 -0
  150. package/dist/prompts/generate/wordpress-theme-from-static.js +695 -0
  151. package/dist/prompts/generate/wordpress-theme-from-static.js.map +1 -0
  152. package/dist/prompts/shared/cache-manager.d.ts +45 -0
  153. package/dist/prompts/shared/cache-manager.d.ts.map +1 -0
  154. package/dist/prompts/shared/cache-manager.js +129 -0
  155. package/dist/prompts/shared/cache-manager.js.map +1 -0
  156. package/dist/prompts/shared/helpers.d.ts +39 -0
  157. package/dist/prompts/shared/helpers.d.ts.map +1 -0
  158. package/dist/prompts/shared/helpers.js +151 -0
  159. package/dist/prompts/shared/helpers.js.map +1 -0
  160. package/dist/prompts/shared/templates.d.ts +35 -0
  161. package/dist/prompts/shared/templates.d.ts.map +1 -0
  162. package/dist/prompts/shared/templates.js +77 -0
  163. package/dist/prompts/shared/templates.js.map +1 -0
  164. package/dist/prompts/shared/types.d.ts +112 -0
  165. package/dist/prompts/shared/types.d.ts.map +1 -0
  166. package/dist/prompts/shared/types.js +5 -0
  167. package/dist/prompts/shared/types.js.map +1 -0
  168. package/dist/prompts/system/find-unused-files.d.ts +106 -0
  169. package/dist/prompts/system/find-unused-files.d.ts.map +1 -0
  170. package/dist/prompts/system/find-unused-files.js +353 -0
  171. package/dist/prompts/system/find-unused-files.js.map +1 -0
  172. package/dist/security/index.d.ts +39 -0
  173. package/dist/security/index.d.ts.map +1 -0
  174. package/dist/security/index.js +46 -0
  175. package/dist/security/index.js.map +1 -0
  176. package/dist/security/integration-helpers.d.ts +121 -0
  177. package/dist/security/integration-helpers.d.ts.map +1 -0
  178. package/dist/security/integration-helpers.js +190 -0
  179. package/dist/security/integration-helpers.js.map +1 -0
  180. package/dist/security/output-encoder.d.ts +94 -0
  181. package/dist/security/output-encoder.d.ts.map +1 -0
  182. package/dist/security/output-encoder.js +295 -0
  183. package/dist/security/output-encoder.js.map +1 -0
  184. package/dist/security/prompt-injection-guard.d.ts +59 -0
  185. package/dist/security/prompt-injection-guard.d.ts.map +1 -0
  186. package/dist/security/prompt-injection-guard.js +249 -0
  187. package/dist/security/prompt-injection-guard.js.map +1 -0
  188. package/dist/security/sanitisation.d.ts +67 -0
  189. package/dist/security/sanitisation.d.ts.map +1 -0
  190. package/dist/security/sanitisation.js +398 -0
  191. package/dist/security/sanitisation.js.map +1 -0
  192. package/dist/security/security-service.d.ts +103 -0
  193. package/dist/security/security-service.d.ts.map +1 -0
  194. package/dist/security/security-service.js +303 -0
  195. package/dist/security/security-service.js.map +1 -0
  196. package/dist/security-config.d.ts +45 -0
  197. package/dist/security-config.d.ts.map +1 -0
  198. package/dist/security-config.js +63 -0
  199. package/dist/security-config.js.map +1 -0
  200. package/dist/system/function-list.d.ts +61 -0
  201. package/dist/system/function-list.d.ts.map +1 -0
  202. package/dist/system/function-list.js +111 -0
  203. package/dist/system/function-list.js.map +1 -0
  204. package/dist/system/function-registry.d.ts +23 -0
  205. package/dist/system/function-registry.d.ts.map +1 -0
  206. package/dist/system/function-registry.js +136 -0
  207. package/dist/system/function-registry.js.map +1 -0
  208. package/dist/system/health-check.d.ts +33 -0
  209. package/dist/system/health-check.d.ts.map +1 -0
  210. package/dist/system/health-check.js +98 -0
  211. package/dist/system/health-check.js.map +1 -0
  212. package/dist/system/path-resolver.d.ts +55 -0
  213. package/dist/system/path-resolver.d.ts.map +1 -0
  214. package/dist/system/path-resolver.js +90 -0
  215. package/dist/system/path-resolver.js.map +1 -0
  216. package/dist/templates/plugin-template.d.ts +121 -0
  217. package/dist/templates/plugin-template.d.ts.map +1 -0
  218. package/dist/templates/plugin-template.js +450 -0
  219. package/dist/templates/plugin-template.js.map +1 -0
  220. package/dist/types/chunking-types.d.ts +88 -0
  221. package/dist/types/chunking-types.d.ts.map +1 -0
  222. package/dist/types/chunking-types.js +18 -0
  223. package/dist/types/chunking-types.js.map +1 -0
  224. package/dist/types/prompt-stages.d.ts +42 -0
  225. package/dist/types/prompt-stages.d.ts.map +1 -0
  226. package/dist/types/prompt-stages.js +6 -0
  227. package/dist/types/prompt-stages.js.map +1 -0
  228. package/dist/types.d.ts +46 -0
  229. package/dist/types.d.ts.map +1 -0
  230. package/dist/types.js +6 -0
  231. package/dist/types.js.map +1 -0
  232. package/dist/utils/css-parser.d.ts +26 -0
  233. package/dist/utils/css-parser.d.ts.map +1 -0
  234. package/dist/utils/css-parser.js +117 -0
  235. package/dist/utils/css-parser.js.map +1 -0
  236. package/dist/utils/path-resolver.d.ts +13 -0
  237. package/dist/utils/path-resolver.d.ts.map +1 -0
  238. package/dist/utils/path-resolver.js +78 -0
  239. package/dist/utils/path-resolver.js.map +1 -0
  240. package/dist/utils/plugin-utilities.d.ts +171 -0
  241. package/dist/utils/plugin-utilities.d.ts.map +1 -0
  242. package/dist/utils/plugin-utilities.js +221 -0
  243. package/dist/utils/plugin-utilities.js.map +1 -0
  244. package/dist/utils/streamHandler.d.ts +3 -0
  245. package/dist/utils/streamHandler.d.ts.map +1 -0
  246. package/dist/utils/streamHandler.js +137 -0
  247. package/dist/utils/streamHandler.js.map +1 -0
  248. package/dist/validation/output-validator.d.ts +136 -0
  249. package/dist/validation/output-validator.d.ts.map +1 -0
  250. package/dist/validation/output-validator.js +262 -0
  251. package/dist/validation/output-validator.js.map +1 -0
  252. package/dist/validation/response-factory.d.ts +44 -0
  253. package/dist/validation/response-factory.d.ts.map +1 -0
  254. package/dist/validation/response-factory.js +202 -0
  255. package/dist/validation/response-factory.js.map +1 -0
  256. package/dist/validation/schemas.d.ts +519 -0
  257. package/dist/validation/schemas.d.ts.map +1 -0
  258. package/dist/validation/schemas.js +6 -0
  259. package/dist/validation/schemas.js.map +1 -0
  260. package/package.json +72 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/prompts/shared/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * TypeScript type definitions for the modern v4.2 plugin system
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/prompts/shared/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,106 @@
1
+ import { BasePlugin } from '../../plugins/base-plugin.js';
2
+ import { IPromptPlugin } from '../shared/types.js';
3
+ import { PromptStages } from '../../types/prompt-stages.js';
4
+ export declare class FindUnusedFilesAnalyzer extends BasePlugin implements IPromptPlugin {
5
+ name: string;
6
+ category: "system";
7
+ description: string;
8
+ parameters: {
9
+ code: {
10
+ type: "string";
11
+ description: string;
12
+ required: boolean;
13
+ };
14
+ filePath: {
15
+ type: "string";
16
+ description: string;
17
+ required: boolean;
18
+ };
19
+ projectPath: {
20
+ type: "string";
21
+ description: string;
22
+ required: boolean;
23
+ };
24
+ files: {
25
+ type: "array";
26
+ description: string;
27
+ required: boolean;
28
+ items: {
29
+ type: "string";
30
+ };
31
+ };
32
+ maxDepth: {
33
+ type: "number";
34
+ description: string;
35
+ required: boolean;
36
+ default: number;
37
+ };
38
+ language: {
39
+ type: "string";
40
+ description: string;
41
+ required: boolean;
42
+ default: string;
43
+ };
44
+ analysisDepth: {
45
+ type: "string";
46
+ description: string;
47
+ enum: string[];
48
+ default: string;
49
+ required: boolean;
50
+ };
51
+ analysisType: {
52
+ type: "string";
53
+ description: string;
54
+ enum: string[];
55
+ default: string;
56
+ required: boolean;
57
+ };
58
+ entryPoints: {
59
+ type: "array";
60
+ description: string;
61
+ required: boolean;
62
+ default: string[];
63
+ items: {
64
+ type: "string";
65
+ };
66
+ };
67
+ excludePatterns: {
68
+ type: "array";
69
+ description: string;
70
+ required: boolean;
71
+ default: string[];
72
+ items: {
73
+ type: "string";
74
+ };
75
+ };
76
+ analyzeComments: {
77
+ type: "boolean";
78
+ description: string;
79
+ required: boolean;
80
+ default: boolean;
81
+ };
82
+ includeDevArtifacts: {
83
+ type: "boolean";
84
+ description: string;
85
+ required: boolean;
86
+ default: boolean;
87
+ };
88
+ };
89
+ private analysisCache;
90
+ private multiFileAnalysis;
91
+ constructor();
92
+ execute(params: any, llmClient: any): Promise<any>;
93
+ private detectAnalysisMode;
94
+ private validateParameters;
95
+ private executeSingleFileAnalysis;
96
+ private executeMultiFileAnalysis;
97
+ private getSingleFilePromptStages;
98
+ private getMultiFilePromptStages;
99
+ getPromptStages(params: any): PromptStages;
100
+ private discoverRelevantFiles;
101
+ private performMultiFileAnalysis;
102
+ private analyzeIndividualFile;
103
+ private getFileExtensions;
104
+ }
105
+ export default FindUnusedFilesAnalyzer;
106
+ //# sourceMappingURL=find-unused-files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-unused-files.d.ts","sourceRoot":"","sources":["../../../src/prompts/system/find-unused-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAgB5D,qBAAa,uBAAwB,SAAQ,UAAW,YAAW,aAAa;IAC9E,IAAI,SAAuB;IAC3B,QAAQ,EAAG,QAAQ,CAAU;IAC7B,WAAW,SAA6G;IAGxH,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA+ER;IAEF,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,iBAAiB,CAA2B;;IAM9C,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG;IAmBzC,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,kBAAkB;YAYZ,yBAAyB;YAuCzB,wBAAwB;IAsCtC,OAAO,CAAC,yBAAyB;IA2DjC,OAAO,CAAC,wBAAwB;IA8DhC,eAAe,CAAC,MAAM,EAAE,GAAG,GAAG,YAAY;YAU5B,qBAAqB;YASrB,wBAAwB;YA0CxB,qBAAqB;IAmBnC,OAAO,CAAC,iBAAiB;CAS1B;AAED,eAAe,uBAAuB,CAAC"}
@@ -0,0 +1,353 @@
1
+ import { BasePlugin } from '../../plugins/base-plugin.js';
2
+ import { ThreeStagePromptManager } from '../../core/ThreeStagePromptManager.js';
3
+ import { withSecurity } from '../../security/integration-helpers.js';
4
+ import { readFileContent } from '../shared/helpers.js';
5
+ import { ModelSetup, ResponseProcessor, ParameterValidator, ErrorHandler, MultiFileAnalysis } from '../../utils/plugin-utilities.js';
6
+ import { getAnalysisCache } from '../../cache/index.js';
7
+ // Common Node.js modules - Use these instead of require()
8
+ import { basename, extname, relative } from 'path';
9
+ import { readFile, stat } from 'fs/promises';
10
+ export class FindUnusedFilesAnalyzer extends BasePlugin {
11
+ constructor() {
12
+ super();
13
+ this.name = 'find_unused_files';
14
+ this.category = 'system';
15
+ this.description = 'Identify genuinely unused TypeScript/JavaScript files in complex projects with dynamic loading patterns';
16
+ // Universal parameter set - supports both single and multi-file scenarios
17
+ this.parameters = {
18
+ // Single-file parameters
19
+ code: {
20
+ type: 'string',
21
+ description: 'The code to analyze (for single-file analysis)',
22
+ required: false
23
+ },
24
+ filePath: {
25
+ type: 'string',
26
+ description: 'Path to single file to analyze',
27
+ required: false
28
+ },
29
+ // Multi-file parameters
30
+ projectPath: {
31
+ type: 'string',
32
+ description: 'Absolute path to project root',
33
+ required: false
34
+ },
35
+ files: {
36
+ type: 'array',
37
+ description: 'Array of specific file paths (for multi-file analysis)',
38
+ required: false,
39
+ items: { type: 'string' }
40
+ },
41
+ maxDepth: {
42
+ type: 'number',
43
+ description: 'Maximum directory depth for discovery (1-5)',
44
+ required: false,
45
+ default: 4
46
+ },
47
+ // Analysis options
48
+ language: {
49
+ type: 'string',
50
+ description: 'Programming language',
51
+ required: false,
52
+ default: 'typescript'
53
+ },
54
+ analysisDepth: {
55
+ type: 'string',
56
+ description: 'Level of analysis detail',
57
+ enum: ['basic', 'detailed', 'comprehensive'],
58
+ default: 'comprehensive',
59
+ required: false
60
+ },
61
+ analysisType: {
62
+ type: 'string',
63
+ description: 'Type of analysis to perform',
64
+ enum: ['static', 'dynamic', 'comprehensive'],
65
+ default: 'comprehensive',
66
+ required: false
67
+ },
68
+ entryPoints: {
69
+ type: 'array',
70
+ description: 'Entry point files to start dependency traversal',
71
+ required: false,
72
+ default: ['index.ts', 'main.ts', 'app.ts'],
73
+ items: { type: 'string' }
74
+ },
75
+ excludePatterns: {
76
+ type: 'array',
77
+ description: 'File patterns to exclude from analysis',
78
+ required: false,
79
+ default: ['*.test.ts', '*.spec.ts', '*.d.ts'],
80
+ items: { type: 'string' }
81
+ },
82
+ analyzeComments: {
83
+ type: 'boolean',
84
+ description: 'Check for commented-out imports',
85
+ required: false,
86
+ default: true
87
+ },
88
+ includeDevArtifacts: {
89
+ type: 'boolean',
90
+ description: 'Whether to flag potential dev artifacts',
91
+ required: false,
92
+ default: false
93
+ }
94
+ };
95
+ this.analysisCache = getAnalysisCache();
96
+ this.multiFileAnalysis = new MultiFileAnalysis();
97
+ }
98
+ async execute(params, llmClient) {
99
+ return await withSecurity(this, params, llmClient, async (secureParams) => {
100
+ try {
101
+ const analysisMode = this.detectAnalysisMode(secureParams);
102
+ this.validateParameters(secureParams, analysisMode);
103
+ const { model, contextLength } = await ModelSetup.getReadyModel(llmClient);
104
+ if (analysisMode === 'single-file') {
105
+ return await this.executeSingleFileAnalysis(secureParams, model, contextLength);
106
+ }
107
+ else {
108
+ return await this.executeMultiFileAnalysis(secureParams, model, contextLength);
109
+ }
110
+ }
111
+ catch (error) {
112
+ return ErrorHandler.createExecutionError('find_unused_files', error);
113
+ }
114
+ });
115
+ }
116
+ detectAnalysisMode(params) {
117
+ if (params.code || params.filePath) {
118
+ return 'single-file';
119
+ }
120
+ if (params.projectPath || params.files) {
121
+ return 'multi-file';
122
+ }
123
+ return 'multi-file'; // Default for unused file analysis
124
+ }
125
+ validateParameters(params, mode) {
126
+ if (mode === 'single-file') {
127
+ ParameterValidator.validateCodeOrFile(params);
128
+ }
129
+ else {
130
+ ParameterValidator.validateProjectPath(params);
131
+ ParameterValidator.validateDepth(params);
132
+ }
133
+ ParameterValidator.validateEnum(params, 'analysisType', ['static', 'dynamic', 'comprehensive']);
134
+ ParameterValidator.validateEnum(params, 'analysisDepth', ['basic', 'detailed', 'comprehensive']);
135
+ }
136
+ async executeSingleFileAnalysis(params, model, contextLength) {
137
+ let codeToAnalyze = params.code;
138
+ if (params.filePath) {
139
+ codeToAnalyze = await readFileContent(params.filePath);
140
+ }
141
+ const promptStages = this.getSingleFilePromptStages({
142
+ ...params,
143
+ code: codeToAnalyze
144
+ });
145
+ const promptManager = new ThreeStagePromptManager(contextLength);
146
+ const needsChunking = promptManager.needsChunking(promptStages);
147
+ if (needsChunking) {
148
+ const conversation = promptManager.createChunkedConversation(promptStages);
149
+ const messages = [
150
+ conversation.systemMessage,
151
+ ...conversation.dataMessages,
152
+ conversation.analysisMessage
153
+ ];
154
+ return await ResponseProcessor.executeChunked(messages, model, contextLength, 'find_unused_files', 'single');
155
+ }
156
+ else {
157
+ return await ResponseProcessor.executeDirect(promptStages, model, contextLength, 'find_unused_files');
158
+ }
159
+ }
160
+ async executeMultiFileAnalysis(params, model, contextLength) {
161
+ let filesToAnalyze = params.files ||
162
+ await this.discoverRelevantFiles(params.projectPath, params.maxDepth, params.analysisType);
163
+ const analysisResult = await this.performMultiFileAnalysis(filesToAnalyze, params, model, contextLength);
164
+ const promptStages = this.getMultiFilePromptStages({
165
+ ...params,
166
+ analysisResult,
167
+ fileCount: filesToAnalyze.length
168
+ });
169
+ const promptManager = new ThreeStagePromptManager(contextLength);
170
+ const conversation = promptManager.createChunkedConversation(promptStages);
171
+ const messages = [
172
+ conversation.systemMessage,
173
+ ...conversation.dataMessages,
174
+ conversation.analysisMessage
175
+ ];
176
+ return await ResponseProcessor.executeChunked(messages, model, contextLength, 'find_unused_files', 'multifile');
177
+ }
178
+ getSingleFilePromptStages(params) {
179
+ const { code, language, analysisDepth, analysisType, filePath } = params;
180
+ const systemAndContext = `You are a senior software architect and code dependency expert specializing in ${analysisDepth} ${analysisType} analysis.
181
+
182
+ Your mission: Determine if this specific file is actively used or genuinely unused in a codebase.
183
+
184
+ Analysis Context:
185
+ - Language: ${language}
186
+ - Analysis Depth: ${analysisDepth}
187
+ - Analysis Type: ${analysisType}
188
+ - Mode: Single File Dependency Analysis
189
+ - File Path: ${filePath || 'provided code'}
190
+
191
+ Your expertise includes 15+ years experience with dependency analysis and dead code elimination, deep understanding of static imports, dynamic imports, and runtime loading patterns, expert knowledge of modern build tools, bundlers, and module resolution, and specialization in identifying truly unused code vs. conditionally loaded code.
192
+
193
+ Key analysis areas:
194
+ 1. Static Import Detection - Traditional import/export statements
195
+ 2. Dynamic Loading Patterns - Runtime imports, conditional loading
196
+ 3. String References - File path references, dynamic requires
197
+ 4. Export Analysis - What this file exports and how it might be used
198
+ 5. Framework Patterns - Framework-specific loading (plugins, routes, etc.)
199
+
200
+ Your task is to provide expert analysis on whether this file appears to be genuinely unused or has dependencies.`;
201
+ const dataPayload = `File to analyze:
202
+
203
+ \`\`\`${language}
204
+ ${code}
205
+ \`\`\``;
206
+ const outputInstructions = `Provide expert dependency analysis with the following structure:
207
+
208
+ **File Usage Assessment Summary**
209
+ Provide a professional assessment of this file's usage status, including what it exports, what it imports, and any framework-specific patterns detected.
210
+
211
+ **Analysis Details**
212
+ - List all exports found (functions, classes, constants, types)
213
+ - Identify all imports and dependencies
214
+ - Note any framework-specific patterns (React hooks, Vue composables, etc.)
215
+ - Document evidence of dynamic loading or runtime usage
216
+
217
+ **Usage Evidence**
218
+ - Static import evidence (if imports/exports suggest active use)
219
+ - Dynamic loading clues (runtime imports, string references)
220
+ - Framework integration patterns (plugin systems, route handlers)
221
+ - Configuration or build tool references
222
+
223
+ **Assessment Conclusion**
224
+ - Usage status classification (actively_used, likely_unused, requires_investigation)
225
+ - Confidence level in the assessment (0.0 to 1.0)
226
+ - Specific reasons supporting the conclusion
227
+ - Recommended action (keep, investigate_further, safe_to_remove)
228
+
229
+ Focus on distinguishing between genuinely unused files and files that may be loaded dynamically or conditionally.`;
230
+ return { systemAndContext, dataPayload, outputInstructions };
231
+ }
232
+ getMultiFilePromptStages(params) {
233
+ const { analysisResult, analysisType, analysisDepth, fileCount } = params;
234
+ const systemAndContext = `You are a world-class senior software architect specializing in ${analysisDepth} unused file analysis across ${fileCount} files.
235
+
236
+ Your expertise: Large-scale codebase cleanup, dependency graph analysis, dead code elimination strategies, and complex project refactoring with zero-risk unused file identification.
237
+
238
+ Analysis Context:
239
+ - Analysis Type: ${analysisType}
240
+ - Analysis Depth: ${analysisDepth}
241
+ - Files Analyzed: ${fileCount}
242
+ - Mode: Multi-File Unused File Analysis
243
+
244
+ Your mission: Identify genuinely unused files while avoiding false positives from dynamic loading, conditional imports, and framework-specific patterns.`;
245
+ const dataPayload = `Multi-file unused file analysis results:
246
+
247
+ ${JSON.stringify(analysisResult, null, 2)}`;
248
+ const outputInstructions = `Provide world-class unused file analysis with the following structure:
249
+
250
+ **Executive Summary**
251
+ Provide key metrics: total files analyzed, count of genuinely unused files, potentially unused files, estimated technical debt reduction percentage, overall risk level (low/medium/high), and recommended action (immediate_cleanup/careful_review/major_refactoring_needed).
252
+
253
+ **Definitely Unused Files**
254
+ For each definitively unused file, provide:
255
+ - File path and confidence level (0.0-1.0)
256
+ - Comprehensive reasoning for why it's definitively unused
257
+ - Category: legacy, dead_code, orphaned, or experimental
258
+ - Safety assessment: whether it's safe to delete and deletion risk level
259
+ - Last modified date if available
260
+ - Potential impact of deletion
261
+
262
+ **Likely Unused Files**
263
+ For suspicious files that need verification:
264
+ - File path and confidence level
265
+ - Reasoning for why it appears unused but needs verification
266
+ - Category: conditional, plugin, or utility
267
+ - Safety assessment and deletion risk
268
+ - Specific verification steps needed
269
+ - Potential impact if deleted incorrectly
270
+
271
+ **Files Requiring Investigation**
272
+ For files with complex patterns needing human review:
273
+ - File path and confidence level
274
+ - Explanation of complex patterns detected
275
+ - Category: dynamic, framework, or complex
276
+ - Specific concerns making analysis uncertain
277
+ - Concrete investigation steps for manual verification
278
+
279
+ **Technical Debt Assessment**
280
+ - Estimated cleanup impact on codebase size and maintainability
281
+ - Risk assessment for batch deletion vs. individual file review
282
+ - Recommended cleanup strategy and implementation phases
283
+ - Long-term benefits of unused file elimination
284
+
285
+ **Implementation Guidance**
286
+ Provide a prioritized cleanup plan with specific steps, safety measures, and verification procedures to ensure accurate unused file removal without breaking functionality.`;
287
+ return { systemAndContext, dataPayload, outputInstructions };
288
+ }
289
+ getPromptStages(params) {
290
+ const mode = this.detectAnalysisMode(params);
291
+ if (mode === 'single-file') {
292
+ return this.getSingleFilePromptStages(params);
293
+ }
294
+ else {
295
+ return this.getMultiFilePromptStages(params);
296
+ }
297
+ }
298
+ async discoverRelevantFiles(projectPath, maxDepth, analysisType) {
299
+ const extensions = this.getFileExtensions(analysisType);
300
+ return await this.multiFileAnalysis.discoverFiles(projectPath, extensions, maxDepth);
301
+ }
302
+ async performMultiFileAnalysis(files, params, model, contextLength) {
303
+ const cacheKey = this.analysisCache.generateKey('find_unused_files', params, files);
304
+ const cached = await this.analysisCache.get(cacheKey);
305
+ if (cached)
306
+ return cached;
307
+ const fileAnalysisResults = await this.multiFileAnalysis.analyzeBatch(files, (file) => this.analyzeIndividualFile(file, params, model), contextLength);
308
+ const aggregatedResult = {
309
+ summary: `Unused files analysis of ${files.length} files`,
310
+ findings: fileAnalysisResults,
311
+ data: {
312
+ fileCount: files.length,
313
+ totalSize: fileAnalysisResults.reduce((sum, result) => sum + (result.size || 0), 0),
314
+ entryPoints: params.entryPoints || ['index.ts', 'main.ts', 'app.ts'],
315
+ excludePatterns: params.excludePatterns || ['*.test.ts', '*.spec.ts', '*.d.ts'],
316
+ analysisTimestamp: new Date().toISOString()
317
+ }
318
+ };
319
+ await this.analysisCache.cacheAnalysis(cacheKey, aggregatedResult, {
320
+ modelUsed: model.identifier || 'unknown',
321
+ executionTime: Date.now(),
322
+ timestamp: new Date().toISOString()
323
+ });
324
+ return aggregatedResult;
325
+ }
326
+ async analyzeIndividualFile(file, params, model) {
327
+ const content = await readFile(file, 'utf-8');
328
+ const stats = await stat(file);
329
+ return {
330
+ filePath: file,
331
+ fileName: basename(file),
332
+ size: content.length,
333
+ lines: content.split('\n').length,
334
+ extension: extname(file),
335
+ relativePath: relative(params.projectPath || '', file),
336
+ lastModified: stats.mtime.toISOString(),
337
+ hasExports: /(?:^|\n)\s*export\s+/gm.test(content),
338
+ hasImports: /(?:^|\n)\s*import\s+.*?from\s+/gm.test(content),
339
+ isTestFile: /\.(test|spec)\.(ts|js)$/i.test(file),
340
+ isDeclarationFile: file.endsWith('.d.ts')
341
+ };
342
+ }
343
+ getFileExtensions(analysisType) {
344
+ const extensionMap = {
345
+ 'static': ['.js', '.ts', '.jsx', '.tsx', '.mjs', '.cjs'],
346
+ 'dynamic': ['.js', '.ts', '.jsx', '.tsx', '.mjs', '.cjs', '.json', '.vue', '.svelte'],
347
+ 'comprehensive': ['.js', '.ts', '.jsx', '.tsx', '.mjs', '.cjs', '.json', '.vue', '.svelte', '.php', '.py']
348
+ };
349
+ return extensionMap[analysisType] || extensionMap.comprehensive;
350
+ }
351
+ }
352
+ export default FindUnusedFilesAnalyzer;
353
+ //# sourceMappingURL=find-unused-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-unused-files.js","sourceRoot":"","sources":["../../../src/prompts/system/find-unused-files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Security Module - Unified Entry Point
3
+ *
4
+ * Provides comprehensive I/O sanitisation for the Houtini LM MCP
5
+ */
6
+ export { SanitisationHelper, type SanitisationResult, type FileSanitisationResult } from './sanitisation.js';
7
+ export { PromptInjectionGuard, type InjectionDetectionResult, type InjectionContext } from './prompt-injection-guard.js';
8
+ export { OutputEncoder, type OutputContext, type EncodingOptions, type EncodingResult } from './output-encoder.js';
9
+ export { SecurityService, securityService, type SecurityConfig, type SecurityResult, type PluginInterface } from './security-service.js';
10
+ export { withSecurity, secureParam, validatePath, encodeForContext, SecurePlugin, wrapPluginExecution, secureMultipleParams, SecurityConfig as SecurityConfigHelper } from './integration-helpers.js';
11
+ import { SanitisationHelper } from './sanitisation.js';
12
+ import { PromptInjectionGuard } from './prompt-injection-guard.js';
13
+ import { OutputEncoder } from './output-encoder.js';
14
+ export declare const sanitiseInput: typeof SanitisationHelper.sanitiseInput;
15
+ export declare const sanitiseFilePath: typeof SanitisationHelper.sanitiseFilePath;
16
+ export declare const sanitiseFileContent: typeof SanitisationHelper.sanitiseFileContent;
17
+ export declare const sanitiseOutput: typeof SanitisationHelper.sanitiseOutput;
18
+ export declare const detectInjection: typeof PromptInjectionGuard.analyseInjection;
19
+ export declare const encodeOutput: typeof OutputEncoder.encode;
20
+ export declare function securityCheck(input: string, context: {
21
+ source: 'user-input' | 'file-content' | 'llm-response' | 'parameter';
22
+ }): {
23
+ safe: boolean;
24
+ sanitised: string;
25
+ warnings: string[];
26
+ riskLevel: 'low' | 'medium' | 'high' | 'critical';
27
+ };
28
+ export declare function runSecurityTests(): {
29
+ sanitisation: boolean;
30
+ injection: {
31
+ passed: number;
32
+ failed: number;
33
+ };
34
+ encoding: {
35
+ passed: boolean;
36
+ errors: string[];
37
+ };
38
+ };
39
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC5B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,oBAAoB,EACpB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACtB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,aAAa,EACb,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,IAAI,oBAAoB,EACvC,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,eAAO,MAAM,aAAa,yCAAmC,CAAC;AAC9D,eAAO,MAAM,gBAAgB,4CAAsC,CAAC;AACpE,eAAO,MAAM,mBAAmB,+CAAyC,CAAC;AAC1E,eAAO,MAAM,cAAc,0CAAoC,CAAC;AAChE,eAAO,MAAM,eAAe,8CAAwC,CAAC;AACrE,eAAO,MAAM,YAAY,6BAAuB,CAAC;AAGjD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;IAAE,MAAM,EAAE,YAAY,GAAG,cAAc,GAAG,cAAc,GAAG,WAAW,CAAA;CAAE,GAChF;IACD,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;CACnD,CAiBA;AAGD,wBAAgB,gBAAgB,IAAI;IAClC,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,QAAQ,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACjD,CAMA"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Security Module - Unified Entry Point
3
+ *
4
+ * Provides comprehensive I/O sanitisation for the Houtini LM MCP
5
+ */
6
+ export { SanitisationHelper } from './sanitisation.js';
7
+ export { PromptInjectionGuard } from './prompt-injection-guard.js';
8
+ export { OutputEncoder } from './output-encoder.js';
9
+ export { SecurityService, securityService } from './security-service.js';
10
+ export { withSecurity, secureParam, validatePath, encodeForContext, SecurePlugin, wrapPluginExecution, secureMultipleParams, SecurityConfig as SecurityConfigHelper } from './integration-helpers.js';
11
+ // Import classes for convenience functions
12
+ import { SanitisationHelper } from './sanitisation.js';
13
+ import { PromptInjectionGuard } from './prompt-injection-guard.js';
14
+ import { OutputEncoder } from './output-encoder.js';
15
+ // Convenience functions for common use cases
16
+ export const sanitiseInput = SanitisationHelper.sanitiseInput;
17
+ export const sanitiseFilePath = SanitisationHelper.sanitiseFilePath;
18
+ export const sanitiseFileContent = SanitisationHelper.sanitiseFileContent;
19
+ export const sanitiseOutput = SanitisationHelper.sanitiseOutput;
20
+ export const detectInjection = PromptInjectionGuard.analyseInjection;
21
+ export const encodeOutput = OutputEncoder.encode;
22
+ // Combined security check function
23
+ export function securityCheck(input, context) {
24
+ // Step 1: Detect injection
25
+ const injectionResult = PromptInjectionGuard.analyseInjection(input, context);
26
+ // Step 2: Sanitise input
27
+ const sanitisationResult = SanitisationHelper.sanitiseInput(input, 'general');
28
+ // Step 3: Determine overall safety
29
+ const safe = !injectionResult.detected && !sanitisationResult.blocked;
30
+ const riskLevel = injectionResult.detected ? injectionResult.riskLevel : 'low';
31
+ return {
32
+ safe,
33
+ sanitised: sanitisationResult.cleaned,
34
+ warnings: [...sanitisationResult.warnings, ...(injectionResult.detected ? [injectionResult.mitigation] : [])],
35
+ riskLevel
36
+ };
37
+ }
38
+ // Security test runner
39
+ export function runSecurityTests() {
40
+ return {
41
+ sanitisation: SanitisationHelper.validateSanitisation(),
42
+ injection: PromptInjectionGuard.runSecurityTests(),
43
+ encoding: OutputEncoder.validateEncoding()
44
+ };
45
+ }
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,kBAAkB,EAGnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,oBAAoB,EAGrB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,aAAa,EAId,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,eAAe,EAIhB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,IAAI,oBAAoB,EACvC,MAAM,0BAA0B,CAAC;AAElC,2CAA2C;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,6CAA6C;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAG,kBAAkB,CAAC,aAAa,CAAC;AAC9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,gBAAgB,CAAC;AACpE,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,mBAAmB,CAAC;AAC1E,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAAC,cAAc,CAAC;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG,oBAAoB,CAAC,gBAAgB,CAAC;AACrE,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC;AAEjD,mCAAmC;AACnC,MAAM,UAAU,aAAa,CAC3B,KAAa,EACb,OAAiF;IAOjF,2BAA2B;IAC3B,MAAM,eAAe,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAE9E,yBAAyB;IACzB,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAE9E,mCAAmC;IACnC,MAAM,IAAI,GAAG,CAAC,eAAe,CAAC,QAAQ,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;IACtE,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IAE/E,OAAO;QACL,IAAI;QACJ,SAAS,EAAE,kBAAkB,CAAC,OAAO;QACrC,QAAQ,EAAE,CAAC,GAAG,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7G,SAAS;KACV,CAAC;AACJ,CAAC;AAED,uBAAuB;AACvB,MAAM,UAAU,gBAAgB;IAK9B,OAAO;QACL,YAAY,EAAE,kBAAkB,CAAC,oBAAoB,EAAE;QACvD,SAAS,EAAE,oBAAoB,CAAC,gBAAgB,EAAE;QAClD,QAAQ,EAAE,aAAa,CAAC,gBAAgB,EAAE;KAC3C,CAAC;AACJ,CAAC"}