@codeyam/codeyam-cli 0.1.0-staging.8aea589 → 0.1.0-staging.bbe4da9

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 (485) hide show
  1. package/analyzer-template/.build-info.json +7 -7
  2. package/analyzer-template/log.txt +3 -3
  3. package/analyzer-template/package.json +8 -7
  4. package/analyzer-template/packages/ai/index.ts +6 -2
  5. package/analyzer-template/packages/ai/package.json +2 -2
  6. package/analyzer-template/packages/ai/scripts/ai-test-matrix.mjs +424 -0
  7. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +24 -0
  8. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +6 -16
  9. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +197 -0
  10. package/analyzer-template/packages/ai/src/lib/astScopes/paths.ts +28 -2
  11. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +145 -4
  12. package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +1 -3
  13. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +1877 -542
  14. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.ts +138 -0
  15. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +1 -1
  16. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +139 -0
  17. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/DebugTracer.ts +224 -0
  18. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/PathManager.ts +203 -0
  19. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/README.md +294 -0
  20. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +161 -0
  21. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.ts +235 -0
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +64 -1
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +14 -6
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/selectBestValue.ts +70 -0
  25. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.ts +113 -0
  26. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +36 -0
  27. package/analyzer-template/packages/ai/src/lib/generateChangesEntityDocumentation.ts +20 -2
  28. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +56 -160
  29. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +79 -265
  30. package/analyzer-template/packages/ai/src/lib/generateEntityDocumentation.ts +16 -2
  31. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +32 -8
  32. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +53 -154
  33. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +84 -254
  34. package/analyzer-template/packages/ai/src/lib/generateStatementAnalysis.ts +48 -71
  35. package/analyzer-template/packages/ai/src/lib/getConditionalUsagesFromCode.ts +27 -6
  36. package/analyzer-template/packages/ai/src/lib/getLLMCallStats.ts +0 -14
  37. package/analyzer-template/packages/ai/src/lib/modelInfo.ts +15 -0
  38. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +42 -4
  39. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.ts +8 -33
  40. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +54 -62
  41. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +93 -109
  42. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.ts +8 -27
  43. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +33 -38
  44. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +30 -30
  45. package/analyzer-template/packages/ai/src/lib/types/index.ts +2 -0
  46. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +41 -0
  47. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +47 -8
  48. package/analyzer-template/packages/analyze/src/lib/asts/nodes/getNodeType.ts +1 -1
  49. package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +2 -1
  50. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExportedNodes.ts +4 -2
  51. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +5 -3
  52. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +8 -10
  53. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +6 -1
  54. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +8 -6
  55. package/analyzer-template/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.ts +5 -13
  56. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +34 -15
  57. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +17 -3
  58. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +35 -16
  59. package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +21 -33
  60. package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +75 -10
  61. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +26 -0
  62. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +7 -1
  63. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +9 -1
  64. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +6 -1
  65. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +9 -1
  66. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +15 -7
  67. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +12 -2
  68. package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.d.ts +23 -0
  69. package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.d.ts.map +1 -0
  70. package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.js +30 -0
  71. package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.js.map +1 -0
  72. package/analyzer-template/packages/aws/package.json +5 -4
  73. package/analyzer-template/packages/aws/s3/index.ts +4 -0
  74. package/analyzer-template/packages/aws/src/lib/s3/getPresignedUrl.ts +62 -0
  75. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +28 -21
  76. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.ts +18 -11
  77. package/analyzer-template/packages/generate/src/lib/scenarioComponent.ts +6 -3
  78. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
  79. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +28 -21
  80. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  81. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.d.ts.map +1 -1
  82. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js +18 -11
  83. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js.map +1 -1
  84. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.d.ts.map +1 -1
  85. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.js +5 -3
  86. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.js.map +1 -1
  87. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/db.d.ts +2 -0
  88. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/db.d.ts.map +1 -1
  89. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/db.js +3 -0
  90. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/db.js.map +1 -1
  91. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tableRelations.d.ts +2 -0
  92. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tableRelations.d.ts.map +1 -1
  93. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/debugReportsTable.d.ts +37 -0
  94. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -0
  95. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/debugReportsTable.js +27 -0
  96. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/debugReportsTable.js.map +1 -0
  97. package/analyzer-template/packages/github/dist/supabase/src/lib/scenarioToDb.d.ts.map +1 -1
  98. package/analyzer-template/packages/github/dist/supabase/src/lib/scenarioToDb.js +1 -1
  99. package/analyzer-template/packages/github/dist/supabase/src/lib/scenarioToDb.js.map +1 -1
  100. package/analyzer-template/packages/github/dist/utils/index.d.ts +2 -0
  101. package/analyzer-template/packages/github/dist/utils/index.d.ts.map +1 -1
  102. package/analyzer-template/packages/github/dist/utils/index.js +2 -0
  103. package/analyzer-template/packages/github/dist/utils/index.js.map +1 -1
  104. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.d.ts +25 -0
  105. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.d.ts.map +1 -0
  106. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.js +40 -0
  107. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.js.map +1 -0
  108. package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.d.ts.map +1 -1
  109. package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.js +39 -5
  110. package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.js.map +1 -1
  111. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.d.ts.map +1 -1
  112. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.js +2 -1
  113. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -1
  114. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts.map +1 -1
  115. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
  116. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
  117. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts.map +1 -1
  118. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +2 -1
  119. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -1
  120. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts.map +1 -1
  121. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
  122. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
  123. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts +12 -0
  124. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts.map +1 -0
  125. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js +32 -0
  126. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js.map +1 -0
  127. package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -1
  128. package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js +17 -0
  129. package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
  130. package/analyzer-template/packages/supabase/src/lib/kysely/db.ts +6 -0
  131. package/analyzer-template/packages/supabase/src/lib/kysely/tableRelations.ts +3 -0
  132. package/analyzer-template/packages/supabase/src/lib/kysely/tables/debugReportsTable.ts +61 -0
  133. package/analyzer-template/packages/supabase/src/lib/scenarioToDb.ts +1 -0
  134. package/analyzer-template/packages/ui-components/src/scenario-editor/components/DataItemEditor.tsx +1 -1
  135. package/analyzer-template/packages/utils/dist/utils/index.d.ts +2 -0
  136. package/analyzer-template/packages/utils/dist/utils/index.d.ts.map +1 -1
  137. package/analyzer-template/packages/utils/dist/utils/index.js +2 -0
  138. package/analyzer-template/packages/utils/dist/utils/index.js.map +1 -1
  139. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.d.ts +25 -0
  140. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.d.ts.map +1 -0
  141. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.js +40 -0
  142. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.js.map +1 -0
  143. package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.d.ts.map +1 -1
  144. package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.js +39 -5
  145. package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.js.map +1 -1
  146. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.d.ts.map +1 -1
  147. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.js +2 -1
  148. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -1
  149. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts.map +1 -1
  150. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
  151. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
  152. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts.map +1 -1
  153. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +2 -1
  154. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -1
  155. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts.map +1 -1
  156. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
  157. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
  158. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts +12 -0
  159. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts.map +1 -0
  160. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js +32 -0
  161. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js.map +1 -0
  162. package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -1
  163. package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js +17 -0
  164. package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
  165. package/analyzer-template/packages/utils/index.ts +2 -0
  166. package/analyzer-template/packages/utils/src/lib/Semaphore.ts +42 -0
  167. package/analyzer-template/packages/utils/src/lib/applyUniversalMocks.ts +46 -7
  168. package/analyzer-template/packages/utils/src/lib/frameworks/getNextRoutePath.ts +2 -1
  169. package/analyzer-template/packages/utils/src/lib/frameworks/getRemixRoutePath.ts +2 -1
  170. package/analyzer-template/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.ts +2 -1
  171. package/analyzer-template/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.ts +1 -0
  172. package/analyzer-template/packages/utils/src/lib/frameworks/sanitizeNextRouteSegments.ts +33 -0
  173. package/analyzer-template/packages/utils/src/lib/lightweightEntityExtractor.ts +16 -0
  174. package/analyzer-template/project/constructMockCode.ts +199 -9
  175. package/analyzer-template/project/reconcileMockDataKeys.ts +13 -0
  176. package/analyzer-template/project/runMultiScenarioServer.ts +0 -4
  177. package/analyzer-template/project/runScenarioServer.ts +0 -4
  178. package/analyzer-template/project/start.ts +1 -11
  179. package/analyzer-template/project/startScenarioCapture.ts +24 -0
  180. package/analyzer-template/project/startServer.ts +50 -70
  181. package/analyzer-template/project/trackGeneratedFiles.ts +41 -0
  182. package/analyzer-template/project/writeMockDataTsx.ts +191 -7
  183. package/analyzer-template/project/writeScenarioComponents.ts +643 -63
  184. package/analyzer-template/project/writeUniversalMocks.ts +66 -8
  185. package/analyzer-template/scripts/postbuild.cjs +12 -1
  186. package/background/src/lib/virtualized/project/constructMockCode.js +183 -11
  187. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  188. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +12 -0
  189. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  190. package/background/src/lib/virtualized/project/runMultiScenarioServer.js +0 -3
  191. package/background/src/lib/virtualized/project/runMultiScenarioServer.js.map +1 -1
  192. package/background/src/lib/virtualized/project/start.js +1 -8
  193. package/background/src/lib/virtualized/project/start.js.map +1 -1
  194. package/background/src/lib/virtualized/project/startScenarioCapture.js +18 -0
  195. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  196. package/background/src/lib/virtualized/project/startServer.js +40 -68
  197. package/background/src/lib/virtualized/project/startServer.js.map +1 -1
  198. package/background/src/lib/virtualized/project/trackGeneratedFiles.js +30 -0
  199. package/background/src/lib/virtualized/project/trackGeneratedFiles.js.map +1 -0
  200. package/background/src/lib/virtualized/project/writeMockDataTsx.js +156 -6
  201. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  202. package/background/src/lib/virtualized/project/writeScenarioComponents.js +433 -41
  203. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  204. package/background/src/lib/virtualized/project/writeUniversalMocks.js +56 -7
  205. package/background/src/lib/virtualized/project/writeUniversalMocks.js.map +1 -1
  206. package/codeyam-cli/src/cli.js +6 -0
  207. package/codeyam-cli/src/cli.js.map +1 -1
  208. package/codeyam-cli/src/codeyam-cli.js +0 -0
  209. package/codeyam-cli/src/commands/debug.js +222 -0
  210. package/codeyam-cli/src/commands/debug.js.map +1 -0
  211. package/codeyam-cli/src/commands/init.js +4 -23
  212. package/codeyam-cli/src/commands/init.js.map +1 -1
  213. package/codeyam-cli/src/commands/report.js +102 -0
  214. package/codeyam-cli/src/commands/report.js.map +1 -0
  215. package/codeyam-cli/src/commands/setup-sandbox.js +165 -0
  216. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -0
  217. package/codeyam-cli/src/commands/test-startup.js +14 -5
  218. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  219. package/codeyam-cli/src/utils/__tests__/cleanupAnalysisFiles.test.js +6 -6
  220. package/codeyam-cli/src/utils/__tests__/cleanupAnalysisFiles.test.js.map +1 -1
  221. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +8 -0
  222. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  223. package/codeyam-cli/src/utils/analysisRunner.js +2 -1
  224. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  225. package/codeyam-cli/src/utils/analyzer.js +24 -2
  226. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  227. package/codeyam-cli/src/utils/cleanupAnalysisFiles.js +2 -2
  228. package/codeyam-cli/src/utils/cleanupAnalysisFiles.js.map +1 -1
  229. package/codeyam-cli/src/utils/generateReport.js +219 -0
  230. package/codeyam-cli/src/utils/generateReport.js.map +1 -0
  231. package/codeyam-cli/src/utils/install-skills.js +7 -0
  232. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  233. package/codeyam-cli/src/utils/queue/__tests__/job.pidTracking.test.js +1 -0
  234. package/codeyam-cli/src/utils/queue/__tests__/job.pidTracking.test.js.map +1 -1
  235. package/codeyam-cli/src/utils/queue/job.js +10 -5
  236. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  237. package/codeyam-cli/src/utils/sandbox.js +190 -0
  238. package/codeyam-cli/src/utils/sandbox.js.map +1 -0
  239. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +4 -0
  240. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  241. package/codeyam-cli/src/utils/webappDetection.js +2 -1
  242. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  243. package/codeyam-cli/src/webserver/app/lib/database.js +50 -2
  244. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  245. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-Dp_FTAs1.js +1 -0
  246. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-TlHocYno.js +26 -0
  247. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-CVMmGuIc.js +3 -0
  248. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-BKKG1s2B.js → LogViewer-JkfQ-VaI.js} +1 -1
  249. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-Cqce0_KG.js +1 -0
  250. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-BrMAP1nP.js +1 -0
  251. package/codeyam-cli/src/webserver/build/client/assets/ScenarioPreview-Bi-__7HT.js +6 -0
  252. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-XmIpHcLJ.js +5 -0
  253. package/codeyam-cli/src/webserver/build/client/assets/_index-BmfhU6CA.js +1 -0
  254. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-Dm8lM73z.js +10 -0
  255. package/codeyam-cli/src/webserver/build/client/assets/api.generate-report-l0sNRNKZ.js +1 -0
  256. package/codeyam-cli/src/webserver/build/client/assets/chart-column-kA4jn9if.js +1 -0
  257. package/codeyam-cli/src/webserver/build/client/assets/chunk-WWGJGFF6-CgXbbZRx.js +26 -0
  258. package/codeyam-cli/src/webserver/build/client/assets/circle-check-B2oHQ-zo.js +1 -0
  259. package/codeyam-cli/src/webserver/build/client/assets/clock-BAfbP_iK.js +1 -0
  260. package/codeyam-cli/src/webserver/build/client/assets/codeyam-name-logo-CvKwUgHo.svg +9 -0
  261. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-BBYuR56H.js +1 -0
  262. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BgPXZbm0.js +1 -0
  263. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-BHiWkb_W.js → entity._sha._-BkoAXaOa.js} +10 -10
  264. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-Bj5GHkhb.js +1 -0
  265. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-eW5z9AyZ.js +5 -0
  266. package/codeyam-cli/src/webserver/build/client/assets/entityStatus-C5Okl18j.js +1 -0
  267. package/codeyam-cli/src/webserver/build/client/assets/{entityVersioning-Bk_YB1jM.js → entityVersioning-CU_Lchhc.js} +1 -1
  268. package/codeyam-cli/src/webserver/build/client/assets/entry.client-B9tSboXM.js +5 -0
  269. package/codeyam-cli/src/webserver/build/client/assets/file-text-18aYHZGd.js +1 -0
  270. package/codeyam-cli/src/webserver/build/client/assets/files-Df79EyEb.js +1 -0
  271. package/codeyam-cli/src/webserver/build/client/assets/git-CDEwTVH_.js +12 -0
  272. package/codeyam-cli/src/webserver/build/client/assets/globals-DXRB6jBc.css +1 -0
  273. package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-XQCGvadH.js +5 -0
  274. package/codeyam-cli/src/webserver/build/client/assets/index-_LjBsTxX.js +8 -0
  275. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-D_EGChhq.js +1 -0
  276. package/codeyam-cli/src/webserver/build/client/assets/manifest-3e0ffbcc.js +1 -0
  277. package/codeyam-cli/src/webserver/build/client/assets/root-CGyT4J4b.js +16 -0
  278. package/codeyam-cli/src/webserver/build/client/assets/settings-CEPbAsom.js +1 -0
  279. package/codeyam-cli/src/webserver/build/client/assets/settings-R8QF_mHX.js +1 -0
  280. package/codeyam-cli/src/webserver/build/client/assets/simulations-B_PXvFom.js +1 -0
  281. package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-BthANBVv.js +1 -0
  282. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-Lumm1t01.js → useLastLogLine-Blr5oZDE.js} +1 -1
  283. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-CANr3QJ5.js +1 -0
  284. package/codeyam-cli/src/webserver/build/client/assets/useToast-Bbf4Hokd.js +1 -0
  285. package/codeyam-cli/src/webserver/build/server/assets/index-vf1FETCO.js +1 -0
  286. package/codeyam-cli/src/webserver/build/server/assets/server-build-B5s58TvB.js +169 -0
  287. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  288. package/codeyam-cli/src/webserver/build-info.json +5 -5
  289. package/codeyam-cli/src/webserver/server.js +1 -1
  290. package/codeyam-cli/src/webserver/server.js.map +1 -1
  291. package/codeyam-cli/templates/codeyam-setup-skill.md +70 -85
  292. package/codeyam-cli/templates/debug-command.md +125 -0
  293. package/package.json +9 -11
  294. package/packages/ai/index.js +2 -3
  295. package/packages/ai/index.js.map +1 -1
  296. package/packages/ai/src/lib/analyzeScope.js +13 -0
  297. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  298. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +6 -15
  299. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  300. package/packages/ai/src/lib/astScopes/methodSemantics.js +134 -0
  301. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  302. package/packages/ai/src/lib/astScopes/paths.js +28 -3
  303. package/packages/ai/src/lib/astScopes/paths.js.map +1 -1
  304. package/packages/ai/src/lib/astScopes/processExpression.js +123 -3
  305. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  306. package/packages/ai/src/lib/checkAllAttributes.js +1 -3
  307. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  308. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1358 -396
  309. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  310. package/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.js +137 -1
  311. package/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.js.map +1 -1
  312. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +1 -1
  313. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  314. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +112 -0
  315. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -0
  316. package/packages/ai/src/lib/dataStructure/helpers/DebugTracer.js +176 -0
  317. package/packages/ai/src/lib/dataStructure/helpers/DebugTracer.js.map +1 -0
  318. package/packages/ai/src/lib/dataStructure/helpers/PathManager.js +178 -0
  319. package/packages/ai/src/lib/dataStructure/helpers/PathManager.js.map +1 -0
  320. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +138 -0
  321. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -0
  322. package/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.js +199 -0
  323. package/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.js.map +1 -0
  324. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +55 -1
  325. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  326. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +14 -6
  327. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  328. package/packages/ai/src/lib/dataStructure/helpers/selectBestValue.js +62 -0
  329. package/packages/ai/src/lib/dataStructure/helpers/selectBestValue.js.map +1 -0
  330. package/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.js +90 -0
  331. package/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.js.map +1 -0
  332. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +22 -0
  333. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +1 -1
  334. package/packages/ai/src/lib/generateChangesEntityDocumentation.js +19 -1
  335. package/packages/ai/src/lib/generateChangesEntityDocumentation.js.map +1 -1
  336. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +55 -156
  337. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  338. package/packages/ai/src/lib/generateChangesEntityScenarios.js +79 -262
  339. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  340. package/packages/ai/src/lib/generateEntityDocumentation.js +15 -1
  341. package/packages/ai/src/lib/generateEntityDocumentation.js.map +1 -1
  342. package/packages/ai/src/lib/generateEntityKeyAttributes.js +32 -8
  343. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +1 -1
  344. package/packages/ai/src/lib/generateEntityScenarioData.js +52 -152
  345. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  346. package/packages/ai/src/lib/generateEntityScenarios.js +88 -258
  347. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  348. package/packages/ai/src/lib/generateStatementAnalysis.js +46 -71
  349. package/packages/ai/src/lib/generateStatementAnalysis.js.map +1 -1
  350. package/packages/ai/src/lib/getConditionalUsagesFromCode.js +13 -8
  351. package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -1
  352. package/packages/ai/src/lib/getLLMCallStats.js +0 -14
  353. package/packages/ai/src/lib/getLLMCallStats.js.map +1 -1
  354. package/packages/ai/src/lib/modelInfo.js +15 -0
  355. package/packages/ai/src/lib/modelInfo.js.map +1 -1
  356. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +36 -3
  357. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  358. package/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.js +8 -33
  359. package/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.js.map +1 -1
  360. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +35 -41
  361. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  362. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +59 -72
  363. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  364. package/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.js +8 -27
  365. package/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.js.map +1 -1
  366. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +24 -27
  367. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  368. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +21 -22
  369. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  370. package/packages/ai/src/lib/types/index.js +2 -0
  371. package/packages/ai/src/lib/types/index.js.map +1 -1
  372. package/packages/ai/src/lib/worker/SerializableDataStructure.js +7 -0
  373. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  374. package/packages/analyze/src/lib/FileAnalyzer.js +39 -7
  375. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  376. package/packages/analyze/src/lib/asts/nodes/getNodeType.js +1 -1
  377. package/packages/analyze/src/lib/asts/nodes/getNodeType.js.map +1 -1
  378. package/packages/analyze/src/lib/asts/nodes/index.js +2 -1
  379. package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
  380. package/packages/analyze/src/lib/asts/sourceFiles/getAllExportedNodes.js +3 -2
  381. package/packages/analyze/src/lib/asts/sourceFiles/getAllExportedNodes.js.map +1 -1
  382. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +4 -3
  383. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
  384. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +6 -8
  385. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  386. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +5 -1
  387. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  388. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +8 -2
  389. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  390. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js +5 -8
  391. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js.map +1 -1
  392. package/packages/analyze/src/lib/files/analyzeChange.js +21 -9
  393. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  394. package/packages/analyze/src/lib/files/analyzeEntity.js +10 -4
  395. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  396. package/packages/analyze/src/lib/files/analyzeInitial.js +21 -9
  397. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  398. package/packages/analyze/src/lib/files/analyzeRemixRoute.js +18 -23
  399. package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
  400. package/packages/analyze/src/lib/files/getImportedExports.js +56 -4
  401. package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
  402. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +24 -0
  403. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  404. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +6 -1
  405. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  406. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +9 -1
  407. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +1 -1
  408. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +5 -1
  409. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  410. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +9 -1
  411. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  412. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +16 -7
  413. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  414. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +8 -2
  415. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -1
  416. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +28 -21
  417. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  418. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js +18 -11
  419. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js.map +1 -1
  420. package/packages/generate/src/lib/scenarioComponent.js +5 -3
  421. package/packages/generate/src/lib/scenarioComponent.js.map +1 -1
  422. package/packages/supabase/src/lib/kysely/db.js +3 -0
  423. package/packages/supabase/src/lib/kysely/db.js.map +1 -1
  424. package/packages/supabase/src/lib/kysely/tables/debugReportsTable.js +27 -0
  425. package/packages/supabase/src/lib/kysely/tables/debugReportsTable.js.map +1 -0
  426. package/packages/supabase/src/lib/scenarioToDb.js +1 -1
  427. package/packages/supabase/src/lib/scenarioToDb.js.map +1 -1
  428. package/packages/utils/index.js +2 -0
  429. package/packages/utils/index.js.map +1 -1
  430. package/packages/utils/src/lib/Semaphore.js +40 -0
  431. package/packages/utils/src/lib/Semaphore.js.map +1 -0
  432. package/packages/utils/src/lib/applyUniversalMocks.js +39 -5
  433. package/packages/utils/src/lib/applyUniversalMocks.js.map +1 -1
  434. package/packages/utils/src/lib/frameworks/getNextRoutePath.js +2 -1
  435. package/packages/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -1
  436. package/packages/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
  437. package/packages/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
  438. package/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +2 -1
  439. package/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -1
  440. package/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
  441. package/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
  442. package/packages/utils/src/lib/frameworks/sanitizeNextRouteSegments.js +32 -0
  443. package/packages/utils/src/lib/frameworks/sanitizeNextRouteSegments.js.map +1 -0
  444. package/packages/utils/src/lib/lightweightEntityExtractor.js +17 -0
  445. package/packages/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
  446. package/analyzer-template/packages/ai/src/lib/generateEntityDataMap.ts +0 -375
  447. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-rqv54FUY.js +0 -1
  448. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-B0oiPem-.js +0 -26
  449. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-DqXXjAJ7.js +0 -3
  450. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-DU_jxCPD.js +0 -1
  451. package/codeyam-cli/src/webserver/build/client/assets/ScenarioPreview-5DY-YIxu.js +0 -6
  452. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-DmjXUj6m.js +0 -5
  453. package/codeyam-cli/src/webserver/build/client/assets/_index-DvSrcxsk.js +0 -1
  454. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CsaMd9mb.js +0 -10
  455. package/codeyam-cli/src/webserver/build/client/assets/chart-column-VXBS6qOn.js +0 -1
  456. package/codeyam-cli/src/webserver/build/client/assets/circle-alert-n5GUC2AS.js +0 -1
  457. package/codeyam-cli/src/webserver/build/client/assets/clock-DKqtX8js.js +0 -1
  458. package/codeyam-cli/src/webserver/build/client/assets/components-Dj-Ggnl2.js +0 -40
  459. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BbR3FwNc.js +0 -1
  460. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-L7M9Vr5z.js +0 -1
  461. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-C9w-q7P3.js +0 -5
  462. package/codeyam-cli/src/webserver/build/client/assets/entry.client-CdGoUs8A.js +0 -1
  463. package/codeyam-cli/src/webserver/build/client/assets/file-text-B6Er7j5k.js +0 -1
  464. package/codeyam-cli/src/webserver/build/client/assets/files-KcDVw1FY.js +0 -1
  465. package/codeyam-cli/src/webserver/build/client/assets/git-B9uZ8eSJ.js +0 -12
  466. package/codeyam-cli/src/webserver/build/client/assets/globals-B0f88RTV.css +0 -1
  467. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-v3c6DFp4.js +0 -1
  468. package/codeyam-cli/src/webserver/build/client/assets/manifest-fca08d7e.js +0 -1
  469. package/codeyam-cli/src/webserver/build/client/assets/root-Cf8VBqIb.js +0 -16
  470. package/codeyam-cli/src/webserver/build/client/assets/search-DA14wXpu.js +0 -1
  471. package/codeyam-cli/src/webserver/build/client/assets/settings-COJUrwGu.js +0 -1
  472. package/codeyam-cli/src/webserver/build/client/assets/settings-NU_ZquhK.js +0 -1
  473. package/codeyam-cli/src/webserver/build/client/assets/simulations-CNaMJ-nR.js +0 -1
  474. package/codeyam-cli/src/webserver/build/client/assets/useToast-BRShB17p.js +0 -1
  475. package/codeyam-cli/src/webserver/build/client/assets/zap-BvukH0eN.js +0 -1
  476. package/codeyam-cli/src/webserver/build/client/cy-logo-cli.svg +0 -13
  477. package/codeyam-cli/src/webserver/build/client/favicon.svg +0 -13
  478. package/codeyam-cli/src/webserver/build/server/assets/index-DHr4rT4u.js +0 -1
  479. package/codeyam-cli/src/webserver/build/server/assets/server-build-Bi1mj14J.js +0 -166
  480. package/codeyam-cli/src/webserver/public/cy-logo-cli.svg +0 -13
  481. package/codeyam-cli/src/webserver/public/favicon.svg +0 -13
  482. package/packages/ai/src/lib/generateEntityDataMap.js +0 -335
  483. package/packages/ai/src/lib/generateEntityDataMap.js.map +0 -1
  484. package/packages/ai/src/lib/promptGenerators/generateEntityDataMapGenerator.js +0 -17
  485. package/packages/ai/src/lib/promptGenerators/generateEntityDataMapGenerator.js.map +0 -1
@@ -12,7 +12,7 @@ import {
12
12
  getReturnValue,
13
13
  getSourceEquivalencies,
14
14
  getUsageEquivalencies,
15
- getConditionalUsagesFromCode,
15
+ getConditionalUsages,
16
16
  detectWrapperRequirements,
17
17
  } from '~codeyam/ai';
18
18
  import type { AnalysisOptions } from '../analyzeEntities';
@@ -94,11 +94,6 @@ export default async function prepareEntityDataStructures(
94
94
  }
95
95
  }
96
96
 
97
- // Extract conditional usages from the entity code for key attribute detection
98
- const conditionalUsages = entity.code
99
- ? getConditionalUsagesFromCode(entity.code)
100
- : {};
101
-
102
97
  entity.metadata.isolatedDataStructure = {
103
98
  signatureSchema: deduplicateFunctionSchemas(
104
99
  isolatedDataStructure.signatureSchema,
@@ -110,10 +105,8 @@ export default async function prepareEntityDataStructures(
110
105
  isolatedDataStructure.equivalentSignatureVariables,
111
106
  dependencySchemas: clonedDependencySchemas,
112
107
  environmentVariables: isolatedDataStructure.environmentVariables,
113
- conditionalUsages:
114
- Object.keys(conditionalUsages).length > 0
115
- ? conditionalUsages
116
- : undefined,
108
+ // Use enriched conditional usages with source tracing from analysis
109
+ conditionalUsages: isolatedDataStructure.conditionalUsages,
117
110
  };
118
111
 
119
112
  // Detect wrapper requirements (Context providers, etc.)
@@ -290,6 +283,9 @@ async function getEntityDataStructureAndFunctionCalls({
290
283
  const clonedRawSignature = { ...rawSignature };
291
284
  const clonedRawReturnValue = { ...rawReturnValue };
292
285
 
286
+ // Get enriched conditional usages with source tracing
287
+ const conditionalUsages = getConditionalUsages(dataStructure);
288
+
293
289
  const isolatedDataStructure = {
294
290
  signatureSchema: deduplicateFunctionSchemas(clonedRawSignature),
295
291
  returnValueSchema: deduplicateFunctionSchemas(clonedRawReturnValue),
@@ -297,6 +293,8 @@ async function getEntityDataStructureAndFunctionCalls({
297
293
  getEquivalentSignatureVariables(dataStructure),
298
294
  dependencySchemas,
299
295
  environmentVariables: dataStructure.environmentVariables,
296
+ conditionalUsages:
297
+ Object.keys(conditionalUsages).length > 0 ? conditionalUsages : undefined,
300
298
  };
301
299
 
302
300
  const functionCalls: Record<string, string[]> = {};
@@ -18,7 +18,7 @@ import {
18
18
  upsertEntities,
19
19
  } from '~codeyam/supabase';
20
20
  import { getCandidatesReadyForCapture as getAnalysesReadyForCapture } from './dependencyResolver';
21
- import { awsLog, awsLogDebugLevel } from '~codeyam/utils';
21
+ import { awsLog, awsLogDebugLevel, Semaphore } from '~codeyam/utils';
22
22
 
23
23
  const MAX_CONCURRENT_ANALYSES = 100; // fairly arbitrary, but more isn't necessarily better
24
24
 
@@ -133,6 +133,10 @@ export default async function analyzeEntities({
133
133
  const markedReady = new Set<string>(); // Analyses we've attempted to mark ready
134
134
  const analyses: Analysis[] = [];
135
135
 
136
+ // Semaphore to serialize CPU-intensive Structure phase while allowing
137
+ // I/O-bound KeyAttributes LLM calls to run in parallel
138
+ const structureSemaphore = new Semaphore(1);
139
+
136
140
  const analysesAlreadyCompletedAtStart =
137
141
  commit?.metadata?.currentRun?.analysesCompleted ?? 0;
138
142
 
@@ -442,6 +446,7 @@ export default async function analyzeEntities({
442
446
  analyzeAsDependency: !allRootEntities.some(
443
447
  (e) => e.filePath === entity.filePath && e.name === entity.name,
444
448
  ),
449
+ structureSemaphore,
445
450
  ...options,
446
451
  force,
447
452
  }),
@@ -73,14 +73,16 @@ export default async function gatherEntityMap({
73
73
  );
74
74
 
75
75
  if (!importedFile) {
76
+ // Skip dependencies when the file is not found in project.files.
77
+ // This commonly happens when a universal mock intercepts the import:
78
+ // 1. TypeScript resolves @formbricks/types/errors to the mock file
79
+ // 2. The original packages/types/errors.ts is never imported
80
+ // 3. So it's not in getSourceFiles() and thus not in project.files
81
+ // 4. Since the mock handles the import, we don't need to analyze the original
76
82
  console.log(
77
- `CodeYam Error: File not found while gathering entity map: ${importedExportFilePath}`,
78
- entity.filePath,
79
- entity.name,
80
- );
81
- throw new Error(
82
- `File not found while gathering entity map: ${importedExportFilePath}`,
83
+ `CodeYam Warning: Skipping dependency - file not in project.files (likely mocked): ${importedExportFilePath}`,
83
84
  );
85
+ continue;
84
86
  }
85
87
 
86
88
  let importedEntity = context.getEntity(
@@ -99,19 +99,11 @@ function traverseEntity(
99
99
  );
100
100
 
101
101
  if (!dependentEntity) {
102
- console.log(
103
- 'CodeYam Error: trackEntityCircularDependencies: Dependent entity not found',
104
- {
105
- entityFilePath: entity.filePath,
106
- entityName: entity.name,
107
- dependencyFilePath,
108
- dependencyName,
109
- fileEntities: context.getEntityNamesForFile(dependencyFilePath),
110
- },
111
- );
112
- throw new Error(
113
- 'trackEntityCircularDependencies: Dependent entity not found',
114
- );
102
+ // Skip dependencies when the entity is not found in context.
103
+ // This commonly happens when a universal mock intercepts the import:
104
+ // - gatherEntityMap skips adding the entity because the file isn't in project.files
105
+ // - The mock handles the import at runtime, so we don't need to track it
106
+ continue;
115
107
  }
116
108
 
117
109
  // Recursively traverse (will skip if already visited)
@@ -16,7 +16,12 @@ import { AI } from '~codeyam/ai';
16
16
  import extractDiffLines from './extractDiffLines';
17
17
  import analyzeCodeChange from './analyzeCodeChange';
18
18
  import relevantDiffPart from './relevantDiffPart';
19
- import { awsLog, awsLogDebugLevel, pushAnalysisError } from '~codeyam/utils';
19
+ import {
20
+ awsLog,
21
+ awsLogDebugLevel,
22
+ pushAnalysisError,
23
+ Semaphore,
24
+ } from '~codeyam/utils';
20
25
 
21
26
  export interface AnalyzeChangeArgs {
22
27
  previousAnalysis: Analysis;
@@ -29,6 +34,8 @@ export interface AnalyzeChangeArgs {
29
34
  steps?: string[];
30
35
  updateProgress?: (detail: string) => void;
31
36
  model: AI.Model;
37
+ /** Semaphore to serialize CPU-intensive Structure phase */
38
+ structureSemaphore?: Semaphore;
32
39
  }
33
40
 
34
41
  export default async function analyzeChange({
@@ -42,6 +49,7 @@ export default async function analyzeChange({
42
49
  steps,
43
50
  updateProgress,
44
51
  model,
52
+ structureSemaphore,
45
53
  }: AnalyzeChangeArgs) {
46
54
  analysis.entity = entity;
47
55
  awsLog('CodeYam: Analyzing change entity', {
@@ -79,24 +87,35 @@ export default async function analyzeChange({
79
87
  });
80
88
  }
81
89
 
90
+ // Structure phase: CPU-intensive, serialize via semaphore if provided
82
91
  if (!steps || steps.includes(Step.Structure)) {
83
- awsLogDebugLevel(
84
- 1,
85
- `Merging dependent data structures for ${entity.name}...`,
86
- );
92
+ if (structureSemaphore) {
93
+ await structureSemaphore.acquire();
94
+ }
95
+ try {
96
+ awsLogDebugLevel(
97
+ 1,
98
+ `Merging dependent data structures for ${entity.name}...`,
99
+ );
87
100
 
88
- const { step: dataStructureStep } = await recordStep(
89
- 'generateDataStructure',
90
- () =>
91
- generateDataStructure({
92
- entity,
93
- dependentAnalyses,
94
- analysis,
95
- }),
96
- );
97
- analysis.status.steps.push(dataStructureStep);
101
+ const { step: dataStructureStep } = await recordStep(
102
+ 'generateDataStructure',
103
+ () =>
104
+ generateDataStructure({
105
+ entity,
106
+ dependentAnalyses,
107
+ analysis,
108
+ }),
109
+ );
110
+ analysis.status.steps.push(dataStructureStep);
111
+ } finally {
112
+ if (structureSemaphore) {
113
+ structureSemaphore.release();
114
+ }
115
+ }
98
116
  }
99
117
 
118
+ // KeyAttributes phase: I/O-bound LLM call, can run in parallel with other entities' Structure
100
119
  if (!steps || steps.includes(Step.KeyAttributes)) {
101
120
  awsLogDebugLevel(1, `Determining key attributes for ${entity.name}...`);
102
121
 
@@ -31,7 +31,12 @@ import relevantDiffPart from './relevantDiffPart';
31
31
  import { Step } from './enums/steps';
32
32
  import { ImmutableAnalysisContext } from '../analysisContext';
33
33
  import generateAnalyzedTreeSha from './analyze/generateAnalyzedTreeSha';
34
- import { awsLog, awsLogDebugLevel, pushAnalysisError } from '~codeyam/utils';
34
+ import {
35
+ awsLog,
36
+ awsLogDebugLevel,
37
+ pushAnalysisError,
38
+ Semaphore,
39
+ } from '~codeyam/utils';
35
40
 
36
41
  export interface AnalyzeEntityArgs {
37
42
  project: Project;
@@ -50,6 +55,8 @@ export interface AnalyzeEntityArgs {
50
55
  forceAll?: boolean;
51
56
  updateProgress?: (detail: string) => void;
52
57
  modelString?: string;
58
+ /** Semaphore to serialize CPU-intensive Structure phase */
59
+ structureSemaphore?: Semaphore;
53
60
  }
54
61
 
55
62
  /**
@@ -77,6 +84,7 @@ export default async function analyzeEntity({
77
84
  forceAll,
78
85
  updateProgress,
79
86
  modelString,
87
+ structureSemaphore,
80
88
  }: AnalyzeEntityArgs): Promise<{
81
89
  analysis: Analysis;
82
90
  dependentAnalyses?: ReadonlyAnalysisMap;
@@ -476,6 +484,7 @@ export default async function analyzeEntity({
476
484
  steps,
477
485
  updateProgress,
478
486
  model,
487
+ structureSemaphore,
479
488
  })
480
489
  : analyzeInitial({
481
490
  analysis,
@@ -485,6 +494,7 @@ export default async function analyzeEntity({
485
494
  steps,
486
495
  updateProgress,
487
496
  model,
497
+ structureSemaphore,
488
498
  }),
489
499
  ]);
490
500
 
@@ -498,8 +508,12 @@ export default async function analyzeEntity({
498
508
  analysis = analysisResult.analysis;
499
509
 
500
510
  analysis.completedAt = new Date().toISOString();
501
- // Don't set analyzedTreeSha when ONLY_DATA_STRUCTURE=true, so full analysis can re-analyze later
502
- if (process.env.ONLY_DATA_STRUCTURE !== 'true') {
511
+ // Don't set analyzedTreeSha when:
512
+ // 1. ONLY_DATA_STRUCTURE=true - so full analysis can re-analyze later
513
+ // 2. analyzeAsDependency=true - dependency analyses only generate Structure+KeyAttributes,
514
+ // not scenarios. Leaving analyzedTreeSha unset allows partial analysis detection to work
515
+ // when the entity is later analyzed directly.
516
+ if (process.env.ONLY_DATA_STRUCTURE !== 'true' && !analyzeAsDependency) {
503
517
  analysis.analyzedTreeSha = generateAnalyzedTreeSha(analysis);
504
518
  }
505
519
  } catch (error) {
@@ -12,7 +12,12 @@ import {
12
12
  type ReadonlyAnalysisMap,
13
13
  } from '~codeyam/types';
14
14
  import { upsertAnalysesWithScenarios } from '~codeyam/supabase';
15
- import { awsLog, awsLogDebugLevel, pushAnalysisError } from '~codeyam/utils';
15
+ import {
16
+ awsLog,
17
+ awsLogDebugLevel,
18
+ pushAnalysisError,
19
+ Semaphore,
20
+ } from '~codeyam/utils';
16
21
  import generateKeyAttributes from './scenarios/generateKeyAttributes';
17
22
 
18
23
  export interface AnalyzeInitialArgs {
@@ -23,6 +28,8 @@ export interface AnalyzeInitialArgs {
23
28
  steps?: string[];
24
29
  updateProgress?: (detail: string) => void;
25
30
  model: AI.Model;
31
+ /** Semaphore to serialize CPU-intensive Structure phase */
32
+ structureSemaphore?: Semaphore;
26
33
  }
27
34
 
28
35
  export default async function analyzeInitial({
@@ -33,6 +40,7 @@ export default async function analyzeInitial({
33
40
  steps,
34
41
  updateProgress,
35
42
  model,
43
+ structureSemaphore,
36
44
  }: AnalyzeInitialArgs) {
37
45
  analysis.entity = entity;
38
46
  awsLog('CodeYam: Analyzing initial entity', {
@@ -47,22 +55,32 @@ export default async function analyzeInitial({
47
55
  });
48
56
 
49
57
  try {
58
+ // Structure phase: CPU-intensive, serialize via semaphore if provided
50
59
  if (!steps || steps.includes(Step.Structure)) {
51
- awsLogDebugLevel(
52
- 1,
53
- `Merging dependent data structures for ${entity.name}...`,
54
- );
55
-
56
- const { step: dataStructureStep } = await recordStep(
57
- 'generateDataStructure',
58
- () =>
59
- generateDataStructure({
60
- entity,
61
- dependentAnalyses,
62
- analysis,
63
- }),
64
- );
65
- analysis.status.steps.push(dataStructureStep);
60
+ if (structureSemaphore) {
61
+ await structureSemaphore.acquire();
62
+ }
63
+ try {
64
+ awsLogDebugLevel(
65
+ 1,
66
+ `Merging dependent data structures for ${entity.name}...`,
67
+ );
68
+
69
+ const { step: dataStructureStep } = await recordStep(
70
+ 'generateDataStructure',
71
+ () =>
72
+ generateDataStructure({
73
+ entity,
74
+ dependentAnalyses,
75
+ analysis,
76
+ }),
77
+ );
78
+ analysis.status.steps.push(dataStructureStep);
79
+ } finally {
80
+ if (structureSemaphore) {
81
+ structureSemaphore.release();
82
+ }
83
+ }
66
84
  }
67
85
 
68
86
  // Short-circuit for test mocking: only generate data structure, skip key attributes and scenarios
@@ -73,6 +91,7 @@ export default async function analyzeInitial({
73
91
  return { analysis };
74
92
  }
75
93
 
94
+ // KeyAttributes phase: I/O-bound LLM call, can run in parallel with other entities' Structure
76
95
  if (!steps || steps.includes(Step.KeyAttributes)) {
77
96
  awsLogDebugLevel(1, `Determining key attributes for ${entity.name}...`);
78
97
 
@@ -48,29 +48,20 @@ export default function analyzeRemixRoute(
48
48
  const implicitRouteFileAnalyzer =
49
49
  projectAnalyzer.getFileAnalyzer(implicitRoute);
50
50
  const exports = implicitRouteFileAnalyzer.getAllExports();
51
- const defaultExport = Object.values(exports).find(
52
- (e) => e.isDefaultExport,
53
- );
54
-
55
- // Ensure entities array exists before trying to use it
56
- if (!implicitRoute.entities) {
57
- console.log(
58
- `CodeYam Warning: implicitRoute.entities not populated for ${implicitRoute.path}, skipping implicit dependency`,
59
- );
60
- return;
61
- }
62
51
 
63
- const defaultEntity = implicitRoute.entities.find((e) =>
64
- implicitRouteFileAnalyzer.isDefaultExport(e.name),
52
+ // Find the default export entry - the key is the entity name
53
+ const defaultExportEntry = Object.entries(exports).find(
54
+ ([, e]) => e.isDefaultExport,
65
55
  );
66
56
 
67
- if (!defaultExport || !defaultEntity) return;
57
+ if (!defaultExportEntry) return;
68
58
 
59
+ const [entityName, defaultExport] = defaultExportEntry;
69
60
  const code = defaultExport.code;
70
61
  return {
71
62
  code: code,
72
63
  // sha: generateSha(implicitRoute.path, 'default', code),
73
- name: defaultEntity.name,
64
+ name: entityName,
74
65
  filePath: implicitRoute.path,
75
66
  projectId: entity.projectId,
76
67
  entityType: 'visual' as EntityType,
@@ -108,26 +99,23 @@ export default function analyzeRemixRoute(
108
99
  try {
109
100
  const rootFileAnalyzer = projectAnalyzer.getFileAnalyzer(rootFile);
110
101
  const exports = rootFileAnalyzer.getAllExports();
111
- const defaultExport = Object.values(exports).find(
112
- (e) => e.isDefaultExport,
113
- );
114
102
 
115
- if (defaultExport && rootFile.entities) {
116
- const defaultEntity = rootFile.entities.find((e) =>
117
- rootFileAnalyzer.isDefaultExport(e.name),
118
- );
103
+ // Find the default export entry - the key is the entity name
104
+ const defaultExportEntry = Object.entries(exports).find(
105
+ ([, e]) => e.isDefaultExport,
106
+ );
119
107
 
120
- if (defaultEntity) {
121
- rootDependencies.push({
122
- code: defaultExport.code,
123
- name: defaultEntity.name,
124
- filePath: rootFile.path,
125
- entityType: 'visual' as EntityType,
126
- isDefault: true,
127
- isImplicitDependency: true,
128
- isMocked: false,
129
- });
130
- }
108
+ if (defaultExportEntry) {
109
+ const [entityName, defaultExport] = defaultExportEntry;
110
+ rootDependencies.push({
111
+ code: defaultExport.code,
112
+ name: entityName,
113
+ filePath: rootFile.path,
114
+ entityType: 'visual' as EntityType,
115
+ isDefault: true,
116
+ isImplicitDependency: true,
117
+ isMocked: false,
118
+ });
131
119
  }
132
120
  } catch (e) {
133
121
  console.log(
@@ -63,18 +63,83 @@ export default function getImportedExports(
63
63
  imports[filePath].resolvedPath ??
64
64
  filePath;
65
65
 
66
- const importedExportFile = project.files.find(
66
+ let importedExportFile = project.files.find(
67
67
  (f) => f.path === searchPath,
68
68
  );
69
69
 
70
+ // Track the actual path we found (may differ from searchPath after dist->src mapping)
71
+ let actualResolvedPath = imports[filePath].resolvedPath;
72
+
73
+ // Workspace packages often resolve to dist/ paths (from package.json "types" or "main"),
74
+ // but our project.files contains source files in src/. Try mapping dist -> src.
75
+ if (!importedExportFile && searchPath.includes('/dist/')) {
76
+ const srcPath = searchPath.replace('/dist/', '/src/');
77
+ // Try exact match first
78
+ importedExportFile = project.files.find((f) => f.path === srcPath);
79
+ if (importedExportFile) {
80
+ actualResolvedPath = srcPath;
81
+ console.log(
82
+ `CodeYam: Mapped dist->src path: ${searchPath} -> ${srcPath}`,
83
+ );
84
+ }
85
+
86
+ // If not found, the dist file might be index.d.ts but src might be index.ts
87
+ // or the export might be re-exported from another file
88
+ if (!importedExportFile) {
89
+ // Try removing .d.ts extension and finding any matching src file
90
+ const basePath = srcPath
91
+ .replace(/\.d\.ts$/, '')
92
+ .replace(/\.js$/, '');
93
+ importedExportFile = project.files.find(
94
+ (f) =>
95
+ f.path === basePath + '.ts' ||
96
+ f.path === basePath + '.tsx' ||
97
+ (f.path.startsWith(basePath.replace('/index', '/')) &&
98
+ !f.path.includes('/dist/')),
99
+ );
100
+ if (importedExportFile) {
101
+ actualResolvedPath = importedExportFile.path;
102
+ console.log(
103
+ `CodeYam: Mapped dist->src path (extension): ${searchPath} -> ${importedExportFile.path}`,
104
+ );
105
+ }
106
+ }
107
+ }
108
+
70
109
  if (!importedExportFile) {
71
- console.log(
72
- 'CodeYam Error: File not found for imported export',
73
- file.path,
74
- filePath,
75
- importedExportInfo,
76
- imports[filePath],
77
- );
110
+ // Check if this is a workspace package import (scoped npm package like @scope/package)
111
+ // but NOT a path alias like @/path or @components/...
112
+ // Scoped packages have format: @scope/package where scope is alphanumeric with hyphens
113
+ const isScopedPackage =
114
+ filePath.startsWith('@') &&
115
+ !filePath.startsWith('@/') && // Not a path alias like @/modules/...
116
+ !filePath.startsWith('@types/') &&
117
+ /^@[a-z0-9-]+\/[a-z0-9-]/.test(filePath); // Matches @scope/package pattern
118
+ if (isScopedPackage) {
119
+ // Treat unresolved scoped packages like node modules so they get mocked
120
+ // instead of being silently ignored
121
+ const name =
122
+ importedExportInfo.importName ?? importedExportInfo.importAlias;
123
+ console.log(
124
+ `CodeYam: Treating unresolved scoped package as node module: ${filePath} -> ${name}`,
125
+ );
126
+ return {
127
+ filePath,
128
+ name,
129
+ isDefault: importedExportInfo.isImportDefault,
130
+ isNodeModule: true, // Mark as node module so it gets mocked
131
+ entityType: 'library' as const, // Default to library since we can't determine the actual type
132
+ // No code since we couldn't resolve the source file
133
+ };
134
+ } else {
135
+ console.log(
136
+ 'CodeYam Error: File not found for imported export',
137
+ file.path,
138
+ filePath,
139
+ importedExportInfo,
140
+ imports[filePath],
141
+ );
142
+ }
78
143
  return;
79
144
  }
80
145
 
@@ -96,10 +161,10 @@ export default function getImportedExports(
96
161
 
97
162
  return {
98
163
  fileId: importedExportFile.id,
99
- filePath: imports[filePath].resolvedPath,
164
+ filePath: actualResolvedPath,
100
165
  isDefault: importedExportInfo.isImportDefault,
101
166
  resolvedFilePath:
102
- resolvedFilePath === imports[filePath].resolvedPath
167
+ resolvedFilePath === actualResolvedPath
103
168
  ? undefined
104
169
  : resolvedFilePath,
105
170
  resolvedName: resolvedName === name ? undefined : resolvedName,
@@ -132,6 +132,32 @@ export default function gatherDataForMocks(
132
132
  preprocessedSchema = mergedSchema;
133
133
  }
134
134
 
135
+ // Merge generic call (e.g., "foo()") data into specific argument calls (e.g., "foo(arg1, arg2)")
136
+ // This handles the case where the generic schema has richer nested data than the specific call
137
+ if (callName.includes('(') && !callName.includes('<')) {
138
+ // Extract the base function name and create generic call
139
+ const baseFunctionName = callName.split('(')[0];
140
+ const genericCall = baseFunctionName + '()';
141
+
142
+ // Only merge if the callName has arguments (not just empty parens)
143
+ if (callName !== genericCall) {
144
+ const mergedSchema: Record<string, string> = {
145
+ ...preprocessedSchema,
146
+ };
147
+ for (const path of Object.keys(preprocessedSchema)) {
148
+ if (path.startsWith(genericCall)) {
149
+ // Create corresponding specific path
150
+ const specificPath = callName + path.slice(genericCall.length);
151
+ // Only add if the specific path doesn't already exist
152
+ if (!mergedSchema[specificPath]) {
153
+ mergedSchema[specificPath] = preprocessedSchema[path];
154
+ }
155
+ }
156
+ }
157
+ preprocessedSchema = mergedSchema;
158
+ }
159
+ }
160
+
135
161
  const relevantMergedDependencySchema = Object.keys(
136
162
  preprocessedSchema,
137
163
  ).reduce(
@@ -54,8 +54,14 @@ export default function generateDataStructure({
54
54
  const nonMockedDependentAnalyses: ReadonlyAnalysisMap =
55
55
  allImportedExports.reduce((acc, importedExport) => {
56
56
  if (importedExport.isMocked) return acc;
57
+ // Use resolvedFilePath when available (for re-exports from index files)
58
+ // to find the actual analysis of the component
59
+ const lookupPath =
60
+ ('resolvedFilePath' in importedExport &&
61
+ importedExport.resolvedFilePath) ||
62
+ importedExport.filePath;
57
63
  const relevantDependencyAnalysis =
58
- dependentAnalyses[importedExport.filePath]?.[importedExport.name];
64
+ dependentAnalyses[lookupPath]?.[importedExport.name];
59
65
 
60
66
  if (!relevantDependencyAnalysis) {
61
67
  // console.info(
@@ -8,6 +8,7 @@ import measureAndReportExecutionTime from '../../utils/measureAndReportExecution
8
8
  import { AI, generateEntityKeyAttributes } from '~codeyam/ai';
9
9
  import { awsLog } from '~codeyam/utils';
10
10
  import { gatherRelevantDependentKeyAttributes } from '~codeyam/ai';
11
+ import { gatherDataForMocks } from './generateScenarioData';
11
12
 
12
13
  export interface GenerateEntityKeyAttributesArgs {
13
14
  entity: Entity;
@@ -28,7 +29,14 @@ export default async function generateKeyAttributes({
28
29
  }: GenerateEntityKeyAttributesArgs): Promise<void> {
29
30
  if (!['visual', 'library'].includes(entity.entityType)) return;
30
31
 
31
- const structure = { ...analysis.metadata.scenariosDataStructure };
32
+ // Merge direct dataForMocks with recursively gathered data from dependencies
33
+ const structure = {
34
+ arguments: analysis.metadata.scenariosDataStructure?.arguments ?? [],
35
+ dataForMocks: {
36
+ ...(analysis.metadata.scenariosDataStructure?.dataForMocks ?? {}),
37
+ ...gatherDataForMocks(analysis, dependentAnalyses),
38
+ },
39
+ };
32
40
 
33
41
  awsLog(`🔮 Generating ${error ? 'error ' : ''}scenarios for`, {
34
42
  filePath: entity.filePath,
@@ -104,8 +104,13 @@ export function gatherDataForMocks(
104
104
  // regardless of whether we found a relevantKey above.
105
105
  // This ensures transitive dependencies are included.
106
106
  // For example: Activity -> CurrentActivityTab -> useLastLogLine
107
+ // Use resolvedFilePath when available (for re-exports from index files)
108
+ const lookupPath =
109
+ ('resolvedFilePath' in importedExport &&
110
+ importedExport.resolvedFilePath) ||
111
+ importedExport.filePath;
107
112
  const dependentAnalysis =
108
- dependentAnalyses?.[importedExport.filePath]?.[importedExport.name];
113
+ dependentAnalyses?.[lookupPath]?.[importedExport.name];
109
114
 
110
115
  if (dependentAnalysis && !analysesGathered.has(dependentAnalysis.id)) {
111
116
  analysesGathered.add(dependentAnalysis.id);
@@ -7,6 +7,7 @@ import {
7
7
  import measureAndReportExecutionTime from '../../utils/measureAndReportExecutionTime';
8
8
  import { AI, generateEntityScenarios } from '~codeyam/ai';
9
9
  import { awsLog } from '~codeyam/utils';
10
+ import { gatherDataForMocks } from './generateScenarioData';
10
11
 
11
12
  export interface GenerateScenariosArgs {
12
13
  entity: Entity;
@@ -27,7 +28,14 @@ export default async function generateScenarios({
27
28
  }: GenerateScenariosArgs): Promise<void> {
28
29
  if (!['visual', 'library'].includes(entity.entityType)) return;
29
30
 
30
- const structure = { ...analysis.metadata.scenariosDataStructure };
31
+ // Merge direct dataForMocks with recursively gathered data from dependencies
32
+ const structure = {
33
+ arguments: analysis.metadata.scenariosDataStructure?.arguments ?? [],
34
+ dataForMocks: {
35
+ ...(analysis.metadata.scenariosDataStructure?.dataForMocks ?? {}),
36
+ ...gatherDataForMocks(analysis, dependentAnalyses),
37
+ },
38
+ };
31
39
 
32
40
  awsLog(`🔮 Generating ${error ? 'error ' : ''}scenarios for`, {
33
41
  filePath: entity.filePath,