@codeyam/codeyam-cli 0.1.0-staging.dbc742d → 0.1.0-staging.df25827

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 (479) hide show
  1. package/analyzer-template/.build-info.json +8 -8
  2. package/analyzer-template/log.txt +3 -3
  3. package/analyzer-template/package.json +6 -6
  4. package/analyzer-template/packages/ai/package.json +1 -1
  5. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +135 -0
  6. package/analyzer-template/packages/ai/src/lib/astScopes/nodeToSource.ts +19 -0
  7. package/analyzer-template/packages/ai/src/lib/astScopes/paths.ts +11 -4
  8. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +36 -9
  9. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.ts +10 -3
  10. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +16 -6
  11. package/analyzer-template/packages/analyze/index.ts +4 -1
  12. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +28 -2
  13. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +5 -36
  14. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +10 -6
  15. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +9 -12
  16. package/analyzer-template/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.ts +21 -0
  17. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +82 -10
  18. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +4 -0
  19. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +4 -0
  20. package/analyzer-template/packages/analyze/src/lib/files/analyzeNextRoute.ts +8 -3
  21. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +239 -58
  22. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +1684 -1462
  23. package/analyzer-template/packages/aws/package.json +7 -7
  24. package/analyzer-template/packages/database/package.json +3 -3
  25. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +77 -6
  26. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +25 -15
  27. package/analyzer-template/packages/database/src/lib/loadEntity.ts +19 -8
  28. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +5 -1
  29. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -1
  30. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +79 -6
  31. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
  32. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  33. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +7 -1
  34. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  35. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.d.ts +4 -1
  36. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.d.ts.map +1 -1
  37. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js +5 -5
  38. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js.map +1 -1
  39. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts +3 -1
  40. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  41. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +22 -1
  42. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  43. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +27 -0
  44. package/analyzer-template/project/analyzeFileEntities.ts +26 -0
  45. package/analyzer-template/project/runMultiScenarioServer.ts +26 -3
  46. package/background/src/lib/virtualized/project/analyzeFileEntities.js +22 -0
  47. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  48. package/background/src/lib/virtualized/project/runMultiScenarioServer.js +23 -3
  49. package/background/src/lib/virtualized/project/runMultiScenarioServer.js.map +1 -1
  50. package/codeyam-cli/src/cli.js +24 -0
  51. package/codeyam-cli/src/cli.js.map +1 -1
  52. package/codeyam-cli/src/commands/__tests__/editor.analyzeImportsArgs.test.js +47 -0
  53. package/codeyam-cli/src/commands/__tests__/editor.analyzeImportsArgs.test.js.map +1 -0
  54. package/codeyam-cli/src/commands/__tests__/editor.auditNoAutoAnalysis.test.js +71 -0
  55. package/codeyam-cli/src/commands/__tests__/editor.auditNoAutoAnalysis.test.js.map +1 -0
  56. package/codeyam-cli/src/commands/__tests__/editor.designSystem.test.js +30 -0
  57. package/codeyam-cli/src/commands/__tests__/editor.designSystem.test.js.map +1 -0
  58. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js +51 -0
  59. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js.map +1 -0
  60. package/codeyam-cli/src/commands/__tests__/editor.statePersistence.test.js +55 -0
  61. package/codeyam-cli/src/commands/__tests__/editor.statePersistence.test.js.map +1 -0
  62. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js +56 -0
  63. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js.map +1 -0
  64. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js +39 -3
  65. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js.map +1 -1
  66. package/codeyam-cli/src/commands/editor.js +3819 -624
  67. package/codeyam-cli/src/commands/editor.js.map +1 -1
  68. package/codeyam-cli/src/commands/editorAnalyzeImportsArgs.js +23 -0
  69. package/codeyam-cli/src/commands/editorAnalyzeImportsArgs.js.map +1 -0
  70. package/codeyam-cli/src/commands/editorIsolateArgs.js +25 -0
  71. package/codeyam-cli/src/commands/editorIsolateArgs.js.map +1 -0
  72. package/codeyam-cli/src/commands/init.js +22 -0
  73. package/codeyam-cli/src/commands/init.js.map +1 -1
  74. package/codeyam-cli/src/commands/telemetry.js +37 -0
  75. package/codeyam-cli/src/commands/telemetry.js.map +1 -0
  76. package/codeyam-cli/src/data/designSystems.js +27 -0
  77. package/codeyam-cli/src/data/designSystems.js.map +1 -0
  78. package/codeyam-cli/src/data/techStacks.js +1 -1
  79. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js +173 -0
  80. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js.map +1 -0
  81. package/codeyam-cli/src/utils/__tests__/devServerState.test.js +93 -1
  82. package/codeyam-cli/src/utils/__tests__/devServerState.test.js.map +1 -1
  83. package/codeyam-cli/src/utils/__tests__/editorApi.test.js +62 -8
  84. package/codeyam-cli/src/utils/__tests__/editorApi.test.js.map +1 -1
  85. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +3526 -1
  86. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -1
  87. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js +76 -0
  88. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js.map +1 -0
  89. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js +137 -0
  90. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js.map +1 -0
  91. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js +100 -0
  92. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js.map +1 -0
  93. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js +76 -3
  94. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js.map +1 -1
  95. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js +381 -0
  96. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js.map +1 -0
  97. package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js +67 -0
  98. package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js.map +1 -0
  99. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js +75 -1
  100. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js.map +1 -1
  101. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js +435 -0
  102. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js.map +1 -0
  103. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js +73 -1
  104. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js.map +1 -1
  105. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js +98 -1
  106. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js.map +1 -1
  107. package/codeyam-cli/src/utils/__tests__/editorRoadmap.test.js +1108 -0
  108. package/codeyam-cli/src/utils/__tests__/editorRoadmap.test.js.map +1 -0
  109. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js +190 -0
  110. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js.map +1 -1
  111. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +936 -9
  112. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -1
  113. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js +201 -1
  114. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js.map +1 -1
  115. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js +143 -0
  116. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js.map +1 -0
  117. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js +66 -0
  118. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js.map +1 -0
  119. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js +53 -0
  120. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js.map +1 -0
  121. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +390 -11
  122. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -1
  123. package/codeyam-cli/src/utils/__tests__/envFile.test.js +125 -0
  124. package/codeyam-cli/src/utils/__tests__/envFile.test.js.map +1 -0
  125. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js +177 -0
  126. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js.map +1 -0
  127. package/codeyam-cli/src/utils/__tests__/handoffContext.test.js +500 -0
  128. package/codeyam-cli/src/utils/__tests__/handoffContext.test.js.map +1 -0
  129. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js +16 -1
  130. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js.map +1 -1
  131. package/codeyam-cli/src/utils/__tests__/manualEntityAnalysis.test.js +302 -0
  132. package/codeyam-cli/src/utils/__tests__/manualEntityAnalysis.test.js.map +1 -0
  133. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js +30 -2
  134. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js.map +1 -1
  135. package/codeyam-cli/src/utils/__tests__/registerScenarioResult.test.js +127 -0
  136. package/codeyam-cli/src/utils/__tests__/registerScenarioResult.test.js.map +1 -0
  137. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js +118 -0
  138. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js.map +1 -0
  139. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js +57 -0
  140. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js.map +1 -1
  141. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +373 -1
  142. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -1
  143. package/codeyam-cli/src/utils/__tests__/screenshotHash.test.js +84 -0
  144. package/codeyam-cli/src/utils/__tests__/screenshotHash.test.js.map +1 -0
  145. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +1 -0
  146. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  147. package/codeyam-cli/src/utils/__tests__/telemetry.test.js +159 -0
  148. package/codeyam-cli/src/utils/__tests__/telemetry.test.js.map +1 -0
  149. package/codeyam-cli/src/utils/__tests__/testRunner.test.js +216 -0
  150. package/codeyam-cli/src/utils/__tests__/testRunner.test.js.map +1 -0
  151. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js +6 -0
  152. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js.map +1 -1
  153. package/codeyam-cli/src/utils/analysisRunner.js +39 -8
  154. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  155. package/codeyam-cli/src/utils/analyzer.js +11 -1
  156. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  157. package/codeyam-cli/src/utils/analyzerFinalization.js +100 -0
  158. package/codeyam-cli/src/utils/analyzerFinalization.js.map +1 -0
  159. package/codeyam-cli/src/utils/backgroundServer.js +1 -1
  160. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  161. package/codeyam-cli/src/utils/designSystemShowcase.js +810 -0
  162. package/codeyam-cli/src/utils/designSystemShowcase.js.map +1 -0
  163. package/codeyam-cli/src/utils/devServerState.js +32 -0
  164. package/codeyam-cli/src/utils/devServerState.js.map +1 -1
  165. package/codeyam-cli/src/utils/editorApi.js +27 -5
  166. package/codeyam-cli/src/utils/editorApi.js.map +1 -1
  167. package/codeyam-cli/src/utils/editorAudit.js +700 -10
  168. package/codeyam-cli/src/utils/editorAudit.js.map +1 -1
  169. package/codeyam-cli/src/utils/editorBroadcastViewport.js +26 -0
  170. package/codeyam-cli/src/utils/editorBroadcastViewport.js.map +1 -0
  171. package/codeyam-cli/src/utils/editorDeleteScenario.js +67 -0
  172. package/codeyam-cli/src/utils/editorDeleteScenario.js.map +1 -0
  173. package/codeyam-cli/src/utils/editorEntityChangeStatus.js +13 -7
  174. package/codeyam-cli/src/utils/editorEntityChangeStatus.js.map +1 -1
  175. package/codeyam-cli/src/utils/editorEntityHelpers.js +144 -0
  176. package/codeyam-cli/src/utils/editorEntityHelpers.js.map +1 -0
  177. package/codeyam-cli/src/utils/editorGuard.js +36 -0
  178. package/codeyam-cli/src/utils/editorGuard.js.map +1 -0
  179. package/codeyam-cli/src/utils/editorLoaderHelpers.js +40 -1
  180. package/codeyam-cli/src/utils/editorLoaderHelpers.js.map +1 -1
  181. package/codeyam-cli/src/utils/editorMigration.js +224 -0
  182. package/codeyam-cli/src/utils/editorMigration.js.map +1 -0
  183. package/codeyam-cli/src/utils/editorPreview.js +33 -0
  184. package/codeyam-cli/src/utils/editorPreview.js.map +1 -1
  185. package/codeyam-cli/src/utils/editorRecapture.js +109 -0
  186. package/codeyam-cli/src/utils/editorRecapture.js.map +1 -0
  187. package/codeyam-cli/src/utils/editorRoadmap.js +574 -0
  188. package/codeyam-cli/src/utils/editorRoadmap.js.map +1 -0
  189. package/codeyam-cli/src/utils/editorScenarioSwitch.js +39 -2
  190. package/codeyam-cli/src/utils/editorScenarioSwitch.js.map +1 -1
  191. package/codeyam-cli/src/utils/editorScenarios.js +375 -16
  192. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -1
  193. package/codeyam-cli/src/utils/editorSeedAdapter.js +308 -6
  194. package/codeyam-cli/src/utils/editorSeedAdapter.js.map +1 -1
  195. package/codeyam-cli/src/utils/editorShouldRevalidate.js +21 -0
  196. package/codeyam-cli/src/utils/editorShouldRevalidate.js.map +1 -0
  197. package/codeyam-cli/src/utils/entityChangeStatus.js +50 -5
  198. package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -1
  199. package/codeyam-cli/src/utils/entityChangeStatus.server.js +72 -3
  200. package/codeyam-cli/src/utils/entityChangeStatus.server.js.map +1 -1
  201. package/codeyam-cli/src/utils/envFile.js +90 -0
  202. package/codeyam-cli/src/utils/envFile.js.map +1 -0
  203. package/codeyam-cli/src/utils/fileWatcher.js +38 -0
  204. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  205. package/codeyam-cli/src/utils/glossaryAdd.js +74 -0
  206. package/codeyam-cli/src/utils/glossaryAdd.js.map +1 -0
  207. package/codeyam-cli/src/utils/handoffContext.js +257 -0
  208. package/codeyam-cli/src/utils/handoffContext.js.map +1 -0
  209. package/codeyam-cli/src/utils/install-skills.js +50 -6
  210. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  211. package/codeyam-cli/src/utils/manualEntityAnalysis.js +196 -0
  212. package/codeyam-cli/src/utils/manualEntityAnalysis.js.map +1 -0
  213. package/codeyam-cli/src/utils/parseRegisterArg.js.map +1 -1
  214. package/codeyam-cli/src/utils/progress.js +2 -2
  215. package/codeyam-cli/src/utils/progress.js.map +1 -1
  216. package/codeyam-cli/src/utils/queue/__tests__/job.interactiveStart.test.js +159 -0
  217. package/codeyam-cli/src/utils/queue/__tests__/job.interactiveStart.test.js.map +1 -0
  218. package/codeyam-cli/src/utils/queue/job.js +35 -6
  219. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  220. package/codeyam-cli/src/utils/registerScenarioResult.js +52 -0
  221. package/codeyam-cli/src/utils/registerScenarioResult.js.map +1 -0
  222. package/codeyam-cli/src/utils/routePatternMatching.js +129 -0
  223. package/codeyam-cli/src/utils/routePatternMatching.js.map +1 -0
  224. package/codeyam-cli/src/utils/scenarioCoverage.js +12 -10
  225. package/codeyam-cli/src/utils/scenarioCoverage.js.map +1 -1
  226. package/codeyam-cli/src/utils/scenariosManifest.js +154 -0
  227. package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -1
  228. package/codeyam-cli/src/utils/screenshotHash.js +26 -0
  229. package/codeyam-cli/src/utils/screenshotHash.js.map +1 -0
  230. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +1 -0
  231. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  232. package/codeyam-cli/src/utils/simulationGateMiddleware.js +9 -0
  233. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -1
  234. package/codeyam-cli/src/utils/techStackConfig.js +38 -0
  235. package/codeyam-cli/src/utils/techStackConfig.js.map +1 -0
  236. package/codeyam-cli/src/utils/techStackConfig.test.js +85 -0
  237. package/codeyam-cli/src/utils/techStackConfig.test.js.map +1 -0
  238. package/codeyam-cli/src/utils/telemetry.js +106 -0
  239. package/codeyam-cli/src/utils/telemetry.js.map +1 -0
  240. package/codeyam-cli/src/utils/telemetryMiddleware.js +22 -0
  241. package/codeyam-cli/src/utils/telemetryMiddleware.js.map +1 -0
  242. package/codeyam-cli/src/utils/testResultCache.js +53 -0
  243. package/codeyam-cli/src/utils/testResultCache.js.map +1 -0
  244. package/codeyam-cli/src/utils/testResultCache.server.js +81 -0
  245. package/codeyam-cli/src/utils/testResultCache.server.js.map +1 -0
  246. package/codeyam-cli/src/utils/testResultCache.server.test.js +187 -0
  247. package/codeyam-cli/src/utils/testResultCache.server.test.js.map +1 -0
  248. package/codeyam-cli/src/utils/testResultCache.test.js +230 -0
  249. package/codeyam-cli/src/utils/testResultCache.test.js.map +1 -0
  250. package/codeyam-cli/src/utils/testRunner.js +193 -1
  251. package/codeyam-cli/src/utils/testRunner.js.map +1 -1
  252. package/codeyam-cli/src/utils/webappDetection.js +4 -2
  253. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  254. package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js +99 -0
  255. package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js.map +1 -0
  256. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js +153 -0
  257. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js.map +1 -0
  258. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js +68 -1
  259. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js.map +1 -1
  260. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +454 -4
  261. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -1
  262. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js +315 -0
  263. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js.map +1 -0
  264. package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js +135 -0
  265. package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js.map +1 -0
  266. package/codeyam-cli/src/webserver/app/lib/clientErrors.js +22 -1
  267. package/codeyam-cli/src/webserver/app/lib/clientErrors.js.map +1 -1
  268. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  269. package/codeyam-cli/src/webserver/app/lib/git.js +3 -2
  270. package/codeyam-cli/src/webserver/app/lib/git.js.map +1 -1
  271. package/codeyam-cli/src/webserver/app/routes/api.interactive-switch-scenario.js +34 -0
  272. package/codeyam-cli/src/webserver/app/routes/api.interactive-switch-scenario.js.map +1 -0
  273. package/codeyam-cli/src/webserver/app/types/editor.js +8 -0
  274. package/codeyam-cli/src/webserver/app/types/editor.js.map +1 -0
  275. package/codeyam-cli/src/webserver/backgroundServer.js +60 -61
  276. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  277. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-DTBZZfSk.js +1 -0
  278. package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-BcgbViKV.js → EntityItem-BxclONWq.js} +3 -3
  279. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-CQgyEGV-.js +1 -0
  280. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-CQIG2qda.js → EntityTypeIcon-BsnEOJZ_.js} +1 -1
  281. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-ByaELMbv.js +1 -0
  282. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-6WjVfhxX.js +25 -0
  283. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-ChX-Hp7W.js +3 -0
  284. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-BU_OAEMP.js → LoadingDots-By5zI316.js} +1 -1
  285. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-ceAyBX-H.js → LogViewer-C-9zQdXg.js} +3 -3
  286. package/codeyam-cli/src/webserver/build/client/assets/MiniClaudeChat-Bs2_Oua4.js +36 -0
  287. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-BzHcG7SE.js → ReportIssueModal-DQsceHVv.js} +2 -2
  288. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-DThcm_9M.js +1 -0
  289. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-0DY_NKil.js → ScenarioViewer-Cl4oOA3A.js} +3 -3
  290. package/codeyam-cli/src/webserver/build/client/assets/Spinner-CIil5-gb.js +34 -0
  291. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-CK7-NaPZ.js +1 -0
  292. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-BqkA9zyZ.js +1 -0
  293. package/codeyam-cli/src/webserver/build/client/assets/{_index-DLxKhri3.js → _index-DnOgyseQ.js} +2 -2
  294. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-BcY3q6nt.js → activity.(_tab)-DqM9hbNE.js} +3 -3
  295. package/codeyam-cli/src/webserver/build/client/assets/{addon-web-links-Duc5hnl7.js → addon-web-links-C58dYPwR.js} +1 -1
  296. package/codeyam-cli/src/webserver/build/client/assets/{agent-transcripts-Bni3iiUj.js → agent-transcripts-B8NCeOrm.js} +3 -3
  297. package/codeyam-cli/src/webserver/build/client/assets/api.editor-database-verify-l0sNRNKZ.js +1 -0
  298. package/codeyam-cli/src/webserver/build/client/assets/api.editor-github-verify-l0sNRNKZ.js +1 -0
  299. package/codeyam-cli/src/webserver/build/client/assets/api.editor-handoff-l0sNRNKZ.js +1 -0
  300. package/codeyam-cli/src/webserver/build/client/assets/api.editor-hosting-verify-l0sNRNKZ.js +1 -0
  301. package/codeyam-cli/src/webserver/build/client/assets/api.editor-recapture-stale-l0sNRNKZ.js +1 -0
  302. package/codeyam-cli/src/webserver/build/client/assets/api.editor-rename-scenario-l0sNRNKZ.js +1 -0
  303. package/codeyam-cli/src/webserver/build/client/assets/api.editor-roadmap-l0sNRNKZ.js +1 -0
  304. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-scenario-data-l0sNRNKZ.js +1 -0
  305. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-seed-state-l0sNRNKZ.js +1 -0
  306. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-prompt-l0sNRNKZ.js +1 -0
  307. package/codeyam-cli/src/webserver/build/client/assets/api.editor-schema-l0sNRNKZ.js +1 -0
  308. package/codeyam-cli/src/webserver/build/client/assets/api.editor-session-l0sNRNKZ.js +1 -0
  309. package/codeyam-cli/src/webserver/build/client/assets/api.editor-verify-routes-l0sNRNKZ.js +1 -0
  310. package/codeyam-cli/src/webserver/build/client/assets/api.interactive-switch-scenario-l0sNRNKZ.js +1 -0
  311. package/codeyam-cli/src/webserver/build/client/assets/{book-open-BYOypzCa.js → book-open-BFSIqZgO.js} +1 -1
  312. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-C_Pmso5S.js → chevron-down-B9fDzFVh.js} +1 -1
  313. package/codeyam-cli/src/webserver/build/client/assets/chunk-UVKPFVEO-Bmq2apuh.js +43 -0
  314. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-BVMi9VA5.js → circle-check-DLPObLUx.js} +1 -1
  315. package/codeyam-cli/src/webserver/build/client/assets/{copy-n2FB0_Sw.js → copy-DXEmO0TD.js} +1 -1
  316. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-CC6AbExI.js → createLucideIcon-BwyFiRot.js} +1 -1
  317. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-Coe5NhbS.js +1 -0
  318. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-CCKUIm0S.svg → cy-logo-cli-DoA97ML3.svg} +2 -2
  319. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-iRhRIFlp.js +1 -0
  320. package/codeyam-cli/src/webserver/build/client/assets/editor._tab-BZPBzV73.js +1 -0
  321. package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-DhtVC4aI.js +161 -0
  322. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-C6fEYHrh.js +41 -0
  323. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-BF4oLwaE.js → entity._sha._-pc-vc6wO.js} +13 -12
  324. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-C8AyYgYT.js +6 -0
  325. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DziaVQX1.js +6 -0
  326. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-BTcpgIpC.js +6 -0
  327. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-BMvVHNXU.js → entity._sha_.edit._scenarioId-D_O_ajfZ.js} +2 -2
  328. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-DTvKq3TY.js → entry.client-j1Vi0bco.js} +6 -6
  329. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-Daa96Fr1.js +1 -0
  330. package/codeyam-cli/src/webserver/build/client/assets/files-kuny2Q_s.js +1 -0
  331. package/codeyam-cli/src/webserver/build/client/assets/git-DgCZPMie.js +1 -0
  332. package/codeyam-cli/src/webserver/build/client/assets/globals-L-aUIeux.css +1 -0
  333. package/codeyam-cli/src/webserver/build/client/assets/{index-BcvgDzbZ.js → index-BliGSSpl.js} +1 -1
  334. package/codeyam-cli/src/webserver/build/client/assets/{index-yHOVb4rc.js → index-SqjQKTdH.js} +1 -1
  335. package/codeyam-cli/src/webserver/build/client/assets/{index-10oVnAAH.js → index-vyrZD2g4.js} +1 -1
  336. package/codeyam-cli/src/webserver/build/client/assets/jsx-runtime-D_zvdyIk.js +9 -0
  337. package/codeyam-cli/src/webserver/build/client/assets/labs-c3yLxSEp.js +1 -0
  338. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-DaAZ_H2w.js → loader-circle-D-q28GLF.js} +1 -1
  339. package/codeyam-cli/src/webserver/build/client/assets/manifest-b0d69c06.js +1 -0
  340. package/codeyam-cli/src/webserver/build/client/assets/{memory-9gnxSZlb.js → memory-CEWIUC4t.js} +2 -2
  341. package/codeyam-cli/src/webserver/build/client/assets/{pause-f5-1lKBt.js → pause-BP6fitdh.js} +1 -1
  342. package/codeyam-cli/src/webserver/build/client/assets/root-CLedrjXQ.js +80 -0
  343. package/codeyam-cli/src/webserver/build/client/assets/{search-Di64LWVb.js → search-BooqacKS.js} +1 -1
  344. package/codeyam-cli/src/webserver/build/client/assets/settings-BM0nbryO.js +1 -0
  345. package/codeyam-cli/src/webserver/build/client/assets/simulations-ovy6FjRY.js +1 -0
  346. package/codeyam-cli/src/webserver/build/client/assets/{terminal-Br7MOqts.js → terminal-DHemCJIs.js} +1 -1
  347. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-BLdiCuG-.js → triangle-alert-D87ekDl8.js} +1 -1
  348. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-Dk0Tciqg.js +1 -0
  349. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-C8QvIe05.js +2 -0
  350. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-jkCytuYz.js +1 -0
  351. package/codeyam-cli/src/webserver/build/client/assets/useToast-BgqkixU9.js +1 -0
  352. package/codeyam-cli/src/webserver/build/client/sound-test.html +98 -0
  353. package/codeyam-cli/src/webserver/build/server/assets/analysisRunner-DPUEhrWo.js +16 -0
  354. package/codeyam-cli/src/webserver/build/server/assets/{index-BWoRb5RY.js → index-oF2amaGI.js} +1 -1
  355. package/codeyam-cli/src/webserver/build/server/assets/init-C42BvUGp.js +14 -0
  356. package/codeyam-cli/src/webserver/build/server/assets/progress-CHTtrxFG.js +1 -0
  357. package/codeyam-cli/src/webserver/build/server/assets/server-build-DiCdDL5d.js +853 -0
  358. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  359. package/codeyam-cli/src/webserver/build-info.json +5 -5
  360. package/codeyam-cli/src/webserver/editorProxy.js +443 -35
  361. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -1
  362. package/codeyam-cli/src/webserver/idleDetector.js +130 -0
  363. package/codeyam-cli/src/webserver/idleDetector.js.map +1 -0
  364. package/codeyam-cli/src/webserver/mockStateEvents.js +28 -0
  365. package/codeyam-cli/src/webserver/mockStateEvents.js.map +1 -0
  366. package/codeyam-cli/src/webserver/public/sound-test.html +98 -0
  367. package/codeyam-cli/src/webserver/scripts/journalCapture.ts +53 -0
  368. package/codeyam-cli/src/webserver/server.js +192 -4
  369. package/codeyam-cli/src/webserver/server.js.map +1 -1
  370. package/codeyam-cli/src/webserver/terminalServer.js +369 -52
  371. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -1
  372. package/codeyam-cli/templates/__tests__/editor-step-hook.prompt-capture.test.ts +118 -0
  373. package/codeyam-cli/templates/codeyam-editor-claude.md +3 -1
  374. package/codeyam-cli/templates/codeyam-editor-codex.md +61 -0
  375. package/codeyam-cli/templates/codeyam-editor-gemini.md +59 -0
  376. package/codeyam-cli/templates/codeyam-editor-reference.md +216 -0
  377. package/codeyam-cli/templates/design-systems/clean-dashboard-design-system.md +255 -0
  378. package/codeyam-cli/templates/design-systems/editorial-design-system.md +267 -0
  379. package/codeyam-cli/templates/design-systems/mono-brutalist-design-system.md +256 -0
  380. package/codeyam-cli/templates/design-systems/neo-brutalist-design-system.md +294 -0
  381. package/codeyam-cli/templates/editor-step-hook.py +193 -56
  382. package/codeyam-cli/templates/expo-react-native/MOBILE_SETUP.md +204 -5
  383. package/codeyam-cli/templates/expo-react-native/__tests__/.gitkeep +0 -0
  384. package/codeyam-cli/templates/expo-react-native/app/_layout.tsx +6 -3
  385. package/codeyam-cli/templates/expo-react-native/app/index.tsx +36 -0
  386. package/codeyam-cli/templates/expo-react-native/app.json +11 -0
  387. package/codeyam-cli/templates/expo-react-native/babel.config.js +1 -0
  388. package/codeyam-cli/templates/expo-react-native/gitignore +2 -0
  389. package/codeyam-cli/templates/expo-react-native/global.css +7 -0
  390. package/codeyam-cli/templates/expo-react-native/lib/theme.ts +73 -0
  391. package/codeyam-cli/templates/expo-react-native/package.json +32 -16
  392. package/codeyam-cli/templates/expo-react-native/patches/expo-modules-autolinking+3.0.24.patch +29 -0
  393. package/codeyam-cli/templates/isolation-route/expo-router.tsx.template +54 -0
  394. package/codeyam-cli/templates/nextjs-prisma-sqlite/gitignore +1 -0
  395. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +1 -1
  396. package/codeyam-cli/templates/nextjs-prisma-sqlite/seed-adapter.ts +88 -40
  397. package/codeyam-cli/templates/nextjs-prisma-supabase/package.json +1 -1
  398. package/codeyam-cli/templates/seed-adapters/supabase.ts +475 -0
  399. package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +106 -10
  400. package/package.json +2 -1
  401. package/packages/ai/src/lib/astScopes/methodSemantics.js +99 -0
  402. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  403. package/packages/ai/src/lib/astScopes/nodeToSource.js +16 -0
  404. package/packages/ai/src/lib/astScopes/nodeToSource.js.map +1 -1
  405. package/packages/ai/src/lib/astScopes/paths.js +12 -3
  406. package/packages/ai/src/lib/astScopes/paths.js.map +1 -1
  407. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +27 -10
  408. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  409. package/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.js +9 -2
  410. package/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.js.map +1 -1
  411. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +14 -4
  412. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  413. package/packages/analyze/index.js +1 -1
  414. package/packages/analyze/index.js.map +1 -1
  415. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +16 -2
  416. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  417. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +6 -26
  418. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  419. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +3 -2
  420. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  421. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +9 -7
  422. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  423. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js +14 -0
  424. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js.map +1 -1
  425. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +44 -11
  426. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  427. package/packages/analyze/src/lib/files/analyzeChange.js +1 -0
  428. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  429. package/packages/analyze/src/lib/files/analyzeInitial.js +1 -0
  430. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  431. package/packages/analyze/src/lib/files/analyzeNextRoute.js +5 -1
  432. package/packages/analyze/src/lib/files/analyzeNextRoute.js.map +1 -1
  433. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +120 -28
  434. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  435. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +1368 -1193
  436. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  437. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +79 -6
  438. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
  439. package/packages/database/src/lib/loadAnalysis.js +7 -1
  440. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  441. package/packages/database/src/lib/loadEntity.js +5 -5
  442. package/packages/database/src/lib/loadEntity.js.map +1 -1
  443. package/packages/utils/src/lib/fs/rsyncCopy.js +22 -1
  444. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  445. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-BPXZwM4t.js +0 -1
  446. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-g3saevPb.js +0 -1
  447. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-Bu6c6aDe.js +0 -1
  448. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-DYFW3lDD.js +0 -25
  449. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-DLeucoVX.js +0 -3
  450. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-BED4B6sP.js +0 -1
  451. package/codeyam-cli/src/webserver/build/client/assets/Spinner-Bb5uFQ5V.js +0 -34
  452. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-C8OKAR5x.js +0 -1
  453. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-oAf2Kqsf.js +0 -1
  454. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-C4pqxYJB.js +0 -51
  455. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +0 -1
  456. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-Csi0_PMl.js +0 -1
  457. package/codeyam-cli/src/webserver/build/client/assets/editor-BBAGP_mE.js +0 -10
  458. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-BLQMSKZa.js +0 -41
  459. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-C7YX6r3H.js +0 -6
  460. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-CF164ouH.js +0 -6
  461. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-p9hhkjJM.js +0 -6
  462. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-cPo8LiG3.js +0 -1
  463. package/codeyam-cli/src/webserver/build/client/assets/files-BZrlFE1F.js +0 -1
  464. package/codeyam-cli/src/webserver/build/client/assets/git-DdZcvjGh.js +0 -1
  465. package/codeyam-cli/src/webserver/build/client/assets/globals-COUSHTyZ.css +0 -1
  466. package/codeyam-cli/src/webserver/build/client/assets/labs-Zk7ryIM1.js +0 -1
  467. package/codeyam-cli/src/webserver/build/client/assets/manifest-9c70d1f3.js +0 -1
  468. package/codeyam-cli/src/webserver/build/client/assets/root-CHOdrM6Y.js +0 -67
  469. package/codeyam-cli/src/webserver/build/client/assets/settings-0OrEMU6J.js +0 -1
  470. package/codeyam-cli/src/webserver/build/client/assets/simulations-DWT-CvLy.js +0 -1
  471. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-CrAK28Bc.js +0 -1
  472. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-C14nCb1q.js +0 -2
  473. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-O-jkvSPx.js +0 -1
  474. package/codeyam-cli/src/webserver/build/client/assets/useToast-9FIWuYfK.js +0 -1
  475. package/codeyam-cli/src/webserver/build/server/assets/init-DbChSUQP.js +0 -10
  476. package/codeyam-cli/src/webserver/build/server/assets/server-build-BtbLQkKd.js +0 -433
  477. package/codeyam-cli/templates/expo-react-native/app/(tabs)/_layout.tsx +0 -33
  478. package/codeyam-cli/templates/expo-react-native/app/(tabs)/index.tsx +0 -12
  479. package/codeyam-cli/templates/expo-react-native/app/(tabs)/settings.tsx +0 -12
@@ -1 +0,0 @@
1
- import{w as R,u as $,r as l,j as e,a as B,d as D,L as F}from"./chunk-JZWAC4HX-C4pqxYJB.js";import{u as O}from"./useReportContext-O-jkvSPx.js";import{S as U}from"./SafeScreenshot-BED4B6sP.js";import{L as V}from"./LoadingDots-BU_OAEMP.js";import{E as P}from"./EntityTypeIcon-CQIG2qda.js";import{g as Y,a as Q,f as q}from"./fileTableUtils-cPo8LiG3.js";import{C as J}from"./chevron-down-C_Pmso5S.js";import{S as K}from"./search-Di64LWVb.js";import{L as W}from"./loader-circle-DaAZ_H2w.js";import"./createLucideIcon-CC6AbExI.js";const ie=()=>[{title:"Simulations - CodeYam"},{name:"description",content:"A visual gallery of your recently captured component screenshots"}],ce=R(function(){const i=$(),c=i.entities,x=i.queueState;O({source:"simulations-page"});const[n,u]=l.useState(""),[d,S]=l.useState("visual"),g=l.useMemo(()=>{const a=[];return c.forEach(t=>{var y;const r=(y=t.analyses)==null?void 0:y[0];if(r!=null&&r.scenarios){const b=r.scenarios.filter(o=>{var m;return!((m=o.metadata)!=null&&m.sameAsDefault)}).map(o=>{var z,k,A,L,E;const m=(k=(z=o.metadata)==null?void 0:z.screenshotPaths)==null?void 0:k[0],N=(A=o.metadata)==null?void 0:A.noScreenshotSaved,M=m&&!N,T=(E=(L=r.status)==null?void 0:L.scenarios)==null?void 0:E.find(H=>H.name===o.name),I=T&&T.screenshotStartedAt&&!T.screenshotFinishedAt;let w;return M?w="completed":I?w="capturing":w="error",{scenarioName:o.name,scenarioDescription:o.description||"",screenshotPath:m||"",scenarioId:o.id,state:w}}).filter(o=>o.state==="completed"||o.state==="capturing");b.length>0&&a.push({entity:t,screenshots:b,createdAt:r.createdAt||""})}}),a.sort((t,r)=>new Date(r.createdAt).getTime()-new Date(t.createdAt).getTime()),a},[c]),v=l.useMemo(()=>c.filter(a=>{var y,b;const t=(y=a.analyses)==null?void 0:y[0];return!((b=t==null?void 0:t.scenarios)==null?void 0:b.some(o=>{var m,N;return(N=(m=o.metadata)==null?void 0:m.screenshotPaths)==null?void 0:N[0]}))}),[c]),p=l.useMemo(()=>g.filter(({entity:a})=>{const t=!n||a.name.toLowerCase().includes(n.toLowerCase()),r=d==="all"||a.entityType===d;return t&&r}),[g,n,d]),f=l.useMemo(()=>v.filter(a=>{const t=!n||a.name.toLowerCase().includes(n.toLowerCase()),r=d==="all"||a.entityType===d;return t&&r}),[v,n,d]),C=l.useCallback(a=>{u(a.target.value)},[]),j=l.useCallback(a=>{S(a.target.value)},[]),h=g.length>0;return e.jsx("div",{className:"bg-[#F8F7F6] min-h-screen overflow-y-auto",children:e.jsxs("div",{className:"px-20 py-12",children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("h1",{className:"text-[28px] font-semibold text-gray-900 mb-2",children:"Simulations"}),e.jsx("p",{className:"text-[15px] text-gray-500",children:"A visual gallery of your recently captured simulations."})]}),!h&&e.jsx("div",{className:"bg-[#D1F3F9] border border-[#A5E8F0] rounded-lg p-4 mb-6",children:e.jsxs("p",{className:"text-sm text-gray-700 m-0",children:["This page will display a visual gallery of your recently captured component simulations."," ",e.jsx("strong",{children:"Start by analyzing your first component below."})]})}),e.jsxs("div",{className:"bg-white border-b border-gray-200 rounded-t-lg px-5 py-4 mb-3",children:[e.jsx("div",{className:"text-[11px] text-gray-500 mb-2 uppercase",children:"Filters"}),e.jsxs("div",{className:"flex gap-3",children:[e.jsxs("div",{className:"relative",children:[e.jsxs("select",{className:"appearance-none bg-gray-50 border border-gray-200 rounded px-3 pr-8 text-[13px] h-[39px] cursor-pointer focus:outline-none focus:ring-0 focus:border-2 focus:border-[#005c75] hover:border-gray-300 transition-colors",value:d,onChange:j,children:[e.jsx("option",{value:"all",children:"All Types"}),e.jsx("option",{value:"visual",children:"Visual"}),e.jsx("option",{value:"library",children:"Library"})]}),e.jsx(J,{className:"absolute right-2 top-1/2 -translate-y-1/2 w-3 h-3 text-gray-500 pointer-events-none"})]}),e.jsxs("div",{className:"flex-1 relative",children:[e.jsx(K,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),e.jsx("input",{type:"text",placeholder:"Search component",className:"w-full bg-gray-50 border border-gray-200 rounded pl-9 pr-3 text-[13px] h-[39px] placeholder:text-gray-400 focus:outline-none focus:ring-0 focus:border-2 focus:border-[#005c75] transition-colors",value:n,onChange:C})]})]})]}),h&&p.length>0&&e.jsx("div",{className:"mb-2",children:e.jsxs("div",{className:"flex items-center py-3",children:[e.jsxs("span",{className:"font-mono uppercase",style:{fontSize:"11px",color:"#8b8b8b",fontWeight:500,letterSpacing:"0.05em"},children:[e.jsx("span",{style:{color:"#000000"},children:p.length})," ",p.length===1?"entity":"entities"]}),e.jsxs("div",{className:"relative group inline-flex items-center ml-1.5",children:[e.jsx("svg",{className:"w-3 h-3 text-gray-400 cursor-help",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),e.jsx("div",{className:"absolute left-0 top-full mt-2 hidden group-hover:block z-50 w-80",children:e.jsxs("div",{className:"bg-gray-900 text-white text-xs rounded-lg px-3 py-2 shadow-lg",children:["In CodeYam, an entity is a discrete, analyzable unit of code that can be independently simulated and tested.",e.jsx("div",{className:"absolute -top-1 left-4 w-2 h-2 bg-gray-900 transform rotate-45"})]})})]}),e.jsx("span",{className:"font-mono uppercase",style:{fontSize:"11px",color:"#d1d5db",fontWeight:500,letterSpacing:"0.05em",marginLeft:"8px"},children:"|"}),e.jsxs("span",{className:"font-mono uppercase",style:{fontSize:"11px",color:"#8b8b8b",fontWeight:500,letterSpacing:"0.05em",marginLeft:"8px"},children:[e.jsx("span",{style:{color:"#000000"},children:p.reduce((a,{screenshots:t})=>a+t.length,0)})," ","scenarios"]})]})}),e.jsxs("div",{className:"flex flex-col gap-3",children:[h&&(p.length===0?e.jsx("div",{className:"bg-white border border-gray-200 rounded-lg p-8 text-center text-gray-500",children:"No simulations match your filters."}):e.jsx(e.Fragment,{children:p.map(({entity:a,screenshots:t})=>e.jsx(G,{entity:a,screenshots:t,queueJobs:(x==null?void 0:x.jobs)||[]},a.sha))})),!h&&(f.length===0?e.jsx("div",{className:"bg-white border border-gray-200 rounded-b-lg p-8 text-center text-gray-500",children:"No components found matching your filters."}):f.map(a=>e.jsx(X,{entity:a},a.sha)))]})]})})});function G({entity:s,screenshots:i,queueJobs:c}){var j,h,a;const x=B(),n=D(),[u,d]=l.useState(!1),S=i.length||(((a=(h=(j=s.analyses)==null?void 0:j[0])==null?void 0:h.scenarios)==null?void 0:a.length)??0),g=t=>{x(`/entity/${s.sha}/scenarios/${t}?from=simulations`)},v=()=>{d(!0),n.submit({entitySha:s.sha,filePath:s.filePath||""},{method:"post",action:"/api/analyze"})};l.useEffect(()=>{n.state==="idle"&&u&&d(!1)},[n.state,u]);const p=Y(s,c),f=Q(p),C=p==="out-of-date";return e.jsx("div",{className:"rounded-[8px]",style:{backgroundColor:"#ffffff",border:"1px solid #e1e1e1"},children:e.jsxs("div",{className:"flex flex-col",children:[e.jsxs("div",{className:"flex items-center px-[15px] py-[15px]",children:[e.jsx("div",{className:"flex-shrink-0",children:e.jsx(P,{type:s.entityType||"other",size:"large"})}),e.jsxs("div",{className:"flex flex-col flex-shrink-0",style:{marginLeft:"15px",gap:"4px"},children:[e.jsxs("div",{className:"flex items-center gap-[5px]",children:[e.jsxs(F,{to:`/entity/${s.sha}`,className:"hover:underline cursor-pointer",title:s.name,style:{fontSize:"14px",lineHeight:"18px",color:"#343434",fontWeight:500},children:[s.name," (",S,")"]}),e.jsx("div",{className:"flex items-center justify-center px-2 rounded",style:{height:"20px",backgroundColor:f.bgColor,color:f.textColor,fontSize:"12px",lineHeight:"16px",fontWeight:400},children:f.text})]}),e.jsx("div",{style:{fontSize:"12px",lineHeight:"15px",color:"#b0b0b0",fontWeight:400},className:"font-mono",title:s.filePath,children:s.filePath})]}),e.jsx("div",{className:"flex-1"}),e.jsxs("div",{className:"flex-shrink-0 flex items-center gap-2",children:[C&&e.jsx(e.Fragment,{children:u||n.state!=="idle"?e.jsxs("div",{className:"px-2 py-1 bg-pink-100 rounded flex items-center gap-1.5",children:[e.jsx(W,{size:14,className:"animate-spin",style:{color:"#be185d"}}),e.jsx("span",{style:{color:"#be185d",fontSize:"10px",lineHeight:"20px",fontWeight:600},children:"Analyzing..."})]}):e.jsx("button",{onClick:v,className:"px-[10px] rounded transition-colors whitespace-nowrap",style:{backgroundColor:"#005c75",color:"#ffffff",fontSize:"10px",lineHeight:"22px",fontWeight:600},onMouseEnter:t=>{t.currentTarget.style.backgroundColor="#004d5e"},onMouseLeave:t=>{t.currentTarget.style.backgroundColor="#005c75"},children:"Re-analyze"})}),e.jsx("button",{onClick:()=>void x(`/entity/${s.sha}/logs`),className:"px-[10px] rounded transition-colors whitespace-nowrap",style:{backgroundColor:"#e0e9ec",color:"#005c75",fontSize:"10px",lineHeight:"22px",fontWeight:600},onMouseEnter:t=>{t.currentTarget.style.backgroundColor="#d0dfe3"},onMouseLeave:t=>{t.currentTarget.style.backgroundColor="#e0e9ec"},children:"View Logs"})]})]}),e.jsx("div",{className:"border-t border-gray-200"}),e.jsx("div",{className:"flex gap-2.5 overflow-x-auto pb-3 px-[15px] pt-3",style:{paddingLeft:"47px"},children:i.length>0?i.map(t=>e.jsxs("div",{className:"shrink-0 flex flex-col gap-2",children:[e.jsx("button",{onClick:()=>g(t.scenarioId||""),className:"block cursor-pointer bg-transparent border-none p-0",children:e.jsx("div",{className:"w-36 h-24 rounded-md border overflow-hidden flex items-center justify-center transition-all",style:{"--hover-border":"#005C75",backgroundColor:t.state==="capturing"?"#f9f9f9":"#f3f4f6",borderColor:t.state==="capturing"?"#efefef":"#d1d5db"},onMouseEnter:r=>{t.state==="completed"&&(r.currentTarget.style.borderColor="#005C75",r.currentTarget.style.boxShadow="0 4px 12px rgba(0, 92, 117, 0.15)")},onMouseLeave:r=>{r.currentTarget.style.borderColor=t.state==="capturing"?"#efefef":"#d1d5db",r.currentTarget.style.boxShadow="none"},children:t.state==="completed"?e.jsx(U,{screenshotPath:t.screenshotPath,alt:t.scenarioName,className:"max-w-full max-h-full object-contain"}):t.state==="capturing"?e.jsx(V,{size:"medium"}):null})}),e.jsxs("div",{className:"relative group",children:[e.jsx("div",{className:"text-left text-xs text-gray-600 cursor-default",style:{fontSize:"11px",lineHeight:"14px",maxWidth:"144px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.scenarioName}),e.jsx("div",{className:"fixed hidden group-hover:block pointer-events-none",style:{zIndex:1e4,transform:"translateY(8px)"},children:e.jsxs("div",{className:"bg-gray-100 text-gray-800 text-xs rounded-lg px-3 py-2 shadow-lg max-w-xs border border-gray-200",children:[t.scenarioName,t.scenarioDescription&&e.jsxs(e.Fragment,{children:[": ",t.scenarioDescription]}),e.jsx("div",{className:"absolute -top-1 left-4 w-2 h-2 bg-gray-100 border-l border-t border-gray-200 transform rotate-45"})]})})]})]},t.scenarioId)):e.jsx("div",{className:"text-xs text-gray-400 py-4",children:"No screenshots available"})})]})})}function X({entity:s}){const i=D(),[c,x]=l.useState(!1),n=()=>{x(!0),i.submit({entitySha:s.sha,filePath:s.filePath||""},{method:"post",action:"/api/analyze"})};return l.useEffect(()=>{i.state==="idle"&&c&&x(!1)},[i.state,c]),e.jsx("div",{className:"bg-white rounded hover:bg-gray-100 transition-colors cursor-pointer border-b border-[#e1e1e1]",onClick:n,children:e.jsxs("div",{className:"px-5 py-4 flex items-center",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[e.jsx(P,{type:s.entityType}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-0.5",children:[e.jsx(F,{to:`/entity/${s.sha}`,className:"text-sm font-medium text-gray-900 no-underline",children:s.name}),e.jsx("span",{className:"text-[10px] font-semibold px-1 py-0.5 rounded",style:{color:s.entityType==="visual"?"#7c3aed":s.entityType==="library"?"#0DBFE9":s.entityType==="type"?"#dc2626":s.entityType==="data"?"#2563eb":s.entityType==="index"?"#ea580c":s.entityType==="functionCall"?"#7c3aed":s.entityType==="class"?"#059669":s.entityType==="method"?"#0891b2":"#6b7280",backgroundColor:s.entityType==="visual"?"#f3e8ff":s.entityType==="library"?"#cffafe":s.entityType==="type"?"#fee2e2":s.entityType==="data"?"#dbeafe":s.entityType==="index"?"#ffedd5":s.entityType==="functionCall"?"#f3e8ff":s.entityType==="class"?"#d1fae5":s.entityType==="method"?"#cffafe":"#f3f4f6"},children:s.entityType?s.entityType.toUpperCase():"UNKNOWN"})]}),e.jsx("div",{className:"text-xs text-gray-400 truncate",children:s.filePath})]})]}),e.jsx("div",{className:"w-32 flex justify-center",children:e.jsx("span",{className:"text-[10px] text-gray-500 bg-gray-100 px-2 py-1 rounded",children:"Not analyzed"})}),e.jsx("div",{className:"w-32 text-center text-[10px] text-gray-500",children:q(s.createdAt||null)}),e.jsx("div",{className:"w-24 flex justify-end",children:c||i.state!=="idle"?e.jsxs("div",{className:"px-2 py-1 bg-pink-100 rounded text-xs text-pink-700 font-semibold flex items-center gap-1.5",children:[e.jsx(W,{size:14,className:"animate-spin"}),"Analyzing..."]}):e.jsx("button",{onClick:n,className:"bg-[#e0e9ec] text-[#005c75] px-4 py-1.5 rounded text-xs font-medium hover:bg-[#d0dde1] transition-colors cursor-pointer",children:"Analyze"})})]})})}export{ce as default,ie as meta};
@@ -1 +0,0 @@
1
- import{r as i,j as e}from"./chunk-JZWAC4HX-C4pqxYJB.js";function y({width:u,height:m,onSave:a,onCancel:o}){const[n,x]=i.useState(""),[l,s]=i.useState(""),r=()=>{const t=n.trim();if(!t){s("Please enter a name for this custom size");return}a(t)},c=t=>{t.key==="Enter"&&n.trim()&&r(),t.key==="Escape"&&o()};return e.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center p-4 z-50",children:e.jsxs("div",{className:"bg-white rounded-lg max-w-md w-full p-6 shadow-xl",children:[e.jsxs("div",{className:"flex items-center justify-between mb-6",children:[e.jsx("h2",{className:"text-xl font-semibold text-gray-900",children:"Save Custom Size"}),e.jsx("button",{onClick:o,className:"text-gray-400 hover:text-gray-600 transition-colors cursor-pointer","aria-label":"Close",children:e.jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),e.jsxs("div",{className:"mb-6 p-4 bg-gray-50 rounded-lg border border-gray-200",children:[e.jsx("div",{className:"text-sm text-gray-500 mb-1",children:"Dimensions"}),e.jsxs("div",{className:"text-lg font-medium text-gray-900",children:[u,"px × ",m,"px"]})]}),e.jsxs("div",{className:"mb-6",children:[e.jsx("label",{htmlFor:"custom-size-name",className:"block text-sm font-medium text-gray-700 mb-2",children:"Name"}),e.jsx("input",{id:"custom-size-name",type:"text",value:n,onChange:t=>{x(t.target.value),s("")},onKeyDown:c,placeholder:"e.g., iPhone 15 Pro",className:`w-full px-3 py-2 border rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-[#005c75] focus:border-[#005c75] ${l?"border-red-300":"border-gray-300"}`,autoFocus:!0}),l&&e.jsx("p",{className:"mt-1 text-sm text-red-600",children:l})]}),e.jsxs("div",{className:"flex gap-3 justify-end",children:[e.jsx("button",{onClick:o,className:"px-4 py-2 bg-gray-100 text-gray-700 text-sm font-medium rounded-md hover:bg-gray-200 focus:outline-none focus:ring-2 focus:ring-gray-300 transition-colors cursor-pointer",children:"Cancel"}),e.jsx("button",{onClick:r,disabled:!n.trim(),className:"px-4 py-2 bg-[#005c75] text-white text-sm font-medium rounded-md hover:bg-[#004a5c] focus:outline-none focus:ring-2 focus:ring-[#005c75] focus:ring-offset-1 transition-colors cursor-pointer disabled:bg-gray-300 disabled:cursor-not-allowed",children:"Save"})]})]})})}function p(u){const[m,a]=i.useState([]),o=u?`codeyam-custom-sizes-${u}`:null;i.useEffect(()=>{if(!o||typeof window>"u"){a([]);return}try{const s=localStorage.getItem(o);if(s){const r=JSON.parse(s);Array.isArray(r)&&a(r)}}catch(s){console.error("[useCustomSizes] Failed to load custom sizes:",s),a([])}},[o]);const n=i.useCallback(s=>{if(!(!o||typeof window>"u"))try{localStorage.setItem(o,JSON.stringify(s))}catch(r){console.error("[useCustomSizes] Failed to save custom sizes:",r)}},[o]),x=i.useCallback((s,r,c)=>{a(t=>{const f=t.findIndex(b=>b.name===s),g={name:s,width:r,height:c};let d;return f>=0?(d=[...t],d[f]=g):d=[...t,g],n(d),d})},[n]),l=i.useCallback(s=>{a(r=>{const c=r.filter(t=>t.name!==s);return n(c),c})},[n]);return{customSizes:m,addCustomSize:x,removeCustomSize:l}}export{y as S,p as u};
@@ -1,2 +0,0 @@
1
- import{r as t}from"./chunk-JZWAC4HX-C4pqxYJB.js";function I(i,s){const[d,n]=t.useState(""),[g,l]=t.useState(!1),[h,a]=t.useState(null),[u,r]=t.useState(!1);t.useEffect(()=>{s&&(r(!1),l(!1),a(null))},[s]),t.useEffect(()=>{if(!i||!s){s||n("");return}const L=async()=>{if(!u)try{const c=await fetch(`/api/logs/${i}`);if(c.ok){const o=(await c.text()).trim().split(`
2
- `).filter(e=>e.length>0);if(o.length<3){l(!1),r(!1),a(null),n("");return}const f=o.filter(e=>e.includes("CodeYam Log Level 1"));if(f.length>0){const e=f[f.length-1];n(e.replace(/.*CodeYam Log Level 1: /,""))}const E=o.find(e=>e.includes("$$INTERACTIVE_SERVER_URL$$:"));if(E){const e=E.split("$$INTERACTIVE_SERVER_URL$$:")[1].trim();a(e),r(!0)}o.some(e=>e.includes("CodeYam: Exiting start.js"))&&l(!0)}}catch{}};L().catch(()=>{});const $=setInterval(()=>{L().catch(()=>{})},500);return()=>clearInterval($)},[i,s,u]);const m=t.useCallback(()=>{n(""),l(!1),a(null),r(!1)},[]);return{lastLine:d,interactiveUrl:h,isCompleted:g,resetLogs:m}}export{I as u};
@@ -1 +0,0 @@
1
- import{r as e,j as x,c as i}from"./chunk-JZWAC4HX-C4pqxYJB.js";const s={source:"navbar"},r=e.createContext(void 0);function y({children:t}){const[n,o]=e.useState(s),a=e.useCallback(u=>{o(u)},[]),c=e.useCallback(()=>{o(s)},[]);return x.jsx(r.Provider,{value:{contextData:n,setContextData:a,resetContextData:c},children:t})}function D(t){const n=e.useContext(r),o=e.useRef(n);e.useEffect(()=>{if(o.current)return o.current.setContextData(t),()=>{var a;(a=o.current)==null||a.resetContextData()}},[t.source,t.entitySha,t.scenarioId,t.analysisId,t.entityName,t.entityType,t.scenarioName,t.errorMessage])}function p(){const t=e.useContext(r),n=i();return t?{source:t.contextData.source,entitySha:t.contextData.entitySha,scenarioId:t.contextData.scenarioId,analysisId:t.contextData.analysisId,currentUrl:n.pathname,entityName:t.contextData.entityName,entityType:t.contextData.entityType,scenarioName:t.contextData.scenarioName,errorMessage:t.contextData.errorMessage}:{source:"navbar",currentUrl:n.pathname}}export{y as R,p as a,D as u};
@@ -1 +0,0 @@
1
- import{r as t,j as T}from"./chunk-JZWAC4HX-C4pqxYJB.js";const n=t.createContext(void 0);function m({children:o}){const[i,r]=t.useState([]),c=t.useCallback((s,e="info",a=5e3)=>{const d={id:`toast-${Date.now()}-${Math.random()}`,message:s,type:e,duration:a};r(x=>[...x,d])},[]),u=t.useCallback(s=>{r(e=>e.filter(a=>a.id!==s))},[]);return T.jsx(n.Provider,{value:{toasts:i,showToast:c,closeToast:u},children:o})}function v(){const o=t.useContext(n);if(!o)throw new Error("useToast must be used within a ToastProvider");return o}export{m as T,v as u};
@@ -1,10 +0,0 @@
1
- import*as l from"fs/promises";import*as h from"fs";import*as t from"path";import f from"chalk";import{execSync as M}from"child_process";import D from"cli-spinners";import{ab as T,ac as B,ad as E,ae as _,af as R,ag as W,ah as q,ai as Y,F as O,I as U,aj as G,ak as z,al as A,x as P}from"./server-build-BtbLQkKd.js";import"fetch-retry";import"typescript";import"kysely";import{fileURLToPath as N}from"url";import"react/jsx-runtime";import"node:stream";import"@react-router/node";import"react-router";import"isbot";import"react-dom/server";import"react";import"lucide-react";import"better-sqlite3";import"pg";import"kysely/helpers/sqlite";import"kysely/helpers/postgres";import"os";import"prompts";import"crypto";import"util";import"dotenv";import"events";import"uuid";import"http";import"net";import"ws";import"node-pty";import"openai";import"p-queue";import"p-retry";import"@aws-sdk/client-dynamodb";import"lru-cache";import"pluralize";import"piscina";import"json5";import"@aws-sdk/util-dynamodb";import"v8";import"react-syntax-highlighter";import"react-syntax-highlighter/dist/cjs/styles/prism/index.js";import"node:crypto";import"minimatch";import"react-markdown";import"remark-gfm";import"react-diff-viewer-continued";function J(i){try{const s=M("git config --get remote.origin.url",{cwd:i,encoding:"utf8"}).trim().match(/github\.com[:/]([^/]+)\/([^/]+?)(?:\.git)?$/);if(s)return`${s[1]}-${s[2]}`}catch{}return t.basename(i)}class k{constructor(e=!1){this.spinnerIndex=0,this.currentMessage="",this.isSpinning=!1,this.spinnerFrames=D.dots.frames,this.spinnerInterval=D.dots.interval,this.isTTY=process.stdout.isTTY,this.quiet=e}start(e){if(this.currentMessage=e,this.isSpinning=!0,this.spinnerIndex=0,k.activeInstance=this,!this.quiet){if(!this.isTTY){console.log(f.cyan("⠿")+" "+this.currentMessage);return}process.stdout.write("\r"+f.cyan(this.spinnerFrames[this.spinnerIndex])+" "+this.currentMessage),this.spinnerIndex=(this.spinnerIndex+1)%this.spinnerFrames.length,this.spinner=setInterval(()=>{process.stdout.write("\r"+f.cyan(this.spinnerFrames[this.spinnerIndex])+" "+this.currentMessage),this.spinnerIndex=(this.spinnerIndex+1)%this.spinnerFrames.length},this.spinnerInterval),this.spinner.unref()}}static pause(){var e;(e=k.activeInstance)==null||e.stop()}static resume(){const e=k.activeInstance;e&&e.currentMessage&&e.start(e.currentMessage)}update(e){this.currentMessage=e,!this.quiet&&(this.isTTY||console.log(f.cyan("⠿")+" "+this.currentMessage))}succeed(e){this.stop();const s=e||this.currentMessage;this.quiet||(this.isTTY||s!==this.currentMessage)&&console.log(f.green("✓")+" "+s)}fail(e){this.stop();const s=e||this.currentMessage;this.quiet||console.log(f.red("✗")+" "+s)}warn(e){this.stop(),!this.quiet&&console.log(f.yellow("⚠")+" "+e)}info(e){this.stop(),!this.quiet&&console.log(f.blue("ℹ")+" "+e)}stop(){this.spinner&&(clearInterval(this.spinner),this.spinner=void 0),this.isSpinning&&this.isTTY&&(process.stdout.write("\r\x1B[K"),this.isSpinning=!1),this===k.activeInstance&&(k.activeInstance=void 0)}}async function L(i){k.pause();try{return await i()}finally{k.resume()}}const x=i=>console.log(f.green("✓")+" "+i),$=i=>console.log(f.red("✗")+" "+i),H=i=>console.log(f.blue("ℹ")+" "+i),K=i=>{console.log(),console.log(f.cyan.bold("🚀 "+i)),console.log()},V=N(import.meta.url),Q=t.dirname(V);async function w(i,e){await l.mkdir(e,{recursive:!0});const s=await l.readdir(i,{withFileTypes:!0});for(const n of s){const a=t.join(i,n.name),o=t.join(e,n.name);n.isDirectory()?await w(a,o):(await l.copyFile(a,o),(n.name.endsWith(".sh")||n.name.endsWith(".mjs"))&&await l.chmod(o,493))}}async function X(i,e){const s=(e==null?void 0:e.mode)??"memory";try{const n=t.join(i,".claude","skills"),a=t.join(Q,"../../templates"),o=t.join(a,"skills"),r=t.join(a,"commands"),u=t.join(n,"codeyam-memory"),p=t.join(n,"codeyam-new-rule");await w(t.join(o,"codeyam-memory"),u),await w(t.join(o,"codeyam-new-rule"),p);const S=s==="editor"||(e==null?void 0:e.editorMode)===!0;if(S){const c=t.join(n,"codeyam-editor");await w(t.join(o,"codeyam-editor"),c);const y=t.join(i,"CLAUDE.md");try{await l.access(y)}catch{await l.copyFile(t.join(a,"codeyam-editor-claude.md"),y)}}if(s==="full"){const c=t.join(n,"codeyam-setup"),y=t.join(n,"codeyam-sim"),m=t.join(n,"codeyam-test"),g=t.join(n,"codeyam-verify"),b=t.join(n,"codeyam-dev-mode");await w(t.join(o,"codeyam-setup"),c),await w(t.join(o,"codeyam-sim"),y),await w(t.join(o,"codeyam-test"),m),await w(t.join(o,"codeyam-verify"),g),await w(t.join(o,"codeyam-dev-mode"),b);const v=t.join(i,".claude","commands");await l.mkdir(v,{recursive:!0}),await l.copyFile(t.join(r,"codeyam-diagnose.md"),t.join(v,"codeyam-diagnose.md"))}const d=t.join(i,".codeyam","bin");await l.mkdir(d,{recursive:!0});const j=t.join(i,".codeyam","rules");if(await l.mkdir(j,{recursive:!0}),S)try{const c=t.join(d,"editor-step-hook.py");await l.copyFile(t.join(a,"editor-step-hook.py"),c),await l.chmod(c,493)}catch{}try{const c=t.join(d,"memory-hook.sh");await l.copyFile(t.join(a,"codeyam-memory-hook.sh"),c),await l.chmod(c,493)}catch{}try{const c=t.join(d,"rule-reflection-hook.py");await l.copyFile(t.join(a,"rule-reflection-hook.py"),c),await l.chmod(c,493)}catch{}try{const c=t.join(d,"rule-notification-hook.py");await l.copyFile(t.join(a,"rule-notification-hook.py"),c),await l.chmod(c,493)}catch{}try{const c=t.join(d,"prompts");await l.mkdir(c,{recursive:!0});const y=await l.readdir(t.join(a,"prompts"));for(const m of y)await l.copyFile(t.join(a,"prompts",m),t.join(c,m))}catch{}try{await l.copyFile(t.join(a,"rules-instructions.md"),t.join(j,"instructions.md"))}catch{}return{success:!0,skillsPath:t.relative(i,n)}}catch(n){return{success:!1,error:n instanceof Error?n.message:String(n)}}}function Z(i,e){const s=(e==null?void 0:e.mode)??"memory";try{const n=t.join(i,".claude"),a=t.join(n,"settings.local.json");h.existsSync(n)||h.mkdirSync(n,{recursive:!0});let o={};if(h.existsSync(a))try{const c=h.readFileSync(a,"utf8");o=JSON.parse(c)}catch{console.warn(`Warning: Could not parse ${a}, will create new file`)}o.permissions||(o.permissions={}),o.permissions.allow||(o.permissions.allow=[]);const r=["Skill(codeyam-memory)","Skill(codeyam-new-rule)","Bash(codeyam)","Bash(codeyam:*)","Read(.codeyam/**)","Edit(.codeyam/**)","Write(.codeyam/**)","Glob(.codeyam/**)"],u=["Skill(codeyam-setup)","Skill(codeyam-sim)","Skill(codeyam-debug)","Skill(codeyam-test)","Skill(codeyam-verify)","Skill(codeyam-dev-mode)","Read(/tmp/**)","Edit(/tmp/**)","Write(/tmp/**)","Glob(/tmp/**)","Bash(npm install:*)","Bash(npm run:*)","Bash(npx:*)","Bash(node:*)","Bash(cp:*)","Bash(mkdir:*)","Bash(chmod:*)","Bash(rm:*)","Bash(curl:*)","Bash(sleep:*)","Bash(echo:*)","Bash(grep:*)","Bash(python3:*)","Bash(cat:*)","Bash(printf:*)"],p=["Skill(codeyam-editor)","Bash(git:*)","Edit(**)","Write(**)"],S=s==="editor"||(e==null?void 0:e.editorMode)===!0;let d;if(s==="full"?d=[...r,...u]:s==="editor"?d=[...r,...p,...u]:d=r,S&&s!=="editor")for(const c of[...p,...u])d.includes(c)||d.push(c);let j=!1;for(const c of d)o.permissions.allow.includes(c)||(o.permissions.allow.push(c),j=!0);if(S){o.hooks||(o.hooks={});const c='test -f "$CLAUDE_PROJECT_DIR"/.codeyam/bin/editor-step-hook.py && python3 "$CLAUDE_PROJECT_DIR"/.codeyam/bin/editor-step-hook.py || true';for(const y of["PostToolUse","Stop","UserPromptSubmit"]){const m=o.hooks[y]||[];m.some(b=>{var v;return(v=b.hooks)==null?void 0:v.some(F=>{var C;return(C=F.command)==null?void 0:C.includes("editor-step-hook")})})||(m.push({hooks:[{type:"command",command:c,timeout:5}]}),o.hooks[y]=m,j=!0)}}return j&&h.writeFileSync(a,JSON.stringify(o,null,2),"utf8"),!0}catch(n){return console.warn(`Warning: Could not configure Claude Code settings: ${n.message}`),!1}}function ee(i){return h.existsSync(i)?h.readFileSync(i,"utf8").split(`
2
- `).map(s=>s.trim()).filter(s=>s&&!s.startsWith("#")).map(s=>s.startsWith("/")?s.slice(1):s):[]}function te(i){const e=[];function s(n){const a=t.join(n,".gitignore");if(h.existsSync(a)){const o=ee(a),r=t.relative(i,n),u=o.map(p=>r?t.join(r,p):p);e.push(...u)}try{const o=h.readdirSync(n,{withFileTypes:!0});for(const r of o)r.isDirectory()&&r.name!=="node_modules"&&r.name!==".git"&&r.name!=="dist"&&r.name!=="build"&&s(t.join(n,r.name))}catch{}}return s(i),e}function ie(i){let e=i.replace(/\/$/,"");const s=e.startsWith("**/");s&&(e=e.slice(3));const n=e.startsWith("/");return n&&(e=e.slice(1)),e=e.replace(/[.+^${}()|[\]\\*?]/g,"\\$&"),e=e.replace(/\\\*\\\*/g,".*").replace(/\\\*/g,"[^/]*").replace(/\\\?/g,"."),n&&!s?`^${e}(/.*)?$`:`^(.*/)?${e}(/.*)?$`}function oe(){return["^(.*/)?node_modules/.*$","^(.*/)?dist/.*$","^(.*/)?build/.*$","^(.*/)?\\.next/.*$","^(.*/)?out/.*$","^(.*/)?\\.cache/.*$","^(.*/)?__tests__/.*$","^(.*/)?__mocks__/.*$","^(.*/)?.+\\.test\\.(ts|tsx|js|jsx)$","^(.*/)?.+\\.spec\\.(ts|tsx|js|jsx)$","^(.*/)?test/.*$","^(.*/)?tests/.*$","^(.*/)?__test","^(.*/)?\\.git/.*$","^(.*/)?coverage/.*$","^(.*/)?\\.nyc_output/.*$","^(.*/)?\\.vscode/.*$","^(.*/)?\\.idea/.*$","^(.*/)?\\.DS_Store$"]}function se(i){const e=oe();try{const n=te(i).filter(o=>o.trim().length>0).map(o=>ie(o)),a=[...e,...n];return Array.from(new Set(a))}catch(s){return console.warn("Failed to load gitignore patterns:",s),e}}const tt={command:"init",describe:"Initialize a project for CodeYam CLI analysis",builder:{force:{type:"boolean",alias:"f",describe:"Force initialization even if .codeyam already exists",default:!1},"keep-server":{type:"boolean",describe:"Skip stopping the running CodeYam server (use when running inside the editor)",default:!1}},handler:async i=>{K("Initializing CodeYam CLI project");let e=T();if(e&&!i.force){x("Project already initialized. Use --force to reinitialize.");return}if(e||(e=process.cwd()),B(e)){$("Cannot initialize CodeYam in your home directory or filesystem root."),$("Please run codeyam init from inside a project directory.");return}E(e);const{running:s}=_();s&&!i["keep-server"]&&(R()?x("CodeYam server stopped"):$("Failed to stop CodeYam server - it may have already stopped"));const n=t.join(e,".codeyam"),a=t.join(n,"config.json"),o=new k;try{o.start("Setting up project scaffolding..."),await l.mkdir(n,{recursive:!0}),await re(e),o.succeed("Project scaffolding ready");let r=J(e);try{const m=JSON.parse(h.readFileSync(a,"utf8"));m.projectSlug&&!m.projectSlug.startsWith("local-")&&(r=m.projectSlug)}catch{}const u=ne(e);let p=[];try{p=W(e)}catch{}if(p.length>0){const m=p.map(g=>`${g.path==="."?"Root":g.path} (${g.framework})`).join(", ");H(`Found ${p.length} web application${p.length>1?"s":""}: ${m}`)}o.start("Configuring project...");const S=q(a),d={projectSlug:r,packageManager:u,webapps:p,environmentVariables:[],createdAt:new Date().toISOString(),...S};await l.writeFile(a,JSON.stringify(d,null,2));const j=Y();if(!h.existsSync(j)){const m=O(j);await U(m)}if(!await L(()=>G())){o.fail("Environment validation failed");return}try{const{project:m}=await z({slug:r,packageManager:u,unapprovedPaths:se(e),webapps:p});o.succeed("Project configured"),o.start("Installing Claude Code skills...");const g=!!i["keep-server"],b=await X(e,{mode:g?"editor":"memory",editorMode:g}),{branch:v}=await A(m);d.branchId=v.id,await l.writeFile(a,JSON.stringify(d,null,2)),Z(e,{mode:g?"editor":"memory",editorMode:g}),b.success?o.succeed("Claude Code skills installed"):o.warn("Could not install skills");try{i["keep-server"]?await P({projectSlug:r,metadataUpdate:{editorMode:!0,labs:{simulations:!0}}}):await P({projectSlug:r,metadataUpdate:{labs:{simulations:!1}}})}catch{}d.aiMode="interactive"}catch(m){o.fail("Failed to create project"),$(m.message);return}const y=p.length>0?`, ${p.map(m=>m.framework).join(", ")}`:"";console.log(),x(`✨ Initialized ${r} (${u}${y})`),i.autoInit||(console.log(),console.log(f.bold(' Run "codeyam" to start the dashboard')),console.log(' Run "codeyam --help" for all commands'))}catch(r){o.fail("Failed to initialize project"),$(r.message),process.exit(1)}}};function ne(i){return h.existsSync(t.join(i,"pnpm-lock.yaml"))?"pnpm":h.existsSync(t.join(i,"yarn.lock"))?"yarn":(h.existsSync(t.join(i,"package-lock.json")),"npm")}const I=[".codeyam/db.sqlite3",".codeyam/db.sqlite3-wal",".codeyam/db.sqlite3-shm",".codeyam/secrets.json",".codeyam/server.json",".codeyam/server-state.json",".codeyam/queue.json",".codeyam/active-scenario.json",".codeyam/editor-step.json",".codeyam/editor-user-prompt.txt",".codeyam/editor-mode-context.md",".codeyam/dev-mode-context.md",".codeyam/logs/",".codeyam/llm-calls/",".codeyam/captures/",".codeyam/results/",".codeyam/tmp/",".codeyam/rules/",".codeyam/bin/"];async function re(i){const e=t.join(i,".gitignore");let s="";try{s=await l.readFile(e,"utf8")}catch{}const n=s.split(`
3
- `),a=n.findIndex(r=>r.trim()===".codeyam"||r.trim()==="/.codeyam");if(a!==-1){const r=a>0&&n[a-1].trim().startsWith("# CodeYam local files")?a-1:a;n.splice(r,a-r+1),s=n.join(`
4
- `)}if(!I.some(r=>n.some(u=>u.trim()===r))){const r=`
5
- # CodeYam - local only (not shared)
6
- `+I.join(`
7
- `)+`
8
- `,u=s+(s&&!s.endsWith(`
9
- `)?`
10
- `:"")+r;await l.writeFile(e,u,"utf8")}}export{tt as default};