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

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 (1345) 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 +32 -29
  5. package/analyzer-template/packages/ai/index.ts +21 -5
  6. package/analyzer-template/packages/ai/package.json +4 -4
  7. package/analyzer-template/packages/ai/src/lib/__mocks__/completionCall.ts +122 -0
  8. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +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 +239 -13
  11. package/analyzer-template/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.ts +644 -0
  12. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +181 -23
  13. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
  14. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.ts +18 -0
  15. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +38 -1
  16. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.ts +181 -1
  17. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +1507 -117
  18. package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
  19. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +324 -5
  20. package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +29 -10
  21. package/analyzer-template/packages/ai/src/lib/completionCall.ts +247 -66
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +2511 -380
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +7 -2
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +296 -35
  25. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +120 -76
  26. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +16 -3
  27. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +6 -4
  28. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +54 -3
  29. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +161 -19
  30. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
  31. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.ts +62 -0
  32. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +163 -14
  33. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.ts +98 -0
  34. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +179 -0
  35. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.ts +40 -30
  36. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +396 -88
  37. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.ts +129 -0
  38. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.ts +35 -0
  39. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +183 -0
  40. package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
  41. package/analyzer-template/packages/ai/src/lib/e2eDataTracking.ts +334 -0
  42. package/analyzer-template/packages/ai/src/lib/extractCriticalDataKeys.ts +120 -0
  43. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +74 -7
  44. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +89 -112
  45. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +59 -3
  46. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +1497 -92
  47. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +216 -109
  48. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +677 -0
  49. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
  50. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +2484 -0
  51. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +239 -0
  52. package/analyzer-template/packages/ai/src/lib/getConditionalUsagesFromCode.ts +143 -31
  53. package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +8 -2
  54. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +328 -7
  55. package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
  56. package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +111 -87
  57. package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
  58. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +17 -7
  59. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +1 -1
  60. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +32 -102
  61. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChunkPrompt.ts +82 -0
  62. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateCriticalKeysPrompt.ts +103 -0
  63. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +110 -6
  64. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +14 -53
  65. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
  66. package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +28 -2
  67. package/analyzer-template/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.ts +391 -0
  68. package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +824 -0
  69. package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +5 -1
  70. package/analyzer-template/packages/ai/src/lib/validateExecutionFlowPaths.ts +531 -0
  71. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +127 -3
  72. package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +114 -2
  73. package/analyzer-template/packages/analyze/index.ts +2 -0
  74. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +79 -59
  75. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +132 -33
  76. package/analyzer-template/packages/analyze/src/lib/analysisContext.ts +44 -4
  77. package/analyzer-template/packages/analyze/src/lib/asts/index.ts +7 -2
  78. package/analyzer-template/packages/analyze/src/lib/asts/nodes/getNodeType.ts +1 -0
  79. package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +1 -0
  80. package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
  81. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +19 -0
  82. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +19 -0
  83. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +11 -0
  84. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +8 -0
  85. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +49 -1
  86. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +2 -1
  87. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +532 -275
  88. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +42 -1
  89. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +15 -0
  90. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +4 -2
  91. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +33 -10
  92. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +31 -15
  93. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +11 -7
  94. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +11 -12
  95. package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +4 -5
  96. package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
  97. package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +14 -12
  98. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1352 -0
  99. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +201 -46
  100. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
  101. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +670 -74
  102. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.ts +1 -1
  103. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +28 -62
  104. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +463 -45
  105. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +166 -0
  106. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +78 -83
  107. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +4 -8
  108. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +990 -141
  109. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +56 -11
  110. package/analyzer-template/packages/analyze/src/lib/files/scenarios/propagateArrayItemSchemas.ts +474 -0
  111. package/analyzer-template/packages/analyze/src/lib/files/setImportedExports.ts +2 -1
  112. package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
  113. package/analyzer-template/packages/analyze/src/lib/utils/getFileByPath.ts +19 -0
  114. package/analyzer-template/packages/aws/codebuild/index.ts +1 -0
  115. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +11 -1
  116. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -1
  117. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +29 -18
  118. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -1
  119. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +2 -2
  120. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -1
  121. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +2 -2
  122. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  123. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +8 -18
  124. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -1
  125. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +17 -61
  126. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  127. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts +15 -0
  128. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts.map +1 -0
  129. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js +31 -0
  130. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js.map +1 -0
  131. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -1
  132. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +8 -1
  133. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -1
  134. package/analyzer-template/packages/aws/package.json +10 -10
  135. package/analyzer-template/packages/aws/s3/index.ts +1 -0
  136. package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +43 -19
  137. package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +3 -3
  138. package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +17 -69
  139. package/analyzer-template/packages/aws/src/lib/s3/checkS3ObjectExists.ts +47 -0
  140. package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +8 -1
  141. package/analyzer-template/packages/database/index.ts +1 -0
  142. package/analyzer-template/packages/database/package.json +4 -4
  143. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  144. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  145. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  146. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  147. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  148. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  149. package/analyzer-template/packages/database/src/lib/kysely/db.ts +26 -5
  150. package/analyzer-template/packages/database/src/lib/kysely/tableRelations.ts +2 -2
  151. package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +6 -0
  152. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +36 -9
  153. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +93 -0
  154. package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
  155. package/analyzer-template/packages/database/src/lib/loadAnalyses.ts +58 -1
  156. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +13 -0
  157. package/analyzer-template/packages/database/src/lib/loadBranch.ts +16 -1
  158. package/analyzer-template/packages/database/src/lib/loadCommit.ts +11 -0
  159. package/analyzer-template/packages/database/src/lib/loadCommits.ts +58 -19
  160. package/analyzer-template/packages/database/src/lib/loadEntities.ts +26 -9
  161. package/analyzer-template/packages/database/src/lib/loadEntityBranches.ts +12 -0
  162. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +5 -6
  163. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  164. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  165. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  166. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +96 -152
  167. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatus.ts +58 -42
  168. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.ts +81 -65
  169. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  170. package/analyzer-template/packages/generate/index.ts +3 -0
  171. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +17 -1
  172. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +221 -0
  173. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
  174. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +33 -5
  175. package/analyzer-template/packages/generate/src/lib/deepMerge.ts +26 -1
  176. package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
  177. package/analyzer-template/packages/github/dist/database/index.d.ts +1 -0
  178. package/analyzer-template/packages/github/dist/database/index.d.ts.map +1 -1
  179. package/analyzer-template/packages/github/dist/database/index.js +1 -0
  180. package/analyzer-template/packages/github/dist/database/index.js.map +1 -1
  181. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
  182. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
  183. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
  184. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
  185. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
  186. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
  187. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
  188. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
  189. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
  190. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
  191. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
  192. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
  193. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +6 -2
  194. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  195. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +18 -3
  196. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  197. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelations.d.ts +2 -2
  198. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +1 -11
  199. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -1
  200. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts +1 -0
  201. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts.map +1 -1
  202. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js +3 -0
  203. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  204. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +30 -7
  205. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -1
  206. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
  207. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  208. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +25 -0
  209. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -0
  210. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +76 -0
  211. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  212. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts +1 -0
  213. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -1
  214. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
  215. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
  216. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  217. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  218. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +7 -6
  219. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  220. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts +2 -0
  221. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts.map +1 -1
  222. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js +45 -2
  223. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js.map +1 -1
  224. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  225. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +8 -0
  226. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  227. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js +11 -1
  228. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js.map +1 -1
  229. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.d.ts.map +1 -1
  230. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js +7 -0
  231. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js.map +1 -1
  232. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts +3 -1
  233. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  234. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +45 -14
  235. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  236. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts +3 -1
  237. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  238. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +23 -10
  239. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  240. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.d.ts.map +1 -1
  241. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js +9 -0
  242. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js.map +1 -1
  243. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  244. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +5 -5
  245. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  246. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
  247. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
  248. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
  249. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
  250. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
  251. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
  252. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts +2 -2
  253. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  254. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +76 -89
  255. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  256. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.d.ts.map +1 -1
  257. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  258. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  259. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts.map +1 -1
  260. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  261. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  262. package/analyzer-template/packages/github/dist/generate/index.d.ts +3 -0
  263. package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -1
  264. package/analyzer-template/packages/github/dist/generate/index.js +3 -0
  265. package/analyzer-template/packages/github/dist/generate/index.js.map +1 -1
  266. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
  267. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  268. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  269. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts +9 -0
  270. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -0
  271. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +217 -0
  272. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  273. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts +20 -0
  274. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts.map +1 -0
  275. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  276. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  277. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
  278. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  279. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  280. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.d.ts.map +1 -1
  281. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js +27 -1
  282. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js.map +1 -1
  283. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts +8 -0
  284. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts.map +1 -0
  285. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js +89 -0
  286. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  287. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -1
  288. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +10 -0
  289. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -1
  290. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -1
  291. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +3 -0
  292. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -1
  293. package/analyzer-template/packages/github/dist/types/index.d.ts +2 -2
  294. package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
  295. package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
  296. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  297. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  298. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js +2 -0
  299. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js.map +1 -1
  300. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +87 -13
  301. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
  302. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts +2 -0
  303. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts.map +1 -1
  304. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +2 -0
  305. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -1
  306. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +8 -0
  307. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  308. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +21 -6
  309. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  310. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +199 -3
  311. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  312. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  313. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  314. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +2 -0
  315. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  316. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts +9 -1
  317. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  318. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +29 -3
  319. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -1
  320. package/analyzer-template/packages/github/package.json +2 -2
  321. package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +14 -0
  322. package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +2 -0
  323. package/analyzer-template/packages/process/index.ts +2 -0
  324. package/analyzer-template/packages/process/package.json +12 -0
  325. package/analyzer-template/packages/process/tsconfig.json +8 -0
  326. package/analyzer-template/packages/types/index.ts +5 -0
  327. package/analyzer-template/packages/types/src/enums/ProjectFramework.ts +2 -0
  328. package/analyzer-template/packages/types/src/types/Analysis.ts +104 -13
  329. package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
  330. package/analyzer-template/packages/types/src/types/Entity.ts +2 -0
  331. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +8 -0
  332. package/analyzer-template/packages/types/src/types/Scenario.ts +21 -10
  333. package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +228 -3
  334. package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
  335. package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
  336. package/analyzer-template/packages/ui-components/package.json +1 -1
  337. package/analyzer-template/packages/utils/dist/types/index.d.ts +2 -2
  338. package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
  339. package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
  340. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  341. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  342. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js +2 -0
  343. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js.map +1 -1
  344. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +87 -13
  345. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
  346. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts +2 -0
  347. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts.map +1 -1
  348. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +2 -0
  349. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -1
  350. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +8 -0
  351. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  352. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +21 -6
  353. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  354. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +199 -3
  355. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  356. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  357. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  358. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +2 -0
  359. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  360. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  361. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +98 -3
  362. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  363. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +9 -1
  364. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  365. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +29 -3
  366. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -1
  367. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +121 -3
  368. package/analyzer-template/packages/utils/src/lib/safeFileName.ts +48 -3
  369. package/analyzer-template/playwright/capture.ts +57 -26
  370. package/analyzer-template/playwright/captureFromUrl.ts +89 -82
  371. package/analyzer-template/playwright/captureStatic.ts +1 -1
  372. package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
  373. package/analyzer-template/playwright/waitForServer.ts +21 -6
  374. package/analyzer-template/project/analyzeBaselineCommit.ts +9 -0
  375. package/analyzer-template/project/analyzeBranchCommit.ts +4 -0
  376. package/analyzer-template/project/analyzeFileEntities.ts +4 -0
  377. package/analyzer-template/project/analyzeRegularCommit.ts +9 -0
  378. package/analyzer-template/project/captureLibraryFunctionDirect.ts +29 -26
  379. package/analyzer-template/project/constructMockCode.ts +1341 -189
  380. package/analyzer-template/project/controller/startController.ts +16 -1
  381. package/analyzer-template/project/createEntitiesAndSortFiles.ts +83 -0
  382. package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
  383. package/analyzer-template/project/loadReadyToBeCaptured.ts +65 -41
  384. package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
  385. package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
  386. package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +3 -6
  387. package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +18 -7
  388. package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
  389. package/analyzer-template/project/orchestrateCapture.ts +85 -10
  390. package/analyzer-template/project/reconcileMockDataKeys.ts +251 -3
  391. package/analyzer-template/project/runAnalysis.ts +11 -0
  392. package/analyzer-template/project/serverOnlyModules.ts +127 -2
  393. package/analyzer-template/project/start.ts +54 -15
  394. package/analyzer-template/project/startScenarioCapture.ts +15 -0
  395. package/analyzer-template/project/writeClientLogRoute.ts +125 -0
  396. package/analyzer-template/project/writeMockDataTsx.ts +420 -61
  397. package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
  398. package/analyzer-template/project/writeScenarioComponents.ts +503 -113
  399. package/analyzer-template/project/writeScenarioFiles.ts +26 -0
  400. package/analyzer-template/project/writeSimpleRoot.ts +31 -23
  401. package/analyzer-template/scripts/comboWorkerLoop.cjs +99 -50
  402. package/analyzer-template/scripts/defaultCmd.sh +9 -0
  403. package/analyzer-template/tsconfig.json +14 -1
  404. package/background/src/lib/local/createLocalAnalyzer.js +2 -30
  405. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  406. package/background/src/lib/local/execAsync.js +1 -1
  407. package/background/src/lib/local/execAsync.js.map +1 -1
  408. package/background/src/lib/virtualized/common/execAsync.js +1 -1
  409. package/background/src/lib/virtualized/common/execAsync.js.map +1 -1
  410. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +7 -1
  411. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
  412. package/background/src/lib/virtualized/project/analyzeBranchCommit.js +2 -1
  413. package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -1
  414. package/background/src/lib/virtualized/project/analyzeFileEntities.js +2 -1
  415. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  416. package/background/src/lib/virtualized/project/analyzeRegularCommit.js +7 -1
  417. package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
  418. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +3 -3
  419. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -1
  420. package/background/src/lib/virtualized/project/constructMockCode.js +1179 -140
  421. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  422. package/background/src/lib/virtualized/project/controller/startController.js +11 -1
  423. package/background/src/lib/virtualized/project/controller/startController.js.map +1 -1
  424. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +73 -1
  425. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -1
  426. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +6 -3
  427. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -1
  428. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +19 -8
  429. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
  430. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +7 -7
  431. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -1
  432. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js +2 -2
  433. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -1
  434. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +3 -2
  435. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
  436. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +7 -5
  437. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
  438. package/background/src/lib/virtualized/project/orchestrateCapture.js +69 -11
  439. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  440. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +211 -3
  441. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  442. package/background/src/lib/virtualized/project/runAnalysis.js +9 -0
  443. package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
  444. package/background/src/lib/virtualized/project/serverOnlyModules.js +106 -3
  445. package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -1
  446. package/background/src/lib/virtualized/project/start.js +49 -15
  447. package/background/src/lib/virtualized/project/start.js.map +1 -1
  448. package/background/src/lib/virtualized/project/startScenarioCapture.js +12 -0
  449. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  450. package/background/src/lib/virtualized/project/writeClientLogRoute.js +110 -0
  451. package/background/src/lib/virtualized/project/writeClientLogRoute.js.map +1 -0
  452. package/background/src/lib/virtualized/project/writeMockDataTsx.js +362 -50
  453. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  454. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js +15 -0
  455. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js.map +1 -0
  456. package/background/src/lib/virtualized/project/writeScenarioComponents.js +384 -93
  457. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  458. package/background/src/lib/virtualized/project/writeScenarioFiles.js +19 -0
  459. package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -1
  460. package/background/src/lib/virtualized/project/writeSimpleRoot.js +31 -21
  461. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  462. package/codeyam-cli/scripts/apply-setup.js +386 -9
  463. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  464. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js +196 -0
  465. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js.map +1 -0
  466. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js +114 -0
  467. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js.map +1 -0
  468. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js +149 -0
  469. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js.map +1 -0
  470. package/codeyam-cli/src/cli.js +38 -23
  471. package/codeyam-cli/src/cli.js.map +1 -1
  472. package/codeyam-cli/src/codeyam-cli.js +18 -2
  473. package/codeyam-cli/src/codeyam-cli.js.map +1 -1
  474. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js +45 -0
  475. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js.map +1 -0
  476. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js +101 -47
  477. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js.map +1 -1
  478. package/codeyam-cli/src/commands/analyze.js +22 -10
  479. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  480. package/codeyam-cli/src/commands/baseline.js +176 -0
  481. package/codeyam-cli/src/commands/baseline.js.map +1 -0
  482. package/codeyam-cli/src/commands/debug.js +37 -23
  483. package/codeyam-cli/src/commands/debug.js.map +1 -1
  484. package/codeyam-cli/src/commands/default.js +43 -35
  485. package/codeyam-cli/src/commands/default.js.map +1 -1
  486. package/codeyam-cli/src/commands/editor.js +3215 -0
  487. package/codeyam-cli/src/commands/editor.js.map +1 -0
  488. package/codeyam-cli/src/commands/init.js +146 -292
  489. package/codeyam-cli/src/commands/init.js.map +1 -1
  490. package/codeyam-cli/src/commands/memory.js +278 -0
  491. package/codeyam-cli/src/commands/memory.js.map +1 -0
  492. package/codeyam-cli/src/commands/recapture.js +31 -18
  493. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  494. package/codeyam-cli/src/commands/report.js +72 -24
  495. package/codeyam-cli/src/commands/report.js.map +1 -1
  496. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  497. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  498. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  499. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  500. package/codeyam-cli/src/commands/start.js +8 -12
  501. package/codeyam-cli/src/commands/start.js.map +1 -1
  502. package/codeyam-cli/src/commands/status.js +23 -1
  503. package/codeyam-cli/src/commands/status.js.map +1 -1
  504. package/codeyam-cli/src/commands/test-startup.js +3 -1
  505. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  506. package/codeyam-cli/src/commands/verify.js +14 -2
  507. package/codeyam-cli/src/commands/verify.js.map +1 -1
  508. package/codeyam-cli/src/commands/wipe.js +108 -0
  509. package/codeyam-cli/src/commands/wipe.js.map +1 -0
  510. package/codeyam-cli/src/data/techStacks.js +77 -0
  511. package/codeyam-cli/src/data/techStacks.js.map +1 -0
  512. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js +144 -0
  513. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js.map +1 -0
  514. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js +46 -0
  515. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js.map +1 -0
  516. package/codeyam-cli/src/utils/__tests__/devServerState.test.js +134 -0
  517. package/codeyam-cli/src/utils/__tests__/devServerState.test.js.map +1 -0
  518. package/codeyam-cli/src/utils/__tests__/editorApi.test.js +127 -0
  519. package/codeyam-cli/src/utils/__tests__/editorApi.test.js.map +1 -0
  520. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +855 -0
  521. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -0
  522. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js +93 -0
  523. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js.map +1 -0
  524. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js +304 -0
  525. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js.map +1 -0
  526. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js +121 -0
  527. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js.map +1 -0
  528. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js +294 -0
  529. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js.map +1 -0
  530. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js +542 -0
  531. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js.map +1 -0
  532. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js +520 -0
  533. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js.map +1 -0
  534. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js +270 -0
  535. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js.map +1 -0
  536. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js +217 -0
  537. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js.map +1 -0
  538. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js +339 -0
  539. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js.map +1 -0
  540. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js +153 -0
  541. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js.map +1 -0
  542. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js +139 -0
  543. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js.map +1 -0
  544. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js +221 -0
  545. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js.map +1 -0
  546. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +855 -0
  547. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -0
  548. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js +213 -0
  549. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js.map +1 -0
  550. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +1742 -0
  551. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -0
  552. package/codeyam-cli/src/utils/__tests__/git.editor.test.js +134 -0
  553. package/codeyam-cli/src/utils/__tests__/git.editor.test.js.map +1 -0
  554. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js +107 -0
  555. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js.map +1 -0
  556. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +185 -0
  557. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
  558. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js +101 -0
  559. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js.map +1 -0
  560. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js +9 -0
  561. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js.map +1 -1
  562. package/codeyam-cli/src/utils/__tests__/project.test.js +65 -0
  563. package/codeyam-cli/src/utils/__tests__/project.test.js.map +1 -0
  564. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js +227 -0
  565. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js.map +1 -0
  566. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js +121 -0
  567. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js.map +1 -0
  568. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +300 -0
  569. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -0
  570. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
  571. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
  572. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +174 -82
  573. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  574. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js +51 -0
  575. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js.map +1 -0
  576. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js +142 -0
  577. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js.map +1 -0
  578. package/codeyam-cli/src/utils/analysisRunner.js +29 -15
  579. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  580. package/codeyam-cli/src/utils/analyzer.js +16 -0
  581. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  582. package/codeyam-cli/src/utils/analyzerFinalization.js +96 -0
  583. package/codeyam-cli/src/utils/analyzerFinalization.js.map +1 -0
  584. package/codeyam-cli/src/utils/backgroundServer.js +202 -29
  585. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  586. package/codeyam-cli/src/utils/buildFlags.js +4 -0
  587. package/codeyam-cli/src/utils/buildFlags.js.map +1 -0
  588. package/codeyam-cli/src/utils/database.js +128 -7
  589. package/codeyam-cli/src/utils/database.js.map +1 -1
  590. package/codeyam-cli/src/utils/devModeEvents.js +40 -0
  591. package/codeyam-cli/src/utils/devModeEvents.js.map +1 -0
  592. package/codeyam-cli/src/utils/devServerState.js +71 -0
  593. package/codeyam-cli/src/utils/devServerState.js.map +1 -0
  594. package/codeyam-cli/src/utils/editorApi.js +73 -0
  595. package/codeyam-cli/src/utils/editorApi.js.map +1 -0
  596. package/codeyam-cli/src/utils/editorAudit.js +176 -0
  597. package/codeyam-cli/src/utils/editorAudit.js.map +1 -0
  598. package/codeyam-cli/src/utils/editorCapture.js +102 -0
  599. package/codeyam-cli/src/utils/editorCapture.js.map +1 -0
  600. package/codeyam-cli/src/utils/editorDevServer.js +197 -0
  601. package/codeyam-cli/src/utils/editorDevServer.js.map +1 -0
  602. package/codeyam-cli/src/utils/editorEntityChangeStatus.js +44 -0
  603. package/codeyam-cli/src/utils/editorEntityChangeStatus.js.map +1 -0
  604. package/codeyam-cli/src/utils/editorImageVerifier.js +155 -0
  605. package/codeyam-cli/src/utils/editorImageVerifier.js.map +1 -0
  606. package/codeyam-cli/src/utils/editorJournal.js +225 -0
  607. package/codeyam-cli/src/utils/editorJournal.js.map +1 -0
  608. package/codeyam-cli/src/utils/editorLoaderHelpers.js +113 -0
  609. package/codeyam-cli/src/utils/editorLoaderHelpers.js.map +1 -0
  610. package/codeyam-cli/src/utils/editorMockState.js +248 -0
  611. package/codeyam-cli/src/utils/editorMockState.js.map +1 -0
  612. package/codeyam-cli/src/utils/editorPreloadHelpers.js +135 -0
  613. package/codeyam-cli/src/utils/editorPreloadHelpers.js.map +1 -0
  614. package/codeyam-cli/src/utils/editorPreview.js +132 -0
  615. package/codeyam-cli/src/utils/editorPreview.js.map +1 -0
  616. package/codeyam-cli/src/utils/editorScenarioSwitch.js +112 -0
  617. package/codeyam-cli/src/utils/editorScenarioSwitch.js.map +1 -0
  618. package/codeyam-cli/src/utils/editorScenarios.js +332 -0
  619. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -0
  620. package/codeyam-cli/src/utils/editorSeedAdapter.js +173 -0
  621. package/codeyam-cli/src/utils/editorSeedAdapter.js.map +1 -0
  622. package/codeyam-cli/src/utils/entityChangeStatus.js +349 -0
  623. package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -0
  624. package/codeyam-cli/src/utils/entityChangeStatus.server.js +158 -0
  625. package/codeyam-cli/src/utils/entityChangeStatus.server.js.map +1 -0
  626. package/codeyam-cli/src/utils/fileMetadata.js +5 -0
  627. package/codeyam-cli/src/utils/fileMetadata.js.map +1 -1
  628. package/codeyam-cli/src/utils/fileWatcher.js +25 -9
  629. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  630. package/codeyam-cli/src/utils/generateReport.js +253 -106
  631. package/codeyam-cli/src/utils/generateReport.js.map +1 -1
  632. package/codeyam-cli/src/utils/git.js +182 -0
  633. package/codeyam-cli/src/utils/git.js.map +1 -0
  634. package/codeyam-cli/src/utils/install-skills.js +120 -39
  635. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  636. package/codeyam-cli/src/utils/interactiveSyncWatcher.js +126 -0
  637. package/codeyam-cli/src/utils/interactiveSyncWatcher.js.map +1 -0
  638. package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
  639. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
  640. package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
  641. package/codeyam-cli/src/utils/npmVersionCheck.js.map +1 -0
  642. package/codeyam-cli/src/utils/parseRegisterArg.js +31 -0
  643. package/codeyam-cli/src/utils/parseRegisterArg.js.map +1 -0
  644. package/codeyam-cli/src/utils/pathIgnoring.js +19 -7
  645. package/codeyam-cli/src/utils/pathIgnoring.js.map +1 -1
  646. package/codeyam-cli/src/utils/progress.js +7 -0
  647. package/codeyam-cli/src/utils/progress.js.map +1 -1
  648. package/codeyam-cli/src/utils/project.js +15 -5
  649. package/codeyam-cli/src/utils/project.js.map +1 -1
  650. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js +11 -11
  651. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js.map +1 -1
  652. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +60 -0
  653. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
  654. package/codeyam-cli/src/utils/queue/heartbeat.js +13 -5
  655. package/codeyam-cli/src/utils/queue/heartbeat.js.map +1 -1
  656. package/codeyam-cli/src/utils/queue/job.js +208 -19
  657. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  658. package/codeyam-cli/src/utils/queue/manager.js +26 -7
  659. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  660. package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
  661. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  662. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  663. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
  664. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
  665. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +229 -0
  666. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
  667. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
  668. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
  669. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
  670. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
  671. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
  672. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
  673. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
  674. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
  675. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +74 -0
  676. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
  677. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +376 -0
  678. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
  679. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +113 -0
  680. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
  681. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
  682. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
  683. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
  684. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
  685. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
  686. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
  687. package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
  688. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
  689. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
  690. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
  691. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
  692. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
  693. package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
  694. package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
  695. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js +83 -0
  696. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js.map +1 -0
  697. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js +118 -0
  698. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js.map +1 -0
  699. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js +72 -0
  700. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js.map +1 -0
  701. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
  702. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
  703. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js +76 -0
  704. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js.map +1 -0
  705. package/codeyam-cli/src/utils/rules/index.js +7 -0
  706. package/codeyam-cli/src/utils/rules/index.js.map +1 -0
  707. package/codeyam-cli/src/utils/rules/parser.js +93 -0
  708. package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
  709. package/codeyam-cli/src/utils/rules/pathMatcher.js +49 -0
  710. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
  711. package/codeyam-cli/src/utils/rules/rulePlacement.js +65 -0
  712. package/codeyam-cli/src/utils/rules/rulePlacement.js.map +1 -0
  713. package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
  714. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
  715. package/codeyam-cli/src/utils/rules/sourceFiles.js +43 -0
  716. package/codeyam-cli/src/utils/rules/sourceFiles.js.map +1 -0
  717. package/codeyam-cli/src/utils/rules/staleness.js +137 -0
  718. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
  719. package/codeyam-cli/src/utils/scenarioCoverage.js +75 -0
  720. package/codeyam-cli/src/utils/scenarioCoverage.js.map +1 -0
  721. package/codeyam-cli/src/utils/scenarioMarkers.js +134 -0
  722. package/codeyam-cli/src/utils/scenarioMarkers.js.map +1 -0
  723. package/codeyam-cli/src/utils/scenariosManifest.js +159 -0
  724. package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -0
  725. package/codeyam-cli/src/utils/serverState.js +94 -12
  726. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  727. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +95 -45
  728. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  729. package/codeyam-cli/src/utils/simulationGateMiddleware.js +166 -0
  730. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -0
  731. package/codeyam-cli/src/utils/slugUtils.js +25 -0
  732. package/codeyam-cli/src/utils/slugUtils.js.map +1 -0
  733. package/codeyam-cli/src/utils/syncMocksMiddleware.js +7 -26
  734. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  735. package/codeyam-cli/src/utils/testRunner.js +158 -0
  736. package/codeyam-cli/src/utils/testRunner.js.map +1 -0
  737. package/codeyam-cli/src/utils/transcriptPruning.js +67 -0
  738. package/codeyam-cli/src/utils/transcriptPruning.js.map +1 -0
  739. package/codeyam-cli/src/utils/versionInfo.js +67 -15
  740. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  741. package/codeyam-cli/src/utils/webappDetection.js +35 -2
  742. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  743. package/codeyam-cli/src/utils/wipe.js +128 -0
  744. package/codeyam-cli/src/utils/wipe.js.map +1 -0
  745. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js +40 -0
  746. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js.map +1 -0
  747. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js +66 -0
  748. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
  749. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +567 -0
  750. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -0
  751. package/codeyam-cli/src/webserver/app/lib/clientErrors.js +65 -0
  752. package/codeyam-cli/src/webserver/app/lib/clientErrors.js.map +1 -0
  753. package/codeyam-cli/src/webserver/app/lib/database.js +129 -50
  754. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  755. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  756. package/codeyam-cli/src/webserver/app/lib/git.js +397 -0
  757. package/codeyam-cli/src/webserver/app/lib/git.js.map +1 -0
  758. package/codeyam-cli/src/webserver/backgroundServer.js +168 -21
  759. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  760. package/codeyam-cli/src/webserver/bootstrap.js +51 -0
  761. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
  762. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-BPXZwM4t.js +1 -0
  763. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-BcgbViKV.js +11 -0
  764. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-CMjhlvyu.js → EntityTypeBadge-g3saevPb.js} +1 -1
  765. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-CQIG2qda.js +41 -0
  766. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-Bu6c6aDe.js +1 -0
  767. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-DYFW3lDD.js +25 -0
  768. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-DXN1aCbt.js → LibraryFunctionPreview-DLeucoVX.js} +1 -1
  769. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-BmEO4Lqa.js → LoadingDots-BU_OAEMP.js} +1 -1
  770. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-CI1VaB3F.js → LogViewer-ceAyBX-H.js} +1 -1
  771. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-BzHcG7SE.js +11 -0
  772. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-DQddU4F4.js → SafeScreenshot-BED4B6sP.js} +1 -1
  773. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-Bd-hxofb.js +10 -0
  774. package/codeyam-cli/src/webserver/build/client/assets/Spinner-Bb5uFQ5V.js +34 -0
  775. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-Dt7eySG0.js → TruncatedFilePath-C8OKAR5x.js} +1 -1
  776. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-oAf2Kqsf.js +1 -0
  777. package/codeyam-cli/src/webserver/build/client/assets/_index-DLxKhri3.js +11 -0
  778. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-BcY3q6nt.js +27 -0
  779. package/codeyam-cli/src/webserver/build/client/assets/addon-canvas-DpzMmAy5.js +1 -0
  780. package/codeyam-cli/src/webserver/build/client/assets/addon-fit-YJmn1quW.js +12 -0
  781. package/codeyam-cli/src/webserver/build/client/assets/addon-web-links-Duc5hnl7.js +1 -0
  782. package/codeyam-cli/src/webserver/build/client/assets/addon-webgl-DI8QOUvO.js +58 -0
  783. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-Bni3iiUj.js +22 -0
  784. package/codeyam-cli/src/webserver/build/client/assets/api.agent-transcripts-l0sNRNKZ.js +1 -0
  785. package/codeyam-cli/src/webserver/build/client/assets/api.dev-mode-events-l0sNRNKZ.js +1 -0
  786. package/codeyam-cli/src/webserver/build/client/assets/api.editor-audit-l0sNRNKZ.js +1 -0
  787. package/codeyam-cli/src/webserver/build/client/assets/api.editor-capture-scenario-l0sNRNKZ.js +1 -0
  788. package/codeyam-cli/src/webserver/build/client/assets/api.editor-client-errors-l0sNRNKZ.js +1 -0
  789. package/codeyam-cli/src/webserver/build/client/assets/api.editor-commit-l0sNRNKZ.js +1 -0
  790. package/codeyam-cli/src/webserver/build/client/assets/api.editor-dev-server-l0sNRNKZ.js +1 -0
  791. package/codeyam-cli/src/webserver/build/client/assets/api.editor-entity-status-l0sNRNKZ.js +1 -0
  792. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-diff-l0sNRNKZ.js +1 -0
  793. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-l0sNRNKZ.js +1 -0
  794. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-entry-l0sNRNKZ.js +1 -0
  795. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-image._-l0sNRNKZ.js +1 -0
  796. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-l0sNRNKZ.js +1 -0
  797. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-screenshot-l0sNRNKZ.js +1 -0
  798. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-update-l0sNRNKZ.js +1 -0
  799. package/codeyam-cli/src/webserver/build/client/assets/api.editor-load-commit-l0sNRNKZ.js +1 -0
  800. package/codeyam-cli/src/webserver/build/client/assets/api.editor-project-info-l0sNRNKZ.js +1 -0
  801. package/codeyam-cli/src/webserver/build/client/assets/api.editor-refresh-l0sNRNKZ.js +1 -0
  802. package/codeyam-cli/src/webserver/build/client/assets/api.editor-register-scenario-l0sNRNKZ.js +1 -0
  803. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-coverage-l0sNRNKZ.js +1 -0
  804. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-data-l0sNRNKZ.js +1 -0
  805. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-image._-l0sNRNKZ.js +1 -0
  806. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenarios-l0sNRNKZ.js +1 -0
  807. package/codeyam-cli/src/webserver/build/client/assets/api.editor-switch-scenario-l0sNRNKZ.js +1 -0
  808. package/codeyam-cli/src/webserver/build/client/assets/api.editor-test-results-l0sNRNKZ.js +1 -0
  809. package/codeyam-cli/src/webserver/build/client/assets/api.health-l0sNRNKZ.js +1 -0
  810. package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
  811. package/codeyam-cli/src/webserver/build/client/assets/api.memory-profile-l0sNRNKZ.js +1 -0
  812. package/codeyam-cli/src/webserver/build/client/assets/api.restart-server-l0sNRNKZ.js +1 -0
  813. package/codeyam-cli/src/webserver/build/client/assets/api.rule-path-l0sNRNKZ.js +1 -0
  814. package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
  815. package/codeyam-cli/src/webserver/build/client/assets/book-open-BYOypzCa.js +6 -0
  816. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-ITTv_xL3.js → chevron-down-C_Pmso5S.js} +2 -2
  817. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-C4pqxYJB.js +51 -0
  818. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-mMM0RzI0.js → circle-check-BVMi9VA5.js} +2 -2
  819. package/codeyam-cli/src/webserver/build/client/assets/copy-n2FB0_Sw.js +11 -0
  820. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-CC6AbExI.js +41 -0
  821. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-C1gnJVOL.svg → cy-logo-cli-CCKUIm0S.svg} +2 -2
  822. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +1 -0
  823. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BsDh6TSF.js +1 -0
  824. package/codeyam-cli/src/webserver/build/client/assets/editor-PBc_6L9R.js +10 -0
  825. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-4FzHlcNn.js +41 -0
  826. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-DBgKdrTR.js → entity._sha._-BsDXNp45.js} +13 -13
  827. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-BgAqUtTZ.js +6 -0
  828. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-Bmshgrij.js +6 -0
  829. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-p9hhkjJM.js +6 -0
  830. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-Sf59Z2Pa.js → entity._sha_.edit._scenarioId-BMvVHNXU.js} +2 -2
  831. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-BvGka1gZ.js → entry.client-DTvKq3TY.js} +6 -6
  832. package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
  833. package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-_IuKNgFH.js → fileTableUtils-cPo8LiG3.js} +1 -1
  834. package/codeyam-cli/src/webserver/build/client/assets/files-BZrlFE1F.js +1 -0
  835. package/codeyam-cli/src/webserver/build/client/assets/git-DdZcvjGh.js +1 -0
  836. package/codeyam-cli/src/webserver/build/client/assets/globals-B8vTTNy2.css +1 -0
  837. package/codeyam-cli/src/webserver/build/client/assets/{index-CkpJhcNC.js → index-10oVnAAH.js} +1 -1
  838. package/codeyam-cli/src/webserver/build/client/assets/{index-DFbRIdR_.js → index-BcvgDzbZ.js} +1 -1
  839. package/codeyam-cli/src/webserver/build/client/assets/index-yHOVb4rc.js +15 -0
  840. package/codeyam-cli/src/webserver/build/client/assets/labs-Zk7ryIM1.js +1 -0
  841. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-DEtRABV3.js → loader-circle-DaAZ_H2w.js} +2 -2
  842. package/codeyam-cli/src/webserver/build/client/assets/manifest-65850841.js +1 -0
  843. package/codeyam-cli/src/webserver/build/client/assets/memory-9gnxSZlb.js +101 -0
  844. package/codeyam-cli/src/webserver/build/client/assets/pause-f5-1lKBt.js +11 -0
  845. package/codeyam-cli/src/webserver/build/client/assets/root-BwX8YgFb.js +67 -0
  846. package/codeyam-cli/src/webserver/build/client/assets/{search-Clp3R4kH.js → search-Di64LWVb.js} +2 -2
  847. package/codeyam-cli/src/webserver/build/client/assets/settings-0OrEMU6J.js +1 -0
  848. package/codeyam-cli/src/webserver/build/client/assets/simulations-DWT-CvLy.js +1 -0
  849. package/codeyam-cli/src/webserver/build/client/assets/terminal-Br7MOqts.js +11 -0
  850. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-CUVskfkL.js → triangle-alert-BLdiCuG-.js} +2 -2
  851. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BE43Hjti.js +1 -0
  852. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-C14nCb1q.js +2 -0
  853. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-O-jkvSPx.js +1 -0
  854. package/codeyam-cli/src/webserver/build/client/assets/{useToast-BCR_pi3-.js → useToast-9FIWuYfK.js} +1 -1
  855. package/codeyam-cli/src/webserver/build/client/assets/xterm-BqvuqXEL.js +27 -0
  856. package/codeyam-cli/src/webserver/build/server/assets/index-DEEQf4pi.js +1 -0
  857. package/codeyam-cli/src/webserver/build/server/assets/init-CkWmyFY2.js +10 -0
  858. package/codeyam-cli/src/webserver/build/server/assets/server-build-BHi-9O8W.js +439 -0
  859. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  860. package/codeyam-cli/src/webserver/build-info.json +5 -5
  861. package/codeyam-cli/src/webserver/devServer.js +40 -8
  862. package/codeyam-cli/src/webserver/devServer.js.map +1 -1
  863. package/codeyam-cli/src/webserver/editorProxy.js +877 -0
  864. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -0
  865. package/codeyam-cli/src/webserver/scripts/codeyam-preload.mjs +414 -0
  866. package/codeyam-cli/src/webserver/scripts/journalCapture.ts +230 -0
  867. package/codeyam-cli/src/webserver/server.js +293 -26
  868. package/codeyam-cli/src/webserver/server.js.map +1 -1
  869. package/codeyam-cli/src/webserver/terminalServer.js +726 -0
  870. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -0
  871. package/codeyam-cli/templates/chrome-extension-react/EXTENSION_SETUP.md +75 -0
  872. package/codeyam-cli/templates/chrome-extension-react/README.md +46 -0
  873. package/codeyam-cli/templates/chrome-extension-react/gitignore +15 -0
  874. package/codeyam-cli/templates/chrome-extension-react/index.html +12 -0
  875. package/codeyam-cli/templates/chrome-extension-react/package.json +27 -0
  876. package/codeyam-cli/templates/chrome-extension-react/popup.html +12 -0
  877. package/codeyam-cli/templates/chrome-extension-react/public/manifest.json +15 -0
  878. package/codeyam-cli/templates/chrome-extension-react/src/background/service-worker.ts +7 -0
  879. package/codeyam-cli/templates/chrome-extension-react/src/globals.css +6 -0
  880. package/codeyam-cli/templates/chrome-extension-react/src/lib/storage.ts +37 -0
  881. package/codeyam-cli/templates/chrome-extension-react/src/popup/App.tsx +12 -0
  882. package/codeyam-cli/templates/chrome-extension-react/src/popup/main.tsx +10 -0
  883. package/codeyam-cli/templates/chrome-extension-react/tsconfig.json +24 -0
  884. package/codeyam-cli/templates/chrome-extension-react/vite.config.ts +41 -0
  885. package/codeyam-cli/templates/codeyam-editor-claude.md +147 -0
  886. package/codeyam-cli/templates/codeyam-memory-hook.sh +199 -0
  887. package/codeyam-cli/templates/commands/codeyam-diagnose.md +481 -0
  888. package/codeyam-cli/templates/editor-step-hook.py +236 -0
  889. package/codeyam-cli/templates/expo-react-native/MOBILE_SETUP.md +89 -0
  890. package/codeyam-cli/templates/expo-react-native/README.md +41 -0
  891. package/codeyam-cli/templates/expo-react-native/app/(tabs)/_layout.tsx +33 -0
  892. package/codeyam-cli/templates/expo-react-native/app/(tabs)/index.tsx +12 -0
  893. package/codeyam-cli/templates/expo-react-native/app/(tabs)/settings.tsx +12 -0
  894. package/codeyam-cli/templates/expo-react-native/app/_layout.tsx +12 -0
  895. package/codeyam-cli/templates/expo-react-native/app.json +18 -0
  896. package/codeyam-cli/templates/expo-react-native/babel.config.js +9 -0
  897. package/codeyam-cli/templates/expo-react-native/gitignore +12 -0
  898. package/codeyam-cli/templates/expo-react-native/global.css +3 -0
  899. package/codeyam-cli/templates/expo-react-native/lib/storage.ts +32 -0
  900. package/codeyam-cli/templates/expo-react-native/metro.config.js +6 -0
  901. package/codeyam-cli/templates/expo-react-native/nativewind-env.d.ts +1 -0
  902. package/codeyam-cli/templates/expo-react-native/package.json +38 -0
  903. package/codeyam-cli/templates/expo-react-native/tailwind.config.js +10 -0
  904. package/codeyam-cli/templates/expo-react-native/tsconfig.json +10 -0
  905. package/codeyam-cli/templates/hooks/staleness-check.sh +43 -0
  906. package/codeyam-cli/templates/isolation-route/next-app.tsx.template +80 -0
  907. package/codeyam-cli/templates/isolation-route/next-pages.tsx.template +79 -0
  908. package/codeyam-cli/templates/isolation-route/vite-react.tsx.template +78 -0
  909. package/codeyam-cli/templates/msw/browser-setup.ts.template +47 -0
  910. package/codeyam-cli/templates/msw/handler-router.ts.template +47 -0
  911. package/codeyam-cli/templates/msw/server-setup.ts.template +52 -0
  912. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_PATTERNS.md +308 -0
  913. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_UPGRADE.md +304 -0
  914. package/codeyam-cli/templates/nextjs-prisma-sqlite/DATABASE.md +126 -0
  915. package/codeyam-cli/templates/nextjs-prisma-sqlite/FEATURE_PATTERNS.md +37 -0
  916. package/codeyam-cli/templates/nextjs-prisma-sqlite/README.md +53 -0
  917. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/api/todos/route.ts +17 -0
  918. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/codeyam-isolate/layout.tsx +12 -0
  919. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/globals.css +26 -0
  920. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/layout.tsx +34 -0
  921. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/lib/prisma.ts +24 -0
  922. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/page.tsx +10 -0
  923. package/codeyam-cli/templates/nextjs-prisma-sqlite/env +4 -0
  924. package/codeyam-cli/templates/nextjs-prisma-sqlite/eslint.config.mjs +11 -0
  925. package/codeyam-cli/templates/nextjs-prisma-sqlite/gitignore +64 -0
  926. package/codeyam-cli/templates/nextjs-prisma-sqlite/next.config.ts +14 -0
  927. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +39 -0
  928. package/codeyam-cli/templates/nextjs-prisma-sqlite/postcss.config.mjs +7 -0
  929. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/schema.prisma +27 -0
  930. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/seed.ts +40 -0
  931. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma.config.ts +12 -0
  932. package/codeyam-cli/templates/nextjs-prisma-sqlite/seed-adapter.ts +92 -0
  933. package/codeyam-cli/templates/nextjs-prisma-sqlite/tsconfig.json +34 -0
  934. package/codeyam-cli/templates/nextjs-prisma-sqlite/vitest.config.ts +13 -0
  935. package/codeyam-cli/templates/nextjs-prisma-supabase/README.md +52 -0
  936. package/codeyam-cli/templates/nextjs-prisma-supabase/SUPABASE_SETUP.md +104 -0
  937. package/codeyam-cli/templates/nextjs-prisma-supabase/app/api/todos/route.ts +17 -0
  938. package/codeyam-cli/templates/nextjs-prisma-supabase/app/globals.css +26 -0
  939. package/codeyam-cli/templates/nextjs-prisma-supabase/app/layout.tsx +34 -0
  940. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/prisma.ts +20 -0
  941. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/supabase.ts +12 -0
  942. package/codeyam-cli/templates/nextjs-prisma-supabase/app/page.tsx +10 -0
  943. package/codeyam-cli/templates/nextjs-prisma-supabase/env +9 -0
  944. package/codeyam-cli/templates/nextjs-prisma-supabase/eslint.config.mjs +11 -0
  945. package/codeyam-cli/templates/nextjs-prisma-supabase/gitignore +40 -0
  946. package/codeyam-cli/templates/nextjs-prisma-supabase/next.config.ts +11 -0
  947. package/codeyam-cli/templates/nextjs-prisma-supabase/package.json +37 -0
  948. package/codeyam-cli/templates/nextjs-prisma-supabase/postcss.config.mjs +7 -0
  949. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/schema.prisma +27 -0
  950. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/seed.ts +39 -0
  951. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma.config.ts +12 -0
  952. package/codeyam-cli/templates/nextjs-prisma-supabase/tsconfig.json +34 -0
  953. package/codeyam-cli/templates/prompts/conversation-guidance.txt +44 -0
  954. package/codeyam-cli/templates/prompts/conversation-prompt.txt +28 -0
  955. package/codeyam-cli/templates/prompts/interruption-prompt.txt +31 -0
  956. package/codeyam-cli/templates/prompts/stale-rules-prompt.txt +24 -0
  957. package/codeyam-cli/templates/rule-notification-hook.py +83 -0
  958. package/codeyam-cli/templates/rule-reflection-hook.py +647 -0
  959. package/codeyam-cli/templates/rules-instructions.md +78 -0
  960. package/codeyam-cli/templates/{codeyam-debug-skill.md → skills/codeyam-debug/SKILL.md} +48 -4
  961. package/codeyam-cli/templates/skills/codeyam-dev-mode/SKILL.md +237 -0
  962. package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +148 -0
  963. package/codeyam-cli/templates/skills/codeyam-memory/SKILL.md +611 -0
  964. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/deprecated-prompt.md +100 -0
  965. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/detect-deprecated-patterns.mjs +139 -0
  966. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/find-exports.mjs +52 -0
  967. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/misleading-api-prompt.md +117 -0
  968. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/read-json-field.mjs +61 -0
  969. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/ripgrep-fallback.mjs +155 -0
  970. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/analyze-prompt.md +46 -0
  971. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/cleanup.mjs +13 -0
  972. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/filter-session.mjs +95 -0
  973. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/preprocess.mjs +160 -0
  974. package/codeyam-cli/templates/skills/codeyam-new-rule/SKILL.md +11 -0
  975. package/codeyam-cli/templates/{codeyam-setup-skill.md → skills/codeyam-setup/SKILL.md} +151 -4
  976. package/codeyam-cli/templates/{codeyam-sim-skill.md → skills/codeyam-sim/SKILL.md} +1 -1
  977. package/codeyam-cli/templates/{codeyam-test-skill.md → skills/codeyam-test/SKILL.md} +1 -1
  978. package/codeyam-cli/templates/{codeyam-verify-skill.md → skills/codeyam-verify/SKILL.md} +1 -1
  979. package/package.json +34 -24
  980. package/packages/ai/index.js +8 -6
  981. package/packages/ai/index.js.map +1 -1
  982. package/packages/ai/src/lib/analyzeScope.js +179 -13
  983. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  984. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js +150 -0
  985. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js.map +1 -0
  986. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +176 -13
  987. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  988. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
  989. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
  990. package/packages/ai/src/lib/astScopes/methodSemantics.js +138 -23
  991. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  992. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
  993. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
  994. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +8 -0
  995. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -1
  996. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +23 -0
  997. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
  998. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +138 -1
  999. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
  1000. package/packages/ai/src/lib/astScopes/processExpression.js +1137 -96
  1001. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  1002. package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
  1003. package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
  1004. package/packages/ai/src/lib/checkAllAttributes.js +24 -9
  1005. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  1006. package/packages/ai/src/lib/completionCall.js +188 -38
  1007. package/packages/ai/src/lib/completionCall.js.map +1 -1
  1008. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1973 -209
  1009. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  1010. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +7 -2
  1011. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  1012. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +230 -23
  1013. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -1
  1014. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +77 -55
  1015. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  1016. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +13 -3
  1017. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -1
  1018. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +6 -4
  1019. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -1
  1020. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +52 -3
  1021. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  1022. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +139 -13
  1023. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  1024. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
  1025. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
  1026. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js +54 -0
  1027. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js.map +1 -0
  1028. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +142 -12
  1029. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  1030. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js +86 -0
  1031. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js.map +1 -0
  1032. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
  1033. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
  1034. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
  1035. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
  1036. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +334 -79
  1037. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  1038. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js +107 -0
  1039. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js.map +1 -0
  1040. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js +34 -0
  1041. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js.map +1 -0
  1042. package/packages/ai/src/lib/dataStructureChunking.js +130 -0
  1043. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -0
  1044. package/packages/ai/src/lib/deepEqual.js +32 -0
  1045. package/packages/ai/src/lib/deepEqual.js.map +1 -0
  1046. package/packages/ai/src/lib/e2eDataTracking.js +241 -0
  1047. package/packages/ai/src/lib/e2eDataTracking.js.map +1 -0
  1048. package/packages/ai/src/lib/extractCriticalDataKeys.js +96 -0
  1049. package/packages/ai/src/lib/extractCriticalDataKeys.js.map +1 -0
  1050. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +62 -5
  1051. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  1052. package/packages/ai/src/lib/generateChangesEntityScenarios.js +81 -90
  1053. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  1054. package/packages/ai/src/lib/generateEntityDataStructure.js +47 -2
  1055. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  1056. package/packages/ai/src/lib/generateEntityScenarioData.js +1183 -85
  1057. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  1058. package/packages/ai/src/lib/generateEntityScenarios.js +193 -83
  1059. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  1060. package/packages/ai/src/lib/generateExecutionFlows.js +484 -0
  1061. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
  1062. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
  1063. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
  1064. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +1807 -0
  1065. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
  1066. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
  1067. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js.map +1 -0
  1068. package/packages/ai/src/lib/getConditionalUsagesFromCode.js +84 -14
  1069. package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -1
  1070. package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -1
  1071. package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
  1072. package/packages/ai/src/lib/isolateScopes.js +270 -7
  1073. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  1074. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
  1075. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
  1076. package/packages/ai/src/lib/mergeStatements.js +88 -46
  1077. package/packages/ai/src/lib/mergeStatements.js.map +1 -1
  1078. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
  1079. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
  1080. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +16 -4
  1081. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  1082. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +1 -1
  1083. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  1084. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +21 -64
  1085. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  1086. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js +54 -0
  1087. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js.map +1 -0
  1088. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +83 -6
  1089. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  1090. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +10 -34
  1091. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  1092. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
  1093. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
  1094. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +16 -3
  1095. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
  1096. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js +335 -0
  1097. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js.map +1 -0
  1098. package/packages/ai/src/lib/resolvePathToControllable.js +677 -0
  1099. package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
  1100. package/packages/ai/src/lib/splitOutsideParentheses.js +3 -1
  1101. package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -1
  1102. package/packages/ai/src/lib/worker/SerializableDataStructure.js +29 -0
  1103. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  1104. package/packages/ai/src/lib/worker/analyzeScopeWorker.js +94 -1
  1105. package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
  1106. package/packages/analyze/index.js +1 -0
  1107. package/packages/analyze/index.js.map +1 -1
  1108. package/packages/analyze/src/lib/FileAnalyzer.js +75 -36
  1109. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  1110. package/packages/analyze/src/lib/ProjectAnalyzer.js +109 -30
  1111. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  1112. package/packages/analyze/src/lib/analysisContext.js +30 -5
  1113. package/packages/analyze/src/lib/analysisContext.js.map +1 -1
  1114. package/packages/analyze/src/lib/asts/index.js +4 -2
  1115. package/packages/analyze/src/lib/asts/index.js.map +1 -1
  1116. package/packages/analyze/src/lib/asts/nodes/getNodeType.js +1 -0
  1117. package/packages/analyze/src/lib/asts/nodes/getNodeType.js.map +1 -1
  1118. package/packages/analyze/src/lib/asts/nodes/index.js +1 -0
  1119. package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
  1120. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
  1121. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
  1122. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +14 -0
  1123. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -1
  1124. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +14 -0
  1125. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -1
  1126. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +6 -0
  1127. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
  1128. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +6 -0
  1129. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -1
  1130. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +39 -1
  1131. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -1
  1132. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +2 -1
  1133. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -1
  1134. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +268 -52
  1135. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  1136. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +31 -1
  1137. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  1138. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +11 -0
  1139. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  1140. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +2 -1
  1141. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  1142. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +31 -10
  1143. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  1144. package/packages/analyze/src/lib/files/analyzeChange.js +21 -11
  1145. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  1146. package/packages/analyze/src/lib/files/analyzeEntity.js +9 -8
  1147. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  1148. package/packages/analyze/src/lib/files/analyzeInitial.js +9 -10
  1149. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  1150. package/packages/analyze/src/lib/files/analyzeRemixRoute.js +3 -2
  1151. package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
  1152. package/packages/analyze/src/lib/files/enums/steps.js +1 -1
  1153. package/packages/analyze/src/lib/files/enums/steps.js.map +1 -1
  1154. package/packages/analyze/src/lib/files/getImportedExports.js +11 -7
  1155. package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
  1156. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +907 -0
  1157. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
  1158. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +170 -40
  1159. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
  1160. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
  1161. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
  1162. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +522 -59
  1163. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  1164. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js +1 -1
  1165. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js.map +1 -1
  1166. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +29 -34
  1167. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
  1168. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +333 -51
  1169. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  1170. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +104 -0
  1171. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
  1172. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +56 -69
  1173. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  1174. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +4 -8
  1175. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  1176. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +817 -120
  1177. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  1178. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +46 -9
  1179. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -1
  1180. package/packages/analyze/src/lib/files/setImportedExports.js +2 -1
  1181. package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -1
  1182. package/packages/analyze/src/lib/index.js +1 -0
  1183. package/packages/analyze/src/lib/index.js.map +1 -1
  1184. package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
  1185. package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
  1186. package/packages/aws/src/lib/ecs/ecsDefineContainer.js +2 -2
  1187. package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  1188. package/packages/aws/src/lib/ecs/ecsTaskFactory.js +17 -61
  1189. package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  1190. package/packages/database/index.js +1 -0
  1191. package/packages/database/index.js.map +1 -1
  1192. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  1193. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  1194. package/packages/database/src/lib/analysisToDb.js +1 -1
  1195. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  1196. package/packages/database/src/lib/branchToDb.js +1 -1
  1197. package/packages/database/src/lib/branchToDb.js.map +1 -1
  1198. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  1199. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  1200. package/packages/database/src/lib/commitToDb.js +1 -1
  1201. package/packages/database/src/lib/commitToDb.js.map +1 -1
  1202. package/packages/database/src/lib/fileToDb.js +1 -1
  1203. package/packages/database/src/lib/fileToDb.js.map +1 -1
  1204. package/packages/database/src/lib/kysely/db.js +18 -3
  1205. package/packages/database/src/lib/kysely/db.js.map +1 -1
  1206. package/packages/database/src/lib/kysely/tables/commitsTable.js +3 -0
  1207. package/packages/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  1208. package/packages/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
  1209. package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  1210. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +76 -0
  1211. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  1212. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  1213. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  1214. package/packages/database/src/lib/loadAnalyses.js +45 -2
  1215. package/packages/database/src/lib/loadAnalyses.js.map +1 -1
  1216. package/packages/database/src/lib/loadAnalysis.js +8 -0
  1217. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  1218. package/packages/database/src/lib/loadBranch.js +11 -1
  1219. package/packages/database/src/lib/loadBranch.js.map +1 -1
  1220. package/packages/database/src/lib/loadCommit.js +7 -0
  1221. package/packages/database/src/lib/loadCommit.js.map +1 -1
  1222. package/packages/database/src/lib/loadCommits.js +45 -14
  1223. package/packages/database/src/lib/loadCommits.js.map +1 -1
  1224. package/packages/database/src/lib/loadEntities.js +23 -10
  1225. package/packages/database/src/lib/loadEntities.js.map +1 -1
  1226. package/packages/database/src/lib/loadEntityBranches.js +9 -0
  1227. package/packages/database/src/lib/loadEntityBranches.js.map +1 -1
  1228. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +5 -5
  1229. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  1230. package/packages/database/src/lib/projectToDb.js +1 -1
  1231. package/packages/database/src/lib/projectToDb.js.map +1 -1
  1232. package/packages/database/src/lib/saveFiles.js +1 -1
  1233. package/packages/database/src/lib/saveFiles.js.map +1 -1
  1234. package/packages/database/src/lib/scenarioToDb.js +1 -1
  1235. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  1236. package/packages/database/src/lib/updateCommitMetadata.js +76 -89
  1237. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  1238. package/packages/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  1239. package/packages/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  1240. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  1241. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  1242. package/packages/generate/index.js +3 -0
  1243. package/packages/generate/index.js.map +1 -1
  1244. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  1245. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  1246. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +217 -0
  1247. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  1248. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  1249. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  1250. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  1251. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  1252. package/packages/generate/src/lib/deepMerge.js +27 -1
  1253. package/packages/generate/src/lib/deepMerge.js.map +1 -1
  1254. package/packages/generate/src/lib/scenarioComponentForServer.js +89 -0
  1255. package/packages/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  1256. package/packages/github/src/lib/loadOrCreateCommit.js +10 -0
  1257. package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -1
  1258. package/packages/github/src/lib/syncPrimaryBranch.js +3 -0
  1259. package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -1
  1260. package/packages/process/index.js +3 -0
  1261. package/packages/process/index.js.map +1 -0
  1262. package/packages/process/src/GlobalProcessManager.js.map +1 -0
  1263. package/{background/src/lib/process → packages/process/src}/ProcessManager.js +1 -1
  1264. package/packages/process/src/ProcessManager.js.map +1 -0
  1265. package/packages/process/src/index.js.map +1 -0
  1266. package/packages/process/src/managedExecAsync.js.map +1 -0
  1267. package/packages/types/index.js.map +1 -1
  1268. package/packages/types/src/enums/ProjectFramework.js +2 -0
  1269. package/packages/types/src/enums/ProjectFramework.js.map +1 -1
  1270. package/packages/utils/src/lib/fs/rsyncCopy.js +98 -3
  1271. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  1272. package/packages/utils/src/lib/safeFileName.js +29 -3
  1273. package/packages/utils/src/lib/safeFileName.js.map +1 -1
  1274. package/scripts/npm-post-install.cjs +34 -0
  1275. package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +0 -102
  1276. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +0 -197
  1277. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +0 -271
  1278. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +0 -294
  1279. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +0 -67
  1280. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +0 -115
  1281. package/analyzer-template/process/INTEGRATION_COMPLETE.md +0 -333
  1282. package/analyzer-template/process/INTEGRATION_EXAMPLE.md +0 -525
  1283. package/analyzer-template/process/README.md +0 -507
  1284. package/background/src/lib/process/GlobalProcessManager.js.map +0 -1
  1285. package/background/src/lib/process/ProcessManager.js.map +0 -1
  1286. package/background/src/lib/process/index.js.map +0 -1
  1287. package/background/src/lib/process/managedExecAsync.js.map +0 -1
  1288. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +0 -238
  1289. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +0 -1
  1290. package/codeyam-cli/scripts/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js +0 -7
  1291. package/codeyam-cli/scripts/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js.map +0 -1
  1292. package/codeyam-cli/src/commands/detect-universal-mocks.js +0 -118
  1293. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +0 -1
  1294. package/codeyam-cli/src/commands/list.js +0 -31
  1295. package/codeyam-cli/src/commands/list.js.map +0 -1
  1296. package/codeyam-cli/src/commands/webapp-info.js +0 -146
  1297. package/codeyam-cli/src/commands/webapp-info.js.map +0 -1
  1298. package/codeyam-cli/src/utils/universal-mocks.js +0 -152
  1299. package/codeyam-cli/src/utils/universal-mocks.js.map +0 -1
  1300. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-DpUOH11S.js +0 -1
  1301. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-Cxs_KUEt.js +0 -41
  1302. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-D_gPUolj.js +0 -25
  1303. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-MbTu_hOR.js +0 -11
  1304. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-Diqfd5nO.js +0 -15
  1305. package/codeyam-cli/src/webserver/build/client/assets/_index-D0tNX0Y7.js +0 -11
  1306. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CV8R8fpo.js +0 -32
  1307. package/codeyam-cli/src/webserver/build/client/assets/chunk-JMJ3UQ3L-Tv-88Jsz.js +0 -51
  1308. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-en9_3LGg.js +0 -21
  1309. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-Cw7TE00E.js +0 -1
  1310. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DUOKD0lj.js +0 -1
  1311. package/codeyam-cli/src/webserver/build/client/assets/files-DMW0hD4L.js +0 -1
  1312. package/codeyam-cli/src/webserver/build/client/assets/git-8zM4ebXo.js +0 -15
  1313. package/codeyam-cli/src/webserver/build/client/assets/globals-D3y4cv7l.css +0 -1
  1314. package/codeyam-cli/src/webserver/build/client/assets/manifest-18ff0544.js +0 -1
  1315. package/codeyam-cli/src/webserver/build/client/assets/root-BuQ6JiJU.js +0 -51
  1316. package/codeyam-cli/src/webserver/build/client/assets/settings-DzIyX7wI.js +0 -1
  1317. package/codeyam-cli/src/webserver/build/client/assets/simulations-BKNqbrwU.js +0 -1
  1318. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-CHT-Bzx5.js +0 -2
  1319. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-By4FnEmE.js +0 -1
  1320. package/codeyam-cli/src/webserver/build/server/assets/index-CzKXayO4.js +0 -1
  1321. package/codeyam-cli/src/webserver/build/server/assets/server-build-CHRMAMo8.js +0 -166
  1322. package/codeyam-cli/templates/codeyam-stop-hook.sh +0 -284
  1323. package/codeyam-cli/templates/debug-codeyam.md +0 -576
  1324. package/packages/ai/src/lib/findMatchingAttribute.js +0 -77
  1325. package/packages/ai/src/lib/findMatchingAttribute.js.map +0 -1
  1326. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +0 -136
  1327. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +0 -1
  1328. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +0 -220
  1329. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +0 -1
  1330. package/packages/ai/src/lib/generateEntityKeyAttributes.js +0 -241
  1331. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +0 -1
  1332. package/packages/ai/src/lib/isFrontend.js +0 -5
  1333. package/packages/ai/src/lib/isFrontend.js.map +0 -1
  1334. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +0 -40
  1335. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +0 -1
  1336. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +0 -72
  1337. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +0 -1
  1338. package/scripts/finalize-analyzer.cjs +0 -81
  1339. /package/analyzer-template/{process → packages/process/src}/GlobalProcessManager.ts +0 -0
  1340. /package/analyzer-template/{process → packages/process/src}/ProcessManager.ts +0 -0
  1341. /package/analyzer-template/{process → packages/process/src}/index.ts +0 -0
  1342. /package/analyzer-template/{process → packages/process/src}/managedExecAsync.ts +0 -0
  1343. /package/{background/src/lib/process → packages/process/src}/GlobalProcessManager.js +0 -0
  1344. /package/{background/src/lib/process → packages/process/src}/index.js +0 -0
  1345. /package/{background/src/lib/process → packages/process/src}/managedExecAsync.js +0 -0
@@ -62,7 +62,10 @@ function resetDebugTiming() {
62
62
  */
63
63
  function findEndOfImports(content) {
64
64
  try {
65
- const sourceFile = ts.createSourceFile('temp.ts', content, ts.ScriptTarget.Latest, true);
65
+ // Use temp.tsx to enable JSX parsing - otherwise TypeScript may misparse
66
+ // JSX content containing the word "import" (e.g., "Entities that import this")
67
+ // as an import statement, causing mock code to be inserted in the wrong location.
68
+ const sourceFile = ts.createSourceFile('temp.tsx', content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
66
69
  let lastImportEnd = 0;
67
70
  // Visit all top-level statements to find import/export declarations
68
71
  for (const statement of sourceFile.statements) {
@@ -476,7 +479,8 @@ function extractInternalImportPaths(fileContent) {
476
479
  function extractInternalImportPathsAst(fileContent) {
477
480
  const importPaths = [];
478
481
  try {
479
- const sourceFile = ts.createSourceFile('temp.ts', fileContent, ts.ScriptTarget.Latest, true);
482
+ // Use temp.tsx to enable JSX parsing for consistent handling of JSX files
483
+ const sourceFile = ts.createSourceFile('temp.tsx', fileContent, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
480
484
  for (const statement of sourceFile.statements) {
481
485
  if (ts.isImportDeclaration(statement) && statement.moduleSpecifier) {
482
486
  const moduleSpecifier = statement.moduleSpecifier;
@@ -592,46 +596,106 @@ function addMockToContent(fileContent, importedExport, fileAnalyses, rootAnalysi
592
596
  }
593
597
  // Check if we have multiple calls with different variable names
594
598
  // This requires generating separate mock functions for each call site
595
- const hasMultipleCallsWithVariables = importedExport.calls &&
596
- importedExport.calls.length > 1 &&
599
+ //
600
+ // IMPORTANT: calls array may contain BOTH base hook calls (e.g., "useFetcher<Type>()")
601
+ // AND method chain usages (e.g., "useFetcher().functionCallReturnValue.submit(...)").
602
+ // We only want to count base hook calls for the length comparison with callVariableNames.
603
+ // A "base call" is one that ends with "()" possibly preceded by a type annotation,
604
+ // without any subsequent method chains like ".functionCallReturnValue" or ".submit(...)".
605
+ const baseHookCalls = importedExport.calls?.filter((call) => {
606
+ // Base hook calls match patterns like:
607
+ // - "useFetcher()"
608
+ // - "useFetcher<Type>()"
609
+ // - "useFetcher<{ complex: Type }>()"
610
+ // They end with "()" and don't have method chains after the call.
611
+ // Method chains contain ".functionCallReturnValue" or have property access after "()".
612
+ return (call.endsWith('()') &&
613
+ !call.includes('.functionCallReturnValue') &&
614
+ // Also exclude method chains like "hook().something" or "hook().method()"
615
+ !call.match(/\(\)\.[a-zA-Z]/));
616
+ });
617
+ // Determine if we can generate unique mock functions for multiple variables.
618
+ // We need:
619
+ // 1. Multiple variable names (callVariableNames.length > 1)
620
+ // 2. Base hook calls to match them (baseHookCalls.length > 0)
621
+ // Note: We use min(baseHookCalls.length, callVariableNames.length) for iteration
622
+ // to handle cases where data might be slightly out of sync (stale entries).
623
+ const hasMultipleCallsWithVariables = baseHookCalls &&
624
+ baseHookCalls.length > 1 &&
597
625
  importedExport.callVariableNames &&
598
- importedExport.callVariableNames.length === importedExport.calls.length;
626
+ importedExport.callVariableNames.length > 1 &&
627
+ // Only proceed if we have at least as many base calls as variable names,
628
+ // OR they're close enough (within 1) to handle minor sync issues
629
+ Math.abs(baseHookCalls.length - importedExport.callVariableNames.length) <=
630
+ 1;
599
631
  let mockCode;
600
632
  const variableMockCodes = [];
601
633
  if (hasMultipleCallsWithVariables) {
602
634
  // Generate separate mock functions for each variable-qualified call
603
- // Track variable name occurrences to disambiguate when same variable is reused
604
- // (mirrors the logic in gatherDataForMocks)
635
+ // Look up canonical keys from dataForMocks and track variable names for function naming
636
+ // Get all call signature keys for this hook from dataForMocks
637
+ const dataForMocks = rootAnalysis.metadata?.scenariosDataStructure?.dataForMocks;
638
+ // Match keys that start with the hook name (e.g., "useFetcher" matches "useFetcher<User>()")
639
+ const callSignatureKeysForHook = dataForMocks
640
+ ? Object.keys(dataForMocks).filter((key) => {
641
+ const hookBaseName = importedExport.name.split(/[<(]/)[0];
642
+ const keyBaseName = key.split(/[<(]/)[0];
643
+ return keyBaseName === hookBaseName;
644
+ })
645
+ : [];
646
+ // Track variable name occurrences for unique function naming
605
647
  const variableNameCounts = {};
606
- for (let i = 0; i < importedExport.calls.length; i++) {
648
+ // Use the minimum of both array lengths to handle slight mismatches
649
+ // (e.g., stale data from previous analysis runs)
650
+ const iterationLimit = Math.min(baseHookCalls.length, importedExport.callVariableNames.length);
651
+ for (let i = 0; i < iterationLimit; i++) {
607
652
  const variableName = importedExport.callVariableNames[i];
608
653
  if (!variableName)
609
654
  continue;
610
655
  // Calculate the occurrence index for this variable name
611
656
  const occurrence = variableNameCounts[variableName] ?? 0;
612
657
  variableNameCounts[variableName] = occurrence + 1;
613
- // If this is a reused variable name (occurrence > 0), append index
614
- // e.g., "fetcher[1] <- useFetcher" for the second usage of "fetcher"
658
+ // Build indexed variable name for function naming
615
659
  const indexedVariableName = occurrence > 0 ? `${variableName}[${occurrence}]` : variableName;
616
- // Generate mock code for this specific call using variable-qualified name
617
- // Format: "variableName <- functionName" (reads as "variableName receives from functionName")
618
- const qualifiedName = `${indexedVariableName} <- ${importedExport.name}`;
619
- const variableMockCode = constructMockCode(qualifiedName, dependencySchemas, importedExport.entityType);
660
+ // Use safe function name with underscores instead of brackets
661
+ // e.g., fetcher[1] -> fetcher_1
662
+ const safeFunctionName = indexedVariableName.replace(/\[(\d+)\]/g, '_$1');
663
+ // Compute unique mock function name for call site replacement
664
+ // e.g., useFetcher_entityDiffFetcher, useFetcher_reportFetcher
665
+ const mockFunctionName = `${importedExport.name}_${safeFunctionName}`;
666
+ // Use the call signature from baseHookCalls[i] as the data key
667
+ // This matches what's stored in dataForMocks
668
+ const callSignature = baseHookCalls[i];
669
+ // Generate mock code using the call signature directly
670
+ // This prevents "symbol already declared" errors when multiple calls exist
671
+ // Check if this is a package import that won't have scenario copies
672
+ const isPackageImportForMock = importPath?.startsWith('@');
673
+ const variableMockCode = constructMockCode(callSignature, // Use call signature format for data lookup
674
+ dependencySchemas, importedExport.entityType, undefined, // No need for separate canonical key
675
+ {
676
+ uniqueFunctionSuffix: safeFunctionName, // Use variable name for unique function naming
677
+ // For node_modules or package imports, skip spreading from __cyOriginal
678
+ // since those packages/files don't export *__cyOriginal variants
679
+ skipOriginalSpread: importedExport.isNodeModule || isPackageImportForMock,
680
+ });
620
681
  if (variableMockCode) {
621
682
  variableMockCodes.push(variableMockCode);
622
683
  // Replace the call site with the variable-specific mock function
623
684
  // e.g., useFetcher<BranchEntityDiffResult>() -> useFetcher_entityDiffFetcher()
624
685
  // e.g., useFetcher() -> useFetcher_reportFetcher()
625
- // For indexed variables: useFetcher() -> useFetcher_fetcher_1()
626
- const callSignature = importedExport.calls[i];
627
686
  // Escape special regex characters in the call signature
628
687
  const escapedCallSignature = callSignature.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
629
- // Create regex that matches the call (with optional whitespace variations)
630
- const callRegex = new RegExp(escapedCallSignature.replace(/\s+/g, '\\s*'), 'g');
631
- // Use safe function name with underscores instead of brackets
632
- // e.g., fetcher[1] -> fetcher_1
633
- const safeFunctionName = indexedVariableName.replace(/\[(\d+)\]/g, '_$1');
634
- const mockFunctionName = `${importedExport.name}_${safeFunctionName}`;
688
+ // Create regex that matches the call (with optional whitespace variations).
689
+ // TypeScript formatters commonly break type parameters across lines, e.g.:
690
+ // useLoaderData<
691
+ // typeof loader
692
+ // >()
693
+ // So we allow optional whitespace around < and > delimiters, not just
694
+ // where whitespace already exists in the call signature string.
695
+ const callRegex = new RegExp(escapedCallSignature
696
+ .replace(/\s+/g, '\\s*')
697
+ .replace(/</g, '\\s*<\\s*')
698
+ .replace(/>/g, '\\s*>\\s*'), 'gs');
635
699
  fileContent = fileContent.replace(callRegex, `${mockFunctionName}()`);
636
700
  }
637
701
  }
@@ -646,66 +710,152 @@ function addMockToContent(fileContent, importedExport, fileAnalyses, rootAnalysi
646
710
  ? importedExport.callVariableNames[0]
647
711
  : undefined;
648
712
  if (singleCallVariableName) {
649
- // For single variable assignments, use the variable-qualified key for data lookup
650
- // Use constructMockCode to generate proper dispatch functions for nested function calls
651
- // (e.g., useTranslation returns { t } where t() needs to dispatch based on translation key)
652
- const qualifiedKey = `${singleCallVariableName} <- ${importedExport.name}`;
653
- // Keep the original function name since there's only one call - no need for unique names
654
- mockCode = constructMockCode(qualifiedKey, dependencySchemas, importedExport.entityType, { keepOriginalFunctionName: true });
713
+ // For single variable assignments, use the call signature directly from dataForMocks
714
+ const dataForMocks = rootAnalysis.metadata?.scenariosDataStructure?.dataForMocks;
715
+ // Find matching call signature key in dataForMocks
716
+ // IMPORTANT: First try exact match with type parameters (e.g., "useLoaderData<LoaderData>()")
717
+ // to avoid picking the wrong variant (e.g., "useLoaderData<typeof loader>()" which may
718
+ // have different properties). Fall back to base name matching only if exact match fails.
719
+ const hookBaseName = importedExport.name.split(/[<(]/)[0];
720
+ const expectedKey = importedExport.calls?.[0];
721
+ let callSignatureKey;
722
+ if (dataForMocks) {
723
+ const keys = Object.keys(dataForMocks);
724
+ // First try exact match with the expected call signature
725
+ if (expectedKey && keys.includes(expectedKey)) {
726
+ callSignatureKey = expectedKey;
727
+ }
728
+ else {
729
+ // Fall back to base name matching
730
+ callSignatureKey = keys.find((key) => {
731
+ // Split on ., <, or ( to get the true base name
732
+ // This handles both "useFlags()" -> "useFlags" and "trpc.useUtils()" -> "trpc"
733
+ const keyBaseName = key.split(/[.<(]/)[0];
734
+ return keyBaseName === hookBaseName;
735
+ });
736
+ }
737
+ }
738
+ // Use the call signature if found, otherwise construct it
739
+ const dataKey = callSignatureKey ??
740
+ importedExport.calls?.[0] ??
741
+ `${importedExport.name}()`;
742
+ // IMPORTANT: If the dataKey is a method chain (e.g., "trpc.useUtils()"), we should
743
+ // use the base name (e.g., "trpc") when calling constructMockCode. This ensures
744
+ // constructMockCode generates a complete nested mock from the schema without
745
+ // referencing __cyOriginal variables.
746
+ // NOTE: Only check for dots BEFORE the first open paren. Function calls with
747
+ // dotted arguments like "getSurveyWithMetadata(params.surveyId)" have dots
748
+ // INSIDE parens — these are NOT method chains and should keep the full signature.
749
+ const dataKeyBaseName = dataKey.split(/[.<(]/)[0];
750
+ const firstParenIndex = dataKey.indexOf('(');
751
+ const partBeforeFirstParen = firstParenIndex >= 0 ? dataKey.substring(0, firstParenIndex) : dataKey;
752
+ const isMethodChainDataKey = dataKeyBaseName === importedExport.name &&
753
+ dataKey !== importedExport.name &&
754
+ partBeforeFirstParen.includes('.');
755
+ const mockNameToUse = isMethodChainDataKey
756
+ ? importedExport.name
757
+ : dataKey;
758
+ // Keep the original function name since there's only one call
759
+ // Check if this is a package import that won't have scenario copies
760
+ const isPackageImportForSingleCall = importPath?.startsWith('@');
761
+ mockCode = constructMockCode(mockNameToUse, dependencySchemas, importedExport.entityType, undefined, {
762
+ keepOriginalFunctionName: true,
763
+ // For node_modules or package imports, skip spreading from __cyOriginal
764
+ // since those packages/files don't export *__cyOriginal variants
765
+ skipOriginalSpread: importedExport.isNodeModule || isPackageImportForSingleCall,
766
+ });
655
767
  // If constructMockCode didn't generate code, fall back to simple return
768
+ // IMPORTANT: We inline scenarios().data() inside the function rather than
769
+ // storing in a const - see comment in constructMockCode.ts for why.
656
770
  if (!mockCode) {
657
- mockCode = `const ${importedExport.name}ReturnValue = scenarios().data()?.["${qualifiedKey}"];
658
-
659
- function ${importedExport.name}() {
660
- return ${importedExport.name}ReturnValue;
771
+ mockCode = `// PATCHED: memoize to return stable reference (prevents infinite useEffect re-triggers)
772
+ const _${importedExport.name}Ref = {
773
+ current: null,
774
+ };
775
+ function ${importedExport.name}(...args) {
776
+ if (!_${importedExport.name}Ref.current) {
777
+ _${importedExport.name}Ref.current = scenarios().data()?.["${dataKey}"];
778
+ }
779
+ return _${importedExport.name}Ref.current;
661
780
  }`;
662
781
  }
663
782
  }
664
783
  else {
665
- // Check if any analysis (fileAnalyses or rootAnalysis) has this function's data
666
- // under a variable-qualified key. The entity that CALLS the function (e.g., FileTableRow)
667
- // has the dataForMocks with the variable-qualified key, not the root analysis (e.g., GitView).
668
- let variableQualifiedKey;
669
- // First check fileAnalyses (the analyses for the entity being written)
670
- for (const analysis of fileAnalyses) {
671
- const dataForMocks = analysis.metadata?.scenariosDataStructure?.dataForMocks;
672
- if (dataForMocks) {
673
- variableQualifiedKey = Object.keys(dataForMocks).find((key) => {
674
- const match = key.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\s*<-\s*(.+)$/);
675
- return match && match[2] === importedExport.name;
676
- });
677
- if (variableQualifiedKey) {
678
- break;
679
- }
784
+ // Helper to find matching call signature key from dataForMocks
785
+ // IMPORTANT: First try exact match with type parameters (e.g., "useLoaderData<LoaderData>()")
786
+ // to avoid picking the wrong variant. Fall back to base name matching only if needed.
787
+ const hookBaseName = importedExport.name.split(/[<(]/)[0];
788
+ const expectedKey = importedExport.calls?.[0];
789
+ const findMatchingKey = (dataForMocks) => {
790
+ if (!dataForMocks)
791
+ return undefined;
792
+ const keys = Object.keys(dataForMocks);
793
+ // First try exact match with the expected call signature
794
+ if (expectedKey && keys.includes(expectedKey)) {
795
+ return expectedKey;
680
796
  }
681
- }
682
- // If not found in fileAnalyses, fall back to rootAnalysis
683
- if (!variableQualifiedKey) {
684
- const dataForMocks = rootAnalysis.metadata?.scenariosDataStructure?.dataForMocks;
685
- if (dataForMocks) {
686
- variableQualifiedKey = Object.keys(dataForMocks).find((key) => {
687
- const match = key.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\s*<-\s*(.+)$/);
688
- return match && match[2] === importedExport.name;
689
- });
797
+ // Fall back to base name matching
798
+ return keys.find((key) => {
799
+ // Split on ., <, or ( to get the true base name
800
+ // This handles both "useFlags()" -> "useFlags" and "trpc.useUtils()" -> "trpc"
801
+ const keyBaseName = key.split(/[.<(]/)[0];
802
+ return keyBaseName === hookBaseName;
803
+ });
804
+ };
805
+ // Check rootAnalysis FIRST for matching keys.
806
+ // The mock DATA is generated from rootAnalysis, so the mock CODE must
807
+ // also use rootAnalysis keys to ensure the lookup succeeds.
808
+ let dataKey = findMatchingKey(rootAnalysis.metadata?.scenariosDataStructure?.dataForMocks);
809
+ // If not found in rootAnalysis, fall back to fileAnalyses
810
+ if (!dataKey) {
811
+ for (const analysis of fileAnalyses) {
812
+ dataKey = findMatchingKey(analysis.metadata?.scenariosDataStructure?.dataForMocks);
813
+ if (dataKey)
814
+ break;
690
815
  }
691
816
  }
692
- if (variableQualifiedKey) {
693
- // Use the variable-qualified key found in the analysis
694
- // Use constructMockCode to generate proper dispatch functions for nested function calls
695
- // Keep the original function name since there's only one call - no need for unique names
696
- mockCode = constructMockCode(variableQualifiedKey, dependencySchemas, importedExport.entityType, { keepOriginalFunctionName: true });
697
- // If constructMockCode didn't generate code, fall back to simple return
698
- if (!mockCode) {
699
- mockCode = `const ${importedExport.name}ReturnValue = scenarios().data()?.["${variableQualifiedKey}"];
700
-
701
- function ${importedExport.name}() {
702
- return ${importedExport.name}ReturnValue;
817
+ // Use the data key if found, otherwise use call signature or function name.
818
+ // IMPORTANT: If the dataKey is a method chain (e.g., "trpc.useUtils()"), we should
819
+ // use the base name (e.g., "trpc") when calling constructMockCode. This ensures
820
+ // constructMockCode generates a complete nested mock from the schema without
821
+ // referencing __cyOriginal variables. The __cyOriginal pattern is only needed
822
+ // for partial mocking where we preserve some original methods, not for complete
823
+ // method-chain mocks where we provide all implementations.
824
+ // NOTE: Only check for dots BEFORE the first open paren. Function calls with
825
+ // dotted arguments like "getSurveyWithMetadata(params.surveyId)" have dots
826
+ // INSIDE parens — these are NOT method chains and should keep the full signature.
827
+ const dataKeyBaseName = dataKey?.split(/[.<(]/)[0];
828
+ const elseFirstParenIndex = dataKey?.indexOf('(') ?? -1;
829
+ const elsePartBeforeFirstParen = dataKey && elseFirstParenIndex >= 0
830
+ ? dataKey.substring(0, elseFirstParenIndex)
831
+ : dataKey;
832
+ const isMethodChainDataKey = dataKey &&
833
+ dataKeyBaseName === importedExport.name &&
834
+ dataKey !== importedExport.name &&
835
+ (elsePartBeforeFirstParen?.includes('.') ?? false);
836
+ const mockNameToUse = isMethodChainDataKey
837
+ ? importedExport.name
838
+ : (dataKey ?? importedExport.calls?.[0] ?? `${importedExport.name}()`);
839
+ mockCode = constructMockCode(mockNameToUse, dependencySchemas, importedExport.entityType, undefined, {
840
+ keepOriginalFunctionName: true,
841
+ // For node_modules or package imports, skip spreading from __cyOriginal
842
+ // since those packages/files don't export *__cyOriginal variants
843
+ skipOriginalSpread: importedExport.isNodeModule || importPath?.startsWith('@'),
844
+ });
845
+ // If constructMockCode didn't generate code, fall back to simple return
846
+ // IMPORTANT: We inline scenarios().data() inside the function rather than
847
+ // storing in a const - see comment in constructMockCode.ts for why.
848
+ if (!mockCode && dataKey) {
849
+ mockCode = `// PATCHED: memoize to return stable reference (prevents infinite useEffect re-triggers)
850
+ const _${importedExport.name}Ref = {
851
+ current: null,
852
+ };
853
+ function ${importedExport.name}(...args) {
854
+ if (!_${importedExport.name}Ref.current) {
855
+ _${importedExport.name}Ref.current = scenarios().data()?.["${dataKey}"];
856
+ }
857
+ return _${importedExport.name}Ref.current;
703
858
  }`;
704
- }
705
- }
706
- else {
707
- // Original behavior for calls without variable names
708
- mockCode = constructMockCode(importedExport.name, dependencySchemas, importedExport.entityType);
709
859
  }
710
860
  }
711
861
  }
@@ -724,13 +874,44 @@ function ${importedExport.name}() {
724
874
  else {
725
875
  // Escape regex special characters in importPath (e.g., brackets in [environmentId])
726
876
  const escapedImportPath = importPath.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
727
- const importRegExp = new RegExp(`(import(?:(?!${firstPart}|from|import)[\\s\\S])*?)${firstPart}(?:,\\s*)?((?:(?!import)[\\s\\S])*?from\\s+['"]${escapedImportPath}['"])`, 'm');
728
- if (importedExportNameParts.length > 1) {
877
+ // Use a simpler, more robust regex pattern that matches the fallback path.
878
+ // Key improvements:
879
+ // 1. Uses escapeRegExp(firstPart) to handle special characters in function names
880
+ // 2. Uses word boundaries (\b) to prevent partial matches
881
+ // 3. Handles comma BEFORE or AFTER the name: (?:,\s*|\s*,)?
882
+ // 4. Matches specific import path (escapedImportPath)
883
+ const importRegExp = new RegExp(`(import\\s*\\{[^}]*?)\\b${escapeRegExp(firstPart)}\\b(?:,\\s*|\\s*,)?((?:[^}]*\\}\\s*from\\s*['"]${escapedImportPath}['"];?))`, 'm');
884
+ // Check if any call signature has multiple parts (e.g., "logger.error(error)")
885
+ // If so, the mock code will spread from __cyOriginal, so we need to rename the import
886
+ // EXCEPT:
887
+ // 1. For node_module imports, the __cyOriginal pattern doesn't work because
888
+ // the original package doesn't export *__cyOriginal variants.
889
+ // 2. For package imports (starting with @), the __cyOriginal pattern doesn't work
890
+ // because scenario copies aren't created for package files - they keep the
891
+ // original import path which doesn't export *__cyOriginal.
892
+ const anyCallHasMultipleParts = importedExport.calls?.some((call) => {
893
+ const callParts = splitOutsideParenthesesAndArrays(call);
894
+ return callParts.length > 1;
895
+ });
896
+ // Package imports (starting with @) don't get scenario copies, so __cyOriginal won't exist
897
+ const isPackageImport = importPath.startsWith('@');
898
+ const shouldRenameToOriginal = !importedExport.isNodeModule &&
899
+ !isPackageImport &&
900
+ (importedExportNameParts.length > 1 || anyCallHasMultipleParts);
901
+ if (shouldRenameToOriginal) {
729
902
  fileContent = fileContent.replace(importRegExp, `$1${firstPart}__cyOriginal$2`);
730
903
  }
731
904
  else {
732
905
  fileContent = fileContent.replace(importRegExp, '$1$2');
733
906
  }
907
+ // Also handle namespace imports (import * as foo from '...')
908
+ // These need to be renamed to foo__cyOriginal when the mock code spreads from the original.
909
+ // Note: We match any path (not just escapedImportPath) because the import path may have
910
+ // been rewritten by transitive import handling before this code runs.
911
+ if (shouldRenameToOriginal) {
912
+ const namespaceImportRegExp = new RegExp(`(import\\s+\\*\\s+as\\s+)${escapeRegExp(firstPart)}(\\s+from\\s+['"][^'"]*['"])`, 'm');
913
+ fileContent = fileContent.replace(namespaceImportRegExp, `$1${firstPart}__cyOriginal$2`);
914
+ }
734
915
  // Remove empty imports entirely to avoid partial commenting issues with multiline imports
735
916
  // This handles both single-line and multiline empty imports
736
917
  fileContent = fileContent.replace(/import\s*\{\s*\}\s*from\s+['"][^'"]*['"];?\s*\n?/g, '');
@@ -746,7 +927,17 @@ function ${importedExport.name}() {
746
927
  // This handles imports like: import { useEnvironment, otherThing } from "any/path"
747
928
  // Removes useEnvironment but keeps otherThing
748
929
  const namedImportRegExp = new RegExp(`(import\\s*\\{[^}]*?)\\b${escapeRegExp(firstPart)}\\b(?:,\\s*|\\s*,)?((?:[^}]*\\}\\s*from\\s*['"][^'"]*['"];?))`, 'm');
749
- if (importedExportNameParts.length > 1) {
930
+ // Check if any call signature has multiple parts (e.g., "logger.error(error)")
931
+ // If so, the mock code will spread from __cyOriginal, so we need to rename the import
932
+ // EXCEPT: For node_module imports, the __cyOriginal pattern doesn't work because
933
+ // the original package doesn't export *__cyOriginal variants.
934
+ const anyCallHasMultipleParts = importedExport.calls?.some((call) => {
935
+ const callParts = splitOutsideParenthesesAndArrays(call);
936
+ return callParts.length > 1;
937
+ });
938
+ const shouldRenameToOriginal = !importedExport.isNodeModule &&
939
+ (importedExportNameParts.length > 1 || anyCallHasMultipleParts);
940
+ if (shouldRenameToOriginal) {
750
941
  // Rename the import instead of removing (for destructured access patterns)
751
942
  fileContent = fileContent.replace(namedImportRegExp, `$1${firstPart}__cyOriginal$2`);
752
943
  }
@@ -1079,9 +1270,12 @@ export default async function writeScenarioComponents({ project, file, entity, r
1079
1270
  fileContentLength: fileContent.length,
1080
1271
  });
1081
1272
  let importedExportIndex = 0;
1273
+ const loopStartTime = Date.now();
1274
+ console.log(`[WriteScenario] Starting import loop for ${entity.name}: ${sortedImportedExports.length} imports`);
1082
1275
  for (const importedExport of sortedImportedExports) {
1083
1276
  importedExportIndex++;
1084
1277
  if (importedExportIndex % 5 === 0 || importedExportIndex === 1) {
1278
+ console.log(`[WriteScenario] ${entity.name} import ${importedExportIndex}/${sortedImportedExports.length}: ${importedExport.name} elapsed=${Date.now() - loopStartTime}ms`);
1085
1279
  debugLog(`Processing importedExport ${importedExportIndex}/${sortedImportedExports.length}`, {
1086
1280
  name: importedExport.name,
1087
1281
  filePath: importedExport.filePath,
@@ -1187,6 +1381,12 @@ export default async function writeScenarioComponents({ project, file, entity, r
1187
1381
  // Strip server-only imports - these break when imported by client components
1188
1382
  dataFileContent = stripServerOnlyImport(dataFileContent);
1189
1383
  dataFileContent = applyServerOnlyMocks(dataFileContent);
1384
+ // Process transitive imports: if the data entity file imports from files
1385
+ // that have `import "server-only"`, rewrite those imports to transitive
1386
+ // copies with server-only stripped. Without this, data entity files that
1387
+ // end up in a client bundle (e.g., via a stripped "use server" boundary)
1388
+ // would pull in server-only code and cause build failures.
1389
+ dataFileContent = await processTransitiveImportsRecursively(dataFileContent, fileNotMocked.path, dataScenarioPath);
1190
1390
  // Write the transformed data entity file
1191
1391
  await writeFile(dataScenarioPath, dataFileContent);
1192
1392
  scenarioComponentPaths.push(dataScenarioPath);
@@ -1203,9 +1403,9 @@ export default async function writeScenarioComponents({ project, file, entity, r
1203
1403
  writtenScenarioComponents[importedExportFilePath] = [];
1204
1404
  }
1205
1405
  writtenScenarioComponents[importedExportFilePath].push(importedExport.name);
1206
- // Don't recurse - data entities don't need their dependencies processed
1207
- // The import rewriting will happen later in this same loop iteration
1208
- // (at lines ~1590-1702) to point imports to this transformed file
1406
+ // Don't recurse into full writeScenarioComponents - data entities don't
1407
+ // need mock generation for their dependencies. Transitive server-only
1408
+ // import processing is already handled above via processTransitiveImportsRecursively.
1209
1409
  }
1210
1410
  else {
1211
1411
  // For visual/library entities, recurse to process their dependencies
@@ -1214,6 +1414,8 @@ export default async function writeScenarioComponents({ project, file, entity, r
1214
1414
  // e.g., if file has `export default X` but parent does `import { X } from '...'`
1215
1415
  const needsNamedReExport = importedExport.resolvedIsDefault === true &&
1216
1416
  importedExport.isDefault === false;
1417
+ console.log(`[WriteScenario] RECURSE START: ${entity.name} -> ${importedExportEntity.name}`);
1418
+ const recurseStartTime = Date.now();
1217
1419
  debugLog(`Recursing into writeScenarioComponents for ${importedExportEntity.name}`, {
1218
1420
  entityName: importedExportEntity.name,
1219
1421
  filePath: fileNotMocked.path,
@@ -1236,7 +1438,8 @@ export default async function writeScenarioComponents({ project, file, entity, r
1236
1438
  exportAsNamed: needsNamedReExport
1237
1439
  ? importedExport.name
1238
1440
  : undefined,
1239
- }), 60000);
1441
+ }), 180000);
1442
+ console.log(`[WriteScenario] RECURSE END: ${entity.name} -> ${importedExportEntity.name} took ${Date.now() - recurseStartTime}ms`);
1240
1443
  debugLog(`Completed recursive writeScenarioComponents for ${importedExportEntity.name}`);
1241
1444
  writtenScenarioComponents = updatedWrittenScenarioComponents;
1242
1445
  scenarioComponentPaths.push(...newScenarioComponentPaths);
@@ -1255,13 +1458,22 @@ export default async function writeScenarioComponents({ project, file, entity, r
1255
1458
  // Data and type entities should be preserved - they're not callable and may have methods
1256
1459
  // that stubbing would break (e.g., Zod schemas with .superRefine())
1257
1460
  const isDataEntity = entityType === 'data' || entityType === 'type';
1258
- // Heuristic: Zod schemas are often misclassified as 'library' but should be preserved
1259
- // Detect by: name starts with Z + uppercase letter, AND has Zod method calls
1260
- const looksLikeZodSchema = entityType === 'library' &&
1261
- /^Z[A-Z]/.test(importedExport.name) &&
1262
- importedExport.calls?.some((call) => /\.(superRefine|refine|transform|default|optional|nullable|array|object|string|number|boolean|parse|safeParse)\s*\(/.test(call));
1263
- // Callable entities can be safely stubbed (but not Zod schemas)
1264
- const isCallable = !isDataEntity && !looksLikeZodSchema && entityType !== undefined;
1461
+ // If calls data shows the entity is only accessed via properties/methods
1462
+ // (e.g., formValidator.validate(), schema.superRefine()) and never directly
1463
+ // invoked (e.g., getInitialProps()), it's used as an object and should be
1464
+ // preserved rather than replaced with a Proxy stub.
1465
+ const onlyPropertyAccessed = importedExport.calls?.length > 0 &&
1466
+ !importedExport.calls.some((call) => {
1467
+ const afterName = call.slice(importedExport.name.length);
1468
+ return afterName.startsWith('(') || afterName.startsWith('<');
1469
+ });
1470
+ // Callable entities can be safely stubbed. Entities that are only
1471
+ // property-accessed should be preserved (their methods need to work).
1472
+ // 'other' entities are unknown types — safer to preserve than stub.
1473
+ const isCallable = !isDataEntity &&
1474
+ !onlyPropertyAccessed &&
1475
+ entityType !== undefined &&
1476
+ entityType !== 'other';
1265
1477
  // Determine what action to take
1266
1478
  const shouldStripAndReplace = hasMock;
1267
1479
  const shouldStripAndStub = !hasMock && importedExport.isMocked && isCallable;
@@ -1498,6 +1710,9 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1498
1710
  }
1499
1711
  }
1500
1712
  }
1713
+ // Track post-import-loop timing
1714
+ const postLoopStartTime = Date.now();
1715
+ console.log(`[WriteScenario] POST-LOOP START: ${entity.name}`);
1501
1716
  // Collect universal mocks BEFORE processing nodeModuleImports
1502
1717
  // This is needed to check if a node module import is handled by a universal mock
1503
1718
  const universalMocks = project.metadata?.universalMocks ?? [];
@@ -1531,6 +1746,7 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1531
1746
  const importRegex = new RegExp(`(import\\s+(?:\\{[^}]*\\}|\\*\\s+as\\s+\\w+|\\w+)\\s+from\\s+)['"]${originalPath.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}['"]`, 'g');
1532
1747
  fileContent = fileContent.replace(importRegex, `$1'${mockFileRelativePath}'`);
1533
1748
  }
1749
+ console.log(`[WriteScenario] POST-LOOP ${entity.name}: node+universal mocks took ${Date.now() - postLoopStartTime}ms`);
1534
1750
  if (rootAnalysis.entitySha === entity.sha &&
1535
1751
  entity.metadata?.notExported &&
1536
1752
  entity.name !== 'default') {
@@ -1590,6 +1806,7 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1590
1806
  debugLog('Starting rewriteRelativeModuleImports');
1591
1807
  fileContent = rewriteRelativeModuleImports(fileContent, `${PROJECT_RELATIVE_PATH}/${file.path}`, scenarioComponentPath);
1592
1808
  debugLog('Completed rewriteRelativeModuleImports');
1809
+ console.log(`[WriteScenario] POST-LOOP ${entity.name}: transformations took ${Date.now() - postLoopStartTime}ms`);
1593
1810
  /**
1594
1811
  * Recursively process a file's imports to create transitive copies with server-only stripped.
1595
1812
  * This handles chains of arbitrary depth: A -> B -> C -> D where each needs server-only removed.
@@ -1603,12 +1820,14 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1603
1820
  */
1604
1821
  async function processTransitiveImportsRecursively(content, sourceFilePath, targetFilePath, visitedPaths = new Set(), depth = 0, startTime = Date.now()) {
1605
1822
  // Global timeout for entire transitive processing
1606
- const GLOBAL_TIMEOUT_MS = 60000; // 1 minute max for all transitive processing
1823
+ const GLOBAL_TIMEOUT_MS = 180000; // 3 minutes max for all transitive processing (complex components need more time)
1607
1824
  const elapsed = Date.now() - startTime;
1608
1825
  if (elapsed > GLOBAL_TIMEOUT_MS) {
1609
1826
  throw new Error(`processTransitiveImportsRecursively exceeded ${GLOBAL_TIMEOUT_MS}ms (elapsed: ${elapsed}ms) at depth=${depth} for ${sourceFilePath}`);
1610
1827
  }
1611
1828
  const importPaths = extractInternalImportPaths(content);
1829
+ // Always log to help debug timeout issues
1830
+ console.log(`[TransitiveImports] depth=${depth} file=${path.basename(sourceFilePath)} imports=${importPaths.length} visited=${visitedPaths.size} elapsed=${Date.now() - startTime}ms`);
1612
1831
  debugLog(`processTransitiveImportsRecursively depth=${depth}`, {
1613
1832
  sourceFilePath,
1614
1833
  importCount: importPaths.length,
@@ -1645,8 +1864,10 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1645
1864
  const basePath = safeFolder(importFile.path.split('/').slice(0, -1).join('/'));
1646
1865
  const extension = importFile.name.split('.').pop();
1647
1866
  const isIndex = isIndexPath(importFile.path);
1648
- const pathHash = safeFileName(importFile.path);
1649
- const transitiveFilePath = `${PROJECT_RELATIVE_PATH}/${basePath}/${pathHash}_${isIndex ? 'index_' : ''}transitive_${safeFileName(scenario.name)}.${extension}`;
1867
+ // Limit pathHash length to prevent ENAMETOOLONG errors on macOS (255 char limit)
1868
+ const pathHash = safeFileName(importFile.path, { maxLength: 80 });
1869
+ const scenarioSlug = safeFileName(scenario.name, { maxLength: 60 });
1870
+ const transitiveFilePath = `${PROJECT_RELATIVE_PATH}/${basePath}/${pathHash}_${isIndex ? 'index_' : ''}transitive_${scenarioSlug}.${extension}`;
1650
1871
  // Check if this is a circular import (we're already processing this file)
1651
1872
  const isCircularImport = visitedPaths.has(resolvedPath);
1652
1873
  // Check if already processed
@@ -1724,6 +1945,7 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1724
1945
  debugLog(`Returning from processTransitiveImportsRecursively depth=${depth}`);
1725
1946
  return modifiedContent;
1726
1947
  }
1948
+ console.log(`[WriteScenario] POST-LOOP ${entity.name}: before remaining imports ${Date.now() - postLoopStartTime}ms`);
1727
1949
  // Process remaining internal imports that weren't in importedExports
1728
1950
  // This handles transitive dependencies: when the file content includes code (e.g., from
1729
1951
  // other functions in the same file) that imports from files with "server-only"
@@ -1743,6 +1965,16 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1743
1965
  for (const importPath of remainingImportPaths) {
1744
1966
  remainingImportIndex++;
1745
1967
  debugLog(`[REMAINING LOOP] import ${remainingImportIndex}/${remainingImportPaths.length}: ${importPath}`);
1968
+ // Skip imports that point to generated CodeYam files (same skip logic as
1969
+ // rewriteRelativeModuleImports). Without this, MockData files from earlier
1970
+ // captures that get discovered by the TypeScript compiler would be treated as
1971
+ // regular imports, creating transitive copies with stale content.
1972
+ const scenarioFilePattern = /[a-f0-9]{64}_\w+_[A-Z]\w*$/;
1973
+ const mockDataPattern = /__codeyamMocks__\//;
1974
+ if (scenarioFilePattern.test(importPath) ||
1975
+ mockDataPattern.test(importPath)) {
1976
+ continue;
1977
+ }
1746
1978
  // Resolve the import path to a project file path
1747
1979
  const resolvedFilePath = resolveImportPath(importPath, file.path, project);
1748
1980
  if (!resolvedFilePath) {
@@ -1781,8 +2013,10 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1781
2013
  const targetFileBasePath = safeFolder(targetFile.path.split('/').slice(0, -1).join('/'));
1782
2014
  const targetFileExtension = targetFile.name.split('.').pop();
1783
2015
  const targetFileIsIndex = isIndexPath(targetFile.path);
1784
- const filePathHash = safeFileName(targetFile.path);
1785
- const transformedFilePath = `${PROJECT_RELATIVE_PATH}/${targetFileBasePath}/${filePathHash}_${targetFileIsIndex ? 'index_' : ''}transitive_${safeFileName(scenario.name)}.${targetFileExtension}`;
2016
+ // Limit path hash length to prevent ENAMETOOLONG errors
2017
+ const filePathHash = safeFileName(targetFile.path, { maxLength: 80 });
2018
+ const targetScenarioSlug = safeFileName(scenario.name, { maxLength: 60 });
2019
+ const transformedFilePath = `${PROJECT_RELATIVE_PATH}/${targetFileBasePath}/${filePathHash}_${targetFileIsIndex ? 'index_' : ''}transitive_${targetScenarioSlug}.${targetFileExtension}`;
1786
2020
  // Check if we've already processed this file as a transitive copy
1787
2021
  // Note: __data_file_written__ is for entity-specific scenario files with different naming,
1788
2022
  // but we still need transitive copies for server-only stripping. Data entity files may
@@ -1821,8 +2055,12 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1821
2055
  const nestedBasePath = safeFolder(nestedFile.path.split('/').slice(0, -1).join('/'));
1822
2056
  const nestedExtension = nestedFile.name.split('.').pop();
1823
2057
  const nestedIsIndex = isIndexPath(nestedFile.path);
1824
- const nestedPathHash = safeFileName(nestedFile.path);
1825
- const nestedTransformedPath = `${PROJECT_RELATIVE_PATH}/${nestedBasePath}/${nestedPathHash}_${nestedIsIndex ? 'index_' : ''}transitive_${safeFileName(scenario.name)}.${nestedExtension}`;
2058
+ // Limit path hash length to prevent ENAMETOOLONG errors
2059
+ const nestedPathHash = safeFileName(nestedFile.path, { maxLength: 80 });
2060
+ const nestedScenarioSlug = safeFileName(scenario.name, {
2061
+ maxLength: 60,
2062
+ });
2063
+ const nestedTransformedPath = `${PROJECT_RELATIVE_PATH}/${nestedBasePath}/${nestedPathHash}_${nestedIsIndex ? 'index_' : ''}transitive_${nestedScenarioSlug}.${nestedExtension}`;
1826
2064
  // Check if already processed as a transitive file (we can rewrite to point to it)
1827
2065
  // Note: __data_file_written__ is for entity-specific scenario files with different naming,
1828
2066
  // but we still need transitive copies for server-only stripping in the import chain
@@ -1888,6 +2126,7 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1888
2126
  const importRegex = new RegExp(`(from\\s*["'])${escapedImportPath}(["'])`, 'g');
1889
2127
  fileContent = fileContent.replace(importRegex, `$1${safeRelativePath}$2`);
1890
2128
  }
2129
+ console.log(`[WriteScenario] POST-LOOP ${entity.name}: remaining imports loop took ${Date.now() - postLoopStartTime}ms`);
1891
2130
  const scenarioComponentComment = `// This file is auto-generated by CodeYam. Do not edit this file manually.
1892
2131
  // This file contains content for a scenario component:
1893
2132
  // Analyses being written: ${JSON.stringify(fileAnalyses?.map((a) => ({ id: a.id, entityName: a.entityName })))}
@@ -1898,6 +2137,57 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1898
2137
  // Entity: ${rootAnalysis.entitySha} ${rootAnalysis.entityName}
1899
2138
  // Scenario: ${scenario.id} - ${scenario.name}
1900
2139
  `;
2140
+ // Final pass: Rename any namespace imports (import * as X from '...') that have
2141
+ // corresponding mock code using ...X__cyOriginal spread pattern.
2142
+ // This handles cases where:
2143
+ // 1. The import path was rewritten by transitive import handling
2144
+ // 2. The import wasn't caught by the earlier renaming logic
2145
+ // We scan for all __cyOriginal references in the mock code and ensure the imports are renamed.
2146
+ const cyOriginalReferences = fileContent.match(/\.\.\.(\w+)__cyOriginal/g);
2147
+ if (cyOriginalReferences) {
2148
+ const uniqueNames = [
2149
+ ...new Set(cyOriginalReferences.map((ref) => ref.replace('...', '').replace('__cyOriginal', ''))),
2150
+ ];
2151
+ for (const name of uniqueNames) {
2152
+ // Match namespace imports for this name that haven't been renamed yet
2153
+ const namespaceImportRegex = new RegExp(`(import\\s+\\*\\s+as\\s+)${escapeRegExp(name)}(\\s+from\\s+['"][^'"]*['"])`, 'g');
2154
+ fileContent = fileContent.replace(namespaceImportRegex, `$1${name}__cyOriginal$2`);
2155
+ }
2156
+ }
2157
+ // For route components (page.tsx, layout.tsx), the component IS the Next.js page.
2158
+ // There's no wrapper page to inject argumentsData as props (unlike non-route components
2159
+ // which get a scenarioComponent wrapper). We need to wrap the default export so that
2160
+ // the scenario's argumentsData is passed as props to the component.
2161
+ if (isFrameworkRoute(file, entity, framework, file === rootFile) &&
2162
+ rootAnalysis.metadata?.scenariosDataStructure?.arguments?.length > 0) {
2163
+ const positionalArguments = rootAnalysis.metadata.scenariosDataStructure.arguments;
2164
+ const hasNamedArgs = positionalArguments.length === 1 &&
2165
+ typeof positionalArguments[0] === 'object';
2166
+ if (hasNamedArgs) {
2167
+ // Match: export default function Name(
2168
+ // Also: export default async function Name(
2169
+ const defaultExportMatch = fileContent.match(/export\s+default\s+(async\s+)?function\s+(\w+)\s*\(/);
2170
+ if (defaultExportMatch) {
2171
+ const funcName = defaultExportMatch[2];
2172
+ // Remove "export default" from the original function declaration
2173
+ fileContent = fileContent.replace(/export\s+default\s+(async\s+)?function\s+(\w+)\s*\(/, '$1function $2(');
2174
+ // Ensure scenarios import is present
2175
+ const mockDataPath = `${relativeMocksDir}/MockData_${safeFileName(scenario.name)}`;
2176
+ if (fileContent.indexOf('import { scenarios } from') === -1) {
2177
+ fileContent = `import { scenarios } from "${mockDataPath}";\n\n${fileContent}`;
2178
+ }
2179
+ // Add wrapper default export that injects argumentsData as props.
2180
+ // Filter null values: the LLM uses null to mean "don't pass this prop"
2181
+ // but spreading { prop: null } explicitly passes null, which differs from
2182
+ // undefined (absent) and crashes components that check `prop !== undefined`.
2183
+ fileContent += `\n\nexport default function _CYRouteWrapper(props: any) {
2184
+ const _cyArgs = scenarios().data()?.['arguments']?.[0] ?? {};
2185
+ const _cyCleanArgs = Object.fromEntries(Object.entries(_cyArgs).filter(([_, v]) => v !== null));
2186
+ return <${funcName} {...props} {..._cyCleanArgs} />;
2187
+ }\n`;
2188
+ }
2189
+ }
2190
+ }
1901
2191
  // Use the directive that was extracted at the beginning of processing
1902
2192
  // This ensures it stays at the very top even after imports are prepended
1903
2193
  // NOTE: We only preserve "use client" directives, NOT "use server" directives.
@@ -1918,6 +2208,7 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
1918
2208
  await writeFile(scenarioComponentPath, finalContent);
1919
2209
  debugLog('Successfully wrote scenario file');
1920
2210
  scenarioComponentPaths.push(scenarioComponentPath);
2211
+ console.log(`[WriteScenario] POST-LOOP ${entity.name}: COMPLETE total=${Date.now() - postLoopStartTime}ms`);
1921
2212
  return { scenarioComponentPaths, writtenScenarioComponents };
1922
2213
  }
1923
2214
  //# sourceMappingURL=writeScenarioComponents.js.map