@codeyam/codeyam-cli 0.1.0-staging.76566f9 → 0.1.0-staging.79ef713

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 (850) hide show
  1. package/analyzer-template/.build-info.json +8 -8
  2. package/analyzer-template/common/execAsync.ts +1 -1
  3. package/analyzer-template/log.txt +3 -3
  4. package/analyzer-template/package.json +15 -12
  5. package/analyzer-template/packages/ai/index.ts +20 -5
  6. package/analyzer-template/packages/ai/package.json +3 -3
  7. package/analyzer-template/packages/ai/src/lib/__mocks__/completionCall.ts +122 -0
  8. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +212 -24
  9. package/analyzer-template/packages/ai/src/lib/astScopes/arrayDerivationDetector.ts +199 -0
  10. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +183 -10
  11. package/analyzer-template/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.ts +644 -0
  12. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +181 -23
  13. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
  14. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.ts +18 -0
  15. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +15 -0
  16. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.ts +181 -1
  17. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +1128 -30
  18. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +259 -6
  19. package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +29 -10
  20. package/analyzer-template/packages/ai/src/lib/completionCall.ts +216 -36
  21. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +1577 -313
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +5 -1
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +296 -35
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +10 -2
  25. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +16 -3
  26. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +6 -4
  27. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +54 -3
  28. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +129 -20
  29. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
  30. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +80 -5
  31. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +179 -0
  32. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.ts +40 -30
  33. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +393 -90
  34. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.ts +129 -0
  35. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +156 -0
  36. package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
  37. package/analyzer-template/packages/ai/src/lib/e2eDataTracking.ts +334 -0
  38. package/analyzer-template/packages/ai/src/lib/extractCriticalDataKeys.ts +120 -0
  39. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +33 -7
  40. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +86 -142
  41. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +59 -3
  42. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +1358 -67
  43. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +200 -196
  44. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +578 -0
  45. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
  46. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +2267 -0
  47. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +239 -0
  48. package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +5 -5
  49. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +328 -7
  50. package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +111 -87
  51. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +10 -7
  52. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +1 -1
  53. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +32 -142
  54. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChunkPrompt.ts +82 -0
  55. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateCriticalKeysPrompt.ts +103 -0
  56. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +90 -6
  57. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +14 -89
  58. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
  59. package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +11 -11
  60. package/analyzer-template/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.ts +391 -0
  61. package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +824 -0
  62. package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +5 -1
  63. package/analyzer-template/packages/ai/src/lib/validateExecutionFlowPaths.ts +531 -0
  64. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +122 -3
  65. package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +114 -2
  66. package/analyzer-template/packages/analyze/index.ts +2 -0
  67. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +79 -59
  68. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +113 -26
  69. package/analyzer-template/packages/analyze/src/lib/analysisContext.ts +44 -4
  70. package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +1 -0
  71. package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
  72. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +19 -0
  73. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +19 -0
  74. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +11 -0
  75. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +8 -0
  76. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +49 -1
  77. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +2 -1
  78. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +449 -283
  79. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +34 -1
  80. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +6 -0
  81. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +3 -0
  82. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +4 -2
  83. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +33 -10
  84. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +31 -15
  85. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +11 -7
  86. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +11 -12
  87. package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +4 -5
  88. package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
  89. package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +14 -12
  90. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1315 -0
  91. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +201 -46
  92. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
  93. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +254 -41
  94. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +28 -62
  95. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +306 -20
  96. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +264 -0
  97. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +1 -0
  98. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +2 -3
  99. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +723 -46
  100. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +56 -11
  101. package/analyzer-template/packages/analyze/src/lib/files/scenarios/propagateArrayItemSchemas.ts +474 -0
  102. package/analyzer-template/packages/analyze/src/lib/files/setImportedExports.ts +2 -1
  103. package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
  104. package/analyzer-template/packages/analyze/src/lib/utils/getFileByPath.ts +19 -0
  105. package/analyzer-template/packages/aws/codebuild/index.ts +1 -0
  106. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +11 -1
  107. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -1
  108. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +29 -18
  109. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -1
  110. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +2 -2
  111. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -1
  112. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +2 -2
  113. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  114. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +8 -18
  115. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -1
  116. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +17 -61
  117. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  118. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -1
  119. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +8 -1
  120. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -1
  121. package/analyzer-template/packages/aws/package.json +3 -3
  122. package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +43 -19
  123. package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +3 -3
  124. package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +17 -69
  125. package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +8 -1
  126. package/analyzer-template/packages/database/package.json +1 -1
  127. package/analyzer-template/packages/database/src/lib/kysely/db.ts +8 -1
  128. package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +6 -0
  129. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +17 -1
  130. package/analyzer-template/packages/database/src/lib/loadAnalyses.ts +58 -1
  131. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +13 -0
  132. package/analyzer-template/packages/database/src/lib/loadBranch.ts +16 -1
  133. package/analyzer-template/packages/database/src/lib/loadCommit.ts +11 -0
  134. package/analyzer-template/packages/database/src/lib/loadCommits.ts +28 -0
  135. package/analyzer-template/packages/database/src/lib/loadEntities.ts +26 -3
  136. package/analyzer-template/packages/database/src/lib/loadEntityBranches.ts +12 -0
  137. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +7 -3
  138. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +7 -14
  139. package/analyzer-template/packages/generate/index.ts +3 -0
  140. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +17 -1
  141. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +193 -0
  142. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
  143. package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
  144. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  145. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +8 -1
  146. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  147. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +1 -18
  148. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -1
  149. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts +1 -0
  150. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts.map +1 -1
  151. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js +3 -0
  152. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  153. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +17 -1
  154. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -1
  155. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  156. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts +1 -0
  157. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -1
  158. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +2 -6
  159. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  160. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts +2 -0
  161. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts.map +1 -1
  162. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js +45 -2
  163. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js.map +1 -1
  164. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  165. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +8 -0
  166. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  167. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js +11 -1
  168. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js.map +1 -1
  169. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.d.ts.map +1 -1
  170. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js +7 -0
  171. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js.map +1 -1
  172. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts +3 -1
  173. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  174. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +22 -1
  175. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  176. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts +3 -1
  177. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  178. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +23 -4
  179. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  180. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.d.ts.map +1 -1
  181. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js +9 -0
  182. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js.map +1 -1
  183. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  184. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
  185. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  186. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts +2 -2
  187. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  188. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +5 -4
  189. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  190. package/analyzer-template/packages/github/dist/generate/index.d.ts +3 -0
  191. package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -1
  192. package/analyzer-template/packages/github/dist/generate/index.js +3 -0
  193. package/analyzer-template/packages/github/dist/generate/index.js.map +1 -1
  194. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
  195. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  196. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  197. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts +9 -0
  198. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -0
  199. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  200. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  201. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts +20 -0
  202. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts.map +1 -0
  203. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  204. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  205. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts +8 -0
  206. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts.map +1 -0
  207. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js +89 -0
  208. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  209. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -1
  210. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +10 -0
  211. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -1
  212. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -1
  213. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +3 -0
  214. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -1
  215. package/analyzer-template/packages/github/dist/types/index.d.ts +3 -4
  216. package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
  217. package/analyzer-template/packages/github/dist/types/index.js +0 -1
  218. package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
  219. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +71 -27
  220. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
  221. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts +2 -0
  222. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts.map +1 -1
  223. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +2 -0
  224. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -1
  225. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +3 -0
  226. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  227. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +9 -54
  228. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  229. package/analyzer-template/packages/github/dist/types/src/types/Scenario.js +1 -21
  230. package/analyzer-template/packages/github/dist/types/src/types/Scenario.js.map +1 -1
  231. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +153 -5
  232. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  233. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  234. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  235. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +2 -0
  236. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  237. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts +9 -1
  238. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  239. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +29 -3
  240. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -1
  241. package/analyzer-template/packages/github/package.json +1 -1
  242. package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +14 -0
  243. package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +2 -0
  244. package/analyzer-template/packages/process/index.ts +2 -0
  245. package/analyzer-template/packages/process/package.json +12 -0
  246. package/analyzer-template/packages/process/tsconfig.json +8 -0
  247. package/analyzer-template/packages/types/index.ts +3 -6
  248. package/analyzer-template/packages/types/src/types/Analysis.ts +87 -27
  249. package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
  250. package/analyzer-template/packages/types/src/types/Entity.ts +2 -0
  251. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +1 -0
  252. package/analyzer-template/packages/types/src/types/Scenario.ts +9 -77
  253. package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +181 -5
  254. package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
  255. package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
  256. package/analyzer-template/packages/utils/dist/types/index.d.ts +3 -4
  257. package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
  258. package/analyzer-template/packages/utils/dist/types/index.js +0 -1
  259. package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
  260. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +71 -27
  261. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
  262. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts +2 -0
  263. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts.map +1 -1
  264. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +2 -0
  265. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -1
  266. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +3 -0
  267. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  268. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +9 -54
  269. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  270. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js +1 -21
  271. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js.map +1 -1
  272. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +153 -5
  273. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  274. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  275. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  276. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +2 -0
  277. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  278. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +9 -1
  279. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  280. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +29 -3
  281. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -1
  282. package/analyzer-template/packages/utils/src/lib/safeFileName.ts +48 -3
  283. package/analyzer-template/playwright/capture.ts +57 -26
  284. package/analyzer-template/playwright/captureStatic.ts +1 -1
  285. package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
  286. package/analyzer-template/playwright/waitForServer.ts +21 -6
  287. package/analyzer-template/project/analyzeBaselineCommit.ts +9 -0
  288. package/analyzer-template/project/analyzeBranchCommit.ts +4 -0
  289. package/analyzer-template/project/analyzeFileEntities.ts +4 -0
  290. package/analyzer-template/project/analyzeRegularCommit.ts +9 -0
  291. package/analyzer-template/project/captureLibraryFunctionDirect.ts +29 -26
  292. package/analyzer-template/project/constructMockCode.ts +1004 -105
  293. package/analyzer-template/project/controller/startController.ts +16 -1
  294. package/analyzer-template/project/createEntitiesAndSortFiles.ts +83 -0
  295. package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
  296. package/analyzer-template/project/loadReadyToBeCaptured.ts +65 -41
  297. package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
  298. package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
  299. package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +3 -6
  300. package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +18 -7
  301. package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
  302. package/analyzer-template/project/orchestrateCapture.ts +81 -9
  303. package/analyzer-template/project/reconcileMockDataKeys.ts +240 -0
  304. package/analyzer-template/project/runAnalysis.ts +11 -0
  305. package/analyzer-template/project/serverOnlyModules.ts +127 -2
  306. package/analyzer-template/project/start.ts +51 -15
  307. package/analyzer-template/project/startScenarioCapture.ts +6 -0
  308. package/analyzer-template/project/writeMockDataTsx.ts +298 -11
  309. package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
  310. package/analyzer-template/project/writeScenarioComponents.ts +312 -42
  311. package/analyzer-template/project/writeScenarioFiles.ts +26 -0
  312. package/analyzer-template/project/writeSimpleRoot.ts +23 -13
  313. package/analyzer-template/scripts/comboWorkerLoop.cjs +99 -50
  314. package/analyzer-template/scripts/defaultCmd.sh +9 -0
  315. package/analyzer-template/tsconfig.json +2 -1
  316. package/background/src/lib/local/createLocalAnalyzer.js +1 -29
  317. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  318. package/background/src/lib/local/execAsync.js +1 -1
  319. package/background/src/lib/local/execAsync.js.map +1 -1
  320. package/background/src/lib/virtualized/common/execAsync.js +1 -1
  321. package/background/src/lib/virtualized/common/execAsync.js.map +1 -1
  322. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +7 -1
  323. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
  324. package/background/src/lib/virtualized/project/analyzeBranchCommit.js +2 -1
  325. package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -1
  326. package/background/src/lib/virtualized/project/analyzeFileEntities.js +2 -1
  327. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  328. package/background/src/lib/virtualized/project/analyzeRegularCommit.js +7 -1
  329. package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
  330. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +3 -3
  331. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -1
  332. package/background/src/lib/virtualized/project/constructMockCode.js +879 -69
  333. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  334. package/background/src/lib/virtualized/project/controller/startController.js +11 -1
  335. package/background/src/lib/virtualized/project/controller/startController.js.map +1 -1
  336. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +73 -1
  337. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -1
  338. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +6 -3
  339. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -1
  340. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +19 -8
  341. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
  342. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +7 -7
  343. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -1
  344. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js +2 -2
  345. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -1
  346. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +3 -2
  347. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
  348. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +7 -5
  349. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
  350. package/background/src/lib/virtualized/project/orchestrateCapture.js +65 -10
  351. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  352. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +199 -0
  353. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  354. package/background/src/lib/virtualized/project/runAnalysis.js +9 -0
  355. package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
  356. package/background/src/lib/virtualized/project/serverOnlyModules.js +106 -3
  357. package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -1
  358. package/background/src/lib/virtualized/project/start.js +47 -15
  359. package/background/src/lib/virtualized/project/start.js.map +1 -1
  360. package/background/src/lib/virtualized/project/startScenarioCapture.js +7 -0
  361. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  362. package/background/src/lib/virtualized/project/writeMockDataTsx.js +255 -8
  363. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  364. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js +15 -0
  365. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js.map +1 -0
  366. package/background/src/lib/virtualized/project/writeScenarioComponents.js +245 -41
  367. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  368. package/background/src/lib/virtualized/project/writeScenarioFiles.js +19 -0
  369. package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -1
  370. package/background/src/lib/virtualized/project/writeSimpleRoot.js +23 -13
  371. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  372. package/codeyam-cli/scripts/apply-setup.js +180 -0
  373. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  374. package/codeyam-cli/src/cli.js +7 -1
  375. package/codeyam-cli/src/cli.js.map +1 -1
  376. package/codeyam-cli/src/commands/analyze.js +1 -1
  377. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  378. package/codeyam-cli/src/commands/baseline.js +174 -0
  379. package/codeyam-cli/src/commands/baseline.js.map +1 -0
  380. package/codeyam-cli/src/commands/debug.js +35 -23
  381. package/codeyam-cli/src/commands/debug.js.map +1 -1
  382. package/codeyam-cli/src/commands/default.js +0 -15
  383. package/codeyam-cli/src/commands/default.js.map +1 -1
  384. package/codeyam-cli/src/commands/memory.js +264 -0
  385. package/codeyam-cli/src/commands/memory.js.map +1 -0
  386. package/codeyam-cli/src/commands/recapture.js +29 -18
  387. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  388. package/codeyam-cli/src/commands/report.js +46 -1
  389. package/codeyam-cli/src/commands/report.js.map +1 -1
  390. package/codeyam-cli/src/commands/start.js +8 -12
  391. package/codeyam-cli/src/commands/start.js.map +1 -1
  392. package/codeyam-cli/src/commands/status.js +23 -1
  393. package/codeyam-cli/src/commands/status.js.map +1 -1
  394. package/codeyam-cli/src/commands/test-startup.js +1 -1
  395. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  396. package/codeyam-cli/src/commands/wipe.js +108 -0
  397. package/codeyam-cli/src/commands/wipe.js.map +1 -0
  398. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
  399. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
  400. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +31 -27
  401. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  402. package/codeyam-cli/src/utils/analysisRunner.js +29 -15
  403. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  404. package/codeyam-cli/src/utils/backgroundServer.js +16 -2
  405. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  406. package/codeyam-cli/src/utils/database.js +91 -5
  407. package/codeyam-cli/src/utils/database.js.map +1 -1
  408. package/codeyam-cli/src/utils/generateReport.js +4 -3
  409. package/codeyam-cli/src/utils/generateReport.js.map +1 -1
  410. package/codeyam-cli/src/utils/git.js +79 -0
  411. package/codeyam-cli/src/utils/git.js.map +1 -0
  412. package/codeyam-cli/src/utils/install-skills.js +76 -17
  413. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  414. package/codeyam-cli/src/utils/queue/job.js +109 -0
  415. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  416. package/codeyam-cli/src/utils/queue/manager.js +6 -0
  417. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  418. package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
  419. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
  420. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
  421. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +230 -0
  422. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
  423. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
  424. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
  425. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
  426. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
  427. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
  428. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
  429. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
  430. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
  431. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +75 -0
  432. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
  433. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +285 -0
  434. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
  435. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +115 -0
  436. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
  437. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
  438. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
  439. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
  440. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
  441. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
  442. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
  443. package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
  444. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
  445. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
  446. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
  447. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
  448. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
  449. package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
  450. package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
  451. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
  452. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
  453. package/codeyam-cli/src/utils/rules/index.js +6 -0
  454. package/codeyam-cli/src/utils/rules/index.js.map +1 -0
  455. package/codeyam-cli/src/utils/rules/parser.js +78 -0
  456. package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
  457. package/codeyam-cli/src/utils/rules/pathMatcher.js +18 -0
  458. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
  459. package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
  460. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
  461. package/codeyam-cli/src/utils/rules/staleness.js +137 -0
  462. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
  463. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  464. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +7 -5
  465. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  466. package/codeyam-cli/src/utils/versionInfo.js +25 -19
  467. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  468. package/codeyam-cli/src/utils/wipe.js +128 -0
  469. package/codeyam-cli/src/utils/wipe.js.map +1 -0
  470. package/codeyam-cli/src/webserver/app/lib/database.js +74 -20
  471. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  472. package/codeyam-cli/src/webserver/bootstrap.js +40 -0
  473. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
  474. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CA3JxPb7.js +1 -0
  475. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-B86KKU7e.js +11 -0
  476. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-CzGX-miz.js → EntityTypeBadge-B5ctlSYt.js} +1 -1
  477. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BqY8gDAW.js +41 -0
  478. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-ClaLpuOo.js +34 -0
  479. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-BDhPilK7.js +25 -0
  480. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-CBQPrpT0.js → LibraryFunctionPreview-VeqEBv9v.js} +1 -1
  481. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-D1CdlbrV.js → LoadingDots-Bs7Nn1Jr.js} +1 -1
  482. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-wDPcZNKx.js → LogViewer-Bm3PmcCz.js} +1 -1
  483. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-C6PKeMYR.js +11 -0
  484. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-BfmDgXxG.js → SafeScreenshot-Gq3Ocjo6.js} +1 -1
  485. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-BNLaXBHR.js +10 -0
  486. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-6J7zDUD5.js → TruncatedFilePath-CiwXDxLh.js} +1 -1
  487. package/codeyam-cli/src/webserver/build/client/assets/_index-B3TDXxnk.js +11 -0
  488. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-BtBFH820.js +27 -0
  489. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-DfKzxuoe.js +11 -0
  490. package/codeyam-cli/src/webserver/build/client/assets/api.restart-server-l0sNRNKZ.js +1 -0
  491. package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
  492. package/codeyam-cli/src/webserver/build/client/assets/book-open-PttOB2SF.js +6 -0
  493. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-BYimnrHg.js → chevron-down-TJp6ofnp.js} +1 -1
  494. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-JE9ZIoBl.js +51 -0
  495. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-CaVsIRxt.js → circle-check-CXhHQYrI.js} +1 -1
  496. package/codeyam-cli/src/webserver/build/client/assets/copy-6y9ALfGT.js +11 -0
  497. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-CgUsG7ib.js → createLucideIcon-Ca9fAY46.js} +1 -1
  498. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-C1gnJVOL.svg → cy-logo-cli-CCKUIm0S.svg} +2 -2
  499. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +1 -0
  500. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-C5lqplTC.js +1 -0
  501. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-Dt-SjPsw.js → entity._sha._-n38keI1k.js} +12 -12
  502. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-CBoafmVs.js +6 -0
  503. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DGgZjdFg.js +6 -0
  504. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CfLCUi9S.js → entity._sha_.edit._scenarioId-38yPijoD.js} +1 -1
  505. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-DKJyZfAY.js → entry.client-BSHEfydn.js} +6 -6
  506. package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
  507. package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DAtOlaWE.js → fileTableUtils-DCPhhSMo.js} +1 -1
  508. package/codeyam-cli/src/webserver/build/client/assets/files-0N0YJQv7.js +1 -0
  509. package/codeyam-cli/src/webserver/build/client/assets/{git-D62Lxxmv.js → git-DXnyr8uP.js} +8 -8
  510. package/codeyam-cli/src/webserver/build/client/assets/globals-Bh6jH0cL.css +1 -0
  511. package/codeyam-cli/src/webserver/build/client/assets/{index-BosqDOlH.js → index-CcsFv748.js} +1 -1
  512. package/codeyam-cli/src/webserver/build/client/assets/{index-CzNNiTkw.js → index-ChN9-fAY.js} +1 -1
  513. package/codeyam-cli/src/webserver/build/client/assets/labs-CdVUfvji.js +1 -0
  514. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-CNp9QFCX.js → loader-circle-CTqLEAGU.js} +1 -1
  515. package/codeyam-cli/src/webserver/build/client/assets/manifest-87319d0f.js +1 -0
  516. package/codeyam-cli/src/webserver/build/client/assets/memory-CPIDnDEj.js +76 -0
  517. package/codeyam-cli/src/webserver/build/client/assets/pause-D6vreykR.js +11 -0
  518. package/codeyam-cli/src/webserver/build/client/assets/root-D6oziHts.js +62 -0
  519. package/codeyam-cli/src/webserver/build/client/assets/{search-DDGjYAMJ.js → search-B8VUL8nl.js} +1 -1
  520. package/codeyam-cli/src/webserver/build/client/assets/settings-eBI36Yv5.js +1 -0
  521. package/codeyam-cli/src/webserver/build/client/assets/simulations-CPoAg7Zo.js +1 -0
  522. package/codeyam-cli/src/webserver/build/client/assets/terminal-BrCP7uQo.js +11 -0
  523. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-CBc5dE1s.js → triangle-alert-BZz2NjYa.js} +1 -1
  524. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-DNwUduNu.js +1 -0
  525. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-BqPPNjAl.js → useLastLogLine-COky1GVF.js} +1 -1
  526. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-CpZgwliL.js +1 -0
  527. package/codeyam-cli/src/webserver/build/client/assets/{useToast-DWHcCcl1.js → useToast-Bv9JFvUO.js} +1 -1
  528. package/codeyam-cli/src/webserver/build/server/assets/index-9ox9LcrG.js +1 -0
  529. package/codeyam-cli/src/webserver/build/server/assets/server-build-Cq5Vqcob.js +260 -0
  530. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  531. package/codeyam-cli/src/webserver/build-info.json +5 -5
  532. package/codeyam-cli/src/webserver/server.js +35 -25
  533. package/codeyam-cli/src/webserver/server.js.map +1 -1
  534. package/codeyam-cli/templates/codeyam-memory-hook.sh +199 -0
  535. package/codeyam-cli/templates/{codeyam-debug-skill.md → codeyam:debug.md} +48 -4
  536. package/codeyam-cli/templates/{debug-codeyam.md → codeyam:diagnose.md} +204 -26
  537. package/codeyam-cli/templates/codeyam:memory.md +404 -0
  538. package/codeyam-cli/templates/codeyam:new-rule.md +13 -0
  539. package/codeyam-cli/templates/{codeyam-setup-skill.md → codeyam:setup.md} +1 -1
  540. package/codeyam-cli/templates/{codeyam-sim-skill.md → codeyam:sim.md} +1 -1
  541. package/codeyam-cli/templates/{codeyam-test-skill.md → codeyam:test.md} +1 -1
  542. package/codeyam-cli/templates/{codeyam-verify-skill.md → codeyam:verify.md} +1 -1
  543. package/codeyam-cli/templates/rule-notification-hook.py +56 -0
  544. package/codeyam-cli/templates/rule-reflection-hook.py +590 -0
  545. package/codeyam-cli/templates/rules-instructions.md +123 -0
  546. package/package.json +12 -9
  547. package/packages/ai/index.js +8 -6
  548. package/packages/ai/index.js.map +1 -1
  549. package/packages/ai/src/lib/analyzeScope.js +165 -13
  550. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  551. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js +150 -0
  552. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js.map +1 -0
  553. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +138 -9
  554. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  555. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
  556. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
  557. package/packages/ai/src/lib/astScopes/methodSemantics.js +138 -23
  558. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  559. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
  560. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
  561. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +8 -0
  562. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -1
  563. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +7 -0
  564. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
  565. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +138 -1
  566. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
  567. package/packages/ai/src/lib/astScopes/processExpression.js +866 -29
  568. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  569. package/packages/ai/src/lib/checkAllAttributes.js +24 -9
  570. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  571. package/packages/ai/src/lib/completionCall.js +178 -31
  572. package/packages/ai/src/lib/completionCall.js.map +1 -1
  573. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1240 -181
  574. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  575. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +5 -1
  576. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  577. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +230 -23
  578. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -1
  579. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +7 -1
  580. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  581. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +13 -3
  582. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -1
  583. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +6 -4
  584. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -1
  585. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +52 -3
  586. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  587. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +111 -14
  588. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  589. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
  590. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
  591. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +73 -5
  592. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  593. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
  594. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
  595. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
  596. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
  597. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +333 -81
  598. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  599. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js +107 -0
  600. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js.map +1 -0
  601. package/packages/ai/src/lib/dataStructureChunking.js +111 -0
  602. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -0
  603. package/packages/ai/src/lib/deepEqual.js +32 -0
  604. package/packages/ai/src/lib/deepEqual.js.map +1 -0
  605. package/packages/ai/src/lib/e2eDataTracking.js +241 -0
  606. package/packages/ai/src/lib/e2eDataTracking.js.map +1 -0
  607. package/packages/ai/src/lib/extractCriticalDataKeys.js +96 -0
  608. package/packages/ai/src/lib/extractCriticalDataKeys.js.map +1 -0
  609. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +21 -5
  610. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  611. package/packages/ai/src/lib/generateChangesEntityScenarios.js +78 -120
  612. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  613. package/packages/ai/src/lib/generateEntityDataStructure.js +47 -2
  614. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  615. package/packages/ai/src/lib/generateEntityScenarioData.js +1082 -62
  616. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  617. package/packages/ai/src/lib/generateEntityScenarios.js +177 -163
  618. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  619. package/packages/ai/src/lib/generateExecutionFlows.js +400 -0
  620. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
  621. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
  622. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
  623. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +1646 -0
  624. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
  625. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
  626. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js.map +1 -0
  627. package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -2
  628. package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
  629. package/packages/ai/src/lib/isolateScopes.js +270 -7
  630. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  631. package/packages/ai/src/lib/mergeStatements.js +88 -46
  632. package/packages/ai/src/lib/mergeStatements.js.map +1 -1
  633. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +10 -4
  634. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  635. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +1 -1
  636. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  637. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +21 -100
  638. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  639. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js +54 -0
  640. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js.map +1 -0
  641. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +68 -6
  642. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  643. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +10 -70
  644. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  645. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
  646. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
  647. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +9 -9
  648. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
  649. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js +335 -0
  650. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js.map +1 -0
  651. package/packages/ai/src/lib/resolvePathToControllable.js +677 -0
  652. package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
  653. package/packages/ai/src/lib/splitOutsideParentheses.js +3 -1
  654. package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -1
  655. package/packages/ai/src/lib/worker/SerializableDataStructure.js +29 -0
  656. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  657. package/packages/ai/src/lib/worker/analyzeScopeWorker.js +94 -1
  658. package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
  659. package/packages/analyze/index.js +1 -0
  660. package/packages/analyze/index.js.map +1 -1
  661. package/packages/analyze/src/lib/FileAnalyzer.js +75 -36
  662. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  663. package/packages/analyze/src/lib/ProjectAnalyzer.js +96 -26
  664. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  665. package/packages/analyze/src/lib/analysisContext.js +30 -5
  666. package/packages/analyze/src/lib/analysisContext.js.map +1 -1
  667. package/packages/analyze/src/lib/asts/nodes/index.js +1 -0
  668. package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
  669. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
  670. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
  671. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +14 -0
  672. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -1
  673. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +14 -0
  674. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -1
  675. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +6 -0
  676. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
  677. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +6 -0
  678. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -1
  679. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +39 -1
  680. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -1
  681. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +2 -1
  682. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -1
  683. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +196 -57
  684. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  685. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +24 -1
  686. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  687. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +5 -0
  688. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  689. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +2 -0
  690. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  691. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +2 -1
  692. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  693. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +31 -10
  694. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  695. package/packages/analyze/src/lib/files/analyzeChange.js +21 -11
  696. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  697. package/packages/analyze/src/lib/files/analyzeEntity.js +9 -8
  698. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  699. package/packages/analyze/src/lib/files/analyzeInitial.js +9 -10
  700. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  701. package/packages/analyze/src/lib/files/analyzeRemixRoute.js +3 -2
  702. package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
  703. package/packages/analyze/src/lib/files/enums/steps.js +1 -1
  704. package/packages/analyze/src/lib/files/enums/steps.js.map +1 -1
  705. package/packages/analyze/src/lib/files/getImportedExports.js +11 -7
  706. package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
  707. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +880 -0
  708. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
  709. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +170 -40
  710. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
  711. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
  712. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
  713. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +211 -29
  714. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  715. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +29 -34
  716. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
  717. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +218 -20
  718. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  719. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +144 -0
  720. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
  721. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +1 -0
  722. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  723. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +2 -3
  724. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  725. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +599 -38
  726. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  727. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +46 -9
  728. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -1
  729. package/packages/analyze/src/lib/files/setImportedExports.js +2 -1
  730. package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -1
  731. package/packages/analyze/src/lib/index.js +1 -0
  732. package/packages/analyze/src/lib/index.js.map +1 -1
  733. package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
  734. package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
  735. package/packages/aws/src/lib/ecs/ecsDefineContainer.js +2 -2
  736. package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  737. package/packages/aws/src/lib/ecs/ecsTaskFactory.js +17 -61
  738. package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  739. package/packages/database/src/lib/kysely/db.js +8 -1
  740. package/packages/database/src/lib/kysely/db.js.map +1 -1
  741. package/packages/database/src/lib/kysely/tables/commitsTable.js +3 -0
  742. package/packages/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  743. package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  744. package/packages/database/src/lib/loadAnalyses.js +45 -2
  745. package/packages/database/src/lib/loadAnalyses.js.map +1 -1
  746. package/packages/database/src/lib/loadAnalysis.js +8 -0
  747. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  748. package/packages/database/src/lib/loadBranch.js +11 -1
  749. package/packages/database/src/lib/loadBranch.js.map +1 -1
  750. package/packages/database/src/lib/loadCommit.js +7 -0
  751. package/packages/database/src/lib/loadCommit.js.map +1 -1
  752. package/packages/database/src/lib/loadCommits.js +22 -1
  753. package/packages/database/src/lib/loadCommits.js.map +1 -1
  754. package/packages/database/src/lib/loadEntities.js +23 -4
  755. package/packages/database/src/lib/loadEntities.js.map +1 -1
  756. package/packages/database/src/lib/loadEntityBranches.js +9 -0
  757. package/packages/database/src/lib/loadEntityBranches.js.map +1 -1
  758. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
  759. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  760. package/packages/database/src/lib/updateCommitMetadata.js +5 -4
  761. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  762. package/packages/generate/index.js +3 -0
  763. package/packages/generate/index.js.map +1 -1
  764. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  765. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  766. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  767. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  768. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  769. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  770. package/packages/generate/src/lib/scenarioComponentForServer.js +89 -0
  771. package/packages/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  772. package/packages/github/src/lib/loadOrCreateCommit.js +10 -0
  773. package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -1
  774. package/packages/github/src/lib/syncPrimaryBranch.js +3 -0
  775. package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -1
  776. package/packages/process/index.js +3 -0
  777. package/packages/process/index.js.map +1 -0
  778. package/packages/process/src/GlobalProcessManager.js.map +1 -0
  779. package/{background/src/lib/process → packages/process/src}/ProcessManager.js +1 -1
  780. package/packages/process/src/ProcessManager.js.map +1 -0
  781. package/packages/process/src/index.js.map +1 -0
  782. package/packages/process/src/managedExecAsync.js.map +1 -0
  783. package/packages/types/index.js +0 -1
  784. package/packages/types/index.js.map +1 -1
  785. package/packages/types/src/types/Scenario.js +1 -21
  786. package/packages/types/src/types/Scenario.js.map +1 -1
  787. package/packages/utils/src/lib/safeFileName.js +29 -3
  788. package/packages/utils/src/lib/safeFileName.js.map +1 -1
  789. package/scripts/finalize-analyzer.cjs +3 -3
  790. package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +0 -102
  791. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +0 -409
  792. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +0 -288
  793. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +0 -495
  794. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +0 -67
  795. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +0 -120
  796. package/analyzer-template/process/INTEGRATION_COMPLETE.md +0 -333
  797. package/analyzer-template/process/INTEGRATION_EXAMPLE.md +0 -525
  798. package/analyzer-template/process/README.md +0 -507
  799. package/background/src/lib/process/GlobalProcessManager.js.map +0 -1
  800. package/background/src/lib/process/ProcessManager.js.map +0 -1
  801. package/background/src/lib/process/index.js.map +0 -1
  802. package/background/src/lib/process/managedExecAsync.js.map +0 -1
  803. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-wXL1Z2Aq.js +0 -1
  804. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-CXFKsCOD.js +0 -41
  805. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-D-9pXIaY.js +0 -25
  806. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-4lcOlid-.js +0 -11
  807. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-CUxUNEEC.js +0 -15
  808. package/codeyam-cli/src/webserver/build/client/assets/_index-DHImXdXq.js +0 -11
  809. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CVP_WGQ3.js +0 -32
  810. package/codeyam-cli/src/webserver/build/client/assets/chunk-JMJ3UQ3L-BambyYE_.js +0 -51
  811. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-CKnwPCDr.js +0 -1
  812. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DW_hdGUc.js +0 -1
  813. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DyB90fWk.js +0 -1
  814. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-D_3ero5o.js +0 -1
  815. package/codeyam-cli/src/webserver/build/client/assets/files-ClR0d32A.js +0 -1
  816. package/codeyam-cli/src/webserver/build/client/assets/globals-C9s7Lhdl.css +0 -1
  817. package/codeyam-cli/src/webserver/build/client/assets/keyAttributeCoverage-CTlFMihX.js +0 -1
  818. package/codeyam-cli/src/webserver/build/client/assets/manifest-0d27da29.js +0 -1
  819. package/codeyam-cli/src/webserver/build/client/assets/root-B_wIKCIf.js +0 -56
  820. package/codeyam-cli/src/webserver/build/client/assets/settings-DgTyB-Wg.js +0 -1
  821. package/codeyam-cli/src/webserver/build/client/assets/simulations-CoNWGt0K.js +0 -1
  822. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BMIGFP-m.js +0 -1
  823. package/codeyam-cli/src/webserver/build/client/assets/useInteractiveMode-Dk_FQqWJ.js +0 -1
  824. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DsJbgMY9.js +0 -1
  825. package/codeyam-cli/src/webserver/build/server/assets/index-CU58-Ttc.js +0 -1
  826. package/codeyam-cli/src/webserver/build/server/assets/server-build-D35o2uae.js +0 -175
  827. package/packages/ai/src/lib/findMatchingAttribute.js +0 -77
  828. package/packages/ai/src/lib/findMatchingAttribute.js.map +0 -1
  829. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +0 -298
  830. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +0 -1
  831. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +0 -226
  832. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +0 -1
  833. package/packages/ai/src/lib/generateEntityKeyAttributes.js +0 -408
  834. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +0 -1
  835. package/packages/ai/src/lib/isFrontend.js +0 -5
  836. package/packages/ai/src/lib/isFrontend.js.map +0 -1
  837. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +0 -40
  838. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +0 -1
  839. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +0 -77
  840. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +0 -1
  841. /package/analyzer-template/{process → packages/process/src}/GlobalProcessManager.ts +0 -0
  842. /package/analyzer-template/{process → packages/process/src}/ProcessManager.ts +0 -0
  843. /package/analyzer-template/{process → packages/process/src}/index.ts +0 -0
  844. /package/analyzer-template/{process → packages/process/src}/managedExecAsync.ts +0 -0
  845. /package/codeyam-cli/src/webserver/build/client/assets/{api.link-scenario-value-l0sNRNKZ.js → api.agent-transcripts-l0sNRNKZ.js} +0 -0
  846. /package/codeyam-cli/src/webserver/build/client/assets/{api.update-key-attributes-l0sNRNKZ.js → api.health-l0sNRNKZ.js} +0 -0
  847. /package/codeyam-cli/src/webserver/build/client/assets/{api.update-valid-values-l0sNRNKZ.js → api.memory-profile-l0sNRNKZ.js} +0 -0
  848. /package/{background/src/lib/process → packages/process/src}/GlobalProcessManager.js +0 -0
  849. /package/{background/src/lib/process → packages/process/src}/index.js +0 -0
  850. /package/{background/src/lib/process → packages/process/src}/managedExecAsync.js +0 -0
@@ -1,4 +1,5 @@
1
1
  import 'dotenv/config';
2
+ import { once } from 'events';
2
3
  import yargs from 'yargs';
3
4
  import { hideBin } from 'yargs/helpers';
4
5
  import {
@@ -16,14 +17,15 @@ import { startScenarioCapture } from './startScenarioCapture';
16
17
  import { createController } from './controller/startController';
17
18
  import { awsLog, awsLogDebugLevel } from '~codeyam/utils';
18
19
  import * as v8 from 'v8';
19
- import { initializeAIServiceMode } from '~codeyam/ai';
20
+ import * as os from 'os';
21
+ import { initializeAIServiceMode, destroyWorkerPool } from '~codeyam/ai';
20
22
  import runAnalysis, { EnvConfig, SharedContext } from './runAnalysis';
21
23
  import {
22
24
  loadOrCreateCommit,
23
25
  syncHeadBranches,
24
26
  syncPrimaryBranch,
25
27
  } from '~codeyam/github';
26
- import { installSignalHandlers } from '../process';
28
+ import { installSignalHandlers } from '~codeyam/process';
27
29
 
28
30
  // Set process title for Activity Monitor visibility
29
31
  if (process.env.CODEYAM_PROCESS_NAME) {
@@ -118,28 +120,31 @@ async function main({
118
120
  // and attempted to access project/commit/branch data before it was loaded.
119
121
  const sharedContext = await loadSharedContext(envConfig);
120
122
 
121
- // Heap monitoring: pulse every 1s, log every 30s when normal, warn every 1s when high
123
+ // Memory monitoring: tracks both V8 heap and RSS (which includes worker threads)
124
+ const containerMemoryMB = process.env.ECS_CONTAINER_MEMORY_MB
125
+ ? parseInt(process.env.ECS_CONTAINER_MEMORY_MB, 10)
126
+ : Math.round(os.totalmem() / 1024 / 1024);
122
127
  let lastLogTime = 0;
123
128
  setInterval(() => {
124
129
  const mem = process.memoryUsage();
125
130
  const heap = v8.getHeapStatistics();
126
- const usagePercent = (mem.heapUsed / heap.heap_size_limit) * 100;
131
+ const heapMB = Math.round(mem.heapUsed / 1024 / 1024);
132
+ const rssMB = Math.round(mem.rss / 1024 / 1024);
133
+ const heapLimitMB = Math.round(heap.heap_size_limit / 1024 / 1024);
134
+ const rssPercent = (rssMB / containerMemoryMB) * 100;
127
135
  const now = Date.now();
128
136
 
129
- if (usagePercent >= 80) {
130
- // High usage: warn every second
137
+ if (rssPercent >= 80) {
131
138
  console.warn(
132
- `CodeYam Heap Warning: ${Math.round(mem.heapUsed / 1024 / 1024)}MB used / ${Math.round(heap.heap_size_limit / 1024 / 1024)}MB limit (${Math.round(usagePercent)}%) ⚠️ HIGH USAGE`,
139
+ `CodeYam Memory Warning: RSS ${rssMB}MB/${containerMemoryMB}MB (${Math.round(rssPercent)}%), heap ${heapMB}MB/${heapLimitMB}MB ⚠️ HIGH`,
133
140
  );
134
- } else if (usagePercent >= 50 && now - lastLogTime >= 5000) {
135
- // Elevated usage: log every 5 seconds
141
+ } else if (rssPercent >= 50 && now - lastLogTime >= 5000) {
136
142
  console.log(
137
- `CodeYam Heap Notice: ${Math.round(mem.heapUsed / 1024 / 1024)}MB used / ${Math.round(heap.heap_size_limit / 1024 / 1024)}MB limit (${Math.round(usagePercent)}%) ⚠️ Elevated`,
143
+ `CodeYam Memory Notice: RSS ${rssMB}MB/${containerMemoryMB}MB (${Math.round(rssPercent)}%), heap ${heapMB}MB/${heapLimitMB}MB ⚠️ Elevated`,
138
144
  );
139
145
  } else if (now - lastLogTime >= 30000) {
140
- // Normal usage: log every 30 seconds
141
146
  console.log(
142
- `CodeYam Heap Stats: ${Math.round(mem.heapUsed / 1024 / 1024)}MB used / ${Math.round(heap.heap_size_limit / 1024 / 1024)}MB limit (${Math.round(usagePercent)}%) 📊 OK`,
147
+ `CodeYam Memory Stats: RSS ${rssMB}MB/${containerMemoryMB}MB (${Math.round(rssPercent)}%), heap ${heapMB}MB/${heapLimitMB}MB 📊 OK`,
143
148
  );
144
149
  }
145
150
 
@@ -186,6 +191,11 @@ async function main({
186
191
  analyzerPid: undefined,
187
192
  capturePid: process.pid,
188
193
  },
194
+ updateCallback(metadata) {
195
+ if (metadata.currentRun?.captureCompletedAt) {
196
+ metadata.currentRun.completedAt = new Date().toISOString();
197
+ }
198
+ },
189
199
  }).catch((error) => {
190
200
  awsLog(`Warning: Failed to update commit metadata: ${error}`);
191
201
  });
@@ -207,7 +217,20 @@ async function main({
207
217
  while (!controller?.hasCompletedRepoCheckout()) {
208
218
  await new Promise((resolve) => setTimeout(resolve, 1000));
209
219
  }
210
- awsLog('CodeYam: Repo checkout complete, starting orchestration...');
220
+ awsLog('CodeYam: Repo checkout complete.');
221
+
222
+ // Wait for analysis to enter producing phase (after prepareDataStructures)
223
+ // This prevents the 20-minute orchestration timeout from triggering before
224
+ // any analyses become ready to capture
225
+ awsLog('CodeYam: Waiting for analysis to start producing...');
226
+ if (!controller.hasStartedProducing()) {
227
+ await once(controller, 'analysisProducing');
228
+ }
229
+ awsLog('CodeYam: Analysis producing, starting orchestration...');
230
+
231
+ // Worker pool is no longer needed after data structure prep phase.
232
+ // Freeing it reclaims ~2GB before capture workers ramp up.
233
+ await destroyWorkerPool();
211
234
 
212
235
  // Create task runner based on orchestration mode
213
236
  let taskRunner;
@@ -219,6 +242,17 @@ async function main({
219
242
  framework: framework,
220
243
  packageManager: packageManager,
221
244
  });
245
+
246
+ const captureCommit =
247
+ sharedContext.commit ?? sharedContext.branchCommit;
248
+ if (captureCommit) {
249
+ await updateCommitMetadata({
250
+ commitId: captureCommit.id,
251
+ runStatusUpdate: {
252
+ captureTaskArns: taskRunner.getTaskArns(),
253
+ },
254
+ });
255
+ }
222
256
  } else if (orchestrateCapture === 'local-sequential') {
223
257
  taskRunner = await SequentialCaptureTaskRunner.create(
224
258
  {
@@ -260,8 +294,8 @@ async function main({
260
294
  }
261
295
  },
262
296
  project: sharedContext.project,
263
- // In local-sequential mode, don't filter by commit since each analysis run
264
- // creates a new fake commit. We want to capture all ready analyses for the project.
297
+ // In local-sequential mode, don't filter by commit (full=true handles that).
298
+ // For AWS mode, filter by the specific commit being analyzed.
265
299
  commit:
266
300
  orchestrateCapture === 'local-sequential'
267
301
  ? null
@@ -279,6 +313,8 @@ async function main({
279
313
  : envConfig.entityShas,
280
314
  full: orchestrateCapture === 'local-sequential',
281
315
  taskRunner,
316
+ // Always track capture progress on the commit, even when not filtering by it.
317
+ metadataCommit: sharedContext.commit ?? sharedContext.branchCommit,
282
318
  });
283
319
  awsLog('CodeYam Capture: runCaptureOrchestration() completed');
284
320
  };
@@ -36,6 +36,7 @@ import {
36
36
  } from './utils/webappMapping';
37
37
  import mergeEnvVarsIntoStartCommand from './utils/mergeEnvVarsIntoStartCommand';
38
38
  import { LazyFileStore } from './LazyFileStore';
39
+ import { DEFAULT_SCENARIO_NAME } from '../common/constants';
39
40
 
40
41
  export interface StartScenarioCaptureArgs {
41
42
  readyToBeCaptured: Analysis[];
@@ -226,6 +227,11 @@ export async function startScenarioCapture({
226
227
  }
227
228
 
228
229
  const sortedScenarios = (analysis.scenarios ?? []).sort((a, b) => {
230
+ // Default Scenario always goes first
231
+ if (a.name === DEFAULT_SCENARIO_NAME) return -1;
232
+ if (b.name === DEFAULT_SCENARIO_NAME) return 1;
233
+
234
+ // Then prioritize new or revised scenarios
229
235
  const newOrRevisedA =
230
236
  !a.previousVersionId || a.metadata?.revisedFromPreviousVersion;
231
237
  const newOrRevisedB =
@@ -43,6 +43,108 @@ function normalizeParamsMockData(
43
43
  return result;
44
44
  }
45
45
 
46
+ /**
47
+ * Convert comma-separated string values to arrays when they look like array data.
48
+ * This handles cases where the LLM generates strings like "color,size" instead
49
+ * of arrays like ["color", "size"] due to schema type misdetection.
50
+ */
51
+ function convertCommaSeparatedStringsToArrays(
52
+ mockData: Record<string, unknown>,
53
+ ): Record<string, unknown> {
54
+ const result: Record<string, unknown> = {};
55
+
56
+ for (const [key, value] of Object.entries(mockData)) {
57
+ if (typeof value === 'string') {
58
+ const asArray = parseCommaSeparatedStringAsArray(value, key);
59
+ if (asArray !== null) {
60
+ result[key] = asArray;
61
+ console.log(
62
+ `CodeYam: Converted comma-separated string to array for key "${key}": "${value}" -> [${asArray.map((s) => `"${s}"`).join(', ')}]`,
63
+ );
64
+ } else {
65
+ result[key] = value;
66
+ }
67
+ } else if (
68
+ value !== null &&
69
+ typeof value === 'object' &&
70
+ !Array.isArray(value)
71
+ ) {
72
+ // Recursively process nested objects
73
+ result[key] = convertCommaSeparatedStringsToArrays(
74
+ value as Record<string, unknown>,
75
+ );
76
+ } else if (Array.isArray(value)) {
77
+ // Recursively process arrays (each element could be an object)
78
+ result[key] = value.map((item) => {
79
+ if (item !== null && typeof item === 'object' && !Array.isArray(item)) {
80
+ return convertCommaSeparatedStringsToArrays(
81
+ item as Record<string, unknown>,
82
+ );
83
+ }
84
+ return item;
85
+ });
86
+ } else {
87
+ result[key] = value;
88
+ }
89
+ }
90
+
91
+ return result;
92
+ }
93
+
94
+ /**
95
+ * Detect if a string looks like a comma-separated list that should be an array.
96
+ */
97
+ function parseCommaSeparatedStringAsArray(
98
+ value: string,
99
+ key: string,
100
+ ): string[] | null {
101
+ if (!value.includes(',')) {
102
+ return null;
103
+ }
104
+
105
+ // Heuristic: if the key name suggests it's an array field, convert it
106
+ // Check this FIRST before sentence detection, since "color, size" looks like
107
+ // a sentence but should be converted to ["color", "size"] for _attributes fields
108
+ const arrayFieldPatterns = [
109
+ /_attributes$/i,
110
+ /_ids$/i,
111
+ /_items$/i,
112
+ /_tags$/i,
113
+ /_values$/i,
114
+ /_types$/i,
115
+ /_names$/i,
116
+ /_keys$/i,
117
+ /^attributes$/i,
118
+ /^items$/i,
119
+ /^tags$/i,
120
+ /^values$/i,
121
+ ];
122
+
123
+ const looksLikeArrayField = arrayFieldPatterns.some((pattern) =>
124
+ pattern.test(key),
125
+ );
126
+
127
+ if (looksLikeArrayField) {
128
+ // For array-like fields, only reject if it contains newlines (likely prose)
129
+ if (value.includes('\n')) {
130
+ return null;
131
+ }
132
+ const parts = value.split(',').map((s) => s.trim());
133
+ return parts.filter((s) => s.length > 0);
134
+ }
135
+
136
+ // For non-array-named fields, apply stricter sentence detection
137
+ // Looks like a sentence: "Hello, world"
138
+ if (/,\s+[a-z]/.test(value)) {
139
+ return null;
140
+ }
141
+ if (value.includes('\n')) {
142
+ return null;
143
+ }
144
+
145
+ return null;
146
+ }
147
+
46
148
  /**
47
149
  * Return true when `markup` contains 0 or >1 meaningful
48
150
  * top-level nodes (element *or* non-blank text), so React
@@ -90,6 +192,36 @@ const safeString = (s: string, level: number) => {
90
192
  return s?.replace ? s.replace(/"/g, "'").replace(/\n/g, '\\n') : s;
91
193
  };
92
194
 
195
+ /**
196
+ * Clean up malformed LLM-generated function values.
197
+ * The LLM sometimes generates function values with an invalid "(function)" prefix like:
198
+ * - "(function)() => {}"
199
+ * - "(function)(event) => {}"
200
+ * - "(function)(id) => {}"
201
+ *
202
+ * This strips the prefix and adds TypeScript `any` type annotations to parameters.
203
+ * Returns null if the value doesn't match the malformed pattern.
204
+ */
205
+ const cleanMalformedFunctionValue = (value: string): string | null => {
206
+ // Match "(function)" followed by optional params in parens, then "=>"
207
+ const match = value.match(/^\(function\)(\([^)]*\))\s*=>\s*(.*)$/);
208
+ if (!match) return null;
209
+
210
+ const [, paramsWithParens, body] = match;
211
+
212
+ // Extract parameter names and add `: any` type annotation
213
+ // e.g., "(event)" -> "(event: any)", "()" -> "()"
214
+ const params = paramsWithParens.slice(1, -1).trim(); // Remove outer parens
215
+ const typedParams = params
216
+ ? params
217
+ .split(',')
218
+ .map((p) => `${p.trim()}: any`)
219
+ .join(', ')
220
+ : '';
221
+
222
+ return `(${typedParams}) => ${body}`;
223
+ };
224
+
93
225
  /**
94
226
  * Check if a mock key's schema indicates it should be instantiated as a Map.
95
227
  * A Map is indicated by:
@@ -208,6 +340,38 @@ function extractAllKeys(obj: JsonTypeDefinition | undefined): string[] {
208
340
  */
209
341
  const BARE_TYPE_MARKERS = ['function', 'async-function'];
210
342
 
343
+ /**
344
+ * Check if a string is a TypeScript arrow function type annotation rather than
345
+ * a valid JavaScript arrow function expression.
346
+ *
347
+ * TypeScript arrow types look like function expressions (they contain '=>') but
348
+ * their "body" is a type name, not a JS expression:
349
+ * - "() => void"
350
+ * - "(event: MouseEvent) => void"
351
+ * - "() => string"
352
+ * - "() => Promise<void>"
353
+ * - "(id: string, name: string) => boolean"
354
+ *
355
+ * Valid JS arrow functions have actual expression bodies:
356
+ * - "() => {}"
357
+ * - "() => 'hello'"
358
+ * - "(x) => x + 1"
359
+ * - "() => { console.log('hi'); }"
360
+ */
361
+ const ARROW_TYPE_RETURN_TYPES =
362
+ /^(void|string|number|boolean|any|unknown|never|null|undefined|object|Date|Promise<\w+>)$/i;
363
+
364
+ const isArrowFunctionTypeAnnotation = (value: string): boolean => {
365
+ const arrowIndex = value.indexOf('=>');
366
+ if (arrowIndex === -1) return false;
367
+
368
+ const body = value.slice(arrowIndex + 2).trim();
369
+
370
+ // A real JS function would have {}, an expression, a string literal, etc.
371
+ // A type annotation has a bare type keyword as the "body".
372
+ return ARROW_TYPE_RETURN_TYPES.test(body);
373
+ };
374
+
211
375
  /**
212
376
  * Check if a value is a bare function type marker that should be filtered out.
213
377
  * These markers indicate the LLM detected a function but couldn't generate meaningful mock data.
@@ -234,6 +398,59 @@ const isBareTypeMarker = (value: unknown): boolean => {
234
398
  return false;
235
399
  };
236
400
 
401
+ /**
402
+ * Escape newlines that appear inside string literals within a code string,
403
+ * while preserving structural newlines (those between statements/lines of code).
404
+ *
405
+ * This handles cases where LLM generates function bodies like:
406
+ * - "() => { console.log('line1\nline2'); }" - escape the \n inside the string
407
+ * - "() => {\n console.log('x');\n}" - preserve structural \n between statements
408
+ * - "() => Promise.resolve('a\nb')" - escape the \n inside the string argument
409
+ *
410
+ * The algorithm tracks whether we're inside a string literal (single, double, or
411
+ * backtick quotes) and only escapes newlines that appear within quotes.
412
+ */
413
+ const escapeNewlinesInStringLiterals = (code: string): string => {
414
+ let result = '';
415
+ let inString = false;
416
+ let stringChar = ''; // The quote character that started the current string
417
+
418
+ for (let i = 0; i < code.length; i++) {
419
+ const char = code[i];
420
+ const prevChar = i > 0 ? code[i - 1] : '';
421
+
422
+ // Check for string literal boundaries (single, double, or backtick quotes)
423
+ // Skip escaped quotes (preceded by backslash)
424
+ if ((char === '"' || char === "'" || char === '`') && prevChar !== '\\') {
425
+ if (!inString) {
426
+ // Starting a string literal
427
+ inString = true;
428
+ stringChar = char;
429
+ } else if (char === stringChar) {
430
+ // Ending the current string literal
431
+ inString = false;
432
+ stringChar = '';
433
+ }
434
+ // If char is a different quote type while in a string, it's just a character
435
+ }
436
+
437
+ // Escape newlines only when inside a string literal
438
+ if (char === '\n') {
439
+ if (inString) {
440
+ // Inside a string literal - escape the newline
441
+ result += '\\n';
442
+ } else {
443
+ // Outside string - keep the structural newline
444
+ result += char;
445
+ }
446
+ } else {
447
+ result += char;
448
+ }
449
+ }
450
+
451
+ return result;
452
+ };
453
+
237
454
  /**
238
455
  * Normalize mock data by merging entries that have the same normalized function name.
239
456
  * e.g., "useLastLogLine(projectSlug, !!simulatingEntitySha)" and
@@ -314,10 +531,12 @@ const normalizeMockData = (
314
531
  }
315
532
  }
316
533
  // Only add if we have actual data (not just filtered type markers)
534
+ // Note: typeof null === 'object' in JS, so we must check for null explicitly
317
535
  if (
318
536
  mergedValue !== undefined &&
319
537
  !isBareTypeMarker(mergedValue) &&
320
538
  !(
539
+ mergedValue !== null &&
321
540
  typeof mergedValue === 'object' &&
322
541
  Object.keys(mergedValue as object).length === 0
323
542
  )
@@ -445,7 +664,7 @@ const jsonToCode = (
445
664
  `${levelSpacing}"${safeString(key, level)}": ${arrayString}`,
446
665
  );
447
666
  }
448
- } else if (typeof jsonObj[key] === 'object') {
667
+ } else if (jsonObj[key] !== null && typeof jsonObj[key] === 'object') {
449
668
  const objKeys = Object.keys(jsonObj[key] as object);
450
669
 
451
670
  // Check if this is a nested function signature (e.g., "postMessage(message, targetOrigin)": { signature: [...] })
@@ -630,13 +849,19 @@ const jsonToCode = (
630
849
  stringValue.startsWith('Promise.') ||
631
850
  stringValue.startsWith('new Promise');
632
851
 
852
+ // Check if the string contains newlines (potential issue for string literals)
853
+ const hasNewlines = stringValue.includes('\n');
854
+
633
855
  // Handle special type indicators that need transformation
634
856
  let outputValue: string;
635
857
  if (stringValue === 'promise' || looksLikePromise) {
636
858
  // The key is a function call (e.g., "revalidate()"), so output a function
637
859
  // that returns a Promise, not the Promise itself
860
+ // Important: Escape newlines inside Promise expressions to avoid
861
+ // "unterminated string literal" errors when the Promise contains
862
+ // multi-line string arguments like Promise.resolve('line1\nline2')
638
863
  const promiseExpr = looksLikePromise
639
- ? stringValue
864
+ ? stringValue.replace(/\n/g, '\\n')
640
865
  : 'Promise.resolve()';
641
866
  outputValue = `() => ${promiseExpr}`;
642
867
  console.log(
@@ -648,10 +873,49 @@ const jsonToCode = (
648
873
  `CodeYam: Nested func transform (string->function): "${key}" -> "${funcName}": () => {}`,
649
874
  );
650
875
  } else if (looksLikeFunction) {
651
- outputValue = stringValue;
652
- console.log(
653
- `CodeYam: Nested func transform (string): "${key}" -> "${funcName}": ${stringValue.substring(0, 30)}...`,
654
- );
876
+ // Check for "[native code]" in function body — this is what
877
+ // Function.prototype.toString() returns for built-in functions.
878
+ // The LLM sometimes generates "function () { [native code] }" which
879
+ // is not valid JavaScript (the "[" is parsed as array destructuring).
880
+ if (stringValue.includes('[native code]')) {
881
+ outputValue = '() => {}';
882
+ console.log(
883
+ `CodeYam: Nested func transform (native-code->noop): "${key}" -> "${funcName}": () => {}`,
884
+ );
885
+ } else if (cleanMalformedFunctionValue(stringValue)) {
886
+ // Check for malformed LLM-generated function values like "(function)() => {}"
887
+ // These have an invalid "(function)" prefix that must be stripped
888
+ outputValue = cleanMalformedFunctionValue(stringValue)!;
889
+ console.log(
890
+ `CodeYam: Nested func transform (malformed->clean): "${key}" -> "${funcName}": ${outputValue}`,
891
+ );
892
+ } else if (isArrowFunctionTypeAnnotation(stringValue)) {
893
+ // TypeScript arrow function type annotations like "() => void",
894
+ // "(event: MouseEvent) => void", "() => Promise<void>" contain '=>'
895
+ // so they pass the looksLikeFunction check, but they are TYPE syntax,
896
+ // not valid JavaScript expressions. Convert to a no-op function.
897
+ outputValue = '() => {}';
898
+ console.log(
899
+ `CodeYam: Nested func transform (type-annotation->function): "${key}" -> "${funcName}": () => {}`,
900
+ );
901
+ } else {
902
+ // Handle newlines in function expressions:
903
+ // - Newlines inside string literals must be escaped to avoid
904
+ // "unterminated string literal" errors
905
+ // - Structural newlines (between statements) should be kept as-is
906
+ // to produce valid multi-line JavaScript
907
+ //
908
+ // We escape ONLY newlines that appear inside string literals (single,
909
+ // double, or template quotes). Structural newlines are preserved.
910
+ if (hasNewlines) {
911
+ outputValue = escapeNewlinesInStringLiterals(stringValue);
912
+ } else {
913
+ outputValue = stringValue;
914
+ }
915
+ console.log(
916
+ `CodeYam: Nested func transform (string): "${key}" -> "${funcName}": ${stringValue.substring(0, 30)}...`,
917
+ );
918
+ }
655
919
  } else {
656
920
  // Plain string value - must be quoted
657
921
  outputValue = `"${safeString(stringValue, level)}"`;
@@ -679,9 +943,22 @@ const jsonToCode = (
679
943
  if (isBareTypeMarker(stringValue)) {
680
944
  continue;
681
945
  }
682
- keyStrings.push(
683
- `${levelSpacing}"${safeString(key, level)}": "${safeString(stringValue, level)}"`,
684
- );
946
+ // Check for malformed LLM-generated function values like "(function)(id) => {}"
947
+ // These can appear on plain keys (e.g., "closeToast") and need to be output as
948
+ // actual functions, not quoted strings
949
+ const cleanedPlainKeyFn = cleanMalformedFunctionValue(stringValue);
950
+ if (cleanedPlainKeyFn) {
951
+ keyStrings.push(
952
+ `${levelSpacing}"${safeString(key, level)}": ${cleanedPlainKeyFn}`,
953
+ );
954
+ console.log(
955
+ `CodeYam: Plain key func transform (malformed->clean): "${key}": ${cleanedPlainKeyFn}`,
956
+ );
957
+ } else {
958
+ keyStrings.push(
959
+ `${levelSpacing}"${safeString(key, level)}": "${safeString(stringValue, level)}"`,
960
+ );
961
+ }
685
962
  }
686
963
  } else {
687
964
  // Skip plain keys that have function-call versions (at the same nesting level where
@@ -747,11 +1024,16 @@ export default async function writeMockDataTsx(
747
1024
 
748
1025
  // Reconcile mock data keys to match expected keys from dataForMocks
749
1026
  // This handles cases where LLM generated literal values instead of variable references
750
- const defaultMockData = reconcileMockDataKeys(
1027
+ const reconciledMockData = reconcileMockDataKeys(
751
1028
  rawDefaultMockData,
752
1029
  expectedKeys,
753
1030
  );
754
1031
 
1032
+ // Convert comma-separated strings to arrays for fields that should be arrays
1033
+ // This handles cases where LLM generates "color,size" instead of ["color", "size"]
1034
+ const defaultMockData =
1035
+ convertCommaSeparatedStringsToArrays(reconciledMockData);
1036
+
755
1037
  const mockDataComment = `// This file is auto-generated by CodeYam. Do not edit this file manually.
756
1038
  // This file contains mock data required for:
757
1039
  // Scenario: ${mockScenario.id} - ${mockScenario.name}
@@ -789,11 +1071,16 @@ import React from 'react';
789
1071
  };
790
1072
 
791
1073
  // Reconcile scenario-specific mock data keys as well
792
- const scenarioMockData = reconcileMockDataKeys(
1074
+ const reconciledScenarioMockData = reconcileMockDataKeys(
793
1075
  rawScenarioMockData,
794
1076
  expectedKeys,
795
1077
  );
796
1078
 
1079
+ // Convert comma-separated strings to arrays for scenario data
1080
+ const scenarioMockData = convertCommaSeparatedStringsToArrays(
1081
+ reconciledScenarioMockData,
1082
+ );
1083
+
797
1084
  const mergedArguments = defaultArguments.map((defaultArg, index) => {
798
1085
  return deepMerge(defaultArg, scenarioArguments[index]);
799
1086
  });
@@ -0,0 +1,21 @@
1
+ import { writeFile } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+ import type { Scenario } from '~codeyam/types';
4
+ import { generateScenarioClientWrapper } from '~codeyam/generate';
5
+
6
+ /**
7
+ * Writes the ScenarioClientWrapper component to the mocks directory.
8
+ * This client component is used by Server Component pages to handle
9
+ * interactive features (iframe messaging, console interception, etc.)
10
+ */
11
+ export default async function writeScenarioClientWrapper(
12
+ scenario: Scenario,
13
+ mocksDir: string,
14
+ ): Promise<string> {
15
+ const content = generateScenarioClientWrapper(scenario);
16
+ const filePath = join(mocksDir, 'ScenarioClientWrapper.tsx');
17
+
18
+ await writeFile(filePath, content);
19
+
20
+ return filePath;
21
+ }