@houtini/lm 1.0.12 → 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 (263) hide show
  1. package/README.md +5 -6
  2. package/dist/index.d.ts +5 -3
  3. package/dist/index.js +142 -213
  4. package/dist/index.js.map +1 -1
  5. package/package.json +10 -33
  6. package/CHANGELOG.md +0 -282
  7. package/dist/cache/analysis-cache.d.ts +0 -33
  8. package/dist/cache/analysis-cache.d.ts.map +0 -1
  9. package/dist/cache/analysis-cache.js +0 -56
  10. package/dist/cache/analysis-cache.js.map +0 -1
  11. package/dist/cache/cache-manager.d.ts +0 -29
  12. package/dist/cache/cache-manager.d.ts.map +0 -1
  13. package/dist/cache/cache-manager.js +0 -85
  14. package/dist/cache/cache-manager.js.map +0 -1
  15. package/dist/cache/index.d.ts +0 -16
  16. package/dist/cache/index.d.ts.map +0 -1
  17. package/dist/cache/index.js +0 -17
  18. package/dist/cache/index.js.map +0 -1
  19. package/dist/cache/prompt-cache.d.ts +0 -33
  20. package/dist/cache/prompt-cache.d.ts.map +0 -1
  21. package/dist/cache/prompt-cache.js +0 -61
  22. package/dist/cache/prompt-cache.js.map +0 -1
  23. package/dist/config.d.ts +0 -41
  24. package/dist/config.d.ts.map +0 -1
  25. package/dist/config.js +0 -71
  26. package/dist/config.js.map +0 -1
  27. package/dist/core/ThreeStagePromptManager.d.ts +0 -23
  28. package/dist/core/ThreeStagePromptManager.d.ts.map +0 -1
  29. package/dist/core/ThreeStagePromptManager.js +0 -118
  30. package/dist/core/ThreeStagePromptManager.js.map +0 -1
  31. package/dist/index.d.ts.map +0 -1
  32. package/dist/plugins/base-plugin.d.ts +0 -55
  33. package/dist/plugins/base-plugin.d.ts.map +0 -1
  34. package/dist/plugins/base-plugin.js +0 -120
  35. package/dist/plugins/base-plugin.js.map +0 -1
  36. package/dist/plugins/index.d.ts +0 -58
  37. package/dist/plugins/index.d.ts.map +0 -1
  38. package/dist/plugins/index.js +0 -162
  39. package/dist/plugins/index.js.map +0 -1
  40. package/dist/plugins/types.d.ts +0 -5
  41. package/dist/plugins/types.d.ts.map +0 -1
  42. package/dist/plugins/types.js +0 -5
  43. package/dist/plugins/types.js.map +0 -1
  44. package/dist/prompts/analyze/code-quality.d.ts +0 -116
  45. package/dist/prompts/analyze/code-quality.d.ts.map +0 -1
  46. package/dist/prompts/analyze/code-quality.js +0 -437
  47. package/dist/prompts/analyze/code-quality.js.map +0 -1
  48. package/dist/prompts/analyze/compare-integration.d.ts +0 -130
  49. package/dist/prompts/analyze/compare-integration.d.ts.map +0 -1
  50. package/dist/prompts/analyze/compare-integration.js +0 -547
  51. package/dist/prompts/analyze/compare-integration.js.map +0 -1
  52. package/dist/prompts/analyze/count-files.d.ts +0 -109
  53. package/dist/prompts/analyze/count-files.d.ts.map +0 -1
  54. package/dist/prompts/analyze/count-files.js +0 -403
  55. package/dist/prompts/analyze/count-files.js.map +0 -1
  56. package/dist/prompts/analyze/database-queries.d.ts +0 -156
  57. package/dist/prompts/analyze/database-queries.d.ts.map +0 -1
  58. package/dist/prompts/analyze/database-queries.js +0 -763
  59. package/dist/prompts/analyze/database-queries.js.map +0 -1
  60. package/dist/prompts/analyze/dependencies.d.ts +0 -97
  61. package/dist/prompts/analyze/dependencies.d.ts.map +0 -1
  62. package/dist/prompts/analyze/dependencies.js +0 -337
  63. package/dist/prompts/analyze/dependencies.js.map +0 -1
  64. package/dist/prompts/analyze/diff-signatures.d.ts +0 -139
  65. package/dist/prompts/analyze/diff-signatures.d.ts.map +0 -1
  66. package/dist/prompts/analyze/diff-signatures.js +0 -708
  67. package/dist/prompts/analyze/diff-signatures.js.map +0 -1
  68. package/dist/prompts/analyze/find-patterns.d.ts +0 -128
  69. package/dist/prompts/analyze/find-patterns.d.ts.map +0 -1
  70. package/dist/prompts/analyze/find-patterns.js +0 -524
  71. package/dist/prompts/analyze/find-patterns.js.map +0 -1
  72. package/dist/prompts/analyze/find-unused-css.d.ts +0 -151
  73. package/dist/prompts/analyze/find-unused-css.d.ts.map +0 -1
  74. package/dist/prompts/analyze/find-unused-css.js +0 -760
  75. package/dist/prompts/analyze/find-unused-css.js.map +0 -1
  76. package/dist/prompts/analyze/n8n-workflow.d.ts +0 -137
  77. package/dist/prompts/analyze/n8n-workflow.d.ts.map +0 -1
  78. package/dist/prompts/analyze/n8n-workflow.js +0 -533
  79. package/dist/prompts/analyze/n8n-workflow.js.map +0 -1
  80. package/dist/prompts/analyze/project-structure.d.ts +0 -126
  81. package/dist/prompts/analyze/project-structure.d.ts.map +0 -1
  82. package/dist/prompts/analyze/project-structure.js +0 -573
  83. package/dist/prompts/analyze/project-structure.js.map +0 -1
  84. package/dist/prompts/analyze/security-audit.d.ts +0 -142
  85. package/dist/prompts/analyze/security-audit.d.ts.map +0 -1
  86. package/dist/prompts/analyze/security-audit.js +0 -641
  87. package/dist/prompts/analyze/security-audit.js.map +0 -1
  88. package/dist/prompts/analyze/single-file.d.ts +0 -162
  89. package/dist/prompts/analyze/single-file.d.ts.map +0 -1
  90. package/dist/prompts/analyze/single-file.js +0 -669
  91. package/dist/prompts/analyze/single-file.js.map +0 -1
  92. package/dist/prompts/analyze/trace-execution.d.ts +0 -126
  93. package/dist/prompts/analyze/trace-execution.d.ts.map +0 -1
  94. package/dist/prompts/analyze/trace-execution.js +0 -613
  95. package/dist/prompts/analyze/trace-execution.js.map +0 -1
  96. package/dist/prompts/analyze/wordpress-plugin-audit.d.ts +0 -116
  97. package/dist/prompts/analyze/wordpress-plugin-audit.d.ts.map +0 -1
  98. package/dist/prompts/analyze/wordpress-plugin-audit.js +0 -456
  99. package/dist/prompts/analyze/wordpress-plugin-audit.js.map +0 -1
  100. package/dist/prompts/analyze/wordpress-plugin-readiness.d.ts +0 -103
  101. package/dist/prompts/analyze/wordpress-plugin-readiness.d.ts.map +0 -1
  102. package/dist/prompts/analyze/wordpress-plugin-readiness.js +0 -506
  103. package/dist/prompts/analyze/wordpress-plugin-readiness.js.map +0 -1
  104. package/dist/prompts/analyze/wordpress-security.d.ts +0 -146
  105. package/dist/prompts/analyze/wordpress-security.d.ts.map +0 -1
  106. package/dist/prompts/analyze/wordpress-security.js +0 -702
  107. package/dist/prompts/analyze/wordpress-security.js.map +0 -1
  108. package/dist/prompts/analyze/wordpress-theme-audit.d.ts +0 -114
  109. package/dist/prompts/analyze/wordpress-theme-audit.d.ts.map +0 -1
  110. package/dist/prompts/analyze/wordpress-theme-audit.js +0 -540
  111. package/dist/prompts/analyze/wordpress-theme-audit.js.map +0 -1
  112. package/dist/prompts/custom/custom-prompt.d.ts +0 -135
  113. package/dist/prompts/custom/custom-prompt.d.ts.map +0 -1
  114. package/dist/prompts/custom/custom-prompt.js +0 -421
  115. package/dist/prompts/custom/custom-prompt.js.map +0 -1
  116. package/dist/prompts/fun/arcade-game.d.ts +0 -152
  117. package/dist/prompts/fun/arcade-game.d.ts.map +0 -1
  118. package/dist/prompts/fun/arcade-game.js +0 -657
  119. package/dist/prompts/fun/arcade-game.js.map +0 -1
  120. package/dist/prompts/fun/create_text_adventure.d.ts +0 -100
  121. package/dist/prompts/fun/create_text_adventure.d.ts.map +0 -1
  122. package/dist/prompts/fun/create_text_adventure.js +0 -401
  123. package/dist/prompts/fun/create_text_adventure.js.map +0 -1
  124. package/dist/prompts/fun/css-art-generator.d.ts +0 -168
  125. package/dist/prompts/fun/css-art-generator.d.ts.map +0 -1
  126. package/dist/prompts/fun/css-art-generator.js +0 -831
  127. package/dist/prompts/fun/css-art-generator.js.map +0 -1
  128. package/dist/prompts/generate/project-documentation.d.ts +0 -137
  129. package/dist/prompts/generate/project-documentation.d.ts.map +0 -1
  130. package/dist/prompts/generate/project-documentation.js +0 -670
  131. package/dist/prompts/generate/project-documentation.js.map +0 -1
  132. package/dist/prompts/generate/refactoring.d.ts +0 -164
  133. package/dist/prompts/generate/refactoring.d.ts.map +0 -1
  134. package/dist/prompts/generate/refactoring.js +0 -625
  135. package/dist/prompts/generate/refactoring.js.map +0 -1
  136. package/dist/prompts/generate/responsive-component.d.ts +0 -147
  137. package/dist/prompts/generate/responsive-component.d.ts.map +0 -1
  138. package/dist/prompts/generate/responsive-component.js +0 -957
  139. package/dist/prompts/generate/responsive-component.js.map +0 -1
  140. package/dist/prompts/generate/typescript-conversion.d.ts +0 -144
  141. package/dist/prompts/generate/typescript-conversion.d.ts.map +0 -1
  142. package/dist/prompts/generate/typescript-conversion.js +0 -531
  143. package/dist/prompts/generate/typescript-conversion.js.map +0 -1
  144. package/dist/prompts/generate/unit-tests.d.ts +0 -139
  145. package/dist/prompts/generate/unit-tests.d.ts.map +0 -1
  146. package/dist/prompts/generate/unit-tests.js +0 -582
  147. package/dist/prompts/generate/unit-tests.js.map +0 -1
  148. package/dist/prompts/generate/wordpress-plugin.d.ts +0 -179
  149. package/dist/prompts/generate/wordpress-plugin.d.ts.map +0 -1
  150. package/dist/prompts/generate/wordpress-plugin.js +0 -767
  151. package/dist/prompts/generate/wordpress-plugin.js.map +0 -1
  152. package/dist/prompts/generate/wordpress-theme-from-static.d.ts +0 -177
  153. package/dist/prompts/generate/wordpress-theme-from-static.d.ts.map +0 -1
  154. package/dist/prompts/generate/wordpress-theme-from-static.js +0 -699
  155. package/dist/prompts/generate/wordpress-theme-from-static.js.map +0 -1
  156. package/dist/prompts/shared/cache-manager.d.ts +0 -45
  157. package/dist/prompts/shared/cache-manager.d.ts.map +0 -1
  158. package/dist/prompts/shared/cache-manager.js +0 -129
  159. package/dist/prompts/shared/cache-manager.js.map +0 -1
  160. package/dist/prompts/shared/helpers.d.ts +0 -39
  161. package/dist/prompts/shared/helpers.d.ts.map +0 -1
  162. package/dist/prompts/shared/helpers.js +0 -151
  163. package/dist/prompts/shared/helpers.js.map +0 -1
  164. package/dist/prompts/shared/templates.d.ts +0 -35
  165. package/dist/prompts/shared/templates.d.ts.map +0 -1
  166. package/dist/prompts/shared/templates.js +0 -77
  167. package/dist/prompts/shared/templates.js.map +0 -1
  168. package/dist/prompts/shared/types.d.ts +0 -112
  169. package/dist/prompts/shared/types.d.ts.map +0 -1
  170. package/dist/prompts/shared/types.js +0 -5
  171. package/dist/prompts/shared/types.js.map +0 -1
  172. package/dist/prompts/system/find-unused-files.d.ts +0 -106
  173. package/dist/prompts/system/find-unused-files.d.ts.map +0 -1
  174. package/dist/prompts/system/find-unused-files.js +0 -357
  175. package/dist/prompts/system/find-unused-files.js.map +0 -1
  176. package/dist/security/index.d.ts +0 -39
  177. package/dist/security/index.d.ts.map +0 -1
  178. package/dist/security/index.js +0 -46
  179. package/dist/security/index.js.map +0 -1
  180. package/dist/security/integration-helpers.d.ts +0 -121
  181. package/dist/security/integration-helpers.d.ts.map +0 -1
  182. package/dist/security/integration-helpers.js +0 -190
  183. package/dist/security/integration-helpers.js.map +0 -1
  184. package/dist/security/output-encoder.d.ts +0 -94
  185. package/dist/security/output-encoder.d.ts.map +0 -1
  186. package/dist/security/output-encoder.js +0 -295
  187. package/dist/security/output-encoder.js.map +0 -1
  188. package/dist/security/prompt-injection-guard.d.ts +0 -59
  189. package/dist/security/prompt-injection-guard.d.ts.map +0 -1
  190. package/dist/security/prompt-injection-guard.js +0 -249
  191. package/dist/security/prompt-injection-guard.js.map +0 -1
  192. package/dist/security/sanitisation.d.ts +0 -67
  193. package/dist/security/sanitisation.d.ts.map +0 -1
  194. package/dist/security/sanitisation.js +0 -398
  195. package/dist/security/sanitisation.js.map +0 -1
  196. package/dist/security/security-service.d.ts +0 -103
  197. package/dist/security/security-service.d.ts.map +0 -1
  198. package/dist/security/security-service.js +0 -303
  199. package/dist/security/security-service.js.map +0 -1
  200. package/dist/security-config.d.ts +0 -45
  201. package/dist/security-config.d.ts.map +0 -1
  202. package/dist/security-config.js +0 -63
  203. package/dist/security-config.js.map +0 -1
  204. package/dist/system/function-list.d.ts +0 -61
  205. package/dist/system/function-list.d.ts.map +0 -1
  206. package/dist/system/function-list.js +0 -111
  207. package/dist/system/function-list.js.map +0 -1
  208. package/dist/system/function-registry.d.ts +0 -23
  209. package/dist/system/function-registry.d.ts.map +0 -1
  210. package/dist/system/function-registry.js +0 -136
  211. package/dist/system/function-registry.js.map +0 -1
  212. package/dist/system/health-check.d.ts +0 -33
  213. package/dist/system/health-check.d.ts.map +0 -1
  214. package/dist/system/health-check.js +0 -98
  215. package/dist/system/health-check.js.map +0 -1
  216. package/dist/system/path-resolver.d.ts +0 -55
  217. package/dist/system/path-resolver.d.ts.map +0 -1
  218. package/dist/system/path-resolver.js +0 -90
  219. package/dist/system/path-resolver.js.map +0 -1
  220. package/dist/templates/plugin-template.d.ts +0 -121
  221. package/dist/templates/plugin-template.d.ts.map +0 -1
  222. package/dist/templates/plugin-template.js +0 -454
  223. package/dist/templates/plugin-template.js.map +0 -1
  224. package/dist/types/chunking-types.d.ts +0 -88
  225. package/dist/types/chunking-types.d.ts.map +0 -1
  226. package/dist/types/chunking-types.js +0 -18
  227. package/dist/types/chunking-types.js.map +0 -1
  228. package/dist/types/prompt-stages.d.ts +0 -30
  229. package/dist/types/prompt-stages.d.ts.map +0 -1
  230. package/dist/types/prompt-stages.js +0 -6
  231. package/dist/types/prompt-stages.js.map +0 -1
  232. package/dist/types.d.ts +0 -45
  233. package/dist/types.d.ts.map +0 -1
  234. package/dist/types.js +0 -6
  235. package/dist/types.js.map +0 -1
  236. package/dist/utils/css-parser.d.ts +0 -26
  237. package/dist/utils/css-parser.d.ts.map +0 -1
  238. package/dist/utils/css-parser.js +0 -117
  239. package/dist/utils/css-parser.js.map +0 -1
  240. package/dist/utils/path-resolver.d.ts +0 -13
  241. package/dist/utils/path-resolver.d.ts.map +0 -1
  242. package/dist/utils/path-resolver.js +0 -78
  243. package/dist/utils/path-resolver.js.map +0 -1
  244. package/dist/utils/plugin-utilities.d.ts +0 -176
  245. package/dist/utils/plugin-utilities.d.ts.map +0 -1
  246. package/dist/utils/plugin-utilities.js +0 -269
  247. package/dist/utils/plugin-utilities.js.map +0 -1
  248. package/dist/utils/streamHandler.d.ts +0 -3
  249. package/dist/utils/streamHandler.d.ts.map +0 -1
  250. package/dist/utils/streamHandler.js +0 -137
  251. package/dist/utils/streamHandler.js.map +0 -1
  252. package/dist/validation/output-validator.d.ts +0 -136
  253. package/dist/validation/output-validator.d.ts.map +0 -1
  254. package/dist/validation/output-validator.js +0 -262
  255. package/dist/validation/output-validator.js.map +0 -1
  256. package/dist/validation/response-factory.d.ts +0 -44
  257. package/dist/validation/response-factory.d.ts.map +0 -1
  258. package/dist/validation/response-factory.js +0 -202
  259. package/dist/validation/response-factory.js.map +0 -1
  260. package/dist/validation/schemas.d.ts +0 -519
  261. package/dist/validation/schemas.d.ts.map +0 -1
  262. package/dist/validation/schemas.js +0 -6
  263. package/dist/validation/schemas.js.map +0 -1
@@ -1,613 +0,0 @@
1
- /**
2
- * Plugin Template - Modern v4.2 (Single Source of Truth)
3
- *
4
- * Universal template that intelligently handles both single-file and multi-file analysis
5
- * Automatically detects analysis type based on provided parameters
6
- *
7
- * Copy this template for creating any new plugin - it adapts to your needs
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 ExecutionPathTracer extends BasePlugin {
16
- constructor() {
17
- super();
18
- this.name = 'trace_execution_path';
19
- this.category = 'analyze';
20
- this.description = 'Trace execution path through multiple files starting from an entry point. Shows complete call flow with intelligent analysis and architectural insights.';
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 (for multi-file analysis)',
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
- // Execution tracing specific parameters
53
- entryPoint: {
54
- type: 'string',
55
- description: 'Entry point like ClassName::methodName or functionName',
56
- required: true
57
- },
58
- traceDepth: {
59
- type: 'number',
60
- description: 'Maximum depth to trace (1-10)',
61
- required: false,
62
- default: 5
63
- },
64
- showParameters: {
65
- type: 'boolean',
66
- description: 'Include parameter information in trace',
67
- required: false,
68
- default: false
69
- },
70
- // Universal parameters
71
- language: {
72
- type: 'string',
73
- description: 'Programming language',
74
- required: false,
75
- default: 'javascript'
76
- },
77
- analysisDepth: {
78
- type: 'string',
79
- description: 'Level of analysis detail',
80
- enum: ['basic', 'detailed', 'comprehensive'],
81
- default: 'detailed',
82
- required: false
83
- },
84
- analysisType: {
85
- type: 'string',
86
- description: 'Type of analysis to perform',
87
- enum: ['execution-flow', 'call-graph', 'comprehensive'],
88
- default: 'comprehensive',
89
- required: false
90
- }
91
- };
92
- this.analysisCache = getAnalysisCache();
93
- this.multiFileAnalysis = new MultiFileAnalysis();
94
- // Cache and analysis utilities are initialized above
95
- }
96
- async execute(params, llmClient) {
97
- return await withSecurity(this, params, llmClient, async (secureParams) => {
98
- try {
99
- // 1. Auto-detect analysis mode based on parameters
100
- const analysisMode = this.detectAnalysisMode(secureParams);
101
- // 2. Validate parameters based on detected mode
102
- this.validateParameters(secureParams, analysisMode);
103
- // 3. Setup model
104
- const { model, contextLength } = await ModelSetup.getReadyModel(llmClient);
105
- // 4. Route to appropriate analysis method
106
- if (analysisMode === 'single-file') {
107
- return await this.executeSingleFileAnalysis(secureParams, model, contextLength);
108
- }
109
- else {
110
- return await this.executeMultiFileAnalysis(secureParams, model, contextLength);
111
- }
112
- }
113
- catch (error) {
114
- return ErrorHandler.createExecutionError('trace_execution_path', error);
115
- }
116
- });
117
- }
118
- /**
119
- * Auto-detect whether this is single-file or multi-file analysis
120
- */
121
- detectAnalysisMode(params) {
122
- // Single-file indicators take priority (avoids default parameter issues)
123
- if (params.code || params.filePath) {
124
- return 'single-file';
125
- }
126
- // Multi-file indicators
127
- if (params.projectPath || params.files) {
128
- return 'multi-file';
129
- }
130
- // Default to multi-file for execution tracing (usually spans multiple files)
131
- return 'multi-file';
132
- }
133
- /**
134
- * Validate parameters based on detected analysis mode
135
- */
136
- validateParameters(params, mode) {
137
- if (mode === 'single-file') {
138
- ParameterValidator.validateCodeOrFile(params);
139
- }
140
- else {
141
- ParameterValidator.validateProjectPath(params);
142
- ParameterValidator.validateDepth(params, 1, 5);
143
- }
144
- // Execution tracing specific validations
145
- if (!params.entryPoint || typeof params.entryPoint !== 'string') {
146
- throw new Error('Entry point is required and must be a string (e.g., "ClassName::methodName" or "functionName")');
147
- }
148
- // Validate trace depth
149
- if (params.traceDepth && (params.traceDepth < 1 || params.traceDepth > 10)) {
150
- throw new Error('Trace depth must be between 1 and 10');
151
- }
152
- // Universal validations
153
- ParameterValidator.validateEnum(params, 'analysisType', ['execution-flow', 'call-graph', 'comprehensive']);
154
- ParameterValidator.validateEnum(params, 'analysisDepth', ['basic', 'detailed', 'comprehensive']);
155
- }
156
- /**
157
- * Execute single-file analysis
158
- */
159
- async executeSingleFileAnalysis(params, model, contextLength) {
160
- // Process single file input
161
- let codeToAnalyze = params.code;
162
- if (params.filePath) {
163
- codeToAnalyze = await readFileContent(params.filePath);
164
- }
165
- // Generate prompt stages for single file
166
- const promptStages = this.getSingleFilePromptStages({
167
- ...params,
168
- code: codeToAnalyze
169
- });
170
- // Execute with appropriate method
171
- const promptManager = new ThreeStagePromptManager();
172
- const needsChunking = TokenCalculator.needsChunking(promptStages, contextLength);
173
- if (needsChunking) {
174
- const chunkSize = TokenCalculator.calculateOptimalChunkSize(promptStages, contextLength);
175
- const dataChunks = promptManager.chunkDataPayload(promptStages.dataPayload, chunkSize);
176
- const conversation = promptManager.createChunkedConversation(promptStages, dataChunks);
177
- const messages = [
178
- conversation.systemMessage,
179
- ...conversation.dataMessages,
180
- conversation.analysisMessage
181
- ];
182
- return await ResponseProcessor.executeChunked(messages, model, contextLength, 'trace_execution_path', 'single');
183
- }
184
- else {
185
- return await ResponseProcessor.executeDirect(promptStages, model, contextLength, 'trace_execution_path');
186
- }
187
- }
188
- /**
189
- * Execute multi-file analysis
190
- */
191
- async executeMultiFileAnalysis(params, model, contextLength) {
192
- // Discover files
193
- let filesToAnalyze = params.files ||
194
- await this.discoverRelevantFiles(params.projectPath, params.maxDepth, params.analysisType);
195
- // Perform multi-file analysis with caching
196
- const analysisResult = await this.performMultiFileAnalysis(filesToAnalyze, params, model, contextLength);
197
- // Generate prompt stages for multi-file
198
- const promptStages = this.getMultiFilePromptStages({
199
- ...params,
200
- analysisResult,
201
- fileCount: filesToAnalyze.length
202
- });
203
- // Always use chunking for multi-file
204
- const promptManager = new ThreeStagePromptManager();
205
- const chunkSize = TokenCalculator.calculateOptimalChunkSize(promptStages, contextLength);
206
- const dataChunks = promptManager.chunkDataPayload(promptStages.dataPayload, chunkSize);
207
- const conversation = promptManager.createChunkedConversation(promptStages, dataChunks);
208
- const messages = [
209
- conversation.systemMessage,
210
- ...conversation.dataMessages,
211
- conversation.analysisMessage
212
- ];
213
- return await ResponseProcessor.executeChunked(messages, model, contextLength, 'trace_execution_path', 'multifile');
214
- }
215
- /**
216
- * Single-file execution tracing prompt stages
217
- */
218
- getSingleFilePromptStages(params) {
219
- const { code, language, analysisDepth, analysisType, entryPoint, traceDepth, showParameters } = params;
220
- const systemAndContext = `You are an expert execution flow analyst and senior software architect specializing in ${analysisDepth} ${analysisType} analysis.
221
-
222
- Your expertise spans 15+ years in software architecture, debugging, performance optimization, and code analysis across multiple programming languages and paradigms.
223
-
224
- Analysis Context:
225
- - Language: ${language}
226
- - Analysis Depth: ${analysisDepth}
227
- - Analysis Type: ${analysisType}
228
- - Entry Point: ${entryPoint}
229
- - Trace Depth: ${traceDepth} levels
230
- - Parameter Details: ${showParameters ? 'Include full method signatures and parameters' : 'Focus on method names and call flow'}
231
- - Mode: Single File Execution Analysis
232
-
233
- CORE COMPETENCIES:
234
- - Execution flow tracing and call graph analysis
235
- - Performance bottleneck identification
236
- - Architecture pattern recognition
237
- - Cross-cutting concern analysis
238
- - Error handling pathway evaluation
239
- - Code quality and maintainability assessment
240
-
241
- Your task is to trace the execution path starting from the specified entry point within this single file, providing deep architectural insights and actionable recommendations for optimization and improvement.`;
242
- const dataPayload = `Code to analyze for execution tracing:
243
-
244
- Entry Point: ${entryPoint}
245
-
246
- \`\`\`${language}
247
- ${code}
248
- \`\`\``;
249
- const outputInstructions = `EXECUTION TRACING ANALYSIS - SINGLE FILE
250
-
251
- Perform comprehensive execution flow analysis starting from: **${entryPoint}**
252
-
253
- ## 1. ENTRY POINT VALIDATION
254
- - Locate the exact entry point in the provided code
255
- - Verify the entry point signature and accessibility
256
- - Note the initial execution context (function, method, closure scope)
257
-
258
- ## 2. EXECUTION FLOW TRACING
259
- Trace the execution path step-by-step up to ${traceDepth} levels deep:
260
-
261
- **Flow Visualization:**
262
- \`\`\`
263
- ${entryPoint}
264
- ├─> Step 1: [Line X] FunctionCall${showParameters ? '(param1: type, param2: type)' : '()'}
265
- │ ├─> Step 1.1: [Line Y] SubFunction${showParameters ? '(args)' : ''}
266
- │ │ └─> Step 1.1.1: [Line Z] DeeperCall
267
- │ └─> Step 1.2: [Line A] ConditionalBranch
268
- ├─> Step 2: [Line B] NextOperation
269
- └─> Step 3: [Line C] FinalStep
270
- \`\`\`
271
-
272
- ${showParameters ? '**Include for each step:**\n- Full method signatures with parameter types\n- Actual arguments passed at each call site\n- Parameter transformations and validations' : '**Include for each step:**\n- Method/function names and line numbers\n- Conditional branches that affect flow\n- Loop iterations and recursive patterns'}
273
-
274
- ## 3. EXECUTION ANALYSIS
275
-
276
- **Control Flow Patterns:**
277
- - Conditional branches and their impact
278
- - Loop structures and iteration patterns
279
- - Exception handling and error paths
280
- - Asynchronous operations and callbacks
281
-
282
- **Data Flow Analysis:**
283
- - Variable mutations throughout execution
284
- - Parameter passing and transformation
285
- - Return value propagation
286
- - Side effects and state changes
287
-
288
- ## 4. PERFORMANCE INSIGHTS
289
-
290
- **Execution Characteristics:**
291
- - Computational complexity assessment
292
- - Potential performance bottlenecks
293
- - Resource usage patterns
294
- - Scalability considerations
295
-
296
- **Optimization Opportunities:**
297
- - Redundant operations identification
298
- - Caching potential
299
- - Algorithm improvement suggestions
300
- - Resource management optimizations
301
-
302
- ## 5. ARCHITECTURE QUALITY ASSESSMENT
303
-
304
- **Code Structure Analysis:**
305
- - Single Responsibility Principle adherence
306
- - Function/method length and complexity
307
- - Coupling and cohesion evaluation
308
- - Design pattern usage
309
-
310
- **Maintainability Factors:**
311
- - Code readability and clarity
312
- - Error handling robustness
313
- - Documentation coverage
314
- - Testing considerations
315
-
316
- ## 6. ACTIONABLE RECOMMENDATIONS
317
-
318
- **Immediate Improvements:**
319
- 1. [Specific, implementable suggestions]
320
- 2. [Performance optimizations]
321
- 3. [Code quality enhancements]
322
-
323
- **Strategic Refactoring Opportunities:**
324
- 1. [Architectural improvements]
325
- 2. [Design pattern implementations]
326
- 3. [Long-term maintainability enhancements]
327
-
328
- ## 7. EXECUTION SUMMARY
329
-
330
- Provide a concise summary:
331
- - **Total execution steps**: [count]
332
- - **Maximum depth reached**: [level]
333
- - **Conditional branches**: [count]
334
- - **Performance rating**: [Excellent/Good/Fair/Poor]
335
- - **Maintainability score**: [1-10 with rationale]
336
- - **Critical issues found**: [count and brief list]
337
-
338
- Focus on providing practical, actionable insights that help developers understand, debug, and optimize their code execution paths.`;
339
- return { systemAndContext, dataPayload, outputInstructions };
340
- }
341
- /**
342
- * Multi-file execution tracing prompt stages
343
- */
344
- getMultiFilePromptStages(params) {
345
- const { analysisResult, analysisType, analysisDepth, fileCount, entryPoint, traceDepth, showParameters } = params;
346
- const systemAndContext = `You are a senior software architect and execution flow expert specializing in ${analysisDepth} multi-file ${analysisType} analysis.
347
-
348
- With 15+ years of experience in complex system architecture, you excel at:
349
- - Cross-file execution tracing and dependency analysis
350
- - Large-scale system performance optimization
351
- - Architecture pattern identification across codebases
352
- - Inter-module communication analysis
353
- - System bottleneck detection and resolution
354
-
355
- Analysis Context:
356
- - Analysis Type: ${analysisType}
357
- - Analysis Depth: ${analysisDepth}
358
- - Files Analyzed: ${fileCount}
359
- - Entry Point: ${entryPoint}
360
- - Trace Depth: ${traceDepth} levels
361
- - Parameter Analysis: ${showParameters ? 'Include detailed signatures and data flow' : 'Focus on call patterns and structure'}
362
- - Mode: Multi-File Cross-System Analysis
363
-
364
- ADVANCED CAPABILITIES:
365
- - Cross-file execution path mapping
366
- - Inter-module dependency analysis
367
- - System-wide performance profiling
368
- - Architecture anti-pattern detection
369
- - Scalability and maintainability assessment
370
- - Integration point vulnerability analysis
371
-
372
- Your task is to trace execution flow across multiple files, providing strategic architectural insights and comprehensive system-level recommendations.`;
373
- const dataPayload = `Multi-file execution analysis results for entry point: ${entryPoint}
374
-
375
- ${JSON.stringify(analysisResult, null, 2)}`;
376
- const outputInstructions = `MULTI-FILE EXECUTION TRACING ANALYSIS
377
-
378
- Perform comprehensive cross-file execution flow analysis starting from: **${entryPoint}**
379
-
380
- ## 1. CROSS-FILE ENTRY POINT ANALYSIS
381
- - **Entry Point Location**: [File:Line] or analysis of likely location
382
- - **Initial Context**: [Module/Class/Namespace]
383
- - **Accessibility**: [Public/Private/Protected/Internal]
384
- - **Dependencies**: [Immediate imports/requires needed]
385
-
386
- ## 2. CROSS-FILE EXECUTION TRACE
387
-
388
- **System-Wide Execution Flow:**
389
- \`\`\`
390
- ${entryPoint} [EntryFile.ext:line]
391
- ├─> FileA.method1() [FileA.ext:line]
392
- │ ├─> FileB.helper() [FileB.ext:line]
393
- │ │ └─> FileC.utility() [FileC.ext:line]
394
- │ └─> FileA.validation() [FileA.ext:line]
395
- ├─> FileD.process() [FileD.ext:line]
396
- │ ├─> FileE.transform() [FileE.ext:line]
397
- │ └─> FileF.save() [FileF.ext:line]
398
- └─> FileA.cleanup() [FileA.ext:line]
399
- \`\`\`
400
-
401
- **File Transition Analysis:**
402
- For each cross-file call, detail:
403
- ${showParameters ? '- Full method signatures and parameter mappings\n- Data transformation between files\n- Interface contract compliance\n- Error propagation patterns' : '- Method names and call patterns\n- File-to-file dependencies\n- Interface boundaries\n- Error handling chains'}
404
-
405
- ## 3. SYSTEM ARCHITECTURE ANALYSIS
406
-
407
- **Module Interaction Patterns:**
408
- - **Coupling Analysis**: [Tight/Loose coupling assessment]
409
- - **Cohesion Evaluation**: [High/Medium/Low cohesion ratings]
410
- - **Dependency Direction**: [Proper/Circular/Inverted dependencies]
411
- - **Interface Quality**: [Clean/Complex/Inconsistent interfaces]
412
-
413
- **Cross-File Communication:**
414
- - **Data Flow Patterns**: [How data moves between files]
415
- - **Error Propagation**: [How errors bubble through the system]
416
- - **State Management**: [Shared state and mutation patterns]
417
- - **Resource Sharing**: [Database connections, file handles, etc.]
418
-
419
- ## 4. PERFORMANCE & SCALABILITY ASSESSMENT
420
-
421
- **System-Level Performance:**
422
- - **Cross-File Call Overhead**: [Network/I/O/Memory implications]
423
- - **Data Transfer Efficiency**: [Serialization, caching opportunities]
424
- - **Bottleneck Identification**: [Files/methods with highest call frequency]
425
- - **Scalability Constraints**: [System limits and growth barriers]
426
-
427
- **Resource Usage Analysis:**
428
- - **Memory Footprint**: [Object lifecycle across files]
429
- - **I/O Operations**: [File/database/network access patterns]
430
- - **CPU Utilization**: [Computational hotspots]
431
- - **Concurrency Considerations**: [Thread safety, async patterns]
432
-
433
- ## 5. ARCHITECTURE QUALITY & PATTERNS
434
-
435
- **Design Patterns Detected:**
436
- - **Structural Patterns**: [MVC, Layered Architecture, etc.]
437
- - **Behavioral Patterns**: [Observer, Command, Strategy, etc.]
438
- - **Integration Patterns**: [Facade, Adapter, Proxy, etc.]
439
-
440
- **Architecture Anti-Patterns:**
441
- - **God Object**: [Files/classes with too many responsibilities]
442
- - **Circular Dependencies**: [Problematic dependency cycles]
443
- - **Tight Coupling**: [Hard-to-change interdependencies]
444
- - **Inappropriate Intimacy**: [Classes knowing too much about each other]
445
-
446
- ## 6. CRITICAL SYSTEM ANALYSIS
447
-
448
- **Potential Issues Found:**
449
- - **Missing Error Handling**: [Unhandled exceptions across file boundaries]
450
- - **Resource Leaks**: [Unclosed connections, memory leaks]
451
- - **Security Vulnerabilities**: [Input validation gaps, injection points]
452
- - **Concurrency Issues**: [Race conditions, deadlock potential]
453
-
454
- **Integration Weaknesses:**
455
- - **Fragile Interfaces**: [Brittle contracts between modules]
456
- - **Single Points of Failure**: [Critical system dependencies]
457
- - **Data Consistency**: [State synchronization problems]
458
- - **Version Compatibility**: [API mismatch risks]
459
-
460
- ## 7. STRATEGIC RECOMMENDATIONS
461
-
462
- **Immediate Actions (High Priority):**
463
- 1. **Critical Fixes**: [Security/performance/stability issues]
464
- 2. **Quick Wins**: [Low-effort, high-impact improvements]
465
- 3. **Risk Mitigation**: [Address single points of failure]
466
-
467
- **Medium-Term Improvements:**
468
- 1. **Architecture Refactoring**: [Module restructuring opportunities]
469
- 2. **Performance Optimization**: [System-wide efficiency improvements]
470
- 3. **Interface Cleanup**: [API standardization and improvement]
471
-
472
- **Long-Term Strategic Initiatives:**
473
- 1. **Scalability Enhancements**: [Prepare for growth]
474
- 2. **Maintainability Improvements**: [Reduce technical debt]
475
- 3. **Technology Modernization**: [Upgrade opportunities]
476
-
477
- ## 8. EXECUTION FLOW SUMMARY
478
-
479
- **System Execution Characteristics:**
480
- - **Total Files Involved**: ${fileCount}
481
- - **Cross-File Transitions**: [count]
482
- - **Maximum Execution Depth**: [level reached]
483
- - **Circular Dependencies**: [count and severity]
484
- - **Performance Bottlenecks**: [top 3 critical areas]
485
-
486
- **System Health Assessment:**
487
- - **Architecture Quality**: [Excellent/Good/Fair/Poor]
488
- - **Maintainability Score**: [1-10 with detailed rationale]
489
- - **Scalability Rating**: [High/Medium/Low with constraints]
490
- - **Security Posture**: [Strong/Adequate/Weak with specific concerns]
491
-
492
- **Next Steps Priority Matrix:**
493
- | Priority | Action Item | Impact | Effort | Timeline |
494
- |----------|-------------|---------|--------|----------|
495
- | High | [Action] | High | Low | Week 1 |
496
- | Medium | [Action] | Medium | Medium | Month 1 |
497
- | Low | [Action] | High | High | Quarter |
498
-
499
- Focus on providing strategic, system-level insights that help architects and senior developers understand the holistic execution patterns and make informed decisions about system evolution and optimization.`;
500
- return { systemAndContext, dataPayload, outputInstructions };
501
- }
502
- /**
503
- * Implement for backwards compatibility
504
- * The system still expects this method, so we intelligently route to the appropriate stages
505
- */
506
- getPromptStages(params) {
507
- const mode = this.detectAnalysisMode(params);
508
- if (mode === 'single-file') {
509
- return this.getSingleFilePromptStages(params);
510
- }
511
- else {
512
- return this.getMultiFilePromptStages(params);
513
- }
514
- }
515
- // Multi-file helper methods
516
- async discoverRelevantFiles(projectPath, maxDepth, analysisType) {
517
- const extensions = this.getFileExtensions(analysisType);
518
- return await this.multiFileAnalysis.discoverFiles(projectPath, extensions, maxDepth);
519
- }
520
- async performMultiFileAnalysis(files, params, model, contextLength) {
521
- const cacheKey = this.analysisCache.generateKey('trace_execution_path', params, files);
522
- const cached = await this.analysisCache.get(cacheKey);
523
- if (cached)
524
- return cached;
525
- const fileAnalysisResults = await this.multiFileAnalysis.analyzeBatch(files, (file) => this.analyzeIndividualFile(file, params, model), contextLength);
526
- // Aggregate results into proper analysis result format
527
- const aggregatedResult = {
528
- summary: `Cross-file execution analysis of ${files.length} files for entry point: ${params.entryPoint}`,
529
- findings: fileAnalysisResults,
530
- data: {
531
- entryPoint: params.entryPoint,
532
- traceDepth: params.traceDepth,
533
- fileCount: files.length,
534
- totalSize: fileAnalysisResults.reduce((sum, result) => sum + (result.size || 0), 0),
535
- entryPointInfo: this.parseEntryPoint(params.entryPoint),
536
- crossFileTransitions: this.identifyPotentialTransitions(fileAnalysisResults, params.entryPoint)
537
- }
538
- };
539
- await this.analysisCache.cacheAnalysis(cacheKey, aggregatedResult, {
540
- modelUsed: model.identifier || 'unknown',
541
- executionTime: Date.now() - Date.now(), // TODO: Track actual execution time
542
- timestamp: new Date().toISOString()
543
- });
544
- return aggregatedResult;
545
- }
546
- async analyzeIndividualFile(file, params, model) {
547
- const content = await import('fs/promises').then(fs => fs.readFile(file, 'utf-8'));
548
- const stats = await import('fs/promises').then(fs => fs.stat(file));
549
- return {
550
- filePath: file,
551
- size: content.length,
552
- lines: content.split('\n').length,
553
- extension: file.split('.').pop() || '',
554
- modified: stats.mtime,
555
- hasEntryPoint: content.includes(params.entryPoint.split('::').pop() || params.entryPoint),
556
- functionCount: (content.match(/function\s+\w+/g) || []).length,
557
- classCount: (content.match(/class\s+\w+/g) || []).length
558
- };
559
- }
560
- getFileExtensions(analysisType) {
561
- const extensionMap = {
562
- 'execution-flow': ['.js', '.ts', '.jsx', '.tsx', '.php', '.py', '.java', '.cs', '.cpp', '.c', '.h'],
563
- 'call-graph': ['.js', '.ts', '.jsx', '.tsx', '.php', '.py', '.java', '.cs', '.cpp', '.c', '.h'],
564
- 'comprehensive': ['.js', '.ts', '.jsx', '.tsx', '.php', '.py', '.java', '.cs', '.cpp', '.c', '.h', '.rb', '.go', '.rs']
565
- };
566
- return extensionMap[analysisType] || extensionMap.comprehensive;
567
- }
568
- parseEntryPoint(entryPoint) {
569
- // Parse different entry point formats
570
- const doubleColonMatch = entryPoint.match(/^([^:]+)::(.+)$/);
571
- if (doubleColonMatch) {
572
- return {
573
- type: 'class_method',
574
- className: doubleColonMatch[1],
575
- methodName: doubleColonMatch[2]
576
- };
577
- }
578
- const dotMatch = entryPoint.match(/^([^.]+)\.(.+)$/);
579
- if (dotMatch) {
580
- return {
581
- type: 'qualified',
582
- namespace: dotMatch[1],
583
- name: dotMatch[2]
584
- };
585
- }
586
- return {
587
- type: 'function',
588
- functionName: entryPoint
589
- };
590
- }
591
- identifyPotentialTransitions(fileAnalysisResults, entryPoint) {
592
- // Identify files that might have cross-file calls based on content analysis
593
- const transitions = [];
594
- const entryPointName = entryPoint.split('::').pop() || entryPoint;
595
- fileAnalysisResults.forEach(file => {
596
- if (file.hasEntryPoint) {
597
- transitions.push({
598
- file: file.filePath,
599
- type: 'entry_point_location',
600
- confidence: 'high'
601
- });
602
- }
603
- });
604
- return transitions;
605
- }
606
- generateCacheKey(files, params) {
607
- const fileHash = files.join('|');
608
- const paramHash = JSON.stringify(params);
609
- return `${fileHash}_${paramHash}`.substring(0, 64);
610
- }
611
- }
612
- export default ExecutionPathTracer;
613
- //# sourceMappingURL=trace-execution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trace-execution.js","sourceRoot":"","sources":["../../../src/prompts/analyze/trace-execution.ts"],"names":[],"mappings":"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"}