@codeyam/codeyam-cli 0.1.0-staging.2ea44f6 → 0.1.0-staging.30dc541

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 (410) 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 +3 -3
  4. package/analyzer-template/packages/ai/package.json +1 -1
  5. package/analyzer-template/packages/aws/package.json +1 -1
  6. package/analyzer-template/packages/database/package.json +1 -1
  7. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +99 -0
  8. package/analyzer-template/packages/database/src/lib/loadEntities.ts +0 -6
  9. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +0 -65
  10. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +8 -0
  11. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -1
  12. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +101 -0
  13. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
  14. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  15. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +0 -6
  16. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  17. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  18. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +0 -25
  19. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  20. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  21. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  22. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js +2 -0
  23. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js.map +1 -1
  24. package/analyzer-template/packages/types/src/enums/ProjectFramework.ts +2 -0
  25. package/analyzer-template/packages/ui-components/package.json +1 -1
  26. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  27. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  28. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js +2 -0
  29. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js.map +1 -1
  30. package/codeyam-cli/src/cli.js +24 -0
  31. package/codeyam-cli/src/cli.js.map +1 -1
  32. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js +51 -0
  33. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js.map +1 -0
  34. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js +56 -0
  35. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js.map +1 -0
  36. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js +101 -47
  37. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js.map +1 -1
  38. package/codeyam-cli/src/commands/editor.js +3077 -509
  39. package/codeyam-cli/src/commands/editor.js.map +1 -1
  40. package/codeyam-cli/src/commands/editorIsolateArgs.js +25 -0
  41. package/codeyam-cli/src/commands/editorIsolateArgs.js.map +1 -0
  42. package/codeyam-cli/src/commands/init.js +69 -34
  43. package/codeyam-cli/src/commands/init.js.map +1 -1
  44. package/codeyam-cli/src/commands/telemetry.js +37 -0
  45. package/codeyam-cli/src/commands/telemetry.js.map +1 -0
  46. package/codeyam-cli/src/data/techStacks.js +77 -0
  47. package/codeyam-cli/src/data/techStacks.js.map +1 -0
  48. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js +173 -0
  49. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js.map +1 -0
  50. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js +46 -0
  51. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js.map +1 -0
  52. package/codeyam-cli/src/utils/__tests__/editorApi.test.js +18 -8
  53. package/codeyam-cli/src/utils/__tests__/editorApi.test.js.map +1 -1
  54. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +2201 -1
  55. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -1
  56. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js +76 -0
  57. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js.map +1 -0
  58. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js +137 -0
  59. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js.map +1 -0
  60. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js +100 -0
  61. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js.map +1 -0
  62. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js +152 -3
  63. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js.map +1 -1
  64. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js +76 -3
  65. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js.map +1 -1
  66. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js +381 -0
  67. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js.map +1 -0
  68. package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js +67 -0
  69. package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js.map +1 -0
  70. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js +140 -12
  71. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js.map +1 -1
  72. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js +238 -2
  73. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js.map +1 -1
  74. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js +202 -1
  75. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js.map +1 -1
  76. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js +435 -0
  77. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js.map +1 -0
  78. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js +191 -5
  79. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js.map +1 -1
  80. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js +153 -0
  81. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js.map +1 -0
  82. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js +139 -0
  83. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js.map +1 -0
  84. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js +291 -0
  85. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js.map +1 -0
  86. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +1437 -2
  87. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -1
  88. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js +280 -0
  89. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js.map +1 -0
  90. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js +143 -0
  91. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js.map +1 -0
  92. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js +66 -0
  93. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js.map +1 -0
  94. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js +53 -0
  95. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js.map +1 -0
  96. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +641 -45
  97. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -1
  98. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js +177 -0
  99. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js.map +1 -0
  100. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js +122 -0
  101. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js.map +1 -0
  102. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js +129 -0
  103. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js.map +1 -0
  104. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js +118 -0
  105. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js.map +1 -0
  106. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js +284 -0
  107. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js.map +1 -0
  108. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +649 -223
  109. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -1
  110. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +14 -5
  111. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  112. package/codeyam-cli/src/utils/__tests__/telemetry.test.js +159 -0
  113. package/codeyam-cli/src/utils/__tests__/telemetry.test.js.map +1 -0
  114. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js +51 -0
  115. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js.map +1 -0
  116. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js +142 -0
  117. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js.map +1 -0
  118. package/codeyam-cli/src/utils/analysisRunner.js +3 -1
  119. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  120. package/codeyam-cli/src/utils/analyzer.js +9 -0
  121. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  122. package/codeyam-cli/src/utils/analyzerFinalization.js +100 -0
  123. package/codeyam-cli/src/utils/analyzerFinalization.js.map +1 -0
  124. package/codeyam-cli/src/utils/backgroundServer.js +93 -17
  125. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  126. package/codeyam-cli/src/utils/database.js +37 -2
  127. package/codeyam-cli/src/utils/database.js.map +1 -1
  128. package/codeyam-cli/src/utils/editorApi.js +11 -5
  129. package/codeyam-cli/src/utils/editorApi.js.map +1 -1
  130. package/codeyam-cli/src/utils/editorAudit.js +410 -6
  131. package/codeyam-cli/src/utils/editorAudit.js.map +1 -1
  132. package/codeyam-cli/src/utils/editorBroadcastViewport.js +26 -0
  133. package/codeyam-cli/src/utils/editorBroadcastViewport.js.map +1 -0
  134. package/codeyam-cli/src/utils/editorDeleteScenario.js +67 -0
  135. package/codeyam-cli/src/utils/editorDeleteScenario.js.map +1 -0
  136. package/codeyam-cli/src/utils/editorDevServer.js +89 -1
  137. package/codeyam-cli/src/utils/editorDevServer.js.map +1 -1
  138. package/codeyam-cli/src/utils/editorEntityChangeStatus.js +13 -7
  139. package/codeyam-cli/src/utils/editorEntityChangeStatus.js.map +1 -1
  140. package/codeyam-cli/src/utils/editorEntityHelpers.js +144 -0
  141. package/codeyam-cli/src/utils/editorEntityHelpers.js.map +1 -0
  142. package/codeyam-cli/src/utils/editorGuard.js +36 -0
  143. package/codeyam-cli/src/utils/editorGuard.js.map +1 -0
  144. package/codeyam-cli/src/utils/editorImageVerifier.js +45 -10
  145. package/codeyam-cli/src/utils/editorImageVerifier.js.map +1 -1
  146. package/codeyam-cli/src/utils/editorJournal.js +78 -3
  147. package/codeyam-cli/src/utils/editorJournal.js.map +1 -1
  148. package/codeyam-cli/src/utils/editorLoaderHelpers.js +72 -1
  149. package/codeyam-cli/src/utils/editorLoaderHelpers.js.map +1 -1
  150. package/codeyam-cli/src/utils/editorMigration.js +224 -0
  151. package/codeyam-cli/src/utils/editorMigration.js.map +1 -0
  152. package/codeyam-cli/src/utils/editorPreview.js +43 -2
  153. package/codeyam-cli/src/utils/editorPreview.js.map +1 -1
  154. package/codeyam-cli/src/utils/editorRecapture.js +109 -0
  155. package/codeyam-cli/src/utils/editorRecapture.js.map +1 -0
  156. package/codeyam-cli/src/utils/editorScenarioSwitch.js +134 -0
  157. package/codeyam-cli/src/utils/editorScenarioSwitch.js.map +1 -0
  158. package/codeyam-cli/src/utils/editorScenarios.js +488 -0
  159. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -1
  160. package/codeyam-cli/src/utils/editorSeedAdapter.js +422 -0
  161. package/codeyam-cli/src/utils/editorSeedAdapter.js.map +1 -0
  162. package/codeyam-cli/src/utils/editorShouldRevalidate.js +21 -0
  163. package/codeyam-cli/src/utils/editorShouldRevalidate.js.map +1 -0
  164. package/codeyam-cli/src/utils/entityChangeStatus.js +89 -21
  165. package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -1
  166. package/codeyam-cli/src/utils/entityChangeStatus.server.js +97 -8
  167. package/codeyam-cli/src/utils/entityChangeStatus.server.js.map +1 -1
  168. package/codeyam-cli/src/utils/fileWatcher.js +38 -0
  169. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  170. package/codeyam-cli/src/utils/glossaryAdd.js +74 -0
  171. package/codeyam-cli/src/utils/glossaryAdd.js.map +1 -0
  172. package/codeyam-cli/src/utils/install-skills.js +14 -0
  173. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  174. package/codeyam-cli/src/utils/parseRegisterArg.js +31 -0
  175. package/codeyam-cli/src/utils/parseRegisterArg.js.map +1 -0
  176. package/codeyam-cli/src/utils/progress.js +2 -2
  177. package/codeyam-cli/src/utils/progress.js.map +1 -1
  178. package/codeyam-cli/src/utils/routePatternMatching.js +129 -0
  179. package/codeyam-cli/src/utils/routePatternMatching.js.map +1 -0
  180. package/codeyam-cli/src/utils/scenarioCoverage.js +77 -0
  181. package/codeyam-cli/src/utils/scenarioCoverage.js.map +1 -0
  182. package/codeyam-cli/src/utils/scenariosManifest.js +269 -74
  183. package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -1
  184. package/codeyam-cli/src/utils/serverState.js +30 -0
  185. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  186. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +14 -5
  187. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  188. package/codeyam-cli/src/utils/simulationGateMiddleware.js +17 -1
  189. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -1
  190. package/codeyam-cli/src/utils/slugUtils.js +25 -0
  191. package/codeyam-cli/src/utils/slugUtils.js.map +1 -0
  192. package/codeyam-cli/src/utils/syncMocksMiddleware.js +2 -2
  193. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  194. package/codeyam-cli/src/utils/telemetry.js +106 -0
  195. package/codeyam-cli/src/utils/telemetry.js.map +1 -0
  196. package/codeyam-cli/src/utils/telemetryMiddleware.js +22 -0
  197. package/codeyam-cli/src/utils/telemetryMiddleware.js.map +1 -0
  198. package/codeyam-cli/src/utils/webappDetection.js +21 -0
  199. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  200. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js +35 -0
  201. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js.map +1 -0
  202. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js +80 -0
  203. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js.map +1 -0
  204. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +628 -0
  205. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -0
  206. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js +228 -0
  207. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js.map +1 -0
  208. package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js +79 -0
  209. package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js.map +1 -0
  210. package/codeyam-cli/src/webserver/app/lib/clientErrors.js +71 -0
  211. package/codeyam-cli/src/webserver/app/lib/clientErrors.js.map +1 -0
  212. package/codeyam-cli/src/webserver/app/lib/git.js +3 -2
  213. package/codeyam-cli/src/webserver/app/lib/git.js.map +1 -1
  214. package/codeyam-cli/src/webserver/app/types/editor.js +8 -0
  215. package/codeyam-cli/src/webserver/app/types/editor.js.map +1 -0
  216. package/codeyam-cli/src/webserver/backgroundServer.js +60 -61
  217. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  218. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CLe80MMu.js +1 -0
  219. package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-C76mRRiF.js → EntityItem-Crt_KN_U.js} +5 -5
  220. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-CQgyEGV-.js +1 -0
  221. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-CobE682z.js → EntityTypeIcon-CD7lGABo.js} +9 -9
  222. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-CgTNOhnu.js +1 -0
  223. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-CKeQT5Ty.js +25 -0
  224. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-D3s1MFkb.js +3 -0
  225. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-BU_OAEMP.js → LoadingDots-By5zI316.js} +1 -1
  226. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-ceAyBX-H.js → LogViewer-CM5zg40N.js} +3 -3
  227. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-djPLI-WV.js → ReportIssueModal-C2PLkej3.js} +4 -4
  228. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-DanvyBPb.js +1 -0
  229. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-ZlRKbhrq.js → ScenarioViewer-DUMfcNVK.js} +3 -3
  230. package/codeyam-cli/src/webserver/build/client/assets/Spinner-D0LgAaSa.js +34 -0
  231. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-CK7-NaPZ.js +1 -0
  232. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-BA_Ry-rs.js +1 -0
  233. package/codeyam-cli/src/webserver/build/client/assets/{_index-C96V0n15.js → _index-BAWd-Xjf.js} +4 -4
  234. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-BpKzcsJz.js → activity.(_tab)-BOARiB-g.js} +8 -8
  235. package/codeyam-cli/src/webserver/build/client/assets/{addon-web-links-Duc5hnl7.js → addon-web-links-CHx25PAe.js} +1 -1
  236. package/codeyam-cli/src/webserver/build/client/assets/{agent-transcripts-D9hemwl6.js → agent-transcripts-Bg3e7q4S.js} +7 -7
  237. package/codeyam-cli/src/webserver/build/client/assets/api.editor-project-info-l0sNRNKZ.js +1 -0
  238. package/codeyam-cli/src/webserver/build/client/assets/api.editor-recapture-stale-l0sNRNKZ.js +1 -0
  239. package/codeyam-cli/src/webserver/build/client/assets/api.editor-rename-scenario-l0sNRNKZ.js +1 -0
  240. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-seed-state-l0sNRNKZ.js +1 -0
  241. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-coverage-l0sNRNKZ.js +1 -0
  242. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-prompt-l0sNRNKZ.js +1 -0
  243. package/codeyam-cli/src/webserver/build/client/assets/api.editor-session-l0sNRNKZ.js +1 -0
  244. package/codeyam-cli/src/webserver/build/client/assets/{book-open-D_nMCFmP.js → book-open-CL-lMgHh.js} +2 -2
  245. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-BH2h1Ea2.js → chevron-down-GmAjGS9-.js} +2 -2
  246. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-BAdwhyCx.js +43 -0
  247. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-DyIKORY6.js → circle-check-DFcQkN5j.js} +2 -2
  248. package/codeyam-cli/src/webserver/build/client/assets/{copy-NDbZjXao.js → copy-C6iF61Xs.js} +3 -3
  249. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-4ImjHTVC.js +41 -0
  250. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-C8y4mmyv.js +1 -0
  251. package/codeyam-cli/src/webserver/build/client/assets/editor._tab-Gbk_i5Js.js +1 -0
  252. package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-CGzKlIHg.js +58 -0
  253. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-oepecPae.js +41 -0
  254. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-DItJnD8s.js → entity._sha._-Blfy9UlN.js} +3 -3
  255. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-KTQuL0aj.js +6 -0
  256. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-C6eeL24i.js +6 -0
  257. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DQM8E7L4.js +6 -0
  258. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-BMvVHNXU.js → entity._sha_.edit._scenarioId-CAoXLsQr.js} +2 -2
  259. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-DTvKq3TY.js → entry.client-SuW9syRS.js} +6 -6
  260. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-Daa96Fr1.js +1 -0
  261. package/codeyam-cli/src/webserver/build/client/assets/files-D-xGrg29.js +1 -0
  262. package/codeyam-cli/src/webserver/build/client/assets/git-Bq_fbXP5.js +1 -0
  263. package/codeyam-cli/src/webserver/build/client/assets/globals-Yn9W3zp3.css +1 -0
  264. package/codeyam-cli/src/webserver/build/client/assets/{index-BcvgDzbZ.js → index-Bp1l4hSv.js} +1 -1
  265. package/codeyam-cli/src/webserver/build/client/assets/{index-10oVnAAH.js → index-CWV9XZiG.js} +1 -1
  266. package/codeyam-cli/src/webserver/build/client/assets/{index-yHOVb4rc.js → index-DE3jI_dv.js} +1 -1
  267. package/codeyam-cli/src/webserver/build/client/assets/jsx-runtime-D_zvdyIk.js +9 -0
  268. package/codeyam-cli/src/webserver/build/client/assets/labs-B_IX45ih.js +1 -0
  269. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-BAXYRVEO.js → loader-circle-De-7qQ2u.js} +2 -2
  270. package/codeyam-cli/src/webserver/build/client/assets/manifest-2ef99f38.js +1 -0
  271. package/codeyam-cli/src/webserver/build/client/assets/memory-Cx2xEx7s.js +101 -0
  272. package/codeyam-cli/src/webserver/build/client/assets/{pause-DTAcYxBt.js → pause-CFxEKL1u.js} +3 -3
  273. package/codeyam-cli/src/webserver/build/client/assets/root-BxUQigda.js +67 -0
  274. package/codeyam-cli/src/webserver/build/client/assets/{search-fKo7v0Zo.js → search-BdBb5aqc.js} +2 -2
  275. package/codeyam-cli/src/webserver/build/client/assets/settings-DdE-Untf.js +1 -0
  276. package/codeyam-cli/src/webserver/build/client/assets/simulations-DSCdE99u.js +1 -0
  277. package/codeyam-cli/src/webserver/build/client/assets/{terminal-BG4heKCG.js → terminal-CrplD4b1.js} +3 -3
  278. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-DtSmdtM4.js → triangle-alert-DqJ0j69l.js} +2 -2
  279. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-DhXHbEjP.js +1 -0
  280. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-C14nCb1q.js → useLastLogLine-BNd5hYuW.js} +1 -1
  281. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-Cy5Qg_UR.js +1 -0
  282. package/codeyam-cli/src/webserver/build/client/assets/useToast-5HR2j9ZE.js +1 -0
  283. package/codeyam-cli/src/webserver/build/client/sound-test.html +98 -0
  284. package/codeyam-cli/src/webserver/build/server/assets/analysisRunner-BPmOG9bE.js +13 -0
  285. package/codeyam-cli/src/webserver/build/server/assets/index-Cd-ufawF.js +1 -0
  286. package/codeyam-cli/src/webserver/build/server/assets/init-CzeBGOto.js +10 -0
  287. package/codeyam-cli/src/webserver/build/server/assets/progress-CHTtrxFG.js +1 -0
  288. package/codeyam-cli/src/webserver/build/server/assets/server-build-Dht7CKXY.js +552 -0
  289. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  290. package/codeyam-cli/src/webserver/build-info.json +5 -5
  291. package/codeyam-cli/src/webserver/editorProxy.js +586 -17
  292. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -1
  293. package/codeyam-cli/src/webserver/idleDetector.js +106 -0
  294. package/codeyam-cli/src/webserver/idleDetector.js.map +1 -0
  295. package/codeyam-cli/src/webserver/mockStateEvents.js +28 -0
  296. package/codeyam-cli/src/webserver/mockStateEvents.js.map +1 -0
  297. package/codeyam-cli/src/webserver/public/sound-test.html +98 -0
  298. package/codeyam-cli/src/webserver/scripts/codeyam-preload.mjs +21 -3
  299. package/codeyam-cli/src/webserver/scripts/journalCapture.ts +130 -4
  300. package/codeyam-cli/src/webserver/server.js +100 -34
  301. package/codeyam-cli/src/webserver/server.js.map +1 -1
  302. package/codeyam-cli/src/webserver/terminalServer.js +242 -48
  303. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -1
  304. package/codeyam-cli/templates/__tests__/editor-step-hook.prompt-capture.test.ts +118 -0
  305. package/codeyam-cli/templates/chrome-extension-react/EXTENSION_SETUP.md +75 -0
  306. package/codeyam-cli/templates/chrome-extension-react/README.md +46 -0
  307. package/codeyam-cli/templates/chrome-extension-react/gitignore +15 -0
  308. package/codeyam-cli/templates/chrome-extension-react/index.html +12 -0
  309. package/codeyam-cli/templates/chrome-extension-react/package.json +27 -0
  310. package/codeyam-cli/templates/chrome-extension-react/popup.html +12 -0
  311. package/codeyam-cli/templates/chrome-extension-react/public/manifest.json +15 -0
  312. package/codeyam-cli/templates/chrome-extension-react/src/background/service-worker.ts +7 -0
  313. package/codeyam-cli/templates/chrome-extension-react/src/globals.css +6 -0
  314. package/codeyam-cli/templates/chrome-extension-react/src/lib/storage.ts +37 -0
  315. package/codeyam-cli/templates/chrome-extension-react/src/popup/App.tsx +12 -0
  316. package/codeyam-cli/templates/chrome-extension-react/src/popup/main.tsx +10 -0
  317. package/codeyam-cli/templates/chrome-extension-react/tsconfig.json +24 -0
  318. package/codeyam-cli/templates/chrome-extension-react/vite.config.ts +41 -0
  319. package/codeyam-cli/templates/codeyam-editor-claude.md +86 -5
  320. package/codeyam-cli/templates/codeyam-editor-reference.md +214 -0
  321. package/codeyam-cli/templates/editor-step-hook.py +193 -54
  322. package/codeyam-cli/templates/expo-react-native/MOBILE_SETUP.md +89 -0
  323. package/codeyam-cli/templates/expo-react-native/README.md +41 -0
  324. package/codeyam-cli/templates/expo-react-native/app/(tabs)/_layout.tsx +33 -0
  325. package/codeyam-cli/templates/expo-react-native/app/(tabs)/index.tsx +12 -0
  326. package/codeyam-cli/templates/expo-react-native/app/(tabs)/settings.tsx +12 -0
  327. package/codeyam-cli/templates/expo-react-native/app/_layout.tsx +12 -0
  328. package/codeyam-cli/templates/expo-react-native/app.json +18 -0
  329. package/codeyam-cli/templates/expo-react-native/babel.config.js +9 -0
  330. package/codeyam-cli/templates/expo-react-native/gitignore +12 -0
  331. package/codeyam-cli/templates/expo-react-native/global.css +3 -0
  332. package/codeyam-cli/templates/expo-react-native/lib/storage.ts +32 -0
  333. package/codeyam-cli/templates/expo-react-native/metro.config.js +6 -0
  334. package/codeyam-cli/templates/expo-react-native/nativewind-env.d.ts +1 -0
  335. package/codeyam-cli/templates/expo-react-native/package.json +38 -0
  336. package/codeyam-cli/templates/expo-react-native/tailwind.config.js +10 -0
  337. package/codeyam-cli/templates/expo-react-native/tsconfig.json +10 -0
  338. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_PATTERNS.md +308 -0
  339. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_UPGRADE.md +304 -0
  340. package/codeyam-cli/templates/nextjs-prisma-sqlite/DATABASE.md +126 -0
  341. package/codeyam-cli/templates/nextjs-prisma-sqlite/FEATURE_PATTERNS.md +37 -0
  342. package/codeyam-cli/templates/nextjs-prisma-sqlite/README.md +53 -0
  343. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/lib/prisma.ts +9 -4
  344. package/codeyam-cli/templates/nextjs-prisma-sqlite/env +4 -0
  345. package/codeyam-cli/templates/nextjs-prisma-sqlite/gitignore +1 -0
  346. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +2 -1
  347. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/seed.ts +4 -1
  348. package/codeyam-cli/templates/nextjs-prisma-sqlite/seed-adapter.ts +127 -0
  349. package/codeyam-cli/templates/nextjs-prisma-supabase/README.md +52 -0
  350. package/codeyam-cli/templates/{nextjs-prisma-sqlite/PRISMA_SETUP.md → nextjs-prisma-supabase/SUPABASE_SETUP.md} +37 -17
  351. package/codeyam-cli/templates/nextjs-prisma-supabase/app/api/todos/route.ts +17 -0
  352. package/codeyam-cli/templates/nextjs-prisma-supabase/app/globals.css +26 -0
  353. package/codeyam-cli/templates/nextjs-prisma-supabase/app/layout.tsx +34 -0
  354. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/prisma.ts +20 -0
  355. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/supabase.ts +12 -0
  356. package/codeyam-cli/templates/nextjs-prisma-supabase/app/page.tsx +10 -0
  357. package/codeyam-cli/templates/nextjs-prisma-supabase/env +9 -0
  358. package/codeyam-cli/templates/nextjs-prisma-supabase/eslint.config.mjs +11 -0
  359. package/codeyam-cli/templates/nextjs-prisma-supabase/gitignore +40 -0
  360. package/codeyam-cli/templates/nextjs-prisma-supabase/next.config.ts +11 -0
  361. package/codeyam-cli/templates/nextjs-prisma-supabase/package.json +37 -0
  362. package/codeyam-cli/templates/nextjs-prisma-supabase/postcss.config.mjs +7 -0
  363. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/schema.prisma +27 -0
  364. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/seed.ts +39 -0
  365. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma.config.ts +12 -0
  366. package/codeyam-cli/templates/nextjs-prisma-supabase/tsconfig.json +34 -0
  367. package/codeyam-cli/templates/seed-adapters/supabase.ts +282 -0
  368. package/codeyam-cli/templates/skills/codeyam-dev-mode/SKILL.md +1 -1
  369. package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +90 -9
  370. package/package.json +2 -1
  371. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +101 -0
  372. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
  373. package/packages/database/src/lib/loadEntities.js +0 -6
  374. package/packages/database/src/lib/loadEntities.js.map +1 -1
  375. package/packages/database/src/lib/updateCommitMetadata.js +0 -25
  376. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  377. package/packages/types/src/enums/ProjectFramework.js +2 -0
  378. package/packages/types/src/enums/ProjectFramework.js.map +1 -1
  379. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-DmJveP3T.js +0 -1
  380. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-g3saevPb.js +0 -1
  381. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-Bu6c6aDe.js +0 -1
  382. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-DYFW3lDD.js +0 -25
  383. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-DLeucoVX.js +0 -3
  384. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-BED4B6sP.js +0 -1
  385. package/codeyam-cli/src/webserver/build/client/assets/Spinner-Bb5uFQ5V.js +0 -34
  386. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-C8OKAR5x.js +0 -1
  387. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-oAf2Kqsf.js +0 -1
  388. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-C4pqxYJB.js +0 -51
  389. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-CMT1jU2q.js +0 -21
  390. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-CltMNppm.js +0 -1
  391. package/codeyam-cli/src/webserver/build/client/assets/editor-Rfq_y0VR.js +0 -10
  392. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-GNwaLSmC.js +0 -41
  393. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-CCa2trIL.js +0 -6
  394. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-CF164ouH.js +0 -6
  395. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-p9hhkjJM.js +0 -6
  396. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-cPo8LiG3.js +0 -1
  397. package/codeyam-cli/src/webserver/build/client/assets/files-DO4CZ16O.js +0 -1
  398. package/codeyam-cli/src/webserver/build/client/assets/git-CdN8sCqs.js +0 -1
  399. package/codeyam-cli/src/webserver/build/client/assets/globals-Bd0cs8vw.css +0 -1
  400. package/codeyam-cli/src/webserver/build/client/assets/labs-Zk7ryIM1.js +0 -1
  401. package/codeyam-cli/src/webserver/build/client/assets/manifest-9ab0aba3.js +0 -1
  402. package/codeyam-cli/src/webserver/build/client/assets/memory-Dg0mvYrI.js +0 -96
  403. package/codeyam-cli/src/webserver/build/client/assets/root-3ciuWk-c.js +0 -67
  404. package/codeyam-cli/src/webserver/build/client/assets/settings-DfuTtcJP.js +0 -1
  405. package/codeyam-cli/src/webserver/build/client/assets/simulations-B3aOzpCZ.js +0 -1
  406. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-CrAK28Bc.js +0 -1
  407. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-O-jkvSPx.js +0 -1
  408. package/codeyam-cli/src/webserver/build/client/assets/useToast-9FIWuYfK.js +0 -1
  409. package/codeyam-cli/src/webserver/build/server/assets/index-DCxIbVvl.js +0 -1
  410. package/codeyam-cli/src/webserver/build/server/assets/server-build-E-peu3XZ.js +0 -367
@@ -5,6 +5,61 @@ import fs from 'fs';
5
5
  import path from 'path';
6
6
  import * as pty from 'node-pty';
7
7
  import { createMarkerTransformer } from "../utils/scenarioMarkers.js";
8
+ import { IdleDetector } from "./idleDetector.js";
9
+ import { mockStateEventEmitter } from "./mockStateEvents.js";
10
+ /**
11
+ * Strip the raw `claude ...` shell command from suppressed PTY output
12
+ * so it doesn't leak to the user in the fallback timeout path.
13
+ */
14
+ export function stripClaudeCommand(output) {
15
+ return output.replace(/[^\r\n]*claude\s[^\r\n]*[\r\n]*/, '');
16
+ }
17
+ /**
18
+ * Manages PTY output suppression during Claude startup.
19
+ *
20
+ * Suppresses all output until the `╭` welcome banner arrives, then clears
21
+ * the screen. The claude command is stripped from any chunk that is forwarded
22
+ * (both the banner chunk on the normal path and the buffered output on the
23
+ * fallback timeout path).
24
+ */
25
+ export class StartupOutputFilter {
26
+ constructor() {
27
+ this.hasClearedScreen = false;
28
+ this.suppressedOutput = '';
29
+ }
30
+ /**
31
+ * Process a PTY data chunk. Returns an object describing what action to take:
32
+ * - `type: 'suppress'` — buffer the chunk, send nothing
33
+ * - `type: 'clear-and-send'` — clear screen, then send `data`
34
+ * - `type: 'send'` — send `data` as-is (post-startup)
35
+ */
36
+ processChunk(data) {
37
+ if (!this.hasClearedScreen && data.includes('╭')) {
38
+ this.hasClearedScreen = true;
39
+ const cleaned = stripClaudeCommand(data);
40
+ return { type: 'clear-and-send', data: cleaned };
41
+ }
42
+ if (!this.hasClearedScreen) {
43
+ this.suppressedOutput += data;
44
+ return { type: 'suppress' };
45
+ }
46
+ return { type: 'send', data };
47
+ }
48
+ /**
49
+ * Called when the fallback timeout fires (╭ never arrived).
50
+ * Returns the buffered output with the command stripped, or null if
51
+ * the screen was already cleared.
52
+ */
53
+ getTimeoutOutput() {
54
+ if (this.hasClearedScreen)
55
+ return null;
56
+ this.hasClearedScreen = true;
57
+ if (this.suppressedOutput.length === 0)
58
+ return null;
59
+ const cleaned = stripClaudeCommand(this.suppressedOutput);
60
+ return cleaned.length > 0 ? cleaned : null;
61
+ }
62
+ }
8
63
  // Use globalThis so the sessions Set is shared across module instances.
9
64
  // In Vite dev mode, this file is loaded twice: once by the Vite plugin (Node.js native)
10
65
  // and once by the SSR context (ssrLoadModule). Without globalThis, each instance
@@ -52,7 +107,7 @@ const ENV_PASSTHROUGH_KEYS = [
52
107
  'HOMEBREW_CELLAR',
53
108
  'HOMEBREW_REPOSITORY',
54
109
  ];
55
- function buildPtyEnv() {
110
+ export function buildPtyEnv(options) {
56
111
  const env = {};
57
112
  for (const key of ENV_PASSTHROUGH_KEYS) {
58
113
  const val = process.env[key];
@@ -62,6 +117,11 @@ function buildPtyEnv() {
62
117
  // Always set TERM for proper terminal behavior
63
118
  if (!env.TERM)
64
119
  env.TERM = 'xterm-256color';
120
+ // Signal to hooks that this is an editor Build session.
121
+ // Without this, editor hooks fire in ALL Claude sessions in the project.
122
+ if (options?.editorMode) {
123
+ env.CODEYAM_EDITOR_ACTIVE = '1';
124
+ }
65
125
  return env;
66
126
  }
67
127
  /**
@@ -190,7 +250,7 @@ function writeDevModeContext(ctx) {
190
250
  // Server
191
251
  const serverPort = process.env.CODEYAM_PORT || '3111';
192
252
  lines.push('## Server');
193
- lines.push(`- **Refresh preview:** \`curl -X POST http://localhost:${serverPort}/api/dev-mode-preview\``);
253
+ lines.push(`- **Refresh preview:** \`curl -X POST http://localhost:${serverPort}/api/dev-mode-preview -H 'Content-Type: application/json' -d '{"dimension":"Desktop"}'\` (dimension is REQUIRED)`);
194
254
  lines.push('');
195
255
  fs.writeFileSync(contextPath, lines.join('\n'), 'utf8');
196
256
  return true;
@@ -227,13 +287,13 @@ function writeEditorModeContext(ctx) {
227
287
  `- **Proxy:** http://localhost:${proxyPort} (used by the browser iframe only — do NOT use for health checks)`,
228
288
  '',
229
289
  '## Workflow',
230
- '- **Guided steps:** Run `codeyam editor steps` for the next step (plan → prototype → confirm → deconstruct → extract → glossary → analyze → app scenarios → user scenarios → verify → journal → review → present)',
231
- '- Each feature follows 13 steps: `codeyam editor 1` through `codeyam editor 13`',
232
- '- Steps 1, 3, and 13 require user confirmation before proceeding',
290
+ '- **Guided steps:** Run `codeyam editor steps` for the next step (plan → prepare → prototype → verify prototype → confirm → deconstruct → extract → glossary → analyze → app scenarios → user scenarios → verify → journal → review → present → commit → finalize → push)',
291
+ '- Each feature follows 18 steps: `codeyam editor 1` through `codeyam editor 18`',
292
+ '- Steps 1, 5, 15, and 18 require user confirmation before proceeding',
233
293
  '',
234
294
  '## Preview Updates',
235
295
  '- **Refresh the preview frequently** — the user watches the preview as you work. Refresh after every meaningful change (new page, UI section, data seeding, styling), not just at the end.',
236
- `- **Refresh command:** \`curl -s -X POST http://localhost:${serverPort}/api/dev-mode-preview\``,
296
+ `- **Refresh command:** \`curl -s -X POST http://localhost:${serverPort}/api/dev-mode-preview -H 'Content-Type: application/json' -d '{"dimension":"Desktop"}'\` (dimension is REQUIRED)`,
237
297
  '- Aim for 4-8+ preview updates during a typical building session.',
238
298
  '',
239
299
  '## Verifying the Dev Server',
@@ -247,9 +307,9 @@ function writeEditorModeContext(ctx) {
247
307
  ' for health** — the proxy returns 200 even when the app is broken',
248
308
  '',
249
309
  '## API Endpoints',
250
- `- **Register scenario (auto-captures screenshot):** \`codeyam editor register '{"name":"...","description":"...","mockData":{"routes":{"/api/tasks":{"body":[...]}}}}'\``,
310
+ `- **Register scenario (auto-captures screenshot):** \`codeyam editor register '{"name":"...","url":"/page-to-screenshot","type":"application","seed":{...}}'\` — ALWAYS include "url" for the page to screenshot. For large payloads, write JSON to a file and use @ prefix: \`codeyam editor register @/tmp/scenario.json\``,
251
311
  `- **Get active scenario data:** \`curl http://localhost:${serverPort}/api/editor-scenario-data\``,
252
- `- **Refresh/navigate/switch preview:** \`curl -X POST http://localhost:${serverPort}/api/dev-mode-preview\` (no body = refresh; with \`{"path":"/route"}\` = navigate; with \`{"scenarioId":"..."}\` = switch scenario). Clears logs, waits for HMR, checks SSR health. This is the ONE command for all iframe preview control.`,
312
+ `- **Refresh/navigate/switch preview:** \`curl -X POST http://localhost:${serverPort}/api/dev-mode-preview -H 'Content-Type: application/json' -d '{"dimension":"Desktop"}'\` (dimension is REQUIRED in every call; add \`"path":"/route"\` to navigate; add \`"scenarioId":"..."\` to switch scenario). Clears logs, waits for HMR, checks SSR health.`,
253
313
  `- **Refresh config:** \`curl -X POST http://localhost:${serverPort}/api/editor-refresh\` (also starts dev server if a webapp is detected)`,
254
314
  `- **Dev server status:** \`curl http://localhost:${serverPort}/api/editor-dev-server\``,
255
315
  `- **Start dev server:** \`curl -X POST http://localhost:${serverPort}/api/editor-dev-server -H 'Content-Type: application/json' -d '{"action":"start"}'\``,
@@ -266,17 +326,19 @@ function writeEditorModeContext(ctx) {
266
326
  '- POST/PUT/DELETE always go through to the real dev server',
267
327
  '',
268
328
  '## Component Isolation Routes',
269
- '- To screenshot individual components, create ONE isolation route per component:',
270
- ' - **Remix:** `app/routes/codeyam-isolate.ComponentName.tsx` → `/codeyam-isolate/ComponentName`',
271
- ' - **Next.js:** `app/codeyam-isolate/ComponentName/page.tsx` `/codeyam-isolate/ComponentName`',
329
+ '- Create isolation route dirs: `codeyam editor isolate ComponentA ComponentB ...`',
330
+ ' - This creates the layout guard and a directory per component under `app/isolated-components/`',
331
+ '- Create ONE isolation route page per component:',
332
+ ' - **Remix:** `app/routes/isolated-components.ComponentName.tsx` → `/isolated-components/ComponentName`',
333
+ ' - **Next.js:** `app/isolated-components/ComponentName/page.tsx` → `/isolated-components/ComponentName`',
272
334
  '- The route defines a `scenarios` object mapping scenario names to props, reads `?s=ScenarioName` from the URL, and renders the component',
273
- '- Wrap the component in a centered container: `<div style="display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px"><div style="width:100%;max-width:...">` — set max-width to match the component\'s real container (e.g. card in 3-col grid → 24rem)',
335
+ '- Wrap the component in a centered container: `<div style="display:flex;justify-content:center;align-items:center;min-height:100vh"><div style="width:100%;max-width:...">` — set max-width to match the component\'s real container (e.g. card in 3-col grid → 24rem)',
274
336
  '- **Create multiple scenarios per component** (like tests): default/happy path, edge cases (empty data, long text, max items), different visual states (loading, error, disabled)',
275
- '- Register each scenario: `codeyam editor register \'{"name":"ComponentName - Scenario","componentName":"ComponentName","componentPath":"path/to/file.tsx","url":"/codeyam-isolate/ComponentName?s=Scenario","mockData":{"routes":{"/api/...":{"body":[...]}}}}\'`',
337
+ '- Register each scenario: `codeyam editor register \'{"name":"ComponentName - Scenario","componentName":"ComponentName","componentPath":"path/to/file.tsx","url":"/isolated-components/ComponentName?s=Scenario","mockData":{"routes":{"/api/...":{"body":[...]}}}}\'`',
276
338
  '- The url is a PATH, not a full URL — the proxy appends it and intercepts API calls the component makes',
277
339
  '- `mockData.routes` provides data for any API calls the component makes internally (omit if none)',
278
340
  '- Isolation routes stay in the project so the editor preview can display them',
279
- '- Ensure `.gitignore` includes `**/codeyam-isolate*` so they are not committed',
341
+ '- Ensure `.gitignore` includes `**/isolated-components*` so they are not committed',
280
342
  '',
281
343
  '## Files',
282
344
  '- **Scenario data:** .codeyam/editor-scenarios/{scenario-id}.json',
@@ -330,6 +392,12 @@ export function attachTerminalServer(httpServer) {
330
392
  }
331
393
  }, PING_INTERVAL_MS);
332
394
  globalThis.__codeyamPingInterval = pingInterval;
395
+ // Subscribe to mock state events and broadcast to all terminal clients
396
+ mockStateEventEmitter.on('event', (event) => {
397
+ if (event.type === 'data-mutation-forwarded') {
398
+ broadcastDataMutationForwarded(event.method, event.pathname);
399
+ }
400
+ });
333
401
  wss.on('connection', (ws, req) => {
334
402
  // Parse entity context from query params
335
403
  const url = new URL(req.url || '', `http://${req.headers.host}`);
@@ -343,6 +411,8 @@ export function attachTerminalServer(httpServer) {
343
411
  const projectSlug = url.searchParams.get('projectSlug') || '';
344
412
  const editorMode = url.searchParams.get('editorMode') === 'true';
345
413
  const reconnectId = url.searchParams.get('reconnectId') || '';
414
+ const claudeStartMode = url.searchParams.get('claudeStartMode') || '';
415
+ const claudeSessionId = url.searchParams.get('claudeSessionId') || '';
346
416
  // --- Reconnection: reattach to a detached PTY ---
347
417
  if (reconnectId && detachedPtys.has(reconnectId)) {
348
418
  const detached = detachedPtys.get(reconnectId);
@@ -369,6 +439,18 @@ export function attachTerminalServer(httpServer) {
369
439
  let detachedFlag = false;
370
440
  const reconnectPort = process.env.CODEYAM_PORT || '3111';
371
441
  const reconnectTransformMarkers = createMarkerTransformer(reconnectPort);
442
+ const reconnectIdleDetector = new IdleDetector({
443
+ onIdle: () => {
444
+ if (ws.readyState === WebSocket.OPEN) {
445
+ ws.send(JSON.stringify({ type: 'claude-idle' }));
446
+ }
447
+ },
448
+ onActive: () => {
449
+ if (ws.readyState === WebSocket.OPEN) {
450
+ ws.send(JSON.stringify({ type: 'claude-active' }));
451
+ }
452
+ },
453
+ }, { activeOutputPattern: /[✶✢]/ });
372
454
  detached.ptyProcess.onData((data) => {
373
455
  if (detachedFlag)
374
456
  return; // Superseded by a newer listener
@@ -383,14 +465,11 @@ export function attachTerminalServer(httpServer) {
383
465
  if (transformed.length > 0) {
384
466
  ws.send(JSON.stringify({ type: 'output', data: transformed }));
385
467
  }
386
- const stripped = data.replace(/\x1b\[[0-9;]*[a-zA-Z]/g, '');
387
- if (stripped.includes('Editor Mode \u2014')) {
388
- console.log('[terminalServer] Detected claude-idle signal (reconnect)');
389
- ws.send(JSON.stringify({ type: 'claude-idle' }));
390
- }
468
+ reconnectIdleDetector.onPtyOutput(data);
391
469
  }
392
470
  });
393
471
  detached.ptyProcess.onExit(() => {
472
+ reconnectIdleDetector.dispose();
394
473
  sessions.delete(session);
395
474
  if (ws.readyState === WebSocket.OPEN) {
396
475
  ws.close();
@@ -401,6 +480,7 @@ export function attachTerminalServer(httpServer) {
401
480
  try {
402
481
  const msg = JSON.parse(raw.toString());
403
482
  if (msg.type === 'input') {
483
+ reconnectIdleDetector.onUserInput();
404
484
  detached.ptyProcess.write(msg.data);
405
485
  }
406
486
  else if (msg.type === 'resize' && msg.cols && msg.rows) {
@@ -433,7 +513,7 @@ export function attachTerminalServer(httpServer) {
433
513
  cols: 120,
434
514
  rows: 30,
435
515
  cwd: safeCwd,
436
- env: buildPtyEnv(),
516
+ env: buildPtyEnv({ editorMode }),
437
517
  });
438
518
  }
439
519
  catch (error) {
@@ -473,9 +553,38 @@ export function attachTerminalServer(httpServer) {
473
553
  projectSlug,
474
554
  });
475
555
  let hasClearedScreen = false;
476
- // Rolling buffer of trailing text to detect "Editor Mode —" across PTY chunks.
477
- let idleDetectBuffer = '';
478
- const IDLE_MARKER = 'Editor Mode \u2014';
556
+ const startupFilter = hasContext ? new StartupOutputFilter() : null;
557
+ // Safety timeout: stop suppressing output after 5s even if ╭ never arrives.
558
+ // Prevents "Starting Claude..." hanging forever if the banner format changes.
559
+ if (hasContext) {
560
+ setTimeout(() => {
561
+ const output = startupFilter.getTimeoutOutput();
562
+ if (output !== null) {
563
+ hasClearedScreen = true;
564
+ console.log('[terminalServer] Suppression timeout — showing output');
565
+ if (ws.readyState === WebSocket.OPEN) {
566
+ // Clear the "Starting Claude..." message
567
+ ws.send(JSON.stringify({ type: 'output', data: '\x1b[2J\x1b[H' }));
568
+ const transformed = transformMarkers(output);
569
+ if (transformed.length > 0) {
570
+ ws.send(JSON.stringify({ type: 'output', data: transformed }));
571
+ }
572
+ }
573
+ }
574
+ }, 5000);
575
+ }
576
+ const idleDetector = new IdleDetector({
577
+ onIdle: () => {
578
+ if (ws.readyState === WebSocket.OPEN) {
579
+ ws.send(JSON.stringify({ type: 'claude-idle' }));
580
+ }
581
+ },
582
+ onActive: () => {
583
+ if (ws.readyState === WebSocket.OPEN) {
584
+ ws.send(JSON.stringify({ type: 'claude-active' }));
585
+ }
586
+ },
587
+ }, { activeOutputPattern: /[✶✢]/ });
479
588
  // PTY output -> WebSocket
480
589
  const serverPort = process.env.CODEYAM_PORT || '3111';
481
590
  // Stateful transformer that buffers partial {{scenario:...}} markers
@@ -483,35 +592,36 @@ export function attachTerminalServer(httpServer) {
483
592
  const transformMarkers = createMarkerTransformer(serverPort);
484
593
  ptyProcess.onData((data) => {
485
594
  if (ws.readyState === WebSocket.OPEN) {
486
- // When Claude Code starts (indicated by its box-drawing welcome banner),
487
- // clear the screen to hide the raw shell command.
488
- if (!hasClearedScreen && hasContext && data.includes('╭')) {
489
- hasClearedScreen = true;
490
- ws.send(JSON.stringify({ type: 'output', data: '\x1b[2J\x1b[H' }));
491
- }
492
- // Transform {{scenario:Name:ID}} markers into OSC 8 clickable hyperlinks.
493
- // Uses stateful buffering to handle markers split across PTY chunks.
494
- const transformed = transformMarkers(data);
495
- if (transformed.length > 0) {
496
- ws.send(JSON.stringify({ type: 'output', data: transformed }));
497
- }
498
- // Detect the Stop hook output — signals Claude is waiting for user input.
499
- // The hook outputs "Editor Mode —" when Claude finishes a turn.
500
- // Strip ANSI escape codes and check buffer+current to handle cross-chunk splits.
501
- const stripped = data.replace(/\x1b\[[0-9;]*[a-zA-Z]/g, '');
502
- const combined = idleDetectBuffer + stripped;
503
- if (combined.includes(IDLE_MARKER)) {
504
- console.log('[terminalServer] Detected claude-idle signal');
505
- ws.send(JSON.stringify({ type: 'claude-idle' }));
506
- idleDetectBuffer = '';
595
+ // During startup, suppress output until Claude's welcome banner (╭)
596
+ // arrives, then clear screen and strip the raw command from the chunk.
597
+ if (startupFilter && !hasClearedScreen) {
598
+ const result = startupFilter.processChunk(data);
599
+ if (result.type === 'clear-and-send') {
600
+ hasClearedScreen = true;
601
+ ws.send(JSON.stringify({ type: 'output', data: '\x1b[2J\x1b[H' }));
602
+ if (result.data.length > 0) {
603
+ const transformed = transformMarkers(result.data);
604
+ if (transformed.length > 0) {
605
+ ws.send(JSON.stringify({ type: 'output', data: transformed }));
606
+ }
607
+ }
608
+ idleDetector.onPtyOutput(data);
609
+ }
610
+ // type === 'suppress': skip sending and idle detection
507
611
  }
508
612
  else {
509
- // Keep trailing chars in case the marker spans two chunks
510
- idleDetectBuffer = stripped.slice(-(IDLE_MARKER.length - 1));
613
+ // Transform {{scenario:Name:ID}} markers into OSC 8 clickable hyperlinks.
614
+ // Uses stateful buffering to handle markers split across PTY chunks.
615
+ const transformed = transformMarkers(data);
616
+ if (transformed.length > 0) {
617
+ ws.send(JSON.stringify({ type: 'output', data: transformed }));
618
+ }
619
+ idleDetector.onPtyOutput(data);
511
620
  }
512
621
  }
513
622
  });
514
623
  ptyProcess.onExit(() => {
624
+ idleDetector.dispose();
515
625
  sessions.delete(session);
516
626
  // Also clean up from detachedPtys if it was detached
517
627
  if (detachedPtys.has(sessionId)) {
@@ -527,6 +637,7 @@ export function attachTerminalServer(httpServer) {
527
637
  try {
528
638
  const msg = JSON.parse(raw.toString());
529
639
  if (msg.type === 'input') {
640
+ idleDetector.onUserInput();
530
641
  ptyProcess.write(msg.data);
531
642
  }
532
643
  else if (msg.type === 'resize' && msg.cols && msg.rows) {
@@ -544,11 +655,48 @@ export function attachTerminalServer(httpServer) {
544
655
  ws.on('close', () => {
545
656
  detachSession(session, hasContext, hasClearedScreen);
546
657
  });
658
+ // Show a loading indicator while Claude Code starts up.
659
+ // PTY output is suppressed until Claude's welcome banner (╭) appears
660
+ // and triggers a screen clear, so the user never sees the raw command.
661
+ if (hasContext) {
662
+ ws.send(JSON.stringify({
663
+ type: 'output',
664
+ data: '\x1b[2J\x1b[H\r\n\x1b[90m Starting Claude...\x1b[0m\r\n',
665
+ }));
666
+ }
547
667
  // Start Claude Code with the appropriate skill.
548
668
  // Using a skill avoids shell escaping issues and multi-line paste detection.
669
+ //
670
+ // Session recovery modes (editor only):
671
+ // resume + sessionId → claude --resume <uuid> (resumes exact conversation)
672
+ // resume, no sessionId → claude --continue (fallback for pre-existing sessions)
673
+ // fresh → generate UUID, write to .codeyam/claude-session-id.txt,
674
+ // launch claude --session-id <uuid> '/codeyam-editor'
675
+ //
676
+ // The UUID is generated HERE (not in printStep1) so it's available before
677
+ // Claude launches. printStep1 runs inside the session — too late.
549
678
  setTimeout(() => {
550
679
  if (editorMode && hasContext) {
551
- ptyProcess.write("claude '/codeyam-editor'\r");
680
+ if (claudeStartMode === 'resume' && claudeSessionId) {
681
+ ptyProcess.write(`claude --resume '${claudeSessionId}' 'The session was interrupted. Please continue where you left off.'\r`);
682
+ }
683
+ else if (claudeStartMode === 'resume') {
684
+ // No session ID available — fall back to most recent session
685
+ ptyProcess.write("claude --continue 'The session was interrupted. Please continue where you left off.'\r");
686
+ }
687
+ else {
688
+ // Fresh session: generate a trackable UUID
689
+ const newSessionId = crypto.randomUUID();
690
+ const sessionIdPath = path.join(cwd, '.codeyam', 'claude-session-id.txt');
691
+ try {
692
+ fs.mkdirSync(path.dirname(sessionIdPath), { recursive: true });
693
+ fs.writeFileSync(sessionIdPath, newSessionId, 'utf8');
694
+ }
695
+ catch (err) {
696
+ console.error('[terminalServer] Failed to write claude-session-id.txt:', err);
697
+ }
698
+ ptyProcess.write(`claude --session-id '${newSessionId}' '/codeyam-editor'\r`);
699
+ }
552
700
  }
553
701
  else if (hasContext) {
554
702
  ptyProcess.write("claude '/codeyam-dev-mode'\r");
@@ -604,10 +752,36 @@ function detachSession(session, hasContext = false, hasClearedScreen = false) {
604
752
  * Send a refresh-preview message to all connected terminal WebSocket clients.
605
753
  * The Terminal component relays this to the parent page to reload the iframe.
606
754
  */
607
- export function broadcastPreviewRefresh(path) {
755
+ export function broadcastPreviewRefresh(path, scenarioId) {
608
756
  const msg = JSON.stringify({
609
757
  type: 'refresh-preview',
610
758
  ...(path && { path }),
759
+ ...(scenarioId && { scenarioId }),
760
+ });
761
+ let count = 0;
762
+ for (const session of sessions) {
763
+ try {
764
+ if (session.ws.readyState === WebSocket.OPEN) {
765
+ session.ws.send(msg);
766
+ count++;
767
+ }
768
+ }
769
+ catch {
770
+ // Ignore send errors
771
+ }
772
+ }
773
+ return count;
774
+ }
775
+ /**
776
+ * Notify all connected terminal WebSocket clients that a data mutation
777
+ * was forwarded to the real dev server (seed-based scenario).
778
+ * The Terminal component relays this to editor.tsx to show a save banner.
779
+ */
780
+ export function broadcastDataMutationForwarded(method, pathname) {
781
+ const msg = JSON.stringify({
782
+ type: 'data-mutation-forwarded',
783
+ method,
784
+ pathname,
611
785
  });
612
786
  let count = 0;
613
787
  for (const session of sessions) {
@@ -662,6 +836,26 @@ export function broadcastHideResults() {
662
836
  }
663
837
  return count;
664
838
  }
839
+ /**
840
+ * Send a set-viewport message to all connected terminal WebSocket clients.
841
+ * The Terminal component relays this to the parent page to update the preview viewport.
842
+ */
843
+ export function broadcastSetViewport(viewport) {
844
+ const msg = JSON.stringify({ type: 'set-viewport', ...viewport });
845
+ let count = 0;
846
+ for (const session of sessions) {
847
+ try {
848
+ if (session.ws.readyState === WebSocket.OPEN) {
849
+ session.ws.send(msg);
850
+ count++;
851
+ }
852
+ }
853
+ catch {
854
+ // Ignore send errors
855
+ }
856
+ }
857
+ return count;
858
+ }
665
859
  /**
666
860
  * Kill all active PTY sessions and detached PTYs. Call during shutdown.
667
861
  */
@@ -1 +1 @@
1
- {"version":3,"file":"terminalServer.js","sourceRoot":"","sources":["../../../../src/webserver/terminalServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminalServer.js","sourceRoot":"","sources":["../../../../src/webserver/terminalServer.ts"],"names":[],"mappings":"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"}