@codeyam/codeyam-cli 0.1.0-staging.15d0f46 → 0.1.0-staging.1669d45

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 (625) 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 +9 -5
  5. package/analyzer-template/packages/ai/index.ts +5 -3
  6. package/analyzer-template/packages/ai/package.json +1 -1
  7. package/analyzer-template/packages/ai/src/lib/__mocks__/completionCall.ts +122 -0
  8. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +152 -6
  9. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +107 -1
  10. package/analyzer-template/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.ts +644 -0
  11. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +42 -0
  12. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.ts +18 -0
  13. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +38 -1
  14. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.ts +301 -1
  15. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +972 -106
  16. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +232 -0
  17. package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +29 -10
  18. package/analyzer-template/packages/ai/src/lib/completionCall.ts +18 -2
  19. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +1409 -138
  20. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +2 -1
  21. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +771 -0
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +233 -75
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +19 -1
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +39 -4
  25. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +23 -0
  26. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.ts +98 -0
  27. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +42 -2
  28. package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
  29. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +74 -7
  30. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +89 -112
  31. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +6 -0
  32. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +486 -86
  33. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +182 -104
  34. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +201 -0
  35. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
  36. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +1019 -0
  37. package/analyzer-template/packages/ai/src/lib/getConditionalUsagesFromCode.ts +143 -31
  38. package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +8 -2
  39. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +276 -3
  40. package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +33 -3
  41. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +7 -0
  42. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +1 -1
  43. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +32 -102
  44. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +71 -4
  45. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +14 -53
  46. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
  47. package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +28 -2
  48. package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +690 -0
  49. package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +5 -1
  50. package/analyzer-template/packages/ai/src/lib/validateExecutionFlowPaths.ts +531 -0
  51. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +102 -0
  52. package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +8 -1
  53. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +14 -0
  54. package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +1 -0
  55. package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
  56. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +458 -267
  57. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +18 -0
  58. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +3 -0
  59. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +31 -15
  60. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +11 -7
  61. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +11 -12
  62. package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
  63. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +196 -0
  64. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
  65. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +588 -52
  66. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.ts +1 -1
  67. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +28 -62
  68. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +299 -133
  69. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +156 -0
  70. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +78 -83
  71. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +4 -8
  72. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +384 -94
  73. package/analyzer-template/packages/aws/codebuild/index.ts +1 -0
  74. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +11 -1
  75. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -1
  76. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +29 -18
  77. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -1
  78. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +2 -2
  79. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -1
  80. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +2 -2
  81. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  82. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +8 -18
  83. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -1
  84. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +17 -61
  85. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  86. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts +15 -0
  87. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts.map +1 -0
  88. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js +31 -0
  89. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js.map +1 -0
  90. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -1
  91. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +8 -1
  92. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -1
  93. package/analyzer-template/packages/aws/package.json +2 -2
  94. package/analyzer-template/packages/aws/s3/index.ts +1 -0
  95. package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +43 -19
  96. package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +3 -3
  97. package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +17 -69
  98. package/analyzer-template/packages/aws/src/lib/s3/checkS3ObjectExists.ts +47 -0
  99. package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +8 -1
  100. package/analyzer-template/packages/database/src/lib/kysely/db.ts +4 -4
  101. package/analyzer-template/packages/database/src/lib/kysely/tableRelations.ts +2 -2
  102. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +36 -9
  103. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +7 -3
  104. package/analyzer-template/packages/generate/index.ts +3 -0
  105. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +17 -1
  106. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +193 -0
  107. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
  108. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +9 -4
  109. package/analyzer-template/packages/generate/src/lib/deepMerge.ts +26 -1
  110. package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
  111. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -2
  112. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +2 -2
  113. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelations.d.ts +2 -2
  114. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +1 -11
  115. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -1
  116. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +30 -7
  117. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -1
  118. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
  119. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  120. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts +1 -0
  121. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -1
  122. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +2 -6
  123. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  124. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  125. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
  126. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  127. package/analyzer-template/packages/github/dist/generate/index.d.ts +3 -0
  128. package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -1
  129. package/analyzer-template/packages/github/dist/generate/index.js +3 -0
  130. package/analyzer-template/packages/github/dist/generate/index.js.map +1 -1
  131. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
  132. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  133. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  134. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts +9 -0
  135. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -0
  136. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  137. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  138. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts +20 -0
  139. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts.map +1 -0
  140. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  141. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  142. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
  143. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +8 -4
  144. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  145. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.d.ts.map +1 -1
  146. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js +27 -1
  147. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js.map +1 -1
  148. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts +8 -0
  149. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts.map +1 -0
  150. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js +89 -0
  151. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  152. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -1
  153. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +10 -0
  154. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -1
  155. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -1
  156. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +3 -0
  157. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -1
  158. package/analyzer-template/packages/github/dist/types/index.d.ts +2 -2
  159. package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
  160. package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
  161. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +63 -13
  162. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
  163. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +2 -0
  164. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -1
  165. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +11 -6
  166. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  167. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +146 -0
  168. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  169. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +2 -0
  170. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  171. package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +14 -0
  172. package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +2 -0
  173. package/analyzer-template/packages/process/index.ts +2 -0
  174. package/analyzer-template/packages/process/package.json +12 -0
  175. package/analyzer-template/packages/process/tsconfig.json +8 -0
  176. package/analyzer-template/packages/types/index.ts +4 -0
  177. package/analyzer-template/packages/types/src/types/Analysis.ts +79 -13
  178. package/analyzer-template/packages/types/src/types/Entity.ts +2 -0
  179. package/analyzer-template/packages/types/src/types/Scenario.ts +11 -10
  180. package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +161 -0
  181. package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
  182. package/analyzer-template/packages/utils/dist/types/index.d.ts +2 -2
  183. package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
  184. package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
  185. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +63 -13
  186. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
  187. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +2 -0
  188. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -1
  189. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +11 -6
  190. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  191. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +146 -0
  192. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  193. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +2 -0
  194. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  195. package/analyzer-template/playwright/capture.ts +37 -18
  196. package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
  197. package/analyzer-template/playwright/takeElementScreenshot.ts +26 -11
  198. package/analyzer-template/playwright/waitForServer.ts +21 -6
  199. package/analyzer-template/project/analyzeBaselineCommit.ts +4 -0
  200. package/analyzer-template/project/analyzeBranchCommit.ts +4 -0
  201. package/analyzer-template/project/analyzeFileEntities.ts +4 -0
  202. package/analyzer-template/project/analyzeRegularCommit.ts +4 -0
  203. package/analyzer-template/project/constructMockCode.ts +868 -132
  204. package/analyzer-template/project/controller/startController.ts +16 -1
  205. package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
  206. package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
  207. package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +3 -6
  208. package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +49 -33
  209. package/analyzer-template/project/orchestrateCapture.ts +10 -3
  210. package/analyzer-template/project/reconcileMockDataKeys.ts +102 -2
  211. package/analyzer-template/project/runAnalysis.ts +7 -0
  212. package/analyzer-template/project/serverOnlyModules.ts +127 -2
  213. package/analyzer-template/project/start.ts +26 -4
  214. package/analyzer-template/project/startScenarioCapture.ts +72 -40
  215. package/analyzer-template/project/writeMockDataTsx.ts +118 -55
  216. package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
  217. package/analyzer-template/project/writeScenarioComponents.ts +263 -92
  218. package/analyzer-template/project/writeScenarioFiles.ts +26 -0
  219. package/analyzer-template/project/writeSimpleRoot.ts +13 -15
  220. package/analyzer-template/scripts/comboWorkerLoop.cjs +1 -0
  221. package/analyzer-template/scripts/defaultCmd.sh +9 -0
  222. package/analyzer-template/tsconfig.json +2 -1
  223. package/background/src/lib/local/createLocalAnalyzer.js +1 -29
  224. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  225. package/background/src/lib/local/execAsync.js +1 -1
  226. package/background/src/lib/local/execAsync.js.map +1 -1
  227. package/background/src/lib/virtualized/common/execAsync.js +1 -1
  228. package/background/src/lib/virtualized/common/execAsync.js.map +1 -1
  229. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +2 -1
  230. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
  231. package/background/src/lib/virtualized/project/analyzeBranchCommit.js +2 -1
  232. package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -1
  233. package/background/src/lib/virtualized/project/analyzeFileEntities.js +2 -1
  234. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  235. package/background/src/lib/virtualized/project/analyzeRegularCommit.js +2 -1
  236. package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
  237. package/background/src/lib/virtualized/project/constructMockCode.js +799 -121
  238. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  239. package/background/src/lib/virtualized/project/controller/startController.js +11 -1
  240. package/background/src/lib/virtualized/project/controller/startController.js.map +1 -1
  241. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +6 -3
  242. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -1
  243. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +7 -7
  244. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -1
  245. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +3 -2
  246. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
  247. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +42 -28
  248. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
  249. package/background/src/lib/virtualized/project/orchestrateCapture.js +7 -4
  250. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  251. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +87 -2
  252. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  253. package/background/src/lib/virtualized/project/runAnalysis.js +6 -0
  254. package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
  255. package/background/src/lib/virtualized/project/serverOnlyModules.js +106 -3
  256. package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -1
  257. package/background/src/lib/virtualized/project/start.js +21 -4
  258. package/background/src/lib/virtualized/project/start.js.map +1 -1
  259. package/background/src/lib/virtualized/project/startScenarioCapture.js +56 -30
  260. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  261. package/background/src/lib/virtualized/project/writeMockDataTsx.js +110 -48
  262. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  263. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js +15 -0
  264. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js.map +1 -0
  265. package/background/src/lib/virtualized/project/writeScenarioComponents.js +211 -75
  266. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  267. package/background/src/lib/virtualized/project/writeScenarioFiles.js +19 -0
  268. package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -1
  269. package/background/src/lib/virtualized/project/writeSimpleRoot.js +13 -13
  270. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  271. package/codeyam-cli/src/cli.js +5 -1
  272. package/codeyam-cli/src/cli.js.map +1 -1
  273. package/codeyam-cli/src/commands/analyze.js +1 -1
  274. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  275. package/codeyam-cli/src/commands/baseline.js +174 -0
  276. package/codeyam-cli/src/commands/baseline.js.map +1 -0
  277. package/codeyam-cli/src/commands/debug.js +28 -18
  278. package/codeyam-cli/src/commands/debug.js.map +1 -1
  279. package/codeyam-cli/src/commands/default.js +0 -15
  280. package/codeyam-cli/src/commands/default.js.map +1 -1
  281. package/codeyam-cli/src/commands/recapture.js +44 -23
  282. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  283. package/codeyam-cli/src/commands/report.js +72 -24
  284. package/codeyam-cli/src/commands/report.js.map +1 -1
  285. package/codeyam-cli/src/commands/start.js +8 -12
  286. package/codeyam-cli/src/commands/start.js.map +1 -1
  287. package/codeyam-cli/src/commands/status.js +23 -1
  288. package/codeyam-cli/src/commands/status.js.map +1 -1
  289. package/codeyam-cli/src/commands/test-startup.js +1 -1
  290. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  291. package/codeyam-cli/src/commands/wipe.js +108 -0
  292. package/codeyam-cli/src/commands/wipe.js.map +1 -0
  293. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
  294. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
  295. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +27 -27
  296. package/codeyam-cli/src/utils/analysisRunner.js +8 -13
  297. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  298. package/codeyam-cli/src/utils/backgroundServer.js +12 -2
  299. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  300. package/codeyam-cli/src/utils/database.js +91 -5
  301. package/codeyam-cli/src/utils/database.js.map +1 -1
  302. package/codeyam-cli/src/utils/generateReport.js +253 -106
  303. package/codeyam-cli/src/utils/generateReport.js.map +1 -1
  304. package/codeyam-cli/src/utils/git.js +79 -0
  305. package/codeyam-cli/src/utils/git.js.map +1 -0
  306. package/codeyam-cli/src/utils/install-skills.js +11 -11
  307. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  308. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +38 -0
  309. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
  310. package/codeyam-cli/src/utils/queue/job.js +239 -16
  311. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  312. package/codeyam-cli/src/utils/queue/manager.js +19 -7
  313. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  314. package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
  315. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  316. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +5 -5
  317. package/codeyam-cli/src/utils/versionInfo.js +25 -19
  318. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  319. package/codeyam-cli/src/utils/wipe.js +128 -0
  320. package/codeyam-cli/src/utils/wipe.js.map +1 -0
  321. package/codeyam-cli/src/webserver/app/lib/database.js +96 -0
  322. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  323. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  324. package/codeyam-cli/src/webserver/backgroundServer.js +2 -5
  325. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  326. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-vauWK972.js +1 -0
  327. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-DKdsUF7Y.js → EntityTypeBadge-COi5OvsN.js} +1 -1
  328. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BwdQv49w.js +41 -0
  329. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-CEleMv_j.js +34 -0
  330. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-D68KarMg.js +25 -0
  331. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-L75Wvqgw.js +3 -0
  332. package/codeyam-cli/src/webserver/build/client/assets/LoadingDots-C53WM8qn.js +6 -0
  333. package/codeyam-cli/src/webserver/build/client/assets/LogViewer-CrNkmy4i.js +3 -0
  334. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-DzJRkCkr.js +11 -0
  335. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-CQifa1n-.js +1 -0
  336. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-CyaBFX7l.js +20 -0
  337. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-CWjSsLqY.js → TruncatedFilePath-D36O1rzU.js} +1 -1
  338. package/codeyam-cli/src/webserver/build/client/assets/_index-Be83mo_j.js +11 -0
  339. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-BN6wu6Y-.js +37 -0
  340. package/codeyam-cli/src/webserver/build/client/assets/chevron-down-DgTPh8H-.js +6 -0
  341. package/codeyam-cli/src/webserver/build/client/assets/chunk-EPOLDU6W-DdQKK6on.js +51 -0
  342. package/codeyam-cli/src/webserver/build/client/assets/circle-check-Dmr2bb1R.js +6 -0
  343. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-Do4ZLUYa.js +21 -0
  344. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-C1gnJVOL.svg → cy-logo-cli-CCKUIm0S.svg} +2 -2
  345. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +1 -0
  346. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-Bn6aCAy_.js +1 -0
  347. package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-CbdFyxZh.js +23 -0
  348. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-B4iCfs5M.js +6 -0
  349. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-wDWZZO1W.js +6 -0
  350. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-BMbl7MeQ.js +5 -0
  351. package/codeyam-cli/src/webserver/build/client/assets/entry.client-5wRKRIH9.js +29 -0
  352. package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
  353. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-DD3SDH7t.js +1 -0
  354. package/codeyam-cli/src/webserver/build/client/assets/files-DKyMFI90.js +1 -0
  355. package/codeyam-cli/src/webserver/build/client/assets/git-zXjT7J0G.js +15 -0
  356. package/codeyam-cli/src/webserver/build/client/assets/globals-DTTQ3gY7.css +1 -0
  357. package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-fmIEn3Bc.js +9 -0
  358. package/codeyam-cli/src/webserver/build/client/assets/index-DLbXwndH.js +9 -0
  359. package/codeyam-cli/src/webserver/build/client/assets/index-gPZ-lad1.js +3 -0
  360. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-BsPXJ81F.js +6 -0
  361. package/codeyam-cli/src/webserver/build/client/assets/manifest-22590fcf.js +1 -0
  362. package/codeyam-cli/src/webserver/build/client/assets/preload-helper-ckwbz45p.js +1 -0
  363. package/codeyam-cli/src/webserver/build/client/assets/root-BsAarjAM.js +57 -0
  364. package/codeyam-cli/src/webserver/build/client/assets/scenarioStatus-B_8jpV3e.js +1 -0
  365. package/codeyam-cli/src/webserver/build/client/assets/search-P2FKIUql.js +6 -0
  366. package/codeyam-cli/src/webserver/build/client/assets/settings-B2eDuBj8.js +1 -0
  367. package/codeyam-cli/src/webserver/build/client/assets/simulations-L18M6-kN.js +1 -0
  368. package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-BDz7kbVA.js +6 -0
  369. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-29dDmbH8.js +1 -0
  370. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-CmrTPlIB.js → useLastLogLine-BUm0UVJm.js} +1 -1
  371. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-CkIOKTrZ.js +1 -0
  372. package/codeyam-cli/src/webserver/build/client/assets/{useToast-C1ig_BmP.js → useToast-KKw5kTn-.js} +1 -1
  373. package/codeyam-cli/src/webserver/build/server/assets/index-BND5I5fv.js +1 -0
  374. package/codeyam-cli/src/webserver/build/server/assets/server-build-CFXnd7MG.js +228 -0
  375. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  376. package/codeyam-cli/src/webserver/build-info.json +5 -5
  377. package/codeyam-cli/src/webserver/devServer.js +1 -3
  378. package/codeyam-cli/src/webserver/devServer.js.map +1 -1
  379. package/codeyam-cli/src/webserver/server.js +35 -25
  380. package/codeyam-cli/src/webserver/server.js.map +1 -1
  381. package/codeyam-cli/templates/{codeyam-debug-skill.md → codeyam:debug.md} +1 -1
  382. package/codeyam-cli/templates/codeyam:diagnose.md +625 -0
  383. package/codeyam-cli/templates/{codeyam-setup-skill.md → codeyam:setup.md} +139 -4
  384. package/codeyam-cli/templates/{codeyam-sim-skill.md → codeyam:sim.md} +1 -1
  385. package/codeyam-cli/templates/{codeyam-test-skill.md → codeyam:test.md} +1 -1
  386. package/codeyam-cli/templates/{codeyam-verify-skill.md → codeyam:verify.md} +1 -1
  387. package/package.json +8 -8
  388. package/packages/ai/index.js +2 -4
  389. package/packages/ai/index.js.map +1 -1
  390. package/packages/ai/src/lib/analyzeScope.js +107 -0
  391. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  392. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +76 -1
  393. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  394. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
  395. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
  396. package/packages/ai/src/lib/astScopes/methodSemantics.js +29 -0
  397. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  398. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +8 -0
  399. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -1
  400. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +23 -0
  401. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
  402. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +239 -1
  403. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
  404. package/packages/ai/src/lib/astScopes/processExpression.js +728 -87
  405. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  406. package/packages/ai/src/lib/checkAllAttributes.js +24 -9
  407. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  408. package/packages/ai/src/lib/completionCall.js +17 -1
  409. package/packages/ai/src/lib/completionCall.js.map +1 -1
  410. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1126 -82
  411. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  412. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +2 -1
  413. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  414. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +482 -0
  415. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -0
  416. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +173 -55
  417. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  418. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +16 -1
  419. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  420. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +35 -2
  421. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  422. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +20 -0
  423. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  424. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js +86 -0
  425. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js.map +1 -0
  426. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +34 -3
  427. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  428. package/packages/ai/src/lib/deepEqual.js +32 -0
  429. package/packages/ai/src/lib/deepEqual.js.map +1 -0
  430. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +62 -5
  431. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  432. package/packages/ai/src/lib/generateChangesEntityScenarios.js +81 -90
  433. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  434. package/packages/ai/src/lib/generateEntityDataStructure.js +5 -0
  435. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  436. package/packages/ai/src/lib/generateEntityScenarioData.js +398 -81
  437. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  438. package/packages/ai/src/lib/generateEntityScenarios.js +168 -82
  439. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  440. package/packages/ai/src/lib/generateExecutionFlows.js +123 -0
  441. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
  442. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
  443. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
  444. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +742 -0
  445. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
  446. package/packages/ai/src/lib/getConditionalUsagesFromCode.js +84 -14
  447. package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -1
  448. package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -1
  449. package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
  450. package/packages/ai/src/lib/isolateScopes.js +231 -4
  451. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  452. package/packages/ai/src/lib/mergeStatements.js +26 -3
  453. package/packages/ai/src/lib/mergeStatements.js.map +1 -1
  454. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +6 -0
  455. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  456. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +1 -1
  457. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  458. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +21 -64
  459. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  460. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +58 -4
  461. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  462. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +10 -34
  463. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  464. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
  465. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
  466. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +16 -3
  467. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
  468. package/packages/ai/src/lib/resolvePathToControllable.js +563 -0
  469. package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
  470. package/packages/ai/src/lib/splitOutsideParentheses.js +3 -1
  471. package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -1
  472. package/packages/ai/src/lib/worker/SerializableDataStructure.js +22 -0
  473. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  474. package/packages/ai/src/lib/worker/analyzeScopeWorker.js +4 -0
  475. package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
  476. package/packages/analyze/src/lib/FileAnalyzer.js +15 -0
  477. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  478. package/packages/analyze/src/lib/asts/nodes/index.js +1 -0
  479. package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
  480. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
  481. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
  482. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +214 -50
  483. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  484. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +10 -0
  485. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  486. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +2 -0
  487. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  488. package/packages/analyze/src/lib/files/analyzeChange.js +21 -11
  489. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  490. package/packages/analyze/src/lib/files/analyzeEntity.js +9 -8
  491. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  492. package/packages/analyze/src/lib/files/analyzeInitial.js +9 -10
  493. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  494. package/packages/analyze/src/lib/files/enums/steps.js +1 -1
  495. package/packages/analyze/src/lib/files/enums/steps.js.map +1 -1
  496. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +159 -0
  497. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -0
  498. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
  499. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
  500. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +458 -48
  501. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  502. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js +1 -1
  503. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js.map +1 -1
  504. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +29 -34
  505. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
  506. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +235 -81
  507. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  508. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +96 -0
  509. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
  510. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +56 -69
  511. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  512. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +4 -8
  513. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  514. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +307 -89
  515. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  516. package/packages/aws/src/lib/ecs/ecsDefineContainer.js +2 -2
  517. package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  518. package/packages/aws/src/lib/ecs/ecsTaskFactory.js +17 -61
  519. package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  520. package/packages/database/src/lib/kysely/db.js +2 -2
  521. package/packages/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
  522. package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  523. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
  524. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  525. package/packages/generate/index.js +3 -0
  526. package/packages/generate/index.js.map +1 -1
  527. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  528. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  529. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  530. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  531. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  532. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  533. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +8 -4
  534. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  535. package/packages/generate/src/lib/deepMerge.js +27 -1
  536. package/packages/generate/src/lib/deepMerge.js.map +1 -1
  537. package/packages/generate/src/lib/scenarioComponentForServer.js +89 -0
  538. package/packages/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  539. package/packages/github/src/lib/loadOrCreateCommit.js +10 -0
  540. package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -1
  541. package/packages/github/src/lib/syncPrimaryBranch.js +3 -0
  542. package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -1
  543. package/packages/process/index.js +3 -0
  544. package/packages/process/index.js.map +1 -0
  545. package/packages/process/src/GlobalProcessManager.js.map +1 -0
  546. package/{background/src/lib/process → packages/process/src}/ProcessManager.js +1 -1
  547. package/packages/process/src/ProcessManager.js.map +1 -0
  548. package/packages/process/src/index.js.map +1 -0
  549. package/packages/process/src/managedExecAsync.js.map +1 -0
  550. package/packages/types/index.js.map +1 -1
  551. package/scripts/finalize-analyzer.cjs +3 -1
  552. package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +0 -102
  553. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +0 -197
  554. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +0 -271
  555. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +0 -294
  556. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +0 -67
  557. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +0 -115
  558. package/analyzer-template/process/INTEGRATION_COMPLETE.md +0 -333
  559. package/analyzer-template/process/INTEGRATION_EXAMPLE.md +0 -525
  560. package/analyzer-template/process/README.md +0 -507
  561. package/background/src/lib/process/GlobalProcessManager.js.map +0 -1
  562. package/background/src/lib/process/ProcessManager.js.map +0 -1
  563. package/background/src/lib/process/index.js.map +0 -1
  564. package/background/src/lib/process/managedExecAsync.js.map +0 -1
  565. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +0 -238
  566. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +0 -1
  567. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-D0VW1-W7.js +0 -1
  568. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BAk4S4pI.js +0 -1
  569. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-Y756iZxZ.js +0 -25
  570. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-zzrrjW1p.js +0 -3
  571. package/codeyam-cli/src/webserver/build/client/assets/LogViewer-QMn7bJg6.js +0 -3
  572. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-DmP5mRxX.js +0 -1
  573. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-BXwvsbLw.js +0 -1
  574. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-DAmUX_1y.js +0 -5
  575. package/codeyam-cli/src/webserver/build/client/assets/_index-Df-nk4J5.js +0 -1
  576. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-_ZUyFdie.js +0 -7
  577. package/codeyam-cli/src/webserver/build/client/assets/chevron-down-Eoh0PhcW.js +0 -1
  578. package/codeyam-cli/src/webserver/build/client/assets/chunk-WWGJGFF6-CZgPLy5i.js +0 -26
  579. package/codeyam-cli/src/webserver/build/client/assets/circle-check-DI-p9ZLZ.js +0 -1
  580. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-DvyV2x6y.js +0 -1
  581. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DURu2qlF.js +0 -1
  582. package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-DDobn9Xh.js +0 -16
  583. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-CGdWnLD_.js +0 -1
  584. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-DgMmzrKs.js +0 -5
  585. package/codeyam-cli/src/webserver/build/client/assets/entry.client-DEVXuhkn.js +0 -13
  586. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-WPRQyc68.js +0 -1
  587. package/codeyam-cli/src/webserver/build/client/assets/files-B9u3lJer.js +0 -1
  588. package/codeyam-cli/src/webserver/build/client/assets/git-YGnKIuHU.js +0 -11
  589. package/codeyam-cli/src/webserver/build/client/assets/globals-28lrWTTo.css +0 -1
  590. package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-XQCGvadH.js +0 -5
  591. package/codeyam-cli/src/webserver/build/client/assets/index-CJ0uPJjV.js +0 -1
  592. package/codeyam-cli/src/webserver/build/client/assets/index-CfqeA2XG.js +0 -3
  593. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-DIjSvh6B.js +0 -1
  594. package/codeyam-cli/src/webserver/build/client/assets/manifest-8125c15c.js +0 -1
  595. package/codeyam-cli/src/webserver/build/client/assets/preload-helper-BXl3LOEh.js +0 -1
  596. package/codeyam-cli/src/webserver/build/client/assets/root-C-g286WP.js +0 -16
  597. package/codeyam-cli/src/webserver/build/client/assets/search-xBKWfOxd.js +0 -1
  598. package/codeyam-cli/src/webserver/build/client/assets/settings-DVY_wGOx.js +0 -1
  599. package/codeyam-cli/src/webserver/build/client/assets/simulations-Be1pJo5A.js +0 -1
  600. package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-CR-FkSvx.js +0 -1
  601. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DABetnSj.js +0 -1
  602. package/codeyam-cli/src/webserver/build/server/assets/index-DcR7DH9q.js +0 -1
  603. package/codeyam-cli/src/webserver/build/server/assets/server-build-BDBrfp7e.js +0 -175
  604. package/codeyam-cli/templates/debug-codeyam.md +0 -527
  605. package/packages/ai/src/lib/findMatchingAttribute.js +0 -77
  606. package/packages/ai/src/lib/findMatchingAttribute.js.map +0 -1
  607. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +0 -136
  608. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +0 -1
  609. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +0 -220
  610. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +0 -1
  611. package/packages/ai/src/lib/generateEntityKeyAttributes.js +0 -241
  612. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +0 -1
  613. package/packages/ai/src/lib/isFrontend.js +0 -5
  614. package/packages/ai/src/lib/isFrontend.js.map +0 -1
  615. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +0 -40
  616. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +0 -1
  617. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +0 -72
  618. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +0 -1
  619. /package/analyzer-template/{process → packages/process/src}/GlobalProcessManager.ts +0 -0
  620. /package/analyzer-template/{process → packages/process/src}/ProcessManager.ts +0 -0
  621. /package/analyzer-template/{process → packages/process/src}/index.ts +0 -0
  622. /package/analyzer-template/{process → packages/process/src}/managedExecAsync.ts +0 -0
  623. /package/{background/src/lib/process → packages/process/src}/GlobalProcessManager.js +0 -0
  624. /package/{background/src/lib/process → packages/process/src}/index.js +0 -0
  625. /package/{background/src/lib/process → packages/process/src}/managedExecAsync.js +0 -0
@@ -1,19 +1,39 @@
1
1
  import completionCall from "./completionCall.js";
2
2
  import { saveLlmCall } from "../../../../packages/aws/dynamodb/index.js";
3
3
  import generateEntityScenariosGenerator from "./promptGenerators/generateEntityScenariosGenerator.js";
4
- // import findMatchingAttribute from "./findMatchingAttribute.js";
5
4
  import { awsLog } from "../../../../packages/utils/index.js";
6
5
  import { sanitizePlaywrightInstructions } from "./validatePlaywrightInstructions.js";
7
6
  import { DEFAULT_LARGER_MODEL, parseJsonSafe } from "../../../../packages/ai/index.js";
8
7
  const DEFAULT_SCENARIO_NAME = 'Default Scenario';
9
- export default async function generateEntityScenarios({ entity, keyAttributes, analysis, error, model, }) {
8
+ export default async function generateEntityScenarios({ entity, executionFlows, analysis, error, model, }) {
10
9
  awsLog(`CodeYam: Generating entity ${error ? 'error ' : ''}scenarios`, {
11
10
  filePath: entity.filePath,
12
11
  entityName: entity.name,
13
12
  });
13
+ // If no execution flows are available (and not generating error scenarios),
14
+ // return only the Default Scenario without calling LLM
15
+ if (!error && (!executionFlows || executionFlows.length === 0)) {
16
+ console.log(`CodeYam: No execution flows available for ${entity.filePath} ${entity.name}, creating Default Scenario only`);
17
+ const defaultScenario = {
18
+ projectId: entity.projectId,
19
+ analysisId: analysis.id,
20
+ name: DEFAULT_SCENARIO_NAME,
21
+ description: 'Default component rendering with standard data',
22
+ metadata: {
23
+ testName: 'it("renders the component with default data")',
24
+ error: false,
25
+ coveredFlows: [],
26
+ playwrightInstructions: [],
27
+ },
28
+ };
29
+ return {
30
+ scenarios: [defaultScenario],
31
+ llmCall: null,
32
+ };
33
+ }
14
34
  const prompt = generateEntityScenariosGenerator({
15
35
  entity,
16
- keyAttributes,
36
+ executionFlows,
17
37
  error,
18
38
  });
19
39
  // Get context and scenario count from environment
@@ -39,13 +59,13 @@ export default async function generateEntityScenarios({ entity, keyAttributes, a
39
59
  filePath: entity.filePath,
40
60
  code: entity.code,
41
61
  },
42
- keyAttributes,
62
+ executionFlows,
43
63
  analysis: {
44
64
  id: analysis.id,
45
65
  metadata: {
46
66
  isolatedDataStructure: {
47
67
  equivalentSignatureVariables: entity.metadata.isolatedDataStructure
48
- .equivalentSignatureVariables,
68
+ ?.equivalentSignatureVariables,
49
69
  },
50
70
  },
51
71
  },
@@ -84,23 +104,7 @@ export default async function generateEntityScenarios({ entity, keyAttributes, a
84
104
  likelihoodDescription: scenarioInfo.likelihoodDescription,
85
105
  severity: scenarioInfo.severity,
86
106
  severityDescription: scenarioInfo.severityDescription,
87
- dataMapping: scenarioInfo.dataMapping,
88
- keyAttributeInstructions: scenarioInfo.keyAttributeInstructions,
89
- // Object.keys(
90
- // scenarioInfo.keyAttributeInstructions,
91
- // ).reduce((acc, key) => {
92
- // const attributesList = keyAttributes.map(
93
- // (attr) => attr.internalPath,
94
- // );
95
- // const matchingKey = findMatchingAttribute(
96
- // key,
97
- // attributesList,
98
- // entity.metadata.isolatedDataStructure
99
- // .equivalentSignatureVariables,
100
- // );
101
- // acc[matchingKey] = scenarioInfo.keyAttributeInstructions[key];
102
- // return acc;
103
- // }, {}),
107
+ coveredFlows: scenarioInfo.coveredFlows || [],
104
108
  playwrightInstructions: sanitizePlaywrightInstructions(scenarioInfo.playwrightInstructions || [], entity.name, scenarioInfo.name),
105
109
  },
106
110
  }));
@@ -112,7 +116,7 @@ export default async function generateEntityScenarios({ entity, keyAttributes, a
112
116
  function generateSystemMessage(context, scenarioCount) {
113
117
  const scenarioCountText = scenarioCount
114
118
  ? `Generate exactly ${scenarioCount} scenario${scenarioCount > 1 ? 's' : ''}.`
115
- : 'Generate 1-4 scenarios.';
119
+ : 'Generate 3-6 scenarios MAXIMUM. Do NOT exceed 6 scenarios.';
116
120
  const contextSection = context
117
121
  ? `## Business Context
118
122
  ${context}
@@ -121,35 +125,136 @@ Focus scenarios on demonstrating this specific behavior change.
121
125
 
122
126
  `
123
127
  : '';
124
- return `You are a test scenario designer. Generate data scenarios that demonstrate a function's behavior.
128
+ return `You are a test scenario designer. Generate data scenarios that demonstrate a function's behavior by covering its execution flows.
125
129
 
126
130
  ${contextSection}${scenarioCountText}
127
131
 
128
- ## Default Scenario Rules
129
- The FIRST scenario MUST be named exactly "${DEFAULT_SCENARIO_NAME}" (case-sensitive).
130
- - Fill ALL key attributes using values from their \`validValueOptions\` list
131
- - If "children" is an argument, populate it (otherwise output may be blank)
132
- - Ignore error-related attributes (set to null)
133
- - NEVER include \`playwrightInstructions\` - we need a screenshot BEFORE any user interaction
134
- - Do NOT add playwrightInstructions even if the component has forms/buttons - default shows initial state only
135
-
136
- ## Other Scenarios
137
- - Each produces DISTINCT output (visual: different screenshot; backend: different return/side-effect)
138
- - Only specify attributes that DIFFER from default
139
- - May include \`playwrightInstructions\` for user interactions (clicks, form fills)
140
-
141
- ## keyAttributeInstructions Format
142
- Use \`dataStructurePath\` as key, include both variable name and instruction:
132
+ ## Your Primary Goal: Cover ALL Execution Flows EFFICIENTLY
133
+
134
+ You are given \`executionFlows\` - all the distinct outcomes/behaviors this component can produce. Each flow has:
135
+ - \`id\`: Unique identifier
136
+ - \`name\`: Human-readable name (e.g., "Modal visible", "Loading state")
137
+ - \`description\`: What the user sees or what behavior occurs
138
+ - \`requiredValues\`: Attribute values needed to produce this outcome
139
+ - \`impact\`: Visual/behavioral importance ("high", "medium", "low")
140
+ - \`blocksOtherFlows\`: If true, this outcome hides other content (modals, overlays)
141
+ - \`isError\`: If true, this represents an error/exception scenario
142
+ - \`exclusiveGroup\`: If set, flows with the same group are MUTUALLY EXCLUSIVE (only one can be active)
143
+
144
+ **Your job**: Create the MINIMUM number of scenarios that cover ALL execution flows.
145
+
146
+ ## CRITICAL: Understanding Exclusive Groups
147
+
148
+ Flows with the same \`exclusiveGroup\` are MUTUALLY EXCLUSIVE - only ONE can be active at a time.
149
+
150
+ **Example exclusive groups:**
151
+ - \`"status-badge"\`: loading, success, error, pending - only ONE badge shows
152
+ - \`"active-tab"\`: users, settings, profile - only ONE tab is visible
153
+ - \`"modal"\`: settings-modal, confirm-modal - only ONE modal at a time
154
+
155
+ 5. **Maximize visual diversity**: For attributes that control what content is displayed (rather than just styling), vary values across scenarios so screenshots show meaningfully different views:
156
+ - Don't use the same display-controlling value in every scenario
157
+ - Ensure at least one scenario shows the primary content view
158
+ - Other scenarios can demonstrate alternative display states
159
+
160
+ **Key insight**: You don't need a separate scenario for each flow in an exclusive group!
161
+ - Pick the PRIMARY/DEFAULT option for the Default Scenario
162
+ - Only create additional scenarios for IMPORTANT alternative states (e.g., error states, loading states)
163
+ - Skip scenarios for minor variations within a group
164
+
165
+ ## Scenario Strategy
166
+
167
+ ### 1. Default Scenario (REQUIRED - must be first, named exactly "${DEFAULT_SCENARIO_NAME}")
168
+ - For each exclusive group, pick the PRIMARY/HAPPY-PATH option:
169
+ - Status: "success" or "ready" (not loading, not error)
170
+ - Tabs: The main/first tab
171
+ - View modes: The default view
172
+ - Combine as many NON-BLOCKING, NON-ERROR, NON-EXCLUSIVE-CONFLICT flows as possible
173
+ - AVOID flows with \`blocksOtherFlows: true\`
174
+ - NEVER include \`playwrightInstructions\`
175
+
176
+ ### 2. Blocking Flow Scenarios (ONE per blocking flow)
177
+ Each flow with \`blocksOtherFlows: true\` gets its OWN scenario.
178
+ - Modals, overlays, drawers hide other content
179
+ - Don't combine blocking flows
180
+
181
+ ### 3. Important Alternative States (SELECTIVE)
182
+ Only create scenarios for IMPORTANT alternatives within exclusive groups:
183
+ - ✅ Loading state (if exists) - important UX state
184
+ - ✅ Error state (if exists) - important UX state
185
+ - ✅ Empty state (if exists) - important UX state
186
+ - ❌ Each individual tab - NOT needed (tabs are just navigation)
187
+ - ❌ Each status badge variant - just pick the important ones
188
+
189
+ ### 4. CRITICAL: Skip Low-Value Scenarios
190
+ Do NOT create separate scenarios for:
191
+ - **Different tabs** - Tabs are just navigation. The Default Scenario covers the main tab. SKIP others.
192
+ - **Status badge variants** - Only need: Default (success/ready) + Loading + Error. SKIP queued, pending, etc.
193
+ - **Banner variants** - Pick ONE important banner if any. SKIP creating a scenario for each banner type.
194
+ - **Minor variations** - If two flows show essentially the same UI with small differences, combine them or skip one.
195
+
196
+ **Remember**: Including a flow in the Default Scenario COUNTS as covering it. You don't need a dedicated scenario for each flow.
197
+
198
+ ## Combining Flows
199
+
200
+ Flows can combine if:
201
+ 1. They have DIFFERENT \`exclusiveGroup\` values (or no exclusiveGroup)
202
+ 2. Their \`requiredValues\` don't conflict on the same attribute
203
+
204
+ Flows CANNOT combine if:
205
+ 1. They have the SAME \`exclusiveGroup\` - they're mutually exclusive
206
+ 2. Their \`requiredValues\` conflict (same attribute, different required value)
207
+
208
+ When combining flows, the scenario's mock data must satisfy ALL the requiredValues from ALL covered flows.
209
+
210
+ ## Output Format
211
+
143
212
  \`\`\`json
144
213
  {
145
- "useDiffModal().diffView": {
146
- "localVariable": "diffView",
147
- "instruction": "Set to 'split' mode"
148
- }
214
+ "dataScenarios": [
215
+ {
216
+ "name": "${DEFAULT_SCENARIO_NAME}",
217
+ "testName": "it(\\"displays primary content with all features visible\\")",
218
+ "description": "Main content view: success status, main tab selected, user logged in",
219
+ "coveredFlows": ["status-success", "tab-main", "user-authenticated", "content-loaded"]
220
+ },
221
+ {
222
+ "name": "Loading State",
223
+ "testName": "it(\\"shows loading spinner while fetching data\\")",
224
+ "description": "Data is being loaded, loading badge visible",
225
+ "coveredFlows": ["status-loading", "tab-main"]
226
+ },
227
+ {
228
+ "name": "Empty State",
229
+ "testName": "it(\\"shows empty message when no items\\")",
230
+ "description": "No items to display, empty state UI shown",
231
+ "coveredFlows": ["status-success", "tab-main", "empty-list"]
232
+ },
233
+ {
234
+ "name": "Settings Modal",
235
+ "testName": "it(\\"displays settings modal overlay\\")",
236
+ "description": "Settings modal is open and visible",
237
+ "coveredFlows": ["modal-settings"]
238
+ }
239
+ ]
149
240
  }
150
241
  \`\`\`
151
242
 
152
- ## playwrightInstructions (optional, non-default only)
243
+ **Note:** This example has ~20 flows but only 4 scenarios because:
244
+ - Exclusive groups (status, tabs) only need ONE representative in Default Scenario
245
+ - We don't create scenarios for every tab - they're just navigation
246
+ - Only important states (loading, empty, modal) get dedicated scenarios
247
+
248
+ ## Field Descriptions
249
+
250
+ - **name**: Human-readable scenario name (letters, numbers, spaces only - no special characters)
251
+ - **testName**: Jest-style test description, e.g. \`it("displays error when email invalid")\`
252
+ - **description**: What the user sees or what behavior occurs in this scenario
253
+ - **coveredFlows**: Array of execution flow IDs this scenario covers (from the executionFlows list)
254
+ - **playwrightInstructions**: (optional) User interactions needed to reach this state
255
+
256
+ ## playwrightInstructions Format (when needed)
257
+
153
258
  \`\`\`json
154
259
  {
155
260
  "playwrightInstructions": [
@@ -160,43 +265,26 @@ Use \`dataStructurePath\` as key, include both variable name and instruction:
160
265
  \`\`\`
161
266
  Note: selectorArgs values must be JSON strings, not JavaScript regex literals.
162
267
 
163
- Use when: data only appears after user action (button click, form submit), or key attribute isn't in data structure.
164
-
165
268
  ## Rules
166
- - Relative dates OK in instructions: "today", "tomorrow", "last month"
167
- - React elements: use simple elements (\`<div>\`, \`<span>\`) - no custom JSX
168
- - No external library references - plain JS/TS values only
169
- - Scenario names: letters, numbers, spaces only (no special characters)
170
- - testName: Jest style with specific expectations, e.g. \`it("displays error when email invalid")\`
171
- - All values must be valid JSON (strings, numbers, booleans, arrays, objects) - no JavaScript literals like regex
172
269
 
173
- ## Response Format
174
- \`\`\`json
175
- {
176
- "dataScenarios": [
177
- {
178
- "name": "${DEFAULT_SCENARIO_NAME}",
179
- "testName": "it(\"displays notifications with unread indicator\")",
180
- "description": "Default state with 3 unread and 2 read notifications",
181
- "keyAttributeInstructions": {
182
- "useNotifications().notifications[]": { "localVariable": "notifications[]", "instruction": "Create 5 notifications" },
183
- "useNotifications().notifications[].read": { "localVariable": "notifications[].read", "instruction": "false for 3, true for 2" }
184
- }
185
- },
186
- {
187
- "name": "Empty state",
188
- "testName": "it(\"shows placeholder when no notifications\")",
189
- "description": "User has no notifications",
190
- "keyAttributeInstructions": {
191
- "useNotifications().notifications[]": { "localVariable": "notifications[]", "instruction": "Empty array" }
192
- }
193
- }
194
- ]
195
- }
196
- \`\`\`
270
+ 1. **HARD LIMIT: 3-6 scenarios only** - If you generate more than 6 scenarios, you're doing it wrong. Aim for the minimum that covers important states.
271
+ 2. **${DEFAULT_SCENARIO_NAME}** must be first and named exactly that (case-sensitive)
272
+ 3. **Exclusive groups**: Pick ONE flow per group for Default Scenario. DON'T create scenarios for each option.
273
+ 4. **Blocking flows** (blocksOtherFlows: true) get dedicated scenarios
274
+ 5. **Only 2-3 additional scenarios**: Loading State, Empty State, maybe one Error or Modal
275
+ 6. **DO NOT cover every flow** - Many flows are fine being represented only in the Default Scenario
276
+ 7. Scenario names: letters, numbers, spaces only (no special characters)
277
+ 8. All values must be valid JSON
278
+
279
+ **Example for a component with 27 flows:**
280
+ - Default Scenario (covers 10+ flows including: success status, main tab, content loaded, etc.)
281
+ - Loading State (covers loading flow)
282
+ - Empty State (covers empty flow)
283
+ - Modal Open (if there's an important modal)
284
+ - Error State (if there's a critical error state)
285
+ = 4-5 scenarios total, NOT 27
197
286
  `;
198
287
  }
199
- const SYSTEM_MESSAGE = generateSystemMessage();
200
288
  const ERROR_SYSTEM_MESSAGE = `You are a security/reliability analyst. Identify data inputs that will cause UNCAUGHT ERRORS in this function.
201
289
 
202
290
  ## What Qualifies as an Error Scenario
@@ -231,19 +319,17 @@ Note: In JS/TS, any non-zero value satisfies a boolean check—this won't error.
231
319
  {
232
320
  "errorDataScenarios": [
233
321
  {
234
- "dataMapping": { "notifications array": "arguments - notifications" },
235
322
  "name": "Non-utf8 message encoding",
236
- "codeSnippet": "const encoded = encodeURIComponent(message);",
323
+ "testName": "it(\\"throws on non-utf8 characters\\")",
237
324
  "description": "encodeURIComponent throws on non-utf8 characters",
325
+ "codeSnippet": "const encoded = encodeURIComponent(message);",
238
326
  "fix": "Wrap in try/catch",
239
327
  "fixSnippet": "try {\\n encoded = encodeURIComponent(message);\\n} catch (e) {\\n // handle\\n}",
240
328
  "likelihood": 7,
241
329
  "likelihoodDescription": "International users may input non-utf8 characters",
242
330
  "severity": 2,
243
331
  "severityDescription": "Function throws uncaught error",
244
- "keyAttributeInstructions": {
245
- "notifications[]": "Array with message containing non-utf8 characters"
246
- }
332
+ "coveredFlows": []
247
333
  }
248
334
  ]
249
335
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generateEntityScenarios.js","sourceRoot":"","sources":["../../../../../../packages/ai/src/lib/generateEntityScenarios.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,gCAAgC,MAAM,qDAAqD,CAAC;AASnG,+DAA+D;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAM,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAoCtE,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AAEjD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,uBAAuB,CAAC,EACpD,MAAM,EACN,aAAa,EACb,QAAQ,EACR,KAAK,EACL,KAAK,GACuB;IAC5B,MAAM,CAAC,8BAA8B,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE;QACrE,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,UAAU,EAAE,MAAM,CAAC,IAAI;KACxB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,gCAAgC,CAAC;QAC9C,MAAM;QACN,aAAa;QACb,KAAK;KACN,CAAC,CAAC;IAEH,kDAAkD;IAClD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC7C,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc;QAC9C,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC;QAC1C,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC;QACpC,IAAI,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,iBAAiB;QACtD,aAAa,EAAE,KAAK;YAClB,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,qBAAqB,CAAC,OAAO,EAAE,aAAa,CAAC;QACjD,MAAM;QACN,KAAK,EAAE,KAAK,IAAI,oBAAoB;KACrC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC;QAChC,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,QAAQ,CAAC,EAAE;QACtB,SAAS,EAAE;YACT,MAAM,EAAE;gBACN,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB;YACD,aAAa;YACb,QAAQ,EAAE;gBACR,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,QAAQ,EAAE;oBACR,qBAAqB,EAAE;wBACrB,4BAA4B,EAC1B,MAAM,CAAC,QAAQ,CAAC,qBAAqB;6BAClC,4BAA4B;qBAClC;iBACF;aACF;YACD,KAAK;YACL,KAAK;SACN;QACD,GAAG,QAAQ,CAAC,KAAK;KAClB,CAAC,CAAC;IAEH,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,QAAQ,CAAC;IACjD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CACT,0CAA0C,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,uCAAuC,CACvG,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,GAAG,CACT,WAAW,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAC1H,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAE7B,MAAM,MAAM,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CACT,0CAA0C,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,iDAAiD,EAChH,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAClC,CAAC;QACF,MAAM,IAAI,KAAK,CACb,0CAA0C,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,iDAAiD,CACjH,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,SAAS,GACb,MAAM,CACJ,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,cAAc,CAE1C,CAAC,GAAG,CACH,CAAC,YAAY,EAAE,EAAE,CACf,CAAC;QACC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,QAAQ,EAAE;YACR,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,KAAK;YACL,WAAW,EAAE,YAAY,CAAC,WAAW;YACrC,GAAG,EAAE,YAAY,CAAC,GAAG;YACrB,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,qBAAqB,EAAE,YAAY,CAAC,qBAAqB;YACzD,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,mBAAmB,EAAE,YAAY,CAAC,mBAAmB;YACrD,WAAW,EAAE,YAAY,CAAC,WAAW;YACrC,wBAAwB,EAAE,YAAY,CAAC,wBAAwB;YAC/D,eAAe;YACf,2CAA2C;YAC3C,2BAA2B;YAC3B,8CAA8C;YAC9C,mCAAmC;YACnC,OAAO;YACP,+CAA+C;YAC/C,WAAW;YACX,sBAAsB;YACtB,4CAA4C;YAC5C,uCAAuC;YACvC,OAAO;YACP,mEAAmE;YACnE,gBAAgB;YAChB,UAAU;YACV,sBAAsB,EAAE,8BAA8B,CACpD,YAAY,CAAC,sBAAsB,IAAI,EAAE,EACzC,MAAM,CAAC,IAAI,EACX,YAAY,CAAC,IAAI,CAClB;SACF;KACF,CAAa,CACjB,CAAC;IAEF,OAAO;QACL,SAAS;QACT,OAAO;KACR,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAgB,EAChB,aAAsB;IAEtB,MAAM,iBAAiB,GAAG,aAAa;QACrC,CAAC,CAAC,oBAAoB,aAAa,YAAY,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;QAC9E,CAAC,CAAC,yBAAyB,CAAC;IAE9B,MAAM,cAAc,GAAG,OAAO;QAC5B,CAAC,CAAC;EACJ,OAAO;;;;CAIR;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;EAEP,cAAc,GAAG,iBAAiB;;;4CAGQ,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiDhD,qBAAqB;;;;;;;;;;;;;;;;;;;CAmBrC,CAAC;AACF,CAAC;AAED,MAAM,cAAc,GAAG,qBAAqB,EAAE,CAAC;AAE/C,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmD5B,CAAC"}
1
+ {"version":3,"file":"generateEntityScenarios.js","sourceRoot":"","sources":["../../../../../../packages/ai/src/lib/generateEntityScenarios.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Generates execution flows using pure static analysis.
3
+ *
4
+ * This module has been refactored to use deterministic flow generation
5
+ * instead of LLM calls. Flows are derived from:
6
+ * 1. conditionalUsages - variables used in if/ternary/&&/switch
7
+ * 2. conditionalEffects - setter calls inside conditionals
8
+ *
9
+ * Only paths that resolve to controllable data sources produce flows,
10
+ * eliminating the problem of invalid paths like useState variables.
11
+ */
12
+ import { awsLog } from "../../../../packages/utils/index.js";
13
+ import { gatherAttributesMap } from "./promptGenerators/gatherAttributesMap.js";
14
+ import { fillInDirectSchemaGapsAndUnknowns } from "./dataStructure/helpers/fillInSchemaGapsAndUnknowns.js";
15
+ import { clearAttributesFromMapping } from "./dataStructure/helpers/cleanNonObjectFunctions.js";
16
+ import generateExecutionFlowsFromConditionalEffects from "./generateExecutionFlowsFromConditionalEffects.js";
17
+ import generateExecutionFlowsFromConditionals from "./generateExecutionFlowsFromConditionals.js";
18
+ export default function generateExecutionFlows({ entity, mergedDataStructure, childEntityMetadata, }) {
19
+ awsLog(`CodeYam: Generating execution flows (static analysis)`, {
20
+ filePath: entity.filePath,
21
+ entityName: entity.name,
22
+ });
23
+ const isolatedDataStructure = entity.metadata?.isolatedDataStructure;
24
+ const equivalentSignatureVariables = isolatedDataStructure?.equivalentSignatureVariables ?? {};
25
+ const { attributesMap, associationMap } = gatherAttributesMap(isolatedDataStructure ?? mergedDataStructure, mergedDataStructure, equivalentSignatureVariables, true);
26
+ // Clean the attributes map to remove primitive-returning array method paths
27
+ clearAttributesFromMapping(attributesMap);
28
+ if (Object.keys(attributesMap).length === 0) {
29
+ console.log(`CodeYam: No valid attributes found for ${entity.filePath} ${entity.name}`);
30
+ return {
31
+ executionFlows: [],
32
+ llmCall: null,
33
+ };
34
+ }
35
+ // Build merged schema for type inference
36
+ const mergedSchemaForTypeLookup = Object.fromEntries(Object.entries(mergedDataStructure.signatureSchema ?? {})
37
+ .filter(([k]) => k.startsWith('signature['))
38
+ .map(([k, v]) => [k.replace(/^signature\[\d+\]\./, ''), v]));
39
+ // Resolve unknown types using heuristics
40
+ const resolvedAttributesMap = fillInDirectSchemaGapsAndUnknowns({
41
+ scopeName: entity.name,
42
+ schema: { ...attributesMap },
43
+ mergedSchema: mergedSchemaForTypeLookup,
44
+ });
45
+ // Build fullToShortPathMap from associationMap
46
+ // associationMap maps full paths → short paths (e.g., "useFetcher<...>().functionCallReturnValue.state" → "state")
47
+ // fullToShortPathMap is the same mapping (we just use associationMap directly)
48
+ const fullToShortPathMap = {};
49
+ for (const [fullPath, shortPath] of Object.entries(associationMap)) {
50
+ fullToShortPathMap[fullPath] = shortPath;
51
+ }
52
+ // Get pre-computed conditional data from metadata
53
+ const conditionalUsages = entity.metadata?.isolatedDataStructure?.conditionalUsages ?? {};
54
+ const compoundConditionals = entity.metadata?.isolatedDataStructure?.compoundConditionals ?? [];
55
+ const conditionalEffects = entity.metadata?.isolatedDataStructure?.conditionalEffects ?? [];
56
+ // Build child component data for merging child flows into parent
57
+ // This requires:
58
+ // 1. childBoundaryGatingConditions - which parent conditions gate each child
59
+ // 2. childEntityMetadata - passed by caller after looking up child entities
60
+ const childBoundaryGatingConditions = entity.metadata?.isolatedDataStructure?.childBoundaryGatingConditions ?? {};
61
+ // Build childComponentData using the provided childEntityMetadata
62
+ // The caller is responsible for looking up child entities (via importedExports
63
+ // or database) and passing their metadata here
64
+ const childComponentData = {};
65
+ if (childEntityMetadata) {
66
+ for (const [childName, gatingConditions] of Object.entries(childBoundaryGatingConditions)) {
67
+ const childMeta = childEntityMetadata[childName];
68
+ const childIsolated = childMeta?.isolatedDataStructure;
69
+ if (childIsolated) {
70
+ childComponentData[childName] = {
71
+ conditionalUsages: childIsolated.conditionalUsages ?? {},
72
+ equivalentSignatureVariables: childIsolated.equivalentSignatureVariables ?? {},
73
+ compoundConditionals: childIsolated.compoundConditionals ?? [],
74
+ gatingConditions,
75
+ };
76
+ }
77
+ }
78
+ }
79
+ const conditionalsBasedFlows = generateExecutionFlowsFromConditionals({
80
+ conditionalUsages,
81
+ compoundConditionals,
82
+ attributesMap: resolvedAttributesMap,
83
+ equivalentSignatureVariables,
84
+ fullToShortPathMap,
85
+ childComponentData: Object.keys(childComponentData).length > 0
86
+ ? childComponentData
87
+ : undefined,
88
+ });
89
+ console.log(`CodeYam: Generated ${conditionalsBasedFlows.length} flows from conditional usages`);
90
+ // Generate flows from conditional effects (setter calls inside conditionals)
91
+ // Pass resolution context so paths can be resolved to controllable data sources
92
+ const effectsBasedFlows = generateExecutionFlowsFromConditionalEffects(conditionalEffects, {
93
+ attributesMap: resolvedAttributesMap,
94
+ equivalentSignatureVariables,
95
+ fullToShortPathMap,
96
+ conditionalUsages,
97
+ });
98
+ console.log(`CodeYam: Generated ${effectsBasedFlows.length} flows from conditional effects`);
99
+ // Merge all flows, deduplicating by ID
100
+ // Effects-based flows take precedence as they have precise data source paths
101
+ const allFlows = [];
102
+ const seenIds = new Set();
103
+ // Add effects-based flows first (higher priority)
104
+ for (const flow of effectsBasedFlows) {
105
+ if (!seenIds.has(flow.id)) {
106
+ seenIds.add(flow.id);
107
+ allFlows.push(flow);
108
+ }
109
+ }
110
+ // Add conditionals-based flows
111
+ for (const flow of conditionalsBasedFlows) {
112
+ if (!seenIds.has(flow.id)) {
113
+ seenIds.add(flow.id);
114
+ allFlows.push(flow);
115
+ }
116
+ }
117
+ console.log(`CodeYam: Total execution flows for ${entity.name}: ${allFlows.length}`);
118
+ return {
119
+ executionFlows: allFlows,
120
+ llmCall: null, // No LLM calls in static analysis mode
121
+ };
122
+ }
123
+ //# sourceMappingURL=generateExecutionFlows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateExecutionFlows.js","sourceRoot":"","sources":["../../../../../../packages/ai/src/lib/generateExecutionFlows.ts"],"names":[],"mappings":"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"}