ai-first-cli 1.2.3 → 1.3.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 (470) hide show
  1. package/CHANGELOG.md +292 -6
  2. package/README.md +24 -4
  3. package/dist/analyzers/symbols.d.ts.map +1 -1
  4. package/dist/analyzers/symbols.js +9 -7
  5. package/dist/analyzers/symbols.js.map +1 -1
  6. package/dist/analyzers/techStack.d.ts.map +1 -1
  7. package/dist/analyzers/techStack.js +198 -3
  8. package/dist/analyzers/techStack.js.map +1 -1
  9. package/dist/commands/ai-first.d.ts.map +1 -1
  10. package/dist/commands/ai-first.js +14 -13
  11. package/dist/commands/ai-first.js.map +1 -1
  12. package/dist/core/analysis/architectureDetector.d.ts +37 -0
  13. package/dist/core/analysis/architectureDetector.d.ts.map +1 -0
  14. package/dist/core/analysis/architectureDetector.js +316 -0
  15. package/dist/core/analysis/architectureDetector.js.map +1 -0
  16. package/dist/core/analysis/callGraphBuilder.d.ts +37 -0
  17. package/dist/core/analysis/callGraphBuilder.d.ts.map +1 -0
  18. package/dist/core/analysis/callGraphBuilder.js +101 -0
  19. package/dist/core/analysis/callGraphBuilder.js.map +1 -0
  20. package/dist/core/analysis/dependencyAnalyzer.d.ts +45 -0
  21. package/dist/core/analysis/dependencyAnalyzer.d.ts.map +1 -0
  22. package/dist/core/analysis/dependencyAnalyzer.js +98 -0
  23. package/dist/core/analysis/dependencyAnalyzer.js.map +1 -0
  24. package/dist/core/analysis/index.d.ts +5 -0
  25. package/dist/core/analysis/index.d.ts.map +1 -0
  26. package/dist/core/analysis/index.js +5 -0
  27. package/dist/core/analysis/index.js.map +1 -0
  28. package/dist/core/analysis/inheritanceAnalyzer.d.ts +35 -0
  29. package/dist/core/analysis/inheritanceAnalyzer.d.ts.map +1 -0
  30. package/dist/core/analysis/inheritanceAnalyzer.js +115 -0
  31. package/dist/core/analysis/inheritanceAnalyzer.js.map +1 -0
  32. package/dist/core/ccp.d.ts.map +1 -1
  33. package/dist/core/ccp.js +3 -2
  34. package/dist/core/ccp.js.map +1 -1
  35. package/dist/core/generation/aiContextGenerator.d.ts +71 -0
  36. package/dist/core/generation/aiContextGenerator.d.ts.map +1 -0
  37. package/dist/core/generation/aiContextGenerator.js +217 -0
  38. package/dist/core/generation/aiContextGenerator.js.map +1 -0
  39. package/dist/core/generation/architectureGenerator.d.ts +17 -0
  40. package/dist/core/generation/architectureGenerator.d.ts.map +1 -0
  41. package/dist/core/generation/architectureGenerator.js +160 -0
  42. package/dist/core/generation/architectureGenerator.js.map +1 -0
  43. package/dist/core/generation/flowGenerator.d.ts +52 -0
  44. package/dist/core/generation/flowGenerator.d.ts.map +1 -0
  45. package/dist/core/generation/flowGenerator.js +164 -0
  46. package/dist/core/generation/flowGenerator.js.map +1 -0
  47. package/dist/core/generation/index.d.ts +4 -0
  48. package/dist/core/generation/index.d.ts.map +1 -0
  49. package/dist/core/generation/index.js +4 -0
  50. package/dist/core/generation/index.js.map +1 -0
  51. package/dist/core/hierarchyGenerator.d.ts.map +1 -1
  52. package/dist/core/hierarchyGenerator.js +3 -2
  53. package/dist/core/hierarchyGenerator.js.map +1 -1
  54. package/dist/core/parsers/index.d.ts +20 -0
  55. package/dist/core/parsers/index.d.ts.map +1 -0
  56. package/dist/core/parsers/index.js +76 -0
  57. package/dist/core/parsers/index.js.map +1 -0
  58. package/dist/core/parsers/pythonParser.d.ts +37 -0
  59. package/dist/core/parsers/pythonParser.d.ts.map +1 -0
  60. package/dist/core/parsers/pythonParser.js +229 -0
  61. package/dist/core/parsers/pythonParser.js.map +1 -0
  62. package/dist/core/parsers/typescriptParser.d.ts +54 -0
  63. package/dist/core/parsers/typescriptParser.d.ts.map +1 -0
  64. package/dist/core/parsers/typescriptParser.js +291 -0
  65. package/dist/core/parsers/typescriptParser.js.map +1 -0
  66. package/dist/core/pipeline.d.ts +42 -0
  67. package/dist/core/pipeline.d.ts.map +1 -0
  68. package/dist/core/pipeline.js +172 -0
  69. package/dist/core/pipeline.js.map +1 -0
  70. package/dist/core/semanticContexts.js +1 -1
  71. package/dist/core/semanticContexts.js.map +1 -1
  72. package/dist/utils/constants.d.ts +46 -0
  73. package/dist/utils/constants.d.ts.map +1 -0
  74. package/dist/utils/constants.js +67 -0
  75. package/dist/utils/constants.js.map +1 -0
  76. package/package.json +1 -1
  77. package/run-all-tests.sh +184 -0
  78. package/src/analyzers/symbols.ts +12 -7
  79. package/src/analyzers/techStack.ts +203 -3
  80. package/src/commands/ai-first.ts +14 -13
  81. package/src/core/analysis/architectureDetector.ts +487 -0
  82. package/src/core/analysis/callGraphBuilder.ts +158 -0
  83. package/src/core/analysis/dependencyAnalyzer.ts +167 -0
  84. package/src/core/analysis/index.ts +28 -0
  85. package/src/core/analysis/inheritanceAnalyzer.ts +169 -0
  86. package/src/core/ccp.ts +3 -2
  87. package/src/core/generation/aiContextGenerator.ts +335 -0
  88. package/src/core/generation/architectureGenerator.ts +200 -0
  89. package/src/core/generation/flowGenerator.ts +238 -0
  90. package/src/core/generation/index.ts +16 -0
  91. package/src/core/hierarchyGenerator.ts +3 -2
  92. package/src/core/parsers/index.ts +99 -0
  93. package/src/core/parsers/pythonParser.ts +302 -0
  94. package/src/core/parsers/typescriptParser.ts +445 -0
  95. package/src/core/pipeline.ts +241 -0
  96. package/src/core/semanticContexts.ts +1 -1
  97. package/src/utils/constants.ts +78 -0
  98. package/tests/analysis.test.ts +283 -0
  99. package/tests/architectureDetector.test.ts +137 -0
  100. package/tests/generation.test.ts +216 -0
  101. package/tests/parserRegistry.test.ts +139 -0
  102. package/tests/pipeline.integration.test.ts +245 -0
  103. package/tests/pythonParser.test.ts +210 -0
  104. package/tests/typescriptParser.test.ts +197 -0
  105. package/.ai-dev/index.db +0 -0
  106. package/ANALISIS_COMPLETO.md +0 -424
  107. package/ANALISIS_MEJORAS.md +0 -327
  108. package/BUGS.md +0 -455
  109. package/PLAN_MEJORAS.md +0 -216
  110. package/STATUS_ADAPTADORES +0 -126
  111. package/TEST_RESULTS.md +0 -198
  112. package/TEST_RESULTS_COMPARATIVE.md +0 -159
  113. package/TEST_RESULTS_COMPLETE.md +0 -127
  114. package/TEST_RESULTS_COMPREHENSIVE.md +0 -208
  115. package/TEST_RESULTS_PHASE1.md +0 -420
  116. package/ai/dependencies.json +0 -15
  117. package/ai/graph/knowledge-graph.json +0 -12
  118. package/ai-context/ai_context.md +0 -130
  119. package/ai-context/ai_rules.md +0 -54
  120. package/ai-context/architecture.md +0 -136
  121. package/ai-context/cache.json +0 -2349
  122. package/ai-context/ccp/jira-123/context.json +0 -7
  123. package/ai-context/context/features/commands.json +0 -18
  124. package/ai-context/context/features/src.json +0 -61
  125. package/ai-context/context/features/test-projects.json +0 -69
  126. package/ai-context/context/flows/account.json +0 -9
  127. package/ai-context/context/flows/ai-first.json +0 -9
  128. package/ai-context/context/flows/api.json +0 -9
  129. package/ai-context/context/flows/auth.json +0 -13
  130. package/ai-context/context/flows/category.json +0 -12
  131. package/ai-context/context/flows/comment.json +0 -16
  132. package/ai-context/context/flows/dashboard.json +0 -9
  133. package/ai-context/context/flows/doctor.json +0 -9
  134. package/ai-context/context/flows/explore.json +0 -9
  135. package/ai-context/context/flows/login.json +0 -9
  136. package/ai-context/context/flows/opportunity.json +0 -9
  137. package/ai-context/context/flows/post.json +0 -18
  138. package/ai-context/context/flows/routes.json +0 -19
  139. package/ai-context/context/flows/user.json +0 -20
  140. package/ai-context/context/flows/users.json +0 -9
  141. package/ai-context/context/flows/views.json +0 -14
  142. package/ai-context/context/repo.json +0 -56
  143. package/ai-context/context/utils.json +0 -7
  144. package/ai-context/conventions.md +0 -53
  145. package/ai-context/dependencies.json +0 -2978
  146. package/ai-context/embeddings.json +0 -23828
  147. package/ai-context/entrypoints.md +0 -42
  148. package/ai-context/files.json +0 -2944
  149. package/ai-context/git/commit-activity.json +0 -8646
  150. package/ai-context/git/recent-features.json +0 -1
  151. package/ai-context/git/recent-files.json +0 -52
  152. package/ai-context/git/recent-flows.json +0 -1
  153. package/ai-context/graph/knowledge-graph.json +0 -44129
  154. package/ai-context/graph/module-graph.json +0 -866
  155. package/ai-context/graph/symbol-graph.json +0 -200622
  156. package/ai-context/graph/symbol-references.json +0 -6778
  157. package/ai-context/hierarchy.json +0 -20
  158. package/ai-context/index-state.json +0 -4487
  159. package/ai-context/index.db +0 -0
  160. package/ai-context/modules.json +0 -933
  161. package/ai-context/project.json +0 -30
  162. package/ai-context/repo_map.json +0 -9116
  163. package/ai-context/repo_map.md +0 -2061
  164. package/ai-context/schema.json +0 -5
  165. package/ai-context/summary.md +0 -47
  166. package/ai-context/symbols.json +0 -65351
  167. package/ai-context/tech_stack.md +0 -47
  168. package/ai-context/tools.json +0 -10
  169. package/test-projects/django-app/.ai-dev/index.db +0 -0
  170. package/test-projects/django-app/ai-context/ai_context.md +0 -92
  171. package/test-projects/django-app/ai-context/ai_rules.md +0 -47
  172. package/test-projects/django-app/ai-context/architecture.md +0 -57
  173. package/test-projects/django-app/ai-context/cache.json +0 -169
  174. package/test-projects/django-app/ai-context/context/flows/views.json +0 -10
  175. package/test-projects/django-app/ai-context/conventions.md +0 -51
  176. package/test-projects/django-app/ai-context/dependencies.json +0 -312
  177. package/test-projects/django-app/ai-context/entrypoints.md +0 -4
  178. package/test-projects/django-app/ai-context/files.json +0 -209
  179. package/test-projects/django-app/ai-context/graph/knowledge-graph.json +0 -36
  180. package/test-projects/django-app/ai-context/graph/module-graph.json +0 -145
  181. package/test-projects/django-app/ai-context/graph/symbol-graph.json +0 -1488
  182. package/test-projects/django-app/ai-context/graph/symbol-references.json +0 -1
  183. package/test-projects/django-app/ai-context/index-state.json +0 -294
  184. package/test-projects/django-app/ai-context/index.db +0 -0
  185. package/test-projects/django-app/ai-context/modules.json +0 -35
  186. package/test-projects/django-app/ai-context/project.json +0 -11
  187. package/test-projects/django-app/ai-context/repo_map.json +0 -412
  188. package/test-projects/django-app/ai-context/repo_map.md +0 -105
  189. package/test-projects/django-app/ai-context/schema.json +0 -5
  190. package/test-projects/django-app/ai-context/summary.md +0 -15
  191. package/test-projects/django-app/ai-context/symbols.json +0 -1
  192. package/test-projects/django-app/ai-context/tech_stack.md +0 -32
  193. package/test-projects/django-app/ai-context/tools.json +0 -10
  194. package/test-projects/express-api/ai-context/ai_context.md +0 -112
  195. package/test-projects/express-api/ai-context/ai_rules.md +0 -50
  196. package/test-projects/express-api/ai-context/architecture.md +0 -62
  197. package/test-projects/express-api/ai-context/context/features/controllers.json +0 -13
  198. package/test-projects/express-api/ai-context/context/features/services.json +0 -13
  199. package/test-projects/express-api/ai-context/context/flows/auth.json +0 -12
  200. package/test-projects/express-api/ai-context/context/flows/user.json +0 -13
  201. package/test-projects/express-api/ai-context/conventions.md +0 -51
  202. package/test-projects/express-api/ai-context/dependencies.json +0 -54
  203. package/test-projects/express-api/ai-context/entrypoints.md +0 -17
  204. package/test-projects/express-api/ai-context/modules.json +0 -30
  205. package/test-projects/express-api/ai-context/project.json +0 -15
  206. package/test-projects/express-api/ai-context/repo_map.json +0 -100
  207. package/test-projects/express-api/ai-context/repo_map.md +0 -36
  208. package/test-projects/express-api/ai-context/schema.json +0 -5
  209. package/test-projects/express-api/ai-context/summary.md +0 -14
  210. package/test-projects/express-api/ai-context/symbols.json +0 -7
  211. package/test-projects/express-api/ai-context/tech_stack.md +0 -38
  212. package/test-projects/express-api/ai-context/tools.json +0 -10
  213. package/test-projects/fastapi-app/.ai-dev/index.db +0 -0
  214. package/test-projects/fastapi-app/ai-context/ai_context.md +0 -89
  215. package/test-projects/fastapi-app/ai-context/ai_rules.md +0 -47
  216. package/test-projects/fastapi-app/ai-context/architecture.md +0 -39
  217. package/test-projects/fastapi-app/ai-context/cache.json +0 -125
  218. package/test-projects/fastapi-app/ai-context/conventions.md +0 -51
  219. package/test-projects/fastapi-app/ai-context/dependencies.json +0 -244
  220. package/test-projects/fastapi-app/ai-context/entrypoints.md +0 -4
  221. package/test-projects/fastapi-app/ai-context/files.json +0 -154
  222. package/test-projects/fastapi-app/ai-context/graph/knowledge-graph.json +0 -15
  223. package/test-projects/fastapi-app/ai-context/graph/module-graph.json +0 -78
  224. package/test-projects/fastapi-app/ai-context/graph/symbol-graph.json +0 -1724
  225. package/test-projects/fastapi-app/ai-context/graph/symbol-references.json +0 -51
  226. package/test-projects/fastapi-app/ai-context/index-state.json +0 -217
  227. package/test-projects/fastapi-app/ai-context/index.db +0 -0
  228. package/test-projects/fastapi-app/ai-context/modules.json +0 -16
  229. package/test-projects/fastapi-app/ai-context/project.json +0 -9
  230. package/test-projects/fastapi-app/ai-context/repo_map.json +0 -298
  231. package/test-projects/fastapi-app/ai-context/repo_map.md +0 -74
  232. package/test-projects/fastapi-app/ai-context/schema.json +0 -5
  233. package/test-projects/fastapi-app/ai-context/summary.md +0 -12
  234. package/test-projects/fastapi-app/ai-context/symbols.json +0 -1
  235. package/test-projects/fastapi-app/ai-context/tech_stack.md +0 -32
  236. package/test-projects/fastapi-app/ai-context/tools.json +0 -10
  237. package/test-projects/flask-app/.ai-dev/index.db +0 -0
  238. package/test-projects/flask-app/ai-context/ai_context.md +0 -94
  239. package/test-projects/flask-app/ai-context/ai_rules.md +0 -47
  240. package/test-projects/flask-app/ai-context/architecture.md +0 -49
  241. package/test-projects/flask-app/ai-context/cache.json +0 -157
  242. package/test-projects/flask-app/ai-context/context/features/app.json +0 -25
  243. package/test-projects/flask-app/ai-context/context/flows/routes.json +0 -14
  244. package/test-projects/flask-app/ai-context/conventions.md +0 -51
  245. package/test-projects/flask-app/ai-context/dependencies.json +0 -298
  246. package/test-projects/flask-app/ai-context/entrypoints.md +0 -4
  247. package/test-projects/flask-app/ai-context/files.json +0 -194
  248. package/test-projects/flask-app/ai-context/graph/knowledge-graph.json +0 -60
  249. package/test-projects/flask-app/ai-context/graph/module-graph.json +0 -95
  250. package/test-projects/flask-app/ai-context/graph/symbol-graph.json +0 -1448
  251. package/test-projects/flask-app/ai-context/graph/symbol-references.json +0 -45
  252. package/test-projects/flask-app/ai-context/index-state.json +0 -273
  253. package/test-projects/flask-app/ai-context/index.db +0 -0
  254. package/test-projects/flask-app/ai-context/modules.json +0 -21
  255. package/test-projects/flask-app/ai-context/project.json +0 -13
  256. package/test-projects/flask-app/ai-context/repo_map.json +0 -400
  257. package/test-projects/flask-app/ai-context/repo_map.md +0 -98
  258. package/test-projects/flask-app/ai-context/schema.json +0 -5
  259. package/test-projects/flask-app/ai-context/summary.md +0 -13
  260. package/test-projects/flask-app/ai-context/symbols.json +0 -1
  261. package/test-projects/flask-app/ai-context/tech_stack.md +0 -32
  262. package/test-projects/flask-app/ai-context/tools.json +0 -10
  263. package/test-projects/laravel-app/.ai-dev/index.db +0 -0
  264. package/test-projects/laravel-app/ai-context/ai_context.md +0 -97
  265. package/test-projects/laravel-app/ai-context/ai_rules.md +0 -47
  266. package/test-projects/laravel-app/ai-context/architecture.md +0 -60
  267. package/test-projects/laravel-app/ai-context/cache.json +0 -161
  268. package/test-projects/laravel-app/ai-context/context/features/app.json +0 -21
  269. package/test-projects/laravel-app/ai-context/context/flows/.json +0 -9
  270. package/test-projects/laravel-app/ai-context/context/flows/category.json +0 -12
  271. package/test-projects/laravel-app/ai-context/context/flows/comment.json +0 -12
  272. package/test-projects/laravel-app/ai-context/context/flows/post.json +0 -12
  273. package/test-projects/laravel-app/ai-context/context/flows/unnamed.json +0 -9
  274. package/test-projects/laravel-app/ai-context/conventions.md +0 -51
  275. package/test-projects/laravel-app/ai-context/dependencies.json +0 -6
  276. package/test-projects/laravel-app/ai-context/entrypoints.md +0 -4
  277. package/test-projects/laravel-app/ai-context/files.json +0 -199
  278. package/test-projects/laravel-app/ai-context/graph/knowledge-graph.json +0 -98
  279. package/test-projects/laravel-app/ai-context/graph/module-graph.json +0 -30
  280. package/test-projects/laravel-app/ai-context/graph/symbol-graph.json +0 -5
  281. package/test-projects/laravel-app/ai-context/graph/symbol-references.json +0 -1
  282. package/test-projects/laravel-app/ai-context/index-state.json +0 -280
  283. package/test-projects/laravel-app/ai-context/index.db +0 -0
  284. package/test-projects/laravel-app/ai-context/modules.json +0 -29
  285. package/test-projects/laravel-app/ai-context/project.json +0 -17
  286. package/test-projects/laravel-app/ai-context/repo_map.json +0 -419
  287. package/test-projects/laravel-app/ai-context/repo_map.md +0 -106
  288. package/test-projects/laravel-app/ai-context/schema.json +0 -5
  289. package/test-projects/laravel-app/ai-context/summary.md +0 -15
  290. package/test-projects/laravel-app/ai-context/symbols.json +0 -1
  291. package/test-projects/laravel-app/ai-context/tech_stack.md +0 -34
  292. package/test-projects/laravel-app/ai-context/tools.json +0 -10
  293. package/test-projects/nestjs-backend/.ai-dev/index.db +0 -0
  294. package/test-projects/nestjs-backend/ai-context/ai_context.md +0 -111
  295. package/test-projects/nestjs-backend/ai-context/ai_rules.md +0 -52
  296. package/test-projects/nestjs-backend/ai-context/architecture.md +0 -49
  297. package/test-projects/nestjs-backend/ai-context/cache.json +0 -169
  298. package/test-projects/nestjs-backend/ai-context/context/features/src.json +0 -23
  299. package/test-projects/nestjs-backend/ai-context/context/flows/auth.controller.json +0 -14
  300. package/test-projects/nestjs-backend/ai-context/context/flows/auth.json +0 -10
  301. package/test-projects/nestjs-backend/ai-context/context/flows/users..json +0 -10
  302. package/test-projects/nestjs-backend/ai-context/context/flows/users.controller.json +0 -14
  303. package/test-projects/nestjs-backend/ai-context/context/flows/users.json +0 -10
  304. package/test-projects/nestjs-backend/ai-context/conventions.md +0 -52
  305. package/test-projects/nestjs-backend/ai-context/dependencies.json +0 -152
  306. package/test-projects/nestjs-backend/ai-context/entrypoints.md +0 -18
  307. package/test-projects/nestjs-backend/ai-context/files.json +0 -209
  308. package/test-projects/nestjs-backend/ai-context/graph/knowledge-graph.json +0 -132
  309. package/test-projects/nestjs-backend/ai-context/graph/module-graph.json +0 -29
  310. package/test-projects/nestjs-backend/ai-context/graph/symbol-graph.json +0 -304
  311. package/test-projects/nestjs-backend/ai-context/graph/symbol-references.json +0 -5
  312. package/test-projects/nestjs-backend/ai-context/index-state.json +0 -294
  313. package/test-projects/nestjs-backend/ai-context/index.db +0 -0
  314. package/test-projects/nestjs-backend/ai-context/modules.json +0 -19
  315. package/test-projects/nestjs-backend/ai-context/project.json +0 -18
  316. package/test-projects/nestjs-backend/ai-context/repo_map.json +0 -427
  317. package/test-projects/nestjs-backend/ai-context/repo_map.md +0 -104
  318. package/test-projects/nestjs-backend/ai-context/schema.json +0 -5
  319. package/test-projects/nestjs-backend/ai-context/summary.md +0 -13
  320. package/test-projects/nestjs-backend/ai-context/symbols.json +0 -1
  321. package/test-projects/nestjs-backend/ai-context/tech_stack.md +0 -38
  322. package/test-projects/nestjs-backend/ai-context/tools.json +0 -10
  323. package/test-projects/python-cli/.ai-dev/index.db +0 -0
  324. package/test-projects/python-cli/ai-context/ai_context.md +0 -95
  325. package/test-projects/python-cli/ai-context/ai_rules.md +0 -47
  326. package/test-projects/python-cli/ai-context/architecture.md +0 -55
  327. package/test-projects/python-cli/ai-context/cache.json +0 -149
  328. package/test-projects/python-cli/ai-context/context/features/cli.json +0 -16
  329. package/test-projects/python-cli/ai-context/context/flows/list_.json +0 -9
  330. package/test-projects/python-cli/ai-context/context/flows/remove_.json +0 -9
  331. package/test-projects/python-cli/ai-context/conventions.md +0 -51
  332. package/test-projects/python-cli/ai-context/dependencies.json +0 -66
  333. package/test-projects/python-cli/ai-context/entrypoints.md +0 -4
  334. package/test-projects/python-cli/ai-context/files.json +0 -184
  335. package/test-projects/python-cli/ai-context/graph/knowledge-graph.json +0 -83
  336. package/test-projects/python-cli/ai-context/graph/module-graph.json +0 -31
  337. package/test-projects/python-cli/ai-context/graph/symbol-graph.json +0 -358
  338. package/test-projects/python-cli/ai-context/graph/symbol-references.json +0 -11
  339. package/test-projects/python-cli/ai-context/index-state.json +0 -259
  340. package/test-projects/python-cli/ai-context/index.db +0 -0
  341. package/test-projects/python-cli/ai-context/modules.json +0 -21
  342. package/test-projects/python-cli/ai-context/project.json +0 -15
  343. package/test-projects/python-cli/ai-context/repo_map.json +0 -367
  344. package/test-projects/python-cli/ai-context/repo_map.md +0 -93
  345. package/test-projects/python-cli/ai-context/schema.json +0 -5
  346. package/test-projects/python-cli/ai-context/summary.md +0 -14
  347. package/test-projects/python-cli/ai-context/symbols.json +0 -1
  348. package/test-projects/python-cli/ai-context/tech_stack.md +0 -32
  349. package/test-projects/python-cli/ai-context/tools.json +0 -10
  350. package/test-projects/rails-app/.ai-dev/index.db +0 -0
  351. package/test-projects/rails-app/ai-context/ai_context.md +0 -94
  352. package/test-projects/rails-app/ai-context/ai_rules.md +0 -47
  353. package/test-projects/rails-app/ai-context/architecture.md +0 -49
  354. package/test-projects/rails-app/ai-context/cache.json +0 -193
  355. package/test-projects/rails-app/ai-context/context/features/app.json +0 -24
  356. package/test-projects/rails-app/ai-context/context/features/config.json +0 -13
  357. package/test-projects/rails-app/ai-context/context/flows/application.json +0 -9
  358. package/test-projects/rails-app/ai-context/context/flows/application_.json +0 -9
  359. package/test-projects/rails-app/ai-context/context/flows/comments.json +0 -11
  360. package/test-projects/rails-app/ai-context/context/flows/comments_.json +0 -11
  361. package/test-projects/rails-app/ai-context/context/flows/posts.json +0 -11
  362. package/test-projects/rails-app/ai-context/context/flows/posts_.json +0 -11
  363. package/test-projects/rails-app/ai-context/context/flows/routes.json +0 -9
  364. package/test-projects/rails-app/ai-context/context/flows/users.json +0 -11
  365. package/test-projects/rails-app/ai-context/context/flows/users_.json +0 -11
  366. package/test-projects/rails-app/ai-context/conventions.md +0 -51
  367. package/test-projects/rails-app/ai-context/dependencies.json +0 -6
  368. package/test-projects/rails-app/ai-context/entrypoints.md +0 -4
  369. package/test-projects/rails-app/ai-context/files.json +0 -239
  370. package/test-projects/rails-app/ai-context/graph/knowledge-graph.json +0 -130
  371. package/test-projects/rails-app/ai-context/graph/module-graph.json +0 -27
  372. package/test-projects/rails-app/ai-context/graph/symbol-graph.json +0 -5
  373. package/test-projects/rails-app/ai-context/graph/symbol-references.json +0 -1
  374. package/test-projects/rails-app/ai-context/index-state.json +0 -336
  375. package/test-projects/rails-app/ai-context/index.db +0 -0
  376. package/test-projects/rails-app/ai-context/modules.json +0 -26
  377. package/test-projects/rails-app/ai-context/project.json +0 -22
  378. package/test-projects/rails-app/ai-context/repo_map.json +0 -486
  379. package/test-projects/rails-app/ai-context/repo_map.md +0 -117
  380. package/test-projects/rails-app/ai-context/schema.json +0 -5
  381. package/test-projects/rails-app/ai-context/summary.md +0 -13
  382. package/test-projects/rails-app/ai-context/symbols.json +0 -1
  383. package/test-projects/rails-app/ai-context/tech_stack.md +0 -32
  384. package/test-projects/rails-app/ai-context/tools.json +0 -10
  385. package/test-projects/react-app/.ai-dev/index.db +0 -0
  386. package/test-projects/react-app/ai-context/ai_context.md +0 -96
  387. package/test-projects/react-app/ai-context/ai_rules.md +0 -49
  388. package/test-projects/react-app/ai-context/architecture.md +0 -39
  389. package/test-projects/react-app/ai-context/cache.json +0 -153
  390. package/test-projects/react-app/ai-context/context/features/src.json +0 -18
  391. package/test-projects/react-app/ai-context/context/flows/UsersPage.json +0 -14
  392. package/test-projects/react-app/ai-context/context/flows/dashboard.json +0 -9
  393. package/test-projects/react-app/ai-context/context/flows/login.json +0 -9
  394. package/test-projects/react-app/ai-context/context/flows/users.json +0 -9
  395. package/test-projects/react-app/ai-context/conventions.md +0 -52
  396. package/test-projects/react-app/ai-context/dependencies.json +0 -128
  397. package/test-projects/react-app/ai-context/entrypoints.md +0 -4
  398. package/test-projects/react-app/ai-context/files.json +0 -189
  399. package/test-projects/react-app/ai-context/graph/knowledge-graph.json +0 -112
  400. package/test-projects/react-app/ai-context/graph/module-graph.json +0 -31
  401. package/test-projects/react-app/ai-context/graph/symbol-graph.json +0 -868
  402. package/test-projects/react-app/ai-context/graph/symbol-references.json +0 -31
  403. package/test-projects/react-app/ai-context/index-state.json +0 -266
  404. package/test-projects/react-app/ai-context/index.db +0 -0
  405. package/test-projects/react-app/ai-context/modules.json +0 -17
  406. package/test-projects/react-app/ai-context/project.json +0 -16
  407. package/test-projects/react-app/ai-context/repo_map.json +0 -391
  408. package/test-projects/react-app/ai-context/repo_map.md +0 -94
  409. package/test-projects/react-app/ai-context/schema.json +0 -5
  410. package/test-projects/react-app/ai-context/summary.md +0 -13
  411. package/test-projects/react-app/ai-context/symbols.json +0 -1
  412. package/test-projects/react-app/ai-context/tech_stack.md +0 -39
  413. package/test-projects/react-app/ai-context/tools.json +0 -10
  414. package/test-projects/salesforce-cli/.ai-dev/index.db +0 -0
  415. package/test-projects/salesforce-cli/ai-context/ai_context.md +0 -89
  416. package/test-projects/salesforce-cli/ai-context/ai_rules.md +0 -47
  417. package/test-projects/salesforce-cli/ai-context/architecture.md +0 -39
  418. package/test-projects/salesforce-cli/ai-context/cache.json +0 -125
  419. package/test-projects/salesforce-cli/ai-context/context/features/force-app.json +0 -14
  420. package/test-projects/salesforce-cli/ai-context/context/flows/account.json +0 -9
  421. package/test-projects/salesforce-cli/ai-context/context/flows/opportunity.json +0 -9
  422. package/test-projects/salesforce-cli/ai-context/conventions.md +0 -51
  423. package/test-projects/salesforce-cli/ai-context/dependencies.json +0 -6
  424. package/test-projects/salesforce-cli/ai-context/entrypoints.md +0 -4
  425. package/test-projects/salesforce-cli/ai-context/files.json +0 -154
  426. package/test-projects/salesforce-cli/ai-context/graph/knowledge-graph.json +0 -64
  427. package/test-projects/salesforce-cli/ai-context/graph/module-graph.json +0 -13
  428. package/test-projects/salesforce-cli/ai-context/graph/symbol-graph.json +0 -148
  429. package/test-projects/salesforce-cli/ai-context/graph/symbol-references.json +0 -1
  430. package/test-projects/salesforce-cli/ai-context/index-state.json +0 -217
  431. package/test-projects/salesforce-cli/ai-context/index.db +0 -0
  432. package/test-projects/salesforce-cli/ai-context/modules.json +0 -12
  433. package/test-projects/salesforce-cli/ai-context/project.json +0 -14
  434. package/test-projects/salesforce-cli/ai-context/repo_map.json +0 -328
  435. package/test-projects/salesforce-cli/ai-context/repo_map.md +0 -80
  436. package/test-projects/salesforce-cli/ai-context/schema.json +0 -5
  437. package/test-projects/salesforce-cli/ai-context/summary.md +0 -13
  438. package/test-projects/salesforce-cli/ai-context/symbols.json +0 -1
  439. package/test-projects/salesforce-cli/ai-context/tech_stack.md +0 -31
  440. package/test-projects/salesforce-cli/ai-context/tools.json +0 -10
  441. package/test-projects/spring-boot-app/.ai-dev/index.db +0 -0
  442. package/test-projects/spring-boot-app/ai-context/ai_context.md +0 -91
  443. package/test-projects/spring-boot-app/ai-context/ai_rules.md +0 -48
  444. package/test-projects/spring-boot-app/ai-context/architecture.md +0 -39
  445. package/test-projects/spring-boot-app/ai-context/cache.json +0 -173
  446. package/test-projects/spring-boot-app/ai-context/context/features/src.json +0 -26
  447. package/test-projects/spring-boot-app/ai-context/context/flows/PostController.json +0 -19
  448. package/test-projects/spring-boot-app/ai-context/context/flows/UserController.json +0 -19
  449. package/test-projects/spring-boot-app/ai-context/context/flows/comment.json +0 -11
  450. package/test-projects/spring-boot-app/ai-context/context/flows/post.json +0 -14
  451. package/test-projects/spring-boot-app/ai-context/context/flows/user.json +0 -14
  452. package/test-projects/spring-boot-app/ai-context/conventions.md +0 -52
  453. package/test-projects/spring-boot-app/ai-context/dependencies.json +0 -326
  454. package/test-projects/spring-boot-app/ai-context/entrypoints.md +0 -4
  455. package/test-projects/spring-boot-app/ai-context/files.json +0 -214
  456. package/test-projects/spring-boot-app/ai-context/graph/knowledge-graph.json +0 -231
  457. package/test-projects/spring-boot-app/ai-context/graph/module-graph.json +0 -22
  458. package/test-projects/spring-boot-app/ai-context/graph/symbol-graph.json +0 -794
  459. package/test-projects/spring-boot-app/ai-context/graph/symbol-references.json +0 -70
  460. package/test-projects/spring-boot-app/ai-context/index-state.json +0 -301
  461. package/test-projects/spring-boot-app/ai-context/index.db +0 -0
  462. package/test-projects/spring-boot-app/ai-context/modules.json +0 -21
  463. package/test-projects/spring-boot-app/ai-context/project.json +0 -17
  464. package/test-projects/spring-boot-app/ai-context/repo_map.json +0 -461
  465. package/test-projects/spring-boot-app/ai-context/repo_map.md +0 -109
  466. package/test-projects/spring-boot-app/ai-context/schema.json +0 -5
  467. package/test-projects/spring-boot-app/ai-context/summary.md +0 -12
  468. package/test-projects/spring-boot-app/ai-context/symbols.json +0 -1
  469. package/test-projects/spring-boot-app/ai-context/tech_stack.md +0 -32
  470. package/test-projects/spring-boot-app/ai-context/tools.json +0 -10
package/BUGS.md DELETED
@@ -1,455 +0,0 @@
1
- # Bugs y Problemas Encontrados
2
-
3
- ## Historial
4
-
5
- ### 2026-03-17
6
-
7
- #### Bug 1: Features y Flows vacíos (YA CORREGIDO)
8
- **Estado**: ✅ Corregido
9
- **Fecha**: 2026-03-17
10
- **Severidad**: Alta
11
-
12
- **Descripción**: Al ejecutar `ai-first init`, los directorios `ai/context/features/` y `ai/context/flows/` estaban vacíos.
13
-
14
- **Causa raíz**: La función `isEntrypoint` en `src/core/semanticContexts.ts` solo buscaba patrones en el nombre del archivo (`authController.ts`), pero no consideraba que los archivos podían estar en directorios como `/commands/`, `/handlers/`, etc.
15
-
16
- **Solución implementada**: Se modificó `isEntrypoint` para que también detecte entrypoints cuando el path contiene `/commands/`, `/handlers/`, `/controllers/`, `/services/`, `/routes/`.
17
-
18
- **Archivos modificados**:
19
- - `src/core/semanticContexts.ts`
20
-
21
- ---
22
-
23
- #### Bug 2: Relaciones de símbolos (Parcial - Limitación conocida)
24
- **Estado**: ⚠️ Parcialmente corregido - Limitación arquitectónica
25
- **Fecha**: 2026-03-17
26
- **Severidad**: Media
27
-
28
- **Problema original**: El comando `context` no mostraba todos los tipos de relaciones disponibles.
29
-
30
- **Progreso**:
31
- - ✅ FIXED: Ahora muestra todos los tipos: Calls, Called by, Imports, Exports, References
32
- - ✅ FIXED: Imports/Exports se detectan correctamente (resuelto en Bug 11)
33
- - ⚠️ KNOWN LIMITATION: Calls y Called by siempre muestran 0
34
-
35
- **Limitación técnica**:
36
- El sistema actual NO puede detectar relaciones de llamada (calls/called_by) porque:
37
- 1. Requiere análisis del AST (Abstract Syntax Tree) completo
38
- 2. Necesita resolver scopes, imports, y referencias de variables
39
- 3. El parser actual es basado en regex, no en AST real
40
- 4. Para implementarlo completamente se necesitaría:
41
- - Integrar TypeScript compiler API o Babel
42
- - Reconstruir el grafo de llamadas completo
43
- - Mapear cada llamada de función a su símbolo correspondiente
44
- - **Esfuerzo estimado**: 3-5 días de desarrollo intensivo
45
-
46
- **Impacto**: Bajo-Medio. Las relaciones imports/exports funcionan correctamente y son las más importantes para entender dependencias.
47
-
48
- **Decisión**: Aceptar como limitación conocida. El 80% del valor está en imports/exports que funcionan correctamente.
49
-
50
- **Archivos involucrados**:
51
- - `src/commands/ai-first.ts` (muestra los tipos)
52
- - `src/core/symbolGraph.ts` (necesitaría AST parser para calls)
53
-
54
- ---
55
-
56
- #### Bug 3:duplicado en CHANGELOG.md
57
- **Estado**: ⚠️ Pendiente
58
- **Fecha**: 2026-03-17
59
- **Severidad**: Baja
60
-
61
- **Descripción**: El archivo CHANGELOG.md contiene contenido duplicado. Las mismas features aparecen listadas múltiples veces.
62
-
63
- **Ejemplos**:
64
- - Líneas 15-16: "AI Repository Schema" duplicado
65
- - Líneas 21-22: "Incremental Analysis" duplicado
66
- - Líneas 25-28: "Repository Knowledge Graph" duplicado
67
-
68
- **Acción sugerida**: Limpiar manualmente el archivo, eliminando duplicados.
69
-
70
- ---
71
-
72
- #### Bug 4: Vulnerabilidades en dependencias de dev
73
- **Estado**: ⚠️ Parcialmente corregido - Riesgo aceptado
74
- **Fecha**: 2026-03-17
75
- **Severidad**: Baja
76
-
77
- **Descripción**: Vulnerabilidades en dependencias de desarrollo (`vitepress`, `vitest`, `esbuild`).
78
-
79
- **Progreso**:
80
- - Inicial: 6 vulnerabilidades moderate
81
- - Después de actualizar vitest a 4.x: 3 vulnerabilidades moderate
82
-
83
- **Vulnerabilidades restantes**:
84
- - `esbuild <=0.24.2` (a través de `vite` -> `vitepress`)
85
- - Afecta solo el servidor de desarrollo de Vite
86
-
87
- **Notas**:
88
- - Todas las vulnerabilidades son en dependencias de **desarrollo**
89
- - No afectan el runtime de producción de ai-first-cli
90
- - Requieren acceso al servidor de desarrollo local para explotarse
91
- - Solución completa requeriría romper compatibilidad con vitepress
92
-
93
- **Decisión**: Aceptar el riesgo dado el bajo impacto y alto costo de migración.
94
-
95
- ---
96
-
97
- ## Pendientes por hacer
98
-
99
- - [ ] Investigar Bug 2: Relaciones de símbolos mostrando 0 (parcial - detecta imports/exports pero no calls)
100
- - [ ] Limpiar CHANGELOG.md duplicado (ya está limpio en versión 1.1.4)
101
- - [x] Evaluar vulnerabilidades de npm audit - Reducidas de 6 a 3, riesgo aceptado
102
- - [x] Bug 7: Flows con rutas incorrectas en Express - CORREGIDO
103
- - [x] Bug 2: Context muestra relationships - PARCIALMENTE CORREGIDO
104
- - [x] Bug 10: Símbolos Apex no extraídos - CORREGIDO
105
- - [x] Bug 11: Python/JSX no detectan imports - CORREGIDO
106
-
107
- ---
108
-
109
- ### Bug 8: Extensiones Salesforce no incluidas en escaneo
110
- **Estado**: ✅ Corregido
111
- **Fecha**: 2026-03-17
112
- **Severidad**: Alta
113
-
114
- **Descripción**: Las extensiones de Salesforce (.cls, .trigger) no estaban incluidas en DEFAULT_INCLUDE_EXTENSIONS, por lo que el scanner no detectaba archivos Apex.
115
-
116
- **Archivo modificado**: `src/utils/fileUtils.ts`
117
-
118
- **Extensiones agregadas**: `.cls`, `.trigger`, `.apex`, `.object`
119
-
120
- **Verificación**: Ahora el proyecto `salesforce-cli` detecta los archivos .cls y .trigger.
121
-
122
- ---
123
-
124
- ### Bug 9: TechStack no detecta Salesforce
125
- **Estado**: ⚠️ Pendiente
126
- **Fecha**: 2026-03-17
127
- **Severidad**: Media
128
-
129
- **Descripción**: Aunque ahora se escanean los archivos Apex, el analizador de techStack no detecta Salesforce como framework. Debería identificar proyectos con `sfdx-project.json` y archivos `.cls`.
130
-
131
- **Solución sugerida**: Agregar detección de Salesforce en `src/analyzers/techStack.ts` buscando archivos `sfdx-project.json` o extensiones `.cls`.
132
-
133
- ---
134
-
135
- ### Bug 10: Analyzer de símbolos no soporta Apex
136
- **Estado**: ✅ Corregido
137
- **Fecha**: 2026-03-17
138
- **Severidad**: Alta
139
-
140
- **Descripción**: El archivo `symbols.json` no extrae símbolos de archivos Apex (.cls). El comando `map` genera 0 símbolos para proyectos Salesforce.
141
-
142
- **Causa raíz**: El analyzer `src/analyzers/symbols.ts` no incluye lógica para parsear Apex. No había un parser para las extensiones `.cls` y `.trigger`.
143
-
144
- **Solución implementada**:
145
- - Se agregó la función `parseApex()` en `src/analyzers/symbols.ts`
146
- - Se agregaron las extensiones `.cls` y `.trigger` al switch de `parseFileForSymbols()`
147
- - El parser detecta: clases (con `with sharing`, `without sharing`), interfaces, métodos (con `@AuraEnabled`), y triggers
148
-
149
- **Archivo modificado**: `src/analyzers/symbols.ts`
150
-
151
- **Verificación**:
152
- ```bash
153
- node dist/commands/ai-first.js map --root test-projects/salesforce-cli
154
- # Output: "Symbols: 7"
155
- # Extrae: AccountController, createAccount, updateAccountRating,
156
- # OpportunityController, closeWon, validateOpportunity, AccountTrigger
157
- ```
158
-
159
- ### Bug 5: Features vacíos con comando `init`
160
- **Estado**: ✅ Corregido
161
- **Severidad**: Alta
162
-
163
- **Descripción**: El comando `init` no genera features ni flows porque no crea el archivo `modules.json` que es requerido por `generateSemanticContexts()`.
164
-
165
- **Solución implementada**:
166
- 1. Se modificó `runAIFirst()` en `src/commands/ai-first.ts` para generar `modules.json` antes de llamar a `generateSemanticContexts()`
167
- 2. Se agregaron más raíces de candidatos en `semanticContexts.ts` para detectar proyectos MVC/Express
168
- 3. Se relajó el mínimo de archivos de 3 a 2 para proyectos pequeños
169
- 4. Se agregaron extensiones de Salesforce a `SOURCE_EXTENSIONS`
170
- 5. Se simplificó la lógica para usar módulos directamente de `modules.json`
171
-
172
- **Archivos modificados**:
173
- - `src/commands/ai-first.ts`
174
- - `src/core/semanticContexts.ts`
175
- - `src/utils/fileUtils.ts`
176
-
177
- ---
178
-
179
- ### Bug 6: Features no detectados en proyectos JS/Python/React
180
- **Estado**: ✅ Corregido
181
- **Severidad**: Alta
182
-
183
- **Descripción**: Los proyectos JavaScript, Python y React no generaban features.
184
-
185
- **Solución implementada**:
186
- - Se agregaron `controllers`, `routes`, `handlers`, `views`, `pages` a `CANDIDATE_ROOTS`
187
- - Se eliminó `models` y `services` de `IGNORED_FOLDERS`
188
- - Se cambió la lógica para usar módulos directamente de `modules.json` en lugar de buscar subdirectorios
189
- - Se relajó el mínimo de archivos de 3 a 2
190
-
191
- ---
192
-
193
- ### Bug 7: Flows con rutas incorrectas en Express
194
- **Estado**: ✅ Corregido
195
- **Fecha**: 2026-03-17
196
- **Severidad**: Media
197
-
198
- **Descripción**: Los flows generados para Express tenían rutas incorrectas y dependencias npm.
199
-
200
- **Problema**:
201
- - Dependencias npm como `jsonwebtoken` aparecían en los flows
202
- - Rutas mal formadas como `controllers/../services/authService/index`
203
-
204
- **Causa raíz**: La función `normalizeImportPath` no filtraba dependencias npm y no normalizaba rutas correctamente.
205
-
206
- **Solución implementada**:
207
- - Modificada `normalizeImportPath` para retornar `null` en lugar del path para dependencias npm
208
- - Agregada normalización de rutas con `path.normalize()` para eliminar `.` y `..`
209
- - Eliminado slash inicial si está presente
210
-
211
- **Archivo modificado**: `src/analyzers/dependencies.ts`
212
-
213
- **Verificación**:
214
- ```json
215
- {
216
- "name": "auth",
217
- "entrypoint": "controllers/authController.js",
218
- "files": [
219
- "controllers/authController.js",
220
- "services/authService.js"
221
- ]
222
- }
223
- ```
224
-
225
- ---
226
-
227
- ### Bug 11: Python/JSX no detectan imports (solo exports)
228
- **Estado**: ✅ Corregido
229
- **Fecha**: 2026-03-17
230
- **Severidad**: Alta
231
-
232
- **Descripción**: Los proyectos Python y React/JSX solo detectaban relaciones de tipo "exports", pero no "imports". Esto causaba que el symbol graph mostrara 0 imports para estos proyectos.
233
-
234
- **Causa raíz**:
235
- 1. `findTargetSymbol` en `symbolGraph.ts` no encontraba los símbolos objetivo porque buscaba por nombre exacto, pero los símbolos tienen IDs como `file.py#functionName`
236
- 2. `normalizeImportPath` en `dependencies.ts` añadía `/index` a todas las rutas de importación, pero esto es incorrecto para imports como `../context/AuthContext` que deberían resolverse a `AuthContext.tsx`
237
-
238
- **Solución implementada**:
239
- 1. Se modificó `findTargetSymbol` para buscar símbolos en el archivo objetivo cuando no encuentra match exacto
240
- 2. Se simplificó `normalizeImportPath` para usar `path.join()` correctamente y eliminar la lógica incorrecta de `/index`
241
-
242
- **Archivos modificados**:
243
- - `src/core/symbolGraph.ts`
244
- - `src/analyzers/dependencies.ts`
245
-
246
- **Verificación**:
247
- - python-cli: 7 imports, 14 exports ✅
248
- - react-app: 38 imports, 12 exports ✅
249
-
250
- ---
251
-
252
- ### Bug A: index command no genera index.db
253
- **Estado**: ✅ Corregido
254
- **Fecha**: 2026-03-17
255
- **Severidad**: Alta
256
-
257
- **Descripción**: El comando `index` generaba el archivo `index.db` en el directorio actual en lugar de en el directorio especificado por `--root`.
258
-
259
- **Causa raíz**: El `outputPath` se inicializaba con `process.cwd()` antes de parsear los argumentos, y no se actualizaba cuando se especificaba `--root`.
260
-
261
- **Solución implementada**: Se modificó el comando `index` para que:
262
- 1. El `outputPath` sea `null` inicialmente
263
- 2. Se calcule el path por defecto basado en `rootDir` después de parsear todos los argumentos
264
- 3. Solo si no se especificó `--output` explícitamente
265
-
266
- **Archivos modificados**:
267
- - `src/commands/ai-first.ts`
268
-
269
- **Verificación**:
270
- ```bash
271
- ai-first index --root test-projects/express-api
272
- # Ahora genera: test-projects/express-api/ai/index.db ✅
273
- ```
274
-
275
- ---
276
-
277
- ### Bug B: graph command falla sin repositorio git
278
- **Estado**: ✅ Corregido
279
- **Fecha**: 2026-03-17
280
- **Severidad**: Alta
281
-
282
- **Descripción**: El comando `graph` fallaba con exit code 1 si el proyecto no era un repositorio git.
283
-
284
- **Causa raíz**: El comando requería explícitamente un repositorio git y hacía `process.exit(1)` si no lo encontraba.
285
-
286
- **Solución implementada**:
287
- 1. Se cambió el error fatal a un warning
288
- 2. Se permite generar el knowledge graph sin información git
289
- 3. Se usa la información disponible (features, flows, symbols, dependencies)
290
- 4. Se agregó la opción `--no-git` para forzar modo sin git
291
-
292
- **Archivos modificados**:
293
- - `src/commands/ai-first.ts`
294
-
295
- **Verificación**:
296
- ```bash
297
- ai-first graph --root test-projects/express-api
298
- # Antes: ❌ Exit 1 - "Not a git repository"
299
- # Después: ✅ Exit 0 - Genera knowledge-graph.json
300
- ```
301
-
302
- ---
303
-
304
- ### Bug C: query command falla
305
- **Estado**: ✅ Corregido
306
- **Fecha**: 2026-03-17
307
- **Severidad**: Media
308
-
309
- **Descripción**: El comando `query` fallaba con exit code 1 porque no encontraba el archivo `index.db`.
310
-
311
- **Causa raíz**: Era un efecto secundario del Bug A. Como `index` no generaba `index.db` en la ubicación correcta, `query` no podía encontrarlo.
312
-
313
- **Solución implementada**: Se corrigió el Bug A, lo cual resolvió automáticamente el Bug C.
314
-
315
- **Archivos involucrados**:
316
- - `src/commands/ai-first.ts` (mismo fix que Bug A)
317
-
318
- **Verificación**:
319
- ```bash
320
- ai-first query symbol login --root test-projects/express-api
321
- # Antes: ❌ Exit 1 - "Index not found"
322
- # Después: ✅ Exit 0 - Encuentra símbolos
323
- ```
324
-
325
- ---
326
-
327
- ## Bugs Pendientes
328
-
329
- - [ ] Bug 2 (Parcial): Calls/Called by detection requiere AST parser completo (limitación aceptada)
330
- - [ ] Bug 4 (Parcial): 3 vulnerabilidades npm restantes (riesgo aceptado - dev only)
331
-
332
- ---
333
-
334
- ## Nuevos Issues Identificados (Para futuras versiones)
335
-
336
- ### Issue 1: Testing de proyectos diversos
337
- **Estado**: ⚠️ Pendiente
338
- **Severidad**: Media
339
-
340
- **Problema**: Actualmente solo se testean 5 tipos de proyectos (Express, NestJS, Python, React, Salesforce). Hay muchos más frameworks/lenguajes soportados que no tienen tests:
341
- - Laravel (PHP)
342
- - Django/Flask (Python web)
343
- - Rails (Ruby)
344
- - Spring Boot (Java)
345
- - Phoenix (Elixir)
346
- - ASP.NET Core (C#)
347
- - Blazor (.NET)
348
- - FastAPI (Python)
349
- - Y más...
350
-
351
- **Solución sugerida**: Crear test projects para cada framework soportado y automatizar las pruebas.
352
-
353
- ---
354
-
355
- ### Issue 2: Archivos duplicados
356
- **Estado**: ⚠️ Pendiente
357
- **Severidad**: Media
358
-
359
- **Problema**: Se generan archivos duplicados con diferentes convenciones de nombre:
360
- - `repo-map.json` (kebab-case)
361
- - `repo_map.json` (snake_case)
362
- - `repo_map.md` (snake_case)
363
-
364
- **Impacto**: Confusión para usuarios, archivos innecesarios que ocupan espacio.
365
-
366
- **Solución sugerida**: Consolidar en un solo archivo usando snake_case consistente: `repo_map.json`.
367
-
368
- ---
369
-
370
- ### Issue 3: Inconsistencias en convenciones de nomenclatura
371
- **Estado**: ⚠️ Pendiente
372
- **Severidad**: Baja-Media
373
-
374
- **Problema**: Mezcla de convenciones de nombre en archivos generados:
375
- - Kebab-case: `repo-map.json`, `module-graph.json`, `symbol-graph.json`
376
- - Snake_case: `repo_map.md`, `ai_context.md`, `tech_stack.md`
377
- - CamelCase: `aiContext` (en código), `contextPacket`
378
-
379
- **Impacto**: Dificulta recordar nombres de archivos, inconsistencia visual.
380
-
381
- **Solución sugerida**: Estandarizar todo a snake_case:
382
- - `repo_map.json` (no `repo-map.json`)
383
- - `module_graph.json` (no `module-graph.json`)
384
- - `symbol_graph.json` (no `symbol-graph.json`)
385
- - `ai_context.md` (ya está bien)
386
-
387
- ---
388
-
389
- ### Issue 4: Organización de carpeta ai/
390
- **Estado**: ⚠️ Pendiente
391
- **Severidad**: Media
392
-
393
- **Problema**: La carpeta `ai/` contiene archivos que NO son generados por el CLI:
394
- - `ai/` en el repositorio contiene archivos del propio proyecto (meta)
395
- - Los usuarios esperan que `ai/` solo contenga archivos generados por `ai-first`
396
- - Mezcla de archivos de ejemplo/documentación con archivos de análisis real
397
-
398
- **Impacto**: Confusión sobre qué archivos deberían versionarse vs ignorarse.
399
-
400
- **Solución sugerida**:
401
- 1. Renombrar la carpeta de ejemplo/documentación a `.ai-example/` o `ai-example/`
402
- 2. O mover los archivos de ejemplo a `docs/examples/ai/`
403
- 3. Agregar `.ai/` a `.gitignore` para que los usuarios no versionen archivos generados
404
- 4. Documentar claramente qué archivos son generados vs manuales
405
-
406
- ---
407
-
408
- ### Issue 5: Limpieza de archivos temporales/cache
409
- **Estado**: ⚠️ Pendiente
410
- **Severidad**: Baja
411
-
412
- **Problema**: Archivos temporales y de caché se acumulan en `ai/`:
413
- - `cache.json` - puede ser grande
414
- - `index-state.json` - estado interno
415
- - `embeddings.json` - muy grande (706KB en ejemplo)
416
-
417
- **Solución sugerida**:
418
- 1. Crear subcarpeta `ai/.cache/` para archivos temporales
419
- 2. Agregar `ai/.cache/` a `.gitignore` por defecto
420
- 3. Documentar qué archivos son seguros para versionar
421
-
422
- ---
423
-
424
- ### Issue 6: Documentación desactualizada
425
- **Estado**: ⚠️ Pendiente
426
- **Severidad**: Baja
427
-
428
- **Problema**: Algunos archivos README tienen información desactualizada:
429
- - Referencias a comandos que cambiaron de nombre
430
- - Ejemplos con rutas antiguas
431
- - Badge links que podrían estar rotos
432
-
433
- **Solución sugerida**: Revisión completa de documentación en inglés y español.
434
-
435
- ---
436
-
437
- ### Issue 7: Mejorar manejo de errores en git command
438
- **Estado**: ⚠️ Pendiente
439
- **Severidad**: Baja
440
-
441
- **Problema**: El comando `git` muestra error crudo cuando no hay repositorio:
442
- ```
443
- ❌ Not a git repository
444
- EXIT_CODE: 1
445
- ```
446
-
447
- **Solución sugerida**: Mostrar mensaje más amigable:
448
- ```
449
- ⚠️ No git repository found in <path>
450
- 💡 Run 'git init' first to enable git analysis
451
- ```
452
-
453
- ---
454
-
455
- *Documento actualizado: 2026-03-17*
package/PLAN_MEJORAS.md DELETED
@@ -1,216 +0,0 @@
1
- # 📋 PLAN DE MEJORAS - ai-first-cli
2
- ## Roadmap de 5 Fases
3
-
4
- ---
5
-
6
- ## 🎯 OBJETIVO GENERAL
7
-
8
- Implementar todas las mejoras identificadas en el análisis mediante un proceso estructurado de 5 fases, donde cada fase:
9
- - Tiene su propia branch
10
- - Incluye desarrollo + pruebas exhaustivas
11
- - No se mergea hasta que todas las pruebas pasen
12
- - Actualiza documentación (ENG + ES) y changelog
13
-
14
- ---
15
-
16
- ## 📊 RESUMEN DE FASES
17
-
18
- | Fase | Nombre | Branch | Prioridad | Estado | Breaking Changes |
19
- |------|--------|--------|-----------|--------|------------------|
20
- | 1 | Testing Infrastructure | `feature/phase-1-testing-infrastructure` | 🔴 Crítica | ✅ **COMPLETADO** | ❌ No |
21
- | 2 | Code Quality | `feature/phase-2-code-quality` | 🔴 Crítica | ✅ **COMPLETADO** | ✅ Sí |
22
- | 3 | Architecture | `feature/phase-3-architecture` | 🟠 Alta | ⏳ Pendiente | ✅ Sí |
23
- | 4 | Performance | `feature/phase-4-performance` | 🟡 Media | ⏳ Pendiente | ❌ No |
24
- | 5 | Documentation | `feature/phase-5-documentation` | 🟢 Baja | ⏳ Pendiente | ❌ No |
25
-
26
- ---
27
-
28
- ## ✅ CRITERIOS DE ÉXITO POR FASE
29
-
30
- 1. **Todas las pruebas funcionales pasan** (11 comandos × N proyectos mínimo)
31
- 2. **Resultados esperados = Resultados obtenidos**
32
- 3. **Documentación actualizada** (README.md, README.es.md, CHANGELOG.md, CHANGELOG.es.md)
33
- 4. **Commit claro** con mensaje descriptivo
34
- 5. **Push a GitHub** en branch correspondiente
35
-
36
- ---
37
-
38
- ## 📊 ESTADO ACTUAL - PHASE 2 COMPLETADO ✅
39
-
40
- ### Commit: `b9d50bc`
41
- **Fecha:** 2026-03-18
42
- **Branch:** `feature/phase-2-code-quality`
43
- **Push:** ✅ Subido a `upstream/feature/phase-2-code-quality`
44
-
45
- ### Bugs Arreglados en Phase 2:
46
-
47
- 1. **Symbol Extraction Extension Bug** ✅
48
- - `src/analyzers/symbols.ts` - Extension checks faltaban puntos
49
- - `"ts"` → `".ts"`, `"js"` → `".js"`, etc.
50
-
51
- 2. **Flow Name Sanitization** ✅
52
- - `src/core/semanticContexts.ts` - Nueva función `sanitizeFlowName()`
53
- - Elimina: double dots (`..`), trailing underscores (`_`)
54
-
55
- 3. **Duplicate Files Consolidation** ✅
56
- - `repo-map.json` → `repo_map.json` (11 archivos eliminados)
57
-
58
- 4. **Missing Parsers (PHP & Ruby)** ✅
59
- - `parsePHP()` - Laravel adapter ahora funciona
60
- - `parseRuby()` - Rails adapter ahora funciona
61
-
62
- ### Test Results - Symbol Extraction (11/11 PASS):
63
-
64
- | Adapter | Ext | File | Symbols | Status |
65
- |---------|-----|------|---------|--------|
66
- | Django | .py | blog/models.py | 10 | ✅ |
67
- | Laravel | .php | Controller.php | 1 | ✅ |
68
- | FastAPI | .py | app/main.py | 2 | ✅ |
69
- | Flask | .py | app/models.py | 17 | ✅ |
70
- | Rails | .rb | app/models/user.rb | 4 | ✅ |
71
- | Spring Boot | .java | DemoApplication.java | 2 | ✅ |
72
- | NestJS | .ts | src/main.ts | 2 | ✅ |
73
- | Express | .js | index.js | 7 | ✅ |
74
- | React | .tsx | src/App.tsx | 1 | ✅ |
75
- | Salesforce | .cls | AccountController.cls | 3 | ✅ |
76
- | Python CLI | .py | main.py | 1 | ✅ |
77
-
78
- ### Adapter Coverage: 11/11 (100%) ✅
79
-
80
- ---
81
-
82
- ## 🚀 PROMPTS DE DESARROLLO POR FASE
83
-
84
- ### FASE 1: TESTING INFRASTRUCTURE ✅ COMPLETADO
85
- **Branch:** `feature/phase-1-testing-infrastructure`
86
- **Commit:** `a5562f1`
87
-
88
- ---
89
-
90
- ### FASE 2: CODE QUALITY ✅ COMPLETADO
91
- **Branch:** `feature/phase-2-code-quality`
92
- **Commits:**
93
- - `b9d50bc` - fix: Add PHP and Ruby parsers for symbol extraction
94
- - `9fb4196` - test: Add functional tests for Phase 2 fixes
95
- - `c6a8a31` - chore: Regenerate main project AI context with sanitized flow names
96
- - `a9bf9df` - chore: Regenerate test project AI contexts and clean up malformed files
97
- - `2b4f1a2` - fix(Phase 2): Core code fixes for symbol extraction and flow names
98
- - `0559783` - fix(Phase 2): Multiple code quality improvements
99
-
100
- **FIXES IMPLEMENTADOS:**
101
-
102
- 1. **Symbol Extraction Extension Fix**
103
- - Archivo: `src/analyzers/symbols.ts`
104
- - Problema: `path.extname()` devuelve `.js` pero el check era `=== "js"` (sin punto)
105
- - Solución: Cambiar todos los checks a formato con punto: `".js"`, `".ts"`, etc.
106
-
107
- 2. **Flow Name Sanitization**
108
- - Archivo: `src/core/semanticContexts.ts`
109
- - Función: `sanitizeFlowName()`
110
- - Sanitiza: `..` → `.`, trailing `_` → removed
111
-
112
- 3. **repo-map.json Consolidation**
113
- - Archivo: `src/commands/ai-first.ts`
114
- - Cambio: `repo-map.json` → `repo_map.json`
115
-
116
- 4. **PHP Parser Added**
117
- - Archivo: `src/analyzers/symbols.ts`
118
- - Función: `parsePHP()`
119
- - Soporta: classes, interfaces, functions, constants
120
-
121
- 5. **Ruby Parser Added**
122
- - Archivo: `src/analyzers/symbols.ts`
123
- - Función: `parseRuby()`
124
- - Soporta: classes, modules, methods, constants
125
-
126
- ---
127
-
128
- ### FASE 3: ARCHITECTURE ✅ COMPLETADO
129
- **Branch:** `feature/phase-3-architecture`
130
- **Objetivo:** Renombrar ai/ a ai-context/ y reorganizar estructura
131
-
132
- ---
133
-
134
- ### FASE 4: PERFORMANCE ✅ COMPLETADO
135
- **Branch:** `feature/phase-4-performance`
136
- **Objetivo:** Mover embeddings a SQLite y fixes menores
137
-
138
- ---
139
-
140
- ### FASE 5: DOCUMENTATION ✅ COMPLETADO
141
- **Branch:** `feature/phase-5-documentation`
142
- **Objetivo:** Actualizar documentación en español y crear changelogs
143
-
144
- ---
145
-
146
- ## 📊 CRONOGRAMA ACTUALIZADO
147
-
148
- | Fase | Duración Estimada | Dependencias | Estado |
149
- |------|-------------------|--------------|--------|
150
- | Phase 1: Testing | 3-4 días | Ninguna | ✅ **COMPLETADO** |
151
- | Phase 2: Code Quality | 2-3 días | Ninguna | ✅ **COMPLETADO** |
152
- | Phase 3: Architecture | 2 días | Phase 2 | ✅ **COMPLETADO** |
153
- | Phase 4: Performance | 1-2 días | Phase 3 | ✅ **COMPLETADO** |
154
- | Phase 5: Documentation | 1-2 días | Todas las anteriores | ✅ **COMPLETADO** |
155
-
156
- **Total:** 9-13 días de desarrollo
157
- **Completado:** 5/5 fases (100%)
158
-
159
- ---
160
-
161
- ## 🔄 PROCESO DE MERGE
162
-
163
- 1. **Cada fase se desarrolla en su branch**
164
- 2. **Todas las pruebas deben pasar** antes de considerar merge
165
- 3. **Code review** entre fases
166
- 4. **Merge a master** solo cuando todas las fases estén completas
167
- 5. **Release v1.2.0** al final de Phase 5
168
-
169
- ---
170
-
171
- ## ✅ CHECKLIST PRE-RELEASE v1.2.0
172
-
173
- - [x] Phase 1: 11 test projects working (5 old + 6 new)
174
- - [x] Phase 1: Commit pushed to GitHub
175
- - [x] Phase 2: No duplicate files, all snake_case
176
- - [x] Phase 2: Symbol extraction fixed for all 11 adapters
177
- - [x] Phase 2: Flow names sanitized (no more auth..json, add_.json)
178
- - [x] Phase 3: New folder structure working (ai-context/ instead of ai/)
179
- - [ ] Phase 4: Performance improvements verified
180
- - [ ] Phase 5: Documentation complete (ENG + ES)
181
- - [ ] All 11 commands work on all 11 projects
182
- - [ ] CHANGELOG.md and CHANGELOG.es.md updated
183
- - [ ] README.md and README.es.md synchronized
184
- - [ ] Migration guide created
185
- - [ ] Breaking changes documented
186
- - [ ] Version bumped to 1.2.0
187
- - [ ] Published to npm
188
-
189
- ---
190
-
191
- ## 📁 DOCUMENTACIÓN CREADA DURANTE PHASE 2
192
-
193
- 1. **tests/phase2-fixes.test.ts** - Pruebas funcionales para fixes de Phase 2
194
- 2. **test_adapters.mjs** - Script de prueba para 11 adapters
195
- 3. **PLAN_MEJORAS.md** - Actualizado con estado de Phase 2
196
-
197
- ---
198
-
199
- ## ⚠️ PROBLEMAS CONOCIDOS - RESOLVED
200
-
201
- ### 1. Archivos Duplicados ✅ RESUELTO
202
- - `repo-map.json` eliminado, solo `repo_map.json` existe
203
-
204
- ### 2. Nombres de Flows Malformados ✅ RESUELTO
205
- - Función `sanitizeFlowName()` implementada
206
- - Archivos malformados eliminados
207
-
208
- ### 3. Symbol Extraction Fallando ✅ RESUELTO
209
- - Extension checks corregidos (`.js`, `.ts`, etc.)
210
- - PHP y Ruby parsers agregados
211
-
212
- ---
213
-
214
- *Plan creado: 2026-03-17*
215
- *Última actualización: 2026-03-18*
216
- *Version target: 1.2.0*