@codeyam/codeyam-cli 0.1.0-staging.dd216e0 → 0.1.0-staging.e2d4438

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 (970) 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 +16 -13
  5. package/analyzer-template/packages/ai/index.ts +21 -5
  6. package/analyzer-template/packages/ai/package.json +3 -3
  7. package/analyzer-template/packages/ai/src/lib/__mocks__/completionCall.ts +122 -0
  8. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +226 -24
  9. package/analyzer-template/packages/ai/src/lib/astScopes/arrayDerivationDetector.ts +199 -0
  10. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +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 +1507 -117
  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 +2227 -350
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +7 -2
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +296 -35
  25. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +120 -76
  26. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +16 -3
  27. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +6 -4
  28. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +54 -3
  29. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +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 +396 -88
  36. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.ts +129 -0
  37. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +183 -0
  38. package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
  39. package/analyzer-template/packages/ai/src/lib/e2eDataTracking.ts +334 -0
  40. package/analyzer-template/packages/ai/src/lib/extractCriticalDataKeys.ts +120 -0
  41. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +74 -7
  42. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +89 -112
  43. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +59 -3
  44. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +1421 -92
  45. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +216 -109
  46. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +710 -0
  47. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
  48. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +2484 -0
  49. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +239 -0
  50. package/analyzer-template/packages/ai/src/lib/getConditionalUsagesFromCode.ts +143 -31
  51. package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +8 -2
  52. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +328 -7
  53. package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
  54. package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +111 -87
  55. package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
  56. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +17 -7
  57. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +1 -1
  58. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +32 -102
  59. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChunkPrompt.ts +82 -0
  60. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateCriticalKeysPrompt.ts +103 -0
  61. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +110 -6
  62. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +14 -53
  63. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
  64. package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +28 -2
  65. package/analyzer-template/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.ts +391 -0
  66. package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +824 -0
  67. package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +5 -1
  68. package/analyzer-template/packages/ai/src/lib/validateExecutionFlowPaths.ts +531 -0
  69. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +127 -3
  70. package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +114 -2
  71. package/analyzer-template/packages/analyze/index.ts +2 -0
  72. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +79 -59
  73. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +113 -26
  74. package/analyzer-template/packages/analyze/src/lib/analysisContext.ts +44 -4
  75. package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +1 -0
  76. package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
  77. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +19 -0
  78. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +19 -0
  79. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +11 -0
  80. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +8 -0
  81. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +49 -1
  82. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +2 -1
  83. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +532 -275
  84. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +34 -1
  85. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +6 -0
  86. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +3 -0
  87. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +4 -2
  88. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +33 -10
  89. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +31 -15
  90. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +11 -7
  91. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +11 -12
  92. package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +4 -5
  93. package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
  94. package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +14 -12
  95. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1315 -0
  96. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +201 -46
  97. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
  98. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +670 -74
  99. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.ts +1 -1
  100. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +28 -62
  101. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +380 -45
  102. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +264 -0
  103. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +78 -83
  104. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +4 -8
  105. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +970 -140
  106. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +56 -11
  107. package/analyzer-template/packages/analyze/src/lib/files/scenarios/propagateArrayItemSchemas.ts +474 -0
  108. package/analyzer-template/packages/analyze/src/lib/files/setImportedExports.ts +2 -1
  109. package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
  110. package/analyzer-template/packages/analyze/src/lib/utils/getFileByPath.ts +19 -0
  111. package/analyzer-template/packages/aws/codebuild/index.ts +1 -0
  112. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +11 -1
  113. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -1
  114. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +29 -18
  115. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -1
  116. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +2 -2
  117. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -1
  118. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +2 -2
  119. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  120. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +8 -18
  121. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -1
  122. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +17 -61
  123. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  124. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts +15 -0
  125. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts.map +1 -0
  126. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js +31 -0
  127. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js.map +1 -0
  128. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -1
  129. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +8 -1
  130. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -1
  131. package/analyzer-template/packages/aws/package.json +3 -3
  132. package/analyzer-template/packages/aws/s3/index.ts +1 -0
  133. package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +43 -19
  134. package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +3 -3
  135. package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +17 -69
  136. package/analyzer-template/packages/aws/src/lib/s3/checkS3ObjectExists.ts +47 -0
  137. package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +8 -1
  138. package/analyzer-template/packages/database/package.json +1 -1
  139. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  140. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  141. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  142. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  143. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  144. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  145. package/analyzer-template/packages/database/src/lib/kysely/db.ts +18 -5
  146. package/analyzer-template/packages/database/src/lib/kysely/tableRelations.ts +2 -2
  147. package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +6 -0
  148. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +36 -9
  149. package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
  150. package/analyzer-template/packages/database/src/lib/loadAnalyses.ts +58 -1
  151. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +13 -0
  152. package/analyzer-template/packages/database/src/lib/loadBranch.ts +16 -1
  153. package/analyzer-template/packages/database/src/lib/loadCommit.ts +11 -0
  154. package/analyzer-template/packages/database/src/lib/loadCommits.ts +28 -0
  155. package/analyzer-template/packages/database/src/lib/loadEntities.ts +26 -3
  156. package/analyzer-template/packages/database/src/lib/loadEntityBranches.ts +12 -0
  157. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +7 -3
  158. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  159. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  160. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  161. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +7 -14
  162. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  163. package/analyzer-template/packages/generate/index.ts +3 -0
  164. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +17 -1
  165. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +193 -0
  166. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
  167. package/analyzer-template/packages/generate/src/lib/deepMerge.ts +26 -1
  168. package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
  169. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
  170. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
  171. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
  172. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
  173. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
  174. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
  175. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
  176. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
  177. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
  178. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
  179. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
  180. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
  181. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +4 -2
  182. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  183. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +13 -3
  184. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  185. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelations.d.ts +2 -2
  186. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +1 -11
  187. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -1
  188. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts +1 -0
  189. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts.map +1 -1
  190. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js +3 -0
  191. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  192. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +30 -7
  193. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -1
  194. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
  195. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  196. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts +1 -0
  197. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -1
  198. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
  199. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
  200. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  201. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  202. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +2 -6
  203. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  204. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts +2 -0
  205. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts.map +1 -1
  206. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js +45 -2
  207. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js.map +1 -1
  208. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  209. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +8 -0
  210. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  211. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js +11 -1
  212. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js.map +1 -1
  213. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.d.ts.map +1 -1
  214. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js +7 -0
  215. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js.map +1 -1
  216. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts +3 -1
  217. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  218. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +22 -1
  219. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  220. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts +3 -1
  221. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  222. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +23 -4
  223. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  224. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.d.ts.map +1 -1
  225. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js +9 -0
  226. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js.map +1 -1
  227. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  228. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
  229. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  230. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
  231. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
  232. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
  233. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
  234. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
  235. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
  236. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts +2 -2
  237. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  238. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +5 -4
  239. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  240. package/analyzer-template/packages/github/dist/generate/index.d.ts +3 -0
  241. package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -1
  242. package/analyzer-template/packages/github/dist/generate/index.js +3 -0
  243. package/analyzer-template/packages/github/dist/generate/index.js.map +1 -1
  244. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
  245. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  246. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  247. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts +9 -0
  248. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -0
  249. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  250. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  251. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts +20 -0
  252. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts.map +1 -0
  253. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  254. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  255. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.d.ts.map +1 -1
  256. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js +27 -1
  257. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js.map +1 -1
  258. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts +8 -0
  259. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts.map +1 -0
  260. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js +89 -0
  261. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  262. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -1
  263. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +10 -0
  264. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -1
  265. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -1
  266. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +3 -0
  267. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -1
  268. package/analyzer-template/packages/github/dist/types/index.d.ts +2 -2
  269. package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
  270. package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
  271. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +87 -13
  272. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
  273. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts +2 -0
  274. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts.map +1 -1
  275. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +2 -0
  276. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -1
  277. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  278. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  279. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +11 -6
  280. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  281. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +199 -3
  282. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  283. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  284. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  285. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +2 -0
  286. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  287. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts +9 -1
  288. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  289. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +29 -3
  290. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -1
  291. package/analyzer-template/packages/github/package.json +1 -1
  292. package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +14 -0
  293. package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +2 -0
  294. package/analyzer-template/packages/process/index.ts +2 -0
  295. package/analyzer-template/packages/process/package.json +12 -0
  296. package/analyzer-template/packages/process/tsconfig.json +8 -0
  297. package/analyzer-template/packages/types/index.ts +5 -0
  298. package/analyzer-template/packages/types/src/types/Analysis.ts +104 -13
  299. package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
  300. package/analyzer-template/packages/types/src/types/Entity.ts +2 -0
  301. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +7 -0
  302. package/analyzer-template/packages/types/src/types/Scenario.ts +11 -10
  303. package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +228 -3
  304. package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
  305. package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
  306. package/analyzer-template/packages/utils/dist/types/index.d.ts +2 -2
  307. package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
  308. package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
  309. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +87 -13
  310. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
  311. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts +2 -0
  312. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts.map +1 -1
  313. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +2 -0
  314. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -1
  315. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  316. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  317. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +11 -6
  318. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  319. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +199 -3
  320. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  321. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  322. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  323. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +2 -0
  324. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  325. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  326. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +93 -2
  327. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  328. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +9 -1
  329. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  330. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +29 -3
  331. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -1
  332. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +108 -2
  333. package/analyzer-template/packages/utils/src/lib/safeFileName.ts +48 -3
  334. package/analyzer-template/playwright/capture.ts +57 -26
  335. package/analyzer-template/playwright/captureStatic.ts +1 -1
  336. package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
  337. package/analyzer-template/playwright/waitForServer.ts +21 -6
  338. package/analyzer-template/project/analyzeBaselineCommit.ts +9 -0
  339. package/analyzer-template/project/analyzeBranchCommit.ts +4 -0
  340. package/analyzer-template/project/analyzeFileEntities.ts +4 -0
  341. package/analyzer-template/project/analyzeRegularCommit.ts +9 -0
  342. package/analyzer-template/project/captureLibraryFunctionDirect.ts +29 -26
  343. package/analyzer-template/project/constructMockCode.ts +1201 -169
  344. package/analyzer-template/project/controller/startController.ts +16 -1
  345. package/analyzer-template/project/createEntitiesAndSortFiles.ts +83 -0
  346. package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
  347. package/analyzer-template/project/loadReadyToBeCaptured.ts +65 -41
  348. package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
  349. package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
  350. package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +3 -6
  351. package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +18 -7
  352. package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
  353. package/analyzer-template/project/orchestrateCapture.ts +81 -9
  354. package/analyzer-template/project/reconcileMockDataKeys.ts +245 -2
  355. package/analyzer-template/project/runAnalysis.ts +11 -0
  356. package/analyzer-template/project/serverOnlyModules.ts +127 -2
  357. package/analyzer-template/project/start.ts +51 -15
  358. package/analyzer-template/project/startScenarioCapture.ts +6 -0
  359. package/analyzer-template/project/writeMockDataTsx.ts +403 -61
  360. package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
  361. package/analyzer-template/project/writeScenarioComponents.ts +409 -98
  362. package/analyzer-template/project/writeScenarioFiles.ts +26 -0
  363. package/analyzer-template/project/writeSimpleRoot.ts +31 -23
  364. package/analyzer-template/scripts/comboWorkerLoop.cjs +99 -50
  365. package/analyzer-template/scripts/defaultCmd.sh +9 -0
  366. package/analyzer-template/tsconfig.json +2 -1
  367. package/background/src/lib/local/createLocalAnalyzer.js +2 -30
  368. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  369. package/background/src/lib/local/execAsync.js +1 -1
  370. package/background/src/lib/local/execAsync.js.map +1 -1
  371. package/background/src/lib/virtualized/common/execAsync.js +1 -1
  372. package/background/src/lib/virtualized/common/execAsync.js.map +1 -1
  373. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +7 -1
  374. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
  375. package/background/src/lib/virtualized/project/analyzeBranchCommit.js +2 -1
  376. package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -1
  377. package/background/src/lib/virtualized/project/analyzeFileEntities.js +2 -1
  378. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  379. package/background/src/lib/virtualized/project/analyzeRegularCommit.js +7 -1
  380. package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
  381. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +3 -3
  382. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -1
  383. package/background/src/lib/virtualized/project/constructMockCode.js +1062 -127
  384. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  385. package/background/src/lib/virtualized/project/controller/startController.js +11 -1
  386. package/background/src/lib/virtualized/project/controller/startController.js.map +1 -1
  387. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +73 -1
  388. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -1
  389. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +6 -3
  390. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -1
  391. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +19 -8
  392. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
  393. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +7 -7
  394. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -1
  395. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js +2 -2
  396. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -1
  397. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +3 -2
  398. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
  399. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +7 -5
  400. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
  401. package/background/src/lib/virtualized/project/orchestrateCapture.js +65 -10
  402. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  403. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +204 -2
  404. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  405. package/background/src/lib/virtualized/project/runAnalysis.js +9 -0
  406. package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
  407. package/background/src/lib/virtualized/project/serverOnlyModules.js +106 -3
  408. package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -1
  409. package/background/src/lib/virtualized/project/start.js +47 -15
  410. package/background/src/lib/virtualized/project/start.js.map +1 -1
  411. package/background/src/lib/virtualized/project/startScenarioCapture.js +7 -0
  412. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  413. package/background/src/lib/virtualized/project/writeMockDataTsx.js +350 -50
  414. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  415. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js +15 -0
  416. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js.map +1 -0
  417. package/background/src/lib/virtualized/project/writeScenarioComponents.js +313 -83
  418. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  419. package/background/src/lib/virtualized/project/writeScenarioFiles.js +19 -0
  420. package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -1
  421. package/background/src/lib/virtualized/project/writeSimpleRoot.js +31 -21
  422. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  423. package/codeyam-cli/scripts/apply-setup.js +180 -0
  424. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  425. package/codeyam-cli/src/cli.js +9 -1
  426. package/codeyam-cli/src/cli.js.map +1 -1
  427. package/codeyam-cli/src/codeyam-cli.js +18 -2
  428. package/codeyam-cli/src/codeyam-cli.js.map +1 -1
  429. package/codeyam-cli/src/commands/analyze.js +5 -3
  430. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  431. package/codeyam-cli/src/commands/baseline.js +176 -0
  432. package/codeyam-cli/src/commands/baseline.js.map +1 -0
  433. package/codeyam-cli/src/commands/debug.js +37 -23
  434. package/codeyam-cli/src/commands/debug.js.map +1 -1
  435. package/codeyam-cli/src/commands/default.js +30 -34
  436. package/codeyam-cli/src/commands/default.js.map +1 -1
  437. package/codeyam-cli/src/commands/detect-universal-mocks.js +2 -0
  438. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +1 -1
  439. package/codeyam-cli/src/commands/init.js +49 -257
  440. package/codeyam-cli/src/commands/init.js.map +1 -1
  441. package/codeyam-cli/src/commands/memory.js +307 -0
  442. package/codeyam-cli/src/commands/memory.js.map +1 -0
  443. package/codeyam-cli/src/commands/recapture.js +31 -18
  444. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  445. package/codeyam-cli/src/commands/report.js +72 -24
  446. package/codeyam-cli/src/commands/report.js.map +1 -1
  447. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  448. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  449. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  450. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  451. package/codeyam-cli/src/commands/start.js +8 -12
  452. package/codeyam-cli/src/commands/start.js.map +1 -1
  453. package/codeyam-cli/src/commands/status.js +23 -1
  454. package/codeyam-cli/src/commands/status.js.map +1 -1
  455. package/codeyam-cli/src/commands/test-startup.js +3 -1
  456. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  457. package/codeyam-cli/src/commands/verify.js +14 -2
  458. package/codeyam-cli/src/commands/verify.js.map +1 -1
  459. package/codeyam-cli/src/commands/wipe.js +108 -0
  460. package/codeyam-cli/src/commands/wipe.js.map +1 -0
  461. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +179 -0
  462. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
  463. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
  464. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
  465. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +128 -82
  466. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  467. package/codeyam-cli/src/utils/analysisRunner.js +29 -15
  468. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  469. package/codeyam-cli/src/utils/analyzer.js +7 -0
  470. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  471. package/codeyam-cli/src/utils/backgroundServer.js +102 -21
  472. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  473. package/codeyam-cli/src/utils/database.js +91 -5
  474. package/codeyam-cli/src/utils/database.js.map +1 -1
  475. package/codeyam-cli/src/utils/generateReport.js +253 -106
  476. package/codeyam-cli/src/utils/generateReport.js.map +1 -1
  477. package/codeyam-cli/src/utils/git.js +79 -0
  478. package/codeyam-cli/src/utils/git.js.map +1 -0
  479. package/codeyam-cli/src/utils/install-skills.js +76 -37
  480. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  481. package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
  482. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
  483. package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
  484. package/codeyam-cli/src/utils/npmVersionCheck.js.map +1 -0
  485. package/codeyam-cli/src/utils/progress.js +7 -0
  486. package/codeyam-cli/src/utils/progress.js.map +1 -1
  487. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +38 -0
  488. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
  489. package/codeyam-cli/src/utils/queue/job.js +138 -18
  490. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  491. package/codeyam-cli/src/utils/queue/manager.js +25 -7
  492. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  493. package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
  494. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  495. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  496. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
  497. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
  498. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +230 -0
  499. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
  500. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
  501. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
  502. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
  503. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
  504. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
  505. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
  506. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
  507. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
  508. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +74 -0
  509. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
  510. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +376 -0
  511. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
  512. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +116 -0
  513. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
  514. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
  515. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
  516. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
  517. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
  518. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
  519. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
  520. package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
  521. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
  522. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
  523. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
  524. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
  525. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
  526. package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
  527. package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
  528. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
  529. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
  530. package/codeyam-cli/src/utils/rules/index.js +6 -0
  531. package/codeyam-cli/src/utils/rules/index.js.map +1 -0
  532. package/codeyam-cli/src/utils/rules/parser.js +83 -0
  533. package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
  534. package/codeyam-cli/src/utils/rules/pathMatcher.js +18 -0
  535. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
  536. package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
  537. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
  538. package/codeyam-cli/src/utils/rules/staleness.js +137 -0
  539. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
  540. package/codeyam-cli/src/utils/serverState.js +37 -10
  541. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  542. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +21 -42
  543. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  544. package/codeyam-cli/src/utils/versionInfo.js +46 -15
  545. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  546. package/codeyam-cli/src/utils/wipe.js +128 -0
  547. package/codeyam-cli/src/utils/wipe.js.map +1 -0
  548. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js +66 -0
  549. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
  550. package/codeyam-cli/src/webserver/app/lib/database.js +88 -23
  551. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  552. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  553. package/codeyam-cli/src/webserver/backgroundServer.js +52 -5
  554. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  555. package/codeyam-cli/src/webserver/bootstrap.js +51 -0
  556. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
  557. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-jNYXRRNI.js +1 -0
  558. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-bwuHPyTa.js +11 -0
  559. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-CMjhlvyu.js → EntityTypeBadge-CvzqMxcu.js} +1 -1
  560. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BH0XDim7.js +41 -0
  561. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-EhOseatT.js +34 -0
  562. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-yjIHlOGa.js +25 -0
  563. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-DXN1aCbt.js → LibraryFunctionPreview-Cq5o8jL4.js} +1 -1
  564. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-BmEO4Lqa.js → LoadingDots-BvMu2i-g.js} +1 -1
  565. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-CI1VaB3F.js → LogViewer-kgBTLoJD.js} +1 -1
  566. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-BzPgx-xO.js +11 -0
  567. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-DQddU4F4.js → SafeScreenshot-CwZrv-Ok.js} +1 -1
  568. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-BX2Ny2Qj.js +10 -0
  569. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-Dt7eySG0.js → TruncatedFilePath-CDpEprKa.js} +1 -1
  570. package/codeyam-cli/src/webserver/build/client/assets/_index-BRx8ZGZo.js +11 -0
  571. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-4S4yPfFw.js +27 -0
  572. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-DHKuQSmR.js +17 -0
  573. package/codeyam-cli/src/webserver/build/client/assets/api.agent-transcripts-l0sNRNKZ.js +1 -0
  574. package/codeyam-cli/src/webserver/build/client/assets/api.health-l0sNRNKZ.js +1 -0
  575. package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
  576. package/codeyam-cli/src/webserver/build/client/assets/api.memory-profile-l0sNRNKZ.js +1 -0
  577. package/codeyam-cli/src/webserver/build/client/assets/api.restart-server-l0sNRNKZ.js +1 -0
  578. package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
  579. package/codeyam-cli/src/webserver/build/client/assets/book-open-D4IPYH_y.js +6 -0
  580. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-ITTv_xL3.js → chevron-down-CG65viiV.js} +1 -1
  581. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-DB3aFuEO.js +51 -0
  582. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-mMM0RzI0.js → circle-check-igfMr5DY.js} +1 -1
  583. package/codeyam-cli/src/webserver/build/client/assets/copy-Coc4o_8c.js +11 -0
  584. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-en9_3LGg.js → createLucideIcon-D1zB-pYc.js} +1 -1
  585. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-C1gnJVOL.svg → cy-logo-cli-CCKUIm0S.svg} +2 -2
  586. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +1 -0
  587. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-JTAjQ54M.js +1 -0
  588. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-DBgKdrTR.js → entity._sha._-B0h9AqE6.js} +12 -12
  589. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DjLxr2JB.js +6 -0
  590. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-CtYowLOt.js +6 -0
  591. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-Sf59Z2Pa.js → entity._sha_.edit._scenarioId-PePWg17F.js} +2 -2
  592. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-BvGka1gZ.js → entry.client-I-Wo99C_.js} +6 -6
  593. package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
  594. package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-_IuKNgFH.js → fileTableUtils-9sMMAiWJ.js} +1 -1
  595. package/codeyam-cli/src/webserver/build/client/assets/files-Co65J0s3.js +1 -0
  596. package/codeyam-cli/src/webserver/build/client/assets/{git-8zM4ebXo.js → git-BdHOxVfg.js} +8 -8
  597. package/codeyam-cli/src/webserver/build/client/assets/globals-BSZfYCkU.css +1 -0
  598. package/codeyam-cli/src/webserver/build/client/assets/{index-CkpJhcNC.js → index-CUM5iXwc.js} +1 -1
  599. package/codeyam-cli/src/webserver/build/client/assets/{index-DFbRIdR_.js → index-_417gcQW.js} +1 -1
  600. package/codeyam-cli/src/webserver/build/client/assets/labs-BK0C1H1T.js +1 -0
  601. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-DEtRABV3.js → loader-circle-TzRHMVog.js} +1 -1
  602. package/codeyam-cli/src/webserver/build/client/assets/manifest-040dab1c.js +1 -0
  603. package/codeyam-cli/src/webserver/build/client/assets/memory-UIDVz141.js +92 -0
  604. package/codeyam-cli/src/webserver/build/client/assets/pause-hjzB7t2z.js +11 -0
  605. package/codeyam-cli/src/webserver/build/client/assets/root-D1WadSdf.js +62 -0
  606. package/codeyam-cli/src/webserver/build/client/assets/{search-Clp3R4kH.js → search-DcAwD_Ln.js} +1 -1
  607. package/codeyam-cli/src/webserver/build/client/assets/settings-CclxrcPK.js +1 -0
  608. package/codeyam-cli/src/webserver/build/client/assets/simulations-DVNJVQgD.js +1 -0
  609. package/codeyam-cli/src/webserver/build/client/assets/terminal-DbEAHMbA.js +11 -0
  610. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-CUVskfkL.js → triangle-alert-CAD5b1o_.js} +1 -1
  611. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BqgrAzs3.js +1 -0
  612. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-CHT-Bzx5.js → useLastLogLine-DAFqfEDH.js} +1 -1
  613. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DZlYx2c4.js +1 -0
  614. package/codeyam-cli/src/webserver/build/client/assets/{useToast-BCR_pi3-.js → useToast-ihdMtlf6.js} +1 -1
  615. package/codeyam-cli/src/webserver/build/server/assets/index-B3dE0r28.js +1 -0
  616. package/codeyam-cli/src/webserver/build/server/assets/server-build-DYbfdxa3.js +273 -0
  617. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  618. package/codeyam-cli/src/webserver/build-info.json +5 -5
  619. package/codeyam-cli/src/webserver/devServer.js +1 -3
  620. package/codeyam-cli/src/webserver/devServer.js.map +1 -1
  621. package/codeyam-cli/src/webserver/server.js +35 -25
  622. package/codeyam-cli/src/webserver/server.js.map +1 -1
  623. package/codeyam-cli/templates/{codeyam-debug-skill.md → codeyam-debug.md} +48 -4
  624. package/codeyam-cli/templates/codeyam-diagnose.md +481 -0
  625. package/codeyam-cli/templates/codeyam-memory-hook.sh +199 -0
  626. package/codeyam-cli/templates/codeyam-memory.md +396 -0
  627. package/codeyam-cli/templates/codeyam-new-rule.md +13 -0
  628. package/codeyam-cli/templates/{codeyam-setup-skill.md → codeyam-setup.md} +151 -4
  629. package/codeyam-cli/templates/{codeyam-sim-skill.md → codeyam-sim.md} +1 -1
  630. package/codeyam-cli/templates/{codeyam-test-skill.md → codeyam-test.md} +1 -1
  631. package/codeyam-cli/templates/{codeyam-verify-skill.md → codeyam-verify.md} +1 -1
  632. package/codeyam-cli/templates/rule-notification-hook.py +56 -0
  633. package/codeyam-cli/templates/rule-reflection-hook.py +627 -0
  634. package/codeyam-cli/templates/rules-instructions.md +132 -0
  635. package/package.json +18 -15
  636. package/packages/ai/index.js +8 -6
  637. package/packages/ai/index.js.map +1 -1
  638. package/packages/ai/src/lib/analyzeScope.js +179 -13
  639. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  640. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js +150 -0
  641. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js.map +1 -0
  642. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +154 -9
  643. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  644. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
  645. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
  646. package/packages/ai/src/lib/astScopes/methodSemantics.js +138 -23
  647. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  648. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
  649. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
  650. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +8 -0
  651. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -1
  652. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +23 -0
  653. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
  654. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +138 -1
  655. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
  656. package/packages/ai/src/lib/astScopes/processExpression.js +1137 -96
  657. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  658. package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
  659. package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
  660. package/packages/ai/src/lib/checkAllAttributes.js +24 -9
  661. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  662. package/packages/ai/src/lib/completionCall.js +178 -31
  663. package/packages/ai/src/lib/completionCall.js.map +1 -1
  664. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1741 -208
  665. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  666. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +7 -2
  667. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  668. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +230 -23
  669. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -1
  670. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +77 -55
  671. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  672. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +13 -3
  673. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -1
  674. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +6 -4
  675. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -1
  676. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +52 -3
  677. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  678. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +139 -13
  679. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  680. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
  681. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
  682. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +142 -12
  683. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  684. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js +86 -0
  685. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js.map +1 -0
  686. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
  687. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
  688. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
  689. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
  690. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +334 -79
  691. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  692. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js +107 -0
  693. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js.map +1 -0
  694. package/packages/ai/src/lib/dataStructureChunking.js +130 -0
  695. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -0
  696. package/packages/ai/src/lib/deepEqual.js +32 -0
  697. package/packages/ai/src/lib/deepEqual.js.map +1 -0
  698. package/packages/ai/src/lib/e2eDataTracking.js +241 -0
  699. package/packages/ai/src/lib/e2eDataTracking.js.map +1 -0
  700. package/packages/ai/src/lib/extractCriticalDataKeys.js +96 -0
  701. package/packages/ai/src/lib/extractCriticalDataKeys.js.map +1 -0
  702. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +62 -5
  703. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  704. package/packages/ai/src/lib/generateChangesEntityScenarios.js +81 -90
  705. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  706. package/packages/ai/src/lib/generateEntityDataStructure.js +47 -2
  707. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  708. package/packages/ai/src/lib/generateEntityScenarioData.js +1128 -85
  709. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  710. package/packages/ai/src/lib/generateEntityScenarios.js +193 -83
  711. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  712. package/packages/ai/src/lib/generateExecutionFlows.js +495 -0
  713. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
  714. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
  715. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
  716. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +1807 -0
  717. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
  718. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
  719. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js.map +1 -0
  720. package/packages/ai/src/lib/getConditionalUsagesFromCode.js +84 -14
  721. package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -1
  722. package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -1
  723. package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
  724. package/packages/ai/src/lib/isolateScopes.js +270 -7
  725. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  726. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
  727. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
  728. package/packages/ai/src/lib/mergeStatements.js +88 -46
  729. package/packages/ai/src/lib/mergeStatements.js.map +1 -1
  730. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
  731. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
  732. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +16 -4
  733. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  734. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +1 -1
  735. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  736. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +21 -64
  737. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  738. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js +54 -0
  739. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js.map +1 -0
  740. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +83 -6
  741. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  742. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +10 -34
  743. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  744. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
  745. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
  746. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +16 -3
  747. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
  748. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js +335 -0
  749. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js.map +1 -0
  750. package/packages/ai/src/lib/resolvePathToControllable.js +677 -0
  751. package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
  752. package/packages/ai/src/lib/splitOutsideParentheses.js +3 -1
  753. package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -1
  754. package/packages/ai/src/lib/worker/SerializableDataStructure.js +29 -0
  755. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  756. package/packages/ai/src/lib/worker/analyzeScopeWorker.js +94 -1
  757. package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
  758. package/packages/analyze/index.js +1 -0
  759. package/packages/analyze/index.js.map +1 -1
  760. package/packages/analyze/src/lib/FileAnalyzer.js +75 -36
  761. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  762. package/packages/analyze/src/lib/ProjectAnalyzer.js +96 -26
  763. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  764. package/packages/analyze/src/lib/analysisContext.js +30 -5
  765. package/packages/analyze/src/lib/analysisContext.js.map +1 -1
  766. package/packages/analyze/src/lib/asts/nodes/index.js +1 -0
  767. package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
  768. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
  769. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
  770. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +14 -0
  771. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -1
  772. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +14 -0
  773. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -1
  774. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +6 -0
  775. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
  776. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +6 -0
  777. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -1
  778. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +39 -1
  779. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -1
  780. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +2 -1
  781. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -1
  782. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +268 -52
  783. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  784. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +24 -1
  785. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  786. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +5 -0
  787. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  788. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +2 -0
  789. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  790. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +2 -1
  791. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  792. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +31 -10
  793. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  794. package/packages/analyze/src/lib/files/analyzeChange.js +21 -11
  795. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  796. package/packages/analyze/src/lib/files/analyzeEntity.js +9 -8
  797. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  798. package/packages/analyze/src/lib/files/analyzeInitial.js +9 -10
  799. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  800. package/packages/analyze/src/lib/files/analyzeRemixRoute.js +3 -2
  801. package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
  802. package/packages/analyze/src/lib/files/enums/steps.js +1 -1
  803. package/packages/analyze/src/lib/files/enums/steps.js.map +1 -1
  804. package/packages/analyze/src/lib/files/getImportedExports.js +11 -7
  805. package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
  806. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +880 -0
  807. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
  808. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +170 -40
  809. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
  810. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
  811. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
  812. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +522 -59
  813. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  814. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js +1 -1
  815. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js.map +1 -1
  816. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +29 -34
  817. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
  818. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +268 -51
  819. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  820. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +144 -0
  821. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
  822. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +56 -69
  823. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  824. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +4 -8
  825. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  826. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +801 -118
  827. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  828. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +46 -9
  829. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -1
  830. package/packages/analyze/src/lib/files/setImportedExports.js +2 -1
  831. package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -1
  832. package/packages/analyze/src/lib/index.js +1 -0
  833. package/packages/analyze/src/lib/index.js.map +1 -1
  834. package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
  835. package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
  836. package/packages/aws/src/lib/ecs/ecsDefineContainer.js +2 -2
  837. package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  838. package/packages/aws/src/lib/ecs/ecsTaskFactory.js +17 -61
  839. package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  840. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  841. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  842. package/packages/database/src/lib/analysisToDb.js +1 -1
  843. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  844. package/packages/database/src/lib/branchToDb.js +1 -1
  845. package/packages/database/src/lib/branchToDb.js.map +1 -1
  846. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  847. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  848. package/packages/database/src/lib/commitToDb.js +1 -1
  849. package/packages/database/src/lib/commitToDb.js.map +1 -1
  850. package/packages/database/src/lib/fileToDb.js +1 -1
  851. package/packages/database/src/lib/fileToDb.js.map +1 -1
  852. package/packages/database/src/lib/kysely/db.js +13 -3
  853. package/packages/database/src/lib/kysely/db.js.map +1 -1
  854. package/packages/database/src/lib/kysely/tables/commitsTable.js +3 -0
  855. package/packages/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  856. package/packages/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
  857. package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  858. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  859. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  860. package/packages/database/src/lib/loadAnalyses.js +45 -2
  861. package/packages/database/src/lib/loadAnalyses.js.map +1 -1
  862. package/packages/database/src/lib/loadAnalysis.js +8 -0
  863. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  864. package/packages/database/src/lib/loadBranch.js +11 -1
  865. package/packages/database/src/lib/loadBranch.js.map +1 -1
  866. package/packages/database/src/lib/loadCommit.js +7 -0
  867. package/packages/database/src/lib/loadCommit.js.map +1 -1
  868. package/packages/database/src/lib/loadCommits.js +22 -1
  869. package/packages/database/src/lib/loadCommits.js.map +1 -1
  870. package/packages/database/src/lib/loadEntities.js +23 -4
  871. package/packages/database/src/lib/loadEntities.js.map +1 -1
  872. package/packages/database/src/lib/loadEntityBranches.js +9 -0
  873. package/packages/database/src/lib/loadEntityBranches.js.map +1 -1
  874. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
  875. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  876. package/packages/database/src/lib/projectToDb.js +1 -1
  877. package/packages/database/src/lib/projectToDb.js.map +1 -1
  878. package/packages/database/src/lib/saveFiles.js +1 -1
  879. package/packages/database/src/lib/saveFiles.js.map +1 -1
  880. package/packages/database/src/lib/scenarioToDb.js +1 -1
  881. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  882. package/packages/database/src/lib/updateCommitMetadata.js +5 -4
  883. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  884. package/packages/generate/index.js +3 -0
  885. package/packages/generate/index.js.map +1 -1
  886. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  887. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  888. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  889. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  890. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  891. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  892. package/packages/generate/src/lib/deepMerge.js +27 -1
  893. package/packages/generate/src/lib/deepMerge.js.map +1 -1
  894. package/packages/generate/src/lib/scenarioComponentForServer.js +89 -0
  895. package/packages/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  896. package/packages/github/src/lib/loadOrCreateCommit.js +10 -0
  897. package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -1
  898. package/packages/github/src/lib/syncPrimaryBranch.js +3 -0
  899. package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -1
  900. package/packages/process/index.js +3 -0
  901. package/packages/process/index.js.map +1 -0
  902. package/packages/process/src/GlobalProcessManager.js.map +1 -0
  903. package/{background/src/lib/process → packages/process/src}/ProcessManager.js +1 -1
  904. package/packages/process/src/ProcessManager.js.map +1 -0
  905. package/packages/process/src/index.js.map +1 -0
  906. package/packages/process/src/managedExecAsync.js.map +1 -0
  907. package/packages/types/index.js.map +1 -1
  908. package/packages/utils/src/lib/fs/rsyncCopy.js +93 -2
  909. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  910. package/packages/utils/src/lib/safeFileName.js +29 -3
  911. package/packages/utils/src/lib/safeFileName.js.map +1 -1
  912. package/scripts/finalize-analyzer.cjs +8 -76
  913. package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +0 -102
  914. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +0 -197
  915. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +0 -271
  916. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +0 -294
  917. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +0 -67
  918. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +0 -115
  919. package/analyzer-template/process/INTEGRATION_COMPLETE.md +0 -333
  920. package/analyzer-template/process/INTEGRATION_EXAMPLE.md +0 -525
  921. package/analyzer-template/process/README.md +0 -507
  922. package/background/src/lib/process/GlobalProcessManager.js.map +0 -1
  923. package/background/src/lib/process/ProcessManager.js.map +0 -1
  924. package/background/src/lib/process/index.js.map +0 -1
  925. package/background/src/lib/process/managedExecAsync.js.map +0 -1
  926. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +0 -238
  927. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +0 -1
  928. package/codeyam-cli/scripts/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js +0 -7
  929. package/codeyam-cli/scripts/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js.map +0 -1
  930. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-DpUOH11S.js +0 -1
  931. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-Cxs_KUEt.js +0 -41
  932. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-D_gPUolj.js +0 -25
  933. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-MbTu_hOR.js +0 -11
  934. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-Diqfd5nO.js +0 -15
  935. package/codeyam-cli/src/webserver/build/client/assets/_index-D0tNX0Y7.js +0 -11
  936. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CV8R8fpo.js +0 -32
  937. package/codeyam-cli/src/webserver/build/client/assets/chunk-JMJ3UQ3L-Tv-88Jsz.js +0 -51
  938. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-Cw7TE00E.js +0 -1
  939. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DUOKD0lj.js +0 -1
  940. package/codeyam-cli/src/webserver/build/client/assets/files-DMW0hD4L.js +0 -1
  941. package/codeyam-cli/src/webserver/build/client/assets/globals-D3y4cv7l.css +0 -1
  942. package/codeyam-cli/src/webserver/build/client/assets/manifest-18ff0544.js +0 -1
  943. package/codeyam-cli/src/webserver/build/client/assets/root-BuQ6JiJU.js +0 -51
  944. package/codeyam-cli/src/webserver/build/client/assets/settings-DzIyX7wI.js +0 -1
  945. package/codeyam-cli/src/webserver/build/client/assets/simulations-BKNqbrwU.js +0 -1
  946. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-By4FnEmE.js +0 -1
  947. package/codeyam-cli/src/webserver/build/server/assets/index-CzKXayO4.js +0 -1
  948. package/codeyam-cli/src/webserver/build/server/assets/server-build-CHRMAMo8.js +0 -166
  949. package/codeyam-cli/templates/debug-codeyam.md +0 -576
  950. package/packages/ai/src/lib/findMatchingAttribute.js +0 -77
  951. package/packages/ai/src/lib/findMatchingAttribute.js.map +0 -1
  952. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +0 -136
  953. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +0 -1
  954. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +0 -220
  955. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +0 -1
  956. package/packages/ai/src/lib/generateEntityKeyAttributes.js +0 -241
  957. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +0 -1
  958. package/packages/ai/src/lib/isFrontend.js +0 -5
  959. package/packages/ai/src/lib/isFrontend.js.map +0 -1
  960. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +0 -40
  961. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +0 -1
  962. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +0 -72
  963. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +0 -1
  964. /package/analyzer-template/{process → packages/process/src}/GlobalProcessManager.ts +0 -0
  965. /package/analyzer-template/{process → packages/process/src}/ProcessManager.ts +0 -0
  966. /package/analyzer-template/{process → packages/process/src}/index.ts +0 -0
  967. /package/analyzer-template/{process → packages/process/src}/managedExecAsync.ts +0 -0
  968. /package/{background/src/lib/process → packages/process/src}/GlobalProcessManager.js +0 -0
  969. /package/{background/src/lib/process → packages/process/src}/index.js +0 -0
  970. /package/{background/src/lib/process → packages/process/src}/managedExecAsync.js +0 -0
@@ -50,6 +50,9 @@ interface OrchestrateCaptureArgs {
50
50
  taskRunner: CaptureTaskRunner;
51
51
  analysisLoader?: AnalysisLoader;
52
52
  pollingInterval?: number;
53
+ // Optional commit for metadata/progress tracking only (not filtering).
54
+ // Use when full=true but you still want capture progress updates on a commit.
55
+ metadataCommit?: Commit | null;
53
56
  }
54
57
 
55
58
  export default async function orchestrateCapture({
@@ -62,6 +65,7 @@ export default async function orchestrateCapture({
62
65
  taskRunner,
63
66
  analysisLoader,
64
67
  pollingInterval = POLLING_INTERVAL,
68
+ metadataCommit,
65
69
  }: OrchestrateCaptureArgs) {
66
70
  if (!full && !analysisIds && !commit && !entityShas) {
67
71
  throw new Error(
@@ -95,15 +99,20 @@ export default async function orchestrateCapture({
95
99
  const attemptCount = new Map<string, number>();
96
100
  const maxAttempts = 2;
97
101
 
102
+ // Track which analyses had a worker report success — only these can be "captured"
103
+ const confirmedSuccessAnalyses = new Set<string>();
104
+
98
105
  // Register batch completion callback with task runner
99
- taskRunner.onBatchCompleted((analysisIds: string[]) => {
106
+ taskRunner.onBatchCompleted((analysisIds: string[], success: boolean) => {
100
107
  console.log(
101
- `CodeYam Capture: Received batch completion for ${analysisIds.length} analyses: ${analysisIds.join(', ')}`,
108
+ `CodeYam Capture: Received batch completion (success=${success}) for ${analysisIds.length} analyses: ${analysisIds.join(', ')}`,
102
109
  );
103
- // Remove from inFlight and increment attempt count for each analysis
104
110
  for (const analysisId of analysisIds) {
105
111
  inFlight.delete(analysisId);
106
112
  attemptCount.set(analysisId, (attemptCount.get(analysisId) || 0) + 1);
113
+ if (success) {
114
+ confirmedSuccessAnalyses.add(analysisId);
115
+ }
107
116
  }
108
117
  });
109
118
 
@@ -191,9 +200,13 @@ export default async function orchestrateCapture({
191
200
  knownAnalyses.add(id);
192
201
  }
193
202
 
194
- // an analysis we've seen, but is no longer "ready to be captured", is captured!
203
+ // An analysis is "captured" only if:
204
+ // 1. A worker reported success for its batch (in confirmedSuccessAnalyses)
205
+ // 2. It no longer appears in the ready-to-be-captured list (DB confirms)
206
+ // This prevents transient empty DB results from inflating the captured count.
195
207
  const capturedAnalysisIds = Array.from(knownAnalyses).filter(
196
- (id) => !allReadyAnalysisIds.includes(id),
208
+ (id) =>
209
+ confirmedSuccessAnalyses.has(id) && !allReadyAnalysisIds.includes(id),
197
210
  );
198
211
 
199
212
  // Remove captured analyses from inFlight tracking
@@ -318,9 +331,12 @@ export default async function orchestrateCapture({
318
331
  // console.log(
319
332
  // `Codeyam Debug: All known analyses: ${Array.from(knownAnalyses).join(', ')}`,
320
333
  // );
321
- if (commit) {
322
- commit.metadata = await updateCommitMetadata({
323
- commitId: commit.id,
334
+ // Use metadataCommit if provided, otherwise fall back to commit.
335
+ // This allows progress tracking even when commit is null (e.g., full=true mode).
336
+ const trackingCommit = metadataCommit ?? commit;
337
+ if (trackingCommit) {
338
+ trackingCommit.metadata = await updateCommitMetadata({
339
+ commitId: trackingCommit.id,
324
340
  runStatusUpdate: {
325
341
  readyToBeCaptured: knownAnalyses.size,
326
342
  capturesAttempted: capturedAnalysisIds.length + abandoned.length,
@@ -348,6 +364,32 @@ export default async function orchestrateCapture({
348
364
  }
349
365
  }
350
366
 
367
+ // Early exit when all enqueued work is settled (captured or abandoned)
368
+ // This avoids waiting for the 20-minute ANALYSIS_TIMEOUT when capture is complete
369
+ // IMPORTANT: Only check this when isDraining (analysis phase complete) to avoid
370
+ // exiting while slow-running analyses are still in progress
371
+ if (
372
+ isDraining &&
373
+ !firstLoop &&
374
+ enqueuedAnalyses.size > 0 &&
375
+ inFlight.size === 0 &&
376
+ remaining.length === 0 &&
377
+ toRetry.length === 0
378
+ ) {
379
+ const allAnalysesSettled = Array.from(enqueuedAnalyses).every((id) => {
380
+ const captured = !allReadyAnalysisIds.includes(id);
381
+ const abandoned = (attemptCount.get(id) || 0) >= maxAttempts;
382
+ return captured || abandoned;
383
+ });
384
+
385
+ if (allAnalysesSettled) {
386
+ console.log(
387
+ 'CodeYam Capture: All enqueued analyses settled (captured or abandoned), exiting early',
388
+ );
389
+ break;
390
+ }
391
+ }
392
+
351
393
  if (isDraining) {
352
394
  // Exit if analysis complete but no entities ready for capture
353
395
  // Only check this after at least one poll (not firstLoop) to ensure we've
@@ -364,7 +406,9 @@ export default async function orchestrateCapture({
364
406
  // check if all enqueued analyses have been either captured or abandoned
365
407
  const allAnalysesSettled = Array.from(enqueuedAnalyses).every(
366
408
  (id) => {
367
- const captured = !allReadyAnalysisIds.includes(id);
409
+ const captured =
410
+ confirmedSuccessAnalyses.has(id) &&
411
+ !allReadyAnalysisIds.includes(id);
368
412
  const abandoned = (attemptCount.get(id) || 0) >= maxAttempts;
369
413
  return captured || abandoned;
370
414
  },
@@ -404,5 +448,33 @@ export default async function orchestrateCapture({
404
448
  } finally {
405
449
  // Always clean up task runner resources in finally block
406
450
  await taskRunner.cleanup();
451
+
452
+ const trackingCommit = metadataCommit ?? commit;
453
+ if (trackingCommit?.id) {
454
+ const captureCompletedAt = new Date().toISOString();
455
+
456
+ await updateCommitMetadata({
457
+ commitId: trackingCommit.id,
458
+ runStatusUpdate: {
459
+ captureCompletedAt,
460
+ capturePid: undefined,
461
+ },
462
+ // completedAt = max(analysisCompletedAt, captureCompletedAt)
463
+ // Normally capture finishes after analysis, but using max means illogical
464
+ // orderings leave a detectable signal (completedAt !== captureCompletedAt).
465
+ updateCallback(metadata) {
466
+ const run = metadata.currentRun!;
467
+ run.completedAt =
468
+ run.analysisCompletedAt &&
469
+ run.analysisCompletedAt > captureCompletedAt
470
+ ? run.analysisCompletedAt
471
+ : captureCompletedAt;
472
+ },
473
+ }).catch((error) => {
474
+ console.log(
475
+ `Warning: Failed to update capture completion metadata: ${error}`,
476
+ );
477
+ });
478
+ }
407
479
  }
408
480
  }
@@ -5,7 +5,13 @@
5
5
  * (e.g., "eq('user_id', 'user-12345')") when the mock code expects variable
6
6
  * references (e.g., "eq('user_id', user.id)").
7
7
  *
8
- * This function remaps mismatched keys to their expected equivalents.
8
+ * Keys are now original call signatures (e.g., "useFetcher<User>()", "db.select(query)").
9
+ *
10
+ * Also handles flat dotted keys (e.g., "trpc.fastener.getAttributeValues.useQuery(...)")
11
+ * by converting them to nested structure.
12
+ *
13
+ * @param mockData The mock data object to reconcile
14
+ * @param expectedKeys The expected keys from the structure
9
15
  */
10
16
  export function reconcileMockDataKeys(
11
17
  mockData: Record<string, unknown>,
@@ -26,7 +32,27 @@ export function reconcileMockDataKeys(
26
32
  continue;
27
33
  }
28
34
 
29
- // Try to find closest match
35
+ // Check if this is a flat dotted key that should be converted to nested structure
36
+ // e.g., "trpc.fastener.getAttributeValues.useQuery({ ... })"
37
+ const flatKeyParts = parseFlatDottedKey(key);
38
+ if (flatKeyParts && flatKeyParts.length > 1) {
39
+ // Check if the parts match expected keys (indicating this should be nested)
40
+ const partsMatchExpected = flatKeyParts.some((part) =>
41
+ expectedKeys.includes(part),
42
+ );
43
+ if (partsMatchExpected) {
44
+ // Convert flat key to nested structure and merge
45
+ deepMergeIntoResult(
46
+ result,
47
+ flatKeyParts,
48
+ reconciledValue,
49
+ expectedKeys,
50
+ );
51
+ continue;
52
+ }
53
+ }
54
+
55
+ // Try to find closest match using existing logic
30
56
  const closestKey = findClosestKey(key, expectedKeys);
31
57
  if (closestKey) {
32
58
  result[closestKey] = reconciledValue;
@@ -39,6 +65,94 @@ export function reconcileMockDataKeys(
39
65
  return result;
40
66
  }
41
67
 
68
+ /**
69
+ * Parse a flat dotted key into path segments.
70
+ * Handles keys like "trpc.fastener.getAttributeValues.useQuery({ ... })"
71
+ * where the last part might contain parentheses with function arguments.
72
+ *
73
+ * Returns null if the key doesn't look like a dotted path.
74
+ */
75
+ function parseFlatDottedKey(key: string): string[] | null {
76
+ // Don't treat keys that start with a function call as dotted paths
77
+ // e.g., "useQuery({ id: 123 })" should not be parsed
78
+ if (key.match(/^[a-zA-Z_][a-zA-Z0-9_]*\s*\(/)) {
79
+ // Check if there's a dot BEFORE the first parenthesis
80
+ const parenIndex = key.indexOf('(');
81
+ const dotBeforeParen = key.slice(0, parenIndex).includes('.');
82
+ if (!dotBeforeParen) {
83
+ return null;
84
+ }
85
+ }
86
+
87
+ // Must contain a dot to be a dotted path
88
+ if (!key.includes('.')) {
89
+ return null;
90
+ }
91
+
92
+ const parts: string[] = [];
93
+ let current = '';
94
+ let depth = 0;
95
+
96
+ for (let i = 0; i < key.length; i++) {
97
+ const char = key[i];
98
+
99
+ if (char === '(' || char === '{' || char === '[') {
100
+ depth++;
101
+ current += char;
102
+ } else if (char === ')' || char === '}' || char === ']') {
103
+ depth--;
104
+ current += char;
105
+ } else if (char === '.' && depth === 0) {
106
+ if (current) {
107
+ parts.push(current);
108
+ }
109
+ current = '';
110
+ } else {
111
+ current += char;
112
+ }
113
+ }
114
+
115
+ if (current) {
116
+ parts.push(current);
117
+ }
118
+
119
+ // Need at least 2 parts for it to be a meaningful dotted path
120
+ return parts.length >= 2 ? parts : null;
121
+ }
122
+
123
+ /**
124
+ * Deep merge a value into the result object following the path segments.
125
+ * Reconciles the leaf key against expected keys.
126
+ */
127
+ function deepMergeIntoResult(
128
+ result: Record<string, unknown>,
129
+ parts: string[],
130
+ value: unknown,
131
+ expectedKeys: string[],
132
+ ): void {
133
+ let current = result;
134
+
135
+ // Navigate/create path for all but the last part
136
+ for (let i = 0; i < parts.length - 1; i++) {
137
+ const part = parts[i];
138
+ if (!(part in current)) {
139
+ current[part] = {};
140
+ }
141
+ const next = current[part];
142
+ if (next && typeof next === 'object' && !Array.isArray(next)) {
143
+ current = next as Record<string, unknown>;
144
+ } else {
145
+ // Can't traverse further, structure mismatch
146
+ return;
147
+ }
148
+ }
149
+
150
+ // Handle the leaf key
151
+ const leafKey = parts[parts.length - 1];
152
+ const closestLeafKey = findClosestKey(leafKey, expectedKeys) || leafKey;
153
+ current[closestLeafKey] = value;
154
+ }
155
+
42
156
  /**
43
157
  * Find the closest matching key from expectedKeys for a given key.
44
158
  *
@@ -47,9 +161,15 @@ export function reconcileMockDataKeys(
47
161
  * - Ignore the last argument value (could be literal or variable)
48
162
  * - Match based on the common prefix
49
163
  * - If key has no parentheses, try matching with "()" appended
164
+ * - If key is "funcName()" (empty args), match expected key "funcName({...})" by function name
165
+ * - If key has object arguments (like useQuery({...})), match by function name
166
+ * - If key has single argument with literal value, match by function name
50
167
  *
51
168
  * e.g., "eq('user_id', 'user-12345')" matches "eq('user_id', user.id)"
52
169
  * e.g., "getAll" matches "getAll()"
170
+ * e.g., "getSurveysAction()" matches "getSurveysAction({ environmentId, ... })"
171
+ * e.g., "useQuery({ id: 123 })" matches "useQuery({ id: Number(id) })"
172
+ * e.g., "useCustomSizes('example-slug')" matches "useCustomSizes(projectSlug)"
53
173
  */
54
174
  function findClosestKey(key: string, expectedKeys: string[]): string | null {
55
175
  const keyBase = extractKeyBase(key);
@@ -73,9 +193,132 @@ function findClosestKey(key: string, expectedKeys: string[]): string | null {
73
193
  }
74
194
  }
75
195
 
196
+ // If key is "funcName()" (empty args), try matching expected key "funcName({...})"
197
+ // This handles the case where LLM generates "getSurveysAction()" but expected key
198
+ // is "getSurveysAction({ environmentId, limit, ... })" with an object argument
199
+ const emptyArgsMatch = key.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\(\)$/);
200
+ if (emptyArgsMatch) {
201
+ const funcName = emptyArgsMatch[1];
202
+ for (const expected of expectedKeys) {
203
+ // Match if expected key starts with the same function name and has args
204
+ const expectedMatch = expected.match(
205
+ new RegExp(`^${escapeRegExp(funcName)}\\([^)]+\\)$`),
206
+ );
207
+ if (expectedMatch) {
208
+ return expected;
209
+ }
210
+ }
211
+ }
212
+
213
+ // If key has object literal arguments (like "useQuery({ id: 123, ... })"),
214
+ // try matching expected keys with the same function path AND first object property.
215
+ // This handles cases where LLM generates literal values but expected keys have variable references.
216
+ // e.g., "useQuery({ attributes: ['a', 'b'] })" matches "useQuery({ attributes: items || [] })"
217
+ // e.g., "trpc.users.getById.useQuery({ userId: 'user-123' })" matches "trpc.users.getById.useQuery({ userId })"
218
+ // Uses first property matching when multiple candidates exist for disambiguation.
219
+ const objectArgMatch = key.match(/^([a-zA-Z_][a-zA-Z0-9_.]*)\s*\(\s*\{/);
220
+ if (objectArgMatch) {
221
+ const funcPath = objectArgMatch[1]; // Can be "funcName" or "path.to.funcName"
222
+ // Extract the first property name from the object argument
223
+ const firstPropMatch = key.match(
224
+ /\(\s*\{\s*\n?\s*([a-zA-Z_][a-zA-Z0-9_]*)\s*:/,
225
+ );
226
+ const firstProp = firstPropMatch ? firstPropMatch[1] : null;
227
+
228
+ // Collect all matching candidates
229
+ const candidates: string[] = [];
230
+ for (const expected of expectedKeys) {
231
+ // Match if expected key has the same function path and starts with object argument
232
+ const expectedObjArgMatch = expected.match(
233
+ new RegExp(`^${escapeRegExp(funcPath)}\\s*\\(\\s*\\{`),
234
+ );
235
+ if (expectedObjArgMatch) {
236
+ candidates.push(expected);
237
+ }
238
+ }
239
+
240
+ // If we have a first property, prefer matching by property name
241
+ if (firstProp && candidates.length > 1) {
242
+ // Look for a candidate with the same first property
243
+ const propRegex = new RegExp(
244
+ `\\(\\s*\\{[\\s\\n]*${escapeRegExp(firstProp)}\\s*:`,
245
+ );
246
+ const propMatch = candidates.find((c) => propRegex.test(c));
247
+ if (propMatch) {
248
+ return propMatch;
249
+ }
250
+ }
251
+
252
+ // Fall back to first candidate if no property match found
253
+ if (candidates.length > 0) {
254
+ return candidates[0];
255
+ }
256
+ }
257
+
258
+ // If key has a single argument (literal value OR variable reference),
259
+ // try matching expected keys with the same function name but different argument.
260
+ // This handles cases where:
261
+ // - LLM generates "useCustomSizes('example-slug')" but expected key is "useCustomSizes(projectSlug)"
262
+ // - LLM generates "useCustomSizes(someProjectSlug)" but expected key is "useCustomSizes(projectSlug)"
263
+ //
264
+ // The second case is important because when LLM generates multiple keys with different
265
+ // variable names (e.g., "useCustomSizes(someProjectSlug)" and "useCustomSizes(projectSlug)"),
266
+ // without reconciliation, normalizeMockData merges them into "useCustomSizes()" which
267
+ // doesn't match the expected key "useCustomSizes(projectSlug)", causing undefined data access.
268
+ const singleArgMatch = key.match(
269
+ /^([a-zA-Z_][a-zA-Z0-9_.]*)\s*\(([^,)]+)\)$/,
270
+ );
271
+ if (singleArgMatch) {
272
+ const funcPath = singleArgMatch[1];
273
+ const arg = singleArgMatch[2].trim();
274
+ // Apply this matching if the argument is a literal OR a simple variable reference
275
+ const isLiteralArg = /^['"`].*['"`]$/.test(arg) || /^\d+$/.test(arg);
276
+ const isVariableRef = /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(arg);
277
+ if (isLiteralArg || isVariableRef) {
278
+ for (const expected of expectedKeys) {
279
+ // Match if expected key has the same function path with a single argument
280
+ const expectedSingleArgMatch = expected.match(
281
+ new RegExp(`^${escapeRegExp(funcPath)}\\s*\\([^,)]+\\)$`),
282
+ );
283
+ if (expectedSingleArgMatch) {
284
+ return expected;
285
+ }
286
+ }
287
+ }
288
+ }
289
+
290
+ // If key has multiple arguments where one contains a literal value,
291
+ // try matching expected keys with the same function name and argument count.
292
+ // This handles cases like "getScenarioDisplayState(scenario, undefined, undefined, 'entitysha123', undefined)"
293
+ // matching "getScenarioDisplayState(scenario, undefined, undefined, entitySha, undefined)"
294
+ const multiArgWithLiteralMatch = key.match(
295
+ /^([a-zA-Z_][a-zA-Z0-9_.]*)\s*\((.+)\)$/,
296
+ );
297
+ if (multiArgWithLiteralMatch) {
298
+ const funcPath = multiArgWithLiteralMatch[1];
299
+ const argsStr = multiArgWithLiteralMatch[2];
300
+ // Check if any argument is a string literal
301
+ const hasLiteralArg = /'[^']*'|"[^"]*"/.test(argsStr);
302
+ if (hasLiteralArg) {
303
+ for (const expected of expectedKeys) {
304
+ // Match if expected key starts with the same function path
305
+ if (expected.startsWith(funcPath + '(')) {
306
+ return expected;
307
+ }
308
+ }
309
+ }
310
+ }
311
+
76
312
  return null;
77
313
  }
78
314
 
315
+ /**
316
+ * Escape special regex characters in a string.
317
+ */
318
+ function escapeRegExp(str: string): string {
319
+ return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
320
+ }
321
+
79
322
  /**
80
323
  * Normalize quotes in a string: convert double quotes to single quotes.
81
324
  * This handles cases where the LLM generates keys with double quotes
@@ -215,6 +215,11 @@ export default async function runAnalysis({
215
215
  entityShas,
216
216
  branchName: branch?.name,
217
217
  });
218
+
219
+ // Propagate the fallback branch to branchCommit so downstream code can use it
220
+ if (branchCommit && branch) {
221
+ branchCommit.branch = branch;
222
+ }
218
223
  }
219
224
 
220
225
  // After this block, 'commit' is the union of a regular or baseline commit
@@ -308,6 +313,10 @@ export default async function runAnalysis({
308
313
  // Route to appropriate analyzer
309
314
  try {
310
315
  if (runReadyToBeCapturedPath) {
316
+ // Signal that analysis can produce captures immediately since analyses are already ready.
317
+ // This is needed for recapture to work - orchestration waits for the 'analysisProducing' event.
318
+ controller?.setAnalysisProducingPhase();
319
+
311
320
  return await analyzeReadyToBeCaptured({
312
321
  project,
313
322
  projectAnalyzer,
@@ -330,6 +339,7 @@ export default async function runAnalysis({
330
339
  desiredAnalyses,
331
340
  force,
332
341
  fileStore,
342
+ onAnalysisProducing: () => controller?.setAnalysisProducingPhase(),
333
343
  });
334
344
  }
335
345
 
@@ -350,6 +360,7 @@ export default async function runAnalysis({
350
360
  backgroundJob,
351
361
  desiredAnalyses,
352
362
  fileStore,
363
+ onAnalysisProducing: () => controller?.setAnalysisProducingPhase(),
353
364
  });
354
365
  } catch (e) {
355
366
  awsLog('CodeYam Error: Analysis failed', {
@@ -213,6 +213,108 @@ export function applyServerOnlyMocks(fileContent: string): string {
213
213
  return applyServerOnlyMocksAst(fileContent);
214
214
  }
215
215
 
216
+ /**
217
+ * Check if a file exports an "env" variable that's derived from a node module import.
218
+ * This is a generic pattern for env configuration packages (like @t3-oss/env-*, envalid, etc.)
219
+ * that create server-only environment objects.
220
+ *
221
+ * Pattern detected:
222
+ * import { someFunc } from "some-package";
223
+ * export const env = someFunc({...});
224
+ *
225
+ * Returns the name of the imported function if detected, null otherwise.
226
+ */
227
+ function detectEnvStoreFromNodeModule(sourceFile: ts.SourceFile): {
228
+ importedFunctionName: string;
229
+ modulePath: string;
230
+ } | null {
231
+ // First, collect all imported function names from node modules
232
+ const nodeModuleImports = new Map<string, string>(); // functionName -> modulePath
233
+
234
+ for (const statement of sourceFile.statements) {
235
+ if (!ts.isImportDeclaration(statement)) continue;
236
+
237
+ const moduleSpecifier = statement.moduleSpecifier;
238
+ if (!ts.isStringLiteral(moduleSpecifier)) continue;
239
+
240
+ const modulePath = moduleSpecifier.text;
241
+ // Skip relative imports - only look at node modules
242
+ if (modulePath.startsWith('.') || modulePath.startsWith('/')) continue;
243
+
244
+ if (
245
+ statement.importClause?.namedBindings &&
246
+ ts.isNamedImports(statement.importClause.namedBindings)
247
+ ) {
248
+ for (const element of statement.importClause.namedBindings.elements) {
249
+ nodeModuleImports.set(element.name.text, modulePath);
250
+ }
251
+ }
252
+ if (statement.importClause?.name) {
253
+ nodeModuleImports.set(statement.importClause.name.text, modulePath);
254
+ }
255
+ }
256
+
257
+ // Now look for: export const env = importedFunc(...)
258
+ for (const statement of sourceFile.statements) {
259
+ if (!ts.isVariableStatement(statement)) continue;
260
+
261
+ // Check if it's exported
262
+ const isExported = statement.modifiers?.some(
263
+ (m) => m.kind === ts.SyntaxKind.ExportKeyword,
264
+ );
265
+ if (!isExported) continue;
266
+
267
+ for (const decl of statement.declarationList.declarations) {
268
+ // Check if variable is named "env"
269
+ if (!ts.isIdentifier(decl.name) || decl.name.text !== 'env') continue;
270
+
271
+ // Check if initializer is a call expression
272
+ if (!decl.initializer || !ts.isCallExpression(decl.initializer)) continue;
273
+
274
+ // Get the function being called
275
+ const callExpr = decl.initializer.expression;
276
+ let funcName: string | null = null;
277
+
278
+ if (ts.isIdentifier(callExpr)) {
279
+ funcName = callExpr.text;
280
+ } else if (
281
+ ts.isPropertyAccessExpression(callExpr) &&
282
+ ts.isIdentifier(callExpr.name)
283
+ ) {
284
+ funcName = callExpr.name.text;
285
+ }
286
+
287
+ if (funcName && nodeModuleImports.has(funcName)) {
288
+ return {
289
+ importedFunctionName: funcName,
290
+ modulePath: nodeModuleImports.get(funcName)!,
291
+ };
292
+ }
293
+ }
294
+ }
295
+
296
+ return null;
297
+ }
298
+
299
+ /**
300
+ * Generate mock code for env store patterns.
301
+ * Replaces the imported function with one that returns a proxy.
302
+ */
303
+ function generateEnvStoreMock(functionName: string): string {
304
+ return `// Mock for env store function (server-only env vars)
305
+ const ${functionName} = (config: any) => {
306
+ // Return a proxy that returns undefined for any property access
307
+ // This allows the code to run on the client without throwing
308
+ return new Proxy({} as any, {
309
+ get: (target, prop) => {
310
+ if (prop === 'then' || prop === Symbol.toStringTag) return undefined;
311
+ return undefined;
312
+ },
313
+ });
314
+ };
315
+ `;
316
+ }
317
+
216
318
  /**
217
319
  * AST-based implementation of applyServerOnlyMocks for large files.
218
320
  * Uses TypeScript parser instead of regex to avoid catastrophic backtracking.
@@ -229,6 +331,10 @@ function applyServerOnlyMocksAst(fileContent: string): string {
229
331
  const replacements: { start: number; end: number; replacement: string }[] =
230
332
  [];
231
333
 
334
+ // Check if this file exports an "env" variable from a node module function call
335
+ // This is a generic pattern for env configuration packages
336
+ const envStoreInfo = detectEnvStoreFromNodeModule(sourceFile);
337
+
232
338
  for (const statement of sourceFile.statements) {
233
339
  if (!ts.isImportDeclaration(statement)) continue;
234
340
 
@@ -236,8 +342,6 @@ function applyServerOnlyMocksAst(fileContent: string): string {
236
342
  if (!ts.isStringLiteral(moduleSpecifier)) continue;
237
343
 
238
344
  const modulePath = moduleSpecifier.text;
239
- const config = findServerOnlyModule(modulePath);
240
- if (!config) continue;
241
345
 
242
346
  // Extract import names
243
347
  const importNames: string[] = [];
@@ -265,6 +369,27 @@ function applyServerOnlyMocksAst(fileContent: string): string {
265
369
  }
266
370
  }
267
371
 
372
+ // Check if this import provides the function used to create the env store
373
+ if (
374
+ envStoreInfo &&
375
+ modulePath === envStoreInfo.modulePath &&
376
+ importNames.includes(envStoreInfo.importedFunctionName)
377
+ ) {
378
+ const mockCode = generateEnvStoreMock(
379
+ envStoreInfo.importedFunctionName,
380
+ );
381
+ replacements.push({
382
+ start: statement.getStart(sourceFile),
383
+ end: statement.getEnd(),
384
+ replacement: mockCode,
385
+ });
386
+ continue;
387
+ }
388
+
389
+ // Check for known server-only modules (from explicit list)
390
+ const config = findServerOnlyModule(modulePath);
391
+ if (!config) continue;
392
+
268
393
  const mockCode = config.getMockCode(importNames, defaultImportName);
269
394
  replacements.push({
270
395
  start: statement.getStart(sourceFile),