@codeyam/codeyam-cli 0.1.0-staging.7c30edc → 0.1.0-staging.7ec08ee

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 (911) 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 +14 -0
  7. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +34 -3
  8. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +135 -0
  9. package/analyzer-template/packages/ai/src/lib/astScopes/nodeToSource.ts +19 -0
  10. package/analyzer-template/packages/ai/src/lib/astScopes/paths.ts +11 -4
  11. package/analyzer-template/packages/ai/src/lib/completionCall.ts +114 -113
  12. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +295 -14
  13. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.ts +10 -3
  14. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +16 -6
  15. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.ts +62 -0
  16. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +29 -18
  17. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.ts +35 -0
  18. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +15 -6
  19. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +78 -2
  20. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +96 -33
  21. package/analyzer-template/packages/analyze/index.ts +4 -1
  22. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +19 -7
  23. package/analyzer-template/packages/analyze/src/lib/asts/index.ts +7 -2
  24. package/analyzer-template/packages/analyze/src/lib/asts/nodes/getNodeType.ts +1 -0
  25. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +46 -2
  26. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +14 -37
  27. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +0 -6
  28. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +22 -6
  29. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +9 -12
  30. package/analyzer-template/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.ts +21 -0
  31. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +82 -10
  32. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +4 -0
  33. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +4 -0
  34. package/analyzer-template/packages/analyze/src/lib/files/analyzeNextRoute.ts +8 -3
  35. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +65 -28
  36. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +50 -25
  37. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +322 -58
  38. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +0 -98
  39. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +1712 -1394
  40. package/analyzer-template/packages/aws/package.json +10 -10
  41. package/analyzer-template/packages/database/index.ts +1 -0
  42. package/analyzer-template/packages/database/package.json +4 -4
  43. package/analyzer-template/packages/database/src/lib/kysely/db.ts +8 -0
  44. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +1 -1
  45. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +164 -0
  46. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +25 -15
  47. package/analyzer-template/packages/database/src/lib/loadCommits.ts +31 -20
  48. package/analyzer-template/packages/database/src/lib/loadEntities.ts +0 -6
  49. package/analyzer-template/packages/database/src/lib/loadEntity.ts +19 -8
  50. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +0 -5
  51. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +94 -143
  52. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatus.ts +58 -42
  53. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.ts +81 -65
  54. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +29 -1
  55. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +33 -5
  56. package/analyzer-template/packages/github/dist/database/index.d.ts +1 -0
  57. package/analyzer-template/packages/github/dist/database/index.d.ts.map +1 -1
  58. package/analyzer-template/packages/github/dist/database/index.js +1 -0
  59. package/analyzer-template/packages/github/dist/database/index.js.map +1 -1
  60. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -0
  61. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  62. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +5 -0
  63. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  64. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +1 -1
  65. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +29 -0
  66. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -0
  67. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +149 -0
  68. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  69. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +5 -0
  70. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  71. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  72. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +7 -1
  73. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  74. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  75. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +23 -13
  76. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  77. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  78. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +0 -6
  79. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  80. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.d.ts +4 -1
  81. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.d.ts.map +1 -1
  82. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js +5 -5
  83. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js.map +1 -1
  84. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  85. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
  86. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  87. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  88. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +76 -90
  89. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  90. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.d.ts.map +1 -1
  91. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  92. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  93. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts.map +1 -1
  94. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  95. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  96. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -1
  97. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
  98. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
  99. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
  100. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  101. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  102. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  103. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  104. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js +2 -0
  105. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js.map +1 -1
  106. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +1 -0
  107. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  108. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +10 -0
  109. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  110. package/analyzer-template/packages/github/package.json +1 -1
  111. package/analyzer-template/packages/types/src/enums/ProjectFramework.ts +2 -0
  112. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +1 -0
  113. package/analyzer-template/packages/types/src/types/Scenario.ts +10 -0
  114. package/analyzer-template/packages/ui-components/package.json +1 -1
  115. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  116. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  117. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js +2 -0
  118. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js.map +1 -1
  119. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +1 -0
  120. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  121. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +10 -0
  122. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  123. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts +3 -1
  124. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  125. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +120 -4
  126. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  127. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +148 -3
  128. package/analyzer-template/playwright/captureFromUrl.ts +89 -82
  129. package/analyzer-template/project/analyzeFileEntities.ts +26 -0
  130. package/analyzer-template/project/constructMockCode.ts +170 -50
  131. package/analyzer-template/project/orchestrateCapture.ts +4 -1
  132. package/analyzer-template/project/reconcileMockDataKeys.ts +19 -14
  133. package/analyzer-template/project/runMultiScenarioServer.ts +26 -3
  134. package/analyzer-template/project/start.ts +3 -0
  135. package/analyzer-template/project/startScenarioCapture.ts +9 -0
  136. package/analyzer-template/project/writeClientLogRoute.ts +125 -0
  137. package/analyzer-template/project/writeMockDataTsx.ts +17 -0
  138. package/analyzer-template/project/writeScenarioComponents.ts +110 -17
  139. package/analyzer-template/tsconfig.json +13 -1
  140. package/background/src/lib/virtualized/project/analyzeFileEntities.js +22 -0
  141. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  142. package/background/src/lib/virtualized/project/constructMockCode.js +145 -41
  143. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  144. package/background/src/lib/virtualized/project/orchestrateCapture.js +4 -1
  145. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  146. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +17 -11
  147. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  148. package/background/src/lib/virtualized/project/runMultiScenarioServer.js +23 -3
  149. package/background/src/lib/virtualized/project/runMultiScenarioServer.js.map +1 -1
  150. package/background/src/lib/virtualized/project/start.js +2 -0
  151. package/background/src/lib/virtualized/project/start.js.map +1 -1
  152. package/background/src/lib/virtualized/project/startScenarioCapture.js +5 -0
  153. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  154. package/background/src/lib/virtualized/project/writeClientLogRoute.js +110 -0
  155. package/background/src/lib/virtualized/project/writeClientLogRoute.js.map +1 -0
  156. package/background/src/lib/virtualized/project/writeMockDataTsx.js +12 -0
  157. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  158. package/background/src/lib/virtualized/project/writeScenarioComponents.js +83 -12
  159. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  160. package/codeyam-cli/scripts/apply-setup.js +209 -12
  161. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  162. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js +196 -0
  163. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js.map +1 -0
  164. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js +114 -0
  165. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js.map +1 -0
  166. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js +149 -0
  167. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js.map +1 -0
  168. package/codeyam-cli/src/cli.js +56 -25
  169. package/codeyam-cli/src/cli.js.map +1 -1
  170. package/codeyam-cli/src/commands/__tests__/editor.analyzeImportsArgs.test.js +47 -0
  171. package/codeyam-cli/src/commands/__tests__/editor.analyzeImportsArgs.test.js.map +1 -0
  172. package/codeyam-cli/src/commands/__tests__/editor.auditNoAutoAnalysis.test.js +71 -0
  173. package/codeyam-cli/src/commands/__tests__/editor.auditNoAutoAnalysis.test.js.map +1 -0
  174. package/codeyam-cli/src/commands/__tests__/editor.designSystem.test.js +30 -0
  175. package/codeyam-cli/src/commands/__tests__/editor.designSystem.test.js.map +1 -0
  176. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js +51 -0
  177. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js.map +1 -0
  178. package/codeyam-cli/src/commands/__tests__/editor.statePersistence.test.js +55 -0
  179. package/codeyam-cli/src/commands/__tests__/editor.statePersistence.test.js.map +1 -0
  180. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js +56 -0
  181. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js.map +1 -0
  182. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js +137 -47
  183. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js.map +1 -1
  184. package/codeyam-cli/src/commands/analyze.js +19 -9
  185. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  186. package/codeyam-cli/src/commands/default.js +20 -3
  187. package/codeyam-cli/src/commands/default.js.map +1 -1
  188. package/codeyam-cli/src/commands/editor.js +6313 -0
  189. package/codeyam-cli/src/commands/editor.js.map +1 -0
  190. package/codeyam-cli/src/commands/editorAnalyzeImportsArgs.js +23 -0
  191. package/codeyam-cli/src/commands/editorAnalyzeImportsArgs.js.map +1 -0
  192. package/codeyam-cli/src/commands/editorIsolateArgs.js +25 -0
  193. package/codeyam-cli/src/commands/editorIsolateArgs.js.map +1 -0
  194. package/codeyam-cli/src/commands/init.js +129 -45
  195. package/codeyam-cli/src/commands/init.js.map +1 -1
  196. package/codeyam-cli/src/commands/memory.js +89 -75
  197. package/codeyam-cli/src/commands/memory.js.map +1 -1
  198. package/codeyam-cli/src/commands/setup-simulations.js +1 -1
  199. package/codeyam-cli/src/commands/telemetry.js +37 -0
  200. package/codeyam-cli/src/commands/telemetry.js.map +1 -0
  201. package/codeyam-cli/src/commands/verify.js +12 -2
  202. package/codeyam-cli/src/commands/verify.js.map +1 -1
  203. package/codeyam-cli/src/data/designSystems.js +27 -0
  204. package/codeyam-cli/src/data/designSystems.js.map +1 -0
  205. package/codeyam-cli/src/data/techStacks.js +77 -0
  206. package/codeyam-cli/src/data/techStacks.js.map +1 -0
  207. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js +173 -0
  208. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js.map +1 -0
  209. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js +46 -0
  210. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js.map +1 -0
  211. package/codeyam-cli/src/utils/__tests__/devServerState.test.js +226 -0
  212. package/codeyam-cli/src/utils/__tests__/devServerState.test.js.map +1 -0
  213. package/codeyam-cli/src/utils/__tests__/editorApi.test.js +181 -0
  214. package/codeyam-cli/src/utils/__tests__/editorApi.test.js.map +1 -0
  215. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +4160 -0
  216. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -0
  217. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js +76 -0
  218. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js.map +1 -0
  219. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js +93 -0
  220. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js.map +1 -0
  221. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js +137 -0
  222. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js.map +1 -0
  223. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js +100 -0
  224. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js.map +1 -0
  225. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js +304 -0
  226. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js.map +1 -0
  227. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js +194 -0
  228. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js.map +1 -0
  229. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js +381 -0
  230. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js.map +1 -0
  231. package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js +67 -0
  232. package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js.map +1 -0
  233. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js +294 -0
  234. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js.map +1 -0
  235. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js +542 -0
  236. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js.map +1 -0
  237. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js +594 -0
  238. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js.map +1 -0
  239. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js +435 -0
  240. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js.map +1 -0
  241. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js +270 -0
  242. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js.map +1 -0
  243. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js +217 -0
  244. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js.map +1 -0
  245. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js +361 -0
  246. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js.map +1 -0
  247. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js +250 -0
  248. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js.map +1 -0
  249. package/codeyam-cli/src/utils/__tests__/editorRoadmap.test.js +1108 -0
  250. package/codeyam-cli/src/utils/__tests__/editorRoadmap.test.js.map +1 -0
  251. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js +139 -0
  252. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js.map +1 -0
  253. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js +411 -0
  254. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js.map +1 -0
  255. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +1768 -0
  256. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -0
  257. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js +413 -0
  258. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js.map +1 -0
  259. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js +143 -0
  260. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js.map +1 -0
  261. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js +66 -0
  262. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js.map +1 -0
  263. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js +53 -0
  264. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js.map +1 -0
  265. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +2121 -0
  266. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -0
  267. package/codeyam-cli/src/utils/__tests__/envFile.test.js +125 -0
  268. package/codeyam-cli/src/utils/__tests__/envFile.test.js.map +1 -0
  269. package/codeyam-cli/src/utils/__tests__/git.editor.test.js +134 -0
  270. package/codeyam-cli/src/utils/__tests__/git.editor.test.js.map +1 -0
  271. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js +177 -0
  272. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js.map +1 -0
  273. package/codeyam-cli/src/utils/__tests__/handoffContext.test.js +500 -0
  274. package/codeyam-cli/src/utils/__tests__/handoffContext.test.js.map +1 -0
  275. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js +122 -0
  276. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js.map +1 -0
  277. package/codeyam-cli/src/utils/__tests__/manualEntityAnalysis.test.js +302 -0
  278. package/codeyam-cli/src/utils/__tests__/manualEntityAnalysis.test.js.map +1 -0
  279. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +185 -0
  280. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
  281. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js +129 -0
  282. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js.map +1 -0
  283. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js +9 -0
  284. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js.map +1 -1
  285. package/codeyam-cli/src/utils/__tests__/project.test.js +65 -0
  286. package/codeyam-cli/src/utils/__tests__/project.test.js.map +1 -0
  287. package/codeyam-cli/src/utils/__tests__/registerScenarioResult.test.js +127 -0
  288. package/codeyam-cli/src/utils/__tests__/registerScenarioResult.test.js.map +1 -0
  289. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js +118 -0
  290. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js.map +1 -0
  291. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js +284 -0
  292. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js.map +1 -0
  293. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js +121 -0
  294. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js.map +1 -0
  295. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +672 -0
  296. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -0
  297. package/codeyam-cli/src/utils/__tests__/screenshotHash.test.js +84 -0
  298. package/codeyam-cli/src/utils/__tests__/screenshotHash.test.js.map +1 -0
  299. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +62 -15
  300. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  301. package/codeyam-cli/src/utils/__tests__/telemetry.test.js +159 -0
  302. package/codeyam-cli/src/utils/__tests__/telemetry.test.js.map +1 -0
  303. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js +51 -0
  304. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js.map +1 -0
  305. package/codeyam-cli/src/utils/__tests__/testRunner.test.js +216 -0
  306. package/codeyam-cli/src/utils/__tests__/testRunner.test.js.map +1 -0
  307. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js +148 -0
  308. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js.map +1 -0
  309. package/codeyam-cli/src/utils/analysisRunner.js +39 -8
  310. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  311. package/codeyam-cli/src/utils/analyzer.js +19 -0
  312. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  313. package/codeyam-cli/src/utils/analyzerFinalization.js +100 -0
  314. package/codeyam-cli/src/utils/analyzerFinalization.js.map +1 -0
  315. package/codeyam-cli/src/utils/backgroundServer.js +193 -34
  316. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  317. package/codeyam-cli/src/utils/buildFlags.js +4 -0
  318. package/codeyam-cli/src/utils/buildFlags.js.map +1 -0
  319. package/codeyam-cli/src/utils/database.js +37 -2
  320. package/codeyam-cli/src/utils/database.js.map +1 -1
  321. package/codeyam-cli/src/utils/designSystemShowcase.js +810 -0
  322. package/codeyam-cli/src/utils/designSystemShowcase.js.map +1 -0
  323. package/codeyam-cli/src/utils/devModeEvents.js +40 -0
  324. package/codeyam-cli/src/utils/devModeEvents.js.map +1 -0
  325. package/codeyam-cli/src/utils/devServerState.js +103 -0
  326. package/codeyam-cli/src/utils/devServerState.js.map +1 -0
  327. package/codeyam-cli/src/utils/editorApi.js +95 -0
  328. package/codeyam-cli/src/utils/editorApi.js.map +1 -0
  329. package/codeyam-cli/src/utils/editorAudit.js +849 -0
  330. package/codeyam-cli/src/utils/editorAudit.js.map +1 -0
  331. package/codeyam-cli/src/utils/editorBroadcastViewport.js +26 -0
  332. package/codeyam-cli/src/utils/editorBroadcastViewport.js.map +1 -0
  333. package/codeyam-cli/src/utils/editorCapture.js +102 -0
  334. package/codeyam-cli/src/utils/editorCapture.js.map +1 -0
  335. package/codeyam-cli/src/utils/editorDeleteScenario.js +67 -0
  336. package/codeyam-cli/src/utils/editorDeleteScenario.js.map +1 -0
  337. package/codeyam-cli/src/utils/editorDevServer.js +197 -0
  338. package/codeyam-cli/src/utils/editorDevServer.js.map +1 -0
  339. package/codeyam-cli/src/utils/editorEntityChangeStatus.js +50 -0
  340. package/codeyam-cli/src/utils/editorEntityChangeStatus.js.map +1 -0
  341. package/codeyam-cli/src/utils/editorEntityHelpers.js +144 -0
  342. package/codeyam-cli/src/utils/editorEntityHelpers.js.map +1 -0
  343. package/codeyam-cli/src/utils/editorGuard.js +36 -0
  344. package/codeyam-cli/src/utils/editorGuard.js.map +1 -0
  345. package/codeyam-cli/src/utils/editorImageVerifier.js +155 -0
  346. package/codeyam-cli/src/utils/editorImageVerifier.js.map +1 -0
  347. package/codeyam-cli/src/utils/editorJournal.js +225 -0
  348. package/codeyam-cli/src/utils/editorJournal.js.map +1 -0
  349. package/codeyam-cli/src/utils/editorLoaderHelpers.js +152 -0
  350. package/codeyam-cli/src/utils/editorLoaderHelpers.js.map +1 -0
  351. package/codeyam-cli/src/utils/editorMigration.js +224 -0
  352. package/codeyam-cli/src/utils/editorMigration.js.map +1 -0
  353. package/codeyam-cli/src/utils/editorMockState.js +248 -0
  354. package/codeyam-cli/src/utils/editorMockState.js.map +1 -0
  355. package/codeyam-cli/src/utils/editorPreloadHelpers.js +135 -0
  356. package/codeyam-cli/src/utils/editorPreloadHelpers.js.map +1 -0
  357. package/codeyam-cli/src/utils/editorPreview.js +139 -0
  358. package/codeyam-cli/src/utils/editorPreview.js.map +1 -0
  359. package/codeyam-cli/src/utils/editorRecapture.js +109 -0
  360. package/codeyam-cli/src/utils/editorRecapture.js.map +1 -0
  361. package/codeyam-cli/src/utils/editorRoadmap.js +574 -0
  362. package/codeyam-cli/src/utils/editorRoadmap.js.map +1 -0
  363. package/codeyam-cli/src/utils/editorScenarioSwitch.js +149 -0
  364. package/codeyam-cli/src/utils/editorScenarioSwitch.js.map +1 -0
  365. package/codeyam-cli/src/utils/editorScenarios.js +687 -0
  366. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -0
  367. package/codeyam-cli/src/utils/editorSeedAdapter.js +475 -0
  368. package/codeyam-cli/src/utils/editorSeedAdapter.js.map +1 -0
  369. package/codeyam-cli/src/utils/editorShouldRevalidate.js +21 -0
  370. package/codeyam-cli/src/utils/editorShouldRevalidate.js.map +1 -0
  371. package/codeyam-cli/src/utils/entityChangeStatus.js +394 -0
  372. package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -0
  373. package/codeyam-cli/src/utils/entityChangeStatus.server.js +227 -0
  374. package/codeyam-cli/src/utils/entityChangeStatus.server.js.map +1 -0
  375. package/codeyam-cli/src/utils/envFile.js +90 -0
  376. package/codeyam-cli/src/utils/envFile.js.map +1 -0
  377. package/codeyam-cli/src/utils/fileMetadata.js +5 -0
  378. package/codeyam-cli/src/utils/fileMetadata.js.map +1 -1
  379. package/codeyam-cli/src/utils/fileWatcher.js +63 -9
  380. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  381. package/codeyam-cli/src/utils/generateReport.js +2 -2
  382. package/codeyam-cli/src/utils/git.js +103 -0
  383. package/codeyam-cli/src/utils/git.js.map +1 -1
  384. package/codeyam-cli/src/utils/glossaryAdd.js +74 -0
  385. package/codeyam-cli/src/utils/glossaryAdd.js.map +1 -0
  386. package/codeyam-cli/src/utils/handoffContext.js +257 -0
  387. package/codeyam-cli/src/utils/handoffContext.js.map +1 -0
  388. package/codeyam-cli/src/utils/install-skills.js +106 -20
  389. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  390. package/codeyam-cli/src/utils/interactiveSyncWatcher.js +126 -0
  391. package/codeyam-cli/src/utils/interactiveSyncWatcher.js.map +1 -0
  392. package/codeyam-cli/src/utils/labsAutoCheck.js +0 -29
  393. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -1
  394. package/codeyam-cli/src/utils/manualEntityAnalysis.js +196 -0
  395. package/codeyam-cli/src/utils/manualEntityAnalysis.js.map +1 -0
  396. package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
  397. package/codeyam-cli/src/utils/npmVersionCheck.js.map +1 -0
  398. package/codeyam-cli/src/utils/parseRegisterArg.js +31 -0
  399. package/codeyam-cli/src/utils/parseRegisterArg.js.map +1 -0
  400. package/codeyam-cli/src/utils/pathIgnoring.js +19 -7
  401. package/codeyam-cli/src/utils/pathIgnoring.js.map +1 -1
  402. package/codeyam-cli/src/utils/progress.js +2 -2
  403. package/codeyam-cli/src/utils/progress.js.map +1 -1
  404. package/codeyam-cli/src/utils/project.js +15 -5
  405. package/codeyam-cli/src/utils/project.js.map +1 -1
  406. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js +11 -11
  407. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js.map +1 -1
  408. package/codeyam-cli/src/utils/queue/__tests__/job.interactiveStart.test.js +159 -0
  409. package/codeyam-cli/src/utils/queue/__tests__/job.interactiveStart.test.js.map +1 -0
  410. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +22 -0
  411. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
  412. package/codeyam-cli/src/utils/queue/heartbeat.js +13 -5
  413. package/codeyam-cli/src/utils/queue/heartbeat.js.map +1 -1
  414. package/codeyam-cli/src/utils/queue/job.js +105 -7
  415. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  416. package/codeyam-cli/src/utils/queue/manager.js +7 -6
  417. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  418. package/codeyam-cli/src/utils/registerScenarioResult.js +52 -0
  419. package/codeyam-cli/src/utils/registerScenarioResult.js.map +1 -0
  420. package/codeyam-cli/src/utils/requireSimulations.js +1 -1
  421. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -1
  422. package/codeyam-cli/src/utils/routePatternMatching.js +129 -0
  423. package/codeyam-cli/src/utils/routePatternMatching.js.map +1 -0
  424. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +5 -6
  425. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -1
  426. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +1 -1
  427. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -1
  428. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +0 -1
  429. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -1
  430. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +2 -4
  431. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -1
  432. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +4 -6
  433. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -1
  434. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +1 -1
  435. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -1
  436. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js +83 -0
  437. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js.map +1 -0
  438. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js +118 -0
  439. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js.map +1 -0
  440. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js +72 -0
  441. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js.map +1 -0
  442. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js +76 -0
  443. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js.map +1 -0
  444. package/codeyam-cli/src/utils/rules/index.js +1 -0
  445. package/codeyam-cli/src/utils/rules/index.js.map +1 -1
  446. package/codeyam-cli/src/utils/rules/parser.js +14 -4
  447. package/codeyam-cli/src/utils/rules/parser.js.map +1 -1
  448. package/codeyam-cli/src/utils/rules/pathMatcher.js +34 -3
  449. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -1
  450. package/codeyam-cli/src/utils/rules/rulePlacement.js +65 -0
  451. package/codeyam-cli/src/utils/rules/rulePlacement.js.map +1 -0
  452. package/codeyam-cli/src/utils/rules/sourceFiles.js +43 -0
  453. package/codeyam-cli/src/utils/rules/sourceFiles.js.map +1 -0
  454. package/codeyam-cli/src/utils/scenarioCoverage.js +77 -0
  455. package/codeyam-cli/src/utils/scenarioCoverage.js.map +1 -0
  456. package/codeyam-cli/src/utils/scenarioMarkers.js +134 -0
  457. package/codeyam-cli/src/utils/scenarioMarkers.js.map +1 -0
  458. package/codeyam-cli/src/utils/scenariosManifest.js +313 -0
  459. package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -0
  460. package/codeyam-cli/src/utils/screenshotHash.js +26 -0
  461. package/codeyam-cli/src/utils/screenshotHash.js.map +1 -0
  462. package/codeyam-cli/src/utils/serverState.js +57 -2
  463. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  464. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +90 -18
  465. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  466. package/codeyam-cli/src/utils/simulationGateMiddleware.js +175 -0
  467. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -0
  468. package/codeyam-cli/src/utils/slugUtils.js +25 -0
  469. package/codeyam-cli/src/utils/slugUtils.js.map +1 -0
  470. package/codeyam-cli/src/utils/syncMocksMiddleware.js +7 -26
  471. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  472. package/codeyam-cli/src/utils/techStackConfig.js +38 -0
  473. package/codeyam-cli/src/utils/techStackConfig.js.map +1 -0
  474. package/codeyam-cli/src/utils/techStackConfig.test.js +85 -0
  475. package/codeyam-cli/src/utils/techStackConfig.test.js.map +1 -0
  476. package/codeyam-cli/src/utils/telemetry.js +106 -0
  477. package/codeyam-cli/src/utils/telemetry.js.map +1 -0
  478. package/codeyam-cli/src/utils/telemetryMiddleware.js +22 -0
  479. package/codeyam-cli/src/utils/telemetryMiddleware.js.map +1 -0
  480. package/codeyam-cli/src/utils/testResultCache.js +53 -0
  481. package/codeyam-cli/src/utils/testResultCache.js.map +1 -0
  482. package/codeyam-cli/src/utils/testResultCache.server.js +81 -0
  483. package/codeyam-cli/src/utils/testResultCache.server.js.map +1 -0
  484. package/codeyam-cli/src/utils/testResultCache.server.test.js +187 -0
  485. package/codeyam-cli/src/utils/testResultCache.server.test.js.map +1 -0
  486. package/codeyam-cli/src/utils/testResultCache.test.js +230 -0
  487. package/codeyam-cli/src/utils/testResultCache.test.js.map +1 -0
  488. package/codeyam-cli/src/utils/testRunner.js +350 -0
  489. package/codeyam-cli/src/utils/testRunner.js.map +1 -0
  490. package/codeyam-cli/src/utils/transcriptPruning.js +67 -0
  491. package/codeyam-cli/src/utils/transcriptPruning.js.map +1 -0
  492. package/codeyam-cli/src/utils/versionInfo.js +46 -0
  493. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  494. package/codeyam-cli/src/utils/webappDetection.js +38 -3
  495. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  496. package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js +99 -0
  497. package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js.map +1 -0
  498. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js +153 -0
  499. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js.map +1 -0
  500. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js +107 -0
  501. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js.map +1 -0
  502. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js +66 -0
  503. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
  504. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +1000 -0
  505. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -0
  506. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js +315 -0
  507. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js.map +1 -0
  508. package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js +135 -0
  509. package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js.map +1 -0
  510. package/codeyam-cli/src/webserver/app/lib/clientErrors.js +86 -0
  511. package/codeyam-cli/src/webserver/app/lib/clientErrors.js.map +1 -0
  512. package/codeyam-cli/src/webserver/app/lib/database.js +41 -27
  513. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  514. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  515. package/codeyam-cli/src/webserver/app/lib/git.js +397 -0
  516. package/codeyam-cli/src/webserver/app/lib/git.js.map +1 -0
  517. package/codeyam-cli/src/webserver/app/routes/api.interactive-switch-scenario.js +34 -0
  518. package/codeyam-cli/src/webserver/app/routes/api.interactive-switch-scenario.js.map +1 -0
  519. package/codeyam-cli/src/webserver/app/types/editor.js +8 -0
  520. package/codeyam-cli/src/webserver/app/types/editor.js.map +1 -0
  521. package/codeyam-cli/src/webserver/backgroundServer.js +166 -48
  522. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  523. package/codeyam-cli/src/webserver/bootstrap.js +11 -0
  524. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
  525. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-DTBZZfSk.js +1 -0
  526. package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-B86KKU7e.js → EntityItem-BxclONWq.js} +5 -5
  527. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-CQgyEGV-.js +1 -0
  528. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-BqY8gDAW.js → EntityTypeIcon-BsnEOJZ_.js} +9 -9
  529. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-ByaELMbv.js +1 -0
  530. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-6WjVfhxX.js +25 -0
  531. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-ChX-Hp7W.js +3 -0
  532. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-Bs7Nn1Jr.js → LoadingDots-By5zI316.js} +1 -1
  533. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-Bm3PmcCz.js → LogViewer-C-9zQdXg.js} +3 -3
  534. package/codeyam-cli/src/webserver/build/client/assets/MiniClaudeChat-Bs2_Oua4.js +36 -0
  535. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-C6PKeMYR.js → ReportIssueModal-DQsceHVv.js} +4 -4
  536. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-DThcm_9M.js +1 -0
  537. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-BNLaXBHR.js → ScenarioViewer-Cl4oOA3A.js} +3 -3
  538. package/codeyam-cli/src/webserver/build/client/assets/Spinner-CIil5-gb.js +34 -0
  539. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-CK7-NaPZ.js +1 -0
  540. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-BqkA9zyZ.js +1 -0
  541. package/codeyam-cli/src/webserver/build/client/assets/{_index-B3TDXxnk.js → _index-DnOgyseQ.js} +4 -4
  542. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-BtBFH820.js → activity.(_tab)-DqM9hbNE.js} +8 -8
  543. package/codeyam-cli/src/webserver/build/client/assets/addon-canvas-DpzMmAy5.js +1 -0
  544. package/codeyam-cli/src/webserver/build/client/assets/addon-fit-YJmn1quW.js +12 -0
  545. package/codeyam-cli/src/webserver/build/client/assets/addon-web-links-C58dYPwR.js +1 -0
  546. package/codeyam-cli/src/webserver/build/client/assets/addon-webgl-DI8QOUvO.js +58 -0
  547. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-B8NCeOrm.js +22 -0
  548. package/codeyam-cli/src/webserver/build/client/assets/api.editor-audit-l0sNRNKZ.js +1 -0
  549. package/codeyam-cli/src/webserver/build/client/assets/api.editor-capture-scenario-l0sNRNKZ.js +1 -0
  550. package/codeyam-cli/src/webserver/build/client/assets/api.editor-client-errors-l0sNRNKZ.js +1 -0
  551. package/codeyam-cli/src/webserver/build/client/assets/api.editor-commit-l0sNRNKZ.js +1 -0
  552. package/codeyam-cli/src/webserver/build/client/assets/api.editor-database-verify-l0sNRNKZ.js +1 -0
  553. package/codeyam-cli/src/webserver/build/client/assets/api.editor-dev-server-l0sNRNKZ.js +1 -0
  554. package/codeyam-cli/src/webserver/build/client/assets/api.editor-entity-status-l0sNRNKZ.js +1 -0
  555. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-diff-l0sNRNKZ.js +1 -0
  556. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-l0sNRNKZ.js +1 -0
  557. package/codeyam-cli/src/webserver/build/client/assets/api.editor-github-verify-l0sNRNKZ.js +1 -0
  558. package/codeyam-cli/src/webserver/build/client/assets/api.editor-handoff-l0sNRNKZ.js +1 -0
  559. package/codeyam-cli/src/webserver/build/client/assets/api.editor-hosting-verify-l0sNRNKZ.js +1 -0
  560. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-entry-l0sNRNKZ.js +1 -0
  561. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-image._-l0sNRNKZ.js +1 -0
  562. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-l0sNRNKZ.js +1 -0
  563. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-screenshot-l0sNRNKZ.js +1 -0
  564. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-update-l0sNRNKZ.js +1 -0
  565. package/codeyam-cli/src/webserver/build/client/assets/api.editor-load-commit-l0sNRNKZ.js +1 -0
  566. package/codeyam-cli/src/webserver/build/client/assets/api.editor-project-info-l0sNRNKZ.js +1 -0
  567. package/codeyam-cli/src/webserver/build/client/assets/api.editor-recapture-stale-l0sNRNKZ.js +1 -0
  568. package/codeyam-cli/src/webserver/build/client/assets/api.editor-refresh-l0sNRNKZ.js +1 -0
  569. package/codeyam-cli/src/webserver/build/client/assets/api.editor-register-scenario-l0sNRNKZ.js +1 -0
  570. package/codeyam-cli/src/webserver/build/client/assets/api.editor-rename-scenario-l0sNRNKZ.js +1 -0
  571. package/codeyam-cli/src/webserver/build/client/assets/api.editor-roadmap-l0sNRNKZ.js +1 -0
  572. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-scenario-data-l0sNRNKZ.js +1 -0
  573. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-seed-state-l0sNRNKZ.js +1 -0
  574. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-coverage-l0sNRNKZ.js +1 -0
  575. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-data-l0sNRNKZ.js +1 -0
  576. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-image._-l0sNRNKZ.js +1 -0
  577. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-prompt-l0sNRNKZ.js +1 -0
  578. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenarios-l0sNRNKZ.js +1 -0
  579. package/codeyam-cli/src/webserver/build/client/assets/api.editor-schema-l0sNRNKZ.js +1 -0
  580. package/codeyam-cli/src/webserver/build/client/assets/api.editor-session-l0sNRNKZ.js +1 -0
  581. package/codeyam-cli/src/webserver/build/client/assets/api.editor-switch-scenario-l0sNRNKZ.js +1 -0
  582. package/codeyam-cli/src/webserver/build/client/assets/api.editor-test-results-l0sNRNKZ.js +1 -0
  583. package/codeyam-cli/src/webserver/build/client/assets/api.editor-verify-routes-l0sNRNKZ.js +1 -0
  584. package/codeyam-cli/src/webserver/build/client/assets/api.interactive-switch-scenario-l0sNRNKZ.js +1 -0
  585. package/codeyam-cli/src/webserver/build/client/assets/api.rule-path-l0sNRNKZ.js +1 -0
  586. package/codeyam-cli/src/webserver/build/client/assets/{book-open-PttOB2SF.js → book-open-BFSIqZgO.js} +2 -2
  587. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-TJp6ofnp.js → chevron-down-B9fDzFVh.js} +2 -2
  588. package/codeyam-cli/src/webserver/build/client/assets/chunk-UVKPFVEO-Bmq2apuh.js +43 -0
  589. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-CXhHQYrI.js → circle-check-DLPObLUx.js} +2 -2
  590. package/codeyam-cli/src/webserver/build/client/assets/{copy-6y9ALfGT.js → copy-DXEmO0TD.js} +3 -3
  591. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-BwyFiRot.js +41 -0
  592. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-Coe5NhbS.js +1 -0
  593. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-CCKUIm0S.svg → cy-logo-cli-DoA97ML3.svg} +2 -2
  594. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-iRhRIFlp.js +1 -0
  595. package/codeyam-cli/src/webserver/build/client/assets/editor._tab-BZPBzV73.js +1 -0
  596. package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-DhtVC4aI.js +161 -0
  597. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-C6fEYHrh.js +41 -0
  598. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-n38keI1k.js → entity._sha._-pc-vc6wO.js} +14 -13
  599. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-C8AyYgYT.js +6 -0
  600. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DziaVQX1.js +6 -0
  601. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-BTcpgIpC.js +6 -0
  602. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-38yPijoD.js → entity._sha_.edit._scenarioId-D_O_ajfZ.js} +2 -2
  603. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-BSHEfydn.js → entry.client-j1Vi0bco.js} +6 -6
  604. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-Daa96Fr1.js +1 -0
  605. package/codeyam-cli/src/webserver/build/client/assets/files-kuny2Q_s.js +1 -0
  606. package/codeyam-cli/src/webserver/build/client/assets/git-DgCZPMie.js +1 -0
  607. package/codeyam-cli/src/webserver/build/client/assets/globals-L-aUIeux.css +1 -0
  608. package/codeyam-cli/src/webserver/build/client/assets/{index-CcsFv748.js → index-BliGSSpl.js} +1 -1
  609. package/codeyam-cli/src/webserver/build/client/assets/index-SqjQKTdH.js +15 -0
  610. package/codeyam-cli/src/webserver/build/client/assets/{index-ChN9-fAY.js → index-vyrZD2g4.js} +1 -1
  611. package/codeyam-cli/src/webserver/build/client/assets/jsx-runtime-D_zvdyIk.js +9 -0
  612. package/codeyam-cli/src/webserver/build/client/assets/labs-c3yLxSEp.js +1 -0
  613. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-CTqLEAGU.js → loader-circle-D-q28GLF.js} +2 -2
  614. package/codeyam-cli/src/webserver/build/client/assets/manifest-79d0d81a.js +1 -0
  615. package/codeyam-cli/src/webserver/build/client/assets/memory-CEWIUC4t.js +101 -0
  616. package/codeyam-cli/src/webserver/build/client/assets/{pause-D6vreykR.js → pause-BP6fitdh.js} +3 -3
  617. package/codeyam-cli/src/webserver/build/client/assets/root-L2V0jea7.js +80 -0
  618. package/codeyam-cli/src/webserver/build/client/assets/{search-B8VUL8nl.js → search-BooqacKS.js} +2 -2
  619. package/codeyam-cli/src/webserver/build/client/assets/settings-BM0nbryO.js +1 -0
  620. package/codeyam-cli/src/webserver/build/client/assets/simulations-ovy6FjRY.js +1 -0
  621. package/codeyam-cli/src/webserver/build/client/assets/{terminal-BrCP7uQo.js → terminal-DHemCJIs.js} +3 -3
  622. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-BZz2NjYa.js → triangle-alert-D87ekDl8.js} +2 -2
  623. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-Dk0Tciqg.js +1 -0
  624. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-C8QvIe05.js +2 -0
  625. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-jkCytuYz.js +1 -0
  626. package/codeyam-cli/src/webserver/build/client/assets/useToast-BgqkixU9.js +1 -0
  627. package/codeyam-cli/src/webserver/build/client/assets/xterm-BqvuqXEL.js +27 -0
  628. package/codeyam-cli/src/webserver/build/client/sound-test.html +98 -0
  629. package/codeyam-cli/src/webserver/build/server/assets/analysisRunner-QgInFGdU.js +16 -0
  630. package/codeyam-cli/src/webserver/build/server/assets/index-zblh9auj.js +1 -0
  631. package/codeyam-cli/src/webserver/build/server/assets/init-DaE0CBjk.js +14 -0
  632. package/codeyam-cli/src/webserver/build/server/assets/progress-CHTtrxFG.js +1 -0
  633. package/codeyam-cli/src/webserver/build/server/assets/server-build-CNvgz1cC.js +853 -0
  634. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  635. package/codeyam-cli/src/webserver/build-info.json +5 -5
  636. package/codeyam-cli/src/webserver/devServer.js +39 -5
  637. package/codeyam-cli/src/webserver/devServer.js.map +1 -1
  638. package/codeyam-cli/src/webserver/editorProxy.js +1263 -0
  639. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -0
  640. package/codeyam-cli/src/webserver/idleDetector.js +130 -0
  641. package/codeyam-cli/src/webserver/idleDetector.js.map +1 -0
  642. package/codeyam-cli/src/webserver/mockStateEvents.js +28 -0
  643. package/codeyam-cli/src/webserver/mockStateEvents.js.map +1 -0
  644. package/codeyam-cli/src/webserver/public/sound-test.html +98 -0
  645. package/codeyam-cli/src/webserver/scripts/codeyam-preload.mjs +414 -0
  646. package/codeyam-cli/src/webserver/scripts/journalCapture.ts +283 -0
  647. package/codeyam-cli/src/webserver/server.js +446 -1
  648. package/codeyam-cli/src/webserver/server.js.map +1 -1
  649. package/codeyam-cli/src/webserver/terminalServer.js +1043 -0
  650. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -0
  651. package/codeyam-cli/templates/__tests__/editor-step-hook.prompt-capture.test.ts +118 -0
  652. package/codeyam-cli/templates/chrome-extension-react/EXTENSION_SETUP.md +75 -0
  653. package/codeyam-cli/templates/chrome-extension-react/README.md +46 -0
  654. package/codeyam-cli/templates/chrome-extension-react/gitignore +15 -0
  655. package/codeyam-cli/templates/chrome-extension-react/index.html +12 -0
  656. package/codeyam-cli/templates/chrome-extension-react/package.json +27 -0
  657. package/codeyam-cli/templates/chrome-extension-react/popup.html +12 -0
  658. package/codeyam-cli/templates/chrome-extension-react/public/manifest.json +15 -0
  659. package/codeyam-cli/templates/chrome-extension-react/src/background/service-worker.ts +7 -0
  660. package/codeyam-cli/templates/chrome-extension-react/src/globals.css +6 -0
  661. package/codeyam-cli/templates/chrome-extension-react/src/lib/storage.ts +37 -0
  662. package/codeyam-cli/templates/chrome-extension-react/src/popup/App.tsx +12 -0
  663. package/codeyam-cli/templates/chrome-extension-react/src/popup/main.tsx +10 -0
  664. package/codeyam-cli/templates/chrome-extension-react/tsconfig.json +24 -0
  665. package/codeyam-cli/templates/chrome-extension-react/vite.config.ts +41 -0
  666. package/codeyam-cli/templates/codeyam-editor-claude.md +149 -0
  667. package/codeyam-cli/templates/codeyam-editor-codex.md +61 -0
  668. package/codeyam-cli/templates/codeyam-editor-gemini.md +59 -0
  669. package/codeyam-cli/templates/codeyam-editor-reference.md +216 -0
  670. package/codeyam-cli/templates/{codeyam:diagnose.md → commands/codeyam-diagnose.md} +1 -1
  671. package/codeyam-cli/templates/design-systems/clean-dashboard-design-system.md +255 -0
  672. package/codeyam-cli/templates/design-systems/editorial-design-system.md +267 -0
  673. package/codeyam-cli/templates/design-systems/mono-brutalist-design-system.md +256 -0
  674. package/codeyam-cli/templates/design-systems/neo-brutalist-design-system.md +294 -0
  675. package/codeyam-cli/templates/editor-step-hook.py +368 -0
  676. package/codeyam-cli/templates/expo-react-native/MOBILE_SETUP.md +288 -0
  677. package/codeyam-cli/templates/expo-react-native/README.md +41 -0
  678. package/codeyam-cli/templates/expo-react-native/__tests__/.gitkeep +0 -0
  679. package/codeyam-cli/templates/expo-react-native/app/_layout.tsx +15 -0
  680. package/codeyam-cli/templates/expo-react-native/app/index.tsx +36 -0
  681. package/codeyam-cli/templates/expo-react-native/app.json +29 -0
  682. package/codeyam-cli/templates/expo-react-native/babel.config.js +10 -0
  683. package/codeyam-cli/templates/expo-react-native/gitignore +14 -0
  684. package/codeyam-cli/templates/expo-react-native/global.css +10 -0
  685. package/codeyam-cli/templates/expo-react-native/lib/storage.ts +32 -0
  686. package/codeyam-cli/templates/expo-react-native/lib/theme.ts +73 -0
  687. package/codeyam-cli/templates/expo-react-native/metro.config.js +6 -0
  688. package/codeyam-cli/templates/expo-react-native/nativewind-env.d.ts +1 -0
  689. package/codeyam-cli/templates/expo-react-native/package.json +54 -0
  690. package/codeyam-cli/templates/expo-react-native/patches/expo-modules-autolinking+3.0.24.patch +29 -0
  691. package/codeyam-cli/templates/expo-react-native/tailwind.config.js +10 -0
  692. package/codeyam-cli/templates/expo-react-native/tsconfig.json +10 -0
  693. package/codeyam-cli/templates/hooks/staleness-check.sh +43 -0
  694. package/codeyam-cli/templates/isolation-route/expo-router.tsx.template +54 -0
  695. package/codeyam-cli/templates/isolation-route/next-app.tsx.template +80 -0
  696. package/codeyam-cli/templates/isolation-route/next-pages.tsx.template +79 -0
  697. package/codeyam-cli/templates/isolation-route/vite-react.tsx.template +78 -0
  698. package/codeyam-cli/templates/msw/browser-setup.ts.template +47 -0
  699. package/codeyam-cli/templates/msw/handler-router.ts.template +47 -0
  700. package/codeyam-cli/templates/msw/server-setup.ts.template +52 -0
  701. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_PATTERNS.md +308 -0
  702. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_UPGRADE.md +304 -0
  703. package/codeyam-cli/templates/nextjs-prisma-sqlite/DATABASE.md +126 -0
  704. package/codeyam-cli/templates/nextjs-prisma-sqlite/FEATURE_PATTERNS.md +37 -0
  705. package/codeyam-cli/templates/nextjs-prisma-sqlite/README.md +53 -0
  706. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/api/todos/route.ts +17 -0
  707. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/codeyam-isolate/layout.tsx +12 -0
  708. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/globals.css +26 -0
  709. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/layout.tsx +34 -0
  710. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/lib/prisma.ts +24 -0
  711. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/page.tsx +10 -0
  712. package/codeyam-cli/templates/nextjs-prisma-sqlite/env +4 -0
  713. package/codeyam-cli/templates/nextjs-prisma-sqlite/eslint.config.mjs +11 -0
  714. package/codeyam-cli/templates/nextjs-prisma-sqlite/gitignore +65 -0
  715. package/codeyam-cli/templates/nextjs-prisma-sqlite/next.config.ts +14 -0
  716. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +39 -0
  717. package/codeyam-cli/templates/nextjs-prisma-sqlite/postcss.config.mjs +7 -0
  718. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/schema.prisma +27 -0
  719. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/seed.ts +40 -0
  720. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma.config.ts +12 -0
  721. package/codeyam-cli/templates/nextjs-prisma-sqlite/seed-adapter.ts +140 -0
  722. package/codeyam-cli/templates/nextjs-prisma-sqlite/tsconfig.json +34 -0
  723. package/codeyam-cli/templates/nextjs-prisma-sqlite/vitest.config.ts +13 -0
  724. package/codeyam-cli/templates/nextjs-prisma-supabase/README.md +52 -0
  725. package/codeyam-cli/templates/nextjs-prisma-supabase/SUPABASE_SETUP.md +104 -0
  726. package/codeyam-cli/templates/nextjs-prisma-supabase/app/api/todos/route.ts +17 -0
  727. package/codeyam-cli/templates/nextjs-prisma-supabase/app/globals.css +26 -0
  728. package/codeyam-cli/templates/nextjs-prisma-supabase/app/layout.tsx +34 -0
  729. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/prisma.ts +20 -0
  730. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/supabase.ts +12 -0
  731. package/codeyam-cli/templates/nextjs-prisma-supabase/app/page.tsx +10 -0
  732. package/codeyam-cli/templates/nextjs-prisma-supabase/env +9 -0
  733. package/codeyam-cli/templates/nextjs-prisma-supabase/eslint.config.mjs +11 -0
  734. package/codeyam-cli/templates/nextjs-prisma-supabase/gitignore +40 -0
  735. package/codeyam-cli/templates/nextjs-prisma-supabase/next.config.ts +11 -0
  736. package/codeyam-cli/templates/nextjs-prisma-supabase/package.json +37 -0
  737. package/codeyam-cli/templates/nextjs-prisma-supabase/postcss.config.mjs +7 -0
  738. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/schema.prisma +27 -0
  739. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/seed.ts +39 -0
  740. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma.config.ts +12 -0
  741. package/codeyam-cli/templates/nextjs-prisma-supabase/tsconfig.json +34 -0
  742. package/codeyam-cli/templates/prompts/conversation-guidance.txt +44 -0
  743. package/codeyam-cli/templates/prompts/conversation-prompt.txt +28 -0
  744. package/codeyam-cli/templates/prompts/interruption-prompt.txt +31 -0
  745. package/codeyam-cli/templates/prompts/stale-rules-prompt.txt +24 -0
  746. package/codeyam-cli/templates/rule-notification-hook.py +44 -17
  747. package/codeyam-cli/templates/rule-reflection-hook.py +25 -5
  748. package/codeyam-cli/templates/rules-instructions.md +34 -88
  749. package/codeyam-cli/templates/seed-adapters/supabase.ts +475 -0
  750. package/codeyam-cli/templates/{codeyam:debug.md → skills/codeyam-debug/SKILL.md} +1 -1
  751. package/codeyam-cli/templates/skills/codeyam-dev-mode/SKILL.md +237 -0
  752. package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +244 -0
  753. package/codeyam-cli/templates/{codeyam:memory.md → skills/codeyam-memory/SKILL.md} +222 -3
  754. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/deprecated-prompt.md +100 -0
  755. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/detect-deprecated-patterns.mjs +139 -0
  756. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/find-exports.mjs +52 -0
  757. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/misleading-api-prompt.md +117 -0
  758. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/read-json-field.mjs +61 -0
  759. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/ripgrep-fallback.mjs +155 -0
  760. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/analyze-prompt.md +46 -0
  761. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/cleanup.mjs +13 -0
  762. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/filter-session.mjs +95 -0
  763. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/preprocess.mjs +160 -0
  764. package/codeyam-cli/templates/{codeyam:new-rule.md → skills/codeyam-new-rule/SKILL.md} +1 -3
  765. package/codeyam-cli/templates/{codeyam:setup.md → skills/codeyam-setup/SKILL.md} +1 -1
  766. package/codeyam-cli/templates/{codeyam:sim.md → skills/codeyam-sim/SKILL.md} +1 -1
  767. package/codeyam-cli/templates/{codeyam:test.md → skills/codeyam-test/SKILL.md} +1 -1
  768. package/codeyam-cli/templates/{codeyam:verify.md → skills/codeyam-verify/SKILL.md} +1 -1
  769. package/package.json +28 -20
  770. package/packages/ai/index.js +1 -1
  771. package/packages/ai/index.js.map +1 -1
  772. package/packages/ai/src/lib/analyzeScope.js +14 -0
  773. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  774. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +22 -4
  775. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  776. package/packages/ai/src/lib/astScopes/methodSemantics.js +99 -0
  777. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  778. package/packages/ai/src/lib/astScopes/nodeToSource.js +16 -0
  779. package/packages/ai/src/lib/astScopes/nodeToSource.js.map +1 -1
  780. package/packages/ai/src/lib/astScopes/paths.js +12 -3
  781. package/packages/ai/src/lib/astScopes/paths.js.map +1 -1
  782. package/packages/ai/src/lib/completionCall.js +10 -7
  783. package/packages/ai/src/lib/completionCall.js.map +1 -1
  784. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +261 -13
  785. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  786. package/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.js +9 -2
  787. package/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.js.map +1 -1
  788. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +14 -4
  789. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  790. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js +54 -0
  791. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js.map +1 -0
  792. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +24 -16
  793. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  794. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js +34 -0
  795. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js.map +1 -0
  796. package/packages/ai/src/lib/dataStructureChunking.js +9 -5
  797. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -1
  798. package/packages/ai/src/lib/generateEntityScenarioData.js +57 -2
  799. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  800. package/packages/ai/src/lib/generateExecutionFlows.js +81 -11
  801. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
  802. package/packages/analyze/index.js +1 -1
  803. package/packages/analyze/index.js.map +1 -1
  804. package/packages/analyze/src/lib/ProjectAnalyzer.js +13 -4
  805. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  806. package/packages/analyze/src/lib/asts/index.js +4 -2
  807. package/packages/analyze/src/lib/asts/index.js.map +1 -1
  808. package/packages/analyze/src/lib/asts/nodes/getNodeType.js +1 -0
  809. package/packages/analyze/src/lib/asts/nodes/getNodeType.js.map +1 -1
  810. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +27 -3
  811. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  812. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +14 -27
  813. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  814. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +0 -5
  815. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  816. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +12 -2
  817. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  818. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +9 -7
  819. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  820. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js +14 -0
  821. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js.map +1 -1
  822. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +44 -11
  823. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  824. package/packages/analyze/src/lib/files/analyzeChange.js +1 -0
  825. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  826. package/packages/analyze/src/lib/files/analyzeInitial.js +1 -0
  827. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  828. package/packages/analyze/src/lib/files/analyzeNextRoute.js +5 -1
  829. package/packages/analyze/src/lib/files/analyzeNextRoute.js.map +1 -1
  830. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +54 -27
  831. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -1
  832. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +42 -13
  833. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  834. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +185 -28
  835. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  836. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +0 -40
  837. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -1
  838. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +1388 -1143
  839. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  840. package/packages/database/index.js +1 -0
  841. package/packages/database/index.js.map +1 -1
  842. package/packages/database/src/lib/kysely/db.js +5 -0
  843. package/packages/database/src/lib/kysely/db.js.map +1 -1
  844. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +149 -0
  845. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  846. package/packages/database/src/lib/loadAnalysis.js +7 -1
  847. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  848. package/packages/database/src/lib/loadCommits.js +23 -13
  849. package/packages/database/src/lib/loadCommits.js.map +1 -1
  850. package/packages/database/src/lib/loadEntities.js +0 -6
  851. package/packages/database/src/lib/loadEntities.js.map +1 -1
  852. package/packages/database/src/lib/loadEntity.js +5 -5
  853. package/packages/database/src/lib/loadEntity.js.map +1 -1
  854. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
  855. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  856. package/packages/database/src/lib/updateCommitMetadata.js +76 -90
  857. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  858. package/packages/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  859. package/packages/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  860. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  861. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  862. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
  863. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
  864. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  865. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  866. package/packages/types/src/enums/ProjectFramework.js +2 -0
  867. package/packages/types/src/enums/ProjectFramework.js.map +1 -1
  868. package/packages/utils/src/lib/fs/rsyncCopy.js +120 -4
  869. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  870. package/scripts/npm-post-install.cjs +34 -0
  871. package/codeyam-cli/src/commands/detect-universal-mocks.js +0 -120
  872. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +0 -1
  873. package/codeyam-cli/src/commands/list.js +0 -31
  874. package/codeyam-cli/src/commands/list.js.map +0 -1
  875. package/codeyam-cli/src/commands/webapp-info.js +0 -146
  876. package/codeyam-cli/src/commands/webapp-info.js.map +0 -1
  877. package/codeyam-cli/src/utils/universal-mocks.js +0 -152
  878. package/codeyam-cli/src/utils/universal-mocks.js.map +0 -1
  879. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CA3JxPb7.js +0 -1
  880. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-B5ctlSYt.js +0 -1
  881. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-ClaLpuOo.js +0 -34
  882. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-BDhPilK7.js +0 -25
  883. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-VeqEBv9v.js +0 -3
  884. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-Gq3Ocjo6.js +0 -1
  885. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-CiwXDxLh.js +0 -1
  886. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-CN61MOMa.js +0 -11
  887. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-JE9ZIoBl.js +0 -51
  888. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-Ca9fAY46.js +0 -21
  889. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +0 -1
  890. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-C5lqplTC.js +0 -1
  891. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-CBoafmVs.js +0 -6
  892. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DGgZjdFg.js +0 -6
  893. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-DCPhhSMo.js +0 -1
  894. package/codeyam-cli/src/webserver/build/client/assets/files-0N0YJQv7.js +0 -1
  895. package/codeyam-cli/src/webserver/build/client/assets/git-DXnyr8uP.js +0 -15
  896. package/codeyam-cli/src/webserver/build/client/assets/globals-CuCsBc3b.css +0 -1
  897. package/codeyam-cli/src/webserver/build/client/assets/labs-CB3MGcys.js +0 -1
  898. package/codeyam-cli/src/webserver/build/client/assets/manifest-de6ccaf4.js +0 -1
  899. package/codeyam-cli/src/webserver/build/client/assets/memory-DCA-kLYt.js +0 -81
  900. package/codeyam-cli/src/webserver/build/client/assets/root-F7e6dvys.js +0 -62
  901. package/codeyam-cli/src/webserver/build/client/assets/settings-BejnUJ6R.js +0 -1
  902. package/codeyam-cli/src/webserver/build/client/assets/simulations-CPoAg7Zo.js +0 -1
  903. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-DNwUduNu.js +0 -1
  904. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-COky1GVF.js +0 -2
  905. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-CpZgwliL.js +0 -1
  906. package/codeyam-cli/src/webserver/build/client/assets/useToast-Bv9JFvUO.js +0 -1
  907. package/codeyam-cli/src/webserver/build/server/assets/index-CFKHuovO.js +0 -1
  908. package/codeyam-cli/src/webserver/build/server/assets/server-build-BQe9Dh4p.js +0 -260
  909. package/codeyam-cli/templates/codeyam-stop-hook.sh +0 -284
  910. package/scripts/finalize-analyzer.cjs +0 -13
  911. /package/codeyam-cli/src/webserver/build/client/assets/{api.labs-survey-l0sNRNKZ.js → api.dev-mode-events-l0sNRNKZ.js} +0 -0
@@ -36,7 +36,6 @@ interface CompletionCallProps {
36
36
  const queue = new PQueue({
37
37
  concurrency: 100,
38
38
  timeout: 20 * 60 * 1000, // 20 minutes
39
- throwOnTimeout: true,
40
39
  autoStart: true,
41
40
  });
42
41
 
@@ -135,62 +134,63 @@ export default async function completionCall({
135
134
  };
136
135
  const params = lib.openai.chatRequestToOpenAIChatParams(chatRequest);
137
136
 
138
- const chatCompletion = await queue.add(
139
- () => {
140
- queueEndTime = Date.now();
141
- return PRetry(
142
- async () => {
143
- const callStartTime = Date.now();
144
- const waitingMessages = [
145
- 'Waiting for LLM response',
146
- 'Still waiting for LLM response',
147
- 'LLM call in progress',
148
- 'Processing LLM request',
149
- 'Awaiting LLM completion',
150
- ];
151
-
152
- const logInterval = setInterval(() => {
153
- const elapsedSeconds = Math.floor(
154
- (Date.now() - callStartTime) / 1000,
155
- );
156
- const messageIndex =
157
- Math.floor(elapsedSeconds / 10) % waitingMessages.length;
158
- awsLogDebugLevel(
159
- 1,
160
- `${waitingMessages[messageIndex]} [type=${type}, model=${model}, elapsed=${elapsedSeconds}s]`,
161
- );
162
- }, 10000);
137
+ const chatCompletionResult = await queue.add(() => {
138
+ queueEndTime = Date.now();
139
+ return PRetry(
140
+ async () => {
141
+ const callStartTime = Date.now();
142
+ const waitingMessages = [
143
+ 'Waiting for LLM response',
144
+ 'Still waiting for LLM response',
145
+ 'LLM call in progress',
146
+ 'Processing LLM request',
147
+ 'Awaiting LLM completion',
148
+ ];
149
+
150
+ const logInterval = setInterval(() => {
151
+ const elapsedSeconds = Math.floor(
152
+ (Date.now() - callStartTime) / 1000,
153
+ );
154
+ const messageIndex =
155
+ Math.floor(elapsedSeconds / 10) % waitingMessages.length;
156
+ awsLogDebugLevel(
157
+ 1,
158
+ `${waitingMessages[messageIndex]} [type=${type}, model=${model}, elapsed=${elapsedSeconds}s]`,
159
+ );
160
+ }, 10000);
163
161
 
164
- try {
165
- return await openai.chat.completions.create(params, {
166
- timeout: 5 * 60 * 1000, // 5 minute timeout
167
- });
168
- } finally {
169
- clearInterval(logInterval);
170
- }
171
- },
172
- {
173
- ...defaultRetryOptions,
174
- onFailedAttempt: (error) => {
175
- retryCount++;
176
- console.log(
177
- `CodeYam Error: Completion call failed [model=${model}]`,
178
- {
179
- error,
180
- prompt,
181
- systemMessage,
182
- attempts,
183
- retryCount,
184
- },
185
- );
186
- },
162
+ try {
163
+ return await openai.chat.completions.create(params, {
164
+ timeout: 5 * 60 * 1000, // 5 minute timeout
165
+ });
166
+ } finally {
167
+ clearInterval(logInterval);
168
+ }
169
+ },
170
+ {
171
+ ...defaultRetryOptions,
172
+ onFailedAttempt: (error) => {
173
+ retryCount++;
174
+ console.log(
175
+ `CodeYam Error: Completion call failed [model=${model}]`,
176
+ {
177
+ error,
178
+ prompt,
179
+ systemMessage,
180
+ attempts,
181
+ retryCount,
182
+ },
183
+ );
187
184
  },
188
- );
189
- },
190
- {
191
- throwOnTimeout: true,
192
- },
193
- );
185
+ },
186
+ );
187
+ });
188
+
189
+ if (!chatCompletionResult) {
190
+ throw new Error('Completion call returned no result');
191
+ }
192
+
193
+ const chatCompletion = chatCompletionResult;
194
194
  const endTime = Date.now();
195
195
 
196
196
  const llmCallStats = getLLMCallStats({
@@ -310,65 +310,66 @@ ${completion}
310
310
 
311
311
  Please provide a corrected version with valid JSON only. Do not include any explanatory text, just the valid JSON object.`;
312
312
 
313
- const correctionChatCompletion = await queue.add(
314
- () => {
315
- return PRetry(
316
- async () => {
317
- const correctionStartTime = Date.now();
318
- const waitingMessages = [
319
- 'Waiting for LLM correction response',
320
- 'Still waiting for LLM correction',
321
- 'LLM correction in progress',
322
- 'Processing LLM correction request',
323
- 'Awaiting LLM correction completion',
324
- ];
325
-
326
- const logInterval = setInterval(() => {
327
- const elapsedSeconds = Math.floor(
328
- (Date.now() - correctionStartTime) / 1000,
329
- );
330
- const messageIndex =
331
- Math.floor(elapsedSeconds / 10) % waitingMessages.length;
332
- awsLogDebugLevel(
333
- 1,
334
- `${waitingMessages[messageIndex]} [type=${type}, model=${model}, elapsed=${elapsedSeconds}s]`,
335
- );
336
- }, 10000);
337
-
338
- try {
339
- return await openai.chat.completions.create(
340
- {
341
- ...params,
342
- messages: [
343
- { role: 'system', content: systemMessage },
344
- { role: 'user', content: prompt },
345
- { role: 'assistant', content: completion },
346
- { role: 'user', content: correctionPrompt },
347
- ],
348
- },
349
- {
350
- timeout: 5 * 60 * 1000,
351
- },
352
- );
353
- } finally {
354
- clearInterval(logInterval);
355
- }
313
+ const correctionChatCompletionResult = await queue.add(() => {
314
+ return PRetry(
315
+ async () => {
316
+ const correctionStartTime = Date.now();
317
+ const waitingMessages = [
318
+ 'Waiting for LLM correction response',
319
+ 'Still waiting for LLM correction',
320
+ 'LLM correction in progress',
321
+ 'Processing LLM correction request',
322
+ 'Awaiting LLM correction completion',
323
+ ];
324
+
325
+ const logInterval = setInterval(() => {
326
+ const elapsedSeconds = Math.floor(
327
+ (Date.now() - correctionStartTime) / 1000,
328
+ );
329
+ const messageIndex =
330
+ Math.floor(elapsedSeconds / 10) % waitingMessages.length;
331
+ awsLogDebugLevel(
332
+ 1,
333
+ `${waitingMessages[messageIndex]} [type=${type}, model=${model}, elapsed=${elapsedSeconds}s]`,
334
+ );
335
+ }, 10000);
336
+
337
+ try {
338
+ return await openai.chat.completions.create(
339
+ {
340
+ ...params,
341
+ messages: [
342
+ { role: 'system', content: systemMessage },
343
+ { role: 'user', content: prompt },
344
+ { role: 'assistant', content: completion },
345
+ { role: 'user', content: correctionPrompt },
346
+ ],
347
+ },
348
+ {
349
+ timeout: 5 * 60 * 1000,
350
+ },
351
+ );
352
+ } finally {
353
+ clearInterval(logInterval);
354
+ }
355
+ },
356
+ {
357
+ ...defaultRetryOptions,
358
+ onFailedAttempt: (error) => {
359
+ console.log('CodeYam Error: Correction call failed', {
360
+ error,
361
+ attempts,
362
+ });
356
363
  },
357
- {
358
- ...defaultRetryOptions,
359
- onFailedAttempt: (error) => {
360
- console.log('CodeYam Error: Correction call failed', {
361
- error,
362
- attempts,
363
- });
364
- },
365
- },
366
- );
367
- },
368
- {
369
- throwOnTimeout: true,
370
- },
371
- );
364
+ },
365
+ );
366
+ });
367
+
368
+ if (!correctionChatCompletionResult) {
369
+ throw new Error('Correction call returned no result');
370
+ }
371
+
372
+ const correctionChatCompletion = correctionChatCompletionResult;
372
373
 
373
374
  const correctedRawCompletion =
374
375
  correctionChatCompletion.choices?.[0]?.message?.content;
@@ -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:',
@@ -3360,6 +3414,22 @@ export class ScopeDataStructure {
3360
3414
  * ensure all sub-paths of that variable are reflected under signature[N].
3361
3415
  */
3362
3416
  private propagateParameterToSignaturePaths(scopeNode: ScopeNode) {
3417
+ // Helper: check if a type is a concrete scalar that cannot have sub-properties.
3418
+ const SCALAR_TYPES = new Set([
3419
+ 'string',
3420
+ 'number',
3421
+ 'boolean',
3422
+ 'bigint',
3423
+ 'symbol',
3424
+ 'void',
3425
+ 'never',
3426
+ ]);
3427
+ const isDefinitelyScalar = (type: string): boolean => {
3428
+ const parts = type.split('|').map((s) => s.trim());
3429
+ const base = parts.filter((s) => s !== 'undefined' && s !== 'null');
3430
+ return base.length > 0 && base.every((b) => SCALAR_TYPES.has(b));
3431
+ };
3432
+
3363
3433
  // Find variable → signature[N] equivalencies
3364
3434
  for (const [varName, equivalencies] of Object.entries(
3365
3435
  scopeNode.equivalencies,
@@ -3390,7 +3460,38 @@ export class ScopeDataStructure {
3390
3460
 
3391
3461
  // Only add if the signature path doesn't already exist
3392
3462
  if (!scopeNode.schema[sigKey]) {
3393
- scopeNode.schema[sigKey] = scopeNode.schema[key];
3463
+ // Check if this path represents variable conflation:
3464
+ // When a standalone variable (e.g., showWorkoutForm from useState)
3465
+ // appears as a sub-property of a scalar-typed ancestor (e.g.,
3466
+ // activity_type = "string"), it's from scope conflation, not real
3467
+ // property access. Block these while allowing legitimate built-in
3468
+ // accesses like string.length or string.slice.
3469
+ let isConflatedPath = false;
3470
+ let checkPos = signaturePath.length;
3471
+ while (true) {
3472
+ checkPos = sigKey.indexOf('.', checkPos + 1);
3473
+ if (checkPos === -1) break;
3474
+ const ancestorPath = sigKey.substring(0, checkPos);
3475
+ const ancestorType = scopeNode.schema[ancestorPath];
3476
+ if (ancestorType && isDefinitelyScalar(ancestorType)) {
3477
+ // Ancestor is scalar — check if the immediate sub-property
3478
+ // is also a standalone variable (indicating conflation)
3479
+ const afterDot = sigKey.substring(checkPos + 1);
3480
+ const nextSep = afterDot.search(/[.\[]/);
3481
+ const subPropName =
3482
+ nextSep === -1
3483
+ ? afterDot
3484
+ : afterDot.substring(0, nextSep);
3485
+ if (scopeNode.schema[subPropName] !== undefined) {
3486
+ isConflatedPath = true;
3487
+ break;
3488
+ }
3489
+ }
3490
+ }
3491
+
3492
+ if (!isConflatedPath) {
3493
+ scopeNode.schema[sigKey] = scopeNode.schema[key];
3494
+ }
3394
3495
  }
3395
3496
  }
3396
3497
  }
@@ -4165,6 +4266,24 @@ export class ScopeDataStructure {
4165
4266
  }
4166
4267
  }
4167
4268
 
4269
+ // Helper: check if a type is a concrete scalar that cannot have sub-properties.
4270
+ // e.g., "string", "number | undefined", "boolean | null" are scalar.
4271
+ // "object", "array", "function", "unknown", "Workout", etc. are NOT scalar.
4272
+ const SCALAR_TYPES = new Set([
4273
+ 'string',
4274
+ 'number',
4275
+ 'boolean',
4276
+ 'bigint',
4277
+ 'symbol',
4278
+ 'void',
4279
+ 'never',
4280
+ ]);
4281
+ const isDefinitelyScalarType = (type: string): boolean => {
4282
+ const parts = type.split('|').map((s) => s.trim());
4283
+ const base = parts.filter((s) => s !== 'undefined' && s !== 'null');
4284
+ return base.length > 0 && base.every((b) => SCALAR_TYPES.has(b));
4285
+ };
4286
+
4168
4287
  // Propagate nested paths from variables to their signature equivalents
4169
4288
  // e.g., if workouts = signature[0].workouts, then workouts[].title becomes
4170
4289
  // signature[0].workouts[].title
@@ -4189,7 +4308,69 @@ export class ScopeDataStructure {
4189
4308
 
4190
4309
  // Add to schema if not already present
4191
4310
  if (!tempScopeNode.schema[signatureKey]) {
4192
- tempScopeNode.schema[signatureKey] = schema[schemaKey];
4311
+ // Check if this path represents variable conflation:
4312
+ // When a standalone variable (e.g., showWorkoutForm from useState)
4313
+ // appears as a sub-property of a scalar-typed ancestor (e.g.,
4314
+ // activity_type = "string"), it's from scope conflation, not real
4315
+ // property access. Block these while allowing legitimate built-in
4316
+ // accesses like string.length or string.slice.
4317
+ let isConflatedPath = false;
4318
+ let checkPos = signaturePath.length;
4319
+ while (true) {
4320
+ checkPos = signatureKey.indexOf('.', checkPos + 1);
4321
+ if (checkPos === -1) break;
4322
+ const ancestorPath = signatureKey.substring(0, checkPos);
4323
+ const ancestorType = tempScopeNode.schema[ancestorPath];
4324
+ if (ancestorType && isDefinitelyScalarType(ancestorType)) {
4325
+ // Ancestor is scalar — check if the immediate sub-property
4326
+ // is also a standalone variable (indicating conflation)
4327
+ const afterDot = signatureKey.substring(checkPos + 1);
4328
+ const nextSep = afterDot.search(/[.\[]/);
4329
+ const subPropName =
4330
+ nextSep === -1 ? afterDot : afterDot.substring(0, nextSep);
4331
+ if (schema[subPropName] !== undefined) {
4332
+ isConflatedPath = true;
4333
+ break;
4334
+ }
4335
+ }
4336
+ }
4337
+
4338
+ if (!isConflatedPath) {
4339
+ tempScopeNode.schema[signatureKey] = schema[schemaKey];
4340
+ }
4341
+ }
4342
+ }
4343
+ }
4344
+ }
4345
+
4346
+ // Post-process: filter out conflated signature paths.
4347
+ // During phase 2 scope analysis, useState(false) conflation can create
4348
+ // bad paths like signature[0].mockWorkouts[].activity_type.showWorkoutForm
4349
+ // directly in scopeNode.schema. These flow through signatureInSchema into
4350
+ // tempScopeNode.schema without any guard. Filter them out here by checking:
4351
+ // 1. An ancestor in the path has a concrete scalar type (string, number, boolean, etc.)
4352
+ // 2. The immediate sub-property of that scalar ancestor is also a standalone
4353
+ // variable in the schema (indicating conflation, not a real property access)
4354
+ for (const key of Object.keys(tempScopeNode.schema)) {
4355
+ if (!key.startsWith('signature[')) continue;
4356
+
4357
+ // Walk through the path looking for scalar-typed ancestors
4358
+ let pos = 0;
4359
+ while (true) {
4360
+ pos = key.indexOf('.', pos + 1);
4361
+ if (pos === -1) break;
4362
+ const ancestorPath = key.substring(0, pos);
4363
+ const ancestorType = tempScopeNode.schema[ancestorPath];
4364
+ if (ancestorType && isDefinitelyScalarType(ancestorType)) {
4365
+ // Found a scalar ancestor — check if the sub-property name
4366
+ // is a standalone variable in the getSchema() result
4367
+ const afterDot = key.substring(pos + 1);
4368
+ const nextSep = afterDot.search(/[.\[]/);
4369
+ const subPropName =
4370
+ nextSep === -1 ? afterDot : afterDot.substring(0, nextSep);
4371
+ if (schema[subPropName] !== undefined) {
4372
+ delete tempScopeNode.schema[key];
4373
+ break;
4193
4374
  }
4194
4375
  }
4195
4376
  }
@@ -4929,9 +5110,109 @@ export class ScopeDataStructure {
4929
5110
  // Replace cyScope placeholders in all external function call data
4930
5111
  // This ensures call signatures and schema paths use actual callback text
4931
5112
  // instead of internal cyScope names, preventing mock data merge conflicts.
4932
- return this.externalFunctionCalls.map((efc) =>
4933
- this.cleanCyScopeFromFunctionCallInfo(efc),
4934
- );
5113
+ const rootScopeName = this.scopeTreeManager.getRootName();
5114
+ const rootSchema = this.scopeNodes[rootScopeName]?.schema ?? {};
5115
+
5116
+ return this.externalFunctionCalls.map((efc) => {
5117
+ const cleaned = this.cleanCyScopeFromFunctionCallInfo(efc);
5118
+ return this.filterConflatedExternalPaths(cleaned, rootSchema);
5119
+ });
5120
+ }
5121
+
5122
+ /**
5123
+ * Filters out conflated paths from external function call schemas.
5124
+ *
5125
+ * When multiple useState(false) calls create equivalency conflation during
5126
+ * Phase 1 analysis, standalone boolean state variables (like showWorkoutForm,
5127
+ * showGoalForm) can bleed into external function call schemas as sub-properties
5128
+ * of unrelated data fields (like data[].activity_type.showWorkoutForm).
5129
+ *
5130
+ * Detection: group sub-properties by parent path. If 2+ sub-properties of
5131
+ * the same parent all match standalone root scope variable names, treat them
5132
+ * as conflation artifacts and remove them.
5133
+ */
5134
+ private filterConflatedExternalPaths(
5135
+ efc: FunctionCallInfo,
5136
+ rootSchema: Record<string, string>,
5137
+ ): FunctionCallInfo {
5138
+ // Build a set of top-level root scope variable names (simple names, no dots/brackets)
5139
+ const topLevelRootVars = new Set<string>();
5140
+ for (const key of Object.keys(rootSchema)) {
5141
+ if (!key.includes('.') && !key.includes('[')) {
5142
+ topLevelRootVars.add(key);
5143
+ }
5144
+ }
5145
+
5146
+ if (topLevelRootVars.size === 0) return efc;
5147
+
5148
+ // Group sub-property matches by their parent path.
5149
+ // For a path like "...data[].activity_type.showWorkoutForm",
5150
+ // parent = "...data[].activity_type", child = "showWorkoutForm"
5151
+ const parentToConflatedKeys = new Map<string, string[]>();
5152
+
5153
+ for (const key of Object.keys(efc.schema)) {
5154
+ const lastDot = key.lastIndexOf('.');
5155
+ if (lastDot === -1) continue;
5156
+
5157
+ const parent = key.substring(0, lastDot);
5158
+ const child = key.substring(lastDot + 1);
5159
+
5160
+ // Skip array access or function call patterns
5161
+ if (child.includes('[') || child.includes('(')) continue;
5162
+
5163
+ // Only consider paths inside array element chains (contains []).
5164
+ // Direct children of functionCallReturnValue are legitimate destructured
5165
+ // return values, not conflation. Conflation happens deeper in the chain
5166
+ // when array element fields get corrupted sub-properties.
5167
+ if (!parent.includes('[')) continue;
5168
+
5169
+ if (topLevelRootVars.has(child)) {
5170
+ if (!parentToConflatedKeys.has(parent)) {
5171
+ parentToConflatedKeys.set(parent, []);
5172
+ }
5173
+ parentToConflatedKeys.get(parent)!.push(key);
5174
+ }
5175
+ }
5176
+
5177
+ // Only filter when 2+ sub-properties of the same parent match root scope vars.
5178
+ // This threshold avoids false positives from coincidental name matches.
5179
+ const keysToRemove = new Set<string>();
5180
+ const parentsToRestore = new Set<string>();
5181
+
5182
+ for (const [parent, conflatedKeys] of parentToConflatedKeys) {
5183
+ if (conflatedKeys.length >= 2) {
5184
+ for (const key of conflatedKeys) {
5185
+ keysToRemove.add(key);
5186
+ }
5187
+ parentsToRestore.add(parent);
5188
+ }
5189
+ }
5190
+
5191
+ if (keysToRemove.size === 0) return efc;
5192
+
5193
+ // Create a new schema without the conflated paths
5194
+ const newSchema: Record<string, string> = {};
5195
+ for (const [key, value] of Object.entries(efc.schema)) {
5196
+ if (keysToRemove.has(key)) continue;
5197
+
5198
+ // Restore parent type: if it was changed to "object" because of conflated
5199
+ // sub-properties, and now all those sub-properties are removed, change it
5200
+ // back to "unknown" (we don't know the original type)
5201
+ if (parentsToRestore.has(key) && value === 'object') {
5202
+ // Check if there are any remaining sub-properties
5203
+ const hasRemainingSubProps = Object.keys(efc.schema).some(
5204
+ (k) =>
5205
+ !keysToRemove.has(k) &&
5206
+ k !== key &&
5207
+ (k.startsWith(key + '.') || k.startsWith(key + '[')),
5208
+ );
5209
+ newSchema[key] = hasRemainingSubProps ? value : 'unknown';
5210
+ } else {
5211
+ newSchema[key] = value;
5212
+ }
5213
+ }
5214
+
5215
+ return { ...efc, schema: newSchema };
4935
5216
  }
4936
5217
 
4937
5218
  /**
@@ -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,