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

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 (645) hide show
  1. package/analyzer-template/.build-info.json +8 -8
  2. package/analyzer-template/common/execAsync.ts +1 -1
  3. package/analyzer-template/log.txt +3 -3
  4. package/analyzer-template/package.json +9 -6
  5. package/analyzer-template/packages/ai/index.ts +10 -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 +126 -6
  9. package/analyzer-template/packages/ai/src/lib/astScopes/arrayDerivationDetector.ts +199 -0
  10. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +116 -1
  11. package/analyzer-template/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.ts +644 -0
  12. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +140 -6
  13. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.ts +18 -0
  14. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +15 -0
  15. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.ts +181 -1
  16. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +849 -9
  17. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +244 -0
  18. package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +29 -10
  19. package/analyzer-template/packages/ai/src/lib/completionCall.ts +216 -36
  20. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +892 -117
  21. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +2 -1
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +296 -35
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +120 -76
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +80 -5
  25. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.ts +98 -0
  26. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +8 -1
  27. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.ts +129 -0
  28. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +156 -0
  29. package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
  30. package/analyzer-template/packages/ai/src/lib/e2eDataTracking.ts +334 -0
  31. package/analyzer-template/packages/ai/src/lib/extractCriticalDataKeys.ts +120 -0
  32. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +74 -7
  33. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +86 -142
  34. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +1 -0
  35. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +1111 -87
  36. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +191 -191
  37. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +570 -0
  38. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
  39. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +1977 -0
  40. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +239 -0
  41. package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +5 -5
  42. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +276 -3
  43. package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +33 -3
  44. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +1 -1
  45. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +32 -142
  46. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChunkPrompt.ts +82 -0
  47. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateCriticalKeysPrompt.ts +103 -0
  48. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +90 -6
  49. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +14 -89
  50. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
  51. package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +11 -11
  52. package/analyzer-template/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.ts +391 -0
  53. package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +812 -0
  54. package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +5 -1
  55. package/analyzer-template/packages/ai/src/lib/validateExecutionFlowPaths.ts +531 -0
  56. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +118 -0
  57. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +14 -0
  58. package/analyzer-template/packages/analyze/src/lib/analysisContext.ts +44 -4
  59. package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +1 -0
  60. package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
  61. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +381 -265
  62. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +18 -0
  63. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +3 -0
  64. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +33 -7
  65. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +31 -15
  66. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +11 -7
  67. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +11 -12
  68. package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
  69. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +148 -41
  70. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
  71. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +506 -59
  72. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +28 -62
  73. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +157 -74
  74. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +156 -0
  75. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +35 -129
  76. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +2 -3
  77. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +420 -87
  78. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +56 -11
  79. package/analyzer-template/packages/aws/codebuild/index.ts +1 -0
  80. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +11 -1
  81. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -1
  82. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +29 -18
  83. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -1
  84. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +2 -2
  85. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -1
  86. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +2 -2
  87. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  88. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +8 -18
  89. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -1
  90. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +17 -61
  91. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  92. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -1
  93. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +8 -1
  94. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -1
  95. package/analyzer-template/packages/aws/package.json +3 -3
  96. package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +43 -19
  97. package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +3 -3
  98. package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +17 -69
  99. package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +8 -1
  100. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +17 -1
  101. package/analyzer-template/packages/database/src/lib/loadAnalyses.ts +58 -1
  102. package/analyzer-template/packages/database/src/lib/loadCommits.ts +16 -0
  103. package/analyzer-template/packages/database/src/lib/loadEntities.ts +26 -3
  104. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +7 -3
  105. package/analyzer-template/packages/generate/index.ts +3 -0
  106. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +17 -1
  107. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +193 -0
  108. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
  109. package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
  110. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +1 -18
  111. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -1
  112. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +17 -1
  113. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -1
  114. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  115. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts +1 -0
  116. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -1
  117. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +2 -6
  118. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  119. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts +2 -0
  120. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts.map +1 -1
  121. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js +45 -2
  122. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js.map +1 -1
  123. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts +3 -1
  124. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  125. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +13 -1
  126. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  127. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts +3 -1
  128. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  129. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +23 -4
  130. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  131. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  132. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
  133. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  134. package/analyzer-template/packages/github/dist/generate/index.d.ts +3 -0
  135. package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -1
  136. package/analyzer-template/packages/github/dist/generate/index.js +3 -0
  137. package/analyzer-template/packages/github/dist/generate/index.js.map +1 -1
  138. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
  139. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  140. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  141. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts +9 -0
  142. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -0
  143. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  144. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  145. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts +20 -0
  146. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts.map +1 -0
  147. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  148. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  149. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts +8 -0
  150. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts.map +1 -0
  151. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js +89 -0
  152. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  153. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -1
  154. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +10 -0
  155. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -1
  156. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -1
  157. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +3 -0
  158. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -1
  159. package/analyzer-template/packages/github/dist/types/index.d.ts +3 -4
  160. package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
  161. package/analyzer-template/packages/github/dist/types/index.js +0 -1
  162. package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
  163. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +71 -27
  164. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
  165. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +2 -0
  166. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -1
  167. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +9 -54
  168. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  169. package/analyzer-template/packages/github/dist/types/src/types/Scenario.js +1 -21
  170. package/analyzer-template/packages/github/dist/types/src/types/Scenario.js.map +1 -1
  171. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +148 -0
  172. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  173. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +2 -0
  174. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  175. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts +9 -1
  176. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  177. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +29 -3
  178. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -1
  179. package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +14 -0
  180. package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +2 -0
  181. package/analyzer-template/packages/process/index.ts +2 -0
  182. package/analyzer-template/packages/process/package.json +12 -0
  183. package/analyzer-template/packages/process/tsconfig.json +8 -0
  184. package/analyzer-template/packages/types/index.ts +3 -6
  185. package/analyzer-template/packages/types/src/types/Analysis.ts +87 -27
  186. package/analyzer-template/packages/types/src/types/Entity.ts +2 -0
  187. package/analyzer-template/packages/types/src/types/Scenario.ts +9 -77
  188. package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +175 -0
  189. package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
  190. package/analyzer-template/packages/utils/dist/types/index.d.ts +3 -4
  191. package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
  192. package/analyzer-template/packages/utils/dist/types/index.js +0 -1
  193. package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
  194. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +71 -27
  195. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
  196. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +2 -0
  197. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -1
  198. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +9 -54
  199. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  200. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js +1 -21
  201. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js.map +1 -1
  202. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +148 -0
  203. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  204. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +2 -0
  205. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  206. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +9 -1
  207. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  208. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +29 -3
  209. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -1
  210. package/analyzer-template/packages/utils/src/lib/safeFileName.ts +48 -3
  211. package/analyzer-template/playwright/capture.ts +37 -18
  212. package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
  213. package/analyzer-template/playwright/waitForServer.ts +21 -6
  214. package/analyzer-template/project/analyzeBaselineCommit.ts +4 -0
  215. package/analyzer-template/project/analyzeBranchCommit.ts +4 -0
  216. package/analyzer-template/project/analyzeFileEntities.ts +4 -0
  217. package/analyzer-template/project/analyzeRegularCommit.ts +4 -0
  218. package/analyzer-template/project/constructMockCode.ts +1112 -169
  219. package/analyzer-template/project/controller/startController.ts +16 -1
  220. package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
  221. package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
  222. package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +3 -6
  223. package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +7 -1
  224. package/analyzer-template/project/orchestrateCapture.ts +36 -3
  225. package/analyzer-template/project/reconcileMockDataKeys.ts +220 -78
  226. package/analyzer-template/project/runAnalysis.ts +11 -0
  227. package/analyzer-template/project/serverOnlyModules.ts +127 -2
  228. package/analyzer-template/project/start.ts +16 -4
  229. package/analyzer-template/project/startScenarioCapture.ts +6 -0
  230. package/analyzer-template/project/writeMockDataTsx.ts +164 -24
  231. package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
  232. package/analyzer-template/project/writeScenarioComponents.ts +304 -112
  233. package/analyzer-template/project/writeScenarioFiles.ts +26 -0
  234. package/analyzer-template/project/writeSimpleRoot.ts +11 -35
  235. package/analyzer-template/scripts/comboWorkerLoop.cjs +1 -0
  236. package/analyzer-template/scripts/defaultCmd.sh +9 -0
  237. package/analyzer-template/tsconfig.json +2 -1
  238. package/background/src/lib/local/createLocalAnalyzer.js +1 -29
  239. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  240. package/background/src/lib/local/execAsync.js +1 -1
  241. package/background/src/lib/local/execAsync.js.map +1 -1
  242. package/background/src/lib/virtualized/common/execAsync.js +1 -1
  243. package/background/src/lib/virtualized/common/execAsync.js.map +1 -1
  244. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +2 -1
  245. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
  246. package/background/src/lib/virtualized/project/analyzeBranchCommit.js +2 -1
  247. package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -1
  248. package/background/src/lib/virtualized/project/analyzeFileEntities.js +2 -1
  249. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  250. package/background/src/lib/virtualized/project/analyzeRegularCommit.js +2 -1
  251. package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
  252. package/background/src/lib/virtualized/project/constructMockCode.js +987 -130
  253. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  254. package/background/src/lib/virtualized/project/controller/startController.js +11 -1
  255. package/background/src/lib/virtualized/project/controller/startController.js.map +1 -1
  256. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +6 -3
  257. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -1
  258. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +7 -7
  259. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -1
  260. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +3 -2
  261. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
  262. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +3 -1
  263. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
  264. package/background/src/lib/virtualized/project/orchestrateCapture.js +27 -4
  265. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  266. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +188 -47
  267. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  268. package/background/src/lib/virtualized/project/runAnalysis.js +9 -0
  269. package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
  270. package/background/src/lib/virtualized/project/serverOnlyModules.js +106 -3
  271. package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -1
  272. package/background/src/lib/virtualized/project/start.js +15 -4
  273. package/background/src/lib/virtualized/project/start.js.map +1 -1
  274. package/background/src/lib/virtualized/project/startScenarioCapture.js +7 -0
  275. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  276. package/background/src/lib/virtualized/project/writeMockDataTsx.js +139 -23
  277. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  278. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js +15 -0
  279. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js.map +1 -0
  280. package/background/src/lib/virtualized/project/writeScenarioComponents.js +228 -95
  281. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  282. package/background/src/lib/virtualized/project/writeScenarioFiles.js +19 -0
  283. package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -1
  284. package/background/src/lib/virtualized/project/writeSimpleRoot.js +11 -34
  285. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  286. package/codeyam-cli/src/cli.js +5 -1
  287. package/codeyam-cli/src/cli.js.map +1 -1
  288. package/codeyam-cli/src/commands/analyze.js +1 -1
  289. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  290. package/codeyam-cli/src/commands/baseline.js +174 -0
  291. package/codeyam-cli/src/commands/baseline.js.map +1 -0
  292. package/codeyam-cli/src/commands/debug.js +28 -18
  293. package/codeyam-cli/src/commands/debug.js.map +1 -1
  294. package/codeyam-cli/src/commands/default.js +0 -15
  295. package/codeyam-cli/src/commands/default.js.map +1 -1
  296. package/codeyam-cli/src/commands/recapture.js +29 -18
  297. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  298. package/codeyam-cli/src/commands/report.js +46 -1
  299. package/codeyam-cli/src/commands/report.js.map +1 -1
  300. package/codeyam-cli/src/commands/start.js +8 -12
  301. package/codeyam-cli/src/commands/start.js.map +1 -1
  302. package/codeyam-cli/src/commands/status.js +23 -1
  303. package/codeyam-cli/src/commands/status.js.map +1 -1
  304. package/codeyam-cli/src/commands/test-startup.js +1 -1
  305. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  306. package/codeyam-cli/src/commands/wipe.js +108 -0
  307. package/codeyam-cli/src/commands/wipe.js.map +1 -0
  308. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
  309. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
  310. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +31 -27
  311. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  312. package/codeyam-cli/src/utils/analysisRunner.js +28 -14
  313. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  314. package/codeyam-cli/src/utils/backgroundServer.js +12 -2
  315. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  316. package/codeyam-cli/src/utils/database.js +91 -5
  317. package/codeyam-cli/src/utils/database.js.map +1 -1
  318. package/codeyam-cli/src/utils/generateReport.js +4 -3
  319. package/codeyam-cli/src/utils/generateReport.js.map +1 -1
  320. package/codeyam-cli/src/utils/git.js +79 -0
  321. package/codeyam-cli/src/utils/git.js.map +1 -0
  322. package/codeyam-cli/src/utils/install-skills.js +31 -17
  323. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  324. package/codeyam-cli/src/utils/queue/job.js +105 -0
  325. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  326. package/codeyam-cli/src/utils/queue/manager.js +6 -0
  327. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  328. package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
  329. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  330. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +7 -5
  331. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  332. package/codeyam-cli/src/utils/versionInfo.js +25 -19
  333. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  334. package/codeyam-cli/src/utils/wipe.js +128 -0
  335. package/codeyam-cli/src/utils/wipe.js.map +1 -0
  336. package/codeyam-cli/src/webserver/app/lib/database.js +73 -20
  337. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  338. package/codeyam-cli/src/webserver/bootstrap.js +40 -0
  339. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
  340. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-BXhEawa3.js +1 -0
  341. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-CzGX-miz.js → EntityTypeBadge-DLqD3qNt.js} +1 -1
  342. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-Ba2JVPzP.js +41 -0
  343. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-C8lyxW9k.js +34 -0
  344. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-aht4aafF.js +25 -0
  345. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-CBQPrpT0.js → LibraryFunctionPreview-CVtiBnY5.js} +1 -1
  346. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-D1CdlbrV.js → LoadingDots-B0GLXMsr.js} +1 -1
  347. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-wDPcZNKx.js → LogViewer-xgeCVgSM.js} +1 -1
  348. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-D4TZhLuw.js +21 -0
  349. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-BfmDgXxG.js → SafeScreenshot-DuDvi0jm.js} +1 -1
  350. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-DEx02QDa.js +10 -0
  351. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-6J7zDUD5.js → TruncatedFilePath-DyFZkK0l.js} +1 -1
  352. package/codeyam-cli/src/webserver/build/client/assets/_index-BwqWJOgH.js +11 -0
  353. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-DoLIqZX2.js +37 -0
  354. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-BYimnrHg.js → chevron-down-Cx24_aWc.js} +1 -1
  355. package/codeyam-cli/src/webserver/build/client/assets/chunk-EPOLDU6W-CXRTFQ3F.js +51 -0
  356. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-CaVsIRxt.js → circle-check-BOARzkeR.js} +1 -1
  357. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-CgUsG7ib.js → createLucideIcon-BdhJEx6B.js} +1 -1
  358. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-C1gnJVOL.svg → cy-logo-cli-CCKUIm0S.svg} +2 -2
  359. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +1 -0
  360. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BRb-0kQl.js +1 -0
  361. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-zUEpfPsu.js → entity._sha._-C2N4Op8e.js} +12 -12
  362. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DavjRmOY.js +6 -0
  363. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-D1T4TGjf.js +6 -0
  364. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CfLCUi9S.js → entity._sha_.edit._scenarioId-CTBG2mmz.js} +1 -1
  365. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-DKJyZfAY.js → entry.client-CS2cb_eZ.js} +6 -6
  366. package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
  367. package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DAtOlaWE.js → fileTableUtils-DMJ7zii9.js} +1 -1
  368. package/codeyam-cli/src/webserver/build/client/assets/files-Cs4MdYtv.js +1 -0
  369. package/codeyam-cli/src/webserver/build/client/assets/{git-D62Lxxmv.js → git-B4RJRvYB.js} +2 -2
  370. package/codeyam-cli/src/webserver/build/client/assets/git-commit-horizontal-CysbcZxi.js +6 -0
  371. package/codeyam-cli/src/webserver/build/client/assets/globals-DMUaGAqV.css +1 -0
  372. package/codeyam-cli/src/webserver/build/client/assets/{index-CzNNiTkw.js → index-B1h680n5.js} +1 -1
  373. package/codeyam-cli/src/webserver/build/client/assets/{index-BosqDOlH.js → index-lzqtyFU8.js} +1 -1
  374. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-CNp9QFCX.js → loader-circle-B7B9V-bu.js} +1 -1
  375. package/codeyam-cli/src/webserver/build/client/assets/manifest-f874c610.js +1 -0
  376. package/codeyam-cli/src/webserver/build/client/assets/root-Bz5TunQg.js +57 -0
  377. package/codeyam-cli/src/webserver/build/client/assets/rules-hEkvVw2-.js +97 -0
  378. package/codeyam-cli/src/webserver/build/client/assets/{search-DDGjYAMJ.js → search-CxXUmBSd.js} +1 -1
  379. package/codeyam-cli/src/webserver/build/client/assets/settings-CS5f3WzT.js +1 -0
  380. package/codeyam-cli/src/webserver/build/client/assets/simulations-DwFIBT09.js +1 -0
  381. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-CBc5dE1s.js → triangle-alert-B6LgvRJg.js} +1 -1
  382. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-C1v1PQzo.js +1 -0
  383. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-BqPPNjAl.js → useLastLogLine-aSv48UbS.js} +1 -1
  384. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DYxHZQuP.js +1 -0
  385. package/codeyam-cli/src/webserver/build/client/assets/{useToast-DWHcCcl1.js → useToast-mBRpZPiu.js} +1 -1
  386. package/codeyam-cli/src/webserver/build/server/assets/index-uNNbimct.js +1 -0
  387. package/codeyam-cli/src/webserver/build/server/assets/server-build-B08qC4Y7.js +257 -0
  388. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  389. package/codeyam-cli/src/webserver/build-info.json +5 -5
  390. package/codeyam-cli/src/webserver/server.js +35 -25
  391. package/codeyam-cli/src/webserver/server.js.map +1 -1
  392. package/codeyam-cli/templates/codeyam-power-rules-hook.sh +200 -0
  393. package/codeyam-cli/templates/{codeyam-debug-skill.md → codeyam:debug.md} +48 -4
  394. package/codeyam-cli/templates/{debug-codeyam.md → codeyam:diagnose.md} +185 -23
  395. package/codeyam-cli/templates/codeyam:new-rule.md +13 -0
  396. package/codeyam-cli/templates/codeyam:power-rules.md +449 -0
  397. package/codeyam-cli/templates/{codeyam-setup-skill.md → codeyam:setup.md} +139 -4
  398. package/codeyam-cli/templates/{codeyam-sim-skill.md → codeyam:sim.md} +1 -1
  399. package/codeyam-cli/templates/{codeyam-test-skill.md → codeyam:test.md} +1 -1
  400. package/codeyam-cli/templates/{codeyam-verify-skill.md → codeyam:verify.md} +1 -1
  401. package/package.json +6 -5
  402. package/packages/ai/index.js +5 -4
  403. package/packages/ai/index.js.map +1 -1
  404. package/packages/ai/src/lib/analyzeScope.js +97 -0
  405. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  406. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js +150 -0
  407. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js.map +1 -0
  408. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +84 -1
  409. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  410. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
  411. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
  412. package/packages/ai/src/lib/astScopes/methodSemantics.js +97 -6
  413. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  414. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +8 -0
  415. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -1
  416. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +7 -0
  417. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
  418. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +138 -1
  419. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
  420. package/packages/ai/src/lib/astScopes/processExpression.js +654 -13
  421. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  422. package/packages/ai/src/lib/checkAllAttributes.js +24 -9
  423. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  424. package/packages/ai/src/lib/completionCall.js +178 -31
  425. package/packages/ai/src/lib/completionCall.js.map +1 -1
  426. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +715 -64
  427. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  428. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +2 -1
  429. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  430. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +230 -23
  431. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -1
  432. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +77 -55
  433. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  434. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +67 -3
  435. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  436. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js +86 -0
  437. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js.map +1 -0
  438. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +6 -1
  439. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  440. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js +107 -0
  441. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js.map +1 -0
  442. package/packages/ai/src/lib/dataStructureChunking.js +111 -0
  443. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -0
  444. package/packages/ai/src/lib/deepEqual.js +32 -0
  445. package/packages/ai/src/lib/deepEqual.js.map +1 -0
  446. package/packages/ai/src/lib/e2eDataTracking.js +241 -0
  447. package/packages/ai/src/lib/e2eDataTracking.js.map +1 -0
  448. package/packages/ai/src/lib/extractCriticalDataKeys.js +96 -0
  449. package/packages/ai/src/lib/extractCriticalDataKeys.js.map +1 -0
  450. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +62 -5
  451. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  452. package/packages/ai/src/lib/generateChangesEntityScenarios.js +78 -120
  453. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  454. package/packages/ai/src/lib/generateEntityDataStructure.js +1 -0
  455. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  456. package/packages/ai/src/lib/generateEntityScenarioData.js +906 -82
  457. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  458. package/packages/ai/src/lib/generateEntityScenarios.js +170 -162
  459. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  460. package/packages/ai/src/lib/generateExecutionFlows.js +392 -0
  461. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
  462. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
  463. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
  464. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +1440 -0
  465. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
  466. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
  467. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js.map +1 -0
  468. package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -2
  469. package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
  470. package/packages/ai/src/lib/isolateScopes.js +231 -4
  471. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  472. package/packages/ai/src/lib/mergeStatements.js +26 -3
  473. package/packages/ai/src/lib/mergeStatements.js.map +1 -1
  474. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +1 -1
  475. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  476. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +21 -100
  477. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  478. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js +54 -0
  479. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js.map +1 -0
  480. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +68 -6
  481. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  482. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +10 -70
  483. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  484. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
  485. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
  486. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +9 -9
  487. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
  488. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js +335 -0
  489. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js.map +1 -0
  490. package/packages/ai/src/lib/resolvePathToControllable.js +667 -0
  491. package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
  492. package/packages/ai/src/lib/splitOutsideParentheses.js +3 -1
  493. package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -1
  494. package/packages/ai/src/lib/worker/SerializableDataStructure.js +29 -0
  495. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  496. package/packages/analyze/src/lib/FileAnalyzer.js +15 -0
  497. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  498. package/packages/analyze/src/lib/analysisContext.js +30 -5
  499. package/packages/analyze/src/lib/analysisContext.js.map +1 -1
  500. package/packages/analyze/src/lib/asts/nodes/index.js +1 -0
  501. package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
  502. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
  503. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
  504. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +151 -52
  505. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  506. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +10 -0
  507. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  508. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +2 -0
  509. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  510. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +31 -7
  511. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  512. package/packages/analyze/src/lib/files/analyzeChange.js +21 -11
  513. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  514. package/packages/analyze/src/lib/files/analyzeEntity.js +9 -8
  515. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  516. package/packages/analyze/src/lib/files/analyzeInitial.js +9 -10
  517. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  518. package/packages/analyze/src/lib/files/enums/steps.js +1 -1
  519. package/packages/analyze/src/lib/files/enums/steps.js.map +1 -1
  520. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +121 -37
  521. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
  522. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
  523. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
  524. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +410 -55
  525. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  526. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +29 -34
  527. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
  528. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +126 -57
  529. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  530. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +96 -0
  531. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
  532. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +27 -98
  533. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  534. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +2 -3
  535. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  536. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +342 -83
  537. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  538. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +46 -9
  539. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -1
  540. package/packages/aws/src/lib/ecs/ecsDefineContainer.js +2 -2
  541. package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  542. package/packages/aws/src/lib/ecs/ecsTaskFactory.js +17 -61
  543. package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  544. package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  545. package/packages/database/src/lib/loadAnalyses.js +45 -2
  546. package/packages/database/src/lib/loadAnalyses.js.map +1 -1
  547. package/packages/database/src/lib/loadCommits.js +13 -1
  548. package/packages/database/src/lib/loadCommits.js.map +1 -1
  549. package/packages/database/src/lib/loadEntities.js +23 -4
  550. package/packages/database/src/lib/loadEntities.js.map +1 -1
  551. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
  552. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  553. package/packages/generate/index.js +3 -0
  554. package/packages/generate/index.js.map +1 -1
  555. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  556. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  557. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  558. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  559. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  560. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  561. package/packages/generate/src/lib/scenarioComponentForServer.js +89 -0
  562. package/packages/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  563. package/packages/github/src/lib/loadOrCreateCommit.js +10 -0
  564. package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -1
  565. package/packages/github/src/lib/syncPrimaryBranch.js +3 -0
  566. package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -1
  567. package/packages/process/index.js +3 -0
  568. package/packages/process/index.js.map +1 -0
  569. package/packages/process/src/GlobalProcessManager.js.map +1 -0
  570. package/{background/src/lib/process → packages/process/src}/ProcessManager.js +1 -1
  571. package/packages/process/src/ProcessManager.js.map +1 -0
  572. package/packages/process/src/index.js.map +1 -0
  573. package/packages/process/src/managedExecAsync.js.map +1 -0
  574. package/packages/types/index.js +0 -1
  575. package/packages/types/index.js.map +1 -1
  576. package/packages/types/src/types/Scenario.js +1 -21
  577. package/packages/types/src/types/Scenario.js.map +1 -1
  578. package/packages/utils/src/lib/safeFileName.js +29 -3
  579. package/packages/utils/src/lib/safeFileName.js.map +1 -1
  580. package/scripts/finalize-analyzer.cjs +3 -3
  581. package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +0 -102
  582. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +0 -409
  583. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +0 -288
  584. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +0 -495
  585. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +0 -67
  586. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +0 -120
  587. package/analyzer-template/process/INTEGRATION_COMPLETE.md +0 -333
  588. package/analyzer-template/process/INTEGRATION_EXAMPLE.md +0 -525
  589. package/analyzer-template/process/README.md +0 -507
  590. package/background/src/lib/process/GlobalProcessManager.js.map +0 -1
  591. package/background/src/lib/process/ProcessManager.js.map +0 -1
  592. package/background/src/lib/process/index.js.map +0 -1
  593. package/background/src/lib/process/managedExecAsync.js.map +0 -1
  594. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +0 -238
  595. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +0 -1
  596. package/codeyam-cli/scripts/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js +0 -7
  597. package/codeyam-cli/scripts/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js.map +0 -1
  598. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-wXL1Z2Aq.js +0 -1
  599. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-CXFKsCOD.js +0 -41
  600. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-D-9pXIaY.js +0 -25
  601. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-4lcOlid-.js +0 -11
  602. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-CUxUNEEC.js +0 -15
  603. package/codeyam-cli/src/webserver/build/client/assets/_index-DHImXdXq.js +0 -11
  604. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-2mG6mjVb.js +0 -32
  605. package/codeyam-cli/src/webserver/build/client/assets/chunk-JMJ3UQ3L-BambyYE_.js +0 -51
  606. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-CKnwPCDr.js +0 -1
  607. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DW_hdGUc.js +0 -1
  608. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DyB90fWk.js +0 -1
  609. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-D_3ero5o.js +0 -1
  610. package/codeyam-cli/src/webserver/build/client/assets/files-ClR0d32A.js +0 -1
  611. package/codeyam-cli/src/webserver/build/client/assets/globals-C6vQASxy.css +0 -1
  612. package/codeyam-cli/src/webserver/build/client/assets/keyAttributeCoverage-CTlFMihX.js +0 -1
  613. package/codeyam-cli/src/webserver/build/client/assets/manifest-09d684be.js +0 -1
  614. package/codeyam-cli/src/webserver/build/client/assets/root-BxJUvKau.js +0 -56
  615. package/codeyam-cli/src/webserver/build/client/assets/settings-DgTyB-Wg.js +0 -1
  616. package/codeyam-cli/src/webserver/build/client/assets/simulations-CoNWGt0K.js +0 -1
  617. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BMIGFP-m.js +0 -1
  618. package/codeyam-cli/src/webserver/build/client/assets/useInteractiveMode-Dk_FQqWJ.js +0 -1
  619. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DsJbgMY9.js +0 -1
  620. package/codeyam-cli/src/webserver/build/server/assets/index-CV6i1S1A.js +0 -1
  621. package/codeyam-cli/src/webserver/build/server/assets/server-build-BDlyhfrv.js +0 -175
  622. package/packages/ai/src/lib/findMatchingAttribute.js +0 -77
  623. package/packages/ai/src/lib/findMatchingAttribute.js.map +0 -1
  624. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +0 -298
  625. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +0 -1
  626. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +0 -226
  627. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +0 -1
  628. package/packages/ai/src/lib/generateEntityKeyAttributes.js +0 -408
  629. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +0 -1
  630. package/packages/ai/src/lib/isFrontend.js +0 -5
  631. package/packages/ai/src/lib/isFrontend.js.map +0 -1
  632. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +0 -40
  633. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +0 -1
  634. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +0 -77
  635. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +0 -1
  636. /package/analyzer-template/{process → packages/process/src}/GlobalProcessManager.ts +0 -0
  637. /package/analyzer-template/{process → packages/process/src}/ProcessManager.ts +0 -0
  638. /package/analyzer-template/{process → packages/process/src}/index.ts +0 -0
  639. /package/analyzer-template/{process → packages/process/src}/managedExecAsync.ts +0 -0
  640. /package/codeyam-cli/src/webserver/build/client/assets/{api.link-scenario-value-l0sNRNKZ.js → api.health-l0sNRNKZ.js} +0 -0
  641. /package/codeyam-cli/src/webserver/build/client/assets/{api.update-key-attributes-l0sNRNKZ.js → api.restart-server-l0sNRNKZ.js} +0 -0
  642. /package/codeyam-cli/src/webserver/build/client/assets/{api.update-valid-values-l0sNRNKZ.js → api.rules-l0sNRNKZ.js} +0 -0
  643. /package/{background/src/lib/process → packages/process/src}/GlobalProcessManager.js +0 -0
  644. /package/{background/src/lib/process → packages/process/src}/index.js +0 -0
  645. /package/{background/src/lib/process → packages/process/src}/managedExecAsync.js +0 -0
@@ -1,19 +1,11 @@
1
- import {
2
- DataStructure,
3
- Entity,
4
- Scenario,
5
- ReadonlyAnalysisMap,
6
- Analysis,
7
- } from '~codeyam/types';
8
- import gatherRelevantDependentKeyAttributes from '../gatherRelevantDependentKeyAttributes';
1
+ import { DataStructure, Entity, ExecutionFlow, Scenario } from '~codeyam/types';
9
2
 
10
3
  interface GenerateChangesEntityScenariosGeneratorArgs {
11
4
  entity: Pick<Entity, 'name' | 'code' | 'metadata'>;
12
5
  mergedDataStructure: Omit<DataStructure, 'equivalentSignatureVariables'>;
13
- keyAttributes: Analysis['metadata']['keyAttributes'];
14
- addedKeyAttributes: Analysis['metadata']['keyAttributes'];
15
- removedKeyAttributes: Analysis['metadata']['keyAttributes'];
16
- dependentAnalyses: ReadonlyAnalysisMap;
6
+ executionFlows?: ExecutionFlow[];
7
+ addedFlows?: ExecutionFlow[];
8
+ removedFlows?: ExecutionFlow[];
17
9
  existingScenarios: Scenario[];
18
10
  commitDiff: string;
19
11
  error: boolean;
@@ -22,80 +14,26 @@ interface GenerateChangesEntityScenariosGeneratorArgs {
22
14
 
23
15
  export default function generateChangesEntityScenariosGenerator({
24
16
  entity,
25
- mergedDataStructure,
26
- keyAttributes,
27
- addedKeyAttributes,
28
- removedKeyAttributes,
29
- dependentAnalyses,
17
+ executionFlows,
18
+ addedFlows,
19
+ removedFlows,
30
20
  existingScenarios,
31
21
  commitDiff,
32
22
  error,
33
23
  changedDataStructureFields = [],
34
24
  }: GenerateChangesEntityScenariosGeneratorArgs) {
35
- const relevantDependentKeyAttributesFlat =
36
- gatherRelevantDependentKeyAttributes(
37
- entity,
38
- mergedDataStructure,
39
- dependentAnalyses,
40
- );
41
-
42
- // Restructure flat array into nested format: { [filePath]: { [entityName]: KeyAttribute[] } }
43
- const relevantDependentKeyAttributes: Record<
44
- string,
45
- Record<string, any[]>
46
- > = {};
47
- for (const attr of relevantDependentKeyAttributesFlat) {
48
- const filePath = (attr as any).filePath;
49
- const entityName = (attr as any).originalEntityName;
50
-
51
- if (!filePath || !entityName) continue;
52
-
53
- if (!relevantDependentKeyAttributes[filePath]) {
54
- relevantDependentKeyAttributes[filePath] = {};
55
- }
56
- if (!relevantDependentKeyAttributes[filePath][entityName]) {
57
- relevantDependentKeyAttributes[filePath][entityName] = [];
58
- }
59
- relevantDependentKeyAttributes[filePath][entityName].push(attr);
60
- }
61
-
62
- const formatKeyAttrs = (attrs: Analysis['metadata']['keyAttributes']) =>
63
- attrs.map((ka) => ({
64
- dataStructurePath: ka.dataStructurePath,
65
- localVariable: ka.internalPath,
66
- description: ka.description,
67
- // Include indexed validValueOptions for structured references
68
- validValueOptions: ka.validValueOptions.map((value, index) => ({
69
- index,
70
- value,
71
- })),
72
- ...(ka.errorValueOptions?.length && {
73
- errorValueOptions: ka.errorValueOptions.map((value, index) => ({
74
- index,
75
- value,
76
- })),
77
- }),
78
- // Include new fields when present
79
- ...(ka.valueType && { valueType: ka.valueType }),
80
- ...(ka.dependencies && { dependencies: ka.dependencies }),
81
- // Include source locations showing where this attribute is used in conditionals
82
- ...(ka.sourceLocations?.length && {
83
- codeUsages: ka.sourceLocations.map((loc) => ({
84
- line: loc.lineNumber,
85
- code: loc.codeSnippet,
86
- context: loc.description,
87
- })),
88
- }),
89
- }));
90
-
91
25
  const addedSection =
92
- addedKeyAttributes?.length > 0
93
- ? JSON.stringify(formatKeyAttrs(addedKeyAttributes), null, 2)
26
+ addedFlows && addedFlows.length > 0
27
+ ? JSON.stringify(addedFlows, null, 2)
94
28
  : 'None';
95
29
 
96
30
  const removedSection =
97
- removedKeyAttributes?.length > 0
98
- ? JSON.stringify(removedKeyAttributes, null, 2)
31
+ removedFlows && removedFlows.length > 0
32
+ ? JSON.stringify(
33
+ removedFlows.map((f) => ({ id: f.id, name: f.name })),
34
+ null,
35
+ 2,
36
+ )
99
37
  : 'None';
100
38
 
101
39
  const changedFieldsSection =
@@ -107,18 +45,18 @@ Fields that changed type, were added, or removed:
107
45
  ${JSON.stringify(changedDataStructureFields, null, 2)}
108
46
  \`\`\`
109
47
 
110
- **Update keyAttributeInstructions for affected scenarios** (e.g., if "stats.visualEntities" changed from array to number).
48
+ **Update scenarios if their coveredFlows depend on these changed fields.**
111
49
  `
112
50
  : '';
113
51
 
114
52
  const existingScenariosJson = JSON.stringify(
115
53
  existingScenarios
116
- .filter((s) => (error ? !!s.metadata.error : !s.metadata.error))
54
+ .filter((s) => (error ? !!s.metadata?.error : !s.metadata?.error))
117
55
  .map((s) => ({
118
56
  name: s.name,
119
57
  description: s.description,
120
- keyAttributeInstructions: s.metadata.keyAttributeInstructions,
121
- playwrightInstructions: s.metadata.playwrightInstructions,
58
+ coveredFlows: s.metadata?.coveredFlows || [],
59
+ playwrightInstructions: s.metadata?.playwrightInstructions,
122
60
  })),
123
61
  null,
124
62
  2,
@@ -132,77 +70,29 @@ ${commitDiff}
132
70
  \`\`\``
133
71
  : '';
134
72
 
135
- const dependencySection =
136
- !error &&
137
- relevantDependentKeyAttributes &&
138
- Object.keys(relevantDependentKeyAttributes).length > 0
139
- ? `
140
- ## Dependency Key Attributes
73
+ const executionFlowsSection =
74
+ executionFlows && executionFlows.length > 0
75
+ ? `## Current Execution Flows
76
+ All distinct outcomes/behaviors this component can currently produce:
141
77
  \`\`\`json
142
- ${JSON.stringify(
143
- Object.keys(relevantDependentKeyAttributes).reduce((acc: any, path) => {
144
- acc[path] = Object.keys(relevantDependentKeyAttributes[path]).reduce(
145
- (entityAcc: any, entityName) => {
146
- entityAcc[entityName] = relevantDependentKeyAttributes[path][
147
- entityName
148
- ].map((ka: any) => ({
149
- dataStructurePath: ka.dataStructurePath,
150
- localVariable: ka.path || ka.internalPath,
151
- description: ka.description,
152
- // Include indexed validValueOptions for structured references
153
- validValueOptions: (ka.validValueOptions || []).map(
154
- (value: string, index: number) => ({
155
- index,
156
- value,
157
- }),
158
- ),
159
- ...(ka.errorValueOptions?.length && {
160
- errorValueOptions: ka.errorValueOptions.map(
161
- (value: string, index: number) => ({
162
- index,
163
- value,
164
- }),
165
- ),
166
- }),
167
- // Include new fields when present
168
- ...(ka.valueType && { valueType: ka.valueType }),
169
- ...(ka.dependencies && { dependencies: ka.dependencies }),
170
- // Include source locations showing where this attribute is used in conditionals
171
- ...(ka.sourceLocations?.length && {
172
- codeUsages: ka.sourceLocations.map((loc: any) => ({
173
- line: loc.lineNumber,
174
- code: loc.codeSnippet,
175
- context: loc.description,
176
- })),
177
- }),
178
- }));
179
- return entityAcc;
180
- },
181
- {},
182
- );
183
- return acc;
184
- }, {}),
185
- null,
186
- 2,
187
- )}
188
- \`\`\``
78
+ ${JSON.stringify(executionFlows, null, 2)}
79
+ \`\`\`
80
+ `
189
81
  : '';
190
82
 
191
- return `## Added Key Attributes
83
+ return `## Added Execution Flows
84
+ New flows that need scenario coverage:
192
85
  \`\`\`json
193
86
  ${addedSection}
194
87
  \`\`\`
195
88
 
196
- ## Removed Key Attributes
89
+ ## Removed Execution Flows
90
+ Flows that no longer exist (remove from scenarios):
197
91
  \`\`\`json
198
92
  ${removedSection}
199
93
  \`\`\`
200
94
  ${changedFieldsSection}
201
- ## Current Key Attributes
202
- \`\`\`json
203
- ${JSON.stringify(formatKeyAttrs(keyAttributes), null, 2)}
204
- \`\`\`
205
-
95
+ ${executionFlowsSection}
206
96
  ## Existing Scenarios
207
97
  \`\`\`json
208
98
  ${existingScenariosJson}
@@ -212,5 +102,5 @@ ${diffSection}
212
102
  ## Current Code
213
103
  \`\`\`typescript
214
104
  ${entity.code}
215
- \`\`\`${dependencySection}`;
105
+ \`\`\``;
216
106
  }
@@ -0,0 +1,82 @@
1
+ import {
2
+ ExecutionFlow,
3
+ Scenario,
4
+ ScenariosDataStructure,
5
+ } from '~codeyam/types';
6
+ import simplifyKeysForLLM from './simplifyKeysForLLM';
7
+ import noErrorAttributes from './noErrorAttributes';
8
+ import { JsonTypeDefinition } from '~codeyam/types';
9
+
10
+ type RequiredValue = NonNullable<ExecutionFlow['requiredValues']>[number];
11
+
12
+ interface GenerateChunkPromptArgs {
13
+ scenario: Scenario;
14
+ chunk: ScenariosDataStructure['dataForMocks'];
15
+ chunkIndex: number;
16
+ totalChunks: number;
17
+ relevantRequiredValues: RequiredValue[];
18
+ }
19
+
20
+ /**
21
+ * Generate a prompt for a focused LLM call to generate mock data for a single chunk.
22
+ *
23
+ * Large data structures overwhelm LLMs, causing them to make mistakes on some keys.
24
+ * By processing smaller chunks, each key gets more focused attention.
25
+ */
26
+ export default function generateChunkPrompt({
27
+ scenario,
28
+ chunk,
29
+ chunkIndex,
30
+ totalChunks,
31
+ relevantRequiredValues,
32
+ }: GenerateChunkPromptArgs): string {
33
+ // Clean up the schema for LLM consumption
34
+ const cleanedSchema = simplifyKeysForLLM(
35
+ noErrorAttributes(chunk) as JsonTypeDefinition,
36
+ );
37
+
38
+ const keysInChunk = Object.keys(chunk || {});
39
+
40
+ // Build requirements section if there are relevant requiredValues
41
+ const requirementsSection =
42
+ relevantRequiredValues.length > 0
43
+ ? `## Execution Flow Requirements for These Keys
44
+ These specific values MUST be set to produce the correct scenario behavior:
45
+ \`\`\`json
46
+ ${JSON.stringify(relevantRequiredValues, null, 2)}
47
+ \`\`\`
48
+
49
+ `
50
+ : '';
51
+
52
+ return `Generate mock data for chunk ${chunkIndex + 1} of ${totalChunks}.
53
+
54
+ ## Scenario
55
+ \`\`\`json
56
+ ${JSON.stringify({ name: scenario.name, description: scenario.description }, null, 2)}
57
+ \`\`\`
58
+
59
+ ${requirementsSection}## Keys in This Chunk (${keysInChunk.length} keys)
60
+ Generate data for ONLY these keys:
61
+ ${keysInChunk.map((k) => `- \`${k}\``).join('\n')}
62
+
63
+ ## Schema for This Chunk
64
+ \`\`\`json
65
+ ${JSON.stringify(cleanedSchema, null, 2)}
66
+ \`\`\`
67
+
68
+ ## Instructions
69
+ 1. Match the EXACT structure shown in the schema
70
+ 2. Keys with special characters like \`*\` are LITERAL keys, not patterns
71
+ 3. If requiredValues are shown above, set values that satisfy them
72
+ 4. For paths like \`functionCall().functionCallReturnValue.property\`, the mock data key is just \`functionCall()\`
73
+
74
+ Return ONLY a JSON object with this structure:
75
+ \`\`\`json
76
+ {
77
+ "mockData": {
78
+ // fill in ONLY the keys from this chunk
79
+ }
80
+ }
81
+ \`\`\``;
82
+ }
@@ -0,0 +1,103 @@
1
+ import {
2
+ ExecutionFlow,
3
+ Scenario,
4
+ ScenariosDataStructure,
5
+ } from '~codeyam/types';
6
+ import simplifyKeysForLLM from './simplifyKeysForLLM';
7
+ import noErrorAttributes from './noErrorAttributes';
8
+ import { JsonTypeDefinition } from '~codeyam/types';
9
+
10
+ interface GenerateCriticalKeysPromptArgs {
11
+ scenario: Scenario;
12
+ executionFlows: ExecutionFlow[] | undefined;
13
+ criticalKeys: string[];
14
+ fullDataForMocks: ScenariosDataStructure['dataForMocks'];
15
+ }
16
+
17
+ /**
18
+ * Generate a prompt for a focused LLM call to generate only the critical mock data keys.
19
+ *
20
+ * When a scenario has covered flows with requiredValues, only a subset of the full
21
+ * dataForMocks schema is actually needed to satisfy those requirements. This prompt
22
+ * focuses the LLM on JUST those critical keys, avoiding confusion from large schemas.
23
+ *
24
+ * This is called BEFORE the main data generation to ensure critical keys are correctly
25
+ * generated with full attention from the LLM.
26
+ */
27
+ export default function generateCriticalKeysPrompt({
28
+ scenario,
29
+ executionFlows,
30
+ criticalKeys,
31
+ fullDataForMocks,
32
+ }: GenerateCriticalKeysPromptArgs): string {
33
+ // Build the subset schema with only critical keys
34
+ const criticalSchema: Record<string, any> = {};
35
+ if (fullDataForMocks && typeof fullDataForMocks === 'object') {
36
+ for (const key of criticalKeys) {
37
+ if (key in fullDataForMocks) {
38
+ criticalSchema[key] = (fullDataForMocks as Record<string, any>)[key];
39
+ }
40
+ }
41
+ }
42
+
43
+ // Clean up the schema for LLM consumption
44
+ const cleanedSchema = simplifyKeysForLLM(
45
+ noErrorAttributes(criticalSchema) as JsonTypeDefinition,
46
+ );
47
+
48
+ // Get the covered flows and their requirements
49
+ const coveredFlowIds = scenario.metadata?.coveredFlows || [];
50
+ const coveredFlowRequirements = coveredFlowIds
51
+ .map((flowId) => {
52
+ const flow = executionFlows?.find((f) => f.id === flowId);
53
+ if (!flow) return null;
54
+ return {
55
+ flowId: flow.id,
56
+ flowName: flow.name,
57
+ flowDescription: flow.description,
58
+ requiredValues: flow.requiredValues,
59
+ };
60
+ })
61
+ .filter(Boolean);
62
+
63
+ return `Generate mock data for these CRITICAL keys. Pay close attention to the requiredValues.
64
+
65
+ ## IMPORTANT: These keys are critical for satisfying the execution flow requirements
66
+ The keys below directly control the scenario's behavior. Generate values that EXACTLY satisfy the requiredValues.
67
+
68
+ ## Scenario
69
+ \`\`\`json
70
+ ${JSON.stringify({ name: scenario.name, description: scenario.description }, null, 2)}
71
+ \`\`\`
72
+
73
+ ## Execution Flow Requirements
74
+ These are the specific values that MUST be set:
75
+ \`\`\`json
76
+ ${JSON.stringify(coveredFlowRequirements, null, 2)}
77
+ \`\`\`
78
+
79
+ ## Critical Keys Schema (generate data for ONLY these keys)
80
+ \`\`\`json
81
+ ${JSON.stringify(cleanedSchema, null, 2)}
82
+ \`\`\`
83
+
84
+ ## Instructions
85
+ 1. Match the EXACT structure shown in the schema
86
+ 2. Keys with special characters like \`*\` are LITERAL keys, not patterns
87
+ 3. Set values that satisfy ALL the requiredValues above
88
+ 4. For paths like \`functionCall().functionCallReturnValue.property\`, the mock data key is just \`functionCall()\`
89
+
90
+ Return ONLY a JSON object with this structure:
91
+ \`\`\`json
92
+ {
93
+ "scenarioData": {
94
+ "scenarioName": "${scenario.name}",
95
+ "data": {
96
+ "mockData": {
97
+ // fill in ONLY the critical keys above
98
+ }
99
+ }
100
+ }
101
+ }
102
+ \`\`\``;
103
+ }
@@ -1,21 +1,84 @@
1
- import { ScenariosDataStructure, Scenario, ScenarioData } from '~codeyam/types';
1
+ import {
2
+ ScenariosDataStructure,
3
+ Scenario,
4
+ ScenarioData,
5
+ JsonTypeDefinition,
6
+ ExecutionFlow,
7
+ } from '~codeyam/types';
2
8
  import noErrorAttributes from './noErrorAttributes';
9
+ import simplifyKeysForLLM from './simplifyKeysForLLM';
10
+
11
+ /**
12
+ * Sort object keys by the size of their JSON-stringified values (smallest first).
13
+ * This ensures small keys appear before large keys in the LLM prompt, increasing
14
+ * the chance they get generated before the LLM loses focus on large schemas.
15
+ */
16
+ function sortKeysBySize(obj: Record<string, any>): Record<string, any> {
17
+ const entries = Object.entries(obj);
18
+ entries.sort(([, a], [, b]) => {
19
+ const sizeA = JSON.stringify(a).length;
20
+ const sizeB = JSON.stringify(b).length;
21
+ return sizeA - sizeB;
22
+ });
23
+ return Object.fromEntries(entries);
24
+ }
25
+
26
+ interface GeneratePromptOptions {
27
+ /** When true, mockData has already been generated via chunks - skip it in main call */
28
+ mockDataAlreadyGenerated?: boolean;
29
+ }
3
30
 
4
31
  export default function generateEntityScenarioDataGenerator(
5
32
  structure: ScenariosDataStructure,
6
33
  scenario: Scenario,
34
+ executionFlows: ExecutionFlow[] | undefined,
7
35
  defaultScenarioData?: ScenarioData,
8
36
  incompleteResponse?: string,
37
+ options?: GeneratePromptOptions,
9
38
  ) {
10
39
  if (incompleteResponse) {
11
40
  return incompleteResponse;
12
41
  }
13
42
 
43
+ // Get the covered flows for this scenario and look up their requiredValues
44
+ const coveredFlowIds = scenario.metadata?.coveredFlows || [];
45
+ const coveredFlowRequirements = coveredFlowIds
46
+ .map((flowId) => {
47
+ const flow = executionFlows?.find((f) => f.id === flowId);
48
+ if (!flow) return null;
49
+ return {
50
+ flowId: flow.id,
51
+ flowName: flow.name,
52
+ flowDescription: flow.description,
53
+ requiredValues: flow.requiredValues,
54
+ };
55
+ })
56
+ .filter(Boolean);
57
+
58
+ // Get blocking flows that are NOT covered by this scenario
59
+ // These should be explicitly avoided in the mock data
60
+ const blockingFlowsToAvoid = (executionFlows || [])
61
+ .filter(
62
+ (flow) =>
63
+ flow.blocksOtherFlows === true && !coveredFlowIds.includes(flow.id),
64
+ )
65
+ .map((flow) => ({
66
+ flowId: flow.id,
67
+ flowName: flow.name,
68
+ flowDescription: flow.description,
69
+ requiredValues: flow.requiredValues,
70
+ }));
71
+
14
72
  const scenarioJson = JSON.stringify(
15
73
  {
16
74
  name: scenario.name,
17
75
  description: scenario.description,
18
- keyAttributeInstructions: scenario.metadata.keyAttributeInstructions,
76
+ // Include the flow requirements to guide data generation
77
+ coveredFlows: coveredFlowRequirements,
78
+ // Include blocking flows to avoid
79
+ ...(blockingFlowsToAvoid.length > 0 && {
80
+ blockingFlowsToAvoid,
81
+ }),
19
82
  },
20
83
  null,
21
84
  2,
@@ -30,12 +93,33 @@ ${JSON.stringify(defaultScenarioData.data, null, 2)}
30
93
  `
31
94
  : '';
32
95
 
33
- const mockDataSection = structure.dataForMocks
34
- ? `## mockData Structure
96
+ // Simplify verbose function call keys for LLM consumption, then sort by size.
97
+ // The static analysis generates keys like "useQuery({ id: Number(id), onSuccess: async (quote) => { ...30 lines... } })"
98
+ // which confuse the LLM. simplifyKeysForLLM reduces them to "useQuery({ id, onSuccess: () => <truncated> })"
99
+ // while the reconcileMockDataKeys function will still match the simplified response back to original keys.
100
+ // Then sort keys by size (smallest first) so small keys appear before large keys,
101
+ // increasing the chance the LLM generates all keys for large schemas.
102
+ const cleanedDataForMocks = structure.dataForMocks
103
+ ? simplifyKeysForLLM(
104
+ noErrorAttributes(structure.dataForMocks) as JsonTypeDefinition,
105
+ )
106
+ : null;
107
+ const sortedDataForMocks =
108
+ cleanedDataForMocks &&
109
+ typeof cleanedDataForMocks === 'object' &&
110
+ !Array.isArray(cleanedDataForMocks)
111
+ ? sortKeysBySize(cleanedDataForMocks as Record<string, any>)
112
+ : cleanedDataForMocks;
113
+
114
+ // When mockData has already been generated via chunks, skip it in the main call
115
+ const mockDataSection = options?.mockDataAlreadyGenerated
116
+ ? '## mockData Structure\nmockData has been pre-generated—return `{}` for mockData.'
117
+ : sortedDataForMocks
118
+ ? `## mockData Structure
35
119
  \`\`\`json
36
- ${JSON.stringify(noErrorAttributes(structure.dataForMocks), null, 2)}
120
+ ${JSON.stringify(sortedDataForMocks, null, 2)}
37
121
  \`\`\``
38
- : '## mockData Structure\nNone—return `{}` for mockData.';
122
+ : '## mockData Structure\nNone—return `{}` for mockData.';
39
123
 
40
124
  const argumentsSection = structure.arguments
41
125
  ? `## argumentsData Structure
@@ -1,105 +1,30 @@
1
- import { Analysis, Entity } from '~codeyam/types';
1
+ import { Entity, ExecutionFlow } from '~codeyam/types';
2
2
 
3
3
  interface GenerateEntityScenariosGeneratorArgs {
4
4
  entity: Pick<Entity, 'code' | 'metadata' | 'filePath' | 'name'>;
5
- keyAttributes: Analysis['metadata']['keyAttributes'];
5
+ executionFlows?: ExecutionFlow[];
6
6
  error: boolean;
7
7
  }
8
8
 
9
9
  export default function generateEntityScenariosGenerator({
10
10
  entity,
11
- keyAttributes,
11
+ executionFlows,
12
12
  error,
13
13
  }: GenerateEntityScenariosGeneratorArgs) {
14
- const thisEntityKeyAttributes = keyAttributes?.filter(
15
- (ka) => !ka.dependentEntityName,
16
- );
17
-
18
- const relevantDependentKeyAttributes = keyAttributes?.filter(
19
- (ka) => ka.dependentEntityName,
20
- );
21
-
22
- const keyAttrsJson = JSON.stringify(
23
- thisEntityKeyAttributes.map((ka) => ({
24
- dataStructurePath: ka.dataStructurePath,
25
- localVariable: ka.internalPath,
26
- description: ka.description,
27
- // Include indexed validValueOptions for structured references
28
- validValueOptions: ka.validValueOptions.map((value, index) => ({
29
- index,
30
- value,
31
- })),
32
- ...(ka.errorValueOptions?.length && {
33
- errorValueOptions: ka.errorValueOptions.map((value, index) => ({
34
- index,
35
- value,
36
- })),
37
- }),
38
- // Include new fields when present
39
- ...(ka.valueType && { valueType: ka.valueType }),
40
- ...(ka.dependencies && { dependencies: ka.dependencies }),
41
- // Include source locations showing where this attribute is used in conditionals
42
- ...(ka.sourceLocations?.length && {
43
- codeUsages: ka.sourceLocations.map((loc) => ({
44
- line: loc.lineNumber,
45
- code: loc.codeSnippet,
46
- context: loc.description,
47
- })),
48
- }),
49
- })),
50
- null,
51
- 2,
52
- );
53
-
54
- const dependencySection =
55
- !error &&
56
- relevantDependentKeyAttributes &&
57
- relevantDependentKeyAttributes.length > 0
58
- ? `
59
- ## Dependency Key Attributes
60
- \`\`\`json
61
- ${JSON.stringify(
62
- relevantDependentKeyAttributes.map((ka) => ({
63
- dataStructurePath: ka.dataStructurePath,
64
- localVariable: ka.internalPath,
65
- forDependency: ka.dependentEntityName,
66
- description: ka.description,
67
- // Include indexed validValueOptions for structured references
68
- validValueOptions: ka.validValueOptions.map((value, index) => ({
69
- index,
70
- value,
71
- })),
72
- ...(ka.errorValueOptions?.length && {
73
- errorValueOptions: ka.errorValueOptions.map((value, index) => ({
74
- index,
75
- value,
76
- })),
77
- }),
78
- // Include new fields when present
79
- ...(ka.valueType && { valueType: ka.valueType }),
80
- ...(ka.dependencies && { dependencies: ka.dependencies }),
81
- // Include source locations showing where this attribute is used in conditionals
82
- ...(ka.sourceLocations?.length && {
83
- codeUsages: ka.sourceLocations.map((loc) => ({
84
- line: loc.lineNumber,
85
- code: loc.codeSnippet,
86
- context: loc.description,
87
- })),
88
- }),
89
- })),
90
- null,
91
- 2,
92
- )}
93
- \`\`\``
94
- : '';
95
-
96
- return `## Key Attributes
14
+ // Build execution flows section
15
+ const executionFlowsSection =
16
+ !error && executionFlows && executionFlows.length > 0
17
+ ? `## Execution Flows
18
+ These are all the distinct outcomes/behaviors this component can produce. Create scenarios that maximize coverage of these flows.
97
19
  \`\`\`json
98
- ${keyAttrsJson}
20
+ ${JSON.stringify(executionFlows, null, 2)}
99
21
  \`\`\`
100
22
 
101
- ## Code
23
+ `
24
+ : '';
25
+
26
+ return `${executionFlowsSection}## Code
102
27
  \`\`\`typescript
103
28
  ${entity.code}
104
- \`\`\`${dependencySection}`;
29
+ \`\`\``;
105
30
  }