@codeyam/codeyam-cli 0.1.0-staging.596f0eb → 0.1.0-staging.76566f9

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 (354) 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 +2 -1
  4. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +2 -0
  5. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +22 -0
  6. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +23 -1
  7. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +401 -106
  8. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +60 -0
  9. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +734 -45
  10. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +2 -1
  11. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +715 -0
  12. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +233 -75
  13. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +19 -1
  14. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +34 -1
  15. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +23 -0
  16. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.ts +98 -0
  17. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +34 -1
  18. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +236 -24
  19. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +18 -1
  20. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +41 -0
  21. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +37 -4
  22. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +5 -0
  23. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +213 -12
  24. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +36 -25
  25. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +114 -11
  26. package/analyzer-template/packages/ai/src/lib/getConditionalUsagesFromCode.ts +143 -31
  27. package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +8 -2
  28. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +7 -0
  29. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +42 -2
  30. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +38 -2
  31. package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +28 -2
  32. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +5 -0
  33. package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +8 -1
  34. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +127 -43
  35. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +158 -0
  36. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +405 -45
  37. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.ts +1 -1
  38. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +260 -133
  39. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +10 -5
  40. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +77 -83
  41. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +2 -5
  42. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +196 -86
  43. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts +15 -0
  44. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts.map +1 -0
  45. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js +31 -0
  46. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js.map +1 -0
  47. package/analyzer-template/packages/aws/package.json +1 -1
  48. package/analyzer-template/packages/aws/s3/index.ts +1 -0
  49. package/analyzer-template/packages/aws/src/lib/s3/checkS3ObjectExists.ts +47 -0
  50. package/analyzer-template/packages/database/src/lib/kysely/db.ts +4 -4
  51. package/analyzer-template/packages/database/src/lib/kysely/tableRelations.ts +2 -2
  52. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +20 -9
  53. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +9 -4
  54. package/analyzer-template/packages/generate/src/lib/deepMerge.ts +26 -1
  55. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -2
  56. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +2 -2
  57. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelations.d.ts +2 -2
  58. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +8 -1
  59. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -1
  60. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +14 -7
  61. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -1
  62. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
  63. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  64. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +1 -1
  65. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  66. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
  67. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +8 -4
  68. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  69. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.d.ts.map +1 -1
  70. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js +27 -1
  71. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js.map +1 -1
  72. package/analyzer-template/packages/github/dist/types/index.d.ts +4 -3
  73. package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
  74. package/analyzer-template/packages/github/dist/types/index.js +1 -0
  75. package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
  76. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +31 -1
  77. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
  78. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +51 -1
  79. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  80. package/analyzer-template/packages/github/dist/types/src/types/Scenario.js +21 -1
  81. package/analyzer-template/packages/github/dist/types/src/types/Scenario.js.map +1 -1
  82. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +48 -0
  83. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  84. package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -1
  85. package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js +25 -0
  86. package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
  87. package/analyzer-template/packages/types/index.ts +8 -0
  88. package/analyzer-template/packages/types/src/types/Analysis.ts +32 -1
  89. package/analyzer-template/packages/types/src/types/Scenario.ts +75 -6
  90. package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +49 -0
  91. package/analyzer-template/packages/ui-components/src/components/ScenarioDetailInteractiveView.tsx +23 -7
  92. package/analyzer-template/packages/utils/dist/types/index.d.ts +4 -3
  93. package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
  94. package/analyzer-template/packages/utils/dist/types/index.js +1 -0
  95. package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
  96. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +31 -1
  97. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
  98. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +51 -1
  99. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  100. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js +21 -1
  101. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js.map +1 -1
  102. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +48 -0
  103. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  104. package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -1
  105. package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js +25 -0
  106. package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
  107. package/analyzer-template/packages/utils/src/lib/lightweightEntityExtractor.ts +27 -0
  108. package/analyzer-template/playwright/takeElementScreenshot.ts +26 -11
  109. package/analyzer-template/playwright/takeScreenshot.ts +9 -7
  110. package/analyzer-template/project/constructMockCode.ts +286 -84
  111. package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +77 -37
  112. package/analyzer-template/project/reconcileMockDataKeys.ts +5 -2
  113. package/analyzer-template/project/runMultiScenarioServer.ts +11 -10
  114. package/analyzer-template/project/serverOnlyModules.ts +71 -23
  115. package/analyzer-template/project/start.ts +10 -0
  116. package/analyzer-template/project/startScenarioCapture.ts +73 -41
  117. package/analyzer-template/project/writeMockDataTsx.ts +115 -54
  118. package/analyzer-template/project/writeScenarioComponents.ts +571 -162
  119. package/analyzer-template/project/writeSimpleRoot.ts +11 -13
  120. package/background/src/lib/virtualized/project/constructMockCode.js +265 -75
  121. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  122. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +67 -32
  123. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
  124. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +5 -2
  125. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  126. package/background/src/lib/virtualized/project/runMultiScenarioServer.js +11 -9
  127. package/background/src/lib/virtualized/project/runMultiScenarioServer.js.map +1 -1
  128. package/background/src/lib/virtualized/project/serverOnlyModules.js +62 -25
  129. package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -1
  130. package/background/src/lib/virtualized/project/start.js +6 -0
  131. package/background/src/lib/virtualized/project/start.js.map +1 -1
  132. package/background/src/lib/virtualized/project/startScenarioCapture.js +54 -31
  133. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  134. package/background/src/lib/virtualized/project/writeMockDataTsx.js +106 -46
  135. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  136. package/background/src/lib/virtualized/project/writeScenarioComponents.js +399 -106
  137. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  138. package/background/src/lib/virtualized/project/writeSimpleRoot.js +11 -11
  139. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  140. package/codeyam-cli/src/cli.js +2 -0
  141. package/codeyam-cli/src/cli.js.map +1 -1
  142. package/codeyam-cli/src/commands/debug.js +14 -2
  143. package/codeyam-cli/src/commands/debug.js.map +1 -1
  144. package/codeyam-cli/src/commands/recapture.js +215 -0
  145. package/codeyam-cli/src/commands/recapture.js.map +1 -0
  146. package/codeyam-cli/src/commands/report.js +26 -23
  147. package/codeyam-cli/src/commands/report.js.map +1 -1
  148. package/codeyam-cli/src/utils/backgroundServer.js +2 -2
  149. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  150. package/codeyam-cli/src/utils/generateReport.js +252 -106
  151. package/codeyam-cli/src/utils/generateReport.js.map +1 -1
  152. package/codeyam-cli/src/utils/install-skills.js +2 -2
  153. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  154. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +38 -0
  155. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
  156. package/codeyam-cli/src/utils/queue/job.js +140 -16
  157. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  158. package/codeyam-cli/src/utils/queue/manager.js +19 -7
  159. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  160. package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
  161. package/codeyam-cli/src/webserver/app/lib/database.js +47 -0
  162. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  163. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  164. package/codeyam-cli/src/webserver/backgroundServer.js +5 -10
  165. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  166. package/codeyam-cli/src/webserver/bootstrap.js +9 -0
  167. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -0
  168. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-wXL1Z2Aq.js +1 -0
  169. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-efWKDYMr.js → EntityTypeBadge-CzGX-miz.js} +1 -1
  170. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-CXFKsCOD.js +41 -0
  171. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-D-9pXIaY.js +25 -0
  172. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-CBQPrpT0.js +3 -0
  173. package/codeyam-cli/src/webserver/build/client/assets/LoadingDots-D1CdlbrV.js +6 -0
  174. package/codeyam-cli/src/webserver/build/client/assets/LogViewer-wDPcZNKx.js +3 -0
  175. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-4lcOlid-.js +11 -0
  176. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-BfmDgXxG.js +1 -0
  177. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-CUxUNEEC.js +15 -0
  178. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-COPstp9J.js → TruncatedFilePath-6J7zDUD5.js} +1 -1
  179. package/codeyam-cli/src/webserver/build/client/assets/_index-DHImXdXq.js +11 -0
  180. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CVP_WGQ3.js +32 -0
  181. package/codeyam-cli/src/webserver/build/client/assets/api.link-scenario-value-l0sNRNKZ.js +1 -0
  182. package/codeyam-cli/src/webserver/build/client/assets/api.update-key-attributes-l0sNRNKZ.js +1 -0
  183. package/codeyam-cli/src/webserver/build/client/assets/api.update-valid-values-l0sNRNKZ.js +1 -0
  184. package/codeyam-cli/src/webserver/build/client/assets/chevron-down-BYimnrHg.js +6 -0
  185. package/codeyam-cli/src/webserver/build/client/assets/chunk-JMJ3UQ3L-BambyYE_.js +51 -0
  186. package/codeyam-cli/src/webserver/build/client/assets/circle-check-CaVsIRxt.js +6 -0
  187. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-CgUsG7ib.js +21 -0
  188. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-CKnwPCDr.js +1 -0
  189. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DW_hdGUc.js +1 -0
  190. package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-Dt-SjPsw.js +23 -0
  191. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DyB90fWk.js +1 -0
  192. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-D_3ero5o.js +1 -0
  193. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-CfLCUi9S.js +5 -0
  194. package/codeyam-cli/src/webserver/build/client/assets/entry.client-DKJyZfAY.js +29 -0
  195. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-DAtOlaWE.js +1 -0
  196. package/codeyam-cli/src/webserver/build/client/assets/files-ClR0d32A.js +1 -0
  197. package/codeyam-cli/src/webserver/build/client/assets/git-D62Lxxmv.js +15 -0
  198. package/codeyam-cli/src/webserver/build/client/assets/globals-C9s7Lhdl.css +1 -0
  199. package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-fmIEn3Bc.js +9 -0
  200. package/codeyam-cli/src/webserver/build/client/assets/index-BosqDOlH.js +3 -0
  201. package/codeyam-cli/src/webserver/build/client/assets/index-CzNNiTkw.js +9 -0
  202. package/codeyam-cli/src/webserver/build/client/assets/keyAttributeCoverage-CTlFMihX.js +1 -0
  203. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-CNp9QFCX.js +6 -0
  204. package/codeyam-cli/src/webserver/build/client/assets/manifest-0d27da29.js +1 -0
  205. package/codeyam-cli/src/webserver/build/client/assets/preload-helper-ckwbz45p.js +1 -0
  206. package/codeyam-cli/src/webserver/build/client/assets/root-B_wIKCIf.js +56 -0
  207. package/codeyam-cli/src/webserver/build/client/assets/scenarioStatus-B_8jpV3e.js +1 -0
  208. package/codeyam-cli/src/webserver/build/client/assets/search-DDGjYAMJ.js +6 -0
  209. package/codeyam-cli/src/webserver/build/client/assets/settings-DgTyB-Wg.js +1 -0
  210. package/codeyam-cli/src/webserver/build/client/assets/simulations-CoNWGt0K.js +1 -0
  211. package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-CBc5dE1s.js +6 -0
  212. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BMIGFP-m.js +1 -0
  213. package/codeyam-cli/src/webserver/build/client/assets/useInteractiveMode-Dk_FQqWJ.js +1 -0
  214. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-3pmpUQB-.js → useLastLogLine-BqPPNjAl.js} +1 -1
  215. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DsJbgMY9.js +1 -0
  216. package/codeyam-cli/src/webserver/build/client/assets/{useToast-DEyawJ8r.js → useToast-DWHcCcl1.js} +1 -1
  217. package/codeyam-cli/src/webserver/build/server/assets/index-CU58-Ttc.js +1 -0
  218. package/codeyam-cli/src/webserver/build/server/assets/server-build-D35o2uae.js +175 -0
  219. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  220. package/codeyam-cli/src/webserver/build-info.json +5 -5
  221. package/codeyam-cli/src/webserver/devServer.js +1 -3
  222. package/codeyam-cli/src/webserver/devServer.js.map +1 -1
  223. package/codeyam-cli/templates/codeyam-setup-skill.md +138 -3
  224. package/codeyam-cli/templates/debug-codeyam.md +625 -0
  225. package/package.json +14 -14
  226. package/packages/ai/src/lib/analyzeScope.js +2 -0
  227. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  228. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +16 -0
  229. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  230. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +16 -0
  231. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
  232. package/packages/ai/src/lib/astScopes/processExpression.js +305 -88
  233. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  234. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +582 -41
  235. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  236. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +2 -1
  237. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  238. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +454 -0
  239. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -0
  240. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +173 -55
  241. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  242. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +16 -1
  243. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  244. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +30 -1
  245. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  246. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +20 -0
  247. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  248. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js +86 -0
  249. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js.map +1 -0
  250. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +28 -2
  251. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  252. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +179 -17
  253. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +1 -1
  254. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +6 -0
  255. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +1 -1
  256. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +41 -0
  257. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  258. package/packages/ai/src/lib/generateChangesEntityScenarios.js +37 -4
  259. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  260. package/packages/ai/src/lib/generateEntityDataStructure.js +4 -0
  261. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  262. package/packages/ai/src/lib/generateEntityKeyAttributes.js +176 -9
  263. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +1 -1
  264. package/packages/ai/src/lib/generateEntityScenarioData.js +29 -25
  265. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  266. package/packages/ai/src/lib/generateEntityScenarios.js +105 -9
  267. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  268. package/packages/ai/src/lib/getConditionalUsagesFromCode.js +84 -14
  269. package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -1
  270. package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -1
  271. package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
  272. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +6 -0
  273. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  274. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +38 -2
  275. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  276. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +38 -2
  277. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  278. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +16 -3
  279. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
  280. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  281. package/packages/ai/src/lib/worker/analyzeScopeWorker.js +4 -0
  282. package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
  283. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +100 -23
  284. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  285. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +125 -0
  286. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -0
  287. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +298 -45
  288. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  289. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js +1 -1
  290. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js.map +1 -1
  291. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +201 -80
  292. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  293. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +10 -5
  294. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +1 -1
  295. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +55 -69
  296. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  297. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +2 -5
  298. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  299. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +171 -81
  300. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  301. package/packages/database/src/lib/kysely/db.js +2 -2
  302. package/packages/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
  303. package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  304. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +8 -4
  305. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  306. package/packages/generate/src/lib/deepMerge.js +27 -1
  307. package/packages/generate/src/lib/deepMerge.js.map +1 -1
  308. package/packages/types/index.js +1 -0
  309. package/packages/types/index.js.map +1 -1
  310. package/packages/types/src/types/Scenario.js +21 -1
  311. package/packages/types/src/types/Scenario.js.map +1 -1
  312. package/packages/utils/src/lib/lightweightEntityExtractor.js +25 -0
  313. package/packages/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
  314. package/scripts/finalize-analyzer.cjs +3 -1
  315. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +0 -238
  316. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +0 -1
  317. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-CVbSvOjo.js +0 -1
  318. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-DcwcHyl5.js +0 -1
  319. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-WgwC1GfJ.js +0 -26
  320. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-IEKom9O2.js +0 -3
  321. package/codeyam-cli/src/webserver/build/client/assets/LogViewer-BYnfxbUG.js +0 -3
  322. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-_lBPJCzG.js +0 -1
  323. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-lHVhvsu_.js +0 -1
  324. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-d_TBk4GQ.js +0 -5
  325. package/codeyam-cli/src/webserver/build/client/assets/_index-kGT7VUqj.js +0 -1
  326. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-DDGmhu7P.js +0 -7
  327. package/codeyam-cli/src/webserver/build/client/assets/chevron-down-n_HPRfM_.js +0 -1
  328. package/codeyam-cli/src/webserver/build/client/assets/chunk-WWGJGFF6-CbVoyx1U.js +0 -26
  329. package/codeyam-cli/src/webserver/build/client/assets/circle-check-D1VOYveA.js +0 -1
  330. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-YR8jjAlu.js +0 -1
  331. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-B8vP3V_s.js +0 -1
  332. package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-CN6aLCT1.js +0 -16
  333. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DA5Jeu2P.js +0 -1
  334. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-BTeitalf.js +0 -5
  335. package/codeyam-cli/src/webserver/build/client/assets/entry.client-du6UEYD-.js +0 -13
  336. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-BpjkhMoi.js +0 -1
  337. package/codeyam-cli/src/webserver/build/client/assets/files-BQGvk4lJ.js +0 -1
  338. package/codeyam-cli/src/webserver/build/client/assets/git-DVdYRT-I.js +0 -12
  339. package/codeyam-cli/src/webserver/build/client/assets/globals-CO-U8Bpo.css +0 -1
  340. package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-XQCGvadH.js +0 -5
  341. package/codeyam-cli/src/webserver/build/client/assets/index-DCG-vks0.js +0 -1
  342. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-GazdNeLl.js +0 -1
  343. package/codeyam-cli/src/webserver/build/client/assets/manifest-0b694d28.js +0 -1
  344. package/codeyam-cli/src/webserver/build/client/assets/root-D3tQP7hx.js +0 -16
  345. package/codeyam-cli/src/webserver/build/client/assets/search-CIY6XmtE.js +0 -1
  346. package/codeyam-cli/src/webserver/build/client/assets/server-build-CMKNK2uU.css +0 -1
  347. package/codeyam-cli/src/webserver/build/client/assets/settings-CoMDgElu.js +0 -1
  348. package/codeyam-cli/src/webserver/build/client/assets/simulations-agkniXp2.js +0 -1
  349. package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-B2VUcygF.js +0 -1
  350. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-EvdK-zXP.js +0 -1
  351. package/codeyam-cli/src/webserver/build/server/assets/index-DGVHQEXD.js +0 -1
  352. package/codeyam-cli/src/webserver/build/server/assets/server-build-CghkTkIL.js +0 -166
  353. package/codeyam-cli/templates/debug-command.md +0 -303
  354. /package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-CMKNK2uU.css → styles-CMKNK2uU.css} +0 -0
@@ -0,0 +1,625 @@
1
+ # Debug Scenario or Analysis
2
+
3
+ When a user asks to debug a scenario or analysis (e.g., `/debug-codeyam [ID]`), use this systematic process.
4
+
5
+ ## Goal
6
+
7
+ Determine whether a capture failure can be fixed locally (via database changes) or requires a CodeYam engine fix. Either way, produce a detailed debug report.
8
+
9
+ ## Definition of Done
10
+
11
+ **Debugging is NOT complete until one of these conditions is met:**
12
+
13
+ 1. **SUCCESS (Database Fix)**: Issue fixed via database/config changes, screenshots recaptured, ALL screenshot files verified on disk AND visually inspected
14
+ 2. **SUCCESS (File Fix)**: Issue fixed via tmp folder edits, screenshots recaptured with `--capture-only`, ALL screenshot files verified AND visually inspected, changes documented for CodeYam team
15
+ 3. **UNFIXABLE**: Issue cannot be fixed locally (rare), documented in final report with full details
16
+
17
+ ---
18
+
19
+ ## Debug Flow Summary
20
+
21
+ ```
22
+ ┌─────────────────────────────────────────────────────────────────────┐
23
+ │ Step 0: Query database for scenario status (DO THIS FIRST!) │
24
+ │ Check ALL scenarios in the analysis for failures │
25
+ │ Retrieve the analysis id to use in the debug command │
26
+ │ │ │
27
+ │ ▼ │
28
+ │ Step 1: codeyam debug [ANALYSIS ID] (generates files to inspect) │
29
+ │ Step 2: Identify error type from logs/output │
30
+ │ Step 3: Diagnose root cause category (1-4) │
31
+ │ Step 4: Attempt fix (database edit or universal mock) │
32
+ │ Step 5: Verify locally (curl returns 200) │
33
+ │ │ │
34
+ │ ┌─────────┴─────────┐ │
35
+ │ ▼ ▼ │
36
+ │ Fix worked Fix didn't work │
37
+ │ (DB changes) │ │
38
+ │ │ ▼ │
39
+ │ │ Step 5a: Fix code in tmp folder │
40
+ │ │ (edit files directly, track changes) │
41
+ │ │ │ │
42
+ │ │ ▼ │
43
+ │ │ Verify without regenerating │
44
+ │ │ │ │
45
+ │ ▼ ▼ │
46
+ │ Step 6: Recapture Step 6: Recapture --capture-only │
47
+ │ (normal) (preserves file fixes) │
48
+ │ │ │ │
49
+ │ └─────────┬─────────┘ │
50
+ │ ▼ │
51
+ │ Step 7: Verify screenshots (check for client-side errors) │
52
+ │ │ │
53
+ │ ▼ │
54
+ │ Verify ALL files exist on disk │
55
+ │ │ │
56
+ │ ▼ │
57
+ │ ✅ DONE - Produce Final Debug Report │
58
+ │ (document ALL changes for CodeYam team) │
59
+ └─────────────────────────────────────────────────────────────────────┘
60
+ ```
61
+
62
+ ---
63
+
64
+ ## What You Can and Cannot Modify
65
+
66
+ **NEVER modify the client's original source code in the workspace.** Only modify files in the tmp folder.
67
+
68
+ **You CAN modify:**
69
+
70
+ - Data in the local SQLite database (`.codeyam/db.sqlite3`)
71
+ - Universal mocks in `.codeyam/universal-mocks`
72
+ - **Files in `/tmp/codeyam/local-dev/{slug}/project/`** - These are temporary copies used for simulation
73
+ - Generated mock files in `__codeyamMocks__/` directories
74
+ - Layout/route files that wrap scenarios
75
+ - Any generated code that has errors
76
+ - Mock data files for testing
77
+
78
+ **IMPORTANT**: When you edit files in the tmp folder, you MUST use `codeyam recapture --capture-only` when recapturing, otherwise your changes will be overwritten! Be sure to address all issues so that the simulation runs correctly. Then, if one of the issues required editing code in the tmp directory you MUST use `codeyam recapture --capture-only`, but if only data was changed then as long as that data is updated in the local database as well you can run `codeyam recapture` and have the system overwrite the tmp project code and use the valid data from the database.
79
+
80
+ ---
81
+
82
+ ## Step 0: Check for Other Failing Scenarios (MANDATORY FIRST STEP)
83
+
84
+ **DO NOT run `codeyam debug` yet!** First, query the database to check if other scenarios in the same analysis are also failing.
85
+
86
+ ```bash
87
+ # First, get the analysis ID (if you have a scenario ID)
88
+ sqlite3 .codeyam/db.sqlite3 "SELECT analysis_id FROM scenarios WHERE id = 'SCENARIO_ID'"
89
+
90
+ # Then check ALL scenarios for that analysis
91
+ sqlite3 .codeyam/db.sqlite3 "
92
+ SELECT
93
+ s.id,
94
+ s.name,
95
+ json_extract(s.metadata, '$.screenshotPaths') as screenshots
96
+ FROM scenarios s
97
+ WHERE s.analysis_id = 'ANALYSIS_ID'
98
+ "
99
+
100
+ # Check for errors in scenario status
101
+ sqlite3 .codeyam/db.sqlite3 "
102
+ SELECT json_extract(status, '$.scenarios') FROM analyses WHERE id = 'ANALYSIS_ID'
103
+ "
104
+ ```
105
+
106
+ **If multiple scenarios are failing, ASK THE USER** whether to fix just the requested scenario or all failing scenarios.
107
+
108
+ ### Check for Client-Side Errors in Screenshots
109
+
110
+ **IMPORTANT:** Even if the database shows no errors and screenshots exist, the scenario may still have a client-side error. Use the Read tool to view the screenshot file and check for:
111
+
112
+ - Red error boundaries or error messages in the rendered UI
113
+ - "Something went wrong" or similar error text
114
+ - Blank/white screens that should have content
115
+ - React error overlays
116
+
117
+ ```bash
118
+ # View the screenshot to check for client-side errors
119
+ # Use the Read tool on the screenshot path from the database
120
+ ```
121
+
122
+ If the screenshot shows a client-side error, proceed to Step 1 to debug it.
123
+
124
+ ---
125
+
126
+ ## Step 1: Run Debug Command
127
+
128
+ ```bash
129
+ codeyam debug ANALYSIS_ID
130
+ ```
131
+
132
+ Output includes:
133
+
134
+ - **Project path**: `/tmp/codeyam/local-dev/{slug}/project`
135
+ - **Start command**: How to run the dev server
136
+ - **URL**: Where to access the scenario
137
+ - **Log path**: Where to watch for errors
138
+
139
+ ---
140
+
141
+ ## Step 2: Identify the Error Type
142
+
143
+ Read the log file or error output to categorize the issue:
144
+
145
+ | Error Type | Symptoms | Likely Category |
146
+ | ---------------------------------- | ----------------------------------- | ---------------------------------------- |
147
+ | **Syntax error in generated file** | `Unexpected token`, `Parse error` | Category 4 (mock code writing) |
148
+ | **Runtime error** | `TypeError`, `ReferenceError` | Category 1-3 (data issue) or 4 |
149
+ | **Missing mock** | `Cannot read property of undefined` | Category 1-2 (missing in data structure) |
150
+ | **Wrong mock type** | `X is not a function` | Category 3-4 (wrong data or mock code) |
151
+
152
+ ---
153
+
154
+ ## Step 3: Diagnose Root Cause Category
155
+
156
+ This is the most important step. Determine WHERE in the pipeline the bug originated.
157
+
158
+ ### The 4 Error Categories
159
+
160
+ | Category | What's Wrong | Where to Check | Fixable Locally? |
161
+ | -------- | ---------------------------------------------------- | ------------------------- | ---------------------- |
162
+ | **1** | Missing attribute in `isolatedDataStructure` | `entities.metadata` | Sometimes (re-analyze) |
163
+ | **2** | Attribute not merged into `mergedDataStructure` | `analyses.metadata` | Sometimes (re-analyze) |
164
+ | **3** | Data structure complete, but scenario data wrong | `scenarios.metadata` | Yes (edit mockData) |
165
+ | **4** | Data complete, but mock code/mock data written wrong | Generated files in `/tmp` | **No (engine bug)** |
166
+
167
+ ### Diagnostic Queries
168
+
169
+ ```bash
170
+ # Category 1: Check isolatedDataStructure
171
+ # Is the attribute traced at all in the entity?
172
+ sqlite3 .codeyam/db.sqlite3 \
173
+ "SELECT json_extract(metadata, '$.isolatedDataStructure') FROM entities WHERE sha = 'ENTITY_SHA'" \
174
+ | python3 -m json.tool
175
+
176
+ # Category 2: Check mergedDataStructure
177
+ # Was the attribute properly merged from dependencies?
178
+ sqlite3 .codeyam/db.sqlite3 \
179
+ "SELECT json_extract(metadata, '$.mergedDataStructure') FROM analyses WHERE id = 'ANALYSIS_ID'" \
180
+ | python3 -m json.tool
181
+
182
+ # Category 2 (also check): scenariosDataStructure
183
+ sqlite3 .codeyam/db.sqlite3 \
184
+ "SELECT json_extract(metadata, '$.scenariosDataStructure') FROM analyses WHERE id = 'ANALYSIS_ID'" \
185
+ | python3 -m json.tool
186
+
187
+ # Category 3: Check scenario mockData
188
+ # Did the LLM generate correct mock data?
189
+ sqlite3 .codeyam/db.sqlite3 \
190
+ "SELECT json_extract(metadata, '$.data.mockData') FROM scenarios WHERE id = 'SCENARIO_ID'" \
191
+ | python3 -m json.tool
192
+ ```
193
+
194
+ ### Diagnosis Flow
195
+
196
+ 1. **Start with the error** - What attribute/value is missing or wrong at runtime?
197
+ 2. **Check `isolatedDataStructure`** - Is the attribute traced in the entity? If missing → Category 1
198
+ 3. **Check `mergedDataStructure`** - Is the attribute present after merging? If missing → Category 2
199
+ 4. **Check `scenariosDataStructure`** - Is the data structure for mocks correct? If wrong → Category 2
200
+ 5. **Check scenario `mockData`** - Does the scenario have correct mock values? If wrong → Category 3
201
+ 6. **Check generated mock code** - Is the mock code syntactically/semantically correct? If wrong → **Category 4 (engine bug)**
202
+ 7. **Check generated imports** - Are the imports correct? Are entities containing environment variables mocked out? If wrong → **Category 4 (engine bug)**
203
+
204
+ ### Category 4 Indicators (Engine Bug)
205
+
206
+ The issue is Category 4 if:
207
+
208
+ - All data structures in the database look correct
209
+ - The scenario's mockData has the right keys and values
210
+ - BUT the generated mock code has syntax errors, wrong structure, or doesn't match the data
211
+ - Database edits don't fix the generated code (it regenerates wrong)
212
+
213
+ ---
214
+
215
+ ## Step 4: Attempt Fix
216
+
217
+ ### For Categories 1-2 (Data Structure Issues)
218
+
219
+ These usually require re-running analysis. You can try:
220
+
221
+ ```bash
222
+ # Delete the analysis and re-analyze
223
+ codeyam analyze --entity EntityName path/to/file.tsx
224
+ ```
225
+
226
+ ### For Category 3 (Scenario Data Issues)
227
+
228
+ Fix the mockData directly in the database:
229
+
230
+ ```bash
231
+ # Export metadata
232
+ sqlite3 .codeyam/db.sqlite3 "SELECT metadata FROM scenarios WHERE id = 'SCENARIO_ID'" > /tmp/metadata.json
233
+
234
+ # Edit with Python
235
+ python3 << 'EOF'
236
+ import json
237
+ with open('/tmp/metadata.json') as f:
238
+ data = json.loads(f.read())
239
+
240
+ # Fix the mockData
241
+ data['data']['mockData']['keyName'] = {"fixed": "value"}
242
+
243
+ with open('/tmp/metadata_fixed.json', 'w') as f:
244
+ f.write(json.dumps(data))
245
+ EOF
246
+
247
+ # Update database (use Python to avoid escaping issues)
248
+ python3 << 'EOF'
249
+ import sqlite3
250
+ import json
251
+
252
+ with open('/tmp/metadata_fixed.json') as f:
253
+ metadata = f.read()
254
+
255
+ conn = sqlite3.connect('.codeyam/db.sqlite3')
256
+ conn.execute("UPDATE scenarios SET metadata = ? WHERE id = 'SCENARIO_ID'", (metadata,))
257
+ conn.commit()
258
+ conn.close()
259
+ EOF
260
+ ```
261
+
262
+ ### For Category 4 (Code Generation Issues)
263
+
264
+ **CAN be fixed locally by editing files in the tmp folder!** See Step 5a below.
265
+
266
+ After fixing, use `codeyam recapture --capture-only` to capture without regenerating the (now-fixed) files.
267
+
268
+ ### Universal Mocks (for infrastructure dependencies)
269
+
270
+ You can use universal mocks to mock out functions that are not detected by the analysis (are not part of the dependency tree). This often includes things like middleware or functions that run on startup and require environment variables.
271
+
272
+ ## Quick Reference: Mock Path Decision Tree
273
+
274
+ ```
275
+ Where is the error coming from?
276
+
277
+ ├── node_modules package (e.g., @prisma/client, @supabase/supabase-js)
278
+ │ └── Mock path: .codeyam/universal-mocks/node_modules/{package}.ts
279
+ │ Example: .codeyam/universal-mocks/node_modules/@prisma/client.ts
280
+
281
+ └── Project file (e.g., lib/db.ts, packages/prisma/index.ts)
282
+ └── Mock path: .codeyam/universal-mocks/{same-path-as-original}
283
+ Example: .codeyam/universal-mocks/lib/db.ts
284
+ Example: .codeyam/universal-mocks/packages/prisma/index.ts
285
+ ```
286
+
287
+ ## Quick Reference: Mock Writing Rules
288
+
289
+ **BEFORE writing any mock:**
290
+
291
+ 1. Read the original file first
292
+ 2. Note all its export names exactly
293
+
294
+ **WHEN writing the mock:**
295
+
296
+ 1. Export names MUST match exactly (case-sensitive)
297
+ 2. ALL code MUST be inside exports (no helper variables outside)
298
+ 3. Keep it minimal - empty methods are fine
299
+
300
+ **AFTER writing the mock:**
301
+
302
+ ```bash
303
+ codeyam validate-mock .codeyam/universal-mocks/{path-to-your-mock}
304
+ ```
305
+
306
+ ---
307
+
308
+ ## Step 5: Verify Database Fixes Locally
309
+
310
+ After making **database changes** (Categories 1-3):
311
+
312
+ 1. **Re-run `codeyam debug ID`** to regenerate scenario files with updated data
313
+ 2. **Start the dev server** and curl the URL to check for errors:
314
+ ```bash
315
+ curl -s http://localhost:3112/static/... | head -50
316
+ ```
317
+ 3. **Check for 200 response** (no `statusCode:500`)
318
+
319
+ **If verification fails and you've already tried database fixes:** Proceed to Step 5a to fix code directly.
320
+
321
+ ---
322
+
323
+ ## Step 5a: Fix Code Issues in Tmp Folder (Category 4)
324
+
325
+ If the error is in bad imports, generated code or mock files, you can fix them directly in the tmp folder:
326
+
327
+ ### Locate the Problematic File
328
+
329
+ Files are in `/tmp/codeyam/local-dev/{slug}/project/`. Common locations:
330
+
331
+ - **Generated mocks**: `__codeyamMocks__/MockData_*.tsx` or `__codeyamMocks__/MockCode_*.tsx`
332
+ - **Scenario layouts**: `app/static/{projectSlug}/{analysisId}/{entitySlug}/{scenarioSlug}/`
333
+ - **Route files**: `app/routes/` or `pages/` depending on framework
334
+
335
+ ### Make the Fix
336
+
337
+ Edit the problematic file directly using the Edit tool. Common fixes include:
338
+
339
+ - **Syntax errors**: Fix missing brackets, commas, or quotes in generated code
340
+ - **Wrong import paths**: Correct import statements
341
+ - **Missing exports**: Add missing named or default exports
342
+ - **Type errors**: Fix TypeScript type issues
343
+ - **Wrong mock structure**: Adjust the shape of generated mock data
344
+
345
+ ### Track Your Changes (MANDATORY)
346
+
347
+ For every file you edit, record:
348
+
349
+ - The full file path
350
+ - What you changed (brief description)
351
+ - The before/after code (for the final report)
352
+
353
+ ### Verify Without Regenerating
354
+
355
+ After editing files, **do NOT run `codeyam debug` again** (it would overwrite your changes).
356
+
357
+ Instead, manually start the dev server:
358
+
359
+ ```bash
360
+ cd /tmp/codeyam/local-dev/{slug}/project
361
+ npm run dev # or pnpm dev / yarn dev
362
+ ```
363
+
364
+ Then curl the scenario URL to verify the fix works:
365
+
366
+ ```bash
367
+ curl -s http://localhost:3112/static/codeyam-sample | head -50
368
+ ```
369
+
370
+ ---
371
+
372
+ ## Change Tracking (MANDATORY)
373
+
374
+ **You MUST track all changes for the final report.** This is essential for the CodeYam team to fix engine bugs.
375
+
376
+ ### Database Changes
377
+
378
+ For each database modification, record:
379
+
380
+ | Table | Record ID | Field Path | Before | After |
381
+ | ----------- | --------- | ---------------------------- | --------- | ----------- |
382
+ | `scenarios` | `abc123` | `metadata.data.mockData.key` | `"wrong"` | `"correct"` |
383
+
384
+ ### File Changes
385
+
386
+ For each file modification in the tmp folder, record:
387
+
388
+ | File Path | Change Description |
389
+ | ---------------------------------------------------- | ------------------------------------- |
390
+ | `/tmp/.../project/__codeyamMocks__/MockData_xyz.tsx` | Fixed missing comma in object literal |
391
+
392
+ Include the actual diff:
393
+
394
+ ```diff
395
+ --- before
396
+ +++ after
397
+ @@ -10,3 +10,3 @@
398
+ - key: "value"
399
+ + key: "value",
400
+ anotherKey: "value2"
401
+ ```
402
+
403
+ ---
404
+
405
+ ## Step 6: Recapture Screenshots
406
+
407
+ **Only proceed here if Step 5 or 5a verification passed.**
408
+
409
+ ### Choose the Right Recapture Mode
410
+
411
+ **If you only made DATABASE changes (Categories 1-3):**
412
+
413
+ ```bash
414
+ codeyam recapture SCENARIO_ID
415
+ ```
416
+
417
+ This will regenerate the tmp folder files using the updated database data, then capture screenshots.
418
+
419
+ **If you made FILE changes in the tmp folder (Category 4):**
420
+
421
+ ```bash
422
+ codeyam recapture SCENARIO_ID --capture-only
423
+ ```
424
+
425
+ **CRITICAL**: The `--capture-only` flag preserves your manual file fixes. Without this flag, your changes would be overwritten!
426
+
427
+ ### Verify Files After Capture
428
+
429
+ ```bash
430
+ # Check database for screenshot paths
431
+ sqlite3 .codeyam/db.sqlite3 "SELECT name, json_extract(metadata, '$.screenshotPaths') FROM scenarios WHERE analysis_id = 'ANALYSIS_ID'"
432
+
433
+ # Verify files actually exist
434
+ find .codeyam/captures -name "*.png" -path "*ANALYSIS_ID*" -mmin -5
435
+ ```
436
+
437
+ ---
438
+
439
+ ## Step 7: Verify Screenshots for Client-Side Errors
440
+
441
+ **IMPORTANT**: Even if capture completes successfully, the screenshots may show client-side errors!
442
+
443
+ ### View the Screenshots
444
+
445
+ Use the Read tool to view each captured screenshot file:
446
+
447
+ ```bash
448
+ # Get the screenshot path from the database
449
+ sqlite3 .codeyam/db.sqlite3 "SELECT json_extract(metadata, '$.screenshotPaths[0]') FROM scenarios WHERE id = 'SCENARIO_ID'"
450
+ ```
451
+
452
+ Then read the screenshot file to visually inspect it.
453
+
454
+ ### Check for These Issues
455
+
456
+ - **Red error boundaries** or React error overlays
457
+ - **"Something went wrong"** or similar error text
458
+ - **Blank/white screens** that should have content
459
+ - **Missing components** or broken layouts
460
+ - **Console errors** shown in error overlays
461
+
462
+ If the screenshot shows a dedicated 500 page with no clear error then you may want to find and comment out any error boundary logic that is catching errors and preventing you from easily reading them.
463
+
464
+ ### If Screenshot Shows Errors
465
+
466
+ 1. The fix didn't fully work - go back to Step 5 or 5a
467
+ 2. Check the log file for additional error details:
468
+ ```bash
469
+ tail -100 /tmp/codeyam/local-dev/{slug}/codeyam/log.txt
470
+ ```
471
+ 3. Fix the remaining issues
472
+ 4. Run recapture again (with `--capture-only` if you edited files)
473
+
474
+ ---
475
+
476
+ ## Final Debug Report (MANDATORY)
477
+
478
+ **Always produce this report**, whether the issue was fixed or identified as an engine bug.
479
+
480
+ ---
481
+
482
+ ## Debug Session Report
483
+
484
+ ### Issue Summary
485
+
486
+ **Error:** `[Exact error message, e.g., "Transform failed: Unexpected token at line 66"]`
487
+
488
+ **Entity:** `[Entity name]` in `[file/path.tsx]`
489
+
490
+ **Root Cause Category:** [1, 2, 3, or 4]
491
+
492
+ **Outcome:** [Fixed via database changes / Fixed via file edits (engine bug) / Unfixable]
493
+
494
+ ### Affected Scenarios
495
+
496
+ | Scenario ID | Name | Analysis ID | Status |
497
+ | ----------- | -------- | --------------- | -------------------- |
498
+ | `[id]` | `[name]` | `[analysis-id]` | [Fixed / Engine bug] |
499
+
500
+ ### Root Cause Category Determination
501
+
502
+ **Category identified:** [1 / 2 / 3 / 4]
503
+
504
+ **Evidence:**
505
+
506
+ - [ ] **Category 1** (isolatedDataStructure): [What was missing/wrong in entity metadata?]
507
+ - [ ] **Category 2** (mergedDataStructure): [What was missing/wrong after merge?]
508
+ - [ ] **Category 3** (scenario mockData): [What was wrong in the LLM-generated data?]
509
+ - [ ] **Category 4** (mock code writing): [What was wrong in the generated code?]
510
+
511
+ **How determined:**
512
+ [Explain what you checked and what you found. Include relevant JSON snippets.]
513
+
514
+ ### Database Changes Made (if any)
515
+
516
+ | Table | Record ID | Field Path | Before | After |
517
+ | --------- | --------- | ---------- | ------------- | ------------- |
518
+ | `[table]` | `[id]` | `[path]` | `[old value]` | `[new value]` |
519
+
520
+ **SQL/Python commands used:**
521
+
522
+ ```sql
523
+ [Include the exact commands]
524
+ ```
525
+
526
+ ### File Changes Made (if any)
527
+
528
+ If you edited files in the tmp folder to fix Category 4 issues:
529
+
530
+ | File Path | Change Description |
531
+ | -------------------------------------------------------- | -------------------------- |
532
+ | `/tmp/codeyam/local-dev/{slug}/project/path/to/file.tsx` | [Brief description of fix] |
533
+
534
+ **Diffs:**
535
+
536
+ ```diff
537
+ --- before
538
+ +++ after
539
+ @@ -line,count +line,count @@
540
+ -[old code]
541
+ +[new code]
542
+ ```
543
+
544
+ **Recapture command used:**
545
+
546
+ ```bash
547
+ codeyam recapture SCENARIO_ID --capture-only
548
+ ```
549
+
550
+ ### For Category 4 (Code Generation Bug) - Required Details
551
+
552
+ If this is an engine bug, include:
553
+
554
+ **What the data looks like (correct):**
555
+
556
+ ```json
557
+ [Show the relevant data structure from the database that looks correct]
558
+ ```
559
+
560
+ **What the generated code looks like (wrong):**
561
+
562
+ ```javascript
563
+ [Show the problematic generated mock code]
564
+ ```
565
+
566
+ **What the generated code should look like:**
567
+
568
+ ```javascript
569
+ [Show what correct code would look like]
570
+ ```
571
+
572
+ **Pattern/Edge case:**
573
+ [Describe the pattern that causes this bug, e.g., "Function call signatures like '()' in array item schemas get converted to empty computed property keys"]
574
+
575
+ ### Verification
576
+
577
+ - [ ] Scenario loads without errors (curl returns 200)
578
+ - [ ] Screenshots recaptured successfully
579
+ - [ ] Used `--capture-only` flag (if file changes were made)
580
+ - [ ] Screenshot files verified to exist on disk
581
+ - [ ] Screenshots visually inspected - no client-side errors visible
582
+ - [ ] All changes documented above for CodeYam team
583
+
584
+ ---
585
+
586
+ ## Saving and Uploading the Report (MANDATORY)
587
+
588
+ After completing the debug session, **you MUST save the report**:
589
+
590
+ 1. **Write the report to file:**
591
+
592
+ ```bash
593
+ # Write the full "Debug Session Report" section above to this file
594
+ # Use the Write tool to save to:
595
+ .codeyam/debug-report.md
596
+ ```
597
+
598
+ 2. **Ask user if they want to upload:**
599
+ After saving, ask the user: "Would you like me to upload this debug report to CodeYam for the team to review?"
600
+
601
+ - If the user response affirmatively then run `codeyam report --upload` to upload the report.
602
+
603
+ The report will be:
604
+
605
+ - Included in the delta tarball at the root level for easy access
606
+ - Stored in the database metadata for searchability
607
+ - Available to CodeYam engineers when they download the report
608
+
609
+ ---
610
+
611
+ ### Helper Queries
612
+
613
+ ```bash
614
+ # Get scenario details
615
+ sqlite3 .codeyam/db.sqlite3 "SELECT id, analysis_id, name FROM scenarios WHERE id = 'ID'"
616
+
617
+ # Get entity for analysis
618
+ sqlite3 .codeyam/db.sqlite3 "SELECT e.name, e.file_path FROM entities e JOIN analyses a ON e.sha = a.entity_sha WHERE a.id = 'ANALYSIS_ID'"
619
+
620
+ # List all scenarios for an analysis
621
+ sqlite3 .codeyam/db.sqlite3 "SELECT id, name FROM scenarios WHERE analysis_id = 'ANALYSIS_ID'"
622
+
623
+ # Check for dependent analyses
624
+ sqlite3 .codeyam/db.sqlite3 "SELECT json_extract(metadata, '$.dependentAnalyses') FROM analyses WHERE id = 'ANALYSIS_ID'" | python3 -m json.tool
625
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codeyam/codeyam-cli",
3
- "version": "0.1.0-staging.596f0eb",
3
+ "version": "0.1.0-staging.76566f9",
4
4
  "description": "Local development CLI for CodeYam analysis",
5
5
  "type": "module",
6
6
  "bin": {
@@ -10,20 +10,20 @@
10
10
  "postinstall": "node ./scripts/finalize-analyzer.cjs"
11
11
  },
12
12
  "dependencies": {
13
- "@anthropic-ai/claude-code": "^2.0.22",
13
+ "@anthropic-ai/claude-code": "^2.0.76",
14
14
  "@anthropic-ai/sdk": "^0.71.0",
15
- "@aws-sdk/client-dynamodb": "^3.899.0",
16
- "@aws-sdk/s3-request-presigner": "^3.899.0",
15
+ "@aws-sdk/client-dynamodb": "^3.956.0",
16
+ "@aws-sdk/s3-request-presigner": "^3.940.0",
17
17
  "@aws-sdk/util-dynamodb": "^3.902.0",
18
- "@modelcontextprotocol/sdk": "^1.24.0",
18
+ "@modelcontextprotocol/sdk": "^1.25.1",
19
19
  "@octokit/auth-app": "^8.1.0",
20
20
  "@octokit/request": "^10.0.3",
21
21
  "@octokit/rest": "^22.0.0",
22
- "@react-router/express": "^7.10.1",
23
- "@react-router/node": "^7.10.1",
24
- "react-router": "^7.10.1",
22
+ "@react-router/express": "^7.11.0",
23
+ "@react-router/node": "^7.11.0",
24
+ "react-router": "^7.11.0",
25
25
  "@sendgrid/mail": "^8.1.4",
26
- "@supabase/supabase-js": "2.52.1",
26
+ "@supabase/supabase-js": "2.88.0",
27
27
  "better-sqlite3": "^12.4.1",
28
28
  "chalk": "^5.6.2",
29
29
  "chokidar": "^4.0.3",
@@ -35,7 +35,7 @@
35
35
  "get-port": "^7.1.0",
36
36
  "htmlparser2": "^10.0.0",
37
37
  "isbot": "^4",
38
- "jsdom": "^27.3.0",
38
+ "jsdom": "^27.4.0",
39
39
  "json5": "^2.2.3",
40
40
  "jsonc-parser": "^3.2.1",
41
41
  "kysely": "^0.28.5",
@@ -50,11 +50,11 @@
50
50
  "playwright": "^1.56.1",
51
51
  "pluralize": "^8.0.0",
52
52
  "prompts": "^2.4.2",
53
- "react": "~18.2.0",
54
- "react-diff-viewer-continued": "^3.4.0",
55
- "react-dom": "~18.2.0",
53
+ "react": "^19.2.3",
54
+ "react-diff-viewer-continued": "^4.0.6",
55
+ "react-dom": "^19.2.3",
56
56
  "react-resizable": "^3.0.5",
57
- "react-syntax-highlighter": "^15.5.13",
57
+ "react-syntax-highlighter": "^15.6.1",
58
58
  "sharp": "^0.34.5",
59
59
  "simple-git": "^3.28.0",
60
60
  "typescript": "^5.9.3",