@codeyam/codeyam-cli 0.1.0-staging.15d0f46 → 0.1.0-staging.1a2737b

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 (1004) 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 +25 -21
  5. package/analyzer-template/packages/ai/index.ts +21 -5
  6. package/analyzer-template/packages/ai/package.json +3 -3
  7. package/analyzer-template/packages/ai/src/lib/__mocks__/completionCall.ts +122 -0
  8. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +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 +2738 -390
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +7 -2
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +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 +422 -86
  36. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.ts +129 -0
  37. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.ts +35 -0
  38. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +183 -0
  39. package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
  40. package/analyzer-template/packages/ai/src/lib/e2eDataTracking.ts +334 -0
  41. package/analyzer-template/packages/ai/src/lib/extractCriticalDataKeys.ts +120 -0
  42. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +74 -7
  43. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +89 -112
  44. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +63 -2
  45. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +1421 -92
  46. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +216 -109
  47. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +710 -0
  48. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
  49. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +2484 -0
  50. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +239 -0
  51. package/analyzer-template/packages/ai/src/lib/getConditionalUsagesFromCode.ts +143 -31
  52. package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +8 -2
  53. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +328 -7
  54. package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
  55. package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +111 -87
  56. package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
  57. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +17 -7
  58. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +1 -1
  59. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +32 -102
  60. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChunkPrompt.ts +82 -0
  61. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateCriticalKeysPrompt.ts +103 -0
  62. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +110 -6
  63. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +14 -53
  64. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
  65. package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +28 -2
  66. package/analyzer-template/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.ts +391 -0
  67. package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +824 -0
  68. package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +5 -1
  69. package/analyzer-template/packages/ai/src/lib/validateExecutionFlowPaths.ts +531 -0
  70. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +127 -3
  71. package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +121 -2
  72. package/analyzer-template/packages/analyze/index.ts +2 -0
  73. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +79 -59
  74. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +113 -26
  75. package/analyzer-template/packages/analyze/src/lib/analysisContext.ts +44 -4
  76. package/analyzer-template/packages/analyze/src/lib/asts/nodes/getNodeType.ts +1 -0
  77. package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +1 -0
  78. package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
  79. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +19 -0
  80. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +19 -0
  81. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +11 -0
  82. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +8 -0
  83. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +49 -1
  84. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +2 -1
  85. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +540 -272
  86. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +34 -1
  87. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +6 -0
  88. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +3 -0
  89. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +4 -2
  90. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +33 -10
  91. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +31 -15
  92. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +11 -7
  93. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +11 -12
  94. package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +4 -5
  95. package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
  96. package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +14 -12
  97. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1315 -0
  98. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +313 -0
  99. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
  100. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +675 -77
  101. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.ts +1 -1
  102. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +28 -62
  103. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +550 -137
  104. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +264 -0
  105. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +78 -83
  106. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +4 -8
  107. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +1011 -147
  108. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +56 -11
  109. package/analyzer-template/packages/analyze/src/lib/files/scenarios/propagateArrayItemSchemas.ts +474 -0
  110. package/analyzer-template/packages/analyze/src/lib/files/setImportedExports.ts +2 -1
  111. package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
  112. package/analyzer-template/packages/analyze/src/lib/utils/getFileByPath.ts +19 -0
  113. package/analyzer-template/packages/aws/codebuild/index.ts +1 -0
  114. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +11 -1
  115. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -1
  116. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +29 -18
  117. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -1
  118. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +2 -2
  119. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -1
  120. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +2 -2
  121. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  122. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +8 -18
  123. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -1
  124. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +17 -61
  125. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  126. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts +15 -0
  127. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts.map +1 -0
  128. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js +31 -0
  129. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js.map +1 -0
  130. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -1
  131. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +8 -1
  132. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -1
  133. package/analyzer-template/packages/aws/package.json +10 -10
  134. package/analyzer-template/packages/aws/s3/index.ts +1 -0
  135. package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +43 -19
  136. package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +3 -3
  137. package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +17 -69
  138. package/analyzer-template/packages/aws/src/lib/s3/checkS3ObjectExists.ts +47 -0
  139. package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +8 -1
  140. package/analyzer-template/packages/database/package.json +1 -1
  141. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  142. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  143. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  144. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  145. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  146. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  147. package/analyzer-template/packages/database/src/lib/kysely/db.ts +18 -5
  148. package/analyzer-template/packages/database/src/lib/kysely/tableRelations.ts +2 -2
  149. package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +6 -0
  150. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +36 -9
  151. package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
  152. package/analyzer-template/packages/database/src/lib/loadAnalyses.ts +58 -1
  153. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +13 -0
  154. package/analyzer-template/packages/database/src/lib/loadBranch.ts +16 -1
  155. package/analyzer-template/packages/database/src/lib/loadCommit.ts +11 -0
  156. package/analyzer-template/packages/database/src/lib/loadCommits.ts +28 -0
  157. package/analyzer-template/packages/database/src/lib/loadEntities.ts +26 -3
  158. package/analyzer-template/packages/database/src/lib/loadEntityBranches.ts +12 -0
  159. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +7 -3
  160. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  161. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  162. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  163. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +7 -14
  164. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  165. package/analyzer-template/packages/generate/index.ts +3 -0
  166. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +17 -1
  167. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +193 -0
  168. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
  169. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +9 -4
  170. package/analyzer-template/packages/generate/src/lib/deepMerge.ts +26 -1
  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 +7 -4
  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/scenarioComponentForServer.d.ts +8 -0
  265. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts.map +1 -0
  266. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js +89 -0
  267. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  268. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -1
  269. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +10 -0
  270. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -1
  271. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -1
  272. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +3 -0
  273. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -1
  274. package/analyzer-template/packages/github/dist/types/index.d.ts +2 -2
  275. package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
  276. package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
  277. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +87 -13
  278. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
  279. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts +2 -0
  280. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts.map +1 -1
  281. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +2 -0
  282. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -1
  283. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  284. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  285. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +11 -6
  286. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  287. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +199 -3
  288. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  289. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  290. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  291. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +2 -0
  292. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  293. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts +9 -1
  294. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  295. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +29 -3
  296. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -1
  297. package/analyzer-template/packages/github/package.json +1 -1
  298. package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +14 -0
  299. package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +2 -0
  300. package/analyzer-template/packages/process/index.ts +2 -0
  301. package/analyzer-template/packages/process/package.json +12 -0
  302. package/analyzer-template/packages/process/tsconfig.json +8 -0
  303. package/analyzer-template/packages/types/index.ts +5 -0
  304. package/analyzer-template/packages/types/src/types/Analysis.ts +104 -13
  305. package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
  306. package/analyzer-template/packages/types/src/types/Entity.ts +2 -0
  307. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +7 -0
  308. package/analyzer-template/packages/types/src/types/Scenario.ts +11 -10
  309. package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +228 -3
  310. package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
  311. package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
  312. package/analyzer-template/packages/utils/dist/types/index.d.ts +2 -2
  313. package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
  314. package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
  315. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +87 -13
  316. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
  317. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts +2 -0
  318. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts.map +1 -1
  319. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +2 -0
  320. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -1
  321. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  322. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  323. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +11 -6
  324. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  325. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +199 -3
  326. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  327. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  328. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  329. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +2 -0
  330. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  331. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  332. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +93 -2
  333. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  334. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +9 -1
  335. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  336. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +29 -3
  337. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -1
  338. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +108 -2
  339. package/analyzer-template/packages/utils/src/lib/safeFileName.ts +48 -3
  340. package/analyzer-template/playwright/capture.ts +57 -26
  341. package/analyzer-template/playwright/captureStatic.ts +1 -1
  342. package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
  343. package/analyzer-template/playwright/takeElementScreenshot.ts +26 -11
  344. package/analyzer-template/playwright/waitForServer.ts +21 -6
  345. package/analyzer-template/project/analyzeBaselineCommit.ts +9 -0
  346. package/analyzer-template/project/analyzeBranchCommit.ts +4 -0
  347. package/analyzer-template/project/analyzeFileEntities.ts +4 -0
  348. package/analyzer-template/project/analyzeRegularCommit.ts +9 -0
  349. package/analyzer-template/project/captureLibraryFunctionDirect.ts +29 -26
  350. package/analyzer-template/project/constructMockCode.ts +1298 -170
  351. package/analyzer-template/project/controller/startController.ts +16 -1
  352. package/analyzer-template/project/createEntitiesAndSortFiles.ts +83 -0
  353. package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
  354. package/analyzer-template/project/loadReadyToBeCaptured.ts +65 -41
  355. package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
  356. package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
  357. package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +3 -6
  358. package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +65 -38
  359. package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
  360. package/analyzer-template/project/orchestrateCapture.ts +85 -10
  361. package/analyzer-template/project/reconcileMockDataKeys.ts +245 -2
  362. package/analyzer-template/project/runAnalysis.ts +11 -0
  363. package/analyzer-template/project/serverOnlyModules.ts +127 -2
  364. package/analyzer-template/project/start.ts +61 -15
  365. package/analyzer-template/project/startScenarioCapture.ts +72 -40
  366. package/analyzer-template/project/writeMockDataTsx.ts +413 -65
  367. package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
  368. package/analyzer-template/project/writeScenarioComponents.ts +490 -114
  369. package/analyzer-template/project/writeScenarioFiles.ts +26 -0
  370. package/analyzer-template/project/writeSimpleRoot.ts +31 -23
  371. package/analyzer-template/scripts/comboWorkerLoop.cjs +99 -50
  372. package/analyzer-template/scripts/defaultCmd.sh +9 -0
  373. package/analyzer-template/tsconfig.json +2 -1
  374. package/background/src/lib/local/createLocalAnalyzer.js +2 -30
  375. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  376. package/background/src/lib/local/execAsync.js +1 -1
  377. package/background/src/lib/local/execAsync.js.map +1 -1
  378. package/background/src/lib/virtualized/common/execAsync.js +1 -1
  379. package/background/src/lib/virtualized/common/execAsync.js.map +1 -1
  380. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +7 -1
  381. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
  382. package/background/src/lib/virtualized/project/analyzeBranchCommit.js +2 -1
  383. package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -1
  384. package/background/src/lib/virtualized/project/analyzeFileEntities.js +2 -1
  385. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  386. package/background/src/lib/virtualized/project/analyzeRegularCommit.js +7 -1
  387. package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
  388. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +3 -3
  389. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -1
  390. package/background/src/lib/virtualized/project/constructMockCode.js +1151 -128
  391. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  392. package/background/src/lib/virtualized/project/controller/startController.js +11 -1
  393. package/background/src/lib/virtualized/project/controller/startController.js.map +1 -1
  394. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +73 -1
  395. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -1
  396. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +6 -3
  397. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -1
  398. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +19 -8
  399. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
  400. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +7 -7
  401. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -1
  402. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js +2 -2
  403. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -1
  404. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +3 -2
  405. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
  406. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +48 -32
  407. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
  408. package/background/src/lib/virtualized/project/orchestrateCapture.js +69 -11
  409. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  410. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +204 -2
  411. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  412. package/background/src/lib/virtualized/project/runAnalysis.js +9 -0
  413. package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
  414. package/background/src/lib/virtualized/project/serverOnlyModules.js +106 -3
  415. package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -1
  416. package/background/src/lib/virtualized/project/start.js +53 -15
  417. package/background/src/lib/virtualized/project/start.js.map +1 -1
  418. package/background/src/lib/virtualized/project/startScenarioCapture.js +56 -30
  419. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  420. package/background/src/lib/virtualized/project/writeMockDataTsx.js +361 -54
  421. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  422. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js +15 -0
  423. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js.map +1 -0
  424. package/background/src/lib/virtualized/project/writeScenarioComponents.js +371 -92
  425. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  426. package/background/src/lib/virtualized/project/writeScenarioFiles.js +19 -0
  427. package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -1
  428. package/background/src/lib/virtualized/project/writeSimpleRoot.js +31 -21
  429. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  430. package/codeyam-cli/scripts/apply-setup.js +180 -0
  431. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  432. package/codeyam-cli/src/cli.js +35 -17
  433. package/codeyam-cli/src/cli.js.map +1 -1
  434. package/codeyam-cli/src/codeyam-cli.js +18 -2
  435. package/codeyam-cli/src/codeyam-cli.js.map +1 -1
  436. package/codeyam-cli/src/commands/analyze.js +5 -3
  437. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  438. package/codeyam-cli/src/commands/baseline.js +176 -0
  439. package/codeyam-cli/src/commands/baseline.js.map +1 -0
  440. package/codeyam-cli/src/commands/debug.js +37 -23
  441. package/codeyam-cli/src/commands/debug.js.map +1 -1
  442. package/codeyam-cli/src/commands/default.js +30 -34
  443. package/codeyam-cli/src/commands/default.js.map +1 -1
  444. package/codeyam-cli/src/commands/detect-universal-mocks.js +2 -0
  445. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +1 -1
  446. package/codeyam-cli/src/commands/init.js +49 -257
  447. package/codeyam-cli/src/commands/init.js.map +1 -1
  448. package/codeyam-cli/src/commands/memory.js +307 -0
  449. package/codeyam-cli/src/commands/memory.js.map +1 -0
  450. package/codeyam-cli/src/commands/recapture.js +46 -23
  451. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  452. package/codeyam-cli/src/commands/report.js +72 -24
  453. package/codeyam-cli/src/commands/report.js.map +1 -1
  454. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  455. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  456. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  457. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  458. package/codeyam-cli/src/commands/start.js +8 -12
  459. package/codeyam-cli/src/commands/start.js.map +1 -1
  460. package/codeyam-cli/src/commands/status.js +23 -1
  461. package/codeyam-cli/src/commands/status.js.map +1 -1
  462. package/codeyam-cli/src/commands/test-startup.js +3 -1
  463. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  464. package/codeyam-cli/src/commands/verify.js +14 -2
  465. package/codeyam-cli/src/commands/verify.js.map +1 -1
  466. package/codeyam-cli/src/commands/wipe.js +108 -0
  467. package/codeyam-cli/src/commands/wipe.js.map +1 -0
  468. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +179 -0
  469. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
  470. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
  471. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
  472. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +128 -82
  473. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  474. package/codeyam-cli/src/utils/analysisRunner.js +29 -15
  475. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  476. package/codeyam-cli/src/utils/analyzer.js +7 -0
  477. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  478. package/codeyam-cli/src/utils/backgroundServer.js +102 -21
  479. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  480. package/codeyam-cli/src/utils/database.js +91 -5
  481. package/codeyam-cli/src/utils/database.js.map +1 -1
  482. package/codeyam-cli/src/utils/generateReport.js +253 -106
  483. package/codeyam-cli/src/utils/generateReport.js.map +1 -1
  484. package/codeyam-cli/src/utils/git.js +79 -0
  485. package/codeyam-cli/src/utils/git.js.map +1 -0
  486. package/codeyam-cli/src/utils/install-skills.js +76 -37
  487. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  488. package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
  489. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
  490. package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
  491. package/codeyam-cli/src/utils/npmVersionCheck.js.map +1 -0
  492. package/codeyam-cli/src/utils/progress.js +7 -0
  493. package/codeyam-cli/src/utils/progress.js.map +1 -1
  494. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +38 -0
  495. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
  496. package/codeyam-cli/src/utils/queue/job.js +244 -16
  497. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  498. package/codeyam-cli/src/utils/queue/manager.js +25 -7
  499. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  500. package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
  501. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  502. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  503. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
  504. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
  505. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +230 -0
  506. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
  507. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
  508. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
  509. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
  510. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
  511. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
  512. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
  513. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
  514. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
  515. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +74 -0
  516. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
  517. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +376 -0
  518. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
  519. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +116 -0
  520. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
  521. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
  522. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
  523. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
  524. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
  525. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
  526. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
  527. package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
  528. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
  529. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
  530. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
  531. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
  532. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
  533. package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
  534. package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
  535. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
  536. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
  537. package/codeyam-cli/src/utils/rules/index.js +6 -0
  538. package/codeyam-cli/src/utils/rules/index.js.map +1 -0
  539. package/codeyam-cli/src/utils/rules/parser.js +83 -0
  540. package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
  541. package/codeyam-cli/src/utils/rules/pathMatcher.js +18 -0
  542. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
  543. package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
  544. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
  545. package/codeyam-cli/src/utils/rules/staleness.js +137 -0
  546. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
  547. package/codeyam-cli/src/utils/serverState.js +37 -10
  548. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  549. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +21 -42
  550. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  551. package/codeyam-cli/src/utils/simulationGateMiddleware.js +138 -0
  552. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -0
  553. package/codeyam-cli/src/utils/syncMocksMiddleware.js +5 -24
  554. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  555. package/codeyam-cli/src/utils/versionInfo.js +46 -15
  556. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  557. package/codeyam-cli/src/utils/wipe.js +128 -0
  558. package/codeyam-cli/src/utils/wipe.js.map +1 -0
  559. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js +66 -0
  560. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
  561. package/codeyam-cli/src/webserver/app/lib/database.js +118 -6
  562. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  563. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  564. package/codeyam-cli/src/webserver/backgroundServer.js +52 -5
  565. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  566. package/codeyam-cli/src/webserver/bootstrap.js +51 -0
  567. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
  568. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-jNYXRRNI.js +1 -0
  569. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-bwuHPyTa.js +11 -0
  570. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-DKdsUF7Y.js → EntityTypeBadge-CvzqMxcu.js} +1 -1
  571. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BH0XDim7.js +41 -0
  572. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-EhOseatT.js +34 -0
  573. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-yjIHlOGa.js +25 -0
  574. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-Cq5o8jL4.js +3 -0
  575. package/codeyam-cli/src/webserver/build/client/assets/LoadingDots-BvMu2i-g.js +6 -0
  576. package/codeyam-cli/src/webserver/build/client/assets/LogViewer-kgBTLoJD.js +3 -0
  577. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-BzPgx-xO.js +11 -0
  578. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-CwZrv-Ok.js +1 -0
  579. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-BX2Ny2Qj.js +10 -0
  580. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-CWjSsLqY.js → TruncatedFilePath-CDpEprKa.js} +1 -1
  581. package/codeyam-cli/src/webserver/build/client/assets/_index-BRx8ZGZo.js +11 -0
  582. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-4S4yPfFw.js +27 -0
  583. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-DHKuQSmR.js +17 -0
  584. package/codeyam-cli/src/webserver/build/client/assets/api.agent-transcripts-l0sNRNKZ.js +1 -0
  585. package/codeyam-cli/src/webserver/build/client/assets/api.health-l0sNRNKZ.js +1 -0
  586. package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
  587. package/codeyam-cli/src/webserver/build/client/assets/api.memory-profile-l0sNRNKZ.js +1 -0
  588. package/codeyam-cli/src/webserver/build/client/assets/api.restart-server-l0sNRNKZ.js +1 -0
  589. package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
  590. package/codeyam-cli/src/webserver/build/client/assets/book-open-D4IPYH_y.js +6 -0
  591. package/codeyam-cli/src/webserver/build/client/assets/chevron-down-CG65viiV.js +6 -0
  592. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-DB3aFuEO.js +51 -0
  593. package/codeyam-cli/src/webserver/build/client/assets/circle-check-igfMr5DY.js +6 -0
  594. package/codeyam-cli/src/webserver/build/client/assets/copy-Coc4o_8c.js +11 -0
  595. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-D1zB-pYc.js +21 -0
  596. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-C1gnJVOL.svg → cy-logo-cli-CCKUIm0S.svg} +2 -2
  597. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +1 -0
  598. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-JTAjQ54M.js +1 -0
  599. package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-B0h9AqE6.js +23 -0
  600. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DjLxr2JB.js +6 -0
  601. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-CtYowLOt.js +6 -0
  602. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-PePWg17F.js +5 -0
  603. package/codeyam-cli/src/webserver/build/client/assets/entry.client-I-Wo99C_.js +29 -0
  604. package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
  605. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-9sMMAiWJ.js +1 -0
  606. package/codeyam-cli/src/webserver/build/client/assets/files-Co65J0s3.js +1 -0
  607. package/codeyam-cli/src/webserver/build/client/assets/git-BdHOxVfg.js +15 -0
  608. package/codeyam-cli/src/webserver/build/client/assets/globals-BSZfYCkU.css +1 -0
  609. package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-fmIEn3Bc.js +9 -0
  610. package/codeyam-cli/src/webserver/build/client/assets/index-CUM5iXwc.js +9 -0
  611. package/codeyam-cli/src/webserver/build/client/assets/index-_417gcQW.js +3 -0
  612. package/codeyam-cli/src/webserver/build/client/assets/labs-BK0C1H1T.js +1 -0
  613. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-TzRHMVog.js +6 -0
  614. package/codeyam-cli/src/webserver/build/client/assets/manifest-040dab1c.js +1 -0
  615. package/codeyam-cli/src/webserver/build/client/assets/memory-UIDVz141.js +92 -0
  616. package/codeyam-cli/src/webserver/build/client/assets/pause-hjzB7t2z.js +11 -0
  617. package/codeyam-cli/src/webserver/build/client/assets/preload-helper-ckwbz45p.js +1 -0
  618. package/codeyam-cli/src/webserver/build/client/assets/root-D1WadSdf.js +62 -0
  619. package/codeyam-cli/src/webserver/build/client/assets/scenarioStatus-B_8jpV3e.js +1 -0
  620. package/codeyam-cli/src/webserver/build/client/assets/search-DcAwD_Ln.js +6 -0
  621. package/codeyam-cli/src/webserver/build/client/assets/settings-CclxrcPK.js +1 -0
  622. package/codeyam-cli/src/webserver/build/client/assets/simulations-DVNJVQgD.js +1 -0
  623. package/codeyam-cli/src/webserver/build/client/assets/terminal-DbEAHMbA.js +11 -0
  624. package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-CAD5b1o_.js +6 -0
  625. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BqgrAzs3.js +1 -0
  626. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-CmrTPlIB.js → useLastLogLine-DAFqfEDH.js} +1 -1
  627. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DZlYx2c4.js +1 -0
  628. package/codeyam-cli/src/webserver/build/client/assets/{useToast-C1ig_BmP.js → useToast-ihdMtlf6.js} +1 -1
  629. package/codeyam-cli/src/webserver/build/server/assets/index-B3dE0r28.js +1 -0
  630. package/codeyam-cli/src/webserver/build/server/assets/server-build-DYbfdxa3.js +273 -0
  631. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  632. package/codeyam-cli/src/webserver/build-info.json +5 -5
  633. package/codeyam-cli/src/webserver/devServer.js +1 -3
  634. package/codeyam-cli/src/webserver/devServer.js.map +1 -1
  635. package/codeyam-cli/src/webserver/server.js +35 -25
  636. package/codeyam-cli/src/webserver/server.js.map +1 -1
  637. package/codeyam-cli/templates/{codeyam-debug-skill.md → codeyam-debug.md} +48 -4
  638. package/codeyam-cli/templates/codeyam-diagnose.md +481 -0
  639. package/codeyam-cli/templates/codeyam-memory-hook.sh +199 -0
  640. package/codeyam-cli/templates/codeyam-memory.md +396 -0
  641. package/codeyam-cli/templates/codeyam-new-rule.md +13 -0
  642. package/codeyam-cli/templates/{codeyam-setup-skill.md → codeyam-setup.md} +151 -4
  643. package/codeyam-cli/templates/{codeyam-sim-skill.md → codeyam-sim.md} +1 -1
  644. package/codeyam-cli/templates/{codeyam-test-skill.md → codeyam-test.md} +1 -1
  645. package/codeyam-cli/templates/{codeyam-verify-skill.md → codeyam-verify.md} +1 -1
  646. package/codeyam-cli/templates/rule-notification-hook.py +56 -0
  647. package/codeyam-cli/templates/rule-reflection-hook.py +627 -0
  648. package/codeyam-cli/templates/rules-instructions.md +132 -0
  649. package/package.json +22 -19
  650. package/packages/ai/index.js +8 -6
  651. package/packages/ai/index.js.map +1 -1
  652. package/packages/ai/src/lib/analyzeScope.js +181 -13
  653. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  654. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js +150 -0
  655. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js.map +1 -0
  656. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +154 -9
  657. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  658. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
  659. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
  660. package/packages/ai/src/lib/astScopes/methodSemantics.js +138 -23
  661. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  662. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
  663. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
  664. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +8 -0
  665. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -1
  666. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +23 -0
  667. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
  668. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +138 -1
  669. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
  670. package/packages/ai/src/lib/astScopes/processExpression.js +1235 -104
  671. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  672. package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
  673. package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
  674. package/packages/ai/src/lib/checkAllAttributes.js +24 -9
  675. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  676. package/packages/ai/src/lib/completionCall.js +178 -31
  677. package/packages/ai/src/lib/completionCall.js.map +1 -1
  678. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +2153 -222
  679. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  680. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +7 -2
  681. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  682. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +661 -0
  683. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -0
  684. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +180 -56
  685. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  686. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +13 -3
  687. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -1
  688. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +6 -4
  689. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -1
  690. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +66 -2
  691. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  692. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +139 -13
  693. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  694. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
  695. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
  696. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +142 -12
  697. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  698. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js +86 -0
  699. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js.map +1 -0
  700. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
  701. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
  702. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
  703. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
  704. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +355 -77
  705. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  706. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js +107 -0
  707. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js.map +1 -0
  708. package/packages/ai/src/lib/dataStructureChunking.js +130 -0
  709. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -0
  710. package/packages/ai/src/lib/deepEqual.js +32 -0
  711. package/packages/ai/src/lib/deepEqual.js.map +1 -0
  712. package/packages/ai/src/lib/e2eDataTracking.js +241 -0
  713. package/packages/ai/src/lib/e2eDataTracking.js.map +1 -0
  714. package/packages/ai/src/lib/extractCriticalDataKeys.js +96 -0
  715. package/packages/ai/src/lib/extractCriticalDataKeys.js.map +1 -0
  716. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +62 -5
  717. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  718. package/packages/ai/src/lib/generateChangesEntityScenarios.js +81 -90
  719. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  720. package/packages/ai/src/lib/generateEntityDataStructure.js +50 -1
  721. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  722. package/packages/ai/src/lib/generateEntityScenarioData.js +1128 -85
  723. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  724. package/packages/ai/src/lib/generateEntityScenarios.js +193 -83
  725. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  726. package/packages/ai/src/lib/generateExecutionFlows.js +495 -0
  727. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
  728. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
  729. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
  730. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +1807 -0
  731. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
  732. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
  733. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js.map +1 -0
  734. package/packages/ai/src/lib/getConditionalUsagesFromCode.js +84 -14
  735. package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -1
  736. package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -1
  737. package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
  738. package/packages/ai/src/lib/isolateScopes.js +270 -7
  739. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  740. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
  741. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
  742. package/packages/ai/src/lib/mergeStatements.js +88 -46
  743. package/packages/ai/src/lib/mergeStatements.js.map +1 -1
  744. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
  745. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
  746. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +16 -4
  747. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  748. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +1 -1
  749. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  750. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +21 -64
  751. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  752. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js +54 -0
  753. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js.map +1 -0
  754. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +83 -6
  755. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  756. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +10 -34
  757. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  758. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
  759. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
  760. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +16 -3
  761. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
  762. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js +335 -0
  763. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js.map +1 -0
  764. package/packages/ai/src/lib/resolvePathToControllable.js +677 -0
  765. package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
  766. package/packages/ai/src/lib/splitOutsideParentheses.js +3 -1
  767. package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -1
  768. package/packages/ai/src/lib/worker/SerializableDataStructure.js +29 -0
  769. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  770. package/packages/ai/src/lib/worker/analyzeScopeWorker.js +98 -1
  771. package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
  772. package/packages/analyze/index.js +1 -0
  773. package/packages/analyze/index.js.map +1 -1
  774. package/packages/analyze/src/lib/FileAnalyzer.js +75 -36
  775. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  776. package/packages/analyze/src/lib/ProjectAnalyzer.js +96 -26
  777. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  778. package/packages/analyze/src/lib/analysisContext.js +30 -5
  779. package/packages/analyze/src/lib/analysisContext.js.map +1 -1
  780. package/packages/analyze/src/lib/asts/nodes/getNodeType.js +1 -0
  781. package/packages/analyze/src/lib/asts/nodes/getNodeType.js.map +1 -1
  782. package/packages/analyze/src/lib/asts/nodes/index.js +1 -0
  783. package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
  784. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
  785. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
  786. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +14 -0
  787. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -1
  788. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +14 -0
  789. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -1
  790. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +6 -0
  791. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
  792. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +6 -0
  793. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -1
  794. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +39 -1
  795. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -1
  796. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +2 -1
  797. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -1
  798. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +278 -52
  799. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  800. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +24 -1
  801. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  802. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +5 -0
  803. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  804. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +2 -0
  805. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  806. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +2 -1
  807. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  808. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +31 -10
  809. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  810. package/packages/analyze/src/lib/files/analyzeChange.js +21 -11
  811. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  812. package/packages/analyze/src/lib/files/analyzeEntity.js +9 -8
  813. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  814. package/packages/analyze/src/lib/files/analyzeInitial.js +9 -10
  815. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  816. package/packages/analyze/src/lib/files/analyzeRemixRoute.js +3 -2
  817. package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
  818. package/packages/analyze/src/lib/files/enums/steps.js +1 -1
  819. package/packages/analyze/src/lib/files/enums/steps.js.map +1 -1
  820. package/packages/analyze/src/lib/files/getImportedExports.js +11 -7
  821. package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
  822. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +880 -0
  823. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
  824. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +255 -0
  825. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -0
  826. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
  827. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
  828. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +525 -61
  829. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  830. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js +1 -1
  831. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js.map +1 -1
  832. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +29 -34
  833. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
  834. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +404 -85
  835. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  836. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +144 -0
  837. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
  838. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +56 -69
  839. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  840. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +4 -8
  841. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  842. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +831 -124
  843. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  844. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +46 -9
  845. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -1
  846. package/packages/analyze/src/lib/files/setImportedExports.js +2 -1
  847. package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -1
  848. package/packages/analyze/src/lib/index.js +1 -0
  849. package/packages/analyze/src/lib/index.js.map +1 -1
  850. package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
  851. package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
  852. package/packages/aws/src/lib/ecs/ecsDefineContainer.js +2 -2
  853. package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  854. package/packages/aws/src/lib/ecs/ecsTaskFactory.js +17 -61
  855. package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  856. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  857. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  858. package/packages/database/src/lib/analysisToDb.js +1 -1
  859. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  860. package/packages/database/src/lib/branchToDb.js +1 -1
  861. package/packages/database/src/lib/branchToDb.js.map +1 -1
  862. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  863. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  864. package/packages/database/src/lib/commitToDb.js +1 -1
  865. package/packages/database/src/lib/commitToDb.js.map +1 -1
  866. package/packages/database/src/lib/fileToDb.js +1 -1
  867. package/packages/database/src/lib/fileToDb.js.map +1 -1
  868. package/packages/database/src/lib/kysely/db.js +13 -3
  869. package/packages/database/src/lib/kysely/db.js.map +1 -1
  870. package/packages/database/src/lib/kysely/tables/commitsTable.js +3 -0
  871. package/packages/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  872. package/packages/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
  873. package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  874. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  875. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  876. package/packages/database/src/lib/loadAnalyses.js +45 -2
  877. package/packages/database/src/lib/loadAnalyses.js.map +1 -1
  878. package/packages/database/src/lib/loadAnalysis.js +8 -0
  879. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  880. package/packages/database/src/lib/loadBranch.js +11 -1
  881. package/packages/database/src/lib/loadBranch.js.map +1 -1
  882. package/packages/database/src/lib/loadCommit.js +7 -0
  883. package/packages/database/src/lib/loadCommit.js.map +1 -1
  884. package/packages/database/src/lib/loadCommits.js +22 -1
  885. package/packages/database/src/lib/loadCommits.js.map +1 -1
  886. package/packages/database/src/lib/loadEntities.js +23 -4
  887. package/packages/database/src/lib/loadEntities.js.map +1 -1
  888. package/packages/database/src/lib/loadEntityBranches.js +9 -0
  889. package/packages/database/src/lib/loadEntityBranches.js.map +1 -1
  890. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
  891. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  892. package/packages/database/src/lib/projectToDb.js +1 -1
  893. package/packages/database/src/lib/projectToDb.js.map +1 -1
  894. package/packages/database/src/lib/saveFiles.js +1 -1
  895. package/packages/database/src/lib/saveFiles.js.map +1 -1
  896. package/packages/database/src/lib/scenarioToDb.js +1 -1
  897. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  898. package/packages/database/src/lib/updateCommitMetadata.js +5 -4
  899. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  900. package/packages/generate/index.js +3 -0
  901. package/packages/generate/index.js.map +1 -1
  902. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  903. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  904. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  905. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  906. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  907. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  908. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +8 -4
  909. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  910. package/packages/generate/src/lib/deepMerge.js +27 -1
  911. package/packages/generate/src/lib/deepMerge.js.map +1 -1
  912. package/packages/generate/src/lib/scenarioComponentForServer.js +89 -0
  913. package/packages/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  914. package/packages/github/src/lib/loadOrCreateCommit.js +10 -0
  915. package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -1
  916. package/packages/github/src/lib/syncPrimaryBranch.js +3 -0
  917. package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -1
  918. package/packages/process/index.js +3 -0
  919. package/packages/process/index.js.map +1 -0
  920. package/packages/process/src/GlobalProcessManager.js.map +1 -0
  921. package/{background/src/lib/process → packages/process/src}/ProcessManager.js +1 -1
  922. package/packages/process/src/ProcessManager.js.map +1 -0
  923. package/packages/process/src/index.js.map +1 -0
  924. package/packages/process/src/managedExecAsync.js.map +1 -0
  925. package/packages/types/index.js.map +1 -1
  926. package/packages/utils/src/lib/fs/rsyncCopy.js +93 -2
  927. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  928. package/packages/utils/src/lib/safeFileName.js +29 -3
  929. package/packages/utils/src/lib/safeFileName.js.map +1 -1
  930. package/scripts/finalize-analyzer.cjs +8 -74
  931. package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +0 -102
  932. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +0 -197
  933. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +0 -271
  934. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +0 -294
  935. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +0 -67
  936. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +0 -115
  937. package/analyzer-template/process/INTEGRATION_COMPLETE.md +0 -333
  938. package/analyzer-template/process/INTEGRATION_EXAMPLE.md +0 -525
  939. package/analyzer-template/process/README.md +0 -507
  940. package/background/src/lib/process/GlobalProcessManager.js.map +0 -1
  941. package/background/src/lib/process/ProcessManager.js.map +0 -1
  942. package/background/src/lib/process/index.js.map +0 -1
  943. package/background/src/lib/process/managedExecAsync.js.map +0 -1
  944. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +0 -238
  945. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +0 -1
  946. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-D0VW1-W7.js +0 -1
  947. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BAk4S4pI.js +0 -1
  948. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-Y756iZxZ.js +0 -25
  949. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-zzrrjW1p.js +0 -3
  950. package/codeyam-cli/src/webserver/build/client/assets/LogViewer-QMn7bJg6.js +0 -3
  951. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-DmP5mRxX.js +0 -1
  952. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-BXwvsbLw.js +0 -1
  953. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-DAmUX_1y.js +0 -5
  954. package/codeyam-cli/src/webserver/build/client/assets/_index-Df-nk4J5.js +0 -1
  955. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-_ZUyFdie.js +0 -7
  956. package/codeyam-cli/src/webserver/build/client/assets/chevron-down-Eoh0PhcW.js +0 -1
  957. package/codeyam-cli/src/webserver/build/client/assets/chunk-WWGJGFF6-CZgPLy5i.js +0 -26
  958. package/codeyam-cli/src/webserver/build/client/assets/circle-check-DI-p9ZLZ.js +0 -1
  959. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-DvyV2x6y.js +0 -1
  960. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DURu2qlF.js +0 -1
  961. package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-DDobn9Xh.js +0 -16
  962. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-CGdWnLD_.js +0 -1
  963. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-DgMmzrKs.js +0 -5
  964. package/codeyam-cli/src/webserver/build/client/assets/entry.client-DEVXuhkn.js +0 -13
  965. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-WPRQyc68.js +0 -1
  966. package/codeyam-cli/src/webserver/build/client/assets/files-B9u3lJer.js +0 -1
  967. package/codeyam-cli/src/webserver/build/client/assets/git-YGnKIuHU.js +0 -11
  968. package/codeyam-cli/src/webserver/build/client/assets/globals-28lrWTTo.css +0 -1
  969. package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-XQCGvadH.js +0 -5
  970. package/codeyam-cli/src/webserver/build/client/assets/index-CJ0uPJjV.js +0 -1
  971. package/codeyam-cli/src/webserver/build/client/assets/index-CfqeA2XG.js +0 -3
  972. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-DIjSvh6B.js +0 -1
  973. package/codeyam-cli/src/webserver/build/client/assets/manifest-8125c15c.js +0 -1
  974. package/codeyam-cli/src/webserver/build/client/assets/preload-helper-BXl3LOEh.js +0 -1
  975. package/codeyam-cli/src/webserver/build/client/assets/root-C-g286WP.js +0 -16
  976. package/codeyam-cli/src/webserver/build/client/assets/search-xBKWfOxd.js +0 -1
  977. package/codeyam-cli/src/webserver/build/client/assets/settings-DVY_wGOx.js +0 -1
  978. package/codeyam-cli/src/webserver/build/client/assets/simulations-Be1pJo5A.js +0 -1
  979. package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-CR-FkSvx.js +0 -1
  980. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DABetnSj.js +0 -1
  981. package/codeyam-cli/src/webserver/build/server/assets/index-DcR7DH9q.js +0 -1
  982. package/codeyam-cli/src/webserver/build/server/assets/server-build-BDBrfp7e.js +0 -175
  983. package/codeyam-cli/templates/debug-codeyam.md +0 -527
  984. package/packages/ai/src/lib/findMatchingAttribute.js +0 -77
  985. package/packages/ai/src/lib/findMatchingAttribute.js.map +0 -1
  986. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +0 -136
  987. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +0 -1
  988. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +0 -220
  989. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +0 -1
  990. package/packages/ai/src/lib/generateEntityKeyAttributes.js +0 -241
  991. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +0 -1
  992. package/packages/ai/src/lib/isFrontend.js +0 -5
  993. package/packages/ai/src/lib/isFrontend.js.map +0 -1
  994. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +0 -40
  995. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +0 -1
  996. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +0 -72
  997. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +0 -1
  998. /package/analyzer-template/{process → packages/process/src}/GlobalProcessManager.ts +0 -0
  999. /package/analyzer-template/{process → packages/process/src}/ProcessManager.ts +0 -0
  1000. /package/analyzer-template/{process → packages/process/src}/index.ts +0 -0
  1001. /package/analyzer-template/{process → packages/process/src}/managedExecAsync.ts +0 -0
  1002. /package/{background/src/lib/process → packages/process/src}/GlobalProcessManager.js +0 -0
  1003. /package/{background/src/lib/process → packages/process/src}/index.js +0 -0
  1004. /package/{background/src/lib/process → packages/process/src}/managedExecAsync.js +0 -0
@@ -62,7 +62,10 @@ function resetDebugTiming() {
62
62
  */
63
63
  function findEndOfImports(content) {
64
64
  try {
65
- const sourceFile = ts.createSourceFile('temp.ts', content, ts.ScriptTarget.Latest, true);
65
+ // Use temp.tsx to enable JSX parsing - otherwise TypeScript may misparse
66
+ // JSX content containing the word "import" (e.g., "Entities that import this")
67
+ // as an import statement, causing mock code to be inserted in the wrong location.
68
+ const sourceFile = ts.createSourceFile('temp.tsx', content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
66
69
  let lastImportEnd = 0;
67
70
  // Visit all top-level statements to find import/export declarations
68
71
  for (const statement of sourceFile.statements) {
@@ -476,7 +479,8 @@ function extractInternalImportPaths(fileContent) {
476
479
  function extractInternalImportPathsAst(fileContent) {
477
480
  const importPaths = [];
478
481
  try {
479
- const sourceFile = ts.createSourceFile('temp.ts', fileContent, ts.ScriptTarget.Latest, true);
482
+ // Use temp.tsx to enable JSX parsing for consistent handling of JSX files
483
+ const sourceFile = ts.createSourceFile('temp.tsx', fileContent, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
480
484
  for (const statement of sourceFile.statements) {
481
485
  if (ts.isImportDeclaration(statement) && statement.moduleSpecifier) {
482
486
  const moduleSpecifier = statement.moduleSpecifier;
@@ -592,46 +596,106 @@ function addMockToContent(fileContent, importedExport, fileAnalyses, rootAnalysi
592
596
  }
593
597
  // Check if we have multiple calls with different variable names
594
598
  // This requires generating separate mock functions for each call site
595
- const hasMultipleCallsWithVariables = importedExport.calls &&
596
- importedExport.calls.length > 1 &&
599
+ //
600
+ // IMPORTANT: calls array may contain BOTH base hook calls (e.g., "useFetcher<Type>()")
601
+ // AND method chain usages (e.g., "useFetcher().functionCallReturnValue.submit(...)").
602
+ // We only want to count base hook calls for the length comparison with callVariableNames.
603
+ // A "base call" is one that ends with "()" possibly preceded by a type annotation,
604
+ // without any subsequent method chains like ".functionCallReturnValue" or ".submit(...)".
605
+ const baseHookCalls = importedExport.calls?.filter((call) => {
606
+ // Base hook calls match patterns like:
607
+ // - "useFetcher()"
608
+ // - "useFetcher<Type>()"
609
+ // - "useFetcher<{ complex: Type }>()"
610
+ // They end with "()" and don't have method chains after the call.
611
+ // Method chains contain ".functionCallReturnValue" or have property access after "()".
612
+ return (call.endsWith('()') &&
613
+ !call.includes('.functionCallReturnValue') &&
614
+ // Also exclude method chains like "hook().something" or "hook().method()"
615
+ !call.match(/\(\)\.[a-zA-Z]/));
616
+ });
617
+ // Determine if we can generate unique mock functions for multiple variables.
618
+ // We need:
619
+ // 1. Multiple variable names (callVariableNames.length > 1)
620
+ // 2. Base hook calls to match them (baseHookCalls.length > 0)
621
+ // Note: We use min(baseHookCalls.length, callVariableNames.length) for iteration
622
+ // to handle cases where data might be slightly out of sync (stale entries).
623
+ const hasMultipleCallsWithVariables = baseHookCalls &&
624
+ baseHookCalls.length > 1 &&
597
625
  importedExport.callVariableNames &&
598
- importedExport.callVariableNames.length === importedExport.calls.length;
626
+ importedExport.callVariableNames.length > 1 &&
627
+ // Only proceed if we have at least as many base calls as variable names,
628
+ // OR they're close enough (within 1) to handle minor sync issues
629
+ Math.abs(baseHookCalls.length - importedExport.callVariableNames.length) <=
630
+ 1;
599
631
  let mockCode;
600
632
  const variableMockCodes = [];
601
633
  if (hasMultipleCallsWithVariables) {
602
634
  // Generate separate mock functions for each variable-qualified call
603
- // Track variable name occurrences to disambiguate when same variable is reused
604
- // (mirrors the logic in gatherDataForMocks)
635
+ // Look up canonical keys from dataForMocks and track variable names for function naming
636
+ // Get all call signature keys for this hook from dataForMocks
637
+ const dataForMocks = rootAnalysis.metadata?.scenariosDataStructure?.dataForMocks;
638
+ // Match keys that start with the hook name (e.g., "useFetcher" matches "useFetcher<User>()")
639
+ const callSignatureKeysForHook = dataForMocks
640
+ ? Object.keys(dataForMocks).filter((key) => {
641
+ const hookBaseName = importedExport.name.split(/[<(]/)[0];
642
+ const keyBaseName = key.split(/[<(]/)[0];
643
+ return keyBaseName === hookBaseName;
644
+ })
645
+ : [];
646
+ // Track variable name occurrences for unique function naming
605
647
  const variableNameCounts = {};
606
- for (let i = 0; i < importedExport.calls.length; i++) {
648
+ // Use the minimum of both array lengths to handle slight mismatches
649
+ // (e.g., stale data from previous analysis runs)
650
+ const iterationLimit = Math.min(baseHookCalls.length, importedExport.callVariableNames.length);
651
+ for (let i = 0; i < iterationLimit; i++) {
607
652
  const variableName = importedExport.callVariableNames[i];
608
653
  if (!variableName)
609
654
  continue;
610
655
  // Calculate the occurrence index for this variable name
611
656
  const occurrence = variableNameCounts[variableName] ?? 0;
612
657
  variableNameCounts[variableName] = occurrence + 1;
613
- // If this is a reused variable name (occurrence > 0), append index
614
- // e.g., "fetcher[1] <- useFetcher" for the second usage of "fetcher"
658
+ // Build indexed variable name for function naming
615
659
  const indexedVariableName = occurrence > 0 ? `${variableName}[${occurrence}]` : variableName;
616
- // Generate mock code for this specific call using variable-qualified name
617
- // Format: "variableName <- functionName" (reads as "variableName receives from functionName")
618
- const qualifiedName = `${indexedVariableName} <- ${importedExport.name}`;
619
- const variableMockCode = constructMockCode(qualifiedName, dependencySchemas, importedExport.entityType);
660
+ // Use safe function name with underscores instead of brackets
661
+ // e.g., fetcher[1] -> fetcher_1
662
+ const safeFunctionName = indexedVariableName.replace(/\[(\d+)\]/g, '_$1');
663
+ // Compute unique mock function name for call site replacement
664
+ // e.g., useFetcher_entityDiffFetcher, useFetcher_reportFetcher
665
+ const mockFunctionName = `${importedExport.name}_${safeFunctionName}`;
666
+ // Use the call signature from baseHookCalls[i] as the data key
667
+ // This matches what's stored in dataForMocks
668
+ const callSignature = baseHookCalls[i];
669
+ // Generate mock code using the call signature directly
670
+ // This prevents "symbol already declared" errors when multiple calls exist
671
+ // Check if this is a package import that won't have scenario copies
672
+ const isPackageImportForMock = importPath?.startsWith('@');
673
+ const variableMockCode = constructMockCode(callSignature, // Use call signature format for data lookup
674
+ dependencySchemas, importedExport.entityType, undefined, // No need for separate canonical key
675
+ {
676
+ uniqueFunctionSuffix: safeFunctionName, // Use variable name for unique function naming
677
+ // For node_modules or package imports, skip spreading from __cyOriginal
678
+ // since those packages/files don't export *__cyOriginal variants
679
+ skipOriginalSpread: importedExport.isNodeModule || isPackageImportForMock,
680
+ });
620
681
  if (variableMockCode) {
621
682
  variableMockCodes.push(variableMockCode);
622
683
  // Replace the call site with the variable-specific mock function
623
684
  // e.g., useFetcher<BranchEntityDiffResult>() -> useFetcher_entityDiffFetcher()
624
685
  // e.g., useFetcher() -> useFetcher_reportFetcher()
625
- // For indexed variables: useFetcher() -> useFetcher_fetcher_1()
626
- const callSignature = importedExport.calls[i];
627
686
  // Escape special regex characters in the call signature
628
687
  const escapedCallSignature = callSignature.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
629
- // Create regex that matches the call (with optional whitespace variations)
630
- const callRegex = new RegExp(escapedCallSignature.replace(/\s+/g, '\\s*'), 'g');
631
- // Use safe function name with underscores instead of brackets
632
- // e.g., fetcher[1] -> fetcher_1
633
- const safeFunctionName = indexedVariableName.replace(/\[(\d+)\]/g, '_$1');
634
- const mockFunctionName = `${importedExport.name}_${safeFunctionName}`;
688
+ // Create regex that matches the call (with optional whitespace variations).
689
+ // TypeScript formatters commonly break type parameters across lines, e.g.:
690
+ // useLoaderData<
691
+ // typeof loader
692
+ // >()
693
+ // So we allow optional whitespace around < and > delimiters, not just
694
+ // where whitespace already exists in the call signature string.
695
+ const callRegex = new RegExp(escapedCallSignature
696
+ .replace(/\s+/g, '\\s*')
697
+ .replace(/</g, '\\s*<\\s*')
698
+ .replace(/>/g, '\\s*>\\s*'), 'gs');
635
699
  fileContent = fileContent.replace(callRegex, `${mockFunctionName}()`);
636
700
  }
637
701
  }
@@ -646,66 +710,140 @@ function addMockToContent(fileContent, importedExport, fileAnalyses, rootAnalysi
646
710
  ? importedExport.callVariableNames[0]
647
711
  : undefined;
648
712
  if (singleCallVariableName) {
649
- // For single variable assignments, use the variable-qualified key for data lookup
650
- // Use constructMockCode to generate proper dispatch functions for nested function calls
651
- // (e.g., useTranslation returns { t } where t() needs to dispatch based on translation key)
652
- const qualifiedKey = `${singleCallVariableName} <- ${importedExport.name}`;
653
- // Keep the original function name since there's only one call - no need for unique names
654
- mockCode = constructMockCode(qualifiedKey, dependencySchemas, importedExport.entityType, { keepOriginalFunctionName: true });
713
+ // For single variable assignments, use the call signature directly from dataForMocks
714
+ const dataForMocks = rootAnalysis.metadata?.scenariosDataStructure?.dataForMocks;
715
+ // Find matching call signature key in dataForMocks
716
+ // IMPORTANT: First try exact match with type parameters (e.g., "useLoaderData<LoaderData>()")
717
+ // to avoid picking the wrong variant (e.g., "useLoaderData<typeof loader>()" which may
718
+ // have different properties). Fall back to base name matching only if exact match fails.
719
+ const hookBaseName = importedExport.name.split(/[<(]/)[0];
720
+ const expectedKey = importedExport.calls?.[0];
721
+ let callSignatureKey;
722
+ if (dataForMocks) {
723
+ const keys = Object.keys(dataForMocks);
724
+ // First try exact match with the expected call signature
725
+ if (expectedKey && keys.includes(expectedKey)) {
726
+ callSignatureKey = expectedKey;
727
+ }
728
+ else {
729
+ // Fall back to base name matching
730
+ callSignatureKey = keys.find((key) => {
731
+ // Split on ., <, or ( to get the true base name
732
+ // This handles both "useFlags()" -> "useFlags" and "trpc.useUtils()" -> "trpc"
733
+ const keyBaseName = key.split(/[.<(]/)[0];
734
+ return keyBaseName === hookBaseName;
735
+ });
736
+ }
737
+ }
738
+ // Use the call signature if found, otherwise construct it
739
+ const dataKey = callSignatureKey ??
740
+ importedExport.calls?.[0] ??
741
+ `${importedExport.name}()`;
742
+ // IMPORTANT: If the dataKey is a method chain (e.g., "trpc.useUtils()"), we should
743
+ // use the base name (e.g., "trpc") when calling constructMockCode. This ensures
744
+ // constructMockCode generates a complete nested mock from the schema without
745
+ // referencing __cyOriginal variables.
746
+ const dataKeyBaseName = dataKey.split(/[.<(]/)[0];
747
+ const isMethodChainDataKey = dataKeyBaseName === importedExport.name &&
748
+ dataKey !== importedExport.name &&
749
+ dataKey.includes('.');
750
+ const mockNameToUse = isMethodChainDataKey
751
+ ? importedExport.name
752
+ : dataKey;
753
+ // Keep the original function name since there's only one call
754
+ // Check if this is a package import that won't have scenario copies
755
+ const isPackageImportForSingleCall = importPath?.startsWith('@');
756
+ mockCode = constructMockCode(mockNameToUse, dependencySchemas, importedExport.entityType, undefined, {
757
+ keepOriginalFunctionName: true,
758
+ // For node_modules or package imports, skip spreading from __cyOriginal
759
+ // since those packages/files don't export *__cyOriginal variants
760
+ skipOriginalSpread: importedExport.isNodeModule || isPackageImportForSingleCall,
761
+ });
655
762
  // If constructMockCode didn't generate code, fall back to simple return
763
+ // IMPORTANT: We inline scenarios().data() inside the function rather than
764
+ // storing in a const - see comment in constructMockCode.ts for why.
656
765
  if (!mockCode) {
657
- mockCode = `const ${importedExport.name}ReturnValue = scenarios().data()?.["${qualifiedKey}"];
658
-
659
- function ${importedExport.name}() {
660
- return ${importedExport.name}ReturnValue;
766
+ mockCode = `// PATCHED: memoize to return stable reference (prevents infinite useEffect re-triggers)
767
+ const _${importedExport.name}Ref = {
768
+ current: null,
769
+ };
770
+ function ${importedExport.name}(...args) {
771
+ if (!_${importedExport.name}Ref.current) {
772
+ _${importedExport.name}Ref.current = scenarios().data()?.["${dataKey}"];
773
+ }
774
+ return _${importedExport.name}Ref.current;
661
775
  }`;
662
776
  }
663
777
  }
664
778
  else {
665
- // Check if any analysis (fileAnalyses or rootAnalysis) has this function's data
666
- // under a variable-qualified key. The entity that CALLS the function (e.g., FileTableRow)
667
- // has the dataForMocks with the variable-qualified key, not the root analysis (e.g., GitView).
668
- let variableQualifiedKey;
669
- // First check fileAnalyses (the analyses for the entity being written)
670
- for (const analysis of fileAnalyses) {
671
- const dataForMocks = analysis.metadata?.scenariosDataStructure?.dataForMocks;
672
- if (dataForMocks) {
673
- variableQualifiedKey = Object.keys(dataForMocks).find((key) => {
674
- const match = key.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\s*<-\s*(.+)$/);
675
- return match && match[2] === importedExport.name;
676
- });
677
- if (variableQualifiedKey) {
678
- break;
679
- }
779
+ // Helper to find matching call signature key from dataForMocks
780
+ // IMPORTANT: First try exact match with type parameters (e.g., "useLoaderData<LoaderData>()")
781
+ // to avoid picking the wrong variant. Fall back to base name matching only if needed.
782
+ const hookBaseName = importedExport.name.split(/[<(]/)[0];
783
+ const expectedKey = importedExport.calls?.[0];
784
+ const findMatchingKey = (dataForMocks) => {
785
+ if (!dataForMocks)
786
+ return undefined;
787
+ const keys = Object.keys(dataForMocks);
788
+ // First try exact match with the expected call signature
789
+ if (expectedKey && keys.includes(expectedKey)) {
790
+ return expectedKey;
680
791
  }
681
- }
682
- // If not found in fileAnalyses, fall back to rootAnalysis
683
- if (!variableQualifiedKey) {
684
- const dataForMocks = rootAnalysis.metadata?.scenariosDataStructure?.dataForMocks;
685
- if (dataForMocks) {
686
- variableQualifiedKey = Object.keys(dataForMocks).find((key) => {
687
- const match = key.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\s*<-\s*(.+)$/);
688
- return match && match[2] === importedExport.name;
689
- });
792
+ // Fall back to base name matching
793
+ return keys.find((key) => {
794
+ // Split on ., <, or ( to get the true base name
795
+ // This handles both "useFlags()" -> "useFlags" and "trpc.useUtils()" -> "trpc"
796
+ const keyBaseName = key.split(/[.<(]/)[0];
797
+ return keyBaseName === hookBaseName;
798
+ });
799
+ };
800
+ // Check rootAnalysis FIRST for matching keys.
801
+ // The mock DATA is generated from rootAnalysis, so the mock CODE must
802
+ // also use rootAnalysis keys to ensure the lookup succeeds.
803
+ let dataKey = findMatchingKey(rootAnalysis.metadata?.scenariosDataStructure?.dataForMocks);
804
+ // If not found in rootAnalysis, fall back to fileAnalyses
805
+ if (!dataKey) {
806
+ for (const analysis of fileAnalyses) {
807
+ dataKey = findMatchingKey(analysis.metadata?.scenariosDataStructure?.dataForMocks);
808
+ if (dataKey)
809
+ break;
690
810
  }
691
811
  }
692
- if (variableQualifiedKey) {
693
- // Use the variable-qualified key found in the analysis
694
- // Use constructMockCode to generate proper dispatch functions for nested function calls
695
- // Keep the original function name since there's only one call - no need for unique names
696
- mockCode = constructMockCode(variableQualifiedKey, dependencySchemas, importedExport.entityType, { keepOriginalFunctionName: true });
697
- // If constructMockCode didn't generate code, fall back to simple return
698
- if (!mockCode) {
699
- mockCode = `const ${importedExport.name}ReturnValue = scenarios().data()?.["${variableQualifiedKey}"];
700
-
701
- function ${importedExport.name}() {
702
- return ${importedExport.name}ReturnValue;
812
+ // Use the data key if found, otherwise use call signature or function name.
813
+ // IMPORTANT: If the dataKey is a method chain (e.g., "trpc.useUtils()"), we should
814
+ // use the base name (e.g., "trpc") when calling constructMockCode. This ensures
815
+ // constructMockCode generates a complete nested mock from the schema without
816
+ // referencing __cyOriginal variables. The __cyOriginal pattern is only needed
817
+ // for partial mocking where we preserve some original methods, not for complete
818
+ // method-chain mocks where we provide all implementations.
819
+ const dataKeyBaseName = dataKey?.split(/[.<(]/)[0];
820
+ const isMethodChainDataKey = dataKey &&
821
+ dataKeyBaseName === importedExport.name &&
822
+ dataKey !== importedExport.name &&
823
+ dataKey.includes('.');
824
+ const mockNameToUse = isMethodChainDataKey
825
+ ? importedExport.name
826
+ : (dataKey ?? importedExport.calls?.[0] ?? `${importedExport.name}()`);
827
+ mockCode = constructMockCode(mockNameToUse, dependencySchemas, importedExport.entityType, undefined, {
828
+ keepOriginalFunctionName: true,
829
+ // For node_modules or package imports, skip spreading from __cyOriginal
830
+ // since those packages/files don't export *__cyOriginal variants
831
+ skipOriginalSpread: importedExport.isNodeModule || importPath?.startsWith('@'),
832
+ });
833
+ // If constructMockCode didn't generate code, fall back to simple return
834
+ // IMPORTANT: We inline scenarios().data() inside the function rather than
835
+ // storing in a const - see comment in constructMockCode.ts for why.
836
+ if (!mockCode && dataKey) {
837
+ mockCode = `// PATCHED: memoize to return stable reference (prevents infinite useEffect re-triggers)
838
+ const _${importedExport.name}Ref = {
839
+ current: null,
840
+ };
841
+ function ${importedExport.name}(...args) {
842
+ if (!_${importedExport.name}Ref.current) {
843
+ _${importedExport.name}Ref.current = scenarios().data()?.["${dataKey}"];
844
+ }
845
+ return _${importedExport.name}Ref.current;
703
846
  }`;
704
- }
705
- }
706
- else {
707
- // Original behavior for calls without variable names
708
- mockCode = constructMockCode(importedExport.name, dependencySchemas, importedExport.entityType);
709
847
  }
710
848
  }
711
849
  }
@@ -724,13 +862,44 @@ function ${importedExport.name}() {
724
862
  else {
725
863
  // Escape regex special characters in importPath (e.g., brackets in [environmentId])
726
864
  const escapedImportPath = importPath.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
727
- const importRegExp = new RegExp(`(import(?:(?!${firstPart}|from|import)[\\s\\S])*?)${firstPart}(?:,\\s*)?((?:(?!import)[\\s\\S])*?from\\s+['"]${escapedImportPath}['"])`, 'm');
728
- if (importedExportNameParts.length > 1) {
865
+ // Use a simpler, more robust regex pattern that matches the fallback path.
866
+ // Key improvements:
867
+ // 1. Uses escapeRegExp(firstPart) to handle special characters in function names
868
+ // 2. Uses word boundaries (\b) to prevent partial matches
869
+ // 3. Handles comma BEFORE or AFTER the name: (?:,\s*|\s*,)?
870
+ // 4. Matches specific import path (escapedImportPath)
871
+ const importRegExp = new RegExp(`(import\\s*\\{[^}]*?)\\b${escapeRegExp(firstPart)}\\b(?:,\\s*|\\s*,)?((?:[^}]*\\}\\s*from\\s*['"]${escapedImportPath}['"];?))`, 'm');
872
+ // Check if any call signature has multiple parts (e.g., "logger.error(error)")
873
+ // If so, the mock code will spread from __cyOriginal, so we need to rename the import
874
+ // EXCEPT:
875
+ // 1. For node_module imports, the __cyOriginal pattern doesn't work because
876
+ // the original package doesn't export *__cyOriginal variants.
877
+ // 2. For package imports (starting with @), the __cyOriginal pattern doesn't work
878
+ // because scenario copies aren't created for package files - they keep the
879
+ // original import path which doesn't export *__cyOriginal.
880
+ const anyCallHasMultipleParts = importedExport.calls?.some((call) => {
881
+ const callParts = splitOutsideParenthesesAndArrays(call);
882
+ return callParts.length > 1;
883
+ });
884
+ // Package imports (starting with @) don't get scenario copies, so __cyOriginal won't exist
885
+ const isPackageImport = importPath.startsWith('@');
886
+ const shouldRenameToOriginal = !importedExport.isNodeModule &&
887
+ !isPackageImport &&
888
+ (importedExportNameParts.length > 1 || anyCallHasMultipleParts);
889
+ if (shouldRenameToOriginal) {
729
890
  fileContent = fileContent.replace(importRegExp, `$1${firstPart}__cyOriginal$2`);
730
891
  }
731
892
  else {
732
893
  fileContent = fileContent.replace(importRegExp, '$1$2');
733
894
  }
895
+ // Also handle namespace imports (import * as foo from '...')
896
+ // These need to be renamed to foo__cyOriginal when the mock code spreads from the original.
897
+ // Note: We match any path (not just escapedImportPath) because the import path may have
898
+ // been rewritten by transitive import handling before this code runs.
899
+ if (shouldRenameToOriginal) {
900
+ const namespaceImportRegExp = new RegExp(`(import\\s+\\*\\s+as\\s+)${escapeRegExp(firstPart)}(\\s+from\\s+['"][^'"]*['"])`, 'm');
901
+ fileContent = fileContent.replace(namespaceImportRegExp, `$1${firstPart}__cyOriginal$2`);
902
+ }
734
903
  // Remove empty imports entirely to avoid partial commenting issues with multiline imports
735
904
  // This handles both single-line and multiline empty imports
736
905
  fileContent = fileContent.replace(/import\s*\{\s*\}\s*from\s+['"][^'"]*['"];?\s*\n?/g, '');
@@ -746,7 +915,17 @@ function ${importedExport.name}() {
746
915
  // This handles imports like: import { useEnvironment, otherThing } from "any/path"
747
916
  // Removes useEnvironment but keeps otherThing
748
917
  const namedImportRegExp = new RegExp(`(import\\s*\\{[^}]*?)\\b${escapeRegExp(firstPart)}\\b(?:,\\s*|\\s*,)?((?:[^}]*\\}\\s*from\\s*['"][^'"]*['"];?))`, 'm');
749
- if (importedExportNameParts.length > 1) {
918
+ // Check if any call signature has multiple parts (e.g., "logger.error(error)")
919
+ // If so, the mock code will spread from __cyOriginal, so we need to rename the import
920
+ // EXCEPT: For node_module imports, the __cyOriginal pattern doesn't work because
921
+ // the original package doesn't export *__cyOriginal variants.
922
+ const anyCallHasMultipleParts = importedExport.calls?.some((call) => {
923
+ const callParts = splitOutsideParenthesesAndArrays(call);
924
+ return callParts.length > 1;
925
+ });
926
+ const shouldRenameToOriginal = !importedExport.isNodeModule &&
927
+ (importedExportNameParts.length > 1 || anyCallHasMultipleParts);
928
+ if (shouldRenameToOriginal) {
750
929
  // Rename the import instead of removing (for destructured access patterns)
751
930
  fileContent = fileContent.replace(namedImportRegExp, `$1${firstPart}__cyOriginal$2`);
752
931
  }
@@ -1079,9 +1258,12 @@ export default async function writeScenarioComponents({ project, file, entity, r
1079
1258
  fileContentLength: fileContent.length,
1080
1259
  });
1081
1260
  let importedExportIndex = 0;
1261
+ const loopStartTime = Date.now();
1262
+ console.log(`[WriteScenario] Starting import loop for ${entity.name}: ${sortedImportedExports.length} imports`);
1082
1263
  for (const importedExport of sortedImportedExports) {
1083
1264
  importedExportIndex++;
1084
1265
  if (importedExportIndex % 5 === 0 || importedExportIndex === 1) {
1266
+ console.log(`[WriteScenario] ${entity.name} import ${importedExportIndex}/${sortedImportedExports.length}: ${importedExport.name} elapsed=${Date.now() - loopStartTime}ms`);
1085
1267
  debugLog(`Processing importedExport ${importedExportIndex}/${sortedImportedExports.length}`, {
1086
1268
  name: importedExport.name,
1087
1269
  filePath: importedExport.filePath,
@@ -1214,6 +1396,8 @@ export default async function writeScenarioComponents({ project, file, entity, r
1214
1396
  // e.g., if file has `export default X` but parent does `import { X } from '...'`
1215
1397
  const needsNamedReExport = importedExport.resolvedIsDefault === true &&
1216
1398
  importedExport.isDefault === false;
1399
+ console.log(`[WriteScenario] RECURSE START: ${entity.name} -> ${importedExportEntity.name}`);
1400
+ const recurseStartTime = Date.now();
1217
1401
  debugLog(`Recursing into writeScenarioComponents for ${importedExportEntity.name}`, {
1218
1402
  entityName: importedExportEntity.name,
1219
1403
  filePath: fileNotMocked.path,
@@ -1236,7 +1420,8 @@ export default async function writeScenarioComponents({ project, file, entity, r
1236
1420
  exportAsNamed: needsNamedReExport
1237
1421
  ? importedExport.name
1238
1422
  : undefined,
1239
- }), 60000);
1423
+ }), 180000);
1424
+ console.log(`[WriteScenario] RECURSE END: ${entity.name} -> ${importedExportEntity.name} took ${Date.now() - recurseStartTime}ms`);
1240
1425
  debugLog(`Completed recursive writeScenarioComponents for ${importedExportEntity.name}`);
1241
1426
  writtenScenarioComponents = updatedWrittenScenarioComponents;
1242
1427
  scenarioComponentPaths.push(...newScenarioComponentPaths);
@@ -1255,13 +1440,22 @@ export default async function writeScenarioComponents({ project, file, entity, r
1255
1440
  // Data and type entities should be preserved - they're not callable and may have methods
1256
1441
  // that stubbing would break (e.g., Zod schemas with .superRefine())
1257
1442
  const isDataEntity = entityType === 'data' || entityType === 'type';
1258
- // Heuristic: Zod schemas are often misclassified as 'library' but should be preserved
1259
- // Detect by: name starts with Z + uppercase letter, AND has Zod method calls
1260
- const looksLikeZodSchema = entityType === 'library' &&
1261
- /^Z[A-Z]/.test(importedExport.name) &&
1262
- importedExport.calls?.some((call) => /\.(superRefine|refine|transform|default|optional|nullable|array|object|string|number|boolean|parse|safeParse)\s*\(/.test(call));
1263
- // Callable entities can be safely stubbed (but not Zod schemas)
1264
- const isCallable = !isDataEntity && !looksLikeZodSchema && entityType !== undefined;
1443
+ // If calls data shows the entity is only accessed via properties/methods
1444
+ // (e.g., formValidator.validate(), schema.superRefine()) and never directly
1445
+ // invoked (e.g., getInitialProps()), it's used as an object and should be
1446
+ // preserved rather than replaced with a Proxy stub.
1447
+ const onlyPropertyAccessed = importedExport.calls?.length > 0 &&
1448
+ !importedExport.calls.some((call) => {
1449
+ const afterName = call.slice(importedExport.name.length);
1450
+ return afterName.startsWith('(') || afterName.startsWith('<');
1451
+ });
1452
+ // Callable entities can be safely stubbed. Entities that are only
1453
+ // property-accessed should be preserved (their methods need to work).
1454
+ // 'other' entities are unknown types — safer to preserve than stub.
1455
+ const isCallable = !isDataEntity &&
1456
+ !onlyPropertyAccessed &&
1457
+ entityType !== undefined &&
1458
+ entityType !== 'other';
1265
1459
  // Determine what action to take
1266
1460
  const shouldStripAndReplace = hasMock;
1267
1461
  const shouldStripAndStub = !hasMock && importedExport.isMocked && isCallable;
@@ -1498,17 +1692,30 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1498
1692
  }
1499
1693
  }
1500
1694
  }
1695
+ // Track post-import-loop timing
1696
+ const postLoopStartTime = Date.now();
1697
+ console.log(`[WriteScenario] POST-LOOP START: ${entity.name}`);
1698
+ // Collect universal mocks BEFORE processing nodeModuleImports
1699
+ // This is needed to check if a node module import is handled by a universal mock
1700
+ const universalMocks = project.metadata?.universalMocks ?? [];
1701
+ const nodeModuleUniversalMocks = universalMocks.filter((mock) => mock.nodeModule && mock.content);
1702
+ // Create a set of import paths that have universal mocks for quick lookup
1703
+ const universalMockPaths = new Set(nodeModuleUniversalMocks.map((mock) => mock.filePath));
1501
1704
  for (const nodeModuleImport of nodeModuleImports) {
1502
1705
  if (!nodeModuleImport.isMocked)
1503
1706
  continue;
1707
+ // Skip generating local mock functions for imports that have universal mocks.
1708
+ // Universal mocks provide the exports via rewritten import paths (handled below).
1709
+ // Generating a local mock function would cause "name defined multiple times" errors.
1710
+ if (universalMockPaths.has(nodeModuleImport.filePath)) {
1711
+ continue;
1712
+ }
1504
1713
  fileContent = addMockToContent(fileContent, nodeModuleImport, fileAnalyses, rootAnalysis, relativeMocksDir, scenario.name, importMapping[nodeModuleImport.filePath] ?? nodeModuleImport.filePath);
1505
1714
  }
1506
1715
  // Rewrite node_module imports that have universal mocks
1507
1716
  // Universal mocks create mock files at __codeyamMocks__/{safeFileName}.tsx
1508
1717
  // We need to rewrite imports like `import { logger } from "@formbricks/logger"`
1509
1718
  // to `import { logger } from "../__codeyamMocks__/_formbricks_logger.js"`
1510
- const universalMocks = project.metadata?.universalMocks ?? [];
1511
- const nodeModuleUniversalMocks = universalMocks.filter((mock) => mock.nodeModule && mock.content);
1512
1719
  for (const universalMock of nodeModuleUniversalMocks) {
1513
1720
  const originalPath = universalMock.filePath;
1514
1721
  // Create the mock file name using the same safeFileName function as writeUniversalMocks
@@ -1521,6 +1728,7 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1521
1728
  const importRegex = new RegExp(`(import\\s+(?:\\{[^}]*\\}|\\*\\s+as\\s+\\w+|\\w+)\\s+from\\s+)['"]${originalPath.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}['"]`, 'g');
1522
1729
  fileContent = fileContent.replace(importRegex, `$1'${mockFileRelativePath}'`);
1523
1730
  }
1731
+ console.log(`[WriteScenario] POST-LOOP ${entity.name}: node+universal mocks took ${Date.now() - postLoopStartTime}ms`);
1524
1732
  if (rootAnalysis.entitySha === entity.sha &&
1525
1733
  entity.metadata?.notExported &&
1526
1734
  entity.name !== 'default') {
@@ -1580,6 +1788,7 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1580
1788
  debugLog('Starting rewriteRelativeModuleImports');
1581
1789
  fileContent = rewriteRelativeModuleImports(fileContent, `${PROJECT_RELATIVE_PATH}/${file.path}`, scenarioComponentPath);
1582
1790
  debugLog('Completed rewriteRelativeModuleImports');
1791
+ console.log(`[WriteScenario] POST-LOOP ${entity.name}: transformations took ${Date.now() - postLoopStartTime}ms`);
1583
1792
  /**
1584
1793
  * Recursively process a file's imports to create transitive copies with server-only stripped.
1585
1794
  * This handles chains of arbitrary depth: A -> B -> C -> D where each needs server-only removed.
@@ -1593,12 +1802,14 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1593
1802
  */
1594
1803
  async function processTransitiveImportsRecursively(content, sourceFilePath, targetFilePath, visitedPaths = new Set(), depth = 0, startTime = Date.now()) {
1595
1804
  // Global timeout for entire transitive processing
1596
- const GLOBAL_TIMEOUT_MS = 60000; // 1 minute max for all transitive processing
1805
+ const GLOBAL_TIMEOUT_MS = 180000; // 3 minutes max for all transitive processing (complex components need more time)
1597
1806
  const elapsed = Date.now() - startTime;
1598
1807
  if (elapsed > GLOBAL_TIMEOUT_MS) {
1599
1808
  throw new Error(`processTransitiveImportsRecursively exceeded ${GLOBAL_TIMEOUT_MS}ms (elapsed: ${elapsed}ms) at depth=${depth} for ${sourceFilePath}`);
1600
1809
  }
1601
1810
  const importPaths = extractInternalImportPaths(content);
1811
+ // Always log to help debug timeout issues
1812
+ console.log(`[TransitiveImports] depth=${depth} file=${path.basename(sourceFilePath)} imports=${importPaths.length} visited=${visitedPaths.size} elapsed=${Date.now() - startTime}ms`);
1602
1813
  debugLog(`processTransitiveImportsRecursively depth=${depth}`, {
1603
1814
  sourceFilePath,
1604
1815
  importCount: importPaths.length,
@@ -1635,8 +1846,10 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1635
1846
  const basePath = safeFolder(importFile.path.split('/').slice(0, -1).join('/'));
1636
1847
  const extension = importFile.name.split('.').pop();
1637
1848
  const isIndex = isIndexPath(importFile.path);
1638
- const pathHash = safeFileName(importFile.path);
1639
- const transitiveFilePath = `${PROJECT_RELATIVE_PATH}/${basePath}/${pathHash}_${isIndex ? 'index_' : ''}transitive_${safeFileName(scenario.name)}.${extension}`;
1849
+ // Limit pathHash length to prevent ENAMETOOLONG errors on macOS (255 char limit)
1850
+ const pathHash = safeFileName(importFile.path, { maxLength: 80 });
1851
+ const scenarioSlug = safeFileName(scenario.name, { maxLength: 60 });
1852
+ const transitiveFilePath = `${PROJECT_RELATIVE_PATH}/${basePath}/${pathHash}_${isIndex ? 'index_' : ''}transitive_${scenarioSlug}.${extension}`;
1640
1853
  // Check if this is a circular import (we're already processing this file)
1641
1854
  const isCircularImport = visitedPaths.has(resolvedPath);
1642
1855
  // Check if already processed
@@ -1714,6 +1927,7 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1714
1927
  debugLog(`Returning from processTransitiveImportsRecursively depth=${depth}`);
1715
1928
  return modifiedContent;
1716
1929
  }
1930
+ console.log(`[WriteScenario] POST-LOOP ${entity.name}: before remaining imports ${Date.now() - postLoopStartTime}ms`);
1717
1931
  // Process remaining internal imports that weren't in importedExports
1718
1932
  // This handles transitive dependencies: when the file content includes code (e.g., from
1719
1933
  // other functions in the same file) that imports from files with "server-only"
@@ -1733,6 +1947,16 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1733
1947
  for (const importPath of remainingImportPaths) {
1734
1948
  remainingImportIndex++;
1735
1949
  debugLog(`[REMAINING LOOP] import ${remainingImportIndex}/${remainingImportPaths.length}: ${importPath}`);
1950
+ // Skip imports that point to generated CodeYam files (same skip logic as
1951
+ // rewriteRelativeModuleImports). Without this, MockData files from earlier
1952
+ // captures that get discovered by the TypeScript compiler would be treated as
1953
+ // regular imports, creating transitive copies with stale content.
1954
+ const scenarioFilePattern = /[a-f0-9]{64}_\w+_[A-Z]\w*$/;
1955
+ const mockDataPattern = /__codeyamMocks__\//;
1956
+ if (scenarioFilePattern.test(importPath) ||
1957
+ mockDataPattern.test(importPath)) {
1958
+ continue;
1959
+ }
1736
1960
  // Resolve the import path to a project file path
1737
1961
  const resolvedFilePath = resolveImportPath(importPath, file.path, project);
1738
1962
  if (!resolvedFilePath) {
@@ -1771,8 +1995,10 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1771
1995
  const targetFileBasePath = safeFolder(targetFile.path.split('/').slice(0, -1).join('/'));
1772
1996
  const targetFileExtension = targetFile.name.split('.').pop();
1773
1997
  const targetFileIsIndex = isIndexPath(targetFile.path);
1774
- const filePathHash = safeFileName(targetFile.path);
1775
- const transformedFilePath = `${PROJECT_RELATIVE_PATH}/${targetFileBasePath}/${filePathHash}_${targetFileIsIndex ? 'index_' : ''}transitive_${safeFileName(scenario.name)}.${targetFileExtension}`;
1998
+ // Limit path hash length to prevent ENAMETOOLONG errors
1999
+ const filePathHash = safeFileName(targetFile.path, { maxLength: 80 });
2000
+ const targetScenarioSlug = safeFileName(scenario.name, { maxLength: 60 });
2001
+ const transformedFilePath = `${PROJECT_RELATIVE_PATH}/${targetFileBasePath}/${filePathHash}_${targetFileIsIndex ? 'index_' : ''}transitive_${targetScenarioSlug}.${targetFileExtension}`;
1776
2002
  // Check if we've already processed this file as a transitive copy
1777
2003
  // Note: __data_file_written__ is for entity-specific scenario files with different naming,
1778
2004
  // but we still need transitive copies for server-only stripping. Data entity files may
@@ -1811,8 +2037,12 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1811
2037
  const nestedBasePath = safeFolder(nestedFile.path.split('/').slice(0, -1).join('/'));
1812
2038
  const nestedExtension = nestedFile.name.split('.').pop();
1813
2039
  const nestedIsIndex = isIndexPath(nestedFile.path);
1814
- const nestedPathHash = safeFileName(nestedFile.path);
1815
- const nestedTransformedPath = `${PROJECT_RELATIVE_PATH}/${nestedBasePath}/${nestedPathHash}_${nestedIsIndex ? 'index_' : ''}transitive_${safeFileName(scenario.name)}.${nestedExtension}`;
2040
+ // Limit path hash length to prevent ENAMETOOLONG errors
2041
+ const nestedPathHash = safeFileName(nestedFile.path, { maxLength: 80 });
2042
+ const nestedScenarioSlug = safeFileName(scenario.name, {
2043
+ maxLength: 60,
2044
+ });
2045
+ const nestedTransformedPath = `${PROJECT_RELATIVE_PATH}/${nestedBasePath}/${nestedPathHash}_${nestedIsIndex ? 'index_' : ''}transitive_${nestedScenarioSlug}.${nestedExtension}`;
1816
2046
  // Check if already processed as a transitive file (we can rewrite to point to it)
1817
2047
  // Note: __data_file_written__ is for entity-specific scenario files with different naming,
1818
2048
  // but we still need transitive copies for server-only stripping in the import chain
@@ -1878,6 +2108,7 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1878
2108
  const importRegex = new RegExp(`(from\\s*["'])${escapedImportPath}(["'])`, 'g');
1879
2109
  fileContent = fileContent.replace(importRegex, `$1${safeRelativePath}$2`);
1880
2110
  }
2111
+ console.log(`[WriteScenario] POST-LOOP ${entity.name}: remaining imports loop took ${Date.now() - postLoopStartTime}ms`);
1881
2112
  const scenarioComponentComment = `// This file is auto-generated by CodeYam. Do not edit this file manually.
1882
2113
  // This file contains content for a scenario component:
1883
2114
  // Analyses being written: ${JSON.stringify(fileAnalyses?.map((a) => ({ id: a.id, entityName: a.entityName })))}
@@ -1888,6 +2119,53 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1888
2119
  // Entity: ${rootAnalysis.entitySha} ${rootAnalysis.entityName}
1889
2120
  // Scenario: ${scenario.id} - ${scenario.name}
1890
2121
  `;
2122
+ // Final pass: Rename any namespace imports (import * as X from '...') that have
2123
+ // corresponding mock code using ...X__cyOriginal spread pattern.
2124
+ // This handles cases where:
2125
+ // 1. The import path was rewritten by transitive import handling
2126
+ // 2. The import wasn't caught by the earlier renaming logic
2127
+ // We scan for all __cyOriginal references in the mock code and ensure the imports are renamed.
2128
+ const cyOriginalReferences = fileContent.match(/\.\.\.(\w+)__cyOriginal/g);
2129
+ if (cyOriginalReferences) {
2130
+ const uniqueNames = [
2131
+ ...new Set(cyOriginalReferences.map((ref) => ref.replace('...', '').replace('__cyOriginal', ''))),
2132
+ ];
2133
+ for (const name of uniqueNames) {
2134
+ // Match namespace imports for this name that haven't been renamed yet
2135
+ const namespaceImportRegex = new RegExp(`(import\\s+\\*\\s+as\\s+)${escapeRegExp(name)}(\\s+from\\s+['"][^'"]*['"])`, 'g');
2136
+ fileContent = fileContent.replace(namespaceImportRegex, `$1${name}__cyOriginal$2`);
2137
+ }
2138
+ }
2139
+ // For route components (page.tsx, layout.tsx), the component IS the Next.js page.
2140
+ // There's no wrapper page to inject argumentsData as props (unlike non-route components
2141
+ // which get a scenarioComponent wrapper). We need to wrap the default export so that
2142
+ // the scenario's argumentsData is passed as props to the component.
2143
+ if (isFrameworkRoute(file, entity, framework, file === rootFile) &&
2144
+ rootAnalysis.metadata?.scenariosDataStructure?.arguments?.length > 0) {
2145
+ const positionalArguments = rootAnalysis.metadata.scenariosDataStructure.arguments;
2146
+ const hasNamedArgs = positionalArguments.length === 1 &&
2147
+ typeof positionalArguments[0] === 'object';
2148
+ if (hasNamedArgs) {
2149
+ // Match: export default function Name(
2150
+ // Also: export default async function Name(
2151
+ const defaultExportMatch = fileContent.match(/export\s+default\s+(async\s+)?function\s+(\w+)\s*\(/);
2152
+ if (defaultExportMatch) {
2153
+ const funcName = defaultExportMatch[2];
2154
+ // Remove "export default" from the original function declaration
2155
+ fileContent = fileContent.replace(/export\s+default\s+(async\s+)?function\s+(\w+)\s*\(/, '$1function $2(');
2156
+ // Ensure scenarios import is present
2157
+ const mockDataPath = `${relativeMocksDir}/MockData_${safeFileName(scenario.name)}`;
2158
+ if (fileContent.indexOf('import { scenarios } from') === -1) {
2159
+ fileContent = `import { scenarios } from "${mockDataPath}";\n\n${fileContent}`;
2160
+ }
2161
+ // Add wrapper default export that injects argumentsData as props
2162
+ fileContent += `\n\nexport default function _CYRouteWrapper(props: any) {
2163
+ const _cyArgs = scenarios().data()?.['arguments']?.[0] ?? {};
2164
+ return <${funcName} {...props} {..._cyArgs} />;
2165
+ }\n`;
2166
+ }
2167
+ }
2168
+ }
1891
2169
  // Use the directive that was extracted at the beginning of processing
1892
2170
  // This ensures it stays at the very top even after imports are prepended
1893
2171
  // NOTE: We only preserve "use client" directives, NOT "use server" directives.
@@ -1908,6 +2186,7 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1908
2186
  await writeFile(scenarioComponentPath, finalContent);
1909
2187
  debugLog('Successfully wrote scenario file');
1910
2188
  scenarioComponentPaths.push(scenarioComponentPath);
2189
+ console.log(`[WriteScenario] POST-LOOP ${entity.name}: COMPLETE total=${Date.now() - postLoopStartTime}ms`);
1911
2190
  return { scenarioComponentPaths, writtenScenarioComponents };
1912
2191
  }
1913
2192
  //# sourceMappingURL=writeScenarioComponents.js.map