@codeyam/codeyam-cli 0.1.0-staging.d0ad4ae → 0.1.0-staging.d4f25c3

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 (1262) hide show
  1. package/analyzer-template/.build-info.json +8 -8
  2. package/analyzer-template/log.txt +3 -3
  3. package/analyzer-template/package.json +27 -27
  4. package/analyzer-template/packages/ai/index.ts +21 -5
  5. package/analyzer-template/packages/ai/package.json +3 -3
  6. package/analyzer-template/packages/ai/src/lib/__mocks__/completionCall.ts +122 -0
  7. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +226 -24
  8. package/analyzer-template/packages/ai/src/lib/astScopes/arrayDerivationDetector.ts +199 -0
  9. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +217 -13
  10. package/analyzer-template/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.ts +644 -0
  11. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +181 -23
  12. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
  13. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.ts +18 -0
  14. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +15 -0
  15. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.ts +181 -1
  16. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +1215 -29
  17. package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
  18. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +265 -6
  19. package/analyzer-template/packages/ai/src/lib/completionCall.ts +247 -66
  20. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +2020 -334
  21. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +5 -1
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +205 -0
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +10 -2
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +16 -3
  25. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +6 -4
  26. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +54 -3
  27. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +129 -20
  28. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
  29. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.ts +62 -0
  30. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +140 -14
  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/dataStructure/helpers/stripNullableMarkers.ts +35 -0
  36. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +183 -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 +4 -3
  40. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +86 -149
  41. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +59 -3
  42. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +1458 -65
  43. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +200 -196
  44. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +677 -0
  45. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
  46. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +2484 -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/mergeJsonTypeDefinitions.ts +5 -0
  51. package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +111 -87
  52. package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
  53. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +10 -7
  54. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +1 -1
  55. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +28 -170
  56. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChunkPrompt.ts +82 -0
  57. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateCriticalKeysPrompt.ts +103 -0
  58. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +110 -6
  59. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +14 -89
  60. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
  61. package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +11 -11
  62. package/analyzer-template/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.ts +391 -0
  63. package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +824 -0
  64. package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +5 -1
  65. package/analyzer-template/packages/ai/src/lib/validateExecutionFlowPaths.ts +531 -0
  66. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +122 -3
  67. package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +114 -2
  68. package/analyzer-template/packages/analyze/index.ts +2 -0
  69. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +65 -59
  70. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +132 -33
  71. package/analyzer-template/packages/analyze/src/lib/analysisContext.ts +44 -4
  72. package/analyzer-template/packages/analyze/src/lib/asts/index.ts +7 -2
  73. package/analyzer-template/packages/analyze/src/lib/asts/nodes/getNodeType.ts +1 -0
  74. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +19 -0
  75. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +19 -0
  76. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +11 -0
  77. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +8 -0
  78. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +49 -1
  79. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +2 -1
  80. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +447 -255
  81. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +39 -4
  82. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +12 -0
  83. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +4 -2
  84. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +33 -10
  85. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +14 -14
  86. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +4 -4
  87. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +11 -12
  88. package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +4 -5
  89. package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
  90. package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +14 -12
  91. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1352 -0
  92. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +193 -76
  93. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +203 -41
  94. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +28 -188
  95. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +355 -23
  96. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +166 -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 +845 -72
  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/package.json +10 -10
  106. package/analyzer-template/packages/database/index.ts +1 -0
  107. package/analyzer-template/packages/database/package.json +4 -4
  108. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  109. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  110. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  111. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  112. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  113. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  114. package/analyzer-template/packages/database/src/lib/kysely/db.ts +22 -1
  115. package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +6 -0
  116. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +17 -1
  117. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +164 -0
  118. package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
  119. package/analyzer-template/packages/database/src/lib/loadAnalyses.ts +58 -1
  120. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +13 -0
  121. package/analyzer-template/packages/database/src/lib/loadBranch.ts +16 -1
  122. package/analyzer-template/packages/database/src/lib/loadCommit.ts +11 -0
  123. package/analyzer-template/packages/database/src/lib/loadCommits.ts +58 -19
  124. package/analyzer-template/packages/database/src/lib/loadEntities.ts +26 -9
  125. package/analyzer-template/packages/database/src/lib/loadEntityBranches.ts +12 -0
  126. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +5 -6
  127. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  128. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  129. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  130. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +96 -152
  131. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatus.ts +58 -42
  132. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.ts +81 -65
  133. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  134. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +29 -1
  135. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +33 -5
  136. package/analyzer-template/packages/github/dist/database/index.d.ts +1 -0
  137. package/analyzer-template/packages/github/dist/database/index.d.ts.map +1 -1
  138. package/analyzer-template/packages/github/dist/database/index.js +1 -0
  139. package/analyzer-template/packages/github/dist/database/index.js.map +1 -1
  140. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
  141. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
  142. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
  143. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
  144. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
  145. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
  146. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
  147. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
  148. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
  149. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
  150. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
  151. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
  152. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +4 -0
  153. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  154. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +16 -1
  155. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  156. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +1 -18
  157. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -1
  158. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts +1 -0
  159. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts.map +1 -1
  160. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js +3 -0
  161. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  162. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +17 -1
  163. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -1
  164. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  165. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +29 -0
  166. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -0
  167. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +149 -0
  168. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  169. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
  170. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
  171. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  172. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  173. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +6 -6
  174. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  175. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts +2 -0
  176. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts.map +1 -1
  177. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js +45 -2
  178. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js.map +1 -1
  179. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  180. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +8 -0
  181. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  182. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js +11 -1
  183. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js.map +1 -1
  184. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.d.ts.map +1 -1
  185. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js +7 -0
  186. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js.map +1 -1
  187. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts +3 -1
  188. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  189. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +45 -14
  190. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  191. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts +3 -1
  192. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  193. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +23 -10
  194. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  195. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.d.ts.map +1 -1
  196. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js +9 -0
  197. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js.map +1 -1
  198. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  199. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +5 -5
  200. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  201. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
  202. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
  203. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
  204. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
  205. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
  206. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
  207. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts +2 -2
  208. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  209. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +76 -89
  210. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  211. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.d.ts.map +1 -1
  212. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  213. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  214. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts.map +1 -1
  215. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  216. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  217. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -1
  218. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
  219. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
  220. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
  221. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  222. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  223. package/analyzer-template/packages/github/dist/types/index.d.ts +3 -4
  224. package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
  225. package/analyzer-template/packages/github/dist/types/index.js +0 -1
  226. package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
  227. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  228. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  229. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js +2 -0
  230. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js.map +1 -1
  231. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +71 -27
  232. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
  233. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts +2 -0
  234. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts.map +1 -1
  235. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +8 -0
  236. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  237. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +13 -54
  238. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  239. package/analyzer-template/packages/github/dist/types/src/types/Scenario.js +1 -21
  240. package/analyzer-template/packages/github/dist/types/src/types/Scenario.js.map +1 -1
  241. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +153 -5
  242. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  243. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  244. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  245. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +2 -0
  246. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  247. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts +9 -1
  248. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  249. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +29 -3
  250. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -1
  251. package/analyzer-template/packages/github/package.json +2 -2
  252. package/analyzer-template/packages/types/index.ts +3 -6
  253. package/analyzer-template/packages/types/src/enums/ProjectFramework.ts +2 -0
  254. package/analyzer-template/packages/types/src/types/Analysis.ts +87 -27
  255. package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
  256. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +8 -0
  257. package/analyzer-template/packages/types/src/types/Scenario.ts +13 -77
  258. package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +181 -5
  259. package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
  260. package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
  261. package/analyzer-template/packages/ui-components/package.json +1 -1
  262. package/analyzer-template/packages/utils/dist/types/index.d.ts +3 -4
  263. package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
  264. package/analyzer-template/packages/utils/dist/types/index.js +0 -1
  265. package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
  266. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  267. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  268. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js +2 -0
  269. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js.map +1 -1
  270. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +71 -27
  271. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
  272. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts +2 -0
  273. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts.map +1 -1
  274. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +8 -0
  275. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  276. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +13 -54
  277. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  278. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js +1 -21
  279. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js.map +1 -1
  280. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +153 -5
  281. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  282. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  283. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  284. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +2 -0
  285. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  286. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  287. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +98 -3
  288. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  289. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +9 -1
  290. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  291. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +29 -3
  292. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -1
  293. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +121 -3
  294. package/analyzer-template/packages/utils/src/lib/safeFileName.ts +48 -3
  295. package/analyzer-template/playwright/capture.ts +20 -8
  296. package/analyzer-template/playwright/captureFromUrl.ts +89 -82
  297. package/analyzer-template/playwright/captureStatic.ts +1 -1
  298. package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
  299. package/analyzer-template/project/analyzeBaselineCommit.ts +9 -0
  300. package/analyzer-template/project/analyzeBranchCommit.ts +4 -0
  301. package/analyzer-template/project/analyzeFileEntities.ts +4 -0
  302. package/analyzer-template/project/analyzeRegularCommit.ts +9 -0
  303. package/analyzer-template/project/captureLibraryFunctionDirect.ts +29 -26
  304. package/analyzer-template/project/constructMockCode.ts +593 -91
  305. package/analyzer-template/project/controller/startController.ts +16 -1
  306. package/analyzer-template/project/createEntitiesAndSortFiles.ts +83 -0
  307. package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
  308. package/analyzer-template/project/loadReadyToBeCaptured.ts +65 -41
  309. package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
  310. package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
  311. package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +18 -7
  312. package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
  313. package/analyzer-template/project/orchestrateCapture.ts +75 -7
  314. package/analyzer-template/project/reconcileMockDataKeys.ts +220 -1
  315. package/analyzer-template/project/runAnalysis.ts +6 -0
  316. package/analyzer-template/project/start.ts +49 -12
  317. package/analyzer-template/project/startScenarioCapture.ts +9 -0
  318. package/analyzer-template/project/writeClientLogRoute.ts +125 -0
  319. package/analyzer-template/project/writeMockDataTsx.ts +312 -10
  320. package/analyzer-template/project/writeScenarioComponents.ts +314 -43
  321. package/analyzer-template/project/writeSimpleRoot.ts +21 -11
  322. package/analyzer-template/scripts/comboWorkerLoop.cjs +98 -50
  323. package/analyzer-template/tsconfig.json +14 -1
  324. package/background/src/lib/local/createLocalAnalyzer.js +1 -1
  325. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  326. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +7 -1
  327. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
  328. package/background/src/lib/virtualized/project/analyzeBranchCommit.js +2 -1
  329. package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -1
  330. package/background/src/lib/virtualized/project/analyzeFileEntities.js +2 -1
  331. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  332. package/background/src/lib/virtualized/project/analyzeRegularCommit.js +7 -1
  333. package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
  334. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +3 -3
  335. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -1
  336. package/background/src/lib/virtualized/project/constructMockCode.js +493 -52
  337. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  338. package/background/src/lib/virtualized/project/controller/startController.js +11 -1
  339. package/background/src/lib/virtualized/project/controller/startController.js.map +1 -1
  340. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +73 -1
  341. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -1
  342. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +6 -3
  343. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -1
  344. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +19 -8
  345. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
  346. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +7 -7
  347. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -1
  348. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js +2 -2
  349. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -1
  350. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +7 -5
  351. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
  352. package/background/src/lib/virtualized/project/orchestrateCapture.js +62 -7
  353. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  354. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +184 -1
  355. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  356. package/background/src/lib/virtualized/project/runAnalysis.js +5 -0
  357. package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
  358. package/background/src/lib/virtualized/project/start.js +44 -12
  359. package/background/src/lib/virtualized/project/start.js.map +1 -1
  360. package/background/src/lib/virtualized/project/startScenarioCapture.js +5 -0
  361. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  362. package/background/src/lib/virtualized/project/writeClientLogRoute.js +110 -0
  363. package/background/src/lib/virtualized/project/writeClientLogRoute.js.map +1 -0
  364. package/background/src/lib/virtualized/project/writeMockDataTsx.js +263 -6
  365. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  366. package/background/src/lib/virtualized/project/writeScenarioComponents.js +237 -41
  367. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  368. package/background/src/lib/virtualized/project/writeSimpleRoot.js +21 -11
  369. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  370. package/codeyam-cli/scripts/apply-setup.js +386 -9
  371. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  372. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js +196 -0
  373. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js.map +1 -0
  374. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js +114 -0
  375. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js.map +1 -0
  376. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js +149 -0
  377. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js.map +1 -0
  378. package/codeyam-cli/src/cli.js +44 -24
  379. package/codeyam-cli/src/cli.js.map +1 -1
  380. package/codeyam-cli/src/codeyam-cli.js +18 -2
  381. package/codeyam-cli/src/codeyam-cli.js.map +1 -1
  382. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js +51 -0
  383. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js.map +1 -0
  384. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js +56 -0
  385. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js.map +1 -0
  386. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js +101 -47
  387. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js.map +1 -1
  388. package/codeyam-cli/src/commands/analyze.js +21 -9
  389. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  390. package/codeyam-cli/src/commands/baseline.js +10 -11
  391. package/codeyam-cli/src/commands/baseline.js.map +1 -1
  392. package/codeyam-cli/src/commands/debug.js +37 -23
  393. package/codeyam-cli/src/commands/debug.js.map +1 -1
  394. package/codeyam-cli/src/commands/default.js +43 -35
  395. package/codeyam-cli/src/commands/default.js.map +1 -1
  396. package/codeyam-cli/src/commands/editor.js +4630 -0
  397. package/codeyam-cli/src/commands/editor.js.map +1 -0
  398. package/codeyam-cli/src/commands/editorIsolateArgs.js +25 -0
  399. package/codeyam-cli/src/commands/editorIsolateArgs.js.map +1 -0
  400. package/codeyam-cli/src/commands/init.js +148 -292
  401. package/codeyam-cli/src/commands/init.js.map +1 -1
  402. package/codeyam-cli/src/commands/memory.js +278 -0
  403. package/codeyam-cli/src/commands/memory.js.map +1 -0
  404. package/codeyam-cli/src/commands/recapture.js +31 -18
  405. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  406. package/codeyam-cli/src/commands/report.js +46 -1
  407. package/codeyam-cli/src/commands/report.js.map +1 -1
  408. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  409. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  410. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  411. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  412. package/codeyam-cli/src/commands/start.js +8 -12
  413. package/codeyam-cli/src/commands/start.js.map +1 -1
  414. package/codeyam-cli/src/commands/telemetry.js +37 -0
  415. package/codeyam-cli/src/commands/telemetry.js.map +1 -0
  416. package/codeyam-cli/src/commands/test-startup.js +2 -0
  417. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  418. package/codeyam-cli/src/commands/verify.js +14 -2
  419. package/codeyam-cli/src/commands/verify.js.map +1 -1
  420. package/codeyam-cli/src/data/techStacks.js +77 -0
  421. package/codeyam-cli/src/data/techStacks.js.map +1 -0
  422. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js +173 -0
  423. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js.map +1 -0
  424. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js +46 -0
  425. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js.map +1 -0
  426. package/codeyam-cli/src/utils/__tests__/devServerState.test.js +134 -0
  427. package/codeyam-cli/src/utils/__tests__/devServerState.test.js.map +1 -0
  428. package/codeyam-cli/src/utils/__tests__/editorApi.test.js +137 -0
  429. package/codeyam-cli/src/utils/__tests__/editorApi.test.js.map +1 -0
  430. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +2379 -0
  431. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -0
  432. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js +76 -0
  433. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js.map +1 -0
  434. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js +93 -0
  435. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js.map +1 -0
  436. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js +100 -0
  437. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js.map +1 -0
  438. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js +304 -0
  439. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js.map +1 -0
  440. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js +194 -0
  441. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js.map +1 -0
  442. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js +315 -0
  443. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js.map +1 -0
  444. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js +294 -0
  445. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js.map +1 -0
  446. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js +542 -0
  447. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js.map +1 -0
  448. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js +594 -0
  449. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js.map +1 -0
  450. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js +435 -0
  451. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js.map +1 -0
  452. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js +270 -0
  453. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js.map +1 -0
  454. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js +217 -0
  455. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js.map +1 -0
  456. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js +353 -0
  457. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js.map +1 -0
  458. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js +153 -0
  459. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js.map +1 -0
  460. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js +139 -0
  461. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js.map +1 -0
  462. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js +221 -0
  463. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js.map +1 -0
  464. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +1559 -0
  465. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -0
  466. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js +280 -0
  467. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js.map +1 -0
  468. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js +143 -0
  469. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js.map +1 -0
  470. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js +66 -0
  471. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js.map +1 -0
  472. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js +53 -0
  473. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js.map +1 -0
  474. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +1857 -0
  475. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -0
  476. package/codeyam-cli/src/utils/__tests__/git.editor.test.js +134 -0
  477. package/codeyam-cli/src/utils/__tests__/git.editor.test.js.map +1 -0
  478. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js +107 -0
  479. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js.map +1 -0
  480. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +185 -0
  481. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
  482. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js +129 -0
  483. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js.map +1 -0
  484. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js +9 -0
  485. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js.map +1 -1
  486. package/codeyam-cli/src/utils/__tests__/project.test.js +65 -0
  487. package/codeyam-cli/src/utils/__tests__/project.test.js.map +1 -0
  488. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js +118 -0
  489. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js.map +1 -0
  490. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js +284 -0
  491. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js.map +1 -0
  492. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js +121 -0
  493. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js.map +1 -0
  494. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +672 -0
  495. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -0
  496. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
  497. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
  498. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +175 -82
  499. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  500. package/codeyam-cli/src/utils/__tests__/telemetry.test.js +159 -0
  501. package/codeyam-cli/src/utils/__tests__/telemetry.test.js.map +1 -0
  502. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js +51 -0
  503. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js.map +1 -0
  504. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js +142 -0
  505. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js.map +1 -0
  506. package/codeyam-cli/src/utils/analysisRunner.js +32 -16
  507. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  508. package/codeyam-cli/src/utils/analyzer.js +16 -0
  509. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  510. package/codeyam-cli/src/utils/analyzerFinalization.js +100 -0
  511. package/codeyam-cli/src/utils/analyzerFinalization.js.map +1 -0
  512. package/codeyam-cli/src/utils/backgroundServer.js +203 -30
  513. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  514. package/codeyam-cli/src/utils/buildFlags.js +4 -0
  515. package/codeyam-cli/src/utils/buildFlags.js.map +1 -0
  516. package/codeyam-cli/src/utils/database.js +37 -2
  517. package/codeyam-cli/src/utils/database.js.map +1 -1
  518. package/codeyam-cli/src/utils/devModeEvents.js +40 -0
  519. package/codeyam-cli/src/utils/devModeEvents.js.map +1 -0
  520. package/codeyam-cli/src/utils/devServerState.js +71 -0
  521. package/codeyam-cli/src/utils/devServerState.js.map +1 -0
  522. package/codeyam-cli/src/utils/editorApi.js +79 -0
  523. package/codeyam-cli/src/utils/editorApi.js.map +1 -0
  524. package/codeyam-cli/src/utils/editorAudit.js +480 -0
  525. package/codeyam-cli/src/utils/editorAudit.js.map +1 -0
  526. package/codeyam-cli/src/utils/editorBroadcastViewport.js +26 -0
  527. package/codeyam-cli/src/utils/editorBroadcastViewport.js.map +1 -0
  528. package/codeyam-cli/src/utils/editorCapture.js +102 -0
  529. package/codeyam-cli/src/utils/editorCapture.js.map +1 -0
  530. package/codeyam-cli/src/utils/editorDeleteScenario.js +67 -0
  531. package/codeyam-cli/src/utils/editorDeleteScenario.js.map +1 -0
  532. package/codeyam-cli/src/utils/editorDevServer.js +197 -0
  533. package/codeyam-cli/src/utils/editorDevServer.js.map +1 -0
  534. package/codeyam-cli/src/utils/editorEntityChangeStatus.js +50 -0
  535. package/codeyam-cli/src/utils/editorEntityChangeStatus.js.map +1 -0
  536. package/codeyam-cli/src/utils/editorEntityHelpers.js +144 -0
  537. package/codeyam-cli/src/utils/editorEntityHelpers.js.map +1 -0
  538. package/codeyam-cli/src/utils/editorImageVerifier.js +155 -0
  539. package/codeyam-cli/src/utils/editorImageVerifier.js.map +1 -0
  540. package/codeyam-cli/src/utils/editorJournal.js +225 -0
  541. package/codeyam-cli/src/utils/editorJournal.js.map +1 -0
  542. package/codeyam-cli/src/utils/editorLoaderHelpers.js +152 -0
  543. package/codeyam-cli/src/utils/editorLoaderHelpers.js.map +1 -0
  544. package/codeyam-cli/src/utils/editorMigration.js +224 -0
  545. package/codeyam-cli/src/utils/editorMigration.js.map +1 -0
  546. package/codeyam-cli/src/utils/editorMockState.js +248 -0
  547. package/codeyam-cli/src/utils/editorMockState.js.map +1 -0
  548. package/codeyam-cli/src/utils/editorPreloadHelpers.js +135 -0
  549. package/codeyam-cli/src/utils/editorPreloadHelpers.js.map +1 -0
  550. package/codeyam-cli/src/utils/editorPreview.js +137 -0
  551. package/codeyam-cli/src/utils/editorPreview.js.map +1 -0
  552. package/codeyam-cli/src/utils/editorScenarioSwitch.js +112 -0
  553. package/codeyam-cli/src/utils/editorScenarioSwitch.js.map +1 -0
  554. package/codeyam-cli/src/utils/editorScenarios.js +557 -0
  555. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -0
  556. package/codeyam-cli/src/utils/editorSeedAdapter.js +422 -0
  557. package/codeyam-cli/src/utils/editorSeedAdapter.js.map +1 -0
  558. package/codeyam-cli/src/utils/editorShouldRevalidate.js +21 -0
  559. package/codeyam-cli/src/utils/editorShouldRevalidate.js.map +1 -0
  560. package/codeyam-cli/src/utils/entityChangeStatus.js +366 -0
  561. package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -0
  562. package/codeyam-cli/src/utils/entityChangeStatus.server.js +196 -0
  563. package/codeyam-cli/src/utils/entityChangeStatus.server.js.map +1 -0
  564. package/codeyam-cli/src/utils/fileMetadata.js +5 -0
  565. package/codeyam-cli/src/utils/fileMetadata.js.map +1 -1
  566. package/codeyam-cli/src/utils/fileWatcher.js +63 -9
  567. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  568. package/codeyam-cli/src/utils/generateReport.js +4 -3
  569. package/codeyam-cli/src/utils/generateReport.js.map +1 -1
  570. package/codeyam-cli/src/utils/git.js +103 -0
  571. package/codeyam-cli/src/utils/git.js.map +1 -1
  572. package/codeyam-cli/src/utils/install-skills.js +134 -39
  573. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  574. package/codeyam-cli/src/utils/interactiveSyncWatcher.js +126 -0
  575. package/codeyam-cli/src/utils/interactiveSyncWatcher.js.map +1 -0
  576. package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
  577. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
  578. package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
  579. package/codeyam-cli/src/utils/npmVersionCheck.js.map +1 -0
  580. package/codeyam-cli/src/utils/parseRegisterArg.js +31 -0
  581. package/codeyam-cli/src/utils/parseRegisterArg.js.map +1 -0
  582. package/codeyam-cli/src/utils/pathIgnoring.js +19 -7
  583. package/codeyam-cli/src/utils/pathIgnoring.js.map +1 -1
  584. package/codeyam-cli/src/utils/progress.js +8 -1
  585. package/codeyam-cli/src/utils/progress.js.map +1 -1
  586. package/codeyam-cli/src/utils/project.js +15 -5
  587. package/codeyam-cli/src/utils/project.js.map +1 -1
  588. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js +11 -11
  589. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js.map +1 -1
  590. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +22 -0
  591. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
  592. package/codeyam-cli/src/utils/queue/heartbeat.js +13 -5
  593. package/codeyam-cli/src/utils/queue/heartbeat.js.map +1 -1
  594. package/codeyam-cli/src/utils/queue/job.js +75 -1
  595. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  596. package/codeyam-cli/src/utils/queue/manager.js +7 -0
  597. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  598. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  599. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  600. package/codeyam-cli/src/utils/routePatternMatching.js +129 -0
  601. package/codeyam-cli/src/utils/routePatternMatching.js.map +1 -0
  602. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
  603. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
  604. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +229 -0
  605. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
  606. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
  607. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
  608. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
  609. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
  610. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
  611. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
  612. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
  613. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
  614. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +74 -0
  615. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
  616. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +376 -0
  617. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
  618. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +113 -0
  619. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
  620. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
  621. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
  622. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
  623. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
  624. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
  625. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
  626. package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
  627. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
  628. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
  629. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
  630. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
  631. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
  632. package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
  633. package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
  634. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js +83 -0
  635. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js.map +1 -0
  636. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js +118 -0
  637. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js.map +1 -0
  638. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js +72 -0
  639. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js.map +1 -0
  640. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
  641. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
  642. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js +76 -0
  643. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js.map +1 -0
  644. package/codeyam-cli/src/utils/rules/index.js +7 -0
  645. package/codeyam-cli/src/utils/rules/index.js.map +1 -0
  646. package/codeyam-cli/src/utils/rules/parser.js +93 -0
  647. package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
  648. package/codeyam-cli/src/utils/rules/pathMatcher.js +49 -0
  649. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
  650. package/codeyam-cli/src/utils/rules/rulePlacement.js +65 -0
  651. package/codeyam-cli/src/utils/rules/rulePlacement.js.map +1 -0
  652. package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
  653. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
  654. package/codeyam-cli/src/utils/rules/sourceFiles.js +43 -0
  655. package/codeyam-cli/src/utils/rules/sourceFiles.js.map +1 -0
  656. package/codeyam-cli/src/utils/rules/staleness.js +137 -0
  657. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
  658. package/codeyam-cli/src/utils/scenarioCoverage.js +77 -0
  659. package/codeyam-cli/src/utils/scenarioCoverage.js.map +1 -0
  660. package/codeyam-cli/src/utils/scenarioMarkers.js +134 -0
  661. package/codeyam-cli/src/utils/scenarioMarkers.js.map +1 -0
  662. package/codeyam-cli/src/utils/scenariosManifest.js +285 -0
  663. package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -0
  664. package/codeyam-cli/src/utils/serverState.js +94 -12
  665. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  666. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +96 -45
  667. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  668. package/codeyam-cli/src/utils/simulationGateMiddleware.js +166 -0
  669. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -0
  670. package/codeyam-cli/src/utils/slugUtils.js +25 -0
  671. package/codeyam-cli/src/utils/slugUtils.js.map +1 -0
  672. package/codeyam-cli/src/utils/syncMocksMiddleware.js +7 -26
  673. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  674. package/codeyam-cli/src/utils/telemetry.js +106 -0
  675. package/codeyam-cli/src/utils/telemetry.js.map +1 -0
  676. package/codeyam-cli/src/utils/telemetryMiddleware.js +22 -0
  677. package/codeyam-cli/src/utils/telemetryMiddleware.js.map +1 -0
  678. package/codeyam-cli/src/utils/testRunner.js +158 -0
  679. package/codeyam-cli/src/utils/testRunner.js.map +1 -0
  680. package/codeyam-cli/src/utils/transcriptPruning.js +67 -0
  681. package/codeyam-cli/src/utils/transcriptPruning.js.map +1 -0
  682. package/codeyam-cli/src/utils/versionInfo.js +67 -15
  683. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  684. package/codeyam-cli/src/utils/webappDetection.js +35 -2
  685. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  686. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js +35 -0
  687. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js.map +1 -0
  688. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js +80 -0
  689. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js.map +1 -0
  690. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js +66 -0
  691. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
  692. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +628 -0
  693. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -0
  694. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js +217 -0
  695. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js.map +1 -0
  696. package/codeyam-cli/src/webserver/app/lib/clientErrors.js +71 -0
  697. package/codeyam-cli/src/webserver/app/lib/clientErrors.js.map +1 -0
  698. package/codeyam-cli/src/webserver/app/lib/database.js +63 -33
  699. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  700. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  701. package/codeyam-cli/src/webserver/app/lib/git.js +397 -0
  702. package/codeyam-cli/src/webserver/app/lib/git.js.map +1 -0
  703. package/codeyam-cli/src/webserver/app/types/editor.js +8 -0
  704. package/codeyam-cli/src/webserver/app/types/editor.js.map +1 -0
  705. package/codeyam-cli/src/webserver/backgroundServer.js +186 -37
  706. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  707. package/codeyam-cli/src/webserver/bootstrap.js +51 -0
  708. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
  709. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CLe80MMu.js +1 -0
  710. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-Crt_KN_U.js +11 -0
  711. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-CQgyEGV-.js +1 -0
  712. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-CD7lGABo.js +41 -0
  713. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-CgTNOhnu.js +1 -0
  714. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-CKeQT5Ty.js +25 -0
  715. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-D3s1MFkb.js +3 -0
  716. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-B0GLXMsr.js → LoadingDots-By5zI316.js} +1 -1
  717. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-xgeCVgSM.js → LogViewer-CM5zg40N.js} +3 -3
  718. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-C2PLkej3.js +11 -0
  719. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-DanvyBPb.js +1 -0
  720. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-DUMfcNVK.js +10 -0
  721. package/codeyam-cli/src/webserver/build/client/assets/Spinner-D0LgAaSa.js +34 -0
  722. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-CK7-NaPZ.js +1 -0
  723. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-BA_Ry-rs.js +1 -0
  724. package/codeyam-cli/src/webserver/build/client/assets/_index-BAWd-Xjf.js +11 -0
  725. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-BOARiB-g.js +27 -0
  726. package/codeyam-cli/src/webserver/build/client/assets/addon-canvas-DpzMmAy5.js +1 -0
  727. package/codeyam-cli/src/webserver/build/client/assets/addon-fit-YJmn1quW.js +12 -0
  728. package/codeyam-cli/src/webserver/build/client/assets/addon-web-links-CHx25PAe.js +1 -0
  729. package/codeyam-cli/src/webserver/build/client/assets/addon-webgl-DI8QOUvO.js +58 -0
  730. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-Bg3e7q4S.js +22 -0
  731. package/codeyam-cli/src/webserver/build/client/assets/api.editor-capture-scenario-l0sNRNKZ.js +1 -0
  732. package/codeyam-cli/src/webserver/build/client/assets/api.editor-client-errors-l0sNRNKZ.js +1 -0
  733. package/codeyam-cli/src/webserver/build/client/assets/api.editor-commit-l0sNRNKZ.js +1 -0
  734. package/codeyam-cli/src/webserver/build/client/assets/api.editor-dev-server-l0sNRNKZ.js +1 -0
  735. package/codeyam-cli/src/webserver/build/client/assets/api.editor-entity-status-l0sNRNKZ.js +1 -0
  736. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-diff-l0sNRNKZ.js +1 -0
  737. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-l0sNRNKZ.js +1 -0
  738. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-entry-l0sNRNKZ.js +1 -0
  739. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-image._-l0sNRNKZ.js +1 -0
  740. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-l0sNRNKZ.js +1 -0
  741. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-screenshot-l0sNRNKZ.js +1 -0
  742. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-update-l0sNRNKZ.js +1 -0
  743. package/codeyam-cli/src/webserver/build/client/assets/api.editor-load-commit-l0sNRNKZ.js +1 -0
  744. package/codeyam-cli/src/webserver/build/client/assets/api.editor-project-info-l0sNRNKZ.js +1 -0
  745. package/codeyam-cli/src/webserver/build/client/assets/api.editor-refresh-l0sNRNKZ.js +1 -0
  746. package/codeyam-cli/src/webserver/build/client/assets/api.editor-register-scenario-l0sNRNKZ.js +1 -0
  747. package/codeyam-cli/src/webserver/build/client/assets/api.editor-rename-scenario-l0sNRNKZ.js +1 -0
  748. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-seed-state-l0sNRNKZ.js +1 -0
  749. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-coverage-l0sNRNKZ.js +1 -0
  750. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-data-l0sNRNKZ.js +1 -0
  751. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-image._-l0sNRNKZ.js +1 -0
  752. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-prompt-l0sNRNKZ.js +1 -0
  753. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenarios-l0sNRNKZ.js +1 -0
  754. package/codeyam-cli/src/webserver/build/client/assets/api.editor-session-l0sNRNKZ.js +1 -0
  755. package/codeyam-cli/src/webserver/build/client/assets/api.editor-switch-scenario-l0sNRNKZ.js +1 -0
  756. package/codeyam-cli/src/webserver/build/client/assets/api.editor-test-results-l0sNRNKZ.js +1 -0
  757. package/codeyam-cli/src/webserver/build/client/assets/api.health-l0sNRNKZ.js +1 -0
  758. package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
  759. package/codeyam-cli/src/webserver/build/client/assets/api.memory-profile-l0sNRNKZ.js +1 -0
  760. package/codeyam-cli/src/webserver/build/client/assets/api.restart-server-l0sNRNKZ.js +1 -0
  761. package/codeyam-cli/src/webserver/build/client/assets/api.rule-path-l0sNRNKZ.js +1 -0
  762. package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
  763. package/codeyam-cli/src/webserver/build/client/assets/book-open-CL-lMgHh.js +6 -0
  764. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-Cx24_aWc.js → chevron-down-GmAjGS9-.js} +2 -2
  765. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-BAdwhyCx.js +43 -0
  766. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-BOARzkeR.js → circle-check-DFcQkN5j.js} +2 -2
  767. package/codeyam-cli/src/webserver/build/client/assets/copy-C6iF61Xs.js +11 -0
  768. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-4ImjHTVC.js +41 -0
  769. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-C1gnJVOL.svg → cy-logo-cli-CCKUIm0S.svg} +2 -2
  770. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +1 -0
  771. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-C8y4mmyv.js +1 -0
  772. package/codeyam-cli/src/webserver/build/client/assets/editor._tab-Gbk_i5Js.js +1 -0
  773. package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-DN5ouXAl.js +58 -0
  774. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-oepecPae.js +41 -0
  775. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-D0-YwkBh.js → entity._sha._-Blfy9UlN.js} +13 -13
  776. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-KTQuL0aj.js +6 -0
  777. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-C6eeL24i.js +6 -0
  778. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DQM8E7L4.js +6 -0
  779. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-C1H_a_Y3.js → entity._sha_.edit._scenarioId-CAoXLsQr.js} +2 -2
  780. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-CS2cb_eZ.js → entry.client-SuW9syRS.js} +6 -6
  781. package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
  782. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-Daa96Fr1.js +1 -0
  783. package/codeyam-cli/src/webserver/build/client/assets/files-D-xGrg29.js +1 -0
  784. package/codeyam-cli/src/webserver/build/client/assets/git-Bq_fbXP5.js +1 -0
  785. package/codeyam-cli/src/webserver/build/client/assets/globals-fAqOD9ex.css +1 -0
  786. package/codeyam-cli/src/webserver/build/client/assets/{index-lzqtyFU8.js → index-Bp1l4hSv.js} +1 -1
  787. package/codeyam-cli/src/webserver/build/client/assets/{index-B1h680n5.js → index-CWV9XZiG.js} +1 -1
  788. package/codeyam-cli/src/webserver/build/client/assets/index-DE3jI_dv.js +15 -0
  789. package/codeyam-cli/src/webserver/build/client/assets/jsx-runtime-D_zvdyIk.js +9 -0
  790. package/codeyam-cli/src/webserver/build/client/assets/labs-B_IX45ih.js +1 -0
  791. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-B7B9V-bu.js → loader-circle-De-7qQ2u.js} +2 -2
  792. package/codeyam-cli/src/webserver/build/client/assets/manifest-389033be.js +1 -0
  793. package/codeyam-cli/src/webserver/build/client/assets/memory-Cx2xEx7s.js +101 -0
  794. package/codeyam-cli/src/webserver/build/client/assets/pause-CFxEKL1u.js +11 -0
  795. package/codeyam-cli/src/webserver/build/client/assets/root-DB3O9_9j.js +67 -0
  796. package/codeyam-cli/src/webserver/build/client/assets/{search-CxXUmBSd.js → search-BdBb5aqc.js} +2 -2
  797. package/codeyam-cli/src/webserver/build/client/assets/settings-DdE-Untf.js +1 -0
  798. package/codeyam-cli/src/webserver/build/client/assets/simulations-DSCdE99u.js +1 -0
  799. package/codeyam-cli/src/webserver/build/client/assets/terminal-CrplD4b1.js +11 -0
  800. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-B6LgvRJg.js → triangle-alert-DqJ0j69l.js} +2 -2
  801. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-DhXHbEjP.js +1 -0
  802. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-BNd5hYuW.js +2 -0
  803. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-Cy5Qg_UR.js +1 -0
  804. package/codeyam-cli/src/webserver/build/client/assets/useToast-5HR2j9ZE.js +1 -0
  805. package/codeyam-cli/src/webserver/build/client/assets/xterm-BqvuqXEL.js +27 -0
  806. package/codeyam-cli/src/webserver/build/client/sound-test.html +98 -0
  807. package/codeyam-cli/src/webserver/build/server/assets/analysisRunner-D_1MSYeW.js +13 -0
  808. package/codeyam-cli/src/webserver/build/server/assets/index-ckWaCf_v.js +1 -0
  809. package/codeyam-cli/src/webserver/build/server/assets/init-ld124R4Z.js +10 -0
  810. package/codeyam-cli/src/webserver/build/server/assets/progress-CHTtrxFG.js +1 -0
  811. package/codeyam-cli/src/webserver/build/server/assets/server-build-DzzNZGv_.js +551 -0
  812. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  813. package/codeyam-cli/src/webserver/build-info.json +5 -5
  814. package/codeyam-cli/src/webserver/devServer.js +39 -5
  815. package/codeyam-cli/src/webserver/devServer.js.map +1 -1
  816. package/codeyam-cli/src/webserver/editorProxy.js +976 -0
  817. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -0
  818. package/codeyam-cli/src/webserver/idleDetector.js +106 -0
  819. package/codeyam-cli/src/webserver/idleDetector.js.map +1 -0
  820. package/codeyam-cli/src/webserver/mockStateEvents.js +28 -0
  821. package/codeyam-cli/src/webserver/mockStateEvents.js.map +1 -0
  822. package/codeyam-cli/src/webserver/public/sound-test.html +98 -0
  823. package/codeyam-cli/src/webserver/scripts/codeyam-preload.mjs +414 -0
  824. package/codeyam-cli/src/webserver/scripts/journalCapture.ts +266 -0
  825. package/codeyam-cli/src/webserver/server.js +376 -26
  826. package/codeyam-cli/src/webserver/server.js.map +1 -1
  827. package/codeyam-cli/src/webserver/terminalServer.js +831 -0
  828. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -0
  829. package/codeyam-cli/templates/chrome-extension-react/EXTENSION_SETUP.md +75 -0
  830. package/codeyam-cli/templates/chrome-extension-react/README.md +46 -0
  831. package/codeyam-cli/templates/chrome-extension-react/gitignore +15 -0
  832. package/codeyam-cli/templates/chrome-extension-react/index.html +12 -0
  833. package/codeyam-cli/templates/chrome-extension-react/package.json +27 -0
  834. package/codeyam-cli/templates/chrome-extension-react/popup.html +12 -0
  835. package/codeyam-cli/templates/chrome-extension-react/public/manifest.json +15 -0
  836. package/codeyam-cli/templates/chrome-extension-react/src/background/service-worker.ts +7 -0
  837. package/codeyam-cli/templates/chrome-extension-react/src/globals.css +6 -0
  838. package/codeyam-cli/templates/chrome-extension-react/src/lib/storage.ts +37 -0
  839. package/codeyam-cli/templates/chrome-extension-react/src/popup/App.tsx +12 -0
  840. package/codeyam-cli/templates/chrome-extension-react/src/popup/main.tsx +10 -0
  841. package/codeyam-cli/templates/chrome-extension-react/tsconfig.json +24 -0
  842. package/codeyam-cli/templates/chrome-extension-react/vite.config.ts +41 -0
  843. package/codeyam-cli/templates/codeyam-editor-claude.md +147 -0
  844. package/codeyam-cli/templates/codeyam-editor-reference.md +214 -0
  845. package/codeyam-cli/templates/codeyam-memory-hook.sh +199 -0
  846. package/codeyam-cli/templates/commands/codeyam-diagnose.md +481 -0
  847. package/codeyam-cli/templates/editor-step-hook.py +321 -0
  848. package/codeyam-cli/templates/expo-react-native/MOBILE_SETUP.md +89 -0
  849. package/codeyam-cli/templates/expo-react-native/README.md +41 -0
  850. package/codeyam-cli/templates/expo-react-native/app/(tabs)/_layout.tsx +33 -0
  851. package/codeyam-cli/templates/expo-react-native/app/(tabs)/index.tsx +12 -0
  852. package/codeyam-cli/templates/expo-react-native/app/(tabs)/settings.tsx +12 -0
  853. package/codeyam-cli/templates/expo-react-native/app/_layout.tsx +12 -0
  854. package/codeyam-cli/templates/expo-react-native/app.json +18 -0
  855. package/codeyam-cli/templates/expo-react-native/babel.config.js +9 -0
  856. package/codeyam-cli/templates/expo-react-native/gitignore +12 -0
  857. package/codeyam-cli/templates/expo-react-native/global.css +3 -0
  858. package/codeyam-cli/templates/expo-react-native/lib/storage.ts +32 -0
  859. package/codeyam-cli/templates/expo-react-native/metro.config.js +6 -0
  860. package/codeyam-cli/templates/expo-react-native/nativewind-env.d.ts +1 -0
  861. package/codeyam-cli/templates/expo-react-native/package.json +38 -0
  862. package/codeyam-cli/templates/expo-react-native/tailwind.config.js +10 -0
  863. package/codeyam-cli/templates/expo-react-native/tsconfig.json +10 -0
  864. package/codeyam-cli/templates/hooks/staleness-check.sh +43 -0
  865. package/codeyam-cli/templates/isolation-route/next-app.tsx.template +80 -0
  866. package/codeyam-cli/templates/isolation-route/next-pages.tsx.template +79 -0
  867. package/codeyam-cli/templates/isolation-route/vite-react.tsx.template +78 -0
  868. package/codeyam-cli/templates/msw/browser-setup.ts.template +47 -0
  869. package/codeyam-cli/templates/msw/handler-router.ts.template +47 -0
  870. package/codeyam-cli/templates/msw/server-setup.ts.template +52 -0
  871. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_PATTERNS.md +308 -0
  872. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_UPGRADE.md +304 -0
  873. package/codeyam-cli/templates/nextjs-prisma-sqlite/DATABASE.md +126 -0
  874. package/codeyam-cli/templates/nextjs-prisma-sqlite/FEATURE_PATTERNS.md +37 -0
  875. package/codeyam-cli/templates/nextjs-prisma-sqlite/README.md +53 -0
  876. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/api/todos/route.ts +17 -0
  877. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/codeyam-isolate/layout.tsx +12 -0
  878. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/globals.css +26 -0
  879. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/layout.tsx +34 -0
  880. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/lib/prisma.ts +24 -0
  881. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/page.tsx +10 -0
  882. package/codeyam-cli/templates/nextjs-prisma-sqlite/env +4 -0
  883. package/codeyam-cli/templates/nextjs-prisma-sqlite/eslint.config.mjs +11 -0
  884. package/codeyam-cli/templates/nextjs-prisma-sqlite/gitignore +64 -0
  885. package/codeyam-cli/templates/nextjs-prisma-sqlite/next.config.ts +14 -0
  886. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +39 -0
  887. package/codeyam-cli/templates/nextjs-prisma-sqlite/postcss.config.mjs +7 -0
  888. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/schema.prisma +27 -0
  889. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/seed.ts +40 -0
  890. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma.config.ts +12 -0
  891. package/codeyam-cli/templates/nextjs-prisma-sqlite/seed-adapter.ts +127 -0
  892. package/codeyam-cli/templates/nextjs-prisma-sqlite/tsconfig.json +34 -0
  893. package/codeyam-cli/templates/nextjs-prisma-sqlite/vitest.config.ts +13 -0
  894. package/codeyam-cli/templates/nextjs-prisma-supabase/README.md +52 -0
  895. package/codeyam-cli/templates/nextjs-prisma-supabase/SUPABASE_SETUP.md +104 -0
  896. package/codeyam-cli/templates/nextjs-prisma-supabase/app/api/todos/route.ts +17 -0
  897. package/codeyam-cli/templates/nextjs-prisma-supabase/app/globals.css +26 -0
  898. package/codeyam-cli/templates/nextjs-prisma-supabase/app/layout.tsx +34 -0
  899. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/prisma.ts +20 -0
  900. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/supabase.ts +12 -0
  901. package/codeyam-cli/templates/nextjs-prisma-supabase/app/page.tsx +10 -0
  902. package/codeyam-cli/templates/nextjs-prisma-supabase/env +9 -0
  903. package/codeyam-cli/templates/nextjs-prisma-supabase/eslint.config.mjs +11 -0
  904. package/codeyam-cli/templates/nextjs-prisma-supabase/gitignore +40 -0
  905. package/codeyam-cli/templates/nextjs-prisma-supabase/next.config.ts +11 -0
  906. package/codeyam-cli/templates/nextjs-prisma-supabase/package.json +37 -0
  907. package/codeyam-cli/templates/nextjs-prisma-supabase/postcss.config.mjs +7 -0
  908. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/schema.prisma +27 -0
  909. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/seed.ts +39 -0
  910. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma.config.ts +12 -0
  911. package/codeyam-cli/templates/nextjs-prisma-supabase/tsconfig.json +34 -0
  912. package/codeyam-cli/templates/prompts/conversation-guidance.txt +44 -0
  913. package/codeyam-cli/templates/prompts/conversation-prompt.txt +28 -0
  914. package/codeyam-cli/templates/prompts/interruption-prompt.txt +31 -0
  915. package/codeyam-cli/templates/prompts/stale-rules-prompt.txt +24 -0
  916. package/codeyam-cli/templates/rule-notification-hook.py +83 -0
  917. package/codeyam-cli/templates/rule-reflection-hook.py +647 -0
  918. package/codeyam-cli/templates/rules-instructions.md +78 -0
  919. package/codeyam-cli/templates/seed-adapters/supabase.ts +282 -0
  920. package/codeyam-cli/templates/{codeyam-debug-skill.md → skills/codeyam-debug/SKILL.md} +48 -4
  921. package/codeyam-cli/templates/skills/codeyam-dev-mode/SKILL.md +237 -0
  922. package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +211 -0
  923. package/codeyam-cli/templates/skills/codeyam-memory/SKILL.md +611 -0
  924. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/deprecated-prompt.md +100 -0
  925. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/detect-deprecated-patterns.mjs +139 -0
  926. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/find-exports.mjs +52 -0
  927. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/misleading-api-prompt.md +117 -0
  928. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/read-json-field.mjs +61 -0
  929. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/ripgrep-fallback.mjs +155 -0
  930. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/analyze-prompt.md +46 -0
  931. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/cleanup.mjs +13 -0
  932. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/filter-session.mjs +95 -0
  933. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/preprocess.mjs +160 -0
  934. package/codeyam-cli/templates/skills/codeyam-new-rule/SKILL.md +11 -0
  935. package/codeyam-cli/templates/{codeyam-setup-skill.md → skills/codeyam-setup/SKILL.md} +13 -1
  936. package/codeyam-cli/templates/{codeyam-sim-skill.md → skills/codeyam-sim/SKILL.md} +1 -1
  937. package/codeyam-cli/templates/{codeyam-test-skill.md → skills/codeyam-test/SKILL.md} +1 -1
  938. package/codeyam-cli/templates/{codeyam-verify-skill.md → skills/codeyam-verify/SKILL.md} +1 -1
  939. package/package.json +33 -22
  940. package/packages/ai/index.js +8 -6
  941. package/packages/ai/index.js.map +1 -1
  942. package/packages/ai/src/lib/analyzeScope.js +179 -13
  943. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  944. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js +150 -0
  945. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js.map +1 -0
  946. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +160 -13
  947. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  948. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
  949. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
  950. package/packages/ai/src/lib/astScopes/methodSemantics.js +138 -23
  951. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  952. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
  953. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
  954. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +8 -0
  955. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -1
  956. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +7 -0
  957. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
  958. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +138 -1
  959. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
  960. package/packages/ai/src/lib/astScopes/processExpression.js +931 -29
  961. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  962. package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
  963. package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
  964. package/packages/ai/src/lib/completionCall.js +188 -38
  965. package/packages/ai/src/lib/completionCall.js.map +1 -1
  966. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1600 -189
  967. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  968. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +5 -1
  969. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  970. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +179 -0
  971. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -1
  972. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +7 -1
  973. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  974. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +13 -3
  975. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -1
  976. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +6 -4
  977. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -1
  978. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +52 -3
  979. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  980. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +111 -14
  981. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  982. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
  983. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
  984. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js +54 -0
  985. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js.map +1 -0
  986. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +122 -12
  987. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  988. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
  989. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
  990. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
  991. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
  992. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +333 -81
  993. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  994. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js +107 -0
  995. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js.map +1 -0
  996. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js +34 -0
  997. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js.map +1 -0
  998. package/packages/ai/src/lib/dataStructureChunking.js +130 -0
  999. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -0
  1000. package/packages/ai/src/lib/e2eDataTracking.js +241 -0
  1001. package/packages/ai/src/lib/e2eDataTracking.js.map +1 -0
  1002. package/packages/ai/src/lib/extractCriticalDataKeys.js +96 -0
  1003. package/packages/ai/src/lib/extractCriticalDataKeys.js.map +1 -0
  1004. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +4 -3
  1005. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  1006. package/packages/ai/src/lib/generateChangesEntityScenarios.js +78 -120
  1007. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  1008. package/packages/ai/src/lib/generateEntityDataStructure.js +47 -2
  1009. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  1010. package/packages/ai/src/lib/generateEntityScenarioData.js +1153 -60
  1011. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  1012. package/packages/ai/src/lib/generateEntityScenarios.js +177 -163
  1013. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  1014. package/packages/ai/src/lib/generateExecutionFlows.js +484 -0
  1015. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
  1016. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
  1017. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
  1018. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +1807 -0
  1019. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
  1020. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
  1021. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js.map +1 -0
  1022. package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -2
  1023. package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
  1024. package/packages/ai/src/lib/isolateScopes.js +270 -7
  1025. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  1026. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
  1027. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
  1028. package/packages/ai/src/lib/mergeStatements.js +88 -46
  1029. package/packages/ai/src/lib/mergeStatements.js.map +1 -1
  1030. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
  1031. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
  1032. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +10 -4
  1033. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  1034. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +1 -1
  1035. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  1036. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +21 -119
  1037. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  1038. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js +54 -0
  1039. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js.map +1 -0
  1040. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +83 -6
  1041. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  1042. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +10 -70
  1043. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  1044. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
  1045. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
  1046. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +9 -9
  1047. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
  1048. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js +335 -0
  1049. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js.map +1 -0
  1050. package/packages/ai/src/lib/resolvePathToControllable.js +677 -0
  1051. package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
  1052. package/packages/ai/src/lib/splitOutsideParentheses.js +3 -1
  1053. package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -1
  1054. package/packages/ai/src/lib/worker/SerializableDataStructure.js +29 -0
  1055. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  1056. package/packages/ai/src/lib/worker/analyzeScopeWorker.js +94 -1
  1057. package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
  1058. package/packages/analyze/index.js +1 -0
  1059. package/packages/analyze/index.js.map +1 -1
  1060. package/packages/analyze/src/lib/FileAnalyzer.js +60 -36
  1061. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  1062. package/packages/analyze/src/lib/ProjectAnalyzer.js +109 -30
  1063. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  1064. package/packages/analyze/src/lib/analysisContext.js +30 -5
  1065. package/packages/analyze/src/lib/analysisContext.js.map +1 -1
  1066. package/packages/analyze/src/lib/asts/index.js +4 -2
  1067. package/packages/analyze/src/lib/asts/index.js.map +1 -1
  1068. package/packages/analyze/src/lib/asts/nodes/getNodeType.js +1 -0
  1069. package/packages/analyze/src/lib/asts/nodes/getNodeType.js.map +1 -1
  1070. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +14 -0
  1071. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -1
  1072. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +14 -0
  1073. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -1
  1074. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +6 -0
  1075. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
  1076. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +6 -0
  1077. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -1
  1078. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +39 -1
  1079. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -1
  1080. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +2 -1
  1081. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -1
  1082. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +189 -41
  1083. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  1084. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +28 -4
  1085. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  1086. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +9 -0
  1087. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  1088. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +2 -1
  1089. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  1090. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +31 -10
  1091. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  1092. package/packages/analyze/src/lib/files/analyzeChange.js +10 -10
  1093. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  1094. package/packages/analyze/src/lib/files/analyzeEntity.js +4 -4
  1095. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  1096. package/packages/analyze/src/lib/files/analyzeInitial.js +9 -10
  1097. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  1098. package/packages/analyze/src/lib/files/analyzeRemixRoute.js +3 -2
  1099. package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
  1100. package/packages/analyze/src/lib/files/enums/steps.js +1 -1
  1101. package/packages/analyze/src/lib/files/enums/steps.js.map +1 -1
  1102. package/packages/analyze/src/lib/files/getImportedExports.js +11 -7
  1103. package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
  1104. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +907 -0
  1105. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
  1106. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +164 -68
  1107. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
  1108. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +178 -31
  1109. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  1110. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +29 -129
  1111. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
  1112. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +252 -21
  1113. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  1114. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +104 -0
  1115. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
  1116. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +1 -0
  1117. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  1118. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +2 -3
  1119. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  1120. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +686 -55
  1121. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  1122. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +46 -9
  1123. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -1
  1124. package/packages/analyze/src/lib/files/setImportedExports.js +2 -1
  1125. package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -1
  1126. package/packages/analyze/src/lib/index.js +1 -0
  1127. package/packages/analyze/src/lib/index.js.map +1 -1
  1128. package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
  1129. package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
  1130. package/packages/database/index.js +1 -0
  1131. package/packages/database/index.js.map +1 -1
  1132. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  1133. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  1134. package/packages/database/src/lib/analysisToDb.js +1 -1
  1135. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  1136. package/packages/database/src/lib/branchToDb.js +1 -1
  1137. package/packages/database/src/lib/branchToDb.js.map +1 -1
  1138. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  1139. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  1140. package/packages/database/src/lib/commitToDb.js +1 -1
  1141. package/packages/database/src/lib/commitToDb.js.map +1 -1
  1142. package/packages/database/src/lib/fileToDb.js +1 -1
  1143. package/packages/database/src/lib/fileToDb.js.map +1 -1
  1144. package/packages/database/src/lib/kysely/db.js +16 -1
  1145. package/packages/database/src/lib/kysely/db.js.map +1 -1
  1146. package/packages/database/src/lib/kysely/tables/commitsTable.js +3 -0
  1147. package/packages/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  1148. package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  1149. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +149 -0
  1150. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  1151. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  1152. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  1153. package/packages/database/src/lib/loadAnalyses.js +45 -2
  1154. package/packages/database/src/lib/loadAnalyses.js.map +1 -1
  1155. package/packages/database/src/lib/loadAnalysis.js +8 -0
  1156. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  1157. package/packages/database/src/lib/loadBranch.js +11 -1
  1158. package/packages/database/src/lib/loadBranch.js.map +1 -1
  1159. package/packages/database/src/lib/loadCommit.js +7 -0
  1160. package/packages/database/src/lib/loadCommit.js.map +1 -1
  1161. package/packages/database/src/lib/loadCommits.js +45 -14
  1162. package/packages/database/src/lib/loadCommits.js.map +1 -1
  1163. package/packages/database/src/lib/loadEntities.js +23 -10
  1164. package/packages/database/src/lib/loadEntities.js.map +1 -1
  1165. package/packages/database/src/lib/loadEntityBranches.js +9 -0
  1166. package/packages/database/src/lib/loadEntityBranches.js.map +1 -1
  1167. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +5 -5
  1168. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  1169. package/packages/database/src/lib/projectToDb.js +1 -1
  1170. package/packages/database/src/lib/projectToDb.js.map +1 -1
  1171. package/packages/database/src/lib/saveFiles.js +1 -1
  1172. package/packages/database/src/lib/saveFiles.js.map +1 -1
  1173. package/packages/database/src/lib/scenarioToDb.js +1 -1
  1174. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  1175. package/packages/database/src/lib/updateCommitMetadata.js +76 -89
  1176. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  1177. package/packages/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  1178. package/packages/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  1179. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  1180. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  1181. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
  1182. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
  1183. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  1184. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  1185. package/packages/types/index.js +0 -1
  1186. package/packages/types/index.js.map +1 -1
  1187. package/packages/types/src/enums/ProjectFramework.js +2 -0
  1188. package/packages/types/src/enums/ProjectFramework.js.map +1 -1
  1189. package/packages/types/src/types/Scenario.js +1 -21
  1190. package/packages/types/src/types/Scenario.js.map +1 -1
  1191. package/packages/utils/src/lib/fs/rsyncCopy.js +98 -3
  1192. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  1193. package/packages/utils/src/lib/safeFileName.js +29 -3
  1194. package/packages/utils/src/lib/safeFileName.js.map +1 -1
  1195. package/scripts/npm-post-install.cjs +34 -0
  1196. package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +0 -109
  1197. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +0 -584
  1198. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +0 -341
  1199. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +0 -495
  1200. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +0 -67
  1201. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +0 -120
  1202. package/codeyam-cli/src/commands/detect-universal-mocks.js +0 -118
  1203. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +0 -1
  1204. package/codeyam-cli/src/commands/list.js +0 -31
  1205. package/codeyam-cli/src/commands/list.js.map +0 -1
  1206. package/codeyam-cli/src/commands/webapp-info.js +0 -146
  1207. package/codeyam-cli/src/commands/webapp-info.js.map +0 -1
  1208. package/codeyam-cli/src/utils/universal-mocks.js +0 -152
  1209. package/codeyam-cli/src/utils/universal-mocks.js.map +0 -1
  1210. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-Cmysw5OP.js +0 -1
  1211. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-DLqD3qNt.js +0 -1
  1212. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-CAneekK2.js +0 -41
  1213. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-Cu16OUmx.js +0 -25
  1214. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-CVtiBnY5.js +0 -3
  1215. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-DcAUIpD_.js +0 -11
  1216. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-DuDvi0jm.js +0 -1
  1217. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-BMKg0SAF.js +0 -15
  1218. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-DyFZkK0l.js +0 -1
  1219. package/codeyam-cli/src/webserver/build/client/assets/_index-DSmTpjmK.js +0 -11
  1220. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-BF_aK4y6.js +0 -32
  1221. package/codeyam-cli/src/webserver/build/client/assets/chunk-EPOLDU6W-CXRTFQ3F.js +0 -51
  1222. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-BdhJEx6B.js +0 -21
  1223. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-CKnwPCDr.js +0 -1
  1224. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-RJCf3Tvw.js +0 -1
  1225. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-EylcgScH.js +0 -1
  1226. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DMe7kvgo.js +0 -1
  1227. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-DMJ7zii9.js +0 -1
  1228. package/codeyam-cli/src/webserver/build/client/assets/files-BW7Cyeyi.js +0 -1
  1229. package/codeyam-cli/src/webserver/build/client/assets/git-CZu4fif0.js +0 -15
  1230. package/codeyam-cli/src/webserver/build/client/assets/globals-wHVy_II5.css +0 -1
  1231. package/codeyam-cli/src/webserver/build/client/assets/keyAttributeCoverage-CTlFMihX.js +0 -1
  1232. package/codeyam-cli/src/webserver/build/client/assets/manifest-2d191949.js +0 -1
  1233. package/codeyam-cli/src/webserver/build/client/assets/root-FHgpM6gc.js +0 -56
  1234. package/codeyam-cli/src/webserver/build/client/assets/settings-6D8k8Jp5.js +0 -1
  1235. package/codeyam-cli/src/webserver/build/client/assets/simulations-CDJZnWhN.js +0 -1
  1236. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-Dv18q8LD.js +0 -1
  1237. package/codeyam-cli/src/webserver/build/client/assets/useInteractiveMode-0ToGk4K3.js +0 -1
  1238. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-aSv48UbS.js +0 -2
  1239. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-1BX144Eg.js +0 -1
  1240. package/codeyam-cli/src/webserver/build/client/assets/useToast-mBRpZPiu.js +0 -1
  1241. package/codeyam-cli/src/webserver/build/server/assets/index-pU0o5t1o.js +0 -1
  1242. package/codeyam-cli/src/webserver/build/server/assets/server-build-YzfkRwdn.js +0 -178
  1243. package/codeyam-cli/templates/codeyam-stop-hook.sh +0 -284
  1244. package/codeyam-cli/templates/debug-codeyam.md +0 -625
  1245. package/packages/ai/src/lib/findMatchingAttribute.js +0 -81
  1246. package/packages/ai/src/lib/findMatchingAttribute.js.map +0 -1
  1247. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +0 -425
  1248. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +0 -1
  1249. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +0 -267
  1250. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +0 -1
  1251. package/packages/ai/src/lib/generateEntityKeyAttributes.js +0 -408
  1252. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +0 -1
  1253. package/packages/ai/src/lib/isFrontend.js +0 -5
  1254. package/packages/ai/src/lib/isFrontend.js.map +0 -1
  1255. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +0 -40
  1256. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +0 -1
  1257. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +0 -77
  1258. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +0 -1
  1259. package/scripts/finalize-analyzer.cjs +0 -81
  1260. /package/codeyam-cli/src/webserver/build/client/assets/{api.link-scenario-value-l0sNRNKZ.js → api.agent-transcripts-l0sNRNKZ.js} +0 -0
  1261. /package/codeyam-cli/src/webserver/build/client/assets/{api.update-key-attributes-l0sNRNKZ.js → api.dev-mode-events-l0sNRNKZ.js} +0 -0
  1262. /package/codeyam-cli/src/webserver/build/client/assets/{api.update-valid-values-l0sNRNKZ.js → api.editor-audit-l0sNRNKZ.js} +0 -0
@@ -225,6 +225,18 @@ function isValidKey(key) {
225
225
  return false;
226
226
  return !/\s/.test(keyWithOutArguments);
227
227
  }
228
+ /**
229
+ * Known hooks that return tuples [value, setter] instead of arrays.
230
+ * These should NOT use the .map() pattern even when the schema has generic array access ([]).
231
+ * Instead, they should return [data, () => {}] where data is from scenarios().
232
+ */
233
+ const TUPLE_RETURNING_HOOKS = new Set([
234
+ 'useAtom', // Jotai
235
+ 'useState', // React
236
+ 'useReducer', // React
237
+ 'useRecoilState', // Recoil
238
+ 'useImmerAtom', // Jotai with Immer
239
+ ]);
228
240
  export default function constructMockCode(mockName, dependencySchemas, entityType, _canonicalKey, // DEPRECATED: No longer used, kept for API compatibility
229
241
  options) {
230
242
  // Check if mockName is a call signature (e.g., "useFetcher<User>()", "db.select(query)")
@@ -245,7 +257,8 @@ options) {
245
257
  let dataStructureValue;
246
258
  let foundEntityWithSignature = false;
247
259
  let signatureSchema;
248
- for (const filePath in dependencySchemas) {
260
+ let baseSchemaHasMethodCalls = false;
261
+ entitySearch: for (const filePath in dependencySchemas) {
249
262
  for (const entityName in dependencySchemas[filePath]) {
250
263
  // Match entity by base name (without generics/args)
251
264
  const entityBaseName = entityName.split(/[<(]/)[0];
@@ -269,15 +282,51 @@ options) {
269
282
  pathParts[mockNameParts.length - 1].startsWith(mockNameParts[mockNameParts.length - 1]));
270
283
  });
271
284
  if (dataStructurePath) {
285
+ // Start with the base entity's return value schema
286
+ const baseReturnValueSchema = dependencySchemas[filePath][entityName]?.returnValueSchema;
287
+ const mergedSchema = {
288
+ ...baseReturnValueSchema,
289
+ };
290
+ // Check if the base schema has method-call entries (e.g., .map().functionCallReturnValue)
291
+ // When it does, the scenario data is stored as an object with method keys, and
292
+ // array prototype methods need mock implementations. When it doesn't, the data
293
+ // is a raw array and native methods like .includes() work directly.
294
+ if (baseReturnValueSchema) {
295
+ baseSchemaHasMethodCalls = Object.keys(baseReturnValueSchema).some((k) => k.startsWith(baseMockName + '.') &&
296
+ k.includes('(') &&
297
+ k.includes('.functionCallReturnValue'));
298
+ }
299
+ // Merge in method-call dependencies that are separate entries.
300
+ // e.g., "activityTypes.find((a) => a.value === type)" is a separate dependency
301
+ // for a .find() call on activityTypes. We need to include these with a
302
+ // .functionCallReturnValue path so constructMockCode generates callable mock methods.
303
+ for (const otherEntityName in dependencySchemas[filePath]) {
304
+ if (otherEntityName === entityName)
305
+ continue;
306
+ if (otherEntityName.startsWith(baseMockName + '.') &&
307
+ otherEntityName.includes('(')) {
308
+ // Add a functionCallReturnValue entry for this method call.
309
+ // This ensures constructMockCode treats it as a function that returns data,
310
+ // generating a proper mock method with data lookup.
311
+ const fcrvPath = `${otherEntityName}.functionCallReturnValue`;
312
+ if (!mergedSchema[fcrvPath]) {
313
+ // Infer the return type from the method-call dependency's schema
314
+ const otherSchema = dependencySchemas[filePath][otherEntityName]?.returnValueSchema;
315
+ // Look for element type (baseMockName[]) or fall back to 'unknown'
316
+ const elementType = otherSchema?.[`${baseMockName}[]`];
317
+ mergedSchema[fcrvPath] = elementType || 'unknown';
318
+ }
319
+ }
320
+ }
272
321
  relevantReturnValueSchema = fillInDirectSchemaGapsAndUnknowns({
273
- schema: dependencySchemas[filePath][entityName]?.returnValueSchema,
322
+ schema: mergedSchema,
274
323
  });
275
324
  // NOTE: clearAttributesFromMapping is disabled because it deletes
276
325
  // method calls on arrays (like .eq() after functionCallReturnValue: 'array')
277
326
  // However, we still need to remove duplicate function calls that create invalid syntax
278
327
  removeDuplicateFunctionCalls(relevantReturnValueSchema);
279
328
  dataStructureValue = relevantReturnValueSchema?.[dataStructurePath];
280
- break;
329
+ break entitySearch;
281
330
  }
282
331
  }
283
332
  }
@@ -340,7 +389,10 @@ options) {
340
389
  args.push('...rest');
341
390
  const argsString = args.join(', ');
342
391
  // Generate empty mock function
343
- return `function ${mockName}(${argsString}) {
392
+ // Use baseMockName (not mockName) because mockName may contain a full call
393
+ // signature with argument expressions (e.g., "logSignOutAction(sessionUser.id, ...)")
394
+ // which would produce invalid syntax as function parameter names.
395
+ return `function ${baseMockName}(${argsString}) {
344
396
  // Empty mock - original function mocked out
345
397
  }`;
346
398
  }
@@ -379,12 +431,12 @@ options) {
379
431
  : false;
380
432
  if (firstArgIsFunctionOrUnknown && returnsFunction) {
381
433
  // HOC pattern detected - return the first argument
382
- return `function ${mockName}(${argsString}) {
434
+ return `function ${baseMockName}(${argsString}) {
383
435
  return arg1;
384
436
  }`;
385
437
  }
386
438
  // Generate empty mock function
387
- return `function ${mockName}(${argsString}) {
439
+ return `function ${baseMockName}(${argsString}) {
388
440
  // Empty mock - original function mocked out
389
441
  }`;
390
442
  }
@@ -399,6 +451,87 @@ options) {
399
451
  const pathDepth = splitOutsideParenthesesAndArrays(dataStructurePath).length;
400
452
  const isRootArray = dataStructureValue === 'array' &&
401
453
  (dataStructurePath === 'returnValue' || pathDepth <= mockNameParts.length);
454
+ // OPTIMIZATION: Early return for tuple-returning hooks (useAtom, useState, etc.)
455
+ // These hooks have simple [value, setter] return patterns that don't need the full
456
+ // 9216-key schema processing. Check if this is a tuple-returning hook and generate
457
+ // the mock code directly without iterating over all schema keys.
458
+ if (TUPLE_RETURNING_HOOKS.has(baseMockName) && isFunction) {
459
+ // Check if schema has generic array pattern (indicates tuple return like [value, setter])
460
+ const schemaKeys = Object.keys(relevantReturnValueSchema ?? {});
461
+ const hasGenericArrayInSchema = schemaKeys.some((k) => k.includes('.functionCallReturnValue[]') ||
462
+ k === `${dataKey}.functionCallReturnValue[]` ||
463
+ k === 'returnValue[]');
464
+ // Check for differentiated tuple indices (e.g., functionCallReturnValue[2], [3]) which would NOT be a standard tuple
465
+ // We only check indices immediately after functionCallReturnValue, not nested indices like signature[2]
466
+ const tupleHasDifferentiatedIndices = schemaKeys.some((k) => {
467
+ // Look for .functionCallReturnValue[N] where N >= 2
468
+ const match = k.match(/\.functionCallReturnValue\[(\d+)\]/);
469
+ if (!match)
470
+ return false;
471
+ const idx = parseInt(match[1], 10);
472
+ return idx >= 2;
473
+ });
474
+ const isTupleReturningHook = hasGenericArrayInSchema && !tupleHasDifferentiatedIndices;
475
+ if (isTupleReturningHook) {
476
+ // Find all call patterns for this hook (e.g., useAtom(quoteFilterAtom), useAtom(supplierAtom))
477
+ const hookCallPatterns = Object.keys(relevantReturnValueSchema ?? {})
478
+ .filter((k) => {
479
+ const regex = new RegExp(`^${baseMockName}\\([^)]+\\)$`);
480
+ return regex.test(k);
481
+ })
482
+ .map((k) => {
483
+ const match = k.match(/\(([^)]+)\)/);
484
+ return { key: k, arg: match?.[1] ?? '' };
485
+ });
486
+ let tupleReturnCode;
487
+ if (hookCallPatterns.length > 1) {
488
+ // Multiple patterns - generate conditional dispatch
489
+ const conditions = hookCallPatterns
490
+ .map(({ key, arg }) => `if (argLabel === '${arg}' || argStr.includes('${arg}')) {\n return [scenarios().data()?.["${key}"]?.[0] ?? [], () => {}];\n }`)
491
+ .join('\n ');
492
+ const fallbackKey = hookCallPatterns[0]?.key ?? dataKey;
493
+ tupleReturnCode = `(() => {
494
+ // Dynamic dispatch for tuple-returning hook with multiple argument patterns
495
+ const argLabel = args[0]?.debugLabel ?? '';
496
+ const argStr = args[0]?.toString?.() ?? String(args[0] ?? '');
497
+ ${conditions}
498
+ return [scenarios().data()?.["${fallbackKey}"]?.[0] ?? [], () => {}];
499
+ })()`;
500
+ }
501
+ else {
502
+ // Single or no patterns - use dynamic dispatch
503
+ const fallbackKey = hookCallPatterns[0]?.key ?? `${baseMockName}()`;
504
+ tupleReturnCode = `(() => {
505
+ // Dynamic dispatch for tuple-returning hook
506
+ const argLabel = args[0]?.debugLabel ?? '';
507
+ const argStr = args[0]?.toString?.() ?? '';
508
+ const allData = scenarios().data() ?? {};
509
+ if (argLabel) {
510
+ const labelKey = '${baseMockName}(' + argLabel + ')';
511
+ if (allData[labelKey]) {
512
+ return [allData[labelKey]?.[0] ?? [], () => {}];
513
+ }
514
+ }
515
+ const keys = Object.keys(allData).filter(k => k.startsWith('${baseMockName}('));
516
+ for (const key of keys) {
517
+ const keyArg = key.slice(${baseMockName.length + 1}, -1);
518
+ if (argStr.includes(keyArg)) {
519
+ return [allData[key]?.[0] ?? [], () => {}];
520
+ }
521
+ }
522
+ return [allData[keys[0] ?? '${fallbackKey}']?.[0] ?? [], () => {}];
523
+ })()`;
524
+ }
525
+ const safeFunctionName = options?.uniqueFunctionSuffix
526
+ ? `${baseMockName}_${options.uniqueFunctionSuffix}`
527
+ : options?.keepOriginalFunctionName
528
+ ? baseMockName
529
+ : mockNameIsCallSignature && derivedFunctionName
530
+ ? derivedFunctionName
531
+ : baseMockName;
532
+ return `function ${safeFunctionName}(...args) {\n return ${tupleReturnCode};\n}`;
533
+ }
534
+ }
402
535
  const returnValueParts = {
403
536
  name: dataStructureName,
404
537
  isArray: isRootArray,
@@ -443,17 +576,23 @@ options) {
443
576
  return [];
444
577
  }
445
578
  const addReturnValueFunctionAccessor = (dataPath) => {
446
- // Add function call accessor if:
447
- // - There are actual arguments, OR
448
- // - This is a callable (not a method that returns an array directly)
449
- // For methods like getAll() that return arrays, the data is at ["getAll()"] not ["getAll()"]["()"]
450
579
  if (returnValue.returnsFunctionArgs &&
451
580
  (returnValue.returnsFunctionArgs.length > 0 ||
452
581
  !returnValue.returnsFunctionArray)) {
453
582
  if (returnValue.isArray) {
454
583
  dataPath = `${dataPath}${optionalAccess('[0]')}`;
455
584
  }
456
- dataPath = `${dataPath}${optionalAccess(`(${safeString(returnValue.returnsFunctionArgs.join(', '))})`)}`;
585
+ // Only add the function call accessor ?.["(args)"] when there are actual
586
+ // arguments. When returnsFunctionArgs is empty [] (function-returns-function
587
+ // with no specific arg patterns), skip the ?.["()"] because:
588
+ // 1. preprocessSchemaForMocks collapses nested functionCallReturnValue chains
589
+ // into flat entries (e.g., getTranslate() = string, not {(): string})
590
+ // 2. The mock data is a flat value, so ?.["()"] on a string returns undefined
591
+ // 3. constructContent still wraps the return in a function (via returnsFunctionArgs)
592
+ // so the function-returns-function behavior is preserved without data nesting
593
+ if (returnValue.returnsFunctionArgs.length > 0) {
594
+ dataPath = `${dataPath}${optionalAccess(`(${safeString(returnValue.returnsFunctionArgs.join(', '))})`)}`;
595
+ }
457
596
  }
458
597
  return dataPath;
459
598
  };
@@ -479,20 +618,6 @@ options) {
479
618
  };
480
619
  const constructContent = (dataPaths) => {
481
620
  const { name, args, nested, isArray, isGenericArray, returnsFunctionArgs, returnsFunctionArray, isAsyncFunction, hasNoReturnData, } = returnValue;
482
- // When an array has differentiated indices ([0], [1], etc.), filter out any
483
- // non-index items from nested. These non-index items come from generic [] paths
484
- // like [].filter or [].sort, which describe element properties, not array elements.
485
- // Including them would generate invalid syntax like "sort: ..." inside an array literal.
486
- const hasDifferentiatedIndices = isArray &&
487
- nested &&
488
- nested.some((n) => n.name.match(/^\[\d+\]$/) && n.name !== '[0]');
489
- const filteredNested = hasDifferentiatedIndices && nested
490
- ? nested.filter((n) => n.name.match(/^\[\d+\]$/))
491
- : nested;
492
- const nestedContent = (filteredNested ?? []).map((nestedItem) => {
493
- const nestedContent = constructReturnValueString(nestedItem, dataPaths);
494
- return nestedContent;
495
- });
496
621
  // Array prototype methods that should be ignored when building mocks
497
622
  // (these work on any array - we don't need to mock them)
498
623
  const ARRAY_PROTOTYPE_METHODS = new Set([
@@ -536,6 +661,36 @@ options) {
536
661
  'with',
537
662
  'length',
538
663
  ]);
664
+ // When an array has differentiated indices ([0], [1], etc.), filter out any
665
+ // non-index items from nested. These non-index items come from generic [] paths
666
+ // like [].filter or [].sort, which describe element properties, not array elements.
667
+ // Including them would generate invalid syntax like "sort: ..." inside an array literal.
668
+ const hasDifferentiatedIndices = isArray &&
669
+ nested &&
670
+ nested.some((n) => n.name.match(/^\[\d+\]$/) && n.name !== '[0]');
671
+ let filteredNested = hasDifferentiatedIndices && nested
672
+ ? nested.filter((n) => n.name.match(/^\[\d+\]$/))
673
+ : nested;
674
+ // When a variable IS an array (not a function returning an array),
675
+ // filter out array prototype methods like .includes(), .filter(), etc.
676
+ // ONLY when the base schema has no method-call entries. When the base
677
+ // schema has methods (e.g., .map().functionCallReturnValue), the scenario
678
+ // data is stored as an object with method-call keys, and ALL methods
679
+ // need mock implementations. When the base schema has no methods, the
680
+ // data is a raw array and native methods like .includes() work directly.
681
+ if (isArray &&
682
+ !returnsFunctionArray &&
683
+ !baseSchemaHasMethodCalls &&
684
+ filteredNested) {
685
+ filteredNested = filteredNested.filter((n) => {
686
+ const methodName = n.name.replace(/[<(].*$/, '');
687
+ return !ARRAY_PROTOTYPE_METHODS.has(methodName);
688
+ });
689
+ }
690
+ const nestedContent = (filteredNested ?? []).map((nestedItem) => {
691
+ const nestedContent = constructReturnValueString(nestedItem, dataPaths);
692
+ return nestedContent;
693
+ });
539
694
  const levelContentItems = [];
540
695
  // Add spread for data paths when:
541
696
  // - Not a function returning an array, OR function returns array with custom methods
@@ -679,7 +834,102 @@ options) {
679
834
  return ARRAY_PROTOTYPE_METHODS.has(methodName);
680
835
  });
681
836
  let returnValueContents = '';
682
- if (!returnsFunctionArgs &&
837
+ // Check if this is a known tuple-returning hook (useAtom, useState, etc.)
838
+ // These should return [value, setter] tuples, not arrays or data paths
839
+ // Check isGenericArray from current context OR from schema for root level calls
840
+ // (at root level, isGenericArray might not be set yet but the schema contains [] pattern)
841
+ const hasGenericArrayInSchema = root &&
842
+ TUPLE_RETURNING_HOOKS.has(baseMockName) &&
843
+ Object.keys(relevantReturnValueSchema ?? {}).some((k) => k.includes('.functionCallReturnValue[]'));
844
+ // Check if there are array indices beyond what a standard 2-element tuple would have
845
+ // For tuple-returning hooks, [0] and [1] are expected (value and setter)
846
+ // Only consider it "differentiated" if there are indices >= 2 (e.g., [2], [3])
847
+ const tupleHasDifferentiatedIndices = nested?.some((n) => {
848
+ const indexMatch = n.name.match(/^\[(\d+)\]$/);
849
+ if (!indexMatch)
850
+ return false;
851
+ const index = parseInt(indexMatch[1], 10);
852
+ return index >= 2;
853
+ });
854
+ const isTupleReturningHook = TUPLE_RETURNING_HOOKS.has(baseMockName) &&
855
+ (isGenericArray || hasGenericArrayInSchema) &&
856
+ !tupleHasDifferentiatedIndices;
857
+ // Debug logging for tuple-returning hooks
858
+ if (TUPLE_RETURNING_HOOKS.has(baseMockName) && root) {
859
+ const schemaKeys = Object.keys(relevantReturnValueSchema ?? {});
860
+ const hasArrayPattern = schemaKeys.some((k) => k.includes('.functionCallReturnValue[]'));
861
+ console.log(`CodeYam: Tuple hook check for ${baseMockName} (root):`, `hasGenericArrayInSchema=${hasGenericArrayInSchema}`, `hasArrayPattern=${hasArrayPattern}`, `tupleHasDifferentiatedIndices=${tupleHasDifferentiatedIndices}`, `isTupleReturningHook=${isTupleReturningHook}`, `schemaKeysSample=${schemaKeys.slice(0, 5).join(', ')}`);
862
+ }
863
+ if (isTupleReturningHook) {
864
+ // Tuple-returning hooks should return [value, setter] tuple
865
+ // The value is the first element from scenarios data, setter is a no-op
866
+ // Default to [] when data is undefined to prevent errors like ".includes is not a function"
867
+ // Check if there are multiple call patterns for this hook in the schema
868
+ // (e.g., useAtom(quoteFilterAtom) and useAtom(supplierAtom))
869
+ const hookCallPatterns = Object.keys(relevantReturnValueSchema ?? {})
870
+ .filter((k) => {
871
+ // Match patterns like "useAtom(someArg)" but not nested paths like "useAtom(x).foo"
872
+ const regex = new RegExp(`^${baseMockName}\\([^)]+\\)$`);
873
+ return regex.test(k);
874
+ })
875
+ .map((k) => {
876
+ // Extract the argument from the key like "useAtom(quoteFilterAtom)" -> "quoteFilterAtom"
877
+ const match = k.match(/\(([^)]+)\)/);
878
+ return { key: k, arg: match?.[1] ?? '' };
879
+ });
880
+ if (hookCallPatterns.length > 1) {
881
+ // Multiple patterns - generate conditional dispatch based on first argument
882
+ // For Jotai atoms, we use debugLabel; for others, we try to match the argument string
883
+ const conditions = hookCallPatterns
884
+ .map(({ key, arg }) => `if (argLabel === '${arg}' || argStr.includes('${arg}')) {\n return [scenarios().data()?.["${key}"]?.[0] ?? [], () => {}];\n }`)
885
+ .join('\n ');
886
+ // Use the first pattern as fallback
887
+ const fallbackKey = hookCallPatterns[0]?.key ?? dataKey;
888
+ returnValueContents = `(() => {
889
+ // Dynamic dispatch for tuple-returning hook with multiple argument patterns
890
+ const argLabel = args[0]?.debugLabel ?? '';
891
+ const argStr = args[0]?.toString?.() ?? String(args[0] ?? '');
892
+ ${conditions}
893
+ // Fallback to first pattern
894
+ return [scenarios().data()?.["${fallbackKey}"]?.[0] ?? [], () => {}];
895
+ })()`;
896
+ }
897
+ else {
898
+ // Single pattern or no patterns - use dynamic dispatch to handle case where
899
+ // the mock is used with different atoms than what was captured in the schema.
900
+ // Use the first argument to construct the data key dynamically.
901
+ const fallbackKey = hookCallPatterns[0]?.key ?? `${baseMockName}()`;
902
+ returnValueContents = `(() => {
903
+ // Dynamic dispatch for tuple-returning hook
904
+ // Try to construct key from argument's debugLabel (Jotai atoms) or toString
905
+ const argLabel = args[0]?.debugLabel ?? '';
906
+ const argStr = args[0]?.toString?.() ?? '';
907
+ const allData = scenarios().data() ?? {};
908
+
909
+ // Try to find a matching key using debugLabel first
910
+ if (argLabel) {
911
+ const labelKey = '${baseMockName}(' + argLabel + ')';
912
+ if (allData[labelKey]) {
913
+ return [allData[labelKey]?.[0] ?? [], () => {}];
914
+ }
915
+ }
916
+
917
+ // Try to find any matching key that contains part of the argument string
918
+ const keys = Object.keys(allData).filter(k => k.startsWith('${baseMockName}('));
919
+ for (const key of keys) {
920
+ const keyArg = key.slice(${baseMockName.length + 1}, -1);
921
+ if (argStr.includes(keyArg)) {
922
+ return [allData[key]?.[0] ?? [], () => {}];
923
+ }
924
+ }
925
+
926
+ // Fallback to first matching key or default
927
+ const fallback = keys[0] ?? '${fallbackKey}';
928
+ return [allData[fallback]?.[0] ?? [], () => {}];
929
+ })()`;
930
+ }
931
+ }
932
+ else if (!returnsFunctionArgs &&
683
933
  nestedContent.length === 0 &&
684
934
  dataPaths.length === 1) {
685
935
  returnValueContents = dataPaths[0];
@@ -769,11 +1019,19 @@ options) {
769
1019
  // Valid patterns where arrow function is NOT bare:
770
1020
  // 1. Property value: "key: (arg) => ..." - ends with ':'
771
1021
  // 2. Function argument: ".map((arg) => ..." - ends with '('
1022
+ // 3. Method call: "?.map" followed directly by the arrow function
1023
+ // In this case, the '(' is consumed by the arrow function regex match,
1024
+ // so beforeTrimmed ends with the method name (e.g., 'map'), not '('.
1025
+ // We detect this by checking if beforeTrimmed ends with an identifier
1026
+ // that could be a method name (preceded by '.' or '?.').
772
1027
  // NOTE: We don't include ',' because "{ prop, () => {} }" is invalid
773
1028
  // (can't distinguish function argument from object property context)
774
1029
  const isPropertyValue = beforeTrimmed.endsWith(':');
775
1030
  const isFunctionArg = beforeTrimmed.endsWith('(');
776
- const hasPropertyName = isPropertyValue || isFunctionArg;
1031
+ // Check if before ends with a method call pattern like ".map" or "?.map"
1032
+ // The '(' after the method name is consumed by the arrow function regex
1033
+ const isMethodCallArg = /\??\.\w+$/.test(beforeTrimmed);
1034
+ const hasPropertyName = isPropertyValue || isFunctionArg || isMethodCallArg;
777
1035
  if (!hasPropertyName) {
778
1036
  // This is a bare arrow function - filter it out
779
1037
  // Found arrow function start, need to find its end
@@ -974,6 +1232,16 @@ options) {
974
1232
  returnValueContents = `${arrayBasePath}?.map((__item__, __idx__) => (\n${indent(trimmedContent)}\n))`;
975
1233
  }
976
1234
  else {
1235
+ // When generating object-wrapped .map(), ensure original item data is preserved.
1236
+ // If no data spread was included (e.g., because this is a plain array property,
1237
+ // not a function return), add ...__item__ to spread the original item properties.
1238
+ // Without this, the .map() would create new objects with only nested function
1239
+ // properties, losing data like filePath, frontmatter, body, etc.
1240
+ const hasDataSpread = mappedContents.includes('...scenarios()') ||
1241
+ mappedContents.includes('...__item__');
1242
+ if (!hasDataSpread) {
1243
+ mappedContents = `...__item__,\n${mappedContents}`;
1244
+ }
977
1245
  returnValueContents = `${arrayBasePath}?.map((__item__, __idx__) => ({\n${indent(mappedContents)}\n}))`;
978
1246
  }
979
1247
  } // Close the empty content check else block
@@ -984,10 +1252,12 @@ options) {
984
1252
  // Pattern: "{ ...spread, props },\nfilter: ...,\nsort: ..."
985
1253
  // Should become: "{ ...spread, props, filter: ..., sort: ... }"
986
1254
  const trimmed = mappedContents.trim();
987
- // Find first }, that is NOT inside a string literal
1255
+ // Find first }, at depth 0 that is NOT inside a string literal
988
1256
  // This prevents splitting keys like ?.["useQuery({ id }, { enabled })"]
1257
+ // and also prevents finding }, inside nested arrow functions
989
1258
  const findBraceCommaOutsideStrings = (content) => {
990
1259
  let i = 0;
1260
+ let depth = 0; // Track brace depth to find the outer object's },
991
1261
  while (i < content.length - 1) {
992
1262
  // Skip over string literals
993
1263
  const strEnd = skipStringLiteral(content, i);
@@ -995,9 +1265,22 @@ options) {
995
1265
  i = strEnd;
996
1266
  continue;
997
1267
  }
998
- // Check for }, pattern
999
- if (content[i] === '}' && content[i + 1] === ',') {
1000
- return i;
1268
+ // Track brace depth
1269
+ if (content[i] === '{') {
1270
+ depth++;
1271
+ i++;
1272
+ continue;
1273
+ }
1274
+ // Check for }, pattern at depth 1 (the outer object level)
1275
+ // We're looking for the outer object's closing brace, which is at depth 1
1276
+ // (we started at depth 0, opened { at depth 0 -> 1)
1277
+ if (content[i] === '}') {
1278
+ depth--;
1279
+ if (depth === 0 &&
1280
+ i + 1 < content.length &&
1281
+ content[i + 1] === ',') {
1282
+ return i;
1283
+ }
1001
1284
  }
1002
1285
  i++;
1003
1286
  }
@@ -1020,6 +1303,13 @@ options) {
1020
1303
  mappedContents = filterOutArrowFunctions(mappedContents);
1021
1304
  mappedContents = filterOutBareObjects(mappedContents, true);
1022
1305
  mappedContents = cleanupContent(mappedContents);
1306
+ // Same as needsWrapper branch: ensure item data is preserved in .map()
1307
+ const hasDataSpreadInner = mappedContents.includes('...scenarios()') ||
1308
+ mappedContents.includes('...__item__');
1309
+ if (!hasDataSpreadInner && mappedContents.trim().length > 0) {
1310
+ // Insert ...__item__ after the opening brace
1311
+ mappedContents = mappedContents.replace(/^\s*\{/, '{\n...__item__,');
1312
+ }
1023
1313
  returnValueContents = `${arrayBasePath}?.map((__item__, __idx__) => (\n${indent(mappedContents)}\n))`;
1024
1314
  }
1025
1315
  }
@@ -1028,7 +1318,36 @@ options) {
1028
1318
  }
1029
1319
  }
1030
1320
  else {
1031
- returnValueContents = `{\n${indent(levelContents)}\n}`;
1321
+ // When we have a single data path and nested content that creates an object structure,
1322
+ // and we're NOT at the root level, we need to handle the case where the parent data
1323
+ // value is null or undefined. Without this check, `{ ...null, prop: null?.["prop"] }`
1324
+ // creates `{ prop: undefined }` instead of `null`, causing errors like
1325
+ // "Cannot read properties of undefined (reading 'some')" when code does
1326
+ // data?.prop.some(...) because data is an object with prop: undefined, not null.
1327
+ // We only apply this to non-root cases because root-level mocks are expected to exist.
1328
+ // We also skip structural elements (like [0] inside arrays) because the null check
1329
+ // syntax doesn't work inside .map() callbacks where structural elements are used.
1330
+ // We also skip array index elements ([0], [1], etc.) because they represent tuple/array
1331
+ // elements, not properties that could be null.
1332
+ // We also only apply this when we're inside a function return value context - i.e.,
1333
+ // when the data path contains a function call pattern like ?.["someFunction(...)"].
1334
+ // This prevents adding null checks to intermediate objects in chains like supabase.auth.
1335
+ const hasNestedContent = nestedContent.filter(Boolean).length > 0;
1336
+ const isArrayIndexElement = name.match(/^\[\d*\]$/);
1337
+ // Check if data path contains a function call pattern, indicating we're inside a function return value
1338
+ const isInsideFunctionReturnValue = dataPaths.length === 1 &&
1339
+ dataPaths[0].match(/\?\.\["\w+\([^"]*\)"\]/);
1340
+ if (!root &&
1341
+ !returnValue.isStructural &&
1342
+ !isArrayIndexElement &&
1343
+ isInsideFunctionReturnValue &&
1344
+ hasNestedContent) {
1345
+ // Wrap with null check: if parent is null/undefined, return it directly; otherwise create object
1346
+ returnValueContents = `${dataPaths[0]} == null ? ${dataPaths[0]} : {\n${indent(levelContents)}\n}`;
1347
+ }
1348
+ else {
1349
+ returnValueContents = `{\n${indent(levelContents)}\n}`;
1350
+ }
1032
1351
  }
1033
1352
  }
1034
1353
  if (root) {
@@ -1103,20 +1422,39 @@ options) {
1103
1422
  content = `${cleanOutTypes(name)}: ${isAsyncFunction ? 'async ' : ''}(${argsString}) => {\n${indent(funcContents)}\n}`;
1104
1423
  }
1105
1424
  else {
1106
- // No argument variants - use existing behavior
1107
- // But if there's nested content, we need to include it in the return object
1108
- // (similar to how argument variant branches handle this at line 1070-1072)
1109
- const hasNestedContent = validNestedContent.length > 0;
1110
- let funcReturnContents;
1111
- if (hasNestedContent && levelContentItems.length > 1) {
1112
- // Include both spread and nested content in the return
1113
- funcReturnContents = `{\n${indent(levelContents)}\n}`;
1425
+ // No argument variants
1426
+ // Check if this is an array method callback containing JSX.
1427
+ // JSX can't be serialized to JSON, so the LLM generates [{}] as data.
1428
+ // Instead of returning that unusable data, generate a passthrough that
1429
+ // calls the real callback on the best available array data from siblings.
1430
+ const containsJsx = dataPaths.some((p) => /<[A-Z]/.test(p));
1431
+ const isArrayMethod = ARRAY_PROTOTYPE_METHODS.has(name);
1432
+ if (containsJsx && isArrayMethod && dataPaths.length > 0) {
1433
+ // Extract parent data path by removing the last ?.["..."] segment
1434
+ const parentPath = dataPaths[0].replace(/\?\.\["[^"]*"\]$/, '');
1435
+ const funcLines = [
1436
+ `const _d = ${parentPath};`,
1437
+ `const _a = Object.values(_d || {}).filter(v => Array.isArray(v) && v.length > 0 && v.some(i => i && typeof i === "object" && Object.keys(i).length > 0)).sort((a, b) => b.length - a.length);`,
1438
+ `return _a[0] ? _a[0].${name}(${argsString}) : []`,
1439
+ ];
1440
+ const funcContents = funcLines.join('\n');
1441
+ content = `${cleanOutTypes(name)}: ${isAsyncFunction ? 'async ' : ''}(${argsString}) => {\n${indent(funcContents)}\n}`;
1114
1442
  }
1115
1443
  else {
1116
- funcReturnContents = returnValueContents;
1444
+ // But if there's nested content, we need to include it in the return object
1445
+ // (similar to how argument variant branches handle this at line 1070-1072)
1446
+ const hasNestedContent = validNestedContent.length > 0;
1447
+ let funcReturnContents;
1448
+ if (hasNestedContent && levelContentItems.length > 1) {
1449
+ // Include both spread and nested content in the return
1450
+ funcReturnContents = `{\n${indent(levelContents)}\n}`;
1451
+ }
1452
+ else {
1453
+ funcReturnContents = returnValueContents;
1454
+ }
1455
+ const funcContents = `return ${funcReturnContents}`;
1456
+ content = `${cleanOutTypes(name)}: ${isAsyncFunction ? 'async ' : ''}(${argsString}) => {\n${indent(funcContents)}\n}`;
1117
1457
  }
1118
- const funcContents = `return ${funcReturnContents}`;
1119
- content = `${cleanOutTypes(name)}: ${isAsyncFunction ? 'async ' : ''}(${argsString}) => {\n${indent(funcContents)}\n}`;
1120
1458
  }
1121
1459
  }
1122
1460
  else {
@@ -1143,7 +1481,31 @@ options) {
1143
1481
  return content;
1144
1482
  };
1145
1483
  // Create the return value structure
1146
- const sortedKeys = Object.keys(relevantReturnValueSchema ?? {}).sort((a, b) => {
1484
+ // OPTIMIZATION: Filter keys to only those starting with baseMockName before sorting.
1485
+ // This dramatically reduces processing time for large schemas (e.g., 9216 keys -> ~100 relevant keys).
1486
+ // Without this filter, the loop would call splitOutsideParenthesesAndArrays on every key
1487
+ // even though most are filtered out later by the baseMockName check.
1488
+ const allSchemaKeys = Object.keys(relevantReturnValueSchema ?? {});
1489
+ const relevantKeys = allSchemaKeys.filter((key) => {
1490
+ // Fast prefix check - key must start with baseMockName followed by ( or < or .
1491
+ // This matches: "useAtom()", "useAtom<T>()", "useAtom.something", but not "useAtomValue()"
1492
+ if (key === baseMockName)
1493
+ return true;
1494
+ if (key.startsWith(baseMockName + '('))
1495
+ return true;
1496
+ if (key.startsWith(baseMockName + '<'))
1497
+ return true;
1498
+ if (key.startsWith(baseMockName + '.'))
1499
+ return true;
1500
+ // Also include 'returnValue' paths which are normalized later
1501
+ if (key === 'returnValue' ||
1502
+ key.startsWith('returnValue.') ||
1503
+ key.startsWith('returnValue['))
1504
+ return true;
1505
+ return false;
1506
+ });
1507
+ const schemaKeyCount = relevantKeys.length;
1508
+ const sortedKeys = relevantKeys.sort((a, b) => {
1147
1509
  const aParts = splitOutsideParenthesesAndArrays(a);
1148
1510
  const bParts = splitOutsideParenthesesAndArrays(b);
1149
1511
  const maxLength = Math.max(aParts.length, bParts.length);
@@ -1167,6 +1529,36 @@ options) {
1167
1529
  }
1168
1530
  return 0;
1169
1531
  });
1532
+ // OPTIMIZATION: Pre-compute prefix indexes for O(1) lookups instead of O(n) scans.
1533
+ // This reduces complexity from O(n²) to O(n) for large schemas (9k+ keys).
1534
+ //
1535
+ // 1. extendedReturnValuePrefixes: Set of all path prefixes that have a .functionCallReturnValue extension
1536
+ // Used by hasExtendedFunctionCallReturnValue check at line ~1754
1537
+ // 2. functionCallsWithReturnValue: Set of function call paths where .functionCallReturnValue IMMEDIATELY follows
1538
+ // Used by hasProperFunctionCallPath check at line ~1787
1539
+ // IMPORTANT: Only includes paths where the function call is directly followed by .functionCallReturnValue
1540
+ // e.g., "a.b().functionCallReturnValue" -> adds "a.b()" but NOT "a" even if "a" ends with ")"
1541
+ const extendedReturnValuePrefixes = new Set();
1542
+ const functionCallsWithReturnValue = new Set();
1543
+ for (const k of relevantKeys) {
1544
+ const parts = splitOutsideParenthesesAndArrays(k);
1545
+ const returnValueIndex = parts.findIndex((part) => part.startsWith(RETURN_VALUE));
1546
+ if (returnValueIndex !== -1) {
1547
+ // Add all prefixes of k up to (but not including) functionCallReturnValue
1548
+ const prefix = joinParenthesesAndArrays(parts.slice(0, returnValueIndex));
1549
+ extendedReturnValuePrefixes.add(prefix);
1550
+ // ONLY add to functionCallsWithReturnValue if functionCallReturnValue IMMEDIATELY follows
1551
+ if (prefix.endsWith(')')) {
1552
+ functionCallsWithReturnValue.add(prefix);
1553
+ }
1554
+ // Also add intermediate prefixes for nested paths to extendedReturnValuePrefixes
1555
+ // This helps hasExtendedFunctionCallReturnValue which checks key + '.'
1556
+ for (let i = 1; i < returnValueIndex; i++) {
1557
+ const partialPrefix = joinParenthesesAndArrays(parts.slice(0, i));
1558
+ extendedReturnValuePrefixes.add(partialPrefix);
1559
+ }
1560
+ }
1561
+ }
1170
1562
  for (const key of sortedKeys) {
1171
1563
  const value = relevantReturnValueSchema[key];
1172
1564
  const parts = splitOutsideParenthesesAndArrays(key);
@@ -1212,7 +1604,9 @@ options) {
1212
1604
  // nested inside (e.g., methods on array elements passed as arguments).
1213
1605
  if (hasSignaturePath)
1214
1606
  continue;
1215
- const hasExtendedFunctionCallReturnValue = Object.keys(relevantReturnValueSchema).some((k) => k.startsWith(key + '.') && k.includes(`.${RETURN_VALUE}`));
1607
+ // OPTIMIZATION: Use pre-computed index instead of O(n) scan
1608
+ // Old code: Object.keys(relevantReturnValueSchema).some((k) => k.startsWith(key + '.') && k.includes('.functionCallReturnValue'))
1609
+ const hasExtendedFunctionCallReturnValue = extendedReturnValuePrefixes.has(key);
1216
1610
  // Skip JSX components - they look like function calls (e.g., Context.Provider())
1217
1611
  // but they're React components used in JSX, not functions that need mocking
1218
1612
  // Check both the value type and whether the functionCallReturnValue is jsx-component
@@ -1237,7 +1631,9 @@ options) {
1237
1631
  // This part is a function call, and the next part is NOT .functionCallReturnValue
1238
1632
  // Check if there's any path with .functionCallReturnValue for this function call
1239
1633
  const functionCallPath = joinParenthesesAndArrays(parts.slice(0, i + 1));
1240
- const hasProperFunctionCallPath = Object.keys(relevantReturnValueSchema).some((k) => k.startsWith(functionCallPath + '.functionCallReturnValue'));
1634
+ // OPTIMIZATION: Use pre-computed index instead of O(n) scan
1635
+ // Old code: Object.keys(relevantReturnValueSchema).some((k) => k.startsWith(functionCallPath + '.functionCallReturnValue'))
1636
+ const hasProperFunctionCallPath = functionCallsWithReturnValue.has(functionCallPath);
1241
1637
  if (hasProperFunctionCallPath) {
1242
1638
  // Skip this path - the .functionCallReturnValue path will handle it correctly
1243
1639
  shouldSkipKey = true;
@@ -1602,6 +1998,20 @@ options) {
1602
1998
  returnValueSection = relevantPart;
1603
1999
  }
1604
2000
  }
2001
+ // Post-processing: When the root functionCallReturnValue is typed as "function" but the
2002
+ // return value also has nested properties (methods like .from(), .auth, etc.), it's actually
2003
+ // an object, not a function to be called. Clear returnsFunctionArgs to prevent double-wrapping
2004
+ // (adding an extra () => { return { ... } } wrapper and ["()"] data paths).
2005
+ // This handles cases like Supabase's createClient() which returns an object with methods.
2006
+ // Only applied to the root level - nested parts that are functions with methods (like
2007
+ // useSearchParams()[1] which is a setter function with .set() and .delete()) should keep
2008
+ // their returnsFunctionArgs since they genuinely ARE functions.
2009
+ if (returnValueParts.returnsFunctionArgs &&
2010
+ returnValueParts.returnsFunctionArgs.length === 0 &&
2011
+ returnValueParts.nested &&
2012
+ returnValueParts.nested.length > 0) {
2013
+ returnValueParts.returnsFunctionArgs = undefined;
2014
+ }
1605
2015
  const contents = constructReturnValueString(returnValueParts);
1606
2016
  if (mockNameParts.length > 1) {
1607
2017
  const originalLib = `${mockNameParts[0]}__cyOriginal`;
@@ -1663,15 +2073,24 @@ options) {
1663
2073
  const nameAssignment = isErrorSubclass
1664
2074
  ? `this.name = '${baseMockName}';`
1665
2075
  : '';
1666
- // Use the safe function name for the class definition
1667
- const className = mockNameIsCallSignature
1668
- ? derivedFunctionName
1669
- : baseMockName;
2076
+ // Use the base class name for the class definition, not the call-signature-derived name.
2077
+ // When mockName is "StatsCalculator(supabase)", baseMockName is "StatsCalculator"
2078
+ // and derivedFunctionName would be "StatsCalculator_supabase" which is wrong.
2079
+ // Classes are instantiated with `new ClassName(args)` so the name must match the original.
2080
+ const className = baseMockName;
2081
+ // Use the already-generated contents (which has proper function wrappers for methods)
2082
+ // instead of raw scenarios().data() which would create non-callable string-keyed properties.
2083
+ // For classes with methods like calculateStats(), the contents will have:
2084
+ // { calculateStats: (...args) => scenarios().data()?.["key"]?.["calculateStats(...)"], ... }
2085
+ // which makes methods callable on the instance.
2086
+ const classContents = enhancedContents.trim().startsWith('{')
2087
+ ? enhancedContents
2088
+ : `scenarios().data()?.${quotePropertyKey(dataKey)} || {}`;
1670
2089
  return `class ${className}${isErrorSubclass ? ' extends Error' : ''} {
1671
2090
  constructor(message) {
1672
2091
  ${superCall}
1673
2092
  ${nameAssignment}
1674
- Object.assign(this, scenarios().data()?.${quotePropertyKey(dataKey)} || {});
2093
+ Object.assign(this, ${classContents});
1675
2094
  }
1676
2095
  }`;
1677
2096
  }
@@ -1739,7 +2158,29 @@ options) {
1739
2158
  : enhancedContents;
1740
2159
  // Inline the return value directly in the function to avoid module-level const
1741
2160
  // that would be evaluated before scenario context is ready
1742
- return `${isRootAsyncFunction ? 'async ' : ''}function ${safeFunctionName}(...args) {\n${indent(`return ${returnValue};`)}\n}`;
2161
+ // Add fallback for simple data path returns to prevent undefined errors (e.g., createTheme)
2162
+ // Only add fallback if returnValue is a simple data accessor (starts with scenarios().data())
2163
+ // and doesn't already have nested structure (object literal, array, or method chains like .map())
2164
+ const isSimpleDataPath = returnValue.startsWith('scenarios().data()') &&
2165
+ !returnValue.trim().startsWith('{') &&
2166
+ !returnValue.trim().startsWith('[') &&
2167
+ !returnValue.includes('.map('); // Exclude method chains
2168
+ const safeReturnValue = isSimpleDataPath
2169
+ ? `${returnValue} ?? {}`
2170
+ : returnValue;
2171
+ const refName = `_${safeFunctionName}Ref`;
2172
+ const assignment = `${refName}.current = ${safeReturnValue};`;
2173
+ const ifBlock = `if (!${refName}.current) {\n${indent(assignment)}\n}`;
2174
+ const body = `${ifBlock}\nreturn ${refName}.current;`;
2175
+ return [
2176
+ `// PATCHED: memoize to return stable reference (prevents infinite useEffect re-triggers)`,
2177
+ `const ${refName} = {`,
2178
+ ` current: null,`,
2179
+ `};`,
2180
+ `${isRootAsyncFunction ? 'async ' : ''}function ${safeFunctionName}(...args) {`,
2181
+ indent(body),
2182
+ `}`,
2183
+ ].join('\n');
1743
2184
  }
1744
2185
  else {
1745
2186
  // Generate safe const name: