@codeyam/codeyam-cli 0.1.0-staging.76566f9 → 0.1.0-staging.7baa6db

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 (951) hide show
  1. package/analyzer-template/.build-info.json +8 -8
  2. package/analyzer-template/common/execAsync.ts +1 -1
  3. package/analyzer-template/log.txt +3 -3
  4. package/analyzer-template/package.json +15 -12
  5. package/analyzer-template/packages/ai/index.ts +21 -5
  6. package/analyzer-template/packages/ai/package.json +3 -3
  7. package/analyzer-template/packages/ai/src/lib/__mocks__/completionCall.ts +122 -0
  8. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +226 -24
  9. package/analyzer-template/packages/ai/src/lib/astScopes/arrayDerivationDetector.ts +199 -0
  10. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +183 -10
  11. package/analyzer-template/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.ts +644 -0
  12. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +181 -23
  13. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
  14. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.ts +18 -0
  15. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +15 -0
  16. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.ts +181 -1
  17. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +1229 -30
  18. package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
  19. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +265 -6
  20. package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +29 -10
  21. package/analyzer-template/packages/ai/src/lib/completionCall.ts +216 -36
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +1750 -318
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +5 -1
  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 +10 -2
  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 +129 -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/convertTypeAnnotationsToValues.ts +179 -0
  33. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.ts +40 -30
  34. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +393 -90
  35. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.ts +129 -0
  36. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +183 -0
  37. package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
  38. package/analyzer-template/packages/ai/src/lib/e2eDataTracking.ts +334 -0
  39. package/analyzer-template/packages/ai/src/lib/extractCriticalDataKeys.ts +120 -0
  40. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +33 -7
  41. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +86 -142
  42. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +59 -3
  43. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +1385 -67
  44. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +200 -196
  45. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +710 -0
  46. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
  47. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +2484 -0
  48. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +239 -0
  49. package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +5 -5
  50. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +328 -7
  51. package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
  52. package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +111 -87
  53. package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
  54. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +10 -7
  55. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +1 -1
  56. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +32 -142
  57. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChunkPrompt.ts +82 -0
  58. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateCriticalKeysPrompt.ts +103 -0
  59. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +110 -6
  60. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +14 -89
  61. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
  62. package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +11 -11
  63. package/analyzer-template/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.ts +391 -0
  64. package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +824 -0
  65. package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +5 -1
  66. package/analyzer-template/packages/ai/src/lib/validateExecutionFlowPaths.ts +531 -0
  67. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +122 -3
  68. package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +114 -2
  69. package/analyzer-template/packages/analyze/index.ts +2 -0
  70. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +79 -59
  71. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +113 -26
  72. package/analyzer-template/packages/analyze/src/lib/analysisContext.ts +44 -4
  73. package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +1 -0
  74. package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
  75. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +19 -0
  76. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +19 -0
  77. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +11 -0
  78. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +8 -0
  79. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +49 -1
  80. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +2 -1
  81. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +467 -283
  82. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +34 -1
  83. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +6 -0
  84. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +3 -0
  85. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +4 -2
  86. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +33 -10
  87. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +31 -15
  88. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +11 -7
  89. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +11 -12
  90. package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +4 -5
  91. package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
  92. package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +14 -12
  93. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1315 -0
  94. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +201 -46
  95. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
  96. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +304 -66
  97. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +28 -62
  98. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +306 -20
  99. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +264 -0
  100. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +1 -0
  101. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +2 -3
  102. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +825 -71
  103. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +56 -11
  104. package/analyzer-template/packages/analyze/src/lib/files/scenarios/propagateArrayItemSchemas.ts +474 -0
  105. package/analyzer-template/packages/analyze/src/lib/files/setImportedExports.ts +2 -1
  106. package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
  107. package/analyzer-template/packages/analyze/src/lib/utils/getFileByPath.ts +19 -0
  108. package/analyzer-template/packages/aws/codebuild/index.ts +1 -0
  109. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +11 -1
  110. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -1
  111. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +29 -18
  112. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -1
  113. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +2 -2
  114. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -1
  115. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +2 -2
  116. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  117. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +8 -18
  118. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -1
  119. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +17 -61
  120. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  121. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -1
  122. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +8 -1
  123. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -1
  124. package/analyzer-template/packages/aws/package.json +3 -3
  125. package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +43 -19
  126. package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +3 -3
  127. package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +17 -69
  128. package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +8 -1
  129. package/analyzer-template/packages/database/package.json +1 -1
  130. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  131. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  132. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  133. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  134. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  135. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  136. package/analyzer-template/packages/database/src/lib/kysely/db.ts +14 -1
  137. package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +6 -0
  138. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +17 -1
  139. package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
  140. package/analyzer-template/packages/database/src/lib/loadAnalyses.ts +58 -1
  141. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +13 -0
  142. package/analyzer-template/packages/database/src/lib/loadBranch.ts +16 -1
  143. package/analyzer-template/packages/database/src/lib/loadCommit.ts +11 -0
  144. package/analyzer-template/packages/database/src/lib/loadCommits.ts +28 -0
  145. package/analyzer-template/packages/database/src/lib/loadEntities.ts +26 -3
  146. package/analyzer-template/packages/database/src/lib/loadEntityBranches.ts +12 -0
  147. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +7 -3
  148. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  149. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  150. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  151. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +7 -14
  152. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  153. package/analyzer-template/packages/generate/index.ts +3 -0
  154. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +17 -1
  155. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +193 -0
  156. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
  157. package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
  158. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
  159. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
  160. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
  161. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
  162. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
  163. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
  164. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
  165. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
  166. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
  167. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
  168. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
  169. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
  170. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -0
  171. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  172. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +11 -1
  173. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  174. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +1 -18
  175. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -1
  176. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts +1 -0
  177. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts.map +1 -1
  178. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js +3 -0
  179. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  180. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +17 -1
  181. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -1
  182. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  183. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts +1 -0
  184. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -1
  185. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
  186. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
  187. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  188. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  189. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +2 -6
  190. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  191. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts +2 -0
  192. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts.map +1 -1
  193. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js +45 -2
  194. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js.map +1 -1
  195. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  196. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +8 -0
  197. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  198. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js +11 -1
  199. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js.map +1 -1
  200. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.d.ts.map +1 -1
  201. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js +7 -0
  202. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js.map +1 -1
  203. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts +3 -1
  204. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  205. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +22 -1
  206. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  207. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts +3 -1
  208. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  209. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +23 -4
  210. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  211. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.d.ts.map +1 -1
  212. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js +9 -0
  213. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js.map +1 -1
  214. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  215. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
  216. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  217. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
  218. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
  219. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
  220. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
  221. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
  222. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
  223. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts +2 -2
  224. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  225. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +5 -4
  226. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  227. package/analyzer-template/packages/github/dist/generate/index.d.ts +3 -0
  228. package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -1
  229. package/analyzer-template/packages/github/dist/generate/index.js +3 -0
  230. package/analyzer-template/packages/github/dist/generate/index.js.map +1 -1
  231. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
  232. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  233. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  234. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts +9 -0
  235. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -0
  236. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  237. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  238. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts +20 -0
  239. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts.map +1 -0
  240. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  241. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  242. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts +8 -0
  243. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts.map +1 -0
  244. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js +89 -0
  245. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  246. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -1
  247. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +10 -0
  248. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -1
  249. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -1
  250. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +3 -0
  251. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -1
  252. package/analyzer-template/packages/github/dist/types/index.d.ts +3 -4
  253. package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
  254. package/analyzer-template/packages/github/dist/types/index.js +0 -1
  255. package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
  256. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +71 -27
  257. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
  258. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts +2 -0
  259. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts.map +1 -1
  260. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +2 -0
  261. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -1
  262. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  263. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  264. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +9 -54
  265. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  266. package/analyzer-template/packages/github/dist/types/src/types/Scenario.js +1 -21
  267. package/analyzer-template/packages/github/dist/types/src/types/Scenario.js.map +1 -1
  268. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +153 -5
  269. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  270. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  271. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  272. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +2 -0
  273. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  274. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts +9 -1
  275. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  276. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +29 -3
  277. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -1
  278. package/analyzer-template/packages/github/package.json +1 -1
  279. package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +14 -0
  280. package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +2 -0
  281. package/analyzer-template/packages/process/index.ts +2 -0
  282. package/analyzer-template/packages/process/package.json +12 -0
  283. package/analyzer-template/packages/process/tsconfig.json +8 -0
  284. package/analyzer-template/packages/types/index.ts +3 -6
  285. package/analyzer-template/packages/types/src/types/Analysis.ts +87 -27
  286. package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
  287. package/analyzer-template/packages/types/src/types/Entity.ts +2 -0
  288. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +7 -0
  289. package/analyzer-template/packages/types/src/types/Scenario.ts +9 -77
  290. package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +181 -5
  291. package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
  292. package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
  293. package/analyzer-template/packages/utils/dist/types/index.d.ts +3 -4
  294. package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
  295. package/analyzer-template/packages/utils/dist/types/index.js +0 -1
  296. package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
  297. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +71 -27
  298. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
  299. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts +2 -0
  300. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts.map +1 -1
  301. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +2 -0
  302. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -1
  303. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  304. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  305. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +9 -54
  306. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  307. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js +1 -21
  308. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js.map +1 -1
  309. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +153 -5
  310. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  311. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  312. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  313. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +2 -0
  314. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  315. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  316. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +93 -2
  317. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  318. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +9 -1
  319. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  320. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +29 -3
  321. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -1
  322. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +108 -2
  323. package/analyzer-template/packages/utils/src/lib/safeFileName.ts +48 -3
  324. package/analyzer-template/playwright/capture.ts +57 -26
  325. package/analyzer-template/playwright/captureStatic.ts +1 -1
  326. package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
  327. package/analyzer-template/playwright/waitForServer.ts +21 -6
  328. package/analyzer-template/project/analyzeBaselineCommit.ts +9 -0
  329. package/analyzer-template/project/analyzeBranchCommit.ts +4 -0
  330. package/analyzer-template/project/analyzeFileEntities.ts +4 -0
  331. package/analyzer-template/project/analyzeRegularCommit.ts +9 -0
  332. package/analyzer-template/project/captureLibraryFunctionDirect.ts +29 -26
  333. package/analyzer-template/project/constructMockCode.ts +1006 -107
  334. package/analyzer-template/project/controller/startController.ts +16 -1
  335. package/analyzer-template/project/createEntitiesAndSortFiles.ts +83 -0
  336. package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
  337. package/analyzer-template/project/loadReadyToBeCaptured.ts +65 -41
  338. package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
  339. package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
  340. package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +3 -6
  341. package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +18 -7
  342. package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
  343. package/analyzer-template/project/orchestrateCapture.ts +81 -9
  344. package/analyzer-template/project/reconcileMockDataKeys.ts +240 -0
  345. package/analyzer-template/project/runAnalysis.ts +11 -0
  346. package/analyzer-template/project/serverOnlyModules.ts +127 -2
  347. package/analyzer-template/project/start.ts +51 -15
  348. package/analyzer-template/project/startScenarioCapture.ts +6 -0
  349. package/analyzer-template/project/writeMockDataTsx.ts +298 -11
  350. package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
  351. package/analyzer-template/project/writeScenarioComponents.ts +326 -42
  352. package/analyzer-template/project/writeScenarioFiles.ts +26 -0
  353. package/analyzer-template/project/writeSimpleRoot.ts +23 -13
  354. package/analyzer-template/scripts/comboWorkerLoop.cjs +99 -50
  355. package/analyzer-template/scripts/defaultCmd.sh +9 -0
  356. package/analyzer-template/tsconfig.json +2 -1
  357. package/background/src/lib/local/createLocalAnalyzer.js +2 -30
  358. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  359. package/background/src/lib/local/execAsync.js +1 -1
  360. package/background/src/lib/local/execAsync.js.map +1 -1
  361. package/background/src/lib/virtualized/common/execAsync.js +1 -1
  362. package/background/src/lib/virtualized/common/execAsync.js.map +1 -1
  363. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +7 -1
  364. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
  365. package/background/src/lib/virtualized/project/analyzeBranchCommit.js +2 -1
  366. package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -1
  367. package/background/src/lib/virtualized/project/analyzeFileEntities.js +2 -1
  368. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  369. package/background/src/lib/virtualized/project/analyzeRegularCommit.js +7 -1
  370. package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
  371. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +3 -3
  372. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -1
  373. package/background/src/lib/virtualized/project/constructMockCode.js +881 -71
  374. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  375. package/background/src/lib/virtualized/project/controller/startController.js +11 -1
  376. package/background/src/lib/virtualized/project/controller/startController.js.map +1 -1
  377. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +73 -1
  378. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -1
  379. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +6 -3
  380. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -1
  381. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +19 -8
  382. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
  383. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +7 -7
  384. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -1
  385. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js +2 -2
  386. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -1
  387. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +3 -2
  388. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
  389. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +7 -5
  390. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
  391. package/background/src/lib/virtualized/project/orchestrateCapture.js +65 -10
  392. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  393. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +199 -0
  394. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  395. package/background/src/lib/virtualized/project/runAnalysis.js +9 -0
  396. package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
  397. package/background/src/lib/virtualized/project/serverOnlyModules.js +106 -3
  398. package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -1
  399. package/background/src/lib/virtualized/project/start.js +47 -15
  400. package/background/src/lib/virtualized/project/start.js.map +1 -1
  401. package/background/src/lib/virtualized/project/startScenarioCapture.js +7 -0
  402. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  403. package/background/src/lib/virtualized/project/writeMockDataTsx.js +255 -8
  404. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  405. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js +15 -0
  406. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js.map +1 -0
  407. package/background/src/lib/virtualized/project/writeScenarioComponents.js +255 -41
  408. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  409. package/background/src/lib/virtualized/project/writeScenarioFiles.js +19 -0
  410. package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -1
  411. package/background/src/lib/virtualized/project/writeSimpleRoot.js +23 -13
  412. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  413. package/codeyam-cli/scripts/apply-setup.js +180 -0
  414. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  415. package/codeyam-cli/src/cli.js +9 -1
  416. package/codeyam-cli/src/cli.js.map +1 -1
  417. package/codeyam-cli/src/codeyam-cli.js +18 -2
  418. package/codeyam-cli/src/codeyam-cli.js.map +1 -1
  419. package/codeyam-cli/src/commands/analyze.js +5 -3
  420. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  421. package/codeyam-cli/src/commands/baseline.js +176 -0
  422. package/codeyam-cli/src/commands/baseline.js.map +1 -0
  423. package/codeyam-cli/src/commands/debug.js +37 -23
  424. package/codeyam-cli/src/commands/debug.js.map +1 -1
  425. package/codeyam-cli/src/commands/default.js +30 -34
  426. package/codeyam-cli/src/commands/default.js.map +1 -1
  427. package/codeyam-cli/src/commands/detect-universal-mocks.js +2 -0
  428. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +1 -1
  429. package/codeyam-cli/src/commands/init.js +49 -257
  430. package/codeyam-cli/src/commands/init.js.map +1 -1
  431. package/codeyam-cli/src/commands/memory.js +307 -0
  432. package/codeyam-cli/src/commands/memory.js.map +1 -0
  433. package/codeyam-cli/src/commands/recapture.js +31 -18
  434. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  435. package/codeyam-cli/src/commands/report.js +46 -1
  436. package/codeyam-cli/src/commands/report.js.map +1 -1
  437. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  438. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  439. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  440. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  441. package/codeyam-cli/src/commands/start.js +8 -12
  442. package/codeyam-cli/src/commands/start.js.map +1 -1
  443. package/codeyam-cli/src/commands/status.js +23 -1
  444. package/codeyam-cli/src/commands/status.js.map +1 -1
  445. package/codeyam-cli/src/commands/test-startup.js +3 -1
  446. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  447. package/codeyam-cli/src/commands/verify.js +14 -2
  448. package/codeyam-cli/src/commands/verify.js.map +1 -1
  449. package/codeyam-cli/src/commands/wipe.js +108 -0
  450. package/codeyam-cli/src/commands/wipe.js.map +1 -0
  451. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +179 -0
  452. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
  453. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
  454. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
  455. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +128 -82
  456. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  457. package/codeyam-cli/src/utils/analysisRunner.js +29 -15
  458. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  459. package/codeyam-cli/src/utils/analyzer.js +7 -0
  460. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  461. package/codeyam-cli/src/utils/backgroundServer.js +102 -21
  462. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  463. package/codeyam-cli/src/utils/database.js +91 -5
  464. package/codeyam-cli/src/utils/database.js.map +1 -1
  465. package/codeyam-cli/src/utils/generateReport.js +4 -3
  466. package/codeyam-cli/src/utils/generateReport.js.map +1 -1
  467. package/codeyam-cli/src/utils/git.js +79 -0
  468. package/codeyam-cli/src/utils/git.js.map +1 -0
  469. package/codeyam-cli/src/utils/install-skills.js +76 -37
  470. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  471. package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
  472. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
  473. package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
  474. package/codeyam-cli/src/utils/npmVersionCheck.js.map +1 -0
  475. package/codeyam-cli/src/utils/progress.js +7 -0
  476. package/codeyam-cli/src/utils/progress.js.map +1 -1
  477. package/codeyam-cli/src/utils/queue/job.js +109 -0
  478. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  479. package/codeyam-cli/src/utils/queue/manager.js +6 -0
  480. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  481. package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
  482. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  483. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  484. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
  485. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
  486. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +230 -0
  487. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
  488. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
  489. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
  490. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
  491. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
  492. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
  493. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
  494. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
  495. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
  496. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +74 -0
  497. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
  498. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +376 -0
  499. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
  500. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +116 -0
  501. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
  502. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
  503. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
  504. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
  505. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
  506. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
  507. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
  508. package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
  509. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
  510. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
  511. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
  512. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
  513. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
  514. package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
  515. package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
  516. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
  517. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
  518. package/codeyam-cli/src/utils/rules/index.js +6 -0
  519. package/codeyam-cli/src/utils/rules/index.js.map +1 -0
  520. package/codeyam-cli/src/utils/rules/parser.js +83 -0
  521. package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
  522. package/codeyam-cli/src/utils/rules/pathMatcher.js +18 -0
  523. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
  524. package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
  525. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
  526. package/codeyam-cli/src/utils/rules/staleness.js +137 -0
  527. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
  528. package/codeyam-cli/src/utils/serverState.js +37 -10
  529. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  530. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +21 -42
  531. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  532. package/codeyam-cli/src/utils/versionInfo.js +46 -15
  533. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  534. package/codeyam-cli/src/utils/wipe.js +128 -0
  535. package/codeyam-cli/src/utils/wipe.js.map +1 -0
  536. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js +66 -0
  537. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
  538. package/codeyam-cli/src/webserver/app/lib/database.js +88 -23
  539. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  540. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  541. package/codeyam-cli/src/webserver/backgroundServer.js +50 -0
  542. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  543. package/codeyam-cli/src/webserver/bootstrap.js +51 -0
  544. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
  545. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-jNYXRRNI.js +1 -0
  546. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-bwuHPyTa.js +11 -0
  547. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-CzGX-miz.js → EntityTypeBadge-CvzqMxcu.js} +1 -1
  548. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BH0XDim7.js +41 -0
  549. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-EhOseatT.js +34 -0
  550. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-yjIHlOGa.js +25 -0
  551. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-CBQPrpT0.js → LibraryFunctionPreview-Cq5o8jL4.js} +1 -1
  552. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-D1CdlbrV.js → LoadingDots-BvMu2i-g.js} +1 -1
  553. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-wDPcZNKx.js → LogViewer-kgBTLoJD.js} +1 -1
  554. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-BzPgx-xO.js +11 -0
  555. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-BfmDgXxG.js → SafeScreenshot-CwZrv-Ok.js} +1 -1
  556. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-BX2Ny2Qj.js +10 -0
  557. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-6J7zDUD5.js → TruncatedFilePath-CDpEprKa.js} +1 -1
  558. package/codeyam-cli/src/webserver/build/client/assets/_index-BRx8ZGZo.js +11 -0
  559. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-4S4yPfFw.js +27 -0
  560. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-DHKuQSmR.js +17 -0
  561. package/codeyam-cli/src/webserver/build/client/assets/api.memory-profile-l0sNRNKZ.js +1 -0
  562. package/codeyam-cli/src/webserver/build/client/assets/api.restart-server-l0sNRNKZ.js +1 -0
  563. package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
  564. package/codeyam-cli/src/webserver/build/client/assets/book-open-D4IPYH_y.js +6 -0
  565. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-BYimnrHg.js → chevron-down-CG65viiV.js} +1 -1
  566. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-DB3aFuEO.js +51 -0
  567. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-CaVsIRxt.js → circle-check-igfMr5DY.js} +1 -1
  568. package/codeyam-cli/src/webserver/build/client/assets/copy-Coc4o_8c.js +11 -0
  569. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-CgUsG7ib.js → createLucideIcon-D1zB-pYc.js} +1 -1
  570. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-C1gnJVOL.svg → cy-logo-cli-CCKUIm0S.svg} +2 -2
  571. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +1 -0
  572. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-JTAjQ54M.js +1 -0
  573. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-Dt-SjPsw.js → entity._sha._-B0h9AqE6.js} +12 -12
  574. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DjLxr2JB.js +6 -0
  575. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-CtYowLOt.js +6 -0
  576. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CfLCUi9S.js → entity._sha_.edit._scenarioId-PePWg17F.js} +1 -1
  577. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-DKJyZfAY.js → entry.client-I-Wo99C_.js} +6 -6
  578. package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
  579. package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DAtOlaWE.js → fileTableUtils-9sMMAiWJ.js} +1 -1
  580. package/codeyam-cli/src/webserver/build/client/assets/files-Co65J0s3.js +1 -0
  581. package/codeyam-cli/src/webserver/build/client/assets/{git-D62Lxxmv.js → git-BdHOxVfg.js} +8 -8
  582. package/codeyam-cli/src/webserver/build/client/assets/globals-OvbPxnso.css +1 -0
  583. package/codeyam-cli/src/webserver/build/client/assets/{index-CzNNiTkw.js → index-CUM5iXwc.js} +1 -1
  584. package/codeyam-cli/src/webserver/build/client/assets/{index-BosqDOlH.js → index-_417gcQW.js} +1 -1
  585. package/codeyam-cli/src/webserver/build/client/assets/labs-BK0C1H1T.js +1 -0
  586. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-CNp9QFCX.js → loader-circle-TzRHMVog.js} +1 -1
  587. package/codeyam-cli/src/webserver/build/client/assets/manifest-1dde4642.js +1 -0
  588. package/codeyam-cli/src/webserver/build/client/assets/memory-CSehFhoZ.js +92 -0
  589. package/codeyam-cli/src/webserver/build/client/assets/pause-hjzB7t2z.js +11 -0
  590. package/codeyam-cli/src/webserver/build/client/assets/root-WysVEEJs.js +62 -0
  591. package/codeyam-cli/src/webserver/build/client/assets/{search-DDGjYAMJ.js → search-DcAwD_Ln.js} +1 -1
  592. package/codeyam-cli/src/webserver/build/client/assets/settings-CclxrcPK.js +1 -0
  593. package/codeyam-cli/src/webserver/build/client/assets/simulations-DVNJVQgD.js +1 -0
  594. package/codeyam-cli/src/webserver/build/client/assets/terminal-DbEAHMbA.js +11 -0
  595. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-CBc5dE1s.js → triangle-alert-CAD5b1o_.js} +1 -1
  596. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BqgrAzs3.js +1 -0
  597. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-BqPPNjAl.js → useLastLogLine-DAFqfEDH.js} +1 -1
  598. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DZlYx2c4.js +1 -0
  599. package/codeyam-cli/src/webserver/build/client/assets/{useToast-DWHcCcl1.js → useToast-ihdMtlf6.js} +1 -1
  600. package/codeyam-cli/src/webserver/build/server/assets/index-Bs3qItZt.js +1 -0
  601. package/codeyam-cli/src/webserver/build/server/assets/server-build-CqaV_Zaw.js +273 -0
  602. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  603. package/codeyam-cli/src/webserver/build-info.json +5 -5
  604. package/codeyam-cli/src/webserver/server.js +35 -25
  605. package/codeyam-cli/src/webserver/server.js.map +1 -1
  606. package/codeyam-cli/templates/{codeyam-debug-skill.md → codeyam-debug.md} +48 -4
  607. package/codeyam-cli/templates/codeyam-diagnose.md +481 -0
  608. package/codeyam-cli/templates/codeyam-memory-hook.sh +199 -0
  609. package/codeyam-cli/templates/codeyam-memory.md +396 -0
  610. package/codeyam-cli/templates/codeyam-new-rule.md +13 -0
  611. package/codeyam-cli/templates/{codeyam-setup-skill.md → codeyam-setup.md} +13 -1
  612. package/codeyam-cli/templates/{codeyam-sim-skill.md → codeyam-sim.md} +1 -1
  613. package/codeyam-cli/templates/{codeyam-test-skill.md → codeyam-test.md} +1 -1
  614. package/codeyam-cli/templates/{codeyam-verify-skill.md → codeyam-verify.md} +1 -1
  615. package/codeyam-cli/templates/rule-notification-hook.py +56 -0
  616. package/codeyam-cli/templates/rule-reflection-hook.py +627 -0
  617. package/codeyam-cli/templates/rules-instructions.md +132 -0
  618. package/package.json +17 -14
  619. package/packages/ai/index.js +8 -6
  620. package/packages/ai/index.js.map +1 -1
  621. package/packages/ai/src/lib/analyzeScope.js +179 -13
  622. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  623. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js +150 -0
  624. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js.map +1 -0
  625. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +138 -9
  626. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  627. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
  628. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
  629. package/packages/ai/src/lib/astScopes/methodSemantics.js +138 -23
  630. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  631. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
  632. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
  633. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +8 -0
  634. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -1
  635. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +7 -0
  636. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
  637. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +138 -1
  638. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
  639. package/packages/ai/src/lib/astScopes/processExpression.js +944 -30
  640. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  641. package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
  642. package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
  643. package/packages/ai/src/lib/checkAllAttributes.js +24 -9
  644. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  645. package/packages/ai/src/lib/completionCall.js +178 -31
  646. package/packages/ai/src/lib/completionCall.js.map +1 -1
  647. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1367 -187
  648. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  649. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +5 -1
  650. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  651. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +230 -23
  652. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -1
  653. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +7 -1
  654. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  655. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +13 -3
  656. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -1
  657. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +6 -4
  658. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -1
  659. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +52 -3
  660. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  661. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +111 -14
  662. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  663. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
  664. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
  665. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +122 -12
  666. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  667. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
  668. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
  669. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
  670. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
  671. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +333 -81
  672. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  673. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js +107 -0
  674. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js.map +1 -0
  675. package/packages/ai/src/lib/dataStructureChunking.js +130 -0
  676. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -0
  677. package/packages/ai/src/lib/deepEqual.js +32 -0
  678. package/packages/ai/src/lib/deepEqual.js.map +1 -0
  679. package/packages/ai/src/lib/e2eDataTracking.js +241 -0
  680. package/packages/ai/src/lib/e2eDataTracking.js.map +1 -0
  681. package/packages/ai/src/lib/extractCriticalDataKeys.js +96 -0
  682. package/packages/ai/src/lib/extractCriticalDataKeys.js.map +1 -0
  683. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +21 -5
  684. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  685. package/packages/ai/src/lib/generateChangesEntityScenarios.js +78 -120
  686. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  687. package/packages/ai/src/lib/generateEntityDataStructure.js +47 -2
  688. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  689. package/packages/ai/src/lib/generateEntityScenarioData.js +1101 -62
  690. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  691. package/packages/ai/src/lib/generateEntityScenarios.js +177 -163
  692. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  693. package/packages/ai/src/lib/generateExecutionFlows.js +495 -0
  694. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
  695. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
  696. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
  697. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +1807 -0
  698. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
  699. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
  700. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js.map +1 -0
  701. package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -2
  702. package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
  703. package/packages/ai/src/lib/isolateScopes.js +270 -7
  704. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  705. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
  706. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
  707. package/packages/ai/src/lib/mergeStatements.js +88 -46
  708. package/packages/ai/src/lib/mergeStatements.js.map +1 -1
  709. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
  710. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
  711. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +10 -4
  712. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  713. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +1 -1
  714. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  715. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +21 -100
  716. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  717. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js +54 -0
  718. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js.map +1 -0
  719. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +83 -6
  720. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  721. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +10 -70
  722. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  723. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
  724. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
  725. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +9 -9
  726. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
  727. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js +335 -0
  728. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js.map +1 -0
  729. package/packages/ai/src/lib/resolvePathToControllable.js +677 -0
  730. package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
  731. package/packages/ai/src/lib/splitOutsideParentheses.js +3 -1
  732. package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -1
  733. package/packages/ai/src/lib/worker/SerializableDataStructure.js +29 -0
  734. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  735. package/packages/ai/src/lib/worker/analyzeScopeWorker.js +94 -1
  736. package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
  737. package/packages/analyze/index.js +1 -0
  738. package/packages/analyze/index.js.map +1 -1
  739. package/packages/analyze/src/lib/FileAnalyzer.js +75 -36
  740. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  741. package/packages/analyze/src/lib/ProjectAnalyzer.js +96 -26
  742. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  743. package/packages/analyze/src/lib/analysisContext.js +30 -5
  744. package/packages/analyze/src/lib/analysisContext.js.map +1 -1
  745. package/packages/analyze/src/lib/asts/nodes/index.js +1 -0
  746. package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
  747. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
  748. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
  749. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +14 -0
  750. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -1
  751. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +14 -0
  752. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -1
  753. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +6 -0
  754. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
  755. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +6 -0
  756. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -1
  757. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +39 -1
  758. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -1
  759. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +2 -1
  760. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -1
  761. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +206 -57
  762. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  763. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +24 -1
  764. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  765. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +5 -0
  766. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  767. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +2 -0
  768. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  769. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +2 -1
  770. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  771. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +31 -10
  772. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  773. package/packages/analyze/src/lib/files/analyzeChange.js +21 -11
  774. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  775. package/packages/analyze/src/lib/files/analyzeEntity.js +9 -8
  776. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  777. package/packages/analyze/src/lib/files/analyzeInitial.js +9 -10
  778. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  779. package/packages/analyze/src/lib/files/analyzeRemixRoute.js +3 -2
  780. package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
  781. package/packages/analyze/src/lib/files/enums/steps.js +1 -1
  782. package/packages/analyze/src/lib/files/enums/steps.js.map +1 -1
  783. package/packages/analyze/src/lib/files/getImportedExports.js +11 -7
  784. package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
  785. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +880 -0
  786. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
  787. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +170 -40
  788. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
  789. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
  790. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
  791. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +253 -42
  792. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  793. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +29 -34
  794. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
  795. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +218 -20
  796. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  797. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +144 -0
  798. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
  799. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +1 -0
  800. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  801. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +2 -3
  802. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  803. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +670 -53
  804. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  805. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +46 -9
  806. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -1
  807. package/packages/analyze/src/lib/files/setImportedExports.js +2 -1
  808. package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -1
  809. package/packages/analyze/src/lib/index.js +1 -0
  810. package/packages/analyze/src/lib/index.js.map +1 -1
  811. package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
  812. package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
  813. package/packages/aws/src/lib/ecs/ecsDefineContainer.js +2 -2
  814. package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  815. package/packages/aws/src/lib/ecs/ecsTaskFactory.js +17 -61
  816. package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  817. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  818. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  819. package/packages/database/src/lib/analysisToDb.js +1 -1
  820. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  821. package/packages/database/src/lib/branchToDb.js +1 -1
  822. package/packages/database/src/lib/branchToDb.js.map +1 -1
  823. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  824. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  825. package/packages/database/src/lib/commitToDb.js +1 -1
  826. package/packages/database/src/lib/commitToDb.js.map +1 -1
  827. package/packages/database/src/lib/fileToDb.js +1 -1
  828. package/packages/database/src/lib/fileToDb.js.map +1 -1
  829. package/packages/database/src/lib/kysely/db.js +11 -1
  830. package/packages/database/src/lib/kysely/db.js.map +1 -1
  831. package/packages/database/src/lib/kysely/tables/commitsTable.js +3 -0
  832. package/packages/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  833. package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  834. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  835. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  836. package/packages/database/src/lib/loadAnalyses.js +45 -2
  837. package/packages/database/src/lib/loadAnalyses.js.map +1 -1
  838. package/packages/database/src/lib/loadAnalysis.js +8 -0
  839. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  840. package/packages/database/src/lib/loadBranch.js +11 -1
  841. package/packages/database/src/lib/loadBranch.js.map +1 -1
  842. package/packages/database/src/lib/loadCommit.js +7 -0
  843. package/packages/database/src/lib/loadCommit.js.map +1 -1
  844. package/packages/database/src/lib/loadCommits.js +22 -1
  845. package/packages/database/src/lib/loadCommits.js.map +1 -1
  846. package/packages/database/src/lib/loadEntities.js +23 -4
  847. package/packages/database/src/lib/loadEntities.js.map +1 -1
  848. package/packages/database/src/lib/loadEntityBranches.js +9 -0
  849. package/packages/database/src/lib/loadEntityBranches.js.map +1 -1
  850. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
  851. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  852. package/packages/database/src/lib/projectToDb.js +1 -1
  853. package/packages/database/src/lib/projectToDb.js.map +1 -1
  854. package/packages/database/src/lib/saveFiles.js +1 -1
  855. package/packages/database/src/lib/saveFiles.js.map +1 -1
  856. package/packages/database/src/lib/scenarioToDb.js +1 -1
  857. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  858. package/packages/database/src/lib/updateCommitMetadata.js +5 -4
  859. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  860. package/packages/generate/index.js +3 -0
  861. package/packages/generate/index.js.map +1 -1
  862. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  863. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  864. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  865. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  866. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  867. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  868. package/packages/generate/src/lib/scenarioComponentForServer.js +89 -0
  869. package/packages/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  870. package/packages/github/src/lib/loadOrCreateCommit.js +10 -0
  871. package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -1
  872. package/packages/github/src/lib/syncPrimaryBranch.js +3 -0
  873. package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -1
  874. package/packages/process/index.js +3 -0
  875. package/packages/process/index.js.map +1 -0
  876. package/packages/process/src/GlobalProcessManager.js.map +1 -0
  877. package/{background/src/lib/process → packages/process/src}/ProcessManager.js +1 -1
  878. package/packages/process/src/ProcessManager.js.map +1 -0
  879. package/packages/process/src/index.js.map +1 -0
  880. package/packages/process/src/managedExecAsync.js.map +1 -0
  881. package/packages/types/index.js +0 -1
  882. package/packages/types/index.js.map +1 -1
  883. package/packages/types/src/types/Scenario.js +1 -21
  884. package/packages/types/src/types/Scenario.js.map +1 -1
  885. package/packages/utils/src/lib/fs/rsyncCopy.js +93 -2
  886. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  887. package/packages/utils/src/lib/safeFileName.js +29 -3
  888. package/packages/utils/src/lib/safeFileName.js.map +1 -1
  889. package/scripts/finalize-analyzer.cjs +8 -76
  890. package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +0 -102
  891. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +0 -409
  892. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +0 -288
  893. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +0 -495
  894. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +0 -67
  895. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +0 -120
  896. package/analyzer-template/process/INTEGRATION_COMPLETE.md +0 -333
  897. package/analyzer-template/process/INTEGRATION_EXAMPLE.md +0 -525
  898. package/analyzer-template/process/README.md +0 -507
  899. package/background/src/lib/process/GlobalProcessManager.js.map +0 -1
  900. package/background/src/lib/process/ProcessManager.js.map +0 -1
  901. package/background/src/lib/process/index.js.map +0 -1
  902. package/background/src/lib/process/managedExecAsync.js.map +0 -1
  903. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-wXL1Z2Aq.js +0 -1
  904. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-CXFKsCOD.js +0 -41
  905. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-D-9pXIaY.js +0 -25
  906. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-4lcOlid-.js +0 -11
  907. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-CUxUNEEC.js +0 -15
  908. package/codeyam-cli/src/webserver/build/client/assets/_index-DHImXdXq.js +0 -11
  909. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CVP_WGQ3.js +0 -32
  910. package/codeyam-cli/src/webserver/build/client/assets/chunk-JMJ3UQ3L-BambyYE_.js +0 -51
  911. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-CKnwPCDr.js +0 -1
  912. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DW_hdGUc.js +0 -1
  913. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DyB90fWk.js +0 -1
  914. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-D_3ero5o.js +0 -1
  915. package/codeyam-cli/src/webserver/build/client/assets/files-ClR0d32A.js +0 -1
  916. package/codeyam-cli/src/webserver/build/client/assets/globals-C9s7Lhdl.css +0 -1
  917. package/codeyam-cli/src/webserver/build/client/assets/keyAttributeCoverage-CTlFMihX.js +0 -1
  918. package/codeyam-cli/src/webserver/build/client/assets/manifest-0d27da29.js +0 -1
  919. package/codeyam-cli/src/webserver/build/client/assets/root-B_wIKCIf.js +0 -56
  920. package/codeyam-cli/src/webserver/build/client/assets/settings-DgTyB-Wg.js +0 -1
  921. package/codeyam-cli/src/webserver/build/client/assets/simulations-CoNWGt0K.js +0 -1
  922. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BMIGFP-m.js +0 -1
  923. package/codeyam-cli/src/webserver/build/client/assets/useInteractiveMode-Dk_FQqWJ.js +0 -1
  924. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DsJbgMY9.js +0 -1
  925. package/codeyam-cli/src/webserver/build/server/assets/index-CU58-Ttc.js +0 -1
  926. package/codeyam-cli/src/webserver/build/server/assets/server-build-D35o2uae.js +0 -175
  927. package/codeyam-cli/templates/debug-codeyam.md +0 -625
  928. package/packages/ai/src/lib/findMatchingAttribute.js +0 -77
  929. package/packages/ai/src/lib/findMatchingAttribute.js.map +0 -1
  930. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +0 -298
  931. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +0 -1
  932. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +0 -226
  933. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +0 -1
  934. package/packages/ai/src/lib/generateEntityKeyAttributes.js +0 -408
  935. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +0 -1
  936. package/packages/ai/src/lib/isFrontend.js +0 -5
  937. package/packages/ai/src/lib/isFrontend.js.map +0 -1
  938. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +0 -40
  939. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +0 -1
  940. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +0 -77
  941. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +0 -1
  942. /package/analyzer-template/{process → packages/process/src}/GlobalProcessManager.ts +0 -0
  943. /package/analyzer-template/{process → packages/process/src}/ProcessManager.ts +0 -0
  944. /package/analyzer-template/{process → packages/process/src}/index.ts +0 -0
  945. /package/analyzer-template/{process → packages/process/src}/managedExecAsync.ts +0 -0
  946. /package/codeyam-cli/src/webserver/build/client/assets/{api.link-scenario-value-l0sNRNKZ.js → api.agent-transcripts-l0sNRNKZ.js} +0 -0
  947. /package/codeyam-cli/src/webserver/build/client/assets/{api.update-key-attributes-l0sNRNKZ.js → api.health-l0sNRNKZ.js} +0 -0
  948. /package/codeyam-cli/src/webserver/build/client/assets/{api.update-valid-values-l0sNRNKZ.js → api.labs-unlock-l0sNRNKZ.js} +0 -0
  949. /package/{background/src/lib/process → packages/process/src}/GlobalProcessManager.js +0 -0
  950. /package/{background/src/lib/process → packages/process/src}/index.js +0 -0
  951. /package/{background/src/lib/process → packages/process/src}/managedExecAsync.js +0 -0
@@ -596,10 +596,38 @@ function addMockToContent(fileContent, importedExport, fileAnalyses, rootAnalysi
596
596
  }
597
597
  // Check if we have multiple calls with different variable names
598
598
  // This requires generating separate mock functions for each call site
599
- const hasMultipleCallsWithVariables = importedExport.calls &&
600
- importedExport.calls.length > 1 &&
599
+ //
600
+ // IMPORTANT: calls array may contain BOTH base hook calls (e.g., "useFetcher<Type>()")
601
+ // AND method chain usages (e.g., "useFetcher().functionCallReturnValue.submit(...)").
602
+ // We only want to count base hook calls for the length comparison with callVariableNames.
603
+ // A "base call" is one that ends with "()" possibly preceded by a type annotation,
604
+ // without any subsequent method chains like ".functionCallReturnValue" or ".submit(...)".
605
+ const baseHookCalls = importedExport.calls?.filter((call) => {
606
+ // Base hook calls match patterns like:
607
+ // - "useFetcher()"
608
+ // - "useFetcher<Type>()"
609
+ // - "useFetcher<{ complex: Type }>()"
610
+ // They end with "()" and don't have method chains after the call.
611
+ // Method chains contain ".functionCallReturnValue" or have property access after "()".
612
+ return (call.endsWith('()') &&
613
+ !call.includes('.functionCallReturnValue') &&
614
+ // Also exclude method chains like "hook().something" or "hook().method()"
615
+ !call.match(/\(\)\.[a-zA-Z]/));
616
+ });
617
+ // Determine if we can generate unique mock functions for multiple variables.
618
+ // We need:
619
+ // 1. Multiple variable names (callVariableNames.length > 1)
620
+ // 2. Base hook calls to match them (baseHookCalls.length > 0)
621
+ // Note: We use min(baseHookCalls.length, callVariableNames.length) for iteration
622
+ // to handle cases where data might be slightly out of sync (stale entries).
623
+ const hasMultipleCallsWithVariables = baseHookCalls &&
624
+ baseHookCalls.length > 1 &&
601
625
  importedExport.callVariableNames &&
602
- importedExport.callVariableNames.length === importedExport.calls.length;
626
+ importedExport.callVariableNames.length > 1 &&
627
+ // Only proceed if we have at least as many base calls as variable names,
628
+ // OR they're close enough (within 1) to handle minor sync issues
629
+ Math.abs(baseHookCalls.length - importedExport.callVariableNames.length) <=
630
+ 1;
603
631
  let mockCode;
604
632
  const variableMockCodes = [];
605
633
  if (hasMultipleCallsWithVariables) {
@@ -617,7 +645,10 @@ function addMockToContent(fileContent, importedExport, fileAnalyses, rootAnalysi
617
645
  : [];
618
646
  // Track variable name occurrences for unique function naming
619
647
  const variableNameCounts = {};
620
- for (let i = 0; i < importedExport.calls.length; i++) {
648
+ // Use the minimum of both array lengths to handle slight mismatches
649
+ // (e.g., stale data from previous analysis runs)
650
+ const iterationLimit = Math.min(baseHookCalls.length, importedExport.callVariableNames.length);
651
+ for (let i = 0; i < iterationLimit; i++) {
621
652
  const variableName = importedExport.callVariableNames[i];
622
653
  if (!variableName)
623
654
  continue;
@@ -632,14 +663,21 @@ function addMockToContent(fileContent, importedExport, fileAnalyses, rootAnalysi
632
663
  // Compute unique mock function name for call site replacement
633
664
  // e.g., useFetcher_entityDiffFetcher, useFetcher_reportFetcher
634
665
  const mockFunctionName = `${importedExport.name}_${safeFunctionName}`;
635
- // Use the call signature from importedExport.calls[i] as the data key
666
+ // Use the call signature from baseHookCalls[i] as the data key
636
667
  // This matches what's stored in dataForMocks
637
- const callSignature = importedExport.calls[i];
668
+ const callSignature = baseHookCalls[i];
638
669
  // Generate mock code using the call signature directly
639
670
  // This prevents "symbol already declared" errors when multiple calls exist
671
+ // Check if this is a package import that won't have scenario copies
672
+ const isPackageImportForMock = importPath?.startsWith('@');
640
673
  const variableMockCode = constructMockCode(callSignature, // Use call signature format for data lookup
641
674
  dependencySchemas, importedExport.entityType, undefined, // No need for separate canonical key
642
- { uniqueFunctionSuffix: safeFunctionName });
675
+ {
676
+ uniqueFunctionSuffix: safeFunctionName, // Use variable name for unique function naming
677
+ // For node_modules or package imports, skip spreading from __cyOriginal
678
+ // since those packages/files don't export *__cyOriginal variants
679
+ skipOriginalSpread: importedExport.isNodeModule || isPackageImportForMock,
680
+ });
643
681
  if (variableMockCode) {
644
682
  variableMockCodes.push(variableMockCode);
645
683
  // Replace the call site with the variable-specific mock function
@@ -647,8 +685,17 @@ function addMockToContent(fileContent, importedExport, fileAnalyses, rootAnalysi
647
685
  // e.g., useFetcher() -> useFetcher_reportFetcher()
648
686
  // Escape special regex characters in the call signature
649
687
  const escapedCallSignature = callSignature.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
650
- // Create regex that matches the call (with optional whitespace variations)
651
- const callRegex = new RegExp(escapedCallSignature.replace(/\s+/g, '\\s*'), 'g');
688
+ // Create regex that matches the call (with optional whitespace variations).
689
+ // TypeScript formatters commonly break type parameters across lines, e.g.:
690
+ // useLoaderData<
691
+ // typeof loader
692
+ // >()
693
+ // So we allow optional whitespace around < and > delimiters, not just
694
+ // where whitespace already exists in the call signature string.
695
+ const callRegex = new RegExp(escapedCallSignature
696
+ .replace(/\s+/g, '\\s*')
697
+ .replace(/</g, '\\s*<\\s*')
698
+ .replace(/>/g, '\\s*>\\s*'), 'gs');
652
699
  fileContent = fileContent.replace(callRegex, `${mockFunctionName}()`);
653
700
  }
654
701
  }
@@ -666,37 +713,87 @@ function addMockToContent(fileContent, importedExport, fileAnalyses, rootAnalysi
666
713
  // For single variable assignments, use the call signature directly from dataForMocks
667
714
  const dataForMocks = rootAnalysis.metadata?.scenariosDataStructure?.dataForMocks;
668
715
  // Find matching call signature key in dataForMocks
716
+ // IMPORTANT: First try exact match with type parameters (e.g., "useLoaderData<LoaderData>()")
717
+ // to avoid picking the wrong variant (e.g., "useLoaderData<typeof loader>()" which may
718
+ // have different properties). Fall back to base name matching only if exact match fails.
669
719
  const hookBaseName = importedExport.name.split(/[<(]/)[0];
670
- const callSignatureKey = dataForMocks
671
- ? Object.keys(dataForMocks).find((key) => {
672
- const keyBaseName = key.split(/[<(]/)[0];
673
- return keyBaseName === hookBaseName;
674
- })
675
- : undefined;
720
+ const expectedKey = importedExport.calls?.[0];
721
+ let callSignatureKey;
722
+ if (dataForMocks) {
723
+ const keys = Object.keys(dataForMocks);
724
+ // First try exact match with the expected call signature
725
+ if (expectedKey && keys.includes(expectedKey)) {
726
+ callSignatureKey = expectedKey;
727
+ }
728
+ else {
729
+ // Fall back to base name matching
730
+ callSignatureKey = keys.find((key) => {
731
+ // Split on ., <, or ( to get the true base name
732
+ // This handles both "useFlags()" -> "useFlags" and "trpc.useUtils()" -> "trpc"
733
+ const keyBaseName = key.split(/[.<(]/)[0];
734
+ return keyBaseName === hookBaseName;
735
+ });
736
+ }
737
+ }
676
738
  // Use the call signature if found, otherwise construct it
677
739
  const dataKey = callSignatureKey ??
678
740
  importedExport.calls?.[0] ??
679
741
  `${importedExport.name}()`;
742
+ // IMPORTANT: If the dataKey is a method chain (e.g., "trpc.useUtils()"), we should
743
+ // use the base name (e.g., "trpc") when calling constructMockCode. This ensures
744
+ // constructMockCode generates a complete nested mock from the schema without
745
+ // referencing __cyOriginal variables.
746
+ const dataKeyBaseName = dataKey.split(/[.<(]/)[0];
747
+ const isMethodChainDataKey = dataKeyBaseName === importedExport.name &&
748
+ dataKey !== importedExport.name &&
749
+ dataKey.includes('.');
750
+ const mockNameToUse = isMethodChainDataKey
751
+ ? importedExport.name
752
+ : dataKey;
680
753
  // Keep the original function name since there's only one call
681
- mockCode = constructMockCode(dataKey, // Use call signature format
682
- dependencySchemas, importedExport.entityType, undefined, { keepOriginalFunctionName: true });
754
+ // Check if this is a package import that won't have scenario copies
755
+ const isPackageImportForSingleCall = importPath?.startsWith('@');
756
+ mockCode = constructMockCode(mockNameToUse, dependencySchemas, importedExport.entityType, undefined, {
757
+ keepOriginalFunctionName: true,
758
+ // For node_modules or package imports, skip spreading from __cyOriginal
759
+ // since those packages/files don't export *__cyOriginal variants
760
+ skipOriginalSpread: importedExport.isNodeModule || isPackageImportForSingleCall,
761
+ });
683
762
  // If constructMockCode didn't generate code, fall back to simple return
763
+ // IMPORTANT: We inline scenarios().data() inside the function rather than
764
+ // storing in a const - see comment in constructMockCode.ts for why.
684
765
  if (!mockCode) {
685
- mockCode = `const ${importedExport.name}ReturnValue = scenarios().data()?.["${dataKey}"];
686
-
687
- function ${importedExport.name}() {
688
- return ${importedExport.name}ReturnValue;
766
+ mockCode = `// PATCHED: memoize to return stable reference (prevents infinite useEffect re-triggers)
767
+ const _${importedExport.name}Ref = {
768
+ current: null,
769
+ };
770
+ function ${importedExport.name}(...args) {
771
+ if (!_${importedExport.name}Ref.current) {
772
+ _${importedExport.name}Ref.current = scenarios().data()?.["${dataKey}"];
773
+ }
774
+ return _${importedExport.name}Ref.current;
689
775
  }`;
690
776
  }
691
777
  }
692
778
  else {
693
779
  // Helper to find matching call signature key from dataForMocks
780
+ // IMPORTANT: First try exact match with type parameters (e.g., "useLoaderData<LoaderData>()")
781
+ // to avoid picking the wrong variant. Fall back to base name matching only if needed.
694
782
  const hookBaseName = importedExport.name.split(/[<(]/)[0];
783
+ const expectedKey = importedExport.calls?.[0];
695
784
  const findMatchingKey = (dataForMocks) => {
696
785
  if (!dataForMocks)
697
786
  return undefined;
698
- return Object.keys(dataForMocks).find((key) => {
699
- const keyBaseName = key.split(/[<(]/)[0];
787
+ const keys = Object.keys(dataForMocks);
788
+ // First try exact match with the expected call signature
789
+ if (expectedKey && keys.includes(expectedKey)) {
790
+ return expectedKey;
791
+ }
792
+ // Fall back to base name matching
793
+ return keys.find((key) => {
794
+ // Split on ., <, or ( to get the true base name
795
+ // This handles both "useFlags()" -> "useFlags" and "trpc.useUtils()" -> "trpc"
796
+ const keyBaseName = key.split(/[.<(]/)[0];
700
797
  return keyBaseName === hookBaseName;
701
798
  });
702
799
  };
@@ -712,15 +809,40 @@ function ${importedExport.name}() {
712
809
  break;
713
810
  }
714
811
  }
715
- // Use the data key if found, otherwise use call signature or function name
716
- const mockNameToUse = dataKey ?? importedExport.calls?.[0] ?? `${importedExport.name}()`;
717
- mockCode = constructMockCode(mockNameToUse, dependencySchemas, importedExport.entityType, undefined, { keepOriginalFunctionName: true });
812
+ // Use the data key if found, otherwise use call signature or function name.
813
+ // IMPORTANT: If the dataKey is a method chain (e.g., "trpc.useUtils()"), we should
814
+ // use the base name (e.g., "trpc") when calling constructMockCode. This ensures
815
+ // constructMockCode generates a complete nested mock from the schema without
816
+ // referencing __cyOriginal variables. The __cyOriginal pattern is only needed
817
+ // for partial mocking where we preserve some original methods, not for complete
818
+ // method-chain mocks where we provide all implementations.
819
+ const dataKeyBaseName = dataKey?.split(/[.<(]/)[0];
820
+ const isMethodChainDataKey = dataKey &&
821
+ dataKeyBaseName === importedExport.name &&
822
+ dataKey !== importedExport.name &&
823
+ dataKey.includes('.');
824
+ const mockNameToUse = isMethodChainDataKey
825
+ ? importedExport.name
826
+ : (dataKey ?? importedExport.calls?.[0] ?? `${importedExport.name}()`);
827
+ mockCode = constructMockCode(mockNameToUse, dependencySchemas, importedExport.entityType, undefined, {
828
+ keepOriginalFunctionName: true,
829
+ // For node_modules or package imports, skip spreading from __cyOriginal
830
+ // since those packages/files don't export *__cyOriginal variants
831
+ skipOriginalSpread: importedExport.isNodeModule || importPath?.startsWith('@'),
832
+ });
718
833
  // If constructMockCode didn't generate code, fall back to simple return
834
+ // IMPORTANT: We inline scenarios().data() inside the function rather than
835
+ // storing in a const - see comment in constructMockCode.ts for why.
719
836
  if (!mockCode && dataKey) {
720
- mockCode = `const ${importedExport.name}ReturnValue = scenarios().data()?.["${dataKey}"];
721
-
722
- function ${importedExport.name}() {
723
- return ${importedExport.name}ReturnValue;
837
+ mockCode = `// PATCHED: memoize to return stable reference (prevents infinite useEffect re-triggers)
838
+ const _${importedExport.name}Ref = {
839
+ current: null,
840
+ };
841
+ function ${importedExport.name}(...args) {
842
+ if (!_${importedExport.name}Ref.current) {
843
+ _${importedExport.name}Ref.current = scenarios().data()?.["${dataKey}"];
844
+ }
845
+ return _${importedExport.name}Ref.current;
724
846
  }`;
725
847
  }
726
848
  }
@@ -740,13 +862,44 @@ function ${importedExport.name}() {
740
862
  else {
741
863
  // Escape regex special characters in importPath (e.g., brackets in [environmentId])
742
864
  const escapedImportPath = importPath.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
743
- const importRegExp = new RegExp(`(import(?:(?!${firstPart}|from|import)[\\s\\S])*?)${firstPart}(?:,\\s*)?((?:(?!import)[\\s\\S])*?from\\s+['"]${escapedImportPath}['"])`, 'm');
744
- if (importedExportNameParts.length > 1) {
865
+ // Use a simpler, more robust regex pattern that matches the fallback path.
866
+ // Key improvements:
867
+ // 1. Uses escapeRegExp(firstPart) to handle special characters in function names
868
+ // 2. Uses word boundaries (\b) to prevent partial matches
869
+ // 3. Handles comma BEFORE or AFTER the name: (?:,\s*|\s*,)?
870
+ // 4. Matches specific import path (escapedImportPath)
871
+ const importRegExp = new RegExp(`(import\\s*\\{[^}]*?)\\b${escapeRegExp(firstPart)}\\b(?:,\\s*|\\s*,)?((?:[^}]*\\}\\s*from\\s*['"]${escapedImportPath}['"];?))`, 'm');
872
+ // Check if any call signature has multiple parts (e.g., "logger.error(error)")
873
+ // If so, the mock code will spread from __cyOriginal, so we need to rename the import
874
+ // EXCEPT:
875
+ // 1. For node_module imports, the __cyOriginal pattern doesn't work because
876
+ // the original package doesn't export *__cyOriginal variants.
877
+ // 2. For package imports (starting with @), the __cyOriginal pattern doesn't work
878
+ // because scenario copies aren't created for package files - they keep the
879
+ // original import path which doesn't export *__cyOriginal.
880
+ const anyCallHasMultipleParts = importedExport.calls?.some((call) => {
881
+ const callParts = splitOutsideParenthesesAndArrays(call);
882
+ return callParts.length > 1;
883
+ });
884
+ // Package imports (starting with @) don't get scenario copies, so __cyOriginal won't exist
885
+ const isPackageImport = importPath.startsWith('@');
886
+ const shouldRenameToOriginal = !importedExport.isNodeModule &&
887
+ !isPackageImport &&
888
+ (importedExportNameParts.length > 1 || anyCallHasMultipleParts);
889
+ if (shouldRenameToOriginal) {
745
890
  fileContent = fileContent.replace(importRegExp, `$1${firstPart}__cyOriginal$2`);
746
891
  }
747
892
  else {
748
893
  fileContent = fileContent.replace(importRegExp, '$1$2');
749
894
  }
895
+ // Also handle namespace imports (import * as foo from '...')
896
+ // These need to be renamed to foo__cyOriginal when the mock code spreads from the original.
897
+ // Note: We match any path (not just escapedImportPath) because the import path may have
898
+ // been rewritten by transitive import handling before this code runs.
899
+ if (shouldRenameToOriginal) {
900
+ const namespaceImportRegExp = new RegExp(`(import\\s+\\*\\s+as\\s+)${escapeRegExp(firstPart)}(\\s+from\\s+['"][^'"]*['"])`, 'm');
901
+ fileContent = fileContent.replace(namespaceImportRegExp, `$1${firstPart}__cyOriginal$2`);
902
+ }
750
903
  // Remove empty imports entirely to avoid partial commenting issues with multiline imports
751
904
  // This handles both single-line and multiline empty imports
752
905
  fileContent = fileContent.replace(/import\s*\{\s*\}\s*from\s+['"][^'"]*['"];?\s*\n?/g, '');
@@ -762,7 +915,17 @@ function ${importedExport.name}() {
762
915
  // This handles imports like: import { useEnvironment, otherThing } from "any/path"
763
916
  // Removes useEnvironment but keeps otherThing
764
917
  const namedImportRegExp = new RegExp(`(import\\s*\\{[^}]*?)\\b${escapeRegExp(firstPart)}\\b(?:,\\s*|\\s*,)?((?:[^}]*\\}\\s*from\\s*['"][^'"]*['"];?))`, 'm');
765
- if (importedExportNameParts.length > 1) {
918
+ // Check if any call signature has multiple parts (e.g., "logger.error(error)")
919
+ // If so, the mock code will spread from __cyOriginal, so we need to rename the import
920
+ // EXCEPT: For node_module imports, the __cyOriginal pattern doesn't work because
921
+ // the original package doesn't export *__cyOriginal variants.
922
+ const anyCallHasMultipleParts = importedExport.calls?.some((call) => {
923
+ const callParts = splitOutsideParenthesesAndArrays(call);
924
+ return callParts.length > 1;
925
+ });
926
+ const shouldRenameToOriginal = !importedExport.isNodeModule &&
927
+ (importedExportNameParts.length > 1 || anyCallHasMultipleParts);
928
+ if (shouldRenameToOriginal) {
766
929
  // Rename the import instead of removing (for destructured access patterns)
767
930
  fileContent = fileContent.replace(namedImportRegExp, `$1${firstPart}__cyOriginal$2`);
768
931
  }
@@ -1095,9 +1258,12 @@ export default async function writeScenarioComponents({ project, file, entity, r
1095
1258
  fileContentLength: fileContent.length,
1096
1259
  });
1097
1260
  let importedExportIndex = 0;
1261
+ const loopStartTime = Date.now();
1262
+ console.log(`[WriteScenario] Starting import loop for ${entity.name}: ${sortedImportedExports.length} imports`);
1098
1263
  for (const importedExport of sortedImportedExports) {
1099
1264
  importedExportIndex++;
1100
1265
  if (importedExportIndex % 5 === 0 || importedExportIndex === 1) {
1266
+ console.log(`[WriteScenario] ${entity.name} import ${importedExportIndex}/${sortedImportedExports.length}: ${importedExport.name} elapsed=${Date.now() - loopStartTime}ms`);
1101
1267
  debugLog(`Processing importedExport ${importedExportIndex}/${sortedImportedExports.length}`, {
1102
1268
  name: importedExport.name,
1103
1269
  filePath: importedExport.filePath,
@@ -1230,6 +1396,8 @@ export default async function writeScenarioComponents({ project, file, entity, r
1230
1396
  // e.g., if file has `export default X` but parent does `import { X } from '...'`
1231
1397
  const needsNamedReExport = importedExport.resolvedIsDefault === true &&
1232
1398
  importedExport.isDefault === false;
1399
+ console.log(`[WriteScenario] RECURSE START: ${entity.name} -> ${importedExportEntity.name}`);
1400
+ const recurseStartTime = Date.now();
1233
1401
  debugLog(`Recursing into writeScenarioComponents for ${importedExportEntity.name}`, {
1234
1402
  entityName: importedExportEntity.name,
1235
1403
  filePath: fileNotMocked.path,
@@ -1252,7 +1420,8 @@ export default async function writeScenarioComponents({ project, file, entity, r
1252
1420
  exportAsNamed: needsNamedReExport
1253
1421
  ? importedExport.name
1254
1422
  : undefined,
1255
- }), 60000);
1423
+ }), 180000);
1424
+ console.log(`[WriteScenario] RECURSE END: ${entity.name} -> ${importedExportEntity.name} took ${Date.now() - recurseStartTime}ms`);
1256
1425
  debugLog(`Completed recursive writeScenarioComponents for ${importedExportEntity.name}`);
1257
1426
  writtenScenarioComponents = updatedWrittenScenarioComponents;
1258
1427
  scenarioComponentPaths.push(...newScenarioComponentPaths);
@@ -1514,6 +1683,9 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1514
1683
  }
1515
1684
  }
1516
1685
  }
1686
+ // Track post-import-loop timing
1687
+ const postLoopStartTime = Date.now();
1688
+ console.log(`[WriteScenario] POST-LOOP START: ${entity.name}`);
1517
1689
  // Collect universal mocks BEFORE processing nodeModuleImports
1518
1690
  // This is needed to check if a node module import is handled by a universal mock
1519
1691
  const universalMocks = project.metadata?.universalMocks ?? [];
@@ -1547,6 +1719,7 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1547
1719
  const importRegex = new RegExp(`(import\\s+(?:\\{[^}]*\\}|\\*\\s+as\\s+\\w+|\\w+)\\s+from\\s+)['"]${originalPath.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}['"]`, 'g');
1548
1720
  fileContent = fileContent.replace(importRegex, `$1'${mockFileRelativePath}'`);
1549
1721
  }
1722
+ console.log(`[WriteScenario] POST-LOOP ${entity.name}: node+universal mocks took ${Date.now() - postLoopStartTime}ms`);
1550
1723
  if (rootAnalysis.entitySha === entity.sha &&
1551
1724
  entity.metadata?.notExported &&
1552
1725
  entity.name !== 'default') {
@@ -1606,6 +1779,7 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1606
1779
  debugLog('Starting rewriteRelativeModuleImports');
1607
1780
  fileContent = rewriteRelativeModuleImports(fileContent, `${PROJECT_RELATIVE_PATH}/${file.path}`, scenarioComponentPath);
1608
1781
  debugLog('Completed rewriteRelativeModuleImports');
1782
+ console.log(`[WriteScenario] POST-LOOP ${entity.name}: transformations took ${Date.now() - postLoopStartTime}ms`);
1609
1783
  /**
1610
1784
  * Recursively process a file's imports to create transitive copies with server-only stripped.
1611
1785
  * This handles chains of arbitrary depth: A -> B -> C -> D where each needs server-only removed.
@@ -1619,12 +1793,14 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1619
1793
  */
1620
1794
  async function processTransitiveImportsRecursively(content, sourceFilePath, targetFilePath, visitedPaths = new Set(), depth = 0, startTime = Date.now()) {
1621
1795
  // Global timeout for entire transitive processing
1622
- const GLOBAL_TIMEOUT_MS = 60000; // 1 minute max for all transitive processing
1796
+ const GLOBAL_TIMEOUT_MS = 180000; // 3 minutes max for all transitive processing (complex components need more time)
1623
1797
  const elapsed = Date.now() - startTime;
1624
1798
  if (elapsed > GLOBAL_TIMEOUT_MS) {
1625
1799
  throw new Error(`processTransitiveImportsRecursively exceeded ${GLOBAL_TIMEOUT_MS}ms (elapsed: ${elapsed}ms) at depth=${depth} for ${sourceFilePath}`);
1626
1800
  }
1627
1801
  const importPaths = extractInternalImportPaths(content);
1802
+ // Always log to help debug timeout issues
1803
+ console.log(`[TransitiveImports] depth=${depth} file=${path.basename(sourceFilePath)} imports=${importPaths.length} visited=${visitedPaths.size} elapsed=${Date.now() - startTime}ms`);
1628
1804
  debugLog(`processTransitiveImportsRecursively depth=${depth}`, {
1629
1805
  sourceFilePath,
1630
1806
  importCount: importPaths.length,
@@ -1661,8 +1837,10 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1661
1837
  const basePath = safeFolder(importFile.path.split('/').slice(0, -1).join('/'));
1662
1838
  const extension = importFile.name.split('.').pop();
1663
1839
  const isIndex = isIndexPath(importFile.path);
1664
- const pathHash = safeFileName(importFile.path);
1665
- const transitiveFilePath = `${PROJECT_RELATIVE_PATH}/${basePath}/${pathHash}_${isIndex ? 'index_' : ''}transitive_${safeFileName(scenario.name)}.${extension}`;
1840
+ // Limit pathHash length to prevent ENAMETOOLONG errors on macOS (255 char limit)
1841
+ const pathHash = safeFileName(importFile.path, { maxLength: 80 });
1842
+ const scenarioSlug = safeFileName(scenario.name, { maxLength: 60 });
1843
+ const transitiveFilePath = `${PROJECT_RELATIVE_PATH}/${basePath}/${pathHash}_${isIndex ? 'index_' : ''}transitive_${scenarioSlug}.${extension}`;
1666
1844
  // Check if this is a circular import (we're already processing this file)
1667
1845
  const isCircularImport = visitedPaths.has(resolvedPath);
1668
1846
  // Check if already processed
@@ -1740,6 +1918,7 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1740
1918
  debugLog(`Returning from processTransitiveImportsRecursively depth=${depth}`);
1741
1919
  return modifiedContent;
1742
1920
  }
1921
+ console.log(`[WriteScenario] POST-LOOP ${entity.name}: before remaining imports ${Date.now() - postLoopStartTime}ms`);
1743
1922
  // Process remaining internal imports that weren't in importedExports
1744
1923
  // This handles transitive dependencies: when the file content includes code (e.g., from
1745
1924
  // other functions in the same file) that imports from files with "server-only"
@@ -1759,6 +1938,16 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1759
1938
  for (const importPath of remainingImportPaths) {
1760
1939
  remainingImportIndex++;
1761
1940
  debugLog(`[REMAINING LOOP] import ${remainingImportIndex}/${remainingImportPaths.length}: ${importPath}`);
1941
+ // Skip imports that point to generated CodeYam files (same skip logic as
1942
+ // rewriteRelativeModuleImports). Without this, MockData files from earlier
1943
+ // captures that get discovered by the TypeScript compiler would be treated as
1944
+ // regular imports, creating transitive copies with stale content.
1945
+ const scenarioFilePattern = /[a-f0-9]{64}_\w+_[A-Z]\w*$/;
1946
+ const mockDataPattern = /__codeyamMocks__\//;
1947
+ if (scenarioFilePattern.test(importPath) ||
1948
+ mockDataPattern.test(importPath)) {
1949
+ continue;
1950
+ }
1762
1951
  // Resolve the import path to a project file path
1763
1952
  const resolvedFilePath = resolveImportPath(importPath, file.path, project);
1764
1953
  if (!resolvedFilePath) {
@@ -1797,8 +1986,10 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1797
1986
  const targetFileBasePath = safeFolder(targetFile.path.split('/').slice(0, -1).join('/'));
1798
1987
  const targetFileExtension = targetFile.name.split('.').pop();
1799
1988
  const targetFileIsIndex = isIndexPath(targetFile.path);
1800
- const filePathHash = safeFileName(targetFile.path);
1801
- const transformedFilePath = `${PROJECT_RELATIVE_PATH}/${targetFileBasePath}/${filePathHash}_${targetFileIsIndex ? 'index_' : ''}transitive_${safeFileName(scenario.name)}.${targetFileExtension}`;
1989
+ // Limit path hash length to prevent ENAMETOOLONG errors
1990
+ const filePathHash = safeFileName(targetFile.path, { maxLength: 80 });
1991
+ const targetScenarioSlug = safeFileName(scenario.name, { maxLength: 60 });
1992
+ const transformedFilePath = `${PROJECT_RELATIVE_PATH}/${targetFileBasePath}/${filePathHash}_${targetFileIsIndex ? 'index_' : ''}transitive_${targetScenarioSlug}.${targetFileExtension}`;
1802
1993
  // Check if we've already processed this file as a transitive copy
1803
1994
  // Note: __data_file_written__ is for entity-specific scenario files with different naming,
1804
1995
  // but we still need transitive copies for server-only stripping. Data entity files may
@@ -1837,8 +2028,12 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1837
2028
  const nestedBasePath = safeFolder(nestedFile.path.split('/').slice(0, -1).join('/'));
1838
2029
  const nestedExtension = nestedFile.name.split('.').pop();
1839
2030
  const nestedIsIndex = isIndexPath(nestedFile.path);
1840
- const nestedPathHash = safeFileName(nestedFile.path);
1841
- const nestedTransformedPath = `${PROJECT_RELATIVE_PATH}/${nestedBasePath}/${nestedPathHash}_${nestedIsIndex ? 'index_' : ''}transitive_${safeFileName(scenario.name)}.${nestedExtension}`;
2031
+ // Limit path hash length to prevent ENAMETOOLONG errors
2032
+ const nestedPathHash = safeFileName(nestedFile.path, { maxLength: 80 });
2033
+ const nestedScenarioSlug = safeFileName(scenario.name, {
2034
+ maxLength: 60,
2035
+ });
2036
+ const nestedTransformedPath = `${PROJECT_RELATIVE_PATH}/${nestedBasePath}/${nestedPathHash}_${nestedIsIndex ? 'index_' : ''}transitive_${nestedScenarioSlug}.${nestedExtension}`;
1842
2037
  // Check if already processed as a transitive file (we can rewrite to point to it)
1843
2038
  // Note: __data_file_written__ is for entity-specific scenario files with different naming,
1844
2039
  // but we still need transitive copies for server-only stripping in the import chain
@@ -1904,6 +2099,7 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1904
2099
  const importRegex = new RegExp(`(from\\s*["'])${escapedImportPath}(["'])`, 'g');
1905
2100
  fileContent = fileContent.replace(importRegex, `$1${safeRelativePath}$2`);
1906
2101
  }
2102
+ console.log(`[WriteScenario] POST-LOOP ${entity.name}: remaining imports loop took ${Date.now() - postLoopStartTime}ms`);
1907
2103
  const scenarioComponentComment = `// This file is auto-generated by CodeYam. Do not edit this file manually.
1908
2104
  // This file contains content for a scenario component:
1909
2105
  // Analyses being written: ${JSON.stringify(fileAnalyses?.map((a) => ({ id: a.id, entityName: a.entityName })))}
@@ -1914,6 +2110,23 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1914
2110
  // Entity: ${rootAnalysis.entitySha} ${rootAnalysis.entityName}
1915
2111
  // Scenario: ${scenario.id} - ${scenario.name}
1916
2112
  `;
2113
+ // Final pass: Rename any namespace imports (import * as X from '...') that have
2114
+ // corresponding mock code using ...X__cyOriginal spread pattern.
2115
+ // This handles cases where:
2116
+ // 1. The import path was rewritten by transitive import handling
2117
+ // 2. The import wasn't caught by the earlier renaming logic
2118
+ // We scan for all __cyOriginal references in the mock code and ensure the imports are renamed.
2119
+ const cyOriginalReferences = fileContent.match(/\.\.\.(\w+)__cyOriginal/g);
2120
+ if (cyOriginalReferences) {
2121
+ const uniqueNames = [
2122
+ ...new Set(cyOriginalReferences.map((ref) => ref.replace('...', '').replace('__cyOriginal', ''))),
2123
+ ];
2124
+ for (const name of uniqueNames) {
2125
+ // Match namespace imports for this name that haven't been renamed yet
2126
+ const namespaceImportRegex = new RegExp(`(import\\s+\\*\\s+as\\s+)${escapeRegExp(name)}(\\s+from\\s+['"][^'"]*['"])`, 'g');
2127
+ fileContent = fileContent.replace(namespaceImportRegex, `$1${name}__cyOriginal$2`);
2128
+ }
2129
+ }
1917
2130
  // Use the directive that was extracted at the beginning of processing
1918
2131
  // This ensures it stays at the very top even after imports are prepended
1919
2132
  // NOTE: We only preserve "use client" directives, NOT "use server" directives.
@@ -1934,6 +2147,7 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1934
2147
  await writeFile(scenarioComponentPath, finalContent);
1935
2148
  debugLog('Successfully wrote scenario file');
1936
2149
  scenarioComponentPaths.push(scenarioComponentPath);
2150
+ console.log(`[WriteScenario] POST-LOOP ${entity.name}: COMPLETE total=${Date.now() - postLoopStartTime}ms`);
1937
2151
  return { scenarioComponentPaths, writtenScenarioComponents };
1938
2152
  }
1939
2153
  //# sourceMappingURL=writeScenarioComponents.js.map