@codeyam/codeyam-cli 0.1.0-staging.03e0fb2 → 0.1.0-staging.0797d2a

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 (816) 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 +12 -12
  4. package/analyzer-template/packages/ai/package.json +2 -2
  5. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +34 -3
  6. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +135 -0
  7. package/analyzer-template/packages/ai/src/lib/astScopes/nodeToSource.ts +19 -0
  8. package/analyzer-template/packages/ai/src/lib/astScopes/paths.ts +11 -4
  9. package/analyzer-template/packages/ai/src/lib/completionCall.ts +14 -2
  10. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +63 -9
  11. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.ts +10 -3
  12. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +16 -6
  13. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.ts +62 -0
  14. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +78 -2
  15. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +0 -33
  16. package/analyzer-template/packages/analyze/index.ts +4 -1
  17. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +19 -7
  18. package/analyzer-template/packages/analyze/src/lib/asts/index.ts +7 -2
  19. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +28 -2
  20. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +14 -37
  21. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +0 -6
  22. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +22 -6
  23. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +9 -12
  24. package/analyzer-template/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.ts +21 -0
  25. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +82 -10
  26. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +4 -0
  27. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +4 -0
  28. package/analyzer-template/packages/analyze/src/lib/files/analyzeNextRoute.ts +8 -3
  29. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +65 -28
  30. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +322 -58
  31. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +0 -98
  32. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +1707 -1466
  33. package/analyzer-template/packages/aws/package.json +7 -7
  34. package/analyzer-template/packages/database/index.ts +1 -0
  35. package/analyzer-template/packages/database/package.json +4 -4
  36. package/analyzer-template/packages/database/src/lib/kysely/db.ts +8 -0
  37. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +164 -0
  38. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +25 -15
  39. package/analyzer-template/packages/database/src/lib/loadCommits.ts +31 -20
  40. package/analyzer-template/packages/database/src/lib/loadEntities.ts +0 -6
  41. package/analyzer-template/packages/database/src/lib/loadEntity.ts +19 -8
  42. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +0 -5
  43. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +94 -143
  44. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatus.ts +58 -42
  45. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.ts +81 -65
  46. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +29 -1
  47. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +33 -5
  48. package/analyzer-template/packages/github/dist/database/index.d.ts +1 -0
  49. package/analyzer-template/packages/github/dist/database/index.d.ts.map +1 -1
  50. package/analyzer-template/packages/github/dist/database/index.js +1 -0
  51. package/analyzer-template/packages/github/dist/database/index.js.map +1 -1
  52. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -0
  53. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  54. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +5 -0
  55. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  56. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +29 -0
  57. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -0
  58. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +149 -0
  59. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  60. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +5 -0
  61. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  62. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  63. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +7 -1
  64. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  65. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  66. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +23 -13
  67. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  68. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  69. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +0 -6
  70. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  71. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.d.ts +4 -1
  72. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.d.ts.map +1 -1
  73. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js +5 -5
  74. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js.map +1 -1
  75. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  76. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
  77. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  78. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  79. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +76 -90
  80. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  81. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.d.ts.map +1 -1
  82. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  83. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  84. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts.map +1 -1
  85. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  86. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  87. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -1
  88. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
  89. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
  90. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
  91. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  92. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  93. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  94. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  95. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js +2 -0
  96. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js.map +1 -1
  97. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +1 -0
  98. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  99. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +10 -0
  100. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  101. package/analyzer-template/packages/github/package.json +1 -1
  102. package/analyzer-template/packages/types/src/enums/ProjectFramework.ts +2 -0
  103. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +1 -0
  104. package/analyzer-template/packages/types/src/types/Scenario.ts +10 -0
  105. package/analyzer-template/packages/ui-components/package.json +1 -1
  106. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  107. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  108. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js +2 -0
  109. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js.map +1 -1
  110. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +1 -0
  111. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  112. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +10 -0
  113. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  114. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts +3 -1
  115. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  116. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +22 -1
  117. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  118. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +27 -0
  119. package/analyzer-template/playwright/captureFromUrl.ts +89 -82
  120. package/analyzer-template/project/analyzeFileEntities.ts +26 -0
  121. package/analyzer-template/project/constructMockCode.ts +136 -43
  122. package/analyzer-template/project/reconcileMockDataKeys.ts +19 -14
  123. package/analyzer-template/project/runMultiScenarioServer.ts +26 -3
  124. package/analyzer-template/project/start.ts +3 -0
  125. package/analyzer-template/project/startScenarioCapture.ts +9 -0
  126. package/analyzer-template/project/writeClientLogRoute.ts +125 -0
  127. package/analyzer-template/project/writeMockDataTsx.ts +17 -0
  128. package/analyzer-template/project/writeScenarioComponents.ts +36 -7
  129. package/analyzer-template/tsconfig.json +13 -1
  130. package/background/src/lib/virtualized/project/analyzeFileEntities.js +22 -0
  131. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  132. package/background/src/lib/virtualized/project/constructMockCode.js +115 -34
  133. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  134. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +17 -11
  135. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  136. package/background/src/lib/virtualized/project/runMultiScenarioServer.js +23 -3
  137. package/background/src/lib/virtualized/project/runMultiScenarioServer.js.map +1 -1
  138. package/background/src/lib/virtualized/project/start.js +2 -0
  139. package/background/src/lib/virtualized/project/start.js.map +1 -1
  140. package/background/src/lib/virtualized/project/startScenarioCapture.js +5 -0
  141. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  142. package/background/src/lib/virtualized/project/writeClientLogRoute.js +110 -0
  143. package/background/src/lib/virtualized/project/writeClientLogRoute.js.map +1 -0
  144. package/background/src/lib/virtualized/project/writeMockDataTsx.js +12 -0
  145. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  146. package/background/src/lib/virtualized/project/writeScenarioComponents.js +29 -7
  147. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  148. package/codeyam-cli/scripts/apply-setup.js +208 -11
  149. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  150. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js +196 -0
  151. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js.map +1 -0
  152. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js +114 -0
  153. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js.map +1 -0
  154. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js +149 -0
  155. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js.map +1 -0
  156. package/codeyam-cli/src/cli.js +26 -0
  157. package/codeyam-cli/src/cli.js.map +1 -1
  158. package/codeyam-cli/src/commands/__tests__/editor.analyzeImportsArgs.test.js +47 -0
  159. package/codeyam-cli/src/commands/__tests__/editor.analyzeImportsArgs.test.js.map +1 -0
  160. package/codeyam-cli/src/commands/__tests__/editor.auditNoAutoAnalysis.test.js +71 -0
  161. package/codeyam-cli/src/commands/__tests__/editor.auditNoAutoAnalysis.test.js.map +1 -0
  162. package/codeyam-cli/src/commands/__tests__/editor.designSystem.test.js +30 -0
  163. package/codeyam-cli/src/commands/__tests__/editor.designSystem.test.js.map +1 -0
  164. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js +51 -0
  165. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js.map +1 -0
  166. package/codeyam-cli/src/commands/__tests__/editor.statePersistence.test.js +55 -0
  167. package/codeyam-cli/src/commands/__tests__/editor.statePersistence.test.js.map +1 -0
  168. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js +56 -0
  169. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js.map +1 -0
  170. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js +137 -47
  171. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js.map +1 -1
  172. package/codeyam-cli/src/commands/analyze.js +17 -7
  173. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  174. package/codeyam-cli/src/commands/default.js +14 -2
  175. package/codeyam-cli/src/commands/default.js.map +1 -1
  176. package/codeyam-cli/src/commands/editor.js +6313 -0
  177. package/codeyam-cli/src/commands/editor.js.map +1 -0
  178. package/codeyam-cli/src/commands/editorAnalyzeImportsArgs.js +23 -0
  179. package/codeyam-cli/src/commands/editorAnalyzeImportsArgs.js.map +1 -0
  180. package/codeyam-cli/src/commands/editorIsolateArgs.js +25 -0
  181. package/codeyam-cli/src/commands/editorIsolateArgs.js.map +1 -0
  182. package/codeyam-cli/src/commands/init.js +129 -45
  183. package/codeyam-cli/src/commands/init.js.map +1 -1
  184. package/codeyam-cli/src/commands/telemetry.js +37 -0
  185. package/codeyam-cli/src/commands/telemetry.js.map +1 -0
  186. package/codeyam-cli/src/data/designSystems.js +27 -0
  187. package/codeyam-cli/src/data/designSystems.js.map +1 -0
  188. package/codeyam-cli/src/data/techStacks.js +77 -0
  189. package/codeyam-cli/src/data/techStacks.js.map +1 -0
  190. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js +173 -0
  191. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js.map +1 -0
  192. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js +46 -0
  193. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js.map +1 -0
  194. package/codeyam-cli/src/utils/__tests__/devServerState.test.js +226 -0
  195. package/codeyam-cli/src/utils/__tests__/devServerState.test.js.map +1 -0
  196. package/codeyam-cli/src/utils/__tests__/editorApi.test.js +181 -0
  197. package/codeyam-cli/src/utils/__tests__/editorApi.test.js.map +1 -0
  198. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +4160 -0
  199. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -0
  200. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js +76 -0
  201. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js.map +1 -0
  202. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js +93 -0
  203. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js.map +1 -0
  204. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js +137 -0
  205. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js.map +1 -0
  206. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js +100 -0
  207. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js.map +1 -0
  208. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js +304 -0
  209. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js.map +1 -0
  210. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js +194 -0
  211. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js.map +1 -0
  212. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js +381 -0
  213. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js.map +1 -0
  214. package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js +67 -0
  215. package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js.map +1 -0
  216. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js +294 -0
  217. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js.map +1 -0
  218. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js +542 -0
  219. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js.map +1 -0
  220. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js +594 -0
  221. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js.map +1 -0
  222. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js +435 -0
  223. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js.map +1 -0
  224. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js +270 -0
  225. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js.map +1 -0
  226. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js +217 -0
  227. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js.map +1 -0
  228. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js +361 -0
  229. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js.map +1 -0
  230. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js +250 -0
  231. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js.map +1 -0
  232. package/codeyam-cli/src/utils/__tests__/editorRoadmap.test.js +1108 -0
  233. package/codeyam-cli/src/utils/__tests__/editorRoadmap.test.js.map +1 -0
  234. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js +139 -0
  235. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js.map +1 -0
  236. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js +411 -0
  237. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js.map +1 -0
  238. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +1768 -0
  239. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -0
  240. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js +413 -0
  241. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js.map +1 -0
  242. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js +143 -0
  243. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js.map +1 -0
  244. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js +66 -0
  245. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js.map +1 -0
  246. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js +53 -0
  247. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js.map +1 -0
  248. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +2121 -0
  249. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -0
  250. package/codeyam-cli/src/utils/__tests__/envFile.test.js +125 -0
  251. package/codeyam-cli/src/utils/__tests__/envFile.test.js.map +1 -0
  252. package/codeyam-cli/src/utils/__tests__/git.editor.test.js +134 -0
  253. package/codeyam-cli/src/utils/__tests__/git.editor.test.js.map +1 -0
  254. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js +177 -0
  255. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js.map +1 -0
  256. package/codeyam-cli/src/utils/__tests__/handoffContext.test.js +500 -0
  257. package/codeyam-cli/src/utils/__tests__/handoffContext.test.js.map +1 -0
  258. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js +122 -0
  259. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js.map +1 -0
  260. package/codeyam-cli/src/utils/__tests__/manualEntityAnalysis.test.js +302 -0
  261. package/codeyam-cli/src/utils/__tests__/manualEntityAnalysis.test.js.map +1 -0
  262. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js +129 -0
  263. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js.map +1 -0
  264. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js +9 -0
  265. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js.map +1 -1
  266. package/codeyam-cli/src/utils/__tests__/project.test.js +65 -0
  267. package/codeyam-cli/src/utils/__tests__/project.test.js.map +1 -0
  268. package/codeyam-cli/src/utils/__tests__/registerScenarioResult.test.js +127 -0
  269. package/codeyam-cli/src/utils/__tests__/registerScenarioResult.test.js.map +1 -0
  270. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js +118 -0
  271. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js.map +1 -0
  272. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js +284 -0
  273. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js.map +1 -0
  274. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js +121 -0
  275. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js.map +1 -0
  276. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +672 -0
  277. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -0
  278. package/codeyam-cli/src/utils/__tests__/screenshotHash.test.js +84 -0
  279. package/codeyam-cli/src/utils/__tests__/screenshotHash.test.js.map +1 -0
  280. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +51 -4
  281. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  282. package/codeyam-cli/src/utils/__tests__/telemetry.test.js +159 -0
  283. package/codeyam-cli/src/utils/__tests__/telemetry.test.js.map +1 -0
  284. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js +51 -0
  285. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js.map +1 -0
  286. package/codeyam-cli/src/utils/__tests__/testRunner.test.js +216 -0
  287. package/codeyam-cli/src/utils/__tests__/testRunner.test.js.map +1 -0
  288. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js +148 -0
  289. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js.map +1 -0
  290. package/codeyam-cli/src/utils/analysisRunner.js +39 -8
  291. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  292. package/codeyam-cli/src/utils/analyzer.js +19 -0
  293. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  294. package/codeyam-cli/src/utils/analyzerFinalization.js +100 -0
  295. package/codeyam-cli/src/utils/analyzerFinalization.js.map +1 -0
  296. package/codeyam-cli/src/utils/backgroundServer.js +105 -13
  297. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  298. package/codeyam-cli/src/utils/buildFlags.js +4 -0
  299. package/codeyam-cli/src/utils/buildFlags.js.map +1 -0
  300. package/codeyam-cli/src/utils/database.js +37 -2
  301. package/codeyam-cli/src/utils/database.js.map +1 -1
  302. package/codeyam-cli/src/utils/designSystemShowcase.js +810 -0
  303. package/codeyam-cli/src/utils/designSystemShowcase.js.map +1 -0
  304. package/codeyam-cli/src/utils/devModeEvents.js +40 -0
  305. package/codeyam-cli/src/utils/devModeEvents.js.map +1 -0
  306. package/codeyam-cli/src/utils/devServerState.js +103 -0
  307. package/codeyam-cli/src/utils/devServerState.js.map +1 -0
  308. package/codeyam-cli/src/utils/editorApi.js +95 -0
  309. package/codeyam-cli/src/utils/editorApi.js.map +1 -0
  310. package/codeyam-cli/src/utils/editorAudit.js +849 -0
  311. package/codeyam-cli/src/utils/editorAudit.js.map +1 -0
  312. package/codeyam-cli/src/utils/editorBroadcastViewport.js +26 -0
  313. package/codeyam-cli/src/utils/editorBroadcastViewport.js.map +1 -0
  314. package/codeyam-cli/src/utils/editorCapture.js +102 -0
  315. package/codeyam-cli/src/utils/editorCapture.js.map +1 -0
  316. package/codeyam-cli/src/utils/editorDeleteScenario.js +67 -0
  317. package/codeyam-cli/src/utils/editorDeleteScenario.js.map +1 -0
  318. package/codeyam-cli/src/utils/editorDevServer.js +197 -0
  319. package/codeyam-cli/src/utils/editorDevServer.js.map +1 -0
  320. package/codeyam-cli/src/utils/editorEntityChangeStatus.js +50 -0
  321. package/codeyam-cli/src/utils/editorEntityChangeStatus.js.map +1 -0
  322. package/codeyam-cli/src/utils/editorEntityHelpers.js +144 -0
  323. package/codeyam-cli/src/utils/editorEntityHelpers.js.map +1 -0
  324. package/codeyam-cli/src/utils/editorGuard.js +36 -0
  325. package/codeyam-cli/src/utils/editorGuard.js.map +1 -0
  326. package/codeyam-cli/src/utils/editorImageVerifier.js +155 -0
  327. package/codeyam-cli/src/utils/editorImageVerifier.js.map +1 -0
  328. package/codeyam-cli/src/utils/editorJournal.js +225 -0
  329. package/codeyam-cli/src/utils/editorJournal.js.map +1 -0
  330. package/codeyam-cli/src/utils/editorLoaderHelpers.js +152 -0
  331. package/codeyam-cli/src/utils/editorLoaderHelpers.js.map +1 -0
  332. package/codeyam-cli/src/utils/editorMigration.js +224 -0
  333. package/codeyam-cli/src/utils/editorMigration.js.map +1 -0
  334. package/codeyam-cli/src/utils/editorMockState.js +248 -0
  335. package/codeyam-cli/src/utils/editorMockState.js.map +1 -0
  336. package/codeyam-cli/src/utils/editorPreloadHelpers.js +135 -0
  337. package/codeyam-cli/src/utils/editorPreloadHelpers.js.map +1 -0
  338. package/codeyam-cli/src/utils/editorPreview.js +139 -0
  339. package/codeyam-cli/src/utils/editorPreview.js.map +1 -0
  340. package/codeyam-cli/src/utils/editorRecapture.js +109 -0
  341. package/codeyam-cli/src/utils/editorRecapture.js.map +1 -0
  342. package/codeyam-cli/src/utils/editorRoadmap.js +574 -0
  343. package/codeyam-cli/src/utils/editorRoadmap.js.map +1 -0
  344. package/codeyam-cli/src/utils/editorScenarioSwitch.js +149 -0
  345. package/codeyam-cli/src/utils/editorScenarioSwitch.js.map +1 -0
  346. package/codeyam-cli/src/utils/editorScenarios.js +687 -0
  347. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -0
  348. package/codeyam-cli/src/utils/editorSeedAdapter.js +475 -0
  349. package/codeyam-cli/src/utils/editorSeedAdapter.js.map +1 -0
  350. package/codeyam-cli/src/utils/editorShouldRevalidate.js +21 -0
  351. package/codeyam-cli/src/utils/editorShouldRevalidate.js.map +1 -0
  352. package/codeyam-cli/src/utils/entityChangeStatus.js +394 -0
  353. package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -0
  354. package/codeyam-cli/src/utils/entityChangeStatus.server.js +227 -0
  355. package/codeyam-cli/src/utils/entityChangeStatus.server.js.map +1 -0
  356. package/codeyam-cli/src/utils/envFile.js +90 -0
  357. package/codeyam-cli/src/utils/envFile.js.map +1 -0
  358. package/codeyam-cli/src/utils/fileMetadata.js +5 -0
  359. package/codeyam-cli/src/utils/fileMetadata.js.map +1 -1
  360. package/codeyam-cli/src/utils/fileWatcher.js +63 -9
  361. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  362. package/codeyam-cli/src/utils/git.js +103 -0
  363. package/codeyam-cli/src/utils/git.js.map +1 -1
  364. package/codeyam-cli/src/utils/glossaryAdd.js +74 -0
  365. package/codeyam-cli/src/utils/glossaryAdd.js.map +1 -0
  366. package/codeyam-cli/src/utils/handoffContext.js +257 -0
  367. package/codeyam-cli/src/utils/handoffContext.js.map +1 -0
  368. package/codeyam-cli/src/utils/install-skills.js +99 -13
  369. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  370. package/codeyam-cli/src/utils/interactiveSyncWatcher.js +126 -0
  371. package/codeyam-cli/src/utils/interactiveSyncWatcher.js.map +1 -0
  372. package/codeyam-cli/src/utils/manualEntityAnalysis.js +196 -0
  373. package/codeyam-cli/src/utils/manualEntityAnalysis.js.map +1 -0
  374. package/codeyam-cli/src/utils/parseRegisterArg.js +31 -0
  375. package/codeyam-cli/src/utils/parseRegisterArg.js.map +1 -0
  376. package/codeyam-cli/src/utils/pathIgnoring.js +19 -7
  377. package/codeyam-cli/src/utils/pathIgnoring.js.map +1 -1
  378. package/codeyam-cli/src/utils/progress.js +2 -2
  379. package/codeyam-cli/src/utils/progress.js.map +1 -1
  380. package/codeyam-cli/src/utils/project.js +15 -5
  381. package/codeyam-cli/src/utils/project.js.map +1 -1
  382. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js +11 -11
  383. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js.map +1 -1
  384. package/codeyam-cli/src/utils/queue/__tests__/job.interactiveStart.test.js +159 -0
  385. package/codeyam-cli/src/utils/queue/__tests__/job.interactiveStart.test.js.map +1 -0
  386. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +22 -0
  387. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
  388. package/codeyam-cli/src/utils/queue/heartbeat.js +13 -5
  389. package/codeyam-cli/src/utils/queue/heartbeat.js.map +1 -1
  390. package/codeyam-cli/src/utils/queue/job.js +105 -7
  391. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  392. package/codeyam-cli/src/utils/queue/manager.js +7 -6
  393. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  394. package/codeyam-cli/src/utils/registerScenarioResult.js +52 -0
  395. package/codeyam-cli/src/utils/registerScenarioResult.js.map +1 -0
  396. package/codeyam-cli/src/utils/routePatternMatching.js +129 -0
  397. package/codeyam-cli/src/utils/routePatternMatching.js.map +1 -0
  398. package/codeyam-cli/src/utils/scenarioCoverage.js +77 -0
  399. package/codeyam-cli/src/utils/scenarioCoverage.js.map +1 -0
  400. package/codeyam-cli/src/utils/scenarioMarkers.js +134 -0
  401. package/codeyam-cli/src/utils/scenarioMarkers.js.map +1 -0
  402. package/codeyam-cli/src/utils/scenariosManifest.js +313 -0
  403. package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -0
  404. package/codeyam-cli/src/utils/screenshotHash.js +26 -0
  405. package/codeyam-cli/src/utils/screenshotHash.js.map +1 -0
  406. package/codeyam-cli/src/utils/serverState.js +57 -2
  407. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  408. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +83 -11
  409. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  410. package/codeyam-cli/src/utils/simulationGateMiddleware.js +17 -1
  411. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -1
  412. package/codeyam-cli/src/utils/slugUtils.js +25 -0
  413. package/codeyam-cli/src/utils/slugUtils.js.map +1 -0
  414. package/codeyam-cli/src/utils/syncMocksMiddleware.js +2 -2
  415. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  416. package/codeyam-cli/src/utils/techStackConfig.js +38 -0
  417. package/codeyam-cli/src/utils/techStackConfig.js.map +1 -0
  418. package/codeyam-cli/src/utils/techStackConfig.test.js +85 -0
  419. package/codeyam-cli/src/utils/techStackConfig.test.js.map +1 -0
  420. package/codeyam-cli/src/utils/telemetry.js +106 -0
  421. package/codeyam-cli/src/utils/telemetry.js.map +1 -0
  422. package/codeyam-cli/src/utils/telemetryMiddleware.js +22 -0
  423. package/codeyam-cli/src/utils/telemetryMiddleware.js.map +1 -0
  424. package/codeyam-cli/src/utils/testResultCache.js +53 -0
  425. package/codeyam-cli/src/utils/testResultCache.js.map +1 -0
  426. package/codeyam-cli/src/utils/testResultCache.server.js +81 -0
  427. package/codeyam-cli/src/utils/testResultCache.server.js.map +1 -0
  428. package/codeyam-cli/src/utils/testResultCache.server.test.js +187 -0
  429. package/codeyam-cli/src/utils/testResultCache.server.test.js.map +1 -0
  430. package/codeyam-cli/src/utils/testResultCache.test.js +230 -0
  431. package/codeyam-cli/src/utils/testResultCache.test.js.map +1 -0
  432. package/codeyam-cli/src/utils/testRunner.js +350 -0
  433. package/codeyam-cli/src/utils/testRunner.js.map +1 -0
  434. package/codeyam-cli/src/utils/webappDetection.js +38 -3
  435. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  436. package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js +99 -0
  437. package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js.map +1 -0
  438. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js +153 -0
  439. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js.map +1 -0
  440. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js +107 -0
  441. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js.map +1 -0
  442. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +1000 -0
  443. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -0
  444. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js +315 -0
  445. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js.map +1 -0
  446. package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js +135 -0
  447. package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js.map +1 -0
  448. package/codeyam-cli/src/webserver/app/lib/clientErrors.js +86 -0
  449. package/codeyam-cli/src/webserver/app/lib/clientErrors.js.map +1 -0
  450. package/codeyam-cli/src/webserver/app/lib/database.js +41 -27
  451. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  452. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  453. package/codeyam-cli/src/webserver/app/lib/git.js +397 -0
  454. package/codeyam-cli/src/webserver/app/lib/git.js.map +1 -0
  455. package/codeyam-cli/src/webserver/app/routes/api.interactive-switch-scenario.js +34 -0
  456. package/codeyam-cli/src/webserver/app/routes/api.interactive-switch-scenario.js.map +1 -0
  457. package/codeyam-cli/src/webserver/app/types/editor.js +8 -0
  458. package/codeyam-cli/src/webserver/app/types/editor.js.map +1 -0
  459. package/codeyam-cli/src/webserver/backgroundServer.js +132 -43
  460. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  461. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-DTBZZfSk.js +1 -0
  462. package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-DlMph_Hm.js → EntityItem-BxclONWq.js} +5 -5
  463. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-CQgyEGV-.js +1 -0
  464. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-DN9eiJAO.js → EntityTypeIcon-BsnEOJZ_.js} +9 -9
  465. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-ByaELMbv.js +1 -0
  466. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-6WjVfhxX.js +25 -0
  467. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-ChX-Hp7W.js +3 -0
  468. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-CSP6DZrh.js → LoadingDots-By5zI316.js} +1 -1
  469. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-CMK8Q7yk.js → LogViewer-C-9zQdXg.js} +3 -3
  470. package/codeyam-cli/src/webserver/build/client/assets/MiniClaudeChat-Bs2_Oua4.js +36 -0
  471. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-TCV_HBjy.js → ReportIssueModal-DQsceHVv.js} +4 -4
  472. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-DThcm_9M.js +1 -0
  473. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-CU_TDYd8.js → ScenarioViewer-Cl4oOA3A.js} +3 -3
  474. package/codeyam-cli/src/webserver/build/client/assets/Spinner-CIil5-gb.js +34 -0
  475. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-CK7-NaPZ.js +1 -0
  476. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-BqkA9zyZ.js +1 -0
  477. package/codeyam-cli/src/webserver/build/client/assets/{_index-B8z7mjR-.js → _index-DnOgyseQ.js} +4 -4
  478. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-DZu78RI1.js → activity.(_tab)-DqM9hbNE.js} +8 -8
  479. package/codeyam-cli/src/webserver/build/client/assets/addon-canvas-DpzMmAy5.js +1 -0
  480. package/codeyam-cli/src/webserver/build/client/assets/addon-fit-YJmn1quW.js +12 -0
  481. package/codeyam-cli/src/webserver/build/client/assets/addon-web-links-C58dYPwR.js +1 -0
  482. package/codeyam-cli/src/webserver/build/client/assets/addon-webgl-DI8QOUvO.js +58 -0
  483. package/codeyam-cli/src/webserver/build/client/assets/{agent-transcripts-Dm5RS9il.js → agent-transcripts-B8NCeOrm.js} +7 -7
  484. package/codeyam-cli/src/webserver/build/client/assets/api.dev-mode-events-l0sNRNKZ.js +1 -0
  485. package/codeyam-cli/src/webserver/build/client/assets/api.editor-audit-l0sNRNKZ.js +1 -0
  486. package/codeyam-cli/src/webserver/build/client/assets/api.editor-capture-scenario-l0sNRNKZ.js +1 -0
  487. package/codeyam-cli/src/webserver/build/client/assets/api.editor-client-errors-l0sNRNKZ.js +1 -0
  488. package/codeyam-cli/src/webserver/build/client/assets/api.editor-commit-l0sNRNKZ.js +1 -0
  489. package/codeyam-cli/src/webserver/build/client/assets/api.editor-database-verify-l0sNRNKZ.js +1 -0
  490. package/codeyam-cli/src/webserver/build/client/assets/api.editor-dev-server-l0sNRNKZ.js +1 -0
  491. package/codeyam-cli/src/webserver/build/client/assets/api.editor-entity-status-l0sNRNKZ.js +1 -0
  492. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-diff-l0sNRNKZ.js +1 -0
  493. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-l0sNRNKZ.js +1 -0
  494. package/codeyam-cli/src/webserver/build/client/assets/api.editor-github-verify-l0sNRNKZ.js +1 -0
  495. package/codeyam-cli/src/webserver/build/client/assets/api.editor-handoff-l0sNRNKZ.js +1 -0
  496. package/codeyam-cli/src/webserver/build/client/assets/api.editor-hosting-verify-l0sNRNKZ.js +1 -0
  497. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-entry-l0sNRNKZ.js +1 -0
  498. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-image._-l0sNRNKZ.js +1 -0
  499. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-l0sNRNKZ.js +1 -0
  500. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-screenshot-l0sNRNKZ.js +1 -0
  501. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-update-l0sNRNKZ.js +1 -0
  502. package/codeyam-cli/src/webserver/build/client/assets/api.editor-load-commit-l0sNRNKZ.js +1 -0
  503. package/codeyam-cli/src/webserver/build/client/assets/api.editor-project-info-l0sNRNKZ.js +1 -0
  504. package/codeyam-cli/src/webserver/build/client/assets/api.editor-recapture-stale-l0sNRNKZ.js +1 -0
  505. package/codeyam-cli/src/webserver/build/client/assets/api.editor-refresh-l0sNRNKZ.js +1 -0
  506. package/codeyam-cli/src/webserver/build/client/assets/api.editor-register-scenario-l0sNRNKZ.js +1 -0
  507. package/codeyam-cli/src/webserver/build/client/assets/api.editor-rename-scenario-l0sNRNKZ.js +1 -0
  508. package/codeyam-cli/src/webserver/build/client/assets/api.editor-roadmap-l0sNRNKZ.js +1 -0
  509. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-scenario-data-l0sNRNKZ.js +1 -0
  510. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-seed-state-l0sNRNKZ.js +1 -0
  511. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-coverage-l0sNRNKZ.js +1 -0
  512. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-data-l0sNRNKZ.js +1 -0
  513. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-image._-l0sNRNKZ.js +1 -0
  514. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-prompt-l0sNRNKZ.js +1 -0
  515. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenarios-l0sNRNKZ.js +1 -0
  516. package/codeyam-cli/src/webserver/build/client/assets/api.editor-schema-l0sNRNKZ.js +1 -0
  517. package/codeyam-cli/src/webserver/build/client/assets/api.editor-session-l0sNRNKZ.js +1 -0
  518. package/codeyam-cli/src/webserver/build/client/assets/api.editor-switch-scenario-l0sNRNKZ.js +1 -0
  519. package/codeyam-cli/src/webserver/build/client/assets/api.editor-test-results-l0sNRNKZ.js +1 -0
  520. package/codeyam-cli/src/webserver/build/client/assets/api.editor-verify-routes-l0sNRNKZ.js +1 -0
  521. package/codeyam-cli/src/webserver/build/client/assets/api.interactive-switch-scenario-l0sNRNKZ.js +1 -0
  522. package/codeyam-cli/src/webserver/build/client/assets/{book-open-Bp5FLkd4.js → book-open-BFSIqZgO.js} +2 -2
  523. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-DQJA9f4o.js → chevron-down-B9fDzFVh.js} +2 -2
  524. package/codeyam-cli/src/webserver/build/client/assets/chunk-UVKPFVEO-Bmq2apuh.js +43 -0
  525. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-B6C4LY9o.js → circle-check-DLPObLUx.js} +2 -2
  526. package/codeyam-cli/src/webserver/build/client/assets/{copy-6nzYCu0G.js → copy-DXEmO0TD.js} +3 -3
  527. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-BwyFiRot.js +41 -0
  528. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-Coe5NhbS.js +1 -0
  529. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-CCKUIm0S.svg → cy-logo-cli-DoA97ML3.svg} +2 -2
  530. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-iRhRIFlp.js +1 -0
  531. package/codeyam-cli/src/webserver/build/client/assets/editor._tab-BZPBzV73.js +1 -0
  532. package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-DhtVC4aI.js +161 -0
  533. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-C6fEYHrh.js +41 -0
  534. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-C6PQhwY5.js → entity._sha._-pc-vc6wO.js} +14 -13
  535. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-C8AyYgYT.js +6 -0
  536. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DziaVQX1.js +6 -0
  537. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-BTcpgIpC.js +6 -0
  538. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-C7ysA4Jq.js → entity._sha_.edit._scenarioId-D_O_ajfZ.js} +2 -2
  539. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-CU6EUArK.js → entry.client-j1Vi0bco.js} +6 -6
  540. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-Daa96Fr1.js +1 -0
  541. package/codeyam-cli/src/webserver/build/client/assets/files-kuny2Q_s.js +1 -0
  542. package/codeyam-cli/src/webserver/build/client/assets/git-DgCZPMie.js +1 -0
  543. package/codeyam-cli/src/webserver/build/client/assets/globals-L-aUIeux.css +1 -0
  544. package/codeyam-cli/src/webserver/build/client/assets/{index-DuYcwYp_.js → index-BliGSSpl.js} +1 -1
  545. package/codeyam-cli/src/webserver/build/client/assets/index-SqjQKTdH.js +15 -0
  546. package/codeyam-cli/src/webserver/build/client/assets/{index-7-1FmlHo.js → index-vyrZD2g4.js} +1 -1
  547. package/codeyam-cli/src/webserver/build/client/assets/jsx-runtime-D_zvdyIk.js +9 -0
  548. package/codeyam-cli/src/webserver/build/client/assets/labs-c3yLxSEp.js +1 -0
  549. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-BnDcD54R.js → loader-circle-D-q28GLF.js} +2 -2
  550. package/codeyam-cli/src/webserver/build/client/assets/manifest-79d0d81a.js +1 -0
  551. package/codeyam-cli/src/webserver/build/client/assets/memory-CEWIUC4t.js +101 -0
  552. package/codeyam-cli/src/webserver/build/client/assets/{pause-DhQX2g22.js → pause-BP6fitdh.js} +3 -3
  553. package/codeyam-cli/src/webserver/build/client/assets/root-L2V0jea7.js +80 -0
  554. package/codeyam-cli/src/webserver/build/client/assets/{search-DborVoKD.js → search-BooqacKS.js} +2 -2
  555. package/codeyam-cli/src/webserver/build/client/assets/settings-BM0nbryO.js +1 -0
  556. package/codeyam-cli/src/webserver/build/client/assets/simulations-ovy6FjRY.js +1 -0
  557. package/codeyam-cli/src/webserver/build/client/assets/{terminal-Bs4NC-VZ.js → terminal-DHemCJIs.js} +3 -3
  558. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-DTf3Jojp.js → triangle-alert-D87ekDl8.js} +2 -2
  559. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-Dk0Tciqg.js +1 -0
  560. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-C8QvIe05.js +2 -0
  561. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-jkCytuYz.js +1 -0
  562. package/codeyam-cli/src/webserver/build/client/assets/useToast-BgqkixU9.js +1 -0
  563. package/codeyam-cli/src/webserver/build/client/assets/xterm-BqvuqXEL.js +27 -0
  564. package/codeyam-cli/src/webserver/build/client/sound-test.html +98 -0
  565. package/codeyam-cli/src/webserver/build/server/assets/analysisRunner-QgInFGdU.js +16 -0
  566. package/codeyam-cli/src/webserver/build/server/assets/index-zblh9auj.js +1 -0
  567. package/codeyam-cli/src/webserver/build/server/assets/init-DaE0CBjk.js +14 -0
  568. package/codeyam-cli/src/webserver/build/server/assets/progress-CHTtrxFG.js +1 -0
  569. package/codeyam-cli/src/webserver/build/server/assets/server-build-CNvgz1cC.js +853 -0
  570. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  571. package/codeyam-cli/src/webserver/build-info.json +5 -5
  572. package/codeyam-cli/src/webserver/devServer.js +39 -5
  573. package/codeyam-cli/src/webserver/devServer.js.map +1 -1
  574. package/codeyam-cli/src/webserver/editorProxy.js +1263 -0
  575. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -0
  576. package/codeyam-cli/src/webserver/idleDetector.js +130 -0
  577. package/codeyam-cli/src/webserver/idleDetector.js.map +1 -0
  578. package/codeyam-cli/src/webserver/mockStateEvents.js +28 -0
  579. package/codeyam-cli/src/webserver/mockStateEvents.js.map +1 -0
  580. package/codeyam-cli/src/webserver/public/sound-test.html +98 -0
  581. package/codeyam-cli/src/webserver/scripts/codeyam-preload.mjs +414 -0
  582. package/codeyam-cli/src/webserver/scripts/journalCapture.ts +283 -0
  583. package/codeyam-cli/src/webserver/server.js +446 -1
  584. package/codeyam-cli/src/webserver/server.js.map +1 -1
  585. package/codeyam-cli/src/webserver/terminalServer.js +1043 -0
  586. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -0
  587. package/codeyam-cli/templates/__tests__/editor-step-hook.prompt-capture.test.ts +118 -0
  588. package/codeyam-cli/templates/chrome-extension-react/EXTENSION_SETUP.md +75 -0
  589. package/codeyam-cli/templates/chrome-extension-react/README.md +46 -0
  590. package/codeyam-cli/templates/chrome-extension-react/gitignore +15 -0
  591. package/codeyam-cli/templates/chrome-extension-react/index.html +12 -0
  592. package/codeyam-cli/templates/chrome-extension-react/package.json +27 -0
  593. package/codeyam-cli/templates/chrome-extension-react/popup.html +12 -0
  594. package/codeyam-cli/templates/chrome-extension-react/public/manifest.json +15 -0
  595. package/codeyam-cli/templates/chrome-extension-react/src/background/service-worker.ts +7 -0
  596. package/codeyam-cli/templates/chrome-extension-react/src/globals.css +6 -0
  597. package/codeyam-cli/templates/chrome-extension-react/src/lib/storage.ts +37 -0
  598. package/codeyam-cli/templates/chrome-extension-react/src/popup/App.tsx +12 -0
  599. package/codeyam-cli/templates/chrome-extension-react/src/popup/main.tsx +10 -0
  600. package/codeyam-cli/templates/chrome-extension-react/tsconfig.json +24 -0
  601. package/codeyam-cli/templates/chrome-extension-react/vite.config.ts +41 -0
  602. package/codeyam-cli/templates/codeyam-editor-claude.md +149 -0
  603. package/codeyam-cli/templates/codeyam-editor-codex.md +61 -0
  604. package/codeyam-cli/templates/codeyam-editor-gemini.md +59 -0
  605. package/codeyam-cli/templates/codeyam-editor-reference.md +216 -0
  606. package/codeyam-cli/templates/design-systems/clean-dashboard-design-system.md +255 -0
  607. package/codeyam-cli/templates/design-systems/editorial-design-system.md +267 -0
  608. package/codeyam-cli/templates/design-systems/mono-brutalist-design-system.md +256 -0
  609. package/codeyam-cli/templates/design-systems/neo-brutalist-design-system.md +294 -0
  610. package/codeyam-cli/templates/editor-step-hook.py +368 -0
  611. package/codeyam-cli/templates/expo-react-native/MOBILE_SETUP.md +288 -0
  612. package/codeyam-cli/templates/expo-react-native/README.md +41 -0
  613. package/codeyam-cli/templates/expo-react-native/__tests__/.gitkeep +0 -0
  614. package/codeyam-cli/templates/expo-react-native/app/_layout.tsx +15 -0
  615. package/codeyam-cli/templates/expo-react-native/app/index.tsx +36 -0
  616. package/codeyam-cli/templates/expo-react-native/app.json +29 -0
  617. package/codeyam-cli/templates/expo-react-native/babel.config.js +10 -0
  618. package/codeyam-cli/templates/expo-react-native/gitignore +14 -0
  619. package/codeyam-cli/templates/expo-react-native/global.css +10 -0
  620. package/codeyam-cli/templates/expo-react-native/lib/storage.ts +32 -0
  621. package/codeyam-cli/templates/expo-react-native/lib/theme.ts +73 -0
  622. package/codeyam-cli/templates/expo-react-native/metro.config.js +6 -0
  623. package/codeyam-cli/templates/expo-react-native/nativewind-env.d.ts +1 -0
  624. package/codeyam-cli/templates/expo-react-native/package.json +54 -0
  625. package/codeyam-cli/templates/expo-react-native/patches/expo-modules-autolinking+3.0.24.patch +29 -0
  626. package/codeyam-cli/templates/expo-react-native/tailwind.config.js +10 -0
  627. package/codeyam-cli/templates/expo-react-native/tsconfig.json +10 -0
  628. package/codeyam-cli/templates/isolation-route/expo-router.tsx.template +54 -0
  629. package/codeyam-cli/templates/isolation-route/next-app.tsx.template +80 -0
  630. package/codeyam-cli/templates/isolation-route/next-pages.tsx.template +79 -0
  631. package/codeyam-cli/templates/isolation-route/vite-react.tsx.template +78 -0
  632. package/codeyam-cli/templates/msw/browser-setup.ts.template +47 -0
  633. package/codeyam-cli/templates/msw/handler-router.ts.template +47 -0
  634. package/codeyam-cli/templates/msw/server-setup.ts.template +52 -0
  635. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_PATTERNS.md +308 -0
  636. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_UPGRADE.md +304 -0
  637. package/codeyam-cli/templates/nextjs-prisma-sqlite/DATABASE.md +126 -0
  638. package/codeyam-cli/templates/nextjs-prisma-sqlite/FEATURE_PATTERNS.md +37 -0
  639. package/codeyam-cli/templates/nextjs-prisma-sqlite/README.md +53 -0
  640. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/api/todos/route.ts +17 -0
  641. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/codeyam-isolate/layout.tsx +12 -0
  642. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/globals.css +26 -0
  643. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/layout.tsx +34 -0
  644. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/lib/prisma.ts +24 -0
  645. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/page.tsx +10 -0
  646. package/codeyam-cli/templates/nextjs-prisma-sqlite/env +4 -0
  647. package/codeyam-cli/templates/nextjs-prisma-sqlite/eslint.config.mjs +11 -0
  648. package/codeyam-cli/templates/nextjs-prisma-sqlite/gitignore +65 -0
  649. package/codeyam-cli/templates/nextjs-prisma-sqlite/next.config.ts +14 -0
  650. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +39 -0
  651. package/codeyam-cli/templates/nextjs-prisma-sqlite/postcss.config.mjs +7 -0
  652. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/schema.prisma +27 -0
  653. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/seed.ts +40 -0
  654. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma.config.ts +12 -0
  655. package/codeyam-cli/templates/nextjs-prisma-sqlite/seed-adapter.ts +140 -0
  656. package/codeyam-cli/templates/nextjs-prisma-sqlite/tsconfig.json +34 -0
  657. package/codeyam-cli/templates/nextjs-prisma-sqlite/vitest.config.ts +13 -0
  658. package/codeyam-cli/templates/nextjs-prisma-supabase/README.md +52 -0
  659. package/codeyam-cli/templates/nextjs-prisma-supabase/SUPABASE_SETUP.md +104 -0
  660. package/codeyam-cli/templates/nextjs-prisma-supabase/app/api/todos/route.ts +17 -0
  661. package/codeyam-cli/templates/nextjs-prisma-supabase/app/globals.css +26 -0
  662. package/codeyam-cli/templates/nextjs-prisma-supabase/app/layout.tsx +34 -0
  663. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/prisma.ts +20 -0
  664. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/supabase.ts +12 -0
  665. package/codeyam-cli/templates/nextjs-prisma-supabase/app/page.tsx +10 -0
  666. package/codeyam-cli/templates/nextjs-prisma-supabase/env +9 -0
  667. package/codeyam-cli/templates/nextjs-prisma-supabase/eslint.config.mjs +11 -0
  668. package/codeyam-cli/templates/nextjs-prisma-supabase/gitignore +40 -0
  669. package/codeyam-cli/templates/nextjs-prisma-supabase/next.config.ts +11 -0
  670. package/codeyam-cli/templates/nextjs-prisma-supabase/package.json +37 -0
  671. package/codeyam-cli/templates/nextjs-prisma-supabase/postcss.config.mjs +7 -0
  672. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/schema.prisma +27 -0
  673. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/seed.ts +39 -0
  674. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma.config.ts +12 -0
  675. package/codeyam-cli/templates/nextjs-prisma-supabase/tsconfig.json +34 -0
  676. package/codeyam-cli/templates/seed-adapters/supabase.ts +475 -0
  677. package/codeyam-cli/templates/skills/codeyam-dev-mode/SKILL.md +237 -0
  678. package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +244 -0
  679. package/codeyam-cli/templates/{codeyam-memory.md → skills/codeyam-memory/SKILL.md} +215 -0
  680. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/deprecated-prompt.md +100 -0
  681. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/detect-deprecated-patterns.mjs +139 -0
  682. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/find-exports.mjs +52 -0
  683. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/misleading-api-prompt.md +117 -0
  684. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/read-json-field.mjs +61 -0
  685. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/ripgrep-fallback.mjs +155 -0
  686. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/analyze-prompt.md +46 -0
  687. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/cleanup.mjs +13 -0
  688. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/filter-session.mjs +95 -0
  689. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/preprocess.mjs +160 -0
  690. package/package.json +18 -10
  691. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +22 -4
  692. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  693. package/packages/ai/src/lib/astScopes/methodSemantics.js +99 -0
  694. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  695. package/packages/ai/src/lib/astScopes/nodeToSource.js +16 -0
  696. package/packages/ai/src/lib/astScopes/nodeToSource.js.map +1 -1
  697. package/packages/ai/src/lib/astScopes/paths.js +12 -3
  698. package/packages/ai/src/lib/astScopes/paths.js.map +1 -1
  699. package/packages/ai/src/lib/completionCall.js +10 -2
  700. package/packages/ai/src/lib/completionCall.js.map +1 -1
  701. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +48 -10
  702. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  703. package/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.js +9 -2
  704. package/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.js.map +1 -1
  705. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +14 -4
  706. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  707. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js +54 -0
  708. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js.map +1 -0
  709. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js +34 -0
  710. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js.map +1 -0
  711. package/packages/ai/src/lib/generateEntityScenarioData.js +57 -2
  712. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  713. package/packages/ai/src/lib/generateExecutionFlows.js +0 -11
  714. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
  715. package/packages/analyze/index.js +1 -1
  716. package/packages/analyze/index.js.map +1 -1
  717. package/packages/analyze/src/lib/ProjectAnalyzer.js +13 -4
  718. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  719. package/packages/analyze/src/lib/asts/index.js +4 -2
  720. package/packages/analyze/src/lib/asts/index.js.map +1 -1
  721. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +16 -2
  722. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  723. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +14 -27
  724. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  725. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +0 -5
  726. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  727. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +12 -2
  728. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  729. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +9 -7
  730. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  731. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js +14 -0
  732. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js.map +1 -1
  733. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +44 -11
  734. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  735. package/packages/analyze/src/lib/files/analyzeChange.js +1 -0
  736. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  737. package/packages/analyze/src/lib/files/analyzeInitial.js +1 -0
  738. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  739. package/packages/analyze/src/lib/files/analyzeNextRoute.js +5 -1
  740. package/packages/analyze/src/lib/files/analyzeNextRoute.js.map +1 -1
  741. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +54 -27
  742. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -1
  743. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +185 -28
  744. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  745. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +0 -40
  746. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -1
  747. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +1386 -1197
  748. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  749. package/packages/database/index.js +1 -0
  750. package/packages/database/index.js.map +1 -1
  751. package/packages/database/src/lib/kysely/db.js +5 -0
  752. package/packages/database/src/lib/kysely/db.js.map +1 -1
  753. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +149 -0
  754. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  755. package/packages/database/src/lib/loadAnalysis.js +7 -1
  756. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  757. package/packages/database/src/lib/loadCommits.js +23 -13
  758. package/packages/database/src/lib/loadCommits.js.map +1 -1
  759. package/packages/database/src/lib/loadEntities.js +0 -6
  760. package/packages/database/src/lib/loadEntities.js.map +1 -1
  761. package/packages/database/src/lib/loadEntity.js +5 -5
  762. package/packages/database/src/lib/loadEntity.js.map +1 -1
  763. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
  764. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  765. package/packages/database/src/lib/updateCommitMetadata.js +76 -90
  766. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  767. package/packages/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  768. package/packages/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  769. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  770. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  771. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
  772. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
  773. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  774. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  775. package/packages/types/src/enums/ProjectFramework.js +2 -0
  776. package/packages/types/src/enums/ProjectFramework.js.map +1 -1
  777. package/packages/utils/src/lib/fs/rsyncCopy.js +22 -1
  778. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  779. package/scripts/npm-post-install.cjs +34 -0
  780. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CtmbP4Gl.js +0 -1
  781. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-B-0PjGOU.js +0 -1
  782. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-C1rIyZdV.js +0 -34
  783. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-rE_fI2h2.js +0 -25
  784. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-CnatsCw2.js +0 -3
  785. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-CG2uh31y.js +0 -1
  786. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-D7IoaWUW.js +0 -1
  787. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-7VptmeIr.js +0 -51
  788. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-D-QUFOwe.js +0 -21
  789. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +0 -1
  790. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DmzSmblj.js +0 -1
  791. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DVTcUnur.js +0 -6
  792. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-BVgNO76F.js +0 -6
  793. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-EWpfFU4X.js +0 -1
  794. package/codeyam-cli/src/webserver/build/client/assets/files-CrxAoWIL.js +0 -1
  795. package/codeyam-cli/src/webserver/build/client/assets/git-BldHtKeW.js +0 -15
  796. package/codeyam-cli/src/webserver/build/client/assets/globals-CLmFdUae.css +0 -1
  797. package/codeyam-cli/src/webserver/build/client/assets/labs-CPPVOSWB.js +0 -1
  798. package/codeyam-cli/src/webserver/build/client/assets/manifest-717e346a.js +0 -1
  799. package/codeyam-cli/src/webserver/build/client/assets/memory-0wMU4KXe.js +0 -93
  800. package/codeyam-cli/src/webserver/build/client/assets/root-DqfSDjyQ.js +0 -62
  801. package/codeyam-cli/src/webserver/build/client/assets/settings-BWunYSXt.js +0 -1
  802. package/codeyam-cli/src/webserver/build/client/assets/simulations-BtrtCYJg.js +0 -1
  803. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-D_bDZyDU.js +0 -1
  804. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-DZp6rrQD.js +0 -2
  805. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-BsQb6rFd.js +0 -1
  806. package/codeyam-cli/src/webserver/build/client/assets/useToast-BOur3mUv.js +0 -1
  807. package/codeyam-cli/src/webserver/build/server/assets/index-B8jmgmn2.js +0 -1
  808. package/codeyam-cli/src/webserver/build/server/assets/server-build-9OU4lmvL.js +0 -285
  809. package/scripts/finalize-analyzer.cjs +0 -13
  810. /package/codeyam-cli/templates/{codeyam-diagnose.md → commands/codeyam-diagnose.md} +0 -0
  811. /package/codeyam-cli/templates/{codeyam-debug.md → skills/codeyam-debug/SKILL.md} +0 -0
  812. /package/codeyam-cli/templates/{codeyam-new-rule.md → skills/codeyam-new-rule/SKILL.md} +0 -0
  813. /package/codeyam-cli/templates/{codeyam-setup.md → skills/codeyam-setup/SKILL.md} +0 -0
  814. /package/codeyam-cli/templates/{codeyam-sim.md → skills/codeyam-sim/SKILL.md} +0 -0
  815. /package/codeyam-cli/templates/{codeyam-test.md → skills/codeyam-test/SKILL.md} +0 -0
  816. /package/codeyam-cli/templates/{codeyam-verify.md → skills/codeyam-verify/SKILL.md} +0 -0
@@ -1,10 +1,10 @@
1
1
  {
2
- "buildTimestamp": "2026-02-24T22:52:44.990Z",
3
- "buildTime": 1771973564990,
4
- "gitCommit": "03e0fb2ed10ce844a1a5215adf9aeb200ef627bb",
5
- "nodeVersion": "v20.20.0",
6
- "contentHash": "4a186f37ec4532e5a53e13c6fe2b2ce95a580cd45c739dc01a9ed7688ff1f99a",
7
- "buildNumber": 704,
8
- "semanticVersion": "0.1.704",
9
- "version": "0.1.704 (2026-02-24T22:52+4a186f3)"
2
+ "buildTimestamp": "2026-07-09T13:31:09.024Z",
3
+ "buildTime": 1783603869024,
4
+ "gitCommit": "0797d2aafbef4a3477721474f21ea4003d547f70",
5
+ "nodeVersion": "v20.20.2",
6
+ "contentHash": "c92230c027acb71cab56d2a696876a6a52206bfadd59fbc31a512b00a7ee8826",
7
+ "buildNumber": 1353,
8
+ "semanticVersion": "0.1.1353",
9
+ "version": "0.1.1353 (2026-07-09T13:31+c92230c)"
10
10
  }
@@ -1,7 +1,7 @@
1
1
 
2
- [2/24/2026, 10:52:44 PM] > codeyam-combo@1.0.0 mergeDependencies
3
- [2/24/2026, 10:52:44 PM] > node ./scripts/mergePackageJsonFiles.cjs
2
+ [7/9/2026, 1:31:08 PM] > codeyam-combo@1.0.0 mergeDependencies
3
+ [7/9/2026, 1:31:08 PM] > node ./scripts/mergePackageJsonFiles.cjs
4
4
 
5
5
 
6
- [2/24/2026, 10:52:44 PM] Merged dependencies into root package.json
6
+ [7/9/2026, 1:31:08 PM] Merged dependencies into root package.json
7
7
 
@@ -9,7 +9,7 @@
9
9
  "dependencies": {
10
10
  "@aws-sdk/client-cloudwatch-logs": "^3.990.0",
11
11
  "@aws-sdk/client-cloudfront": "^3.990.0",
12
- "@aws-sdk/client-codebuild": "^3.995.0",
12
+ "@aws-sdk/client-codebuild": "^3.1014.0",
13
13
  "@aws-sdk/client-dynamodb": "^3.990.0",
14
14
  "@aws-sdk/client-ec2": "^3.990.0",
15
15
  "@aws-sdk/client-ecr": "^3.990.0",
@@ -18,7 +18,7 @@
18
18
  "@aws-sdk/client-sqs": "^3.990.0",
19
19
  "@aws-sdk/lib-storage": "^3.990.0",
20
20
  "@aws-sdk/util-dynamodb": "^3.990.0",
21
- "@octokit/auth-app": "^8.1.0",
21
+ "@octokit/auth-app": "^8.2.0",
22
22
  "@octokit/rest": "^22.0.0",
23
23
  "@sendgrid/mail": "^8.1.4",
24
24
  "@supabase/supabase-js": "2.88.0",
@@ -30,7 +30,7 @@
30
30
  "jest": "^30.2.0",
31
31
  "jsdom": "^27.4.0",
32
32
  "jsonc-parser": "^3.2.1",
33
- "lru-cache": "^11.2.5",
33
+ "lru-cache": "^11.2.7",
34
34
  "openai": "^6.16.0",
35
35
  "p-queue": "^9.1.0",
36
36
  "p-retry": "^7.1.1",
@@ -38,31 +38,31 @@
38
38
  "pixelmatch": "^5.3.0",
39
39
  "playwright": "1.58.0",
40
40
  "sharp": "^0.34.5",
41
- "simple-git": "^3.28.0",
41
+ "simple-git": "^3.32.2",
42
42
  "undici": "^7.18.2",
43
43
  "uuid": "^11.1.0",
44
44
  "pluralize": "^8.0.0",
45
45
  "yargs": "^18.0.0",
46
46
  "json5": "^2.2.3",
47
- "@anthropic-ai/sdk": "^0.74.0",
48
- "@aws-sdk/s3-request-presigner": "^3.990.0",
49
- "better-sqlite3": "^12.4.1",
47
+ "@anthropic-ai/sdk": "^0.78.0",
48
+ "@aws-sdk/s3-request-presigner": "^3.1019.0",
49
+ "better-sqlite3": "^12.6.2",
50
50
  "fetch-retry": "^6.0.0",
51
- "kysely": "^0.28.11",
52
- "pg": "^8.16.3",
51
+ "kysely": "^0.28.14",
52
+ "pg": "^8.20.0",
53
53
  "@octokit/request": "^10.0.3",
54
- "lucide-react": "^0.556.0",
54
+ "lucide-react": "^0.577.0",
55
55
  "react-resizable": "^3.0.5"
56
56
  },
57
57
  "devDependencies": {
58
58
  "typescript": "^5.9.3",
59
59
  "@jest/types": "^30.2.0",
60
- "@types/node": "^25.0.2",
60
+ "@types/node": "^25.3.3",
61
61
  "@types/yargs": "^17.0.34",
62
62
  "@types/jsdom": "^27.0.0",
63
63
  "@types/better-sqlite3": "^7.6.13",
64
64
  "@types/jest": "^30.0.0",
65
- "@types/pg": "^8.15.5",
65
+ "@types/pg": "^8.20.0",
66
66
  "@types/ws": "^8.18.1",
67
67
  "@octokit/types": "^16.0.0",
68
68
  "@types/react": "^19.2.7",
@@ -9,12 +9,12 @@
9
9
  "author": "",
10
10
  "license": "ISC",
11
11
  "dependencies": {
12
- "@anthropic-ai/sdk": "^0.74.0",
12
+ "@anthropic-ai/sdk": "^0.78.0",
13
13
  "jsdom": "^27.4.0",
14
14
  "p-queue": "^9.1.0",
15
15
  "p-retry": "^7.1.1",
16
16
  "piscina": "^5.1.4",
17
- "lru-cache": "^11.2.5"
17
+ "lru-cache": "^11.2.7"
18
18
  },
19
19
  "devDependencies": {
20
20
  "@types/jsdom": "^27.0.0"
@@ -909,11 +909,42 @@ export class ASTScopeAnalyzer {
909
909
  if (tsType.flags & ts.TypeFlags.Union) {
910
910
  const unionType = tsType as ts.UnionType;
911
911
 
912
- // Check if it's a string literal union
913
- const isAllStringLiterals = unionType.types.every(
912
+ // Check if it's a string literal union (optionally with null/undefined).
913
+ // Preserve literal values so the LLM knows which values are valid when
914
+ // generating mock data. Without this, types like
915
+ // 'suggestion' | 'warning' | 'achievement' | 'tip' become just 'string'
916
+ // and the LLM generates invalid values (e.g. "Motivational").
917
+ const stringLiterals = unionType.types.filter(
914
918
  (t) => (t.flags & ts.TypeFlags.StringLiteral) !== 0,
915
919
  );
916
- if (isAllStringLiterals) return 'string';
920
+ const nullishTypes = unionType.types.filter(
921
+ (t) =>
922
+ (t.flags & ts.TypeFlags.Undefined) !== 0 ||
923
+ (t.flags & ts.TypeFlags.Null) !== 0,
924
+ );
925
+
926
+ if (
927
+ stringLiterals.length > 0 &&
928
+ stringLiterals.length + nullishTypes.length === unionType.types.length
929
+ ) {
930
+ const literalValues = stringLiterals.map(
931
+ (t) => `'${(t as ts.LiteralType).value}'`,
932
+ );
933
+ const literalUnion = literalValues.join(' | ');
934
+
935
+ if (nullishTypes.length > 0) {
936
+ const nullishParts: string[] = [];
937
+ if (nullishTypes.some((t) => (t.flags & ts.TypeFlags.Null) !== 0))
938
+ nullishParts.push('null');
939
+ if (
940
+ nullishTypes.some((t) => (t.flags & ts.TypeFlags.Undefined) !== 0)
941
+ )
942
+ nullishParts.push('undefined');
943
+ return `${literalUnion} | ${nullishParts.join(' | ')}`;
944
+ }
945
+
946
+ return literalUnion;
947
+ }
917
948
 
918
949
  // Check if it's a number literal union
919
950
  const isAllNumberLiterals = unionType.types.every(
@@ -895,6 +895,132 @@ export class UseStateSemantics implements MethodSemantics {
895
895
  }
896
896
  }
897
897
 
898
+ // ─── Set/Map method semantics ──────────────────────────────────────────
899
+ //
900
+ // Set/Map membership operations (.has, .delete, .add, .get, .set, .clear)
901
+ // don't create data flow equivalencies — they're membership checks or
902
+ // mutations, not transformations that propagate schema structure.
903
+ // Without these semantics, code like `filterRatings.has(articleId)` creates
904
+ // spurious equivalencies (332 entries in the Margo LibraryPage case).
905
+
906
+ /**
907
+ * Set.has() / Map.has() — membership check, returns boolean
908
+ */
909
+ export class CollectionHasSemantics implements MethodSemantics {
910
+ getReturnType(): string {
911
+ return 'boolean';
912
+ }
913
+
914
+ addEquivalences(
915
+ methodCallPath: StructuredPath,
916
+ _sourcePath: StructuredPath,
917
+ context: AnalysisContext,
918
+ ): void {
919
+ context.addType(methodCallPath, 'boolean');
920
+ }
921
+
922
+ isComplete(): boolean {
923
+ return true;
924
+ }
925
+ }
926
+
927
+ /**
928
+ * Set.delete() / Map.delete() — removal, returns boolean
929
+ */
930
+ export class CollectionDeleteSemantics implements MethodSemantics {
931
+ getReturnType(): string {
932
+ return 'boolean';
933
+ }
934
+
935
+ addEquivalences(
936
+ methodCallPath: StructuredPath,
937
+ _sourcePath: StructuredPath,
938
+ context: AnalysisContext,
939
+ ): void {
940
+ context.addType(methodCallPath, 'boolean');
941
+ }
942
+
943
+ isComplete(): boolean {
944
+ return true;
945
+ }
946
+ }
947
+
948
+ /**
949
+ * Set.add() — adds an element, returns the Set (for chaining)
950
+ */
951
+ export class SetAddSemantics implements MethodSemantics {
952
+ getReturnType(): string {
953
+ return 'object'; // Returns the Set itself
954
+ }
955
+
956
+ addEquivalences(
957
+ _methodCallPath: StructuredPath,
958
+ _sourcePath: StructuredPath,
959
+ _context: AnalysisContext,
960
+ ): void {
961
+ // No equivalencies — add() doesn't create data flow
962
+ }
963
+
964
+ isComplete(): boolean {
965
+ return true;
966
+ }
967
+ }
968
+
969
+ /**
970
+ * Set.clear() / Map.clear() — removes all elements, returns void
971
+ */
972
+ export class CollectionClearSemantics implements MethodSemantics {
973
+ getReturnType(): string {
974
+ return 'void';
975
+ }
976
+
977
+ addEquivalences(): void {
978
+ // No equivalencies
979
+ }
980
+
981
+ isComplete(): boolean {
982
+ return true;
983
+ }
984
+ }
985
+
986
+ /**
987
+ * Map.get() — retrieves a value by key, returns unknown (value type)
988
+ */
989
+ export class MapGetSemantics implements MethodSemantics {
990
+ getReturnType(): string {
991
+ return 'unknown';
992
+ }
993
+
994
+ addEquivalences(
995
+ _methodCallPath: StructuredPath,
996
+ _sourcePath: StructuredPath,
997
+ _context: AnalysisContext,
998
+ ): void {
999
+ // No equivalencies — the return value type depends on the map contents
1000
+ }
1001
+
1002
+ isComplete(): boolean {
1003
+ return true;
1004
+ }
1005
+ }
1006
+
1007
+ /**
1008
+ * Map.set() — sets a key-value pair, returns the Map (for chaining)
1009
+ */
1010
+ export class MapSetSemantics implements MethodSemantics {
1011
+ getReturnType(): string {
1012
+ return 'object'; // Returns the Map itself
1013
+ }
1014
+
1015
+ addEquivalences(): void {
1016
+ // No equivalencies
1017
+ }
1018
+
1019
+ isComplete(): boolean {
1020
+ return true;
1021
+ }
1022
+ }
1023
+
898
1024
  /**
899
1025
  * Create and populate the registry with method semantics
900
1026
  */
@@ -930,6 +1056,15 @@ export function createMethodRegistry(): MethodSemanticsRegistry {
930
1056
  registry.register('useState', new UseStateSemantics(), 'React');
931
1057
  registry.register('useMemo', new UseMemoSemantics(), 'React');
932
1058
 
1059
+ // Register Set/Map collection methods.
1060
+ // Only .has() and .delete() are safe to register by method name — they always
1061
+ // return boolean regardless of the collection type (Set, Map, WeakSet, WeakMap,
1062
+ // FormData, URLSearchParams, etc.).
1063
+ // .add(), .clear(), .get(), .set() are too ambiguous across different types
1064
+ // and can't be registered until the lookup code supports class-aware resolution.
1065
+ registry.register('has', new CollectionHasSemantics());
1066
+ registry.register('delete', new CollectionDeleteSemantics());
1067
+
933
1068
  return registry;
934
1069
  }
935
1070
 
@@ -54,6 +54,25 @@ export function nodeToSource(
54
54
  // return serializeBindingElement(node, sourceFile, options);
55
55
  // }
56
56
 
57
+ // Object/array/function literals should be marked as literal paths.
58
+ // This prevents them from creating sourceEquivalencies when used as
59
+ // function call arguments (e.g., setUndoEntry({ label: '...', undo: ... })).
60
+ // Without this, the full source text of the literal (300-500 chars for complex
61
+ // objects) gets embedded in path strings, creating expensive-to-parse
62
+ // equivalency entries that don't contribute useful schema information.
63
+ if (ts.isObjectLiteralExpression(node)) {
64
+ return StructuredPath.createLiteralPath(node.getText(sourceFile), 'object');
65
+ }
66
+ if (ts.isArrayLiteralExpression(node)) {
67
+ return StructuredPath.createLiteralPath(node.getText(sourceFile), 'array');
68
+ }
69
+ if (ts.isArrowFunction(node) || ts.isFunctionExpression(node)) {
70
+ return StructuredPath.createLiteralPath(
71
+ node.getText(sourceFile),
72
+ 'function',
73
+ );
74
+ }
75
+
57
76
  // Fallback for unsupported node types
58
77
  return StructuredPath.fromBase(node.getText(sourceFile));
59
78
  }
@@ -406,11 +406,18 @@ export class StructuredPath {
406
406
  } else {
407
407
  // Convert each argument to its string representation
408
408
  const argsStr = funcSegment.args
409
- .map((arg) =>
410
- arg.toStringWithSegments(arg.base, arg.segments, {
409
+ .map((arg) => {
410
+ // For literal arguments (object/array/function literals),
411
+ // use a compact placeholder instead of the full source text.
412
+ // This prevents 300-500 char inline objects from being embedded
413
+ // in call signature paths, which creates expensive equivalencies.
414
+ if (arg.isLiteral()) {
415
+ return `{...}`;
416
+ }
417
+ return arg.toStringWithSegments(arg.base, arg.segments, {
411
418
  withReturnValues: doRenderNestedFunctionCallReturnValue,
412
- }),
413
- )
419
+ });
420
+ })
414
421
  .join(', ');
415
422
  result += `(${argsStr})`;
416
423
  }
@@ -134,7 +134,7 @@ export default async function completionCall({
134
134
  };
135
135
  const params = lib.openai.chatRequestToOpenAIChatParams(chatRequest);
136
136
 
137
- const chatCompletion = await queue.add(() => {
137
+ const chatCompletionResult = await queue.add(() => {
138
138
  queueEndTime = Date.now();
139
139
  return PRetry(
140
140
  async () => {
@@ -185,6 +185,12 @@ export default async function completionCall({
185
185
  },
186
186
  );
187
187
  });
188
+
189
+ if (!chatCompletionResult) {
190
+ throw new Error('Completion call returned no result');
191
+ }
192
+
193
+ const chatCompletion = chatCompletionResult;
188
194
  const endTime = Date.now();
189
195
 
190
196
  const llmCallStats = getLLMCallStats({
@@ -304,7 +310,7 @@ ${completion}
304
310
 
305
311
  Please provide a corrected version with valid JSON only. Do not include any explanatory text, just the valid JSON object.`;
306
312
 
307
- const correctionChatCompletion = await queue.add(() => {
313
+ const correctionChatCompletionResult = await queue.add(() => {
308
314
  return PRetry(
309
315
  async () => {
310
316
  const correctionStartTime = Date.now();
@@ -359,6 +365,12 @@ Please provide a corrected version with valid JSON only. Do not include any expl
359
365
  );
360
366
  });
361
367
 
368
+ if (!correctionChatCompletionResult) {
369
+ throw new Error('Correction call returned no result');
370
+ }
371
+
372
+ const correctionChatCompletion = correctionChatCompletionResult;
373
+
362
374
  const correctedRawCompletion =
363
375
  correctionChatCompletion.choices?.[0]?.message?.content;
364
376
 
@@ -398,6 +398,7 @@ const SILENTLY_IGNORED_EQUIVALENCY_REASONS = new Set([
398
398
  'transformed non-object function equivalency - Array.from() equivalency',
399
399
  'Spread operator equivalency key update: Explicit array deconstruction equivalency value',
400
400
  // 'transformed non-object function equivalency - Explicit array deconstruction equivalency value',
401
+ 'useState setter call equivalency (direct)',
401
402
  ]);
402
403
 
403
404
  export class ScopeDataStructure {
@@ -1048,9 +1049,38 @@ export class ScopeDataStructure {
1048
1049
  equivalencyValueChain?: EquivalencyValueChainItem[],
1049
1050
  traceId?: number,
1050
1051
  ) {
1052
+ // Fast early exits that don't count toward the limit.
1053
+ // These are "no-op" calls that would be caught further below anyway,
1054
+ // but checking them first prevents counter inflation from redundant calls
1055
+ // generated by managers and followEquivalencies during scope processing.
1056
+
1057
+ // Skip silently-ignored reasons before counting
1058
+ if (SILENTLY_IGNORED_EQUIVALENCY_REASONS.has(equivalencyReason)) {
1059
+ return;
1060
+ }
1061
+
1062
+ // Skip exact duplicates before counting (Phase 1 only — Phase 2 needs
1063
+ // to process duplicates for database chain tracking)
1064
+ if (this.onlyEquivalencies) {
1065
+ const existing = scopeNode.equivalencies[path];
1066
+ if (
1067
+ existing?.some(
1068
+ (v) =>
1069
+ v.schemaPath === equivalentPath &&
1070
+ v.scopeNodeName === equivalentScopeName,
1071
+ )
1072
+ ) {
1073
+ return;
1074
+ }
1075
+ }
1076
+
1051
1077
  addEquivalencyCallCount++;
1052
1078
 
1053
- if (addEquivalencyCallCount > 50000) {
1079
+ const limit =
1080
+ typeof (globalThis as any).__CODEYAM_EQUIVALENCY_LIMIT === 'number'
1081
+ ? (globalThis as any).__CODEYAM_EQUIVALENCY_LIMIT
1082
+ : 50000;
1083
+ if (addEquivalencyCallCount > limit) {
1054
1084
  console.error('INFINITE LOOP DETECTED in addEquivalency', {
1055
1085
  callCount: addEquivalencyCallCount,
1056
1086
  path,
@@ -1065,14 +1095,11 @@ export class ScopeDataStructure {
1065
1095
  }
1066
1096
  // Filter equivalency reasons - use pre-computed Sets for O(1) lookup
1067
1097
  if (!ALLOWED_EQUIVALENCY_REASONS.has(equivalencyReason)) {
1068
- if (SILENTLY_IGNORED_EQUIVALENCY_REASONS.has(equivalencyReason)) {
1069
- return;
1070
- } else {
1071
- // Log and skip - if an equivalency reason isn't in ALLOWED or SILENTLY_IGNORED,
1072
- // it shouldn't be stored (was previously missing the return)
1073
- console.info('Not tracked equivalency reason', { equivalencyReason });
1074
- return;
1075
- }
1098
+ // Silently-ignored reasons already handled above
1099
+ // Log and skip - if an equivalency reason isn't in ALLOWED or SILENTLY_IGNORED,
1100
+ // it shouldn't be stored (was previously missing the return)
1101
+ console.info('Not tracked equivalency reason', { equivalencyReason });
1102
+ return;
1076
1103
  }
1077
1104
 
1078
1105
  // Skip self-referential equivalencies that would create infinite loops.
@@ -1108,6 +1135,33 @@ export class ScopeDataStructure {
1108
1135
  return;
1109
1136
  }
1110
1137
 
1138
+ // Case 3: Circular reference through scope-suffixed names (____cyScope pattern)
1139
+ // When a named arrow function is defined inside a scope (e.g., useEffect callback):
1140
+ // const identifyUser = async () => { ... };
1141
+ // identifyUser();
1142
+ // This creates a variable "identifyUser" and a scope "identifyUser____cyScope9F".
1143
+ // Mutual equivalencies between these cause infinite loops in Phase 2 because
1144
+ // processing one triggers addToSchema → followEquivalencies → addEquivalency
1145
+ // on the reverse, which repeats indefinitely.
1146
+ // Only block when the REVERSE direction already exists (creating a cycle).
1147
+ // The initial one-directional equivalency is necessary for scope resolution.
1148
+ if (
1149
+ path &&
1150
+ equivalentPath &&
1151
+ (equivalentPath.startsWith(path + '____') ||
1152
+ path.startsWith(equivalentPath + '____'))
1153
+ ) {
1154
+ // Check if the reverse equivalency already exists
1155
+ const reverseEquivalencies =
1156
+ scopeNode.equivalencies[equivalentPath] || [];
1157
+ const reverseExists = reverseEquivalencies.some(
1158
+ (v) => v.schemaPath === path,
1159
+ );
1160
+ if (reverseExists) {
1161
+ return;
1162
+ }
1163
+ }
1164
+
1111
1165
  if (!equivalentScopeName) {
1112
1166
  console.error(
1113
1167
  'CodeYam Error: Missing equivalent scope name - FULL CONTEXT:',
@@ -97,6 +97,16 @@ export default class ParentScopeManager implements EquivalencyManager {
97
97
  }
98
98
 
99
99
  if (instantiatedInParent || returnValueFromChildScope) {
100
+ // Skip if we've already propagated this variable to the parent scope.
101
+ // Without this guard, nested scopes trigger redundant addEquivalency calls
102
+ // for the same variable on every addToSchema pass (e.g., 'a' and 'b' in sort
103
+ // callbacks get propagated 30+ times per scope instead of once).
104
+ this.addedToParent[scopeNode.name] ||= new Set<string>();
105
+ if (this.addedToParent[scopeNode.name].has(rootPath)) {
106
+ return false;
107
+ }
108
+ this.addedToParent[scopeNode.name].add(rootPath);
109
+
100
110
  if (traceId && debugLevel > 0) {
101
111
  console.info(
102
112
  'Debug Propagation: parentScope executed',
@@ -114,9 +124,6 @@ export default class ParentScopeManager implements EquivalencyManager {
114
124
  );
115
125
  }
116
126
 
117
- this.addedToParent[scopeNode.name] ||= new Set<string>();
118
- this.addedToParent[scopeNode.name].add(rootPath);
119
-
120
127
  scopeDataStructure.addEquivalency(
121
128
  rootPath,
122
129
  rootPath,
@@ -6,7 +6,7 @@ import { ScopeNode, ScopeDataStructure } from '../ScopeDataStructure';
6
6
 
7
7
  type PrimitiveKind = 'array' | 'string' | 'number' | 'boolean' | 'date';
8
8
 
9
- const IGNORE_CLASSES_AND_OBJECTS = [
9
+ const IGNORE_CLASSES_AND_OBJECTS_SET = new Set([
10
10
  'Math',
11
11
  'JSON',
12
12
  'Reflect',
@@ -22,7 +22,7 @@ const IGNORE_CLASSES_AND_OBJECTS = [
22
22
  'useContext',
23
23
  'useReducer',
24
24
  'useLayoutEffect',
25
- ];
25
+ ]);
26
26
 
27
27
  /** cache the tokenised representation of every path we touch */
28
28
  const partsCache = new Map<string, string[]>();
@@ -147,16 +147,26 @@ function scrub(
147
147
  rootTable: Map<string, PrimitiveKind>,
148
148
  onRemove: (key: string) => void,
149
149
  ): void {
150
- const sortedKeys = Object.keys(mapping).sort((a, b) => a.localeCompare(b));
150
+ // Early exit: if no primitive types exist in the schema, there are no
151
+ // built-in methods to clean. Saves sorting + walking 10K+ keys.
152
+ if (rootTable.size === 0) return;
153
+
154
+ // Use direct comparison instead of localeCompare (3-5x faster for large arrays)
155
+ const sortedKeys = Object.keys(mapping).sort((a, b) =>
156
+ a < b ? -1 : a > b ? 1 : 0,
157
+ );
151
158
 
152
159
  for (const keyPath of sortedKeys) {
153
160
  const keyParts = getParts(keyPath);
154
161
  const prefixParts = buildPrefixParts(keyParts);
155
162
 
163
+ const firstPart = keyParts[0];
164
+ const firstPartBase = firstPart.includes('(')
165
+ ? firstPart.split('(')[0]
166
+ : firstPart;
156
167
  if (
157
- IGNORE_CLASSES_AND_OBJECTS.find(
158
- (m) => keyParts[0] === m || keyParts[0].startsWith(`${m}(`),
159
- )
168
+ IGNORE_CLASSES_AND_OBJECTS_SET.has(firstPart) ||
169
+ IGNORE_CLASSES_AND_OBJECTS_SET.has(firstPartBase)
160
170
  ) {
161
171
  delete mapping[keyPath];
162
172
  continue;
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Coerces primitive values to empty arrays when the schema expects an array.
3
+ *
4
+ * The LLM sometimes generates a primitive (boolean, number, string) where the
5
+ * schema expects an array. For example:
6
+ * Schema: { webapps: [{ name: "string" }] }
7
+ * LLM output: { webapps: true }
8
+ *
9
+ * This causes runtime errors like `TypeError: config.webapps?.forEach is not a function`
10
+ * because the code expects an array but gets a boolean.
11
+ *
12
+ * Coercion rule:
13
+ * - primitive → array: replace with []
14
+ *
15
+ * Null and undefined values are preserved (they may be intentionally nullable).
16
+ *
17
+ * @param data The mock data object to coerce (mutated in place)
18
+ * @param schema The schema describing expected types
19
+ */
20
+ export default function coercePrimitivesToArraysBySchema<T>(
21
+ data: T,
22
+ schema: unknown,
23
+ ): T {
24
+ if (data === null || data === undefined) {
25
+ return data;
26
+ }
27
+
28
+ if (typeof data !== 'object') {
29
+ return data;
30
+ }
31
+
32
+ if (Array.isArray(data)) {
33
+ const itemSchema = Array.isArray(schema) ? schema[0] : undefined;
34
+ for (let i = 0; i < data.length; i++) {
35
+ data[i] = coercePrimitivesToArraysBySchema(data[i], itemSchema);
36
+ }
37
+ return data;
38
+ }
39
+
40
+ const dataObj = data as Record<string, unknown>;
41
+ const schemaObj = schema as Record<string, unknown> | undefined;
42
+
43
+ for (const key of Object.keys(dataObj)) {
44
+ const value = dataObj[key];
45
+ const fieldSchema = schemaObj?.[key];
46
+
47
+ if (value === null || value === undefined) {
48
+ continue;
49
+ }
50
+
51
+ if (typeof value !== 'object' && Array.isArray(fieldSchema)) {
52
+ // Schema expects an array but the value is a primitive.
53
+ // Replace with an empty array.
54
+ dataObj[key] = [];
55
+ } else if (typeof value === 'object' && value !== null) {
56
+ // Both value and schema are objects — recurse
57
+ coercePrimitivesToArraysBySchema(value, fieldSchema);
58
+ }
59
+ }
60
+
61
+ return data;
62
+ }