@codeyam/codeyam-cli 0.1.0-staging.b8f4f94 → 0.1.0-staging.ba3f279

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 (580) 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 +5 -5
  4. package/analyzer-template/packages/ai/package.json +1 -1
  5. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +135 -0
  6. package/analyzer-template/packages/ai/src/lib/astScopes/nodeToSource.ts +19 -0
  7. package/analyzer-template/packages/ai/src/lib/astScopes/paths.ts +11 -4
  8. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +36 -9
  9. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.ts +10 -3
  10. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +16 -6
  11. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +0 -33
  12. package/analyzer-template/packages/analyze/index.ts +4 -1
  13. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +28 -2
  14. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +5 -36
  15. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +10 -6
  16. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +9 -12
  17. package/analyzer-template/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.ts +21 -0
  18. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +82 -10
  19. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +4 -0
  20. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +4 -0
  21. package/analyzer-template/packages/analyze/src/lib/files/analyzeNextRoute.ts +8 -3
  22. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +239 -58
  23. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +0 -98
  24. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +1684 -1462
  25. package/analyzer-template/packages/aws/package.json +2 -2
  26. package/analyzer-template/packages/database/package.json +2 -2
  27. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +102 -0
  28. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +25 -15
  29. package/analyzer-template/packages/database/src/lib/loadEntities.ts +0 -6
  30. package/analyzer-template/packages/database/src/lib/loadEntity.ts +19 -8
  31. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +0 -65
  32. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +9 -0
  33. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -1
  34. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +104 -0
  35. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
  36. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  37. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +7 -1
  38. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  39. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  40. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +0 -6
  41. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  42. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.d.ts +4 -1
  43. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.d.ts.map +1 -1
  44. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js +5 -5
  45. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js.map +1 -1
  46. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  47. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +0 -25
  48. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  49. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  50. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  51. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js +2 -0
  52. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js.map +1 -1
  53. package/analyzer-template/packages/types/src/enums/ProjectFramework.ts +2 -0
  54. package/analyzer-template/packages/ui-components/package.json +1 -1
  55. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  56. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  57. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js +2 -0
  58. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js.map +1 -1
  59. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts +3 -1
  60. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  61. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +22 -1
  62. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  63. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +27 -0
  64. package/analyzer-template/project/analyzeFileEntities.ts +26 -0
  65. package/analyzer-template/project/runMultiScenarioServer.ts +26 -3
  66. package/background/src/lib/virtualized/project/analyzeFileEntities.js +22 -0
  67. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  68. package/background/src/lib/virtualized/project/runMultiScenarioServer.js +23 -3
  69. package/background/src/lib/virtualized/project/runMultiScenarioServer.js.map +1 -1
  70. package/codeyam-cli/src/cli.js +24 -0
  71. package/codeyam-cli/src/cli.js.map +1 -1
  72. package/codeyam-cli/src/commands/__tests__/editor.analyzeImportsArgs.test.js +47 -0
  73. package/codeyam-cli/src/commands/__tests__/editor.analyzeImportsArgs.test.js.map +1 -0
  74. package/codeyam-cli/src/commands/__tests__/editor.auditNoAutoAnalysis.test.js +71 -0
  75. package/codeyam-cli/src/commands/__tests__/editor.auditNoAutoAnalysis.test.js.map +1 -0
  76. package/codeyam-cli/src/commands/__tests__/editor.designSystem.test.js +30 -0
  77. package/codeyam-cli/src/commands/__tests__/editor.designSystem.test.js.map +1 -0
  78. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js +51 -0
  79. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js.map +1 -0
  80. package/codeyam-cli/src/commands/__tests__/editor.statePersistence.test.js +55 -0
  81. package/codeyam-cli/src/commands/__tests__/editor.statePersistence.test.js.map +1 -0
  82. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js +56 -0
  83. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js.map +1 -0
  84. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js +101 -47
  85. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js.map +1 -1
  86. package/codeyam-cli/src/commands/editor.js +4623 -678
  87. package/codeyam-cli/src/commands/editor.js.map +1 -1
  88. package/codeyam-cli/src/commands/editorAnalyzeImportsArgs.js +23 -0
  89. package/codeyam-cli/src/commands/editorAnalyzeImportsArgs.js.map +1 -0
  90. package/codeyam-cli/src/commands/editorIsolateArgs.js +25 -0
  91. package/codeyam-cli/src/commands/editorIsolateArgs.js.map +1 -0
  92. package/codeyam-cli/src/commands/init.js +69 -34
  93. package/codeyam-cli/src/commands/init.js.map +1 -1
  94. package/codeyam-cli/src/commands/telemetry.js +37 -0
  95. package/codeyam-cli/src/commands/telemetry.js.map +1 -0
  96. package/codeyam-cli/src/data/designSystems.js +27 -0
  97. package/codeyam-cli/src/data/designSystems.js.map +1 -0
  98. package/codeyam-cli/src/data/techStacks.js +77 -0
  99. package/codeyam-cli/src/data/techStacks.js.map +1 -0
  100. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js +173 -0
  101. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js.map +1 -0
  102. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js +46 -0
  103. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js.map +1 -0
  104. package/codeyam-cli/src/utils/__tests__/devServerState.test.js +134 -0
  105. package/codeyam-cli/src/utils/__tests__/devServerState.test.js.map +1 -0
  106. package/codeyam-cli/src/utils/__tests__/editorApi.test.js +181 -0
  107. package/codeyam-cli/src/utils/__tests__/editorApi.test.js.map +1 -0
  108. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +3545 -1
  109. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -1
  110. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js +76 -0
  111. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js.map +1 -0
  112. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js +93 -0
  113. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js.map +1 -0
  114. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js +137 -0
  115. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js.map +1 -0
  116. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js +100 -0
  117. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js.map +1 -0
  118. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js +181 -3
  119. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js.map +1 -1
  120. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js +194 -0
  121. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js.map +1 -0
  122. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js +381 -0
  123. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js.map +1 -0
  124. package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js +67 -0
  125. package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js.map +1 -0
  126. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js +294 -0
  127. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js.map +1 -0
  128. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js +238 -2
  129. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js.map +1 -1
  130. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js +594 -0
  131. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js.map +1 -0
  132. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js +435 -0
  133. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js.map +1 -0
  134. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js +118 -1
  135. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js.map +1 -1
  136. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js +217 -3
  137. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js.map +1 -1
  138. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js +153 -0
  139. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js.map +1 -0
  140. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js +139 -0
  141. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js.map +1 -0
  142. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js +411 -0
  143. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js.map +1 -0
  144. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +1665 -2
  145. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -1
  146. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js +413 -0
  147. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js.map +1 -0
  148. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js +143 -0
  149. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js.map +1 -0
  150. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js +66 -0
  151. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js.map +1 -0
  152. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js +53 -0
  153. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js.map +1 -0
  154. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +905 -1
  155. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -1
  156. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js +177 -0
  157. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js.map +1 -0
  158. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js +122 -0
  159. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js.map +1 -0
  160. package/codeyam-cli/src/utils/__tests__/manualEntityAnalysis.test.js +302 -0
  161. package/codeyam-cli/src/utils/__tests__/manualEntityAnalysis.test.js.map +1 -0
  162. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js +129 -0
  163. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js.map +1 -0
  164. package/codeyam-cli/src/utils/__tests__/registerScenarioResult.test.js +127 -0
  165. package/codeyam-cli/src/utils/__tests__/registerScenarioResult.test.js.map +1 -0
  166. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js +118 -0
  167. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js.map +1 -0
  168. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js +284 -0
  169. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js.map +1 -0
  170. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +672 -0
  171. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -0
  172. package/codeyam-cli/src/utils/__tests__/screenshotHash.test.js +84 -0
  173. package/codeyam-cli/src/utils/__tests__/screenshotHash.test.js.map +1 -0
  174. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +26 -5
  175. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  176. package/codeyam-cli/src/utils/__tests__/telemetry.test.js +159 -0
  177. package/codeyam-cli/src/utils/__tests__/telemetry.test.js.map +1 -0
  178. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js +51 -0
  179. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js.map +1 -0
  180. package/codeyam-cli/src/utils/__tests__/testRunner.test.js +216 -0
  181. package/codeyam-cli/src/utils/__tests__/testRunner.test.js.map +1 -0
  182. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js +148 -0
  183. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js.map +1 -0
  184. package/codeyam-cli/src/utils/analysisRunner.js +39 -8
  185. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  186. package/codeyam-cli/src/utils/analyzer.js +19 -0
  187. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  188. package/codeyam-cli/src/utils/analyzerFinalization.js +100 -0
  189. package/codeyam-cli/src/utils/analyzerFinalization.js.map +1 -0
  190. package/codeyam-cli/src/utils/backgroundServer.js +93 -17
  191. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  192. package/codeyam-cli/src/utils/database.js +37 -2
  193. package/codeyam-cli/src/utils/database.js.map +1 -1
  194. package/codeyam-cli/src/utils/devServerState.js +71 -0
  195. package/codeyam-cli/src/utils/devServerState.js.map +1 -0
  196. package/codeyam-cli/src/utils/editorApi.js +95 -0
  197. package/codeyam-cli/src/utils/editorApi.js.map +1 -0
  198. package/codeyam-cli/src/utils/editorAudit.js +732 -10
  199. package/codeyam-cli/src/utils/editorAudit.js.map +1 -1
  200. package/codeyam-cli/src/utils/editorBroadcastViewport.js +26 -0
  201. package/codeyam-cli/src/utils/editorBroadcastViewport.js.map +1 -0
  202. package/codeyam-cli/src/utils/editorCapture.js +102 -0
  203. package/codeyam-cli/src/utils/editorCapture.js.map +1 -0
  204. package/codeyam-cli/src/utils/editorDeleteScenario.js +67 -0
  205. package/codeyam-cli/src/utils/editorDeleteScenario.js.map +1 -0
  206. package/codeyam-cli/src/utils/editorDevServer.js +100 -1
  207. package/codeyam-cli/src/utils/editorDevServer.js.map +1 -1
  208. package/codeyam-cli/src/utils/editorEntityChangeStatus.js +50 -0
  209. package/codeyam-cli/src/utils/editorEntityChangeStatus.js.map +1 -0
  210. package/codeyam-cli/src/utils/editorEntityHelpers.js +144 -0
  211. package/codeyam-cli/src/utils/editorEntityHelpers.js.map +1 -0
  212. package/codeyam-cli/src/utils/editorGuard.js +36 -0
  213. package/codeyam-cli/src/utils/editorGuard.js.map +1 -0
  214. package/codeyam-cli/src/utils/editorImageVerifier.js +155 -0
  215. package/codeyam-cli/src/utils/editorImageVerifier.js.map +1 -0
  216. package/codeyam-cli/src/utils/editorJournal.js +85 -4
  217. package/codeyam-cli/src/utils/editorJournal.js.map +1 -1
  218. package/codeyam-cli/src/utils/editorLoaderHelpers.js +152 -0
  219. package/codeyam-cli/src/utils/editorLoaderHelpers.js.map +1 -0
  220. package/codeyam-cli/src/utils/editorMigration.js +224 -0
  221. package/codeyam-cli/src/utils/editorMigration.js.map +1 -0
  222. package/codeyam-cli/src/utils/editorMockState.js +1 -1
  223. package/codeyam-cli/src/utils/editorPreloadHelpers.js +72 -1
  224. package/codeyam-cli/src/utils/editorPreloadHelpers.js.map +1 -1
  225. package/codeyam-cli/src/utils/editorPreview.js +74 -1
  226. package/codeyam-cli/src/utils/editorPreview.js.map +1 -1
  227. package/codeyam-cli/src/utils/editorRecapture.js +109 -0
  228. package/codeyam-cli/src/utils/editorRecapture.js.map +1 -0
  229. package/codeyam-cli/src/utils/editorScenarioSwitch.js +149 -0
  230. package/codeyam-cli/src/utils/editorScenarioSwitch.js.map +1 -0
  231. package/codeyam-cli/src/utils/editorScenarios.js +621 -0
  232. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -1
  233. package/codeyam-cli/src/utils/editorSeedAdapter.js +475 -0
  234. package/codeyam-cli/src/utils/editorSeedAdapter.js.map +1 -0
  235. package/codeyam-cli/src/utils/editorShouldRevalidate.js +21 -0
  236. package/codeyam-cli/src/utils/editorShouldRevalidate.js.map +1 -0
  237. package/codeyam-cli/src/utils/entityChangeStatus.js +143 -4
  238. package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -1
  239. package/codeyam-cli/src/utils/entityChangeStatus.server.js +227 -0
  240. package/codeyam-cli/src/utils/entityChangeStatus.server.js.map +1 -0
  241. package/codeyam-cli/src/utils/fileWatcher.js +38 -0
  242. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  243. package/codeyam-cli/src/utils/glossaryAdd.js +74 -0
  244. package/codeyam-cli/src/utils/glossaryAdd.js.map +1 -0
  245. package/codeyam-cli/src/utils/install-skills.js +14 -0
  246. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  247. package/codeyam-cli/src/utils/manualEntityAnalysis.js +196 -0
  248. package/codeyam-cli/src/utils/manualEntityAnalysis.js.map +1 -0
  249. package/codeyam-cli/src/utils/parseRegisterArg.js +31 -0
  250. package/codeyam-cli/src/utils/parseRegisterArg.js.map +1 -0
  251. package/codeyam-cli/src/utils/progress.js +2 -2
  252. package/codeyam-cli/src/utils/progress.js.map +1 -1
  253. package/codeyam-cli/src/utils/queue/__tests__/job.interactiveStart.test.js +159 -0
  254. package/codeyam-cli/src/utils/queue/__tests__/job.interactiveStart.test.js.map +1 -0
  255. package/codeyam-cli/src/utils/queue/job.js +35 -6
  256. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  257. package/codeyam-cli/src/utils/registerScenarioResult.js +52 -0
  258. package/codeyam-cli/src/utils/registerScenarioResult.js.map +1 -0
  259. package/codeyam-cli/src/utils/routePatternMatching.js +129 -0
  260. package/codeyam-cli/src/utils/routePatternMatching.js.map +1 -0
  261. package/codeyam-cli/src/utils/scenarioCoverage.js +77 -0
  262. package/codeyam-cli/src/utils/scenarioCoverage.js.map +1 -0
  263. package/codeyam-cli/src/utils/scenariosManifest.js +313 -0
  264. package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -0
  265. package/codeyam-cli/src/utils/screenshotHash.js +26 -0
  266. package/codeyam-cli/src/utils/screenshotHash.js.map +1 -0
  267. package/codeyam-cli/src/utils/serverState.js +30 -0
  268. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  269. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +42 -15
  270. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  271. package/codeyam-cli/src/utils/simulationGateMiddleware.js +17 -1
  272. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -1
  273. package/codeyam-cli/src/utils/slugUtils.js +25 -0
  274. package/codeyam-cli/src/utils/slugUtils.js.map +1 -0
  275. package/codeyam-cli/src/utils/syncMocksMiddleware.js +2 -2
  276. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  277. package/codeyam-cli/src/utils/telemetry.js +106 -0
  278. package/codeyam-cli/src/utils/telemetry.js.map +1 -0
  279. package/codeyam-cli/src/utils/telemetryMiddleware.js +22 -0
  280. package/codeyam-cli/src/utils/telemetryMiddleware.js.map +1 -0
  281. package/codeyam-cli/src/utils/testResultCache.js +53 -0
  282. package/codeyam-cli/src/utils/testResultCache.js.map +1 -0
  283. package/codeyam-cli/src/utils/testResultCache.server.js +81 -0
  284. package/codeyam-cli/src/utils/testResultCache.server.js.map +1 -0
  285. package/codeyam-cli/src/utils/testResultCache.server.test.js +187 -0
  286. package/codeyam-cli/src/utils/testResultCache.server.test.js.map +1 -0
  287. package/codeyam-cli/src/utils/testResultCache.test.js +230 -0
  288. package/codeyam-cli/src/utils/testResultCache.test.js.map +1 -0
  289. package/codeyam-cli/src/utils/testRunner.js +193 -1
  290. package/codeyam-cli/src/utils/testRunner.js.map +1 -1
  291. package/codeyam-cli/src/utils/webappDetection.js +25 -2
  292. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  293. package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js +98 -0
  294. package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js.map +1 -0
  295. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js +35 -0
  296. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js.map +1 -0
  297. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js +107 -0
  298. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js.map +1 -0
  299. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +647 -0
  300. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -0
  301. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js +315 -0
  302. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js.map +1 -0
  303. package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js +135 -0
  304. package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js.map +1 -0
  305. package/codeyam-cli/src/webserver/app/lib/clientErrors.js +86 -0
  306. package/codeyam-cli/src/webserver/app/lib/clientErrors.js.map +1 -0
  307. package/codeyam-cli/src/webserver/app/lib/git.js +397 -0
  308. package/codeyam-cli/src/webserver/app/lib/git.js.map +1 -0
  309. package/codeyam-cli/src/webserver/app/routes/api.interactive-switch-scenario.js +34 -0
  310. package/codeyam-cli/src/webserver/app/routes/api.interactive-switch-scenario.js.map +1 -0
  311. package/codeyam-cli/src/webserver/app/types/editor.js +8 -0
  312. package/codeyam-cli/src/webserver/app/types/editor.js.map +1 -0
  313. package/codeyam-cli/src/webserver/backgroundServer.js +60 -61
  314. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  315. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CLe80MMu.js +1 -0
  316. package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-C76mRRiF.js → EntityItem-Crt_KN_U.js} +5 -5
  317. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-CQgyEGV-.js +1 -0
  318. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-CobE682z.js → EntityTypeIcon-CD7lGABo.js} +9 -9
  319. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-CgTNOhnu.js +1 -0
  320. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-DtYTSPL2.js +25 -0
  321. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-D3s1MFkb.js +3 -0
  322. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-BU_OAEMP.js → LoadingDots-By5zI316.js} +1 -1
  323. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-ceAyBX-H.js → LogViewer-CM5zg40N.js} +3 -3
  324. package/codeyam-cli/src/webserver/build/client/assets/MiniClaudeChat-CQENLSrF.js +36 -0
  325. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-djPLI-WV.js → ReportIssueModal-C2PLkej3.js} +4 -4
  326. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-DanvyBPb.js +1 -0
  327. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-B76aig_2.js → ScenarioViewer-CefgqbCr.js} +3 -3
  328. package/codeyam-cli/src/webserver/build/client/assets/Spinner-Bc8BG-Lw.js +34 -0
  329. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-CK7-NaPZ.js +1 -0
  330. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-BA_Ry-rs.js +1 -0
  331. package/codeyam-cli/src/webserver/build/client/assets/{_index-C96V0n15.js → _index-C1YkzTAV.js} +4 -4
  332. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-BpKzcsJz.js → activity.(_tab)-yH46LLUz.js} +8 -8
  333. package/codeyam-cli/src/webserver/build/client/assets/addon-canvas-DpzMmAy5.js +1 -0
  334. package/codeyam-cli/src/webserver/build/client/assets/addon-fit-YJmn1quW.js +12 -0
  335. package/codeyam-cli/src/webserver/build/client/assets/{addon-web-links-Duc5hnl7.js → addon-web-links-CHx25PAe.js} +1 -1
  336. package/codeyam-cli/src/webserver/build/client/assets/addon-webgl-DI8QOUvO.js +58 -0
  337. package/codeyam-cli/src/webserver/build/client/assets/{agent-transcripts-D9hemwl6.js → agent-transcripts-Bg3e7q4S.js} +7 -7
  338. package/codeyam-cli/src/webserver/build/client/assets/api.editor-project-info-l0sNRNKZ.js +1 -0
  339. package/codeyam-cli/src/webserver/build/client/assets/api.editor-recapture-stale-l0sNRNKZ.js +1 -0
  340. package/codeyam-cli/src/webserver/build/client/assets/api.editor-rename-scenario-l0sNRNKZ.js +1 -0
  341. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-scenario-data-l0sNRNKZ.js +1 -0
  342. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-seed-state-l0sNRNKZ.js +1 -0
  343. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-coverage-l0sNRNKZ.js +1 -0
  344. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-prompt-l0sNRNKZ.js +1 -0
  345. package/codeyam-cli/src/webserver/build/client/assets/api.editor-schema-l0sNRNKZ.js +1 -0
  346. package/codeyam-cli/src/webserver/build/client/assets/api.editor-session-l0sNRNKZ.js +1 -0
  347. package/codeyam-cli/src/webserver/build/client/assets/api.editor-verify-routes-l0sNRNKZ.js +1 -0
  348. package/codeyam-cli/src/webserver/build/client/assets/api.interactive-switch-scenario-l0sNRNKZ.js +1 -0
  349. package/codeyam-cli/src/webserver/build/client/assets/{book-open-D_nMCFmP.js → book-open-CL-lMgHh.js} +2 -2
  350. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-BH2h1Ea2.js → chevron-down-GmAjGS9-.js} +2 -2
  351. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-BAdwhyCx.js +43 -0
  352. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-DyIKORY6.js → circle-check-DFcQkN5j.js} +2 -2
  353. package/codeyam-cli/src/webserver/build/client/assets/{copy-NDbZjXao.js → copy-C6iF61Xs.js} +3 -3
  354. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-4ImjHTVC.js +41 -0
  355. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-Coe5NhbS.js +1 -0
  356. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-CCKUIm0S.svg → cy-logo-cli-DoA97ML3.svg} +2 -2
  357. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-CRepiabR.js +1 -0
  358. package/codeyam-cli/src/webserver/build/client/assets/editor._tab-Gbk_i5Js.js +1 -0
  359. package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-CRxPi2BB.js +96 -0
  360. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-CluPkvXJ.js +41 -0
  361. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-CrjR3zZW.js → entity._sha._-DYJRGiDI.js} +14 -13
  362. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-wdiwx5-Z.js +6 -0
  363. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-BrkN-40Y.js +6 -0
  364. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DxfhekTZ.js +6 -0
  365. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-BMvVHNXU.js → entity._sha_.edit._scenarioId-CRXJWmpB.js} +2 -2
  366. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-DTvKq3TY.js → entry.client-SuW9syRS.js} +6 -6
  367. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-Daa96Fr1.js +1 -0
  368. package/codeyam-cli/src/webserver/build/client/assets/files-D-xGrg29.js +1 -0
  369. package/codeyam-cli/src/webserver/build/client/assets/git-Bq_fbXP5.js +1 -0
  370. package/codeyam-cli/src/webserver/build/client/assets/globals-BsGHu8WX.css +1 -0
  371. package/codeyam-cli/src/webserver/build/client/assets/{index-BcvgDzbZ.js → index-Bp1l4hSv.js} +1 -1
  372. package/codeyam-cli/src/webserver/build/client/assets/{index-10oVnAAH.js → index-CWV9XZiG.js} +1 -1
  373. package/codeyam-cli/src/webserver/build/client/assets/{index-yHOVb4rc.js → index-DE3jI_dv.js} +1 -1
  374. package/codeyam-cli/src/webserver/build/client/assets/jsx-runtime-D_zvdyIk.js +9 -0
  375. package/codeyam-cli/src/webserver/build/client/assets/labs-B_IX45ih.js +1 -0
  376. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-BAXYRVEO.js → loader-circle-De-7qQ2u.js} +2 -2
  377. package/codeyam-cli/src/webserver/build/client/assets/manifest-9032538f.js +1 -0
  378. package/codeyam-cli/src/webserver/build/client/assets/memory-Cx2xEx7s.js +101 -0
  379. package/codeyam-cli/src/webserver/build/client/assets/{pause-DTAcYxBt.js → pause-CFxEKL1u.js} +3 -3
  380. package/codeyam-cli/src/webserver/build/client/assets/root-dKFRTYcy.js +80 -0
  381. package/codeyam-cli/src/webserver/build/client/assets/{search-fKo7v0Zo.js → search-BdBb5aqc.js} +2 -2
  382. package/codeyam-cli/src/webserver/build/client/assets/settings-DdE-Untf.js +1 -0
  383. package/codeyam-cli/src/webserver/build/client/assets/simulations-DSCdE99u.js +1 -0
  384. package/codeyam-cli/src/webserver/build/client/assets/{terminal-BG4heKCG.js → terminal-CrplD4b1.js} +3 -3
  385. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-DtSmdtM4.js → triangle-alert-DqJ0j69l.js} +2 -2
  386. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-DhXHbEjP.js +1 -0
  387. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-D9QZKaLJ.js +2 -0
  388. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-Cy5Qg_UR.js +1 -0
  389. package/codeyam-cli/src/webserver/build/client/assets/useToast-5HR2j9ZE.js +1 -0
  390. package/codeyam-cli/src/webserver/build/client/sound-test.html +98 -0
  391. package/codeyam-cli/src/webserver/build/server/assets/analysisRunner-OLsM110H.js +16 -0
  392. package/codeyam-cli/src/webserver/build/server/assets/index-WHdB6WTN.js +1 -0
  393. package/codeyam-cli/src/webserver/build/server/assets/init-DbSiZoE6.js +10 -0
  394. package/codeyam-cli/src/webserver/build/server/assets/progress-CHTtrxFG.js +1 -0
  395. package/codeyam-cli/src/webserver/build/server/assets/server-build-DZbLY6O_.js +690 -0
  396. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  397. package/codeyam-cli/src/webserver/build-info.json +5 -5
  398. package/codeyam-cli/src/webserver/editorProxy.js +638 -50
  399. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -1
  400. package/codeyam-cli/src/webserver/idleDetector.js +130 -0
  401. package/codeyam-cli/src/webserver/idleDetector.js.map +1 -0
  402. package/codeyam-cli/src/webserver/mockStateEvents.js +28 -0
  403. package/codeyam-cli/src/webserver/mockStateEvents.js.map +1 -0
  404. package/codeyam-cli/src/webserver/public/sound-test.html +98 -0
  405. package/codeyam-cli/src/webserver/scripts/codeyam-preload.mjs +242 -3
  406. package/codeyam-cli/src/webserver/scripts/journalCapture.ts +147 -4
  407. package/codeyam-cli/src/webserver/server.js +153 -26
  408. package/codeyam-cli/src/webserver/server.js.map +1 -1
  409. package/codeyam-cli/src/webserver/terminalServer.js +305 -51
  410. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -1
  411. package/codeyam-cli/templates/__tests__/editor-step-hook.prompt-capture.test.ts +118 -0
  412. package/codeyam-cli/templates/chrome-extension-react/EXTENSION_SETUP.md +75 -0
  413. package/codeyam-cli/templates/chrome-extension-react/README.md +46 -0
  414. package/codeyam-cli/templates/chrome-extension-react/gitignore +15 -0
  415. package/codeyam-cli/templates/chrome-extension-react/index.html +12 -0
  416. package/codeyam-cli/templates/chrome-extension-react/package.json +27 -0
  417. package/codeyam-cli/templates/chrome-extension-react/popup.html +12 -0
  418. package/codeyam-cli/templates/chrome-extension-react/public/manifest.json +15 -0
  419. package/codeyam-cli/templates/chrome-extension-react/src/background/service-worker.ts +7 -0
  420. package/codeyam-cli/templates/chrome-extension-react/src/globals.css +6 -0
  421. package/codeyam-cli/templates/chrome-extension-react/src/lib/storage.ts +37 -0
  422. package/codeyam-cli/templates/chrome-extension-react/src/popup/App.tsx +12 -0
  423. package/codeyam-cli/templates/chrome-extension-react/src/popup/main.tsx +10 -0
  424. package/codeyam-cli/templates/chrome-extension-react/tsconfig.json +24 -0
  425. package/codeyam-cli/templates/chrome-extension-react/vite.config.ts +41 -0
  426. package/codeyam-cli/templates/codeyam-editor-claude.md +86 -5
  427. package/codeyam-cli/templates/codeyam-editor-reference.md +216 -0
  428. package/codeyam-cli/templates/design-systems/clean-dashboard-design-system.md +255 -0
  429. package/codeyam-cli/templates/design-systems/editorial-design-system.md +267 -0
  430. package/codeyam-cli/templates/design-systems/mono-brutalist-design-system.md +256 -0
  431. package/codeyam-cli/templates/design-systems/neo-brutalist-design-system.md +294 -0
  432. package/codeyam-cli/templates/editor-step-hook.py +219 -45
  433. package/codeyam-cli/templates/expo-react-native/MOBILE_SETUP.md +288 -0
  434. package/codeyam-cli/templates/expo-react-native/README.md +41 -0
  435. package/codeyam-cli/templates/expo-react-native/__tests__/.gitkeep +0 -0
  436. package/codeyam-cli/templates/expo-react-native/app/_layout.tsx +15 -0
  437. package/codeyam-cli/templates/expo-react-native/app/index.tsx +36 -0
  438. package/codeyam-cli/templates/expo-react-native/app.json +29 -0
  439. package/codeyam-cli/templates/expo-react-native/babel.config.js +10 -0
  440. package/codeyam-cli/templates/expo-react-native/gitignore +14 -0
  441. package/codeyam-cli/templates/expo-react-native/global.css +10 -0
  442. package/codeyam-cli/templates/expo-react-native/lib/storage.ts +32 -0
  443. package/codeyam-cli/templates/expo-react-native/lib/theme.ts +73 -0
  444. package/codeyam-cli/templates/expo-react-native/metro.config.js +6 -0
  445. package/codeyam-cli/templates/expo-react-native/nativewind-env.d.ts +1 -0
  446. package/codeyam-cli/templates/expo-react-native/package.json +54 -0
  447. package/codeyam-cli/templates/expo-react-native/patches/expo-modules-autolinking+3.0.24.patch +29 -0
  448. package/codeyam-cli/templates/expo-react-native/tailwind.config.js +10 -0
  449. package/codeyam-cli/templates/expo-react-native/tsconfig.json +10 -0
  450. package/codeyam-cli/templates/isolation-route/expo-router.tsx.template +54 -0
  451. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_PATTERNS.md +308 -0
  452. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_UPGRADE.md +304 -0
  453. package/codeyam-cli/templates/nextjs-prisma-sqlite/DATABASE.md +126 -0
  454. package/codeyam-cli/templates/nextjs-prisma-sqlite/FEATURE_PATTERNS.md +37 -0
  455. package/codeyam-cli/templates/nextjs-prisma-sqlite/README.md +53 -0
  456. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/codeyam-isolate/layout.tsx +12 -0
  457. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/lib/prisma.ts +9 -4
  458. package/codeyam-cli/templates/nextjs-prisma-sqlite/env +4 -0
  459. package/codeyam-cli/templates/nextjs-prisma-sqlite/gitignore +21 -0
  460. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +6 -2
  461. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/seed.ts +4 -1
  462. package/codeyam-cli/templates/nextjs-prisma-sqlite/seed-adapter.ts +140 -0
  463. package/codeyam-cli/templates/nextjs-prisma-sqlite/vitest.config.ts +13 -0
  464. package/codeyam-cli/templates/nextjs-prisma-supabase/README.md +52 -0
  465. package/codeyam-cli/templates/{nextjs-prisma-sqlite/PRISMA_SETUP.md → nextjs-prisma-supabase/SUPABASE_SETUP.md} +37 -17
  466. package/codeyam-cli/templates/nextjs-prisma-supabase/app/api/todos/route.ts +17 -0
  467. package/codeyam-cli/templates/nextjs-prisma-supabase/app/globals.css +26 -0
  468. package/codeyam-cli/templates/nextjs-prisma-supabase/app/layout.tsx +34 -0
  469. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/prisma.ts +20 -0
  470. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/supabase.ts +12 -0
  471. package/codeyam-cli/templates/nextjs-prisma-supabase/app/page.tsx +10 -0
  472. package/codeyam-cli/templates/nextjs-prisma-supabase/env +9 -0
  473. package/codeyam-cli/templates/nextjs-prisma-supabase/eslint.config.mjs +11 -0
  474. package/codeyam-cli/templates/nextjs-prisma-supabase/gitignore +40 -0
  475. package/codeyam-cli/templates/nextjs-prisma-supabase/next.config.ts +11 -0
  476. package/codeyam-cli/templates/nextjs-prisma-supabase/package.json +37 -0
  477. package/codeyam-cli/templates/nextjs-prisma-supabase/postcss.config.mjs +7 -0
  478. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/schema.prisma +27 -0
  479. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/seed.ts +39 -0
  480. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma.config.ts +12 -0
  481. package/codeyam-cli/templates/nextjs-prisma-supabase/tsconfig.json +34 -0
  482. package/codeyam-cli/templates/seed-adapters/supabase.ts +374 -0
  483. package/codeyam-cli/templates/skills/codeyam-dev-mode/SKILL.md +2 -2
  484. package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +183 -13
  485. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/detect-deprecated-patterns.mjs +0 -0
  486. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/find-exports.mjs +0 -0
  487. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/read-json-field.mjs +0 -0
  488. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/ripgrep-fallback.mjs +0 -0
  489. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/cleanup.mjs +0 -0
  490. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/filter-session.mjs +0 -0
  491. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/preprocess.mjs +0 -0
  492. package/package.json +7 -1
  493. package/packages/ai/src/lib/astScopes/methodSemantics.js +99 -0
  494. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  495. package/packages/ai/src/lib/astScopes/nodeToSource.js +16 -0
  496. package/packages/ai/src/lib/astScopes/nodeToSource.js.map +1 -1
  497. package/packages/ai/src/lib/astScopes/paths.js +12 -3
  498. package/packages/ai/src/lib/astScopes/paths.js.map +1 -1
  499. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +27 -10
  500. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  501. package/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.js +9 -2
  502. package/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.js.map +1 -1
  503. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +14 -4
  504. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  505. package/packages/ai/src/lib/generateExecutionFlows.js +0 -11
  506. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
  507. package/packages/analyze/index.js +1 -1
  508. package/packages/analyze/index.js.map +1 -1
  509. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +16 -2
  510. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  511. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +6 -26
  512. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  513. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +3 -2
  514. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  515. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +9 -7
  516. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  517. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js +14 -0
  518. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js.map +1 -1
  519. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +44 -11
  520. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  521. package/packages/analyze/src/lib/files/analyzeChange.js +1 -0
  522. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  523. package/packages/analyze/src/lib/files/analyzeInitial.js +1 -0
  524. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  525. package/packages/analyze/src/lib/files/analyzeNextRoute.js +5 -1
  526. package/packages/analyze/src/lib/files/analyzeNextRoute.js.map +1 -1
  527. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +120 -28
  528. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  529. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +0 -40
  530. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -1
  531. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +1368 -1193
  532. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  533. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +104 -0
  534. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
  535. package/packages/database/src/lib/loadAnalysis.js +7 -1
  536. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  537. package/packages/database/src/lib/loadEntities.js +0 -6
  538. package/packages/database/src/lib/loadEntities.js.map +1 -1
  539. package/packages/database/src/lib/loadEntity.js +5 -5
  540. package/packages/database/src/lib/loadEntity.js.map +1 -1
  541. package/packages/database/src/lib/updateCommitMetadata.js +0 -25
  542. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  543. package/packages/types/src/enums/ProjectFramework.js +2 -0
  544. package/packages/types/src/enums/ProjectFramework.js.map +1 -1
  545. package/packages/utils/src/lib/fs/rsyncCopy.js +22 -1
  546. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  547. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-DmJveP3T.js +0 -1
  548. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-g3saevPb.js +0 -1
  549. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-Bu6c6aDe.js +0 -1
  550. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-DYFW3lDD.js +0 -25
  551. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-DLeucoVX.js +0 -3
  552. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-BED4B6sP.js +0 -1
  553. package/codeyam-cli/src/webserver/build/client/assets/Spinner-Bb5uFQ5V.js +0 -34
  554. package/codeyam-cli/src/webserver/build/client/assets/Terminal-nZNBALox.js +0 -41
  555. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-C8OKAR5x.js +0 -1
  556. package/codeyam-cli/src/webserver/build/client/assets/addon-fit-CUXOrorO.js +0 -1
  557. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-C4pqxYJB.js +0 -51
  558. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-CMT1jU2q.js +0 -21
  559. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +0 -1
  560. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BiM6z3Do.js +0 -1
  561. package/codeyam-cli/src/webserver/build/client/assets/editor-DTwKl1Xu.js +0 -10
  562. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-DjACbfdI.js +0 -6
  563. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-C28BiQzt.js +0 -6
  564. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-p9hhkjJM.js +0 -6
  565. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-cPo8LiG3.js +0 -1
  566. package/codeyam-cli/src/webserver/build/client/assets/files-DO4CZ16O.js +0 -1
  567. package/codeyam-cli/src/webserver/build/client/assets/git-CdN8sCqs.js +0 -1
  568. package/codeyam-cli/src/webserver/build/client/assets/globals-h1-1oFYI.css +0 -1
  569. package/codeyam-cli/src/webserver/build/client/assets/labs-Zk7ryIM1.js +0 -1
  570. package/codeyam-cli/src/webserver/build/client/assets/manifest-9422aeab.js +0 -1
  571. package/codeyam-cli/src/webserver/build/client/assets/memory-Dg0mvYrI.js +0 -96
  572. package/codeyam-cli/src/webserver/build/client/assets/root-BzQgN2ff.js +0 -67
  573. package/codeyam-cli/src/webserver/build/client/assets/settings-DfuTtcJP.js +0 -1
  574. package/codeyam-cli/src/webserver/build/client/assets/simulations-B3aOzpCZ.js +0 -1
  575. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-ByhSyh0W.js +0 -1
  576. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-C14nCb1q.js +0 -2
  577. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-O-jkvSPx.js +0 -1
  578. package/codeyam-cli/src/webserver/build/client/assets/useToast-9FIWuYfK.js +0 -1
  579. package/codeyam-cli/src/webserver/build/server/assets/index-Bh_pNxNA.js +0 -1
  580. package/codeyam-cli/src/webserver/build/server/assets/server-build-Bqr22tlO.js +0 -367
@@ -27,8 +27,12 @@ import memoryCommand from "./commands/memory.js";
27
27
  import editorCommand from "./commands/editor.js";
28
28
  import setupSimulationsCommand from "./commands/setup-simulations.js";
29
29
  import { syncMocksMiddleware } from "./utils/syncMocksMiddleware.js";
30
+ import { telemetryMiddleware } from "./utils/telemetryMiddleware.js";
31
+ import { captureEvent } from "./utils/telemetry.js";
30
32
  import { getDisplayVersion } from "./utils/versionInfo.js";
31
33
  import { simulationGateMiddleware, buildSimulationEpilogue, } from "./utils/simulationGateMiddleware.js";
34
+ import { checkEditorGuard } from "./utils/editorGuard.js";
35
+ import telemetryCommand from "./commands/telemetry.js";
32
36
  // Install global signal handlers for automatic process cleanup
33
37
  // This ensures all child processes (analyzer, capture, etc.) are cleaned up on:
34
38
  // - Ctrl+C (SIGINT)
@@ -47,13 +51,29 @@ yargs(hideBin(process.argv))
47
51
  .scriptName('codeyam')
48
52
  .version(getDisplayVersion())
49
53
  .usage('CodeYam local development CLI')
54
+ .middleware(() => {
55
+ // Block dangerous commands from inside the editor terminal.
56
+ // Uses process.argv directly because yargs absorbs named positionals.
57
+ const args = hideBin(process.argv);
58
+ const command = args[0];
59
+ if (command) {
60
+ const rest = args.slice(1);
61
+ const guard = checkEditorGuard(command, rest);
62
+ if (guard.blocked) {
63
+ console.error(guard.message);
64
+ process.exit(1);
65
+ }
66
+ }
67
+ })
50
68
  .middleware(simulationGateMiddleware)
51
69
  .middleware(syncMocksMiddleware)
70
+ .middleware(telemetryMiddleware)
52
71
  // Core commands (always visible in help)
53
72
  .command(defaultCommand)
54
73
  .command(startCommand)
55
74
  .command(stopCommand)
56
75
  .command(memoryCommand)
76
+ .command(telemetryCommand)
57
77
  // Hidden commands (shown in epilogue when simulations are enabled)
58
78
  .command(withoutDescribe(initCommand))
59
79
  .command(withoutDescribe(updateConfigCommand))
@@ -81,6 +101,10 @@ yargs(hideBin(process.argv))
81
101
  .strict()
82
102
  .parseAsync()
83
103
  .catch((error) => {
104
+ captureEvent('cli_error', {
105
+ command: process.argv[2] ?? 'unknown',
106
+ error_type: error?.constructor?.name ?? 'Error',
107
+ });
84
108
  console.error('CLI Error:', error.message);
85
109
  process.exit(1);
86
110
  });
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,0BAA0B;AAC1B,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAClD,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,oBAAoB,MAAM,oCAAoC,CAAC;AACtE,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,gBAAgB,MAAM,sBAAsB,CAAC;AACpD,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAClD,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAE1C,+DAA+D;AAC/D,gFAAgF;AAChF,oBAAoB;AACpB,YAAY;AACZ,wBAAwB;AACxB,iCAAiC;AACjC,wBAAwB;AACxB,qBAAqB,EAAE,CAAC;AAExB,gEAAgE;AAChE,8DAA8D;AAC9D,SAAS,eAAe,CAAC,GAAQ;IAC/B,OAAO,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACrC,CAAC;AAED,4BAA4B;AAC5B,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACzB,UAAU,CAAC,SAAS,CAAC;KACrB,OAAO,CAAC,iBAAiB,EAAE,CAAC;KAC5B,KAAK,CAAC,+BAA+B,CAAC;KACtC,UAAU,CAAC,wBAAwB,CAAC;KACpC,UAAU,CAAC,mBAAmB,CAAC;IAChC,yCAAyC;KACxC,OAAO,CAAC,cAAc,CAAC;KACvB,OAAO,CAAC,YAAY,CAAC;KACrB,OAAO,CAAC,WAAW,CAAC;KACpB,OAAO,CAAC,aAAa,CAAC;IACvB,mEAAmE;KAClE,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;KACrC,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;KAC7C,OAAO,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC;KACjD,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;KACxC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;KACvC,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;KAC5C,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;KAC7C,OAAO,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;KAC1C,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;KACzC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;KACtC,OAAO,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;KAC9C,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;KACxC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;KACvC,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;KACzC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;KACtC,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;KAC7C,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;KACvC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;KACrC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;KACvC,QAAQ,CAAC,uBAAuB,EAAE,CAAC;KACnC,aAAa,CAAC,CAAC,CAAC;KAChB,IAAI,EAAE;KACN,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC;KAClB,MAAM,EAAE;KACR,UAAU,EAAE;KACZ,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACf,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,0BAA0B;AAC1B,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAClD,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,oBAAoB,MAAM,oCAAoC,CAAC;AACtE,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,gBAAgB,MAAM,sBAAsB,CAAC;AACpD,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAClD,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,gBAAgB,MAAM,sBAAsB,CAAC;AAEpD,+DAA+D;AAC/D,gFAAgF;AAChF,oBAAoB;AACpB,YAAY;AACZ,wBAAwB;AACxB,iCAAiC;AACjC,wBAAwB;AACxB,qBAAqB,EAAE,CAAC;AAExB,gEAAgE;AAChE,8DAA8D;AAC9D,SAAS,eAAe,CAAC,GAAQ;IAC/B,OAAO,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACrC,CAAC;AAED,4BAA4B;AAC5B,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACzB,UAAU,CAAC,SAAS,CAAC;KACrB,OAAO,CAAC,iBAAiB,EAAE,CAAC;KAC5B,KAAK,CAAC,+BAA+B,CAAC;KACtC,UAAU,CAAC,GAAG,EAAE;IACf,4DAA4D;IAC5D,sEAAsE;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC,CAAC;KACD,UAAU,CAAC,wBAAwB,CAAC;KACpC,UAAU,CAAC,mBAAmB,CAAC;KAC/B,UAAU,CAAC,mBAAmB,CAAC;IAChC,yCAAyC;KACxC,OAAO,CAAC,cAAc,CAAC;KACvB,OAAO,CAAC,YAAY,CAAC;KACrB,OAAO,CAAC,WAAW,CAAC;KACpB,OAAO,CAAC,aAAa,CAAC;KACtB,OAAO,CAAC,gBAAgB,CAAC;IAC1B,mEAAmE;KAClE,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;KACrC,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;KAC7C,OAAO,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC;KACjD,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;KACxC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;KACvC,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;KAC5C,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;KAC7C,OAAO,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;KAC1C,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;KACzC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;KACtC,OAAO,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;KAC9C,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;KACxC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;KACvC,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;KACzC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;KACtC,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;KAC7C,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;KACvC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;KACrC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;KACvC,QAAQ,CAAC,uBAAuB,EAAE,CAAC;KACnC,aAAa,CAAC,CAAC,CAAC;KAChB,IAAI,EAAE;KACN,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC;KAClB,MAAM,EAAE;KACR,UAAU,EAAE;KACZ,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACf,YAAY,CAAC,WAAW,EAAE;QACxB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS;QACrC,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,IAAI,OAAO;KAChD,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Tests that `codeyam editor analyze-imports` correctly parses optional
3
+ * file path arguments to scope analysis to specific files.
4
+ *
5
+ * Without file paths, analyze-imports analyzes all glossary entities.
6
+ * With file paths, it scopes analysis to only those files.
7
+ */
8
+ import { parseAnalyzeImportsArgs } from "../editorAnalyzeImportsArgs.js";
9
+ describe('parseAnalyzeImportsArgs', () => {
10
+ it('should return empty array when no args provided', () => {
11
+ expect(parseAnalyzeImportsArgs(undefined, [])).toEqual([]);
12
+ expect(parseAnalyzeImportsArgs('', [])).toEqual([]);
13
+ });
14
+ it('should parse a single file path from json arg', () => {
15
+ // codeyam editor analyze-imports app/components/Foo.tsx
16
+ expect(parseAnalyzeImportsArgs('app/components/Foo.tsx', [])).toEqual([
17
+ 'app/components/Foo.tsx',
18
+ ]);
19
+ });
20
+ it('should collect extra positional args from argv._', () => {
21
+ // codeyam editor analyze-imports app/components/Foo.tsx app/components/Bar.tsx
22
+ // yargs: json="app/components/Foo.tsx", argv._=["editor", "app/components/Bar.tsx"]
23
+ expect(parseAnalyzeImportsArgs('app/components/Foo.tsx', [
24
+ 'editor',
25
+ 'app/components/Bar.tsx',
26
+ ])).toEqual(['app/components/Foo.tsx', 'app/components/Bar.tsx']);
27
+ });
28
+ it('should filter out "editor" from argv._', () => {
29
+ expect(parseAnalyzeImportsArgs(undefined, [
30
+ 'editor',
31
+ 'app/components/Foo.tsx',
32
+ 'app/lib/utils.ts',
33
+ ])).toEqual(['app/components/Foo.tsx', 'app/lib/utils.ts']);
34
+ });
35
+ it('should deduplicate file paths', () => {
36
+ expect(parseAnalyzeImportsArgs('app/components/Foo.tsx', [
37
+ 'editor',
38
+ 'app/components/Foo.tsx',
39
+ 'app/components/Bar.tsx',
40
+ ])).toEqual(['app/components/Foo.tsx', 'app/components/Bar.tsx']);
41
+ });
42
+ it('should handle numeric extras gracefully', () => {
43
+ // yargs can put numbers in argv._
44
+ expect(parseAnalyzeImportsArgs('app/components/Foo.tsx', [42, 'editor'])).toEqual(['app/components/Foo.tsx']);
45
+ });
46
+ });
47
+ //# sourceMappingURL=editor.analyzeImportsArgs.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.analyzeImportsArgs.test.js","sourceRoot":"","sources":["../../../../../src/commands/__tests__/editor.analyzeImportsArgs.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,uBAAuB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,uBAAuB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,wDAAwD;QACxD,MAAM,CAAC,uBAAuB,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACpE,wBAAwB;SACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,+EAA+E;QAC/E,oFAAoF;QACpF,MAAM,CACJ,uBAAuB,CAAC,wBAAwB,EAAE;YAChD,QAAQ;YACR,wBAAwB;SACzB,CAAC,CACH,CAAC,OAAO,CAAC,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CACJ,uBAAuB,CAAC,SAAS,EAAE;YACjC,QAAQ;YACR,wBAAwB;YACxB,kBAAkB;SACnB,CAAC,CACH,CAAC,OAAO,CAAC,CAAC,wBAAwB,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CACJ,uBAAuB,CAAC,wBAAwB,EAAE;YAChD,QAAQ;YACR,wBAAwB;YACxB,wBAAwB;SACzB,CAAC,CACH,CAAC,OAAO,CAAC,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,kCAAkC;QAClC,MAAM,CACJ,uBAAuB,CAAC,wBAAwB,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAClE,CAAC,OAAO,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,71 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ /**
4
+ * Structural test: handleAudit must NOT call runAnalysisForEntities.
5
+ *
6
+ * Previously, handleAudit auto-ran full analysis for incomplete entities,
7
+ * which was slow (analyzer startup + AST scan for all glossary entries).
8
+ *
9
+ * Targeted analysis (with filePaths for 1-3 specific files) is acceptable,
10
+ * but a full scan (without filePaths) must never be used here.
11
+ * This test ensures the full auto-analysis doesn't creep back in.
12
+ */
13
+ describe('handleAudit - no auto-analysis', () => {
14
+ it('should not call runAnalysisForEntities inside handleAudit', () => {
15
+ const editorTsPath = path.join(__dirname, '..', 'editor.ts');
16
+ const source = fs.readFileSync(editorTsPath, 'utf8');
17
+ // Extract the handleAudit function body.
18
+ // It starts with "async function handleAudit" and ends at the next
19
+ // top-level "async function" or "function" declaration (unindented).
20
+ const handleAuditStart = source.indexOf('async function handleAudit');
21
+ expect(handleAuditStart).toBeGreaterThan(-1);
22
+ // Find the next top-level function declaration after handleAudit starts.
23
+ // Top-level functions start at the beginning of a line (no indentation).
24
+ const afterStart = source.slice(handleAuditStart + 1);
25
+ const nextFnMatch = afterStart.match(/\n(?:async )?function [a-zA-Z]/);
26
+ const handleAuditEnd = nextFnMatch
27
+ ? handleAuditStart + 1 + nextFnMatch.index
28
+ : source.length;
29
+ const handleAuditBody = source.slice(handleAuditStart, handleAuditEnd);
30
+ // The function body must NOT contain runAnalysisForEntities
31
+ expect(handleAuditBody).not.toContain('runAnalysisForEntities');
32
+ });
33
+ it('should report incomplete entities with guidance instead of auto-fixing', () => {
34
+ const editorTsPath = path.join(__dirname, '..', 'editor.ts');
35
+ const source = fs.readFileSync(editorTsPath, 'utf8');
36
+ const handleAuditStart = source.indexOf('async function handleAudit');
37
+ const afterStart = source.slice(handleAuditStart + 1);
38
+ const nextFnMatch = afterStart.match(/\n(?:async )?function [a-zA-Z]/);
39
+ const handleAuditEnd = nextFnMatch
40
+ ? handleAuditStart + 1 + nextFnMatch.index
41
+ : source.length;
42
+ const handleAuditBody = source.slice(handleAuditStart, handleAuditEnd);
43
+ // Should still report incomplete entities
44
+ expect(handleAuditBody).toContain('incompleteEntities');
45
+ expect(handleAuditBody).toContain('formatIncompleteEntityGuidance');
46
+ });
47
+ it('should only call handleAnalyzeImports with filePaths (targeted, not full scan)', () => {
48
+ const editorTsPath = path.join(__dirname, '..', 'editor.ts');
49
+ const source = fs.readFileSync(editorTsPath, 'utf8');
50
+ const handleAuditStart = source.indexOf('async function handleAudit');
51
+ expect(handleAuditStart).toBeGreaterThan(-1);
52
+ const afterStart = source.slice(handleAuditStart + 1);
53
+ const nextFnMatch = afterStart.match(/\n(?:async )?function [a-zA-Z]/);
54
+ const handleAuditEnd = nextFnMatch
55
+ ? handleAuditStart + 1 + nextFnMatch.index
56
+ : source.length;
57
+ const handleAuditBody = source.slice(handleAuditStart, handleAuditEnd);
58
+ // Targeted handleAnalyzeImports (with filePaths) is OK — it only
59
+ // analyzes 1-3 specific files. A full scan (without filePaths) takes
60
+ // minutes on large projects and must never be used here.
61
+ const calls = [...handleAuditBody.matchAll(/handleAnalyzeImports\s*\(/g)];
62
+ for (const call of calls) {
63
+ const afterCall = handleAuditBody.slice(call.index + call[0].length);
64
+ // Each call must include filePaths in its arguments
65
+ const closingParen = afterCall.indexOf(')');
66
+ const callArgs = afterCall.slice(0, closingParen);
67
+ expect(callArgs).toContain('filePaths');
68
+ }
69
+ });
70
+ });
71
+ //# sourceMappingURL=editor.auditNoAutoAnalysis.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.auditNoAutoAnalysis.test.js","sourceRoot":"","sources":["../../../../../src/commands/__tests__/editor.auditNoAutoAnalysis.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { DESIGN_SYSTEMS } from "../../data/designSystems.js";
4
+ /**
5
+ * Structural tests for built-in design system selection in the editor.
6
+ * Ensures template files exist, editor.ts references each design system,
7
+ * and the subcommand dispatch is wired up.
8
+ */
9
+ describe('editor design system selection', () => {
10
+ const editorSource = fs.readFileSync(path.join(__dirname, '..', 'editor.ts'), 'utf8');
11
+ const templatesDir = path.join(__dirname, '..', // commands
12
+ '..', // src
13
+ '..', // codeyam-cli
14
+ 'templates', 'design-systems');
15
+ it('should have a template file for each design system', () => {
16
+ for (const ds of DESIGN_SYSTEMS) {
17
+ const filePath = path.join(templatesDir, ds.fileName);
18
+ expect(fs.existsSync(filePath)).toBe(true);
19
+ }
20
+ });
21
+ it('should iterate over DESIGN_SYSTEMS in printSetup to output design-system commands', () => {
22
+ // printSetup dynamically iterates DESIGN_SYSTEMS and outputs
23
+ // `codeyam editor design-system ${ds.id}` for each — verify the template literal is present
24
+ expect(editorSource).toContain('codeyam editor design-system ${ds.id}');
25
+ });
26
+ it('should have a design-system subcommand dispatch', () => {
27
+ expect(editorSource).toMatch(/argv\.step === ['"]design-system['"]/);
28
+ });
29
+ });
30
+ //# sourceMappingURL=editor.designSystem.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.designSystem.test.js","sourceRoot":"","sources":["../../../../../src/commands/__tests__/editor.designSystem.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D;;;;GAIG;AACH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAClC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,EACvC,MAAM,CACP,CAAC;IAEF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAC5B,SAAS,EACT,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,cAAc;IACpB,WAAW,EACX,gBAAgB,CACjB,CAAC;IAEF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;YACtD,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,GAAG,EAAE;QAC3F,6DAA6D;QAC7D,4FAA4F;QAC5F,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Tests that `codeyam editor isolate` correctly parses multiple component
3
+ * names whether passed as separate args or a single quoted string.
4
+ *
5
+ * Bug: `codeyam editor isolate A B C` failed because yargs .strict()
6
+ * rejected extra positionals beyond the two declared (step, json).
7
+ * Claude would then try one at a time, wasting time and tokens.
8
+ */
9
+ import { parseIsolateArgs } from "../editorIsolateArgs.js";
10
+ describe('parseIsolateArgs', () => {
11
+ it('should parse a single component name from json arg', () => {
12
+ expect(parseIsolateArgs('LogoMark', [])).toEqual(['LogoMark']);
13
+ });
14
+ it('should parse space-separated names from a single quoted json arg', () => {
15
+ // codeyam editor isolate "LogoMark AppHeader Button"
16
+ expect(parseIsolateArgs('LogoMark AppHeader Button', [])).toEqual([
17
+ 'LogoMark',
18
+ 'AppHeader',
19
+ 'Button',
20
+ ]);
21
+ });
22
+ it('should parse comma-separated names from json arg', () => {
23
+ expect(parseIsolateArgs('LogoMark,AppHeader,Button', [])).toEqual([
24
+ 'LogoMark',
25
+ 'AppHeader',
26
+ 'Button',
27
+ ]);
28
+ });
29
+ it('should collect extra positional args from argv._', () => {
30
+ // codeyam editor isolate LogoMark AppHeader Button
31
+ // yargs: json="LogoMark", argv._=["editor", "AppHeader", "Button"]
32
+ expect(parseIsolateArgs('LogoMark', ['editor', 'AppHeader', 'Button'])).toEqual(['LogoMark', 'AppHeader', 'Button']);
33
+ });
34
+ it('should deduplicate names from json and extras', () => {
35
+ expect(parseIsolateArgs('LogoMark', ['editor', 'LogoMark', 'AppHeader'])).toEqual(['LogoMark', 'AppHeader']);
36
+ });
37
+ it('should filter out empty strings', () => {
38
+ expect(parseIsolateArgs('LogoMark AppHeader', [])).toEqual([
39
+ 'LogoMark',
40
+ 'AppHeader',
41
+ ]);
42
+ });
43
+ it('should return empty array when no names provided', () => {
44
+ expect(parseIsolateArgs(undefined, [])).toEqual([]);
45
+ expect(parseIsolateArgs('', [])).toEqual([]);
46
+ });
47
+ it('should filter out "editor" from argv._', () => {
48
+ expect(parseIsolateArgs(undefined, ['editor', 'LogoMark', 'AppHeader'])).toEqual(['LogoMark', 'AppHeader']);
49
+ });
50
+ });
51
+ //# sourceMappingURL=editor.isolateArgs.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.isolateArgs.test.js","sourceRoot":"","sources":["../../../../../src/commands/__tests__/editor.isolateArgs.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,qDAAqD;QACrD,MAAM,CAAC,gBAAgB,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAChE,UAAU;YACV,WAAW;YACX,QAAQ;SACT,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,gBAAgB,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAChE,UAAU;YACV,WAAW;YACX,QAAQ;SACT,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,mDAAmD;QACnD,mEAAmE;QACnE,MAAM,CACJ,gBAAgB,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAChE,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CACJ,gBAAgB,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAClE,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1D,UAAU;YACV,WAAW;SACZ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CACJ,gBAAgB,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CACjE,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,55 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ /**
4
+ * Structural test: every writeState() call in editor.ts must preserve
5
+ * `techStackId` and `appFormats` from the previous state.
6
+ *
7
+ * Bug: Steps 4-18 dropped techStackId from writeState calls, causing
8
+ * getTechStackContext() to fall back to Next.js defaults. This broke
9
+ * `codeyam editor isolate` for Expo projects — it created Next.js-style
10
+ * subdirectories instead of Expo flat files.
11
+ */
12
+ describe('editor state persistence', () => {
13
+ const editorSource = fs.readFileSync(path.join(__dirname, '..', 'editor.ts'), 'utf8');
14
+ // Find all writeState blocks in the source.
15
+ // Each writeState call spans multiple lines like:
16
+ // writeState(root, {
17
+ // feature,
18
+ // step: N,
19
+ // ...
20
+ // });
21
+ const writeStateBlocks = [];
22
+ const lines = editorSource.split('\n');
23
+ for (let i = 0; i < lines.length; i++) {
24
+ if (lines[i].includes('writeState(root,')) {
25
+ // Collect lines until we find the closing `});`
26
+ let block = '';
27
+ for (let j = i; j < lines.length; j++) {
28
+ block += lines[j] + '\n';
29
+ if (lines[j].match(/^\s*\}\);/))
30
+ break;
31
+ }
32
+ writeStateBlocks.push({ lineNumber: i + 1, block });
33
+ }
34
+ }
35
+ it('should find writeState calls in editor.ts', () => {
36
+ expect(writeStateBlocks.length).toBeGreaterThan(10);
37
+ });
38
+ // Filter to only writeState blocks that set a step number (printStep functions).
39
+ // Exclude the handleTemplate/migration-survey writeState that sets step: 0.
40
+ const stepWriteStates = writeStateBlocks.filter(({ block }) => block.match(/step:\s*\d+/) && !block.match(/step:\s*0/));
41
+ it('should find step writeState calls', () => {
42
+ expect(stepWriteStates.length).toBeGreaterThanOrEqual(18);
43
+ });
44
+ for (const { lineNumber, block } of stepWriteStates) {
45
+ const stepMatch = block.match(/step:\s*(\d+)/);
46
+ const stepNum = stepMatch ? stepMatch[1] : '?';
47
+ it(`step ${stepNum} writeState (line ${lineNumber}) should preserve techStackId`, () => {
48
+ expect(block).toContain('techStackId');
49
+ });
50
+ it(`step ${stepNum} writeState (line ${lineNumber}) should preserve appFormats`, () => {
51
+ expect(block).toContain('appFormats');
52
+ });
53
+ }
54
+ });
55
+ //# sourceMappingURL=editor.statePersistence.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.statePersistence.test.js","sourceRoot":"","sources":["../../../../../src/commands/__tests__/editor.statePersistence.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;;;;;;GAQG;AACH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAClC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,EACvC,MAAM,CACP,CAAC;IAEF,4CAA4C;IAC5C,kDAAkD;IAClD,uBAAuB;IACvB,eAAe;IACf,eAAe;IACf,UAAU;IACV,QAAQ;IACR,MAAM,gBAAgB,GAA4C,EAAE,CAAC;IACrE,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC1C,gDAAgD;YAChD,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACzB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;oBAAE,MAAM;YACzC,CAAC;YACD,gBAAgB,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,iFAAiF;IACjF,4EAA4E;IAC5E,MAAM,eAAe,GAAG,gBAAgB,CAAC,MAAM,CAC7C,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CACvE,CAAC;IAEF,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,eAAe,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAE/C,EAAE,CAAC,QAAQ,OAAO,qBAAqB,UAAU,+BAA+B,EAAE,GAAG,EAAE;YACrF,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,QAAQ,OAAO,qBAAqB,UAAU,8BAA8B,EAAE,GAAG,EAAE;YACpF,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,56 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ /**
4
+ * Structural test: the CLI dispatch switch in editor.ts must have case labels
5
+ * for every step 1–18. Without this test, it's easy to add new steps
6
+ * (e.g. 16, 17, 18) to the printStep functions and STEP_LABELS but forget
7
+ * to add matching case labels to the switch statement — causing `codeyam editor N`
8
+ * to silently do nothing for the missing steps.
9
+ *
10
+ * This test reads the source file and parses the switch block that dispatches
11
+ * step numbers to their handlers.
12
+ */
13
+ describe('editor CLI step dispatch', () => {
14
+ const editorSource = fs.readFileSync(path.join(__dirname, '..', 'editor.ts'), 'utf8');
15
+ it('should have switch case labels for all steps 1–18', () => {
16
+ // Find the switch(step) block in the CLI dispatch section.
17
+ // There are two stepFns definitions in editor.ts:
18
+ // 1. Test/debug scenario generator (~line 4658) — uses a for-loop, not a switch
19
+ // 2. CLI dispatch (~line 5263) — uses switch(step) { case N: ... }
20
+ //
21
+ // We need to verify the second one (CLI dispatch) has cases for all 18 steps.
22
+ // Find all `case N:` labels in the file. The CLI dispatch switch is the
23
+ // only switch on `step` that uses numbered cases.
24
+ const switchMatch = editorSource.match(/switch\s*\(step\)\s*\{([\s\S]*?)\n\s{4}\}/);
25
+ expect(switchMatch).not.toBeNull();
26
+ const switchBody = switchMatch[1];
27
+ for (let step = 1; step <= 18; step++) {
28
+ const casePattern = new RegExp(`case\\s+${step}\\s*[:{]`);
29
+ expect(switchBody).toMatch(casePattern);
30
+ }
31
+ });
32
+ it('should have STEP_LABELS entries for all steps 1–18', () => {
33
+ for (let step = 1; step <= 18; step++) {
34
+ const labelPattern = new RegExp(`${step}:\\s*'[^']+'`);
35
+ expect(editorSource).toMatch(labelPattern);
36
+ }
37
+ });
38
+ it('should have printStep functions defined for all steps 1–18', () => {
39
+ for (let step = 1; step <= 18; step++) {
40
+ const fnPattern = new RegExp(`function\\s+printStep${step}\\s*\\(`);
41
+ expect(editorSource).toMatch(fnPattern);
42
+ }
43
+ });
44
+ it('should include dimension in all preview commands that contain scenarioId', () => {
45
+ // Find all lines that contain a preview command with scenarioId.
46
+ // Every such line must also include "dimension" to avoid Claude getting
47
+ // an error when copying the example command verbatim.
48
+ const lines = editorSource.split('\n');
49
+ const previewWithScenarioId = lines.filter((line) => line.includes('scenarioId') && line.includes('preview'));
50
+ expect(previewWithScenarioId.length).toBeGreaterThan(0);
51
+ for (const line of previewWithScenarioId) {
52
+ expect(line).toContain('dimension');
53
+ }
54
+ });
55
+ });
56
+ //# sourceMappingURL=editor.stepDispatch.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.stepDispatch.test.js","sourceRoot":"","sources":["../../../../../src/commands/__tests__/editor.stepDispatch.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;;;;;;;GASG;AACH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAClC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,EACvC,MAAM,CACP,CAAC;IAEF,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,2DAA2D;QAC3D,kDAAkD;QAClD,kFAAkF;QAClF,qEAAqE;QACrE,EAAE;QACF,8EAA8E;QAE9E,wEAAwE;QACxE,kDAAkD;QAClD,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CACpC,2CAA2C,CAC5C,CAAC;QACF,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAEnC,MAAM,UAAU,GAAG,WAAY,CAAC,CAAC,CAAC,CAAC;QAEnC,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;YACtC,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,WAAW,IAAI,UAAU,CAAC,CAAC;YAC1D,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;YACtC,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC;YACvD,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,wBAAwB,IAAI,SAAS,CAAC,CAAC;YACpE,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,iEAAiE;QACjE,wEAAwE;QACxE,sDAAsD;QACtD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,qBAAqB,GAAG,KAAK,CAAC,MAAM,CACxC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAClE,CAAC;QAEF,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACxD,KAAK,MAAM,IAAI,IAAI,qBAAqB,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}