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

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 (966) 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 +24 -21
  5. package/analyzer-template/packages/ai/index.ts +21 -5
  6. package/analyzer-template/packages/ai/package.json +3 -3
  7. package/analyzer-template/packages/ai/src/lib/__mocks__/completionCall.ts +122 -0
  8. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +226 -24
  9. package/analyzer-template/packages/ai/src/lib/astScopes/arrayDerivationDetector.ts +199 -0
  10. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +183 -10
  11. package/analyzer-template/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.ts +644 -0
  12. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +181 -23
  13. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
  14. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.ts +18 -0
  15. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +15 -0
  16. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.ts +181 -1
  17. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +1229 -30
  18. package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
  19. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +265 -6
  20. package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +29 -10
  21. package/analyzer-template/packages/ai/src/lib/completionCall.ts +216 -36
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +2116 -356
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +7 -2
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +296 -35
  25. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +120 -76
  26. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +16 -3
  27. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +6 -4
  28. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +54 -3
  29. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +140 -20
  30. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
  31. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +140 -14
  32. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.ts +98 -0
  33. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +179 -0
  34. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.ts +40 -30
  35. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +393 -90
  36. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.ts +129 -0
  37. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.ts +35 -0
  38. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +183 -0
  39. package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
  40. package/analyzer-template/packages/ai/src/lib/e2eDataTracking.ts +334 -0
  41. package/analyzer-template/packages/ai/src/lib/extractCriticalDataKeys.ts +120 -0
  42. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +74 -7
  43. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +86 -142
  44. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +59 -3
  45. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +1421 -88
  46. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +200 -196
  47. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +710 -0
  48. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
  49. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +2484 -0
  50. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +239 -0
  51. package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +5 -5
  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 +10 -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 -142
  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 -89
  63. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
  64. package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +11 -11
  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 +122 -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/getNodeType.ts +1 -0
  76. package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +1 -0
  77. package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
  78. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +19 -0
  79. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +19 -0
  80. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +11 -0
  81. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +8 -0
  82. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +49 -1
  83. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +2 -1
  84. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +466 -270
  85. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +34 -1
  86. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +6 -0
  87. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +3 -0
  88. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +4 -2
  89. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +33 -10
  90. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +31 -15
  91. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +11 -7
  92. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +11 -12
  93. package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +4 -5
  94. package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
  95. package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +14 -12
  96. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1315 -0
  97. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +201 -46
  98. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
  99. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +593 -84
  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 +377 -84
  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 +35 -129
  104. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +2 -3
  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/uploadFileToS3.d.ts.map +1 -1
  125. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +8 -1
  126. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -1
  127. package/analyzer-template/packages/aws/package.json +10 -10
  128. package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +43 -19
  129. package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +3 -3
  130. package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +17 -69
  131. package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +8 -1
  132. package/analyzer-template/packages/database/package.json +1 -1
  133. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  134. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  135. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  136. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  137. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  138. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  139. package/analyzer-template/packages/database/src/lib/kysely/db.ts +14 -1
  140. package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +6 -0
  141. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +17 -1
  142. package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
  143. package/analyzer-template/packages/database/src/lib/loadAnalyses.ts +58 -1
  144. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +13 -0
  145. package/analyzer-template/packages/database/src/lib/loadBranch.ts +16 -1
  146. package/analyzer-template/packages/database/src/lib/loadCommit.ts +11 -0
  147. package/analyzer-template/packages/database/src/lib/loadCommits.ts +28 -0
  148. package/analyzer-template/packages/database/src/lib/loadEntities.ts +26 -3
  149. package/analyzer-template/packages/database/src/lib/loadEntityBranches.ts +12 -0
  150. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +7 -3
  151. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  152. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  153. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  154. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +7 -14
  155. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  156. package/analyzer-template/packages/generate/index.ts +3 -0
  157. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +17 -1
  158. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +193 -0
  159. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
  160. package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
  161. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
  162. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
  163. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
  164. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
  165. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
  166. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
  167. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
  168. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
  169. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
  170. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
  171. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
  172. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
  173. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -0
  174. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  175. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +11 -1
  176. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  177. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +1 -18
  178. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -1
  179. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts +1 -0
  180. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts.map +1 -1
  181. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js +3 -0
  182. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  183. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +17 -1
  184. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -1
  185. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  186. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts +1 -0
  187. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -1
  188. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
  189. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
  190. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  191. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  192. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +2 -6
  193. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  194. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts +2 -0
  195. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts.map +1 -1
  196. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js +45 -2
  197. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js.map +1 -1
  198. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  199. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +8 -0
  200. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  201. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js +11 -1
  202. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js.map +1 -1
  203. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.d.ts.map +1 -1
  204. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js +7 -0
  205. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js.map +1 -1
  206. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts +3 -1
  207. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  208. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +22 -1
  209. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  210. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts +3 -1
  211. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  212. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +23 -4
  213. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  214. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.d.ts.map +1 -1
  215. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js +9 -0
  216. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js.map +1 -1
  217. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  218. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
  219. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  220. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
  221. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
  222. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
  223. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
  224. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
  225. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
  226. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts +2 -2
  227. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  228. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +5 -4
  229. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  230. package/analyzer-template/packages/github/dist/generate/index.d.ts +3 -0
  231. package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -1
  232. package/analyzer-template/packages/github/dist/generate/index.js +3 -0
  233. package/analyzer-template/packages/github/dist/generate/index.js.map +1 -1
  234. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
  235. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  236. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  237. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts +9 -0
  238. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -0
  239. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  240. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  241. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts +20 -0
  242. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts.map +1 -0
  243. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  244. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  245. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts +8 -0
  246. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts.map +1 -0
  247. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js +89 -0
  248. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  249. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -1
  250. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +10 -0
  251. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -1
  252. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -1
  253. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +3 -0
  254. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -1
  255. package/analyzer-template/packages/github/dist/types/index.d.ts +3 -4
  256. package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
  257. package/analyzer-template/packages/github/dist/types/index.js +0 -1
  258. package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
  259. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +71 -27
  260. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
  261. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts +2 -0
  262. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts.map +1 -1
  263. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +2 -0
  264. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -1
  265. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  266. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  267. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +9 -54
  268. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  269. package/analyzer-template/packages/github/dist/types/src/types/Scenario.js +1 -21
  270. package/analyzer-template/packages/github/dist/types/src/types/Scenario.js.map +1 -1
  271. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +153 -5
  272. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  273. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  274. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  275. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +2 -0
  276. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  277. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts +9 -1
  278. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  279. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +29 -3
  280. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -1
  281. package/analyzer-template/packages/github/package.json +1 -1
  282. package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +14 -0
  283. package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +2 -0
  284. package/analyzer-template/packages/process/index.ts +2 -0
  285. package/analyzer-template/packages/process/package.json +12 -0
  286. package/analyzer-template/packages/process/tsconfig.json +8 -0
  287. package/analyzer-template/packages/types/index.ts +3 -6
  288. package/analyzer-template/packages/types/src/types/Analysis.ts +87 -27
  289. package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
  290. package/analyzer-template/packages/types/src/types/Entity.ts +2 -0
  291. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +7 -0
  292. package/analyzer-template/packages/types/src/types/Scenario.ts +9 -77
  293. package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +181 -5
  294. package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
  295. package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
  296. package/analyzer-template/packages/utils/dist/types/index.d.ts +3 -4
  297. package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
  298. package/analyzer-template/packages/utils/dist/types/index.js +0 -1
  299. package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
  300. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +71 -27
  301. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
  302. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts +2 -0
  303. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts.map +1 -1
  304. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +2 -0
  305. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -1
  306. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  307. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  308. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +9 -54
  309. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  310. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js +1 -21
  311. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js.map +1 -1
  312. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +153 -5
  313. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  314. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  315. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  316. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +2 -0
  317. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  318. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  319. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +93 -2
  320. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  321. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +9 -1
  322. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  323. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +29 -3
  324. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -1
  325. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +108 -2
  326. package/analyzer-template/packages/utils/src/lib/safeFileName.ts +48 -3
  327. package/analyzer-template/playwright/capture.ts +57 -26
  328. package/analyzer-template/playwright/captureStatic.ts +1 -1
  329. package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
  330. package/analyzer-template/playwright/waitForServer.ts +21 -6
  331. package/analyzer-template/project/analyzeBaselineCommit.ts +9 -0
  332. package/analyzer-template/project/analyzeBranchCommit.ts +4 -0
  333. package/analyzer-template/project/analyzeFileEntities.ts +4 -0
  334. package/analyzer-template/project/analyzeRegularCommit.ts +9 -0
  335. package/analyzer-template/project/captureLibraryFunctionDirect.ts +29 -26
  336. package/analyzer-template/project/constructMockCode.ts +1229 -179
  337. package/analyzer-template/project/controller/startController.ts +16 -1
  338. package/analyzer-template/project/createEntitiesAndSortFiles.ts +83 -0
  339. package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
  340. package/analyzer-template/project/loadReadyToBeCaptured.ts +65 -41
  341. package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
  342. package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
  343. package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +3 -6
  344. package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +18 -7
  345. package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
  346. package/analyzer-template/project/orchestrateCapture.ts +81 -9
  347. package/analyzer-template/project/reconcileMockDataKeys.ts +220 -78
  348. package/analyzer-template/project/runAnalysis.ts +11 -0
  349. package/analyzer-template/project/serverOnlyModules.ts +127 -2
  350. package/analyzer-template/project/start.ts +51 -15
  351. package/analyzer-template/project/startScenarioCapture.ts +6 -0
  352. package/analyzer-template/project/writeMockDataTsx.ts +345 -32
  353. package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
  354. package/analyzer-template/project/writeScenarioComponents.ts +434 -130
  355. package/analyzer-template/project/writeScenarioFiles.ts +26 -0
  356. package/analyzer-template/project/writeSimpleRoot.ts +28 -42
  357. package/analyzer-template/scripts/comboWorkerLoop.cjs +99 -50
  358. package/analyzer-template/scripts/defaultCmd.sh +9 -0
  359. package/analyzer-template/tsconfig.json +2 -1
  360. package/background/src/lib/local/createLocalAnalyzer.js +2 -30
  361. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  362. package/background/src/lib/local/execAsync.js +1 -1
  363. package/background/src/lib/local/execAsync.js.map +1 -1
  364. package/background/src/lib/virtualized/common/execAsync.js +1 -1
  365. package/background/src/lib/virtualized/common/execAsync.js.map +1 -1
  366. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +7 -1
  367. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
  368. package/background/src/lib/virtualized/project/analyzeBranchCommit.js +2 -1
  369. package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -1
  370. package/background/src/lib/virtualized/project/analyzeFileEntities.js +2 -1
  371. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  372. package/background/src/lib/virtualized/project/analyzeRegularCommit.js +7 -1
  373. package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
  374. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +3 -3
  375. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -1
  376. package/background/src/lib/virtualized/project/constructMockCode.js +1085 -134
  377. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  378. package/background/src/lib/virtualized/project/controller/startController.js +11 -1
  379. package/background/src/lib/virtualized/project/controller/startController.js.map +1 -1
  380. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +73 -1
  381. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -1
  382. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +6 -3
  383. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -1
  384. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +19 -8
  385. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
  386. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +7 -7
  387. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -1
  388. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js +2 -2
  389. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -1
  390. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +3 -2
  391. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
  392. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +7 -5
  393. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
  394. package/background/src/lib/virtualized/project/orchestrateCapture.js +65 -10
  395. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  396. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +188 -47
  397. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  398. package/background/src/lib/virtualized/project/runAnalysis.js +9 -0
  399. package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
  400. package/background/src/lib/virtualized/project/serverOnlyModules.js +106 -3
  401. package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -1
  402. package/background/src/lib/virtualized/project/start.js +47 -15
  403. package/background/src/lib/virtualized/project/start.js.map +1 -1
  404. package/background/src/lib/virtualized/project/startScenarioCapture.js +7 -0
  405. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  406. package/background/src/lib/virtualized/project/writeMockDataTsx.js +301 -27
  407. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  408. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js +15 -0
  409. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js.map +1 -0
  410. package/background/src/lib/virtualized/project/writeScenarioComponents.js +334 -107
  411. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  412. package/background/src/lib/virtualized/project/writeScenarioFiles.js +19 -0
  413. package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -1
  414. package/background/src/lib/virtualized/project/writeSimpleRoot.js +28 -41
  415. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  416. package/codeyam-cli/scripts/apply-setup.js +180 -0
  417. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  418. package/codeyam-cli/src/cli.js +35 -17
  419. package/codeyam-cli/src/cli.js.map +1 -1
  420. package/codeyam-cli/src/codeyam-cli.js +18 -2
  421. package/codeyam-cli/src/codeyam-cli.js.map +1 -1
  422. package/codeyam-cli/src/commands/analyze.js +5 -3
  423. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  424. package/codeyam-cli/src/commands/baseline.js +176 -0
  425. package/codeyam-cli/src/commands/baseline.js.map +1 -0
  426. package/codeyam-cli/src/commands/debug.js +37 -23
  427. package/codeyam-cli/src/commands/debug.js.map +1 -1
  428. package/codeyam-cli/src/commands/default.js +30 -34
  429. package/codeyam-cli/src/commands/default.js.map +1 -1
  430. package/codeyam-cli/src/commands/detect-universal-mocks.js +2 -0
  431. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +1 -1
  432. package/codeyam-cli/src/commands/init.js +49 -257
  433. package/codeyam-cli/src/commands/init.js.map +1 -1
  434. package/codeyam-cli/src/commands/memory.js +307 -0
  435. package/codeyam-cli/src/commands/memory.js.map +1 -0
  436. package/codeyam-cli/src/commands/recapture.js +31 -18
  437. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  438. package/codeyam-cli/src/commands/report.js +46 -1
  439. package/codeyam-cli/src/commands/report.js.map +1 -1
  440. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  441. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  442. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  443. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  444. package/codeyam-cli/src/commands/start.js +8 -12
  445. package/codeyam-cli/src/commands/start.js.map +1 -1
  446. package/codeyam-cli/src/commands/status.js +23 -1
  447. package/codeyam-cli/src/commands/status.js.map +1 -1
  448. package/codeyam-cli/src/commands/test-startup.js +3 -1
  449. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  450. package/codeyam-cli/src/commands/verify.js +14 -2
  451. package/codeyam-cli/src/commands/verify.js.map +1 -1
  452. package/codeyam-cli/src/commands/wipe.js +108 -0
  453. package/codeyam-cli/src/commands/wipe.js.map +1 -0
  454. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +179 -0
  455. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
  456. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
  457. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
  458. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +128 -82
  459. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  460. package/codeyam-cli/src/utils/analysisRunner.js +29 -15
  461. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  462. package/codeyam-cli/src/utils/analyzer.js +7 -0
  463. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  464. package/codeyam-cli/src/utils/backgroundServer.js +102 -21
  465. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  466. package/codeyam-cli/src/utils/database.js +91 -5
  467. package/codeyam-cli/src/utils/database.js.map +1 -1
  468. package/codeyam-cli/src/utils/generateReport.js +4 -3
  469. package/codeyam-cli/src/utils/generateReport.js.map +1 -1
  470. package/codeyam-cli/src/utils/git.js +79 -0
  471. package/codeyam-cli/src/utils/git.js.map +1 -0
  472. package/codeyam-cli/src/utils/install-skills.js +76 -37
  473. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  474. package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
  475. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
  476. package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
  477. package/codeyam-cli/src/utils/npmVersionCheck.js.map +1 -0
  478. package/codeyam-cli/src/utils/progress.js +7 -0
  479. package/codeyam-cli/src/utils/progress.js.map +1 -1
  480. package/codeyam-cli/src/utils/queue/job.js +109 -0
  481. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  482. package/codeyam-cli/src/utils/queue/manager.js +6 -0
  483. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  484. package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
  485. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  486. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  487. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
  488. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
  489. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +230 -0
  490. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
  491. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
  492. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
  493. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
  494. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
  495. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
  496. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
  497. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
  498. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
  499. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +74 -0
  500. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
  501. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +376 -0
  502. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
  503. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +116 -0
  504. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
  505. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
  506. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
  507. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
  508. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
  509. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
  510. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
  511. package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
  512. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
  513. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
  514. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
  515. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
  516. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
  517. package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
  518. package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
  519. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
  520. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
  521. package/codeyam-cli/src/utils/rules/index.js +6 -0
  522. package/codeyam-cli/src/utils/rules/index.js.map +1 -0
  523. package/codeyam-cli/src/utils/rules/parser.js +83 -0
  524. package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
  525. package/codeyam-cli/src/utils/rules/pathMatcher.js +18 -0
  526. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
  527. package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
  528. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
  529. package/codeyam-cli/src/utils/rules/staleness.js +137 -0
  530. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
  531. package/codeyam-cli/src/utils/serverState.js +37 -10
  532. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  533. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +21 -42
  534. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  535. package/codeyam-cli/src/utils/simulationGateMiddleware.js +138 -0
  536. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -0
  537. package/codeyam-cli/src/utils/syncMocksMiddleware.js +5 -24
  538. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  539. package/codeyam-cli/src/utils/versionInfo.js +46 -15
  540. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  541. package/codeyam-cli/src/utils/wipe.js +128 -0
  542. package/codeyam-cli/src/utils/wipe.js.map +1 -0
  543. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js +66 -0
  544. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
  545. package/codeyam-cli/src/webserver/app/lib/database.js +88 -23
  546. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  547. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  548. package/codeyam-cli/src/webserver/backgroundServer.js +50 -0
  549. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  550. package/codeyam-cli/src/webserver/bootstrap.js +51 -0
  551. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
  552. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-jNYXRRNI.js +1 -0
  553. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-bwuHPyTa.js +11 -0
  554. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-CzGX-miz.js → EntityTypeBadge-CvzqMxcu.js} +1 -1
  555. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BH0XDim7.js +41 -0
  556. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-EhOseatT.js +34 -0
  557. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-yjIHlOGa.js +25 -0
  558. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-CBQPrpT0.js → LibraryFunctionPreview-Cq5o8jL4.js} +1 -1
  559. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-D1CdlbrV.js → LoadingDots-BvMu2i-g.js} +1 -1
  560. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-wDPcZNKx.js → LogViewer-kgBTLoJD.js} +1 -1
  561. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-BzPgx-xO.js +11 -0
  562. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-BfmDgXxG.js → SafeScreenshot-CwZrv-Ok.js} +1 -1
  563. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-BX2Ny2Qj.js +10 -0
  564. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-6J7zDUD5.js → TruncatedFilePath-CDpEprKa.js} +1 -1
  565. package/codeyam-cli/src/webserver/build/client/assets/_index-BRx8ZGZo.js +11 -0
  566. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-4S4yPfFw.js +27 -0
  567. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-DHKuQSmR.js +17 -0
  568. package/codeyam-cli/src/webserver/build/client/assets/api.memory-profile-l0sNRNKZ.js +1 -0
  569. package/codeyam-cli/src/webserver/build/client/assets/api.restart-server-l0sNRNKZ.js +1 -0
  570. package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
  571. package/codeyam-cli/src/webserver/build/client/assets/book-open-D4IPYH_y.js +6 -0
  572. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-BYimnrHg.js → chevron-down-CG65viiV.js} +1 -1
  573. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-DB3aFuEO.js +51 -0
  574. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-CaVsIRxt.js → circle-check-igfMr5DY.js} +1 -1
  575. package/codeyam-cli/src/webserver/build/client/assets/copy-Coc4o_8c.js +11 -0
  576. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-CgUsG7ib.js → createLucideIcon-D1zB-pYc.js} +1 -1
  577. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-C1gnJVOL.svg → cy-logo-cli-CCKUIm0S.svg} +2 -2
  578. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +1 -0
  579. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-JTAjQ54M.js +1 -0
  580. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-zUEpfPsu.js → entity._sha._-B0h9AqE6.js} +12 -12
  581. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DjLxr2JB.js +6 -0
  582. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-CtYowLOt.js +6 -0
  583. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CfLCUi9S.js → entity._sha_.edit._scenarioId-PePWg17F.js} +1 -1
  584. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-DKJyZfAY.js → entry.client-I-Wo99C_.js} +6 -6
  585. package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
  586. package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DAtOlaWE.js → fileTableUtils-9sMMAiWJ.js} +1 -1
  587. package/codeyam-cli/src/webserver/build/client/assets/files-Co65J0s3.js +1 -0
  588. package/codeyam-cli/src/webserver/build/client/assets/{git-D62Lxxmv.js → git-BdHOxVfg.js} +8 -8
  589. package/codeyam-cli/src/webserver/build/client/assets/globals-BSZfYCkU.css +1 -0
  590. package/codeyam-cli/src/webserver/build/client/assets/{index-CzNNiTkw.js → index-CUM5iXwc.js} +1 -1
  591. package/codeyam-cli/src/webserver/build/client/assets/{index-BosqDOlH.js → index-_417gcQW.js} +1 -1
  592. package/codeyam-cli/src/webserver/build/client/assets/labs-BK0C1H1T.js +1 -0
  593. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-CNp9QFCX.js → loader-circle-TzRHMVog.js} +1 -1
  594. package/codeyam-cli/src/webserver/build/client/assets/manifest-040dab1c.js +1 -0
  595. package/codeyam-cli/src/webserver/build/client/assets/memory-UIDVz141.js +92 -0
  596. package/codeyam-cli/src/webserver/build/client/assets/pause-hjzB7t2z.js +11 -0
  597. package/codeyam-cli/src/webserver/build/client/assets/root-D1WadSdf.js +62 -0
  598. package/codeyam-cli/src/webserver/build/client/assets/{search-DDGjYAMJ.js → search-DcAwD_Ln.js} +1 -1
  599. package/codeyam-cli/src/webserver/build/client/assets/settings-CclxrcPK.js +1 -0
  600. package/codeyam-cli/src/webserver/build/client/assets/simulations-DVNJVQgD.js +1 -0
  601. package/codeyam-cli/src/webserver/build/client/assets/terminal-DbEAHMbA.js +11 -0
  602. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-CBc5dE1s.js → triangle-alert-CAD5b1o_.js} +1 -1
  603. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BqgrAzs3.js +1 -0
  604. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-BqPPNjAl.js → useLastLogLine-DAFqfEDH.js} +1 -1
  605. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DZlYx2c4.js +1 -0
  606. package/codeyam-cli/src/webserver/build/client/assets/{useToast-DWHcCcl1.js → useToast-ihdMtlf6.js} +1 -1
  607. package/codeyam-cli/src/webserver/build/server/assets/index-B3dE0r28.js +1 -0
  608. package/codeyam-cli/src/webserver/build/server/assets/server-build-DYbfdxa3.js +273 -0
  609. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  610. package/codeyam-cli/src/webserver/build-info.json +5 -5
  611. package/codeyam-cli/src/webserver/server.js +35 -25
  612. package/codeyam-cli/src/webserver/server.js.map +1 -1
  613. package/codeyam-cli/templates/{codeyam-debug-skill.md → codeyam-debug.md} +48 -4
  614. package/codeyam-cli/templates/codeyam-diagnose.md +481 -0
  615. package/codeyam-cli/templates/codeyam-memory-hook.sh +199 -0
  616. package/codeyam-cli/templates/codeyam-memory.md +396 -0
  617. package/codeyam-cli/templates/codeyam-new-rule.md +13 -0
  618. package/codeyam-cli/templates/{codeyam-setup-skill.md → codeyam-setup.md} +151 -4
  619. package/codeyam-cli/templates/{codeyam-sim-skill.md → codeyam-sim.md} +1 -1
  620. package/codeyam-cli/templates/{codeyam-test-skill.md → codeyam-test.md} +1 -1
  621. package/codeyam-cli/templates/{codeyam-verify-skill.md → codeyam-verify.md} +1 -1
  622. package/codeyam-cli/templates/rule-notification-hook.py +56 -0
  623. package/codeyam-cli/templates/rule-reflection-hook.py +627 -0
  624. package/codeyam-cli/templates/rules-instructions.md +132 -0
  625. package/package.json +20 -17
  626. package/packages/ai/index.js +8 -6
  627. package/packages/ai/index.js.map +1 -1
  628. package/packages/ai/src/lib/analyzeScope.js +179 -13
  629. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  630. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js +150 -0
  631. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js.map +1 -0
  632. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +138 -9
  633. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  634. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
  635. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
  636. package/packages/ai/src/lib/astScopes/methodSemantics.js +138 -23
  637. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  638. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
  639. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
  640. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +8 -0
  641. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -1
  642. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +7 -0
  643. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
  644. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +138 -1
  645. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
  646. package/packages/ai/src/lib/astScopes/processExpression.js +944 -30
  647. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  648. package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
  649. package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
  650. package/packages/ai/src/lib/checkAllAttributes.js +24 -9
  651. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  652. package/packages/ai/src/lib/completionCall.js +178 -31
  653. package/packages/ai/src/lib/completionCall.js.map +1 -1
  654. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1672 -206
  655. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  656. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +7 -2
  657. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  658. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +230 -23
  659. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -1
  660. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +77 -55
  661. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  662. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +13 -3
  663. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -1
  664. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +6 -4
  665. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -1
  666. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +52 -3
  667. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  668. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +122 -14
  669. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  670. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
  671. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
  672. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +122 -12
  673. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  674. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js +86 -0
  675. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js.map +1 -0
  676. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
  677. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
  678. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
  679. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
  680. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +333 -81
  681. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  682. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js +107 -0
  683. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js.map +1 -0
  684. package/packages/ai/src/lib/dataStructureChunking.js +130 -0
  685. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -0
  686. package/packages/ai/src/lib/deepEqual.js +32 -0
  687. package/packages/ai/src/lib/deepEqual.js.map +1 -0
  688. package/packages/ai/src/lib/e2eDataTracking.js +241 -0
  689. package/packages/ai/src/lib/e2eDataTracking.js.map +1 -0
  690. package/packages/ai/src/lib/extractCriticalDataKeys.js +96 -0
  691. package/packages/ai/src/lib/extractCriticalDataKeys.js.map +1 -0
  692. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +62 -5
  693. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  694. package/packages/ai/src/lib/generateChangesEntityScenarios.js +78 -120
  695. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  696. package/packages/ai/src/lib/generateEntityDataStructure.js +47 -2
  697. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  698. package/packages/ai/src/lib/generateEntityScenarioData.js +1130 -83
  699. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  700. package/packages/ai/src/lib/generateEntityScenarios.js +177 -163
  701. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  702. package/packages/ai/src/lib/generateExecutionFlows.js +495 -0
  703. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
  704. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
  705. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
  706. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +1807 -0
  707. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
  708. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
  709. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js.map +1 -0
  710. package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -2
  711. package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
  712. package/packages/ai/src/lib/isolateScopes.js +270 -7
  713. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  714. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
  715. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
  716. package/packages/ai/src/lib/mergeStatements.js +88 -46
  717. package/packages/ai/src/lib/mergeStatements.js.map +1 -1
  718. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
  719. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
  720. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +10 -4
  721. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  722. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +1 -1
  723. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  724. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +21 -100
  725. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  726. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js +54 -0
  727. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js.map +1 -0
  728. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +83 -6
  729. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  730. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +10 -70
  731. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  732. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
  733. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
  734. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +9 -9
  735. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
  736. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js +335 -0
  737. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js.map +1 -0
  738. package/packages/ai/src/lib/resolvePathToControllable.js +677 -0
  739. package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
  740. package/packages/ai/src/lib/splitOutsideParentheses.js +3 -1
  741. package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -1
  742. package/packages/ai/src/lib/worker/SerializableDataStructure.js +29 -0
  743. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  744. package/packages/ai/src/lib/worker/analyzeScopeWorker.js +94 -1
  745. package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
  746. package/packages/analyze/index.js +1 -0
  747. package/packages/analyze/index.js.map +1 -1
  748. package/packages/analyze/src/lib/FileAnalyzer.js +75 -36
  749. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  750. package/packages/analyze/src/lib/ProjectAnalyzer.js +96 -26
  751. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  752. package/packages/analyze/src/lib/analysisContext.js +30 -5
  753. package/packages/analyze/src/lib/analysisContext.js.map +1 -1
  754. package/packages/analyze/src/lib/asts/nodes/getNodeType.js +1 -0
  755. package/packages/analyze/src/lib/asts/nodes/getNodeType.js.map +1 -1
  756. package/packages/analyze/src/lib/asts/nodes/index.js +1 -0
  757. package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
  758. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
  759. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
  760. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +14 -0
  761. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -1
  762. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +14 -0
  763. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -1
  764. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +6 -0
  765. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
  766. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +6 -0
  767. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -1
  768. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +39 -1
  769. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -1
  770. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +2 -1
  771. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -1
  772. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +211 -54
  773. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  774. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +24 -1
  775. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  776. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +5 -0
  777. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  778. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +2 -0
  779. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  780. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +2 -1
  781. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  782. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +31 -10
  783. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  784. package/packages/analyze/src/lib/files/analyzeChange.js +21 -11
  785. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  786. package/packages/analyze/src/lib/files/analyzeEntity.js +9 -8
  787. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  788. package/packages/analyze/src/lib/files/analyzeInitial.js +9 -10
  789. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  790. package/packages/analyze/src/lib/files/analyzeRemixRoute.js +3 -2
  791. package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
  792. package/packages/analyze/src/lib/files/enums/steps.js +1 -1
  793. package/packages/analyze/src/lib/files/enums/steps.js.map +1 -1
  794. package/packages/analyze/src/lib/files/getImportedExports.js +11 -7
  795. package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
  796. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +880 -0
  797. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
  798. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +170 -40
  799. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
  800. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
  801. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
  802. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +480 -71
  803. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  804. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +29 -34
  805. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
  806. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +268 -66
  807. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  808. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +144 -0
  809. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
  810. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +27 -98
  811. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  812. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +2 -3
  813. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  814. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +801 -118
  815. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  816. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +46 -9
  817. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -1
  818. package/packages/analyze/src/lib/files/setImportedExports.js +2 -1
  819. package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -1
  820. package/packages/analyze/src/lib/index.js +1 -0
  821. package/packages/analyze/src/lib/index.js.map +1 -1
  822. package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
  823. package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
  824. package/packages/aws/src/lib/ecs/ecsDefineContainer.js +2 -2
  825. package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  826. package/packages/aws/src/lib/ecs/ecsTaskFactory.js +17 -61
  827. package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  828. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  829. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  830. package/packages/database/src/lib/analysisToDb.js +1 -1
  831. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  832. package/packages/database/src/lib/branchToDb.js +1 -1
  833. package/packages/database/src/lib/branchToDb.js.map +1 -1
  834. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  835. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  836. package/packages/database/src/lib/commitToDb.js +1 -1
  837. package/packages/database/src/lib/commitToDb.js.map +1 -1
  838. package/packages/database/src/lib/fileToDb.js +1 -1
  839. package/packages/database/src/lib/fileToDb.js.map +1 -1
  840. package/packages/database/src/lib/kysely/db.js +11 -1
  841. package/packages/database/src/lib/kysely/db.js.map +1 -1
  842. package/packages/database/src/lib/kysely/tables/commitsTable.js +3 -0
  843. package/packages/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  844. package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  845. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  846. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  847. package/packages/database/src/lib/loadAnalyses.js +45 -2
  848. package/packages/database/src/lib/loadAnalyses.js.map +1 -1
  849. package/packages/database/src/lib/loadAnalysis.js +8 -0
  850. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  851. package/packages/database/src/lib/loadBranch.js +11 -1
  852. package/packages/database/src/lib/loadBranch.js.map +1 -1
  853. package/packages/database/src/lib/loadCommit.js +7 -0
  854. package/packages/database/src/lib/loadCommit.js.map +1 -1
  855. package/packages/database/src/lib/loadCommits.js +22 -1
  856. package/packages/database/src/lib/loadCommits.js.map +1 -1
  857. package/packages/database/src/lib/loadEntities.js +23 -4
  858. package/packages/database/src/lib/loadEntities.js.map +1 -1
  859. package/packages/database/src/lib/loadEntityBranches.js +9 -0
  860. package/packages/database/src/lib/loadEntityBranches.js.map +1 -1
  861. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
  862. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  863. package/packages/database/src/lib/projectToDb.js +1 -1
  864. package/packages/database/src/lib/projectToDb.js.map +1 -1
  865. package/packages/database/src/lib/saveFiles.js +1 -1
  866. package/packages/database/src/lib/saveFiles.js.map +1 -1
  867. package/packages/database/src/lib/scenarioToDb.js +1 -1
  868. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  869. package/packages/database/src/lib/updateCommitMetadata.js +5 -4
  870. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  871. package/packages/generate/index.js +3 -0
  872. package/packages/generate/index.js.map +1 -1
  873. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  874. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  875. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  876. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  877. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  878. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  879. package/packages/generate/src/lib/scenarioComponentForServer.js +89 -0
  880. package/packages/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  881. package/packages/github/src/lib/loadOrCreateCommit.js +10 -0
  882. package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -1
  883. package/packages/github/src/lib/syncPrimaryBranch.js +3 -0
  884. package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -1
  885. package/packages/process/index.js +3 -0
  886. package/packages/process/index.js.map +1 -0
  887. package/packages/process/src/GlobalProcessManager.js.map +1 -0
  888. package/{background/src/lib/process → packages/process/src}/ProcessManager.js +1 -1
  889. package/packages/process/src/ProcessManager.js.map +1 -0
  890. package/packages/process/src/index.js.map +1 -0
  891. package/packages/process/src/managedExecAsync.js.map +1 -0
  892. package/packages/types/index.js +0 -1
  893. package/packages/types/index.js.map +1 -1
  894. package/packages/types/src/types/Scenario.js +1 -21
  895. package/packages/types/src/types/Scenario.js.map +1 -1
  896. package/packages/utils/src/lib/fs/rsyncCopy.js +93 -2
  897. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  898. package/packages/utils/src/lib/safeFileName.js +29 -3
  899. package/packages/utils/src/lib/safeFileName.js.map +1 -1
  900. package/scripts/finalize-analyzer.cjs +8 -76
  901. package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +0 -102
  902. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +0 -409
  903. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +0 -288
  904. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +0 -495
  905. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +0 -67
  906. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +0 -120
  907. package/analyzer-template/process/INTEGRATION_COMPLETE.md +0 -333
  908. package/analyzer-template/process/INTEGRATION_EXAMPLE.md +0 -525
  909. package/analyzer-template/process/README.md +0 -507
  910. package/background/src/lib/process/GlobalProcessManager.js.map +0 -1
  911. package/background/src/lib/process/ProcessManager.js.map +0 -1
  912. package/background/src/lib/process/index.js.map +0 -1
  913. package/background/src/lib/process/managedExecAsync.js.map +0 -1
  914. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +0 -238
  915. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +0 -1
  916. package/codeyam-cli/scripts/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js +0 -7
  917. package/codeyam-cli/scripts/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js.map +0 -1
  918. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-wXL1Z2Aq.js +0 -1
  919. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-CXFKsCOD.js +0 -41
  920. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-D-9pXIaY.js +0 -25
  921. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-4lcOlid-.js +0 -11
  922. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-CUxUNEEC.js +0 -15
  923. package/codeyam-cli/src/webserver/build/client/assets/_index-DHImXdXq.js +0 -11
  924. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-2mG6mjVb.js +0 -32
  925. package/codeyam-cli/src/webserver/build/client/assets/chunk-JMJ3UQ3L-BambyYE_.js +0 -51
  926. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-CKnwPCDr.js +0 -1
  927. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DW_hdGUc.js +0 -1
  928. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DyB90fWk.js +0 -1
  929. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-D_3ero5o.js +0 -1
  930. package/codeyam-cli/src/webserver/build/client/assets/files-ClR0d32A.js +0 -1
  931. package/codeyam-cli/src/webserver/build/client/assets/globals-C6vQASxy.css +0 -1
  932. package/codeyam-cli/src/webserver/build/client/assets/keyAttributeCoverage-CTlFMihX.js +0 -1
  933. package/codeyam-cli/src/webserver/build/client/assets/manifest-09d684be.js +0 -1
  934. package/codeyam-cli/src/webserver/build/client/assets/root-BxJUvKau.js +0 -56
  935. package/codeyam-cli/src/webserver/build/client/assets/settings-DgTyB-Wg.js +0 -1
  936. package/codeyam-cli/src/webserver/build/client/assets/simulations-CoNWGt0K.js +0 -1
  937. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BMIGFP-m.js +0 -1
  938. package/codeyam-cli/src/webserver/build/client/assets/useInteractiveMode-Dk_FQqWJ.js +0 -1
  939. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DsJbgMY9.js +0 -1
  940. package/codeyam-cli/src/webserver/build/server/assets/index-CV6i1S1A.js +0 -1
  941. package/codeyam-cli/src/webserver/build/server/assets/server-build-BDlyhfrv.js +0 -175
  942. package/codeyam-cli/templates/debug-codeyam.md +0 -620
  943. package/packages/ai/src/lib/findMatchingAttribute.js +0 -77
  944. package/packages/ai/src/lib/findMatchingAttribute.js.map +0 -1
  945. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +0 -298
  946. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +0 -1
  947. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +0 -226
  948. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +0 -1
  949. package/packages/ai/src/lib/generateEntityKeyAttributes.js +0 -408
  950. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +0 -1
  951. package/packages/ai/src/lib/isFrontend.js +0 -5
  952. package/packages/ai/src/lib/isFrontend.js.map +0 -1
  953. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +0 -40
  954. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +0 -1
  955. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +0 -77
  956. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +0 -1
  957. /package/analyzer-template/{process → packages/process/src}/GlobalProcessManager.ts +0 -0
  958. /package/analyzer-template/{process → packages/process/src}/ProcessManager.ts +0 -0
  959. /package/analyzer-template/{process → packages/process/src}/index.ts +0 -0
  960. /package/analyzer-template/{process → packages/process/src}/managedExecAsync.ts +0 -0
  961. /package/codeyam-cli/src/webserver/build/client/assets/{api.link-scenario-value-l0sNRNKZ.js → api.agent-transcripts-l0sNRNKZ.js} +0 -0
  962. /package/codeyam-cli/src/webserver/build/client/assets/{api.update-key-attributes-l0sNRNKZ.js → api.health-l0sNRNKZ.js} +0 -0
  963. /package/codeyam-cli/src/webserver/build/client/assets/{api.update-valid-values-l0sNRNKZ.js → api.labs-unlock-l0sNRNKZ.js} +0 -0
  964. /package/{background/src/lib/process → packages/process/src}/GlobalProcessManager.js +0 -0
  965. /package/{background/src/lib/process → packages/process/src}/index.js +0 -0
  966. /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,51 +5,49 @@
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 also handles canonical key format (EntityName::hookName::index)
9
- * and remaps old variable-based keys (variableName <- functionName) to canonical keys.
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.
10
12
  *
11
13
  * @param mockData The mock data object to reconcile
12
14
  * @param expectedKeys The expected keys from the structure
13
- * @param entityName Optional entity name for canonical key remapping
14
15
  */
15
16
  export function reconcileMockDataKeys(
16
17
  mockData: Record<string, unknown>,
17
18
  expectedKeys: string[],
18
- entityName?: string,
19
19
  ): Record<string, unknown> {
20
20
  const result: Record<string, unknown> = {};
21
- // Track which canonical keys have been used for multiple calls to same hook
22
- const usedCanonicalKeys = new Set<string>();
23
21
 
24
22
  for (const [key, value] of Object.entries(mockData)) {
25
23
  // Recursively reconcile nested objects
26
24
  const reconciledValue =
27
25
  value && typeof value === 'object' && !Array.isArray(value)
28
- ? reconcileMockDataKeys(
29
- value as Record<string, unknown>,
30
- expectedKeys,
31
- entityName,
32
- )
26
+ ? reconcileMockDataKeys(value as Record<string, unknown>, expectedKeys)
33
27
  : value;
34
28
 
35
29
  // Check if key matches an expected key exactly
36
30
  if (expectedKeys.includes(key)) {
37
31
  result[key] = reconciledValue;
38
- usedCanonicalKeys.add(key);
39
32
  continue;
40
33
  }
41
34
 
42
- // Try to remap variable-based key to canonical key
43
- if (entityName) {
44
- const canonicalKey = remapToCanonicalKey(
45
- key,
46
- expectedKeys,
47
- entityName,
48
- usedCanonicalKeys,
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),
49
42
  );
50
- if (canonicalKey) {
51
- result[canonicalKey] = reconciledValue;
52
- usedCanonicalKeys.add(canonicalKey);
43
+ if (partsMatchExpected) {
44
+ // Convert flat key to nested structure and merge
45
+ deepMergeIntoResult(
46
+ result,
47
+ flatKeyParts,
48
+ reconciledValue,
49
+ expectedKeys,
50
+ );
53
51
  continue;
54
52
  }
55
53
  }
@@ -68,76 +66,91 @@ export function reconcileMockDataKeys(
68
66
  }
69
67
 
70
68
  /**
71
- * Attempt to remap a variable-based key to a canonical key.
72
- *
73
- * Variable-based format: "variableName <- functionName"
74
- * Canonical format: "EntityName::hookName::index"
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.
75
72
  *
76
- * @example
77
- * remapToCanonicalKey("currentCommit <- useLoaderData", ["DashboardPage::useLoaderData::0"], "DashboardPage", new Set())
78
- * // returns "DashboardPage::useLoaderData::0"
73
+ * Returns null if the key doesn't look like a dotted path.
79
74
  */
80
- function remapToCanonicalKey(
81
- key: string,
82
- expectedCanonicalKeys: string[],
83
- entityName: string,
84
- usedKeys: Set<string>,
85
- ): string | null {
86
- // Check if key is in variable-based format: "varName <- functionName"
87
- const arrowMatch = key.match(/<-\s*(\w+)/);
88
- if (!arrowMatch) {
89
- // Not a variable-based key, try other patterns
90
- // Check if it's a simple function call like "useLoaderData()"
91
- const funcCallMatch = key.match(/^(\w+)\(\)/);
92
- if (funcCallMatch) {
93
- const hookName = funcCallMatch[1];
94
- return findMatchingCanonicalKey(
95
- hookName,
96
- entityName,
97
- expectedCanonicalKeys,
98
- usedKeys,
99
- );
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;
100
84
  }
85
+ }
86
+
87
+ // Must contain a dot to be a dotted path
88
+ if (!key.includes('.')) {
101
89
  return null;
102
90
  }
103
91
 
104
- const hookName = arrowMatch[1];
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];
105
98
 
106
- return findMatchingCanonicalKey(
107
- hookName,
108
- entityName,
109
- expectedCanonicalKeys,
110
- usedKeys,
111
- );
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;
112
121
  }
113
122
 
114
123
  /**
115
- * Find a matching canonical key for a hook name within an entity.
124
+ * Deep merge a value into the result object following the path segments.
125
+ * Reconciles the leaf key against expected keys.
116
126
  */
117
- function findMatchingCanonicalKey(
118
- hookName: string,
119
- entityName: string,
120
- expectedCanonicalKeys: string[],
121
- usedKeys: Set<string>,
122
- ): string | null {
123
- // Find all canonical keys for this entity and hook
124
- const candidatePrefix = `${entityName}::${hookName}::`;
125
- const candidates = expectedCanonicalKeys.filter(
126
- (k) => k.startsWith(candidatePrefix) && !usedKeys.has(k),
127
- );
127
+ function deepMergeIntoResult(
128
+ result: Record<string, unknown>,
129
+ parts: string[],
130
+ value: unknown,
131
+ expectedKeys: string[],
132
+ ): void {
133
+ let current = result;
128
134
 
129
- if (candidates.length === 0) {
130
- return null;
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
+ }
131
148
  }
132
149
 
133
- // Sort by index to prefer lower indices
134
- candidates.sort((a, b) => {
135
- const aIndex = parseInt(a.split('::')[2], 10);
136
- const bIndex = parseInt(b.split('::')[2], 10);
137
- return aIndex - bIndex;
138
- });
139
-
140
- return candidates[0];
150
+ // Handle the leaf key
151
+ const leafKey = parts[parts.length - 1];
152
+ const closestLeafKey = findClosestKey(leafKey, expectedKeys) || leafKey;
153
+ current[closestLeafKey] = value;
141
154
  }
142
155
 
143
156
  /**
@@ -148,9 +161,15 @@ function findMatchingCanonicalKey(
148
161
  * - Ignore the last argument value (could be literal or variable)
149
162
  * - Match based on the common prefix
150
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
151
167
  *
152
168
  * e.g., "eq('user_id', 'user-12345')" matches "eq('user_id', user.id)"
153
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)"
154
173
  */
155
174
  function findClosestKey(key: string, expectedKeys: string[]): string | null {
156
175
  const keyBase = extractKeyBase(key);
@@ -174,9 +193,132 @@ function findClosestKey(key: string, expectedKeys: string[]): string | null {
174
193
  }
175
194
  }
176
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
+
177
312
  return null;
178
313
  }
179
314
 
315
+ /**
316
+ * Escape special regex characters in a string.
317
+ */
318
+ function escapeRegExp(str: string): string {
319
+ return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
320
+ }
321
+
180
322
  /**
181
323
  * Normalize quotes in a string: convert double quotes to single quotes.
182
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', {