@codeyam/codeyam-cli 0.1.0-staging.8421896 → 0.1.0-staging.8778565

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 (627) hide show
  1. package/analyzer-template/.build-info.json +7 -7
  2. package/analyzer-template/log.txt +3 -3
  3. package/analyzer-template/package.json +22 -22
  4. package/analyzer-template/packages/ai/package.json +2 -2
  5. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +34 -3
  6. package/analyzer-template/packages/ai/src/lib/completionCall.ts +114 -113
  7. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +259 -5
  8. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.ts +62 -0
  9. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.ts +35 -0
  10. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +15 -6
  11. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +78 -2
  12. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +96 -33
  13. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +19 -7
  14. package/analyzer-template/packages/analyze/src/lib/asts/index.ts +7 -2
  15. package/analyzer-template/packages/analyze/src/lib/asts/nodes/getNodeType.ts +1 -0
  16. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +9 -1
  17. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +0 -6
  18. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +12 -0
  19. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +65 -28
  20. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +83 -0
  21. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +0 -98
  22. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +23 -4
  23. package/analyzer-template/packages/aws/package.json +10 -10
  24. package/analyzer-template/packages/database/index.ts +1 -0
  25. package/analyzer-template/packages/database/package.json +3 -3
  26. package/analyzer-template/packages/database/src/lib/kysely/db.ts +8 -0
  27. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +82 -0
  28. package/analyzer-template/packages/database/src/lib/loadCommits.ts +31 -20
  29. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +0 -5
  30. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +151 -135
  31. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatus.ts +58 -42
  32. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.ts +81 -65
  33. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +29 -1
  34. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +33 -5
  35. package/analyzer-template/packages/github/dist/database/index.d.ts +1 -0
  36. package/analyzer-template/packages/github/dist/database/index.d.ts.map +1 -1
  37. package/analyzer-template/packages/github/dist/database/index.js +1 -0
  38. package/analyzer-template/packages/github/dist/database/index.js.map +1 -1
  39. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -0
  40. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  41. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +5 -0
  42. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  43. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +24 -0
  44. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -0
  45. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +65 -0
  46. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  47. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +5 -0
  48. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  49. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  50. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +23 -13
  51. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  52. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  53. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
  54. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  55. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  56. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +100 -89
  57. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  58. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.d.ts.map +1 -1
  59. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  60. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  61. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts.map +1 -1
  62. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  63. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  64. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -1
  65. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
  66. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
  67. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
  68. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  69. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  70. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  71. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  72. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js +2 -0
  73. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js.map +1 -1
  74. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +1 -0
  75. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  76. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +10 -0
  77. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  78. package/analyzer-template/packages/github/package.json +1 -1
  79. package/analyzer-template/packages/types/src/enums/ProjectFramework.ts +2 -0
  80. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +1 -0
  81. package/analyzer-template/packages/types/src/types/Scenario.ts +10 -0
  82. package/analyzer-template/packages/ui-components/package.json +1 -1
  83. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  84. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  85. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js +2 -0
  86. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js.map +1 -1
  87. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +1 -0
  88. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  89. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +10 -0
  90. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  91. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  92. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +6 -2
  93. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  94. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +14 -2
  95. package/analyzer-template/playwright/captureFromUrl.ts +89 -82
  96. package/analyzer-template/project/constructMockCode.ts +170 -50
  97. package/analyzer-template/project/orchestrateCapture.ts +4 -1
  98. package/analyzer-template/project/reconcileMockDataKeys.ts +19 -14
  99. package/analyzer-template/project/start.ts +3 -0
  100. package/analyzer-template/project/startScenarioCapture.ts +9 -0
  101. package/analyzer-template/project/writeClientLogRoute.ts +125 -0
  102. package/analyzer-template/project/writeMockDataTsx.ts +17 -0
  103. package/analyzer-template/project/writeScenarioComponents.ts +110 -17
  104. package/analyzer-template/tsconfig.json +13 -1
  105. package/background/src/lib/virtualized/project/constructMockCode.js +145 -41
  106. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  107. package/background/src/lib/virtualized/project/orchestrateCapture.js +4 -1
  108. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  109. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +17 -11
  110. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  111. package/background/src/lib/virtualized/project/start.js +2 -0
  112. package/background/src/lib/virtualized/project/start.js.map +1 -1
  113. package/background/src/lib/virtualized/project/startScenarioCapture.js +5 -0
  114. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  115. package/background/src/lib/virtualized/project/writeClientLogRoute.js +110 -0
  116. package/background/src/lib/virtualized/project/writeClientLogRoute.js.map +1 -0
  117. package/background/src/lib/virtualized/project/writeMockDataTsx.js +12 -0
  118. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  119. package/background/src/lib/virtualized/project/writeScenarioComponents.js +83 -12
  120. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  121. package/codeyam-cli/scripts/apply-setup.js +208 -11
  122. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  123. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js +196 -0
  124. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js.map +1 -0
  125. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js +114 -0
  126. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js.map +1 -0
  127. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js +149 -0
  128. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js.map +1 -0
  129. package/codeyam-cli/src/cli.js +32 -25
  130. package/codeyam-cli/src/cli.js.map +1 -1
  131. package/codeyam-cli/src/commands/analyze.js +17 -7
  132. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  133. package/codeyam-cli/src/commands/default.js +14 -2
  134. package/codeyam-cli/src/commands/default.js.map +1 -1
  135. package/codeyam-cli/src/commands/editor.js +2787 -0
  136. package/codeyam-cli/src/commands/editor.js.map +1 -0
  137. package/codeyam-cli/src/commands/init.js +40 -11
  138. package/codeyam-cli/src/commands/init.js.map +1 -1
  139. package/codeyam-cli/src/commands/memory.js +89 -75
  140. package/codeyam-cli/src/commands/memory.js.map +1 -1
  141. package/codeyam-cli/src/data/techStacks.js +77 -0
  142. package/codeyam-cli/src/data/techStacks.js.map +1 -0
  143. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js +46 -0
  144. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js.map +1 -0
  145. package/codeyam-cli/src/utils/__tests__/devServerState.test.js +134 -0
  146. package/codeyam-cli/src/utils/__tests__/devServerState.test.js.map +1 -0
  147. package/codeyam-cli/src/utils/__tests__/editorApi.test.js +127 -0
  148. package/codeyam-cli/src/utils/__tests__/editorApi.test.js.map +1 -0
  149. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +635 -0
  150. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -0
  151. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js +93 -0
  152. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js.map +1 -0
  153. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js +304 -0
  154. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js.map +1 -0
  155. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js +121 -0
  156. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js.map +1 -0
  157. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js +294 -0
  158. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js.map +1 -0
  159. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js +542 -0
  160. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js.map +1 -0
  161. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js +393 -0
  162. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js.map +1 -0
  163. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js +270 -0
  164. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js.map +1 -0
  165. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js +217 -0
  166. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js.map +1 -0
  167. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js +266 -0
  168. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js.map +1 -0
  169. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js +107 -0
  170. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js.map +1 -0
  171. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js +139 -0
  172. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js.map +1 -0
  173. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js +221 -0
  174. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js.map +1 -0
  175. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +275 -0
  176. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -0
  177. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js +213 -0
  178. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js.map +1 -0
  179. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +1737 -0
  180. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -0
  181. package/codeyam-cli/src/utils/__tests__/git.editor.test.js +134 -0
  182. package/codeyam-cli/src/utils/__tests__/git.editor.test.js.map +1 -0
  183. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js +107 -0
  184. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js.map +1 -0
  185. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +185 -0
  186. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
  187. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js +101 -0
  188. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js.map +1 -0
  189. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js +9 -0
  190. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js.map +1 -1
  191. package/codeyam-cli/src/utils/__tests__/project.test.js +65 -0
  192. package/codeyam-cli/src/utils/__tests__/project.test.js.map +1 -0
  193. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js +121 -0
  194. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js.map +1 -0
  195. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +246 -0
  196. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -0
  197. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +50 -4
  198. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  199. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js +51 -0
  200. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js.map +1 -0
  201. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js +142 -0
  202. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js.map +1 -0
  203. package/codeyam-cli/src/utils/backgroundServer.js +198 -39
  204. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  205. package/codeyam-cli/src/utils/buildFlags.js +4 -0
  206. package/codeyam-cli/src/utils/buildFlags.js.map +1 -0
  207. package/codeyam-cli/src/utils/devModeEvents.js +40 -0
  208. package/codeyam-cli/src/utils/devModeEvents.js.map +1 -0
  209. package/codeyam-cli/src/utils/devServerState.js +71 -0
  210. package/codeyam-cli/src/utils/devServerState.js.map +1 -0
  211. package/codeyam-cli/src/utils/editorApi.js +73 -0
  212. package/codeyam-cli/src/utils/editorApi.js.map +1 -0
  213. package/codeyam-cli/src/utils/editorAudit.js +159 -0
  214. package/codeyam-cli/src/utils/editorAudit.js.map +1 -0
  215. package/codeyam-cli/src/utils/editorCapture.js +102 -0
  216. package/codeyam-cli/src/utils/editorCapture.js.map +1 -0
  217. package/codeyam-cli/src/utils/editorDevServer.js +197 -0
  218. package/codeyam-cli/src/utils/editorDevServer.js.map +1 -0
  219. package/codeyam-cli/src/utils/editorEntityChangeStatus.js +44 -0
  220. package/codeyam-cli/src/utils/editorEntityChangeStatus.js.map +1 -0
  221. package/codeyam-cli/src/utils/editorImageVerifier.js +155 -0
  222. package/codeyam-cli/src/utils/editorImageVerifier.js.map +1 -0
  223. package/codeyam-cli/src/utils/editorJournal.js +225 -0
  224. package/codeyam-cli/src/utils/editorJournal.js.map +1 -0
  225. package/codeyam-cli/src/utils/editorLoaderHelpers.js +81 -0
  226. package/codeyam-cli/src/utils/editorLoaderHelpers.js.map +1 -0
  227. package/codeyam-cli/src/utils/editorMockState.js +248 -0
  228. package/codeyam-cli/src/utils/editorMockState.js.map +1 -0
  229. package/codeyam-cli/src/utils/editorPreloadHelpers.js +135 -0
  230. package/codeyam-cli/src/utils/editorPreloadHelpers.js.map +1 -0
  231. package/codeyam-cli/src/utils/editorPreview.js +106 -0
  232. package/codeyam-cli/src/utils/editorPreview.js.map +1 -0
  233. package/codeyam-cli/src/utils/editorScenarioSwitch.js +112 -0
  234. package/codeyam-cli/src/utils/editorScenarioSwitch.js.map +1 -0
  235. package/codeyam-cli/src/utils/editorScenarios.js +126 -0
  236. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -0
  237. package/codeyam-cli/src/utils/editorSeedAdapter.js +173 -0
  238. package/codeyam-cli/src/utils/editorSeedAdapter.js.map +1 -0
  239. package/codeyam-cli/src/utils/entityChangeStatus.js +347 -0
  240. package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -0
  241. package/codeyam-cli/src/utils/entityChangeStatus.server.js +158 -0
  242. package/codeyam-cli/src/utils/entityChangeStatus.server.js.map +1 -0
  243. package/codeyam-cli/src/utils/fileMetadata.js +5 -0
  244. package/codeyam-cli/src/utils/fileMetadata.js.map +1 -1
  245. package/codeyam-cli/src/utils/fileWatcher.js +25 -9
  246. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  247. package/codeyam-cli/src/utils/git.js +103 -0
  248. package/codeyam-cli/src/utils/git.js.map +1 -1
  249. package/codeyam-cli/src/utils/install-skills.js +57 -15
  250. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  251. package/codeyam-cli/src/utils/interactiveSyncWatcher.js +126 -0
  252. package/codeyam-cli/src/utils/interactiveSyncWatcher.js.map +1 -0
  253. package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
  254. package/codeyam-cli/src/utils/npmVersionCheck.js.map +1 -0
  255. package/codeyam-cli/src/utils/parseRegisterArg.js +31 -0
  256. package/codeyam-cli/src/utils/parseRegisterArg.js.map +1 -0
  257. package/codeyam-cli/src/utils/pathIgnoring.js +19 -7
  258. package/codeyam-cli/src/utils/pathIgnoring.js.map +1 -1
  259. package/codeyam-cli/src/utils/project.js +15 -5
  260. package/codeyam-cli/src/utils/project.js.map +1 -1
  261. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js +11 -11
  262. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js.map +1 -1
  263. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +22 -0
  264. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
  265. package/codeyam-cli/src/utils/queue/heartbeat.js +13 -5
  266. package/codeyam-cli/src/utils/queue/heartbeat.js.map +1 -1
  267. package/codeyam-cli/src/utils/queue/job.js +70 -1
  268. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  269. package/codeyam-cli/src/utils/queue/manager.js +7 -6
  270. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  271. package/codeyam-cli/src/utils/requireSimulations.js +1 -1
  272. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -1
  273. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +5 -6
  274. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -1
  275. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +1 -1
  276. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -1
  277. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +0 -1
  278. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -1
  279. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +2 -4
  280. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -1
  281. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +4 -6
  282. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -1
  283. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +1 -1
  284. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -1
  285. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js +83 -0
  286. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js.map +1 -0
  287. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js +118 -0
  288. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js.map +1 -0
  289. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js +72 -0
  290. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js.map +1 -0
  291. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js +76 -0
  292. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js.map +1 -0
  293. package/codeyam-cli/src/utils/rules/index.js +1 -0
  294. package/codeyam-cli/src/utils/rules/index.js.map +1 -1
  295. package/codeyam-cli/src/utils/rules/parser.js +14 -4
  296. package/codeyam-cli/src/utils/rules/parser.js.map +1 -1
  297. package/codeyam-cli/src/utils/rules/pathMatcher.js +34 -3
  298. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -1
  299. package/codeyam-cli/src/utils/rules/rulePlacement.js +65 -0
  300. package/codeyam-cli/src/utils/rules/rulePlacement.js.map +1 -0
  301. package/codeyam-cli/src/utils/rules/sourceFiles.js +43 -0
  302. package/codeyam-cli/src/utils/rules/sourceFiles.js.map +1 -0
  303. package/codeyam-cli/src/utils/scenarioMarkers.js +134 -0
  304. package/codeyam-cli/src/utils/scenarioMarkers.js.map +1 -0
  305. package/codeyam-cli/src/utils/scenariosManifest.js +112 -0
  306. package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -0
  307. package/codeyam-cli/src/utils/serverState.js +57 -2
  308. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  309. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +82 -11
  310. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  311. package/codeyam-cli/src/utils/simulationGateMiddleware.js +159 -0
  312. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -0
  313. package/codeyam-cli/src/utils/syncMocksMiddleware.js +5 -24
  314. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  315. package/codeyam-cli/src/utils/testRunner.js +158 -0
  316. package/codeyam-cli/src/utils/testRunner.js.map +1 -0
  317. package/codeyam-cli/src/utils/transcriptPruning.js +67 -0
  318. package/codeyam-cli/src/utils/transcriptPruning.js.map +1 -0
  319. package/codeyam-cli/src/utils/versionInfo.js +46 -0
  320. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  321. package/codeyam-cli/src/utils/webappDetection.js +35 -2
  322. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  323. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js +66 -0
  324. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
  325. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +410 -0
  326. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -0
  327. package/codeyam-cli/src/webserver/app/lib/database.js +41 -27
  328. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  329. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  330. package/codeyam-cli/src/webserver/app/lib/git.js +396 -0
  331. package/codeyam-cli/src/webserver/app/lib/git.js.map +1 -0
  332. package/codeyam-cli/src/webserver/backgroundServer.js +144 -18
  333. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  334. package/codeyam-cli/src/webserver/bootstrap.js +11 -0
  335. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
  336. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-BPXZwM4t.js +1 -0
  337. package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-HdckCi0m.js → EntityItem-BcgbViKV.js} +3 -3
  338. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-Dh5RJMOE.js → EntityTypeBadge-g3saevPb.js} +1 -1
  339. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-BnjjBHJu.js → EntityTypeIcon-CQIG2qda.js} +9 -9
  340. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-Bu6c6aDe.js +1 -0
  341. package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-Coll1aD6.js → InteractivePreview-DYFW3lDD.js} +3 -3
  342. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-lYMY8h-y.js → LibraryFunctionPreview-DLeucoVX.js} +1 -1
  343. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-ay8XeA59.js → LoadingDots-BU_OAEMP.js} +1 -1
  344. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-Dpul1_ik.js → LogViewer-ceAyBX-H.js} +1 -1
  345. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-CRBCfV2W.js → ReportIssueModal-BzHcG7SE.js} +3 -3
  346. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-DRTFDNFt.js → SafeScreenshot-BED4B6sP.js} +1 -1
  347. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-d6PSFxhS.js → ScenarioViewer-0DY_NKil.js} +3 -3
  348. package/codeyam-cli/src/webserver/build/client/assets/Spinner-Bb5uFQ5V.js +34 -0
  349. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-DDEOQ6Iw.js → TruncatedFilePath-C8OKAR5x.js} +1 -1
  350. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-oAf2Kqsf.js +1 -0
  351. package/codeyam-cli/src/webserver/build/client/assets/{_index-CkziGg5F.js → _index-DLxKhri3.js} +3 -3
  352. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-B2v1pm9w.js → activity.(_tab)-BcY3q6nt.js} +6 -6
  353. package/codeyam-cli/src/webserver/build/client/assets/addon-canvas-DpzMmAy5.js +1 -0
  354. package/codeyam-cli/src/webserver/build/client/assets/addon-fit-YJmn1quW.js +12 -0
  355. package/codeyam-cli/src/webserver/build/client/assets/addon-web-links-Duc5hnl7.js +1 -0
  356. package/codeyam-cli/src/webserver/build/client/assets/addon-webgl-DI8QOUvO.js +58 -0
  357. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-Bni3iiUj.js +22 -0
  358. package/codeyam-cli/src/webserver/build/client/assets/api.dev-mode-events-l0sNRNKZ.js +1 -0
  359. package/codeyam-cli/src/webserver/build/client/assets/api.editor-audit-l0sNRNKZ.js +1 -0
  360. package/codeyam-cli/src/webserver/build/client/assets/api.editor-capture-scenario-l0sNRNKZ.js +1 -0
  361. package/codeyam-cli/src/webserver/build/client/assets/api.editor-client-errors-l0sNRNKZ.js +1 -0
  362. package/codeyam-cli/src/webserver/build/client/assets/api.editor-commit-l0sNRNKZ.js +1 -0
  363. package/codeyam-cli/src/webserver/build/client/assets/api.editor-dev-server-l0sNRNKZ.js +1 -0
  364. package/codeyam-cli/src/webserver/build/client/assets/api.editor-entity-status-l0sNRNKZ.js +1 -0
  365. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-diff-l0sNRNKZ.js +1 -0
  366. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-l0sNRNKZ.js +1 -0
  367. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-entry-l0sNRNKZ.js +1 -0
  368. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-image._-l0sNRNKZ.js +1 -0
  369. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-l0sNRNKZ.js +1 -0
  370. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-screenshot-l0sNRNKZ.js +1 -0
  371. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-update-l0sNRNKZ.js +1 -0
  372. package/codeyam-cli/src/webserver/build/client/assets/api.editor-load-commit-l0sNRNKZ.js +1 -0
  373. package/codeyam-cli/src/webserver/build/client/assets/api.editor-project-info-l0sNRNKZ.js +1 -0
  374. package/codeyam-cli/src/webserver/build/client/assets/api.editor-refresh-l0sNRNKZ.js +1 -0
  375. package/codeyam-cli/src/webserver/build/client/assets/api.editor-register-scenario-l0sNRNKZ.js +1 -0
  376. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-data-l0sNRNKZ.js +1 -0
  377. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-image._-l0sNRNKZ.js +1 -0
  378. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenarios-l0sNRNKZ.js +1 -0
  379. package/codeyam-cli/src/webserver/build/client/assets/api.editor-switch-scenario-l0sNRNKZ.js +1 -0
  380. package/codeyam-cli/src/webserver/build/client/assets/api.editor-test-results-l0sNRNKZ.js +1 -0
  381. package/codeyam-cli/src/webserver/build/client/assets/api.rule-path-l0sNRNKZ.js +1 -0
  382. package/codeyam-cli/src/webserver/build/client/assets/{book-open-qbapxy6o.js → book-open-BYOypzCa.js} +2 -2
  383. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-C-mKrwr1.js → chevron-down-C_Pmso5S.js} +2 -2
  384. package/codeyam-cli/src/webserver/build/client/assets/{chunk-JZWAC4HX-BAvUl1nT.js → chunk-JZWAC4HX-C4pqxYJB.js} +11 -11
  385. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-DlrT-SzI.js → circle-check-BVMi9VA5.js} +2 -2
  386. package/codeyam-cli/src/webserver/build/client/assets/{copy-clIxnCqQ.js → copy-n2FB0_Sw.js} +3 -3
  387. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-CC6AbExI.js +41 -0
  388. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-Csi0_PMl.js +1 -0
  389. package/codeyam-cli/src/webserver/build/client/assets/editor-DgN1LTTt.js +10 -0
  390. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-BLQMSKZa.js +41 -0
  391. package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-BF4oLwaE.js +23 -0
  392. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-C7YX6r3H.js +6 -0
  393. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-CF164ouH.js +6 -0
  394. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-p9hhkjJM.js +6 -0
  395. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-DESSZGQp.js → entity._sha_.edit._scenarioId-BMvVHNXU.js} +2 -2
  396. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-D5Yb90Ad.js → entry.client-DTvKq3TY.js} +1 -1
  397. package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DuObVYgh.js → fileTableUtils-cPo8LiG3.js} +1 -1
  398. package/codeyam-cli/src/webserver/build/client/assets/{files-CDfz4Y-i.js → files-BZrlFE1F.js} +1 -1
  399. package/codeyam-cli/src/webserver/build/client/assets/git-DdZcvjGh.js +1 -0
  400. package/codeyam-cli/src/webserver/build/client/assets/globals-BkWJ_UNc.css +1 -0
  401. package/codeyam-cli/src/webserver/build/client/assets/{index-DvOt1KIt.js → index-10oVnAAH.js} +1 -1
  402. package/codeyam-cli/src/webserver/build/client/assets/{index-WfQFdoWK.js → index-BcvgDzbZ.js} +1 -1
  403. package/codeyam-cli/src/webserver/build/client/assets/index-yHOVb4rc.js +15 -0
  404. package/codeyam-cli/src/webserver/build/client/assets/labs-Zk7ryIM1.js +1 -0
  405. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-Bb7Y9k5O.js → loader-circle-DaAZ_H2w.js} +2 -2
  406. package/codeyam-cli/src/webserver/build/client/assets/manifest-c26eb85b.js +1 -0
  407. package/codeyam-cli/src/webserver/build/client/assets/memory-Bl2rpw8u.js +96 -0
  408. package/codeyam-cli/src/webserver/build/client/assets/{pause-DaAHX2on.js → pause-f5-1lKBt.js} +3 -3
  409. package/codeyam-cli/src/webserver/build/client/assets/root-ClvYBUSA.js +67 -0
  410. package/codeyam-cli/src/webserver/build/client/assets/{search-DIqAPIrO.js → search-Di64LWVb.js} +2 -2
  411. package/codeyam-cli/src/webserver/build/client/assets/settings-0OrEMU6J.js +1 -0
  412. package/codeyam-cli/src/webserver/build/client/assets/{simulations-C6n_fNQY.js → simulations-DWT-CvLy.js} +1 -1
  413. package/codeyam-cli/src/webserver/build/client/assets/{terminal-CmPsszJy.js → terminal-Br7MOqts.js} +3 -3
  414. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-Beg-oV50.js → triangle-alert-BLdiCuG-.js} +2 -2
  415. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-CrAK28Bc.js +1 -0
  416. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-C14nCb1q.js +2 -0
  417. package/codeyam-cli/src/webserver/build/client/assets/{useReportContext-B4D3wj27.js → useReportContext-O-jkvSPx.js} +1 -1
  418. package/codeyam-cli/src/webserver/build/client/assets/{useToast-BDt_-DnY.js → useToast-9FIWuYfK.js} +1 -1
  419. package/codeyam-cli/src/webserver/build/client/assets/xterm-BqvuqXEL.js +27 -0
  420. package/codeyam-cli/src/webserver/build/server/assets/index-DflIr5SD.js +1 -0
  421. package/codeyam-cli/src/webserver/build/server/assets/server-build-OhKy839M.js +416 -0
  422. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  423. package/codeyam-cli/src/webserver/build-info.json +5 -5
  424. package/codeyam-cli/src/webserver/devServer.js +39 -5
  425. package/codeyam-cli/src/webserver/devServer.js.map +1 -1
  426. package/codeyam-cli/src/webserver/editorProxy.js +785 -0
  427. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -0
  428. package/codeyam-cli/src/webserver/scripts/codeyam-preload.mjs +414 -0
  429. package/codeyam-cli/src/webserver/scripts/journalCapture.ts +230 -0
  430. package/codeyam-cli/src/webserver/server.js +258 -1
  431. package/codeyam-cli/src/webserver/server.js.map +1 -1
  432. package/codeyam-cli/src/webserver/terminalServer.js +726 -0
  433. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -0
  434. package/codeyam-cli/templates/chrome-extension-react/EXTENSION_SETUP.md +75 -0
  435. package/codeyam-cli/templates/chrome-extension-react/gitignore +15 -0
  436. package/codeyam-cli/templates/chrome-extension-react/index.html +12 -0
  437. package/codeyam-cli/templates/chrome-extension-react/package.json +26 -0
  438. package/codeyam-cli/templates/chrome-extension-react/popup.html +12 -0
  439. package/codeyam-cli/templates/chrome-extension-react/public/manifest.json +15 -0
  440. package/codeyam-cli/templates/chrome-extension-react/src/background/service-worker.ts +7 -0
  441. package/codeyam-cli/templates/chrome-extension-react/src/globals.css +6 -0
  442. package/codeyam-cli/templates/chrome-extension-react/src/lib/storage.ts +37 -0
  443. package/codeyam-cli/templates/chrome-extension-react/src/popup/App.tsx +12 -0
  444. package/codeyam-cli/templates/chrome-extension-react/src/popup/main.tsx +10 -0
  445. package/codeyam-cli/templates/chrome-extension-react/tsconfig.json +24 -0
  446. package/codeyam-cli/templates/chrome-extension-react/vite.config.ts +41 -0
  447. package/codeyam-cli/templates/codeyam-editor-claude.md +68 -0
  448. package/codeyam-cli/templates/editor-step-hook.py +231 -0
  449. package/codeyam-cli/templates/expo-react-native/MOBILE_SETUP.md +89 -0
  450. package/codeyam-cli/templates/expo-react-native/app/(tabs)/_layout.tsx +33 -0
  451. package/codeyam-cli/templates/expo-react-native/app/(tabs)/index.tsx +12 -0
  452. package/codeyam-cli/templates/expo-react-native/app/(tabs)/settings.tsx +12 -0
  453. package/codeyam-cli/templates/expo-react-native/app/_layout.tsx +12 -0
  454. package/codeyam-cli/templates/expo-react-native/app.json +18 -0
  455. package/codeyam-cli/templates/expo-react-native/babel.config.js +9 -0
  456. package/codeyam-cli/templates/expo-react-native/gitignore +12 -0
  457. package/codeyam-cli/templates/expo-react-native/global.css +3 -0
  458. package/codeyam-cli/templates/expo-react-native/lib/storage.ts +32 -0
  459. package/codeyam-cli/templates/expo-react-native/metro.config.js +6 -0
  460. package/codeyam-cli/templates/expo-react-native/nativewind-env.d.ts +1 -0
  461. package/codeyam-cli/templates/expo-react-native/package.json +37 -0
  462. package/codeyam-cli/templates/expo-react-native/tailwind.config.js +10 -0
  463. package/codeyam-cli/templates/expo-react-native/tsconfig.json +10 -0
  464. package/codeyam-cli/templates/hooks/staleness-check.sh +43 -0
  465. package/codeyam-cli/templates/isolation-route/next-app.tsx.template +80 -0
  466. package/codeyam-cli/templates/isolation-route/next-pages.tsx.template +79 -0
  467. package/codeyam-cli/templates/isolation-route/vite-react.tsx.template +78 -0
  468. package/codeyam-cli/templates/msw/browser-setup.ts.template +47 -0
  469. package/codeyam-cli/templates/msw/handler-router.ts.template +47 -0
  470. package/codeyam-cli/templates/msw/server-setup.ts.template +52 -0
  471. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_PATTERNS.md +308 -0
  472. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_UPGRADE.md +304 -0
  473. package/codeyam-cli/templates/nextjs-prisma-sqlite/DATABASE.md +112 -0
  474. package/codeyam-cli/templates/nextjs-prisma-sqlite/FEATURE_PATTERNS.md +37 -0
  475. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/api/todos/route.ts +17 -0
  476. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/codeyam-isolate/layout.tsx +12 -0
  477. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/globals.css +26 -0
  478. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/layout.tsx +34 -0
  479. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/lib/prisma.ts +24 -0
  480. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/page.tsx +10 -0
  481. package/codeyam-cli/templates/nextjs-prisma-sqlite/env +4 -0
  482. package/codeyam-cli/templates/nextjs-prisma-sqlite/eslint.config.mjs +11 -0
  483. package/codeyam-cli/templates/nextjs-prisma-sqlite/gitignore +64 -0
  484. package/codeyam-cli/templates/nextjs-prisma-sqlite/next.config.ts +14 -0
  485. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +38 -0
  486. package/codeyam-cli/templates/nextjs-prisma-sqlite/postcss.config.mjs +7 -0
  487. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/schema.prisma +27 -0
  488. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/seed.ts +40 -0
  489. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma.config.ts +12 -0
  490. package/codeyam-cli/templates/nextjs-prisma-sqlite/seed-adapter.ts +92 -0
  491. package/codeyam-cli/templates/nextjs-prisma-sqlite/tsconfig.json +34 -0
  492. package/codeyam-cli/templates/nextjs-prisma-sqlite/vitest.config.ts +13 -0
  493. package/codeyam-cli/templates/nextjs-prisma-supabase/SUPABASE_SETUP.md +104 -0
  494. package/codeyam-cli/templates/nextjs-prisma-supabase/app/api/todos/route.ts +17 -0
  495. package/codeyam-cli/templates/nextjs-prisma-supabase/app/globals.css +26 -0
  496. package/codeyam-cli/templates/nextjs-prisma-supabase/app/layout.tsx +34 -0
  497. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/prisma.ts +20 -0
  498. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/supabase.ts +12 -0
  499. package/codeyam-cli/templates/nextjs-prisma-supabase/app/page.tsx +10 -0
  500. package/codeyam-cli/templates/nextjs-prisma-supabase/env +9 -0
  501. package/codeyam-cli/templates/nextjs-prisma-supabase/eslint.config.mjs +11 -0
  502. package/codeyam-cli/templates/nextjs-prisma-supabase/gitignore +40 -0
  503. package/codeyam-cli/templates/nextjs-prisma-supabase/next.config.ts +11 -0
  504. package/codeyam-cli/templates/nextjs-prisma-supabase/package.json +36 -0
  505. package/codeyam-cli/templates/nextjs-prisma-supabase/postcss.config.mjs +7 -0
  506. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/schema.prisma +27 -0
  507. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/seed.ts +39 -0
  508. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma.config.ts +12 -0
  509. package/codeyam-cli/templates/nextjs-prisma-supabase/tsconfig.json +34 -0
  510. package/codeyam-cli/templates/prompts/conversation-guidance.txt +44 -0
  511. package/codeyam-cli/templates/prompts/conversation-prompt.txt +28 -0
  512. package/codeyam-cli/templates/prompts/interruption-prompt.txt +31 -0
  513. package/codeyam-cli/templates/prompts/stale-rules-prompt.txt +24 -0
  514. package/codeyam-cli/templates/rule-notification-hook.py +44 -17
  515. package/codeyam-cli/templates/rule-reflection-hook.py +25 -5
  516. package/codeyam-cli/templates/rules-instructions.md +34 -88
  517. package/codeyam-cli/templates/skills/codeyam-dev-mode/SKILL.md +237 -0
  518. package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +145 -0
  519. package/codeyam-cli/templates/{codeyam-memory.md → skills/codeyam-memory/SKILL.md} +220 -1
  520. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/deprecated-prompt.md +100 -0
  521. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/detect-deprecated-patterns.mjs +139 -0
  522. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/find-exports.mjs +52 -0
  523. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/misleading-api-prompt.md +117 -0
  524. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/read-json-field.mjs +61 -0
  525. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/ripgrep-fallback.mjs +155 -0
  526. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/analyze-prompt.md +46 -0
  527. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/cleanup.mjs +13 -0
  528. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/filter-session.mjs +95 -0
  529. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/preprocess.mjs +160 -0
  530. package/codeyam-cli/templates/{codeyam-new-rule.md → skills/codeyam-new-rule/SKILL.md} +0 -2
  531. package/package.json +22 -15
  532. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +22 -4
  533. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  534. package/packages/ai/src/lib/completionCall.js +10 -7
  535. package/packages/ai/src/lib/completionCall.js.map +1 -1
  536. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +234 -3
  537. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  538. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js +54 -0
  539. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js.map +1 -0
  540. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js +34 -0
  541. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js.map +1 -0
  542. package/packages/ai/src/lib/dataStructureChunking.js +9 -5
  543. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -1
  544. package/packages/ai/src/lib/generateEntityScenarioData.js +57 -2
  545. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  546. package/packages/ai/src/lib/generateExecutionFlows.js +81 -11
  547. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
  548. package/packages/analyze/src/lib/ProjectAnalyzer.js +13 -4
  549. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  550. package/packages/analyze/src/lib/asts/index.js +4 -2
  551. package/packages/analyze/src/lib/asts/index.js.map +1 -1
  552. package/packages/analyze/src/lib/asts/nodes/getNodeType.js +1 -0
  553. package/packages/analyze/src/lib/asts/nodes/getNodeType.js.map +1 -1
  554. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +8 -1
  555. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  556. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +0 -5
  557. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  558. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +9 -0
  559. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  560. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +54 -27
  561. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -1
  562. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +65 -0
  563. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  564. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +0 -40
  565. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -1
  566. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +18 -4
  567. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  568. package/packages/database/index.js +1 -0
  569. package/packages/database/index.js.map +1 -1
  570. package/packages/database/src/lib/kysely/db.js +5 -0
  571. package/packages/database/src/lib/kysely/db.js.map +1 -1
  572. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +65 -0
  573. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  574. package/packages/database/src/lib/loadCommits.js +23 -13
  575. package/packages/database/src/lib/loadCommits.js.map +1 -1
  576. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
  577. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  578. package/packages/database/src/lib/updateCommitMetadata.js +100 -89
  579. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  580. package/packages/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  581. package/packages/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  582. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  583. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  584. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
  585. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
  586. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  587. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  588. package/packages/types/src/enums/ProjectFramework.js +2 -0
  589. package/packages/types/src/enums/ProjectFramework.js.map +1 -1
  590. package/packages/utils/src/lib/fs/rsyncCopy.js +6 -2
  591. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  592. package/scripts/npm-post-install.cjs +34 -0
  593. package/codeyam-cli/src/commands/detect-universal-mocks.js +0 -120
  594. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +0 -1
  595. package/codeyam-cli/src/commands/list.js +0 -31
  596. package/codeyam-cli/src/commands/list.js.map +0 -1
  597. package/codeyam-cli/src/commands/webapp-info.js +0 -146
  598. package/codeyam-cli/src/commands/webapp-info.js.map +0 -1
  599. package/codeyam-cli/src/utils/universal-mocks.js +0 -152
  600. package/codeyam-cli/src/utils/universal-mocks.js.map +0 -1
  601. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CQ-wF3Tv.js +0 -1
  602. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-CUSfu6W5.js +0 -34
  603. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-BXIaK8Md.js +0 -11
  604. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-B931Etud.js +0 -21
  605. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BoPM6KnE.js +0 -1
  606. package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-oVRMh9Hl.js +0 -16
  607. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-BjyzwQ7H.js +0 -6
  608. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DxuyDmZA.js +0 -6
  609. package/codeyam-cli/src/webserver/build/client/assets/git-D6jOlDQw.js +0 -15
  610. package/codeyam-cli/src/webserver/build/client/assets/globals-CKT08Djd.css +0 -1
  611. package/codeyam-cli/src/webserver/build/client/assets/labs-BbGyC1RY.js +0 -1
  612. package/codeyam-cli/src/webserver/build/client/assets/manifest-fd06e67a.js +0 -1
  613. package/codeyam-cli/src/webserver/build/client/assets/memory-BXebUPaL.js +0 -78
  614. package/codeyam-cli/src/webserver/build/client/assets/root-CvNE9MaT.js +0 -62
  615. package/codeyam-cli/src/webserver/build/client/assets/settings-DCIzBZM9.js +0 -1
  616. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-D7TLbP3M.js +0 -1
  617. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-Ce5rnai3.js +0 -2
  618. package/codeyam-cli/src/webserver/build/server/assets/index-DDr9Cp9M.js +0 -1
  619. package/codeyam-cli/src/webserver/build/server/assets/server-build-DjwiujaU.js +0 -257
  620. package/codeyam-cli/templates/codeyam-stop-hook.sh +0 -284
  621. package/scripts/finalize-analyzer.cjs +0 -13
  622. /package/codeyam-cli/templates/{codeyam-diagnose.md → commands/codeyam-diagnose.md} +0 -0
  623. /package/codeyam-cli/templates/{codeyam-debug.md → skills/codeyam-debug/SKILL.md} +0 -0
  624. /package/codeyam-cli/templates/{codeyam-setup.md → skills/codeyam-setup/SKILL.md} +0 -0
  625. /package/codeyam-cli/templates/{codeyam-sim.md → skills/codeyam-sim/SKILL.md} +0 -0
  626. /package/codeyam-cli/templates/{codeyam-test.md → skills/codeyam-test/SKILL.md} +0 -0
  627. /package/codeyam-cli/templates/{codeyam-verify.md → skills/codeyam-verify/SKILL.md} +0 -0
@@ -0,0 +1,104 @@
1
+ # Supabase + Prisma 7 Setup
2
+
3
+ This project uses Prisma 7 with PostgreSQL via Supabase.
4
+
5
+ ## Quick start
6
+
7
+ 1. Create a Supabase project at https://supabase.com/dashboard
8
+ 2. Copy `.env` and fill in your credentials (see comments in the file)
9
+ 3. Run `npm run db:push` to create tables
10
+ 4. Run `npm run db:seed` to populate demo data
11
+
12
+ ## How it works
13
+
14
+ Prisma 7 requires a **driver adapter**. This project uses `@prisma/adapter-pg` with the `pg` package to connect to Supabase's PostgreSQL.
15
+
16
+ The singleton in `app/lib/prisma.ts` is already configured. Import it in your code:
17
+
18
+ ```typescript
19
+ import { prisma } from '@/app/lib/prisma';
20
+ ```
21
+
22
+ For Supabase-specific features (auth, realtime, storage), use the Supabase client:
23
+
24
+ ```typescript
25
+ import { supabase } from '@/app/lib/supabase';
26
+ ```
27
+
28
+ ## Important: do NOT change these settings
29
+
30
+ - **Generator must be `prisma-client-js`** (not `prisma-client`). The `prisma-client`
31
+ generator requires a custom output path that breaks Turbopack import resolution.
32
+ - **Do NOT add an `output` field** to the generator. The default output to
33
+ `node_modules/@prisma/client` works with standard imports everywhere.
34
+ - **Do NOT add `url` to the datasource block** in `schema.prisma`. Prisma 7
35
+ moved the URL to `prisma.config.ts`. Adding it to the schema causes a validation error.
36
+ - **Keep `turbopack: { root: "." }`** in `next.config.ts`. Without it,
37
+ Turbopack may infer a parent directory as root and break imports.
38
+ - **Always run `npx prisma generate`** after `npx prisma db push` (or use
39
+ `npm run db:push` which does both). Without this, the client module is missing.
40
+
41
+ ## Getting your Supabase credentials
42
+
43
+ 1. Go to https://supabase.com/dashboard and select your project
44
+ 2. **SUPABASE_URL** and **SUPABASE_ANON_KEY**: Project Settings → API
45
+ 3. **DATABASE_URL**: Project Settings → Database → Connection string (URI)
46
+ - For serverless (Vercel, etc.): use the "Transaction" pooler connection string (port 6543)
47
+ - For long-running servers: use the "Session" pooler connection string (port 5432)
48
+
49
+ ## Common tasks
50
+
51
+ ```bash
52
+ # Edit your schema
53
+ vim prisma/schema.prisma
54
+
55
+ # Push schema changes to the database (also regenerates client)
56
+ npm run db:push
57
+
58
+ # Seed the database
59
+ npm run db:seed
60
+
61
+ # Reset the database (drops all tables, re-creates, re-seeds)
62
+ npm run db:reset
63
+
64
+ # Open Prisma Studio (database browser)
65
+ npx prisma studio
66
+ ```
67
+
68
+ ## Writing seed scripts
69
+
70
+ Seed scripts run outside of Next.js, so they must create their own PrismaClient
71
+ with the adapter (they cannot import from `@/app/lib/prisma`). See `prisma/seed.ts`
72
+ for the correct pattern.
73
+
74
+ ## Writing API routes
75
+
76
+ ```typescript
77
+ // app/api/todos/route.ts
78
+ import { prisma } from '@/app/lib/prisma';
79
+
80
+ export async function GET() {
81
+ const todos = await prisma.todo.findMany({
82
+ orderBy: { createdAt: 'desc' },
83
+ });
84
+ return Response.json(todos);
85
+ }
86
+
87
+ export async function POST(request: Request) {
88
+ const { title } = await request.json();
89
+ const todo = await prisma.todo.create({ data: { title } });
90
+ return Response.json(todo);
91
+ }
92
+ ```
93
+
94
+ ## Deployment
95
+
96
+ This template is ready to deploy to Vercel:
97
+
98
+ 1. Push your code to GitHub
99
+ 2. Import the repo in Vercel
100
+ 3. Add the same environment variables from `.env` to Vercel's project settings
101
+ 4. Deploy
102
+
103
+ The DATABASE_URL should use Supabase's **Transaction** pooler connection string
104
+ (port 6543) for serverless environments like Vercel.
@@ -0,0 +1,17 @@
1
+ // Example API route using Prisma.
2
+ // Import prisma from the singleton — do NOT create a new PrismaClient here.
3
+
4
+ import { prisma } from '@/app/lib/prisma';
5
+
6
+ export async function GET() {
7
+ const todos = await prisma.todo.findMany({
8
+ orderBy: { createdAt: 'desc' },
9
+ });
10
+ return Response.json(todos);
11
+ }
12
+
13
+ export async function POST(request: Request) {
14
+ const { title } = await request.json();
15
+ const todo = await prisma.todo.create({ data: { title } });
16
+ return Response.json(todo);
17
+ }
@@ -0,0 +1,26 @@
1
+ @import "tailwindcss";
2
+
3
+ :root {
4
+ --background: #ffffff;
5
+ --foreground: #171717;
6
+ }
7
+
8
+ @theme inline {
9
+ --color-background: var(--background);
10
+ --color-foreground: var(--foreground);
11
+ --font-sans: var(--font-geist-sans);
12
+ --font-mono: var(--font-geist-mono);
13
+ }
14
+
15
+ @media (prefers-color-scheme: dark) {
16
+ :root {
17
+ --background: #0a0a0a;
18
+ --foreground: #ededed;
19
+ }
20
+ }
21
+
22
+ body {
23
+ background: var(--background);
24
+ color: var(--foreground);
25
+ font-family: Arial, Helvetica, sans-serif;
26
+ }
@@ -0,0 +1,34 @@
1
+ import type { Metadata } from 'next';
2
+ import { Geist, Geist_Mono } from 'next/font/google';
3
+ import './globals.css';
4
+
5
+ const geistSans = Geist({
6
+ variable: '--font-geist-sans',
7
+ subsets: ['latin'],
8
+ });
9
+
10
+ const geistMono = Geist_Mono({
11
+ variable: '--font-geist-mono',
12
+ subsets: ['latin'],
13
+ });
14
+
15
+ export const metadata: Metadata = {
16
+ title: 'CodeYam App',
17
+ description: 'Built with CodeYam Editor',
18
+ };
19
+
20
+ export default function RootLayout({
21
+ children,
22
+ }: Readonly<{
23
+ children: React.ReactNode;
24
+ }>) {
25
+ return (
26
+ <html lang="en">
27
+ <body
28
+ className={`${geistSans.variable} ${geistMono.variable} antialiased`}
29
+ >
30
+ {children}
31
+ </body>
32
+ </html>
33
+ );
34
+ }
@@ -0,0 +1,20 @@
1
+ // Prisma 7 requires a driver adapter for database access.
2
+ // This file uses the pg adapter for Supabase PostgreSQL.
3
+ //
4
+ // Usage in API routes and server components:
5
+ // import { prisma } from "@/app/lib/prisma";
6
+ // const items = await prisma.todo.findMany();
7
+
8
+ import { PrismaClient } from '@prisma/client';
9
+ import { PrismaPg } from '@prisma/adapter-pg';
10
+
11
+ const globalForPrisma = globalThis as unknown as { prisma: PrismaClient };
12
+
13
+ const connectionString = process.env.DATABASE_URL!;
14
+ const adapter = new PrismaPg({ connectionString });
15
+
16
+ export const prisma = globalForPrisma.prisma ?? new PrismaClient({ adapter });
17
+
18
+ if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma;
19
+
20
+ export default prisma;
@@ -0,0 +1,12 @@
1
+ // Supabase client for auth, realtime, and storage.
2
+ // For database queries, use Prisma instead (see prisma.ts).
3
+ //
4
+ // Usage:
5
+ // import { supabase } from "@/app/lib/supabase";
6
+
7
+ import { createClient } from '@supabase/supabase-js';
8
+
9
+ const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL!;
10
+ const supabaseAnonKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!;
11
+
12
+ export const supabase = createClient(supabaseUrl, supabaseAnonKey);
@@ -0,0 +1,10 @@
1
+ export default function Home() {
2
+ return (
3
+ <main className="min-h-screen flex items-center justify-center">
4
+ <div className="text-center">
5
+ <h1 className="text-4xl font-bold mb-4">Welcome</h1>
6
+ <p className="text-gray-600">Your app is ready. Start building!</p>
7
+ </div>
8
+ </main>
9
+ );
10
+ }
@@ -0,0 +1,9 @@
1
+ # Supabase project credentials
2
+ # Get these from: https://supabase.com/dashboard → Project Settings → API
3
+ NEXT_PUBLIC_SUPABASE_URL=https://YOUR_PROJECT_ID.supabase.co
4
+ NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key-here
5
+
6
+ # Database connection string (Supabase PostgreSQL)
7
+ # Get this from: Supabase Dashboard → Project Settings → Database → Connection string (URI)
8
+ # Use the "Transaction" connection string for serverless environments (Vercel, etc.)
9
+ DATABASE_URL=postgresql://postgres.YOUR_PROJECT_ID:YOUR_PASSWORD@aws-0-us-east-1.pooler.supabase.com:6543/postgres
@@ -0,0 +1,11 @@
1
+ import { defineConfig, globalIgnores } from "eslint/config";
2
+ import nextVitals from "eslint-config-next/core-web-vitals";
3
+ import nextTs from "eslint-config-next/typescript";
4
+
5
+ const eslintConfig = defineConfig([
6
+ ...nextVitals,
7
+ ...nextTs,
8
+ globalIgnores([".next/**", "out/**", "build/**", "next-env.d.ts"]),
9
+ ]);
10
+
11
+ export default eslintConfig;
@@ -0,0 +1,40 @@
1
+ # dependencies
2
+ /node_modules
3
+ /.pnp
4
+ .pnp.*
5
+ .yarn/*
6
+ !.yarn/patches
7
+ !.yarn/plugins
8
+ !.yarn/releases
9
+ !.yarn/versions
10
+
11
+ # testing
12
+ /coverage
13
+
14
+ # next.js
15
+ /.next/
16
+ /out/
17
+
18
+ # production
19
+ /build
20
+
21
+ # misc
22
+ .DS_Store
23
+ *.pem
24
+
25
+ # debug
26
+ npm-debug.log*
27
+ yarn-debug.log*
28
+ yarn-error.log*
29
+ .pnpm-debug.log*
30
+
31
+ # env files (contains secrets)
32
+ .env
33
+ .env*.local
34
+
35
+ # vercel
36
+ .vercel
37
+
38
+ # typescript
39
+ *.tsbuildinfo
40
+ next-env.d.ts
@@ -0,0 +1,11 @@
1
+ import type { NextConfig } from 'next';
2
+
3
+ const nextConfig: NextConfig = {
4
+ turbopack: {
5
+ // Required: prevents Turbopack from inferring a parent directory as root
6
+ // when .codeyam/ exists above the project (which breaks import resolution)
7
+ root: '.',
8
+ },
9
+ };
10
+
11
+ export default nextConfig;
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "codeyam-project",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "scripts": {
6
+ "dev": "next dev --turbopack",
7
+ "build": "next build",
8
+ "start": "next start",
9
+ "lint": "eslint",
10
+ "db:push": "npx prisma db push && npx prisma generate",
11
+ "db:seed": "npx tsx prisma/seed.ts",
12
+ "db:reset": "npx prisma migrate reset --force"
13
+ },
14
+ "dependencies": {
15
+ "@prisma/adapter-pg": "^7.4.1",
16
+ "@prisma/client": "^7.4.1",
17
+ "@supabase/supabase-js": "^2.49.4",
18
+ "next": "^15.3.3",
19
+ "pg": "^8.16.0",
20
+ "prisma": "^7.4.1",
21
+ "react": "^19.1.0",
22
+ "react-dom": "^19.1.0"
23
+ },
24
+ "devDependencies": {
25
+ "@tailwindcss/postcss": "^4",
26
+ "@types/node": "^20",
27
+ "@types/pg": "^8",
28
+ "@types/react": "^19",
29
+ "@types/react-dom": "^19",
30
+ "eslint": "^9",
31
+ "eslint-config-next": "^15.3.3",
32
+ "tailwindcss": "^4",
33
+ "tsx": "^4.19.4",
34
+ "typescript": "^5"
35
+ }
36
+ }
@@ -0,0 +1,7 @@
1
+ const config = {
2
+ plugins: {
3
+ "@tailwindcss/postcss": {},
4
+ },
5
+ };
6
+
7
+ export default config;
@@ -0,0 +1,27 @@
1
+ // Prisma 7 with PostgreSQL via Supabase.
2
+ //
3
+ // IMPORTANT: Use "prisma-client-js" (NOT "prisma-client").
4
+ // The "prisma-client" generator requires a custom output path which
5
+ // breaks Turbopack import resolution and seed script imports.
6
+ // "prisma-client-js" outputs to node_modules/@prisma/client which
7
+ // works everywhere with standard imports.
8
+
9
+ generator client {
10
+ provider = "prisma-client-js"
11
+ }
12
+
13
+ datasource db {
14
+ provider = "postgresql"
15
+ }
16
+
17
+ // ──────────────────────────────────────────────
18
+ // Replace these placeholder models with your own.
19
+ // After editing, run: npm run db:push
20
+ // ──────────────────────────────────────────────
21
+
22
+ model Todo {
23
+ id Int @id @default(autoincrement())
24
+ title String
25
+ completed Boolean @default(false)
26
+ createdAt DateTime @default(now())
27
+ }
@@ -0,0 +1,39 @@
1
+ // Seed script for populating the database with demo data.
2
+ //
3
+ // Run with: npx tsx prisma/seed.ts
4
+ // Or: npm run db:seed
5
+ //
6
+ // IMPORTANT: This file must use the same adapter pattern as app/lib/prisma.ts.
7
+ // Do NOT use `new PrismaClient()` without the adapter — Prisma 7 requires it.
8
+
9
+ import 'dotenv/config';
10
+ import { PrismaClient } from '@prisma/client';
11
+ import { PrismaPg } from '@prisma/adapter-pg';
12
+
13
+ const connectionString = process.env.DATABASE_URL!;
14
+ const adapter = new PrismaPg({ connectionString });
15
+ const prisma = new PrismaClient({ adapter });
16
+
17
+ async function main() {
18
+ // Clear existing data
19
+ await prisma.todo.deleteMany();
20
+
21
+ // Seed with demo data
22
+ await prisma.todo.createMany({
23
+ data: [
24
+ { title: 'Set up the project', completed: true },
25
+ { title: 'Build the first feature' },
26
+ { title: 'Add more scenarios' },
27
+ ],
28
+ });
29
+
30
+ const count = await prisma.todo.count();
31
+ console.log(`Seeded ${count} todos`);
32
+ }
33
+
34
+ main()
35
+ .then(() => prisma.$disconnect())
36
+ .catch((e) => {
37
+ console.error(e);
38
+ process.exit(1);
39
+ });
@@ -0,0 +1,12 @@
1
+ import 'dotenv/config';
2
+ import { defineConfig } from 'prisma/config';
3
+
4
+ export default defineConfig({
5
+ schema: 'prisma/schema.prisma',
6
+ migrations: {
7
+ path: 'prisma/migrations',
8
+ },
9
+ datasource: {
10
+ url: process.env['DATABASE_URL'],
11
+ },
12
+ });
@@ -0,0 +1,34 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2017",
4
+ "lib": ["dom", "dom.iterable", "esnext"],
5
+ "allowJs": true,
6
+ "skipLibCheck": true,
7
+ "strict": true,
8
+ "noEmit": true,
9
+ "esModuleInterop": true,
10
+ "module": "esnext",
11
+ "moduleResolution": "bundler",
12
+ "resolveJsonModule": true,
13
+ "isolatedModules": true,
14
+ "jsx": "react-jsx",
15
+ "incremental": true,
16
+ "plugins": [
17
+ {
18
+ "name": "next"
19
+ }
20
+ ],
21
+ "paths": {
22
+ "@/*": ["./*"]
23
+ }
24
+ },
25
+ "include": [
26
+ "next-env.d.ts",
27
+ "**/*.ts",
28
+ "**/*.tsx",
29
+ ".next/types/**/*.ts",
30
+ ".next/dev/types/**/*.ts",
31
+ "**/*.mts"
32
+ ],
33
+ "exclude": ["node_modules"]
34
+ }
@@ -0,0 +1,44 @@
1
+ ### What to look for
2
+
3
+ Read the full transcript for these signals:
4
+
5
+ **User corrections or redirections**
6
+ - "no", "actually", "that's not right", "you need to also...", "you missed..."
7
+ - User provides information Claude didn't know or couldn't infer from code
8
+ - User reminds Claude of a step, pattern, or relationship
9
+ - A correction about something other than current task requirements is ALWAYS rule-worthy
10
+
11
+ **Investigation and debugging**
12
+ - Claude tried multiple approaches, read logs, or tested hypotheses
13
+ - Investigation revealed non-obvious behavior or root causes
14
+ - Debugging strategies that worked (or didn't) for specific areas
15
+
16
+ **Architecture not evident in code**
17
+ - Files that must change together (templates + installation, routes + registration)
18
+ - Complex files, data flows, pipelines, or system interactions that would benefit from an overview
19
+
20
+ **Commands and workflows**
21
+ - Specific commands or flags needed for this area
22
+ - Order of operations that matters ("must run X before Y")
23
+
24
+ **Ignore:**
25
+ - Corrections to requirements for the current feature or bug
26
+ - Confusion isolated to the current work session (won't recur)
27
+
28
+ ### Before creating a rule
29
+
30
+ **Critical check:** Read the actual source files that were modified. If the code already contains comments, guard patterns, or tests that explain the insight, the code is the documentation — skip the rule unless the file is complex and you've made a mistake or the user had to interrupt and correct you.
31
+
32
+ Show your thinking before proceeding with creating or updating rules.
33
+
34
+ ### How to write rules
35
+
36
+ **Rules must be forward-looking, not historical.** You are reading a session transcript where bugs were found and fixed, but the rule should describe the *current* codebase, not tell the story of what went wrong, what was fixed, etc. The code has already been updated — past bugs are no longer relevant.
37
+
38
+ - **DO**: State constraints and requirements ("this script MUST copy directories recursively, not just files")
39
+ - **DO**: Explain *why* something matters ("errors in prompt copying are silently caught, so missing directories won't surface as errors")
40
+ - **DON'T**: Describe what old code did ("the old version only copied files, causing X to be missing")
41
+ - **DON'T**: Narrate the debugging journey ("we discovered that the catch block was swallowing errors")
42
+ - **DON'T**: Note issues or known gaps if they are actively being worked on!
43
+
44
+ Think of the reader as a developer about to modify these files. They need to know what constraints to preserve and what pitfalls to watch for — not what happened in the past if it is no longer relevant.
@@ -0,0 +1,28 @@
1
+ FIRST: Read `.codeyam/rules/instructions.md` — it contains the required format, rule placement via the rule-path API, and an example rule. You MUST follow this format exactly when creating or editing rules.
2
+
3
+ THEN: Read the file {{CONTEXT_FILE}} and follow the instructions inside.
4
+
5
+ Analyze the conversation transcript for rule-worthy learnings:
6
+ - User corrections, redirections, or information Claude didn't know
7
+ - Investigation results and debugging knowledge
8
+ - Architecture and relationships not obvious from code
9
+ - Commands, workflows, and processes
10
+
11
+ Access and read files in the repo or in the .claude folder as needed.
12
+
13
+ Create new rules only when the learnings meet the guidelines in the context file.
14
+
15
+ IMPORTANT: If you create ANY rule files, write a short summary to `{{NOTIFICATION_FILE}}`. The summary should list each rule change, e.g.:
16
+ ```
17
+ The background rule-reflection agent created the following rules:
18
+ - Created `.claude/rules/tooling/new-pattern.md` — documents X pattern
19
+ ```
20
+ Only write the notification file when rules are created.
21
+
22
+ The project root is {{PROJECT_DIR}}
23
+
24
+ CRITICAL: All rule files MUST be written to {{PROJECT_DIR}}/.claude/rules/ (the project directory). Always use the full absolute path when writing rule files.
25
+
26
+ CRITICAL: Before writing any rule file, you MUST run the rule-path command to determine the correct subdirectory:
27
+ codeyam memory rule-path path/one path/two
28
+ Pass all paths from your frontmatter. The command returns the correct .claude/rules/ subdirectory as JSON. Do NOT guess the placement from the first path — rules with paths spanning multiple directories belong at their common ancestor.
@@ -0,0 +1,31 @@
1
+ FIRST: Read `.codeyam/rules/instructions.md` — it contains the required format, rule placement via the rule-path API, and an example rule. You MUST follow this format exactly when creating or editing rules.
2
+
3
+ THEN: Read the file {{CONTEXT_FILE}} and follow the instructions inside.
4
+
5
+ The user interrupted Claude mid-response — a strong signal of confusion or misunderstanding.
6
+ Analyze both Claude's interrupted output and the user's follow-up to determine what went wrong.
7
+
8
+ Look for:
9
+ - Claude heading in a wrong direction that the user had to correct
10
+ - Misunderstanding of project conventions, architecture, or dependencies
11
+ - Missing context that caused Claude to make incorrect assumptions
12
+ - Patterns that would recur in future sessions without a rule
13
+
14
+ Access and read files in the repo or in the .claude folder as needed.
15
+
16
+ Create new rules only when the learnings meet the guidelines in the context file.
17
+
18
+ IMPORTANT: If you create ANY rule files, write a short summary to `{{NOTIFICATION_FILE}}`. The summary should list each rule change, e.g.:
19
+ ```
20
+ The background rule-reflection agent created the following rules:
21
+ - Created `.claude/rules/tooling/new-pattern.md` — documents X pattern
22
+ ```
23
+ Only write the notification file when rules are created.
24
+
25
+ The project root is {{PROJECT_DIR}}
26
+
27
+ CRITICAL: All rule files MUST be written to {{PROJECT_DIR}}/.claude/rules/ (the project directory). Always use the full absolute path when writing rule files.
28
+
29
+ CRITICAL: Before writing any rule file, you MUST run the rule-path command to determine the correct subdirectory:
30
+ codeyam memory rule-path path/one path/two
31
+ Pass all paths from your frontmatter. The command returns the correct .claude/rules/ subdirectory as JSON. Do NOT guess the placement from the first path — rules with paths spanning multiple directories belong at their common ancestor.
@@ -0,0 +1,24 @@
1
+ FIRST: Read `.codeyam/rules/instructions.md` — it contains the required format, rule placement via the rule-path API, and an example rule. You MUST follow this format exactly when creating or editing rules.
2
+
3
+ THEN: Read the file {{CONTEXT_FILE}} and follow the instructions inside.
4
+
5
+ For each stale rule:
6
+ 1. Review the inline rule content and the diff to determine if the rule needs updating
7
+ 2. If it needs updating, edit the rule file in .claude/rules/ — also trim prose and unnecessary headers (most rules should be a few bullets)
8
+ 3. Run `codeyam memory touch <rule-path1> <rule-path2> ...` with the SPECIFIC rule paths you reviewed to mark them as audited in .claude/codeyam-rule-state.json
9
+ Example: `codeyam memory touch tooling/cli-build.md packages/ai/execution-flow-prioritization.md`
10
+
11
+ Write a summary to `{{NOTIFICATION_FILE}}` listing each action taken, even if you only ran `codeyam memory touch` without content changes. Example:
12
+ ```
13
+ The background rule-reflection agent updated the following rules:
14
+ - Reviewed `.claude/rules/example.md` — no content changes, ran `codeyam memory touch`
15
+ - Created `.claude/rules/tooling/new-pattern.md` — documents X pattern
16
+ ```
17
+
18
+ The project root is {{PROJECT_DIR}}
19
+
20
+ CRITICAL: All rule files MUST be written to {{PROJECT_DIR}}/.claude/rules/ (the project directory), NOT ~/.claude/rules/ (the user home directory). Always use the full absolute path when writing rule files.
21
+
22
+ CRITICAL: Before writing any rule file, you MUST run the rule-path command to determine the correct subdirectory:
23
+ codeyam memory rule-path path/one path/two
24
+ Pass all paths from your frontmatter. The command returns the correct .claude/rules/ subdirectory as JSON. Do NOT guess the placement from the first path — rules with paths spanning multiple directories belong at their common ancestor.