@houtini/lm 1.0.13 → 2.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 (262) hide show
  1. package/dist/index.d.ts +5 -3
  2. package/dist/index.js +142 -213
  3. package/dist/index.js.map +1 -1
  4. package/package.json +10 -33
  5. package/CHANGELOG.md +0 -282
  6. package/dist/cache/analysis-cache.d.ts +0 -33
  7. package/dist/cache/analysis-cache.d.ts.map +0 -1
  8. package/dist/cache/analysis-cache.js +0 -56
  9. package/dist/cache/analysis-cache.js.map +0 -1
  10. package/dist/cache/cache-manager.d.ts +0 -29
  11. package/dist/cache/cache-manager.d.ts.map +0 -1
  12. package/dist/cache/cache-manager.js +0 -85
  13. package/dist/cache/cache-manager.js.map +0 -1
  14. package/dist/cache/index.d.ts +0 -16
  15. package/dist/cache/index.d.ts.map +0 -1
  16. package/dist/cache/index.js +0 -17
  17. package/dist/cache/index.js.map +0 -1
  18. package/dist/cache/prompt-cache.d.ts +0 -33
  19. package/dist/cache/prompt-cache.d.ts.map +0 -1
  20. package/dist/cache/prompt-cache.js +0 -61
  21. package/dist/cache/prompt-cache.js.map +0 -1
  22. package/dist/config.d.ts +0 -41
  23. package/dist/config.d.ts.map +0 -1
  24. package/dist/config.js +0 -71
  25. package/dist/config.js.map +0 -1
  26. package/dist/core/ThreeStagePromptManager.d.ts +0 -23
  27. package/dist/core/ThreeStagePromptManager.d.ts.map +0 -1
  28. package/dist/core/ThreeStagePromptManager.js +0 -118
  29. package/dist/core/ThreeStagePromptManager.js.map +0 -1
  30. package/dist/index.d.ts.map +0 -1
  31. package/dist/plugins/base-plugin.d.ts +0 -55
  32. package/dist/plugins/base-plugin.d.ts.map +0 -1
  33. package/dist/plugins/base-plugin.js +0 -120
  34. package/dist/plugins/base-plugin.js.map +0 -1
  35. package/dist/plugins/index.d.ts +0 -58
  36. package/dist/plugins/index.d.ts.map +0 -1
  37. package/dist/plugins/index.js +0 -162
  38. package/dist/plugins/index.js.map +0 -1
  39. package/dist/plugins/types.d.ts +0 -5
  40. package/dist/plugins/types.d.ts.map +0 -1
  41. package/dist/plugins/types.js +0 -5
  42. package/dist/plugins/types.js.map +0 -1
  43. package/dist/prompts/analyze/code-quality.d.ts +0 -116
  44. package/dist/prompts/analyze/code-quality.d.ts.map +0 -1
  45. package/dist/prompts/analyze/code-quality.js +0 -437
  46. package/dist/prompts/analyze/code-quality.js.map +0 -1
  47. package/dist/prompts/analyze/compare-integration.d.ts +0 -130
  48. package/dist/prompts/analyze/compare-integration.d.ts.map +0 -1
  49. package/dist/prompts/analyze/compare-integration.js +0 -547
  50. package/dist/prompts/analyze/compare-integration.js.map +0 -1
  51. package/dist/prompts/analyze/count-files.d.ts +0 -109
  52. package/dist/prompts/analyze/count-files.d.ts.map +0 -1
  53. package/dist/prompts/analyze/count-files.js +0 -403
  54. package/dist/prompts/analyze/count-files.js.map +0 -1
  55. package/dist/prompts/analyze/database-queries.d.ts +0 -156
  56. package/dist/prompts/analyze/database-queries.d.ts.map +0 -1
  57. package/dist/prompts/analyze/database-queries.js +0 -763
  58. package/dist/prompts/analyze/database-queries.js.map +0 -1
  59. package/dist/prompts/analyze/dependencies.d.ts +0 -97
  60. package/dist/prompts/analyze/dependencies.d.ts.map +0 -1
  61. package/dist/prompts/analyze/dependencies.js +0 -337
  62. package/dist/prompts/analyze/dependencies.js.map +0 -1
  63. package/dist/prompts/analyze/diff-signatures.d.ts +0 -139
  64. package/dist/prompts/analyze/diff-signatures.d.ts.map +0 -1
  65. package/dist/prompts/analyze/diff-signatures.js +0 -708
  66. package/dist/prompts/analyze/diff-signatures.js.map +0 -1
  67. package/dist/prompts/analyze/find-patterns.d.ts +0 -128
  68. package/dist/prompts/analyze/find-patterns.d.ts.map +0 -1
  69. package/dist/prompts/analyze/find-patterns.js +0 -524
  70. package/dist/prompts/analyze/find-patterns.js.map +0 -1
  71. package/dist/prompts/analyze/find-unused-css.d.ts +0 -151
  72. package/dist/prompts/analyze/find-unused-css.d.ts.map +0 -1
  73. package/dist/prompts/analyze/find-unused-css.js +0 -760
  74. package/dist/prompts/analyze/find-unused-css.js.map +0 -1
  75. package/dist/prompts/analyze/n8n-workflow.d.ts +0 -137
  76. package/dist/prompts/analyze/n8n-workflow.d.ts.map +0 -1
  77. package/dist/prompts/analyze/n8n-workflow.js +0 -533
  78. package/dist/prompts/analyze/n8n-workflow.js.map +0 -1
  79. package/dist/prompts/analyze/project-structure.d.ts +0 -126
  80. package/dist/prompts/analyze/project-structure.d.ts.map +0 -1
  81. package/dist/prompts/analyze/project-structure.js +0 -573
  82. package/dist/prompts/analyze/project-structure.js.map +0 -1
  83. package/dist/prompts/analyze/security-audit.d.ts +0 -142
  84. package/dist/prompts/analyze/security-audit.d.ts.map +0 -1
  85. package/dist/prompts/analyze/security-audit.js +0 -641
  86. package/dist/prompts/analyze/security-audit.js.map +0 -1
  87. package/dist/prompts/analyze/single-file.d.ts +0 -162
  88. package/dist/prompts/analyze/single-file.d.ts.map +0 -1
  89. package/dist/prompts/analyze/single-file.js +0 -669
  90. package/dist/prompts/analyze/single-file.js.map +0 -1
  91. package/dist/prompts/analyze/trace-execution.d.ts +0 -126
  92. package/dist/prompts/analyze/trace-execution.d.ts.map +0 -1
  93. package/dist/prompts/analyze/trace-execution.js +0 -613
  94. package/dist/prompts/analyze/trace-execution.js.map +0 -1
  95. package/dist/prompts/analyze/wordpress-plugin-audit.d.ts +0 -116
  96. package/dist/prompts/analyze/wordpress-plugin-audit.d.ts.map +0 -1
  97. package/dist/prompts/analyze/wordpress-plugin-audit.js +0 -456
  98. package/dist/prompts/analyze/wordpress-plugin-audit.js.map +0 -1
  99. package/dist/prompts/analyze/wordpress-plugin-readiness.d.ts +0 -103
  100. package/dist/prompts/analyze/wordpress-plugin-readiness.d.ts.map +0 -1
  101. package/dist/prompts/analyze/wordpress-plugin-readiness.js +0 -506
  102. package/dist/prompts/analyze/wordpress-plugin-readiness.js.map +0 -1
  103. package/dist/prompts/analyze/wordpress-security.d.ts +0 -146
  104. package/dist/prompts/analyze/wordpress-security.d.ts.map +0 -1
  105. package/dist/prompts/analyze/wordpress-security.js +0 -702
  106. package/dist/prompts/analyze/wordpress-security.js.map +0 -1
  107. package/dist/prompts/analyze/wordpress-theme-audit.d.ts +0 -114
  108. package/dist/prompts/analyze/wordpress-theme-audit.d.ts.map +0 -1
  109. package/dist/prompts/analyze/wordpress-theme-audit.js +0 -540
  110. package/dist/prompts/analyze/wordpress-theme-audit.js.map +0 -1
  111. package/dist/prompts/custom/custom-prompt.d.ts +0 -135
  112. package/dist/prompts/custom/custom-prompt.d.ts.map +0 -1
  113. package/dist/prompts/custom/custom-prompt.js +0 -421
  114. package/dist/prompts/custom/custom-prompt.js.map +0 -1
  115. package/dist/prompts/fun/arcade-game.d.ts +0 -152
  116. package/dist/prompts/fun/arcade-game.d.ts.map +0 -1
  117. package/dist/prompts/fun/arcade-game.js +0 -657
  118. package/dist/prompts/fun/arcade-game.js.map +0 -1
  119. package/dist/prompts/fun/create_text_adventure.d.ts +0 -100
  120. package/dist/prompts/fun/create_text_adventure.d.ts.map +0 -1
  121. package/dist/prompts/fun/create_text_adventure.js +0 -401
  122. package/dist/prompts/fun/create_text_adventure.js.map +0 -1
  123. package/dist/prompts/fun/css-art-generator.d.ts +0 -168
  124. package/dist/prompts/fun/css-art-generator.d.ts.map +0 -1
  125. package/dist/prompts/fun/css-art-generator.js +0 -831
  126. package/dist/prompts/fun/css-art-generator.js.map +0 -1
  127. package/dist/prompts/generate/project-documentation.d.ts +0 -137
  128. package/dist/prompts/generate/project-documentation.d.ts.map +0 -1
  129. package/dist/prompts/generate/project-documentation.js +0 -670
  130. package/dist/prompts/generate/project-documentation.js.map +0 -1
  131. package/dist/prompts/generate/refactoring.d.ts +0 -164
  132. package/dist/prompts/generate/refactoring.d.ts.map +0 -1
  133. package/dist/prompts/generate/refactoring.js +0 -625
  134. package/dist/prompts/generate/refactoring.js.map +0 -1
  135. package/dist/prompts/generate/responsive-component.d.ts +0 -147
  136. package/dist/prompts/generate/responsive-component.d.ts.map +0 -1
  137. package/dist/prompts/generate/responsive-component.js +0 -957
  138. package/dist/prompts/generate/responsive-component.js.map +0 -1
  139. package/dist/prompts/generate/typescript-conversion.d.ts +0 -144
  140. package/dist/prompts/generate/typescript-conversion.d.ts.map +0 -1
  141. package/dist/prompts/generate/typescript-conversion.js +0 -531
  142. package/dist/prompts/generate/typescript-conversion.js.map +0 -1
  143. package/dist/prompts/generate/unit-tests.d.ts +0 -139
  144. package/dist/prompts/generate/unit-tests.d.ts.map +0 -1
  145. package/dist/prompts/generate/unit-tests.js +0 -582
  146. package/dist/prompts/generate/unit-tests.js.map +0 -1
  147. package/dist/prompts/generate/wordpress-plugin.d.ts +0 -179
  148. package/dist/prompts/generate/wordpress-plugin.d.ts.map +0 -1
  149. package/dist/prompts/generate/wordpress-plugin.js +0 -767
  150. package/dist/prompts/generate/wordpress-plugin.js.map +0 -1
  151. package/dist/prompts/generate/wordpress-theme-from-static.d.ts +0 -177
  152. package/dist/prompts/generate/wordpress-theme-from-static.d.ts.map +0 -1
  153. package/dist/prompts/generate/wordpress-theme-from-static.js +0 -699
  154. package/dist/prompts/generate/wordpress-theme-from-static.js.map +0 -1
  155. package/dist/prompts/shared/cache-manager.d.ts +0 -45
  156. package/dist/prompts/shared/cache-manager.d.ts.map +0 -1
  157. package/dist/prompts/shared/cache-manager.js +0 -129
  158. package/dist/prompts/shared/cache-manager.js.map +0 -1
  159. package/dist/prompts/shared/helpers.d.ts +0 -39
  160. package/dist/prompts/shared/helpers.d.ts.map +0 -1
  161. package/dist/prompts/shared/helpers.js +0 -151
  162. package/dist/prompts/shared/helpers.js.map +0 -1
  163. package/dist/prompts/shared/templates.d.ts +0 -35
  164. package/dist/prompts/shared/templates.d.ts.map +0 -1
  165. package/dist/prompts/shared/templates.js +0 -77
  166. package/dist/prompts/shared/templates.js.map +0 -1
  167. package/dist/prompts/shared/types.d.ts +0 -112
  168. package/dist/prompts/shared/types.d.ts.map +0 -1
  169. package/dist/prompts/shared/types.js +0 -5
  170. package/dist/prompts/shared/types.js.map +0 -1
  171. package/dist/prompts/system/find-unused-files.d.ts +0 -106
  172. package/dist/prompts/system/find-unused-files.d.ts.map +0 -1
  173. package/dist/prompts/system/find-unused-files.js +0 -357
  174. package/dist/prompts/system/find-unused-files.js.map +0 -1
  175. package/dist/security/index.d.ts +0 -39
  176. package/dist/security/index.d.ts.map +0 -1
  177. package/dist/security/index.js +0 -46
  178. package/dist/security/index.js.map +0 -1
  179. package/dist/security/integration-helpers.d.ts +0 -121
  180. package/dist/security/integration-helpers.d.ts.map +0 -1
  181. package/dist/security/integration-helpers.js +0 -190
  182. package/dist/security/integration-helpers.js.map +0 -1
  183. package/dist/security/output-encoder.d.ts +0 -94
  184. package/dist/security/output-encoder.d.ts.map +0 -1
  185. package/dist/security/output-encoder.js +0 -295
  186. package/dist/security/output-encoder.js.map +0 -1
  187. package/dist/security/prompt-injection-guard.d.ts +0 -59
  188. package/dist/security/prompt-injection-guard.d.ts.map +0 -1
  189. package/dist/security/prompt-injection-guard.js +0 -249
  190. package/dist/security/prompt-injection-guard.js.map +0 -1
  191. package/dist/security/sanitisation.d.ts +0 -67
  192. package/dist/security/sanitisation.d.ts.map +0 -1
  193. package/dist/security/sanitisation.js +0 -398
  194. package/dist/security/sanitisation.js.map +0 -1
  195. package/dist/security/security-service.d.ts +0 -103
  196. package/dist/security/security-service.d.ts.map +0 -1
  197. package/dist/security/security-service.js +0 -303
  198. package/dist/security/security-service.js.map +0 -1
  199. package/dist/security-config.d.ts +0 -45
  200. package/dist/security-config.d.ts.map +0 -1
  201. package/dist/security-config.js +0 -63
  202. package/dist/security-config.js.map +0 -1
  203. package/dist/system/function-list.d.ts +0 -61
  204. package/dist/system/function-list.d.ts.map +0 -1
  205. package/dist/system/function-list.js +0 -111
  206. package/dist/system/function-list.js.map +0 -1
  207. package/dist/system/function-registry.d.ts +0 -23
  208. package/dist/system/function-registry.d.ts.map +0 -1
  209. package/dist/system/function-registry.js +0 -136
  210. package/dist/system/function-registry.js.map +0 -1
  211. package/dist/system/health-check.d.ts +0 -33
  212. package/dist/system/health-check.d.ts.map +0 -1
  213. package/dist/system/health-check.js +0 -98
  214. package/dist/system/health-check.js.map +0 -1
  215. package/dist/system/path-resolver.d.ts +0 -55
  216. package/dist/system/path-resolver.d.ts.map +0 -1
  217. package/dist/system/path-resolver.js +0 -90
  218. package/dist/system/path-resolver.js.map +0 -1
  219. package/dist/templates/plugin-template.d.ts +0 -121
  220. package/dist/templates/plugin-template.d.ts.map +0 -1
  221. package/dist/templates/plugin-template.js +0 -454
  222. package/dist/templates/plugin-template.js.map +0 -1
  223. package/dist/types/chunking-types.d.ts +0 -88
  224. package/dist/types/chunking-types.d.ts.map +0 -1
  225. package/dist/types/chunking-types.js +0 -18
  226. package/dist/types/chunking-types.js.map +0 -1
  227. package/dist/types/prompt-stages.d.ts +0 -30
  228. package/dist/types/prompt-stages.d.ts.map +0 -1
  229. package/dist/types/prompt-stages.js +0 -6
  230. package/dist/types/prompt-stages.js.map +0 -1
  231. package/dist/types.d.ts +0 -45
  232. package/dist/types.d.ts.map +0 -1
  233. package/dist/types.js +0 -6
  234. package/dist/types.js.map +0 -1
  235. package/dist/utils/css-parser.d.ts +0 -26
  236. package/dist/utils/css-parser.d.ts.map +0 -1
  237. package/dist/utils/css-parser.js +0 -117
  238. package/dist/utils/css-parser.js.map +0 -1
  239. package/dist/utils/path-resolver.d.ts +0 -13
  240. package/dist/utils/path-resolver.d.ts.map +0 -1
  241. package/dist/utils/path-resolver.js +0 -78
  242. package/dist/utils/path-resolver.js.map +0 -1
  243. package/dist/utils/plugin-utilities.d.ts +0 -176
  244. package/dist/utils/plugin-utilities.d.ts.map +0 -1
  245. package/dist/utils/plugin-utilities.js +0 -269
  246. package/dist/utils/plugin-utilities.js.map +0 -1
  247. package/dist/utils/streamHandler.d.ts +0 -3
  248. package/dist/utils/streamHandler.d.ts.map +0 -1
  249. package/dist/utils/streamHandler.js +0 -137
  250. package/dist/utils/streamHandler.js.map +0 -1
  251. package/dist/validation/output-validator.d.ts +0 -136
  252. package/dist/validation/output-validator.d.ts.map +0 -1
  253. package/dist/validation/output-validator.js +0 -262
  254. package/dist/validation/output-validator.js.map +0 -1
  255. package/dist/validation/response-factory.d.ts +0 -44
  256. package/dist/validation/response-factory.d.ts.map +0 -1
  257. package/dist/validation/response-factory.js +0 -202
  258. package/dist/validation/response-factory.js.map +0 -1
  259. package/dist/validation/schemas.d.ts +0 -519
  260. package/dist/validation/schemas.d.ts.map +0 -1
  261. package/dist/validation/schemas.js +0 -6
  262. package/dist/validation/schemas.js.map +0 -1
@@ -1,135 +0,0 @@
1
- /**
2
- * Custom Prompt Executor - Modern v4.3 Universal Template
3
- *
4
- * Universal fallback function that allows Claude to communicate any task directly to local LLM
5
- * Acts as the Swiss Army knife for tasks that don't match other specialized functions
6
- *
7
- * Created using the modern universal template architecture
8
- */
9
- import { BasePlugin } from '../../plugins/base-plugin.js';
10
- import { IPromptPlugin } from '../shared/types.js';
11
- import { PromptStages } from '../../types/prompt-stages.js';
12
- export declare class CustomPromptExecutor extends BasePlugin implements IPromptPlugin {
13
- name: string;
14
- category: "custom";
15
- description: string;
16
- parameters: {
17
- code: {
18
- type: "string";
19
- description: string;
20
- required: boolean;
21
- };
22
- filePath: {
23
- type: "string";
24
- description: string;
25
- required: boolean;
26
- };
27
- projectPath: {
28
- type: "string";
29
- description: string;
30
- required: boolean;
31
- };
32
- files: {
33
- type: "array";
34
- description: string;
35
- required: boolean;
36
- items: {
37
- type: "string";
38
- };
39
- };
40
- maxDepth: {
41
- type: "number";
42
- description: string;
43
- required: boolean;
44
- default: number;
45
- };
46
- prompt: {
47
- type: "string";
48
- description: string;
49
- required: boolean;
50
- };
51
- working_directory: {
52
- type: "string";
53
- description: string;
54
- required: boolean;
55
- };
56
- context: {
57
- type: "object";
58
- description: string;
59
- required: boolean;
60
- properties: {
61
- task_type: {
62
- type: "string";
63
- };
64
- requirements: {
65
- type: "array";
66
- };
67
- constraints: {
68
- type: "array";
69
- };
70
- output_format: {
71
- type: "string";
72
- };
73
- };
74
- };
75
- language: {
76
- type: "string";
77
- description: string;
78
- required: boolean;
79
- default: string;
80
- };
81
- analysisDepth: {
82
- type: "string";
83
- description: string;
84
- enum: string[];
85
- default: string;
86
- required: boolean;
87
- };
88
- analysisType: {
89
- type: "string";
90
- description: string;
91
- enum: string[];
92
- default: string;
93
- required: boolean;
94
- };
95
- };
96
- private analysisCache;
97
- private multiFileAnalysis;
98
- constructor();
99
- execute(params: any, llmClient: any): Promise<any>;
100
- /**
101
- * Auto-detect whether this is single-file or multi-file analysis
102
- */
103
- private detectAnalysisMode;
104
- /**
105
- * Validate parameters based on detected analysis mode
106
- */
107
- private validateParameters;
108
- /**
109
- * Execute single-file analysis
110
- */
111
- private executeSingleFileAnalysis;
112
- /**
113
- * Execute multi-file analysis
114
- */
115
- private executeMultiFileAnalysis;
116
- /**
117
- * Single-file prompt stages - optimized for universal custom tasks
118
- */
119
- private getSingleFilePromptStages;
120
- /**
121
- * Multi-file prompt stages - optimized for complex custom tasks across multiple files
122
- */
123
- private getMultiFilePromptStages;
124
- /**
125
- * Backwards compatibility method
126
- */
127
- getPromptStages(params: any): PromptStages;
128
- private discoverRelevantFiles;
129
- private performMultiFileAnalysis;
130
- private analyzeIndividualFile;
131
- private getFileExtensions;
132
- private generateCacheKey;
133
- }
134
- export default CustomPromptExecutor;
135
- //# sourceMappingURL=custom-prompt.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-prompt.d.ts","sourceRoot":"","sources":["../../../src/prompts/custom/custom-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAa5D,qBAAa,oBAAqB,SAAQ,UAAW,YAAW,aAAa;IAC3E,IAAI,SAAmB;IACvB,QAAQ,EAAG,QAAQ,CAAU;IAC7B,WAAW,SAAuS;IAGlT,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6ER;IAEF,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,iBAAiB,CAA2B;;IAO9C,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG;IAyBzC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA2B1B;;OAEG;YACW,yBAAyB;IAgEvC;;OAEG;YACW,wBAAwB;IA4CtC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAsDjC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAkDhC;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,GAAG,GAAG,YAAY;YAW5B,qBAAqB;YASrB,wBAAwB;YA6CxB,qBAAqB;IAenC,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,gBAAgB;CAKzB;AAED,eAAe,oBAAoB,CAAC"}
@@ -1,421 +0,0 @@
1
- /**
2
- * Custom Prompt Executor - Modern v4.3 Universal Template
3
- *
4
- * Universal fallback function that allows Claude to communicate any task directly to local LLM
5
- * Acts as the Swiss Army knife for tasks that don't match other specialized functions
6
- *
7
- * Created using the modern universal template architecture
8
- */
9
- import { BasePlugin } from '../../plugins/base-plugin.js';
10
- import { ThreeStagePromptManager } from '../../core/ThreeStagePromptManager.js';
11
- import { withSecurity } from '../../security/integration-helpers.js';
12
- import { readFileContent } from '../shared/helpers.js';
13
- import { ModelSetup, ResponseProcessor, ParameterValidator, ErrorHandler, MultiFileAnalysis, TokenCalculator } from '../../utils/plugin-utilities.js';
14
- import { getAnalysisCache } from '../../cache/index.js';
15
- export class CustomPromptExecutor extends BasePlugin {
16
- constructor() {
17
- super();
18
- this.name = 'custom_prompt';
19
- this.category = 'custom';
20
- this.description = 'Universal fallback executor for any custom prompt with optional file context. Uses dynamic token allocation based on your loaded model - can handle everything from quick tasks to comprehensive multi-file analysis. The Swiss Army knife when no other specialized function matches your needs.';
21
- // Universal parameter set - supports both single and multi-file scenarios
22
- this.parameters = {
23
- // Single-file parameters
24
- code: {
25
- type: 'string',
26
- description: 'The code to analyze (for single-file analysis)',
27
- required: false
28
- },
29
- filePath: {
30
- type: 'string',
31
- description: 'Path to single file to analyze',
32
- required: false
33
- },
34
- // Multi-file parameters
35
- projectPath: {
36
- type: 'string',
37
- description: 'Path to project root (for multi-file analysis)',
38
- required: false
39
- },
40
- files: {
41
- type: 'array',
42
- description: 'Array of specific file paths to include as context',
43
- required: false,
44
- items: { type: 'string' }
45
- },
46
- maxDepth: {
47
- type: 'number',
48
- description: 'Maximum directory depth for multi-file discovery (1-5)',
49
- required: false,
50
- default: 3
51
- },
52
- // Custom prompt specific parameters
53
- prompt: {
54
- type: 'string',
55
- description: 'The custom prompt/task to send to local LLM',
56
- required: true
57
- },
58
- working_directory: {
59
- type: 'string',
60
- description: 'Working directory context (defaults to current working directory)',
61
- required: false
62
- },
63
- context: {
64
- type: 'object',
65
- description: 'Optional structured context object for the task',
66
- required: false,
67
- properties: {
68
- task_type: { type: 'string' },
69
- requirements: { type: 'array' },
70
- constraints: { type: 'array' },
71
- output_format: { type: 'string' }
72
- }
73
- },
74
- // Universal parameters
75
- language: {
76
- type: 'string',
77
- description: 'Programming language (if applicable)',
78
- required: false,
79
- default: 'text'
80
- },
81
- analysisDepth: {
82
- type: 'string',
83
- description: 'Level of analysis detail',
84
- enum: ['basic', 'detailed', 'comprehensive'],
85
- default: 'detailed',
86
- required: false
87
- },
88
- analysisType: {
89
- type: 'string',
90
- description: 'Type of analysis to perform',
91
- enum: ['general', 'technical', 'creative', 'analytical'],
92
- default: 'general',
93
- required: false
94
- }
95
- };
96
- this.analysisCache = getAnalysisCache();
97
- this.multiFileAnalysis = new MultiFileAnalysis();
98
- // Cache and analysis utilities are initialized above
99
- }
100
- async execute(params, llmClient) {
101
- return await withSecurity(this, params, llmClient, async (secureParams) => {
102
- try {
103
- // 1. Auto-detect analysis mode based on parameters
104
- const analysisMode = this.detectAnalysisMode(secureParams);
105
- // 2. Validate parameters based on detected mode
106
- this.validateParameters(secureParams, analysisMode);
107
- // 3. Setup model
108
- const { model, contextLength } = await ModelSetup.getReadyModel(llmClient);
109
- // 4. Route to appropriate analysis method
110
- if (analysisMode === 'single-file') {
111
- return await this.executeSingleFileAnalysis(secureParams, model, contextLength);
112
- }
113
- else {
114
- return await this.executeMultiFileAnalysis(secureParams, model, contextLength);
115
- }
116
- }
117
- catch (error) {
118
- return ErrorHandler.createExecutionError('custom_prompt', error);
119
- }
120
- });
121
- }
122
- /**
123
- * Auto-detect whether this is single-file or multi-file analysis
124
- */
125
- detectAnalysisMode(params) {
126
- // Multi-file indicators
127
- if (params.projectPath || (params.files && params.files.length > 1)) {
128
- return 'multi-file';
129
- }
130
- // Single-file indicators or no file context (just prompt)
131
- if (params.code || params.filePath || (params.files && params.files.length === 1) || (!params.projectPath && !params.files)) {
132
- return 'single-file';
133
- }
134
- // Default to single-file for simple prompts
135
- return 'single-file';
136
- }
137
- /**
138
- * Validate parameters based on detected analysis mode
139
- */
140
- validateParameters(params, mode) {
141
- // Always require the prompt
142
- if (!params.prompt || typeof params.prompt !== 'string') {
143
- throw new Error('Prompt is required and must be a string');
144
- }
145
- if (mode === 'single-file') {
146
- // Single-file mode can work with just a prompt, or with file context
147
- if (params.filePath) {
148
- ParameterValidator.validateCodeOrFile(params);
149
- }
150
- }
151
- else {
152
- // Multi-file mode requires either projectPath or files array
153
- if (!params.projectPath && !params.files) {
154
- throw new Error('Multi-file mode requires either projectPath or files array');
155
- }
156
- if (params.projectPath) {
157
- ParameterValidator.validateProjectPath(params);
158
- }
159
- ParameterValidator.validateDepth(params);
160
- }
161
- // Universal validations
162
- ParameterValidator.validateEnum(params, 'analysisType', ['general', 'technical', 'creative', 'analytical']);
163
- ParameterValidator.validateEnum(params, 'analysisDepth', ['basic', 'detailed', 'comprehensive']);
164
- }
165
- /**
166
- * Execute single-file analysis
167
- */
168
- async executeSingleFileAnalysis(params, model, contextLength) {
169
- // Process single file input
170
- let codeToAnalyze = params.code || '';
171
- if (params.filePath) {
172
- codeToAnalyze = await readFileContent(params.filePath);
173
- }
174
- else if (params.files && params.files.length === 1) {
175
- codeToAnalyze = await readFileContent(params.files[0]);
176
- }
177
- // Generate prompt stages for single file
178
- const promptStages = this.getSingleFilePromptStages({
179
- ...params,
180
- code: codeToAnalyze
181
- });
182
- // Execute with appropriate method
183
- const promptManager = new ThreeStagePromptManager();
184
- const needsChunking = TokenCalculator.needsChunking(promptStages, contextLength);
185
- if (needsChunking) {
186
- const chunkSize = TokenCalculator.calculateOptimalChunkSize(promptStages, contextLength);
187
- const dataChunks = promptManager.chunkDataPayload(promptStages.dataPayload, chunkSize);
188
- const conversation = promptManager.createChunkedConversation(promptStages, dataChunks);
189
- const messages = [
190
- conversation.systemMessage,
191
- ...conversation.dataMessages,
192
- conversation.analysisMessage
193
- ];
194
- return await ResponseProcessor.executeChunked(messages, model, contextLength, 'custom_prompt', 'single');
195
- }
196
- else {
197
- // Use proper dynamic token calculation for custom prompts
198
- const maxTokens = TokenCalculator.calculateForDirect(promptStages, contextLength, {
199
- minTokens: 2000 // Minimum for code generation
200
- });
201
- const fullPrompt = `${promptStages.systemAndContext}
202
-
203
- ${promptStages.dataPayload}
204
-
205
- ${promptStages.outputInstructions}`;
206
- const response = await model.complete(fullPrompt, { maxTokens, temperature: 0.7 });
207
- return {
208
- success: true,
209
- timestamp: new Date().toISOString(),
210
- modelUsed: model.identifier || 'unknown',
211
- executionTimeMs: 0,
212
- data: response?.content || response?.text || response || 'No response content'
213
- };
214
- }
215
- }
216
- /**
217
- * Execute multi-file analysis
218
- */
219
- async executeMultiFileAnalysis(params, model, contextLength) {
220
- // Discover files
221
- let filesToAnalyze = params.files ||
222
- await this.discoverRelevantFiles(params.projectPath, params.maxDepth, params.analysisType);
223
- // Perform multi-file analysis with caching
224
- const analysisResult = await this.performMultiFileAnalysis(filesToAnalyze, params, model, contextLength);
225
- // Generate prompt stages for multi-file
226
- const promptStages = this.getMultiFilePromptStages({
227
- ...params,
228
- analysisResult,
229
- fileCount: filesToAnalyze.length
230
- });
231
- // Always use chunking for multi-file
232
- const promptManager = new ThreeStagePromptManager();
233
- const chunkSize = TokenCalculator.calculateOptimalChunkSize(promptStages, contextLength);
234
- const dataChunks = promptManager.chunkDataPayload(promptStages.dataPayload, chunkSize);
235
- const conversation = promptManager.createChunkedConversation(promptStages, dataChunks);
236
- const messages = [
237
- conversation.systemMessage,
238
- ...conversation.dataMessages,
239
- conversation.analysisMessage
240
- ];
241
- return await ResponseProcessor.executeChunked(messages, model, contextLength, 'custom_prompt', 'multifile');
242
- }
243
- /**
244
- * Single-file prompt stages - optimized for universal custom tasks
245
- */
246
- getSingleFilePromptStages(params) {
247
- const { prompt, code, language, analysisDepth, analysisType, context, working_directory } = params;
248
- let systemAndContext = `You are an expert AI assistant specializing in ${analysisDepth} ${analysisType} tasks.
249
-
250
- **Your Role**: Universal problem-solver and task executor with full access to dynamic token allocation
251
- **Analysis Context**:
252
- - Task Type: ${analysisType}
253
- - Analysis Depth: ${analysisDepth}
254
- - Language: ${language}
255
- - Mode: Single File/Context Analysis
256
- - Token Allocation: Dynamic (optimized for your current model's context window)
257
-
258
- **Your Mission**: Execute the custom task with precision, creativity, and actionable results. You have access to the full context window of the loaded model, so don't hesitate to be comprehensive when the task requires it. You are the Swiss Army knife - adaptable, reliable, and comprehensive.`;
259
- if (working_directory) {
260
- systemAndContext += `\n- Working Directory: ${working_directory}`;
261
- }
262
- if (context) {
263
- systemAndContext += `\n\n**Task Context**:`;
264
- if (context.task_type)
265
- systemAndContext += `\n- Task Type: ${context.task_type}`;
266
- if (context.requirements)
267
- systemAndContext += `\n- Requirements: ${Array.isArray(context.requirements) ? context.requirements.join(', ') : context.requirements}`;
268
- if (context.constraints)
269
- systemAndContext += `\n- Constraints: ${Array.isArray(context.constraints) ? context.constraints.join(', ') : context.constraints}`;
270
- if (context.output_format)
271
- systemAndContext += `\n- Output Format: ${context.output_format}`;
272
- }
273
- let dataPayload = '';
274
- if (code && code.trim()) {
275
- dataPayload = `**File Content for Analysis:**
276
-
277
- \`\`\`${language}
278
- ${code}
279
- \`\`\``;
280
- }
281
- else {
282
- dataPayload = `**Context**: Ready to execute custom task without specific file context.`;
283
- }
284
- const outputInstructions = `**CUSTOM TASK TO EXECUTE:**
285
-
286
- ${prompt}
287
-
288
- **Your Response Should:**
289
- - Directly address the task requirements
290
- - Be actionable and practical
291
- - Match the requested output format (if specified)
292
- - Demonstrate deep understanding and expertise
293
- - Provide clear, implementable solutions
294
-
295
- Execute this task with excellence and precision. You are Claude's trusted specialist for custom operations.`;
296
- return { systemAndContext, dataPayload, outputInstructions };
297
- }
298
- /**
299
- * Multi-file prompt stages - optimized for complex custom tasks across multiple files
300
- */
301
- getMultiFilePromptStages(params) {
302
- const { prompt, analysisResult, analysisType, analysisDepth, fileCount, context, working_directory } = params;
303
- let systemAndContext = `You are an expert multi-file AI analyst specializing in ${analysisDepth} ${analysisType} tasks.
304
-
305
- **Your Role**: Advanced multi-file task executor and architectural consultant with full dynamic token access
306
- **Analysis Context**:
307
- - Task Type: ${analysisType}
308
- - Analysis Depth: ${analysisDepth}
309
- - Files Processed: ${fileCount}
310
- - Mode: Multi-File Custom Analysis
311
- - Token Allocation: Dynamic (full model context window available)
312
-
313
- **Your Mission**: Execute complex custom tasks across multiple files with comprehensive understanding. You have access to the full context window, so provide detailed, thorough analysis when appropriate. You excel at seeing patterns, relationships, and providing strategic insights across entire codebases and project structures.`;
314
- if (working_directory) {
315
- systemAndContext += `\n- Working Directory: ${working_directory}`;
316
- }
317
- if (context) {
318
- systemAndContext += `\n\n**Task Context**:`;
319
- if (context.task_type)
320
- systemAndContext += `\n- Task Type: ${context.task_type}`;
321
- if (context.requirements)
322
- systemAndContext += `\n- Requirements: ${Array.isArray(context.requirements) ? context.requirements.join(', ') : context.requirements}`;
323
- if (context.constraints)
324
- systemAndContext += `\n- Constraints: ${Array.isArray(context.constraints) ? context.constraints.join(', ') : context.constraints}`;
325
- if (context.output_format)
326
- systemAndContext += `\n- Output Format: ${context.output_format}`;
327
- }
328
- const dataPayload = `**Multi-File Analysis Results:**
329
-
330
- ${JSON.stringify(analysisResult, null, 2)}
331
-
332
- **Files Analyzed**: ${fileCount} files processed across the project structure.`;
333
- const outputInstructions = `**CUSTOM MULTI-FILE TASK TO EXECUTE:**
334
-
335
- ${prompt}
336
-
337
- **Your Multi-File Response Should:**
338
- - Synthesize insights across all ${fileCount} analyzed files
339
- - Identify cross-file patterns, dependencies, and relationships
340
- - Provide architectural and strategic recommendations
341
- - Address the task with comprehensive project-wide understanding
342
- - Deliver actionable results that consider the entire codebase context
343
- - Match any specified output format requirements
344
-
345
- Execute this complex multi-file task with expert-level analysis and strategic thinking. You are Claude's advanced specialist for comprehensive project-wide operations.`;
346
- return { systemAndContext, dataPayload, outputInstructions };
347
- }
348
- /**
349
- * Backwards compatibility method
350
- */
351
- getPromptStages(params) {
352
- const mode = this.detectAnalysisMode(params);
353
- if (mode === 'single-file') {
354
- return this.getSingleFilePromptStages(params);
355
- }
356
- else {
357
- return this.getMultiFilePromptStages(params);
358
- }
359
- }
360
- // Multi-file helper methods
361
- async discoverRelevantFiles(projectPath, maxDepth, analysisType) {
362
- const extensions = this.getFileExtensions(analysisType);
363
- return await this.multiFileAnalysis.discoverFiles(projectPath, extensions, maxDepth);
364
- }
365
- async performMultiFileAnalysis(files, params, model, contextLength) {
366
- const cacheKey = this.analysisCache.generateKey('custom_prompt', params, files);
367
- const cached = await this.analysisCache.get(cacheKey);
368
- if (cached)
369
- return cached;
370
- const fileAnalysisResults = await this.multiFileAnalysis.analyzeBatch(files, (file) => this.analyzeIndividualFile(file, params, model), contextLength);
371
- // Aggregate results into proper analysis result format
372
- const aggregatedResult = {
373
- summary: `Multi-file custom task analysis of ${files.length} files`,
374
- findings: fileAnalysisResults,
375
- data: {
376
- fileCount: files.length,
377
- totalSize: fileAnalysisResults.reduce((sum, result) => sum + (result.size || 0), 0),
378
- customTaskContext: {
379
- prompt: params.prompt,
380
- analysisType: params.analysisType,
381
- context: params.context
382
- }
383
- }
384
- };
385
- await this.analysisCache.cacheAnalysis(cacheKey, aggregatedResult, {
386
- modelUsed: model.identifier || 'unknown',
387
- executionTime: Date.now() - Date.now(), // TODO: Track actual execution time
388
- timestamp: new Date().toISOString()
389
- });
390
- return aggregatedResult;
391
- }
392
- async analyzeIndividualFile(file, params, model) {
393
- const content = await import('fs/promises').then(fs => fs.readFile(file, 'utf-8'));
394
- return {
395
- filePath: file,
396
- size: content.length,
397
- lines: content.split('\n').length,
398
- extension: file.split('.').pop() || '',
399
- customContext: {
400
- taskType: params.analysisType,
401
- prompt: params.prompt
402
- }
403
- };
404
- }
405
- getFileExtensions(analysisType) {
406
- const extensionMap = {
407
- 'general': ['.js', '.ts', '.jsx', '.tsx', '.php', '.py', '.java', '.md', '.txt', '.json', '.xml', '.css', '.html'],
408
- 'technical': ['.js', '.ts', '.jsx', '.tsx', '.php', '.py', '.java', '.cs', '.cpp', '.h', '.go', '.rs', '.rb'],
409
- 'creative': ['.md', '.txt', '.html', '.css', '.json', '.xml', '.yml', '.yaml'],
410
- 'analytical': ['.js', '.ts', '.jsx', '.tsx', '.php', '.py', '.java', '.json', '.csv', '.sql', '.md']
411
- };
412
- return extensionMap[analysisType] || extensionMap.general;
413
- }
414
- generateCacheKey(files, params) {
415
- const fileHash = files.join('|');
416
- const paramHash = JSON.stringify(params);
417
- return `${fileHash}_${paramHash}`.substring(0, 64);
418
- }
419
- }
420
- export default CustomPromptExecutor;
421
- //# sourceMappingURL=custom-prompt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-prompt.js","sourceRoot":"","sources":["../../../src/prompts/custom/custom-prompt.ts"],"names":[],"mappings":"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"}