@codeyam/codeyam-cli 0.1.0-staging.a890816 → 0.1.0-staging.ad44cd3

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 (477) 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 +10 -10
  4. package/analyzer-template/packages/ai/package.json +2 -2
  5. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +0 -33
  6. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +13 -7
  7. package/analyzer-template/packages/analyze/src/lib/asts/index.ts +7 -2
  8. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +0 -98
  9. package/analyzer-template/packages/aws/package.json +2 -2
  10. package/analyzer-template/packages/database/package.json +3 -3
  11. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +102 -0
  12. package/analyzer-template/packages/database/src/lib/loadEntities.ts +0 -6
  13. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +0 -65
  14. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +9 -0
  15. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -1
  16. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +104 -0
  17. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
  18. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  19. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +0 -6
  20. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  21. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  22. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +0 -25
  23. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  24. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  25. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  26. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js +2 -0
  27. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js.map +1 -1
  28. package/analyzer-template/packages/github/package.json +1 -1
  29. package/analyzer-template/packages/types/src/enums/ProjectFramework.ts +2 -0
  30. package/analyzer-template/packages/ui-components/package.json +1 -1
  31. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  32. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  33. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js +2 -0
  34. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js.map +1 -1
  35. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js +196 -0
  36. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js.map +1 -0
  37. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js +114 -0
  38. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js.map +1 -0
  39. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js +149 -0
  40. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js.map +1 -0
  41. package/codeyam-cli/src/cli.js +9 -0
  42. package/codeyam-cli/src/cli.js.map +1 -1
  43. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js +51 -0
  44. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js.map +1 -0
  45. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js +56 -0
  46. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js.map +1 -0
  47. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js +101 -47
  48. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js.map +1 -1
  49. package/codeyam-cli/src/commands/default.js +3 -46
  50. package/codeyam-cli/src/commands/default.js.map +1 -1
  51. package/codeyam-cli/src/commands/editor.js +3916 -419
  52. package/codeyam-cli/src/commands/editor.js.map +1 -1
  53. package/codeyam-cli/src/commands/editorIsolateArgs.js +25 -0
  54. package/codeyam-cli/src/commands/editorIsolateArgs.js.map +1 -0
  55. package/codeyam-cli/src/commands/init.js +74 -35
  56. package/codeyam-cli/src/commands/init.js.map +1 -1
  57. package/codeyam-cli/src/commands/telemetry.js +37 -0
  58. package/codeyam-cli/src/commands/telemetry.js.map +1 -0
  59. package/codeyam-cli/src/data/techStacks.js +77 -0
  60. package/codeyam-cli/src/data/techStacks.js.map +1 -0
  61. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js +173 -0
  62. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js.map +1 -0
  63. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js +46 -0
  64. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js.map +1 -0
  65. package/codeyam-cli/src/utils/__tests__/devServerState.test.js +134 -0
  66. package/codeyam-cli/src/utils/__tests__/devServerState.test.js.map +1 -0
  67. package/codeyam-cli/src/utils/__tests__/editorApi.test.js +137 -0
  68. package/codeyam-cli/src/utils/__tests__/editorApi.test.js.map +1 -0
  69. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +1879 -0
  70. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -0
  71. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js +76 -0
  72. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js.map +1 -0
  73. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js +93 -0
  74. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js.map +1 -0
  75. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js +100 -0
  76. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js.map +1 -0
  77. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js +304 -0
  78. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js.map +1 -0
  79. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js +194 -0
  80. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js.map +1 -0
  81. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js +261 -0
  82. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js.map +1 -0
  83. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js +294 -0
  84. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js.map +1 -0
  85. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js +542 -0
  86. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js.map +1 -0
  87. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js +594 -0
  88. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js.map +1 -0
  89. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js +435 -0
  90. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js.map +1 -0
  91. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js +270 -0
  92. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js.map +1 -0
  93. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js +217 -0
  94. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js.map +1 -0
  95. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js +353 -0
  96. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js.map +1 -0
  97. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js +153 -0
  98. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js.map +1 -0
  99. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js +139 -0
  100. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js.map +1 -0
  101. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js +221 -0
  102. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js.map +1 -0
  103. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +1483 -0
  104. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -0
  105. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js +280 -0
  106. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js.map +1 -0
  107. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js +143 -0
  108. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js.map +1 -0
  109. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js +66 -0
  110. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js.map +1 -0
  111. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js +53 -0
  112. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js.map +1 -0
  113. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +1857 -0
  114. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -0
  115. package/codeyam-cli/src/utils/__tests__/git.editor.test.js +134 -0
  116. package/codeyam-cli/src/utils/__tests__/git.editor.test.js.map +1 -0
  117. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js +107 -0
  118. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js.map +1 -0
  119. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js +129 -0
  120. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js.map +1 -0
  121. package/codeyam-cli/src/utils/__tests__/project.test.js +65 -0
  122. package/codeyam-cli/src/utils/__tests__/project.test.js.map +1 -0
  123. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js +118 -0
  124. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js.map +1 -0
  125. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js +227 -0
  126. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js.map +1 -0
  127. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js +121 -0
  128. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js.map +1 -0
  129. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +493 -0
  130. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -0
  131. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +26 -5
  132. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  133. package/codeyam-cli/src/utils/__tests__/telemetry.test.js +159 -0
  134. package/codeyam-cli/src/utils/__tests__/telemetry.test.js.map +1 -0
  135. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js +51 -0
  136. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js.map +1 -0
  137. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js +142 -0
  138. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js.map +1 -0
  139. package/codeyam-cli/src/utils/analysisRunner.js +3 -1
  140. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  141. package/codeyam-cli/src/utils/analyzer.js +9 -0
  142. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  143. package/codeyam-cli/src/utils/analyzerFinalization.js +100 -0
  144. package/codeyam-cli/src/utils/analyzerFinalization.js.map +1 -0
  145. package/codeyam-cli/src/utils/backgroundServer.js +94 -18
  146. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  147. package/codeyam-cli/src/utils/buildFlags.js +4 -0
  148. package/codeyam-cli/src/utils/buildFlags.js.map +1 -0
  149. package/codeyam-cli/src/utils/database.js +37 -2
  150. package/codeyam-cli/src/utils/database.js.map +1 -1
  151. package/codeyam-cli/src/utils/devServerState.js +71 -0
  152. package/codeyam-cli/src/utils/devServerState.js.map +1 -0
  153. package/codeyam-cli/src/utils/editorApi.js +79 -0
  154. package/codeyam-cli/src/utils/editorApi.js.map +1 -0
  155. package/codeyam-cli/src/utils/editorAudit.js +355 -0
  156. package/codeyam-cli/src/utils/editorAudit.js.map +1 -0
  157. package/codeyam-cli/src/utils/editorBroadcastViewport.js +26 -0
  158. package/codeyam-cli/src/utils/editorBroadcastViewport.js.map +1 -0
  159. package/codeyam-cli/src/utils/editorCapture.js +102 -0
  160. package/codeyam-cli/src/utils/editorCapture.js.map +1 -0
  161. package/codeyam-cli/src/utils/editorDeleteScenario.js +67 -0
  162. package/codeyam-cli/src/utils/editorDeleteScenario.js.map +1 -0
  163. package/codeyam-cli/src/utils/editorDevServer.js +197 -0
  164. package/codeyam-cli/src/utils/editorDevServer.js.map +1 -0
  165. package/codeyam-cli/src/utils/editorEntityChangeStatus.js +50 -0
  166. package/codeyam-cli/src/utils/editorEntityChangeStatus.js.map +1 -0
  167. package/codeyam-cli/src/utils/editorEntityHelpers.js +129 -0
  168. package/codeyam-cli/src/utils/editorEntityHelpers.js.map +1 -0
  169. package/codeyam-cli/src/utils/editorImageVerifier.js +155 -0
  170. package/codeyam-cli/src/utils/editorImageVerifier.js.map +1 -0
  171. package/codeyam-cli/src/utils/editorJournal.js +225 -0
  172. package/codeyam-cli/src/utils/editorJournal.js.map +1 -0
  173. package/codeyam-cli/src/utils/editorLoaderHelpers.js +152 -0
  174. package/codeyam-cli/src/utils/editorLoaderHelpers.js.map +1 -0
  175. package/codeyam-cli/src/utils/editorMigration.js +224 -0
  176. package/codeyam-cli/src/utils/editorMigration.js.map +1 -0
  177. package/codeyam-cli/src/utils/editorMockState.js +248 -0
  178. package/codeyam-cli/src/utils/editorMockState.js.map +1 -0
  179. package/codeyam-cli/src/utils/editorPreloadHelpers.js +135 -0
  180. package/codeyam-cli/src/utils/editorPreloadHelpers.js.map +1 -0
  181. package/codeyam-cli/src/utils/editorPreview.js +137 -0
  182. package/codeyam-cli/src/utils/editorPreview.js.map +1 -0
  183. package/codeyam-cli/src/utils/editorScenarioSwitch.js +112 -0
  184. package/codeyam-cli/src/utils/editorScenarioSwitch.js.map +1 -0
  185. package/codeyam-cli/src/utils/editorScenarios.js +548 -0
  186. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -0
  187. package/codeyam-cli/src/utils/editorSeedAdapter.js +422 -0
  188. package/codeyam-cli/src/utils/editorSeedAdapter.js.map +1 -0
  189. package/codeyam-cli/src/utils/editorShouldRevalidate.js +21 -0
  190. package/codeyam-cli/src/utils/editorShouldRevalidate.js.map +1 -0
  191. package/codeyam-cli/src/utils/entityChangeStatus.js +366 -0
  192. package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -0
  193. package/codeyam-cli/src/utils/entityChangeStatus.server.js +196 -0
  194. package/codeyam-cli/src/utils/entityChangeStatus.server.js.map +1 -0
  195. package/codeyam-cli/src/utils/fileWatcher.js +38 -0
  196. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  197. package/codeyam-cli/src/utils/git.js +51 -0
  198. package/codeyam-cli/src/utils/git.js.map +1 -1
  199. package/codeyam-cli/src/utils/install-skills.js +37 -17
  200. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  201. package/codeyam-cli/src/utils/parseRegisterArg.js +31 -0
  202. package/codeyam-cli/src/utils/parseRegisterArg.js.map +1 -0
  203. package/codeyam-cli/src/utils/progress.js +2 -2
  204. package/codeyam-cli/src/utils/progress.js.map +1 -1
  205. package/codeyam-cli/src/utils/project.js +15 -5
  206. package/codeyam-cli/src/utils/project.js.map +1 -1
  207. package/codeyam-cli/src/utils/routePatternMatching.js +129 -0
  208. package/codeyam-cli/src/utils/routePatternMatching.js.map +1 -0
  209. package/codeyam-cli/src/utils/scenarioCoverage.js +74 -0
  210. package/codeyam-cli/src/utils/scenarioCoverage.js.map +1 -0
  211. package/codeyam-cli/src/utils/scenarioMarkers.js +134 -0
  212. package/codeyam-cli/src/utils/scenarioMarkers.js.map +1 -0
  213. package/codeyam-cli/src/utils/scenariosManifest.js +249 -0
  214. package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -0
  215. package/codeyam-cli/src/utils/serverState.js +30 -0
  216. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  217. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +47 -16
  218. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  219. package/codeyam-cli/src/utils/simulationGateMiddleware.js +8 -1
  220. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -1
  221. package/codeyam-cli/src/utils/slugUtils.js +25 -0
  222. package/codeyam-cli/src/utils/slugUtils.js.map +1 -0
  223. package/codeyam-cli/src/utils/syncMocksMiddleware.js +2 -2
  224. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  225. package/codeyam-cli/src/utils/telemetry.js +106 -0
  226. package/codeyam-cli/src/utils/telemetry.js.map +1 -0
  227. package/codeyam-cli/src/utils/telemetryMiddleware.js +22 -0
  228. package/codeyam-cli/src/utils/telemetryMiddleware.js.map +1 -0
  229. package/codeyam-cli/src/utils/testRunner.js +1 -1
  230. package/codeyam-cli/src/utils/testRunner.js.map +1 -1
  231. package/codeyam-cli/src/utils/webappDetection.js +21 -0
  232. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  233. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js +35 -0
  234. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js.map +1 -0
  235. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js +40 -0
  236. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js.map +1 -0
  237. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +628 -0
  238. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -0
  239. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js +146 -0
  240. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js.map +1 -0
  241. package/codeyam-cli/src/webserver/app/lib/clientErrors.js +65 -0
  242. package/codeyam-cli/src/webserver/app/lib/clientErrors.js.map +1 -0
  243. package/codeyam-cli/src/webserver/app/lib/git.js +397 -0
  244. package/codeyam-cli/src/webserver/app/lib/git.js.map +1 -0
  245. package/codeyam-cli/src/webserver/app/types/editor.js +8 -0
  246. package/codeyam-cli/src/webserver/app/types/editor.js.map +1 -0
  247. package/codeyam-cli/src/webserver/backgroundServer.js +18 -4
  248. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  249. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CzTDWkF2.js +1 -0
  250. package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-C76mRRiF.js → EntityItem-BFbq6iFk.js} +5 -5
  251. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-CQgyEGV-.js +1 -0
  252. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-CobE682z.js → EntityTypeIcon-B6OMi58N.js} +9 -9
  253. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-DuYodzo1.js +1 -0
  254. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-CXo9EeCl.js +25 -0
  255. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-DYCNb2It.js +3 -0
  256. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-BU_OAEMP.js → LoadingDots-By5zI316.js} +1 -1
  257. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-ceAyBX-H.js → LogViewer-CZgY3sxX.js} +3 -3
  258. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-djPLI-WV.js → ReportIssueModal-CnYYwRDw.js} +4 -4
  259. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-CDoF7ZpU.js +1 -0
  260. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-B76aig_2.js → ScenarioViewer-DrnfvaLL.js} +3 -3
  261. package/codeyam-cli/src/webserver/build/client/assets/Spinner-Df3UCi8k.js +34 -0
  262. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-CK7-NaPZ.js +1 -0
  263. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-DRKR9T0U.js +1 -0
  264. package/codeyam-cli/src/webserver/build/client/assets/{_index-C96V0n15.js → _index-ClR-g3tY.js} +4 -4
  265. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-BpKzcsJz.js → activity.(_tab)-DTH6ydEA.js} +8 -8
  266. package/codeyam-cli/src/webserver/build/client/assets/addon-canvas-DpzMmAy5.js +1 -0
  267. package/codeyam-cli/src/webserver/build/client/assets/addon-fit-YJmn1quW.js +12 -0
  268. package/codeyam-cli/src/webserver/build/client/assets/{addon-web-links-Duc5hnl7.js → addon-web-links-74hnHF59.js} +1 -1
  269. package/codeyam-cli/src/webserver/build/client/assets/addon-webgl-DI8QOUvO.js +58 -0
  270. package/codeyam-cli/src/webserver/build/client/assets/{agent-transcripts-D9hemwl6.js → agent-transcripts-B8CYhCO9.js} +7 -7
  271. package/codeyam-cli/src/webserver/build/client/assets/api.editor-audit-l0sNRNKZ.js +1 -0
  272. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-diff-l0sNRNKZ.js +1 -0
  273. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-l0sNRNKZ.js +1 -0
  274. package/codeyam-cli/src/webserver/build/client/assets/api.editor-load-commit-l0sNRNKZ.js +1 -0
  275. package/codeyam-cli/src/webserver/build/client/assets/api.editor-project-info-l0sNRNKZ.js +1 -0
  276. package/codeyam-cli/src/webserver/build/client/assets/api.editor-rename-scenario-l0sNRNKZ.js +1 -0
  277. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-seed-state-l0sNRNKZ.js +1 -0
  278. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-coverage-l0sNRNKZ.js +1 -0
  279. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-prompt-l0sNRNKZ.js +1 -0
  280. package/codeyam-cli/src/webserver/build/client/assets/api.editor-session-l0sNRNKZ.js +1 -0
  281. package/codeyam-cli/src/webserver/build/client/assets/{book-open-D_nMCFmP.js → book-open-CLaoh4ac.js} +2 -2
  282. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-BH2h1Ea2.js → chevron-down-BZ2DZxbW.js} +2 -2
  283. package/codeyam-cli/src/webserver/build/client/assets/{chunk-JZWAC4HX-C4pqxYJB.js → chunk-JZWAC4HX-BBXArFPl.js} +13 -21
  284. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-DyIKORY6.js → circle-check-CT4unAk-.js} +2 -2
  285. package/codeyam-cli/src/webserver/build/client/assets/{copy-NDbZjXao.js → copy-zK0B6Nu-.js} +3 -3
  286. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-DJB0YQJL.js +41 -0
  287. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-CkXFP_i-.js +1 -0
  288. package/codeyam-cli/src/webserver/build/client/assets/editor._tab-DPw7NZHc.js +1 -0
  289. package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-CjC3_6JI.js +58 -0
  290. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-DBa7T2FK.js +41 -0
  291. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-CrjR3zZW.js → entity._sha._-BqAN7hyG.js} +3 -3
  292. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-BOi8kpwd.js +6 -0
  293. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-Dg1NhIms.js +6 -0
  294. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-CJX6kkkV.js +6 -0
  295. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-BMvVHNXU.js → entity._sha_.edit._scenarioId-BhVjZhKg.js} +2 -2
  296. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-DTvKq3TY.js → entry.client-_gzKltPN.js} +6 -6
  297. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-Daa96Fr1.js +1 -0
  298. package/codeyam-cli/src/webserver/build/client/assets/files-CV_17tZS.js +1 -0
  299. package/codeyam-cli/src/webserver/build/client/assets/git-D-YXmMbR.js +1 -0
  300. package/codeyam-cli/src/webserver/build/client/assets/globals-DRvOjyO3.css +1 -0
  301. package/codeyam-cli/src/webserver/build/client/assets/index-Blo6EK8G.js +15 -0
  302. package/codeyam-cli/src/webserver/build/client/assets/{index-10oVnAAH.js → index-BsX0F-9C.js} +1 -1
  303. package/codeyam-cli/src/webserver/build/client/assets/{index-BcvgDzbZ.js → index-CCrgCshv.js} +1 -1
  304. package/codeyam-cli/src/webserver/build/client/assets/jsx-runtime-D_zvdyIk.js +9 -0
  305. package/codeyam-cli/src/webserver/build/client/assets/labs-Byazq8Pv.js +1 -0
  306. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-BAXYRVEO.js → loader-circle-DVQ0oHR7.js} +2 -2
  307. package/codeyam-cli/src/webserver/build/client/assets/manifest-75b1b319.js +1 -0
  308. package/codeyam-cli/src/webserver/build/client/assets/memory-b-VmA2Vj.js +101 -0
  309. package/codeyam-cli/src/webserver/build/client/assets/{pause-DTAcYxBt.js → pause-DGcndCAa.js} +3 -3
  310. package/codeyam-cli/src/webserver/build/client/assets/root-F-k2uYj5.js +67 -0
  311. package/codeyam-cli/src/webserver/build/client/assets/{search-fKo7v0Zo.js → search-C0Uw0bcK.js} +2 -2
  312. package/codeyam-cli/src/webserver/build/client/assets/settings-OoNgHIfW.js +1 -0
  313. package/codeyam-cli/src/webserver/build/client/assets/simulations-Bcemfu8a.js +1 -0
  314. package/codeyam-cli/src/webserver/build/client/assets/{terminal-BG4heKCG.js → terminal-BgMmG7R9.js} +3 -3
  315. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-DtSmdtM4.js → triangle-alert-Cs87hJYK.js} +2 -2
  316. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BR3Rs7JY.js +1 -0
  317. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-C14nCb1q.js → useLastLogLine-BxxP_XF9.js} +1 -1
  318. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-BermyNU5.js +1 -0
  319. package/codeyam-cli/src/webserver/build/client/assets/useToast-a_QN_W9_.js +1 -0
  320. package/codeyam-cli/src/webserver/build/client/assets/xterm-BqvuqXEL.js +27 -0
  321. package/codeyam-cli/src/webserver/build/client/sound-test.html +98 -0
  322. package/codeyam-cli/src/webserver/build/server/assets/analysisRunner-lv2ooewK.js +13 -0
  323. package/codeyam-cli/src/webserver/build/server/assets/index-Im3Smyei.js +1 -0
  324. package/codeyam-cli/src/webserver/build/server/assets/init-BjuAFKGM.js +10 -0
  325. package/codeyam-cli/src/webserver/build/server/assets/progress-CHTtrxFG.js +1 -0
  326. package/codeyam-cli/src/webserver/build/server/assets/server-build-CNjF0B9B.js +551 -0
  327. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  328. package/codeyam-cli/src/webserver/build-info.json +5 -5
  329. package/codeyam-cli/src/webserver/editorProxy.js +755 -51
  330. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -1
  331. package/codeyam-cli/src/webserver/idleDetector.js +73 -0
  332. package/codeyam-cli/src/webserver/idleDetector.js.map +1 -0
  333. package/codeyam-cli/src/webserver/mockStateEvents.js +28 -0
  334. package/codeyam-cli/src/webserver/mockStateEvents.js.map +1 -0
  335. package/codeyam-cli/src/webserver/public/sound-test.html +98 -0
  336. package/codeyam-cli/src/webserver/scripts/codeyam-preload.mjs +414 -0
  337. package/codeyam-cli/src/webserver/scripts/journalCapture.ts +94 -4
  338. package/codeyam-cli/src/webserver/server.js +176 -12
  339. package/codeyam-cli/src/webserver/server.js.map +1 -1
  340. package/codeyam-cli/src/webserver/terminalServer.js +218 -140
  341. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -1
  342. package/codeyam-cli/templates/chrome-extension-react/EXTENSION_SETUP.md +75 -0
  343. package/codeyam-cli/templates/chrome-extension-react/README.md +46 -0
  344. package/codeyam-cli/templates/chrome-extension-react/gitignore +15 -0
  345. package/codeyam-cli/templates/chrome-extension-react/index.html +12 -0
  346. package/codeyam-cli/templates/chrome-extension-react/package.json +27 -0
  347. package/codeyam-cli/templates/chrome-extension-react/popup.html +12 -0
  348. package/codeyam-cli/templates/chrome-extension-react/public/manifest.json +15 -0
  349. package/codeyam-cli/templates/chrome-extension-react/src/background/service-worker.ts +7 -0
  350. package/codeyam-cli/templates/chrome-extension-react/src/globals.css +6 -0
  351. package/codeyam-cli/templates/chrome-extension-react/src/lib/storage.ts +37 -0
  352. package/codeyam-cli/templates/chrome-extension-react/src/popup/App.tsx +12 -0
  353. package/codeyam-cli/templates/chrome-extension-react/src/popup/main.tsx +10 -0
  354. package/codeyam-cli/templates/chrome-extension-react/tsconfig.json +24 -0
  355. package/codeyam-cli/templates/chrome-extension-react/vite.config.ts +41 -0
  356. package/codeyam-cli/templates/codeyam-editor-claude.md +84 -5
  357. package/codeyam-cli/templates/editor-step-hook.py +198 -22
  358. package/codeyam-cli/templates/expo-react-native/MOBILE_SETUP.md +89 -0
  359. package/codeyam-cli/templates/expo-react-native/README.md +41 -0
  360. package/codeyam-cli/templates/expo-react-native/app/(tabs)/_layout.tsx +33 -0
  361. package/codeyam-cli/templates/expo-react-native/app/(tabs)/index.tsx +12 -0
  362. package/codeyam-cli/templates/expo-react-native/app/(tabs)/settings.tsx +12 -0
  363. package/codeyam-cli/templates/expo-react-native/app/_layout.tsx +12 -0
  364. package/codeyam-cli/templates/expo-react-native/app.json +18 -0
  365. package/codeyam-cli/templates/expo-react-native/babel.config.js +9 -0
  366. package/codeyam-cli/templates/expo-react-native/gitignore +12 -0
  367. package/codeyam-cli/templates/expo-react-native/global.css +3 -0
  368. package/codeyam-cli/templates/expo-react-native/lib/storage.ts +32 -0
  369. package/codeyam-cli/templates/expo-react-native/metro.config.js +6 -0
  370. package/codeyam-cli/templates/expo-react-native/nativewind-env.d.ts +1 -0
  371. package/codeyam-cli/templates/expo-react-native/package.json +38 -0
  372. package/codeyam-cli/templates/expo-react-native/tailwind.config.js +10 -0
  373. package/codeyam-cli/templates/expo-react-native/tsconfig.json +10 -0
  374. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_PATTERNS.md +308 -0
  375. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_UPGRADE.md +304 -0
  376. package/codeyam-cli/templates/nextjs-prisma-sqlite/DATABASE.md +126 -0
  377. package/codeyam-cli/templates/nextjs-prisma-sqlite/FEATURE_PATTERNS.md +37 -0
  378. package/codeyam-cli/templates/nextjs-prisma-sqlite/README.md +53 -0
  379. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/codeyam-isolate/layout.tsx +12 -0
  380. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/lib/prisma.ts +9 -4
  381. package/codeyam-cli/templates/nextjs-prisma-sqlite/env +4 -0
  382. package/codeyam-cli/templates/nextjs-prisma-sqlite/gitignore +21 -0
  383. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +5 -1
  384. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/seed.ts +4 -1
  385. package/codeyam-cli/templates/nextjs-prisma-sqlite/seed-adapter.ts +127 -0
  386. package/codeyam-cli/templates/nextjs-prisma-sqlite/vitest.config.ts +13 -0
  387. package/codeyam-cli/templates/nextjs-prisma-supabase/README.md +52 -0
  388. package/codeyam-cli/templates/{nextjs-prisma-sqlite/PRISMA_SETUP.md → nextjs-prisma-supabase/SUPABASE_SETUP.md} +37 -17
  389. package/codeyam-cli/templates/nextjs-prisma-supabase/app/api/todos/route.ts +17 -0
  390. package/codeyam-cli/templates/nextjs-prisma-supabase/app/globals.css +26 -0
  391. package/codeyam-cli/templates/nextjs-prisma-supabase/app/layout.tsx +34 -0
  392. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/prisma.ts +20 -0
  393. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/supabase.ts +12 -0
  394. package/codeyam-cli/templates/nextjs-prisma-supabase/app/page.tsx +10 -0
  395. package/codeyam-cli/templates/nextjs-prisma-supabase/env +9 -0
  396. package/codeyam-cli/templates/nextjs-prisma-supabase/eslint.config.mjs +11 -0
  397. package/codeyam-cli/templates/nextjs-prisma-supabase/gitignore +40 -0
  398. package/codeyam-cli/templates/nextjs-prisma-supabase/next.config.ts +11 -0
  399. package/codeyam-cli/templates/nextjs-prisma-supabase/package.json +37 -0
  400. package/codeyam-cli/templates/nextjs-prisma-supabase/postcss.config.mjs +7 -0
  401. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/schema.prisma +27 -0
  402. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/seed.ts +39 -0
  403. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma.config.ts +12 -0
  404. package/codeyam-cli/templates/nextjs-prisma-supabase/tsconfig.json +34 -0
  405. package/codeyam-cli/templates/seed-adapters/supabase.ts +282 -0
  406. package/codeyam-cli/templates/{codeyam-dev-mode.md → skills/codeyam-dev-mode/SKILL.md} +3 -3
  407. package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +211 -0
  408. package/codeyam-cli/templates/{codeyam-memory.md → skills/codeyam-memory/SKILL.md} +215 -0
  409. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/deprecated-prompt.md +100 -0
  410. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/detect-deprecated-patterns.mjs +139 -0
  411. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/find-exports.mjs +52 -0
  412. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/misleading-api-prompt.md +117 -0
  413. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/read-json-field.mjs +61 -0
  414. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/ripgrep-fallback.mjs +155 -0
  415. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/analyze-prompt.md +46 -0
  416. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/cleanup.mjs +13 -0
  417. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/filter-session.mjs +95 -0
  418. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/preprocess.mjs +160 -0
  419. package/package.json +16 -10
  420. package/packages/ai/src/lib/generateExecutionFlows.js +0 -11
  421. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
  422. package/packages/analyze/src/lib/ProjectAnalyzer.js +10 -4
  423. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  424. package/packages/analyze/src/lib/asts/index.js +4 -2
  425. package/packages/analyze/src/lib/asts/index.js.map +1 -1
  426. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +0 -40
  427. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -1
  428. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +104 -0
  429. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
  430. package/packages/database/src/lib/loadEntities.js +0 -6
  431. package/packages/database/src/lib/loadEntities.js.map +1 -1
  432. package/packages/database/src/lib/updateCommitMetadata.js +0 -25
  433. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  434. package/packages/types/src/enums/ProjectFramework.js +2 -0
  435. package/packages/types/src/enums/ProjectFramework.js.map +1 -1
  436. package/scripts/npm-post-install.cjs +34 -0
  437. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-DmJveP3T.js +0 -1
  438. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-g3saevPb.js +0 -1
  439. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-Bu6c6aDe.js +0 -1
  440. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-DYFW3lDD.js +0 -25
  441. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-DLeucoVX.js +0 -3
  442. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-BED4B6sP.js +0 -1
  443. package/codeyam-cli/src/webserver/build/client/assets/Spinner-Bb5uFQ5V.js +0 -34
  444. package/codeyam-cli/src/webserver/build/client/assets/Terminal-CcG8YTLx.js +0 -41
  445. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-C8OKAR5x.js +0 -1
  446. package/codeyam-cli/src/webserver/build/client/assets/addon-fit-CUXOrorO.js +0 -1
  447. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-CMT1jU2q.js +0 -21
  448. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BiM6z3Do.js +0 -1
  449. package/codeyam-cli/src/webserver/build/client/assets/editor-W_IGJ2Kd.js +0 -7
  450. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-D6SEzMCu.js +0 -6
  451. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-C28BiQzt.js +0 -6
  452. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-p9hhkjJM.js +0 -6
  453. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-cPo8LiG3.js +0 -1
  454. package/codeyam-cli/src/webserver/build/client/assets/files-DO4CZ16O.js +0 -1
  455. package/codeyam-cli/src/webserver/build/client/assets/git-CFCTYk9I.js +0 -15
  456. package/codeyam-cli/src/webserver/build/client/assets/globals-BZB_H1w2.css +0 -1
  457. package/codeyam-cli/src/webserver/build/client/assets/labs-Zk7ryIM1.js +0 -1
  458. package/codeyam-cli/src/webserver/build/client/assets/manifest-8daa4147.js +0 -1
  459. package/codeyam-cli/src/webserver/build/client/assets/memory-FweZHj5U.js +0 -93
  460. package/codeyam-cli/src/webserver/build/client/assets/root-DiRdBreB.js +0 -67
  461. package/codeyam-cli/src/webserver/build/client/assets/settings-DfuTtcJP.js +0 -1
  462. package/codeyam-cli/src/webserver/build/client/assets/simulations-B3aOzpCZ.js +0 -1
  463. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-ByhSyh0W.js +0 -1
  464. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-O-jkvSPx.js +0 -1
  465. package/codeyam-cli/src/webserver/build/client/assets/useToast-9FIWuYfK.js +0 -1
  466. package/codeyam-cli/src/webserver/build/client/assets/xterm-DMSzMhqy.js +0 -9
  467. package/codeyam-cli/src/webserver/build/server/assets/index-BzAbACSx.js +0 -1
  468. package/codeyam-cli/src/webserver/build/server/assets/server-build-OdUocH6P.js +0 -362
  469. package/codeyam-cli/templates/codeyam-editor.md +0 -68
  470. package/scripts/finalize-analyzer.cjs +0 -13
  471. /package/codeyam-cli/templates/{codeyam-diagnose.md → commands/codeyam-diagnose.md} +0 -0
  472. /package/codeyam-cli/templates/{codeyam-debug.md → skills/codeyam-debug/SKILL.md} +0 -0
  473. /package/codeyam-cli/templates/{codeyam-new-rule.md → skills/codeyam-new-rule/SKILL.md} +0 -0
  474. /package/codeyam-cli/templates/{codeyam-setup.md → skills/codeyam-setup/SKILL.md} +0 -0
  475. /package/codeyam-cli/templates/{codeyam-sim.md → skills/codeyam-sim/SKILL.md} +0 -0
  476. /package/codeyam-cli/templates/{codeyam-test.md → skills/codeyam-test/SKILL.md} +0 -0
  477. /package/codeyam-cli/templates/{codeyam-verify.md → skills/codeyam-verify/SKILL.md} +0 -0
@@ -0,0 +1,75 @@
1
+ # Chrome Extension Setup
2
+
3
+ This project is a Chrome Extension built with React 19, TypeScript, Vite, and Tailwind CSS 4.
4
+
5
+ ## Development
6
+
7
+ During development, the popup runs as a regular web page in the browser:
8
+
9
+ ```bash
10
+ npm run dev
11
+ ```
12
+
13
+ This starts a Vite dev server with hot reload. You can develop and test the popup
14
+ UI in a normal browser tab — no need to load it as an extension during development.
15
+
16
+ Data persistence uses `localStorage` in dev mode and `chrome.storage.local` when
17
+ running as an actual extension (see `src/lib/storage.ts`).
18
+
19
+ ## Building the extension
20
+
21
+ ```bash
22
+ npm run build:extension
23
+ ```
24
+
25
+ This creates a `dist/` folder with the built extension. To load it in Chrome:
26
+
27
+ 1. Open `chrome://extensions/`
28
+ 2. Enable "Developer mode" (top right)
29
+ 3. Click "Load unpacked"
30
+ 4. Select the `dist/` folder
31
+
32
+ ## Project structure
33
+
34
+ ```
35
+ src/
36
+ popup/ # Popup UI (React app shown when clicking the extension icon)
37
+ main.tsx # Entry point
38
+ App.tsx # Root component
39
+ background/ # Background service worker
40
+ service-worker.ts
41
+ lib/ # Shared utilities
42
+ storage.ts # Type-safe chrome.storage wrapper with localStorage fallback
43
+ globals.css # Global styles (Tailwind)
44
+ public/
45
+ manifest.json # Chrome extension manifest (Manifest V3)
46
+ popup.html # Popup HTML entry point (used by extension build)
47
+ index.html # Dev server entry point (same app, served as regular page)
48
+ ```
49
+
50
+ ## Key patterns
51
+
52
+ - **Storage**: Import `storage` from `@/lib/storage` for data persistence.
53
+ It automatically uses `chrome.storage.local` in the extension and `localStorage`
54
+ during development.
55
+ - **Popup size**: Set width/height on the root element in your popup component.
56
+ Chrome extension popups don't have a default size.
57
+ - **Permissions**: Add any needed permissions to `public/manifest.json`.
58
+ Common ones: `storage`, `tabs`, `activeTab`, `alarms`.
59
+
60
+ ## Adding content scripts
61
+
62
+ To inject scripts into web pages, add a `content_scripts` entry to `manifest.json`:
63
+
64
+ ```json
65
+ {
66
+ "content_scripts": [
67
+ {
68
+ "matches": ["<all_urls>"],
69
+ "js": ["content.js"]
70
+ }
71
+ ]
72
+ }
73
+ ```
74
+
75
+ Then create `src/content/content.ts` and add it as a Vite entry point.
@@ -0,0 +1,46 @@
1
+ # Project Name
2
+
3
+ Brief description of what this Chrome extension does.
4
+
5
+ ## Setup
6
+
7
+ ```bash
8
+ npm run setup
9
+ ```
10
+
11
+ ## Development
12
+
13
+ Start the dev server for local development:
14
+
15
+ ```bash
16
+ npm run dev
17
+ ```
18
+
19
+ Open [http://localhost:5173](http://localhost:5173) in your browser to preview the popup.
20
+
21
+ ## Build Extension
22
+
23
+ Build the extension for Chrome:
24
+
25
+ ```bash
26
+ npm run build:extension
27
+ ```
28
+
29
+ Then load the `dist/` folder as an unpacked extension in `chrome://extensions`.
30
+
31
+ ## Using CodeYam Editor
32
+
33
+ This project was built with [CodeYam](https://codeyam.com). To launch the editor:
34
+
35
+ ```bash
36
+ codeyam editor
37
+ ```
38
+
39
+ ## Scripts
40
+
41
+ | Script | Description |
42
+ | ------------------------- | ------------------------- |
43
+ | `npm run setup` | Install dependencies |
44
+ | `npm run dev` | Start Vite dev server |
45
+ | `npm run build` | Build for production |
46
+ | `npm run build:extension` | Build as Chrome extension |
@@ -0,0 +1,15 @@
1
+ # dependencies
2
+ /node_modules
3
+
4
+ # build output
5
+ /dist
6
+
7
+ # misc
8
+ .DS_Store
9
+
10
+ # debug
11
+ npm-debug.log*
12
+
13
+ # env files
14
+ .env
15
+ .env*.local
@@ -0,0 +1,12 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>CodeYam App</title>
7
+ </head>
8
+ <body>
9
+ <div id="root"></div>
10
+ <script type="module" src="/src/popup/main.tsx"></script>
11
+ </body>
12
+ </html>
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "codeyam-chrome-extension",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "scripts": {
7
+ "setup": "npm install",
8
+ "dev": "vite",
9
+ "build": "tsc -b && vite build",
10
+ "preview": "vite preview",
11
+ "build:extension": "tsc -b && vite build --mode extension"
12
+ },
13
+ "dependencies": {
14
+ "react": "^19.1.0",
15
+ "react-dom": "^19.1.0"
16
+ },
17
+ "devDependencies": {
18
+ "@tailwindcss/vite": "^4",
19
+ "@types/chrome": "^0.0.300",
20
+ "@types/react": "^19",
21
+ "@types/react-dom": "^19",
22
+ "@vitejs/plugin-react": "^4.4.1",
23
+ "tailwindcss": "^4",
24
+ "typescript": "^5",
25
+ "vite": "^6.3.5"
26
+ }
27
+ }
@@ -0,0 +1,12 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>CodeYam App</title>
7
+ </head>
8
+ <body>
9
+ <div id="root"></div>
10
+ <script type="module" src="/src/popup/main.tsx"></script>
11
+ </body>
12
+ </html>
@@ -0,0 +1,15 @@
1
+ {
2
+ "manifest_version": 3,
3
+ "name": "CodeYam App",
4
+ "version": "0.1.0",
5
+ "description": "Built with CodeYam Editor",
6
+ "action": {
7
+ "default_popup": "popup.html",
8
+ "default_title": "CodeYam App"
9
+ },
10
+ "permissions": ["storage"],
11
+ "background": {
12
+ "service_worker": "background.js",
13
+ "type": "module"
14
+ }
15
+ }
@@ -0,0 +1,7 @@
1
+ // Background service worker for the Chrome extension.
2
+ // This runs in the background and can handle events like
3
+ // extension install, alarms, messages from popup/content scripts, etc.
4
+
5
+ chrome.runtime.onInstalled.addListener(() => {
6
+ console.log('Extension installed');
7
+ });
@@ -0,0 +1,6 @@
1
+ @import "tailwindcss";
2
+
3
+ body {
4
+ margin: 0;
5
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
6
+ }
@@ -0,0 +1,37 @@
1
+ // Wrapper around chrome.storage.local for type-safe data persistence.
2
+ // Falls back to localStorage when running in a regular browser (during development).
3
+ //
4
+ // Usage:
5
+ // import { storage } from "@/lib/storage";
6
+ // await storage.get<Todo[]>("todos", []);
7
+ // await storage.set("todos", updatedTodos);
8
+
9
+ const isChromeExtension =
10
+ typeof chrome !== 'undefined' && chrome.storage?.local;
11
+
12
+ export const storage = {
13
+ async get<T>(key: string, defaultValue: T): Promise<T> {
14
+ if (isChromeExtension) {
15
+ const result = await chrome.storage.local.get(key);
16
+ return (result[key] as T) ?? defaultValue;
17
+ }
18
+ const item = localStorage.getItem(key);
19
+ return item ? (JSON.parse(item) as T) : defaultValue;
20
+ },
21
+
22
+ async set<T>(key: string, value: T): Promise<void> {
23
+ if (isChromeExtension) {
24
+ await chrome.storage.local.set({ [key]: value });
25
+ return;
26
+ }
27
+ localStorage.setItem(key, JSON.stringify(value));
28
+ },
29
+
30
+ async remove(key: string): Promise<void> {
31
+ if (isChromeExtension) {
32
+ await chrome.storage.local.remove(key);
33
+ return;
34
+ }
35
+ localStorage.removeItem(key);
36
+ },
37
+ };
@@ -0,0 +1,12 @@
1
+ export default function App() {
2
+ return (
3
+ <main className="w-80 min-h-48 p-4 flex items-center justify-center">
4
+ <div className="text-center">
5
+ <h1 className="text-xl font-bold mb-2">Welcome</h1>
6
+ <p className="text-gray-600 text-sm">
7
+ Your extension is ready. Start building!
8
+ </p>
9
+ </div>
10
+ </main>
11
+ );
12
+ }
@@ -0,0 +1,10 @@
1
+ import { StrictMode } from 'react';
2
+ import { createRoot } from 'react-dom/client';
3
+ import '../globals.css';
4
+ import App from './App';
5
+
6
+ createRoot(document.getElementById('root')!).render(
7
+ <StrictMode>
8
+ <App />
9
+ </StrictMode>,
10
+ );
@@ -0,0 +1,24 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "useDefineForClassFields": true,
5
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
6
+ "module": "ESNext",
7
+ "skipLibCheck": true,
8
+ "moduleResolution": "bundler",
9
+ "allowImportingTsExtensions": true,
10
+ "isolatedModules": true,
11
+ "moduleDetection": "force",
12
+ "noEmit": true,
13
+ "jsx": "react-jsx",
14
+ "strict": true,
15
+ "noUnusedLocals": true,
16
+ "noUnusedParameters": true,
17
+ "noFallthroughCasesInSwitch": true,
18
+ "noUncheckedSideEffectImports": true,
19
+ "paths": {
20
+ "@/*": ["./src/*"]
21
+ }
22
+ },
23
+ "include": ["src"]
24
+ }
@@ -0,0 +1,41 @@
1
+ import { defineConfig } from 'vite';
2
+ import react from '@vitejs/plugin-react';
3
+ import tailwindcss from '@tailwindcss/vite';
4
+ import { resolve } from 'path';
5
+
6
+ // In "extension" mode, build produces a Chrome extension in dist/.
7
+ // In default mode, `vite dev` serves the popup as a regular web page
8
+ // so you can develop and test it in a normal browser tab.
9
+
10
+ export default defineConfig(({ mode }) => ({
11
+ plugins: [react(), tailwindcss()],
12
+ server: {
13
+ // Bind to the port provided by CodeYam editor (via PORT env var) or default 5173.
14
+ // Use 0.0.0.0 so the dev server is reachable on both IPv4 and IPv6 loopback.
15
+ port: process.env.PORT ? parseInt(process.env.PORT, 10) : 5173,
16
+ host: '0.0.0.0',
17
+ },
18
+ resolve: {
19
+ alias: {
20
+ '@': resolve(__dirname, 'src'),
21
+ },
22
+ },
23
+ build:
24
+ mode === 'extension'
25
+ ? {
26
+ rollupOptions: {
27
+ input: {
28
+ popup: resolve(__dirname, 'popup.html'),
29
+ },
30
+ output: {
31
+ entryFileNames: '[name].js',
32
+ chunkFileNames: '[name].js',
33
+ assetFileNames: '[name].[ext]',
34
+ },
35
+ },
36
+ outDir: 'dist',
37
+ emptyOutDir: true,
38
+ copyPublicDir: true,
39
+ }
40
+ : undefined,
41
+ }));
@@ -26,14 +26,20 @@ A **scenario** is a named set of data that drives how the app renders. Scenarios
26
26
  - **App-level scenarios**: Full application state — what the database contains, what API responses return. Example: "Empty Dashboard", "Dashboard with 50 Tasks", "Dashboard with Overdue Tasks"
27
27
  - **Component-level scenarios**: Props for a single component in isolation. Example: "TaskCard - Default", "TaskCard - Overdue", "TaskCard - Completed"
28
28
 
29
- **Always register scenarios with CodeYam** after creating them:
29
+ **Only create scenarios for states the current code can render.** If you seed 10 articles but the app doesn't have an article list component yet, the screenshot will show an empty page — that's a broken scenario. After registering, always view the captured screenshot to verify the data is actually visible.
30
+
31
+ **Always register scenarios with CodeYam** using the CLI:
30
32
 
31
33
  ```bash
32
- curl -s -X POST http://localhost:${CODEYAM_PORT:-3111}/api/editor-register-scenario \
33
- -H 'Content-Type: application/json' \
34
- -d '{"name": "...", "componentName": "...", "zoomLevel": "component", "mockData": {...}}'
34
+ # Small inline JSON:
35
+ codeyam editor register '{"name":"TaskCard - Default","componentName":"TaskCard","url":"/isolated-components/TaskCard?s=Default","dimensions":["<name from screenSizes>"]}'
36
+
37
+ # Large JSON — use the Write tool to write to .codeyam/tmp/scenario.json, then:
38
+ codeyam editor register @.codeyam/tmp/scenario.json
35
39
  ```
36
40
 
41
+ **To list existing scenarios:** `codeyam editor scenarios`
42
+
37
43
  ### Database First
38
44
 
39
45
  Use a real database (SQLite + Prisma recommended) from the start. This lets scenarios represent different database states rather than just static prop variations:
@@ -54,7 +60,11 @@ Build components so they work at both zoom levels. A `TaskCard` should render co
54
60
  ## Workflow
55
61
 
56
62
  1. Build a component
57
- 2. Create 2-3 scenarios for it (happy path, empty state, edge case)
63
+ 2. Create scenarios with rich, realistic data that thoroughly exercises the component:
64
+ - Happy path with diverse, realistic content (not just "Test Item 1", "Test Item 2")
65
+ - Empty state (no data, first-time user)
66
+ - Rich data (many items, all optional fields populated, varied lengths and categories)
67
+ - Edge cases if they surface naturally from diverse data
58
68
  3. Register the scenarios with CodeYam
59
69
  4. Preview each scenario to verify the component handles all states
60
70
  5. Repeat for the next component, building up scenario coverage
@@ -66,3 +76,72 @@ Build components so they work at both zoom levels. A `TaskCard` should render co
66
76
  - Components accept props that can be provided by scenarios
67
77
  - Database seed scripts go in `prisma/seeds/` (one per scenario when using DB-level scenarios)
68
78
  - MSW handler files go in `.codeyam/msw-handlers/` (one per scenario for API mocking)
79
+
80
+ ## Design System
81
+
82
+ If `.codeyam/design-system.md` exists, it contains the project's design tokens and brand guidelines. The editor step instructions will automatically show its contents inline — you don't need to read the file separately.
83
+
84
+ - Define **every** design token as a CSS custom property in `globals.css` — not just colors:
85
+ - Colors: `--bg-surface`, `--text-primary`, `--accent-green-a`, etc.
86
+ - Typography: `--text-xs: 12px`, `--text-sm: 14px`, `--text-lg: 18px`, etc.
87
+ - Font weights: `--font-weight-normal: 400`, `--font-weight-medium: 500`, `--font-weight-semibold: 600`
88
+ - Spacing: `--spacing-xs: 4px`, `--spacing-sm: 8px`, `--spacing-md: 12px`, `--spacing-lg: 16px`, etc.
89
+ - Border radius, shadows, and transitions
90
+ - Components must reference tokens — **zero hardcoded px values** for font-size, padding, margin, gap, or colors
91
+ - Bad: `fontSize: 14`, `padding: '12px 16px'`, `gap: 8`
92
+ - Good: `fontSize: 'var(--text-sm)'`, `padding: 'var(--spacing-md) var(--spacing-lg)'`, `gap: 'var(--spacing-sm)'`
93
+ - This ensures the entire app updates when the design system changes
94
+
95
+ ## Avoiding Permission Prompts
96
+
97
+ These patterns cause unnecessary approval prompts in Claude Code. Follow these rules:
98
+
99
+ ### Writing JSON files — use the Write tool, not bash
100
+
101
+ **BAD** (triggers "expansion obfuscation" security warning due to braces+quotes in heredoc):
102
+
103
+ ```bash
104
+ cat > /tmp/scenario.json << 'EOF'
105
+ {"name":"My Scenario","localStorage":{"key":"[{\"id\":\"1\"}]"}}
106
+ EOF
107
+ ```
108
+
109
+ **GOOD** (Write tool is pre-approved, no bash prompt):
110
+ Use the **Write tool** to create `.codeyam/tmp/scenario.json`, then register:
111
+
112
+ ```bash
113
+ codeyam editor register @.codeyam/tmp/scenario.json
114
+ ```
115
+
116
+ ### Listing scenarios — use the CLI subcommand
117
+
118
+ **BAD** (triggers bash approval):
119
+
120
+ ```bash
121
+ cat .codeyam/editor-scenarios/*.json | grep -o '"name":"[^"]*"'
122
+ ls .codeyam/editor-scenarios/*.json
123
+ ```
124
+
125
+ **GOOD** (pre-approved):
126
+
127
+ ```bash
128
+ codeyam editor scenarios
129
+ ```
130
+
131
+ ### Database schema changes — never force-reset
132
+
133
+ **BAD** (destructive, triggers approval, drops all data):
134
+
135
+ ```bash
136
+ npx prisma db push --force-reset
137
+ ```
138
+
139
+ **GOOD** (preserves data by providing defaults for new required columns):
140
+
141
+ ```prisma
142
+ userId Int @default(0) // existing rows get 0
143
+ ```
144
+
145
+ Then: `npm run db:push`
146
+
147
+ If you must add a required column without a default, make it optional (`Int?`) or provide a `@default()` value. Never destroy user data with `--force-reset`.