@codeyam/codeyam-cli 0.1.0-staging.e38f7bd → 0.1.0-staging.eb21b2f

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 (1038) 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 +21 -17
  5. package/analyzer-template/packages/ai/index.ts +21 -5
  6. package/analyzer-template/packages/ai/package.json +4 -4
  7. package/analyzer-template/packages/ai/src/lib/__mocks__/completionCall.ts +122 -0
  8. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +228 -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 +205 -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 +38 -1
  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 +1619 -125
  18. package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
  19. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +324 -5
  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 +2543 -399
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +21 -4
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +976 -0
  25. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +243 -77
  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 +71 -2
  29. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +161 -19
  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 +163 -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 +441 -82
  36. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.ts +129 -0
  37. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +183 -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 +89 -112
  43. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +63 -2
  44. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +1419 -101
  45. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +216 -109
  46. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +710 -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/getConditionalUsagesFromCode.ts +143 -31
  51. package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +8 -2
  52. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +328 -7
  53. package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
  54. package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +111 -87
  55. package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
  56. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +17 -7
  57. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +1 -1
  58. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +32 -102
  59. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChunkPrompt.ts +82 -0
  60. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateCriticalKeysPrompt.ts +103 -0
  61. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +110 -6
  62. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +14 -53
  63. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
  64. package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +28 -2
  65. package/analyzer-template/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.ts +391 -0
  66. package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +824 -0
  67. package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +5 -1
  68. package/analyzer-template/packages/ai/src/lib/validateExecutionFlowPaths.ts +531 -0
  69. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +127 -3
  70. package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +121 -2
  71. package/analyzer-template/packages/analyze/index.ts +2 -0
  72. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +79 -59
  73. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +113 -26
  74. package/analyzer-template/packages/analyze/src/lib/analysisContext.ts +44 -4
  75. package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +1 -0
  76. package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
  77. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +19 -0
  78. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +19 -0
  79. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +11 -0
  80. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +8 -0
  81. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +49 -1
  82. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +2 -1
  83. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +570 -180
  84. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +54 -1
  85. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +6 -0
  86. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +3 -0
  87. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +4 -2
  88. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +33 -10
  89. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +31 -15
  90. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +11 -7
  91. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +11 -12
  92. package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +4 -5
  93. package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
  94. package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +22 -13
  95. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1315 -0
  96. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +313 -0
  97. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
  98. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +711 -78
  99. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.ts +1 -1
  100. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +28 -62
  101. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +550 -137
  102. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +264 -0
  103. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +78 -83
  104. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +4 -8
  105. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +1067 -167
  106. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +56 -11
  107. package/analyzer-template/packages/analyze/src/lib/files/scenarios/propagateArrayItemSchemas.ts +474 -0
  108. package/analyzer-template/packages/analyze/src/lib/files/setImportedExports.ts +2 -1
  109. package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
  110. package/analyzer-template/packages/analyze/src/lib/utils/getFileByPath.ts +19 -0
  111. package/analyzer-template/packages/aws/codebuild/index.ts +1 -0
  112. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +11 -1
  113. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -1
  114. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +29 -18
  115. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -1
  116. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +2 -2
  117. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -1
  118. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +2 -2
  119. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  120. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +8 -18
  121. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -1
  122. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +17 -61
  123. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  124. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts +15 -0
  125. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts.map +1 -0
  126. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js +31 -0
  127. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js.map +1 -0
  128. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -1
  129. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +8 -1
  130. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -1
  131. package/analyzer-template/packages/aws/package.json +3 -3
  132. package/analyzer-template/packages/aws/s3/index.ts +1 -0
  133. package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +43 -19
  134. package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +3 -3
  135. package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +17 -69
  136. package/analyzer-template/packages/aws/src/lib/s3/checkS3ObjectExists.ts +47 -0
  137. package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +8 -1
  138. package/analyzer-template/packages/database/package.json +1 -1
  139. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  140. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  141. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  142. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  143. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  144. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  145. package/analyzer-template/packages/database/src/lib/kysely/db.ts +18 -5
  146. package/analyzer-template/packages/database/src/lib/kysely/tableRelations.ts +2 -2
  147. package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +6 -0
  148. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +36 -9
  149. package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
  150. package/analyzer-template/packages/database/src/lib/loadAnalyses.ts +58 -1
  151. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +13 -0
  152. package/analyzer-template/packages/database/src/lib/loadBranch.ts +16 -1
  153. package/analyzer-template/packages/database/src/lib/loadCommit.ts +11 -0
  154. package/analyzer-template/packages/database/src/lib/loadCommits.ts +28 -0
  155. package/analyzer-template/packages/database/src/lib/loadEntities.ts +26 -3
  156. package/analyzer-template/packages/database/src/lib/loadEntityBranches.ts +12 -0
  157. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +30 -5
  158. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  159. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  160. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  161. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +7 -14
  162. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  163. package/analyzer-template/packages/generate/index.ts +3 -0
  164. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +17 -1
  165. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +193 -0
  166. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
  167. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +9 -4
  168. package/analyzer-template/packages/generate/src/lib/deepMerge.ts +26 -1
  169. package/analyzer-template/packages/generate/src/lib/directExecutionScript.ts +17 -2
  170. package/analyzer-template/packages/generate/src/lib/getComponentScenarioPath.ts +8 -3
  171. package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
  172. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
  173. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
  174. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
  175. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
  176. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
  177. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
  178. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
  179. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
  180. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
  181. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
  182. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
  183. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
  184. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +4 -2
  185. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  186. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +13 -3
  187. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  188. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelations.d.ts +2 -2
  189. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +1 -11
  190. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -1
  191. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts +1 -0
  192. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts.map +1 -1
  193. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js +3 -0
  194. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  195. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +30 -7
  196. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -1
  197. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
  198. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  199. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts +1 -0
  200. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -1
  201. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
  202. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
  203. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  204. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  205. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +2 -6
  206. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  207. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts +2 -0
  208. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts.map +1 -1
  209. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js +45 -2
  210. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js.map +1 -1
  211. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  212. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +8 -0
  213. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  214. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js +11 -1
  215. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js.map +1 -1
  216. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.d.ts.map +1 -1
  217. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js +7 -0
  218. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js.map +1 -1
  219. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts +3 -1
  220. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  221. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +22 -1
  222. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  223. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts +3 -1
  224. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  225. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +23 -4
  226. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  227. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.d.ts.map +1 -1
  228. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js +9 -0
  229. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js.map +1 -1
  230. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  231. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +23 -5
  232. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  233. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
  234. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
  235. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
  236. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
  237. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
  238. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
  239. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts +2 -2
  240. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  241. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +5 -4
  242. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  243. package/analyzer-template/packages/github/dist/generate/index.d.ts +3 -0
  244. package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -1
  245. package/analyzer-template/packages/github/dist/generate/index.js +3 -0
  246. package/analyzer-template/packages/github/dist/generate/index.js.map +1 -1
  247. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
  248. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  249. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  250. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts +9 -0
  251. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -0
  252. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  253. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  254. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts +20 -0
  255. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts.map +1 -0
  256. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  257. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  258. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
  259. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +8 -4
  260. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  261. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.d.ts.map +1 -1
  262. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js +27 -1
  263. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js.map +1 -1
  264. package/analyzer-template/packages/github/dist/generate/src/lib/directExecutionScript.d.ts.map +1 -1
  265. package/analyzer-template/packages/github/dist/generate/src/lib/directExecutionScript.js +10 -1
  266. package/analyzer-template/packages/github/dist/generate/src/lib/directExecutionScript.js.map +1 -1
  267. package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.d.ts.map +1 -1
  268. package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.js +7 -3
  269. package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.js.map +1 -1
  270. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts +8 -0
  271. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts.map +1 -0
  272. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js +89 -0
  273. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  274. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -1
  275. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +10 -0
  276. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -1
  277. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -1
  278. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +3 -0
  279. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -1
  280. package/analyzer-template/packages/github/dist/types/index.d.ts +2 -2
  281. package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
  282. package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
  283. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +87 -13
  284. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
  285. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts +2 -0
  286. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts.map +1 -1
  287. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +2 -0
  288. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -1
  289. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  290. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  291. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +11 -6
  292. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  293. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +199 -3
  294. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  295. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  296. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  297. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +2 -0
  298. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  299. package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.d.ts.map +1 -1
  300. package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.js +26 -2
  301. package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.js.map +1 -1
  302. package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -1
  303. package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js +25 -0
  304. package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
  305. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts +9 -1
  306. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  307. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +29 -3
  308. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -1
  309. package/analyzer-template/packages/github/package.json +1 -1
  310. package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +14 -0
  311. package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +2 -0
  312. package/analyzer-template/packages/process/index.ts +2 -0
  313. package/analyzer-template/packages/process/package.json +12 -0
  314. package/analyzer-template/packages/process/tsconfig.json +8 -0
  315. package/analyzer-template/packages/types/index.ts +5 -0
  316. package/analyzer-template/packages/types/src/types/Analysis.ts +104 -13
  317. package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
  318. package/analyzer-template/packages/types/src/types/Entity.ts +2 -0
  319. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +7 -0
  320. package/analyzer-template/packages/types/src/types/Scenario.ts +11 -10
  321. package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +228 -3
  322. package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
  323. package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
  324. package/analyzer-template/packages/ui-components/package.json +4 -4
  325. package/analyzer-template/packages/ui-components/src/components/ScenarioDetailInteractiveView.tsx +23 -7
  326. package/analyzer-template/packages/utils/dist/types/index.d.ts +2 -2
  327. package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
  328. package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
  329. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +87 -13
  330. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
  331. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts +2 -0
  332. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts.map +1 -1
  333. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +2 -0
  334. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -1
  335. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  336. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  337. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +11 -6
  338. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  339. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +199 -3
  340. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  341. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  342. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  343. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +2 -0
  344. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  345. package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.d.ts.map +1 -1
  346. package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.js +26 -2
  347. package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.js.map +1 -1
  348. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  349. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +93 -2
  350. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  351. package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -1
  352. package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js +25 -0
  353. package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
  354. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +9 -1
  355. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  356. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +29 -3
  357. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -1
  358. package/analyzer-template/packages/utils/src/lib/applyUniversalMocks.ts +28 -2
  359. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +108 -2
  360. package/analyzer-template/packages/utils/src/lib/lightweightEntityExtractor.ts +27 -0
  361. package/analyzer-template/packages/utils/src/lib/safeFileName.ts +48 -3
  362. package/analyzer-template/playwright/capture.ts +57 -26
  363. package/analyzer-template/playwright/captureStatic.ts +1 -1
  364. package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
  365. package/analyzer-template/playwright/takeElementScreenshot.ts +26 -11
  366. package/analyzer-template/playwright/takeScreenshot.ts +15 -9
  367. package/analyzer-template/playwright/waitForServer.ts +21 -6
  368. package/analyzer-template/project/TESTING.md +83 -0
  369. package/analyzer-template/project/analyzeBaselineCommit.ts +9 -0
  370. package/analyzer-template/project/analyzeBranchCommit.ts +4 -0
  371. package/analyzer-template/project/analyzeFileEntities.ts +4 -0
  372. package/analyzer-template/project/analyzeRegularCommit.ts +9 -0
  373. package/analyzer-template/project/captureLibraryFunctionDirect.ts +29 -26
  374. package/analyzer-template/project/constructMockCode.ts +1319 -158
  375. package/analyzer-template/project/controller/startController.ts +16 -1
  376. package/analyzer-template/project/createEntitiesAndSortFiles.ts +83 -0
  377. package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
  378. package/analyzer-template/project/loadReadyToBeCaptured.ts +82 -42
  379. package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
  380. package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
  381. package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +13 -9
  382. package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +93 -42
  383. package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
  384. package/analyzer-template/project/orchestrateCapture.ts +88 -12
  385. package/analyzer-template/project/reconcileMockDataKeys.ts +245 -2
  386. package/analyzer-template/project/runAnalysis.ts +11 -0
  387. package/analyzer-template/project/runMultiScenarioServer.ts +11 -10
  388. package/analyzer-template/project/serverOnlyModules.ts +413 -0
  389. package/analyzer-template/project/start.ts +72 -19
  390. package/analyzer-template/project/startScenarioCapture.ts +79 -41
  391. package/analyzer-template/project/writeMockDataTsx.ts +466 -73
  392. package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
  393. package/analyzer-template/project/writeScenarioComponents.ts +1447 -214
  394. package/analyzer-template/project/writeScenarioFiles.ts +26 -0
  395. package/analyzer-template/project/writeSimpleRoot.ts +56 -22
  396. package/analyzer-template/project/writeUniversalMocks.ts +32 -11
  397. package/analyzer-template/scripts/comboWorkerLoop.cjs +99 -50
  398. package/analyzer-template/scripts/defaultCmd.sh +9 -0
  399. package/analyzer-template/tsconfig.json +2 -1
  400. package/background/src/lib/local/createLocalAnalyzer.js +2 -30
  401. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  402. package/background/src/lib/local/execAsync.js +1 -1
  403. package/background/src/lib/local/execAsync.js.map +1 -1
  404. package/background/src/lib/virtualized/common/execAsync.js +1 -1
  405. package/background/src/lib/virtualized/common/execAsync.js.map +1 -1
  406. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +7 -1
  407. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
  408. package/background/src/lib/virtualized/project/analyzeBranchCommit.js +2 -1
  409. package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -1
  410. package/background/src/lib/virtualized/project/analyzeFileEntities.js +2 -1
  411. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  412. package/background/src/lib/virtualized/project/analyzeRegularCommit.js +7 -1
  413. package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
  414. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +3 -3
  415. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -1
  416. package/background/src/lib/virtualized/project/constructMockCode.js +1171 -120
  417. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  418. package/background/src/lib/virtualized/project/controller/startController.js +11 -1
  419. package/background/src/lib/virtualized/project/controller/startController.js.map +1 -1
  420. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +73 -1
  421. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -1
  422. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +6 -3
  423. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -1
  424. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +34 -9
  425. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
  426. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +7 -7
  427. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -1
  428. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js +2 -2
  429. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -1
  430. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +12 -6
  431. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
  432. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +73 -36
  433. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
  434. package/background/src/lib/virtualized/project/orchestrateCapture.js +72 -13
  435. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  436. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +204 -2
  437. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  438. package/background/src/lib/virtualized/project/runAnalysis.js +9 -0
  439. package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
  440. package/background/src/lib/virtualized/project/runMultiScenarioServer.js +11 -9
  441. package/background/src/lib/virtualized/project/runMultiScenarioServer.js.map +1 -1
  442. package/background/src/lib/virtualized/project/serverOnlyModules.js +338 -0
  443. package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -0
  444. package/background/src/lib/virtualized/project/start.js +62 -19
  445. package/background/src/lib/virtualized/project/start.js.map +1 -1
  446. package/background/src/lib/virtualized/project/startScenarioCapture.js +61 -31
  447. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  448. package/background/src/lib/virtualized/project/writeMockDataTsx.js +404 -62
  449. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  450. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js +15 -0
  451. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js.map +1 -0
  452. package/background/src/lib/virtualized/project/writeScenarioComponents.js +1066 -146
  453. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  454. package/background/src/lib/virtualized/project/writeScenarioFiles.js +19 -0
  455. package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -1
  456. package/background/src/lib/virtualized/project/writeSimpleRoot.js +57 -20
  457. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  458. package/background/src/lib/virtualized/project/writeUniversalMocks.js +27 -12
  459. package/background/src/lib/virtualized/project/writeUniversalMocks.js.map +1 -1
  460. package/codeyam-cli/scripts/apply-setup.js +180 -0
  461. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  462. package/codeyam-cli/src/cli.js +11 -1
  463. package/codeyam-cli/src/cli.js.map +1 -1
  464. package/codeyam-cli/src/codeyam-cli.js +18 -2
  465. package/codeyam-cli/src/codeyam-cli.js.map +1 -1
  466. package/codeyam-cli/src/commands/analyze.js +5 -3
  467. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  468. package/codeyam-cli/src/commands/baseline.js +176 -0
  469. package/codeyam-cli/src/commands/baseline.js.map +1 -0
  470. package/codeyam-cli/src/commands/debug.js +44 -18
  471. package/codeyam-cli/src/commands/debug.js.map +1 -1
  472. package/codeyam-cli/src/commands/default.js +30 -34
  473. package/codeyam-cli/src/commands/default.js.map +1 -1
  474. package/codeyam-cli/src/commands/detect-universal-mocks.js +2 -0
  475. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +1 -1
  476. package/codeyam-cli/src/commands/init.js +49 -257
  477. package/codeyam-cli/src/commands/init.js.map +1 -1
  478. package/codeyam-cli/src/commands/memory.js +307 -0
  479. package/codeyam-cli/src/commands/memory.js.map +1 -0
  480. package/codeyam-cli/src/commands/recapture.js +228 -0
  481. package/codeyam-cli/src/commands/recapture.js.map +1 -0
  482. package/codeyam-cli/src/commands/report.js +72 -24
  483. package/codeyam-cli/src/commands/report.js.map +1 -1
  484. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  485. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  486. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  487. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  488. package/codeyam-cli/src/commands/start.js +8 -12
  489. package/codeyam-cli/src/commands/start.js.map +1 -1
  490. package/codeyam-cli/src/commands/status.js +23 -1
  491. package/codeyam-cli/src/commands/status.js.map +1 -1
  492. package/codeyam-cli/src/commands/test-startup.js +3 -1
  493. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  494. package/codeyam-cli/src/commands/verify.js +14 -2
  495. package/codeyam-cli/src/commands/verify.js.map +1 -1
  496. package/codeyam-cli/src/commands/wipe.js +108 -0
  497. package/codeyam-cli/src/commands/wipe.js.map +1 -0
  498. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +179 -0
  499. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
  500. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
  501. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
  502. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +128 -82
  503. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  504. package/codeyam-cli/src/utils/analysisRunner.js +29 -15
  505. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  506. package/codeyam-cli/src/utils/analyzer.js +7 -0
  507. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  508. package/codeyam-cli/src/utils/backgroundServer.js +104 -23
  509. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  510. package/codeyam-cli/src/utils/database.js +91 -5
  511. package/codeyam-cli/src/utils/database.js.map +1 -1
  512. package/codeyam-cli/src/utils/generateReport.js +253 -106
  513. package/codeyam-cli/src/utils/generateReport.js.map +1 -1
  514. package/codeyam-cli/src/utils/git.js +79 -0
  515. package/codeyam-cli/src/utils/git.js.map +1 -0
  516. package/codeyam-cli/src/utils/install-skills.js +76 -42
  517. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  518. package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
  519. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
  520. package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
  521. package/codeyam-cli/src/utils/npmVersionCheck.js.map +1 -0
  522. package/codeyam-cli/src/utils/progress.js +7 -0
  523. package/codeyam-cli/src/utils/progress.js.map +1 -1
  524. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +38 -0
  525. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
  526. package/codeyam-cli/src/utils/queue/job.js +249 -16
  527. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  528. package/codeyam-cli/src/utils/queue/manager.js +103 -7
  529. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  530. package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
  531. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  532. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  533. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
  534. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
  535. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +230 -0
  536. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
  537. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
  538. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
  539. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
  540. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
  541. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
  542. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
  543. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
  544. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
  545. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +75 -0
  546. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
  547. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +378 -0
  548. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
  549. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +116 -0
  550. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
  551. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
  552. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
  553. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
  554. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
  555. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
  556. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
  557. package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
  558. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
  559. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
  560. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
  561. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
  562. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
  563. package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
  564. package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
  565. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
  566. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
  567. package/codeyam-cli/src/utils/rules/index.js +6 -0
  568. package/codeyam-cli/src/utils/rules/index.js.map +1 -0
  569. package/codeyam-cli/src/utils/rules/parser.js +83 -0
  570. package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
  571. package/codeyam-cli/src/utils/rules/pathMatcher.js +18 -0
  572. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
  573. package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
  574. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
  575. package/codeyam-cli/src/utils/rules/staleness.js +137 -0
  576. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
  577. package/codeyam-cli/src/utils/serverState.js +37 -10
  578. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  579. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +21 -42
  580. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  581. package/codeyam-cli/src/utils/versionInfo.js +46 -15
  582. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  583. package/codeyam-cli/src/utils/wipe.js +128 -0
  584. package/codeyam-cli/src/utils/wipe.js.map +1 -0
  585. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js +66 -0
  586. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
  587. package/codeyam-cli/src/webserver/app/lib/database.js +118 -6
  588. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  589. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  590. package/codeyam-cli/src/webserver/backgroundServer.js +55 -10
  591. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  592. package/codeyam-cli/src/webserver/bootstrap.js +60 -0
  593. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -0
  594. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-jNYXRRNI.js +1 -0
  595. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-bwuHPyTa.js +11 -0
  596. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-kykTbcnD.js → EntityTypeBadge-CvzqMxcu.js} +1 -1
  597. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BH0XDim7.js +41 -0
  598. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-EhOseatT.js +34 -0
  599. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-yjIHlOGa.js +25 -0
  600. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-Cq5o8jL4.js +3 -0
  601. package/codeyam-cli/src/webserver/build/client/assets/LoadingDots-BvMu2i-g.js +6 -0
  602. package/codeyam-cli/src/webserver/build/client/assets/LogViewer-kgBTLoJD.js +3 -0
  603. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-BzPgx-xO.js +11 -0
  604. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-CwZrv-Ok.js +1 -0
  605. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-BX2Ny2Qj.js +10 -0
  606. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-C06nsHKY.js → TruncatedFilePath-CDpEprKa.js} +1 -1
  607. package/codeyam-cli/src/webserver/build/client/assets/_index-BRx8ZGZo.js +11 -0
  608. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-4S4yPfFw.js +27 -0
  609. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-DHKuQSmR.js +17 -0
  610. package/codeyam-cli/src/webserver/build/client/assets/api.agent-transcripts-l0sNRNKZ.js +1 -0
  611. package/codeyam-cli/src/webserver/build/client/assets/api.health-l0sNRNKZ.js +1 -0
  612. package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
  613. package/codeyam-cli/src/webserver/build/client/assets/api.memory-profile-l0sNRNKZ.js +1 -0
  614. package/codeyam-cli/src/webserver/build/client/assets/api.restart-server-l0sNRNKZ.js +1 -0
  615. package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
  616. package/codeyam-cli/src/webserver/build/client/assets/book-open-D4IPYH_y.js +6 -0
  617. package/codeyam-cli/src/webserver/build/client/assets/chevron-down-CG65viiV.js +6 -0
  618. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-DB3aFuEO.js +51 -0
  619. package/codeyam-cli/src/webserver/build/client/assets/circle-check-igfMr5DY.js +6 -0
  620. package/codeyam-cli/src/webserver/build/client/assets/copy-Coc4o_8c.js +11 -0
  621. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-D1zB-pYc.js +21 -0
  622. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-C1gnJVOL.svg → cy-logo-cli-CCKUIm0S.svg} +2 -2
  623. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +1 -0
  624. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-JTAjQ54M.js +1 -0
  625. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-CYqBrC9s.js → entity._sha._-B0h9AqE6.js} +22 -15
  626. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DjLxr2JB.js +6 -0
  627. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-CtYowLOt.js +6 -0
  628. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-PePWg17F.js +5 -0
  629. package/codeyam-cli/src/webserver/build/client/assets/entry.client-I-Wo99C_.js +29 -0
  630. package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
  631. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-9sMMAiWJ.js +1 -0
  632. package/codeyam-cli/src/webserver/build/client/assets/files-Co65J0s3.js +1 -0
  633. package/codeyam-cli/src/webserver/build/client/assets/git-BdHOxVfg.js +15 -0
  634. package/codeyam-cli/src/webserver/build/client/assets/globals-CCgBKWy4.css +1 -0
  635. package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-fmIEn3Bc.js +9 -0
  636. package/codeyam-cli/src/webserver/build/client/assets/index-CUM5iXwc.js +9 -0
  637. package/codeyam-cli/src/webserver/build/client/assets/index-_417gcQW.js +3 -0
  638. package/codeyam-cli/src/webserver/build/client/assets/labs-BK0C1H1T.js +1 -0
  639. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-TzRHMVog.js +6 -0
  640. package/codeyam-cli/src/webserver/build/client/assets/manifest-390cb8fa.js +1 -0
  641. package/codeyam-cli/src/webserver/build/client/assets/memory-CzZySbBE.js +78 -0
  642. package/codeyam-cli/src/webserver/build/client/assets/pause-hjzB7t2z.js +11 -0
  643. package/codeyam-cli/src/webserver/build/client/assets/preload-helper-ckwbz45p.js +1 -0
  644. package/codeyam-cli/src/webserver/build/client/assets/root-DnbDhvTU.js +62 -0
  645. package/codeyam-cli/src/webserver/build/client/assets/scenarioStatus-B_8jpV3e.js +1 -0
  646. package/codeyam-cli/src/webserver/build/client/assets/search-DcAwD_Ln.js +6 -0
  647. package/codeyam-cli/src/webserver/build/client/assets/settings-CclxrcPK.js +1 -0
  648. package/codeyam-cli/src/webserver/build/client/assets/simulations-DVNJVQgD.js +1 -0
  649. package/codeyam-cli/src/webserver/build/client/assets/terminal-DbEAHMbA.js +11 -0
  650. package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-CAD5b1o_.js +6 -0
  651. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BqgrAzs3.js +1 -0
  652. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-Blr5oZDE.js → useLastLogLine-DAFqfEDH.js} +1 -1
  653. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DZlYx2c4.js +1 -0
  654. package/codeyam-cli/src/webserver/build/client/assets/{useToast-Bbf4Hokd.js → useToast-ihdMtlf6.js} +1 -1
  655. package/codeyam-cli/src/webserver/build/server/assets/index-CXfuiwt3.js +1 -0
  656. package/codeyam-cli/src/webserver/build/server/assets/server-build-BSvme_Ao.js +259 -0
  657. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  658. package/codeyam-cli/src/webserver/build-info.json +5 -5
  659. package/codeyam-cli/src/webserver/devServer.js +1 -3
  660. package/codeyam-cli/src/webserver/devServer.js.map +1 -1
  661. package/codeyam-cli/src/webserver/server.js +35 -25
  662. package/codeyam-cli/src/webserver/server.js.map +1 -1
  663. package/codeyam-cli/templates/{codeyam-debug-skill.md → codeyam-debug.md} +48 -4
  664. package/codeyam-cli/templates/codeyam-diagnose.md +481 -0
  665. package/codeyam-cli/templates/codeyam-memory-hook.sh +199 -0
  666. package/codeyam-cli/templates/codeyam-memory.md +396 -0
  667. package/codeyam-cli/templates/codeyam-new-rule.md +13 -0
  668. package/codeyam-cli/templates/{codeyam-setup-skill.md → codeyam-setup.md} +151 -4
  669. package/codeyam-cli/templates/{codeyam-sim-skill.md → codeyam-sim.md} +1 -1
  670. package/codeyam-cli/templates/{codeyam-test-skill.md → codeyam-test.md} +1 -1
  671. package/codeyam-cli/templates/{codeyam-verify-skill.md → codeyam-verify.md} +1 -1
  672. package/codeyam-cli/templates/rule-notification-hook.py +56 -0
  673. package/codeyam-cli/templates/rule-reflection-hook.py +627 -0
  674. package/codeyam-cli/templates/rules-instructions.md +132 -0
  675. package/package.json +25 -22
  676. package/packages/ai/index.js +8 -6
  677. package/packages/ai/index.js.map +1 -1
  678. package/packages/ai/src/lib/analyzeScope.js +181 -13
  679. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  680. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js +150 -0
  681. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js.map +1 -0
  682. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +154 -9
  683. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  684. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
  685. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
  686. package/packages/ai/src/lib/astScopes/methodSemantics.js +138 -23
  687. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  688. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
  689. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
  690. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +8 -0
  691. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -1
  692. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +23 -0
  693. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
  694. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +138 -1
  695. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
  696. package/packages/ai/src/lib/astScopes/processExpression.js +1235 -104
  697. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  698. package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
  699. package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
  700. package/packages/ai/src/lib/checkAllAttributes.js +24 -9
  701. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  702. package/packages/ai/src/lib/completionCall.js +178 -31
  703. package/packages/ai/src/lib/completionCall.js.map +1 -1
  704. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1961 -224
  705. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  706. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +19 -4
  707. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  708. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +661 -0
  709. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -0
  710. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +180 -56
  711. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  712. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +13 -3
  713. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -1
  714. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +6 -4
  715. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -1
  716. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +66 -2
  717. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  718. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +139 -13
  719. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  720. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
  721. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
  722. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +142 -12
  723. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  724. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js +86 -0
  725. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js.map +1 -0
  726. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
  727. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
  728. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
  729. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
  730. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +371 -73
  731. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  732. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js +107 -0
  733. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js.map +1 -0
  734. package/packages/ai/src/lib/dataStructureChunking.js +130 -0
  735. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -0
  736. package/packages/ai/src/lib/deepEqual.js +32 -0
  737. package/packages/ai/src/lib/deepEqual.js.map +1 -0
  738. package/packages/ai/src/lib/e2eDataTracking.js +241 -0
  739. package/packages/ai/src/lib/e2eDataTracking.js.map +1 -0
  740. package/packages/ai/src/lib/extractCriticalDataKeys.js +96 -0
  741. package/packages/ai/src/lib/extractCriticalDataKeys.js.map +1 -0
  742. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +62 -5
  743. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  744. package/packages/ai/src/lib/generateChangesEntityScenarios.js +81 -90
  745. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  746. package/packages/ai/src/lib/generateEntityDataStructure.js +50 -1
  747. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  748. package/packages/ai/src/lib/generateEntityScenarioData.js +1127 -91
  749. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  750. package/packages/ai/src/lib/generateEntityScenarios.js +193 -83
  751. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  752. package/packages/ai/src/lib/generateExecutionFlows.js +495 -0
  753. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
  754. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
  755. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
  756. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +1807 -0
  757. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
  758. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
  759. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js.map +1 -0
  760. package/packages/ai/src/lib/getConditionalUsagesFromCode.js +84 -14
  761. package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -1
  762. package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -1
  763. package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
  764. package/packages/ai/src/lib/isolateScopes.js +270 -7
  765. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  766. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
  767. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
  768. package/packages/ai/src/lib/mergeStatements.js +88 -46
  769. package/packages/ai/src/lib/mergeStatements.js.map +1 -1
  770. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
  771. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
  772. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +16 -4
  773. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  774. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +1 -1
  775. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  776. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +21 -64
  777. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  778. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js +54 -0
  779. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js.map +1 -0
  780. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +83 -6
  781. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  782. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +10 -34
  783. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  784. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
  785. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
  786. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +16 -3
  787. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
  788. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js +335 -0
  789. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js.map +1 -0
  790. package/packages/ai/src/lib/resolvePathToControllable.js +677 -0
  791. package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
  792. package/packages/ai/src/lib/splitOutsideParentheses.js +3 -1
  793. package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -1
  794. package/packages/ai/src/lib/worker/SerializableDataStructure.js +29 -0
  795. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  796. package/packages/ai/src/lib/worker/analyzeScopeWorker.js +98 -1
  797. package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
  798. package/packages/analyze/index.js +1 -0
  799. package/packages/analyze/index.js.map +1 -1
  800. package/packages/analyze/src/lib/FileAnalyzer.js +75 -36
  801. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  802. package/packages/analyze/src/lib/ProjectAnalyzer.js +96 -26
  803. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  804. package/packages/analyze/src/lib/analysisContext.js +30 -5
  805. package/packages/analyze/src/lib/analysisContext.js.map +1 -1
  806. package/packages/analyze/src/lib/asts/nodes/index.js +1 -0
  807. package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
  808. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
  809. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
  810. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +14 -0
  811. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -1
  812. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +14 -0
  813. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -1
  814. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +6 -0
  815. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
  816. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +6 -0
  817. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -1
  818. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +39 -1
  819. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -1
  820. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +2 -1
  821. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -1
  822. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +428 -123
  823. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  824. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +42 -1
  825. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  826. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +5 -0
  827. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  828. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +2 -0
  829. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  830. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +2 -1
  831. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  832. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +31 -10
  833. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  834. package/packages/analyze/src/lib/files/analyzeChange.js +21 -11
  835. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  836. package/packages/analyze/src/lib/files/analyzeEntity.js +9 -8
  837. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  838. package/packages/analyze/src/lib/files/analyzeInitial.js +9 -10
  839. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  840. package/packages/analyze/src/lib/files/analyzeRemixRoute.js +3 -2
  841. package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
  842. package/packages/analyze/src/lib/files/enums/steps.js +1 -1
  843. package/packages/analyze/src/lib/files/enums/steps.js.map +1 -1
  844. package/packages/analyze/src/lib/files/getImportedExports.js +17 -8
  845. package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
  846. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +880 -0
  847. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
  848. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +255 -0
  849. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -0
  850. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
  851. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
  852. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +550 -62
  853. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  854. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js +1 -1
  855. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js.map +1 -1
  856. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +29 -34
  857. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
  858. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +404 -85
  859. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  860. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +144 -0
  861. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
  862. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +56 -69
  863. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  864. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +4 -8
  865. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  866. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +875 -141
  867. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  868. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +46 -9
  869. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -1
  870. package/packages/analyze/src/lib/files/setImportedExports.js +2 -1
  871. package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -1
  872. package/packages/analyze/src/lib/index.js +1 -0
  873. package/packages/analyze/src/lib/index.js.map +1 -1
  874. package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
  875. package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
  876. package/packages/aws/src/lib/ecs/ecsDefineContainer.js +2 -2
  877. package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  878. package/packages/aws/src/lib/ecs/ecsTaskFactory.js +17 -61
  879. package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  880. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  881. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  882. package/packages/database/src/lib/analysisToDb.js +1 -1
  883. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  884. package/packages/database/src/lib/branchToDb.js +1 -1
  885. package/packages/database/src/lib/branchToDb.js.map +1 -1
  886. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  887. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  888. package/packages/database/src/lib/commitToDb.js +1 -1
  889. package/packages/database/src/lib/commitToDb.js.map +1 -1
  890. package/packages/database/src/lib/fileToDb.js +1 -1
  891. package/packages/database/src/lib/fileToDb.js.map +1 -1
  892. package/packages/database/src/lib/kysely/db.js +13 -3
  893. package/packages/database/src/lib/kysely/db.js.map +1 -1
  894. package/packages/database/src/lib/kysely/tables/commitsTable.js +3 -0
  895. package/packages/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  896. package/packages/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
  897. package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  898. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  899. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  900. package/packages/database/src/lib/loadAnalyses.js +45 -2
  901. package/packages/database/src/lib/loadAnalyses.js.map +1 -1
  902. package/packages/database/src/lib/loadAnalysis.js +8 -0
  903. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  904. package/packages/database/src/lib/loadBranch.js +11 -1
  905. package/packages/database/src/lib/loadBranch.js.map +1 -1
  906. package/packages/database/src/lib/loadCommit.js +7 -0
  907. package/packages/database/src/lib/loadCommit.js.map +1 -1
  908. package/packages/database/src/lib/loadCommits.js +22 -1
  909. package/packages/database/src/lib/loadCommits.js.map +1 -1
  910. package/packages/database/src/lib/loadEntities.js +23 -4
  911. package/packages/database/src/lib/loadEntities.js.map +1 -1
  912. package/packages/database/src/lib/loadEntityBranches.js +9 -0
  913. package/packages/database/src/lib/loadEntityBranches.js.map +1 -1
  914. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +23 -5
  915. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  916. package/packages/database/src/lib/projectToDb.js +1 -1
  917. package/packages/database/src/lib/projectToDb.js.map +1 -1
  918. package/packages/database/src/lib/saveFiles.js +1 -1
  919. package/packages/database/src/lib/saveFiles.js.map +1 -1
  920. package/packages/database/src/lib/scenarioToDb.js +1 -1
  921. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  922. package/packages/database/src/lib/updateCommitMetadata.js +5 -4
  923. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  924. package/packages/generate/index.js +3 -0
  925. package/packages/generate/index.js.map +1 -1
  926. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  927. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  928. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  929. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  930. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  931. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  932. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +8 -4
  933. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  934. package/packages/generate/src/lib/deepMerge.js +27 -1
  935. package/packages/generate/src/lib/deepMerge.js.map +1 -1
  936. package/packages/generate/src/lib/directExecutionScript.js +10 -1
  937. package/packages/generate/src/lib/directExecutionScript.js.map +1 -1
  938. package/packages/generate/src/lib/getComponentScenarioPath.js +7 -3
  939. package/packages/generate/src/lib/getComponentScenarioPath.js.map +1 -1
  940. package/packages/generate/src/lib/scenarioComponentForServer.js +89 -0
  941. package/packages/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  942. package/packages/github/src/lib/loadOrCreateCommit.js +10 -0
  943. package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -1
  944. package/packages/github/src/lib/syncPrimaryBranch.js +3 -0
  945. package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -1
  946. package/packages/process/index.js +3 -0
  947. package/packages/process/index.js.map +1 -0
  948. package/packages/process/src/GlobalProcessManager.js.map +1 -0
  949. package/{background/src/lib/process → packages/process/src}/ProcessManager.js +1 -1
  950. package/packages/process/src/ProcessManager.js.map +1 -0
  951. package/packages/process/src/index.js.map +1 -0
  952. package/packages/process/src/managedExecAsync.js.map +1 -0
  953. package/packages/types/index.js.map +1 -1
  954. package/packages/utils/src/lib/applyUniversalMocks.js +26 -2
  955. package/packages/utils/src/lib/applyUniversalMocks.js.map +1 -1
  956. package/packages/utils/src/lib/fs/rsyncCopy.js +93 -2
  957. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  958. package/packages/utils/src/lib/lightweightEntityExtractor.js +25 -0
  959. package/packages/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
  960. package/packages/utils/src/lib/safeFileName.js +29 -3
  961. package/packages/utils/src/lib/safeFileName.js.map +1 -1
  962. package/scripts/finalize-analyzer.cjs +8 -74
  963. package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +0 -102
  964. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +0 -197
  965. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +0 -271
  966. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +0 -294
  967. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +0 -67
  968. package/analyzer-template/packages/ai/src/lib/transformMockDataToMatchSchema.ts +0 -156
  969. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +0 -115
  970. package/analyzer-template/process/INTEGRATION_COMPLETE.md +0 -333
  971. package/analyzer-template/process/INTEGRATION_EXAMPLE.md +0 -525
  972. package/analyzer-template/process/README.md +0 -507
  973. package/background/src/lib/process/GlobalProcessManager.js.map +0 -1
  974. package/background/src/lib/process/ProcessManager.js.map +0 -1
  975. package/background/src/lib/process/index.js.map +0 -1
  976. package/background/src/lib/process/managedExecAsync.js.map +0 -1
  977. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +0 -238
  978. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +0 -1
  979. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-D4htqD-x.js +0 -1
  980. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-Catz6XEN.js +0 -1
  981. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-TlHocYno.js +0 -26
  982. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-CVMmGuIc.js +0 -3
  983. package/codeyam-cli/src/webserver/build/client/assets/LogViewer-JkfQ-VaI.js +0 -3
  984. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-CVZ0H4BL.js +0 -1
  985. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-BrMAP1nP.js +0 -1
  986. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-CJhE4cCv.js +0 -5
  987. package/codeyam-cli/src/webserver/build/client/assets/_index-faVIcr_i.js +0 -1
  988. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CLMa2sgx.js +0 -7
  989. package/codeyam-cli/src/webserver/build/client/assets/chevron-down-DwYjrK_h.js +0 -1
  990. package/codeyam-cli/src/webserver/build/client/assets/chunk-WWGJGFF6-CgXbbZRx.js +0 -26
  991. package/codeyam-cli/src/webserver/build/client/assets/circle-check-B2oHQ-zo.js +0 -1
  992. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-BBYuR56H.js +0 -1
  993. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-CT0Q5lVu.js +0 -1
  994. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-Bj5GHkhb.js +0 -1
  995. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-eW5z9AyZ.js +0 -5
  996. package/codeyam-cli/src/webserver/build/client/assets/entry.client-B9tSboXM.js +0 -5
  997. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-CmO-EZAB.js +0 -1
  998. package/codeyam-cli/src/webserver/build/client/assets/files-DLinnTOx.js +0 -1
  999. package/codeyam-cli/src/webserver/build/client/assets/git-CIxwBQvb.js +0 -12
  1000. package/codeyam-cli/src/webserver/build/client/assets/globals-xPz593l2.css +0 -1
  1001. package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-XQCGvadH.js +0 -5
  1002. package/codeyam-cli/src/webserver/build/client/assets/index-_LjBsTxX.js +0 -8
  1003. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-D_EGChhq.js +0 -1
  1004. package/codeyam-cli/src/webserver/build/client/assets/manifest-ca438c41.js +0 -1
  1005. package/codeyam-cli/src/webserver/build/client/assets/root-CHHYHuzL.js +0 -16
  1006. package/codeyam-cli/src/webserver/build/client/assets/search-DY8yoDpH.js +0 -1
  1007. package/codeyam-cli/src/webserver/build/client/assets/server-build-CMKNK2uU.css +0 -1
  1008. package/codeyam-cli/src/webserver/build/client/assets/settings-BT6wVHd5.js +0 -1
  1009. package/codeyam-cli/src/webserver/build/client/assets/simulations-gv3H7JV7.js +0 -1
  1010. package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-BthANBVv.js +0 -1
  1011. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-CANr3QJ5.js +0 -1
  1012. package/codeyam-cli/src/webserver/build/server/assets/index-BtBPtyHx.js +0 -1
  1013. package/codeyam-cli/src/webserver/build/server/assets/server-build-N2cTnejq.js +0 -166
  1014. package/codeyam-cli/templates/debug-command.md +0 -141
  1015. package/packages/ai/src/lib/findMatchingAttribute.js +0 -77
  1016. package/packages/ai/src/lib/findMatchingAttribute.js.map +0 -1
  1017. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +0 -136
  1018. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +0 -1
  1019. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +0 -220
  1020. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +0 -1
  1021. package/packages/ai/src/lib/generateEntityKeyAttributes.js +0 -241
  1022. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +0 -1
  1023. package/packages/ai/src/lib/isFrontend.js +0 -5
  1024. package/packages/ai/src/lib/isFrontend.js.map +0 -1
  1025. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +0 -40
  1026. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +0 -1
  1027. package/packages/ai/src/lib/transformMockDataToMatchSchema.js +0 -124
  1028. package/packages/ai/src/lib/transformMockDataToMatchSchema.js.map +0 -1
  1029. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +0 -72
  1030. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +0 -1
  1031. /package/analyzer-template/{process → packages/process/src}/GlobalProcessManager.ts +0 -0
  1032. /package/analyzer-template/{process → packages/process/src}/ProcessManager.ts +0 -0
  1033. /package/analyzer-template/{process → packages/process/src}/index.ts +0 -0
  1034. /package/analyzer-template/{process → packages/process/src}/managedExecAsync.ts +0 -0
  1035. /package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-CMKNK2uU.css → styles-CMKNK2uU.css} +0 -0
  1036. /package/{background/src/lib/process → packages/process/src}/GlobalProcessManager.js +0 -0
  1037. /package/{background/src/lib/process → packages/process/src}/index.js +0 -0
  1038. /package/{background/src/lib/process → packages/process/src}/managedExecAsync.js +0 -0
@@ -139,6 +139,96 @@ export class ArrayFilterSemantics implements MethodSemantics {
139
139
  }
140
140
  }
141
141
 
142
+ /**
143
+ * Array some method semantics
144
+ *
145
+ * some() returns true if at least one element passes the test, false otherwise
146
+ * The callback receives array elements to test
147
+ */
148
+ export class ArraySomeSemantics implements MethodSemantics {
149
+ getReturnType(): string {
150
+ return 'boolean';
151
+ }
152
+
153
+ addEquivalences(
154
+ methodCallPath: StructuredPath,
155
+ sourcePath: StructuredPath,
156
+ context: AnalysisContext,
157
+ ): void {
158
+ // Mark source as array
159
+ context.addType(sourcePath, 'array');
160
+
161
+ // Mark return as boolean
162
+ context.addType(methodCallPath, 'boolean');
163
+
164
+ // Get the last function call segment to access the arguments
165
+ const lastFunctionCallSegment = methodCallPath.getLastFunctionCallSegment();
166
+
167
+ if (lastFunctionCallSegment && lastFunctionCallSegment.args.length > 0) {
168
+ // The first argument is the callback
169
+ const callbackPath = lastFunctionCallSegment.args[0];
170
+
171
+ // Add the callback to the structure
172
+ context.addType(callbackPath, 'function');
173
+
174
+ // Mark that the callback's first parameter receives array elements
175
+ context.addEquivalence(
176
+ callbackPath.withParameter(0),
177
+ sourcePath.withElement('*'),
178
+ );
179
+ }
180
+ }
181
+
182
+ isComplete(): boolean {
183
+ return true;
184
+ }
185
+ }
186
+
187
+ /**
188
+ * Array every method semantics
189
+ *
190
+ * every() returns true if all elements pass the test, false otherwise
191
+ * The callback receives array elements to test
192
+ */
193
+ export class ArrayEverySemantics implements MethodSemantics {
194
+ getReturnType(): string {
195
+ return 'boolean';
196
+ }
197
+
198
+ addEquivalences(
199
+ methodCallPath: StructuredPath,
200
+ sourcePath: StructuredPath,
201
+ context: AnalysisContext,
202
+ ): void {
203
+ // Mark source as array
204
+ context.addType(sourcePath, 'array');
205
+
206
+ // Mark return as boolean
207
+ context.addType(methodCallPath, 'boolean');
208
+
209
+ // Get the last function call segment to access the arguments
210
+ const lastFunctionCallSegment = methodCallPath.getLastFunctionCallSegment();
211
+
212
+ if (lastFunctionCallSegment && lastFunctionCallSegment.args.length > 0) {
213
+ // The first argument is the callback
214
+ const callbackPath = lastFunctionCallSegment.args[0];
215
+
216
+ // Add the callback to the structure
217
+ context.addType(callbackPath, 'function');
218
+
219
+ // Mark that the callback's first parameter receives array elements
220
+ context.addEquivalence(
221
+ callbackPath.withParameter(0),
222
+ sourcePath.withElement('*'),
223
+ );
224
+ }
225
+ }
226
+
227
+ isComplete(): boolean {
228
+ return true;
229
+ }
230
+ }
231
+
142
232
  /**
143
233
  * Array find method semantics
144
234
  *
@@ -173,12 +263,12 @@ export class ArrayFindSemantics implements MethodSemantics {
173
263
  sourcePath.withElement('*'),
174
264
  );
175
265
 
176
- // THIS IS PRODUCING STRANGE RESULTS SUCH AS
177
- // 'people.filter(cyScope2()).find(cyScope3())': 'people.filter(cyScope2()).functionCallReturnValue[]',
178
- // 'personWithHome.places.find(cyScope5())': 'personWithHome.places[]'
179
- // WHICH DO NOT MAKES SENSE
180
- // REMOVING BUT LEAVING IN PLACE IN CASE THERE IS A VALID USE CASE
181
- // The result is an element from the array that matches the callback condition
266
+ // NOTE: We intentionally do NOT create an equivalency from the find result
267
+ // to the array element here. While semantically correct (find returns an element),
268
+ // doing so causes type inference issues where the array element gets typed as
269
+ // 'function' instead of 'object'. The tracing back to source arrays happens
270
+ // through the || operator processing and null guard in addEquivalence.
271
+ // See: analyzeScopeNoAI1.test.ts for tests that break if this is uncommented.
182
272
  // context.addEquivalence(methodCallPath, sourcePath.withElement('*'));
183
273
  }
184
274
  }
@@ -239,11 +329,17 @@ export class ArrayReduceSemantics implements MethodSemantics {
239
329
  /**
240
330
  * Array concat method semantics
241
331
  *
242
- * concat() returns a new array combining the original array and additional items
332
+ * concat() returns a new array/string combining the original and additional items
333
+ *
334
+ * NOTE: We intentionally do NOT type the source as 'array' here because
335
+ * .concat() exists on both arrays AND strings. Typing the source prematurely
336
+ * causes type contamination when the source is equivalent to other paths
337
+ * via ?? chains. Type inference happens later in checkIfKnownType() based
338
+ * on accumulated evidence from all methods called on a path.
243
339
  */
244
340
  export class ArrayConcatSemantics implements MethodSemantics {
245
341
  getReturnType(): string {
246
- return 'array';
342
+ return 'unknown'; // Could be array or string depending on source
247
343
  }
248
344
 
249
345
  addEquivalences(
@@ -251,23 +347,24 @@ export class ArrayConcatSemantics implements MethodSemantics {
251
347
  sourcePath: StructuredPath,
252
348
  context: AnalysisContext,
253
349
  ): void {
254
- // Mark source as array
255
- context.addType(sourcePath, 'array');
350
+ // NOTE: We use 'unknown' instead of 'array' for the source because .concat()
351
+ // exists on both arrays AND strings. Using 'array' causes type contamination
352
+ // when the source is equivalent to other paths via ?? chains.
353
+ context.addType(sourcePath, 'unknown');
256
354
 
257
- // Any arguments are also added to the array
355
+ // Any arguments are also added to the result
258
356
  const functionCallSegment = methodCallPath.getLastFunctionCallSegment();
259
357
 
260
358
  if (functionCallSegment) {
261
359
  // Each argument could be an array or single element
262
360
  functionCallSegment.args.forEach((argPath) => {
263
361
  // No need to guess the type - we'll discover it through normal processing
264
- // But we can indicate that these elements will be in the result array
362
+ // But we can indicate that these elements will be in the result
265
363
  context.addEquivalence(methodCallPath, argPath);
266
364
  });
267
365
  }
268
366
 
269
- // The original array elements are also in the result
270
- context.addType(methodCallPath, 'array');
367
+ // The original elements are also in the result
271
368
  context.addEquivalence(methodCallPath, sourcePath.withElement('*'));
272
369
  }
273
370
 
@@ -279,11 +376,17 @@ export class ArrayConcatSemantics implements MethodSemantics {
279
376
  /**
280
377
  * Array slice method semantics
281
378
  *
282
- * slice() returns a shallow copy of a portion of an array
379
+ * slice() returns a shallow copy of a portion of an array (or string)
380
+ *
381
+ * NOTE: We intentionally do NOT type the source as 'array' here because
382
+ * .slice() exists on both arrays AND strings. Typing the source prematurely
383
+ * causes type contamination when the source is equivalent to other paths
384
+ * via ?? chains. Type inference happens later in checkIfKnownType() based
385
+ * on accumulated evidence from all methods called on a path.
283
386
  */
284
387
  export class ArraySliceSemantics implements MethodSemantics {
285
388
  getReturnType(): string {
286
- return 'array';
389
+ return 'unknown'; // Could be array or string depending on source
287
390
  }
288
391
 
289
392
  addEquivalences(
@@ -291,12 +394,15 @@ export class ArraySliceSemantics implements MethodSemantics {
291
394
  sourcePath: StructuredPath,
292
395
  context: AnalysisContext,
293
396
  ): void {
294
- // Mark source as array
295
- context.addType(sourcePath, 'array');
397
+ // NOTE: We use 'unknown' instead of 'array' for the source because .slice()
398
+ // exists on both arrays AND strings. Using 'array' causes type contamination
399
+ // when the source is equivalent to other paths via ?? chains.
400
+ // Type inference happens later in checkIfKnownType() based on accumulated evidence.
401
+ context.addType(sourcePath, 'unknown');
296
402
 
297
- // The elements in the result are the same type as the source array
403
+ // Still track the return value type for data structure tracking
298
404
  const methodCallPathWithReturnValues = methodCallPath.withReturnValues();
299
- context.addType(methodCallPathWithReturnValues, 'array');
405
+ context.addType(methodCallPathWithReturnValues, 'unknown');
300
406
  }
301
407
 
302
408
  isComplete(): boolean {
@@ -518,6 +624,12 @@ export class ArrayFlatMapSemantics implements MethodSemantics {
518
624
  * Array at method semantics
519
625
  *
520
626
  * at() returns the element at the given index, supporting negative indices
627
+ *
628
+ * NOTE: We intentionally do NOT type the source as 'array' here because
629
+ * .at() exists on both arrays AND strings. Typing the source prematurely
630
+ * causes type contamination when the source is equivalent to other paths
631
+ * via ?? chains. Type inference happens later in checkIfKnownType() based
632
+ * on accumulated evidence from all methods called on a path.
521
633
  */
522
634
  export class ArrayAtSemantics implements MethodSemantics {
523
635
  getReturnType(): string {
@@ -529,10 +641,12 @@ export class ArrayAtSemantics implements MethodSemantics {
529
641
  sourcePath: StructuredPath,
530
642
  context: AnalysisContext,
531
643
  ): void {
532
- // Mark source as array
533
- context.addType(sourcePath, 'array');
644
+ // NOTE: We use 'unknown' instead of 'array' for the source because .at()
645
+ // exists on both arrays AND strings. Using 'array' causes type contamination
646
+ // when the source is equivalent to other paths via ?? chains.
647
+ context.addType(sourcePath, 'unknown');
534
648
 
535
- // The return value is equivalent to an array element
649
+ // The return value is equivalent to an element
536
650
  context.addEquivalence(
537
651
  methodCallPath.withReturnValues(),
538
652
  sourcePath.withElement('*'),
@@ -616,6 +730,45 @@ export class ObjectFromEntriesSemantics implements MethodSemantics {
616
730
  }
617
731
  }
618
732
 
733
+ /**
734
+ * String split method semantics
735
+ *
736
+ * split() returns an array of strings by splitting the source string on a delimiter.
737
+ * This is commonly used for URL path parsing: splat?.split('/') → segments[]
738
+ *
739
+ * Important for controllability: if the source string is controllable (e.g., from useParams()),
740
+ * then the resulting array elements are also controllable.
741
+ */
742
+ export class StringSplitSemantics implements MethodSemantics {
743
+ getReturnType(): string {
744
+ return 'string[]';
745
+ }
746
+
747
+ addEquivalences(
748
+ methodCallPath: StructuredPath,
749
+ sourcePath: StructuredPath,
750
+ context: AnalysisContext,
751
+ ): void {
752
+ // Mark source as string
753
+ context.addType(sourcePath, 'string');
754
+
755
+ // Mark the result as a string array
756
+ context.addType(methodCallPath, 'string[]');
757
+
758
+ // Establish equivalence: each element of the result derives from the source string
759
+ // This enables controllability tracking: if sourcePath is controllable,
760
+ // then methodCallPath[] elements are controllable via the same mock
761
+ context.addEquivalence(
762
+ methodCallPath.withReturnValues().withElement('*'),
763
+ sourcePath,
764
+ );
765
+ }
766
+
767
+ isComplete(): boolean {
768
+ return true;
769
+ }
770
+ }
771
+
619
772
  /**
620
773
  * Promise.then method semantics
621
774
  *
@@ -761,10 +914,15 @@ export function createMethodRegistry(): MethodSemanticsRegistry {
761
914
  registry.register('slice', new ArraySliceSemantics(), 'Array');
762
915
  registry.register('splice', new ArraySpliceSemantics(), 'Array');
763
916
  registry.register('push', new ArrayPushSemantics(), 'Array');
917
+ registry.register('some', new ArraySomeSemantics(), 'Array');
918
+ registry.register('every', new ArrayEverySemantics(), 'Array');
764
919
 
765
920
  // Register Object methods
766
921
  registry.register('fromEntries', new ObjectFromEntriesSemantics(), 'Object');
767
922
 
923
+ // Register String methods
924
+ registry.register('split', new StringSplitSemantics(), 'String');
925
+
768
926
  // Register Promise methods
769
927
  registry.register('then', new PromiseThenSemantics(), 'Promise');
770
928
 
@@ -22,11 +22,8 @@ export class ForInStatementHandler implements PatternHandler {
22
22
  // Process the expression being iterated over first (e.g., object)
23
23
  context.processExpression(node.expression);
24
24
 
25
- // Get the path of the object being iterated
26
- const expressionPath = context.getStructuralPath(node.expression);
27
-
28
- // If the initializer is a variable declaration with an identifier, establish equivalence
29
- // to indicate it's iterating over the keys of the expression
25
+ // If the initializer is a variable declaration with an identifier,
26
+ // type it as 'string' since for-in keys are always strings
30
27
  if (ts.isVariableDeclarationList(node.initializer)) {
31
28
  const declarations = node.initializer.declarations;
32
29
  if (
@@ -36,25 +33,21 @@ export class ForInStatementHandler implements PatternHandler {
36
33
  ) {
37
34
  const variableName = StructuredPath.fromBase(declarations[0].name.text);
38
35
 
39
- // Add type for the key variable (string for object keys)
36
+ // Type the key variable as 'string' for-in keys are always strings.
37
+ // Note: We intentionally do NOT equivalence the key variable to
38
+ // expressionPath[*key*]. The key variable is the KEY (a string),
39
+ // while [*key*] in the schema represents the VALUE at a dynamic key.
40
+ // Creating that equivalence would cause the 'string' type to propagate
41
+ // to the value path. The value access (e.g., obj[key]) is handled
42
+ // correctly by the element access handler in processExpression.
40
43
  context.addType(variableName, 'string');
41
-
42
- if (expressionPath) {
43
- // For for...in loops, the variable is equivalent to the keys of the object
44
- // We represent this with a *key* suffix to indicate it's a key, not a value
45
- context.addEquivalence(variableName, expressionPath.withKey('key'));
46
- }
47
44
  }
48
45
  } else if (ts.isIdentifier(node.initializer)) {
49
46
  // If the initializer is directly an identifier (rare but possible)
50
47
  const variableName = StructuredPath.fromBase(node.initializer.text);
51
48
 
52
- // Add type for the key variable
49
+ // See comment above — type as string but don't equivalence to value path
53
50
  context.addType(variableName, 'string');
54
-
55
- if (expressionPath) {
56
- context.addEquivalence(variableName, expressionPath.withKey('key'));
57
- }
58
51
  } else {
59
52
  context.processExpression(node.initializer);
60
53
  }
@@ -5,6 +5,10 @@ import {
5
5
  markConditionVariablesAsNullable,
6
6
  extractConditionalUsage,
7
7
  } from '../processExpression';
8
+ import {
9
+ extractConditionalEffectsFromIfStatement,
10
+ findUseStateSetters,
11
+ } from '../conditionalEffectsExtractor';
8
12
 
9
13
  /**
10
14
  * Handler for if statements
@@ -13,6 +17,7 @@ import {
13
17
  * - The condition expression
14
18
  * - The then block
15
19
  * - The else block if present
20
+ * - Conditional effects (setter calls inside conditionals)
16
21
  */
17
22
  export class IfStatementHandler implements PatternHandler {
18
23
  canHandle(node: ts.Node): boolean {
@@ -31,6 +36,19 @@ export class IfStatementHandler implements PatternHandler {
31
36
  // Process the condition expression first
32
37
  context.processExpression(node.expression);
33
38
 
39
+ // Extract conditional effects (setter calls inside this if statement)
40
+ const knownSetters = findUseStateSetters(context.sourceFile);
41
+
42
+ const effects = extractConditionalEffectsFromIfStatement(
43
+ node,
44
+ context,
45
+ knownSetters,
46
+ );
47
+
48
+ for (const effect of effects) {
49
+ context.addConditionalEffect(effect);
50
+ }
51
+
34
52
  // Process the 'then' statement block
35
53
  context.processNode(node.thenStatement);
36
54
 
@@ -1,7 +1,32 @@
1
1
  import ts from 'typescript';
2
- import { AnalysisContext } from '../types';
2
+ import { AnalysisContext, ConditionalUsage } from '../types';
3
3
  import { PatternHandler } from './patternHandler';
4
4
  import { StructuredPath } from '../paths';
5
+ import {
6
+ extractConditionalEffectsFromSwitchStatement,
7
+ findUseStateSetters,
8
+ } from '../conditionalEffectsExtractor';
9
+
10
+ /**
11
+ * Helper to extract source location from an AST node
12
+ */
13
+ function getSourceLocation(
14
+ node: ts.Node,
15
+ sourceFile: ts.SourceFile,
16
+ ): ConditionalUsage['sourceLocation'] {
17
+ const start = node.getStart(sourceFile);
18
+ const { line, character } = sourceFile.getLineAndCharacterOfPosition(start);
19
+ const codeSnippet = node.getText(sourceFile);
20
+
21
+ return {
22
+ lineNumber: line + 1, // Convert to 1-based
23
+ column: character,
24
+ codeSnippet:
25
+ codeSnippet.length > 100
26
+ ? codeSnippet.slice(0, 100) + '...'
27
+ : codeSnippet,
28
+ };
29
+ }
5
30
 
6
31
  /**
7
32
  * Handler for switch statements
@@ -48,6 +73,7 @@ export class SwitchStatementHandler implements PatternHandler {
48
73
  conditionType: 'switch',
49
74
  comparedValues: caseValues.length > 0 ? caseValues : undefined,
50
75
  location: 'switch',
76
+ sourceLocation: getSourceLocation(node, context.sourceFile),
51
77
  });
52
78
 
53
79
  // Update the schema type to be a union of the case values
@@ -58,6 +84,17 @@ export class SwitchStatementHandler implements PatternHandler {
58
84
  }
59
85
  }
60
86
 
87
+ // Extract conditional effects (setter calls inside switch cases)
88
+ const knownSetters = findUseStateSetters(context.sourceFile);
89
+ const effects = extractConditionalEffectsFromSwitchStatement(
90
+ node,
91
+ context,
92
+ knownSetters,
93
+ );
94
+ for (const effect of effects) {
95
+ context.addConditionalEffect(effect);
96
+ }
97
+
61
98
  // Process each clause in the switch statement
62
99
  for (const clause of node.caseBlock.clauses) {
63
100
  // Process the case expression if it's a case clause (not default)
@@ -3,6 +3,172 @@ import { AnalysisContext } from '../types';
3
3
  import { PatternHandler } from './patternHandler';
4
4
  import { StructuredPath } from '../paths';
5
5
  import { processBindingPattern } from '../processBindings';
6
+ import {
7
+ getSimplePath,
8
+ detectArrayPredicatePattern,
9
+ } from '../arrayDerivationDetector';
10
+
11
+ /**
12
+ * Detects if an expression is a boolean derivation pattern and extracts the info.
13
+ * Patterns detected:
14
+ * - x !== null / x != null → { sourcePath: 'x', operation: 'notNull' }
15
+ * - x === null / x == null → { sourcePath: 'x', operation: 'isNull' }
16
+ * - x === 'value' → { sourcePath: 'x', operation: 'equals', comparedValue: 'value' }
17
+ * - x !== 'value' → { sourcePath: 'x', operation: 'notEquals', comparedValue: 'value' }
18
+ * - a || b → { operation: 'or', sourcePaths: ['a', 'b'] }
19
+ * - a && b → { operation: 'and', sourcePaths: ['a', 'b'] }
20
+ * - arr.includes(x) → { sourcePath: 'arr', operation: 'arrayIncludes' }
21
+ * - arr.some(fn) → { sourcePath: 'arr', operation: 'arraySome' }
22
+ * - arr.every(fn) → { sourcePath: 'arr', operation: 'arrayEvery' }
23
+ */
24
+ function detectDerivationPattern(expr: ts.Expression): {
25
+ sourcePath?: string;
26
+ sourcePaths?: string[];
27
+ operation:
28
+ | 'notNull'
29
+ | 'isNull'
30
+ | 'equals'
31
+ | 'notEquals'
32
+ | 'or'
33
+ | 'and'
34
+ | 'arrayIncludes'
35
+ | 'arraySome'
36
+ | 'arrayEvery'
37
+ | 'arrayLength';
38
+ comparedValue?: string;
39
+ } | null {
40
+ // Check for array predicate methods first
41
+ const arrayPredicate = detectArrayPredicatePattern(expr);
42
+ if (arrayPredicate) {
43
+ return arrayPredicate;
44
+ }
45
+ // Binary expressions: a !== null, a === 'value', a || b, a && b
46
+ if (ts.isBinaryExpression(expr)) {
47
+ const left = expr.left;
48
+ const right = expr.right;
49
+ const op = expr.operatorToken.kind;
50
+
51
+ // Check for null comparisons: x !== null, x === null
52
+ if (
53
+ op === ts.SyntaxKind.ExclamationEqualsEqualsToken ||
54
+ op === ts.SyntaxKind.ExclamationEqualsToken
55
+ ) {
56
+ // x !== null or x != null
57
+ if (
58
+ right.kind === ts.SyntaxKind.NullKeyword ||
59
+ (ts.isIdentifier(right) && right.text === 'undefined')
60
+ ) {
61
+ const sourcePath = getSimplePath(left);
62
+ if (sourcePath) {
63
+ return { sourcePath, operation: 'notNull' };
64
+ }
65
+ }
66
+ // null !== x or null != x
67
+ if (
68
+ left.kind === ts.SyntaxKind.NullKeyword ||
69
+ (ts.isIdentifier(left) && left.text === 'undefined')
70
+ ) {
71
+ const sourcePath = getSimplePath(right);
72
+ if (sourcePath) {
73
+ return { sourcePath, operation: 'notNull' };
74
+ }
75
+ }
76
+ // x !== 'value'
77
+ if (ts.isStringLiteral(right)) {
78
+ const sourcePath = getSimplePath(left);
79
+ if (sourcePath) {
80
+ return {
81
+ sourcePath,
82
+ operation: 'notEquals',
83
+ comparedValue: right.text,
84
+ };
85
+ }
86
+ }
87
+ }
88
+
89
+ if (
90
+ op === ts.SyntaxKind.EqualsEqualsEqualsToken ||
91
+ op === ts.SyntaxKind.EqualsEqualsToken
92
+ ) {
93
+ // x === null or x == null
94
+ if (
95
+ right.kind === ts.SyntaxKind.NullKeyword ||
96
+ (ts.isIdentifier(right) && right.text === 'undefined')
97
+ ) {
98
+ const sourcePath = getSimplePath(left);
99
+ if (sourcePath) {
100
+ return { sourcePath, operation: 'isNull' };
101
+ }
102
+ }
103
+ // null === x or null == x
104
+ if (
105
+ left.kind === ts.SyntaxKind.NullKeyword ||
106
+ (ts.isIdentifier(left) && left.text === 'undefined')
107
+ ) {
108
+ const sourcePath = getSimplePath(right);
109
+ if (sourcePath) {
110
+ return { sourcePath, operation: 'isNull' };
111
+ }
112
+ }
113
+ // x === 'value'
114
+ if (ts.isStringLiteral(right)) {
115
+ const sourcePath = getSimplePath(left);
116
+ if (sourcePath) {
117
+ return { sourcePath, operation: 'equals', comparedValue: right.text };
118
+ }
119
+ }
120
+ }
121
+
122
+ // a || b
123
+ if (op === ts.SyntaxKind.BarBarToken) {
124
+ const leftPath = getSimplePath(left);
125
+ const rightPath = getSimplePath(right);
126
+ if (leftPath && rightPath) {
127
+ return { operation: 'or', sourcePaths: [leftPath, rightPath] };
128
+ }
129
+ // Handle chained OR: (a || b) || c
130
+ const leftDerivation = detectDerivationPattern(left);
131
+ if (
132
+ leftDerivation?.operation === 'or' &&
133
+ leftDerivation.sourcePaths &&
134
+ rightPath
135
+ ) {
136
+ return {
137
+ operation: 'or',
138
+ sourcePaths: [...leftDerivation.sourcePaths, rightPath],
139
+ };
140
+ }
141
+ }
142
+
143
+ // a && b
144
+ if (op === ts.SyntaxKind.AmpersandAmpersandToken) {
145
+ const leftPath = getSimplePath(left);
146
+ const rightPath = getSimplePath(right);
147
+ if (leftPath && rightPath) {
148
+ return { operation: 'and', sourcePaths: [leftPath, rightPath] };
149
+ }
150
+ // Handle chained AND: (a && b) && c
151
+ const leftDerivation = detectDerivationPattern(left);
152
+ if (
153
+ leftDerivation?.operation === 'and' &&
154
+ leftDerivation.sourcePaths &&
155
+ rightPath
156
+ ) {
157
+ return {
158
+ operation: 'and',
159
+ sourcePaths: [...leftDerivation.sourcePaths, rightPath],
160
+ };
161
+ }
162
+ }
163
+ }
164
+
165
+ // Parenthesized expressions: unwrap and recurse
166
+ if (ts.isParenthesizedExpression(expr)) {
167
+ return detectDerivationPattern(expr.expression);
168
+ }
169
+
170
+ return null;
171
+ }
6
172
 
7
173
  /**
8
174
  * Handler for variable declarations
@@ -12,6 +178,11 @@ import { processBindingPattern } from '../processBindings';
12
178
  * - const x = obj.prop;
13
179
  * - const { a, b } = obj;
14
180
  * - const [a, b] = arr;
181
+ *
182
+ * Also detects derived boolean variables like:
183
+ * - const hasAnalysis = analysis !== null
184
+ * - const isLoading = status === 'loading'
185
+ * - const isBusy = isRunning || isQueued
15
186
  */
16
187
  export class VariableDeclarationHandler implements PatternHandler {
17
188
  canHandle(node: ts.Node): boolean {
@@ -54,8 +225,17 @@ export class VariableDeclarationHandler implements PatternHandler {
54
225
  }
55
226
  // Regular variable declaration with a single identifier
56
227
  else if (ts.isIdentifier(declaration.name)) {
228
+ const variableName = declaration.name.text;
229
+
57
230
  // Create structured path for the variable
58
- const variablePath = StructuredPath.fromBase(declaration.name.text);
231
+ const variablePath = StructuredPath.fromBase(variableName);
232
+
233
+ // Check if this is a derived boolean variable (e.g., const hasX = x !== null)
234
+ // Record the derivation info so we can trace back when this variable is used in conditionals
235
+ const derivationInfo = detectDerivationPattern(declaration.initializer);
236
+ if (derivationInfo) {
237
+ context.addDerivedVariable(variableName, derivationInfo);
238
+ }
59
239
 
60
240
  // Capture equivalencies to child boundaries as they will otherwise be skipped
61
241
  if (context.isChildBoundary(declaration.initializer)) {