@houtini/lm 1.0.13 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/README.md +67 -237
  2. package/dist/index.d.ts +5 -3
  3. package/dist/index.js +149 -213
  4. package/dist/index.js.map +1 -1
  5. package/package.json +23 -32
  6. package/server.json +44 -0
  7. package/CHANGELOG.md +0 -282
  8. package/dist/cache/analysis-cache.d.ts +0 -33
  9. package/dist/cache/analysis-cache.d.ts.map +0 -1
  10. package/dist/cache/analysis-cache.js +0 -56
  11. package/dist/cache/analysis-cache.js.map +0 -1
  12. package/dist/cache/cache-manager.d.ts +0 -29
  13. package/dist/cache/cache-manager.d.ts.map +0 -1
  14. package/dist/cache/cache-manager.js +0 -85
  15. package/dist/cache/cache-manager.js.map +0 -1
  16. package/dist/cache/index.d.ts +0 -16
  17. package/dist/cache/index.d.ts.map +0 -1
  18. package/dist/cache/index.js +0 -17
  19. package/dist/cache/index.js.map +0 -1
  20. package/dist/cache/prompt-cache.d.ts +0 -33
  21. package/dist/cache/prompt-cache.d.ts.map +0 -1
  22. package/dist/cache/prompt-cache.js +0 -61
  23. package/dist/cache/prompt-cache.js.map +0 -1
  24. package/dist/config.d.ts +0 -41
  25. package/dist/config.d.ts.map +0 -1
  26. package/dist/config.js +0 -71
  27. package/dist/config.js.map +0 -1
  28. package/dist/core/ThreeStagePromptManager.d.ts +0 -23
  29. package/dist/core/ThreeStagePromptManager.d.ts.map +0 -1
  30. package/dist/core/ThreeStagePromptManager.js +0 -118
  31. package/dist/core/ThreeStagePromptManager.js.map +0 -1
  32. package/dist/index.d.ts.map +0 -1
  33. package/dist/plugins/base-plugin.d.ts +0 -55
  34. package/dist/plugins/base-plugin.d.ts.map +0 -1
  35. package/dist/plugins/base-plugin.js +0 -120
  36. package/dist/plugins/base-plugin.js.map +0 -1
  37. package/dist/plugins/index.d.ts +0 -58
  38. package/dist/plugins/index.d.ts.map +0 -1
  39. package/dist/plugins/index.js +0 -162
  40. package/dist/plugins/index.js.map +0 -1
  41. package/dist/plugins/types.d.ts +0 -5
  42. package/dist/plugins/types.d.ts.map +0 -1
  43. package/dist/plugins/types.js +0 -5
  44. package/dist/plugins/types.js.map +0 -1
  45. package/dist/prompts/analyze/code-quality.d.ts +0 -116
  46. package/dist/prompts/analyze/code-quality.d.ts.map +0 -1
  47. package/dist/prompts/analyze/code-quality.js +0 -437
  48. package/dist/prompts/analyze/code-quality.js.map +0 -1
  49. package/dist/prompts/analyze/compare-integration.d.ts +0 -130
  50. package/dist/prompts/analyze/compare-integration.d.ts.map +0 -1
  51. package/dist/prompts/analyze/compare-integration.js +0 -547
  52. package/dist/prompts/analyze/compare-integration.js.map +0 -1
  53. package/dist/prompts/analyze/count-files.d.ts +0 -109
  54. package/dist/prompts/analyze/count-files.d.ts.map +0 -1
  55. package/dist/prompts/analyze/count-files.js +0 -403
  56. package/dist/prompts/analyze/count-files.js.map +0 -1
  57. package/dist/prompts/analyze/database-queries.d.ts +0 -156
  58. package/dist/prompts/analyze/database-queries.d.ts.map +0 -1
  59. package/dist/prompts/analyze/database-queries.js +0 -763
  60. package/dist/prompts/analyze/database-queries.js.map +0 -1
  61. package/dist/prompts/analyze/dependencies.d.ts +0 -97
  62. package/dist/prompts/analyze/dependencies.d.ts.map +0 -1
  63. package/dist/prompts/analyze/dependencies.js +0 -337
  64. package/dist/prompts/analyze/dependencies.js.map +0 -1
  65. package/dist/prompts/analyze/diff-signatures.d.ts +0 -139
  66. package/dist/prompts/analyze/diff-signatures.d.ts.map +0 -1
  67. package/dist/prompts/analyze/diff-signatures.js +0 -708
  68. package/dist/prompts/analyze/diff-signatures.js.map +0 -1
  69. package/dist/prompts/analyze/find-patterns.d.ts +0 -128
  70. package/dist/prompts/analyze/find-patterns.d.ts.map +0 -1
  71. package/dist/prompts/analyze/find-patterns.js +0 -524
  72. package/dist/prompts/analyze/find-patterns.js.map +0 -1
  73. package/dist/prompts/analyze/find-unused-css.d.ts +0 -151
  74. package/dist/prompts/analyze/find-unused-css.d.ts.map +0 -1
  75. package/dist/prompts/analyze/find-unused-css.js +0 -760
  76. package/dist/prompts/analyze/find-unused-css.js.map +0 -1
  77. package/dist/prompts/analyze/n8n-workflow.d.ts +0 -137
  78. package/dist/prompts/analyze/n8n-workflow.d.ts.map +0 -1
  79. package/dist/prompts/analyze/n8n-workflow.js +0 -533
  80. package/dist/prompts/analyze/n8n-workflow.js.map +0 -1
  81. package/dist/prompts/analyze/project-structure.d.ts +0 -126
  82. package/dist/prompts/analyze/project-structure.d.ts.map +0 -1
  83. package/dist/prompts/analyze/project-structure.js +0 -573
  84. package/dist/prompts/analyze/project-structure.js.map +0 -1
  85. package/dist/prompts/analyze/security-audit.d.ts +0 -142
  86. package/dist/prompts/analyze/security-audit.d.ts.map +0 -1
  87. package/dist/prompts/analyze/security-audit.js +0 -641
  88. package/dist/prompts/analyze/security-audit.js.map +0 -1
  89. package/dist/prompts/analyze/single-file.d.ts +0 -162
  90. package/dist/prompts/analyze/single-file.d.ts.map +0 -1
  91. package/dist/prompts/analyze/single-file.js +0 -669
  92. package/dist/prompts/analyze/single-file.js.map +0 -1
  93. package/dist/prompts/analyze/trace-execution.d.ts +0 -126
  94. package/dist/prompts/analyze/trace-execution.d.ts.map +0 -1
  95. package/dist/prompts/analyze/trace-execution.js +0 -613
  96. package/dist/prompts/analyze/trace-execution.js.map +0 -1
  97. package/dist/prompts/analyze/wordpress-plugin-audit.d.ts +0 -116
  98. package/dist/prompts/analyze/wordpress-plugin-audit.d.ts.map +0 -1
  99. package/dist/prompts/analyze/wordpress-plugin-audit.js +0 -456
  100. package/dist/prompts/analyze/wordpress-plugin-audit.js.map +0 -1
  101. package/dist/prompts/analyze/wordpress-plugin-readiness.d.ts +0 -103
  102. package/dist/prompts/analyze/wordpress-plugin-readiness.d.ts.map +0 -1
  103. package/dist/prompts/analyze/wordpress-plugin-readiness.js +0 -506
  104. package/dist/prompts/analyze/wordpress-plugin-readiness.js.map +0 -1
  105. package/dist/prompts/analyze/wordpress-security.d.ts +0 -146
  106. package/dist/prompts/analyze/wordpress-security.d.ts.map +0 -1
  107. package/dist/prompts/analyze/wordpress-security.js +0 -702
  108. package/dist/prompts/analyze/wordpress-security.js.map +0 -1
  109. package/dist/prompts/analyze/wordpress-theme-audit.d.ts +0 -114
  110. package/dist/prompts/analyze/wordpress-theme-audit.d.ts.map +0 -1
  111. package/dist/prompts/analyze/wordpress-theme-audit.js +0 -540
  112. package/dist/prompts/analyze/wordpress-theme-audit.js.map +0 -1
  113. package/dist/prompts/custom/custom-prompt.d.ts +0 -135
  114. package/dist/prompts/custom/custom-prompt.d.ts.map +0 -1
  115. package/dist/prompts/custom/custom-prompt.js +0 -421
  116. package/dist/prompts/custom/custom-prompt.js.map +0 -1
  117. package/dist/prompts/fun/arcade-game.d.ts +0 -152
  118. package/dist/prompts/fun/arcade-game.d.ts.map +0 -1
  119. package/dist/prompts/fun/arcade-game.js +0 -657
  120. package/dist/prompts/fun/arcade-game.js.map +0 -1
  121. package/dist/prompts/fun/create_text_adventure.d.ts +0 -100
  122. package/dist/prompts/fun/create_text_adventure.d.ts.map +0 -1
  123. package/dist/prompts/fun/create_text_adventure.js +0 -401
  124. package/dist/prompts/fun/create_text_adventure.js.map +0 -1
  125. package/dist/prompts/fun/css-art-generator.d.ts +0 -168
  126. package/dist/prompts/fun/css-art-generator.d.ts.map +0 -1
  127. package/dist/prompts/fun/css-art-generator.js +0 -831
  128. package/dist/prompts/fun/css-art-generator.js.map +0 -1
  129. package/dist/prompts/generate/project-documentation.d.ts +0 -137
  130. package/dist/prompts/generate/project-documentation.d.ts.map +0 -1
  131. package/dist/prompts/generate/project-documentation.js +0 -670
  132. package/dist/prompts/generate/project-documentation.js.map +0 -1
  133. package/dist/prompts/generate/refactoring.d.ts +0 -164
  134. package/dist/prompts/generate/refactoring.d.ts.map +0 -1
  135. package/dist/prompts/generate/refactoring.js +0 -625
  136. package/dist/prompts/generate/refactoring.js.map +0 -1
  137. package/dist/prompts/generate/responsive-component.d.ts +0 -147
  138. package/dist/prompts/generate/responsive-component.d.ts.map +0 -1
  139. package/dist/prompts/generate/responsive-component.js +0 -957
  140. package/dist/prompts/generate/responsive-component.js.map +0 -1
  141. package/dist/prompts/generate/typescript-conversion.d.ts +0 -144
  142. package/dist/prompts/generate/typescript-conversion.d.ts.map +0 -1
  143. package/dist/prompts/generate/typescript-conversion.js +0 -531
  144. package/dist/prompts/generate/typescript-conversion.js.map +0 -1
  145. package/dist/prompts/generate/unit-tests.d.ts +0 -139
  146. package/dist/prompts/generate/unit-tests.d.ts.map +0 -1
  147. package/dist/prompts/generate/unit-tests.js +0 -582
  148. package/dist/prompts/generate/unit-tests.js.map +0 -1
  149. package/dist/prompts/generate/wordpress-plugin.d.ts +0 -179
  150. package/dist/prompts/generate/wordpress-plugin.d.ts.map +0 -1
  151. package/dist/prompts/generate/wordpress-plugin.js +0 -767
  152. package/dist/prompts/generate/wordpress-plugin.js.map +0 -1
  153. package/dist/prompts/generate/wordpress-theme-from-static.d.ts +0 -177
  154. package/dist/prompts/generate/wordpress-theme-from-static.d.ts.map +0 -1
  155. package/dist/prompts/generate/wordpress-theme-from-static.js +0 -699
  156. package/dist/prompts/generate/wordpress-theme-from-static.js.map +0 -1
  157. package/dist/prompts/shared/cache-manager.d.ts +0 -45
  158. package/dist/prompts/shared/cache-manager.d.ts.map +0 -1
  159. package/dist/prompts/shared/cache-manager.js +0 -129
  160. package/dist/prompts/shared/cache-manager.js.map +0 -1
  161. package/dist/prompts/shared/helpers.d.ts +0 -39
  162. package/dist/prompts/shared/helpers.d.ts.map +0 -1
  163. package/dist/prompts/shared/helpers.js +0 -151
  164. package/dist/prompts/shared/helpers.js.map +0 -1
  165. package/dist/prompts/shared/templates.d.ts +0 -35
  166. package/dist/prompts/shared/templates.d.ts.map +0 -1
  167. package/dist/prompts/shared/templates.js +0 -77
  168. package/dist/prompts/shared/templates.js.map +0 -1
  169. package/dist/prompts/shared/types.d.ts +0 -112
  170. package/dist/prompts/shared/types.d.ts.map +0 -1
  171. package/dist/prompts/shared/types.js +0 -5
  172. package/dist/prompts/shared/types.js.map +0 -1
  173. package/dist/prompts/system/find-unused-files.d.ts +0 -106
  174. package/dist/prompts/system/find-unused-files.d.ts.map +0 -1
  175. package/dist/prompts/system/find-unused-files.js +0 -357
  176. package/dist/prompts/system/find-unused-files.js.map +0 -1
  177. package/dist/security/index.d.ts +0 -39
  178. package/dist/security/index.d.ts.map +0 -1
  179. package/dist/security/index.js +0 -46
  180. package/dist/security/index.js.map +0 -1
  181. package/dist/security/integration-helpers.d.ts +0 -121
  182. package/dist/security/integration-helpers.d.ts.map +0 -1
  183. package/dist/security/integration-helpers.js +0 -190
  184. package/dist/security/integration-helpers.js.map +0 -1
  185. package/dist/security/output-encoder.d.ts +0 -94
  186. package/dist/security/output-encoder.d.ts.map +0 -1
  187. package/dist/security/output-encoder.js +0 -295
  188. package/dist/security/output-encoder.js.map +0 -1
  189. package/dist/security/prompt-injection-guard.d.ts +0 -59
  190. package/dist/security/prompt-injection-guard.d.ts.map +0 -1
  191. package/dist/security/prompt-injection-guard.js +0 -249
  192. package/dist/security/prompt-injection-guard.js.map +0 -1
  193. package/dist/security/sanitisation.d.ts +0 -67
  194. package/dist/security/sanitisation.d.ts.map +0 -1
  195. package/dist/security/sanitisation.js +0 -398
  196. package/dist/security/sanitisation.js.map +0 -1
  197. package/dist/security/security-service.d.ts +0 -103
  198. package/dist/security/security-service.d.ts.map +0 -1
  199. package/dist/security/security-service.js +0 -303
  200. package/dist/security/security-service.js.map +0 -1
  201. package/dist/security-config.d.ts +0 -45
  202. package/dist/security-config.d.ts.map +0 -1
  203. package/dist/security-config.js +0 -63
  204. package/dist/security-config.js.map +0 -1
  205. package/dist/system/function-list.d.ts +0 -61
  206. package/dist/system/function-list.d.ts.map +0 -1
  207. package/dist/system/function-list.js +0 -111
  208. package/dist/system/function-list.js.map +0 -1
  209. package/dist/system/function-registry.d.ts +0 -23
  210. package/dist/system/function-registry.d.ts.map +0 -1
  211. package/dist/system/function-registry.js +0 -136
  212. package/dist/system/function-registry.js.map +0 -1
  213. package/dist/system/health-check.d.ts +0 -33
  214. package/dist/system/health-check.d.ts.map +0 -1
  215. package/dist/system/health-check.js +0 -98
  216. package/dist/system/health-check.js.map +0 -1
  217. package/dist/system/path-resolver.d.ts +0 -55
  218. package/dist/system/path-resolver.d.ts.map +0 -1
  219. package/dist/system/path-resolver.js +0 -90
  220. package/dist/system/path-resolver.js.map +0 -1
  221. package/dist/templates/plugin-template.d.ts +0 -121
  222. package/dist/templates/plugin-template.d.ts.map +0 -1
  223. package/dist/templates/plugin-template.js +0 -454
  224. package/dist/templates/plugin-template.js.map +0 -1
  225. package/dist/types/chunking-types.d.ts +0 -88
  226. package/dist/types/chunking-types.d.ts.map +0 -1
  227. package/dist/types/chunking-types.js +0 -18
  228. package/dist/types/chunking-types.js.map +0 -1
  229. package/dist/types/prompt-stages.d.ts +0 -30
  230. package/dist/types/prompt-stages.d.ts.map +0 -1
  231. package/dist/types/prompt-stages.js +0 -6
  232. package/dist/types/prompt-stages.js.map +0 -1
  233. package/dist/types.d.ts +0 -45
  234. package/dist/types.d.ts.map +0 -1
  235. package/dist/types.js +0 -6
  236. package/dist/types.js.map +0 -1
  237. package/dist/utils/css-parser.d.ts +0 -26
  238. package/dist/utils/css-parser.d.ts.map +0 -1
  239. package/dist/utils/css-parser.js +0 -117
  240. package/dist/utils/css-parser.js.map +0 -1
  241. package/dist/utils/path-resolver.d.ts +0 -13
  242. package/dist/utils/path-resolver.d.ts.map +0 -1
  243. package/dist/utils/path-resolver.js +0 -78
  244. package/dist/utils/path-resolver.js.map +0 -1
  245. package/dist/utils/plugin-utilities.d.ts +0 -176
  246. package/dist/utils/plugin-utilities.d.ts.map +0 -1
  247. package/dist/utils/plugin-utilities.js +0 -269
  248. package/dist/utils/plugin-utilities.js.map +0 -1
  249. package/dist/utils/streamHandler.d.ts +0 -3
  250. package/dist/utils/streamHandler.d.ts.map +0 -1
  251. package/dist/utils/streamHandler.js +0 -137
  252. package/dist/utils/streamHandler.js.map +0 -1
  253. package/dist/validation/output-validator.d.ts +0 -136
  254. package/dist/validation/output-validator.d.ts.map +0 -1
  255. package/dist/validation/output-validator.js +0 -262
  256. package/dist/validation/output-validator.js.map +0 -1
  257. package/dist/validation/response-factory.d.ts +0 -44
  258. package/dist/validation/response-factory.d.ts.map +0 -1
  259. package/dist/validation/response-factory.js +0 -202
  260. package/dist/validation/response-factory.js.map +0 -1
  261. package/dist/validation/schemas.d.ts +0 -519
  262. package/dist/validation/schemas.d.ts.map +0 -1
  263. package/dist/validation/schemas.js +0 -6
  264. package/dist/validation/schemas.js.map +0 -1
@@ -1,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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"}