@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,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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"}