@codeyam/codeyam-cli 0.1.0-staging.b8a55ba → 0.1.0-staging.d0ad4ae

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 (340) hide show
  1. package/analyzer-template/.build-info.json +7 -7
  2. package/analyzer-template/common/execAsync.ts +1 -1
  3. package/analyzer-template/log.txt +3 -3
  4. package/analyzer-template/package.json +7 -4
  5. package/analyzer-template/packages/ai/package.json +1 -1
  6. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +14 -1
  7. package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +29 -10
  8. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +120 -19
  9. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +2 -1
  10. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +91 -35
  11. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +110 -74
  12. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +11 -0
  13. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.ts +98 -0
  14. package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
  15. package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +24 -17
  16. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +214 -39
  17. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +54 -1
  18. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +72 -6
  19. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +12 -5
  20. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +39 -23
  21. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +32 -0
  22. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +14 -0
  23. package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +1 -0
  24. package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
  25. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +73 -69
  26. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +6 -0
  27. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +3 -0
  28. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +22 -6
  29. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +9 -5
  30. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +49 -11
  31. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
  32. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +399 -52
  33. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +128 -2
  34. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +114 -70
  35. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +34 -129
  36. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +155 -79
  37. package/analyzer-template/packages/aws/codebuild/index.ts +1 -0
  38. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +11 -1
  39. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -1
  40. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +29 -18
  41. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -1
  42. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +2 -2
  43. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -1
  44. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +2 -2
  45. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  46. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +8 -18
  47. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -1
  48. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +17 -61
  49. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  50. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -1
  51. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +8 -1
  52. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -1
  53. package/analyzer-template/packages/aws/package.json +1 -1
  54. package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +43 -19
  55. package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +3 -3
  56. package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +17 -69
  57. package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +8 -1
  58. package/analyzer-template/packages/generate/index.ts +3 -0
  59. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +17 -1
  60. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +193 -0
  61. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
  62. package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
  63. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts +1 -0
  64. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -1
  65. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +1 -0
  66. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  67. package/analyzer-template/packages/github/dist/generate/index.d.ts +3 -0
  68. package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -1
  69. package/analyzer-template/packages/github/dist/generate/index.js +3 -0
  70. package/analyzer-template/packages/github/dist/generate/index.js.map +1 -1
  71. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
  72. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  73. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  74. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts +9 -0
  75. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -0
  76. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  77. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  78. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts +20 -0
  79. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts.map +1 -0
  80. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  81. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  82. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts +8 -0
  83. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts.map +1 -0
  84. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js +89 -0
  85. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  86. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -1
  87. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +10 -0
  88. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -1
  89. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -1
  90. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +3 -0
  91. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -1
  92. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +2 -0
  93. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -1
  94. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +6 -0
  95. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  96. package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +14 -0
  97. package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +2 -0
  98. package/analyzer-template/packages/process/index.ts +2 -0
  99. package/analyzer-template/packages/process/package.json +12 -0
  100. package/analyzer-template/packages/process/tsconfig.json +8 -0
  101. package/analyzer-template/packages/types/src/types/Entity.ts +2 -0
  102. package/analyzer-template/packages/types/src/types/Scenario.ts +6 -0
  103. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +2 -0
  104. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -1
  105. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +6 -0
  106. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  107. package/analyzer-template/playwright/capture.ts +37 -18
  108. package/analyzer-template/playwright/waitForServer.ts +21 -6
  109. package/analyzer-template/project/constructMockCode.ts +781 -140
  110. package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +3 -6
  111. package/analyzer-template/project/orchestrateCapture.ts +10 -3
  112. package/analyzer-template/project/reconcileMockDataKeys.ts +28 -100
  113. package/analyzer-template/project/runAnalysis.ts +5 -0
  114. package/analyzer-template/project/serverOnlyModules.ts +127 -2
  115. package/analyzer-template/project/start.ts +5 -3
  116. package/analyzer-template/project/startScenarioCapture.ts +6 -0
  117. package/analyzer-template/project/writeMockDataTsx.ts +50 -22
  118. package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
  119. package/analyzer-template/project/writeScenarioComponents.ts +162 -100
  120. package/analyzer-template/project/writeScenarioFiles.ts +26 -0
  121. package/analyzer-template/project/writeSimpleRoot.ts +11 -35
  122. package/analyzer-template/scripts/comboWorkerLoop.cjs +1 -0
  123. package/analyzer-template/scripts/defaultCmd.sh +9 -0
  124. package/background/src/lib/local/createLocalAnalyzer.js +1 -29
  125. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  126. package/background/src/lib/local/execAsync.js +1 -1
  127. package/background/src/lib/local/execAsync.js.map +1 -1
  128. package/background/src/lib/virtualized/common/execAsync.js +1 -1
  129. package/background/src/lib/virtualized/common/execAsync.js.map +1 -1
  130. package/background/src/lib/virtualized/project/constructMockCode.js +718 -127
  131. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  132. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +3 -2
  133. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
  134. package/background/src/lib/virtualized/project/orchestrateCapture.js +7 -4
  135. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  136. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +25 -61
  137. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  138. package/background/src/lib/virtualized/project/runAnalysis.js +4 -0
  139. package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
  140. package/background/src/lib/virtualized/project/serverOnlyModules.js +106 -3
  141. package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -1
  142. package/background/src/lib/virtualized/project/start.js +5 -3
  143. package/background/src/lib/virtualized/project/start.js.map +1 -1
  144. package/background/src/lib/virtualized/project/startScenarioCapture.js +7 -0
  145. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  146. package/background/src/lib/virtualized/project/writeMockDataTsx.js +52 -23
  147. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  148. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js +15 -0
  149. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js.map +1 -0
  150. package/background/src/lib/virtualized/project/writeScenarioComponents.js +136 -83
  151. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  152. package/background/src/lib/virtualized/project/writeScenarioFiles.js +19 -0
  153. package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -1
  154. package/background/src/lib/virtualized/project/writeSimpleRoot.js +11 -34
  155. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  156. package/codeyam-cli/src/cli.js +5 -1
  157. package/codeyam-cli/src/cli.js.map +1 -1
  158. package/codeyam-cli/src/commands/analyze.js +1 -1
  159. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  160. package/codeyam-cli/src/commands/baseline.js +177 -0
  161. package/codeyam-cli/src/commands/baseline.js.map +1 -0
  162. package/codeyam-cli/src/commands/status.js +23 -1
  163. package/codeyam-cli/src/commands/status.js.map +1 -1
  164. package/codeyam-cli/src/commands/test-startup.js +1 -1
  165. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  166. package/codeyam-cli/src/commands/wipe.js +108 -0
  167. package/codeyam-cli/src/commands/wipe.js.map +1 -0
  168. package/codeyam-cli/src/utils/database.js +91 -5
  169. package/codeyam-cli/src/utils/database.js.map +1 -1
  170. package/codeyam-cli/src/utils/git.js +79 -0
  171. package/codeyam-cli/src/utils/git.js.map +1 -0
  172. package/codeyam-cli/src/utils/queue/job.js +104 -0
  173. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  174. package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
  175. package/codeyam-cli/src/utils/wipe.js +128 -0
  176. package/codeyam-cli/src/utils/wipe.js.map +1 -0
  177. package/codeyam-cli/src/webserver/app/lib/database.js +66 -17
  178. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  179. package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-wXL1Z2Aq.js → EntityItem-Cmysw5OP.js} +1 -1
  180. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-CzGX-miz.js → EntityTypeBadge-DLqD3qNt.js} +1 -1
  181. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-CXFKsCOD.js → EntityTypeIcon-CAneekK2.js} +1 -1
  182. package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-D-9pXIaY.js → InteractivePreview-Cu16OUmx.js} +2 -2
  183. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-CBQPrpT0.js → LibraryFunctionPreview-CVtiBnY5.js} +1 -1
  184. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-D1CdlbrV.js → LoadingDots-B0GLXMsr.js} +1 -1
  185. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-wDPcZNKx.js → LogViewer-xgeCVgSM.js} +1 -1
  186. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-4lcOlid-.js → ReportIssueModal-DcAUIpD_.js} +1 -1
  187. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-BfmDgXxG.js → SafeScreenshot-DuDvi0jm.js} +1 -1
  188. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-BMKg0SAF.js +15 -0
  189. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-6J7zDUD5.js → TruncatedFilePath-DyFZkK0l.js} +1 -1
  190. package/codeyam-cli/src/webserver/build/client/assets/_index-DSmTpjmK.js +11 -0
  191. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-BF_aK4y6.js +32 -0
  192. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-BYimnrHg.js → chevron-down-Cx24_aWc.js} +1 -1
  193. package/codeyam-cli/src/webserver/build/client/assets/chunk-EPOLDU6W-CXRTFQ3F.js +51 -0
  194. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-CaVsIRxt.js → circle-check-BOARzkeR.js} +1 -1
  195. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-CgUsG7ib.js → createLucideIcon-BdhJEx6B.js} +1 -1
  196. package/codeyam-cli/src/webserver/build/client/assets/{dev.empty-DW_hdGUc.js → dev.empty-RJCf3Tvw.js} +1 -1
  197. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-zUEpfPsu.js → entity._sha._-D0-YwkBh.js} +12 -12
  198. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-EylcgScH.js +1 -0
  199. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.create-scenario-D_3ero5o.js → entity._sha_.create-scenario-DMe7kvgo.js} +1 -1
  200. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CfLCUi9S.js → entity._sha_.edit._scenarioId-C1H_a_Y3.js} +1 -1
  201. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-DKJyZfAY.js → entry.client-CS2cb_eZ.js} +6 -6
  202. package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DAtOlaWE.js → fileTableUtils-DMJ7zii9.js} +1 -1
  203. package/codeyam-cli/src/webserver/build/client/assets/{files-ClR0d32A.js → files-BW7Cyeyi.js} +1 -1
  204. package/codeyam-cli/src/webserver/build/client/assets/{git-D62Lxxmv.js → git-CZu4fif0.js} +2 -2
  205. package/codeyam-cli/src/webserver/build/client/assets/globals-wHVy_II5.css +1 -0
  206. package/codeyam-cli/src/webserver/build/client/assets/{index-CzNNiTkw.js → index-B1h680n5.js} +1 -1
  207. package/codeyam-cli/src/webserver/build/client/assets/{index-BosqDOlH.js → index-lzqtyFU8.js} +1 -1
  208. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-CNp9QFCX.js → loader-circle-B7B9V-bu.js} +1 -1
  209. package/codeyam-cli/src/webserver/build/client/assets/{manifest-09d684be.js → manifest-2d191949.js} +1 -1
  210. package/codeyam-cli/src/webserver/build/client/assets/root-FHgpM6gc.js +56 -0
  211. package/codeyam-cli/src/webserver/build/client/assets/{search-DDGjYAMJ.js → search-CxXUmBSd.js} +1 -1
  212. package/codeyam-cli/src/webserver/build/client/assets/{settings-DgTyB-Wg.js → settings-6D8k8Jp5.js} +1 -1
  213. package/codeyam-cli/src/webserver/build/client/assets/simulations-CDJZnWhN.js +1 -0
  214. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-CBc5dE1s.js → triangle-alert-B6LgvRJg.js} +1 -1
  215. package/codeyam-cli/src/webserver/build/client/assets/{useCustomSizes-BMIGFP-m.js → useCustomSizes-Dv18q8LD.js} +1 -1
  216. package/codeyam-cli/src/webserver/build/client/assets/{useInteractiveMode-Dk_FQqWJ.js → useInteractiveMode-0ToGk4K3.js} +1 -1
  217. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-BqPPNjAl.js → useLastLogLine-aSv48UbS.js} +1 -1
  218. package/codeyam-cli/src/webserver/build/client/assets/{useReportContext-DsJbgMY9.js → useReportContext-1BX144Eg.js} +1 -1
  219. package/codeyam-cli/src/webserver/build/client/assets/{useToast-DWHcCcl1.js → useToast-mBRpZPiu.js} +1 -1
  220. package/codeyam-cli/src/webserver/build/server/assets/{index-CV6i1S1A.js → index-pU0o5t1o.js} +1 -1
  221. package/codeyam-cli/src/webserver/build/server/assets/server-build-YzfkRwdn.js +178 -0
  222. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  223. package/codeyam-cli/src/webserver/build-info.json +5 -5
  224. package/codeyam-cli/templates/codeyam-setup-skill.md +138 -3
  225. package/codeyam-cli/templates/debug-codeyam.md +7 -2
  226. package/package.json +5 -5
  227. package/packages/ai/src/lib/astScopes/processExpression.js +13 -1
  228. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  229. package/packages/ai/src/lib/checkAllAttributes.js +24 -9
  230. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  231. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +94 -18
  232. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  233. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +2 -1
  234. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  235. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +51 -23
  236. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -1
  237. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +70 -54
  238. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  239. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +11 -0
  240. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  241. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js +86 -0
  242. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js.map +1 -0
  243. package/packages/ai/src/lib/deepEqual.js +32 -0
  244. package/packages/ai/src/lib/deepEqual.js.map +1 -0
  245. package/packages/ai/src/lib/findMatchingAttribute.js +20 -16
  246. package/packages/ai/src/lib/findMatchingAttribute.js.map +1 -1
  247. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +168 -41
  248. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +1 -1
  249. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +42 -1
  250. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +1 -1
  251. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +59 -3
  252. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  253. package/packages/ai/src/lib/generateChangesEntityScenarios.js +6 -6
  254. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  255. package/packages/ai/src/lib/generateEntityScenarioData.js +32 -23
  256. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  257. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +20 -1
  258. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  259. package/packages/analyze/src/lib/FileAnalyzer.js +15 -0
  260. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  261. package/packages/analyze/src/lib/asts/nodes/index.js +1 -0
  262. package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
  263. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
  264. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
  265. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +59 -50
  266. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  267. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +6 -0
  268. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  269. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +2 -0
  270. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  271. package/packages/analyze/src/lib/files/analyzeChange.js +14 -4
  272. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  273. package/packages/analyze/src/lib/files/analyzeEntity.js +7 -6
  274. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  275. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +44 -10
  276. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
  277. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
  278. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
  279. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +314 -52
  280. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  281. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +97 -2
  282. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
  283. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +88 -52
  284. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  285. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +26 -98
  286. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  287. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +141 -75
  288. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  289. package/packages/aws/src/lib/ecs/ecsDefineContainer.js +2 -2
  290. package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  291. package/packages/aws/src/lib/ecs/ecsTaskFactory.js +17 -61
  292. package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  293. package/packages/generate/index.js +3 -0
  294. package/packages/generate/index.js.map +1 -1
  295. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  296. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  297. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  298. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  299. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  300. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  301. package/packages/generate/src/lib/scenarioComponentForServer.js +89 -0
  302. package/packages/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  303. package/packages/github/src/lib/loadOrCreateCommit.js +10 -0
  304. package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -1
  305. package/packages/github/src/lib/syncPrimaryBranch.js +3 -0
  306. package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -1
  307. package/packages/process/index.js +3 -0
  308. package/packages/process/index.js.map +1 -0
  309. package/packages/process/src/GlobalProcessManager.js.map +1 -0
  310. package/{background/src/lib/process → packages/process/src}/ProcessManager.js +1 -1
  311. package/packages/process/src/ProcessManager.js.map +1 -0
  312. package/packages/process/src/index.js.map +1 -0
  313. package/packages/process/src/managedExecAsync.js.map +1 -0
  314. package/analyzer-template/process/INTEGRATION_COMPLETE.md +0 -333
  315. package/analyzer-template/process/INTEGRATION_EXAMPLE.md +0 -525
  316. package/analyzer-template/process/README.md +0 -507
  317. package/background/src/lib/process/GlobalProcessManager.js.map +0 -1
  318. package/background/src/lib/process/ProcessManager.js.map +0 -1
  319. package/background/src/lib/process/index.js.map +0 -1
  320. package/background/src/lib/process/managedExecAsync.js.map +0 -1
  321. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +0 -238
  322. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +0 -1
  323. package/codeyam-cli/scripts/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js +0 -7
  324. package/codeyam-cli/scripts/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js.map +0 -1
  325. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-CUxUNEEC.js +0 -15
  326. package/codeyam-cli/src/webserver/build/client/assets/_index-DHImXdXq.js +0 -11
  327. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-2mG6mjVb.js +0 -32
  328. package/codeyam-cli/src/webserver/build/client/assets/chunk-JMJ3UQ3L-BambyYE_.js +0 -51
  329. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DyB90fWk.js +0 -1
  330. package/codeyam-cli/src/webserver/build/client/assets/globals-C6vQASxy.css +0 -1
  331. package/codeyam-cli/src/webserver/build/client/assets/root-BxJUvKau.js +0 -56
  332. package/codeyam-cli/src/webserver/build/client/assets/simulations-CoNWGt0K.js +0 -1
  333. package/codeyam-cli/src/webserver/build/server/assets/server-build-BDlyhfrv.js +0 -175
  334. /package/analyzer-template/{process → packages/process/src}/GlobalProcessManager.ts +0 -0
  335. /package/analyzer-template/{process → packages/process/src}/ProcessManager.ts +0 -0
  336. /package/analyzer-template/{process → packages/process/src}/index.ts +0 -0
  337. /package/analyzer-template/{process → packages/process/src}/managedExecAsync.ts +0 -0
  338. /package/{background/src/lib/process → packages/process/src}/GlobalProcessManager.js +0 -0
  339. /package/{background/src/lib/process → packages/process/src}/index.js +0 -0
  340. /package/{background/src/lib/process → packages/process/src}/managedExecAsync.js +0 -0
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Converts null values to undefined (removes them) based on schema type constraints.
3
+ *
4
+ * When the LLM generates mock data, it uses `null` to represent "no value" because
5
+ * JSON doesn't support `undefined`. However, TypeScript types like `string | undefined`
6
+ * don't accept `null`.
7
+ *
8
+ * This function traverses data and schema together:
9
+ * - If schema type is "T | undefined" (but NOT "T | null"), convert null → undefined (delete key)
10
+ * - If schema type includes "null" (e.g., "T | null" or "T | null | undefined"), preserve null
11
+ * - If field not in schema, preserve as-is
12
+ *
13
+ * @param data The data object with potential null values
14
+ * @param schema The schema describing expected types
15
+ * @returns The data with null→undefined conversions applied (mutates original)
16
+ */
17
+ export default function convertNullToUndefinedBySchema(data, schema) {
18
+ // Handle null/undefined data
19
+ if (data === null || data === undefined) {
20
+ return data;
21
+ }
22
+ // Only process objects
23
+ if (typeof data !== 'object') {
24
+ return data;
25
+ }
26
+ // Handle arrays
27
+ if (Array.isArray(data)) {
28
+ // For arrays, the schema should be an array with one element describing the item type
29
+ const itemSchema = Array.isArray(schema) ? schema[0] : undefined;
30
+ for (let i = 0; i < data.length; i++) {
31
+ data[i] = convertNullToUndefinedBySchema(data[i], itemSchema);
32
+ }
33
+ return data;
34
+ }
35
+ // Handle objects
36
+ const dataObj = data;
37
+ const schemaObj = schema;
38
+ for (const key of Object.keys(dataObj)) {
39
+ const value = dataObj[key];
40
+ const fieldSchema = schemaObj?.[key];
41
+ if (value === null) {
42
+ // Check if schema allows null
43
+ if (shouldConvertNullToUndefined(fieldSchema)) {
44
+ // Delete the key (converts null to undefined)
45
+ delete dataObj[key];
46
+ }
47
+ // If schema allows null, preserve it
48
+ }
49
+ else if (typeof value === 'object' && value !== null) {
50
+ // Recursively process nested objects/arrays
51
+ convertNullToUndefinedBySchema(value, fieldSchema);
52
+ }
53
+ }
54
+ return data;
55
+ }
56
+ /**
57
+ * Determines if a null value should be converted to undefined based on schema type.
58
+ *
59
+ * @param fieldSchema The schema type string or object for the field
60
+ * @returns true if null should be converted to undefined, false if null should be preserved
61
+ */
62
+ function shouldConvertNullToUndefined(fieldSchema) {
63
+ // If no schema for this field, preserve null (be conservative)
64
+ if (fieldSchema === undefined || fieldSchema === null) {
65
+ return false;
66
+ }
67
+ // If schema is a string type definition, check if it allows null
68
+ if (typeof fieldSchema === 'string') {
69
+ // Schema types that include "null" should preserve null values
70
+ // e.g., "string | null", "number | null | undefined", "null"
71
+ const allowsNull = fieldSchema.includes('null');
72
+ const allowsUndefined = fieldSchema.includes('undefined');
73
+ // If type allows undefined but NOT null, convert null to undefined
74
+ // e.g., "string | undefined" → convert null to undefined
75
+ // e.g., "string | null" → preserve null
76
+ // e.g., "string | null | undefined" → preserve null
77
+ if (allowsUndefined && !allowsNull) {
78
+ return true;
79
+ }
80
+ return false;
81
+ }
82
+ // If schema is an object or array, it's a nested structure
83
+ // Don't convert the container itself, just recurse into it
84
+ return false;
85
+ }
86
+ //# sourceMappingURL=convertNullToUndefinedBySchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertNullToUndefinedBySchema.js","sourceRoot":"","sources":["../../../../../../../../packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,UAAU,8BAA8B,CACpD,IAAO,EACP,MAAe;IAEf,6BAA6B;IAC7B,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uBAAuB;IACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;IAChB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,sFAAsF;QACtF,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,CAAC,CAAC,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB;IACjB,MAAM,OAAO,GAAG,IAA+B,CAAC;IAChD,MAAM,SAAS,GAAG,MAA6C,CAAC;IAEhE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,WAAW,GAAG,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,8BAA8B;YAC9B,IAAI,4BAA4B,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC9C,8CAA8C;gBAC9C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;YACD,qCAAqC;QACvC,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACvD,4CAA4C;YAC5C,8BAA8B,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,4BAA4B,CAAC,WAAoB;IACxD,+DAA+D;IAC/D,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACtD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iEAAiE;IACjE,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,+DAA+D;QAC/D,6DAA6D;QAC7D,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,eAAe,GAAG,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE1D,mEAAmE;QACnE,yDAAyD;QACzD,wCAAwC;QACxC,oDAAoD;QACpD,IAAI,eAAe,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2DAA2D;IAC3D,2DAA2D;IAC3D,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,32 @@
1
+ export default function deepEqual(obj1, obj2) {
2
+ // Handle primitive types and null/undefined
3
+ if (obj1 === obj2)
4
+ return true;
5
+ if (obj1 == null || obj2 == null)
6
+ return false;
7
+ if (typeof obj1 !== 'object' || typeof obj2 !== 'object')
8
+ return false;
9
+ // Handle Date objects
10
+ if (obj1 instanceof Date && obj2 instanceof Date) {
11
+ return obj1.getTime() === obj2.getTime();
12
+ }
13
+ // Handle Array objects
14
+ if (Array.isArray(obj1) && Array.isArray(obj2)) {
15
+ if (obj1.length !== obj2.length)
16
+ return false;
17
+ return obj1.every((item, index) => deepEqual(item, obj2[index]));
18
+ }
19
+ // Handle regular objects
20
+ const keys1 = Object.keys(obj1);
21
+ const keys2 = Object.keys(obj2);
22
+ if (keys1.length !== keys2.length)
23
+ return false;
24
+ return keys1.every((key) => {
25
+ if (!Object.prototype.hasOwnProperty.call(obj2, key))
26
+ return false;
27
+ const obj1AsAny = obj1;
28
+ const obj2AsAny = obj2;
29
+ return deepEqual(obj1AsAny[key], obj2AsAny[key]);
30
+ });
31
+ }
32
+ //# sourceMappingURL=deepEqual.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepEqual.js","sourceRoot":"","sources":["../../../../../../packages/ai/src/lib/deepEqual.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,IAAa,EAAE,IAAa;IAC5D,4CAA4C;IAC5C,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAEvE,sBAAsB;IACtB,IAAI,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3C,CAAC;IAED,uBAAuB;IACvB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,yBAAyB;IACzB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAEhD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACzB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QACnE,MAAM,SAAS,GAAG,IAAW,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAW,CAAC;QAC9B,OAAO,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -53,24 +53,28 @@ export default function findMatchingAttribute(attributePath, attributesList, equ
53
53
  }
54
54
  else {
55
55
  const normalizedPath = normalizeKey(attributePath);
56
- const matchingAttribute = attributesList.find((attr) => normalizeKey(attr) === normalizedPath);
57
- // If no exact match find the attribute that matches the most characters starting from the beginning
58
- if (!matchingAttribute) {
59
- const options = attributesList;
60
- const normalizedPathCharacters = normalizedPath.split('');
61
- for (const attr of options) {
62
- const attrCharacters = normalizeKey(attr).split('');
63
- const matchLength = normalizedPathCharacters.findIndex((char, index) => char !== attrCharacters[index]);
64
- if (matchLength !== -1) {
65
- const matchedPrefix = normalizedPathCharacters.slice(0, matchLength);
66
- if (matchedPrefix.length > 0) {
67
- return attr;
68
- }
69
- }
70
- }
71
- }
56
+ // Filter out undefined values to prevent normalizeKey from crashing
57
+ // This can happen when key attributes have undefined internalPath
58
+ const validAttributes = attributesList.filter((attr) => attr !== undefined && attr !== null);
59
+ const matchingAttribute = validAttributes.find((attr) => normalizeKey(attr) === normalizedPath);
72
60
  if (matchingAttribute)
73
61
  return matchingAttribute;
62
+ // Fallback: LLM may return dataStructurePath format (e.g., "useLoaderData<typeof loader>().currentBranch")
63
+ // when we expect localVariable format (e.g., "currentBranch").
64
+ // Try matching suffix parts of the path against the attributes list.
65
+ const pathParts = splitOutsideParenthesesAndArrays(attributePath);
66
+ for (let i = 1; i < pathParts.length; i++) {
67
+ const suffixPath = joinParenthesesAndArrays(pathParts.slice(i));
68
+ if (validAttributes.includes(suffixPath)) {
69
+ return suffixPath;
70
+ }
71
+ // Also try normalized comparison for the suffix
72
+ const normalizedSuffix = normalizeKey(suffixPath);
73
+ const suffixMatch = validAttributes.find((attr) => normalizeKey(attr) === normalizedSuffix);
74
+ if (suffixMatch) {
75
+ return suffixMatch;
76
+ }
77
+ }
74
78
  return null;
75
79
  }
76
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"findMatchingAttribute.js","sourceRoot":"","sources":["../../../../../../packages/ai/src/lib/findMatchingAttribute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"findMatchingAttribute.js","sourceRoot":"","sources":["../../../../../../packages/ai/src/lib/findMatchingAttribute.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
1
  import { joinParenthesesAndArrays, splitOutsideParenthesesAndArrays, } from "./splitOutsideParentheses.js";
2
2
  import { gatherAttributesMap } from "./promptGenerators/gatherAttributesMap.js";
3
- export default function gatherRelevantDependentKeyAttributes(entity, mergedDataStructure, dependentAnalyses) {
3
+ export default function gatherRelevantDependentKeyAttributes(entity, mergedDataStructure, dependentAnalyses, debug = false) {
4
+ const log = (...args) => {
5
+ if (debug)
6
+ console.log('[gatherRelevantDependentKeyAttributes]', ...args);
7
+ };
4
8
  // console.info(
5
9
  // 'CODEYAM DEBUG: gatherRelevantDependentKeyAttributes inputs',
6
10
  // entity.name,
@@ -54,50 +58,18 @@ export default function gatherRelevantDependentKeyAttributes(entity, mergedDataS
54
58
  const dependentKeyAtttributes = dependentAnalysis?.metadata?.keyAttributes;
55
59
  if (!dependentKeyAtttributes || dependentKeyAtttributes.length === 0)
56
60
  return;
57
- const dependencySchema = dependencySchemas?.[path]?.[entityName];
58
- const signatureSchema = dependencySchema?.signatureSchema;
59
- if (!signatureSchema)
60
- return;
61
+ log(`Processing dependent entity: ${entityName} from ${path}`);
62
+ log(` Key attributes count: ${dependentKeyAtttributes.length}`);
63
+ log(` Key attribute paths: ${dependentKeyAtttributes.map((ka) => ka.internalPath).join(', ')}`);
61
64
  // Get sourceEquivalencies from the dependent analysis's mergedDataStructure,
62
65
  // not from dependencySchemas (which doesn't store them)
63
66
  const sourceEquivalencies = dependentAnalysis?.metadata?.mergedDataStructure?.sourceEquivalencies ??
64
67
  {};
65
- // Build a fallback mapping from parent's usageEquivalencies
66
- // This helps when the child's sourceEquivalencies don't have a mapping
67
- // For example, if parent passes `entity` to child's `signature[0]`,
68
- // usageEquivalencies might have: entity -> [{schemaPath: 'signature[0]', scopeNodeName: entityName}]
69
- const usageEquivalencies = mergedDataStructure?.usageEquivalencies ?? {};
70
- const signatureToParentPath = {};
71
- for (const parentPath in usageEquivalencies) {
72
- const usages = usageEquivalencies[parentPath];
73
- for (const usage of usages) {
74
- if (usage.scopeNodeName !== entityName)
75
- continue;
76
- // Extract signature path from schemaPath
77
- // Format can be:
78
- // 1. "functionName(args).signature[N]" or "functionName(args).signature[N].property" (real data)
79
- // 2. "signature[N]" or "signature[N].property" (simplified/test format)
80
- let signaturePath;
81
- const signatureIndex = usage.schemaPath.indexOf('.signature[');
82
- if (signatureIndex !== -1) {
83
- // Full format: extract "signature[N]" or "signature[N].property" after the dot
84
- signaturePath = usage.schemaPath.slice(signatureIndex + 1);
85
- }
86
- else if (usage.schemaPath.startsWith('signature[')) {
87
- // Simplified format: already starts with signature[
88
- signaturePath = usage.schemaPath;
89
- }
90
- else {
91
- continue;
92
- }
93
- // Map child's signature path to parent's path
94
- // e.g., 'signature[0]' -> 'entity'
95
- signatureToParentPath[signaturePath] = parentPath;
96
- }
97
- }
98
- // If sourceEquivalencies is empty but the child has mocked imports,
99
- // only propagate key attributes that come from mocked data sources
100
- // (not props that the parent passes to the child)
68
+ log(` sourceEquivalencies keys: ${Object.keys(sourceEquivalencies).join(', ')}`);
69
+ // FIRST: Check for mocked imports and process those key attributes.
70
+ // Mocked-source key attributes are ALWAYS controllable (we control the mock data)
71
+ // regardless of whether the parent passes data to the child via props.
72
+ // This must happen BEFORE the signatureSchema check.
101
73
  if (Object.keys(sourceEquivalencies).length === 0) {
102
74
  // Collect names of mocked imports
103
75
  const importedExports = dependentAnalysis.entity?.metadata?.importedExports ?? [];
@@ -138,16 +110,72 @@ export default function gatherRelevantDependentKeyAttributes(entity, mergedDataS
138
110
  // but signature[0].size is not (it's just a simple prop)
139
111
  (externalPath.match(/\./g) || []).length >= 2;
140
112
  if (comesFromMockedSource || comesFromArgument) {
113
+ // Compute internalPath if not already present
114
+ // For signature paths, strip the signature[N]. prefix
115
+ let internalPath = dependentKeyAttribute.internalPath;
116
+ if (!internalPath && externalPath.startsWith('signature[')) {
117
+ internalPath = externalPath.replace(/^signature\[\d+\]\./, '');
118
+ }
119
+ // If still no internalPath, use dataStructurePath or externalPath as fallback
120
+ if (!internalPath) {
121
+ internalPath = dataStructurePath || externalPath;
122
+ }
141
123
  relevantDependentKeyAttributes.push({
142
124
  ...dependentKeyAttribute,
143
125
  dependentEntityName: entityName,
144
126
  originalEntityName: entityName,
145
127
  filePath: path,
128
+ internalPath,
129
+ dataStructurePath: internalPath,
146
130
  });
147
131
  }
148
132
  }
149
133
  return;
150
134
  }
135
+ }
136
+ // SECOND: For signature-based key attributes, require that the parent has
137
+ // the child in its dependencySchemas. This ensures we only include key attributes
138
+ // that are controllable via props the parent passes to the child.
139
+ const dependencySchema = dependencySchemas?.[path]?.[entityName];
140
+ const signatureSchema = dependencySchema?.signatureSchema;
141
+ if (!signatureSchema)
142
+ return;
143
+ // Build a fallback mapping from parent's usageEquivalencies
144
+ // This helps when the child's sourceEquivalencies don't have a mapping
145
+ // For example, if parent passes `entity` to child's `signature[0]`,
146
+ // usageEquivalencies might have: entity -> [{schemaPath: 'signature[0]', scopeNodeName: entityName}]
147
+ const usageEquivalencies = mergedDataStructure?.usageEquivalencies ?? {};
148
+ const signatureToParentPath = {};
149
+ for (const parentPath in usageEquivalencies) {
150
+ const usages = usageEquivalencies[parentPath];
151
+ for (const usage of usages) {
152
+ if (usage.scopeNodeName !== entityName)
153
+ continue;
154
+ // Extract signature path from schemaPath
155
+ // Format can be:
156
+ // 1. "functionName(args).signature[N]" or "functionName(args).signature[N].property" (real data)
157
+ // 2. "signature[N]" or "signature[N].property" (simplified/test format)
158
+ let signaturePath;
159
+ const signatureIndex = usage.schemaPath.indexOf('.signature[');
160
+ if (signatureIndex !== -1) {
161
+ // Full format: extract "signature[N]" or "signature[N].property" after the dot
162
+ signaturePath = usage.schemaPath.slice(signatureIndex + 1);
163
+ }
164
+ else if (usage.schemaPath.startsWith('signature[')) {
165
+ // Simplified format: already starts with signature[
166
+ signaturePath = usage.schemaPath;
167
+ }
168
+ else {
169
+ continue;
170
+ }
171
+ // Map child's signature path to parent's path
172
+ // e.g., 'signature[0]' -> 'entity'
173
+ signatureToParentPath[signaturePath] = parentPath;
174
+ }
175
+ }
176
+ // Handle sourceEquivalencies empty case with no mocked imports
177
+ // Try usageEquivalencies fallback for direct argument usage
178
+ if (Object.keys(sourceEquivalencies).length === 0) {
151
179
  // No mocked imports, try usageEquivalencies fallback for direct argument usage
152
180
  if (Object.keys(signatureToParentPath).length > 0) {
153
181
  for (const dependentKeyAttribute of dependentKeyAtttributes) {
@@ -196,6 +224,9 @@ export default function gatherRelevantDependentKeyAttributes(entity, mergedDataS
196
224
  }
197
225
  for (const dependentKeyAttribute of dependentKeyAtttributes) {
198
226
  const dependentKeyAttributeExternalPathParts = splitOutsideParenthesesAndArrays(dependentKeyAttribute.externalPath);
227
+ log(` Processing key attribute: ${dependentKeyAttribute.internalPath}`);
228
+ log(` externalPath: ${dependentKeyAttribute.externalPath}`);
229
+ log(` externalPathParts: ${JSON.stringify(dependentKeyAttributeExternalPathParts)}`);
199
230
  let matchFound = false;
200
231
  // First, try to match using child's sourceEquivalencies
201
232
  for (let i = dependentKeyAttributeExternalPathParts.length; i > 0; i--) {
@@ -203,9 +234,89 @@ export default function gatherRelevantDependentKeyAttributes(entity, mergedDataS
203
234
  // Use the sourceEquivalencies from the child's analysis
204
235
  for (const sourceEquivalencyPath in sourceEquivalencies) {
205
236
  const sourceEquivalencyPathParts = splitOutsideParenthesesAndArrays(sourceEquivalencyPath);
237
+ // Check if this sourceEquivalency is for a callback (first part starts with '(')
238
+ // Callback sourceEquivalencies have format: "(param) => ...).signature[0]"
239
+ // These map callback parameters, NOT direct component props.
240
+ // We should NOT match direct prop paths like "signature[0].queueJobs[]"
241
+ // against callback parameter paths.
242
+ const isCallbackSourceEquivalency = sourceEquivalencyPathParts[0]?.startsWith('(');
206
243
  const relevantSourceEquivalencyPath = joinParenthesesAndArrays(sourceEquivalencyPathParts.slice(1));
207
244
  if (relevantSourceEquivalencyPath !== subExternalPath)
208
245
  continue;
246
+ // If this is a callback sourceEquivalency and we're matching against
247
+ // a simple signature path, skip it. The callback's "signature[0]" refers
248
+ // to the callback's parameter, not the component's props.
249
+ // We should only use callback sourceEquivalencies when the key attribute
250
+ // is actually about data that flows through that callback.
251
+ if (isCallbackSourceEquivalency &&
252
+ subExternalPath.startsWith('signature[')) {
253
+ // The callback's signature[0] maps to specific paths in the parent
254
+ // (e.g., currentlyExecuting.entities[]). Only match if the remaining
255
+ // path of the key attribute is a valid continuation of data that
256
+ // flows through the callback.
257
+ //
258
+ // For example, if callback maps to currentlyExecuting.entities[],
259
+ // then key attribute signature[0].entityType would be valid (entity.entityType)
260
+ // but signature[0].queueJobs[] would NOT be valid (queueJobs is not entity)
261
+ const mappedPaths = sourceEquivalencies[sourceEquivalencyPath];
262
+ const remainingPath = i < dependentKeyAttributeExternalPathParts.length
263
+ ? dependentKeyAttributeExternalPathParts.slice(i)
264
+ : [];
265
+ // If there's remaining path after the match, check if it makes sense
266
+ // for the callback's data flow. The mapped paths tell us where the
267
+ // callback parameter comes FROM - we should only include key attributes
268
+ // that are about properties OF that parameter, not unrelated props.
269
+ if (remainingPath.length > 0) {
270
+ // The remaining path should be a property of the callback's parameter.
271
+ // The mapped paths show where the parameter COMES FROM, ending with
272
+ // the array element (e.g., entities[]). Valid remaining paths would be
273
+ // properties of that element.
274
+ //
275
+ // For example:
276
+ // - Mapped paths: currentlyExecuting.entities[], queueJobs[].entities[]
277
+ // - These all end with entities[], so callback receives entity objects
278
+ // - Valid remaining: entityType, sha (properties of entity)
279
+ // - Invalid remaining: queueJobs[] (sibling prop, not entity property)
280
+ //
281
+ // Key insight: if the remaining path appears as a CONTAINER in any
282
+ // mapped path (before the final []), it's a sibling prop, not a
283
+ // property of the callback parameter.
284
+ const firstRemainingPart = remainingPath[0];
285
+ const firstRemainingWithoutBrackets = firstRemainingPart.replace(/\[\]$/, '');
286
+ // Check if this remaining path appears as a container in mapped paths
287
+ // e.g., "queueJobs" appears in "signature[0].queueJobs[].entities[]"
288
+ // This means queueJobs is a container that HOLDS entities, not a
289
+ // property OF an entity
290
+ const isContainerInMappedPaths = mappedPaths.some((mp) => {
291
+ const mpPath = mp.schemaPath || '';
292
+ // Check if the path contains this as a container segment
293
+ // e.g., ".queueJobs[]." or ".queueJobs." in the middle of the path
294
+ return (mpPath.includes(`.${firstRemainingWithoutBrackets}[].`) ||
295
+ mpPath.includes(`.${firstRemainingWithoutBrackets}.`));
296
+ });
297
+ if (isContainerInMappedPaths) {
298
+ log(` SKIP callback match: ${subExternalPath} -> ${sourceEquivalencyPath} (${firstRemainingPart} is a container in mapped paths, not a property of callback param)`);
299
+ continue;
300
+ }
301
+ // Also check: if the remaining path doesn't appear ANYWHERE in the
302
+ // mapped paths, it's likely a sibling prop that has nothing to do
303
+ // with the callback. For example, if mapped paths are all like
304
+ // "currentlyExecuting.entities[]" and the remaining is "currentRun",
305
+ // currentRun doesn't appear in any mapped path, so it's a sibling.
306
+ const remainingAppearsInMappedPaths = mappedPaths.some((mp) => {
307
+ const mpPath = mp.schemaPath || '';
308
+ // Check if remaining path or its base appears anywhere in mapped path
309
+ return (mpPath.includes(`.${firstRemainingWithoutBrackets}`) ||
310
+ mpPath.includes(`${firstRemainingWithoutBrackets}.`) ||
311
+ mpPath.includes(`${firstRemainingWithoutBrackets}[`));
312
+ });
313
+ if (!remainingAppearsInMappedPaths) {
314
+ log(` SKIP callback match: ${subExternalPath} -> ${sourceEquivalencyPath} (${firstRemainingPart} not found in any mapped path, likely a sibling prop)`);
315
+ continue;
316
+ }
317
+ }
318
+ }
319
+ log(` MATCH via sourceEquivalencies: ${subExternalPath} -> ${sourceEquivalencyPath}`);
209
320
  const sourcePath = sourceEquivalencies[sourceEquivalencyPath][0]?.schemaPath;
210
321
  if (!sourcePath)
211
322
  continue;
@@ -225,6 +336,15 @@ export default function gatherRelevantDependentKeyAttributes(entity, mergedDataS
225
336
  ]);
226
337
  }
227
338
  }
339
+ // Fallback: compute internalPath if not found in associationMap
340
+ // For signature paths, strip the signature[N]. prefix
341
+ if (!internalPath && externalPath.startsWith('signature[')) {
342
+ internalPath = externalPath.replace(/^signature\[\d+\]\./, '');
343
+ }
344
+ // If still no internalPath, use externalPath as fallback
345
+ if (!internalPath) {
346
+ internalPath = externalPath;
347
+ }
228
348
  const dependentEntityName = dependentKeyAttribute.dependentEntityName
229
349
  ? `${dependentKeyAttribute.dependentEntityName} (through ${entityName})`
230
350
  : entityName;
@@ -238,6 +358,7 @@ export default function gatherRelevantDependentKeyAttributes(entity, mergedDataS
238
358
  // Transform dataStructurePath to parent's path structure
239
359
  dataStructurePath: internalPath,
240
360
  });
361
+ log(` INCLUDED via sourceEquivalencies: ${dependentKeyAttribute.internalPath} -> ${internalPath}`);
241
362
  matchFound = true;
242
363
  break;
243
364
  }
@@ -285,14 +406,20 @@ export default function gatherRelevantDependentKeyAttributes(entity, mergedDataS
285
406
  externalPath,
286
407
  dataStructurePath: internalPath,
287
408
  });
409
+ log(` INCLUDED via usageEquivalencies: ${dependentKeyAttribute.internalPath} -> ${internalPath}`);
288
410
  matchFound = true;
289
411
  break;
290
412
  }
291
413
  }
292
414
  }
415
+ if (!matchFound) {
416
+ log(` NOT INCLUDED: ${dependentKeyAttribute.internalPath} - no match found`);
417
+ }
293
418
  }
294
419
  });
295
420
  });
421
+ log(`Result: ${relevantDependentKeyAttributes.length} key attributes gathered`);
422
+ log(` Paths: ${relevantDependentKeyAttributes.map((ka) => ka.internalPath).join(', ')}`);
296
423
  return relevantDependentKeyAttributes;
297
424
  }
298
425
  //# sourceMappingURL=gatherRelevantDependentKeyAttributes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gatherRelevantDependentKeyAttributes.js","sourceRoot":"","sources":["../../../../../../packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gatherRelevantDependentKeyAttributes.js","sourceRoot":"","sources":["../../../../../../packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts"],"names":[],"mappings":"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"}
@@ -100,8 +100,49 @@ export default async function generateChangesEntityKeyAttributes({ entity, exist
100
100
  const sortedUniqueKeyAttributes = keyAttributes
101
101
  .filter((keyAttribute, index, self) => self.findIndex((ka) => ka.internalPath === keyAttribute.internalPath) === index)
102
102
  .filter((keyAttribute) => attributesMap[keyAttribute.internalPath]);
103
+ // Helper to extract source locations from conditional usages for a given path
104
+ const getSourceLocationsForPath = (path) => {
105
+ const usages = conditionalUsages[path] || [];
106
+ const locations = [];
107
+ for (const usage of usages.slice(0, 5)) {
108
+ // Limit to 5 locations
109
+ if (usage.sourceLocation) {
110
+ locations.push({
111
+ entityName: entity.name,
112
+ filePath: entity.filePath,
113
+ lineNumber: usage.sourceLocation.lineNumber,
114
+ column: usage.sourceLocation.column,
115
+ codeSnippet: usage.sourceLocation.codeSnippet,
116
+ usageType: 'conditional',
117
+ description: `Used in ${usage.location} statement (${usage.conditionType} check)`,
118
+ });
119
+ }
120
+ }
121
+ return locations;
122
+ };
123
+ // Update sourceLocations for all key attributes based on current conditionalUsages
124
+ // This ensures new usages are picked up even for existing key attributes
125
+ const keyAttributesWithUpdatedSourceLocations = sortedUniqueKeyAttributes.map((keyAttribute) => {
126
+ // Skip sourceLocations update for dependent key attributes
127
+ // They should keep their original sourceLocations from the dependent entity's analysis
128
+ // Otherwise they'd get overwritten with the parent entity's conditional usages,
129
+ // causing them to incorrectly show up in "Key Attributes with New Usages"
130
+ if (keyAttribute.dependentEntityName) {
131
+ return keyAttribute;
132
+ }
133
+ const sourceLocations = getSourceLocationsForPath(keyAttribute.internalPath);
134
+ // If we found source locations from conditional usages, use them
135
+ // Otherwise keep the existing sourceLocations (e.g., from dependent entities)
136
+ if (sourceLocations.length > 0) {
137
+ return {
138
+ ...keyAttribute,
139
+ sourceLocations,
140
+ };
141
+ }
142
+ return keyAttribute;
143
+ });
103
144
  return {
104
- keyAttributes: sortedUniqueKeyAttributes,
145
+ keyAttributes: keyAttributesWithUpdatedSourceLocations,
105
146
  llmCall,
106
147
  };
107
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generateChangesEntityKeyAttributes.js","sourceRoot":"","sources":["../../../../../../packages/ai/src/lib/generateChangesEntityKeyAttributes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generateChangesEntityKeyAttributes.js","sourceRoot":"","sources":["../../../../../../packages/ai/src/lib/generateChangesEntityKeyAttributes.ts"],"names":[],"mappings":"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"}