@codeyam/codeyam-cli 0.1.0-staging.09652b8 → 0.1.0-staging.28f73cf

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 (287) 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 +7 -6
  4. package/analyzer-template/packages/ai/index.ts +2 -0
  5. package/analyzer-template/packages/ai/package.json +2 -2
  6. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +24 -0
  7. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +14 -0
  8. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +1402 -546
  9. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.ts +138 -0
  10. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +1 -1
  11. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +139 -0
  12. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/DebugTracer.ts +224 -0
  13. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/PathManager.ts +203 -0
  14. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/README.md +294 -0
  15. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +161 -0
  16. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.ts +235 -0
  17. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +2 -0
  18. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/selectBestValue.ts +70 -0
  19. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.ts +113 -0
  20. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +36 -0
  21. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +32 -8
  22. package/analyzer-template/packages/ai/src/lib/getConditionalUsagesFromCode.ts +27 -6
  23. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +42 -4
  24. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +39 -0
  25. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +18 -6
  26. package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +2 -1
  27. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +8 -10
  28. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +6 -1
  29. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +8 -6
  30. package/analyzer-template/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.ts +5 -13
  31. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +34 -15
  32. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +17 -3
  33. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +35 -16
  34. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +7 -1
  35. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +9 -1
  36. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +6 -1
  37. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +9 -1
  38. package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.d.ts +23 -0
  39. package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.d.ts.map +1 -0
  40. package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.js +30 -0
  41. package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.js.map +1 -0
  42. package/analyzer-template/packages/aws/package.json +5 -4
  43. package/analyzer-template/packages/aws/s3/index.ts +4 -0
  44. package/analyzer-template/packages/aws/src/lib/s3/getPresignedUrl.ts +62 -0
  45. package/analyzer-template/packages/generate/src/lib/scenarioComponent.ts +6 -3
  46. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.d.ts.map +1 -1
  47. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.js +5 -3
  48. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.js.map +1 -1
  49. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/db.d.ts +2 -0
  50. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/db.d.ts.map +1 -1
  51. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/db.js +3 -0
  52. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/db.js.map +1 -1
  53. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tableRelations.d.ts +2 -0
  54. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tableRelations.d.ts.map +1 -1
  55. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/debugReportsTable.d.ts +37 -0
  56. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -0
  57. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/debugReportsTable.js +27 -0
  58. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/debugReportsTable.js.map +1 -0
  59. package/analyzer-template/packages/github/dist/utils/index.d.ts +1 -0
  60. package/analyzer-template/packages/github/dist/utils/index.d.ts.map +1 -1
  61. package/analyzer-template/packages/github/dist/utils/index.js +1 -0
  62. package/analyzer-template/packages/github/dist/utils/index.js.map +1 -1
  63. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.d.ts +25 -0
  64. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.d.ts.map +1 -0
  65. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.js +40 -0
  66. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.js.map +1 -0
  67. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts.map +1 -1
  68. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
  69. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
  70. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts.map +1 -1
  71. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
  72. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
  73. package/analyzer-template/packages/supabase/src/lib/kysely/db.ts +6 -0
  74. package/analyzer-template/packages/supabase/src/lib/kysely/tableRelations.ts +3 -0
  75. package/analyzer-template/packages/supabase/src/lib/kysely/tables/debugReportsTable.ts +61 -0
  76. package/analyzer-template/packages/utils/dist/utils/index.d.ts +1 -0
  77. package/analyzer-template/packages/utils/dist/utils/index.d.ts.map +1 -1
  78. package/analyzer-template/packages/utils/dist/utils/index.js +1 -0
  79. package/analyzer-template/packages/utils/dist/utils/index.js.map +1 -1
  80. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.d.ts +25 -0
  81. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.d.ts.map +1 -0
  82. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.js +40 -0
  83. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.js.map +1 -0
  84. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts.map +1 -1
  85. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
  86. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
  87. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts.map +1 -1
  88. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
  89. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
  90. package/analyzer-template/packages/utils/index.ts +1 -0
  91. package/analyzer-template/packages/utils/src/lib/Semaphore.ts +42 -0
  92. package/analyzer-template/packages/utils/src/lib/frameworks/getRemixRoutePath.ts +2 -1
  93. package/analyzer-template/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.ts +1 -0
  94. package/analyzer-template/project/constructMockCode.ts +170 -6
  95. package/analyzer-template/project/reconcileMockDataKeys.ts +13 -0
  96. package/analyzer-template/project/start.ts +1 -11
  97. package/analyzer-template/project/writeMockDataTsx.ts +32 -1
  98. package/analyzer-template/project/writeScenarioComponents.ts +164 -18
  99. package/analyzer-template/project/writeUniversalMocks.ts +66 -8
  100. package/background/src/lib/virtualized/project/constructMockCode.js +158 -7
  101. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  102. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +12 -0
  103. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  104. package/background/src/lib/virtualized/project/start.js +1 -8
  105. package/background/src/lib/virtualized/project/start.js.map +1 -1
  106. package/background/src/lib/virtualized/project/writeMockDataTsx.js +25 -1
  107. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  108. package/background/src/lib/virtualized/project/writeScenarioComponents.js +129 -17
  109. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  110. package/background/src/lib/virtualized/project/writeUniversalMocks.js +56 -7
  111. package/background/src/lib/virtualized/project/writeUniversalMocks.js.map +1 -1
  112. package/codeyam-cli/src/cli.js +6 -0
  113. package/codeyam-cli/src/cli.js.map +1 -1
  114. package/codeyam-cli/src/codeyam-cli.js +0 -0
  115. package/codeyam-cli/src/commands/debug.js +221 -0
  116. package/codeyam-cli/src/commands/debug.js.map +1 -0
  117. package/codeyam-cli/src/commands/report.js +102 -0
  118. package/codeyam-cli/src/commands/report.js.map +1 -0
  119. package/codeyam-cli/src/commands/setup-sandbox.js +164 -0
  120. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -0
  121. package/codeyam-cli/src/utils/__tests__/cleanupAnalysisFiles.test.js +6 -6
  122. package/codeyam-cli/src/utils/__tests__/cleanupAnalysisFiles.test.js.map +1 -1
  123. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +8 -0
  124. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  125. package/codeyam-cli/src/utils/analyzer.js +30 -0
  126. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  127. package/codeyam-cli/src/utils/cleanupAnalysisFiles.js +2 -2
  128. package/codeyam-cli/src/utils/cleanupAnalysisFiles.js.map +1 -1
  129. package/codeyam-cli/src/utils/generateReport.js +219 -0
  130. package/codeyam-cli/src/utils/generateReport.js.map +1 -0
  131. package/codeyam-cli/src/utils/install-skills.js +7 -0
  132. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  133. package/codeyam-cli/src/utils/queue/__tests__/job.pidTracking.test.js +1 -0
  134. package/codeyam-cli/src/utils/queue/__tests__/job.pidTracking.test.js.map +1 -1
  135. package/codeyam-cli/src/utils/queue/job.js +5 -1
  136. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  137. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +4 -0
  138. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  139. package/codeyam-cli/src/webserver/app/lib/database.js +50 -2
  140. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  141. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-D5ZHFomX.js +1 -0
  142. package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-CDnfNKKQ.js → InteractivePreview-XDSzQLOY.js} +2 -2
  143. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-DUS-3h7I.js → LibraryFunctionPreview-BYVx9KFp.js} +1 -1
  144. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-TJzDQku1.js → LogViewer-CRcT5fOZ.js} +1 -1
  145. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-BORLgi0X.js +1 -0
  146. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-BgdlWM6p.js → SafeScreenshot-Bual6h18.js} +1 -1
  147. package/codeyam-cli/src/webserver/build/client/assets/ScenarioPreview-Bi-YUMa-.js +6 -0
  148. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-4D2vLLJz.js +5 -0
  149. package/codeyam-cli/src/webserver/build/client/assets/_index-BC200mfN.js +1 -0
  150. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CxvZPkCv.js +10 -0
  151. package/codeyam-cli/src/webserver/build/client/assets/api.generate-report-l0sNRNKZ.js +1 -0
  152. package/codeyam-cli/src/webserver/build/client/assets/chart-column-B8fb6wnw.js +1 -0
  153. package/codeyam-cli/src/webserver/build/client/assets/{chunk-WWGJGFF6-DvL0YqDJ.js → chunk-WWGJGFF6-De6i8FUT.js} +1 -1
  154. package/codeyam-cli/src/webserver/build/client/assets/circle-alert-IdsgAK39.js +1 -0
  155. package/codeyam-cli/src/webserver/build/client/assets/circle-check-BACUUf75.js +1 -0
  156. package/codeyam-cli/src/webserver/build/client/assets/clock-vWeoCemX.js +1 -0
  157. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-CS7XDrKv.js +1 -0
  158. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DIOEw_3i.js +1 -0
  159. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-3bYjyojg.js → entity._sha._-8Els_3Wb.js} +10 -10
  160. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.create-scenario-DtfwpN9J.js → entity._sha_.create-scenario-C3FZJx1w.js} +1 -1
  161. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-YJz_igar.js +5 -0
  162. package/codeyam-cli/src/webserver/build/client/assets/entityStatus-BEqj2qBy.js +1 -0
  163. package/codeyam-cli/src/webserver/build/client/assets/entry.client-DiP0q291.js +5 -0
  164. package/codeyam-cli/src/webserver/build/client/assets/file-text-LM0mgxXE.js +1 -0
  165. package/codeyam-cli/src/webserver/build/client/assets/files-Dxh9CcaV.js +1 -0
  166. package/codeyam-cli/src/webserver/build/client/assets/{git-WoKohOtW.js → git-BXmqrWCH.js} +10 -10
  167. package/codeyam-cli/src/webserver/build/client/assets/globals-BGS74ED-.css +1 -0
  168. package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-XQCGvadH.js +5 -0
  169. package/codeyam-cli/src/webserver/build/client/assets/{index-Vvbl94Xc.js → index-D-zYbzFZ.js} +2 -2
  170. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-BXPKbHEb.js +1 -0
  171. package/codeyam-cli/src/webserver/build/client/assets/manifest-1af162d4.js +1 -0
  172. package/codeyam-cli/src/webserver/build/client/assets/root-DB7VgjCY.js +16 -0
  173. package/codeyam-cli/src/webserver/build/client/assets/settings-5zF_GOcS.js +1 -0
  174. package/codeyam-cli/src/webserver/build/client/assets/{settings-LuiJ1UIm.js → settings-Dc4MlMpK.js} +1 -1
  175. package/codeyam-cli/src/webserver/build/client/assets/simulations-BQ-02-jB.js +1 -0
  176. package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-D7k-ArFa.js +1 -0
  177. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-CpUcCv1V.js → useLastLogLine-AlhS7g5F.js} +1 -1
  178. package/codeyam-cli/src/webserver/build/client/assets/useToast-Ddo4UQv7.js +1 -0
  179. package/codeyam-cli/src/webserver/build/client/assets/zap-_jw-9DCp.js +1 -0
  180. package/codeyam-cli/src/webserver/build/server/assets/{index-DzbqTxoN.js → index-D4JpXSIO.js} +1 -1
  181. package/codeyam-cli/src/webserver/build/server/assets/server-build-vwbN7n65.js +169 -0
  182. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  183. package/codeyam-cli/src/webserver/build-info.json +5 -5
  184. package/codeyam-cli/templates/codeyam-setup-skill.md +65 -85
  185. package/codeyam-cli/templates/debug-command.md +125 -0
  186. package/package.json +4 -6
  187. package/packages/ai/index.js +1 -1
  188. package/packages/ai/index.js.map +1 -1
  189. package/packages/ai/src/lib/analyzeScope.js +13 -0
  190. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  191. package/packages/ai/src/lib/astScopes/processExpression.js +12 -0
  192. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  193. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1023 -405
  194. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  195. package/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.js +137 -1
  196. package/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.js.map +1 -1
  197. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +1 -1
  198. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  199. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +112 -0
  200. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -0
  201. package/packages/ai/src/lib/dataStructure/helpers/DebugTracer.js +176 -0
  202. package/packages/ai/src/lib/dataStructure/helpers/DebugTracer.js.map +1 -0
  203. package/packages/ai/src/lib/dataStructure/helpers/PathManager.js +178 -0
  204. package/packages/ai/src/lib/dataStructure/helpers/PathManager.js.map +1 -0
  205. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +138 -0
  206. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -0
  207. package/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.js +199 -0
  208. package/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.js.map +1 -0
  209. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +2 -0
  210. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  211. package/packages/ai/src/lib/dataStructure/helpers/selectBestValue.js +62 -0
  212. package/packages/ai/src/lib/dataStructure/helpers/selectBestValue.js.map +1 -0
  213. package/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.js +90 -0
  214. package/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.js.map +1 -0
  215. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +22 -0
  216. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +1 -1
  217. package/packages/ai/src/lib/generateEntityKeyAttributes.js +32 -8
  218. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +1 -1
  219. package/packages/ai/src/lib/getConditionalUsagesFromCode.js +13 -8
  220. package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -1
  221. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +36 -3
  222. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  223. package/packages/ai/src/lib/worker/SerializableDataStructure.js +7 -0
  224. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  225. package/packages/analyze/src/lib/FileAnalyzer.js +17 -5
  226. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  227. package/packages/analyze/src/lib/asts/nodes/index.js +2 -1
  228. package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
  229. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +6 -8
  230. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  231. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +5 -1
  232. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  233. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +8 -2
  234. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  235. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js +5 -8
  236. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js.map +1 -1
  237. package/packages/analyze/src/lib/files/analyzeChange.js +21 -9
  238. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  239. package/packages/analyze/src/lib/files/analyzeEntity.js +10 -4
  240. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  241. package/packages/analyze/src/lib/files/analyzeInitial.js +21 -9
  242. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  243. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +6 -1
  244. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  245. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +9 -1
  246. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +1 -1
  247. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +5 -1
  248. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  249. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +9 -1
  250. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  251. package/packages/generate/src/lib/scenarioComponent.js +5 -3
  252. package/packages/generate/src/lib/scenarioComponent.js.map +1 -1
  253. package/packages/supabase/src/lib/kysely/db.js +3 -0
  254. package/packages/supabase/src/lib/kysely/db.js.map +1 -1
  255. package/packages/supabase/src/lib/kysely/tables/debugReportsTable.js +27 -0
  256. package/packages/supabase/src/lib/kysely/tables/debugReportsTable.js.map +1 -0
  257. package/packages/utils/index.js +1 -0
  258. package/packages/utils/index.js.map +1 -1
  259. package/packages/utils/src/lib/Semaphore.js +40 -0
  260. package/packages/utils/src/lib/Semaphore.js.map +1 -0
  261. package/packages/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
  262. package/packages/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
  263. package/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
  264. package/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
  265. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-B9Sf8e9w.js +0 -1
  266. package/codeyam-cli/src/webserver/build/client/assets/ScenarioPreview-Bl6GY-OE.js +0 -6
  267. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-BDq8RX50.js +0 -5
  268. package/codeyam-cli/src/webserver/build/client/assets/_index-Bh3y3Wsl.js +0 -1
  269. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-tq7Bl6-t.js +0 -10
  270. package/codeyam-cli/src/webserver/build/client/assets/chart-column-q9_nHfwv.js +0 -1
  271. package/codeyam-cli/src/webserver/build/client/assets/circle-alert-CKMpA1v_.js +0 -1
  272. package/codeyam-cli/src/webserver/build/client/assets/clock-Wnfog8Qw.js +0 -1
  273. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-C_ixaqqh.js +0 -1
  274. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-QecTs_sq.js +0 -5
  275. package/codeyam-cli/src/webserver/build/client/assets/entry.client-hnkEgHrC.js +0 -5
  276. package/codeyam-cli/src/webserver/build/client/assets/file-text-CvCVdKLW.js +0 -1
  277. package/codeyam-cli/src/webserver/build/client/assets/files-DgUCYhbd.js +0 -1
  278. package/codeyam-cli/src/webserver/build/client/assets/globals-DZfbt0u5.css +0 -1
  279. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-Bxm63UxG.js +0 -1
  280. package/codeyam-cli/src/webserver/build/client/assets/manifest-c90b8608.js +0 -1
  281. package/codeyam-cli/src/webserver/build/client/assets/root-DrVZQamX.js +0 -16
  282. package/codeyam-cli/src/webserver/build/client/assets/search-CJkk16Ct.js +0 -1
  283. package/codeyam-cli/src/webserver/build/client/assets/settings-ConzHeiL.js +0 -1
  284. package/codeyam-cli/src/webserver/build/client/assets/simulations-B9LRwAej.js +0 -1
  285. package/codeyam-cli/src/webserver/build/client/assets/useToast-DOxmMaSg.js +0 -1
  286. package/codeyam-cli/src/webserver/build/client/assets/zap-D5R1FAcH.js +0 -1
  287. package/codeyam-cli/src/webserver/build/server/assets/server-build-DGGis3OZ.js +0 -166
@@ -5,6 +5,140 @@ import { ScopeDataStructure, ScopeNode } from '../ScopeDataStructure';
5
5
  import { AddEquivalenciesInfo, EquivalencyManager } from './EquivalencyManager';
6
6
  import getFunctionCallRoot from '../helpers/getFunctionCallRoot';
7
7
 
8
+ // JSX intrinsic elements (HTML/SVG) that should not be treated as function calls
9
+ const HTML_INTRINSIC_ELEMENTS = new Set([
10
+ 'a',
11
+ 'abbr',
12
+ 'address',
13
+ 'area',
14
+ 'article',
15
+ 'aside',
16
+ 'audio',
17
+ 'b',
18
+ 'base',
19
+ 'bdi',
20
+ 'bdo',
21
+ 'blockquote',
22
+ 'body',
23
+ 'br',
24
+ 'button',
25
+ 'canvas',
26
+ 'caption',
27
+ 'cite',
28
+ 'code',
29
+ 'col',
30
+ 'colgroup',
31
+ 'data',
32
+ 'datalist',
33
+ 'dd',
34
+ 'del',
35
+ 'details',
36
+ 'dfn',
37
+ 'dialog',
38
+ 'div',
39
+ 'dl',
40
+ 'dt',
41
+ 'em',
42
+ 'embed',
43
+ 'fieldset',
44
+ 'figcaption',
45
+ 'figure',
46
+ 'footer',
47
+ 'form',
48
+ 'h1',
49
+ 'h2',
50
+ 'h3',
51
+ 'h4',
52
+ 'h5',
53
+ 'h6',
54
+ 'head',
55
+ 'header',
56
+ 'hr',
57
+ 'html',
58
+ 'i',
59
+ 'iframe',
60
+ 'img',
61
+ 'input',
62
+ 'ins',
63
+ 'kbd',
64
+ 'label',
65
+ 'legend',
66
+ 'li',
67
+ 'link',
68
+ 'main',
69
+ 'map',
70
+ 'mark',
71
+ 'meta',
72
+ 'meter',
73
+ 'nav',
74
+ 'noscript',
75
+ 'object',
76
+ 'ol',
77
+ 'optgroup',
78
+ 'option',
79
+ 'output',
80
+ 'p',
81
+ 'param',
82
+ 'picture',
83
+ 'pre',
84
+ 'progress',
85
+ 'q',
86
+ 'rp',
87
+ 'rt',
88
+ 'ruby',
89
+ 's',
90
+ 'samp',
91
+ 'script',
92
+ 'section',
93
+ 'select',
94
+ 'small',
95
+ 'source',
96
+ 'span',
97
+ 'strong',
98
+ 'style',
99
+ 'sub',
100
+ 'summary',
101
+ 'sup',
102
+ 'svg',
103
+ 'table',
104
+ 'tbody',
105
+ 'td',
106
+ 'template',
107
+ 'textarea',
108
+ 'tfoot',
109
+ 'th',
110
+ 'thead',
111
+ 'time',
112
+ 'title',
113
+ 'tr',
114
+ 'track',
115
+ 'u',
116
+ 'ul',
117
+ 'var',
118
+ 'video',
119
+ 'wbr',
120
+ // Common SVG elements
121
+ 'circle',
122
+ 'clipPath',
123
+ 'defs',
124
+ 'ellipse',
125
+ 'g',
126
+ 'image',
127
+ 'line',
128
+ 'linearGradient',
129
+ 'mask',
130
+ 'path',
131
+ 'pattern',
132
+ 'polygon',
133
+ 'polyline',
134
+ 'radialGradient',
135
+ 'rect',
136
+ 'stop',
137
+ 'text',
138
+ 'tspan',
139
+ 'use',
140
+ ]);
141
+
8
142
  export default class FunctionCallManager implements EquivalencyManager {
9
143
  private signaturePathEstablished: Record<string, Set<string>> = {};
10
144
 
@@ -272,7 +406,11 @@ export default class FunctionCallManager implements EquivalencyManager {
272
406
  functionCallScopeInfoName &&
273
407
  scopeDataStructure.scopeNodes[functionCallScopeInfoName];
274
408
 
409
+ // Skip JSX intrinsic elements - they're not real function calls
410
+ const isJsxIntrinsic = HTML_INTRINSIC_ELEMENTS.has(functionCallRoot);
411
+
275
412
  const isExternal =
413
+ !isJsxIntrinsic &&
276
414
  !scopeNode.instantiatedVariables?.includes(functionCallRoot) &&
277
415
  !scopeNode.parentInstantiatedVariables?.includes(functionCallRoot) &&
278
416
  !functionCallRoot.startsWith('signature[') &&
@@ -426,7 +426,7 @@ export class ReactFrameworkManager implements EquivalencyManager {
426
426
  const valid = pathParts
427
427
  .slice(3)
428
428
  .reverse()
429
- .every((part, index) => pParts.reverse()[index] === part);
429
+ .every((part, index) => [...pParts].reverse()[index] === part);
430
430
 
431
431
  // if (p.includes('.title') && valid)
432
432
  // console.info({ p, pParts, pathParts: pathParts.slice(3) });
@@ -0,0 +1,139 @@
1
+ /**
2
+ * BatchSchemaProcessor
3
+ *
4
+ * Converts recursive addToSchema calls into iterative batch processing.
5
+ * This eliminates deep call stack recursion and allows for better
6
+ * deduplication of work.
7
+ *
8
+ * ## How It Works
9
+ *
10
+ * Instead of:
11
+ * addToSchema() -> followEquivalencies() -> addToSchema() -> ...
12
+ *
13
+ * We do:
14
+ * 1. Add initial work to queue
15
+ * 2. Process queue iteratively
16
+ * 3. Each item may add more work to queue
17
+ * 4. Continue until queue is empty
18
+ *
19
+ * ## Benefits
20
+ *
21
+ * - No deep recursion (avoids stack overflow on complex codebases)
22
+ * - Work deduplication happens upfront via visited set
23
+ * - Easier to profile and debug
24
+ * - Could enable parallel processing in the future
25
+ */
26
+
27
+ export interface WorkItem {
28
+ scopeNodeName: string;
29
+ path: string;
30
+ value: string;
31
+ equivalencyValueChain: unknown[];
32
+ traceId?: number;
33
+ }
34
+
35
+ export interface BatchProcessorStats {
36
+ itemsProcessed: number;
37
+ itemsSkipped: number;
38
+ maxQueueSize: number;
39
+ processingTimeMs: number;
40
+ }
41
+
42
+ export class BatchSchemaProcessor {
43
+ private workQueue: WorkItem[] = [];
44
+ private stats: BatchProcessorStats = {
45
+ itemsProcessed: 0,
46
+ itemsSkipped: 0, // Kept for API compatibility, always 0
47
+ maxQueueSize: 0,
48
+ processingTimeMs: 0,
49
+ };
50
+
51
+ /**
52
+ * Add a work item to the queue.
53
+ * Returns true if added.
54
+ *
55
+ * NOTE: We don't deduplicate here because the equivalencyValueChain matters
56
+ * for database population even if (scope, path, value) is the same.
57
+ * Different chains of the same length may have different intermediate paths.
58
+ * The VisitedTracker in ScopeDataStructure handles actual deduplication.
59
+ */
60
+ addWork(item: WorkItem): boolean {
61
+ this.workQueue.push(item);
62
+
63
+ if (this.workQueue.length > this.stats.maxQueueSize) {
64
+ this.stats.maxQueueSize = this.workQueue.length;
65
+ }
66
+
67
+ return true;
68
+ }
69
+
70
+ /**
71
+ * Check if there are more items to process.
72
+ */
73
+ hasWork(): boolean {
74
+ return this.workQueue.length > 0;
75
+ }
76
+
77
+ /**
78
+ * Get the next work item from the queue.
79
+ */
80
+ getNextWork(): WorkItem | undefined {
81
+ const item = this.workQueue.shift();
82
+ if (item) {
83
+ this.stats.itemsProcessed++;
84
+ }
85
+ return item;
86
+ }
87
+
88
+ /**
89
+ * Check if a (scope, path, value) combination was already visited.
90
+ * NOTE: Currently always returns false as we don't deduplicate in the batch processor.
91
+ */
92
+ isVisited(_scopeNodeName: string, _path: string, _value: string): boolean {
93
+ return false; // Deduplication handled by VisitedTracker in ScopeDataStructure
94
+ }
95
+
96
+ /**
97
+ * Process all items in the queue using the provided processor function.
98
+ * The processor function should call addWork() to queue any follow-up work.
99
+ */
100
+ processAll(
101
+ processor: (item: WorkItem, addWork: (item: WorkItem) => boolean) => void,
102
+ ): void {
103
+ const startTime = Date.now();
104
+
105
+ while (this.hasWork()) {
106
+ const item = this.getNextWork()!;
107
+ processor(item, (newItem) => this.addWork(newItem));
108
+ }
109
+
110
+ this.stats.processingTimeMs = Date.now() - startTime;
111
+ }
112
+
113
+ /**
114
+ * Get processing statistics.
115
+ */
116
+ getStats(): BatchProcessorStats {
117
+ return { ...this.stats };
118
+ }
119
+
120
+ /**
121
+ * Reset the processor for reuse.
122
+ */
123
+ reset(): void {
124
+ this.workQueue = [];
125
+ this.stats = {
126
+ itemsProcessed: 0,
127
+ itemsSkipped: 0,
128
+ maxQueueSize: 0,
129
+ processingTimeMs: 0,
130
+ };
131
+ }
132
+
133
+ /**
134
+ * Get current queue size (for debugging/monitoring).
135
+ */
136
+ getQueueSize(): number {
137
+ return this.workQueue.length;
138
+ }
139
+ }
@@ -0,0 +1,224 @@
1
+ /**
2
+ * DebugTracer
3
+ *
4
+ * Structured debug/trace system for ScopeDataStructure analysis.
5
+ * Enables selective tracing of specific paths or scopes without code changes.
6
+ *
7
+ * ## Usage
8
+ *
9
+ * ```typescript
10
+ * const tracer = new DebugTracer({
11
+ * enabled: true,
12
+ * pathPatterns: [/user\.id/, /signature\[0\]/],
13
+ * scopePatterns: [/MyComponent/],
14
+ * maxDepth: 10,
15
+ * });
16
+ *
17
+ * // In code:
18
+ * tracer.trace('addToSchema', { path, value, scope: scopeNode.name });
19
+ * tracer.traceEnter('followEquivalencies', { path, subPath });
20
+ * // ... do work ...
21
+ * tracer.traceExit('followEquivalencies', { propagated: true });
22
+ * ```
23
+ *
24
+ * ## Trace Output
25
+ *
26
+ * When enabled, produces structured output like:
27
+ * ```
28
+ * [TRACE] addToSchema { path: "user.id", value: "string", scope: "MyComponent" }
29
+ * [ENTER] followEquivalencies { path: "user.id", subPath: "user" }
30
+ * [EXIT] followEquivalencies { propagated: true }
31
+ * ```
32
+ */
33
+
34
+ export interface DebugTracerOptions {
35
+ /** Master switch - if false, all tracing is disabled */
36
+ enabled: boolean;
37
+
38
+ /** Regex patterns for paths to trace (empty = trace all paths) */
39
+ pathPatterns?: RegExp[];
40
+
41
+ /** Regex patterns for scopes to trace (empty = trace all scopes) */
42
+ scopePatterns?: RegExp[];
43
+
44
+ /** Maximum trace depth (prevents runaway output) */
45
+ maxDepth?: number;
46
+
47
+ /** Custom output function (defaults to console.info) */
48
+ output?: (message: string, data?: Record<string, unknown>) => void;
49
+
50
+ /** Include timestamps in output */
51
+ timestamps?: boolean;
52
+ }
53
+
54
+ export interface TraceContext {
55
+ path?: string;
56
+ scope?: string;
57
+ [key: string]: unknown;
58
+ }
59
+
60
+ export class DebugTracer {
61
+ private enabled: boolean;
62
+ private pathPatterns: RegExp[];
63
+ private scopePatterns: RegExp[];
64
+ private maxDepth: number;
65
+ private output: (message: string, data?: Record<string, unknown>) => void;
66
+ private timestamps: boolean;
67
+ private depth = 0;
68
+ private traceCount = 0;
69
+
70
+ constructor(options: DebugTracerOptions) {
71
+ this.enabled = options.enabled;
72
+ this.pathPatterns = options.pathPatterns ?? [];
73
+ this.scopePatterns = options.scopePatterns ?? [];
74
+ this.maxDepth = options.maxDepth ?? 50;
75
+ this.output = options.output ?? this.defaultOutput;
76
+ this.timestamps = options.timestamps ?? false;
77
+ }
78
+
79
+ /**
80
+ * Check if tracing should happen for this context.
81
+ */
82
+ private shouldTrace(context: TraceContext): boolean {
83
+ if (!this.enabled) return false;
84
+ if (this.depth >= this.maxDepth) return false;
85
+
86
+ // If no patterns specified, trace everything
87
+ if (this.pathPatterns.length === 0 && this.scopePatterns.length === 0) {
88
+ return true;
89
+ }
90
+
91
+ // Check path patterns
92
+ if (context.path && this.pathPatterns.length > 0) {
93
+ if (this.pathPatterns.some((p) => p.test(context.path!))) {
94
+ return true;
95
+ }
96
+ }
97
+
98
+ // Check scope patterns
99
+ if (context.scope && this.scopePatterns.length > 0) {
100
+ if (this.scopePatterns.some((p) => p.test(context.scope!))) {
101
+ return true;
102
+ }
103
+ }
104
+
105
+ return false;
106
+ }
107
+
108
+ /**
109
+ * Default output to console with formatting.
110
+ */
111
+ private defaultOutput = (
112
+ message: string,
113
+ data?: Record<string, unknown>,
114
+ ): void => {
115
+ const indent = ' '.repeat(this.depth);
116
+ const timestamp = this.timestamps ? `[${Date.now()}] ` : '';
117
+ if (data) {
118
+ console.info(`${timestamp}${indent}${message}`, JSON.stringify(data));
119
+ } else {
120
+ console.info(`${timestamp}${indent}${message}`);
121
+ }
122
+ };
123
+
124
+ /**
125
+ * Simple trace point - logs a message with context.
126
+ */
127
+ trace(label: string, context: TraceContext = {}): void {
128
+ if (!this.shouldTrace(context)) return;
129
+ this.traceCount++;
130
+ this.output(`[TRACE] ${label}`, context as Record<string, unknown>);
131
+ }
132
+
133
+ /**
134
+ * Trace entering a function/block - increases depth.
135
+ */
136
+ traceEnter(label: string, context: TraceContext = {}): void {
137
+ if (!this.shouldTrace(context)) return;
138
+ this.traceCount++;
139
+ this.output(`[ENTER] ${label}`, context as Record<string, unknown>);
140
+ this.depth++;
141
+ }
142
+
143
+ /**
144
+ * Trace exiting a function/block - decreases depth.
145
+ */
146
+ traceExit(label: string, context: TraceContext = {}): void {
147
+ if (this.depth > 0) this.depth--;
148
+ if (!this.shouldTrace(context)) return;
149
+ this.output(`[EXIT] ${label}`, context as Record<string, unknown>);
150
+ }
151
+
152
+ /**
153
+ * Trace a warning condition.
154
+ */
155
+ traceWarn(label: string, context: TraceContext = {}): void {
156
+ if (!this.shouldTrace(context)) return;
157
+ this.traceCount++;
158
+ this.output(`[WARN] ${label}`, context as Record<string, unknown>);
159
+ }
160
+
161
+ /**
162
+ * Enable tracing dynamically.
163
+ */
164
+ enable(): void {
165
+ this.enabled = true;
166
+ }
167
+
168
+ /**
169
+ * Disable tracing dynamically.
170
+ */
171
+ disable(): void {
172
+ this.enabled = false;
173
+ }
174
+
175
+ /**
176
+ * Reset depth counter (useful after errors).
177
+ */
178
+ resetDepth(): void {
179
+ this.depth = 0;
180
+ }
181
+
182
+ /**
183
+ * Get trace statistics.
184
+ */
185
+ getStats(): { traceCount: number; currentDepth: number; enabled: boolean } {
186
+ return {
187
+ traceCount: this.traceCount,
188
+ currentDepth: this.depth,
189
+ enabled: this.enabled,
190
+ };
191
+ }
192
+
193
+ /**
194
+ * Reset all statistics.
195
+ */
196
+ reset(): void {
197
+ this.depth = 0;
198
+ this.traceCount = 0;
199
+ }
200
+ }
201
+
202
+ /**
203
+ * Default disabled tracer instance.
204
+ * Use this when you want tracing infrastructure but disabled by default.
205
+ */
206
+ export const defaultTracer = new DebugTracer({ enabled: false });
207
+
208
+ /**
209
+ * Create a tracer that captures output to an array (for testing).
210
+ */
211
+ export function createTestTracer(options: Partial<DebugTracerOptions> = {}): {
212
+ tracer: DebugTracer;
213
+ output: string[];
214
+ } {
215
+ const output: string[] = [];
216
+ const tracer = new DebugTracer({
217
+ enabled: true,
218
+ ...options,
219
+ output: (message, data) => {
220
+ output.push(data ? `${message} ${JSON.stringify(data)}` : message);
221
+ },
222
+ });
223
+ return { tracer, output };
224
+ }