@codeyam/codeyam-cli 0.1.0-staging.ad88eeb → 0.1.0-staging.afbbaae

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 (516) 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 +6 -6
  4. package/analyzer-template/packages/ai/package.json +1 -1
  5. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +135 -0
  6. package/analyzer-template/packages/ai/src/lib/astScopes/nodeToSource.ts +19 -0
  7. package/analyzer-template/packages/ai/src/lib/astScopes/paths.ts +11 -4
  8. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +36 -9
  9. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.ts +10 -3
  10. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +16 -6
  11. package/analyzer-template/packages/analyze/index.ts +4 -1
  12. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +28 -2
  13. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +5 -36
  14. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +10 -6
  15. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +9 -12
  16. package/analyzer-template/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.ts +21 -0
  17. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +82 -10
  18. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +4 -0
  19. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +4 -0
  20. package/analyzer-template/packages/analyze/src/lib/files/analyzeNextRoute.ts +8 -3
  21. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +239 -58
  22. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +1684 -1462
  23. package/analyzer-template/packages/aws/package.json +7 -7
  24. package/analyzer-template/packages/database/package.json +3 -3
  25. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +82 -0
  26. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +25 -15
  27. package/analyzer-template/packages/database/src/lib/loadEntities.ts +0 -6
  28. package/analyzer-template/packages/database/src/lib/loadEntity.ts +19 -8
  29. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +0 -65
  30. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +5 -0
  31. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -1
  32. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +84 -0
  33. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
  34. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  35. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +7 -1
  36. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  37. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  38. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +0 -6
  39. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  40. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.d.ts +4 -1
  41. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.d.ts.map +1 -1
  42. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js +5 -5
  43. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js.map +1 -1
  44. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  45. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +0 -25
  46. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  47. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts +3 -1
  48. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  49. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +22 -1
  50. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  51. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +27 -0
  52. package/analyzer-template/project/analyzeFileEntities.ts +26 -0
  53. package/analyzer-template/project/runMultiScenarioServer.ts +26 -3
  54. package/background/src/lib/virtualized/project/analyzeFileEntities.js +22 -0
  55. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  56. package/background/src/lib/virtualized/project/runMultiScenarioServer.js +23 -3
  57. package/background/src/lib/virtualized/project/runMultiScenarioServer.js.map +1 -1
  58. package/codeyam-cli/src/cli.js +24 -0
  59. package/codeyam-cli/src/cli.js.map +1 -1
  60. package/codeyam-cli/src/commands/__tests__/editor.analyzeImportsArgs.test.js +47 -0
  61. package/codeyam-cli/src/commands/__tests__/editor.analyzeImportsArgs.test.js.map +1 -0
  62. package/codeyam-cli/src/commands/__tests__/editor.auditNoAutoAnalysis.test.js +71 -0
  63. package/codeyam-cli/src/commands/__tests__/editor.auditNoAutoAnalysis.test.js.map +1 -0
  64. package/codeyam-cli/src/commands/__tests__/editor.designSystem.test.js +30 -0
  65. package/codeyam-cli/src/commands/__tests__/editor.designSystem.test.js.map +1 -0
  66. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js +51 -0
  67. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js.map +1 -0
  68. package/codeyam-cli/src/commands/__tests__/editor.statePersistence.test.js +55 -0
  69. package/codeyam-cli/src/commands/__tests__/editor.statePersistence.test.js.map +1 -0
  70. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js +56 -0
  71. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js.map +1 -0
  72. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js +137 -47
  73. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js.map +1 -1
  74. package/codeyam-cli/src/commands/editor.js +4254 -656
  75. package/codeyam-cli/src/commands/editor.js.map +1 -1
  76. package/codeyam-cli/src/commands/editorAnalyzeImportsArgs.js +23 -0
  77. package/codeyam-cli/src/commands/editorAnalyzeImportsArgs.js.map +1 -0
  78. package/codeyam-cli/src/commands/editorIsolateArgs.js +25 -0
  79. package/codeyam-cli/src/commands/editorIsolateArgs.js.map +1 -0
  80. package/codeyam-cli/src/commands/init.js +89 -34
  81. package/codeyam-cli/src/commands/init.js.map +1 -1
  82. package/codeyam-cli/src/commands/telemetry.js +37 -0
  83. package/codeyam-cli/src/commands/telemetry.js.map +1 -0
  84. package/codeyam-cli/src/data/designSystems.js +27 -0
  85. package/codeyam-cli/src/data/designSystems.js.map +1 -0
  86. package/codeyam-cli/src/data/techStacks.js +3 -8
  87. package/codeyam-cli/src/data/techStacks.js.map +1 -1
  88. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js +173 -0
  89. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js.map +1 -0
  90. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js +46 -0
  91. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js.map +1 -0
  92. package/codeyam-cli/src/utils/__tests__/devServerState.test.js +93 -1
  93. package/codeyam-cli/src/utils/__tests__/devServerState.test.js.map +1 -1
  94. package/codeyam-cli/src/utils/__tests__/editorApi.test.js +62 -8
  95. package/codeyam-cli/src/utils/__tests__/editorApi.test.js.map +1 -1
  96. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +3526 -1
  97. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -1
  98. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js +76 -0
  99. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js.map +1 -0
  100. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js +137 -0
  101. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js.map +1 -0
  102. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js +100 -0
  103. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js.map +1 -0
  104. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js +27 -2
  105. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js.map +1 -1
  106. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js +76 -3
  107. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js.map +1 -1
  108. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js +381 -0
  109. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js.map +1 -0
  110. package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js +67 -0
  111. package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js.map +1 -0
  112. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js +202 -1
  113. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js.map +1 -1
  114. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js +435 -0
  115. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js.map +1 -0
  116. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js +96 -1
  117. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js.map +1 -1
  118. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js +144 -1
  119. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js.map +1 -1
  120. package/codeyam-cli/src/utils/__tests__/editorRoadmap.test.js +1108 -0
  121. package/codeyam-cli/src/utils/__tests__/editorRoadmap.test.js.map +1 -0
  122. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js +190 -0
  123. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js.map +1 -1
  124. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +1548 -1
  125. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -1
  126. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js +201 -1
  127. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js.map +1 -1
  128. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js +143 -0
  129. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js.map +1 -0
  130. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js +66 -0
  131. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js.map +1 -0
  132. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js +53 -0
  133. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js.map +1 -0
  134. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +395 -11
  135. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -1
  136. package/codeyam-cli/src/utils/__tests__/envFile.test.js +125 -0
  137. package/codeyam-cli/src/utils/__tests__/envFile.test.js.map +1 -0
  138. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js +177 -0
  139. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js.map +1 -0
  140. package/codeyam-cli/src/utils/__tests__/handoffContext.test.js +500 -0
  141. package/codeyam-cli/src/utils/__tests__/handoffContext.test.js.map +1 -0
  142. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js +16 -1
  143. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js.map +1 -1
  144. package/codeyam-cli/src/utils/__tests__/manualEntityAnalysis.test.js +302 -0
  145. package/codeyam-cli/src/utils/__tests__/manualEntityAnalysis.test.js.map +1 -0
  146. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js +30 -2
  147. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js.map +1 -1
  148. package/codeyam-cli/src/utils/__tests__/registerScenarioResult.test.js +127 -0
  149. package/codeyam-cli/src/utils/__tests__/registerScenarioResult.test.js.map +1 -0
  150. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js +118 -0
  151. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js.map +1 -0
  152. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js +284 -0
  153. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js.map +1 -0
  154. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +649 -223
  155. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -1
  156. package/codeyam-cli/src/utils/__tests__/screenshotHash.test.js +84 -0
  157. package/codeyam-cli/src/utils/__tests__/screenshotHash.test.js.map +1 -0
  158. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +1 -0
  159. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  160. package/codeyam-cli/src/utils/__tests__/telemetry.test.js +159 -0
  161. package/codeyam-cli/src/utils/__tests__/telemetry.test.js.map +1 -0
  162. package/codeyam-cli/src/utils/__tests__/testRunner.test.js +216 -0
  163. package/codeyam-cli/src/utils/__tests__/testRunner.test.js.map +1 -0
  164. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js +6 -0
  165. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js.map +1 -1
  166. package/codeyam-cli/src/utils/analysisRunner.js +39 -8
  167. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  168. package/codeyam-cli/src/utils/analyzer.js +19 -0
  169. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  170. package/codeyam-cli/src/utils/analyzerFinalization.js +100 -0
  171. package/codeyam-cli/src/utils/analyzerFinalization.js.map +1 -0
  172. package/codeyam-cli/src/utils/backgroundServer.js +93 -17
  173. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  174. package/codeyam-cli/src/utils/database.js +37 -2
  175. package/codeyam-cli/src/utils/database.js.map +1 -1
  176. package/codeyam-cli/src/utils/designSystemShowcase.js +810 -0
  177. package/codeyam-cli/src/utils/designSystemShowcase.js.map +1 -0
  178. package/codeyam-cli/src/utils/devServerState.js +32 -0
  179. package/codeyam-cli/src/utils/devServerState.js.map +1 -1
  180. package/codeyam-cli/src/utils/editorApi.js +27 -5
  181. package/codeyam-cli/src/utils/editorApi.js.map +1 -1
  182. package/codeyam-cli/src/utils/editorAudit.js +700 -10
  183. package/codeyam-cli/src/utils/editorAudit.js.map +1 -1
  184. package/codeyam-cli/src/utils/editorBroadcastViewport.js +26 -0
  185. package/codeyam-cli/src/utils/editorBroadcastViewport.js.map +1 -0
  186. package/codeyam-cli/src/utils/editorDeleteScenario.js +67 -0
  187. package/codeyam-cli/src/utils/editorDeleteScenario.js.map +1 -0
  188. package/codeyam-cli/src/utils/editorDevServer.js +5 -1
  189. package/codeyam-cli/src/utils/editorDevServer.js.map +1 -1
  190. package/codeyam-cli/src/utils/editorEntityChangeStatus.js +13 -7
  191. package/codeyam-cli/src/utils/editorEntityChangeStatus.js.map +1 -1
  192. package/codeyam-cli/src/utils/editorEntityHelpers.js +144 -0
  193. package/codeyam-cli/src/utils/editorEntityHelpers.js.map +1 -0
  194. package/codeyam-cli/src/utils/editorGuard.js +36 -0
  195. package/codeyam-cli/src/utils/editorGuard.js.map +1 -0
  196. package/codeyam-cli/src/utils/editorLoaderHelpers.js +72 -1
  197. package/codeyam-cli/src/utils/editorLoaderHelpers.js.map +1 -1
  198. package/codeyam-cli/src/utils/editorMigration.js +224 -0
  199. package/codeyam-cli/src/utils/editorMigration.js.map +1 -0
  200. package/codeyam-cli/src/utils/editorPreview.js +33 -0
  201. package/codeyam-cli/src/utils/editorPreview.js.map +1 -1
  202. package/codeyam-cli/src/utils/editorRecapture.js +109 -0
  203. package/codeyam-cli/src/utils/editorRecapture.js.map +1 -0
  204. package/codeyam-cli/src/utils/editorRoadmap.js +574 -0
  205. package/codeyam-cli/src/utils/editorRoadmap.js.map +1 -0
  206. package/codeyam-cli/src/utils/editorScenarioSwitch.js +39 -2
  207. package/codeyam-cli/src/utils/editorScenarioSwitch.js.map +1 -1
  208. package/codeyam-cli/src/utils/editorScenarios.js +591 -0
  209. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -1
  210. package/codeyam-cli/src/utils/editorSeedAdapter.js +308 -6
  211. package/codeyam-cli/src/utils/editorSeedAdapter.js.map +1 -1
  212. package/codeyam-cli/src/utils/editorShouldRevalidate.js +21 -0
  213. package/codeyam-cli/src/utils/editorShouldRevalidate.js.map +1 -0
  214. package/codeyam-cli/src/utils/entityChangeStatus.js +53 -6
  215. package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -1
  216. package/codeyam-cli/src/utils/entityChangeStatus.server.js +72 -3
  217. package/codeyam-cli/src/utils/entityChangeStatus.server.js.map +1 -1
  218. package/codeyam-cli/src/utils/envFile.js +90 -0
  219. package/codeyam-cli/src/utils/envFile.js.map +1 -0
  220. package/codeyam-cli/src/utils/fileWatcher.js +38 -0
  221. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  222. package/codeyam-cli/src/utils/glossaryAdd.js +74 -0
  223. package/codeyam-cli/src/utils/glossaryAdd.js.map +1 -0
  224. package/codeyam-cli/src/utils/handoffContext.js +257 -0
  225. package/codeyam-cli/src/utils/handoffContext.js.map +1 -0
  226. package/codeyam-cli/src/utils/install-skills.js +50 -6
  227. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  228. package/codeyam-cli/src/utils/manualEntityAnalysis.js +196 -0
  229. package/codeyam-cli/src/utils/manualEntityAnalysis.js.map +1 -0
  230. package/codeyam-cli/src/utils/parseRegisterArg.js.map +1 -1
  231. package/codeyam-cli/src/utils/progress.js +2 -2
  232. package/codeyam-cli/src/utils/progress.js.map +1 -1
  233. package/codeyam-cli/src/utils/queue/__tests__/job.interactiveStart.test.js +159 -0
  234. package/codeyam-cli/src/utils/queue/__tests__/job.interactiveStart.test.js.map +1 -0
  235. package/codeyam-cli/src/utils/queue/job.js +35 -6
  236. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  237. package/codeyam-cli/src/utils/registerScenarioResult.js +52 -0
  238. package/codeyam-cli/src/utils/registerScenarioResult.js.map +1 -0
  239. package/codeyam-cli/src/utils/routePatternMatching.js +129 -0
  240. package/codeyam-cli/src/utils/routePatternMatching.js.map +1 -0
  241. package/codeyam-cli/src/utils/scenarioCoverage.js +77 -0
  242. package/codeyam-cli/src/utils/scenarioCoverage.js.map +1 -0
  243. package/codeyam-cli/src/utils/scenariosManifest.js +275 -74
  244. package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -1
  245. package/codeyam-cli/src/utils/screenshotHash.js +26 -0
  246. package/codeyam-cli/src/utils/screenshotHash.js.map +1 -0
  247. package/codeyam-cli/src/utils/serverState.js +30 -0
  248. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  249. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +1 -0
  250. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  251. package/codeyam-cli/src/utils/simulationGateMiddleware.js +17 -1
  252. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -1
  253. package/codeyam-cli/src/utils/slugUtils.js +25 -0
  254. package/codeyam-cli/src/utils/slugUtils.js.map +1 -0
  255. package/codeyam-cli/src/utils/syncMocksMiddleware.js +2 -2
  256. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  257. package/codeyam-cli/src/utils/techStackConfig.js +38 -0
  258. package/codeyam-cli/src/utils/techStackConfig.js.map +1 -0
  259. package/codeyam-cli/src/utils/techStackConfig.test.js +85 -0
  260. package/codeyam-cli/src/utils/techStackConfig.test.js.map +1 -0
  261. package/codeyam-cli/src/utils/telemetry.js +106 -0
  262. package/codeyam-cli/src/utils/telemetry.js.map +1 -0
  263. package/codeyam-cli/src/utils/telemetryMiddleware.js +22 -0
  264. package/codeyam-cli/src/utils/telemetryMiddleware.js.map +1 -0
  265. package/codeyam-cli/src/utils/testResultCache.js +53 -0
  266. package/codeyam-cli/src/utils/testResultCache.js.map +1 -0
  267. package/codeyam-cli/src/utils/testResultCache.server.js +81 -0
  268. package/codeyam-cli/src/utils/testResultCache.server.js.map +1 -0
  269. package/codeyam-cli/src/utils/testResultCache.server.test.js +187 -0
  270. package/codeyam-cli/src/utils/testResultCache.server.test.js.map +1 -0
  271. package/codeyam-cli/src/utils/testResultCache.test.js +230 -0
  272. package/codeyam-cli/src/utils/testResultCache.test.js.map +1 -0
  273. package/codeyam-cli/src/utils/testRunner.js +193 -1
  274. package/codeyam-cli/src/utils/testRunner.js.map +1 -1
  275. package/codeyam-cli/src/utils/webappDetection.js +4 -2
  276. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  277. package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js +99 -0
  278. package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js.map +1 -0
  279. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js +153 -0
  280. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js.map +1 -0
  281. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js +107 -0
  282. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js.map +1 -0
  283. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +822 -0
  284. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -1
  285. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js +315 -0
  286. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js.map +1 -0
  287. package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js +135 -0
  288. package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js.map +1 -0
  289. package/codeyam-cli/src/webserver/app/lib/clientErrors.js +86 -0
  290. package/codeyam-cli/src/webserver/app/lib/clientErrors.js.map +1 -0
  291. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  292. package/codeyam-cli/src/webserver/app/lib/git.js +3 -2
  293. package/codeyam-cli/src/webserver/app/lib/git.js.map +1 -1
  294. package/codeyam-cli/src/webserver/app/routes/api.interactive-switch-scenario.js +34 -0
  295. package/codeyam-cli/src/webserver/app/routes/api.interactive-switch-scenario.js.map +1 -0
  296. package/codeyam-cli/src/webserver/app/types/editor.js +8 -0
  297. package/codeyam-cli/src/webserver/app/types/editor.js.map +1 -0
  298. package/codeyam-cli/src/webserver/backgroundServer.js +60 -61
  299. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  300. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-DTBZZfSk.js +1 -0
  301. package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-BcgbViKV.js → EntityItem-BxclONWq.js} +3 -3
  302. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-CQgyEGV-.js +1 -0
  303. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-CQIG2qda.js → EntityTypeIcon-BsnEOJZ_.js} +1 -1
  304. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-ByaELMbv.js +1 -0
  305. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-6WjVfhxX.js +25 -0
  306. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-ChX-Hp7W.js +3 -0
  307. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-BU_OAEMP.js → LoadingDots-By5zI316.js} +1 -1
  308. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-ceAyBX-H.js → LogViewer-C-9zQdXg.js} +3 -3
  309. package/codeyam-cli/src/webserver/build/client/assets/MiniClaudeChat-Bs2_Oua4.js +36 -0
  310. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-BzHcG7SE.js → ReportIssueModal-DQsceHVv.js} +2 -2
  311. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-DThcm_9M.js +1 -0
  312. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-0DY_NKil.js → ScenarioViewer-Cl4oOA3A.js} +3 -3
  313. package/codeyam-cli/src/webserver/build/client/assets/Spinner-CIil5-gb.js +34 -0
  314. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-CK7-NaPZ.js +1 -0
  315. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-BqkA9zyZ.js +1 -0
  316. package/codeyam-cli/src/webserver/build/client/assets/{_index-DLxKhri3.js → _index-DnOgyseQ.js} +2 -2
  317. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-BcY3q6nt.js → activity.(_tab)-DqM9hbNE.js} +3 -3
  318. package/codeyam-cli/src/webserver/build/client/assets/{addon-web-links-Duc5hnl7.js → addon-web-links-C58dYPwR.js} +1 -1
  319. package/codeyam-cli/src/webserver/build/client/assets/{agent-transcripts-Bni3iiUj.js → agent-transcripts-B8NCeOrm.js} +3 -3
  320. package/codeyam-cli/src/webserver/build/client/assets/api.editor-database-verify-l0sNRNKZ.js +1 -0
  321. package/codeyam-cli/src/webserver/build/client/assets/api.editor-github-verify-l0sNRNKZ.js +1 -0
  322. package/codeyam-cli/src/webserver/build/client/assets/api.editor-handoff-l0sNRNKZ.js +1 -0
  323. package/codeyam-cli/src/webserver/build/client/assets/api.editor-hosting-verify-l0sNRNKZ.js +1 -0
  324. package/codeyam-cli/src/webserver/build/client/assets/api.editor-recapture-stale-l0sNRNKZ.js +1 -0
  325. package/codeyam-cli/src/webserver/build/client/assets/api.editor-rename-scenario-l0sNRNKZ.js +1 -0
  326. package/codeyam-cli/src/webserver/build/client/assets/api.editor-roadmap-l0sNRNKZ.js +1 -0
  327. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-scenario-data-l0sNRNKZ.js +1 -0
  328. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-seed-state-l0sNRNKZ.js +1 -0
  329. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-coverage-l0sNRNKZ.js +1 -0
  330. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-prompt-l0sNRNKZ.js +1 -0
  331. package/codeyam-cli/src/webserver/build/client/assets/api.editor-schema-l0sNRNKZ.js +1 -0
  332. package/codeyam-cli/src/webserver/build/client/assets/api.editor-session-l0sNRNKZ.js +1 -0
  333. package/codeyam-cli/src/webserver/build/client/assets/api.editor-verify-routes-l0sNRNKZ.js +1 -0
  334. package/codeyam-cli/src/webserver/build/client/assets/api.interactive-switch-scenario-l0sNRNKZ.js +1 -0
  335. package/codeyam-cli/src/webserver/build/client/assets/{book-open-BYOypzCa.js → book-open-BFSIqZgO.js} +1 -1
  336. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-C_Pmso5S.js → chevron-down-B9fDzFVh.js} +1 -1
  337. package/codeyam-cli/src/webserver/build/client/assets/chunk-UVKPFVEO-Bmq2apuh.js +43 -0
  338. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-BVMi9VA5.js → circle-check-DLPObLUx.js} +1 -1
  339. package/codeyam-cli/src/webserver/build/client/assets/{copy-n2FB0_Sw.js → copy-DXEmO0TD.js} +1 -1
  340. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-CC6AbExI.js → createLucideIcon-BwyFiRot.js} +1 -1
  341. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-Coe5NhbS.js +1 -0
  342. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-CCKUIm0S.svg → cy-logo-cli-DoA97ML3.svg} +2 -2
  343. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-iRhRIFlp.js +1 -0
  344. package/codeyam-cli/src/webserver/build/client/assets/editor._tab-BZPBzV73.js +1 -0
  345. package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-DhtVC4aI.js +161 -0
  346. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-C6fEYHrh.js +41 -0
  347. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-BF4oLwaE.js → entity._sha._-pc-vc6wO.js} +13 -12
  348. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-C8AyYgYT.js +6 -0
  349. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DziaVQX1.js +6 -0
  350. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-BTcpgIpC.js +6 -0
  351. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-BMvVHNXU.js → entity._sha_.edit._scenarioId-D_O_ajfZ.js} +2 -2
  352. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-DTvKq3TY.js → entry.client-j1Vi0bco.js} +6 -6
  353. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-Daa96Fr1.js +1 -0
  354. package/codeyam-cli/src/webserver/build/client/assets/files-kuny2Q_s.js +1 -0
  355. package/codeyam-cli/src/webserver/build/client/assets/git-DgCZPMie.js +1 -0
  356. package/codeyam-cli/src/webserver/build/client/assets/globals-L-aUIeux.css +1 -0
  357. package/codeyam-cli/src/webserver/build/client/assets/{index-BcvgDzbZ.js → index-BliGSSpl.js} +1 -1
  358. package/codeyam-cli/src/webserver/build/client/assets/{index-yHOVb4rc.js → index-SqjQKTdH.js} +1 -1
  359. package/codeyam-cli/src/webserver/build/client/assets/{index-10oVnAAH.js → index-vyrZD2g4.js} +1 -1
  360. package/codeyam-cli/src/webserver/build/client/assets/jsx-runtime-D_zvdyIk.js +9 -0
  361. package/codeyam-cli/src/webserver/build/client/assets/labs-c3yLxSEp.js +1 -0
  362. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-DaAZ_H2w.js → loader-circle-D-q28GLF.js} +1 -1
  363. package/codeyam-cli/src/webserver/build/client/assets/manifest-79d0d81a.js +1 -0
  364. package/codeyam-cli/src/webserver/build/client/assets/memory-CEWIUC4t.js +101 -0
  365. package/codeyam-cli/src/webserver/build/client/assets/{pause-f5-1lKBt.js → pause-BP6fitdh.js} +1 -1
  366. package/codeyam-cli/src/webserver/build/client/assets/root-L2V0jea7.js +80 -0
  367. package/codeyam-cli/src/webserver/build/client/assets/{search-Di64LWVb.js → search-BooqacKS.js} +1 -1
  368. package/codeyam-cli/src/webserver/build/client/assets/settings-BM0nbryO.js +1 -0
  369. package/codeyam-cli/src/webserver/build/client/assets/simulations-ovy6FjRY.js +1 -0
  370. package/codeyam-cli/src/webserver/build/client/assets/{terminal-Br7MOqts.js → terminal-DHemCJIs.js} +1 -1
  371. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-BLdiCuG-.js → triangle-alert-D87ekDl8.js} +1 -1
  372. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-Dk0Tciqg.js +1 -0
  373. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-C8QvIe05.js +2 -0
  374. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-jkCytuYz.js +1 -0
  375. package/codeyam-cli/src/webserver/build/client/assets/useToast-BgqkixU9.js +1 -0
  376. package/codeyam-cli/src/webserver/build/client/sound-test.html +98 -0
  377. package/codeyam-cli/src/webserver/build/server/assets/analysisRunner-QgInFGdU.js +16 -0
  378. package/codeyam-cli/src/webserver/build/server/assets/index-zblh9auj.js +1 -0
  379. package/codeyam-cli/src/webserver/build/server/assets/init-DaE0CBjk.js +14 -0
  380. package/codeyam-cli/src/webserver/build/server/assets/progress-CHTtrxFG.js +1 -0
  381. package/codeyam-cli/src/webserver/build/server/assets/server-build-CNvgz1cC.js +853 -0
  382. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  383. package/codeyam-cli/src/webserver/build-info.json +5 -5
  384. package/codeyam-cli/src/webserver/editorProxy.js +675 -17
  385. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -1
  386. package/codeyam-cli/src/webserver/idleDetector.js +130 -0
  387. package/codeyam-cli/src/webserver/idleDetector.js.map +1 -0
  388. package/codeyam-cli/src/webserver/mockStateEvents.js +28 -0
  389. package/codeyam-cli/src/webserver/mockStateEvents.js.map +1 -0
  390. package/codeyam-cli/src/webserver/public/sound-test.html +98 -0
  391. package/codeyam-cli/src/webserver/scripts/journalCapture.ts +53 -0
  392. package/codeyam-cli/src/webserver/server.js +192 -4
  393. package/codeyam-cli/src/webserver/server.js.map +1 -1
  394. package/codeyam-cli/src/webserver/terminalServer.js +389 -52
  395. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -1
  396. package/codeyam-cli/templates/__tests__/editor-step-hook.prompt-capture.test.ts +118 -0
  397. package/codeyam-cli/templates/chrome-extension-react/README.md +46 -0
  398. package/codeyam-cli/templates/chrome-extension-react/package.json +1 -0
  399. package/codeyam-cli/templates/chrome-extension-react/vite.config.ts +6 -0
  400. package/codeyam-cli/templates/codeyam-editor-claude.md +86 -5
  401. package/codeyam-cli/templates/codeyam-editor-codex.md +61 -0
  402. package/codeyam-cli/templates/codeyam-editor-gemini.md +59 -0
  403. package/codeyam-cli/templates/codeyam-editor-reference.md +216 -0
  404. package/codeyam-cli/templates/design-systems/clean-dashboard-design-system.md +255 -0
  405. package/codeyam-cli/templates/design-systems/editorial-design-system.md +267 -0
  406. package/codeyam-cli/templates/design-systems/mono-brutalist-design-system.md +256 -0
  407. package/codeyam-cli/templates/design-systems/neo-brutalist-design-system.md +294 -0
  408. package/codeyam-cli/templates/editor-step-hook.py +193 -56
  409. package/codeyam-cli/templates/expo-react-native/MOBILE_SETUP.md +204 -5
  410. package/codeyam-cli/templates/expo-react-native/README.md +41 -0
  411. package/codeyam-cli/templates/expo-react-native/__tests__/.gitkeep +0 -0
  412. package/codeyam-cli/templates/expo-react-native/app/_layout.tsx +6 -3
  413. package/codeyam-cli/templates/expo-react-native/app/index.tsx +36 -0
  414. package/codeyam-cli/templates/expo-react-native/app.json +11 -0
  415. package/codeyam-cli/templates/expo-react-native/babel.config.js +1 -0
  416. package/codeyam-cli/templates/expo-react-native/gitignore +2 -0
  417. package/codeyam-cli/templates/expo-react-native/global.css +7 -0
  418. package/codeyam-cli/templates/expo-react-native/lib/theme.ts +73 -0
  419. package/codeyam-cli/templates/expo-react-native/package.json +33 -16
  420. package/codeyam-cli/templates/expo-react-native/patches/expo-modules-autolinking+3.0.24.patch +29 -0
  421. package/codeyam-cli/templates/isolation-route/expo-router.tsx.template +54 -0
  422. package/codeyam-cli/templates/nextjs-prisma-sqlite/DATABASE.md +14 -0
  423. package/codeyam-cli/templates/nextjs-prisma-sqlite/README.md +53 -0
  424. package/codeyam-cli/templates/nextjs-prisma-sqlite/gitignore +1 -0
  425. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +2 -1
  426. package/codeyam-cli/templates/nextjs-prisma-sqlite/seed-adapter.ts +88 -40
  427. package/codeyam-cli/templates/nextjs-prisma-supabase/README.md +52 -0
  428. package/codeyam-cli/templates/nextjs-prisma-supabase/package.json +2 -1
  429. package/codeyam-cli/templates/seed-adapters/supabase.ts +475 -0
  430. package/codeyam-cli/templates/skills/codeyam-dev-mode/SKILL.md +1 -1
  431. package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +109 -10
  432. package/package.json +2 -1
  433. package/packages/ai/src/lib/astScopes/methodSemantics.js +99 -0
  434. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  435. package/packages/ai/src/lib/astScopes/nodeToSource.js +16 -0
  436. package/packages/ai/src/lib/astScopes/nodeToSource.js.map +1 -1
  437. package/packages/ai/src/lib/astScopes/paths.js +12 -3
  438. package/packages/ai/src/lib/astScopes/paths.js.map +1 -1
  439. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +27 -10
  440. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  441. package/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.js +9 -2
  442. package/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.js.map +1 -1
  443. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +14 -4
  444. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  445. package/packages/analyze/index.js +1 -1
  446. package/packages/analyze/index.js.map +1 -1
  447. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +16 -2
  448. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  449. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +6 -26
  450. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  451. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +3 -2
  452. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  453. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +9 -7
  454. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  455. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js +14 -0
  456. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js.map +1 -1
  457. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +44 -11
  458. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  459. package/packages/analyze/src/lib/files/analyzeChange.js +1 -0
  460. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  461. package/packages/analyze/src/lib/files/analyzeInitial.js +1 -0
  462. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  463. package/packages/analyze/src/lib/files/analyzeNextRoute.js +5 -1
  464. package/packages/analyze/src/lib/files/analyzeNextRoute.js.map +1 -1
  465. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +120 -28
  466. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  467. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +1368 -1193
  468. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  469. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +84 -0
  470. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
  471. package/packages/database/src/lib/loadAnalysis.js +7 -1
  472. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  473. package/packages/database/src/lib/loadEntities.js +0 -6
  474. package/packages/database/src/lib/loadEntities.js.map +1 -1
  475. package/packages/database/src/lib/loadEntity.js +5 -5
  476. package/packages/database/src/lib/loadEntity.js.map +1 -1
  477. package/packages/database/src/lib/updateCommitMetadata.js +0 -25
  478. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  479. package/packages/utils/src/lib/fs/rsyncCopy.js +22 -1
  480. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  481. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-BPXZwM4t.js +0 -1
  482. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-g3saevPb.js +0 -1
  483. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-Bu6c6aDe.js +0 -1
  484. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-DYFW3lDD.js +0 -25
  485. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-DLeucoVX.js +0 -3
  486. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-BED4B6sP.js +0 -1
  487. package/codeyam-cli/src/webserver/build/client/assets/Spinner-Bb5uFQ5V.js +0 -34
  488. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-C8OKAR5x.js +0 -1
  489. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-oAf2Kqsf.js +0 -1
  490. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-C4pqxYJB.js +0 -51
  491. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +0 -1
  492. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-Csi0_PMl.js +0 -1
  493. package/codeyam-cli/src/webserver/build/client/assets/editor-BuT_Huj0.js +0 -10
  494. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-B7ztwLut.js +0 -41
  495. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-D5rYBT5x.js +0 -6
  496. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-CF164ouH.js +0 -6
  497. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-p9hhkjJM.js +0 -6
  498. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-cPo8LiG3.js +0 -1
  499. package/codeyam-cli/src/webserver/build/client/assets/files-BZrlFE1F.js +0 -1
  500. package/codeyam-cli/src/webserver/build/client/assets/git-DdZcvjGh.js +0 -1
  501. package/codeyam-cli/src/webserver/build/client/assets/globals-BkWJ_UNc.css +0 -1
  502. package/codeyam-cli/src/webserver/build/client/assets/labs-Zk7ryIM1.js +0 -1
  503. package/codeyam-cli/src/webserver/build/client/assets/manifest-b0f1372e.js +0 -1
  504. package/codeyam-cli/src/webserver/build/client/assets/memory-Bl2rpw8u.js +0 -96
  505. package/codeyam-cli/src/webserver/build/client/assets/root-B_X8HS1x.js +0 -67
  506. package/codeyam-cli/src/webserver/build/client/assets/settings-0OrEMU6J.js +0 -1
  507. package/codeyam-cli/src/webserver/build/client/assets/simulations-DWT-CvLy.js +0 -1
  508. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-CrAK28Bc.js +0 -1
  509. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-C14nCb1q.js +0 -2
  510. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-O-jkvSPx.js +0 -1
  511. package/codeyam-cli/src/webserver/build/client/assets/useToast-9FIWuYfK.js +0 -1
  512. package/codeyam-cli/src/webserver/build/server/assets/index-CbF6h3dj.js +0 -1
  513. package/codeyam-cli/src/webserver/build/server/assets/server-build-DRFwTJqO.js +0 -367
  514. package/codeyam-cli/templates/expo-react-native/app/(tabs)/_layout.tsx +0 -33
  515. package/codeyam-cli/templates/expo-react-native/app/(tabs)/index.tsx +0 -12
  516. package/codeyam-cli/templates/expo-react-native/app/(tabs)/settings.tsx +0 -12
@@ -29,14 +29,13 @@ npm start
29
29
 
30
30
  ```
31
31
  app/ # Expo Router file-based routes
32
- _layout.tsx # Root layout (status bar, navigation)
33
- (tabs)/ # Tab-based navigation group
34
- _layout.tsx # Tab bar configuration
35
- index.tsx # Home tab
36
- settings.tsx # Settings tab
32
+ _layout.tsx # Root layout (SafeAreaProvider, StatusBar)
33
+ index.tsx # Home screen (single entry point)
37
34
  components/ # Reusable components
38
35
  lib/
36
+ theme.ts # Design tokens (colors, spacing, typography)
39
37
  storage.ts # AsyncStorage wrapper for persistent data
38
+ __tests__/ # Test files (keep outside app/ — Expo Router treats all app/ files as routes)
40
39
  ```
41
40
 
42
41
  ## Key Patterns
@@ -78,6 +77,206 @@ Use Tailwind classes on React Native components:
78
77
  </View>
79
78
  ```
80
79
 
80
+ ## CodeYam Scenario Data
81
+
82
+ ### AsyncStorage Seeding
83
+
84
+ AsyncStorage uses `localStorage` on web, so CodeYam's existing localStorage injection works automatically. Use the `localStorage` field in scenario JSON to pre-populate storage:
85
+
86
+ ```json
87
+ {
88
+ "name": "With Saved Items",
89
+ "url": "/",
90
+ "dimensions": ["iPhone 16"],
91
+ "localStorage": {
92
+ "items": "[{\"id\":\"1\",\"title\":\"Buy groceries\",\"done\":false},{\"id\":\"2\",\"title\":\"Walk the dog\",\"done\":true}]"
93
+ }
94
+ }
95
+ ```
96
+
97
+ Values must be JSON strings (matching how AsyncStorage stores them). Your `storage.get()` calls will read this data normally.
98
+
99
+ ### API Mocking
100
+
101
+ For apps that fetch from APIs, use relative URLs so CodeYam's proxy can intercept and mock them:
102
+
103
+ ```tsx
104
+ // Use relative URLs — these go through the CodeYam proxy
105
+ const response = await fetch('/api/items');
106
+ ```
107
+
108
+ Then provide mock routes in your scenario data:
109
+
110
+ ```json
111
+ {
112
+ "name": "With API Data",
113
+ "url": "/",
114
+ "dimensions": ["iPhone 16"],
115
+ "routes": {
116
+ "/api/items": {
117
+ "body": [{ "id": 1, "title": "First item" }],
118
+ "status": 200
119
+ }
120
+ }
121
+ }
122
+ ```
123
+
124
+ ### Device Presets
125
+
126
+ Mobile projects default to these screen sizes:
127
+
128
+ | Preset | Width | Height |
129
+ | ----------------- | ----- | ------ |
130
+ | iPhone 16 | 393 | 852 |
131
+ | iPhone 16 Pro Max | 430 | 932 |
132
+ | iPhone SE | 375 | 667 |
133
+ | Pixel 8 | 412 | 915 |
134
+ | iPad mini | 744 | 1133 |
135
+
136
+ ## Design Tokens (lib/theme.ts)
137
+
138
+ All design tokens live in `lib/theme.ts` — this is the **single source of truth** for colors, spacing, typography, and border radius. Import and use in every component:
139
+
140
+ ```tsx
141
+ import { theme } from '@/lib/theme';
142
+
143
+ <View
144
+ style={{ backgroundColor: theme.colors.bgBase, padding: theme.spacing.lg }}
145
+ >
146
+ <Text
147
+ style={{ fontSize: theme.fontSize.lg, color: theme.colors.textPrimary }}
148
+ >
149
+ Hello
150
+ </Text>
151
+ </View>;
152
+ ```
153
+
154
+ **Do NOT:**
155
+
156
+ - Use CSS custom properties (`var(--token)`) — they don't work in React Native
157
+ - Hardcode color strings or pixel values in components
158
+ - Create a separate `globals.css` token system — `lib/theme.ts` is the only source
159
+
160
+ When a design system is selected, populate `lib/theme.ts` with its tokens.
161
+
162
+ ## Testing
163
+
164
+ Tests use Jest with the `jest-expo` preset. Run with:
165
+
166
+ ```bash
167
+ npx jest # Run all tests
168
+ npx jest app/hooks/useCounter.ts # Run specific test file
169
+ ```
170
+
171
+ The Jest config is in `package.json`. The `transformIgnorePatterns` is pre-configured to handle Expo and React Native module transforms — you should not need to modify it.
172
+
173
+ ## Building for a Real iOS Device
174
+
175
+ ### Prerequisites
176
+
177
+ - **Xcode 16.x** (Xcode 16.4 or later recommended)
178
+ - **Apple Developer account** (free is fine for personal devices)
179
+ - Device connected via USB or on the same Wi-Fi network
180
+
181
+ ### Steps
182
+
183
+ 1. Generate the native iOS project:
184
+
185
+ ```bash
186
+ npx expo prebuild --clean
187
+ ```
188
+
189
+ 2. Add Swift 5 enforcement to the generated Podfile. Open `ios/Podfile` and add this inside the `post_install` block, after `react_native_post_install(...)`:
190
+
191
+ ```ruby
192
+ # Fix Swift 6.1 (Xcode 16.4) strict concurrency errors
193
+ installer.pods_project.targets.each do |target|
194
+ target.build_configurations.each do |config|
195
+ config.build_settings['SWIFT_VERSION'] = '5.0'
196
+ end
197
+ end
198
+ ```
199
+
200
+ 3. Reinstall pods with the fix:
201
+
202
+ ```bash
203
+ cd ios && pod install && cd ..
204
+ ```
205
+
206
+ 4. Build and run on your device:
207
+
208
+ ```bash
209
+ npx expo run:ios --device
210
+ ```
211
+
212
+ ### Troubleshooting
213
+
214
+ - **"invalid code signature" / "profile has not been explicitly trusted"**: Your iPhone doesn't trust the developer profile yet. On your iPhone: **Settings → General → VPN & Device Management** → tap your Apple ID → **Trust**. Then relaunch the app.
215
+ - **"No script URL provided"**: Metro bundler isn't running or the device can't reach it. Start Metro with `npx expo start` in a separate terminal, then relaunch the app. Your phone and Mac must be on the same Wi-Fi network.
216
+ - **"Missing factory in ExpoAppDelegate"** crash: The native project is stale. Run `npx expo prebuild --clean` to regenerate it.
217
+ - **"ambiguous implicit access level for import"** error: The `patch-package` fix wasn't applied. Run `npm install` to reapply, then `cd ios && pod install`.
218
+
219
+ ### Notes
220
+
221
+ - The `ios/` and `android/` directories are gitignored — they're generated by `expo prebuild` and shouldn't be committed.
222
+ - The `patches/` directory IS committed — it contains a fix for Xcode 16.4 Swift compatibility that auto-applies on `npm install`.
223
+
224
+ ## Web vs Native Differences
225
+
226
+ The CodeYam editor previews your app via **Expo Web** (react-native-web in a browser). Some differences from native iOS/Android devices are expected:
227
+
228
+ | Aspect | Web Preview | Native Device |
229
+ | ---------------- | ------------------------------------------------------ | ------------------------------------------------------- |
230
+ | **Fonts** | System fonts, may differ in weight/metrics/line-height | Loaded custom fonts (if added via expo-font) |
231
+ | **SafeAreaView** | No effect (no notch in browser) | Applies real safe area insets for notch, home indicator |
232
+ | **Platform.OS** | Returns `'web'` | Returns `'ios'` or `'android'` |
233
+ | **Shadows** | Uses CSS `box-shadow` (works well) | Uses RN shadow props (iOS) or `elevation` (Android) |
234
+ | **Gestures** | Mouse drag events | Touch/swipe with inertia |
235
+ | **StatusBar** | No visible effect | Controls device status bar appearance |
236
+ | **Haptics** | No-op | Real haptic feedback via `expo-haptics` |
237
+ | **Pressable** | `backgroundColor`/`borderStyle` work on Pressable | Must use View wrapper (see below) |
238
+
239
+ ### Pressable Styling on Native
240
+
241
+ `<Pressable>` with `backgroundColor`, `borderRadius`, or `borderStyle: 'dashed'` renders correctly in the web preview but **fails silently on native devices** — the background/border simply won't appear.
242
+
243
+ **Fix:** Put visual styles on a wrapping `<View>` and use `onPressIn`/`onPressOut` for press feedback:
244
+
245
+ ```tsx
246
+ const [pressed, setPressed] = useState(false);
247
+
248
+ <View
249
+ style={{
250
+ backgroundColor: theme.colors.bgInverse,
251
+ borderRadius: 60,
252
+ overflow: 'hidden',
253
+ }}
254
+ >
255
+ <Pressable
256
+ onPress={onPress}
257
+ onPressIn={() => setPressed(true)}
258
+ onPressOut={() => setPressed(false)}
259
+ style={{
260
+ opacity: pressed ? 0.8 : 1,
261
+ alignItems: 'center',
262
+ padding: theme.spacing.lg,
263
+ }}
264
+ >
265
+ <Text style={{ color: theme.colors.accent }}>+</Text>
266
+ </Pressable>
267
+ </View>;
268
+ ```
269
+
270
+ For dashed borders, put `borderStyle`, `borderWidth`, and `borderColor` on the outer `<View>`, not on `<Pressable>`.
271
+
272
+ **The web preview is for layout and data verification.** Test final visual polish on a real device or simulator:
273
+
274
+ ```bash
275
+ npm run ios # iOS Simulator
276
+ npm run android # Android Emulator
277
+ npm start # Pick platform from Expo menu
278
+ ```
279
+
81
280
  ## Building for Production
82
281
 
83
282
  ```bash
@@ -0,0 +1,41 @@
1
+ # Project Name
2
+
3
+ Brief description of what this app does.
4
+
5
+ ## Setup
6
+
7
+ ```bash
8
+ npm run setup
9
+ ```
10
+
11
+ ## Development
12
+
13
+ Start the Expo dev server (web):
14
+
15
+ ```bash
16
+ npm run dev
17
+ ```
18
+
19
+ For native platforms:
20
+
21
+ ```bash
22
+ npm run ios # iOS simulator
23
+ npm run android # Android emulator
24
+ ```
25
+
26
+ ## Using CodeYam Editor
27
+
28
+ This project was built with [CodeYam](https://codeyam.com). To launch the editor:
29
+
30
+ ```bash
31
+ codeyam editor
32
+ ```
33
+
34
+ ## Scripts
35
+
36
+ | Script | Description |
37
+ | ----------------- | --------------------------- |
38
+ | `npm run setup` | Install dependencies |
39
+ | `npm run dev` | Start Expo dev server (web) |
40
+ | `npm run ios` | Run on iOS simulator |
41
+ | `npm run android` | Run on Android emulator |
@@ -1,12 +1,15 @@
1
1
  import '../global.css';
2
2
  import { Stack } from 'expo-router';
3
3
  import { StatusBar } from 'expo-status-bar';
4
+ import { SafeAreaProvider, SafeAreaView } from 'react-native-safe-area-context';
4
5
 
5
6
  export default function RootLayout() {
6
7
  return (
7
- <>
8
- <Stack screenOptions={{ headerShown: false }} />
8
+ <SafeAreaProvider>
9
+ <SafeAreaView style={{ flex: 1 }}>
10
+ <Stack screenOptions={{ headerShown: false }} />
11
+ </SafeAreaView>
9
12
  <StatusBar style="auto" />
10
- </>
13
+ </SafeAreaProvider>
11
14
  );
12
15
  }
@@ -0,0 +1,36 @@
1
+ import { View, Text } from 'react-native';
2
+ import { theme } from '@/lib/theme';
3
+
4
+ export default function HomeScreen() {
5
+ return (
6
+ <View
7
+ style={{
8
+ flex: 1,
9
+ alignItems: 'center',
10
+ justifyContent: 'center',
11
+ backgroundColor: theme.colors.bgBase,
12
+ padding: theme.spacing.lg,
13
+ }}
14
+ >
15
+ <Text
16
+ style={{
17
+ fontSize: theme.fontSize['2xl'],
18
+ fontWeight: theme.fontWeight.bold,
19
+ color: theme.colors.textPrimary,
20
+ marginBottom: theme.spacing.sm,
21
+ }}
22
+ >
23
+ Welcome
24
+ </Text>
25
+ <Text
26
+ style={{
27
+ fontSize: theme.fontSize.base,
28
+ color: theme.colors.textSecondary,
29
+ textAlign: 'center',
30
+ }}
31
+ >
32
+ Your Expo app is ready. Start building!
33
+ </Text>
34
+ </View>
35
+ );
36
+ }
@@ -4,6 +4,7 @@
4
4
  "slug": "codeyam-expo-app",
5
5
  "version": "1.0.0",
6
6
  "scheme": "codeyam-expo-app",
7
+ "icon": "./assets/icon.png",
7
8
  "platforms": ["ios", "android", "web"],
8
9
  "web": {
9
10
  "bundler": "metro",
@@ -13,6 +14,16 @@
13
14
  "plugins": ["expo-router"],
14
15
  "experiments": {
15
16
  "typedRoutes": true
17
+ },
18
+ "ios": {
19
+ "bundleIdentifier": "com.codeyam.expo-app"
20
+ },
21
+ "android": {
22
+ "adaptiveIcon": {
23
+ "foregroundImage": "./assets/adaptive-icon.png",
24
+ "backgroundColor": "#f8fafc"
25
+ },
26
+ "package": "com.codeyam.expoapp"
16
27
  }
17
28
  }
18
29
  }
@@ -5,5 +5,6 @@ module.exports = function (api) {
5
5
  ['babel-preset-expo', { jsxImportSource: 'nativewind' }],
6
6
  'nativewind/babel',
7
7
  ],
8
+ plugins: ['react-native-reanimated/plugin'],
8
9
  };
9
10
  };
@@ -2,6 +2,8 @@ node_modules/
2
2
  .expo/
3
3
  dist/
4
4
  web-build/
5
+ ios/
6
+ android/
5
7
  *.jks
6
8
  *.p8
7
9
  *.p12
@@ -1,3 +1,10 @@
1
+ /* NativeWind / Tailwind utility layer.
2
+ *
3
+ * Design tokens are defined in lib/theme.ts — that is the single source
4
+ * of truth for colors, spacing, typography, and border radius.
5
+ * Do NOT define CSS custom properties here for design tokens.
6
+ * React Native components cannot read CSS variables.
7
+ */
1
8
  @tailwind base;
2
9
  @tailwind components;
3
10
  @tailwind utilities;
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Design tokens — single source of truth for all styling.
3
+ *
4
+ * When a design system is selected (via .codeyam/design-system.md),
5
+ * populate these values from the design system's color palette,
6
+ * typography scale, and spacing rhythm.
7
+ *
8
+ * Import in every component:
9
+ * import { theme } from '@/lib/theme';
10
+ * <View style={{ backgroundColor: theme.colors.bgBase }}>
11
+ *
12
+ * Do NOT use CSS custom properties (var(--token)) in React Native.
13
+ * Do NOT hardcode color strings or pixel values in components.
14
+ */
15
+
16
+ export const theme = {
17
+ colors: {
18
+ bgBase: '#f8fafc',
19
+ bgSurface: '#ffffff',
20
+ bgSurfaceRaised: '#ffffff',
21
+ bgInverse: '#1e293b',
22
+
23
+ textPrimary: '#0f172a',
24
+ textSecondary: '#475569',
25
+ textMuted: '#94a3b8',
26
+
27
+ border: '#e2e8f0',
28
+
29
+ accent: '#005C75',
30
+ accentLight: '#e0f2fe',
31
+ },
32
+
33
+ spacing: {
34
+ xs: 4,
35
+ sm: 8,
36
+ md: 12,
37
+ lg: 16,
38
+ xl: 24,
39
+ '2xl': 32,
40
+ '3xl': 48,
41
+ },
42
+
43
+ fontSize: {
44
+ xs: 12,
45
+ sm: 14,
46
+ base: 16,
47
+ lg: 18,
48
+ xl: 20,
49
+ '2xl': 24,
50
+ '3xl': 30,
51
+ '4xl': 36,
52
+ },
53
+
54
+ fontWeight: {
55
+ normal: '400' as const,
56
+ medium: '500' as const,
57
+ semibold: '600' as const,
58
+ bold: '700' as const,
59
+ },
60
+
61
+ fontFamily: {
62
+ sans: 'System',
63
+ mono: 'monospace',
64
+ },
65
+
66
+ borderRadius: {
67
+ sm: 4,
68
+ md: 8,
69
+ lg: 12,
70
+ xl: 16,
71
+ full: 9999,
72
+ },
73
+ };
@@ -4,34 +4,51 @@
4
4
  "private": true,
5
5
  "main": "expo-router/entry",
6
6
  "scripts": {
7
+ "setup": "npm install",
7
8
  "dev": "expo start --web",
8
9
  "start": "expo start",
9
- "android": "expo start --android",
10
- "ios": "expo start --ios",
11
- "build:web": "expo export --platform web"
10
+ "android": "expo run:android",
11
+ "ios": "expo run:ios",
12
+ "build:web": "expo export --platform web",
13
+ "test": "jest",
14
+ "postinstall": "patch-package"
12
15
  },
13
16
  "dependencies": {
14
- "expo": "~55.0.5",
15
- "expo-router": "~55.0.4",
16
- "expo-status-bar": "~55.0.4",
17
- "expo-linking": "~55.0.7",
18
- "expo-constants": "~55.0.7",
19
- "react": "19.2.0",
20
- "react-dom": "19.2.0",
21
- "react-native": "0.83.2",
17
+ "expo": "~54.0.0",
18
+ "expo-router": "~6.0.23",
19
+ "expo-status-bar": "~3.0.9",
20
+ "expo-linking": "~8.0.11",
21
+ "expo-constants": "~18.0.13",
22
+ "expo-font": "~14.0.11",
23
+ "react": "19.1.0",
24
+ "react-dom": "19.1.0",
25
+ "react-native": "0.81.5",
22
26
  "react-native-web": "^0.21.0",
23
27
  "react-native-safe-area-context": "~5.6.2",
24
- "react-native-screens": "~4.23.0",
28
+ "react-native-screens": "~4.16.0",
29
+ "react-native-reanimated": "^4.3.0",
30
+ "react-native-worklets": "^0.8.1",
31
+ "react-refresh": "^0.18.0",
25
32
  "@react-navigation/native": "^7.1.33",
26
33
  "@expo/vector-icons": "^15.0.2",
27
34
  "@react-native-async-storage/async-storage": "2.2.0",
28
35
  "nativewind": "^4.2.2",
29
36
  "tailwindcss": "^3.4.19",
30
- "react-native-reanimated": "4.2.1"
37
+ "patch-package": "^8.0.0"
31
38
  },
32
39
  "devDependencies": {
33
- "@types/react": "~19.2.2",
34
- "babel-preset-expo": "^55.0.10",
35
- "typescript": "~5.9.2"
40
+ "@types/react": "~19.1.10",
41
+ "babel-preset-expo": "~54.0.10",
42
+ "sharp": "^0.33.0",
43
+ "typescript": "~5.9.2",
44
+ "jest": "^29.7.0",
45
+ "jest-expo": "~54.0.17",
46
+ "@testing-library/react-native": "^13.2.0"
47
+ },
48
+ "jest": {
49
+ "preset": "jest-expo",
50
+ "transformIgnorePatterns": [
51
+ "node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|nativewind|react-native-reanimated|react-native-worklets)"
52
+ ]
36
53
  }
37
54
  }
@@ -0,0 +1,29 @@
1
+ diff --git a/node_modules/expo-modules-autolinking/build/platforms/apple/apple.js b/node_modules/expo-modules-autolinking/build/platforms/apple/apple.js
2
+ index 47487c0..58a6069 100644
3
+ --- a/node_modules/expo-modules-autolinking/build/platforms/apple/apple.js
4
+ +++ b/node_modules/expo-modules-autolinking/build/platforms/apple/apple.js
5
+ @@ -113,7 +113,7 @@ async function generatePackageListFileContentAsync(modules, className, entitleme
6
+ * but only these that are written in Swift and use the new API for creating Expo modules.
7
+ */
8
+
9
+ -import ExpoModulesCore
10
+ +public import ExpoModulesCore
11
+ ${generateCommonImportList(swiftModules)}
12
+ ${generateDebugOnlyImportList(debugOnlySwiftModules)}
13
+ @objc(${className})
14
+ @@ -137,13 +137,13 @@ ${generateReactDelegateHandlers(reactDelegateHandlerModules, debugOnlyReactDeleg
15
+ `;
16
+ }
17
+ function generateCommonImportList(swiftModules) {
18
+ - return swiftModules.map((moduleName) => `import ${moduleName}`).join('\n');
19
+ + return swiftModules.map((moduleName) => `public import ${moduleName}`).join('\n');
20
+ }
21
+ function generateDebugOnlyImportList(swiftModules) {
22
+ if (!swiftModules.length) {
23
+ return '';
24
+ }
25
+ - return (wrapInDebugConfigurationCheck(0, swiftModules.map((moduleName) => `import ${moduleName}`).join('\n')) + '\n');
26
+ + return (wrapInDebugConfigurationCheck(0, swiftModules.map((moduleName) => `public import ${moduleName}`).join('\n')) + '\n');
27
+ }
28
+ function generateModuleClasses(classNames, debugOnlyClassName) {
29
+ const commonClassNames = formatArrayOfClassNames(classNames);
@@ -0,0 +1,54 @@
1
+ /**
2
+ * CodeYam Isolation Route — Expo Router
3
+ *
4
+ * Place this file at: app/isolated-components/ComponentName.tsx
5
+ * URL: /isolated-components/ComponentName?s=ScenarioName
6
+ *
7
+ * This route renders a single component with scenario-specific props,
8
+ * enabling isolated component preview and screenshot capture.
9
+ */
10
+
11
+ import { useLocalSearchParams } from 'expo-router';
12
+ import { View, Text } from 'react-native';
13
+ import { theme } from '@/lib/theme';
14
+ // import YourComponent from '@/app/components/YourComponent';
15
+
16
+ // Define scenarios: map scenario names to component props
17
+ const scenarios: Record<string, Record<string, unknown>> = {
18
+ Default: {
19
+ // props for the default scenario
20
+ },
21
+ // Add more scenarios here
22
+ };
23
+
24
+ export default function ComponentIsolation() {
25
+ const { s } = useLocalSearchParams<{ s: string }>();
26
+ const scenarioName = s || 'Default';
27
+ const props = scenarios[scenarioName];
28
+
29
+ if (!props) {
30
+ return (
31
+ <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
32
+ <Text style={{ fontFamily: theme.fontFamily.mono, color: '#e74c3c' }}>
33
+ Unknown scenario: {scenarioName}
34
+ </Text>
35
+ </View>
36
+ );
37
+ }
38
+
39
+ return (
40
+ <View
41
+ style={{
42
+ flex: 1,
43
+ justifyContent: 'center',
44
+ alignItems: 'center',
45
+ backgroundColor: theme.colors.bgBase,
46
+ }}
47
+ >
48
+ <View nativeID="codeyam-capture" style={{ maxWidth: 384 }}>
49
+ {/* <YourComponent {...props} /> */}
50
+ <Text>Replace with your component</Text>
51
+ </View>
52
+ </View>
53
+ );
54
+ }
@@ -23,6 +23,20 @@ npm run db:reset
23
23
  npx prisma studio
24
24
  ```
25
25
 
26
+ ## Adding Columns to Existing Tables
27
+
28
+ When adding a new **required** column to a table that already has data, `db push` will fail because existing rows have no value for the new column. To avoid this:
29
+
30
+ - **Add a `@default(...)` value** so Prisma can fill existing rows automatically:
31
+ ```prisma
32
+ model Rating {
33
+ userId String @default("anonymous") // existing rows get "anonymous"
34
+ }
35
+ ```
36
+ - Once all rows have real values, you can remove the default if desired.
37
+ - **Never use `--force-reset`** — it drops ALL tables and deletes all data.
38
+ - Optional columns (`String?`) don't need a default — existing rows get `null`.
39
+
26
40
  ## Using the Database
27
41
 
28
42
  ```typescript
@@ -0,0 +1,53 @@
1
+ # Project Name
2
+
3
+ Brief description of what this app does.
4
+
5
+ ## Setup
6
+
7
+ Run the setup script to install dependencies, initialize the database, and seed it with demo data:
8
+
9
+ ```bash
10
+ npm run setup
11
+ ```
12
+
13
+ ## Development
14
+
15
+ Start the dev server:
16
+
17
+ ```bash
18
+ npm run dev
19
+ ```
20
+
21
+ Open [http://localhost:3000](http://localhost:3000) in your browser.
22
+
23
+ ## Using CodeYam Editor
24
+
25
+ This project was built with [CodeYam](https://codeyam.com). To launch the editor:
26
+
27
+ ```bash
28
+ codeyam editor
29
+ ```
30
+
31
+ The editor provides a live preview alongside a Claude Code terminal for iterating on the app.
32
+
33
+ ## Database
34
+
35
+ This project uses SQLite via Prisma. Common commands:
36
+
37
+ ```bash
38
+ npm run db:push # Apply schema changes and generate Prisma client
39
+ npm run db:seed # Seed the database with demo data
40
+ npm run db:reset # Reset database: drop, recreate, and re-seed
41
+ ```
42
+
43
+ ## Scripts
44
+
45
+ | Script | Description |
46
+ | ------------------ | -------------------------------------------- |
47
+ | `npm run setup` | One-line project setup (install + db + seed) |
48
+ | `npm run dev` | Start the development server |
49
+ | `npm run build` | Build for production |
50
+ | `npm run test` | Run tests |
51
+ | `npm run db:push` | Apply Prisma schema changes |
52
+ | `npm run db:seed` | Seed the database |
53
+ | `npm run db:reset` | Reset and re-seed the database |