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

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 (953) 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 +15 -12
  5. package/analyzer-template/packages/ai/index.ts +21 -5
  6. package/analyzer-template/packages/ai/package.json +3 -3
  7. package/analyzer-template/packages/ai/src/lib/__mocks__/completionCall.ts +122 -0
  8. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +226 -24
  9. package/analyzer-template/packages/ai/src/lib/astScopes/arrayDerivationDetector.ts +199 -0
  10. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +183 -10
  11. package/analyzer-template/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.ts +644 -0
  12. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +181 -23
  13. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
  14. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.ts +18 -0
  15. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +15 -0
  16. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.ts +181 -1
  17. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +1229 -30
  18. package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
  19. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +265 -6
  20. package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +29 -10
  21. package/analyzer-template/packages/ai/src/lib/completionCall.ts +216 -36
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +1867 -334
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +7 -2
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +296 -35
  25. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +120 -76
  26. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +16 -3
  27. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +6 -4
  28. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +54 -3
  29. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +140 -20
  30. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
  31. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +140 -14
  32. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.ts +98 -0
  33. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +179 -0
  34. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.ts +40 -30
  35. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +393 -90
  36. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.ts +129 -0
  37. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +174 -0
  38. package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
  39. package/analyzer-template/packages/ai/src/lib/e2eDataTracking.ts +334 -0
  40. package/analyzer-template/packages/ai/src/lib/extractCriticalDataKeys.ts +120 -0
  41. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +74 -7
  42. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +86 -142
  43. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +59 -3
  44. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +1421 -88
  45. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +200 -196
  46. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +614 -0
  47. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
  48. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +2484 -0
  49. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +239 -0
  50. package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +5 -5
  51. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +328 -7
  52. package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
  53. package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +111 -87
  54. package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
  55. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +10 -7
  56. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +1 -1
  57. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +32 -142
  58. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChunkPrompt.ts +82 -0
  59. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateCriticalKeysPrompt.ts +103 -0
  60. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +110 -6
  61. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +14 -89
  62. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
  63. package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +11 -11
  64. package/analyzer-template/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.ts +391 -0
  65. package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +824 -0
  66. package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +5 -1
  67. package/analyzer-template/packages/ai/src/lib/validateExecutionFlowPaths.ts +531 -0
  68. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +122 -3
  69. package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +114 -2
  70. package/analyzer-template/packages/analyze/index.ts +2 -0
  71. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +79 -59
  72. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +113 -26
  73. package/analyzer-template/packages/analyze/src/lib/analysisContext.ts +44 -4
  74. package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +1 -0
  75. package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
  76. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +19 -0
  77. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +19 -0
  78. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +11 -0
  79. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +8 -0
  80. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +49 -1
  81. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +2 -1
  82. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +466 -270
  83. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +34 -1
  84. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +6 -0
  85. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +3 -0
  86. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +4 -2
  87. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +33 -10
  88. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +31 -15
  89. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +11 -7
  90. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +11 -12
  91. package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +4 -5
  92. package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
  93. package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +14 -12
  94. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1315 -0
  95. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +201 -46
  96. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
  97. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +593 -84
  98. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +28 -62
  99. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +377 -84
  100. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +264 -0
  101. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +35 -129
  102. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +2 -3
  103. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +970 -140
  104. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +56 -11
  105. package/analyzer-template/packages/analyze/src/lib/files/scenarios/propagateArrayItemSchemas.ts +474 -0
  106. package/analyzer-template/packages/analyze/src/lib/files/setImportedExports.ts +2 -1
  107. package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
  108. package/analyzer-template/packages/analyze/src/lib/utils/getFileByPath.ts +19 -0
  109. package/analyzer-template/packages/aws/codebuild/index.ts +1 -0
  110. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +11 -1
  111. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -1
  112. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +29 -18
  113. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -1
  114. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +2 -2
  115. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -1
  116. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +2 -2
  117. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  118. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +8 -18
  119. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -1
  120. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +17 -61
  121. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  122. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -1
  123. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +8 -1
  124. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -1
  125. package/analyzer-template/packages/aws/package.json +3 -3
  126. package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +43 -19
  127. package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +3 -3
  128. package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +17 -69
  129. package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +8 -1
  130. package/analyzer-template/packages/database/package.json +1 -1
  131. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  132. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  133. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  134. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  135. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  136. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  137. package/analyzer-template/packages/database/src/lib/kysely/db.ts +14 -1
  138. package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +6 -0
  139. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +17 -1
  140. package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
  141. package/analyzer-template/packages/database/src/lib/loadAnalyses.ts +58 -1
  142. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +13 -0
  143. package/analyzer-template/packages/database/src/lib/loadBranch.ts +16 -1
  144. package/analyzer-template/packages/database/src/lib/loadCommit.ts +11 -0
  145. package/analyzer-template/packages/database/src/lib/loadCommits.ts +28 -0
  146. package/analyzer-template/packages/database/src/lib/loadEntities.ts +26 -3
  147. package/analyzer-template/packages/database/src/lib/loadEntityBranches.ts +12 -0
  148. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +7 -3
  149. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  150. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  151. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  152. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +7 -14
  153. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  154. package/analyzer-template/packages/generate/index.ts +3 -0
  155. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +17 -1
  156. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +193 -0
  157. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
  158. package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
  159. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
  160. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
  161. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
  162. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
  163. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
  164. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
  165. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
  166. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
  167. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
  168. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
  169. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
  170. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
  171. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -0
  172. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  173. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +11 -1
  174. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  175. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +1 -18
  176. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -1
  177. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts +1 -0
  178. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts.map +1 -1
  179. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js +3 -0
  180. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  181. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +17 -1
  182. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -1
  183. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  184. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts +1 -0
  185. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -1
  186. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
  187. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
  188. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  189. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  190. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +2 -6
  191. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  192. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts +2 -0
  193. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts.map +1 -1
  194. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js +45 -2
  195. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js.map +1 -1
  196. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  197. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +8 -0
  198. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  199. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js +11 -1
  200. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js.map +1 -1
  201. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.d.ts.map +1 -1
  202. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js +7 -0
  203. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js.map +1 -1
  204. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts +3 -1
  205. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  206. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +22 -1
  207. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  208. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts +3 -1
  209. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  210. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +23 -4
  211. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  212. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.d.ts.map +1 -1
  213. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js +9 -0
  214. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js.map +1 -1
  215. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  216. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
  217. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  218. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
  219. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
  220. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
  221. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
  222. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
  223. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
  224. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts +2 -2
  225. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  226. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +5 -4
  227. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  228. package/analyzer-template/packages/github/dist/generate/index.d.ts +3 -0
  229. package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -1
  230. package/analyzer-template/packages/github/dist/generate/index.js +3 -0
  231. package/analyzer-template/packages/github/dist/generate/index.js.map +1 -1
  232. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
  233. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  234. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  235. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts +9 -0
  236. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -0
  237. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  238. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  239. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts +20 -0
  240. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts.map +1 -0
  241. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  242. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  243. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts +8 -0
  244. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts.map +1 -0
  245. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js +89 -0
  246. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  247. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -1
  248. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +10 -0
  249. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -1
  250. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -1
  251. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +3 -0
  252. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -1
  253. package/analyzer-template/packages/github/dist/types/index.d.ts +3 -4
  254. package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
  255. package/analyzer-template/packages/github/dist/types/index.js +0 -1
  256. package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
  257. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +71 -27
  258. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
  259. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts +2 -0
  260. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts.map +1 -1
  261. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +2 -0
  262. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -1
  263. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  264. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  265. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +9 -54
  266. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  267. package/analyzer-template/packages/github/dist/types/src/types/Scenario.js +1 -21
  268. package/analyzer-template/packages/github/dist/types/src/types/Scenario.js.map +1 -1
  269. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +153 -5
  270. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  271. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  272. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  273. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +2 -0
  274. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  275. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts +9 -1
  276. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  277. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +29 -3
  278. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -1
  279. package/analyzer-template/packages/github/package.json +1 -1
  280. package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +14 -0
  281. package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +2 -0
  282. package/analyzer-template/packages/process/index.ts +2 -0
  283. package/analyzer-template/packages/process/package.json +12 -0
  284. package/analyzer-template/packages/process/tsconfig.json +8 -0
  285. package/analyzer-template/packages/types/index.ts +3 -6
  286. package/analyzer-template/packages/types/src/types/Analysis.ts +87 -27
  287. package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
  288. package/analyzer-template/packages/types/src/types/Entity.ts +2 -0
  289. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +7 -0
  290. package/analyzer-template/packages/types/src/types/Scenario.ts +9 -77
  291. package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +181 -5
  292. package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
  293. package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
  294. package/analyzer-template/packages/utils/dist/types/index.d.ts +3 -4
  295. package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
  296. package/analyzer-template/packages/utils/dist/types/index.js +0 -1
  297. package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
  298. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +71 -27
  299. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
  300. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts +2 -0
  301. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts.map +1 -1
  302. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +2 -0
  303. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -1
  304. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  305. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  306. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +9 -54
  307. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  308. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js +1 -21
  309. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js.map +1 -1
  310. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +153 -5
  311. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  312. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  313. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  314. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +2 -0
  315. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  316. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  317. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +93 -2
  318. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  319. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +9 -1
  320. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  321. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +29 -3
  322. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -1
  323. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +108 -2
  324. package/analyzer-template/packages/utils/src/lib/safeFileName.ts +48 -3
  325. package/analyzer-template/playwright/capture.ts +57 -26
  326. package/analyzer-template/playwright/captureStatic.ts +1 -1
  327. package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
  328. package/analyzer-template/playwright/waitForServer.ts +21 -6
  329. package/analyzer-template/project/analyzeBaselineCommit.ts +9 -0
  330. package/analyzer-template/project/analyzeBranchCommit.ts +4 -0
  331. package/analyzer-template/project/analyzeFileEntities.ts +4 -0
  332. package/analyzer-template/project/analyzeRegularCommit.ts +9 -0
  333. package/analyzer-template/project/captureLibraryFunctionDirect.ts +29 -26
  334. package/analyzer-template/project/constructMockCode.ts +1201 -178
  335. package/analyzer-template/project/controller/startController.ts +16 -1
  336. package/analyzer-template/project/createEntitiesAndSortFiles.ts +83 -0
  337. package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
  338. package/analyzer-template/project/loadReadyToBeCaptured.ts +65 -41
  339. package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
  340. package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
  341. package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +3 -6
  342. package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +18 -7
  343. package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
  344. package/analyzer-template/project/orchestrateCapture.ts +81 -9
  345. package/analyzer-template/project/reconcileMockDataKeys.ts +220 -78
  346. package/analyzer-template/project/runAnalysis.ts +11 -0
  347. package/analyzer-template/project/serverOnlyModules.ts +127 -2
  348. package/analyzer-template/project/start.ts +51 -15
  349. package/analyzer-template/project/startScenarioCapture.ts +6 -0
  350. package/analyzer-template/project/writeMockDataTsx.ts +345 -32
  351. package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
  352. package/analyzer-template/project/writeScenarioComponents.ts +358 -118
  353. package/analyzer-template/project/writeScenarioFiles.ts +26 -0
  354. package/analyzer-template/project/writeSimpleRoot.ts +28 -42
  355. package/analyzer-template/scripts/comboWorkerLoop.cjs +99 -50
  356. package/analyzer-template/scripts/defaultCmd.sh +9 -0
  357. package/analyzer-template/tsconfig.json +2 -1
  358. package/background/src/lib/local/createLocalAnalyzer.js +2 -30
  359. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  360. package/background/src/lib/local/execAsync.js +1 -1
  361. package/background/src/lib/local/execAsync.js.map +1 -1
  362. package/background/src/lib/virtualized/common/execAsync.js +1 -1
  363. package/background/src/lib/virtualized/common/execAsync.js.map +1 -1
  364. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +7 -1
  365. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
  366. package/background/src/lib/virtualized/project/analyzeBranchCommit.js +2 -1
  367. package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -1
  368. package/background/src/lib/virtualized/project/analyzeFileEntities.js +2 -1
  369. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  370. package/background/src/lib/virtualized/project/analyzeRegularCommit.js +7 -1
  371. package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
  372. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +3 -3
  373. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -1
  374. package/background/src/lib/virtualized/project/constructMockCode.js +1062 -134
  375. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  376. package/background/src/lib/virtualized/project/controller/startController.js +11 -1
  377. package/background/src/lib/virtualized/project/controller/startController.js.map +1 -1
  378. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +73 -1
  379. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -1
  380. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +6 -3
  381. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -1
  382. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +19 -8
  383. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
  384. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +7 -7
  385. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -1
  386. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js +2 -2
  387. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -1
  388. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +3 -2
  389. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
  390. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +7 -5
  391. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
  392. package/background/src/lib/virtualized/project/orchestrateCapture.js +65 -10
  393. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  394. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +188 -47
  395. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  396. package/background/src/lib/virtualized/project/runAnalysis.js +9 -0
  397. package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
  398. package/background/src/lib/virtualized/project/serverOnlyModules.js +106 -3
  399. package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -1
  400. package/background/src/lib/virtualized/project/start.js +47 -15
  401. package/background/src/lib/virtualized/project/start.js.map +1 -1
  402. package/background/src/lib/virtualized/project/startScenarioCapture.js +7 -0
  403. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  404. package/background/src/lib/virtualized/project/writeMockDataTsx.js +301 -27
  405. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  406. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js +15 -0
  407. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js.map +1 -0
  408. package/background/src/lib/virtualized/project/writeScenarioComponents.js +278 -100
  409. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  410. package/background/src/lib/virtualized/project/writeScenarioFiles.js +19 -0
  411. package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -1
  412. package/background/src/lib/virtualized/project/writeSimpleRoot.js +28 -41
  413. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  414. package/codeyam-cli/scripts/apply-setup.js +180 -0
  415. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  416. package/codeyam-cli/src/cli.js +9 -1
  417. package/codeyam-cli/src/cli.js.map +1 -1
  418. package/codeyam-cli/src/codeyam-cli.js +18 -2
  419. package/codeyam-cli/src/codeyam-cli.js.map +1 -1
  420. package/codeyam-cli/src/commands/analyze.js +5 -3
  421. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  422. package/codeyam-cli/src/commands/baseline.js +176 -0
  423. package/codeyam-cli/src/commands/baseline.js.map +1 -0
  424. package/codeyam-cli/src/commands/debug.js +37 -23
  425. package/codeyam-cli/src/commands/debug.js.map +1 -1
  426. package/codeyam-cli/src/commands/default.js +30 -34
  427. package/codeyam-cli/src/commands/default.js.map +1 -1
  428. package/codeyam-cli/src/commands/detect-universal-mocks.js +2 -0
  429. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +1 -1
  430. package/codeyam-cli/src/commands/init.js +49 -257
  431. package/codeyam-cli/src/commands/init.js.map +1 -1
  432. package/codeyam-cli/src/commands/memory.js +264 -0
  433. package/codeyam-cli/src/commands/memory.js.map +1 -0
  434. package/codeyam-cli/src/commands/recapture.js +31 -18
  435. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  436. package/codeyam-cli/src/commands/report.js +46 -1
  437. package/codeyam-cli/src/commands/report.js.map +1 -1
  438. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  439. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  440. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  441. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  442. package/codeyam-cli/src/commands/start.js +8 -12
  443. package/codeyam-cli/src/commands/start.js.map +1 -1
  444. package/codeyam-cli/src/commands/status.js +23 -1
  445. package/codeyam-cli/src/commands/status.js.map +1 -1
  446. package/codeyam-cli/src/commands/test-startup.js +3 -1
  447. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  448. package/codeyam-cli/src/commands/verify.js +14 -2
  449. package/codeyam-cli/src/commands/verify.js.map +1 -1
  450. package/codeyam-cli/src/commands/wipe.js +108 -0
  451. package/codeyam-cli/src/commands/wipe.js.map +1 -0
  452. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
  453. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
  454. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +128 -82
  455. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  456. package/codeyam-cli/src/utils/analysisRunner.js +29 -15
  457. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  458. package/codeyam-cli/src/utils/analyzer.js +7 -0
  459. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  460. package/codeyam-cli/src/utils/backgroundServer.js +112 -21
  461. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  462. package/codeyam-cli/src/utils/database.js +91 -5
  463. package/codeyam-cli/src/utils/database.js.map +1 -1
  464. package/codeyam-cli/src/utils/generateReport.js +4 -3
  465. package/codeyam-cli/src/utils/generateReport.js.map +1 -1
  466. package/codeyam-cli/src/utils/git.js +79 -0
  467. package/codeyam-cli/src/utils/git.js.map +1 -0
  468. package/codeyam-cli/src/utils/install-skills.js +76 -37
  469. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  470. package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
  471. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
  472. package/codeyam-cli/src/utils/progress.js +7 -0
  473. package/codeyam-cli/src/utils/progress.js.map +1 -1
  474. package/codeyam-cli/src/utils/queue/job.js +109 -0
  475. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  476. package/codeyam-cli/src/utils/queue/manager.js +6 -0
  477. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  478. package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
  479. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  480. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  481. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
  482. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
  483. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +230 -0
  484. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
  485. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
  486. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
  487. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
  488. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
  489. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
  490. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
  491. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
  492. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
  493. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +75 -0
  494. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
  495. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +378 -0
  496. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
  497. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +115 -0
  498. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
  499. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
  500. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
  501. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
  502. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
  503. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
  504. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
  505. package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
  506. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
  507. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
  508. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
  509. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
  510. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
  511. package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
  512. package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
  513. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
  514. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
  515. package/codeyam-cli/src/utils/rules/index.js +6 -0
  516. package/codeyam-cli/src/utils/rules/index.js.map +1 -0
  517. package/codeyam-cli/src/utils/rules/parser.js +83 -0
  518. package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
  519. package/codeyam-cli/src/utils/rules/pathMatcher.js +18 -0
  520. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
  521. package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
  522. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
  523. package/codeyam-cli/src/utils/rules/staleness.js +137 -0
  524. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
  525. package/codeyam-cli/src/utils/serverState.js +37 -10
  526. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  527. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +21 -42
  528. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  529. package/codeyam-cli/src/utils/versionInfo.js +25 -19
  530. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  531. package/codeyam-cli/src/utils/wipe.js +128 -0
  532. package/codeyam-cli/src/utils/wipe.js.map +1 -0
  533. package/codeyam-cli/src/webserver/app/lib/database.js +88 -23
  534. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  535. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  536. package/codeyam-cli/src/webserver/backgroundServer.js +50 -0
  537. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  538. package/codeyam-cli/src/webserver/bootstrap.js +51 -0
  539. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
  540. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-D9i_zSlY.js +1 -0
  541. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-BLlhOa3C.js +11 -0
  542. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-CzGX-miz.js → EntityTypeBadge-De5b5pC7.js} +1 -1
  543. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-CzdG5I7z.js +41 -0
  544. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-Bclf8Hka.js +34 -0
  545. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-Ce-byqKl.js +25 -0
  546. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-CBQPrpT0.js → LibraryFunctionPreview-DEMHrl7v.js} +1 -1
  547. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-D1CdlbrV.js → LoadingDots-B1LNGboS.js} +1 -1
  548. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-wDPcZNKx.js → LogViewer-B0Ll1DjK.js} +1 -1
  549. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-CVOvmCKb.js +11 -0
  550. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-BfmDgXxG.js → SafeScreenshot-L0DWHa_L.js} +1 -1
  551. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-D54Mmpwi.js +10 -0
  552. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-6J7zDUD5.js → TruncatedFilePath-C7PFQfXy.js} +1 -1
  553. package/codeyam-cli/src/webserver/build/client/assets/_index-CKTtYlBU.js +11 -0
  554. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CdziRIWU.js +27 -0
  555. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-CPXtdaWm.js +17 -0
  556. package/codeyam-cli/src/webserver/build/client/assets/api.memory-profile-l0sNRNKZ.js +1 -0
  557. package/codeyam-cli/src/webserver/build/client/assets/api.restart-server-l0sNRNKZ.js +1 -0
  558. package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
  559. package/codeyam-cli/src/webserver/build/client/assets/book-open-Ch8b7GyQ.js +6 -0
  560. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-BYimnrHg.js → chevron-down-vJHJExlT.js} +1 -1
  561. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-BEyX4X6_.js +51 -0
  562. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-CaVsIRxt.js → circle-check-rwynPZTW.js} +1 -1
  563. package/codeyam-cli/src/webserver/build/client/assets/copy-BBSpeBYf.js +11 -0
  564. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-CgUsG7ib.js → createLucideIcon-DHVDauuc.js} +1 -1
  565. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-C1gnJVOL.svg → cy-logo-cli-CCKUIm0S.svg} +2 -2
  566. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +1 -0
  567. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-B9_ZqelV.js +1 -0
  568. package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-BOPComvD.js +16 -0
  569. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-Cfw__yQa.js +6 -0
  570. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-BIDUUrI3.js +6 -0
  571. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CfLCUi9S.js → entity._sha_.edit._scenarioId-BEqewwtZ.js} +1 -1
  572. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-DKJyZfAY.js → entry.client-Dxqz8ygt.js} +6 -6
  573. package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
  574. package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DAtOlaWE.js → fileTableUtils-CYnF5KWN.js} +1 -1
  575. package/codeyam-cli/src/webserver/build/client/assets/files-B_dAq2PQ.js +1 -0
  576. package/codeyam-cli/src/webserver/build/client/assets/{git-D62Lxxmv.js → git-BHPqH3Ch.js} +8 -8
  577. package/codeyam-cli/src/webserver/build/client/assets/globals-BJGhRykz.css +1 -0
  578. package/codeyam-cli/src/webserver/build/client/assets/{index-BosqDOlH.js → index-DgAAopZk.js} +1 -1
  579. package/codeyam-cli/src/webserver/build/client/assets/{index-CzNNiTkw.js → index-viijWaN6.js} +1 -1
  580. package/codeyam-cli/src/webserver/build/client/assets/labs-ChoAe3xq.js +1 -0
  581. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-CNp9QFCX.js → loader-circle-LGi2eKI5.js} +1 -1
  582. package/codeyam-cli/src/webserver/build/client/assets/manifest-87493a32.js +1 -0
  583. package/codeyam-cli/src/webserver/build/client/assets/memory-D9eA6kTo.js +78 -0
  584. package/codeyam-cli/src/webserver/build/client/assets/pause-DxJFmMsK.js +11 -0
  585. package/codeyam-cli/src/webserver/build/client/assets/root-C3r0p_7H.js +62 -0
  586. package/codeyam-cli/src/webserver/build/client/assets/{search-DDGjYAMJ.js → search-Cu3QE9E5.js} +1 -1
  587. package/codeyam-cli/src/webserver/build/client/assets/settings-KH9TdArD.js +1 -0
  588. package/codeyam-cli/src/webserver/build/client/assets/simulations-D9Fkx0-d.js +1 -0
  589. package/codeyam-cli/src/webserver/build/client/assets/terminal-dAhIBEcd.js +11 -0
  590. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-CBc5dE1s.js → triangle-alert-C4CYTEeP.js} +1 -1
  591. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-CLPnITMB.js +1 -0
  592. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-BqPPNjAl.js → useLastLogLine-DmGI38Et.js} +1 -1
  593. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-BK0S88PB.js +1 -0
  594. package/codeyam-cli/src/webserver/build/client/assets/{useToast-DWHcCcl1.js → useToast-CJ-JqR0l.js} +1 -1
  595. package/codeyam-cli/src/webserver/build/server/assets/index-CkkmL6r5.js +1 -0
  596. package/codeyam-cli/src/webserver/build/server/assets/server-build-iBGjHYtO.js +259 -0
  597. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  598. package/codeyam-cli/src/webserver/build-info.json +5 -5
  599. package/codeyam-cli/src/webserver/server.js +35 -25
  600. package/codeyam-cli/src/webserver/server.js.map +1 -1
  601. package/codeyam-cli/templates/{codeyam-debug-skill.md → codeyam-debug.md} +48 -4
  602. package/codeyam-cli/templates/codeyam-diagnose.md +481 -0
  603. package/codeyam-cli/templates/codeyam-memory-hook.sh +199 -0
  604. package/codeyam-cli/templates/codeyam-memory.md +396 -0
  605. package/codeyam-cli/templates/codeyam-new-rule.md +13 -0
  606. package/codeyam-cli/templates/{codeyam-setup-skill.md → codeyam-setup.md} +151 -4
  607. package/codeyam-cli/templates/{codeyam-sim-skill.md → codeyam-sim.md} +1 -1
  608. package/codeyam-cli/templates/{codeyam-test-skill.md → codeyam-test.md} +1 -1
  609. package/codeyam-cli/templates/{codeyam-verify-skill.md → codeyam-verify.md} +1 -1
  610. package/codeyam-cli/templates/rule-notification-hook.py +56 -0
  611. package/codeyam-cli/templates/rule-reflection-hook.py +627 -0
  612. package/codeyam-cli/templates/rules-instructions.md +132 -0
  613. package/package.json +17 -14
  614. package/packages/ai/index.js +8 -6
  615. package/packages/ai/index.js.map +1 -1
  616. package/packages/ai/src/lib/analyzeScope.js +179 -13
  617. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  618. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js +150 -0
  619. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js.map +1 -0
  620. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +138 -9
  621. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  622. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
  623. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
  624. package/packages/ai/src/lib/astScopes/methodSemantics.js +138 -23
  625. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  626. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
  627. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
  628. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +8 -0
  629. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -1
  630. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +7 -0
  631. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
  632. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +138 -1
  633. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
  634. package/packages/ai/src/lib/astScopes/processExpression.js +944 -30
  635. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  636. package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
  637. package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
  638. package/packages/ai/src/lib/checkAllAttributes.js +24 -9
  639. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  640. package/packages/ai/src/lib/completionCall.js +178 -31
  641. package/packages/ai/src/lib/completionCall.js.map +1 -1
  642. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1461 -205
  643. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  644. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +7 -2
  645. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  646. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +230 -23
  647. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -1
  648. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +77 -55
  649. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  650. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +13 -3
  651. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -1
  652. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +6 -4
  653. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -1
  654. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +52 -3
  655. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  656. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +122 -14
  657. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  658. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
  659. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
  660. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +122 -12
  661. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  662. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js +86 -0
  663. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js.map +1 -0
  664. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
  665. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
  666. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
  667. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
  668. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +333 -81
  669. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  670. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js +107 -0
  671. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js.map +1 -0
  672. package/packages/ai/src/lib/dataStructureChunking.js +126 -0
  673. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -0
  674. package/packages/ai/src/lib/deepEqual.js +32 -0
  675. package/packages/ai/src/lib/deepEqual.js.map +1 -0
  676. package/packages/ai/src/lib/e2eDataTracking.js +241 -0
  677. package/packages/ai/src/lib/e2eDataTracking.js.map +1 -0
  678. package/packages/ai/src/lib/extractCriticalDataKeys.js +96 -0
  679. package/packages/ai/src/lib/extractCriticalDataKeys.js.map +1 -0
  680. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +62 -5
  681. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  682. package/packages/ai/src/lib/generateChangesEntityScenarios.js +78 -120
  683. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  684. package/packages/ai/src/lib/generateEntityDataStructure.js +47 -2
  685. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  686. package/packages/ai/src/lib/generateEntityScenarioData.js +1130 -83
  687. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  688. package/packages/ai/src/lib/generateEntityScenarios.js +177 -163
  689. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  690. package/packages/ai/src/lib/generateExecutionFlows.js +414 -0
  691. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
  692. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
  693. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
  694. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +1807 -0
  695. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
  696. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
  697. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js.map +1 -0
  698. package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -2
  699. package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
  700. package/packages/ai/src/lib/isolateScopes.js +270 -7
  701. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  702. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
  703. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
  704. package/packages/ai/src/lib/mergeStatements.js +88 -46
  705. package/packages/ai/src/lib/mergeStatements.js.map +1 -1
  706. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
  707. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
  708. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +10 -4
  709. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  710. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +1 -1
  711. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  712. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +21 -100
  713. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  714. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js +54 -0
  715. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js.map +1 -0
  716. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +83 -6
  717. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  718. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +10 -70
  719. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  720. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
  721. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
  722. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +9 -9
  723. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
  724. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js +335 -0
  725. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js.map +1 -0
  726. package/packages/ai/src/lib/resolvePathToControllable.js +677 -0
  727. package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
  728. package/packages/ai/src/lib/splitOutsideParentheses.js +3 -1
  729. package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -1
  730. package/packages/ai/src/lib/worker/SerializableDataStructure.js +29 -0
  731. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  732. package/packages/ai/src/lib/worker/analyzeScopeWorker.js +94 -1
  733. package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
  734. package/packages/analyze/index.js +1 -0
  735. package/packages/analyze/index.js.map +1 -1
  736. package/packages/analyze/src/lib/FileAnalyzer.js +75 -36
  737. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  738. package/packages/analyze/src/lib/ProjectAnalyzer.js +96 -26
  739. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  740. package/packages/analyze/src/lib/analysisContext.js +30 -5
  741. package/packages/analyze/src/lib/analysisContext.js.map +1 -1
  742. package/packages/analyze/src/lib/asts/nodes/index.js +1 -0
  743. package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
  744. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
  745. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
  746. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +14 -0
  747. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -1
  748. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +14 -0
  749. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -1
  750. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +6 -0
  751. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
  752. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +6 -0
  753. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -1
  754. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +39 -1
  755. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -1
  756. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +2 -1
  757. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -1
  758. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +211 -54
  759. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  760. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +24 -1
  761. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  762. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +5 -0
  763. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  764. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +2 -0
  765. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  766. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +2 -1
  767. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  768. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +31 -10
  769. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  770. package/packages/analyze/src/lib/files/analyzeChange.js +21 -11
  771. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  772. package/packages/analyze/src/lib/files/analyzeEntity.js +9 -8
  773. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  774. package/packages/analyze/src/lib/files/analyzeInitial.js +9 -10
  775. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  776. package/packages/analyze/src/lib/files/analyzeRemixRoute.js +3 -2
  777. package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
  778. package/packages/analyze/src/lib/files/enums/steps.js +1 -1
  779. package/packages/analyze/src/lib/files/enums/steps.js.map +1 -1
  780. package/packages/analyze/src/lib/files/getImportedExports.js +11 -7
  781. package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
  782. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +880 -0
  783. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
  784. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +170 -40
  785. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
  786. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
  787. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
  788. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +480 -71
  789. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  790. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +29 -34
  791. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
  792. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +268 -66
  793. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  794. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +144 -0
  795. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
  796. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +27 -98
  797. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  798. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +2 -3
  799. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  800. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +801 -118
  801. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  802. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +46 -9
  803. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -1
  804. package/packages/analyze/src/lib/files/setImportedExports.js +2 -1
  805. package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -1
  806. package/packages/analyze/src/lib/index.js +1 -0
  807. package/packages/analyze/src/lib/index.js.map +1 -1
  808. package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
  809. package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
  810. package/packages/aws/src/lib/ecs/ecsDefineContainer.js +2 -2
  811. package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  812. package/packages/aws/src/lib/ecs/ecsTaskFactory.js +17 -61
  813. package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  814. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  815. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  816. package/packages/database/src/lib/analysisToDb.js +1 -1
  817. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  818. package/packages/database/src/lib/branchToDb.js +1 -1
  819. package/packages/database/src/lib/branchToDb.js.map +1 -1
  820. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  821. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  822. package/packages/database/src/lib/commitToDb.js +1 -1
  823. package/packages/database/src/lib/commitToDb.js.map +1 -1
  824. package/packages/database/src/lib/fileToDb.js +1 -1
  825. package/packages/database/src/lib/fileToDb.js.map +1 -1
  826. package/packages/database/src/lib/kysely/db.js +11 -1
  827. package/packages/database/src/lib/kysely/db.js.map +1 -1
  828. package/packages/database/src/lib/kysely/tables/commitsTable.js +3 -0
  829. package/packages/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  830. package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  831. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  832. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  833. package/packages/database/src/lib/loadAnalyses.js +45 -2
  834. package/packages/database/src/lib/loadAnalyses.js.map +1 -1
  835. package/packages/database/src/lib/loadAnalysis.js +8 -0
  836. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  837. package/packages/database/src/lib/loadBranch.js +11 -1
  838. package/packages/database/src/lib/loadBranch.js.map +1 -1
  839. package/packages/database/src/lib/loadCommit.js +7 -0
  840. package/packages/database/src/lib/loadCommit.js.map +1 -1
  841. package/packages/database/src/lib/loadCommits.js +22 -1
  842. package/packages/database/src/lib/loadCommits.js.map +1 -1
  843. package/packages/database/src/lib/loadEntities.js +23 -4
  844. package/packages/database/src/lib/loadEntities.js.map +1 -1
  845. package/packages/database/src/lib/loadEntityBranches.js +9 -0
  846. package/packages/database/src/lib/loadEntityBranches.js.map +1 -1
  847. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
  848. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  849. package/packages/database/src/lib/projectToDb.js +1 -1
  850. package/packages/database/src/lib/projectToDb.js.map +1 -1
  851. package/packages/database/src/lib/saveFiles.js +1 -1
  852. package/packages/database/src/lib/saveFiles.js.map +1 -1
  853. package/packages/database/src/lib/scenarioToDb.js +1 -1
  854. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  855. package/packages/database/src/lib/updateCommitMetadata.js +5 -4
  856. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  857. package/packages/generate/index.js +3 -0
  858. package/packages/generate/index.js.map +1 -1
  859. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  860. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  861. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  862. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  863. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  864. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  865. package/packages/generate/src/lib/scenarioComponentForServer.js +89 -0
  866. package/packages/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  867. package/packages/github/src/lib/loadOrCreateCommit.js +10 -0
  868. package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -1
  869. package/packages/github/src/lib/syncPrimaryBranch.js +3 -0
  870. package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -1
  871. package/packages/process/index.js +3 -0
  872. package/packages/process/index.js.map +1 -0
  873. package/packages/process/src/GlobalProcessManager.js.map +1 -0
  874. package/{background/src/lib/process → packages/process/src}/ProcessManager.js +1 -1
  875. package/packages/process/src/ProcessManager.js.map +1 -0
  876. package/packages/process/src/index.js.map +1 -0
  877. package/packages/process/src/managedExecAsync.js.map +1 -0
  878. package/packages/types/index.js +0 -1
  879. package/packages/types/index.js.map +1 -1
  880. package/packages/types/src/types/Scenario.js +1 -21
  881. package/packages/types/src/types/Scenario.js.map +1 -1
  882. package/packages/utils/src/lib/fs/rsyncCopy.js +93 -2
  883. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  884. package/packages/utils/src/lib/safeFileName.js +29 -3
  885. package/packages/utils/src/lib/safeFileName.js.map +1 -1
  886. package/scripts/finalize-analyzer.cjs +8 -76
  887. package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +0 -102
  888. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +0 -409
  889. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +0 -288
  890. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +0 -495
  891. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +0 -67
  892. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +0 -120
  893. package/analyzer-template/process/INTEGRATION_COMPLETE.md +0 -333
  894. package/analyzer-template/process/INTEGRATION_EXAMPLE.md +0 -525
  895. package/analyzer-template/process/README.md +0 -507
  896. package/background/src/lib/process/GlobalProcessManager.js.map +0 -1
  897. package/background/src/lib/process/ProcessManager.js.map +0 -1
  898. package/background/src/lib/process/index.js.map +0 -1
  899. package/background/src/lib/process/managedExecAsync.js.map +0 -1
  900. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +0 -238
  901. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +0 -1
  902. package/codeyam-cli/scripts/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js +0 -7
  903. package/codeyam-cli/scripts/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js.map +0 -1
  904. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-wXL1Z2Aq.js +0 -1
  905. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-CXFKsCOD.js +0 -41
  906. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-D-9pXIaY.js +0 -25
  907. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-4lcOlid-.js +0 -11
  908. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-CUxUNEEC.js +0 -15
  909. package/codeyam-cli/src/webserver/build/client/assets/_index-DHImXdXq.js +0 -11
  910. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-2mG6mjVb.js +0 -32
  911. package/codeyam-cli/src/webserver/build/client/assets/chunk-JMJ3UQ3L-BambyYE_.js +0 -51
  912. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-CKnwPCDr.js +0 -1
  913. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DW_hdGUc.js +0 -1
  914. package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-zUEpfPsu.js +0 -23
  915. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DyB90fWk.js +0 -1
  916. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-D_3ero5o.js +0 -1
  917. package/codeyam-cli/src/webserver/build/client/assets/files-ClR0d32A.js +0 -1
  918. package/codeyam-cli/src/webserver/build/client/assets/globals-C6vQASxy.css +0 -1
  919. package/codeyam-cli/src/webserver/build/client/assets/keyAttributeCoverage-CTlFMihX.js +0 -1
  920. package/codeyam-cli/src/webserver/build/client/assets/manifest-09d684be.js +0 -1
  921. package/codeyam-cli/src/webserver/build/client/assets/root-BxJUvKau.js +0 -56
  922. package/codeyam-cli/src/webserver/build/client/assets/settings-DgTyB-Wg.js +0 -1
  923. package/codeyam-cli/src/webserver/build/client/assets/simulations-CoNWGt0K.js +0 -1
  924. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BMIGFP-m.js +0 -1
  925. package/codeyam-cli/src/webserver/build/client/assets/useInteractiveMode-Dk_FQqWJ.js +0 -1
  926. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DsJbgMY9.js +0 -1
  927. package/codeyam-cli/src/webserver/build/server/assets/index-CV6i1S1A.js +0 -1
  928. package/codeyam-cli/src/webserver/build/server/assets/server-build-BDlyhfrv.js +0 -175
  929. package/codeyam-cli/templates/debug-codeyam.md +0 -620
  930. package/packages/ai/src/lib/findMatchingAttribute.js +0 -77
  931. package/packages/ai/src/lib/findMatchingAttribute.js.map +0 -1
  932. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +0 -298
  933. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +0 -1
  934. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +0 -226
  935. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +0 -1
  936. package/packages/ai/src/lib/generateEntityKeyAttributes.js +0 -408
  937. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +0 -1
  938. package/packages/ai/src/lib/isFrontend.js +0 -5
  939. package/packages/ai/src/lib/isFrontend.js.map +0 -1
  940. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +0 -40
  941. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +0 -1
  942. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +0 -77
  943. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +0 -1
  944. /package/analyzer-template/{process → packages/process/src}/GlobalProcessManager.ts +0 -0
  945. /package/analyzer-template/{process → packages/process/src}/ProcessManager.ts +0 -0
  946. /package/analyzer-template/{process → packages/process/src}/index.ts +0 -0
  947. /package/analyzer-template/{process → packages/process/src}/managedExecAsync.ts +0 -0
  948. /package/codeyam-cli/src/webserver/build/client/assets/{api.link-scenario-value-l0sNRNKZ.js → api.agent-transcripts-l0sNRNKZ.js} +0 -0
  949. /package/codeyam-cli/src/webserver/build/client/assets/{api.update-key-attributes-l0sNRNKZ.js → api.health-l0sNRNKZ.js} +0 -0
  950. /package/codeyam-cli/src/webserver/build/client/assets/{api.update-valid-values-l0sNRNKZ.js → api.labs-unlock-l0sNRNKZ.js} +0 -0
  951. /package/{background/src/lib/process → packages/process/src}/GlobalProcessManager.js +0 -0
  952. /package/{background/src/lib/process → packages/process/src}/index.js +0 -0
  953. /package/{background/src/lib/process → packages/process/src}/managedExecAsync.js +0 -0
@@ -0,0 +1,120 @@
1
+ import type { ExecutionFlow, ScenariosDataStructure } from '~codeyam/types';
2
+
3
+ /**
4
+ * Extract the data structure keys that are critical for satisfying execution flow requirements.
5
+ *
6
+ * When generating scenario mock data, only a subset of the full dataForMocks structure
7
+ * is actually needed to satisfy the scenario's covered flows' requiredValues.
8
+ * This function identifies those critical keys so they can be processed with more focus
9
+ * (e.g., in a separate LLM call or prioritized in the prompt).
10
+ *
11
+ * @param dataForMocks - The full data structure schema
12
+ * @param executionFlows - All execution flows for the entity
13
+ * @param coveredFlowIds - The flow IDs covered by the current scenario
14
+ * @returns Array of top-level keys from dataForMocks that are referenced by the covered flows
15
+ */
16
+ export function extractCriticalDataKeys(
17
+ dataForMocks: ScenariosDataStructure['dataForMocks'],
18
+ executionFlows: ExecutionFlow[],
19
+ coveredFlowIds: string[],
20
+ ): string[] {
21
+ if (!dataForMocks || typeof dataForMocks !== 'object') {
22
+ return [];
23
+ }
24
+
25
+ const dataKeys = Object.keys(dataForMocks);
26
+ const criticalKeys = new Set<string>();
27
+
28
+ // Get the covered flows
29
+ const coveredFlows = executionFlows.filter((flow) =>
30
+ coveredFlowIds.includes(flow.id),
31
+ );
32
+
33
+ // For each covered flow, check if any requiredValue references a dataForMocks key
34
+ for (const flow of coveredFlows) {
35
+ if (!flow.requiredValues) continue;
36
+
37
+ for (const rv of flow.requiredValues) {
38
+ const path = rv.attributePath;
39
+ if (!path) continue;
40
+
41
+ // Try to match the attributePath to a dataForMocks key
42
+ // The path format is: "functionCall().functionCallReturnValue.property"
43
+ // or: "functionCall<Type>().functionCallReturnValue.property"
44
+ // We need to extract the function call part and match it to a key
45
+
46
+ for (const key of dataKeys) {
47
+ if (pathMatchesKey(path, key)) {
48
+ criticalKeys.add(key);
49
+ break; // One match per requiredValue is enough
50
+ }
51
+ }
52
+ }
53
+ }
54
+
55
+ return Array.from(criticalKeys);
56
+ }
57
+
58
+ /**
59
+ * Check if an attributePath references a given dataForMocks key.
60
+ *
61
+ * Handles various path formats:
62
+ * - "useParams().functionCallReturnValue.*" matches "useParams()"
63
+ * - "useLoaderData<LoaderData>().functionCallReturnValue.data" matches "useLoaderData<LoaderData>()"
64
+ * - "useFetcher().data.success" matches "useFetcher()"
65
+ */
66
+ function pathMatchesKey(attributePath: string, dataKey: string): boolean {
67
+ // Normalize both for comparison
68
+ // Remove .functionCallReturnValue from the path
69
+ const normalizedPath = attributePath.replace('.functionCallReturnValue', '');
70
+
71
+ // Check if the path starts with the key (exact match for function call keys)
72
+ if (normalizedPath.startsWith(dataKey)) {
73
+ // Ensure it's not a partial match (e.g., "use" shouldn't match "useState")
74
+ const afterKey = normalizedPath.slice(dataKey.length);
75
+ // Valid continuations: end of string, '.', or '['
76
+ if (
77
+ afterKey === '' ||
78
+ afterKey.startsWith('.') ||
79
+ afterKey.startsWith('[')
80
+ ) {
81
+ return true;
82
+ }
83
+ }
84
+
85
+ // Try matching without type parameters if needed
86
+ // e.g., "useLoaderData<LoaderData>()" should match attributePaths with same base
87
+ const keyWithoutTypes = removeTypeParameters(dataKey);
88
+ const pathWithoutTypes = removeTypeParameters(normalizedPath);
89
+
90
+ if (pathWithoutTypes.startsWith(keyWithoutTypes)) {
91
+ const afterKey = pathWithoutTypes.slice(keyWithoutTypes.length);
92
+ if (
93
+ afterKey === '' ||
94
+ afterKey.startsWith('.') ||
95
+ afterKey.startsWith('[')
96
+ ) {
97
+ return true;
98
+ }
99
+ }
100
+
101
+ return false;
102
+ }
103
+
104
+ /**
105
+ * Remove type parameters from a function call string.
106
+ * e.g., "useLoaderData<LoaderData>()" -> "useLoaderData()"
107
+ */
108
+ function removeTypeParameters(str: string): string {
109
+ // Match and remove <...> including nested angle brackets
110
+ let result = str;
111
+ let prevLength = 0;
112
+
113
+ // Keep removing until no more changes (handles nested generics)
114
+ while (result.length !== prevLength) {
115
+ prevLength = result.length;
116
+ result = result.replace(/<[^<>]*>/g, '');
117
+ }
118
+
119
+ return result;
120
+ }
@@ -16,6 +16,8 @@ import type {
16
16
  import { LlmCall } from '~codeyam/types';
17
17
  import validateJson from './validateJson';
18
18
  import checkAllAttributes from './checkAllAttributes';
19
+ import convertNullToUndefinedBySchema from './dataStructure/helpers/convertNullToUndefinedBySchema';
20
+ import deepEqual from './deepEqual';
19
21
  import { awsLog } from '~codeyam/utils';
20
22
  import { AI, parseJsonSafe } from '~codeyam/ai';
21
23
 
@@ -59,12 +61,14 @@ async function generateChangesDataForScenario({
59
61
  llmCalls: LlmCall[];
60
62
  }> {
61
63
  if (
62
- structure === existingStructure &&
63
- scenario.metadata.keyAttributeInstructions ===
64
- existingScenario.metadata.keyAttributeInstructions
64
+ deepEqual(structure, existingStructure) &&
65
+ deepEqual(
66
+ scenario.metadata?.coveredFlows,
67
+ existingScenario?.metadata?.coveredFlows,
68
+ )
65
69
  ) {
66
70
  console.log(
67
- "CodeYam: No changes in scenario's structure or keyAttributeInstructions - returning existing scenario data",
71
+ "CodeYam: No changes in scenario's structure or coveredFlows - returning existing scenario data",
68
72
  {
69
73
  analysisId: scenario.analysisId,
70
74
  scenarioId: scenario.id,
@@ -95,6 +99,7 @@ async function generateChangesDataForScenario({
95
99
  prompt = generateEntityScenarioDataGenerator(
96
100
  structure,
97
101
  scenario,
102
+ undefined, // executionFlows - not available in changes context
98
103
  defaultScenarioData,
99
104
  incompleteResponse,
100
105
  );
@@ -219,8 +224,8 @@ async function generateChangesDataForScenario({
219
224
  if (!Array.isArray(argumentsData)) {
220
225
  argumentsData = [];
221
226
  }
222
- fullScenarioData.data.argumentsData = argumentsData.map((arg) =>
223
- checkAllAttributes(arg),
227
+ fullScenarioData.data.argumentsData = argumentsData.map(
228
+ (arg) => checkAllAttributes(arg) as { [key: string]: unknown },
224
229
  );
225
230
 
226
231
  if (structure.dataForMocks && !fullScenarioData.data.mockData) {
@@ -232,7 +237,28 @@ async function generateChangesDataForScenario({
232
237
  }
233
238
  fullScenarioData.data.mockData = checkAllAttributes(
234
239
  fullScenarioData.data.mockData,
235
- );
240
+ ) as { [key: string]: unknown };
241
+
242
+ // Convert null values to undefined based on schema type constraints.
243
+ // LLM uses null for "no value" (JSON doesn't support undefined), but TypeScript
244
+ // types like "string | undefined" don't accept null. This converts null→undefined
245
+ // for fields typed as "T | undefined" (but preserves null for "T | null").
246
+ if (structure.dataForMocks && fullScenarioData.data.mockData) {
247
+ convertNullToUndefinedBySchema(
248
+ fullScenarioData.data.mockData,
249
+ structure.dataForMocks,
250
+ );
251
+ }
252
+ if (structure.arguments && fullScenarioData.data.argumentsData) {
253
+ for (let i = 0; i < fullScenarioData.data.argumentsData.length; i++) {
254
+ if (structure.arguments[i]) {
255
+ convertNullToUndefinedBySchema(
256
+ fullScenarioData.data.argumentsData[i],
257
+ structure.arguments[i],
258
+ );
259
+ }
260
+ }
261
+ }
236
262
 
237
263
  return {
238
264
  llmCalls: [{ name: scenario.name, id: llmCall.id }],
@@ -346,6 +372,47 @@ NEVER include "error" fields in responses. Skip them entirely.
346
372
  - If structure has \`{ data: {...}, error: {...} }\`, only fill \`data\`
347
373
  - Leave out any attribute named "error"—do not set to null, omit entirely
348
374
 
375
+ ## CRITICAL: Preserve Exact Structure
376
+ Your response MUST mirror the EXACT nested structure provided in mockData Structure.
377
+ - Do NOT reorganize, split, or create duplicate keys
378
+ - The hierarchy of nested objects must match exactly what was provided
379
+ - Only change the leaf VALUES (replacing type descriptions like "string" with actual data like "hello")
380
+ - Arrays should have 3-5 items to provide realistic test data variety
381
+
382
+ **Example** - if given this structure:
383
+ \`\`\`json
384
+ {
385
+ "createClient()": {
386
+ "from(\\"users\\")": {
387
+ "select(\\"*\\")": { "data": [{ "id": "string", "name": "string" }] },
388
+ "delete()": { "eq(\\"id\\", id)": {} }
389
+ }
390
+ }
391
+ }
392
+ \`\`\`
393
+
394
+ Return ONE \`from("users")\` key containing BOTH \`select("*")\` and \`delete()\`:
395
+ \`\`\`json
396
+ {
397
+ "createClient()": {
398
+ "from(\\"users\\")": {
399
+ "select(\\"*\\")": { "data": [{ "id": "user-1", "name": "Alice" }, { "id": "user-2", "name": "Bob" }] },
400
+ "delete()": { "eq(\\"id\\", \\"user-1\\")": {} }
401
+ }
402
+ }
403
+ }
404
+ \`\`\`
405
+
406
+ **WRONG** - do NOT create duplicate keys like this:
407
+ \`\`\`json
408
+ {
409
+ "createClient()": {
410
+ "from(\\"users\\")": { "select(\\"*\\")": { ... } },
411
+ "from(\\"users\\")": { "delete()": { ... } }
412
+ }
413
+ }
414
+ \`\`\`
415
+
349
416
  ## Special Markers
350
417
 
351
418
  ### Dynamic Dates (\`~~codeyam-code~~\`)
@@ -5,21 +5,19 @@ import generateChangesEntityScenariosGenerator from './promptGenerators/generate
5
5
  import {
6
6
  Analysis,
7
7
  Entity,
8
+ ExecutionFlow,
8
9
  ReadonlyAnalysisMap,
9
10
  Scenario,
10
11
  } from '~codeyam/types';
11
12
  import { ScenarioResult } from './generateEntityScenarios';
12
- import findMatchingAttribute from './findMatchingAttribute';
13
13
  import { awsLog } from '~codeyam/utils';
14
14
  import { sanitizePlaywrightInstructions } from './validatePlaywrightInstructions';
15
- import gatherRelevantDependentKeyAttributes from './gatherRelevantDependentKeyAttributes';
16
15
  import { AI, DEFAULT_LARGER_MODEL, parseJsonSafe } from '~codeyam/ai';
17
16
 
18
17
  interface GenerateChangesEntityScenariosArgs {
19
18
  entity: Entity;
20
- keyAttributes: Analysis['metadata']['keyAttributes'];
21
- addedKeyAttributes: Analysis['metadata']['keyAttributes'];
22
- removedKeyAttributes: Analysis['metadata']['keyAttributes'];
19
+ executionFlows?: ExecutionFlow[];
20
+ previousExecutionFlows?: ExecutionFlow[];
23
21
  dependentAnalyses?: ReadonlyAnalysisMap;
24
22
  existingScenarios: Scenario[];
25
23
  commitDiff: string;
@@ -33,10 +31,8 @@ const DEFAULT_SCENARIO_NAME = 'Default Scenario';
33
31
 
34
32
  export default async function generateChangesEntityScenarios({
35
33
  entity,
36
- keyAttributes,
37
- addedKeyAttributes,
38
- removedKeyAttributes,
39
- dependentAnalyses,
34
+ executionFlows,
35
+ previousExecutionFlows,
40
36
  existingScenarios,
41
37
  commitDiff,
42
38
  analysis,
@@ -44,16 +40,22 @@ export default async function generateChangesEntityScenarios({
44
40
  model,
45
41
  changedDataStructureFields = [],
46
42
  }: GenerateChangesEntityScenariosArgs) {
47
- const relevantDependentKeyAttributes = gatherRelevantDependentKeyAttributes(
48
- entity,
49
- analysis.metadata.mergedDataStructure,
50
- dependentAnalyses,
43
+ // Determine added/removed flows
44
+ const currentFlowIds = new Set((executionFlows ?? []).map((f) => f.id));
45
+ const previousFlowIds = new Set(
46
+ (previousExecutionFlows ?? []).map((f) => f.id),
51
47
  );
48
+
49
+ const addedFlows =
50
+ executionFlows?.filter((f) => !previousFlowIds.has(f.id)) ?? [];
51
+ const removedFlows =
52
+ previousExecutionFlows?.filter((f) => !currentFlowIds.has(f.id)) ?? [];
53
+
54
+ // If no changes, return existing scenarios
52
55
  if (
53
- (!addedKeyAttributes || addedKeyAttributes.length === 0) &&
54
- (!removedKeyAttributes || removedKeyAttributes.length === 0) &&
55
- !existingScenarios.some((s) => s.metadata?.playwrightInstructions) &&
56
- Object.keys(relevantDependentKeyAttributes).length === 0
56
+ addedFlows.length === 0 &&
57
+ removedFlows.length === 0 &&
58
+ !existingScenarios.some((s) => s.metadata?.playwrightInstructions)
57
59
  ) {
58
60
  return { scenarios: existingScenarios };
59
61
  }
@@ -62,21 +64,20 @@ export default async function generateChangesEntityScenarios({
62
64
  `CodeYam: Generating ${error ? 'error ' : ''}changes entity scenarios`,
63
65
  {
64
66
  filePath: entity.filePath,
65
- entityNam: entity.name,
66
- analysis: analysis.id,
67
- keyAttributes: keyAttributes.map((a) => a.externalPath),
68
- addedKeyAttributes: addedKeyAttributes?.map((a) => a.externalPath),
69
- removedKeyAttributes: removedKeyAttributes?.map((a) => a.externalPath),
67
+ entityName: entity.name,
68
+ analysisId: analysis.id,
69
+ currentFlowCount: executionFlows?.length ?? 0,
70
+ addedFlows: addedFlows.map((f) => f.id),
71
+ removedFlows: removedFlows.map((f) => f.id),
70
72
  },
71
73
  );
72
74
 
73
75
  const prompt = generateChangesEntityScenariosGenerator({
74
76
  entity,
75
77
  mergedDataStructure: analysis.metadata.mergedDataStructure,
76
- keyAttributes,
77
- addedKeyAttributes,
78
- removedKeyAttributes,
79
- dependentAnalyses,
78
+ executionFlows,
79
+ addedFlows,
80
+ removedFlows,
80
81
  existingScenarios,
81
82
  commitDiff,
82
83
  error,
@@ -93,7 +94,7 @@ export default async function generateChangesEntityScenarios({
93
94
  type: `generate${error ? 'Error' : ''}ChangesEntityScenarios`,
94
95
  systemMessage: error
95
96
  ? ERROR_SYSTEM_MESSAGE
96
- : generateChangesSystemMessage(context, scenarioCount, false),
97
+ : generateChangesSystemMessage(context, scenarioCount),
97
98
  prompt,
98
99
  model: model ?? DEFAULT_LARGER_MODEL,
99
100
  });
@@ -111,32 +112,17 @@ export default async function generateChangesEntityScenarios({
111
112
  path: entity.file.path,
112
113
  },
113
114
  },
114
- keyAttributes,
115
- addedKeyAttributes,
116
- removedKeyAttributes,
117
- dependentAnalyses: Object.fromEntries(
118
- Object.entries(dependentAnalyses ?? {}).map(([path, analyses]) => [
119
- path,
120
- Object.fromEntries(
121
- Object.entries(analyses).map(([name, analysis]) => [
122
- name,
123
- {
124
- metadata: {
125
- keyAttributes: analysis.metadata?.keyAttributes,
126
- },
127
- },
128
- ]),
129
- ),
130
- ]),
131
- ),
115
+ executionFlows,
116
+ addedFlows,
117
+ removedFlows,
132
118
  existingScenarios: existingScenarios.map((s) => ({
133
119
  id: s.id,
134
120
  name: s.name,
135
121
  description: s.description,
136
122
  metadata: {
137
- error: s.metadata.error,
138
- keyAttributeInstructions: s.metadata.keyAttributeInstructions,
139
- playwrightInstructions: s.metadata.playwrightInstructions,
123
+ error: s.metadata?.error,
124
+ coveredFlows: s.metadata?.coveredFlows,
125
+ playwrightInstructions: s.metadata?.playwrightInstructions,
140
126
  },
141
127
  })),
142
128
  commitDiff,
@@ -146,7 +132,7 @@ export default async function generateChangesEntityScenarios({
146
132
  isolatedDataStructure: {
147
133
  equivalentSignatureVariables:
148
134
  entity.metadata.isolatedDataStructure
149
- .equivalentSignatureVariables,
135
+ ?.equivalentSignatureVariables,
150
136
  },
151
137
  },
152
138
  },
@@ -191,7 +177,7 @@ export default async function generateChangesEntityScenarios({
191
177
  );
192
178
 
193
179
  const revisedFromPreviousVersion = previousVersion
194
- ? !!scenarioInfo.keyAttributeInstructions
180
+ ? !!scenarioInfo.coveredFlows
195
181
  : undefined;
196
182
  const useScenarioData = !previousVersion || revisedFromPreviousVersion;
197
183
 
@@ -204,58 +190,42 @@ export default async function generateChangesEntityScenarios({
204
190
  : previousVersion.description,
205
191
  metadata: {
206
192
  testName:
207
- useScenarioData || !previousVersion.metadata.testName
193
+ useScenarioData || !previousVersion?.metadata?.testName
208
194
  ? scenarioInfo.testName
209
195
  : previousVersion.metadata.testName,
210
196
  error,
211
197
  revisedFromPreviousVersion,
212
198
  codeSnippet: useScenarioData
213
199
  ? scenarioInfo.codeSnippet
214
- : previousVersion.metadata.codeSnippet,
215
- fix: useScenarioData ? scenarioInfo.fix : previousVersion.metadata.fix,
200
+ : previousVersion?.metadata?.codeSnippet,
201
+ fix: useScenarioData
202
+ ? scenarioInfo.fix
203
+ : previousVersion?.metadata?.fix,
216
204
  fixSnippet: useScenarioData
217
205
  ? scenarioInfo.fixSnippet
218
- : previousVersion.metadata.fixSnippet,
206
+ : previousVersion?.metadata?.fixSnippet,
219
207
  likelihood: useScenarioData
220
208
  ? scenarioInfo.likelihood
221
- : previousVersion.metadata.likelihood,
209
+ : previousVersion?.metadata?.likelihood,
222
210
  likelihoodDescription: useScenarioData
223
211
  ? scenarioInfo.likelihoodDescription
224
- : previousVersion.metadata.likelihoodDescription,
212
+ : previousVersion?.metadata?.likelihoodDescription,
225
213
  severity: useScenarioData
226
214
  ? scenarioInfo.severity
227
- : previousVersion.metadata.severity,
215
+ : previousVersion?.metadata?.severity,
228
216
  severityDescription: useScenarioData
229
217
  ? scenarioInfo.severityDescription
230
- : previousVersion.metadata.severityDescription,
231
- dataMapping: useScenarioData
232
- ? scenarioInfo.dataMapping
233
- : previousVersion.metadata.dataMapping,
234
- keyAttributeInstructions: useScenarioData
235
- ? Object.keys(scenarioInfo.keyAttributeInstructions).reduce(
236
- (acc: any, key) => {
237
- const attributesList = keyAttributes.map(
238
- (attr) => attr.internalPath,
239
- );
240
- const matchingKey = findMatchingAttribute(
241
- key,
242
- attributesList,
243
- entity.metadata.isolatedDataStructure
244
- .equivalentSignatureVariables,
245
- );
246
- acc[matchingKey] = scenarioInfo.keyAttributeInstructions[key];
247
- return acc;
248
- },
249
- {},
250
- )
251
- : previousVersion.metadata.keyAttributeInstructions,
218
+ : previousVersion?.metadata?.severityDescription,
219
+ coveredFlows: useScenarioData
220
+ ? scenarioInfo.coveredFlows || []
221
+ : previousVersion?.metadata?.coveredFlows || [],
252
222
  playwrightInstructions: useScenarioData
253
223
  ? sanitizePlaywrightInstructions(
254
224
  scenarioInfo.playwrightInstructions || [],
255
225
  entity.name,
256
226
  scenarioInfo.name,
257
227
  )
258
- : previousVersion.metadata.playwrightInstructions,
228
+ : previousVersion?.metadata?.playwrightInstructions,
259
229
  },
260
230
  previousVersionId: previousVersion?.id,
261
231
  });
@@ -271,7 +241,6 @@ export default async function generateChangesEntityScenarios({
271
241
  function generateChangesSystemMessage(
272
242
  context?: string,
273
243
  scenarioCount?: number,
274
- _isError?: boolean,
275
244
  ): string {
276
245
  const contextSection = context
277
246
  ? `## Business Context
@@ -288,56 +257,35 @@ Focus scenario updates on demonstrating this change.${scenarioCount ? ` Generate
288
257
 
289
258
  return `You are updating data scenarios after a code change. Determine which existing scenarios need updating, which should be removed, and if new ones are needed.
290
259
 
291
- ${contextSection}## Coverage Goals (IMPORTANT)
292
- Your primary goal is to MAXIMIZE coverage of key attributes across all scenarios:
293
-
294
- 1. **Use indexed validValueOptions**: Each key attribute has indexed \`validValueOptions\` (with \`index\` and \`value\`). Reference these by index in your valueOptionRef.
260
+ ${contextSection}## Your Goal: Maintain Full Execution Flow Coverage
295
261
 
296
- 2. **Prioritize attributes with dependencies**: Key attributes with a \`dependencies\` array control conditionally-rendered content. Satisfy these dependencies to reveal gated UI/behavior.
262
+ You are given:
263
+ - \`executionFlows\`: All current distinct outcomes/behaviors this component can produce
264
+ - \`addedFlows\`: New flows that didn't exist before
265
+ - \`removedFlows\`: Flows that no longer exist
266
+ - \`existingScenarios\`: Current scenarios with their coveredFlows
297
267
 
298
- 3. **Cover conditional branches**: Use \`codeUsages\` to identify all conditional paths that need coverage.
268
+ **Your job**: Update scenarios to maintain coverage of ALL current execution flows.
299
269
 
300
270
  ## Update Rules
301
271
 
302
- ### Removed Key Attributes
303
- - Update scenarios using removed attributes—replace with new attributes or remove if no longer relevant
304
- - CRITICAL: "${DEFAULT_SCENARIO_NAME}" must NEVER contain removed attributes—update or replace them
305
- - Try to maintain 3+ scenarios; create replacements if removing too many
272
+ ### Removed Flows
273
+ - If an existing scenario only covers removed flows, remove the scenario
274
+ - If a scenario covers both removed and current flows, update its coveredFlows to remove the deleted ones
306
275
 
307
- ### Added Key Attributes
308
- - Create or update scenarios to demonstrate new behavior
309
- - Use different validValueOption indices than existing scenarios to maximize coverage
310
-
311
- ### Playwright Instructions
312
- - Validate existing instructions still work after code changes
313
- - Update any that reference changed UI elements
276
+ ### Added Flows
277
+ - Create new scenarios or update existing ones to cover new flows
278
+ - Follow the same rules as initial scenario generation:
279
+ - Blocking flows (blocksOtherFlows: true) get their own dedicated scenarios
280
+ - Non-blocking flows can be combined with compatible existing scenarios
314
281
 
315
282
  ### Unchanged Scenarios
316
- - Return name only (no other fields needed)
283
+ - Return name only (no other fields needed) if the scenario's covered flows are all still valid
317
284
 
318
285
  ### Default Scenario
319
286
  - First scenario must be "${DEFAULT_SCENARIO_NAME}" (exact name)
320
287
  - NEVER include playwrightInstructions—captures initial state only
321
- - Must include all current key attributes with valid values from their validValueOptions
322
-
323
- ## keyAttributeInstructions Format
324
- Use \`dataStructurePath\` as key. Include variable name, instruction, AND a valueOptionRef that references which validValueOption you're using:
325
- \`\`\`json
326
- {
327
- "useStatus().status": {
328
- "localVariable": "status",
329
- "instruction": "Set to 'active' mode",
330
- "valueOptionRef": { "index": 0, "refType": "exact" }
331
- }
332
- }
333
- \`\`\`
334
-
335
- ### valueOptionRef Types
336
- - \`"exact"\`: Uses the validValueOption at this index exactly
337
- - \`"derived"\`: Based on this validValueOption but modified (include \`derivation\` field explaining how)
338
- - \`"custom"\`: Value not from validValueOptions list (use sparingly)
339
-
340
- The \`index\` refers to the validValueOptions array position (0 = first option).
288
+ - Should cover as many non-blocking, non-error flows as possible
341
289
 
342
290
  ## Response Format
343
291
 
@@ -355,31 +303,31 @@ Otherwise:
355
303
  "overview": "Added empty state scenario for new display behavior.",
356
304
  "dataScenarios": [
357
305
  { "name": "${DEFAULT_SCENARIO_NAME}" },
358
- { "name": "Many notifications" },
306
+ { "name": "Settings Modal" },
359
307
  {
360
- "name": "No notifications",
361
- "testName": "it(\\"shows empty message when no notifications\\")",
362
- "description": "User has no notifications.",
363
- "keyAttributeInstructions": {
364
- "useData().notifications[]": {
365
- "localVariable": "notifications[]",
366
- "instruction": "Empty array [] to show empty state",
367
- "valueOptionRef": { "index": 1, "refType": "exact" }
368
- }
369
- }
308
+ "name": "Empty State",
309
+ "testName": "it(\\"shows empty message when no items\\")",
310
+ "description": "User has no items to display.",
311
+ "coveredFlows": ["empty-list"]
370
312
  }
371
313
  ]
372
314
  }
373
315
  \`\`\`
374
316
 
317
+ ## Field Descriptions
318
+
319
+ - **name**: Human-readable scenario name (letters, numbers, spaces only)
320
+ - **testName**: Jest-style test description (only for new/updated scenarios)
321
+ - **description**: What the user sees (only for new/updated scenarios)
322
+ - **coveredFlows**: Array of execution flow IDs this scenario covers (only for new/updated scenarios)
323
+ - **playwrightInstructions**: User interactions needed (only for new/updated scenarios that require interaction)
324
+
375
325
  ## Rules
376
326
  - Scenario names: letters, numbers, spaces only
377
327
  - testName: Jest style with specific expectations
378
- - Use values from \`validValueOptions\` in key attributes list (reference by index)
379
- - Include dependency key attributes if dependencies involved
380
- - React elements: simple only (\`<div>\`, \`<span>\`)
381
- - No external library references—plain JS/TS values
382
- - Relative dates OK: "today", "tomorrow", "last month"
328
+ - All values must be valid JSON
329
+ - EVERY execution flow must be covered by at least one scenario
330
+ - Blocking flows get dedicated scenarios
383
331
  `;
384
332
  }
385
333
 
@@ -414,27 +362,23 @@ Be conservative with high scores.
414
362
  - No external library references—mock with plain JS
415
363
  - Each scenario causes a DISTINCT error type
416
364
 
417
- Note: In JS/TS, any non-zero value satisfies a boolean check—this won't error.
418
-
419
365
  ## Response Format
420
366
  \`\`\`json
421
367
  {
422
368
  "errorDataScenarios": [
423
369
  { "name": "Existing valid error" },
424
370
  {
425
- "dataMapping": { "notifications array": "props.notifications" },
426
371
  "name": "Non-utf8 encoding error",
427
- "codeSnippet": "const encoded = encodeURIComponent(message);",
372
+ "testName": "it(\\"throws on non-utf8 characters\\")",
428
373
  "description": "encodeURIComponent throws on non-utf8 characters",
374
+ "codeSnippet": "const encoded = encodeURIComponent(message);",
429
375
  "fix": "Wrap in try/catch",
430
376
  "fixSnippet": "try { encoded = encodeURIComponent(message); } catch (e) { ... }",
431
377
  "likelihood": 7,
432
378
  "likelihoodDescription": "International users may input non-utf8 characters",
433
379
  "severity": 2,
434
380
  "severityDescription": "Function throws uncaught error",
435
- "keyAttributeInstructions": {
436
- "notifications[]": "Array with message containing non-utf8 characters"
437
- }
381
+ "coveredFlows": []
438
382
  }
439
383
  ]
440
384
  }