@codeyam/codeyam-cli 0.1.8 → 0.1.10

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 (343) 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 +4 -4
  4. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +0 -33
  5. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +13 -7
  6. package/analyzer-template/packages/analyze/src/lib/asts/index.ts +7 -2
  7. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +0 -98
  8. package/analyzer-template/packages/aws/package.json +1 -1
  9. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +76 -0
  10. package/analyzer-template/packages/database/src/lib/loadEntities.ts +0 -6
  11. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +0 -65
  12. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +7 -0
  13. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -1
  14. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +76 -0
  15. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
  16. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  17. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +0 -6
  18. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  19. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  20. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +0 -25
  21. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  22. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  23. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  24. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js +2 -0
  25. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js.map +1 -1
  26. package/analyzer-template/packages/types/src/enums/ProjectFramework.ts +2 -0
  27. package/analyzer-template/packages/ui-components/package.json +1 -1
  28. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  29. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  30. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js +2 -0
  31. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js.map +1 -1
  32. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js +196 -0
  33. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js.map +1 -0
  34. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js +114 -0
  35. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js.map +1 -0
  36. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js +149 -0
  37. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js.map +1 -0
  38. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js +45 -0
  39. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js.map +1 -0
  40. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js +101 -47
  41. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js.map +1 -1
  42. package/codeyam-cli/src/commands/default.js +3 -46
  43. package/codeyam-cli/src/commands/default.js.map +1 -1
  44. package/codeyam-cli/src/commands/editor.js +1793 -257
  45. package/codeyam-cli/src/commands/editor.js.map +1 -1
  46. package/codeyam-cli/src/commands/init.js +67 -34
  47. package/codeyam-cli/src/commands/init.js.map +1 -1
  48. package/codeyam-cli/src/data/techStacks.js +77 -0
  49. package/codeyam-cli/src/data/techStacks.js.map +1 -0
  50. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js +173 -0
  51. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js.map +1 -0
  52. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js +46 -0
  53. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js.map +1 -0
  54. package/codeyam-cli/src/utils/__tests__/devServerState.test.js +134 -0
  55. package/codeyam-cli/src/utils/__tests__/devServerState.test.js.map +1 -0
  56. package/codeyam-cli/src/utils/__tests__/editorApi.test.js +137 -0
  57. package/codeyam-cli/src/utils/__tests__/editorApi.test.js.map +1 -0
  58. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +742 -1
  59. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -1
  60. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js +93 -0
  61. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js.map +1 -0
  62. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js +181 -3
  63. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js.map +1 -1
  64. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js +121 -0
  65. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js.map +1 -0
  66. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js +294 -0
  67. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js.map +1 -0
  68. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js +249 -2
  69. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js.map +1 -1
  70. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js +520 -0
  71. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js.map +1 -0
  72. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js +118 -1
  73. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js.map +1 -1
  74. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js +209 -3
  75. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js.map +1 -1
  76. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js +153 -0
  77. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js.map +1 -0
  78. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js +139 -0
  79. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js.map +1 -0
  80. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js +221 -0
  81. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js.map +1 -0
  82. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +985 -2
  83. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -1
  84. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js +213 -0
  85. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js.map +1 -0
  86. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +1742 -0
  87. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -0
  88. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js +107 -0
  89. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js.map +1 -0
  90. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js +129 -0
  91. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js.map +1 -0
  92. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js +227 -0
  93. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js.map +1 -0
  94. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +454 -0
  95. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -0
  96. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +25 -5
  97. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  98. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js +51 -0
  99. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js.map +1 -0
  100. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js +142 -0
  101. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js.map +1 -0
  102. package/codeyam-cli/src/utils/analyzer.js +9 -0
  103. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  104. package/codeyam-cli/src/utils/analyzerFinalization.js +100 -0
  105. package/codeyam-cli/src/utils/analyzerFinalization.js.map +1 -0
  106. package/codeyam-cli/src/utils/backgroundServer.js +94 -18
  107. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  108. package/codeyam-cli/src/utils/database.js +37 -2
  109. package/codeyam-cli/src/utils/database.js.map +1 -1
  110. package/codeyam-cli/src/utils/devServerState.js +71 -0
  111. package/codeyam-cli/src/utils/devServerState.js.map +1 -0
  112. package/codeyam-cli/src/utils/editorApi.js +79 -0
  113. package/codeyam-cli/src/utils/editorApi.js.map +1 -0
  114. package/codeyam-cli/src/utils/editorAudit.js +135 -7
  115. package/codeyam-cli/src/utils/editorAudit.js.map +1 -1
  116. package/codeyam-cli/src/utils/editorCapture.js +102 -0
  117. package/codeyam-cli/src/utils/editorCapture.js.map +1 -0
  118. package/codeyam-cli/src/utils/editorDevServer.js +100 -1
  119. package/codeyam-cli/src/utils/editorDevServer.js.map +1 -1
  120. package/codeyam-cli/src/utils/editorEntityChangeStatus.js +44 -0
  121. package/codeyam-cli/src/utils/editorEntityChangeStatus.js.map +1 -0
  122. package/codeyam-cli/src/utils/editorImageVerifier.js +155 -0
  123. package/codeyam-cli/src/utils/editorImageVerifier.js.map +1 -0
  124. package/codeyam-cli/src/utils/editorJournal.js +92 -4
  125. package/codeyam-cli/src/utils/editorJournal.js.map +1 -1
  126. package/codeyam-cli/src/utils/editorLoaderHelpers.js +113 -0
  127. package/codeyam-cli/src/utils/editorLoaderHelpers.js.map +1 -0
  128. package/codeyam-cli/src/utils/editorMockState.js +1 -1
  129. package/codeyam-cli/src/utils/editorPreloadHelpers.js +72 -1
  130. package/codeyam-cli/src/utils/editorPreloadHelpers.js.map +1 -1
  131. package/codeyam-cli/src/utils/editorPreview.js +72 -1
  132. package/codeyam-cli/src/utils/editorPreview.js.map +1 -1
  133. package/codeyam-cli/src/utils/editorScenarioSwitch.js +112 -0
  134. package/codeyam-cli/src/utils/editorScenarioSwitch.js.map +1 -0
  135. package/codeyam-cli/src/utils/editorScenarios.js +331 -0
  136. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -1
  137. package/codeyam-cli/src/utils/editorSeedAdapter.js +173 -0
  138. package/codeyam-cli/src/utils/editorSeedAdapter.js.map +1 -0
  139. package/codeyam-cli/src/utils/entityChangeStatus.js +349 -0
  140. package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -0
  141. package/codeyam-cli/src/utils/entityChangeStatus.server.js +158 -0
  142. package/codeyam-cli/src/utils/entityChangeStatus.server.js.map +1 -0
  143. package/codeyam-cli/src/utils/install-skills.js +1 -1
  144. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  145. package/codeyam-cli/src/utils/parseRegisterArg.js +31 -0
  146. package/codeyam-cli/src/utils/parseRegisterArg.js.map +1 -0
  147. package/codeyam-cli/src/utils/progress.js +2 -2
  148. package/codeyam-cli/src/utils/progress.js.map +1 -1
  149. package/codeyam-cli/src/utils/scenarioCoverage.js +75 -0
  150. package/codeyam-cli/src/utils/scenarioCoverage.js.map +1 -0
  151. package/codeyam-cli/src/utils/scenariosManifest.js +241 -0
  152. package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -0
  153. package/codeyam-cli/src/utils/serverState.js +30 -0
  154. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  155. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +46 -16
  156. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  157. package/codeyam-cli/src/utils/simulationGateMiddleware.js +8 -1
  158. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -1
  159. package/codeyam-cli/src/utils/slugUtils.js +25 -0
  160. package/codeyam-cli/src/utils/slugUtils.js.map +1 -0
  161. package/codeyam-cli/src/utils/syncMocksMiddleware.js +2 -2
  162. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  163. package/codeyam-cli/src/utils/webappDetection.js +21 -0
  164. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  165. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js +40 -0
  166. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js.map +1 -0
  167. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +567 -0
  168. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -0
  169. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js +146 -0
  170. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js.map +1 -0
  171. package/codeyam-cli/src/webserver/app/lib/clientErrors.js +65 -0
  172. package/codeyam-cli/src/webserver/app/lib/clientErrors.js.map +1 -0
  173. package/codeyam-cli/src/webserver/app/lib/git.js +397 -0
  174. package/codeyam-cli/src/webserver/app/lib/git.js.map +1 -0
  175. package/codeyam-cli/src/webserver/build/client/assets/{CopyButton-DmJveP3T.js → CopyButton-BPXZwM4t.js} +1 -1
  176. package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-C76mRRiF.js → EntityItem-BcgbViKV.js} +3 -3
  177. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-CobE682z.js → EntityTypeIcon-CQIG2qda.js} +9 -9
  178. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-djPLI-WV.js → ReportIssueModal-BzHcG7SE.js} +3 -3
  179. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-B76aig_2.js → ScenarioViewer-TSD3C211.js} +3 -3
  180. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-oAf2Kqsf.js +1 -0
  181. package/codeyam-cli/src/webserver/build/client/assets/{_index-C96V0n15.js → _index-DLxKhri3.js} +3 -3
  182. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-BpKzcsJz.js → activity.(_tab)-BcY3q6nt.js} +6 -6
  183. package/codeyam-cli/src/webserver/build/client/assets/addon-canvas-DpzMmAy5.js +1 -0
  184. package/codeyam-cli/src/webserver/build/client/assets/addon-fit-YJmn1quW.js +12 -0
  185. package/codeyam-cli/src/webserver/build/client/assets/addon-webgl-DI8QOUvO.js +58 -0
  186. package/codeyam-cli/src/webserver/build/client/assets/{agent-transcripts-D9hemwl6.js → agent-transcripts-Bni3iiUj.js} +5 -5
  187. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-diff-l0sNRNKZ.js +1 -0
  188. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-l0sNRNKZ.js +1 -0
  189. package/codeyam-cli/src/webserver/build/client/assets/api.editor-project-info-l0sNRNKZ.js +1 -0
  190. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-coverage-l0sNRNKZ.js +1 -0
  191. package/codeyam-cli/src/webserver/build/client/assets/{book-open-D_nMCFmP.js → book-open-BYOypzCa.js} +2 -2
  192. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-BH2h1Ea2.js → chevron-down-C_Pmso5S.js} +2 -2
  193. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-DyIKORY6.js → circle-check-BVMi9VA5.js} +2 -2
  194. package/codeyam-cli/src/webserver/build/client/assets/{copy-NDbZjXao.js → copy-n2FB0_Sw.js} +3 -3
  195. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-CC6AbExI.js +41 -0
  196. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-Ii3inc0_.js +1 -0
  197. package/codeyam-cli/src/webserver/build/client/assets/editor-COWCNVyV.js +10 -0
  198. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-CNB06EIa.js +41 -0
  199. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-CrjR3zZW.js → entity._sha._-DwCV5__E.js} +3 -3
  200. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-CXSi2aeZ.js +6 -0
  201. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-CHMiAog3.js +6 -0
  202. package/codeyam-cli/src/webserver/build/client/assets/{files-DO4CZ16O.js → files-BZrlFE1F.js} +1 -1
  203. package/codeyam-cli/src/webserver/build/client/assets/git-DdZcvjGh.js +1 -0
  204. package/codeyam-cli/src/webserver/build/client/assets/globals-phvmGvat.css +1 -0
  205. package/codeyam-cli/src/webserver/build/client/assets/index-yHOVb4rc.js +15 -0
  206. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-BAXYRVEO.js → loader-circle-DaAZ_H2w.js} +2 -2
  207. package/codeyam-cli/src/webserver/build/client/assets/manifest-6134dc40.js +1 -0
  208. package/codeyam-cli/src/webserver/build/client/assets/memory-9gnxSZlb.js +101 -0
  209. package/codeyam-cli/src/webserver/build/client/assets/{pause-DTAcYxBt.js → pause-f5-1lKBt.js} +3 -3
  210. package/codeyam-cli/src/webserver/build/client/assets/root-BWAyuj0r.js +67 -0
  211. package/codeyam-cli/src/webserver/build/client/assets/{search-fKo7v0Zo.js → search-Di64LWVb.js} +2 -2
  212. package/codeyam-cli/src/webserver/build/client/assets/{settings-DfuTtcJP.js → settings-0OrEMU6J.js} +1 -1
  213. package/codeyam-cli/src/webserver/build/client/assets/{simulations-B3aOzpCZ.js → simulations-DWT-CvLy.js} +1 -1
  214. package/codeyam-cli/src/webserver/build/client/assets/{terminal-BG4heKCG.js → terminal-Br7MOqts.js} +3 -3
  215. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-DtSmdtM4.js → triangle-alert-BLdiCuG-.js} +2 -2
  216. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-C-_hOl_g.js +1 -0
  217. package/codeyam-cli/src/webserver/build/client/sound-test.html +98 -0
  218. package/codeyam-cli/src/webserver/build/server/assets/index-ChX0hPcu.js +1 -0
  219. package/codeyam-cli/src/webserver/build/server/assets/init-kSNsMjj8.js +10 -0
  220. package/codeyam-cli/src/webserver/build/server/assets/server-build-Bm2xIhmh.js +439 -0
  221. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  222. package/codeyam-cli/src/webserver/build-info.json +5 -5
  223. package/codeyam-cli/src/webserver/editorProxy.js +487 -50
  224. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -1
  225. package/codeyam-cli/src/webserver/idleDetector.js +73 -0
  226. package/codeyam-cli/src/webserver/idleDetector.js.map +1 -0
  227. package/codeyam-cli/src/webserver/public/sound-test.html +98 -0
  228. package/codeyam-cli/src/webserver/scripts/codeyam-preload.mjs +242 -3
  229. package/codeyam-cli/src/webserver/scripts/journalCapture.ts +94 -4
  230. package/codeyam-cli/src/webserver/server.js +90 -16
  231. package/codeyam-cli/src/webserver/server.js.map +1 -1
  232. package/codeyam-cli/src/webserver/terminalServer.js +71 -34
  233. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -1
  234. package/codeyam-cli/templates/chrome-extension-react/EXTENSION_SETUP.md +75 -0
  235. package/codeyam-cli/templates/chrome-extension-react/README.md +46 -0
  236. package/codeyam-cli/templates/chrome-extension-react/gitignore +15 -0
  237. package/codeyam-cli/templates/chrome-extension-react/index.html +12 -0
  238. package/codeyam-cli/templates/chrome-extension-react/package.json +27 -0
  239. package/codeyam-cli/templates/chrome-extension-react/popup.html +12 -0
  240. package/codeyam-cli/templates/chrome-extension-react/public/manifest.json +15 -0
  241. package/codeyam-cli/templates/chrome-extension-react/src/background/service-worker.ts +7 -0
  242. package/codeyam-cli/templates/chrome-extension-react/src/globals.css +6 -0
  243. package/codeyam-cli/templates/chrome-extension-react/src/lib/storage.ts +37 -0
  244. package/codeyam-cli/templates/chrome-extension-react/src/popup/App.tsx +12 -0
  245. package/codeyam-cli/templates/chrome-extension-react/src/popup/main.tsx +10 -0
  246. package/codeyam-cli/templates/chrome-extension-react/tsconfig.json +24 -0
  247. package/codeyam-cli/templates/chrome-extension-react/vite.config.ts +41 -0
  248. package/codeyam-cli/templates/codeyam-editor-claude.md +84 -5
  249. package/codeyam-cli/templates/editor-step-hook.py +98 -8
  250. package/codeyam-cli/templates/expo-react-native/MOBILE_SETUP.md +89 -0
  251. package/codeyam-cli/templates/expo-react-native/README.md +41 -0
  252. package/codeyam-cli/templates/expo-react-native/app/(tabs)/_layout.tsx +33 -0
  253. package/codeyam-cli/templates/expo-react-native/app/(tabs)/index.tsx +12 -0
  254. package/codeyam-cli/templates/expo-react-native/app/(tabs)/settings.tsx +12 -0
  255. package/codeyam-cli/templates/expo-react-native/app/_layout.tsx +12 -0
  256. package/codeyam-cli/templates/expo-react-native/app.json +18 -0
  257. package/codeyam-cli/templates/expo-react-native/babel.config.js +9 -0
  258. package/codeyam-cli/templates/expo-react-native/gitignore +12 -0
  259. package/codeyam-cli/templates/expo-react-native/global.css +3 -0
  260. package/codeyam-cli/templates/expo-react-native/lib/storage.ts +32 -0
  261. package/codeyam-cli/templates/expo-react-native/metro.config.js +6 -0
  262. package/codeyam-cli/templates/expo-react-native/nativewind-env.d.ts +1 -0
  263. package/codeyam-cli/templates/expo-react-native/package.json +38 -0
  264. package/codeyam-cli/templates/expo-react-native/tailwind.config.js +10 -0
  265. package/codeyam-cli/templates/expo-react-native/tsconfig.json +10 -0
  266. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_PATTERNS.md +308 -0
  267. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_UPGRADE.md +304 -0
  268. package/codeyam-cli/templates/nextjs-prisma-sqlite/DATABASE.md +126 -0
  269. package/codeyam-cli/templates/nextjs-prisma-sqlite/FEATURE_PATTERNS.md +37 -0
  270. package/codeyam-cli/templates/nextjs-prisma-sqlite/README.md +53 -0
  271. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/codeyam-isolate/layout.tsx +12 -0
  272. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/lib/prisma.ts +9 -4
  273. package/codeyam-cli/templates/nextjs-prisma-sqlite/env +4 -0
  274. package/codeyam-cli/templates/nextjs-prisma-sqlite/gitignore +21 -0
  275. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +5 -1
  276. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/seed.ts +4 -1
  277. package/codeyam-cli/templates/nextjs-prisma-sqlite/seed-adapter.ts +92 -0
  278. package/codeyam-cli/templates/nextjs-prisma-sqlite/vitest.config.ts +13 -0
  279. package/codeyam-cli/templates/nextjs-prisma-supabase/README.md +52 -0
  280. package/codeyam-cli/templates/{nextjs-prisma-sqlite/PRISMA_SETUP.md → nextjs-prisma-supabase/SUPABASE_SETUP.md} +37 -17
  281. package/codeyam-cli/templates/nextjs-prisma-supabase/app/api/todos/route.ts +17 -0
  282. package/codeyam-cli/templates/nextjs-prisma-supabase/app/globals.css +26 -0
  283. package/codeyam-cli/templates/nextjs-prisma-supabase/app/layout.tsx +34 -0
  284. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/prisma.ts +20 -0
  285. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/supabase.ts +12 -0
  286. package/codeyam-cli/templates/nextjs-prisma-supabase/app/page.tsx +10 -0
  287. package/codeyam-cli/templates/nextjs-prisma-supabase/env +9 -0
  288. package/codeyam-cli/templates/nextjs-prisma-supabase/eslint.config.mjs +11 -0
  289. package/codeyam-cli/templates/nextjs-prisma-supabase/gitignore +40 -0
  290. package/codeyam-cli/templates/nextjs-prisma-supabase/next.config.ts +11 -0
  291. package/codeyam-cli/templates/nextjs-prisma-supabase/package.json +37 -0
  292. package/codeyam-cli/templates/nextjs-prisma-supabase/postcss.config.mjs +7 -0
  293. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/schema.prisma +27 -0
  294. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/seed.ts +39 -0
  295. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma.config.ts +12 -0
  296. package/codeyam-cli/templates/nextjs-prisma-supabase/tsconfig.json +34 -0
  297. package/codeyam-cli/templates/skills/codeyam-dev-mode/SKILL.md +2 -2
  298. package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +97 -17
  299. package/codeyam-cli/templates/skills/codeyam-memory/SKILL.md +10 -10
  300. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/detect-deprecated-patterns.mjs +139 -0
  301. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/find-exports.mjs +52 -0
  302. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/read-json-field.mjs +61 -0
  303. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/ripgrep-fallback.mjs +155 -0
  304. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/cleanup.mjs +13 -0
  305. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/filter-session.mjs +95 -0
  306. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/preprocess.mjs +160 -0
  307. package/package.json +14 -9
  308. package/packages/ai/src/lib/generateExecutionFlows.js +0 -11
  309. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
  310. package/packages/analyze/src/lib/ProjectAnalyzer.js +10 -4
  311. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  312. package/packages/analyze/src/lib/asts/index.js +4 -2
  313. package/packages/analyze/src/lib/asts/index.js.map +1 -1
  314. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +0 -40
  315. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -1
  316. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +76 -0
  317. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
  318. package/packages/database/src/lib/loadEntities.js +0 -6
  319. package/packages/database/src/lib/loadEntities.js.map +1 -1
  320. package/packages/database/src/lib/updateCommitMetadata.js +0 -25
  321. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  322. package/packages/types/src/enums/ProjectFramework.js +2 -0
  323. package/packages/types/src/enums/ProjectFramework.js.map +1 -1
  324. package/codeyam-cli/src/webserver/build/client/assets/Terminal-Dnj5CY9R.js +0 -41
  325. package/codeyam-cli/src/webserver/build/client/assets/addon-fit-CUXOrorO.js +0 -1
  326. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-CMT1jU2q.js +0 -21
  327. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BiM6z3Do.js +0 -1
  328. package/codeyam-cli/src/webserver/build/client/assets/editor-D1DAKXtT.js +0 -8
  329. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-DkzqFzFj.js +0 -6
  330. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-C28BiQzt.js +0 -6
  331. package/codeyam-cli/src/webserver/build/client/assets/git-CFCTYk9I.js +0 -15
  332. package/codeyam-cli/src/webserver/build/client/assets/globals-B17TBSS6.css +0 -1
  333. package/codeyam-cli/src/webserver/build/client/assets/manifest-a632de18.js +0 -1
  334. package/codeyam-cli/src/webserver/build/client/assets/memory-Dg0mvYrI.js +0 -96
  335. package/codeyam-cli/src/webserver/build/client/assets/root-DUKqhFlb.js +0 -67
  336. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-ByhSyh0W.js +0 -1
  337. package/codeyam-cli/src/webserver/build/server/assets/index-HfLydfDq.js +0 -1
  338. package/codeyam-cli/src/webserver/build/server/assets/server-build-CUu_F-oo.js +0 -366
  339. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/detect-deprecated-patterns.sh +0 -108
  340. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/find-exports.sh +0 -69
  341. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/cleanup.sh +0 -12
  342. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/filter.jq +0 -45
  343. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/preprocess.sh +0 -139
@@ -1,10 +1,10 @@
1
1
  {
2
- "buildTimestamp": "2026-03-03T21:38:29.205Z",
3
- "buildTime": 1772573909205,
4
- "gitCommit": "d6e9b191c6db7a9b47f3bf984e4387e2c0607deb",
5
- "nodeVersion": "v20.20.0",
6
- "contentHash": "56095f026fcf9575b86866f4fe3d3d61b9466cf70e4d3f16001752fd1febd7c2",
7
- "buildNumber": 829,
8
- "semanticVersion": "0.1.829",
9
- "version": "0.1.829 (2026-03-03T21:38+56095f0)"
2
+ "buildTimestamp": "2026-03-13T18:26:16.810Z",
3
+ "buildTime": 1773426376810,
4
+ "gitCommit": "32a74239cfeb3bcb18e88e29f2911117ce29ee39",
5
+ "nodeVersion": "v20.20.1",
6
+ "contentHash": "68aada52a9e636008fb2f4fffc504ee4b3e09bd06eacbf40d008b536dcb9018b",
7
+ "buildNumber": 983,
8
+ "semanticVersion": "0.1.983",
9
+ "version": "0.1.983 (2026-03-13T18:26+68aada5)"
10
10
  }
@@ -1,7 +1,7 @@
1
1
 
2
- [3/3/2026, 9:38:29 PM] > codeyam-combo@1.0.0 mergeDependencies
3
- [3/3/2026, 9:38:29 PM] > node ./scripts/mergePackageJsonFiles.cjs
2
+ [3/13/2026, 6:26:16 PM] > codeyam-combo@1.0.0 mergeDependencies
3
+ [3/13/2026, 6:26:16 PM] > node ./scripts/mergePackageJsonFiles.cjs
4
4
 
5
5
 
6
- [3/3/2026, 9:38:29 PM] Merged dependencies into root package.json
6
+ [3/13/2026, 6:26:16 PM] Merged dependencies into root package.json
7
7
 
@@ -9,7 +9,7 @@
9
9
  "dependencies": {
10
10
  "@aws-sdk/client-cloudwatch-logs": "^3.990.0",
11
11
  "@aws-sdk/client-cloudfront": "^3.990.0",
12
- "@aws-sdk/client-codebuild": "^3.990.0",
12
+ "@aws-sdk/client-codebuild": "^3.1000.0",
13
13
  "@aws-sdk/client-dynamodb": "^3.990.0",
14
14
  "@aws-sdk/client-ec2": "^3.990.0",
15
15
  "@aws-sdk/client-ecr": "^3.990.0",
@@ -38,7 +38,7 @@
38
38
  "pixelmatch": "^5.3.0",
39
39
  "playwright": "1.58.0",
40
40
  "sharp": "^0.34.5",
41
- "simple-git": "^3.28.0",
41
+ "simple-git": "^3.32.2",
42
42
  "undici": "^7.18.2",
43
43
  "uuid": "^11.1.0",
44
44
  "pluralize": "^8.0.0",
@@ -51,13 +51,13 @@
51
51
  "kysely": "^0.28.11",
52
52
  "pg": "^8.19.0",
53
53
  "@octokit/request": "^10.0.3",
54
- "lucide-react": "^0.556.0",
54
+ "lucide-react": "^0.577.0",
55
55
  "react-resizable": "^3.0.5"
56
56
  },
57
57
  "devDependencies": {
58
58
  "typescript": "^5.9.3",
59
59
  "@jest/types": "^30.2.0",
60
- "@types/node": "^25.0.2",
60
+ "@types/node": "^25.3.3",
61
61
  "@types/yargs": "^17.0.34",
62
62
  "@types/jsdom": "^27.0.0",
63
63
  "@types/better-sqlite3": "^7.6.13",
@@ -129,19 +129,6 @@ export default function generateExecutionFlows({
129
129
  fullToShortPathMap[fullPath] = shortPath;
130
130
  }
131
131
 
132
- console.log(
133
- `[generateExecutionFlows] ${entity.name}: attributesMap has ${Object.keys(resolvedAttributesMap).length} keys, fullToShortPathMap has ${Object.keys(fullToShortPathMap).length} entries`,
134
- );
135
- console.log(
136
- `[generateExecutionFlows] ${entity.name}: attributesMap keys: [${Object.keys(resolvedAttributesMap).join(', ')}]`,
137
- );
138
- console.log(
139
- `[generateExecutionFlows] ${entity.name}: fullToShortPathMap: ${JSON.stringify(fullToShortPathMap)}`,
140
- );
141
- console.log(
142
- `[generateExecutionFlows] ${entity.name}: equivalentSignatureVariables: ${JSON.stringify(equivalentSignatureVariables)}`,
143
- );
144
-
145
132
  // Get pre-computed conditional data from metadata
146
133
  const conditionalUsages: Record<string, ConditionalUsage[]> =
147
134
  entity.metadata?.isolatedDataStructure?.conditionalUsages ?? {};
@@ -186,26 +173,6 @@ export default function generateExecutionFlows({
186
173
  }
187
174
  }
188
175
 
189
- console.log(
190
- `[generateExecutionFlows] ${entity.name}: conditionalUsages keys: [${Object.keys(conditionalUsages).join(', ')}]`,
191
- );
192
- console.log(
193
- `[generateExecutionFlows] ${entity.name}: conditionalUsages sourceDataPaths: ${JSON.stringify(
194
- Object.fromEntries(
195
- Object.entries(conditionalUsages).map(([k, v]) => [
196
- k,
197
- (v as any[]).map((u: any) => u.sourceDataPath ?? '(none)'),
198
- ]),
199
- ),
200
- )}`,
201
- );
202
- console.log(
203
- `[generateExecutionFlows] ${entity.name}: compoundConditionals count: ${compoundConditionals.length}`,
204
- );
205
- console.log(
206
- `[generateExecutionFlows] ${entity.name}: sourceEquivalencies keys count: ${Object.keys(mergedDataStructure.sourceEquivalencies ?? {}).length}`,
207
- );
208
-
209
176
  const conditionalsBasedFlows = generateExecutionFlowsFromConditionals({
210
177
  conditionalUsages,
211
178
  compoundConditionals,
@@ -340,17 +340,23 @@ export class ProjectAnalyzer {
340
340
  * Refresh the TypeScript program to pick up file changes
341
341
  */
342
342
  refreshProgram(): void {
343
- // Memory logging: Capture state before refresh
344
- const memBefore = process.memoryUsage();
345
-
346
343
  // Apply the same unapprovedPaths filtering when refreshing
347
344
  const excludePatterns =
348
345
  this.project.metadata?.unapprovedPaths?.filter(Boolean) || [];
349
346
 
350
- // Refresh all programs
351
- this.programs = this.tsConfigPaths.map((configPath) =>
352
- lib.asts.createProgramFromTsConfigPath(configPath, excludePatterns),
353
- );
347
+ // Release old programs and caches BEFORE creating new ones to reduce peak memory.
348
+ // Without this, both old (~1.7GB) and new (~1.7GB) programs coexist during creation,
349
+ // causing OOM on monorepos with multiple tsconfigs.
350
+ this.programs = [];
351
+ this.sourceFileByPath.clear();
352
+ this.typeCheckerByPath.clear();
353
+
354
+ // Create programs one at a time so each old program can be GC'd before the next
355
+ for (const configPath of this.tsConfigPaths) {
356
+ this.programs.push(
357
+ lib.asts.createProgramFromTsConfigPath(configPath, excludePatterns),
358
+ );
359
+ }
354
360
 
355
361
  // Update primary program for backward compatibility
356
362
  this.program = this.programs[0];
@@ -95,8 +95,13 @@ export function createProgramFromTsConfigPath(
95
95
  throw new Error('Could not parse tsconfig.json');
96
96
  }
97
97
 
98
- // Filter file names based on exclude patterns to reduce memory usage
99
- let fileNames = parsedCommandLine.fileNames;
98
+ // Always filter out node_modules from root files to prevent OOM on large projects.
99
+ // This only removes them as root compilation targets — TypeScript's module resolution
100
+ // still follows imports into node_modules for type info when processing source files.
101
+ let fileNames = parsedCommandLine.fileNames.filter(
102
+ (f) => !f.includes('/node_modules/'),
103
+ );
104
+
100
105
  if (excludePatterns && excludePatterns.length > 0) {
101
106
  const regexPatterns = excludePatterns
102
107
  .map((pattern) => {
@@ -65,10 +65,6 @@ export default async function generateExecutionFlows({
65
65
  }
66
66
 
67
67
  if (!analysis.metadata.executionFlows) {
68
- console.log(
69
- `[GenerateExecutionFlows] Starting for ${entity.name} (${entity.filePath})`,
70
- );
71
-
72
68
  // Build childEntityMetadata from dependentAnalyses for child flow merging
73
69
  // This maps child component names to their metadata (specifically isolatedDataStructure)
74
70
  const childEntityMetadata = buildChildEntityMetadata(
@@ -77,15 +73,6 @@ export default async function generateExecutionFlows({
77
73
  );
78
74
 
79
75
  const childCount = Object.keys(childEntityMetadata).length;
80
- console.log(
81
- `[GenerateExecutionFlows] Built childEntityMetadata with ${childCount} children`,
82
- );
83
- if (childCount > 0) {
84
- console.log(
85
- `[GenerateExecutionFlows] Will merge flows from children: [${Object.keys(childEntityMetadata).join(', ')}]`,
86
- );
87
- }
88
-
89
76
  const {
90
77
  result: { executionFlows, llmCall: executionFlowsLLMCall },
91
78
  } = await measureAndReportExecutionTime(
@@ -100,18 +87,6 @@ export default async function generateExecutionFlows({
100
87
  updateProgress,
101
88
  );
102
89
 
103
- console.log(
104
- `[GenerateExecutionFlows] Generated ${executionFlows.length} execution flows for ${entity.name}`,
105
- );
106
- for (const flow of executionFlows) {
107
- const reqValues = flow.requiredValues
108
- .map((rv) => `${rv.attributePath}=${rv.value}`)
109
- .join(', ');
110
- console.log(
111
- `[GenerateExecutionFlows] - Flow '${flow.id}': ${flow.name} [${reqValues}]`,
112
- );
113
- }
114
-
115
90
  analysis.metadata.executionFlows = executionFlows;
116
91
 
117
92
  if (executionFlowsLLMCall) {
@@ -137,14 +112,7 @@ export function buildChildEntityMetadata(
137
112
  ): Record<string, Entity['metadata']> {
138
113
  const childEntityMetadata: Record<string, Entity['metadata']> = {};
139
114
 
140
- console.log(
141
- `[BuildChildMetadata] Starting for entity: ${entity.name} (${entity.filePath})`,
142
- );
143
-
144
115
  if (!dependentAnalyses) {
145
- console.log(
146
- `[BuildChildMetadata] No dependentAnalyses provided, returning empty`,
147
- );
148
116
  return childEntityMetadata;
149
117
  }
150
118
 
@@ -152,54 +120,19 @@ export function buildChildEntityMetadata(
152
120
  entity.metadata?.isolatedDataStructure?.childBoundaryGatingConditions;
153
121
 
154
122
  if (!childBoundaryGatingConditions) {
155
- console.log(
156
- `[BuildChildMetadata] No childBoundaryGatingConditions found in isolatedDataStructure`,
157
- );
158
- console.log(
159
- `[BuildChildMetadata] isolatedDataStructure keys: ${Object.keys(entity.metadata?.isolatedDataStructure ?? {}).join(', ') || 'none'}`,
160
- );
161
123
  return childEntityMetadata;
162
124
  }
163
125
 
164
126
  const childNames = Object.keys(childBoundaryGatingConditions);
165
- console.log(
166
- `[BuildChildMetadata] Found ${childNames.length} children in childBoundaryGatingConditions: [${childNames.join(', ')}]`,
167
- );
168
-
169
- // Log gating conditions for each child
170
- for (const [childName, conditions] of Object.entries(
171
- childBoundaryGatingConditions,
172
- )) {
173
- const isUnconditional = conditions.some(
174
- (c) => c.location === 'unconditional',
175
- );
176
- console.log(
177
- `[BuildChildMetadata] Child '${childName}': ${conditions.length} gating conditions, unconditional=${isUnconditional}`,
178
- );
179
- for (const condition of conditions) {
180
- console.log(
181
- `[BuildChildMetadata] - path='${condition.path}' location='${condition.location}' isNegated=${condition.isNegated ?? false}`,
182
- );
183
- }
184
- }
185
-
186
127
  const importedExports = entity.metadata?.importedExports ?? [];
187
- console.log(
188
- `[BuildChildMetadata] Entity has ${importedExports.length} importedExports`,
189
- );
190
128
 
191
129
  for (const childName of childNames) {
192
- console.log(`[BuildChildMetadata] Looking up child '${childName}'...`);
193
-
194
130
  // Find the child in importedExports to get its file path
195
131
  const importedExport = importedExports.find(
196
132
  (ie) => ie.name === childName || ie.resolvedName === childName,
197
133
  );
198
134
 
199
135
  if (!importedExport) {
200
- console.log(
201
- `[BuildChildMetadata] Child '${childName}' NOT FOUND in importedExports`,
202
- );
203
136
  continue;
204
137
  }
205
138
 
@@ -208,27 +141,14 @@ export function buildChildEntityMetadata(
208
141
  importedExport.resolvedFilePath ?? importedExport.filePath;
209
142
  const lookupName = importedExport.resolvedName ?? importedExport.name;
210
143
 
211
- console.log(
212
- `[BuildChildMetadata] Child '${childName}' found in importedExports: lookupPath='${lookupPath}' lookupName='${lookupName}'`,
213
- );
214
-
215
144
  // Look up the child's analysis in dependentAnalyses
216
145
  const childAnalysis = dependentAnalyses[lookupPath]?.[lookupName];
217
146
 
218
147
  if (!childAnalysis) {
219
- console.log(
220
- `[BuildChildMetadata] Child '${childName}' analysis NOT FOUND in dependentAnalyses[${lookupPath}][${lookupName}]`,
221
- );
222
- console.log(
223
- `[BuildChildMetadata] Available paths in dependentAnalyses: [${Object.keys(dependentAnalyses).slice(0, 10).join(', ')}...]`,
224
- );
225
148
  continue;
226
149
  }
227
150
 
228
151
  if (!childAnalysis.entity?.metadata) {
229
- console.log(
230
- `[BuildChildMetadata] Child '${childName}' analysis found but entity.metadata is missing`,
231
- );
232
152
  continue;
233
153
  }
234
154
 
@@ -237,28 +157,10 @@ export function buildChildEntityMetadata(
237
157
  const childConditionalUsages = childIsolated?.conditionalUsages ?? {};
238
158
  const childConditionalCount = Object.keys(childConditionalUsages).length;
239
159
 
240
- console.log(
241
- `[BuildChildMetadata] Child '${childName}' FOUND with metadata:`,
242
- );
243
- console.log(
244
- `[BuildChildMetadata] - conditionalUsages: ${childConditionalCount} paths`,
245
- );
246
- if (childConditionalCount > 0) {
247
- for (const [path, usages] of Object.entries(childConditionalUsages)) {
248
- console.log(
249
- `[BuildChildMetadata] - '${path}': ${(usages as any[]).length} usages`,
250
- );
251
- }
252
- }
253
-
254
160
  // Cast to mutable type - the metadata is only read, not modified
255
161
  childEntityMetadata[childName] = childAnalysis.entity
256
162
  .metadata as Entity['metadata'];
257
163
  }
258
164
 
259
- console.log(
260
- `[BuildChildMetadata] RESULT: Found metadata for ${Object.keys(childEntityMetadata).length} children: [${Object.keys(childEntityMetadata).join(', ')}]`,
261
- );
262
-
263
165
  return childEntityMetadata;
264
166
  }
@@ -15,7 +15,7 @@
15
15
  "@aws-sdk/client-cloudwatch-logs": "^3.990.0",
16
16
  "@aws-sdk/client-dynamodb": "^3.990.0",
17
17
  "@aws-sdk/client-ecr": "^3.990.0",
18
- "@aws-sdk/client-ecs": "^3.990.0",
18
+ "@aws-sdk/client-ecs": "^3.1004.0",
19
19
  "@aws-sdk/client-s3": "^3.990.0",
20
20
  "@aws-sdk/client-sqs": "^3.990.0",
21
21
  "@aws-sdk/lib-storage": "^3.990.0",
@@ -10,7 +10,14 @@ const editorScenariosSchema = {
10
10
  description: schemaField<string | null>(),
11
11
  component_name: schemaField<string | null>(),
12
12
  component_path: schemaField<string | null>(),
13
+ url: schemaField<string | null>(),
14
+ type: schemaField<string | null>(),
13
15
  screenshot_path: schemaField<string | null>(),
16
+ viewport_width: schemaField<number | null>(),
17
+ viewport_height: schemaField<number | null>(),
18
+ dimension: schemaField<string | null>(),
19
+ dimensions: schemaField<string | null>(),
20
+ screenshot_paths: schemaField<string | null>(),
14
21
  created_at: schemaField<Generated<string>>(),
15
22
  updated_at: schemaField<Generated<string>>(),
16
23
  } as const;
@@ -38,6 +45,8 @@ export async function createEditorScenariosTable(
38
45
  .addColumn('description', 'text')
39
46
  .addColumn('component_name', 'varchar')
40
47
  .addColumn('component_path', 'varchar')
48
+ .addColumn('url', 'varchar')
49
+ .addColumn('type', 'varchar')
41
50
  .addColumn('screenshot_path', 'varchar')
42
51
  .addColumn('created_at', 'datetime', defaultNow(true))
43
52
  .addColumn('updated_at', 'datetime', defaultNow(true))
@@ -48,6 +57,8 @@ export async function createEditorScenariosTable(
48
57
  for (const col of [
49
58
  'component_name',
50
59
  'component_path',
60
+ 'url',
61
+ 'type',
51
62
  'screenshot_path',
52
63
  ] as const) {
53
64
  try {
@@ -59,4 +70,69 @@ export async function createEditorScenariosTable(
59
70
  // Column already exists — expected for fresh databases
60
71
  }
61
72
  }
73
+
74
+ // Integer columns for viewport dimensions
75
+ for (const col of ['viewport_width', 'viewport_height'] as const) {
76
+ try {
77
+ await db.schema
78
+ .alterTable('editor_scenarios')
79
+ .addColumn(col, 'integer')
80
+ .execute();
81
+ } catch {
82
+ // Column already exists — expected for fresh databases
83
+ }
84
+ }
85
+
86
+ // Named dimension column (e.g. "Mobile", "Desktop")
87
+ try {
88
+ await db.schema
89
+ .alterTable('editor_scenarios')
90
+ .addColumn('dimension', 'varchar')
91
+ .execute();
92
+ } catch {
93
+ // Column already exists — expected for fresh databases
94
+ }
95
+
96
+ // Multi-dimension support: JSON array of dimension names and map of screenshot paths
97
+ for (const col of ['dimensions', 'screenshot_paths'] as const) {
98
+ try {
99
+ await db.schema
100
+ .alterTable('editor_scenarios')
101
+ .addColumn(col, 'text')
102
+ .execute();
103
+ } catch {
104
+ // Column already exists — expected for fresh databases
105
+ }
106
+ }
107
+
108
+ // Backfill: wrap existing single dimension into dimensions array,
109
+ // and existing screenshot_path into screenshot_paths object
110
+ try {
111
+ const rows = await db
112
+ .selectFrom('editor_scenarios')
113
+ .select(['id', 'dimension', 'screenshot_path'])
114
+ .execute();
115
+ for (const row of rows) {
116
+ const r = row as any;
117
+ if (r.dimension && !r.dimensions) {
118
+ await db
119
+ .updateTable('editor_scenarios')
120
+ .set({ dimensions: JSON.stringify([r.dimension]) })
121
+ .where('id', '=', r.id)
122
+ .execute();
123
+ }
124
+ if (r.screenshot_path && !r.screenshot_paths) {
125
+ const dimName = r.dimension || 'Default';
126
+ await db
127
+ .updateTable('editor_scenarios')
128
+ .set({
129
+ screenshot_paths: JSON.stringify({ [dimName]: r.screenshot_path }),
130
+ })
131
+ .where('id', '=', r.id)
132
+ .execute();
133
+ }
134
+ }
135
+ } catch {
136
+ // Backfill is best-effort — columns may not exist yet on first run
137
+ }
62
138
  }
@@ -95,12 +95,6 @@ export default async function loadEntities({
95
95
  const entities = await query.execute();
96
96
 
97
97
  if (!entities || entities.length === 0) {
98
- console.log('Load Entities: No entities found', {
99
- projectId,
100
- fileIds,
101
- filePaths,
102
- shas,
103
- });
104
98
  return null;
105
99
  }
106
100
 
@@ -55,25 +55,6 @@ export default async function updateCommitMetadata({
55
55
  if (runStatusUpdate) {
56
56
  runStatusUpdate.lastUpdatedAt ??= new Date().toISOString();
57
57
 
58
- if (runStatusUpdate.currentEntityShas !== undefined) {
59
- console.log(
60
- `[updateCommitMetadata] Updating currentRun.currentEntityShas`,
61
- );
62
- console.log(`[updateCommitMetadata] Commit SHA: ${commitSha}`);
63
- console.log(
64
- `[updateCommitMetadata] Previous entity SHAs:`,
65
- currentMetadata.currentRun?.currentEntityShas,
66
- );
67
- console.log(
68
- `[updateCommitMetadata] New entity SHAs:`,
69
- runStatusUpdate.currentEntityShas,
70
- );
71
- console.log(
72
- `[updateCommitMetadata] Archive flag:`,
73
- archiveCurrentRun,
74
- );
75
- }
76
-
77
58
  metadataUpdate = deepMerge(metadataUpdate ?? {}, {
78
59
  currentRun: runStatusUpdate,
79
60
  });
@@ -88,61 +69,15 @@ export default async function updateCommitMetadata({
88
69
 
89
70
  // Archive current run if requested
90
71
  if (archiveCurrentRun && updatedMetadata.currentRun) {
91
- console.log(
92
- `[updateCommitMetadata] ========================================`,
93
- );
94
- console.log(`[updateCommitMetadata] ARCHIVING CURRENT RUN`);
95
- console.log(`[updateCommitMetadata] Commit SHA: ${commitSha}`);
96
- console.log(
97
- `[updateCommitMetadata] Current run entity SHAs:`,
98
- updatedMetadata.currentRun.currentEntityShas,
99
- );
100
- console.log(
101
- `[updateCommitMetadata] Current run PIDs: analyzer=${updatedMetadata.currentRun.analyzerPid}, capture=${updatedMetadata.currentRun.capturePid}`,
102
- );
103
- console.log(
104
- `[updateCommitMetadata] Current run completed: analyses=${updatedMetadata.currentRun.analysesCompleted}, captures=${updatedMetadata.currentRun.capturesCompleted}`,
105
- );
106
- console.log(
107
- `[updateCommitMetadata] Historical runs before archiving: ${updatedMetadata.historicalRuns?.length || 0}`,
108
- );
109
-
110
72
  const runToArchive: CommitRunStatus = {
111
73
  ...updatedMetadata.currentRun,
112
74
  archivedAt: new Date().toISOString(),
113
75
  };
114
76
 
115
- console.log(
116
- `[updateCommitMetadata] Run to archive:`,
117
- JSON.stringify(runToArchive, null, 2),
118
- );
119
-
120
77
  updatedMetadata.historicalRuns = [
121
78
  ...(updatedMetadata.historicalRuns || []),
122
79
  runToArchive,
123
80
  ];
124
-
125
- console.log(
126
- `[updateCommitMetadata] Historical runs after archiving: ${updatedMetadata.historicalRuns.length}`,
127
- );
128
- console.log(
129
- `[updateCommitMetadata] All historical runs:`,
130
- JSON.stringify(
131
- updatedMetadata.historicalRuns.map((r) => ({
132
- entityShas: r.currentEntityShas,
133
- archivedAt: r.archivedAt,
134
- completed: {
135
- analyses: r.analysesCompleted,
136
- captures: r.capturesCompleted,
137
- },
138
- })),
139
- null,
140
- 2,
141
- ),
142
- );
143
- console.log(
144
- `[updateCommitMetadata] ========================================`,
145
- );
146
81
  }
147
82
 
148
83
  // Allow callback to perform complex atomic updates
@@ -7,7 +7,14 @@ declare const editorScenariosSchema: {
7
7
  readonly description: string;
8
8
  readonly component_name: string;
9
9
  readonly component_path: string;
10
+ readonly url: string;
11
+ readonly type: string;
10
12
  readonly screenshot_path: string;
13
+ readonly viewport_width: number;
14
+ readonly viewport_height: number;
15
+ readonly dimension: string;
16
+ readonly dimensions: string;
17
+ readonly screenshot_paths: string;
11
18
  readonly created_at: Generated<string>;
12
19
  readonly updated_at: Generated<string>;
13
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"editorScenariosTable.d.ts","sourceRoot":"","sources":["../../../../../../../database/src/lib/kysely/tables/editorScenariosTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA2B,MAAM,QAAQ,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAIxC,QAAA,MAAM,qBAAqB;;;;;;;;;;CAUjB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG;KAChC,CAAC,IAAI,MAAM,OAAO,qBAAqB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC;CAC7E,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAEnC,CAAC,MAAM,oBAAoB,CAAC,EAAE,CAAC;AAEpC,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GACd,OAAO,CAAC,IAAI,CAAC,CAkCf"}
1
+ {"version":3,"file":"editorScenariosTable.d.ts","sourceRoot":"","sources":["../../../../../../../database/src/lib/kysely/tables/editorScenariosTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA2B,MAAM,QAAQ,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAIxC,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;CAiBjB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG;KAChC,CAAC,IAAI,MAAM,OAAO,qBAAqB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC;CAC7E,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAEnC,CAAC,MAAM,oBAAoB,CAAC,EAAE,CAAC;AAEpC,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GACd,OAAO,CAAC,IAAI,CAAC,CAuGf"}
@@ -6,7 +6,14 @@ const editorScenariosSchema = {
6
6
  description: schemaField(),
7
7
  component_name: schemaField(),
8
8
  component_path: schemaField(),
9
+ url: schemaField(),
10
+ type: schemaField(),
9
11
  screenshot_path: schemaField(),
12
+ viewport_width: schemaField(),
13
+ viewport_height: schemaField(),
14
+ dimension: schemaField(),
15
+ dimensions: schemaField(),
16
+ screenshot_paths: schemaField(),
10
17
  created_at: schemaField(),
11
18
  updated_at: schemaField(),
12
19
  };
@@ -20,6 +27,8 @@ export async function createEditorScenariosTable(db) {
20
27
  .addColumn('description', 'text')
21
28
  .addColumn('component_name', 'varchar')
22
29
  .addColumn('component_path', 'varchar')
30
+ .addColumn('url', 'varchar')
31
+ .addColumn('type', 'varchar')
23
32
  .addColumn('screenshot_path', 'varchar')
24
33
  .addColumn('created_at', 'datetime', defaultNow(true))
25
34
  .addColumn('updated_at', 'datetime', defaultNow(true))
@@ -29,6 +38,8 @@ export async function createEditorScenariosTable(db) {
29
38
  for (const col of [
30
39
  'component_name',
31
40
  'component_path',
41
+ 'url',
42
+ 'type',
32
43
  'screenshot_path',
33
44
  ]) {
34
45
  try {
@@ -41,5 +52,70 @@ export async function createEditorScenariosTable(db) {
41
52
  // Column already exists — expected for fresh databases
42
53
  }
43
54
  }
55
+ // Integer columns for viewport dimensions
56
+ for (const col of ['viewport_width', 'viewport_height']) {
57
+ try {
58
+ await db.schema
59
+ .alterTable('editor_scenarios')
60
+ .addColumn(col, 'integer')
61
+ .execute();
62
+ }
63
+ catch {
64
+ // Column already exists — expected for fresh databases
65
+ }
66
+ }
67
+ // Named dimension column (e.g. "Mobile", "Desktop")
68
+ try {
69
+ await db.schema
70
+ .alterTable('editor_scenarios')
71
+ .addColumn('dimension', 'varchar')
72
+ .execute();
73
+ }
74
+ catch {
75
+ // Column already exists — expected for fresh databases
76
+ }
77
+ // Multi-dimension support: JSON array of dimension names and map of screenshot paths
78
+ for (const col of ['dimensions', 'screenshot_paths']) {
79
+ try {
80
+ await db.schema
81
+ .alterTable('editor_scenarios')
82
+ .addColumn(col, 'text')
83
+ .execute();
84
+ }
85
+ catch {
86
+ // Column already exists — expected for fresh databases
87
+ }
88
+ }
89
+ // Backfill: wrap existing single dimension into dimensions array,
90
+ // and existing screenshot_path into screenshot_paths object
91
+ try {
92
+ const rows = await db
93
+ .selectFrom('editor_scenarios')
94
+ .select(['id', 'dimension', 'screenshot_path'])
95
+ .execute();
96
+ for (const row of rows) {
97
+ const r = row;
98
+ if (r.dimension && !r.dimensions) {
99
+ await db
100
+ .updateTable('editor_scenarios')
101
+ .set({ dimensions: JSON.stringify([r.dimension]) })
102
+ .where('id', '=', r.id)
103
+ .execute();
104
+ }
105
+ if (r.screenshot_path && !r.screenshot_paths) {
106
+ const dimName = r.dimension || 'Default';
107
+ await db
108
+ .updateTable('editor_scenarios')
109
+ .set({
110
+ screenshot_paths: JSON.stringify({ [dimName]: r.screenshot_path }),
111
+ })
112
+ .where('id', '=', r.id)
113
+ .execute();
114
+ }
115
+ }
116
+ }
117
+ catch {
118
+ // Backfill is best-effort — columns may not exist yet on first run
119
+ }
44
120
  }
45
121
  //# sourceMappingURL=editorScenariosTable.js.map