@codeyam/codeyam-cli 0.1.0-staging.2a88920 → 0.1.0-staging.415103

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 (604) hide show
  1. package/analyzer-template/.build-info.json +7 -7
  2. package/analyzer-template/log.txt +3 -3
  3. package/analyzer-template/package.json +17 -17
  4. package/analyzer-template/packages/ai/index.ts +1 -0
  5. package/analyzer-template/packages/ai/package.json +3 -3
  6. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +23 -1
  7. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +34 -3
  8. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
  9. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +101 -0
  10. package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
  11. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +6 -0
  12. package/analyzer-template/packages/ai/src/lib/completionCall.ts +114 -113
  13. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +588 -13
  14. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +5 -1
  15. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +11 -2
  16. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +2 -2
  17. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
  18. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.ts +62 -0
  19. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +140 -14
  20. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +20 -1
  21. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +84 -19
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.ts +35 -0
  23. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +40 -13
  24. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +58 -3
  25. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +377 -7
  26. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +134 -2
  27. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +359 -142
  28. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +51 -3
  29. package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
  30. package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
  31. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +24 -4
  32. package/analyzer-template/packages/analyze/index.ts +2 -0
  33. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +6 -0
  34. package/analyzer-template/packages/analyze/src/lib/asts/nodes/getNodeType.ts +1 -0
  35. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +69 -3
  36. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +13 -0
  37. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +0 -6
  38. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +12 -0
  39. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1352 -0
  40. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +4 -0
  41. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +59 -26
  42. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +277 -15
  43. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +395 -61
  44. package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
  45. package/analyzer-template/packages/aws/package.json +10 -10
  46. package/analyzer-template/packages/database/index.ts +1 -0
  47. package/analyzer-template/packages/database/package.json +1 -1
  48. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  49. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  50. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  51. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  52. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  53. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  54. package/analyzer-template/packages/database/src/lib/kysely/db.ts +14 -0
  55. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +1 -1
  56. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +62 -0
  57. package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
  58. package/analyzer-template/packages/database/src/lib/loadCommits.ts +31 -20
  59. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +0 -5
  60. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  61. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  62. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  63. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +151 -135
  64. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatus.ts +58 -42
  65. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.ts +81 -65
  66. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  67. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +29 -1
  68. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +33 -5
  69. package/analyzer-template/packages/github/dist/database/index.d.ts +1 -0
  70. package/analyzer-template/packages/github/dist/database/index.d.ts.map +1 -1
  71. package/analyzer-template/packages/github/dist/database/index.js +1 -0
  72. package/analyzer-template/packages/github/dist/database/index.js.map +1 -1
  73. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
  74. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
  75. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
  76. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
  77. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
  78. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
  79. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
  80. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
  81. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
  82. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
  83. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
  84. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
  85. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +4 -0
  86. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  87. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +8 -0
  88. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  89. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +1 -1
  90. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +20 -0
  91. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -0
  92. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +45 -0
  93. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  94. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
  95. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
  96. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  97. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  98. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +5 -0
  99. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  100. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  101. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +23 -13
  102. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  103. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  104. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
  105. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  106. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
  107. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
  108. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
  109. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
  110. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
  111. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
  112. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  113. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +100 -89
  114. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  115. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.d.ts.map +1 -1
  116. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  117. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  118. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts.map +1 -1
  119. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  120. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  121. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -1
  122. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
  123. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
  124. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
  125. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  126. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  127. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +8 -0
  128. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  129. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +10 -0
  130. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  131. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +8 -0
  132. package/analyzer-template/packages/types/src/types/Scenario.ts +10 -0
  133. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +8 -0
  134. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  135. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +10 -0
  136. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  137. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  138. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +98 -3
  139. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  140. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +121 -3
  141. package/analyzer-template/playwright/captureFromUrl.ts +89 -82
  142. package/analyzer-template/project/constructMockCode.ts +206 -51
  143. package/analyzer-template/project/orchestrateCapture.ts +4 -1
  144. package/analyzer-template/project/reconcileMockDataKeys.ts +19 -14
  145. package/analyzer-template/project/start.ts +3 -0
  146. package/analyzer-template/project/startScenarioCapture.ts +9 -0
  147. package/analyzer-template/project/writeClientLogRoute.ts +125 -0
  148. package/analyzer-template/project/writeMockDataTsx.ts +191 -12
  149. package/analyzer-template/project/writeScenarioComponents.ts +170 -29
  150. package/analyzer-template/project/writeSimpleRoot.ts +21 -11
  151. package/analyzer-template/tsconfig.json +13 -1
  152. package/background/src/lib/local/createLocalAnalyzer.js +1 -1
  153. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  154. package/background/src/lib/virtualized/project/constructMockCode.js +175 -42
  155. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  156. package/background/src/lib/virtualized/project/orchestrateCapture.js +4 -1
  157. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  158. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +17 -11
  159. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  160. package/background/src/lib/virtualized/project/start.js +2 -0
  161. package/background/src/lib/virtualized/project/start.js.map +1 -1
  162. package/background/src/lib/virtualized/project/startScenarioCapture.js +5 -0
  163. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  164. package/background/src/lib/virtualized/project/writeClientLogRoute.js +110 -0
  165. package/background/src/lib/virtualized/project/writeClientLogRoute.js.map +1 -0
  166. package/background/src/lib/virtualized/project/writeMockDataTsx.js +168 -8
  167. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  168. package/background/src/lib/virtualized/project/writeScenarioComponents.js +143 -27
  169. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  170. package/background/src/lib/virtualized/project/writeSimpleRoot.js +21 -11
  171. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  172. package/codeyam-cli/scripts/apply-setup.js +386 -9
  173. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  174. package/codeyam-cli/src/cli.js +33 -24
  175. package/codeyam-cli/src/cli.js.map +1 -1
  176. package/codeyam-cli/src/codeyam-cli.js +18 -2
  177. package/codeyam-cli/src/codeyam-cli.js.map +1 -1
  178. package/codeyam-cli/src/commands/analyze.js +21 -9
  179. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  180. package/codeyam-cli/src/commands/baseline.js +2 -0
  181. package/codeyam-cli/src/commands/baseline.js.map +1 -1
  182. package/codeyam-cli/src/commands/debug.js +2 -0
  183. package/codeyam-cli/src/commands/debug.js.map +1 -1
  184. package/codeyam-cli/src/commands/default.js +87 -21
  185. package/codeyam-cli/src/commands/default.js.map +1 -1
  186. package/codeyam-cli/src/commands/editor.js +696 -0
  187. package/codeyam-cli/src/commands/editor.js.map +1 -0
  188. package/codeyam-cli/src/commands/init.js +75 -259
  189. package/codeyam-cli/src/commands/init.js.map +1 -1
  190. package/codeyam-cli/src/commands/memory.js +97 -92
  191. package/codeyam-cli/src/commands/memory.js.map +1 -1
  192. package/codeyam-cli/src/commands/recapture.js +2 -0
  193. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  194. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  195. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  196. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  197. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  198. package/codeyam-cli/src/commands/test-startup.js +2 -0
  199. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  200. package/codeyam-cli/src/commands/verify.js +14 -2
  201. package/codeyam-cli/src/commands/verify.js.map +1 -1
  202. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +185 -0
  203. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
  204. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js +9 -0
  205. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js.map +1 -1
  206. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +154 -86
  207. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  208. package/codeyam-cli/src/utils/analyzer.js +7 -0
  209. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  210. package/codeyam-cli/src/utils/backgroundServer.js +109 -22
  211. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  212. package/codeyam-cli/src/utils/devModeEvents.js +40 -0
  213. package/codeyam-cli/src/utils/devModeEvents.js.map +1 -0
  214. package/codeyam-cli/src/utils/fileMetadata.js +5 -0
  215. package/codeyam-cli/src/utils/fileMetadata.js.map +1 -1
  216. package/codeyam-cli/src/utils/fileWatcher.js +25 -9
  217. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  218. package/codeyam-cli/src/utils/generateReport.js +2 -2
  219. package/codeyam-cli/src/utils/git.js +52 -0
  220. package/codeyam-cli/src/utils/git.js.map +1 -1
  221. package/codeyam-cli/src/utils/install-skills.js +88 -54
  222. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  223. package/codeyam-cli/src/utils/interactiveSyncWatcher.js +126 -0
  224. package/codeyam-cli/src/utils/interactiveSyncWatcher.js.map +1 -0
  225. package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
  226. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
  227. package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
  228. package/codeyam-cli/src/utils/npmVersionCheck.js.map +1 -0
  229. package/codeyam-cli/src/utils/pathIgnoring.js +19 -7
  230. package/codeyam-cli/src/utils/pathIgnoring.js.map +1 -1
  231. package/codeyam-cli/src/utils/progress.js +7 -0
  232. package/codeyam-cli/src/utils/progress.js.map +1 -1
  233. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js +11 -11
  234. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js.map +1 -1
  235. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +22 -0
  236. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
  237. package/codeyam-cli/src/utils/queue/heartbeat.js +13 -5
  238. package/codeyam-cli/src/utils/queue/heartbeat.js.map +1 -1
  239. package/codeyam-cli/src/utils/queue/job.js +74 -1
  240. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  241. package/codeyam-cli/src/utils/queue/manager.js +7 -6
  242. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  243. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  244. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  245. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
  246. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
  247. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +229 -0
  248. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
  249. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
  250. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
  251. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
  252. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
  253. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
  254. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
  255. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
  256. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
  257. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +74 -0
  258. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
  259. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +376 -0
  260. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
  261. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +113 -0
  262. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
  263. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
  264. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
  265. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
  266. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
  267. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
  268. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
  269. package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
  270. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
  271. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
  272. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
  273. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
  274. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
  275. package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
  276. package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
  277. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js +83 -0
  278. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js.map +1 -0
  279. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js +118 -0
  280. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js.map +1 -0
  281. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js +72 -0
  282. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js.map +1 -0
  283. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
  284. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
  285. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js +76 -0
  286. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js.map +1 -0
  287. package/codeyam-cli/src/utils/rules/index.js +2 -0
  288. package/codeyam-cli/src/utils/rules/index.js.map +1 -1
  289. package/codeyam-cli/src/utils/rules/parser.js +16 -29
  290. package/codeyam-cli/src/utils/rules/parser.js.map +1 -1
  291. package/codeyam-cli/src/utils/rules/pathMatcher.js +34 -3
  292. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -1
  293. package/codeyam-cli/src/utils/rules/rulePlacement.js +65 -0
  294. package/codeyam-cli/src/utils/rules/rulePlacement.js.map +1 -0
  295. package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
  296. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
  297. package/codeyam-cli/src/utils/rules/sourceFiles.js +43 -0
  298. package/codeyam-cli/src/utils/rules/sourceFiles.js.map +1 -0
  299. package/codeyam-cli/src/utils/rules/staleness.js +16 -11
  300. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -1
  301. package/codeyam-cli/src/utils/serverState.js +64 -12
  302. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  303. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +61 -43
  304. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  305. package/codeyam-cli/src/utils/simulationGateMiddleware.js +159 -0
  306. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -0
  307. package/codeyam-cli/src/utils/syncMocksMiddleware.js +5 -24
  308. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  309. package/codeyam-cli/src/utils/testRunner.js +158 -0
  310. package/codeyam-cli/src/utils/testRunner.js.map +1 -0
  311. package/codeyam-cli/src/utils/transcriptPruning.js +67 -0
  312. package/codeyam-cli/src/utils/transcriptPruning.js.map +1 -0
  313. package/codeyam-cli/src/utils/versionInfo.js +46 -0
  314. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  315. package/codeyam-cli/src/utils/webappDetection.js +14 -2
  316. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  317. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js +66 -0
  318. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
  319. package/codeyam-cli/src/webserver/app/lib/database.js +15 -3
  320. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  321. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  322. package/codeyam-cli/src/webserver/backgroundServer.js +166 -16
  323. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  324. package/codeyam-cli/src/webserver/bootstrap.js +11 -0
  325. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
  326. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-DmJveP3T.js +1 -0
  327. package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-DsN1wKrm.js → EntityItem-C76mRRiF.js} +1 -1
  328. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-DLqD3qNt.js → EntityTypeBadge-g3saevPb.js} +1 -1
  329. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-Ba2JVPzP.js → EntityTypeIcon-CobE682z.js} +1 -1
  330. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-Bu6c6aDe.js +1 -0
  331. package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-aht4aafF.js → InteractivePreview-DYFW3lDD.js} +3 -3
  332. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-CVtiBnY5.js → LibraryFunctionPreview-DLeucoVX.js} +1 -1
  333. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-B0GLXMsr.js → LoadingDots-BU_OAEMP.js} +1 -1
  334. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-xgeCVgSM.js → LogViewer-ceAyBX-H.js} +1 -1
  335. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-OApQuNyq.js → ReportIssueModal-djPLI-WV.js} +3 -8
  336. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-DuDvi0jm.js → SafeScreenshot-BED4B6sP.js} +1 -1
  337. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-DzccYyI8.js → ScenarioViewer-B76aig_2.js} +2 -2
  338. package/codeyam-cli/src/webserver/build/client/assets/Spinner-Bb5uFQ5V.js +34 -0
  339. package/codeyam-cli/src/webserver/build/client/assets/Terminal-BaIiqg_w.js +41 -0
  340. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-DyFZkK0l.js → TruncatedFilePath-C8OKAR5x.js} +1 -1
  341. package/codeyam-cli/src/webserver/build/client/assets/{_index-BwqWJOgH.js → _index-C96V0n15.js} +1 -1
  342. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-BwavGCpm.js → activity.(_tab)-BpKzcsJz.js} +6 -11
  343. package/codeyam-cli/src/webserver/build/client/assets/addon-fit-CUXOrorO.js +1 -0
  344. package/codeyam-cli/src/webserver/build/client/assets/addon-web-links-Duc5hnl7.js +1 -0
  345. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-D9hemwl6.js +22 -0
  346. package/codeyam-cli/src/webserver/build/client/assets/api.agent-transcripts-l0sNRNKZ.js +1 -0
  347. package/codeyam-cli/src/webserver/build/client/assets/api.dev-mode-events-l0sNRNKZ.js +1 -0
  348. package/codeyam-cli/src/webserver/build/client/assets/api.editor-capture-scenario-l0sNRNKZ.js +1 -0
  349. package/codeyam-cli/src/webserver/build/client/assets/api.editor-client-errors-l0sNRNKZ.js +1 -0
  350. package/codeyam-cli/src/webserver/build/client/assets/api.editor-commit-l0sNRNKZ.js +1 -0
  351. package/codeyam-cli/src/webserver/build/client/assets/api.editor-dev-server-l0sNRNKZ.js +1 -0
  352. package/codeyam-cli/src/webserver/build/client/assets/api.editor-entity-status-l0sNRNKZ.js +1 -0
  353. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-entry-l0sNRNKZ.js +1 -0
  354. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-image._-l0sNRNKZ.js +1 -0
  355. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-l0sNRNKZ.js +1 -0
  356. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-screenshot-l0sNRNKZ.js +1 -0
  357. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-update-l0sNRNKZ.js +1 -0
  358. package/codeyam-cli/src/webserver/build/client/assets/api.editor-refresh-l0sNRNKZ.js +1 -0
  359. package/codeyam-cli/src/webserver/build/client/assets/api.editor-register-scenario-l0sNRNKZ.js +1 -0
  360. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-data-l0sNRNKZ.js +1 -0
  361. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-image._-l0sNRNKZ.js +1 -0
  362. package/codeyam-cli/src/webserver/build/client/assets/api.editor-switch-scenario-l0sNRNKZ.js +1 -0
  363. package/codeyam-cli/src/webserver/build/client/assets/api.editor-test-results-l0sNRNKZ.js +1 -0
  364. package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
  365. package/codeyam-cli/src/webserver/build/client/assets/api.rule-path-l0sNRNKZ.js +1 -0
  366. package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
  367. package/codeyam-cli/src/webserver/build/client/assets/book-open-D_nMCFmP.js +6 -0
  368. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-Cx24_aWc.js → chevron-down-BH2h1Ea2.js} +1 -1
  369. package/codeyam-cli/src/webserver/build/client/assets/{chunk-EPOLDU6W-CXRTFQ3F.js → chunk-JZWAC4HX-C4pqxYJB.js} +12 -12
  370. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-BOARzkeR.js → circle-check-DyIKORY6.js} +1 -1
  371. package/codeyam-cli/src/webserver/build/client/assets/copy-NDbZjXao.js +11 -0
  372. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-BdhJEx6B.js → createLucideIcon-CMT1jU2q.js} +1 -1
  373. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BiM6z3Do.js +1 -0
  374. package/codeyam-cli/src/webserver/build/client/assets/editor-BaC8lHDG.js +7 -0
  375. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-BJUiQqZF.js → entity._sha._-CrjR3zZW.js} +11 -11
  376. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-DloHYjtt.js +6 -0
  377. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-C28BiQzt.js +6 -0
  378. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-p9hhkjJM.js +6 -0
  379. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CTBG2mmz.js → entity._sha_.edit._scenarioId-BMvVHNXU.js} +2 -2
  380. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-CS2cb_eZ.js → entry.client-DTvKq3TY.js} +1 -1
  381. package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DMJ7zii9.js → fileTableUtils-cPo8LiG3.js} +1 -1
  382. package/codeyam-cli/src/webserver/build/client/assets/{files-CJ6lTdTA.js → files-DO4CZ16O.js} +1 -1
  383. package/codeyam-cli/src/webserver/build/client/assets/{git-CPTZZ-JZ.js → git-CFCTYk9I.js} +1 -1
  384. package/codeyam-cli/src/webserver/build/client/assets/globals-BH6uYxPM.css +1 -0
  385. package/codeyam-cli/src/webserver/build/client/assets/{index-B1h680n5.js → index-10oVnAAH.js} +1 -1
  386. package/codeyam-cli/src/webserver/build/client/assets/{index-lzqtyFU8.js → index-BcvgDzbZ.js} +1 -1
  387. package/codeyam-cli/src/webserver/build/client/assets/labs-Zk7ryIM1.js +1 -0
  388. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-B7B9V-bu.js → loader-circle-BAXYRVEO.js} +1 -1
  389. package/codeyam-cli/src/webserver/build/client/assets/manifest-fb3128c3.js +1 -0
  390. package/codeyam-cli/src/webserver/build/client/assets/memory-FweZHj5U.js +93 -0
  391. package/codeyam-cli/src/webserver/build/client/assets/pause-DTAcYxBt.js +11 -0
  392. package/codeyam-cli/src/webserver/build/client/assets/root-Dzn8nIkU.js +67 -0
  393. package/codeyam-cli/src/webserver/build/client/assets/{search-CxXUmBSd.js → search-fKo7v0Zo.js} +1 -1
  394. package/codeyam-cli/src/webserver/build/client/assets/settings-DfuTtcJP.js +1 -0
  395. package/codeyam-cli/src/webserver/build/client/assets/{simulations-DwFIBT09.js → simulations-B3aOzpCZ.js} +1 -1
  396. package/codeyam-cli/src/webserver/build/client/assets/terminal-BG4heKCG.js +11 -0
  397. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-B6LgvRJg.js → triangle-alert-DtSmdtM4.js} +1 -1
  398. package/codeyam-cli/src/webserver/build/client/assets/{useCustomSizes-C1v1PQzo.js → useCustomSizes-ByhSyh0W.js} +1 -1
  399. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-C14nCb1q.js +2 -0
  400. package/codeyam-cli/src/webserver/build/client/assets/{useReportContext-DYxHZQuP.js → useReportContext-O-jkvSPx.js} +1 -1
  401. package/codeyam-cli/src/webserver/build/client/assets/{useToast-mBRpZPiu.js → useToast-9FIWuYfK.js} +1 -1
  402. package/codeyam-cli/src/webserver/build/client/assets/xterm-DMSzMhqy.js +9 -0
  403. package/codeyam-cli/src/webserver/build/server/assets/index-DeSuKbSF.js +1 -0
  404. package/codeyam-cli/src/webserver/build/server/assets/server-build-BbQ8YBP-.js +362 -0
  405. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  406. package/codeyam-cli/src/webserver/build-info.json +5 -5
  407. package/codeyam-cli/src/webserver/devServer.js +39 -5
  408. package/codeyam-cli/src/webserver/devServer.js.map +1 -1
  409. package/codeyam-cli/src/webserver/editorProxy.js +272 -0
  410. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -0
  411. package/codeyam-cli/src/webserver/scripts/journalCapture.ts +121 -0
  412. package/codeyam-cli/src/webserver/server.js +177 -1
  413. package/codeyam-cli/src/webserver/server.js.map +1 -1
  414. package/codeyam-cli/src/webserver/terminalServer.js +606 -0
  415. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -0
  416. package/codeyam-cli/templates/{codeyam:debug.md → codeyam-debug.md} +1 -1
  417. package/codeyam-cli/templates/codeyam-dev-mode.md +237 -0
  418. package/codeyam-cli/templates/codeyam-diagnose.md +481 -0
  419. package/codeyam-cli/templates/codeyam-editor-claude.md +68 -0
  420. package/codeyam-cli/templates/codeyam-editor.md +67 -0
  421. package/codeyam-cli/templates/codeyam-memory-hook.sh +19 -20
  422. package/codeyam-cli/templates/codeyam-memory.md +396 -0
  423. package/codeyam-cli/templates/codeyam-new-rule.md +11 -0
  424. package/codeyam-cli/templates/{codeyam:setup.md → codeyam-setup.md} +13 -1
  425. package/codeyam-cli/templates/{codeyam:sim.md → codeyam-sim.md} +1 -1
  426. package/codeyam-cli/templates/{codeyam:test.md → codeyam-test.md} +1 -1
  427. package/codeyam-cli/templates/{codeyam:verify.md → codeyam-verify.md} +1 -1
  428. package/codeyam-cli/templates/editor-step-hook.py +143 -0
  429. package/codeyam-cli/templates/hooks/staleness-check.sh +43 -0
  430. package/codeyam-cli/templates/isolation-route/next-app.tsx.template +80 -0
  431. package/codeyam-cli/templates/isolation-route/next-pages.tsx.template +79 -0
  432. package/codeyam-cli/templates/isolation-route/vite-react.tsx.template +78 -0
  433. package/codeyam-cli/templates/msw/browser-setup.ts.template +47 -0
  434. package/codeyam-cli/templates/msw/handler-router.ts.template +47 -0
  435. package/codeyam-cli/templates/msw/server-setup.ts.template +52 -0
  436. package/codeyam-cli/templates/nextjs-prisma-sqlite/PRISMA_SETUP.md +84 -0
  437. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/api/todos/route.ts +17 -0
  438. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/globals.css +26 -0
  439. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/layout.tsx +34 -0
  440. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/lib/prisma.ts +19 -0
  441. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/page.tsx +10 -0
  442. package/codeyam-cli/templates/nextjs-prisma-sqlite/eslint.config.mjs +11 -0
  443. package/codeyam-cli/templates/nextjs-prisma-sqlite/next.config.ts +14 -0
  444. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +35 -0
  445. package/codeyam-cli/templates/nextjs-prisma-sqlite/postcss.config.mjs +7 -0
  446. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/schema.prisma +27 -0
  447. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/seed.ts +37 -0
  448. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma.config.ts +12 -0
  449. package/codeyam-cli/templates/nextjs-prisma-sqlite/tsconfig.json +34 -0
  450. package/codeyam-cli/templates/prompts/conversation-guidance.txt +44 -0
  451. package/codeyam-cli/templates/prompts/conversation-prompt.txt +28 -0
  452. package/codeyam-cli/templates/prompts/interruption-prompt.txt +31 -0
  453. package/codeyam-cli/templates/prompts/stale-rules-prompt.txt +24 -0
  454. package/codeyam-cli/templates/rule-notification-hook.py +83 -0
  455. package/codeyam-cli/templates/rule-reflection-hook.py +574 -87
  456. package/codeyam-cli/templates/rules-instructions.md +45 -60
  457. package/package.json +16 -14
  458. package/packages/ai/index.js +1 -1
  459. package/packages/ai/index.js.map +1 -1
  460. package/packages/ai/src/lib/analyzeScope.js +21 -1
  461. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  462. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +22 -4
  463. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  464. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
  465. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
  466. package/packages/ai/src/lib/astScopes/processExpression.js +78 -1
  467. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  468. package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
  469. package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
  470. package/packages/ai/src/lib/completionCall.js +10 -7
  471. package/packages/ai/src/lib/completionCall.js.map +1 -1
  472. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +495 -10
  473. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  474. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +5 -1
  475. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  476. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +11 -2
  477. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  478. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +2 -2
  479. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  480. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
  481. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
  482. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js +54 -0
  483. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js.map +1 -0
  484. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +122 -12
  485. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  486. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +15 -1
  487. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -1
  488. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +78 -17
  489. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  490. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js +34 -0
  491. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js.map +1 -0
  492. package/packages/ai/src/lib/dataStructureChunking.js +30 -11
  493. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -1
  494. package/packages/ai/src/lib/generateEntityDataStructure.js +46 -2
  495. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  496. package/packages/ai/src/lib/generateEntityScenarioData.js +269 -5
  497. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  498. package/packages/ai/src/lib/generateExecutionFlows.js +97 -2
  499. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
  500. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +242 -81
  501. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -1
  502. package/packages/ai/src/lib/isolateScopes.js +39 -3
  503. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  504. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
  505. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
  506. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
  507. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
  508. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +17 -2
  509. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  510. package/packages/analyze/index.js +1 -0
  511. package/packages/analyze/index.js.map +1 -1
  512. package/packages/analyze/src/lib/ProjectAnalyzer.js +3 -0
  513. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  514. package/packages/analyze/src/lib/asts/nodes/getNodeType.js +1 -0
  515. package/packages/analyze/src/lib/asts/nodes/getNodeType.js.map +1 -1
  516. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +52 -2
  517. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  518. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +10 -0
  519. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  520. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +0 -5
  521. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  522. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +9 -0
  523. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  524. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +907 -0
  525. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
  526. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +5 -1
  527. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
  528. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +51 -14
  529. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  530. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +181 -13
  531. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  532. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +328 -49
  533. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  534. package/packages/analyze/src/lib/index.js +1 -0
  535. package/packages/analyze/src/lib/index.js.map +1 -1
  536. package/packages/database/index.js +1 -0
  537. package/packages/database/index.js.map +1 -1
  538. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  539. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  540. package/packages/database/src/lib/analysisToDb.js +1 -1
  541. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  542. package/packages/database/src/lib/branchToDb.js +1 -1
  543. package/packages/database/src/lib/branchToDb.js.map +1 -1
  544. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  545. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  546. package/packages/database/src/lib/commitToDb.js +1 -1
  547. package/packages/database/src/lib/commitToDb.js.map +1 -1
  548. package/packages/database/src/lib/fileToDb.js +1 -1
  549. package/packages/database/src/lib/fileToDb.js.map +1 -1
  550. package/packages/database/src/lib/kysely/db.js +8 -0
  551. package/packages/database/src/lib/kysely/db.js.map +1 -1
  552. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +45 -0
  553. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  554. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  555. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  556. package/packages/database/src/lib/loadCommits.js +23 -13
  557. package/packages/database/src/lib/loadCommits.js.map +1 -1
  558. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
  559. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  560. package/packages/database/src/lib/projectToDb.js +1 -1
  561. package/packages/database/src/lib/projectToDb.js.map +1 -1
  562. package/packages/database/src/lib/saveFiles.js +1 -1
  563. package/packages/database/src/lib/saveFiles.js.map +1 -1
  564. package/packages/database/src/lib/scenarioToDb.js +1 -1
  565. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  566. package/packages/database/src/lib/updateCommitMetadata.js +100 -89
  567. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  568. package/packages/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  569. package/packages/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  570. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  571. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  572. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
  573. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
  574. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  575. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  576. package/packages/utils/src/lib/fs/rsyncCopy.js +98 -3
  577. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  578. package/scripts/finalize-analyzer.cjs +8 -76
  579. package/codeyam-cli/src/commands/detect-universal-mocks.js +0 -118
  580. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +0 -1
  581. package/codeyam-cli/src/commands/list.js +0 -31
  582. package/codeyam-cli/src/commands/list.js.map +0 -1
  583. package/codeyam-cli/src/commands/webapp-info.js +0 -146
  584. package/codeyam-cli/src/commands/webapp-info.js.map +0 -1
  585. package/codeyam-cli/src/utils/universal-mocks.js +0 -152
  586. package/codeyam-cli/src/utils/universal-mocks.js.map +0 -1
  587. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-C8lyxW9k.js +0 -34
  588. package/codeyam-cli/src/webserver/build/client/assets/copy-Bb-80kDT.js +0 -6
  589. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BBnGWYga.js +0 -1
  590. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DavjRmOY.js +0 -6
  591. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-D1T4TGjf.js +0 -6
  592. package/codeyam-cli/src/webserver/build/client/assets/file-code-Dhef1kWN.js +0 -6
  593. package/codeyam-cli/src/webserver/build/client/assets/globals-D3yhhV8x.css +0 -1
  594. package/codeyam-cli/src/webserver/build/client/assets/manifest-a78b90a2.js +0 -1
  595. package/codeyam-cli/src/webserver/build/client/assets/memory--GCbFsBE.js +0 -92
  596. package/codeyam-cli/src/webserver/build/client/assets/root-eVAaavTS.js +0 -62
  597. package/codeyam-cli/src/webserver/build/client/assets/settings-CS5f3WzT.js +0 -1
  598. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-aSv48UbS.js +0 -2
  599. package/codeyam-cli/src/webserver/build/server/assets/index-BM6TDT1Y.js +0 -1
  600. package/codeyam-cli/src/webserver/build/server/assets/server-build-dYC34MHw.js +0 -257
  601. package/codeyam-cli/templates/codeyam-stop-hook.sh +0 -284
  602. package/codeyam-cli/templates/codeyam:diagnose.md +0 -803
  603. package/codeyam-cli/templates/codeyam:memory.md +0 -341
  604. package/codeyam-cli/templates/codeyam:new-rule.md +0 -13
@@ -1,4 +1,4 @@
1
- import{c}from"./createLucideIcon-BdhJEx6B.js";/**
1
+ import{c}from"./createLucideIcon-CMT1jU2q.js";/**
2
2
  * @license lucide-react v0.556.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -0,0 +1,11 @@
1
+ import{c}from"./createLucideIcon-CMT1jU2q.js";/**
2
+ * @license lucide-react v0.556.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const e=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],a=c("check",e);/**
7
+ * @license lucide-react v0.556.0 - ISC
8
+ *
9
+ * This source code is licensed under the ISC license.
10
+ * See the LICENSE file in the root directory of this source tree.
11
+ */const o=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],h=c("copy",o);export{a as C,h as a};
@@ -1,4 +1,4 @@
1
- import{r as s}from"./chunk-EPOLDU6W-CXRTFQ3F.js";/**
1
+ import{r as s}from"./chunk-JZWAC4HX-C4pqxYJB.js";/**
2
2
  * @license lucide-react v0.556.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -0,0 +1 @@
1
+ import{w as t,d as r,j as e}from"./chunk-JZWAC4HX-C4pqxYJB.js";import{S as i}from"./ScenarioViewer-B76aig_2.js";import{W as n}from"./InteractivePreview-DYFW3lDD.js";import"./useCustomSizes-ByhSyh0W.js";import"./LogViewer-ceAyBX-H.js";import"./SafeScreenshot-BED4B6sP.js";import"./useLastLogLine-C14nCb1q.js";import"./Spinner-Bb5uFQ5V.js";import"./preload-helper-ckwbz45p.js";import"./ReportIssueModal-djPLI-WV.js";import"./createLucideIcon-CMT1jU2q.js";import"./circle-check-DyIKORY6.js";import"./triangle-alert-DtSmdtM4.js";import"./copy-NDbZjXao.js";import"./scenarioStatus-B_8jpV3e.js";import"./InlineSpinner-Bu6c6aDe.js";const w=()=>[{title:"Empty State - CodeYam"},{name:"description",content:"Simulations empty state development view"}],k=t(function(){r();const s={sha:"mock-sha",name:"Dashboard",filePath:"codeyam-cli/src/webserver/app/routes/_index.tsx",entityType:"visual"};return e.jsx(n,{children:e.jsxs("div",{className:"h-screen bg-[#F8F7F6] flex flex-col overflow-hidden",children:[e.jsx("header",{className:"bg-white border-b border-gray-200 shrink-0 relative h-[54px]",children:e.jsxs("div",{className:"flex items-center h-full px-6 gap-6",children:[e.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[e.jsx("svg",{width:"17",height:"17",viewBox:"0 0 17 17",fill:"none",className:"shrink-0",children:e.jsx("path",{d:"M13 8.5H4M4 8.5L8.5 4M4 8.5L8.5 13",stroke:"#005c75",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),e.jsx("h1",{className:"text-lg font-semibold text-black m-0 leading-[26px] shrink-0",children:"Dashboard"}),e.jsx("span",{className:"text-xs text-[#626262] font-mono whitespace-nowrap overflow-hidden text-ellipsis min-w-0",children:"codeyam-cli/src/webserver/app/routes/_index.tsx"})]}),e.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-2 px-[15px] py-0 h-[26px] bg-[#efefef] border border-[#e1e1e1] rounded",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-[#626262]"}),e.jsx("span",{className:"text-xs font-semibold text-[#626262]",children:"Not analyzed"})]}),e.jsx("button",{className:"px-[15px] py-0 h-[26px] bg-[#005c75] text-white rounded text-xs font-semibold border-none cursor-pointer hover:bg-[#004a5e] transition-colors",children:"Analyze"})]}),e.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[#626262] ml-auto",children:[e.jsx("span",{className:"leading-[22px]",children:"Next Entity"}),e.jsx("svg",{width:"17",height:"17",viewBox:"0 0 17 17",fill:"none",className:"shrink-0",children:e.jsx("path",{d:"M4 8.5H13M13 8.5L8.5 4M13 8.5L8.5 13",stroke:"#005c75",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]})]})}),e.jsx("div",{className:"bg-[#efefef] border-b border-[#efefef] shrink-0",children:e.jsxs("div",{className:"flex items-center gap-3 h-11 px-[15px]",children:[e.jsxs("div",{className:"px-4 flex items-center justify-center gap-3 shrink-0 text-sm rounded bg-[#343434] text-[#efefef] font-semibold h-8",children:["Scenarios",e.jsx("span",{className:"px-2 py-0.5 rounded-[9px] text-xs font-semibold bg-[#cbf3fa] text-[#005c75] min-w-[25px] text-center",children:"0"})]}),e.jsxs("div",{className:"px-4 flex items-center justify-center gap-3 shrink-0 text-sm rounded-[9px] text-[#3e3e3e] font-normal",children:["Related Entities",e.jsx("span",{className:"px-2 py-0.5 rounded-[9px] text-xs font-semibold bg-[#e1e1e1] text-[#3e3e3e] min-w-[25px] text-center",children:"5"})]}),e.jsx("div",{className:"px-4 shrink-0 text-sm text-[#3e3e3e] font-normal",children:"Code"}),e.jsx("div",{className:"px-4 shrink-0 text-sm text-[#3e3e3e] font-normal",children:"Data Structure"}),e.jsx("div",{className:"px-4 shrink-0 text-sm text-[#3e3e3e] font-normal",children:"History"})]})}),e.jsxs("div",{className:"flex flex-1 gap-0 min-h-0",children:[e.jsx("div",{className:"w-[165px] bg-[#e1e1e1] border-r border-[#c7c7c7] flex items-center justify-center shrink-0",children:e.jsx("span",{className:"text-xs font-medium text-[#8e8e8e] leading-5",children:"No Scenarios"})}),e.jsx(i,{selectedScenario:null,analysis:void 0,entity:s,viewMode:"screenshot",cacheBuster:Date.now(),hasScenarios:!1,isAnalyzing:!1,projectSlug:null,hasAnApiKey:!0})]})]})})});export{k as default,w as meta};
@@ -0,0 +1,7 @@
1
+ import{r as s,j as e,w as Pe,u as Me,f as Te,b as Ee}from"./chunk-JZWAC4HX-C4pqxYJB.js";import{u as Ie,V as Le,S as Re}from"./useCustomSizes-ByhSyh0W.js";import{T as $e,D as ze}from"./Terminal-BaIiqg_w.js";import{c as _e}from"./cy-logo-cli-DcX-ZS3p.js";import{S as ce,u as De}from"./Spinner-Bb5uFQ5V.js";import"./preload-helper-ckwbz45p.js";import"./useLastLogLine-C14nCb1q.js";function Ae(r){const[l,m]=s.useState(null),[u,x]=s.useState(!1),v=s.useCallback(()=>{r&&(x(!0),fetch(`/api/editor-test-results?testFile=${encodeURIComponent(r)}`).then(o=>o.json()).then(o=>{m(o),x(!1)}).catch(()=>{m({testFilePath:r,status:"error",testCases:[],errorMessage:"Failed to fetch test results"}),x(!1)}))},[r]);return s.useEffect(()=>{r&&v()},[r,v]),{results:l,isRunning:u,runTests:v}}function B({imgSrc:r,name:l,isActive:m,onSelect:u}){return e.jsxs("button",{onClick:u,className:"flex flex-col items-center gap-1 cursor-pointer group",title:l,children:[e.jsx("div",{className:`w-32 h-32 rounded overflow-hidden border-2 transition-all ${m?"border-[#005c75] ring-1 ring-[#005c75]":"border-transparent hover:border-[#4d4d4d]"}`,children:r?e.jsx("img",{src:r,alt:l,className:"w-full h-full object-cover object-top",loading:"lazy"}):e.jsx("div",{className:"w-full h-full bg-[#1a1a1a] flex items-center justify-center",children:e.jsx("span",{className:"text-[8px] text-gray-600",children:"No img"})})}),e.jsx("span",{className:`text-[10px] leading-tight text-center truncate w-32 ${m?"text-white":"text-gray-500 group-hover:text-gray-300"}`,children:l})]})}function oe({testFile:r}){const{results:l,isRunning:m,runTests:u}=Ae(r);return m&&!l?e.jsxs("div",{className:"px-2 pt-1 flex items-center gap-1.5",children:[e.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-[#005c75] animate-pulse"}),e.jsx("span",{className:"text-[10px] text-gray-400",children:"Running tests..."})]}):l?l.status==="error"?e.jsx("div",{className:"px-2 pt-1",children:e.jsx("span",{className:"text-[10px] text-red-400",children:l.errorMessage})}):e.jsxs("div",{className:"px-2 pt-1 space-y-0.5",children:[l.testCases.map(x=>{var v;return e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[x.status==="passed"?e.jsx("span",{className:"text-green-400 text-[10px]",children:"✓"}):x.status==="failed"?e.jsx("span",{className:"text-red-400 text-[10px]",children:"✗"}):e.jsx("span",{className:"text-gray-500 text-[10px]",children:"—"}),e.jsx("span",{className:`text-[10px] ${x.status==="passed"?"text-green-400":x.status==="failed"?"text-red-400":"text-gray-500"}`,children:x.fullName})]}),x.status==="failed"&&((v=x.failureMessages)==null?void 0:v.map((o,j)=>e.jsx("div",{className:"pl-4 text-[9px] text-red-300/70 truncate max-w-full",title:o,children:o.split(`
2
+ `)[0]},j)))]},x.fullName)}),e.jsx("button",{onClick:u,disabled:m,className:"mt-1 text-[10px] text-[#00a0c4] hover:text-[#00c4ee] transition-colors cursor-pointer disabled:opacity-50 bg-transparent border-none p-0",children:m?"Running...":"Re-run"})]}):null}function U({filePath:r,projectRoot:l}){if(!r)return null;const u=`vscode://file/${l?`${l}/${r}`:r}`;return e.jsxs("div",{className:"flex items-center gap-1 px-2 mt-0.5",children:[e.jsx("span",{className:"text-[9px] text-gray-500 truncate",children:r}),e.jsx("a",{href:u,title:"Open in editor",className:"shrink-0 text-gray-500 hover:text-gray-300 transition-colors",children:e.jsx("svg",{width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",children:e.jsx("path",{d:"M4.5 1.5H2.5C1.95 1.5 1.5 1.95 1.5 2.5V9.5C1.5 10.05 1.95 10.5 2.5 10.5H9.5C10.05 10.5 10.5 10.05 10.5 9.5V7.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round"})})})]})}function Be({scenarios:r,projectRoot:l,activeScenarioId:m,onScenarioSelect:u,zoomComponent:x,onZoomChange:v,analyzedEntities:o=[],glossaryFunctions:j=[],activeAnalyzedScenarioId:c,onAnalyzedScenarioSelect:b}){const{appScenarios:M,componentGroups:w}=s.useMemo(()=>{const t=[],i=new Map;for(const h of r)if(h.componentName){const y=i.get(h.componentName)||[];y.push(h),i.set(h.componentName,y)}else t.push(h);return{appScenarios:t,componentGroups:i}},[r]),I=s.useMemo(()=>{const t=new Set((o||[]).filter(h=>h.entityType==="visual").map(h=>h.name)),i=new Map;for(const[h,y]of w)t.has(h)||i.set(h,y);return i},[w,o]),{visualEntities:C,libraryEntities:d}=s.useMemo(()=>{const t=o.filter(h=>h.entityType==="visual").sort((h,y)=>h.name.localeCompare(y.name)),i=o.filter(h=>h.entityType==="library"||h.entityType==="functionCall").sort((h,y)=>h.name.localeCompare(y.name));return{visualEntities:t,libraryEntities:i}},[o]),p=s.useMemo(()=>{const t=new Set(d.map(i=>i.name));return j.filter(i=>!t.has(i.name))},[j,d]),f=o.some(t=>t.isAnalyzing),k=s.useRef(null),E=s.useRef(0),z=s.useCallback(()=>{k.current&&(E.current=k.current.scrollTop)},[]);if(s.useEffect(()=>{k.current&&E.current>0&&(k.current.scrollTop=E.current)}),r.length===0&&o.length===0&&p.length===0)return e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"text-center text-gray-500 px-8",children:[e.jsx("p",{className:"text-sm font-medium mb-2",children:"No scenarios yet"}),e.jsx("p",{className:"text-xs",children:"Scenarios will appear here as Claude creates them alongside your code. Each scenario represents a different state of your app's data."})]})});if(x){const t=w.get(x)||[];return e.jsx("div",{className:"flex-1 overflow-auto",children:e.jsxs("div",{className:"p-3 space-y-1",children:[e.jsxs("button",{onClick:()=>v(void 0),className:"w-full flex items-center gap-2 px-3 py-1.5 text-xs text-gray-400 hover:text-white transition-colors cursor-pointer",children:[e.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"shrink-0",children:e.jsx("path",{d:"M7.5 9L4.5 6L7.5 3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"All scenarios"]}),e.jsx("div",{className:"px-3 py-1.5",children:e.jsx("span",{className:"text-xs font-semibold text-white uppercase tracking-wider",children:x})}),e.jsx("div",{className:"flex flex-wrap gap-2 px-2",children:t.length===0?e.jsx("div",{className:"px-3 py-2 text-xs text-gray-500",children:"No scenarios for this component"}):t.map(i=>e.jsx(B,{imgSrc:i.screenshotPath?`/api/editor-scenario-image/${i.id}.png`:null,name:i.name,isActive:i.id===m,onSelect:()=>u(i)},i.id))})]})})}return e.jsx("div",{ref:k,onScroll:z,className:"flex-1 overflow-auto",children:e.jsxs("div",{className:"p-3 space-y-3",children:[M.length>0&&e.jsxs("div",{children:[e.jsx("div",{className:"px-2 py-1",children:e.jsx("span",{className:"text-[10px] font-semibold text-gray-500 uppercase tracking-wider",children:"Page Scenarios"})}),e.jsx("div",{className:"flex flex-wrap gap-2 px-2 pt-1",children:M.map(t=>e.jsx(B,{imgSrc:t.screenshotPath?`/api/editor-scenario-image/${t.id}.png`:null,name:t.name,isActive:t.id===m&&!c,onSelect:()=>u(t)},t.id))})]}),[...I.entries()].map(([t,i])=>{var h;return e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between px-2 py-1",children:[e.jsx("span",{className:"text-[10px] font-semibold text-gray-500 uppercase tracking-wider",children:t}),e.jsx("button",{onClick:()=>v(t),className:"text-[10px] text-[#00a0c4] hover:text-[#00c4ee] transition-colors cursor-pointer",children:"Zoom in"})]}),((h=i[0])==null?void 0:h.componentPath)&&e.jsx(U,{filePath:i[0].componentPath,projectRoot:l}),e.jsx("div",{className:"flex flex-wrap gap-2 px-2 pt-1",children:i.map(y=>e.jsx(B,{imgSrc:y.screenshotPath?`/api/editor-scenario-image/${y.id}.png`:null,name:y.name,isActive:y.id===m&&!c,onSelect:()=>u(y)},y.id))})]},t)}),C.length>0&&e.jsxs("div",{className:"pt-2 mt-1 border-t border-[#3d3d3d]",children:[e.jsxs("div",{className:"px-2 py-1",children:[e.jsx("span",{className:"text-[10px] font-semibold text-gray-500 uppercase tracking-wider",children:"Components"}),f&&r.length===0&&o.every(t=>t.scenarioCount===0)&&e.jsx("span",{className:"ml-2 text-[10px] text-gray-500",children:"— Entities are being analyzed..."})]}),C.map(t=>e.jsxs("div",{className:"mt-2",children:[e.jsxs("div",{className:"flex items-center gap-2 px-2 py-1",children:[e.jsx("span",{className:"text-[11px] font-medium text-gray-300 truncate",children:t.name}),t.isAnalyzing&&t.scenarioCount===0&&e.jsxs("span",{className:"flex items-center gap-1.5 text-[10px] text-gray-400",children:[e.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-[#005c75] animate-pulse"}),"Analyzing..."]})]}),e.jsx(U,{filePath:t.filePath,projectRoot:l}),(t.scenarios.length>0||t.pendingScenarios.length>0)&&e.jsxs("div",{className:"flex flex-wrap gap-2 px-2 pt-1",children:[t.scenarios.map(i=>e.jsx(B,{imgSrc:i.screenshotPath?`/api/screenshot/${i.screenshotPath}`:null,name:i.name,isActive:i.id===c,onSelect:()=>b==null?void 0:b({analysisId:t.analysisId,scenarioId:i.id,scenarioName:i.name,entitySha:t.sha,entityName:t.name})},i.id)),t.pendingScenarios.map(i=>e.jsx("div",{className:"px-2.5 py-1 bg-[#2a2a2a] text-gray-400 text-[10px] rounded-full",title:i,children:i},i))]})]},t.sha))]}),(d.length>0||p.length>0)&&e.jsxs("div",{className:`pt-2 mt-1 ${C.length>0?"":"border-t border-[#3d3d3d]"}`,children:[e.jsx("div",{className:"px-2 py-1",children:e.jsx("span",{className:"text-[10px] font-semibold text-gray-500 uppercase tracking-wider",children:"Functions"})}),d.map(t=>e.jsxs("div",{className:"mt-2",children:[e.jsxs("div",{className:"px-2 py-1",children:[e.jsx("span",{className:"text-[11px] font-medium text-gray-300",children:t.name}),t.isAnalyzing&&t.scenarioCount===0&&e.jsxs("span",{className:"ml-2 inline-flex items-center gap-1.5 text-[10px] text-gray-400",children:[e.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-[#005c75] animate-pulse"}),"Analyzing..."]})]}),e.jsx(U,{filePath:t.filePath,projectRoot:l}),t.testFile?e.jsx(oe,{testFile:t.testFile}):e.jsx("div",{className:"px-2 pt-1",children:e.jsx("span",{className:"text-[10px] text-gray-500",children:"No test file"})})]},t.sha)),p.map(t=>e.jsxs("div",{className:"mt-2",children:[e.jsx("div",{className:"px-2 py-1",children:e.jsx("span",{className:"text-[11px] font-medium text-gray-300",children:t.name})}),e.jsx(U,{filePath:t.filePath,projectRoot:l}),e.jsx(oe,{testFile:t.testFile})]},t.name))]})]})})}const Ue={feature:{label:"Feature",color:"bg-[#005c75]"},fix:{label:"Fix",color:"bg-amber-700"},refactor:{label:"Refactor",color:"bg-purple-700"},scaffold:{label:"Scaffold",color:"bg-green-700"},data:{label:"Data",color:"bg-blue-700"},milestone:{label:"Milestone",color:"bg-yellow-600"}};function Oe(r){try{return new Date(r).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}catch{return""}}function Fe(r){try{return new Date(r+"T00:00:00").toLocaleDateString([],{weekday:"long",month:"long",day:"numeric"})}catch{return r}}function We(){const[r,l]=s.useState([]),[m,u]=s.useState(!0),x=s.useCallback(async()=>{try{const o=await fetch("/api/editor-journal");if(o.ok){const j=await o.json();l(j.entries||[])}}catch{}finally{u(!1)}},[]);if(s.useEffect(()=>{x()},[x]),s.useEffect(()=>{const o=new EventSource("/api/events");return o.addEventListener("message",j=>{try{const c=JSON.parse(j.data);c.type==="db-change"&&c.changeType==="journal"&&x()}catch{}}),()=>o.close()},[x]),m)return e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsx("span",{className:"text-gray-500 text-sm",children:"Loading journal..."})});if(r.length===0)return e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"text-center text-gray-500 px-8",children:[e.jsx("p",{className:"text-sm font-medium mb-2",children:"No journal entries yet"}),e.jsx("p",{className:"text-xs",children:"Journal entries will appear as you build. Claude records features, screenshots, and commits as the project evolves."})]})});const v=new Map;for(const o of[...r].reverse()){const j=v.get(o.date)||[];j.push(o),v.set(o.date,j)}return e.jsx("div",{className:"flex-1 overflow-auto",children:e.jsx("div",{className:"p-3 space-y-4",children:[...v.entries()].map(([o,j])=>e.jsxs("div",{children:[e.jsx("div",{className:"px-3 py-1.5 sticky top-0 bg-[#1e1e1e] z-10",children:e.jsx("span",{className:"text-[10px] font-semibold text-gray-500 uppercase tracking-wider",children:Fe(o)})}),e.jsx("div",{className:"space-y-2",children:j.map((c,b)=>{const M=Ue[c.type]||{label:c.type,color:"bg-gray-600"};return e.jsxs("div",{className:"bg-[#2d2d2d] rounded-lg p-3 space-y-2",children:[e.jsx("div",{className:"flex items-start gap-2",children:e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm font-medium text-white truncate",children:c.title}),e.jsx("span",{className:`${M.color} text-white text-[9px] font-bold px-1.5 py-0.5 rounded uppercase tracking-wider shrink-0`,children:M.label})]}),e.jsx("span",{className:"text-[10px] text-gray-500",children:Oe(c.time)})]})}),e.jsx("p",{className:"text-xs text-gray-400 leading-relaxed",children:c.description}),c.screenshot&&e.jsx("div",{className:"rounded overflow-hidden border border-[#3d3d3d]",children:e.jsx("img",{src:`/api/editor-journal-image/${c.screenshot.replace("screenshots/","")}`,alt:c.title,className:"w-full h-auto",loading:"lazy"})}),c.scenarioScreenshots&&c.scenarioScreenshots.length>0&&e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("span",{className:"text-[10px] font-semibold text-gray-500 uppercase tracking-wider",children:"Scenarios"}),e.jsx("div",{className:"grid grid-cols-2 gap-1.5",children:c.scenarioScreenshots.map(w=>e.jsxs("div",{className:"rounded overflow-hidden border border-[#3d3d3d] bg-[#1e1e1e]",children:[e.jsx("img",{src:`/api/editor-journal-image/${w.path.replace("screenshots/","")}`,alt:w.name,className:"w-full h-auto",loading:"lazy"}),e.jsx("div",{className:"px-1.5 py-1 truncate",children:e.jsx("span",{className:"text-[9px] text-gray-400",children:w.name})})]},w.path))})]}),c.scenarios.length>0&&e.jsx("div",{className:"flex flex-wrap gap-1",children:c.scenarios.map(w=>e.jsx("span",{className:"text-[10px] text-gray-400 bg-[#3d3d3d] px-1.5 py-0.5 rounded",children:w},w))}),c.commitSha&&e.jsxs("div",{className:"flex items-center gap-1.5 text-[10px]",children:[e.jsx("span",{className:"font-mono text-[#00a0c4] bg-[#00a0c4]/10 px-1.5 py-0.5 rounded",children:c.commitSha.slice(0,7)}),e.jsx("span",{className:"text-gray-500 truncate",children:c.commitMessage})]})]},`${c.time}-${b}`)})})]},o))})})}function Y({imgSrc:r,name:l,isActive:m,onSelect:u}){return e.jsxs("button",{onClick:u,className:"flex flex-col items-center gap-1 cursor-pointer group",title:l,children:[e.jsx("div",{className:`w-24 h-24 rounded overflow-hidden border-2 transition-all ${m?"border-[#005c75] ring-1 ring-[#005c75]":"border-transparent hover:border-[#4d4d4d]"}`,children:r?e.jsx("img",{src:r,alt:l,className:"w-full h-full object-cover object-top",loading:"lazy"}):e.jsx("div",{className:"w-full h-full bg-[#1a1a1a] flex items-center justify-center",children:e.jsx("span",{className:"text-[8px] text-gray-600",children:"No img"})})}),e.jsx("span",{className:`text-[10px] leading-tight text-center truncate w-24 ${m?"text-white":"text-gray-500 group-hover:text-gray-300"}`,children:l})]})}function Je({hasProject:r,scenarios:l,analyzedEntities:m,activeScenarioId:u,onScenarioSelect:x,onAnalyzedScenarioSelect:v,onSwitchToBuild:o}){const{pageGroups:j,componentGroups:c}=s.useMemo(()=>{const d=new Map,p=new Map;for(const f of l)if(f.componentName){const k=p.get(f.componentName)||[];k.push(f),p.set(f.componentName,k)}else{const k="Home",E=d.get(k)||[];E.push(f),d.set(k,E)}return{pageGroups:d,componentGroups:p}},[l]),b=s.useRef(null),M=s.useRef(0),w=s.useCallback(()=>{b.current&&(M.current=b.current.scrollTop)},[]);if(s.useEffect(()=>{b.current&&M.current>0&&(b.current.scrollTop=M.current)}),!r)return e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"flex flex-col items-center gap-4",children:[e.jsx("h2",{className:"text-lg font-medium text-white font-['IBM_Plex_Sans'] m-0",children:"Ready to build something?"}),e.jsx("button",{onClick:o,className:"px-6 py-3 bg-[#005c75] text-white text-sm font-medium rounded-lg hover:bg-[#004d63] transition-colors cursor-pointer",children:"Start Building"})]})});const I=s.useMemo(()=>m.filter(d=>d.entityType==="visual").sort((d,p)=>d.name.localeCompare(p.name)),[m]);return l.length>0||I.length>0?e.jsx("div",{ref:b,onScroll:w,className:"flex-1 overflow-auto",children:e.jsxs("div",{className:"p-4 space-y-4",children:[e.jsx("h2",{className:"text-sm font-medium text-gray-300 m-0 font-['IBM_Plex_Sans']",children:"What do you want to work on next?"}),e.jsx("button",{onClick:o,className:"w-full py-3 border-2 border-dashed border-[#4d4d4d] rounded-lg text-sm text-gray-400 hover:border-[#005c75] hover:text-white transition-colors cursor-pointer bg-transparent",children:"+ New Page"}),[...j.entries()].map(([d,p])=>e.jsxs("div",{children:[e.jsx("div",{className:"py-1",children:e.jsx("span",{className:"text-[10px] font-semibold text-gray-500 uppercase tracking-wider",children:d})}),e.jsx("div",{className:"flex flex-wrap gap-2 pt-1",children:p.map(f=>e.jsx(Y,{imgSrc:f.screenshotPath?`/api/editor-scenario-image/${f.id}.png`:null,name:f.name,isActive:f.id===u,onSelect:()=>x(f)},f.id))})]},d)),[...c.entries()].map(([d,p])=>e.jsxs("div",{children:[e.jsx("div",{className:"py-1",children:e.jsx("span",{className:"text-[10px] font-semibold text-gray-500 uppercase tracking-wider",children:d})}),e.jsx("div",{className:"flex flex-wrap gap-2 pt-1",children:p.map(f=>e.jsx(Y,{imgSrc:f.screenshotPath?`/api/editor-scenario-image/${f.id}.png`:null,name:f.name,isActive:f.id===u,onSelect:()=>x(f)},f.id))})]},d)),I.map(d=>e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 py-1",children:[e.jsx("span",{className:"text-[10px] font-semibold text-gray-500 uppercase tracking-wider",children:d.name}),d.isAnalyzing&&d.scenarioCount===0&&e.jsxs("span",{className:"flex items-center gap-1.5 text-[10px] text-gray-400",children:[e.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-[#005c75] animate-pulse"}),"Analyzing..."]})]}),(d.scenarios.length>0||d.pendingScenarios.length>0)&&e.jsxs("div",{className:"flex flex-wrap gap-2 pt-1",children:[d.scenarios.map(p=>e.jsx(Y,{imgSrc:p.screenshotPath?`/api/screenshot/${p.screenshotPath}`:null,name:p.name,isActive:!1,onSelect:()=>v({analysisId:d.analysisId,scenarioId:p.id,scenarioName:p.name,entitySha:d.sha,entityName:d.name})},p.id)),d.pendingScenarios.map(p=>e.jsx("div",{className:"px-2.5 py-1 bg-[#2a2a2a] text-gray-400 text-[10px] rounded-full",title:p,children:p},p))]})]},d.sha))]})}):e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"flex flex-col items-center gap-4 px-8 text-center",children:[e.jsx("h2",{className:"text-lg font-medium text-white font-['IBM_Plex_Sans'] m-0",children:"Your project is ready"}),e.jsx("p",{className:"text-sm text-gray-400 m-0 font-['IBM_Plex_Sans'] leading-relaxed max-w-[280px]",children:"Describe what you want to build in the Chat and your pages and components will appear here."}),e.jsx("button",{onClick:o,className:"px-6 py-3 bg-[#005c75] text-white text-sm font-medium rounded-lg hover:bg-[#004d63] transition-colors cursor-pointer",children:"Start Building"})]})})}function Ge({items:r,onNavigate:l}){return r.length===0?null:e.jsx("nav",{className:"flex items-center gap-1 text-xs",children:r.map((m,u)=>{const x=u===r.length-1;return e.jsxs("span",{className:"flex items-center gap-1",children:[u>0&&e.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"text-gray-500",children:e.jsx("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),x?e.jsx("span",{className:"text-white font-medium",children:m.name}):e.jsx("button",{onClick:()=>l(m.componentName),className:"text-gray-400 hover:text-white transition-colors cursor-pointer",children:m.name})]},m.componentName||"app")})})}const tt=()=>[{title:"Editor - CodeYam"},{name:"description",content:"CodeYam Code + Data Editor"}],Z=[{name:"Mobile",width:375,height:667},{name:"Tablet",width:768,height:1024},{name:"Laptop",width:1024,height:768},{name:"Desktop",width:1440,height:900}];function He({analysisId:r,scenarioId:l,scenarioName:m,entityName:u,projectSlug:x,onStateChange:v}){const{interactiveServerUrl:o,isStarting:j,isLoading:c}=De({analysisId:r,scenarioId:l,scenarioName:m,entityName:u,projectSlug:x,enabled:!0});return s.useEffect(()=>{v(o,j||c)},[o,j,c,v]),null}const st=Pe(function(){const{projectSlug:l,projectRoot:m,hasProject:u,scenarios:x,analyzedEntities:v,glossaryFunctions:o}=Me(),j=Te(),[c,b]=Ee(),M=s.useRef(null),w=s.useRef(null),I=s.useRef(null),C=c.get("zoom")||void 0,d=c.get("scenario")||void 0,[p,f]=s.useState(null),[k,E]=s.useState(null),[z,t]=s.useState(!1),[i,h]=s.useState(null),[y,_]=s.useState(!1),[de,O]=s.useState(!0),[T,K]=s.useState(null),[F,W]=s.useState(null),[J,q]=s.useState(!1),xe=s.useCallback((a,n)=>{W(g=>(a&&a!==g&&_(!1),a)),q(n)},[]),Q=s.useCallback(a=>{K(a),W(null),q(!0),_(!1);const n=new URLSearchParams(c);n.delete("scenario"),n.delete("zoom"),b(n)},[c,b]),[me,X]=s.useState(1440),[N,G]=s.useState({name:"Desktop",width:1440,height:900}),[pe,H]=s.useState(!1),[V,he]=s.useState(null),[P,$]=s.useState("app"),ue=s.useCallback(()=>{$("build"),ee(!0)},[]),[fe,ee]=s.useState(!1);s.useEffect(()=>{if(P==="build"){const a=setTimeout(()=>{var n;return(n=M.current)==null?void 0:n.focus()},50);return()=>clearTimeout(a)}},[P]);const[D,ge]=s.useState(null);s.useEffect(()=>{const a=I.current;if(!a)return;const n=new ResizeObserver(g=>{const S=g[0];S&&ge({width:S.contentRect.width,height:S.contentRect.height})});return n.observe(a),()=>n.disconnect()},[]);const R=s.useMemo(()=>{if(!D)return 1;const a=N.width,n=N.height??900,g=D.width,S=D.height;return a<=g&&n<=S?1:Math.min(g/a,S/n)},[D,N]),[ve,te]=s.useState(0),je=s.useCallback(()=>{te(a=>a+1)},[]),{customSizes:se,addCustomSize:Ne}=Ie(l),A=s.useMemo(()=>[...Z,...se],[se]),ae=s.useRef(!1);s.useEffect(()=>{let a=!1,n=null;const g=async()=>{try{const S=await fetch("/api/editor-dev-server");if(a)return;const L=await S.json();if(L.status==="error")f(null),E(null),t(!1),h(L.errorMessage||"Dev server crashed");else if(L.url)f(L.url),E(L.proxyUrl||null),t(!1),h(null),O(!0);else if(L.status==="starting")t(!0),h(null),O(!0);else if(L.status==="stopped")if(p)f(null),t(!1);else if(ae.current)t(!1);else{ae.current=!0;try{(await fetch("/api/editor-dev-server",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"start"})})).ok?t(!0):O(!1)}catch{}}}catch{}};return g(),n=setInterval(()=>void g(),2e3),()=>{a=!0,n&&clearInterval(n)}},[p]),s.useEffect(()=>{const a=new EventSource("/api/events");return a.addEventListener("message",n=>{try{const g=JSON.parse(n.data);(g.type==="db-change"||g.type==="unknown")&&j.revalidate()}catch{}}),()=>a.close()},[j]);const be=s.useMemo(()=>{const a=[{name:"App"}];return C&&a.push({name:C,componentName:C}),a},[C]),ne=s.useCallback(a=>{const n=new URLSearchParams(c);a?n.set("zoom",a):n.delete("zoom"),n.delete("scenario"),b(n)},[c,b]),re=s.useCallback(a=>{K(null),W(null);const n=new URLSearchParams(c);n.set("scenario",a.id),b(n);const g=a.name.replace(/[^a-zA-Z0-9_]+/g,"_");fetch("/api/editor-switch-scenario",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({scenarioSlug:g,scenarioId:a.id})}).catch(()=>{}),te(S=>S+1),_(!1)},[c,b]),ye=(a,n)=>{X(a);const g=A.find(S=>S.width===a&&S.height===n);G({name:(g==null?void 0:g.name)||"Custom",width:a,height:n})},le=a=>{X(a.width),G({name:a.name,width:a.width,height:a.height})},we=a=>{Ne(a,N.width,N.height??900),H(!1),G(n=>({...n,name:a}))},Se=()=>{_(!0)},Ce=s.useCallback(()=>{h(null),t(!0),fetch("/api/editor-dev-server",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"restart"})}).catch(()=>{})},[]),ke=s.useCallback(()=>{h(null),t(!0),fetch("/api/editor-dev-server",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"start"})}).catch(()=>{})},[]),ie=s.useMemo(()=>{if(T&&F)return F;const a=k||p;if(!a)return null;if(C&&d){const n=x.find(S=>S.id===d),g=n?n.name.replace(/[^a-zA-Z0-9_]+/g,"_"):"Default";return`${a}/__codeyam__/${C}/${g}`}return a},[k,p,C,d,x,T,F]);return e.jsxs("div",{className:"fixed inset-0 bg-[#2d2d2d] flex flex-col",children:[T&&e.jsx(He,{analysisId:T.analysisId,scenarioId:T.scenarioId,scenarioName:T.scenarioName,entityName:T.entityName,projectSlug:l,onStateChange:xe},T.analysisId),e.jsx("div",{className:"bg-[#3d3d3d] h-12 flex items-center px-4 gap-4 shrink-0 z-20",children:e.jsxs("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[e.jsx("img",{src:_e,alt:"CodeYam",className:"h-6 brightness-0 invert"}),e.jsx("span",{className:"text-white font-medium text-sm whitespace-nowrap",children:"Editor"}),C&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"w-px h-4 bg-gray-600"}),e.jsx(Ge,{items:be,onNavigate:ne})]}),e.jsx("span",{className:"bg-[#005c75] text-white text-[10px] font-bold px-2 py-0.5 rounded uppercase tracking-wider ml-auto",children:"Code + Data"})]})}),e.jsxs("div",{className:"flex-1 flex min-h-0",children:[e.jsxs("div",{className:"flex-1 flex flex-col min-w-0",children:[e.jsxs("div",{className:"bg-[#e5e7eb] border-b border-[rgba(0,0,0,0.1)] shrink-0 z-10 h-6 flex items-center justify-center relative",children:[e.jsx("div",{className:"absolute inset-0 flex justify-center",children:e.jsx("div",{style:{maxWidth:`${Z[Z.length-1].width}px`,width:"100%"},children:e.jsx(Le,{currentViewportWidth:me,currentPresetName:N.name,onDevicePresetClick:le,devicePresets:A,hideLabel:!0,onHoverChange:he,lightMode:!0})})}),e.jsxs("div",{className:"relative z-10 flex items-center gap-2",children:[e.jsxs("div",{className:"relative w-28 h-5",children:[e.jsxs("div",{className:"absolute inset-0 bg-white text-gray-900 text-xs px-2 rounded flex items-center justify-between pointer-events-none border border-gray-300",children:[e.jsx("span",{className:"leading-none",children:(V==null?void 0:V.name)||N.name}),e.jsx("svg",{width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",className:"shrink-0",children:e.jsx("path",{d:"M3 4.5L6 7.5L9 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]}),e.jsxs("select",{value:N.name,onChange:a=>{const n=A.find(g=>g.name===a.target.value);n&&le(n)},className:"relative w-full h-full opacity-0 cursor-pointer",children:[A.map(a=>e.jsx("option",{value:a.name,children:a.name},a.name)),N.name==="Custom"&&e.jsx("option",{value:"Custom",children:"Custom"})]})]}),e.jsx("input",{type:"number",value:N.width,onChange:a=>{const n=parseInt(a.target.value,10);!isNaN(n)&&n>0&&ye(n,N.height??900)},className:"bg-white text-gray-900 text-xs px-1 rounded border border-gray-300 outline-none w-16 text-center h-5 leading-none",min:"200",max:"3840"}),e.jsx("span",{className:"text-gray-400 text-xs h-5 flex items-center leading-none",children:"x"}),e.jsx("span",{className:"bg-gray-100 text-gray-600 text-xs px-1 rounded w-14 text-center h-5 flex items-center justify-center leading-none",children:N.height??900}),N.name==="Custom"&&e.jsx("button",{onClick:()=>H(!0),className:"bg-white text-gray-900 text-xs px-2 rounded h-5 flex items-center leading-none border border-gray-300 hover:bg-gray-50 transition-colors",children:"Save"})]})]}),e.jsx("div",{ref:I,className:"flex-1 flex items-center justify-center overflow-hidden p-8",style:{backgroundImage:`
3
+ linear-gradient(45deg, #ebebeb 25%, transparent 25%),
4
+ linear-gradient(-45deg, #ebebeb 25%, transparent 25%),
5
+ linear-gradient(45deg, transparent 75%, #ebebeb 75%),
6
+ linear-gradient(-45deg, transparent 75%, #ebebeb 75%)
7
+ `,backgroundSize:"16px 16px",backgroundPosition:"0 0, 0 8px, 8px -8px, -8px 0px",backgroundColor:"#fafafa"},children:ie?e.jsx("div",{style:{width:`${N.width*R}px`,height:`${(N.height??900)*R}px`},children:e.jsxs("div",{className:"relative bg-white origin-top-left",style:{width:`${N.width}px`,height:`${N.height??900}px`,transform:R<1?`scale(${R})`:void 0},children:[!y&&e.jsx("div",{className:"absolute inset-0 flex items-center justify-center z-10",children:e.jsxs("div",{className:"flex flex-col items-center justify-center gap-6 bg-white rounded-lg p-8 shadow-sm w-[500px] h-[300px]",children:[e.jsx("div",{className:"mb-4",children:e.jsx(ce,{})}),e.jsxs("div",{className:"flex flex-col gap-3 text-center",children:[e.jsx("h2",{className:"text-xl font-medium text-black leading-[28px] m-0 font-['IBM_Plex_Sans']",children:"Loading Preview"}),e.jsx("p",{className:"text-sm text-[#666] leading-5 m-0 font-['IBM_Plex_Sans']",children:"Waiting for the app to render"})]})]})}),e.jsx("iframe",{ref:w,src:ie,className:"w-full h-full border-none",title:"Editor preview",onLoad:Se,style:{opacity:y?1:0}},ve)]})}):e.jsx("div",{className:"bg-white rounded-lg shadow-sm flex flex-col items-center justify-center",style:{width:`${N.width*R}px`,height:`${(N.height??900)*R}px`},children:i?e.jsxs("div",{className:"flex flex-col gap-4 text-center px-8 max-w-[600px]",children:[e.jsx("h2",{className:"text-xl font-medium text-red-600 leading-[28px] m-0 font-['IBM_Plex_Sans']",children:"Dev Server Failed"}),e.jsx("pre",{className:"text-xs text-left bg-gray-100 text-gray-800 p-4 rounded overflow-auto max-h-[300px] w-full font-mono whitespace-pre-wrap",children:i}),e.jsx("button",{onClick:Ce,className:"mx-auto px-4 py-2 bg-[#005c75] text-white text-sm font-medium rounded hover:bg-[#004d63] transition-colors cursor-pointer",children:"Retry"})]}):z||J?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mb-4",children:e.jsx(ce,{})}),e.jsxs("div",{className:"flex flex-col gap-3 text-center",children:[e.jsx("h2",{className:"text-xl font-medium text-black leading-[28px] m-0 font-['IBM_Plex_Sans']",children:J?"Starting Interactive Mode":"Starting Dev Server"}),e.jsx("p",{className:"text-sm text-[#666] leading-5 m-0 font-['IBM_Plex_Sans']",children:J?"Loading component preview...":"Your dev server is starting up..."})]})]}):e.jsxs("div",{className:"flex flex-col gap-3 text-center px-8",children:[e.jsx("h2",{className:"text-xl font-medium text-black leading-[28px] m-0 font-['IBM_Plex_Sans']",children:"Code + Data Editor"}),e.jsx("p",{className:"text-sm text-[#888] leading-5 m-0 font-['IBM_Plex_Sans']",children:"Describe what you want to build in the chat"})]})})})]}),e.jsxs("aside",{className:"w-[50%] min-w-[400px] max-w-[800px] bg-[#1e1e1e] border-r border-[#3d3d3d] shrink-0 flex flex-col overflow-hidden order-first",children:[e.jsx("div",{className:"border-b border-[#3d3d3d] px-4 shrink-0 flex items-center justify-between",children:e.jsxs("div",{className:"flex items-center gap-0",children:[e.jsxs("button",{onClick:()=>$("app"),className:`px-3 py-2 text-xs font-medium transition-colors relative cursor-pointer ${P==="app"?"text-white":"text-gray-500 hover:text-gray-300"}`,children:["App",P==="app"&&e.jsx("span",{className:"absolute bottom-0 left-3 right-3 h-0.5 bg-[#005c75]"})]}),e.jsxs("button",{onClick:()=>{$("build"),ee(!0)},className:`px-3 py-2 text-xs font-medium transition-colors relative cursor-pointer ${P==="build"?"text-white":"text-gray-500 hover:text-gray-300"}`,children:["Build",P==="build"&&e.jsx("span",{className:"absolute bottom-0 left-3 right-3 h-0.5 bg-[#005c75]"})]}),e.jsxs("button",{onClick:()=>$("data"),className:`px-3 py-2 text-xs font-medium transition-colors relative cursor-pointer ${P==="data"?"text-white":"text-gray-500 hover:text-gray-300"}`,children:["Data",P==="data"&&e.jsx("span",{className:"absolute bottom-0 left-3 right-3 h-0.5 bg-[#005c75]"})]}),e.jsxs("button",{onClick:()=>$("journal"),className:`px-3 py-2 text-xs font-medium transition-colors relative cursor-pointer ${P==="journal"?"text-white":"text-gray-500 hover:text-gray-300"}`,children:["Journal",P==="journal"&&e.jsx("span",{className:"absolute bottom-0 left-3 right-3 h-0.5 bg-[#005c75]"})]})]})}),fe&&e.jsx("div",{style:{display:P==="build"?"flex":"none"},className:"flex-1 overflow-hidden flex-col",children:e.jsx($e,{ref:M,entityName:"Editor",projectSlug:l,entityFilePath:null,scenarioName:null,onRefreshPreview:je,editorMode:!0})}),P==="app"&&e.jsx(Je,{hasProject:u,scenarios:x,analyzedEntities:v,activeScenarioId:d,onScenarioSelect:re,onAnalyzedScenarioSelect:Q,onSwitchToBuild:ue}),P==="data"&&e.jsx(Be,{scenarios:x,projectRoot:m,activeScenarioId:d,onScenarioSelect:re,zoomComponent:C,onZoomChange:ne,analyzedEntities:v,glossaryFunctions:o,activeAnalyzedScenarioId:T==null?void 0:T.scenarioId,onAnalyzedScenarioSelect:Q}),P==="journal"&&e.jsx(We,{})]})]}),e.jsx(ze,{serverUrl:p,isStarting:z,projectSlug:l,devServerError:i,onStartServer:de?ke:void 0}),pe&&e.jsx(Re,{width:N.width,height:N.height??900,onSave:we,onCancel:()=>H(!1)})]})});export{st as default,tt as meta};