@houtini/lm 1.0.13 → 2.0.1

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 (264) hide show
  1. package/README.md +67 -237
  2. package/dist/index.d.ts +5 -3
  3. package/dist/index.js +149 -213
  4. package/dist/index.js.map +1 -1
  5. package/package.json +23 -32
  6. package/server.json +44 -0
  7. package/CHANGELOG.md +0 -282
  8. package/dist/cache/analysis-cache.d.ts +0 -33
  9. package/dist/cache/analysis-cache.d.ts.map +0 -1
  10. package/dist/cache/analysis-cache.js +0 -56
  11. package/dist/cache/analysis-cache.js.map +0 -1
  12. package/dist/cache/cache-manager.d.ts +0 -29
  13. package/dist/cache/cache-manager.d.ts.map +0 -1
  14. package/dist/cache/cache-manager.js +0 -85
  15. package/dist/cache/cache-manager.js.map +0 -1
  16. package/dist/cache/index.d.ts +0 -16
  17. package/dist/cache/index.d.ts.map +0 -1
  18. package/dist/cache/index.js +0 -17
  19. package/dist/cache/index.js.map +0 -1
  20. package/dist/cache/prompt-cache.d.ts +0 -33
  21. package/dist/cache/prompt-cache.d.ts.map +0 -1
  22. package/dist/cache/prompt-cache.js +0 -61
  23. package/dist/cache/prompt-cache.js.map +0 -1
  24. package/dist/config.d.ts +0 -41
  25. package/dist/config.d.ts.map +0 -1
  26. package/dist/config.js +0 -71
  27. package/dist/config.js.map +0 -1
  28. package/dist/core/ThreeStagePromptManager.d.ts +0 -23
  29. package/dist/core/ThreeStagePromptManager.d.ts.map +0 -1
  30. package/dist/core/ThreeStagePromptManager.js +0 -118
  31. package/dist/core/ThreeStagePromptManager.js.map +0 -1
  32. package/dist/index.d.ts.map +0 -1
  33. package/dist/plugins/base-plugin.d.ts +0 -55
  34. package/dist/plugins/base-plugin.d.ts.map +0 -1
  35. package/dist/plugins/base-plugin.js +0 -120
  36. package/dist/plugins/base-plugin.js.map +0 -1
  37. package/dist/plugins/index.d.ts +0 -58
  38. package/dist/plugins/index.d.ts.map +0 -1
  39. package/dist/plugins/index.js +0 -162
  40. package/dist/plugins/index.js.map +0 -1
  41. package/dist/plugins/types.d.ts +0 -5
  42. package/dist/plugins/types.d.ts.map +0 -1
  43. package/dist/plugins/types.js +0 -5
  44. package/dist/plugins/types.js.map +0 -1
  45. package/dist/prompts/analyze/code-quality.d.ts +0 -116
  46. package/dist/prompts/analyze/code-quality.d.ts.map +0 -1
  47. package/dist/prompts/analyze/code-quality.js +0 -437
  48. package/dist/prompts/analyze/code-quality.js.map +0 -1
  49. package/dist/prompts/analyze/compare-integration.d.ts +0 -130
  50. package/dist/prompts/analyze/compare-integration.d.ts.map +0 -1
  51. package/dist/prompts/analyze/compare-integration.js +0 -547
  52. package/dist/prompts/analyze/compare-integration.js.map +0 -1
  53. package/dist/prompts/analyze/count-files.d.ts +0 -109
  54. package/dist/prompts/analyze/count-files.d.ts.map +0 -1
  55. package/dist/prompts/analyze/count-files.js +0 -403
  56. package/dist/prompts/analyze/count-files.js.map +0 -1
  57. package/dist/prompts/analyze/database-queries.d.ts +0 -156
  58. package/dist/prompts/analyze/database-queries.d.ts.map +0 -1
  59. package/dist/prompts/analyze/database-queries.js +0 -763
  60. package/dist/prompts/analyze/database-queries.js.map +0 -1
  61. package/dist/prompts/analyze/dependencies.d.ts +0 -97
  62. package/dist/prompts/analyze/dependencies.d.ts.map +0 -1
  63. package/dist/prompts/analyze/dependencies.js +0 -337
  64. package/dist/prompts/analyze/dependencies.js.map +0 -1
  65. package/dist/prompts/analyze/diff-signatures.d.ts +0 -139
  66. package/dist/prompts/analyze/diff-signatures.d.ts.map +0 -1
  67. package/dist/prompts/analyze/diff-signatures.js +0 -708
  68. package/dist/prompts/analyze/diff-signatures.js.map +0 -1
  69. package/dist/prompts/analyze/find-patterns.d.ts +0 -128
  70. package/dist/prompts/analyze/find-patterns.d.ts.map +0 -1
  71. package/dist/prompts/analyze/find-patterns.js +0 -524
  72. package/dist/prompts/analyze/find-patterns.js.map +0 -1
  73. package/dist/prompts/analyze/find-unused-css.d.ts +0 -151
  74. package/dist/prompts/analyze/find-unused-css.d.ts.map +0 -1
  75. package/dist/prompts/analyze/find-unused-css.js +0 -760
  76. package/dist/prompts/analyze/find-unused-css.js.map +0 -1
  77. package/dist/prompts/analyze/n8n-workflow.d.ts +0 -137
  78. package/dist/prompts/analyze/n8n-workflow.d.ts.map +0 -1
  79. package/dist/prompts/analyze/n8n-workflow.js +0 -533
  80. package/dist/prompts/analyze/n8n-workflow.js.map +0 -1
  81. package/dist/prompts/analyze/project-structure.d.ts +0 -126
  82. package/dist/prompts/analyze/project-structure.d.ts.map +0 -1
  83. package/dist/prompts/analyze/project-structure.js +0 -573
  84. package/dist/prompts/analyze/project-structure.js.map +0 -1
  85. package/dist/prompts/analyze/security-audit.d.ts +0 -142
  86. package/dist/prompts/analyze/security-audit.d.ts.map +0 -1
  87. package/dist/prompts/analyze/security-audit.js +0 -641
  88. package/dist/prompts/analyze/security-audit.js.map +0 -1
  89. package/dist/prompts/analyze/single-file.d.ts +0 -162
  90. package/dist/prompts/analyze/single-file.d.ts.map +0 -1
  91. package/dist/prompts/analyze/single-file.js +0 -669
  92. package/dist/prompts/analyze/single-file.js.map +0 -1
  93. package/dist/prompts/analyze/trace-execution.d.ts +0 -126
  94. package/dist/prompts/analyze/trace-execution.d.ts.map +0 -1
  95. package/dist/prompts/analyze/trace-execution.js +0 -613
  96. package/dist/prompts/analyze/trace-execution.js.map +0 -1
  97. package/dist/prompts/analyze/wordpress-plugin-audit.d.ts +0 -116
  98. package/dist/prompts/analyze/wordpress-plugin-audit.d.ts.map +0 -1
  99. package/dist/prompts/analyze/wordpress-plugin-audit.js +0 -456
  100. package/dist/prompts/analyze/wordpress-plugin-audit.js.map +0 -1
  101. package/dist/prompts/analyze/wordpress-plugin-readiness.d.ts +0 -103
  102. package/dist/prompts/analyze/wordpress-plugin-readiness.d.ts.map +0 -1
  103. package/dist/prompts/analyze/wordpress-plugin-readiness.js +0 -506
  104. package/dist/prompts/analyze/wordpress-plugin-readiness.js.map +0 -1
  105. package/dist/prompts/analyze/wordpress-security.d.ts +0 -146
  106. package/dist/prompts/analyze/wordpress-security.d.ts.map +0 -1
  107. package/dist/prompts/analyze/wordpress-security.js +0 -702
  108. package/dist/prompts/analyze/wordpress-security.js.map +0 -1
  109. package/dist/prompts/analyze/wordpress-theme-audit.d.ts +0 -114
  110. package/dist/prompts/analyze/wordpress-theme-audit.d.ts.map +0 -1
  111. package/dist/prompts/analyze/wordpress-theme-audit.js +0 -540
  112. package/dist/prompts/analyze/wordpress-theme-audit.js.map +0 -1
  113. package/dist/prompts/custom/custom-prompt.d.ts +0 -135
  114. package/dist/prompts/custom/custom-prompt.d.ts.map +0 -1
  115. package/dist/prompts/custom/custom-prompt.js +0 -421
  116. package/dist/prompts/custom/custom-prompt.js.map +0 -1
  117. package/dist/prompts/fun/arcade-game.d.ts +0 -152
  118. package/dist/prompts/fun/arcade-game.d.ts.map +0 -1
  119. package/dist/prompts/fun/arcade-game.js +0 -657
  120. package/dist/prompts/fun/arcade-game.js.map +0 -1
  121. package/dist/prompts/fun/create_text_adventure.d.ts +0 -100
  122. package/dist/prompts/fun/create_text_adventure.d.ts.map +0 -1
  123. package/dist/prompts/fun/create_text_adventure.js +0 -401
  124. package/dist/prompts/fun/create_text_adventure.js.map +0 -1
  125. package/dist/prompts/fun/css-art-generator.d.ts +0 -168
  126. package/dist/prompts/fun/css-art-generator.d.ts.map +0 -1
  127. package/dist/prompts/fun/css-art-generator.js +0 -831
  128. package/dist/prompts/fun/css-art-generator.js.map +0 -1
  129. package/dist/prompts/generate/project-documentation.d.ts +0 -137
  130. package/dist/prompts/generate/project-documentation.d.ts.map +0 -1
  131. package/dist/prompts/generate/project-documentation.js +0 -670
  132. package/dist/prompts/generate/project-documentation.js.map +0 -1
  133. package/dist/prompts/generate/refactoring.d.ts +0 -164
  134. package/dist/prompts/generate/refactoring.d.ts.map +0 -1
  135. package/dist/prompts/generate/refactoring.js +0 -625
  136. package/dist/prompts/generate/refactoring.js.map +0 -1
  137. package/dist/prompts/generate/responsive-component.d.ts +0 -147
  138. package/dist/prompts/generate/responsive-component.d.ts.map +0 -1
  139. package/dist/prompts/generate/responsive-component.js +0 -957
  140. package/dist/prompts/generate/responsive-component.js.map +0 -1
  141. package/dist/prompts/generate/typescript-conversion.d.ts +0 -144
  142. package/dist/prompts/generate/typescript-conversion.d.ts.map +0 -1
  143. package/dist/prompts/generate/typescript-conversion.js +0 -531
  144. package/dist/prompts/generate/typescript-conversion.js.map +0 -1
  145. package/dist/prompts/generate/unit-tests.d.ts +0 -139
  146. package/dist/prompts/generate/unit-tests.d.ts.map +0 -1
  147. package/dist/prompts/generate/unit-tests.js +0 -582
  148. package/dist/prompts/generate/unit-tests.js.map +0 -1
  149. package/dist/prompts/generate/wordpress-plugin.d.ts +0 -179
  150. package/dist/prompts/generate/wordpress-plugin.d.ts.map +0 -1
  151. package/dist/prompts/generate/wordpress-plugin.js +0 -767
  152. package/dist/prompts/generate/wordpress-plugin.js.map +0 -1
  153. package/dist/prompts/generate/wordpress-theme-from-static.d.ts +0 -177
  154. package/dist/prompts/generate/wordpress-theme-from-static.d.ts.map +0 -1
  155. package/dist/prompts/generate/wordpress-theme-from-static.js +0 -699
  156. package/dist/prompts/generate/wordpress-theme-from-static.js.map +0 -1
  157. package/dist/prompts/shared/cache-manager.d.ts +0 -45
  158. package/dist/prompts/shared/cache-manager.d.ts.map +0 -1
  159. package/dist/prompts/shared/cache-manager.js +0 -129
  160. package/dist/prompts/shared/cache-manager.js.map +0 -1
  161. package/dist/prompts/shared/helpers.d.ts +0 -39
  162. package/dist/prompts/shared/helpers.d.ts.map +0 -1
  163. package/dist/prompts/shared/helpers.js +0 -151
  164. package/dist/prompts/shared/helpers.js.map +0 -1
  165. package/dist/prompts/shared/templates.d.ts +0 -35
  166. package/dist/prompts/shared/templates.d.ts.map +0 -1
  167. package/dist/prompts/shared/templates.js +0 -77
  168. package/dist/prompts/shared/templates.js.map +0 -1
  169. package/dist/prompts/shared/types.d.ts +0 -112
  170. package/dist/prompts/shared/types.d.ts.map +0 -1
  171. package/dist/prompts/shared/types.js +0 -5
  172. package/dist/prompts/shared/types.js.map +0 -1
  173. package/dist/prompts/system/find-unused-files.d.ts +0 -106
  174. package/dist/prompts/system/find-unused-files.d.ts.map +0 -1
  175. package/dist/prompts/system/find-unused-files.js +0 -357
  176. package/dist/prompts/system/find-unused-files.js.map +0 -1
  177. package/dist/security/index.d.ts +0 -39
  178. package/dist/security/index.d.ts.map +0 -1
  179. package/dist/security/index.js +0 -46
  180. package/dist/security/index.js.map +0 -1
  181. package/dist/security/integration-helpers.d.ts +0 -121
  182. package/dist/security/integration-helpers.d.ts.map +0 -1
  183. package/dist/security/integration-helpers.js +0 -190
  184. package/dist/security/integration-helpers.js.map +0 -1
  185. package/dist/security/output-encoder.d.ts +0 -94
  186. package/dist/security/output-encoder.d.ts.map +0 -1
  187. package/dist/security/output-encoder.js +0 -295
  188. package/dist/security/output-encoder.js.map +0 -1
  189. package/dist/security/prompt-injection-guard.d.ts +0 -59
  190. package/dist/security/prompt-injection-guard.d.ts.map +0 -1
  191. package/dist/security/prompt-injection-guard.js +0 -249
  192. package/dist/security/prompt-injection-guard.js.map +0 -1
  193. package/dist/security/sanitisation.d.ts +0 -67
  194. package/dist/security/sanitisation.d.ts.map +0 -1
  195. package/dist/security/sanitisation.js +0 -398
  196. package/dist/security/sanitisation.js.map +0 -1
  197. package/dist/security/security-service.d.ts +0 -103
  198. package/dist/security/security-service.d.ts.map +0 -1
  199. package/dist/security/security-service.js +0 -303
  200. package/dist/security/security-service.js.map +0 -1
  201. package/dist/security-config.d.ts +0 -45
  202. package/dist/security-config.d.ts.map +0 -1
  203. package/dist/security-config.js +0 -63
  204. package/dist/security-config.js.map +0 -1
  205. package/dist/system/function-list.d.ts +0 -61
  206. package/dist/system/function-list.d.ts.map +0 -1
  207. package/dist/system/function-list.js +0 -111
  208. package/dist/system/function-list.js.map +0 -1
  209. package/dist/system/function-registry.d.ts +0 -23
  210. package/dist/system/function-registry.d.ts.map +0 -1
  211. package/dist/system/function-registry.js +0 -136
  212. package/dist/system/function-registry.js.map +0 -1
  213. package/dist/system/health-check.d.ts +0 -33
  214. package/dist/system/health-check.d.ts.map +0 -1
  215. package/dist/system/health-check.js +0 -98
  216. package/dist/system/health-check.js.map +0 -1
  217. package/dist/system/path-resolver.d.ts +0 -55
  218. package/dist/system/path-resolver.d.ts.map +0 -1
  219. package/dist/system/path-resolver.js +0 -90
  220. package/dist/system/path-resolver.js.map +0 -1
  221. package/dist/templates/plugin-template.d.ts +0 -121
  222. package/dist/templates/plugin-template.d.ts.map +0 -1
  223. package/dist/templates/plugin-template.js +0 -454
  224. package/dist/templates/plugin-template.js.map +0 -1
  225. package/dist/types/chunking-types.d.ts +0 -88
  226. package/dist/types/chunking-types.d.ts.map +0 -1
  227. package/dist/types/chunking-types.js +0 -18
  228. package/dist/types/chunking-types.js.map +0 -1
  229. package/dist/types/prompt-stages.d.ts +0 -30
  230. package/dist/types/prompt-stages.d.ts.map +0 -1
  231. package/dist/types/prompt-stages.js +0 -6
  232. package/dist/types/prompt-stages.js.map +0 -1
  233. package/dist/types.d.ts +0 -45
  234. package/dist/types.d.ts.map +0 -1
  235. package/dist/types.js +0 -6
  236. package/dist/types.js.map +0 -1
  237. package/dist/utils/css-parser.d.ts +0 -26
  238. package/dist/utils/css-parser.d.ts.map +0 -1
  239. package/dist/utils/css-parser.js +0 -117
  240. package/dist/utils/css-parser.js.map +0 -1
  241. package/dist/utils/path-resolver.d.ts +0 -13
  242. package/dist/utils/path-resolver.d.ts.map +0 -1
  243. package/dist/utils/path-resolver.js +0 -78
  244. package/dist/utils/path-resolver.js.map +0 -1
  245. package/dist/utils/plugin-utilities.d.ts +0 -176
  246. package/dist/utils/plugin-utilities.d.ts.map +0 -1
  247. package/dist/utils/plugin-utilities.js +0 -269
  248. package/dist/utils/plugin-utilities.js.map +0 -1
  249. package/dist/utils/streamHandler.d.ts +0 -3
  250. package/dist/utils/streamHandler.d.ts.map +0 -1
  251. package/dist/utils/streamHandler.js +0 -137
  252. package/dist/utils/streamHandler.js.map +0 -1
  253. package/dist/validation/output-validator.d.ts +0 -136
  254. package/dist/validation/output-validator.d.ts.map +0 -1
  255. package/dist/validation/output-validator.js +0 -262
  256. package/dist/validation/output-validator.js.map +0 -1
  257. package/dist/validation/response-factory.d.ts +0 -44
  258. package/dist/validation/response-factory.d.ts.map +0 -1
  259. package/dist/validation/response-factory.js +0 -202
  260. package/dist/validation/response-factory.js.map +0 -1
  261. package/dist/validation/schemas.d.ts +0 -519
  262. package/dist/validation/schemas.d.ts.map +0 -1
  263. package/dist/validation/schemas.js +0 -6
  264. package/dist/validation/schemas.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/prompts/shared/types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * TypeScript type definitions for the modern v4.2 plugin system
3
- */
4
- export {};
5
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/prompts/shared/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,106 +0,0 @@
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
@@ -1 +0,0 @@
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;AAiB5D,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;YAyCzB,wBAAwB;IAwCtC,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"}
@@ -1,357 +0,0 @@
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, TokenCalculator } 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();
146
- const needsChunking = TokenCalculator.needsChunking(promptStages, contextLength);
147
- if (needsChunking) {
148
- const chunkSize = TokenCalculator.calculateOptimalChunkSize(promptStages, contextLength);
149
- const dataChunks = promptManager.chunkDataPayload(promptStages.dataPayload, chunkSize);
150
- const conversation = promptManager.createChunkedConversation(promptStages, dataChunks);
151
- const messages = [
152
- conversation.systemMessage,
153
- ...conversation.dataMessages,
154
- conversation.analysisMessage
155
- ];
156
- return await ResponseProcessor.executeChunked(messages, model, contextLength, 'find_unused_files', 'single');
157
- }
158
- else {
159
- return await ResponseProcessor.executeDirect(promptStages, model, contextLength, 'find_unused_files');
160
- }
161
- }
162
- async executeMultiFileAnalysis(params, model, contextLength) {
163
- let filesToAnalyze = params.files ||
164
- await this.discoverRelevantFiles(params.projectPath, params.maxDepth, params.analysisType);
165
- const analysisResult = await this.performMultiFileAnalysis(filesToAnalyze, params, model, contextLength);
166
- const promptStages = this.getMultiFilePromptStages({
167
- ...params,
168
- analysisResult,
169
- fileCount: filesToAnalyze.length
170
- });
171
- const promptManager = new ThreeStagePromptManager();
172
- const chunkSize = TokenCalculator.calculateOptimalChunkSize(promptStages, contextLength);
173
- const dataChunks = promptManager.chunkDataPayload(promptStages.dataPayload, chunkSize);
174
- const conversation = promptManager.createChunkedConversation(promptStages, dataChunks);
175
- const messages = [
176
- conversation.systemMessage,
177
- ...conversation.dataMessages,
178
- conversation.analysisMessage
179
- ];
180
- return await ResponseProcessor.executeChunked(messages, model, contextLength, 'find_unused_files', 'multifile');
181
- }
182
- getSingleFilePromptStages(params) {
183
- const { code, language, analysisDepth, analysisType, filePath } = params;
184
- const systemAndContext = `You are a senior software architect and code dependency expert specializing in ${analysisDepth} ${analysisType} analysis.
185
-
186
- Your mission: Determine if this specific file is actively used or genuinely unused in a codebase.
187
-
188
- Analysis Context:
189
- - Language: ${language}
190
- - Analysis Depth: ${analysisDepth}
191
- - Analysis Type: ${analysisType}
192
- - Mode: Single File Dependency Analysis
193
- - File Path: ${filePath || 'provided code'}
194
-
195
- 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.
196
-
197
- Key analysis areas:
198
- 1. Static Import Detection - Traditional import/export statements
199
- 2. Dynamic Loading Patterns - Runtime imports, conditional loading
200
- 3. String References - File path references, dynamic requires
201
- 4. Export Analysis - What this file exports and how it might be used
202
- 5. Framework Patterns - Framework-specific loading (plugins, routes, etc.)
203
-
204
- Your task is to provide expert analysis on whether this file appears to be genuinely unused or has dependencies.`;
205
- const dataPayload = `File to analyze:
206
-
207
- \`\`\`${language}
208
- ${code}
209
- \`\`\``;
210
- const outputInstructions = `Provide expert dependency analysis with the following structure:
211
-
212
- **File Usage Assessment Summary**
213
- Provide a professional assessment of this file's usage status, including what it exports, what it imports, and any framework-specific patterns detected.
214
-
215
- **Analysis Details**
216
- - List all exports found (functions, classes, constants, types)
217
- - Identify all imports and dependencies
218
- - Note any framework-specific patterns (React hooks, Vue composables, etc.)
219
- - Document evidence of dynamic loading or runtime usage
220
-
221
- **Usage Evidence**
222
- - Static import evidence (if imports/exports suggest active use)
223
- - Dynamic loading clues (runtime imports, string references)
224
- - Framework integration patterns (plugin systems, route handlers)
225
- - Configuration or build tool references
226
-
227
- **Assessment Conclusion**
228
- - Usage status classification (actively_used, likely_unused, requires_investigation)
229
- - Confidence level in the assessment (0.0 to 1.0)
230
- - Specific reasons supporting the conclusion
231
- - Recommended action (keep, investigate_further, safe_to_remove)
232
-
233
- Focus on distinguishing between genuinely unused files and files that may be loaded dynamically or conditionally.`;
234
- return { systemAndContext, dataPayload, outputInstructions };
235
- }
236
- getMultiFilePromptStages(params) {
237
- const { analysisResult, analysisType, analysisDepth, fileCount } = params;
238
- const systemAndContext = `You are a world-class senior software architect specializing in ${analysisDepth} unused file analysis across ${fileCount} files.
239
-
240
- Your expertise: Large-scale codebase cleanup, dependency graph analysis, dead code elimination strategies, and complex project refactoring with zero-risk unused file identification.
241
-
242
- Analysis Context:
243
- - Analysis Type: ${analysisType}
244
- - Analysis Depth: ${analysisDepth}
245
- - Files Analyzed: ${fileCount}
246
- - Mode: Multi-File Unused File Analysis
247
-
248
- Your mission: Identify genuinely unused files while avoiding false positives from dynamic loading, conditional imports, and framework-specific patterns.`;
249
- const dataPayload = `Multi-file unused file analysis results:
250
-
251
- ${JSON.stringify(analysisResult, null, 2)}`;
252
- const outputInstructions = `Provide world-class unused file analysis with the following structure:
253
-
254
- **Executive Summary**
255
- 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).
256
-
257
- **Definitely Unused Files**
258
- For each definitively unused file, provide:
259
- - File path and confidence level (0.0-1.0)
260
- - Comprehensive reasoning for why it's definitively unused
261
- - Category: legacy, dead_code, orphaned, or experimental
262
- - Safety assessment: whether it's safe to delete and deletion risk level
263
- - Last modified date if available
264
- - Potential impact of deletion
265
-
266
- **Likely Unused Files**
267
- For suspicious files that need verification:
268
- - File path and confidence level
269
- - Reasoning for why it appears unused but needs verification
270
- - Category: conditional, plugin, or utility
271
- - Safety assessment and deletion risk
272
- - Specific verification steps needed
273
- - Potential impact if deleted incorrectly
274
-
275
- **Files Requiring Investigation**
276
- For files with complex patterns needing human review:
277
- - File path and confidence level
278
- - Explanation of complex patterns detected
279
- - Category: dynamic, framework, or complex
280
- - Specific concerns making analysis uncertain
281
- - Concrete investigation steps for manual verification
282
-
283
- **Technical Debt Assessment**
284
- - Estimated cleanup impact on codebase size and maintainability
285
- - Risk assessment for batch deletion vs. individual file review
286
- - Recommended cleanup strategy and implementation phases
287
- - Long-term benefits of unused file elimination
288
-
289
- **Implementation Guidance**
290
- Provide a prioritized cleanup plan with specific steps, safety measures, and verification procedures to ensure accurate unused file removal without breaking functionality.`;
291
- return { systemAndContext, dataPayload, outputInstructions };
292
- }
293
- getPromptStages(params) {
294
- const mode = this.detectAnalysisMode(params);
295
- if (mode === 'single-file') {
296
- return this.getSingleFilePromptStages(params);
297
- }
298
- else {
299
- return this.getMultiFilePromptStages(params);
300
- }
301
- }
302
- async discoverRelevantFiles(projectPath, maxDepth, analysisType) {
303
- const extensions = this.getFileExtensions(analysisType);
304
- return await this.multiFileAnalysis.discoverFiles(projectPath, extensions, maxDepth);
305
- }
306
- async performMultiFileAnalysis(files, params, model, contextLength) {
307
- const cacheKey = this.analysisCache.generateKey('find_unused_files', params, files);
308
- const cached = await this.analysisCache.get(cacheKey);
309
- if (cached)
310
- return cached;
311
- const fileAnalysisResults = await this.multiFileAnalysis.analyzeBatch(files, (file) => this.analyzeIndividualFile(file, params, model), contextLength);
312
- const aggregatedResult = {
313
- summary: `Unused files analysis of ${files.length} files`,
314
- findings: fileAnalysisResults,
315
- data: {
316
- fileCount: files.length,
317
- totalSize: fileAnalysisResults.reduce((sum, result) => sum + (result.size || 0), 0),
318
- entryPoints: params.entryPoints || ['index.ts', 'main.ts', 'app.ts'],
319
- excludePatterns: params.excludePatterns || ['*.test.ts', '*.spec.ts', '*.d.ts'],
320
- analysisTimestamp: new Date().toISOString()
321
- }
322
- };
323
- await this.analysisCache.cacheAnalysis(cacheKey, aggregatedResult, {
324
- modelUsed: model.identifier || 'unknown',
325
- executionTime: Date.now(),
326
- timestamp: new Date().toISOString()
327
- });
328
- return aggregatedResult;
329
- }
330
- async analyzeIndividualFile(file, params, model) {
331
- const content = await readFile(file, 'utf-8');
332
- const stats = await stat(file);
333
- return {
334
- filePath: file,
335
- fileName: basename(file),
336
- size: content.length,
337
- lines: content.split('\n').length,
338
- extension: extname(file),
339
- relativePath: relative(params.projectPath || '', file),
340
- lastModified: stats.mtime.toISOString(),
341
- hasExports: /(?:^|\n)\s*export\s+/gm.test(content),
342
- hasImports: /(?:^|\n)\s*import\s+.*?from\s+/gm.test(content),
343
- isTestFile: /\.(test|spec)\.(ts|js)$/i.test(file),
344
- isDeclarationFile: file.endsWith('.d.ts')
345
- };
346
- }
347
- getFileExtensions(analysisType) {
348
- const extensionMap = {
349
- 'static': ['.js', '.ts', '.jsx', '.tsx', '.mjs', '.cjs'],
350
- 'dynamic': ['.js', '.ts', '.jsx', '.tsx', '.mjs', '.cjs', '.json', '.vue', '.svelte'],
351
- 'comprehensive': ['.js', '.ts', '.jsx', '.tsx', '.mjs', '.cjs', '.json', '.vue', '.svelte', '.php', '.py']
352
- };
353
- return extensionMap[analysisType] || extensionMap.comprehensive;
354
- }
355
- }
356
- export default FindUnusedFilesAnalyzer;
357
- //# sourceMappingURL=find-unused-files.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"find-unused-files.js","sourceRoot":"","sources":["../../../src/prompts/system/find-unused-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAEhF,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,eAAe,EAChB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,0DAA0D;AAC1D,OAAO,EAAE,QAAQ,EAAW,OAAO,EAAQ,QAAQ,EAAE,MAAM,MAAM,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAW,MAAM,aAAa,CAAC;AAEtD,MAAM,OAAO,uBAAwB,SAAQ,UAAU;IA0FrD;QACE,KAAK,EAAE,CAAC;QA1FV,SAAI,GAAG,mBAAmB,CAAC;QAC3B,aAAQ,GAAG,QAAiB,CAAC;QAC7B,gBAAW,GAAG,yGAAyG,CAAC;QAExH,0EAA0E;QAC1E,eAAU,GAAG;YACX,yBAAyB;YACzB,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAiB;gBACvB,WAAW,EAAE,gDAAgD;gBAC7D,QAAQ,EAAE,KAAK;aAChB;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAiB;gBACvB,WAAW,EAAE,gCAAgC;gBAC7C,QAAQ,EAAE,KAAK;aAChB;YAED,0BAA0B;YAC1B,WAAW,EAAE;gBACX,IAAI,EAAE,QAAiB;gBACvB,WAAW,EAAE,+BAA+B;gBAC5C,QAAQ,EAAE,KAAK;aAChB;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,OAAgB;gBACtB,WAAW,EAAE,wDAAwD;gBACrE,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE;aACnC;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAiB;gBACvB,WAAW,EAAE,6CAA6C;gBAC1D,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,CAAC;aACX;YAED,mBAAmB;YACnB,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAiB;gBACvB,WAAW,EAAE,sBAAsB;gBACnC,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,YAAY;aACtB;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,QAAiB;gBACvB,WAAW,EAAE,0BAA0B;gBACvC,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,eAAe,CAAC;gBAC5C,OAAO,EAAE,eAAe;gBACxB,QAAQ,EAAE,KAAK;aAChB;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,QAAiB;gBACvB,WAAW,EAAE,6BAA6B;gBAC1C,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC;gBAC5C,OAAO,EAAE,eAAe;gBACxB,QAAQ,EAAE,KAAK;aAChB;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,OAAgB;gBACtB,WAAW,EAAE,iDAAiD;gBAC9D,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC;gBAC1C,KAAK,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE;aACnC;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,OAAgB;gBACtB,WAAW,EAAE,wCAAwC;gBACrD,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC;gBAC7C,KAAK,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE;aACnC;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,SAAkB;gBACxB,WAAW,EAAE,iCAAiC;gBAC9C,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,IAAI;aACd;YACD,mBAAmB,EAAE;gBACnB,IAAI,EAAE,SAAkB;gBACxB,WAAW,EAAE,yCAAyC;gBACtD,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,KAAK;aACf;SACF,CAAC;QAEM,kBAAa,GAAG,gBAAgB,EAAE,CAAC;QACnC,sBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAIpD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAW,EAAE,SAAc;QACvC,OAAO,MAAM,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;YACxE,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;gBAC3D,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;gBACpD,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBAE3E,IAAI,YAAY,KAAK,aAAa,EAAE,CAAC;oBACnC,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;gBAClF,CAAC;qBAAM,CAAC;oBACN,OAAO,MAAM,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;gBACjF,CAAC;YAEH,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,OAAO,YAAY,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YACvE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,MAAW;QACpC,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACnC,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACvC,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,OAAO,YAAY,CAAC,CAAC,mCAAmC;IAC1D,CAAC;IAEO,kBAAkB,CAAC,MAAW,EAAE,IAAkC;QACxE,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3B,kBAAkB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,kBAAkB,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC/C,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QAED,kBAAkB,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;QAChG,kBAAkB,CAAC,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;IACnG,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,MAAW,EAAE,KAAU,EAAE,aAAqB;QACpF,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC;QAChC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,aAAa,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,yBAAyB,CAAC;YAClD,GAAG,MAAM;YACT,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,uBAAuB,EAAE,CAAC;QACpD,MAAM,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAEjF,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,eAAe,CAAC,yBAAyB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;YACzF,MAAM,UAAU,GAAG,aAAa,CAAC,gBAAgB,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACvF,MAAM,YAAY,GAAG,aAAa,CAAC,yBAAyB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YACvF,MAAM,QAAQ,GAAG;gBACf,YAAY,CAAC,aAAa;gBAC1B,GAAG,YAAY,CAAC,YAAY;gBAC5B,YAAY,CAAC,eAAe;aAC7B,CAAC;YAEF,OAAO,MAAM,iBAAiB,CAAC,cAAc,CAC3C,QAAQ,EACR,KAAK,EACL,aAAa,EACb,mBAAmB,EACnB,QAAQ,CACT,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,MAAM,iBAAiB,CAAC,aAAa,CAC1C,YAAY,EACZ,KAAK,EACL,aAAa,EACb,mBAAmB,CACpB,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,MAAW,EAAE,KAAU,EAAE,aAAqB;QACnF,IAAI,cAAc,GAAa,MAAM,CAAC,KAAK;YACzC,MAAM,IAAI,CAAC,qBAAqB,CAC9B,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,YAAY,CACpB,CAAC;QAEJ,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,wBAAwB,CACxD,cAAc,EACd,MAAM,EACN,KAAK,EACL,aAAa,CACd,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAAC;YACjD,GAAG,MAAM;YACT,cAAc;YACd,SAAS,EAAE,cAAc,CAAC,MAAM;SACjC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,uBAAuB,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,eAAe,CAAC,yBAAyB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QACzF,MAAM,UAAU,GAAG,aAAa,CAAC,gBAAgB,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACvF,MAAM,YAAY,GAAG,aAAa,CAAC,yBAAyB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACvF,MAAM,QAAQ,GAAG;YACf,YAAY,CAAC,aAAa;YAC1B,GAAG,YAAY,CAAC,YAAY;YAC5B,YAAY,CAAC,eAAe;SAC7B,CAAC;QAEF,OAAO,MAAM,iBAAiB,CAAC,cAAc,CAC3C,QAAQ,EACR,KAAK,EACL,aAAa,EACb,mBAAmB,EACnB,WAAW,CACZ,CAAC;IACJ,CAAC;IAEO,yBAAyB,CAAC,MAAW;QAC3C,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAEzE,MAAM,gBAAgB,GAAG,kFAAkF,aAAa,IAAI,YAAY;;;;;cAK9H,QAAQ;oBACF,aAAa;mBACd,YAAY;;eAEhB,QAAQ,IAAI,eAAe;;;;;;;;;;;iHAWuE,CAAC;QAE9G,MAAM,WAAW,GAAG;;QAEhB,QAAQ;EACd,IAAI;OACC,CAAC;QAEJ,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;kHAuBmF,CAAC;QAE/G,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAC/D,CAAC;IAEO,wBAAwB,CAAC,MAAW;QAC1C,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QAE1E,MAAM,gBAAgB,GAAG,mEAAmE,aAAa,gCAAgC,SAAS;;;;;mBAKnI,YAAY;oBACX,aAAa;oBACb,SAAS;;;yJAG4H,CAAC;QAEtJ,MAAM,WAAW,GAAG;;EAEtB,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QAExC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4KAsC6I,CAAC;QAEzK,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAC/D,CAAC;IAED,eAAe,CAAC,MAAW;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAE7C,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,WAAmB,EACnB,QAAgB,EAChB,YAAoB;QAEpB,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACxD,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IACvF,CAAC;IAEO,KAAK,CAAC,wBAAwB,CACpC,KAAe,EACf,MAAW,EACX,KAAU,EACV,aAAqB;QAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAC7C,mBAAmB,EACnB,MAAM,EACN,KAAK,CACN,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,CACnE,KAAK,EACL,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EACjE,aAAa,CACd,CAAC;QAEF,MAAM,gBAAgB,GAAG;YACvB,OAAO,EAAE,4BAA4B,KAAK,CAAC,MAAM,QAAQ;YACzD,QAAQ,EAAE,mBAAmB;YAC7B,IAAI,EAAE;gBACJ,SAAS,EAAE,KAAK,CAAC,MAAM;gBACvB,SAAS,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,MAAW,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAChG,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC;gBACpE,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC;gBAC/E,iBAAiB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAC5C;SACF,CAAC;QAEF,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAgB,EAAE;YACjE,SAAS,EAAE,KAAK,CAAC,UAAU,IAAI,SAAS;YACxC,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE;YACzB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QAEH,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,IAAY,EAAE,MAAW,EAAE,KAAU;QACvE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/B,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC;YACxB,IAAI,EAAE,OAAO,CAAC,MAAM;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM;YACjC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC;YACxB,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,IAAI,CAAC;YACtD,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE;YACvC,UAAU,EAAE,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC;YAClD,UAAU,EAAE,kCAAkC,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5D,UAAU,EAAE,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC;YACjD,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;SAC1C,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,YAAoB;QAC5C,MAAM,YAAY,GAA6B;YAC7C,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YACxD,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC;YACrF,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC;SAC3G,CAAC;QAEF,OAAO,YAAY,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,aAAa,CAAC;IAClE,CAAC;CACF;AAED,eAAe,uBAAuB,CAAC"}
@@ -1,39 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,46 +0,0 @@
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
@@ -1 +0,0 @@
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"}