@codeyam/codeyam-cli 0.1.0-staging.483fdc2 → 0.1.0-staging.50df560

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 (958) 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 +24 -24
  4. package/analyzer-template/packages/ai/index.ts +1 -0
  5. package/analyzer-template/packages/ai/package.json +3 -3
  6. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +23 -1
  7. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +34 -3
  8. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
  9. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +101 -0
  10. package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
  11. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +6 -0
  12. package/analyzer-template/packages/ai/src/lib/completionCall.ts +114 -113
  13. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +588 -13
  14. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +5 -1
  15. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +11 -2
  16. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +2 -2
  17. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
  18. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.ts +62 -0
  19. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +140 -14
  20. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +20 -1
  21. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +84 -19
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.ts +35 -0
  23. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +40 -13
  24. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +58 -3
  25. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +124 -7
  26. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +101 -2
  27. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +359 -142
  28. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +51 -3
  29. package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
  30. package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
  31. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +24 -4
  32. package/analyzer-template/packages/analyze/index.ts +2 -0
  33. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +19 -7
  34. package/analyzer-template/packages/analyze/src/lib/asts/index.ts +7 -2
  35. package/analyzer-template/packages/analyze/src/lib/asts/nodes/getNodeType.ts +1 -0
  36. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +69 -3
  37. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +13 -0
  38. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +0 -6
  39. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +21 -6
  40. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +9 -12
  41. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1352 -0
  42. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +4 -0
  43. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +59 -26
  44. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +277 -15
  45. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +0 -98
  46. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +395 -61
  47. package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
  48. package/analyzer-template/packages/aws/package.json +10 -10
  49. package/analyzer-template/packages/database/index.ts +1 -0
  50. package/analyzer-template/packages/database/package.json +4 -4
  51. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  52. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  53. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  54. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  55. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  56. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  57. package/analyzer-template/packages/database/src/lib/kysely/db.ts +14 -0
  58. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +1 -1
  59. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +164 -0
  60. package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
  61. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +19 -15
  62. package/analyzer-template/packages/database/src/lib/loadCommits.ts +31 -20
  63. package/analyzer-template/packages/database/src/lib/loadEntities.ts +0 -6
  64. package/analyzer-template/packages/database/src/lib/loadEntity.ts +8 -4
  65. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +0 -5
  66. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  67. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  68. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  69. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +94 -143
  70. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatus.ts +58 -42
  71. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.ts +81 -65
  72. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  73. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +29 -1
  74. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +33 -5
  75. package/analyzer-template/packages/github/dist/database/index.d.ts +1 -0
  76. package/analyzer-template/packages/github/dist/database/index.d.ts.map +1 -1
  77. package/analyzer-template/packages/github/dist/database/index.js +1 -0
  78. package/analyzer-template/packages/github/dist/database/index.js.map +1 -1
  79. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
  80. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
  81. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
  82. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
  83. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
  84. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
  85. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
  86. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
  87. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
  88. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
  89. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
  90. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
  91. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +4 -0
  92. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  93. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +8 -0
  94. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  95. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +1 -1
  96. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +29 -0
  97. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -0
  98. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +149 -0
  99. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  100. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
  101. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
  102. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  103. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  104. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +5 -0
  105. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  106. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  107. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +1 -1
  108. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  109. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  110. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +23 -13
  111. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  112. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  113. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +0 -6
  114. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  115. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.d.ts.map +1 -1
  116. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js +1 -1
  117. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js.map +1 -1
  118. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  119. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
  120. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  121. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
  122. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
  123. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
  124. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
  125. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
  126. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
  127. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  128. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +76 -90
  129. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  130. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.d.ts.map +1 -1
  131. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  132. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  133. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts.map +1 -1
  134. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  135. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  136. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -1
  137. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
  138. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
  139. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
  140. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  141. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  142. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  143. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  144. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js +2 -0
  145. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js.map +1 -1
  146. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +8 -0
  147. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  148. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +10 -0
  149. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  150. package/analyzer-template/packages/github/package.json +1 -1
  151. package/analyzer-template/packages/types/src/enums/ProjectFramework.ts +2 -0
  152. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +8 -0
  153. package/analyzer-template/packages/types/src/types/Scenario.ts +10 -0
  154. package/analyzer-template/packages/ui-components/package.json +1 -1
  155. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  156. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  157. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js +2 -0
  158. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js.map +1 -1
  159. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +8 -0
  160. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  161. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +10 -0
  162. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  163. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  164. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +98 -3
  165. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  166. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +121 -3
  167. package/analyzer-template/playwright/captureFromUrl.ts +89 -82
  168. package/analyzer-template/project/analyzeFileEntities.ts +26 -0
  169. package/analyzer-template/project/constructMockCode.ts +206 -51
  170. package/analyzer-template/project/orchestrateCapture.ts +4 -1
  171. package/analyzer-template/project/reconcileMockDataKeys.ts +19 -14
  172. package/analyzer-template/project/start.ts +3 -0
  173. package/analyzer-template/project/startScenarioCapture.ts +9 -0
  174. package/analyzer-template/project/writeClientLogRoute.ts +125 -0
  175. package/analyzer-template/project/writeMockDataTsx.ts +136 -17
  176. package/analyzer-template/project/writeScenarioComponents.ts +170 -29
  177. package/analyzer-template/project/writeSimpleRoot.ts +21 -11
  178. package/analyzer-template/tsconfig.json +13 -1
  179. package/background/src/lib/local/createLocalAnalyzer.js +1 -1
  180. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  181. package/background/src/lib/virtualized/project/analyzeFileEntities.js +22 -0
  182. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  183. package/background/src/lib/virtualized/project/constructMockCode.js +175 -42
  184. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  185. package/background/src/lib/virtualized/project/orchestrateCapture.js +4 -1
  186. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  187. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +17 -11
  188. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  189. package/background/src/lib/virtualized/project/start.js +2 -0
  190. package/background/src/lib/virtualized/project/start.js.map +1 -1
  191. package/background/src/lib/virtualized/project/startScenarioCapture.js +5 -0
  192. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  193. package/background/src/lib/virtualized/project/writeClientLogRoute.js +110 -0
  194. package/background/src/lib/virtualized/project/writeClientLogRoute.js.map +1 -0
  195. package/background/src/lib/virtualized/project/writeMockDataTsx.js +114 -13
  196. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  197. package/background/src/lib/virtualized/project/writeScenarioComponents.js +143 -27
  198. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  199. package/background/src/lib/virtualized/project/writeSimpleRoot.js +21 -11
  200. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  201. package/codeyam-cli/scripts/apply-setup.js +252 -21
  202. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  203. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js +196 -0
  204. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js.map +1 -0
  205. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js +114 -0
  206. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js.map +1 -0
  207. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js +149 -0
  208. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js.map +1 -0
  209. package/codeyam-cli/src/cli.js +57 -24
  210. package/codeyam-cli/src/cli.js.map +1 -1
  211. package/codeyam-cli/src/codeyam-cli.js +18 -2
  212. package/codeyam-cli/src/codeyam-cli.js.map +1 -1
  213. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js +51 -0
  214. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js.map +1 -0
  215. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js +56 -0
  216. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js.map +1 -0
  217. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js +101 -47
  218. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js.map +1 -1
  219. package/codeyam-cli/src/commands/analyze.js +21 -9
  220. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  221. package/codeyam-cli/src/commands/baseline.js +2 -0
  222. package/codeyam-cli/src/commands/baseline.js.map +1 -1
  223. package/codeyam-cli/src/commands/debug.js +2 -0
  224. package/codeyam-cli/src/commands/debug.js.map +1 -1
  225. package/codeyam-cli/src/commands/default.js +44 -21
  226. package/codeyam-cli/src/commands/default.js.map +1 -1
  227. package/codeyam-cli/src/commands/editor.js +5080 -0
  228. package/codeyam-cli/src/commands/editor.js.map +1 -0
  229. package/codeyam-cli/src/commands/editorIsolateArgs.js +25 -0
  230. package/codeyam-cli/src/commands/editorIsolateArgs.js.map +1 -0
  231. package/codeyam-cli/src/commands/init.js +148 -292
  232. package/codeyam-cli/src/commands/init.js.map +1 -1
  233. package/codeyam-cli/src/commands/memory.js +97 -92
  234. package/codeyam-cli/src/commands/memory.js.map +1 -1
  235. package/codeyam-cli/src/commands/recapture.js +2 -0
  236. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  237. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  238. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  239. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  240. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  241. package/codeyam-cli/src/commands/telemetry.js +37 -0
  242. package/codeyam-cli/src/commands/telemetry.js.map +1 -0
  243. package/codeyam-cli/src/commands/test-startup.js +2 -0
  244. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  245. package/codeyam-cli/src/commands/verify.js +14 -2
  246. package/codeyam-cli/src/commands/verify.js.map +1 -1
  247. package/codeyam-cli/src/data/techStacks.js +77 -0
  248. package/codeyam-cli/src/data/techStacks.js.map +1 -0
  249. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js +173 -0
  250. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js.map +1 -0
  251. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js +46 -0
  252. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js.map +1 -0
  253. package/codeyam-cli/src/utils/__tests__/devServerState.test.js +134 -0
  254. package/codeyam-cli/src/utils/__tests__/devServerState.test.js.map +1 -0
  255. package/codeyam-cli/src/utils/__tests__/editorApi.test.js +137 -0
  256. package/codeyam-cli/src/utils/__tests__/editorApi.test.js.map +1 -0
  257. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +2952 -0
  258. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -0
  259. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js +76 -0
  260. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js.map +1 -0
  261. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js +93 -0
  262. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js.map +1 -0
  263. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js +137 -0
  264. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js.map +1 -0
  265. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js +100 -0
  266. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js.map +1 -0
  267. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js +304 -0
  268. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js.map +1 -0
  269. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js +194 -0
  270. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js.map +1 -0
  271. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js +381 -0
  272. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js.map +1 -0
  273. package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js +67 -0
  274. package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js.map +1 -0
  275. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js +294 -0
  276. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js.map +1 -0
  277. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js +542 -0
  278. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js.map +1 -0
  279. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js +594 -0
  280. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js.map +1 -0
  281. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js +435 -0
  282. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js.map +1 -0
  283. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js +270 -0
  284. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js.map +1 -0
  285. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js +217 -0
  286. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js.map +1 -0
  287. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js +353 -0
  288. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js.map +1 -0
  289. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js +153 -0
  290. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js.map +1 -0
  291. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js +139 -0
  292. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js.map +1 -0
  293. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js +291 -0
  294. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js.map +1 -0
  295. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +1629 -0
  296. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -0
  297. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js +280 -0
  298. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js.map +1 -0
  299. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js +143 -0
  300. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js.map +1 -0
  301. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js +66 -0
  302. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js.map +1 -0
  303. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js +53 -0
  304. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js.map +1 -0
  305. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +2089 -0
  306. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -0
  307. package/codeyam-cli/src/utils/__tests__/git.editor.test.js +134 -0
  308. package/codeyam-cli/src/utils/__tests__/git.editor.test.js.map +1 -0
  309. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js +177 -0
  310. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js.map +1 -0
  311. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js +122 -0
  312. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js.map +1 -0
  313. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +185 -0
  314. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
  315. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js +129 -0
  316. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js.map +1 -0
  317. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js +9 -0
  318. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js.map +1 -1
  319. package/codeyam-cli/src/utils/__tests__/project.test.js +65 -0
  320. package/codeyam-cli/src/utils/__tests__/project.test.js.map +1 -0
  321. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js +118 -0
  322. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js.map +1 -0
  323. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js +284 -0
  324. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js.map +1 -0
  325. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js +121 -0
  326. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js.map +1 -0
  327. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +672 -0
  328. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -0
  329. package/codeyam-cli/src/utils/__tests__/screenshotHash.test.js +84 -0
  330. package/codeyam-cli/src/utils/__tests__/screenshotHash.test.js.map +1 -0
  331. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +175 -86
  332. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  333. package/codeyam-cli/src/utils/__tests__/telemetry.test.js +159 -0
  334. package/codeyam-cli/src/utils/__tests__/telemetry.test.js.map +1 -0
  335. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js +51 -0
  336. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js.map +1 -0
  337. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js +142 -0
  338. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js.map +1 -0
  339. package/codeyam-cli/src/utils/analysisRunner.js +11 -7
  340. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  341. package/codeyam-cli/src/utils/analyzer.js +16 -0
  342. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  343. package/codeyam-cli/src/utils/analyzerFinalization.js +100 -0
  344. package/codeyam-cli/src/utils/analyzerFinalization.js.map +1 -0
  345. package/codeyam-cli/src/utils/backgroundServer.js +193 -30
  346. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  347. package/codeyam-cli/src/utils/buildFlags.js +4 -0
  348. package/codeyam-cli/src/utils/buildFlags.js.map +1 -0
  349. package/codeyam-cli/src/utils/database.js +37 -2
  350. package/codeyam-cli/src/utils/database.js.map +1 -1
  351. package/codeyam-cli/src/utils/devModeEvents.js +40 -0
  352. package/codeyam-cli/src/utils/devModeEvents.js.map +1 -0
  353. package/codeyam-cli/src/utils/devServerState.js +71 -0
  354. package/codeyam-cli/src/utils/devServerState.js.map +1 -0
  355. package/codeyam-cli/src/utils/editorApi.js +79 -0
  356. package/codeyam-cli/src/utils/editorApi.js.map +1 -0
  357. package/codeyam-cli/src/utils/editorAudit.js +595 -0
  358. package/codeyam-cli/src/utils/editorAudit.js.map +1 -0
  359. package/codeyam-cli/src/utils/editorBroadcastViewport.js +26 -0
  360. package/codeyam-cli/src/utils/editorBroadcastViewport.js.map +1 -0
  361. package/codeyam-cli/src/utils/editorCapture.js +102 -0
  362. package/codeyam-cli/src/utils/editorCapture.js.map +1 -0
  363. package/codeyam-cli/src/utils/editorDeleteScenario.js +67 -0
  364. package/codeyam-cli/src/utils/editorDeleteScenario.js.map +1 -0
  365. package/codeyam-cli/src/utils/editorDevServer.js +197 -0
  366. package/codeyam-cli/src/utils/editorDevServer.js.map +1 -0
  367. package/codeyam-cli/src/utils/editorEntityChangeStatus.js +50 -0
  368. package/codeyam-cli/src/utils/editorEntityChangeStatus.js.map +1 -0
  369. package/codeyam-cli/src/utils/editorEntityHelpers.js +144 -0
  370. package/codeyam-cli/src/utils/editorEntityHelpers.js.map +1 -0
  371. package/codeyam-cli/src/utils/editorGuard.js +36 -0
  372. package/codeyam-cli/src/utils/editorGuard.js.map +1 -0
  373. package/codeyam-cli/src/utils/editorImageVerifier.js +155 -0
  374. package/codeyam-cli/src/utils/editorImageVerifier.js.map +1 -0
  375. package/codeyam-cli/src/utils/editorJournal.js +225 -0
  376. package/codeyam-cli/src/utils/editorJournal.js.map +1 -0
  377. package/codeyam-cli/src/utils/editorLoaderHelpers.js +152 -0
  378. package/codeyam-cli/src/utils/editorLoaderHelpers.js.map +1 -0
  379. package/codeyam-cli/src/utils/editorMigration.js +224 -0
  380. package/codeyam-cli/src/utils/editorMigration.js.map +1 -0
  381. package/codeyam-cli/src/utils/editorMockState.js +248 -0
  382. package/codeyam-cli/src/utils/editorMockState.js.map +1 -0
  383. package/codeyam-cli/src/utils/editorPreloadHelpers.js +135 -0
  384. package/codeyam-cli/src/utils/editorPreloadHelpers.js.map +1 -0
  385. package/codeyam-cli/src/utils/editorPreview.js +137 -0
  386. package/codeyam-cli/src/utils/editorPreview.js.map +1 -0
  387. package/codeyam-cli/src/utils/editorRecapture.js +109 -0
  388. package/codeyam-cli/src/utils/editorRecapture.js.map +1 -0
  389. package/codeyam-cli/src/utils/editorScenarioSwitch.js +134 -0
  390. package/codeyam-cli/src/utils/editorScenarioSwitch.js.map +1 -0
  391. package/codeyam-cli/src/utils/editorScenarios.js +616 -0
  392. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -0
  393. package/codeyam-cli/src/utils/editorSeedAdapter.js +422 -0
  394. package/codeyam-cli/src/utils/editorSeedAdapter.js.map +1 -0
  395. package/codeyam-cli/src/utils/editorShouldRevalidate.js +21 -0
  396. package/codeyam-cli/src/utils/editorShouldRevalidate.js.map +1 -0
  397. package/codeyam-cli/src/utils/entityChangeStatus.js +394 -0
  398. package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -0
  399. package/codeyam-cli/src/utils/entityChangeStatus.server.js +196 -0
  400. package/codeyam-cli/src/utils/entityChangeStatus.server.js.map +1 -0
  401. package/codeyam-cli/src/utils/fileMetadata.js +5 -0
  402. package/codeyam-cli/src/utils/fileMetadata.js.map +1 -1
  403. package/codeyam-cli/src/utils/fileWatcher.js +63 -9
  404. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  405. package/codeyam-cli/src/utils/generateReport.js +2 -2
  406. package/codeyam-cli/src/utils/git.js +103 -0
  407. package/codeyam-cli/src/utils/git.js.map +1 -1
  408. package/codeyam-cli/src/utils/glossaryAdd.js +74 -0
  409. package/codeyam-cli/src/utils/glossaryAdd.js.map +1 -0
  410. package/codeyam-cli/src/utils/install-skills.js +115 -56
  411. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  412. package/codeyam-cli/src/utils/interactiveSyncWatcher.js +126 -0
  413. package/codeyam-cli/src/utils/interactiveSyncWatcher.js.map +1 -0
  414. package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
  415. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
  416. package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
  417. package/codeyam-cli/src/utils/npmVersionCheck.js.map +1 -0
  418. package/codeyam-cli/src/utils/parseRegisterArg.js +31 -0
  419. package/codeyam-cli/src/utils/parseRegisterArg.js.map +1 -0
  420. package/codeyam-cli/src/utils/pathIgnoring.js +19 -7
  421. package/codeyam-cli/src/utils/pathIgnoring.js.map +1 -1
  422. package/codeyam-cli/src/utils/progress.js +8 -1
  423. package/codeyam-cli/src/utils/progress.js.map +1 -1
  424. package/codeyam-cli/src/utils/project.js +15 -5
  425. package/codeyam-cli/src/utils/project.js.map +1 -1
  426. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js +11 -11
  427. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js.map +1 -1
  428. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +22 -0
  429. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
  430. package/codeyam-cli/src/utils/queue/heartbeat.js +13 -5
  431. package/codeyam-cli/src/utils/queue/heartbeat.js.map +1 -1
  432. package/codeyam-cli/src/utils/queue/job.js +80 -4
  433. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  434. package/codeyam-cli/src/utils/queue/manager.js +7 -6
  435. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  436. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  437. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  438. package/codeyam-cli/src/utils/routePatternMatching.js +129 -0
  439. package/codeyam-cli/src/utils/routePatternMatching.js.map +1 -0
  440. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
  441. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
  442. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +229 -0
  443. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
  444. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
  445. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
  446. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
  447. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
  448. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
  449. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
  450. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
  451. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
  452. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +74 -0
  453. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
  454. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +376 -0
  455. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
  456. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +113 -0
  457. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
  458. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
  459. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
  460. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
  461. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
  462. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
  463. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
  464. package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
  465. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
  466. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
  467. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
  468. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
  469. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
  470. package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
  471. package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
  472. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js +83 -0
  473. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js.map +1 -0
  474. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js +118 -0
  475. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js.map +1 -0
  476. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js +72 -0
  477. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js.map +1 -0
  478. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
  479. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
  480. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js +76 -0
  481. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js.map +1 -0
  482. package/codeyam-cli/src/utils/rules/index.js +2 -0
  483. package/codeyam-cli/src/utils/rules/index.js.map +1 -1
  484. package/codeyam-cli/src/utils/rules/parser.js +16 -29
  485. package/codeyam-cli/src/utils/rules/parser.js.map +1 -1
  486. package/codeyam-cli/src/utils/rules/pathMatcher.js +34 -3
  487. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -1
  488. package/codeyam-cli/src/utils/rules/rulePlacement.js +65 -0
  489. package/codeyam-cli/src/utils/rules/rulePlacement.js.map +1 -0
  490. package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
  491. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
  492. package/codeyam-cli/src/utils/rules/sourceFiles.js +43 -0
  493. package/codeyam-cli/src/utils/rules/sourceFiles.js.map +1 -0
  494. package/codeyam-cli/src/utils/rules/staleness.js +16 -11
  495. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -1
  496. package/codeyam-cli/src/utils/scenarioCoverage.js +77 -0
  497. package/codeyam-cli/src/utils/scenarioCoverage.js.map +1 -0
  498. package/codeyam-cli/src/utils/scenarioMarkers.js +134 -0
  499. package/codeyam-cli/src/utils/scenarioMarkers.js.map +1 -0
  500. package/codeyam-cli/src/utils/scenariosManifest.js +307 -0
  501. package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -0
  502. package/codeyam-cli/src/utils/screenshotHash.js +26 -0
  503. package/codeyam-cli/src/utils/screenshotHash.js.map +1 -0
  504. package/codeyam-cli/src/utils/serverState.js +94 -12
  505. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  506. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +96 -47
  507. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  508. package/codeyam-cli/src/utils/simulationGateMiddleware.js +175 -0
  509. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -0
  510. package/codeyam-cli/src/utils/slugUtils.js +25 -0
  511. package/codeyam-cli/src/utils/slugUtils.js.map +1 -0
  512. package/codeyam-cli/src/utils/syncMocksMiddleware.js +7 -26
  513. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  514. package/codeyam-cli/src/utils/telemetry.js +106 -0
  515. package/codeyam-cli/src/utils/telemetry.js.map +1 -0
  516. package/codeyam-cli/src/utils/telemetryMiddleware.js +22 -0
  517. package/codeyam-cli/src/utils/telemetryMiddleware.js.map +1 -0
  518. package/codeyam-cli/src/utils/testRunner.js +158 -0
  519. package/codeyam-cli/src/utils/testRunner.js.map +1 -0
  520. package/codeyam-cli/src/utils/transcriptPruning.js +67 -0
  521. package/codeyam-cli/src/utils/transcriptPruning.js.map +1 -0
  522. package/codeyam-cli/src/utils/versionInfo.js +46 -0
  523. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  524. package/codeyam-cli/src/utils/webappDetection.js +35 -2
  525. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  526. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js +35 -0
  527. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js.map +1 -0
  528. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js +107 -0
  529. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js.map +1 -0
  530. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js +66 -0
  531. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
  532. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +628 -0
  533. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -0
  534. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js +248 -0
  535. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js.map +1 -0
  536. package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js +135 -0
  537. package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js.map +1 -0
  538. package/codeyam-cli/src/webserver/app/lib/clientErrors.js +83 -0
  539. package/codeyam-cli/src/webserver/app/lib/clientErrors.js.map +1 -0
  540. package/codeyam-cli/src/webserver/app/lib/database.js +56 -30
  541. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  542. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  543. package/codeyam-cli/src/webserver/app/lib/git.js +397 -0
  544. package/codeyam-cli/src/webserver/app/lib/git.js.map +1 -0
  545. package/codeyam-cli/src/webserver/app/types/editor.js +8 -0
  546. package/codeyam-cli/src/webserver/app/types/editor.js.map +1 -0
  547. package/codeyam-cli/src/webserver/backgroundServer.js +186 -37
  548. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  549. package/codeyam-cli/src/webserver/bootstrap.js +11 -0
  550. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
  551. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CLe80MMu.js +1 -0
  552. package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-DsN1wKrm.js → EntityItem-Crt_KN_U.js} +5 -5
  553. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-CQgyEGV-.js +1 -0
  554. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-Ba2JVPzP.js → EntityTypeIcon-CD7lGABo.js} +9 -9
  555. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-CgTNOhnu.js +1 -0
  556. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-CKeQT5Ty.js +25 -0
  557. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-D3s1MFkb.js +3 -0
  558. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-B0GLXMsr.js → LoadingDots-By5zI316.js} +1 -1
  559. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-xgeCVgSM.js → LogViewer-CM5zg40N.js} +3 -3
  560. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-OApQuNyq.js → ReportIssueModal-C2PLkej3.js} +5 -10
  561. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-DanvyBPb.js +1 -0
  562. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-DzccYyI8.js → ScenarioViewer-DUMfcNVK.js} +3 -3
  563. package/codeyam-cli/src/webserver/build/client/assets/Spinner-D0LgAaSa.js +34 -0
  564. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-CK7-NaPZ.js +1 -0
  565. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-BA_Ry-rs.js +1 -0
  566. package/codeyam-cli/src/webserver/build/client/assets/{_index-BwqWJOgH.js → _index-BAWd-Xjf.js} +4 -4
  567. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-BwavGCpm.js → activity.(_tab)-BOARiB-g.js} +10 -15
  568. package/codeyam-cli/src/webserver/build/client/assets/addon-canvas-DpzMmAy5.js +1 -0
  569. package/codeyam-cli/src/webserver/build/client/assets/addon-fit-YJmn1quW.js +12 -0
  570. package/codeyam-cli/src/webserver/build/client/assets/addon-web-links-CHx25PAe.js +1 -0
  571. package/codeyam-cli/src/webserver/build/client/assets/addon-webgl-DI8QOUvO.js +58 -0
  572. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-Bg3e7q4S.js +22 -0
  573. package/codeyam-cli/src/webserver/build/client/assets/api.agent-transcripts-l0sNRNKZ.js +1 -0
  574. package/codeyam-cli/src/webserver/build/client/assets/api.dev-mode-events-l0sNRNKZ.js +1 -0
  575. package/codeyam-cli/src/webserver/build/client/assets/api.editor-audit-l0sNRNKZ.js +1 -0
  576. package/codeyam-cli/src/webserver/build/client/assets/api.editor-capture-scenario-l0sNRNKZ.js +1 -0
  577. package/codeyam-cli/src/webserver/build/client/assets/api.editor-client-errors-l0sNRNKZ.js +1 -0
  578. package/codeyam-cli/src/webserver/build/client/assets/api.editor-commit-l0sNRNKZ.js +1 -0
  579. package/codeyam-cli/src/webserver/build/client/assets/api.editor-dev-server-l0sNRNKZ.js +1 -0
  580. package/codeyam-cli/src/webserver/build/client/assets/api.editor-entity-status-l0sNRNKZ.js +1 -0
  581. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-diff-l0sNRNKZ.js +1 -0
  582. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-l0sNRNKZ.js +1 -0
  583. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-entry-l0sNRNKZ.js +1 -0
  584. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-image._-l0sNRNKZ.js +1 -0
  585. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-l0sNRNKZ.js +1 -0
  586. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-screenshot-l0sNRNKZ.js +1 -0
  587. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-update-l0sNRNKZ.js +1 -0
  588. package/codeyam-cli/src/webserver/build/client/assets/api.editor-load-commit-l0sNRNKZ.js +1 -0
  589. package/codeyam-cli/src/webserver/build/client/assets/api.editor-project-info-l0sNRNKZ.js +1 -0
  590. package/codeyam-cli/src/webserver/build/client/assets/api.editor-recapture-stale-l0sNRNKZ.js +1 -0
  591. package/codeyam-cli/src/webserver/build/client/assets/api.editor-refresh-l0sNRNKZ.js +1 -0
  592. package/codeyam-cli/src/webserver/build/client/assets/api.editor-register-scenario-l0sNRNKZ.js +1 -0
  593. package/codeyam-cli/src/webserver/build/client/assets/api.editor-rename-scenario-l0sNRNKZ.js +1 -0
  594. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-seed-state-l0sNRNKZ.js +1 -0
  595. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-coverage-l0sNRNKZ.js +1 -0
  596. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-data-l0sNRNKZ.js +1 -0
  597. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-image._-l0sNRNKZ.js +1 -0
  598. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-prompt-l0sNRNKZ.js +1 -0
  599. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenarios-l0sNRNKZ.js +1 -0
  600. package/codeyam-cli/src/webserver/build/client/assets/api.editor-session-l0sNRNKZ.js +1 -0
  601. package/codeyam-cli/src/webserver/build/client/assets/api.editor-switch-scenario-l0sNRNKZ.js +1 -0
  602. package/codeyam-cli/src/webserver/build/client/assets/api.editor-test-results-l0sNRNKZ.js +1 -0
  603. package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
  604. package/codeyam-cli/src/webserver/build/client/assets/api.rule-path-l0sNRNKZ.js +1 -0
  605. package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
  606. package/codeyam-cli/src/webserver/build/client/assets/book-open-CL-lMgHh.js +6 -0
  607. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-Cx24_aWc.js → chevron-down-GmAjGS9-.js} +2 -2
  608. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-BAdwhyCx.js +43 -0
  609. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-BOARzkeR.js → circle-check-DFcQkN5j.js} +2 -2
  610. package/codeyam-cli/src/webserver/build/client/assets/copy-C6iF61Xs.js +11 -0
  611. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-4ImjHTVC.js +41 -0
  612. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-C8y4mmyv.js +1 -0
  613. package/codeyam-cli/src/webserver/build/client/assets/editor._tab-Gbk_i5Js.js +1 -0
  614. package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-DII1pg_z.js +58 -0
  615. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-oepecPae.js +41 -0
  616. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-BJUiQqZF.js → entity._sha._-Blfy9UlN.js} +12 -12
  617. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-KTQuL0aj.js +6 -0
  618. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-C6eeL24i.js +6 -0
  619. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DQM8E7L4.js +6 -0
  620. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CTBG2mmz.js → entity._sha_.edit._scenarioId-CAoXLsQr.js} +2 -2
  621. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-CS2cb_eZ.js → entry.client-SuW9syRS.js} +6 -6
  622. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-Daa96Fr1.js +1 -0
  623. package/codeyam-cli/src/webserver/build/client/assets/files-D-xGrg29.js +1 -0
  624. package/codeyam-cli/src/webserver/build/client/assets/git-Bq_fbXP5.js +1 -0
  625. package/codeyam-cli/src/webserver/build/client/assets/globals-Yn9W3zp3.css +1 -0
  626. package/codeyam-cli/src/webserver/build/client/assets/{index-lzqtyFU8.js → index-Bp1l4hSv.js} +1 -1
  627. package/codeyam-cli/src/webserver/build/client/assets/{index-B1h680n5.js → index-CWV9XZiG.js} +1 -1
  628. package/codeyam-cli/src/webserver/build/client/assets/index-DE3jI_dv.js +15 -0
  629. package/codeyam-cli/src/webserver/build/client/assets/jsx-runtime-D_zvdyIk.js +9 -0
  630. package/codeyam-cli/src/webserver/build/client/assets/labs-B_IX45ih.js +1 -0
  631. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-B7B9V-bu.js → loader-circle-De-7qQ2u.js} +2 -2
  632. package/codeyam-cli/src/webserver/build/client/assets/manifest-cdf2c0a7.js +1 -0
  633. package/codeyam-cli/src/webserver/build/client/assets/memory-Cx2xEx7s.js +101 -0
  634. package/codeyam-cli/src/webserver/build/client/assets/pause-CFxEKL1u.js +11 -0
  635. package/codeyam-cli/src/webserver/build/client/assets/root-BxUQigda.js +67 -0
  636. package/codeyam-cli/src/webserver/build/client/assets/{search-CxXUmBSd.js → search-BdBb5aqc.js} +2 -2
  637. package/codeyam-cli/src/webserver/build/client/assets/settings-DdE-Untf.js +1 -0
  638. package/codeyam-cli/src/webserver/build/client/assets/simulations-DSCdE99u.js +1 -0
  639. package/codeyam-cli/src/webserver/build/client/assets/terminal-CrplD4b1.js +11 -0
  640. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-B6LgvRJg.js → triangle-alert-DqJ0j69l.js} +2 -2
  641. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-DhXHbEjP.js +1 -0
  642. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-BNd5hYuW.js +2 -0
  643. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-Cy5Qg_UR.js +1 -0
  644. package/codeyam-cli/src/webserver/build/client/assets/useToast-5HR2j9ZE.js +1 -0
  645. package/codeyam-cli/src/webserver/build/client/assets/xterm-BqvuqXEL.js +27 -0
  646. package/codeyam-cli/src/webserver/build/client/sound-test.html +98 -0
  647. package/codeyam-cli/src/webserver/build/server/assets/analysisRunner-B_PsTAb1.js +13 -0
  648. package/codeyam-cli/src/webserver/build/server/assets/index-CjLhfz6Z.js +1 -0
  649. package/codeyam-cli/src/webserver/build/server/assets/init-BEqlbI84.js +10 -0
  650. package/codeyam-cli/src/webserver/build/server/assets/progress-CHTtrxFG.js +1 -0
  651. package/codeyam-cli/src/webserver/build/server/assets/server-build-YI63xTu4.js +553 -0
  652. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  653. package/codeyam-cli/src/webserver/build-info.json +5 -5
  654. package/codeyam-cli/src/webserver/devServer.js +39 -5
  655. package/codeyam-cli/src/webserver/devServer.js.map +1 -1
  656. package/codeyam-cli/src/webserver/editorProxy.js +976 -0
  657. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -0
  658. package/codeyam-cli/src/webserver/idleDetector.js +106 -0
  659. package/codeyam-cli/src/webserver/idleDetector.js.map +1 -0
  660. package/codeyam-cli/src/webserver/mockStateEvents.js +28 -0
  661. package/codeyam-cli/src/webserver/mockStateEvents.js.map +1 -0
  662. package/codeyam-cli/src/webserver/public/sound-test.html +98 -0
  663. package/codeyam-cli/src/webserver/scripts/codeyam-preload.mjs +414 -0
  664. package/codeyam-cli/src/webserver/scripts/journalCapture.ts +283 -0
  665. package/codeyam-cli/src/webserver/server.js +379 -1
  666. package/codeyam-cli/src/webserver/server.js.map +1 -1
  667. package/codeyam-cli/src/webserver/terminalServer.js +938 -0
  668. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -0
  669. package/codeyam-cli/templates/__tests__/editor-step-hook.prompt-capture.test.ts +118 -0
  670. package/codeyam-cli/templates/chrome-extension-react/EXTENSION_SETUP.md +75 -0
  671. package/codeyam-cli/templates/chrome-extension-react/README.md +46 -0
  672. package/codeyam-cli/templates/chrome-extension-react/gitignore +15 -0
  673. package/codeyam-cli/templates/chrome-extension-react/index.html +12 -0
  674. package/codeyam-cli/templates/chrome-extension-react/package.json +27 -0
  675. package/codeyam-cli/templates/chrome-extension-react/popup.html +12 -0
  676. package/codeyam-cli/templates/chrome-extension-react/public/manifest.json +15 -0
  677. package/codeyam-cli/templates/chrome-extension-react/src/background/service-worker.ts +7 -0
  678. package/codeyam-cli/templates/chrome-extension-react/src/globals.css +6 -0
  679. package/codeyam-cli/templates/chrome-extension-react/src/lib/storage.ts +37 -0
  680. package/codeyam-cli/templates/chrome-extension-react/src/popup/App.tsx +12 -0
  681. package/codeyam-cli/templates/chrome-extension-react/src/popup/main.tsx +10 -0
  682. package/codeyam-cli/templates/chrome-extension-react/tsconfig.json +24 -0
  683. package/codeyam-cli/templates/chrome-extension-react/vite.config.ts +41 -0
  684. package/codeyam-cli/templates/codeyam-editor-claude.md +149 -0
  685. package/codeyam-cli/templates/codeyam-editor-reference.md +214 -0
  686. package/codeyam-cli/templates/codeyam-memory-hook.sh +19 -20
  687. package/codeyam-cli/templates/commands/codeyam-diagnose.md +481 -0
  688. package/codeyam-cli/templates/editor-step-hook.py +368 -0
  689. package/codeyam-cli/templates/expo-react-native/MOBILE_SETUP.md +89 -0
  690. package/codeyam-cli/templates/expo-react-native/README.md +41 -0
  691. package/codeyam-cli/templates/expo-react-native/app/(tabs)/_layout.tsx +33 -0
  692. package/codeyam-cli/templates/expo-react-native/app/(tabs)/index.tsx +12 -0
  693. package/codeyam-cli/templates/expo-react-native/app/(tabs)/settings.tsx +12 -0
  694. package/codeyam-cli/templates/expo-react-native/app/_layout.tsx +12 -0
  695. package/codeyam-cli/templates/expo-react-native/app.json +18 -0
  696. package/codeyam-cli/templates/expo-react-native/babel.config.js +9 -0
  697. package/codeyam-cli/templates/expo-react-native/gitignore +12 -0
  698. package/codeyam-cli/templates/expo-react-native/global.css +3 -0
  699. package/codeyam-cli/templates/expo-react-native/lib/storage.ts +32 -0
  700. package/codeyam-cli/templates/expo-react-native/metro.config.js +6 -0
  701. package/codeyam-cli/templates/expo-react-native/nativewind-env.d.ts +1 -0
  702. package/codeyam-cli/templates/expo-react-native/package.json +38 -0
  703. package/codeyam-cli/templates/expo-react-native/tailwind.config.js +10 -0
  704. package/codeyam-cli/templates/expo-react-native/tsconfig.json +10 -0
  705. package/codeyam-cli/templates/hooks/staleness-check.sh +43 -0
  706. package/codeyam-cli/templates/isolation-route/next-app.tsx.template +80 -0
  707. package/codeyam-cli/templates/isolation-route/next-pages.tsx.template +79 -0
  708. package/codeyam-cli/templates/isolation-route/vite-react.tsx.template +78 -0
  709. package/codeyam-cli/templates/msw/browser-setup.ts.template +47 -0
  710. package/codeyam-cli/templates/msw/handler-router.ts.template +47 -0
  711. package/codeyam-cli/templates/msw/server-setup.ts.template +52 -0
  712. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_PATTERNS.md +308 -0
  713. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_UPGRADE.md +304 -0
  714. package/codeyam-cli/templates/nextjs-prisma-sqlite/DATABASE.md +126 -0
  715. package/codeyam-cli/templates/nextjs-prisma-sqlite/FEATURE_PATTERNS.md +37 -0
  716. package/codeyam-cli/templates/nextjs-prisma-sqlite/README.md +53 -0
  717. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/api/todos/route.ts +17 -0
  718. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/codeyam-isolate/layout.tsx +12 -0
  719. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/globals.css +26 -0
  720. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/layout.tsx +34 -0
  721. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/lib/prisma.ts +24 -0
  722. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/page.tsx +10 -0
  723. package/codeyam-cli/templates/nextjs-prisma-sqlite/env +4 -0
  724. package/codeyam-cli/templates/nextjs-prisma-sqlite/eslint.config.mjs +11 -0
  725. package/codeyam-cli/templates/nextjs-prisma-sqlite/gitignore +64 -0
  726. package/codeyam-cli/templates/nextjs-prisma-sqlite/next.config.ts +14 -0
  727. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +39 -0
  728. package/codeyam-cli/templates/nextjs-prisma-sqlite/postcss.config.mjs +7 -0
  729. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/schema.prisma +27 -0
  730. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/seed.ts +40 -0
  731. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma.config.ts +12 -0
  732. package/codeyam-cli/templates/nextjs-prisma-sqlite/seed-adapter.ts +127 -0
  733. package/codeyam-cli/templates/nextjs-prisma-sqlite/tsconfig.json +34 -0
  734. package/codeyam-cli/templates/nextjs-prisma-sqlite/vitest.config.ts +13 -0
  735. package/codeyam-cli/templates/nextjs-prisma-supabase/README.md +52 -0
  736. package/codeyam-cli/templates/nextjs-prisma-supabase/SUPABASE_SETUP.md +104 -0
  737. package/codeyam-cli/templates/nextjs-prisma-supabase/app/api/todos/route.ts +17 -0
  738. package/codeyam-cli/templates/nextjs-prisma-supabase/app/globals.css +26 -0
  739. package/codeyam-cli/templates/nextjs-prisma-supabase/app/layout.tsx +34 -0
  740. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/prisma.ts +20 -0
  741. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/supabase.ts +12 -0
  742. package/codeyam-cli/templates/nextjs-prisma-supabase/app/page.tsx +10 -0
  743. package/codeyam-cli/templates/nextjs-prisma-supabase/env +9 -0
  744. package/codeyam-cli/templates/nextjs-prisma-supabase/eslint.config.mjs +11 -0
  745. package/codeyam-cli/templates/nextjs-prisma-supabase/gitignore +40 -0
  746. package/codeyam-cli/templates/nextjs-prisma-supabase/next.config.ts +11 -0
  747. package/codeyam-cli/templates/nextjs-prisma-supabase/package.json +37 -0
  748. package/codeyam-cli/templates/nextjs-prisma-supabase/postcss.config.mjs +7 -0
  749. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/schema.prisma +27 -0
  750. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/seed.ts +39 -0
  751. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma.config.ts +12 -0
  752. package/codeyam-cli/templates/nextjs-prisma-supabase/tsconfig.json +34 -0
  753. package/codeyam-cli/templates/prompts/conversation-guidance.txt +44 -0
  754. package/codeyam-cli/templates/prompts/conversation-prompt.txt +28 -0
  755. package/codeyam-cli/templates/prompts/interruption-prompt.txt +31 -0
  756. package/codeyam-cli/templates/prompts/stale-rules-prompt.txt +24 -0
  757. package/codeyam-cli/templates/rule-notification-hook.py +83 -0
  758. package/codeyam-cli/templates/rule-reflection-hook.py +574 -88
  759. package/codeyam-cli/templates/rules-instructions.md +45 -93
  760. package/codeyam-cli/templates/seed-adapters/supabase.ts +282 -0
  761. package/codeyam-cli/templates/{codeyam:debug.md → skills/codeyam-debug/SKILL.md} +1 -1
  762. package/codeyam-cli/templates/skills/codeyam-dev-mode/SKILL.md +237 -0
  763. package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +229 -0
  764. package/codeyam-cli/templates/skills/codeyam-memory/SKILL.md +611 -0
  765. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/deprecated-prompt.md +100 -0
  766. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/detect-deprecated-patterns.mjs +139 -0
  767. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/find-exports.mjs +52 -0
  768. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/misleading-api-prompt.md +117 -0
  769. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/read-json-field.mjs +61 -0
  770. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/ripgrep-fallback.mjs +155 -0
  771. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/analyze-prompt.md +46 -0
  772. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/cleanup.mjs +13 -0
  773. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/filter-session.mjs +95 -0
  774. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/preprocess.mjs +160 -0
  775. package/codeyam-cli/templates/skills/codeyam-new-rule/SKILL.md +11 -0
  776. package/codeyam-cli/templates/{codeyam:setup.md → skills/codeyam-setup/SKILL.md} +13 -1
  777. package/codeyam-cli/templates/{codeyam:sim.md → skills/codeyam-sim/SKILL.md} +1 -1
  778. package/codeyam-cli/templates/{codeyam:test.md → skills/codeyam-test/SKILL.md} +1 -1
  779. package/codeyam-cli/templates/{codeyam:verify.md → skills/codeyam-verify/SKILL.md} +1 -1
  780. package/package.json +29 -21
  781. package/packages/ai/index.js +1 -1
  782. package/packages/ai/index.js.map +1 -1
  783. package/packages/ai/src/lib/analyzeScope.js +21 -1
  784. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  785. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +22 -4
  786. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  787. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
  788. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
  789. package/packages/ai/src/lib/astScopes/processExpression.js +78 -1
  790. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  791. package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
  792. package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
  793. package/packages/ai/src/lib/completionCall.js +10 -7
  794. package/packages/ai/src/lib/completionCall.js.map +1 -1
  795. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +495 -10
  796. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  797. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +5 -1
  798. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  799. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +11 -2
  800. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  801. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +2 -2
  802. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  803. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
  804. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
  805. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js +54 -0
  806. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js.map +1 -0
  807. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +122 -12
  808. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  809. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +15 -1
  810. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -1
  811. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +78 -17
  812. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  813. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js +34 -0
  814. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js.map +1 -0
  815. package/packages/ai/src/lib/dataStructureChunking.js +30 -11
  816. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -1
  817. package/packages/ai/src/lib/generateEntityDataStructure.js +46 -2
  818. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  819. package/packages/ai/src/lib/generateEntityScenarioData.js +89 -5
  820. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  821. package/packages/ai/src/lib/generateExecutionFlows.js +86 -2
  822. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
  823. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +242 -81
  824. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -1
  825. package/packages/ai/src/lib/isolateScopes.js +39 -3
  826. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  827. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
  828. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
  829. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
  830. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
  831. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +17 -2
  832. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  833. package/packages/analyze/index.js +1 -0
  834. package/packages/analyze/index.js.map +1 -1
  835. package/packages/analyze/src/lib/ProjectAnalyzer.js +13 -4
  836. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  837. package/packages/analyze/src/lib/asts/index.js +4 -2
  838. package/packages/analyze/src/lib/asts/index.js.map +1 -1
  839. package/packages/analyze/src/lib/asts/nodes/getNodeType.js +1 -0
  840. package/packages/analyze/src/lib/asts/nodes/getNodeType.js.map +1 -1
  841. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +52 -2
  842. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  843. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +10 -0
  844. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  845. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +0 -5
  846. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  847. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +11 -2
  848. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  849. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +9 -7
  850. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  851. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +907 -0
  852. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
  853. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +5 -1
  854. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
  855. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +51 -14
  856. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  857. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +181 -13
  858. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  859. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +0 -40
  860. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -1
  861. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +328 -49
  862. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  863. package/packages/analyze/src/lib/index.js +1 -0
  864. package/packages/analyze/src/lib/index.js.map +1 -1
  865. package/packages/database/index.js +1 -0
  866. package/packages/database/index.js.map +1 -1
  867. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  868. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  869. package/packages/database/src/lib/analysisToDb.js +1 -1
  870. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  871. package/packages/database/src/lib/branchToDb.js +1 -1
  872. package/packages/database/src/lib/branchToDb.js.map +1 -1
  873. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  874. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  875. package/packages/database/src/lib/commitToDb.js +1 -1
  876. package/packages/database/src/lib/commitToDb.js.map +1 -1
  877. package/packages/database/src/lib/fileToDb.js +1 -1
  878. package/packages/database/src/lib/fileToDb.js.map +1 -1
  879. package/packages/database/src/lib/kysely/db.js +8 -0
  880. package/packages/database/src/lib/kysely/db.js.map +1 -1
  881. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +149 -0
  882. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  883. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  884. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  885. package/packages/database/src/lib/loadAnalysis.js +1 -1
  886. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  887. package/packages/database/src/lib/loadCommits.js +23 -13
  888. package/packages/database/src/lib/loadCommits.js.map +1 -1
  889. package/packages/database/src/lib/loadEntities.js +0 -6
  890. package/packages/database/src/lib/loadEntities.js.map +1 -1
  891. package/packages/database/src/lib/loadEntity.js +1 -1
  892. package/packages/database/src/lib/loadEntity.js.map +1 -1
  893. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
  894. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  895. package/packages/database/src/lib/projectToDb.js +1 -1
  896. package/packages/database/src/lib/projectToDb.js.map +1 -1
  897. package/packages/database/src/lib/saveFiles.js +1 -1
  898. package/packages/database/src/lib/saveFiles.js.map +1 -1
  899. package/packages/database/src/lib/scenarioToDb.js +1 -1
  900. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  901. package/packages/database/src/lib/updateCommitMetadata.js +76 -90
  902. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  903. package/packages/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  904. package/packages/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  905. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  906. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  907. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
  908. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
  909. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  910. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  911. package/packages/types/src/enums/ProjectFramework.js +2 -0
  912. package/packages/types/src/enums/ProjectFramework.js.map +1 -1
  913. package/packages/utils/src/lib/fs/rsyncCopy.js +98 -3
  914. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  915. package/scripts/npm-post-install.cjs +34 -0
  916. package/codeyam-cli/src/commands/detect-universal-mocks.js +0 -118
  917. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +0 -1
  918. package/codeyam-cli/src/commands/list.js +0 -31
  919. package/codeyam-cli/src/commands/list.js.map +0 -1
  920. package/codeyam-cli/src/commands/webapp-info.js +0 -146
  921. package/codeyam-cli/src/commands/webapp-info.js.map +0 -1
  922. package/codeyam-cli/src/utils/reviewedRules.js +0 -92
  923. package/codeyam-cli/src/utils/reviewedRules.js.map +0 -1
  924. package/codeyam-cli/src/utils/universal-mocks.js +0 -152
  925. package/codeyam-cli/src/utils/universal-mocks.js.map +0 -1
  926. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-DLqD3qNt.js +0 -1
  927. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-C8lyxW9k.js +0 -34
  928. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-aht4aafF.js +0 -25
  929. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-CVtiBnY5.js +0 -3
  930. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-DuDvi0jm.js +0 -1
  931. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-DyFZkK0l.js +0 -1
  932. package/codeyam-cli/src/webserver/build/client/assets/chunk-EPOLDU6W-CXRTFQ3F.js +0 -51
  933. package/codeyam-cli/src/webserver/build/client/assets/copy-Bb-80kDT.js +0 -6
  934. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-BdhJEx6B.js +0 -21
  935. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BBnGWYga.js +0 -1
  936. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DavjRmOY.js +0 -6
  937. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-D1T4TGjf.js +0 -6
  938. package/codeyam-cli/src/webserver/build/client/assets/file-code-Dhef1kWN.js +0 -6
  939. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-DMJ7zii9.js +0 -1
  940. package/codeyam-cli/src/webserver/build/client/assets/files-CJ6lTdTA.js +0 -1
  941. package/codeyam-cli/src/webserver/build/client/assets/git-CPTZZ-JZ.js +0 -15
  942. package/codeyam-cli/src/webserver/build/client/assets/globals-CX9f-5xM.css +0 -1
  943. package/codeyam-cli/src/webserver/build/client/assets/manifest-bba56ec1.js +0 -1
  944. package/codeyam-cli/src/webserver/build/client/assets/memory-DuTFSyJ2.js +0 -92
  945. package/codeyam-cli/src/webserver/build/client/assets/root-DTfSQARG.js +0 -62
  946. package/codeyam-cli/src/webserver/build/client/assets/settings-CS5f3WzT.js +0 -1
  947. package/codeyam-cli/src/webserver/build/client/assets/simulations-DwFIBT09.js +0 -1
  948. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-C1v1PQzo.js +0 -1
  949. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-aSv48UbS.js +0 -2
  950. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DYxHZQuP.js +0 -1
  951. package/codeyam-cli/src/webserver/build/client/assets/useToast-mBRpZPiu.js +0 -1
  952. package/codeyam-cli/src/webserver/build/server/assets/index-TD1f-DHV.js +0 -1
  953. package/codeyam-cli/src/webserver/build/server/assets/server-build-BQ-1XyEa.js +0 -258
  954. package/codeyam-cli/templates/codeyam-stop-hook.sh +0 -284
  955. package/codeyam-cli/templates/codeyam:diagnose.md +0 -803
  956. package/codeyam-cli/templates/codeyam:memory.md +0 -403
  957. package/codeyam-cli/templates/codeyam:new-rule.md +0 -52
  958. package/scripts/finalize-analyzer.cjs +0 -81
@@ -1,5 +1,6 @@
1
1
  import { splitOutsideParenthesesAndArrays, joinParenthesesAndArrays, } from "../../../../../../packages/ai/index.js";
2
2
  import { cleanKnownObjectFunctionsFromMapping } from "../../../../../../packages/ai/index.js";
3
+ import { transformationTracer } from "./TransformationTracer.js";
3
4
  function cleanFunctionName(functionName) {
4
5
  return functionName?.split('<')[0];
5
6
  }
@@ -34,6 +35,7 @@ const PRIMITIVE_TYPES = new Set([
34
35
  ]);
35
36
  // Check if a type string represents a primitive type
36
37
  // Handles union types like "string | undefined" or "number | null"
38
+ // Also handles string literal unions like "'suggestion' | 'warning' | 'tip'"
37
39
  function isPrimitiveType(typeStr) {
38
40
  if (PRIMITIVE_TYPES.has(typeStr)) {
39
41
  return true;
@@ -41,12 +43,21 @@ function isPrimitiveType(typeStr) {
41
43
  // Check union types - if ALL parts of the union are primitives, it's primitive
42
44
  // e.g., "string | undefined" -> ["string", "undefined"] -> both are primitive -> true
43
45
  // e.g., "object | null" -> ["object", "null"] -> object is not primitive -> false
46
+ // e.g., "'suggestion' | 'warning'" -> string literal union -> true
44
47
  if (typeStr.includes('|')) {
45
48
  const parts = typeStr.split('|').map((p) => p.trim());
46
- return parts.every((part) => PRIMITIVE_TYPES.has(part));
49
+ return parts.every((part) => PRIMITIVE_TYPES.has(part) ||
50
+ // String literal values like 'suggestion', 'warning' are primitives
51
+ (part.startsWith("'") && part.endsWith("'")));
47
52
  }
48
53
  return false;
49
54
  }
55
+ // Extract signature index from a path like "signature[0]" or "signature[0].foo"
56
+ // Returns the index number or undefined if not a signature path
57
+ function extractSignatureIndex(path) {
58
+ const match = path.match(/^signature\[(\d+)\]/);
59
+ return match ? parseInt(match[1], 10) : undefined;
60
+ }
50
61
  // Check if a new schema path would go through a primitive type
51
62
  // e.g., if schema has 'entities[].scenarioCount': 'number', then
52
63
  // 'entities[].scenarioCount.sha' would go through a primitive and should be rejected
@@ -76,9 +87,19 @@ function pathPartMatches(pathPart, schemaPathPart) {
76
87
  }
77
88
  function bestValueFromOptions(options) {
78
89
  options = options.filter(Boolean);
79
- const known = options.find((o) => !o.includes('unknown'));
80
- if (known) {
81
- return known;
90
+ const known = options.filter((o) => !o.includes('unknown'));
91
+ if (known.length > 0) {
92
+ // Among known values, prefer string literal unions over bare primitives.
93
+ // e.g., "'draft' | 'inProgress' | 'paused' | 'completed'" is more specific than "string".
94
+ // This handles cases where a dependency schema has a bare type like "string" but the
95
+ // child entity's analysis has the actual literal union from TypeScript type resolution.
96
+ if (known.length > 1 && known.some((o) => PRIMITIVE_TYPES.has(o))) {
97
+ const literalUnion = known.find((o) => !PRIMITIVE_TYPES.has(o) && o.includes("'"));
98
+ if (literalUnion) {
99
+ return literalUnion;
100
+ }
101
+ }
102
+ return known[0];
82
103
  }
83
104
  const notUnknown = options.find((o) => o !== 'unknown');
84
105
  if (notUnknown) {
@@ -128,6 +149,21 @@ export default function mergeInDependentDataStructure({ importedExports, depende
128
149
  }
129
150
  }
130
151
  let equivalentSchemaPaths = [];
152
+ // O(1) index for findOrCreateEquivalentSchemaPathsEntry.
153
+ // Maps "(rootPath)::(normalizedFuncName)" → the entry containing that root.
154
+ // This replaces the O(E) linear search that was causing O(E²) gather performance.
155
+ const espIndex = new Map();
156
+ const espIndexKey = (path, functionName) => {
157
+ const normalized = cleanFunctionName(functionName);
158
+ const funcKey = normalized === rootScopeName ? '__self__' : normalized || '__self__';
159
+ return `${path}::${funcKey}`;
160
+ };
161
+ const updateEspIndex = (entry) => {
162
+ for (const root of entry.equivalentRoots) {
163
+ const funcName = root.function?.name ?? rootScopeName;
164
+ espIndex.set(espIndexKey(root.schemaRootPath, funcName), entry);
165
+ }
166
+ };
131
167
  // Pre-build a lookup map from cleaned function name to dependency for O(1) lookups.
132
168
  // This avoids O(n) linear search in findRelevantDependency which was causing O(n²) performance.
133
169
  const dependencyByCleanedName = new Map();
@@ -166,8 +202,8 @@ export default function mergeInDependentDataStructure({ importedExports, depende
166
202
  });
167
203
  return mergedDataStructure.dependencySchemas[filePath][name];
168
204
  };
169
- const cleanSchema = (schema) => {
170
- cleanKnownObjectFunctionsFromMapping(schema);
205
+ const cleanSchema = (schema, context) => {
206
+ transformationTracer.traceSchemaTransform(rootScopeName, 'cleanKnownObjectFunctionsFromMapping', schema, cleanKnownObjectFunctionsFromMapping, context);
171
207
  };
172
208
  const translatePath = (path, dependencyName) => {
173
209
  if (path.startsWith(dependencyName)) {
@@ -207,6 +243,41 @@ export default function mergeInDependentDataStructure({ importedExports, depende
207
243
  const gatherAllEquivalentSchemaPaths = (functionName, sourceAndUsageEquivalencies, dataStructure) => {
208
244
  if (!sourceAndUsageEquivalencies)
209
245
  return;
246
+ const normalizedSchemaCache = new Map();
247
+ const getSchemaIndex = (schema) => {
248
+ if (!schema)
249
+ return { byFirstPart: new Map() };
250
+ const cached = normalizedSchemaCache.get(schema);
251
+ if (cached)
252
+ return cached;
253
+ const byFirstPart = new Map();
254
+ for (const path in schema) {
255
+ let parts = splitOutsideParenthesesAndArrays(path);
256
+ if (parts[0].startsWith(functionName)) {
257
+ const baseName = cleanFunctionName(parts[0]);
258
+ if (!functionsWithMultipleTypeParams.has(baseName)) {
259
+ parts =
260
+ parts[1] === 'functionCallReturnValue'
261
+ ? ['returnValue', ...parts.slice(2)]
262
+ : parts.slice(1);
263
+ }
264
+ }
265
+ const entry = { path, parts };
266
+ // Index by the base of the first part (before any function call args)
267
+ const firstPart = parts[0] ?? '';
268
+ const parenIdx = firstPart.indexOf('(');
269
+ const firstPartBase = parenIdx >= 0 ? firstPart.slice(0, parenIdx) : firstPart;
270
+ let bucket = byFirstPart.get(firstPartBase);
271
+ if (!bucket) {
272
+ bucket = [];
273
+ byFirstPart.set(firstPartBase, bucket);
274
+ }
275
+ bucket.push(entry);
276
+ }
277
+ const result = { byFirstPart };
278
+ normalizedSchemaCache.set(schema, result);
279
+ return result;
280
+ };
210
281
  const findOrCreateEquivalentSchemaPathsEntry = (allPaths) => {
211
282
  const equivalentRoots = allPaths
212
283
  .filter((p) => p.functionName === rootScopeName ||
@@ -218,19 +289,93 @@ export default function mergeInDependentDataStructure({ importedExports, depende
218
289
  : findRelevantDependency(p.functionName),
219
290
  }));
220
291
  let equivalentSchemaPathsEntry;
292
+ // Collect the signature indices from the new roots we want to add
293
+ const newRootSignatureIndices = new Set();
294
+ for (const root of equivalentRoots) {
295
+ const idx = extractSignatureIndex(root.schemaRootPath);
296
+ if (idx !== undefined) {
297
+ newRootSignatureIndices.add(idx);
298
+ }
299
+ }
300
+ // Use espIndex Map for O(1) lookup instead of O(E) linear search.
301
+ // Falls back to linear search only when Map hit has a signature index conflict.
221
302
  for (const pathInfo of allPaths) {
222
- if (!equivalentSchemaPathsEntry) {
223
- equivalentSchemaPathsEntry = equivalentSchemaPaths.find((esp) => esp.equivalentRoots.some((er) => er.schemaRootPath === pathInfo.path &&
224
- (er.function?.name ===
225
- cleanFunctionName(pathInfo.functionName) ||
226
- (!er.function &&
227
- cleanFunctionName(pathInfo.functionName) ===
228
- rootScopeName))));
303
+ if (equivalentSchemaPathsEntry)
304
+ break;
305
+ const candidate = espIndex.get(espIndexKey(pathInfo.path, pathInfo.functionName));
306
+ if (!candidate)
307
+ continue;
308
+ // Verify no signature index conflict with the candidate entry
309
+ if (newRootSignatureIndices.size > 0) {
310
+ const existingIndicesByFunction = new Map();
311
+ for (const er of candidate.equivalentRoots) {
312
+ const funcKey = er.function
313
+ ? `${er.function.name}::${er.function.filePath}`
314
+ : '__self__';
315
+ const idx = extractSignatureIndex(er.schemaRootPath);
316
+ if (idx !== undefined) {
317
+ if (!existingIndicesByFunction.has(funcKey)) {
318
+ existingIndicesByFunction.set(funcKey, new Set());
319
+ }
320
+ existingIndicesByFunction.get(funcKey).add(idx);
321
+ }
322
+ }
323
+ let hasConflict = false;
324
+ for (const newRoot of equivalentRoots) {
325
+ const funcKey = newRoot.function
326
+ ? `${newRoot.function.name}::${newRoot.function.filePath}`
327
+ : '__self__';
328
+ const newIdx = extractSignatureIndex(newRoot.schemaRootPath);
329
+ if (newIdx !== undefined) {
330
+ const existingIndices = existingIndicesByFunction.get(funcKey);
331
+ if (existingIndices && existingIndices.size > 0) {
332
+ if (!existingIndices.has(newIdx)) {
333
+ hasConflict = true;
334
+ break;
335
+ }
336
+ }
337
+ }
338
+ }
339
+ if (hasConflict)
340
+ continue;
229
341
  }
342
+ equivalentSchemaPathsEntry = candidate;
230
343
  }
231
344
  if (!equivalentSchemaPathsEntry) {
345
+ // Before creating a new entry, filter out roots that have conflicting
346
+ // signature indices from the same function. An entry should never contain
347
+ // roots with different signature indices from the same function.
348
+ // This prevents the bug where signature[1], signature[2], signature[4]
349
+ // all get merged together due to incorrect sourceEquivalencies.
350
+ let filteredRoots = equivalentRoots;
351
+ if (newRootSignatureIndices.size > 1) {
352
+ // There are multiple signature indices - we need to filter to keep only
353
+ // one consistent set. We'll keep the roots that match the PRIMARY index
354
+ // (the first signature index we encounter from self, or the lowest index).
355
+ // First, determine the primary index - prefer the self root's index
356
+ let primaryIndex;
357
+ for (const root of equivalentRoots) {
358
+ if (!root.function) {
359
+ // This is a self root
360
+ const idx = extractSignatureIndex(root.schemaRootPath);
361
+ if (idx !== undefined) {
362
+ primaryIndex = idx;
363
+ break;
364
+ }
365
+ }
366
+ }
367
+ // If no self root has a signature index, use the lowest index
368
+ if (primaryIndex === undefined) {
369
+ primaryIndex = Math.min(...newRootSignatureIndices);
370
+ }
371
+ // Filter roots: keep if no signature index OR signature index matches primary
372
+ filteredRoots = equivalentRoots.filter((root) => {
373
+ const idx = extractSignatureIndex(root.schemaRootPath);
374
+ return idx === undefined || idx === primaryIndex;
375
+ });
376
+ }
232
377
  equivalentSchemaPathsEntry = {
233
- equivalentRoots,
378
+ equivalentRoots: filteredRoots,
234
379
  equivalentPostfixes: {},
235
380
  };
236
381
  equivalentSchemaPaths.push(equivalentSchemaPathsEntry);
@@ -248,6 +393,8 @@ export default function mergeInDependentDataStructure({ importedExports, depende
248
393
  seenRoots.add(key);
249
394
  return true;
250
395
  });
396
+ // Keep the espIndex in sync after adding/deduplicating roots
397
+ updateEspIndex(equivalentSchemaPathsEntry);
251
398
  return equivalentSchemaPathsEntry;
252
399
  };
253
400
  // Helper to extract function name from a path that starts with a function call.
@@ -303,6 +450,8 @@ export default function mergeInDependentDataStructure({ importedExports, depende
303
450
  p.functionName === rootScopeName ||
304
451
  p.functionName === effectiveFunctionName);
305
452
  const derivedBasePaths = [];
453
+ const allPathSet = new Set(allPaths.map((p) => p.path));
454
+ const derivedBasePathSet = new Set();
306
455
  // For each child path, find its equivalent parent path and derive bases
307
456
  for (const childPathInfo of childPaths) {
308
457
  const childParts = splitOutsideParenthesesAndArrays(childPathInfo.path);
@@ -351,23 +500,23 @@ export default function mergeInDependentDataStructure({ importedExports, depende
351
500
  parentHasArrayIterator &&
352
501
  !childHasArrayIterator &&
353
502
  !childBaseIsGenericSignature) {
354
- // Add child base if not already present
355
- const childBaseExists = allPaths.some((p) => p.path === childBase) ||
356
- derivedBasePaths.some((p) => p.path === childBase);
357
- if (!childBaseExists) {
503
+ // Add child base if not already present (O(1) Set lookup)
504
+ if (!allPathSet.has(childBase) &&
505
+ !derivedBasePathSet.has(childBase)) {
358
506
  derivedBasePaths.push({
359
507
  path: childBase,
360
508
  functionName: childPathInfo.functionName,
361
509
  });
510
+ derivedBasePathSet.add(childBase);
362
511
  }
363
- // Add parent base if not already present
364
- const parentBaseExists = allPaths.some((p) => p.path === parentBase) ||
365
- derivedBasePaths.some((p) => p.path === parentBase);
366
- if (!parentBaseExists) {
512
+ // Add parent base if not already present (O(1) Set lookup)
513
+ if (!allPathSet.has(parentBase) &&
514
+ !derivedBasePathSet.has(parentBase)) {
367
515
  derivedBasePaths.push({
368
516
  path: parentBase,
369
517
  functionName: parentPathInfo.functionName,
370
518
  });
519
+ derivedBasePathSet.add(parentBase);
371
520
  }
372
521
  }
373
522
  }
@@ -376,6 +525,25 @@ export default function mergeInDependentDataStructure({ importedExports, depende
376
525
  }
377
526
  allPaths.push(...derivedBasePaths);
378
527
  const entry = findOrCreateEquivalentSchemaPathsEntry(allPaths);
528
+ // Trace equivalency gathering - helps debug why paths may not be connected
529
+ if (allPaths.length > 1) {
530
+ transformationTracer.operation(rootScopeName, {
531
+ operation: 'gatherEquivalency',
532
+ stage: 'gathering',
533
+ path: translatedPath,
534
+ context: {
535
+ sourceFunction: functionName,
536
+ equivalentPaths: allPaths.map((p) => ({
537
+ path: p.path,
538
+ function: p.functionName,
539
+ })),
540
+ equivalentRoots: entry.equivalentRoots.map((r) => ({
541
+ path: r.schemaRootPath,
542
+ function: r.function?.name,
543
+ })),
544
+ },
545
+ });
546
+ }
379
547
  for (const equivalentRoot of entry.equivalentRoots) {
380
548
  const dataStructures = equivalentRoot.function &&
381
549
  equivalentRoot.function.name !== rootScopeName
@@ -404,18 +572,16 @@ export default function mergeInDependentDataStructure({ importedExports, depende
404
572
  pathParts = pathParts.slice(1);
405
573
  }
406
574
  for (const schema of schemas) {
407
- for (const schemaPath in schema) {
408
- let schemaPathParts = splitOutsideParenthesesAndArrays(schemaPath);
409
- if (schemaPathParts[0].startsWith(functionName)) {
410
- // Only normalize if the function doesn't have multiple different type parameters
411
- const baseName = cleanFunctionName(schemaPathParts[0]);
412
- if (!functionsWithMultipleTypeParams.has(baseName)) {
413
- schemaPathParts =
414
- schemaPathParts[1] === 'functionCallReturnValue'
415
- ? ['returnValue', ...schemaPathParts.slice(2)]
416
- : schemaPathParts.slice(1);
417
- }
418
- }
575
+ // Use pre-computed index to only iterate schema entries whose
576
+ // normalized first part matches pathParts[0], instead of all entries.
577
+ const schemaIndex = getSchemaIndex(schema);
578
+ const lookupPart = pathParts[0] ?? '';
579
+ const lookupParenIdx = lookupPart.indexOf('(');
580
+ const lookupBase = lookupParenIdx >= 0
581
+ ? lookupPart.slice(0, lookupParenIdx)
582
+ : lookupPart;
583
+ const candidates = schemaIndex.byFirstPart.get(lookupBase) || [];
584
+ for (const { path: schemaPath, parts: schemaPathParts, } of candidates) {
419
585
  if (schemaPathParts.length < pathParts.length)
420
586
  continue;
421
587
  // Check if all path parts match (allowing function call variants)
@@ -474,13 +640,27 @@ export default function mergeInDependentDataStructure({ importedExports, depende
474
640
  else {
475
641
  // Regular exact match - use the standard postfix logic
476
642
  const postfix = joinParenthesesAndArrays(schemaPathParts.slice(matchedUpToIndex));
477
- entry.equivalentPostfixes[postfix] = entry
478
- .equivalentPostfixes[postfix]
479
- ? bestValueFromOptions([
480
- entry.equivalentPostfixes[postfix],
481
- schema[schemaPath],
482
- ])
483
- : schema[schemaPath];
643
+ const previousValue = entry.equivalentPostfixes[postfix];
644
+ const newValue = schema[schemaPath];
645
+ entry.equivalentPostfixes[postfix] = previousValue
646
+ ? bestValueFromOptions([previousValue, newValue])
647
+ : newValue;
648
+ // Trace postfix gathering - shows where type info comes from
649
+ if (entry.equivalentPostfixes[postfix] !== previousValue) {
650
+ transformationTracer.operation(rootScopeName, {
651
+ operation: 'gatherPostfix',
652
+ stage: 'gathering',
653
+ path: postfix || '(root)',
654
+ before: previousValue,
655
+ after: entry.equivalentPostfixes[postfix],
656
+ context: {
657
+ sourceSchemaPath: schemaPath,
658
+ sourceFunction: equivalentRoot.function?.name || rootScopeName,
659
+ equivalentRootPath: equivalentRoot.schemaRootPath,
660
+ rawValue: newValue,
661
+ },
662
+ });
663
+ }
484
664
  }
485
665
  }
486
666
  }
@@ -512,10 +692,14 @@ export default function mergeInDependentDataStructure({ importedExports, depende
512
692
  const entry = findOrCreateEquivalentSchemaPathsEntry([
513
693
  { path: translatedBasePath, functionName: functionName },
514
694
  ]);
515
- entry.equivalentRoots.push({
695
+ const newRoot = {
516
696
  schemaRootPath: translatedBasePath,
517
697
  function: findRelevantDependency(functionName),
518
- });
698
+ };
699
+ entry.equivalentRoots.push(newRoot);
700
+ // Update index for the newly added root
701
+ const newRootFuncName = newRoot.function?.name ?? rootScopeName;
702
+ espIndex.set(espIndexKey(newRoot.schemaRootPath, newRootFuncName), entry);
519
703
  const basePathParts = splitOutsideParenthesesAndArrays(basePath);
520
704
  for (const schemaPath in dataStructure.returnValueSchema) {
521
705
  const schemaPathParts = splitOutsideParenthesesAndArrays(schemaPath);
@@ -529,12 +713,13 @@ export default function mergeInDependentDataStructure({ importedExports, depende
529
713
  continue;
530
714
  }
531
715
  const postfix = joinParenthesesAndArrays(schemaPathParts.slice(basePathParts.length));
532
- entry.equivalentPostfixes[postfix] = entry.equivalentPostfixes[postfix]
716
+ const newValue = entry.equivalentPostfixes[postfix]
533
717
  ? bestValueFromOptions([
534
718
  entry.equivalentPostfixes[postfix],
535
719
  dataStructure.returnValueSchema[schemaPath],
536
720
  ])
537
721
  : dataStructure.returnValueSchema[schemaPath];
722
+ entry.equivalentPostfixes[postfix] = newValue;
538
723
  }
539
724
  }
540
725
  }
@@ -573,6 +758,8 @@ export default function mergeInDependentDataStructure({ importedExports, depende
573
758
  }
574
759
  const findEquivalentSchemaPathEntry = (schemaSubPath, equivalentRootFunction) => {
575
760
  let postfix;
761
+ // Get the signature index we're looking for (if any)
762
+ const lookingForSignatureIndex = extractSignatureIndex(schemaSubPath);
576
763
  const equivalentEntry = mergedEquivalentSchemaPaths.find((esp) => esp.equivalentRoots.some((er) => {
577
764
  if ((schemaSubPath.startsWith('returnValue') ||
578
765
  schemaSubPath.startsWith('signature[')) &&
@@ -581,6 +768,26 @@ export default function mergeInDependentDataStructure({ importedExports, depende
581
768
  return false;
582
769
  }
583
770
  if (schemaSubPath === er.schemaRootPath) {
771
+ // Additional check: if we're looking for a signature path, make sure
772
+ // the entry doesn't already have DIFFERENT signature indices.
773
+ // This prevents entries with signature[1], signature[2], signature[4]
774
+ // from all being merged together.
775
+ if (lookingForSignatureIndex !== undefined) {
776
+ const hasConflictingSignatureIndex = esp.equivalentRoots.some((otherRoot) => {
777
+ // Only check roots from the same function
778
+ if (otherRoot.function?.name !== equivalentRootFunction?.name ||
779
+ otherRoot.function?.filePath !==
780
+ equivalentRootFunction?.filePath) {
781
+ return false;
782
+ }
783
+ const otherIndex = extractSignatureIndex(otherRoot.schemaRootPath);
784
+ return (otherIndex !== undefined &&
785
+ otherIndex !== lookingForSignatureIndex);
786
+ });
787
+ if (hasConflictingSignatureIndex) {
788
+ return false;
789
+ }
790
+ }
584
791
  postfix = er.postfix;
585
792
  return true;
586
793
  }
@@ -666,6 +873,9 @@ export default function mergeInDependentDataStructure({ importedExports, depende
666
873
  }
667
874
  }
668
875
  equivalentSchemaPaths = mergeAllEquivalentSchemaPaths();
876
+ // Collect schemas that need cleaning — batch the calls for the end instead of
877
+ // calling cleanSchema inside the inner root loop (which was O(roots * schemaSize)).
878
+ const schemasToClean = new Set();
669
879
  for (const esp of equivalentSchemaPaths) {
670
880
  // Pre-compute which postfixes have children to avoid O(n²) lookups in the inner loop.
671
881
  // A postfix "has children" if there are other postfixes that extend it.
@@ -744,6 +954,15 @@ export default function mergeInDependentDataStructure({ importedExports, depende
744
954
  // Skip paths that would go through a primitive type
745
955
  // e.g., if schema has 'entities[].scenarioCount': 'number', skip 'entities[].scenarioCount.sha'
746
956
  if (wouldGoThroughPrimitive(newSchemaPath, schema)) {
957
+ transformationTracer.operation(rootScopeName, {
958
+ operation: 'skipPrimitivePath',
959
+ stage: 'merged',
960
+ path: newSchemaPath,
961
+ context: {
962
+ reason: 'would go through primitive type',
963
+ postfixValue,
964
+ },
965
+ });
747
966
  continue;
748
967
  }
749
968
  // Skip setting primitive type when there are child postfixes that indicate structure.
@@ -762,20 +981,57 @@ export default function mergeInDependentDataStructure({ importedExports, depende
762
981
  // e.g., if schema has 'entities[].scenarioCount': 'number', don't overwrite with 'object'
763
982
  if (PRIMITIVE_TYPES.has(existingType) &&
764
983
  (postfixValue === 'object' || postfixValue === 'array')) {
984
+ transformationTracer.operation(rootScopeName, {
985
+ operation: 'skipTypeDowngrade',
986
+ stage: 'merged',
987
+ path: newSchemaPath,
988
+ context: {
989
+ reason: 'would overwrite primitive with object/array',
990
+ existingType,
991
+ newType: postfixValue,
992
+ },
993
+ });
765
994
  continue;
766
995
  }
767
996
  // Don't overwrite a complex/union type with a primitive
768
997
  // e.g., if schema has 'scenarios[]': 'Scenario | null', don't overwrite with 'string'
769
998
  if (!PRIMITIVE_TYPES.has(existingType) &&
770
999
  PRIMITIVE_TYPES.has(postfixValue)) {
1000
+ transformationTracer.operation(rootScopeName, {
1001
+ operation: 'skipTypeDowngrade',
1002
+ stage: 'merged',
1003
+ path: newSchemaPath,
1004
+ context: {
1005
+ reason: 'would overwrite complex type with primitive',
1006
+ existingType,
1007
+ newType: postfixValue,
1008
+ },
1009
+ });
771
1010
  continue;
772
1011
  }
773
1012
  }
1013
+ // Log the successful postfix merge
1014
+ transformationTracer.operation(rootScopeName, {
1015
+ operation: 'mergePostfix',
1016
+ stage: 'merged',
1017
+ path: newSchemaPath,
1018
+ before: existingType,
1019
+ after: postfixValue,
1020
+ context: {
1021
+ schemaRootPath: equivalentRoot.schemaRootPath,
1022
+ postfix: relevantPostfix,
1023
+ dependency: equivalentRoot.function?.name,
1024
+ },
1025
+ });
774
1026
  schema[newSchemaPath] = postfixValue;
775
1027
  }
776
- cleanSchema(schema);
1028
+ schemasToClean.add(schema);
777
1029
  }
778
1030
  }
1031
+ // Batch-clean all modified schemas once (instead of once per root per ESP entry)
1032
+ for (const schema of schemasToClean) {
1033
+ cleanSchema(schema, { stage: 'afterMergePostfix' });
1034
+ }
779
1035
  // Propagate equivalency-derived attributes to generic function call variants.
780
1036
  // When attributes are traced via equivalencies (e.g., fileComparisons from buildDataMap.signature[2]),
781
1037
  // they get written to non-generic paths (returnValue.data.x or funcName().functionCallReturnValue.data.x).
@@ -872,6 +1128,14 @@ export default function mergeInDependentDataStructure({ importedExports, depende
872
1128
  // e.g., returnValue[].label -> getOptions().functionCallReturnValue[].label
873
1129
  normalizedPath = path.replace(/^returnValue/, `${dependency.name}().functionCallReturnValue`);
874
1130
  }
1131
+ transformationTracer.operation(rootScopeName, {
1132
+ operation: 'normalizeReturnValuePath',
1133
+ stage: 'merged',
1134
+ path: normalizedPath,
1135
+ before: path,
1136
+ after: normalizedPath,
1137
+ context: { dependency: dependency.name, value },
1138
+ });
875
1139
  depSchema.returnValueSchema[normalizedPath] = value;
876
1140
  }
877
1141
  // Now copy paths from the source schema (dependencySchemas)
@@ -938,7 +1202,10 @@ export default function mergeInDependentDataStructure({ importedExports, depende
938
1202
  }
939
1203
  }
940
1204
  }
941
- cleanSchema(depSchema.returnValueSchema);
1205
+ cleanSchema(depSchema.returnValueSchema, {
1206
+ stage: 'afterMockedDependencyMerge',
1207
+ dependency: dependency.name,
1208
+ });
942
1209
  // Pull signature requirements from downstream functions into the mocked return value.
943
1210
  // When a mocked function's return flows into another function's signature (via usageEquivalencies),
944
1211
  // we need to include that function's signature requirements in the mock.
@@ -1003,7 +1270,10 @@ export default function mergeInDependentDataStructure({ importedExports, depende
1003
1270
  }
1004
1271
  }
1005
1272
  }
1006
- cleanSchema(depSchema.returnValueSchema);
1273
+ cleanSchema(depSchema.returnValueSchema, {
1274
+ stage: 'afterSignatureRequirementsMerge',
1275
+ dependency: dependency.name,
1276
+ });
1007
1277
  }
1008
1278
  // Process the input dependencySchemas FIRST (before child dependentAnalyses).
1009
1279
  // This ensures the parent entity's direct usage of dependencies takes precedence.
@@ -1039,7 +1309,11 @@ export default function mergeInDependentDataStructure({ importedExports, depende
1039
1309
  // from the copied schema. Without this, method call paths on primitives like
1040
1310
  // "projectSlug.replace(...)" would cause convertDotNotation to create nested
1041
1311
  // object structures instead of preserving the primitive type.
1042
- cleanSchema(depSchema.returnValueSchema);
1312
+ cleanSchema(depSchema.returnValueSchema, {
1313
+ stage: 'afterDependencySchemaCopy',
1314
+ filePath,
1315
+ dependency: name,
1316
+ });
1043
1317
  }
1044
1318
  // TYPE REFINEMENT: Check if dependentAnalyses has a more specific type for this dependency.
1045
1319
  // When a parent passes `entity.filePath` (string | undefined) to a child component
@@ -1098,7 +1372,12 @@ export default function mergeInDependentDataStructure({ importedExports, depende
1098
1372
  srcSchema.returnValueSchema[path];
1099
1373
  }
1100
1374
  }
1101
- cleanSchema(variantSchema.returnValueSchema);
1375
+ cleanSchema(variantSchema.returnValueSchema, {
1376
+ stage: 'afterTypeVariantCopy',
1377
+ filePath,
1378
+ dependency: name,
1379
+ variant,
1380
+ });
1102
1381
  }
1103
1382
  }
1104
1383
  }