@codeyam/codeyam-cli 0.1.0-staging.036391e → 0.1.0-staging.039fa00

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 (588) 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 +19 -19
  4. package/analyzer-template/packages/ai/index.ts +1 -0
  5. package/analyzer-template/packages/ai/package.json +2 -2
  6. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +14 -0
  7. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +34 -3
  8. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +101 -0
  9. package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
  10. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +6 -0
  11. package/analyzer-template/packages/ai/src/lib/completionCall.ts +114 -113
  12. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +435 -13
  13. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.ts +62 -0
  14. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +70 -19
  15. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.ts +35 -0
  16. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +40 -13
  17. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +110 -7
  18. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +134 -2
  19. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +359 -142
  20. package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
  21. package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
  22. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +24 -4
  23. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +6 -0
  24. package/analyzer-template/packages/analyze/src/lib/asts/nodes/getNodeType.ts +1 -0
  25. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +18 -0
  26. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +9 -1
  27. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +0 -6
  28. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +12 -0
  29. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +65 -28
  30. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +50 -25
  31. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +83 -0
  32. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +176 -80
  33. package/analyzer-template/packages/aws/package.json +10 -10
  34. package/analyzer-template/packages/database/index.ts +1 -0
  35. package/analyzer-template/packages/database/package.json +3 -3
  36. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  37. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  38. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  39. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  40. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  41. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  42. package/analyzer-template/packages/database/src/lib/kysely/db.ts +8 -0
  43. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +1 -1
  44. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +62 -0
  45. package/analyzer-template/packages/database/src/lib/loadCommits.ts +31 -20
  46. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +0 -5
  47. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  48. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  49. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  50. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +151 -135
  51. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatus.ts +58 -42
  52. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.ts +81 -65
  53. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  54. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +29 -1
  55. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +33 -5
  56. package/analyzer-template/packages/github/dist/database/index.d.ts +1 -0
  57. package/analyzer-template/packages/github/dist/database/index.d.ts.map +1 -1
  58. package/analyzer-template/packages/github/dist/database/index.js +1 -0
  59. package/analyzer-template/packages/github/dist/database/index.js.map +1 -1
  60. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
  61. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
  62. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
  63. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
  64. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
  65. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
  66. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
  67. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
  68. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
  69. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
  70. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
  71. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
  72. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -0
  73. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  74. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +5 -0
  75. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  76. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +1 -1
  77. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +20 -0
  78. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -0
  79. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +45 -0
  80. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  81. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +5 -0
  82. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  83. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  84. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +23 -13
  85. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  86. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  87. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
  88. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  89. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
  90. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
  91. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
  92. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
  93. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
  94. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
  95. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  96. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +100 -89
  97. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  98. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.d.ts.map +1 -1
  99. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  100. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  101. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts.map +1 -1
  102. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  103. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  104. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -1
  105. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
  106. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
  107. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
  108. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  109. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  110. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +1 -0
  111. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  112. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +10 -0
  113. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  114. package/analyzer-template/packages/github/package.json +1 -1
  115. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +1 -0
  116. package/analyzer-template/packages/types/src/types/Scenario.ts +10 -0
  117. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +1 -0
  118. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  119. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +10 -0
  120. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  121. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  122. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +98 -3
  123. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  124. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +121 -3
  125. package/analyzer-template/playwright/captureFromUrl.ts +89 -82
  126. package/analyzer-template/project/constructMockCode.ts +170 -50
  127. package/analyzer-template/project/orchestrateCapture.ts +4 -1
  128. package/analyzer-template/project/reconcileMockDataKeys.ts +19 -14
  129. package/analyzer-template/project/start.ts +3 -0
  130. package/analyzer-template/project/startScenarioCapture.ts +9 -0
  131. package/analyzer-template/project/writeClientLogRoute.ts +125 -0
  132. package/analyzer-template/project/writeMockDataTsx.ts +17 -0
  133. package/analyzer-template/project/writeScenarioComponents.ts +110 -17
  134. package/analyzer-template/tsconfig.json +13 -1
  135. package/background/src/lib/local/createLocalAnalyzer.js +1 -1
  136. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  137. package/background/src/lib/virtualized/project/constructMockCode.js +145 -41
  138. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  139. package/background/src/lib/virtualized/project/orchestrateCapture.js +4 -1
  140. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  141. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +17 -11
  142. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  143. package/background/src/lib/virtualized/project/start.js +2 -0
  144. package/background/src/lib/virtualized/project/start.js.map +1 -1
  145. package/background/src/lib/virtualized/project/startScenarioCapture.js +5 -0
  146. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  147. package/background/src/lib/virtualized/project/writeClientLogRoute.js +110 -0
  148. package/background/src/lib/virtualized/project/writeClientLogRoute.js.map +1 -0
  149. package/background/src/lib/virtualized/project/writeMockDataTsx.js +12 -0
  150. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  151. package/background/src/lib/virtualized/project/writeScenarioComponents.js +83 -12
  152. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  153. package/codeyam-cli/scripts/apply-setup.js +209 -12
  154. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  155. package/codeyam-cli/src/cli.js +33 -24
  156. package/codeyam-cli/src/cli.js.map +1 -1
  157. package/codeyam-cli/src/codeyam-cli.js +18 -2
  158. package/codeyam-cli/src/codeyam-cli.js.map +1 -1
  159. package/codeyam-cli/src/commands/analyze.js +21 -9
  160. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  161. package/codeyam-cli/src/commands/baseline.js +2 -0
  162. package/codeyam-cli/src/commands/baseline.js.map +1 -1
  163. package/codeyam-cli/src/commands/debug.js +2 -0
  164. package/codeyam-cli/src/commands/debug.js.map +1 -1
  165. package/codeyam-cli/src/commands/default.js +87 -21
  166. package/codeyam-cli/src/commands/default.js.map +1 -1
  167. package/codeyam-cli/src/commands/editor.js +1839 -0
  168. package/codeyam-cli/src/commands/editor.js.map +1 -0
  169. package/codeyam-cli/src/commands/init.js +81 -260
  170. package/codeyam-cli/src/commands/init.js.map +1 -1
  171. package/codeyam-cli/src/commands/memory.js +95 -81
  172. package/codeyam-cli/src/commands/memory.js.map +1 -1
  173. package/codeyam-cli/src/commands/recapture.js +2 -0
  174. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  175. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  176. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  177. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  178. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  179. package/codeyam-cli/src/commands/test-startup.js +2 -0
  180. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  181. package/codeyam-cli/src/commands/verify.js +14 -2
  182. package/codeyam-cli/src/commands/verify.js.map +1 -1
  183. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +246 -0
  184. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -0
  185. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js +126 -0
  186. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js.map +1 -0
  187. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js +295 -0
  188. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js.map +1 -0
  189. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js +270 -0
  190. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js.map +1 -0
  191. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js +100 -0
  192. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js.map +1 -0
  193. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js +147 -0
  194. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js.map +1 -0
  195. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +76 -0
  196. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -0
  197. package/codeyam-cli/src/utils/__tests__/git.editor.test.js +134 -0
  198. package/codeyam-cli/src/utils/__tests__/git.editor.test.js.map +1 -0
  199. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +185 -0
  200. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
  201. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js +9 -0
  202. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js.map +1 -1
  203. package/codeyam-cli/src/utils/__tests__/project.test.js +65 -0
  204. package/codeyam-cli/src/utils/__tests__/project.test.js.map +1 -0
  205. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js +121 -0
  206. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js.map +1 -0
  207. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +154 -86
  208. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  209. package/codeyam-cli/src/utils/analyzer.js +7 -0
  210. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  211. package/codeyam-cli/src/utils/backgroundServer.js +109 -26
  212. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  213. package/codeyam-cli/src/utils/buildFlags.js +4 -0
  214. package/codeyam-cli/src/utils/buildFlags.js.map +1 -0
  215. package/codeyam-cli/src/utils/devModeEvents.js +40 -0
  216. package/codeyam-cli/src/utils/devModeEvents.js.map +1 -0
  217. package/codeyam-cli/src/utils/editorAudit.js +82 -0
  218. package/codeyam-cli/src/utils/editorAudit.js.map +1 -0
  219. package/codeyam-cli/src/utils/editorDevServer.js +98 -0
  220. package/codeyam-cli/src/utils/editorDevServer.js.map +1 -0
  221. package/codeyam-cli/src/utils/editorJournal.js +137 -0
  222. package/codeyam-cli/src/utils/editorJournal.js.map +1 -0
  223. package/codeyam-cli/src/utils/editorMockState.js +248 -0
  224. package/codeyam-cli/src/utils/editorMockState.js.map +1 -0
  225. package/codeyam-cli/src/utils/editorPreloadHelpers.js +64 -0
  226. package/codeyam-cli/src/utils/editorPreloadHelpers.js.map +1 -0
  227. package/codeyam-cli/src/utils/editorPreview.js +66 -0
  228. package/codeyam-cli/src/utils/editorPreview.js.map +1 -0
  229. package/codeyam-cli/src/utils/editorScenarios.js +56 -0
  230. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -0
  231. package/codeyam-cli/src/utils/fileMetadata.js +5 -0
  232. package/codeyam-cli/src/utils/fileMetadata.js.map +1 -1
  233. package/codeyam-cli/src/utils/fileWatcher.js +25 -9
  234. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  235. package/codeyam-cli/src/utils/generateReport.js +2 -2
  236. package/codeyam-cli/src/utils/git.js +103 -0
  237. package/codeyam-cli/src/utils/git.js.map +1 -1
  238. package/codeyam-cli/src/utils/install-skills.js +87 -65
  239. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  240. package/codeyam-cli/src/utils/interactiveSyncWatcher.js +126 -0
  241. package/codeyam-cli/src/utils/interactiveSyncWatcher.js.map +1 -0
  242. package/codeyam-cli/src/utils/labsAutoCheck.js +0 -29
  243. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -1
  244. package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
  245. package/codeyam-cli/src/utils/npmVersionCheck.js.map +1 -0
  246. package/codeyam-cli/src/utils/pathIgnoring.js +19 -7
  247. package/codeyam-cli/src/utils/pathIgnoring.js.map +1 -1
  248. package/codeyam-cli/src/utils/progress.js +7 -0
  249. package/codeyam-cli/src/utils/progress.js.map +1 -1
  250. package/codeyam-cli/src/utils/project.js +15 -5
  251. package/codeyam-cli/src/utils/project.js.map +1 -1
  252. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js +11 -11
  253. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js.map +1 -1
  254. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +22 -0
  255. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
  256. package/codeyam-cli/src/utils/queue/heartbeat.js +13 -5
  257. package/codeyam-cli/src/utils/queue/heartbeat.js.map +1 -1
  258. package/codeyam-cli/src/utils/queue/job.js +70 -1
  259. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  260. package/codeyam-cli/src/utils/queue/manager.js +7 -6
  261. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  262. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  263. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  264. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +7 -8
  265. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -1
  266. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +1 -1
  267. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -1
  268. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +0 -1
  269. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -1
  270. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +97 -6
  271. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -1
  272. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +4 -6
  273. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -1
  274. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +3 -3
  275. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -1
  276. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js +83 -0
  277. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js.map +1 -0
  278. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js +118 -0
  279. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js.map +1 -0
  280. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js +72 -0
  281. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js.map +1 -0
  282. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +23 -23
  283. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -1
  284. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js +76 -0
  285. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js.map +1 -0
  286. package/codeyam-cli/src/utils/rules/index.js +1 -0
  287. package/codeyam-cli/src/utils/rules/index.js.map +1 -1
  288. package/codeyam-cli/src/utils/rules/parser.js +19 -4
  289. package/codeyam-cli/src/utils/rules/parser.js.map +1 -1
  290. package/codeyam-cli/src/utils/rules/pathMatcher.js +34 -3
  291. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -1
  292. package/codeyam-cli/src/utils/rules/rulePlacement.js +65 -0
  293. package/codeyam-cli/src/utils/rules/rulePlacement.js.map +1 -0
  294. package/codeyam-cli/src/utils/rules/ruleState.js +10 -10
  295. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -1
  296. package/codeyam-cli/src/utils/rules/sourceFiles.js +43 -0
  297. package/codeyam-cli/src/utils/rules/sourceFiles.js.map +1 -0
  298. package/codeyam-cli/src/utils/rules/staleness.js +6 -6
  299. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -1
  300. package/codeyam-cli/src/utils/scenarioMarkers.js +134 -0
  301. package/codeyam-cli/src/utils/scenarioMarkers.js.map +1 -0
  302. package/codeyam-cli/src/utils/serverState.js +64 -12
  303. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  304. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +61 -43
  305. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  306. package/codeyam-cli/src/utils/simulationGateMiddleware.js +159 -0
  307. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -0
  308. package/codeyam-cli/src/utils/syncMocksMiddleware.js +5 -24
  309. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  310. package/codeyam-cli/src/utils/testRunner.js +158 -0
  311. package/codeyam-cli/src/utils/testRunner.js.map +1 -0
  312. package/codeyam-cli/src/utils/transcriptPruning.js +67 -0
  313. package/codeyam-cli/src/utils/transcriptPruning.js.map +1 -0
  314. package/codeyam-cli/src/utils/versionInfo.js +46 -0
  315. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  316. package/codeyam-cli/src/utils/webappDetection.js +14 -2
  317. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  318. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js +66 -0
  319. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
  320. package/codeyam-cli/src/webserver/app/lib/database.js +55 -30
  321. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  322. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  323. package/codeyam-cli/src/webserver/backgroundServer.js +144 -25
  324. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  325. package/codeyam-cli/src/webserver/bootstrap.js +11 -0
  326. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
  327. package/codeyam-cli/src/webserver/build/client/assets/{CopyButton-CA3JxPb7.js → CopyButton-DmJveP3T.js} +1 -1
  328. package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-B86KKU7e.js → EntityItem-C76mRRiF.js} +1 -1
  329. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-B5ctlSYt.js → EntityTypeBadge-g3saevPb.js} +1 -1
  330. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-BqY8gDAW.js → EntityTypeIcon-CobE682z.js} +1 -1
  331. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-Bu6c6aDe.js +1 -0
  332. package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-BDhPilK7.js → InteractivePreview-DYFW3lDD.js} +3 -3
  333. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-VeqEBv9v.js → LibraryFunctionPreview-DLeucoVX.js} +1 -1
  334. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-Bs7Nn1Jr.js → LoadingDots-BU_OAEMP.js} +1 -1
  335. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-Bm3PmcCz.js → LogViewer-ceAyBX-H.js} +1 -1
  336. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-C6PKeMYR.js → ReportIssueModal-djPLI-WV.js} +2 -2
  337. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-Gq3Ocjo6.js → SafeScreenshot-BED4B6sP.js} +1 -1
  338. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-BNLaXBHR.js → ScenarioViewer-B76aig_2.js} +2 -2
  339. package/codeyam-cli/src/webserver/build/client/assets/Spinner-Bb5uFQ5V.js +34 -0
  340. package/codeyam-cli/src/webserver/build/client/assets/Terminal-Dnj5CY9R.js +41 -0
  341. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-CiwXDxLh.js → TruncatedFilePath-C8OKAR5x.js} +1 -1
  342. package/codeyam-cli/src/webserver/build/client/assets/{_index-B3TDXxnk.js → _index-C96V0n15.js} +1 -1
  343. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-BtBFH820.js → activity.(_tab)-BpKzcsJz.js} +1 -1
  344. package/codeyam-cli/src/webserver/build/client/assets/addon-fit-CUXOrorO.js +1 -0
  345. package/codeyam-cli/src/webserver/build/client/assets/addon-web-links-Duc5hnl7.js +1 -0
  346. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-D9hemwl6.js +22 -0
  347. package/codeyam-cli/src/webserver/build/client/assets/api.editor-audit-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-load-commit-l0sNRNKZ.js +1 -0
  359. package/codeyam-cli/src/webserver/build/client/assets/api.editor-refresh-l0sNRNKZ.js +1 -0
  360. package/codeyam-cli/src/webserver/build/client/assets/api.editor-register-scenario-l0sNRNKZ.js +1 -0
  361. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-data-l0sNRNKZ.js +1 -0
  362. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-image._-l0sNRNKZ.js +1 -0
  363. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenarios-l0sNRNKZ.js +1 -0
  364. package/codeyam-cli/src/webserver/build/client/assets/api.editor-switch-scenario-l0sNRNKZ.js +1 -0
  365. package/codeyam-cli/src/webserver/build/client/assets/api.editor-test-results-l0sNRNKZ.js +1 -0
  366. package/codeyam-cli/src/webserver/build/client/assets/api.rule-path-l0sNRNKZ.js +1 -0
  367. package/codeyam-cli/src/webserver/build/client/assets/{book-open-PttOB2SF.js → book-open-D_nMCFmP.js} +1 -1
  368. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-TJp6ofnp.js → chevron-down-BH2h1Ea2.js} +1 -1
  369. package/codeyam-cli/src/webserver/build/client/assets/{chunk-JZWAC4HX-JE9ZIoBl.js → chunk-JZWAC4HX-C4pqxYJB.js} +9 -9
  370. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-CXhHQYrI.js → circle-check-DyIKORY6.js} +1 -1
  371. package/codeyam-cli/src/webserver/build/client/assets/{copy-6y9ALfGT.js → copy-NDbZjXao.js} +1 -1
  372. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-Ca9fAY46.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-D1DAKXtT.js +8 -0
  375. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-n38keI1k.js → entity._sha._-CrjR3zZW.js} +10 -10
  376. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-DkzqFzFj.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-38yPijoD.js → entity._sha_.edit._scenarioId-BMvVHNXU.js} +2 -2
  380. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-BSHEfydn.js → entry.client-DTvKq3TY.js} +1 -1
  381. package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DCPhhSMo.js → fileTableUtils-cPo8LiG3.js} +1 -1
  382. package/codeyam-cli/src/webserver/build/client/assets/{files-0N0YJQv7.js → files-DO4CZ16O.js} +1 -1
  383. package/codeyam-cli/src/webserver/build/client/assets/{git-DXnyr8uP.js → git-CFCTYk9I.js} +1 -1
  384. package/codeyam-cli/src/webserver/build/client/assets/globals-B17TBSS6.css +1 -0
  385. package/codeyam-cli/src/webserver/build/client/assets/{index-ChN9-fAY.js → index-10oVnAAH.js} +1 -1
  386. package/codeyam-cli/src/webserver/build/client/assets/{index-CcsFv748.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-CTqLEAGU.js → loader-circle-BAXYRVEO.js} +1 -1
  389. package/codeyam-cli/src/webserver/build/client/assets/manifest-a632de18.js +1 -0
  390. package/codeyam-cli/src/webserver/build/client/assets/memory-Dg0mvYrI.js +96 -0
  391. package/codeyam-cli/src/webserver/build/client/assets/{pause-D6vreykR.js → pause-DTAcYxBt.js} +1 -1
  392. package/codeyam-cli/src/webserver/build/client/assets/root-DUKqhFlb.js +67 -0
  393. package/codeyam-cli/src/webserver/build/client/assets/{search-B8VUL8nl.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-CPoAg7Zo.js → simulations-B3aOzpCZ.js} +1 -1
  396. package/codeyam-cli/src/webserver/build/client/assets/{terminal-BrCP7uQo.js → terminal-BG4heKCG.js} +1 -1
  397. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-BZz2NjYa.js → triangle-alert-DtSmdtM4.js} +1 -1
  398. package/codeyam-cli/src/webserver/build/client/assets/{useCustomSizes-DNwUduNu.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-CpZgwliL.js → useReportContext-O-jkvSPx.js} +1 -1
  401. package/codeyam-cli/src/webserver/build/client/assets/{useToast-Bv9JFvUO.js → useToast-9FIWuYfK.js} +1 -1
  402. package/codeyam-cli/src/webserver/build/client/assets/xterm-BqvuqXEL.js +27 -0
  403. package/codeyam-cli/src/webserver/build/server/assets/index-HfLydfDq.js +1 -0
  404. package/codeyam-cli/src/webserver/build/server/assets/server-build-CUu_F-oo.js +366 -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 +440 -0
  410. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -0
  411. package/codeyam-cli/src/webserver/scripts/codeyam-preload.mjs +175 -0
  412. package/codeyam-cli/src/webserver/scripts/journalCapture.ts +140 -0
  413. package/codeyam-cli/src/webserver/server.js +226 -1
  414. package/codeyam-cli/src/webserver/server.js.map +1 -1
  415. package/codeyam-cli/src/webserver/terminalServer.js +698 -0
  416. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -0
  417. package/codeyam-cli/templates/codeyam-editor-claude.md +68 -0
  418. package/codeyam-cli/templates/codeyam-memory-hook.sh +14 -14
  419. package/codeyam-cli/templates/commands/codeyam-diagnose.md +481 -0
  420. package/codeyam-cli/templates/editor-step-hook.py +147 -0
  421. package/codeyam-cli/templates/hooks/staleness-check.sh +43 -0
  422. package/codeyam-cli/templates/isolation-route/next-app.tsx.template +80 -0
  423. package/codeyam-cli/templates/isolation-route/next-pages.tsx.template +79 -0
  424. package/codeyam-cli/templates/isolation-route/vite-react.tsx.template +78 -0
  425. package/codeyam-cli/templates/msw/browser-setup.ts.template +47 -0
  426. package/codeyam-cli/templates/msw/handler-router.ts.template +47 -0
  427. package/codeyam-cli/templates/msw/server-setup.ts.template +52 -0
  428. package/codeyam-cli/templates/nextjs-prisma-sqlite/PRISMA_SETUP.md +84 -0
  429. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/api/todos/route.ts +17 -0
  430. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/globals.css +26 -0
  431. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/layout.tsx +34 -0
  432. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/lib/prisma.ts +19 -0
  433. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/page.tsx +10 -0
  434. package/codeyam-cli/templates/nextjs-prisma-sqlite/eslint.config.mjs +11 -0
  435. package/codeyam-cli/templates/nextjs-prisma-sqlite/gitignore +43 -0
  436. package/codeyam-cli/templates/nextjs-prisma-sqlite/next.config.ts +14 -0
  437. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +35 -0
  438. package/codeyam-cli/templates/nextjs-prisma-sqlite/postcss.config.mjs +7 -0
  439. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/schema.prisma +27 -0
  440. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/seed.ts +37 -0
  441. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma.config.ts +12 -0
  442. package/codeyam-cli/templates/nextjs-prisma-sqlite/tsconfig.json +34 -0
  443. package/codeyam-cli/templates/prompts/conversation-guidance.txt +44 -0
  444. package/codeyam-cli/templates/prompts/conversation-prompt.txt +28 -0
  445. package/codeyam-cli/templates/prompts/interruption-prompt.txt +31 -0
  446. package/codeyam-cli/templates/prompts/stale-rules-prompt.txt +24 -0
  447. package/codeyam-cli/templates/rule-notification-hook.py +44 -17
  448. package/codeyam-cli/templates/rule-reflection-hook.py +88 -31
  449. package/codeyam-cli/templates/rules-instructions.md +45 -90
  450. package/codeyam-cli/templates/{codeyam:debug.md → skills/codeyam-debug/SKILL.md} +1 -1
  451. package/codeyam-cli/templates/skills/codeyam-dev-mode/SKILL.md +237 -0
  452. package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +69 -0
  453. package/codeyam-cli/templates/{codeyam:memory.md → skills/codeyam-memory/SKILL.md} +231 -24
  454. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/deprecated-prompt.md +100 -0
  455. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/detect-deprecated-patterns.sh +108 -0
  456. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/find-exports.sh +69 -0
  457. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/misleading-api-prompt.md +117 -0
  458. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/analyze-prompt.md +46 -0
  459. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/cleanup.sh +12 -0
  460. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/filter.jq +45 -0
  461. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/preprocess.sh +139 -0
  462. package/codeyam-cli/templates/{codeyam:new-rule.md → skills/codeyam-new-rule/SKILL.md} +1 -3
  463. package/codeyam-cli/templates/{codeyam:setup.md → skills/codeyam-setup/SKILL.md} +13 -1
  464. package/codeyam-cli/templates/{codeyam:sim.md → skills/codeyam-sim/SKILL.md} +1 -1
  465. package/codeyam-cli/templates/{codeyam:test.md → skills/codeyam-test/SKILL.md} +1 -1
  466. package/codeyam-cli/templates/{codeyam:verify.md → skills/codeyam-verify/SKILL.md} +1 -1
  467. package/package.json +15 -13
  468. package/packages/ai/index.js +1 -1
  469. package/packages/ai/index.js.map +1 -1
  470. package/packages/ai/src/lib/analyzeScope.js +14 -0
  471. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  472. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +22 -4
  473. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  474. package/packages/ai/src/lib/astScopes/processExpression.js +78 -1
  475. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  476. package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
  477. package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
  478. package/packages/ai/src/lib/completionCall.js +10 -7
  479. package/packages/ai/src/lib/completionCall.js.map +1 -1
  480. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +362 -10
  481. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  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 +59 -17
  485. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  486. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js +34 -0
  487. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js.map +1 -0
  488. package/packages/ai/src/lib/dataStructureChunking.js +30 -11
  489. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -1
  490. package/packages/ai/src/lib/generateEntityScenarioData.js +79 -5
  491. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  492. package/packages/ai/src/lib/generateExecutionFlows.js +97 -2
  493. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
  494. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +242 -81
  495. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -1
  496. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
  497. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
  498. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
  499. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
  500. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +17 -2
  501. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  502. package/packages/analyze/src/lib/ProjectAnalyzer.js +3 -0
  503. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  504. package/packages/analyze/src/lib/asts/nodes/getNodeType.js +1 -0
  505. package/packages/analyze/src/lib/asts/nodes/getNodeType.js.map +1 -1
  506. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +11 -1
  507. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  508. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +8 -1
  509. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  510. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +0 -5
  511. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  512. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +9 -0
  513. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  514. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +54 -27
  515. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -1
  516. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +42 -13
  517. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  518. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +65 -0
  519. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  520. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +141 -71
  521. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  522. package/packages/database/index.js +1 -0
  523. package/packages/database/index.js.map +1 -1
  524. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  525. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  526. package/packages/database/src/lib/analysisToDb.js +1 -1
  527. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  528. package/packages/database/src/lib/branchToDb.js +1 -1
  529. package/packages/database/src/lib/branchToDb.js.map +1 -1
  530. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  531. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  532. package/packages/database/src/lib/commitToDb.js +1 -1
  533. package/packages/database/src/lib/commitToDb.js.map +1 -1
  534. package/packages/database/src/lib/fileToDb.js +1 -1
  535. package/packages/database/src/lib/fileToDb.js.map +1 -1
  536. package/packages/database/src/lib/kysely/db.js +5 -0
  537. package/packages/database/src/lib/kysely/db.js.map +1 -1
  538. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +45 -0
  539. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  540. package/packages/database/src/lib/loadCommits.js +23 -13
  541. package/packages/database/src/lib/loadCommits.js.map +1 -1
  542. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
  543. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  544. package/packages/database/src/lib/projectToDb.js +1 -1
  545. package/packages/database/src/lib/projectToDb.js.map +1 -1
  546. package/packages/database/src/lib/saveFiles.js +1 -1
  547. package/packages/database/src/lib/saveFiles.js.map +1 -1
  548. package/packages/database/src/lib/scenarioToDb.js +1 -1
  549. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  550. package/packages/database/src/lib/updateCommitMetadata.js +100 -89
  551. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  552. package/packages/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  553. package/packages/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  554. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  555. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  556. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
  557. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
  558. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  559. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  560. package/packages/utils/src/lib/fs/rsyncCopy.js +98 -3
  561. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  562. package/scripts/npm-post-install.cjs +34 -0
  563. package/codeyam-cli/src/commands/detect-universal-mocks.js +0 -118
  564. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +0 -1
  565. package/codeyam-cli/src/commands/list.js +0 -31
  566. package/codeyam-cli/src/commands/list.js.map +0 -1
  567. package/codeyam-cli/src/commands/webapp-info.js +0 -146
  568. package/codeyam-cli/src/commands/webapp-info.js.map +0 -1
  569. package/codeyam-cli/src/utils/universal-mocks.js +0 -152
  570. package/codeyam-cli/src/utils/universal-mocks.js.map +0 -1
  571. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-ClaLpuOo.js +0 -34
  572. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-DfKzxuoe.js +0 -11
  573. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-C5lqplTC.js +0 -1
  574. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-CBoafmVs.js +0 -6
  575. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DGgZjdFg.js +0 -6
  576. package/codeyam-cli/src/webserver/build/client/assets/globals-DoeDFXZN.css +0 -1
  577. package/codeyam-cli/src/webserver/build/client/assets/labs-CmBYA0PH.js +0 -1
  578. package/codeyam-cli/src/webserver/build/client/assets/manifest-76786b8e.js +0 -1
  579. package/codeyam-cli/src/webserver/build/client/assets/memory-CrNQfdMO.js +0 -76
  580. package/codeyam-cli/src/webserver/build/client/assets/root-QAY34PIo.js +0 -62
  581. package/codeyam-cli/src/webserver/build/client/assets/settings-eBI36Yv5.js +0 -1
  582. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-COky1GVF.js +0 -2
  583. package/codeyam-cli/src/webserver/build/server/assets/index-DV1ykEI6.js +0 -1
  584. package/codeyam-cli/src/webserver/build/server/assets/server-build-BrcVrUEv.js +0 -260
  585. package/codeyam-cli/templates/codeyam-stop-hook.sh +0 -284
  586. package/codeyam-cli/templates/codeyam:diagnose.md +0 -805
  587. package/scripts/finalize-analyzer.cjs +0 -81
  588. /package/codeyam-cli/src/webserver/build/client/assets/{api.labs-survey-l0sNRNKZ.js → api.dev-mode-events-l0sNRNKZ.js} +0 -0
@@ -6,13 +6,21 @@ import { setProjectRoot } from "../state.js";
6
6
  import { AnalysisQueue } from "../utils/queue/manager.js";
7
7
  import { checkForStaleProcesses } from "../utils/queue/heartbeat.js";
8
8
  import { dbNotifier } from "./app/lib/dbNotifier.js";
9
- import { checkLabsApproval } from "../utils/labsAutoCheck.js";
10
9
  import { loadEntities, loadAnalyses, updateProjectMetadata, } from "../../../packages/database/index.js";
11
10
  import fs from 'fs';
12
11
  import path from 'path';
12
+ import { pruneOldTranscripts } from "../utils/transcriptPruning.js";
13
13
  // NOTE: NODE_ENV must be set BEFORE this file is imported (see bootstrap.ts)
14
14
  // ES module imports are resolved before any code runs, so React/React-DOM
15
15
  // will have already chosen their dev/prod builds by the time we get here.
16
+ // Catch-all error handlers — log before the process dies
17
+ // Must be registered before any async code runs
18
+ process.on('uncaughtException', (error) => {
19
+ console.error('[FATAL] Uncaught exception:', error);
20
+ });
21
+ process.on('unhandledRejection', (reason) => {
22
+ console.error('[FATAL] Unhandled rejection:', reason);
23
+ });
16
24
  // Set process title for Activity Monitor visibility
17
25
  if (process.env.CODEYAM_PROCESS_NAME) {
18
26
  process.title = process.env.CODEYAM_PROCESS_NAME;
@@ -34,10 +42,17 @@ try {
34
42
  catch (error) {
35
43
  console.error('Failed to parse project/branch data:', error);
36
44
  }
37
- console.log(`Starting CodeYam background server on port ${port}...`);
45
+ const isEditorMode = project?.metadata?.editorMode === true;
46
+ const startupTime = Date.now();
47
+ function logStartup(message) {
48
+ const elapsed = ((Date.now() - startupTime) / 1000).toFixed(1);
49
+ console.log(`[${elapsed}s] ${message}`);
50
+ }
51
+ logStartup(`Starting CodeYam background server on port ${port}${isEditorMode ? ' (editor mode)' : ''}...`);
38
52
  let fileWatcher = null;
39
53
  let analysisQueue = null;
40
54
  let heartbeatInterval = null;
55
+ let rulesWatcher = null;
41
56
  // Memory monitoring - log every minute to track memory usage patterns
42
57
  setInterval(() => {
43
58
  const mem = process.memoryUsage();
@@ -56,13 +71,17 @@ heartbeatInterval = setInterval(() => {
56
71
  }, 60000); // Every 60 seconds
57
72
  async function main() {
58
73
  // Initialize analysis queue with dbNotifier for real-time UI updates
74
+ logStartup('Initializing analysis queue...');
59
75
  analysisQueue = new AnalysisQueue(rootPath, dbNotifier);
60
76
  await analysisQueue.start();
61
- console.log('📋 Analysis queue initialized');
77
+ logStartup('📋 Analysis queue initialized');
62
78
  // Existing user migration: if the project has entities with analyses but
63
79
  // labs.simulations is undefined, auto-enable simulations to avoid breaking
64
80
  // existing users when we change the default from true to false
65
- if (project?.slug && project.metadata?.labs?.simulations === undefined) {
81
+ if (!isEditorMode &&
82
+ project?.slug &&
83
+ project.metadata?.labs?.simulations === undefined) {
84
+ logStartup('🔍 Checking migrations...');
66
85
  try {
67
86
  const entities = await loadEntities({ excludeMetadata: true });
68
87
  if (entities && entities.length > 0) {
@@ -74,7 +93,7 @@ async function main() {
74
93
  projectSlug: project.slug,
75
94
  metadataUpdate: { labs: { simulations: true } },
76
95
  });
77
- console.log('🔄 Migrated existing project: simulations auto-enabled');
96
+ logStartup('🔄 Migrated existing project: simulations auto-enabled');
78
97
  }
79
98
  }
80
99
  }
@@ -82,15 +101,10 @@ async function main() {
82
101
  console.warn('⚠️ Failed to run labs migration check:', error);
83
102
  }
84
103
  }
85
- // Auto-check labs approval for waitlisted projects
86
- if (project?.slug &&
87
- project.metadata?.labs?.waitlisted === true &&
88
- project.metadata?.labs?.simulations !== true) {
89
- void checkLabsApproval(project.slug).catch(() => { });
90
- }
91
- // Start file watcher BEFORE the server if we have project and branch info
92
- // This ensures the database is in sync with the filesystem before accepting requests
93
- if (project?.id && branch?.id) {
104
+ // In editor mode (empty folder), skip the file watcher — there are no entities to track.
105
+ // For regular projects, start the file watcher BEFORE the server so the DB is in sync
106
+ // with the filesystem before accepting requests.
107
+ if (!isEditorMode && project?.id && branch?.id) {
94
108
  try {
95
109
  // Load project config to get pathsToIgnore
96
110
  let customIgnorePatterns = [];
@@ -107,42 +121,142 @@ async function main() {
107
121
  catch (error) {
108
122
  console.warn('⚠️ Failed to load pathsToIgnore from config:', error);
109
123
  }
110
- // createFileWatcher now awaits start() which includes initial sync
111
- // This replaces the old syncUncommittedEntities call with a more complete sync
112
- // that also compares code SHAs and creates new entity versions if needed
113
- console.log('🔄 Starting file watcher with initial sync...');
114
- fileWatcher = await createFileWatcher({
124
+ const hasGitRepo = fs.existsSync(path.join(rootPath, '.git'));
125
+ logStartup(`🔄 Starting file watcher${hasGitRepo ? ' with git' : ' (no git repo)'}...`);
126
+ // Race the file watcher against a 30s timeout to prevent hanging the startup
127
+ const watcherPromise = createFileWatcher({
115
128
  projectId: project.id,
116
129
  branchId: branch.id,
117
130
  projectRootPath: rootPath,
118
- watchGit: true,
131
+ watchGit: hasGitRepo,
119
132
  customIgnorePatterns,
120
133
  });
121
- console.log(`👀 Watching for file changes and git commits in ${rootPath}`);
134
+ const timeoutPromise = new Promise((resolve) => setTimeout(() => resolve(null), 30000));
135
+ const result = await Promise.race([watcherPromise, timeoutPromise]);
136
+ if (result) {
137
+ fileWatcher = result;
138
+ logStartup(`👀 File watcher ready — watching ${rootPath}`);
139
+ }
140
+ else {
141
+ console.warn('⚠️ File watcher did not start within 30s, continuing without it');
142
+ // Still wait for it in the background so it can finish later
143
+ watcherPromise
144
+ .then((w) => {
145
+ fileWatcher = w;
146
+ console.log('👀 File watcher started (late)');
147
+ })
148
+ .catch((err) => {
149
+ console.error('File watcher failed:', err);
150
+ });
151
+ }
122
152
  }
123
153
  catch (error) {
124
154
  console.error('Failed to start file watcher:', error);
125
155
  }
126
156
  }
127
- // Start server AFTER file watcher is fully initialized
128
- // This ensures /api/health only returns 200 when the system is truly ready
129
- const { url } = await startRemixServer({
157
+ else if (isEditorMode) {
158
+ logStartup('📝 Editor mode skipping file watcher');
159
+ }
160
+ // Start the Remix HTTP server
161
+ logStartup('🌐 Starting Remix server...');
162
+ const { url, server } = await startRemixServer({
130
163
  port,
131
164
  analysisQueue,
132
165
  dbNotifier, // Pass the SAME dbNotifier instance to Remix routes
133
166
  });
134
- console.log(`✅ CodeYam server running at ${url}`);
167
+ // Attach WebSocket terminal server for dev mode embedded Claude Code
168
+ logStartup('Attaching terminal server...');
169
+ const { attachTerminalServer } = await import('./terminalServer.js');
170
+ attachTerminalServer(server);
171
+ logStartup(`✅ CodeYam server running at ${url}`);
172
+ // Self-check: verify the port is actually accessible
173
+ // Use 127.0.0.1 instead of localhost to avoid IPv6 resolution issues
174
+ try {
175
+ const healthRes = await fetch(`http://127.0.0.1:${port}/api/health`);
176
+ if (healthRes.ok) {
177
+ logStartup('✅ Health check self-test passed');
178
+ }
179
+ else {
180
+ console.error(`[STARTUP] Health check self-test returned ${healthRes.status}`);
181
+ }
182
+ }
183
+ catch (err) {
184
+ console.error('[STARTUP] Health check self-test FAILED — port may not be accessible:', err);
185
+ }
186
+ // Clean up agent transcript logs older than 14 days
187
+ pruneOldTranscripts()
188
+ .then((count) => {
189
+ if (count > 0)
190
+ console.log(`🧹 Pruned ${count} old transcript logs`);
191
+ })
192
+ .catch((error) => {
193
+ console.warn('⚠️ Failed to prune old transcripts:', error);
194
+ });
195
+ // Watch .claude/rules/ for changes so the memory page auto-refreshes
196
+ try {
197
+ const rulesDir = path.join(rootPath, '.claude', 'rules');
198
+ fs.mkdirSync(rulesDir, { recursive: true });
199
+ const { default: chokidar } = await import('chokidar');
200
+ rulesWatcher = chokidar.watch(rulesDir, {
201
+ persistent: true,
202
+ ignoreInitial: true,
203
+ depth: 5,
204
+ });
205
+ rulesWatcher
206
+ .on('add', () => dbNotifier.notifyChange('rules'))
207
+ .on('change', () => dbNotifier.notifyChange('rules'))
208
+ .on('unlink', () => dbNotifier.notifyChange('rules'));
209
+ console.log(`👀 Watching .claude/rules/ for memory page updates`);
210
+ }
211
+ catch (error) {
212
+ console.warn('⚠️ Failed to start rules watcher:', error);
213
+ }
135
214
  }
136
215
  main().catch((error) => {
137
216
  console.error('❌ Failed to start CodeYam server:', error);
138
217
  process.exit(1);
139
218
  });
219
+ // Lazy-loaded cleanup for terminal sessions
220
+ let terminalCleanup = null;
221
+ import('./terminalServer.js')
222
+ .then((mod) => {
223
+ terminalCleanup = mod.cleanupAllTerminalSessions;
224
+ })
225
+ .catch(() => { });
226
+ // Kill the editor dev server process group if it's still running
227
+ function killEditorDevServer() {
228
+ try {
229
+ const devServer = globalThis.__codeyam_editor_dev_server__;
230
+ if (devServer?.process?.pid) {
231
+ console.log(`[shutdown] Killing editor dev server (PID ${devServer.process.pid})...`);
232
+ try {
233
+ process.kill(-devServer.process.pid, 'SIGTERM');
234
+ }
235
+ catch {
236
+ try {
237
+ devServer.process.kill('SIGTERM');
238
+ }
239
+ catch {
240
+ // Already dead
241
+ }
242
+ }
243
+ }
244
+ }
245
+ catch {
246
+ // No dev server running
247
+ }
248
+ }
140
249
  // Handle graceful shutdown
141
250
  process.on('SIGTERM', () => {
142
251
  console.log('📴 CodeYam server shutting down...');
252
+ killEditorDevServer();
253
+ terminalCleanup?.();
143
254
  if (fileWatcher) {
144
255
  fileWatcher.stop();
145
256
  }
257
+ if (rulesWatcher) {
258
+ void rulesWatcher.close();
259
+ }
146
260
  if (analysisQueue) {
147
261
  analysisQueue.pause();
148
262
  }
@@ -153,9 +267,14 @@ process.on('SIGTERM', () => {
153
267
  });
154
268
  process.on('SIGINT', () => {
155
269
  console.log('📴 CodeYam server shutting down...');
270
+ killEditorDevServer();
271
+ terminalCleanup?.();
156
272
  if (fileWatcher) {
157
273
  fileWatcher.stop();
158
274
  }
275
+ if (rulesWatcher) {
276
+ void rulesWatcher.close();
277
+ }
159
278
  if (analysisQueue) {
160
279
  analysisQueue.pause();
161
280
  }
@@ -1 +1 @@
1
- {"version":3,"file":"backgroundServer.js","sourceRoot":"","sources":["../../../../src/webserver/backgroundServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backgroundServer.js","sourceRoot":"","sources":["../../../../src/webserver/backgroundServer.ts"],"names":[],"mappings":";AAEA,sDAAsD;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAe,MAAM,yBAAyB,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,6EAA6E;AAC7E,0EAA0E;AAC1E,0EAA0E;AAE1E,yDAAyD;AACzD,gDAAgD;AAChD,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;IACxC,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC;AACH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;IAC1C,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC;AAEH,oDAAoD;AACpD,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;IACrC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;AACnD,CAAC;AAED,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC;AAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAEhE,oDAAoD;AACpD,cAAc,CAAC,QAAQ,CAAC,CAAC;AAEzB,4CAA4C;AAC5C,IAAI,OAA4B,EAAE,MAA0B,CAAC;AAC7D,IAAI,CAAC;IACH,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QAChC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QAC/B,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,YAAY,GAAG,OAAO,EAAE,QAAQ,EAAE,UAAU,KAAK,IAAI,CAAC;AAE5D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC/B,SAAS,UAAU,CAAC,OAAe;IACjC,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,MAAM,OAAO,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED,UAAU,CACR,8CAA8C,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,CAC/F,CAAC;AAEF,IAAI,WAAW,GAAuB,IAAI,CAAC;AAC3C,IAAI,aAAa,GAAyB,IAAI,CAAC;AAC/C,IAAI,iBAAiB,GAA0B,IAAI,CAAC;AACpD,IAAI,YAAY,GAAwC,IAAI,CAAC;AAE7D,sEAAsE;AACtE,WAAW,CAAC,GAAG,EAAE;IACf,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAClC,OAAO,CAAC,GAAG,CACT,kBAAkB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM;QAC3G,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM;QAC/C,aAAa,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAC1D,CAAC;AACJ,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,eAAe;AAE1B,yDAAyD;AACzD,oFAAoF;AACpF,mEAAmE;AACnE,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;IACnC,8EAA8E;IAC9E,sBAAsB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAC/C,4FAA4F;IAC9F,CAAC,CAAC,CAAC;AACL,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,mBAAmB;AAE9B,KAAK,UAAU,IAAI;IACjB,qEAAqE;IACrE,UAAU,CAAC,gCAAgC,CAAC,CAAC;IAC7C,aAAa,GAAG,IAAI,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxD,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;IAC5B,UAAU,CAAC,+BAA+B,CAAC,CAAC;IAE5C,yEAAyE;IACzE,2EAA2E;IAC3E,+DAA+D;IAC/D,IACE,CAAC,YAAY;QACb,OAAO,EAAE,IAAI;QACb,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,KAAK,SAAS,EACjD,CAAC;QACD,UAAU,CAAC,2BAA2B,CAAC,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC9C,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;gBACpD,MAAM,WAAW,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;gBACpD,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,qBAAqB,CAAC;wBAC1B,WAAW,EAAE,OAAO,CAAC,IAAI;wBACzB,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;qBAChD,CAAC,CAAC;oBACH,UAAU,CAAC,wDAAwD,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,yFAAyF;IACzF,sFAAsF;IACtF,iDAAiD;IACjD,IAAI,CAAC,YAAY,IAAI,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,EAAE,EAAE,CAAC;QAC/C,IAAI,CAAC;YACH,2CAA2C;YAC3C,IAAI,oBAAoB,GAAa,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;gBAClE,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;oBAC/D,oBAAoB,GAAG,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;oBAClD,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpC,OAAO,CAAC,GAAG,CACT,aAAa,oBAAoB,CAAC,MAAM,yBAAyB,CAClE,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;YACvE,CAAC;YAED,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;YAC9D,UAAU,CACR,2BAA2B,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAC5E,CAAC;YAEF,6EAA6E;YAC7E,MAAM,cAAc,GAAG,iBAAiB,CAAC;gBACvC,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,eAAe,EAAE,QAAQ;gBACzB,QAAQ,EAAE,UAAU;gBACpB,oBAAoB;aACrB,CAAC,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CACnD,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CACvC,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;YAEpE,IAAI,MAAM,EAAE,CAAC;gBACX,WAAW,GAAG,MAAM,CAAC;gBACrB,UAAU,CAAC,oCAAoC,QAAQ,EAAE,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CACV,kEAAkE,CACnE,CAAC;gBACF,6DAA6D;gBAC7D,cAAc;qBACX,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;oBACV,WAAW,GAAG,CAAC,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;gBAChD,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACb,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;gBAC7C,CAAC,CAAC,CAAC;YACP,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;SAAM,IAAI,YAAY,EAAE,CAAC;QACxB,UAAU,CAAC,wCAAwC,CAAC,CAAC;IACvD,CAAC;IAED,8BAA8B;IAC9B,UAAU,CAAC,6BAA6B,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC;QAC7C,IAAI;QACJ,aAAa;QACb,UAAU,EAAE,oDAAoD;KACjE,CAAC,CAAC;IAEH,qEAAqE;IACrE,UAAU,CAAC,8BAA8B,CAAC,CAAC;IAC3C,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACrE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAE7B,UAAU,CAAC,+BAA+B,GAAG,EAAE,CAAC,CAAC;IAEjD,qDAAqD;IACrD,qEAAqE;IACrE,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,aAAa,CAAC,CAAC;QACrE,IAAI,SAAS,CAAC,EAAE,EAAE,CAAC;YACjB,UAAU,CAAC,iCAAiC,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CACX,6CAA6C,SAAS,CAAC,MAAM,EAAE,CAChE,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,uEAAuE,EACvE,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,mBAAmB,EAAE;SAClB,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QACd,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,sBAAsB,CAAC,CAAC;IACvE,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEL,qEAAqE;IACrE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACzD,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QACvD,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE;YACtC,UAAU,EAAE,IAAI;YAChB,aAAa,EAAE,IAAI;YACnB,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;QAEH,YAAY;aACT,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;aACjD,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;aACpD,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QAExD,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;IAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,4CAA4C;AAC5C,IAAI,eAAe,GAAwB,IAAI,CAAC;AAChD,MAAM,CAAC,qBAAqB,CAAC;KAC1B,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;IACZ,eAAe,GAAG,GAAG,CAAC,0BAA0B,CAAC;AACnD,CAAC,CAAC;KACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAEnB,iEAAiE;AACjE,SAAS,mBAAmB;IAC1B,IAAI,CAAC;QACH,MAAM,SAAS,GAAI,UAAkB,CAAC,6BAA6B,CAAC;QACpE,IAAI,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CACT,6CAA6C,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM,CACzE,CAAC;YACF,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAClD,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC;oBACH,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACpC,CAAC;gBAAC,MAAM,CAAC;oBACP,eAAe;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;AACH,CAAC;AAED,2BAA2B;AAC3B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IACzB,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAClD,mBAAmB,EAAE,CAAC;IACtB,eAAe,EAAE,EAAE,CAAC;IACpB,IAAI,WAAW,EAAE,CAAC;QAChB,WAAW,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,KAAK,YAAY,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,aAAa,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IACD,IAAI,iBAAiB,EAAE,CAAC;QACtB,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAClD,mBAAmB,EAAE,CAAC;IACtB,eAAe,EAAE,EAAE,CAAC;IACpB,IAAI,WAAW,EAAE,CAAC;QAChB,WAAW,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,KAAK,YAAY,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,aAAa,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IACD,IAAI,iBAAiB,EAAE,CAAC;QACtB,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -3,7 +3,18 @@
3
3
  if (!process.env.NODE_ENV) {
4
4
  process.env.NODE_ENV = 'production';
5
5
  }
6
+ import * as fs from 'fs';
7
+ import * as path from 'path';
6
8
  import * as net from 'net';
9
+ // On Windows, the server is launched via PowerShell Start-Process which can't
10
+ // redirect stdout/stderr. Redirect to log files here when CODEYAM_LOG_DIR is set.
11
+ if (process.env.CODEYAM_LOG_DIR) {
12
+ const logDir = process.env.CODEYAM_LOG_DIR;
13
+ const outStream = fs.createWriteStream(path.join(logDir, 'background-server.log'), { flags: 'a' });
14
+ const errStream = fs.createWriteStream(path.join(logDir, 'background-server-error.log'), { flags: 'a' });
15
+ process.stdout.write = (chunk, ...args) => outStream.write(chunk, ...args);
16
+ process.stderr.write = (chunk, ...args) => errStream.write(chunk, ...args);
17
+ }
7
18
  /**
8
19
  * Check if a port is available by attempting to create a server on it
9
20
  */
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../../src/webserver/bootstrap.ts"],"names":[],"mappings":";AAEA,4DAA4D;AAC5D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC;AACtC,CAAC;AAED,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAE3B;;GAEG;AACH,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,WAAW,CACxB,IAAY,EACZ,YAAoB,KAAK;IAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,cAAc,GAAG,GAAG,CAAC;IAE3B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE,CAAC;QAC1C,IAAI,MAAM,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,CAAC,KAAK,IAAI,EAAE;IACf,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC;IAE1D,gFAAgF;IAChF,wEAAwE;IACxE,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,MAAM,EAAE,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,yBAAyB,CAAC,CAAC;QAC3E,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CACX,oBAAoB,IAAI,0CAA0C,CACnE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,GAAG,CACT,oBAAoB,IAAI,uCAAuC,CAChE,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;AACxC,CAAC,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../../src/webserver/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import{r as i,j as o}from"./chunk-JZWAC4HX-JE9ZIoBl.js";import{C as x,a as m}from"./copy-6y9ALfGT.js";function y({content:a,label:l="Copy",copiedLabel:p="✓ Copied!",className:c="",duration:t=2e3,ariaLabel:C,icon:n=!1,iconSize:s=14}){const[e,r]=i.useState(!1),d=i.useCallback(()=>{navigator.clipboard.writeText(a).then(()=>{r(!0),setTimeout(()=>r(!1),t)}).catch(u=>{console.error("Failed to copy:",u)})},[a,t]);return o.jsx("button",{onClick:d,className:`cursor-pointer ${c}`,disabled:e,"aria-label":C||(e?"Copied to clipboard":"Copy to clipboard"),"aria-live":"polite",children:n?e?o.jsx(x,{size:s,className:"text-green-500"}):o.jsx(m,{size:s}):e?p:l})}export{y as C};
1
+ import{r as i,j as o}from"./chunk-JZWAC4HX-C4pqxYJB.js";import{C as x,a as m}from"./copy-NDbZjXao.js";function y({content:a,label:l="Copy",copiedLabel:p="✓ Copied!",className:c="",duration:t=2e3,ariaLabel:C,icon:n=!1,iconSize:s=14}){const[e,r]=i.useState(!1),d=i.useCallback(()=>{navigator.clipboard.writeText(a).then(()=>{r(!0),setTimeout(()=>r(!1),t)}).catch(u=>{console.error("Failed to copy:",u)})},[a,t]);return o.jsx("button",{onClick:d,className:`cursor-pointer ${c}`,disabled:e,"aria-label":C||(e?"Copied to clipboard":"Copy to clipboard"),"aria-live":"polite",children:n?e?o.jsx(x,{size:s,className:"text-green-500"}):o.jsx(m,{size:s}):e?p:l})}export{y as C};
@@ -1,4 +1,4 @@
1
- import{c as k}from"./createLucideIcon-Ca9fAY46.js";import{c as E,r as u,j as e,L as N}from"./chunk-JZWAC4HX-JE9ZIoBl.js";import{u as T}from"./useToast-Bv9JFvUO.js";import{f as D,g as F}from"./fileTableUtils-DCPhhSMo.js";import{T as P}from"./TruncatedFilePath-CiwXDxLh.js";import{S as C}from"./SafeScreenshot-Gq3Ocjo6.js";import{L as B}from"./LibraryFunctionPreview-VeqEBv9v.js";import{T as I}from"./triangle-alert-BZz2NjYa.js";import{E as v}from"./EntityTypeIcon-BqY8gDAW.js";import{E as L}from"./EntityTypeBadge-B5ctlSYt.js";/**
1
+ import{c as k}from"./createLucideIcon-CMT1jU2q.js";import{d as E,r as u,j as e,L as N}from"./chunk-JZWAC4HX-C4pqxYJB.js";import{u as T}from"./useToast-9FIWuYfK.js";import{f as D,g as F}from"./fileTableUtils-cPo8LiG3.js";import{T as P}from"./TruncatedFilePath-C8OKAR5x.js";import{S as C}from"./SafeScreenshot-BED4B6sP.js";import{L as B}from"./LibraryFunctionPreview-DLeucoVX.js";import{T as I}from"./triangle-alert-DtSmdtM4.js";import{E as v}from"./EntityTypeIcon-CobE682z.js";import{E as L}from"./EntityTypeBadge-g3saevPb.js";/**
2
2
  * @license lucide-react v0.556.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1 +1 @@
1
- import{j as o}from"./chunk-JZWAC4HX-JE9ZIoBl.js";const l={visual:{label:"VISUAL",bgColor:"#f9f9f9",textColor:"#9040f5"},library:{label:"LIBRARY",bgColor:"#f9f9f9",textColor:"#06b6d5"},type:{label:"TYPE",bgColor:"#ffe1e1",textColor:"#db2627"},other:{label:"OTHER",bgColor:"#f9f9f9",textColor:"#646464"}};function n({type:t,className:r=""}){const e=l[t]||l.other;return o.jsx("div",{className:`inline-flex items-center justify-center px-[4px] rounded-[4px] ${r}`,style:{backgroundColor:e.bgColor,color:e.textColor,height:"15px"},children:o.jsx("span",{className:"text-[10px] font-['IBM_Plex_Sans'] font-semibold leading-[15px] uppercase",children:e.label})})}export{n as E};
1
+ import{j as o}from"./chunk-JZWAC4HX-C4pqxYJB.js";const l={visual:{label:"VISUAL",bgColor:"#f9f9f9",textColor:"#9040f5"},library:{label:"LIBRARY",bgColor:"#f9f9f9",textColor:"#06b6d5"},type:{label:"TYPE",bgColor:"#ffe1e1",textColor:"#db2627"},other:{label:"OTHER",bgColor:"#f9f9f9",textColor:"#646464"}};function n({type:t,className:r=""}){const e=l[t]||l.other;return o.jsx("div",{className:`inline-flex items-center justify-center px-[4px] rounded-[4px] ${r}`,style:{backgroundColor:e.bgColor,color:e.textColor,height:"15px"},children:o.jsx("span",{className:"text-[10px] font-['IBM_Plex_Sans'] font-semibold leading-[15px] uppercase",children:e.label})})}export{n as E};
@@ -1,4 +1,4 @@
1
- import{j as e}from"./chunk-JZWAC4HX-JE9ZIoBl.js";import{c}from"./createLucideIcon-Ca9fAY46.js";/**
1
+ import{j as e}from"./chunk-JZWAC4HX-C4pqxYJB.js";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 @@
1
+ import{r as e,j as c}from"./chunk-JZWAC4HX-C4pqxYJB.js";const n=["⣾","⣽","⣻","⢿","⡿","⣟","⣯","⣷"],o=80;function i(){const[t,r]=e.useState(0);return e.useEffect(()=>{const s=setInterval(()=>{r(a=>(a+1)%n.length)},o);return()=>clearInterval(s)},[]),c.jsx("span",{className:"inline-block mr-2",children:n[t]})}export{i as I};
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CcsFv748.js","assets/chunk-JZWAC4HX-JE9ZIoBl.js","assets/index-ChN9-fAY.js","assets/styles-CMKNK2uU.css"])))=>i.map(i=>d[i]);
2
- import{r as t,j as e}from"./chunk-JZWAC4HX-JE9ZIoBl.js";import{_ as L}from"./preload-helper-ckwbz45p.js";import{u as Q}from"./useLastLogLine-COky1GVF.js";import{S as P,I as B}from"./InlineSpinner-ClaLpuOo.js";const $=t.createContext({dimensions:{height:720,width:1200},updateDimensions:()=>{},iframeRef:{current:null},scale:1,updateScale:()=>{},maxWidth:1200,updateMaxWidth:()=>{}}),U=()=>{const o=t.useContext($);if(!o)throw new Error("useWebContainer must be used within a WebContainerProvider");return o},oe=({children:o})=>{const[i,r]=t.useState({height:720,width:1200}),[d,f]=t.useState(1),[u,g]=t.useState(1200),x=t.useRef(null),h=t.useCallback(({height:l,width:j})=>{r(S=>({height:l??S.height,width:j??S.width}))},[]),v=t.useCallback(l=>{f(l)},[]),w=t.useCallback(l=>{g(l)},[]);return e.jsx($.Provider,{value:{dimensions:i,updateDimensions:h,iframeRef:x,scale:d,updateScale:v,maxWidth:u,updateMaxWidth:w},children:o})},X=typeof window<"u";function Z(){const[o,i]=t.useState(null);return t.useEffect(()=>{L(()=>import("./index-CcsFv748.js").then(r=>r.i),__vite__mapDeps([0,1,2])).then(r=>{i(()=>r.ResizableBox)}),L(()=>Promise.resolve({}),__vite__mapDeps([3]))},[]),o}const ee=1200,te=720,H=30,se=({id:o,scenarioName:i,iframeUrl:r,defaultWidth:d=1440,defaultHeight:f=900,onDataOverride:u,onIframeLoad:g,onScaleChange:x,onDimensionChange:h})=>{const v=Z(),[w,l]=t.useState(!1),[j,S]=t.useState(!1),[c,A]=t.useState(ee),[_,D]=t.useState(te),[E,T]=t.useState(null),[M,I]=t.useState(null),{dimensions:a,updateDimensions:y,iframeRef:m,updateScale:N,updateMaxWidth:R}=U(),k=t.useMemo(()=>Math.min(1,c/a.width),[c,a.width]),p=M!==null?M:k;t.useEffect(()=>{w||(N(p),x==null||x(p))},[p,N,x,w]),t.useEffect(()=>{R(c)},[c,R]);const G=t.useCallback(()=>{l(!0),I(k)},[k]),O=t.useCallback(()=>{l(!1),I(null)},[]),V=t.useCallback((n,s)=>{const b=M!==null?M:1,z=Math.round(s.size.width/b);y({width:z}),h==null||h(z,a.height)},[y,M,h,a.height]),F=t.useCallback(()=>{setTimeout(()=>{S(!0)},100),g&&g()},[g]);t.useEffect(()=>{const n=s=>{if(s.data.type==="codeyam-resize"){if(i&&s.data.name!==i||a.height===s.data.height||s.data.height===0)return;y({height:s.data.height})}};return window.addEventListener("message",n),()=>{window.removeEventListener("message",n)}},[m,i,d,a,y]),t.useEffect(()=>{j&&u&&u(m.current)},[j,u,m]),t.useEffect(()=>{if(!i)return;const n=setInterval(()=>{var s,b;(b=(s=m==null?void 0:m.current)==null?void 0:s.contentWindow)==null||b.postMessage({type:"codeyam-respond",name:i},"*")},1e3);return()=>clearInterval(n)},[i,m]),t.useEffect(()=>{const n=()=>{const s=document.getElementById("scenario-container");if(!s)return;const b=s.getBoundingClientRect(),z=s.clientWidth-H*2,q=window.innerHeight-b.top-H*2,J=Math.max(q,400),K=window.innerHeight-b.top;A(z),D(J),T(K)};return n(),window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[]),t.useEffect(()=>{y({width:d,height:f})},[d,f,y]);const C=t.useMemo(()=>a.width*p,[a.width,p]),W=t.useMemo(()=>{const n=a.height,s=n*p;return n&&n!==720&&n!==900&&s<_?s:_},[a.height,_,p]),Y=t.useCallback(()=>{window.history.back()},[]);return!X||!v?e.jsx("div",{className:"relative bg-gray-100 w-full h-full flex items-center justify-center",children:e.jsx("p",{className:"text-gray-500",children:"Loading interactive view..."})}):e.jsxs("div",{id:"scenario-container",className:"relative bg-gray-100 w-full flex items-center justify-center",style:E?{height:`${E}px`}:{},children:[w&&e.jsx("div",{className:"fixed inset-0 z-50 bg-transparent"}),e.jsx("style",{children:`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-BcvgDzbZ.js","assets/chunk-JZWAC4HX-C4pqxYJB.js","assets/index-10oVnAAH.js","assets/styles-CMKNK2uU.css"])))=>i.map(i=>d[i]);
2
+ import{r as t,j as e}from"./chunk-JZWAC4HX-C4pqxYJB.js";import{_ as L}from"./preload-helper-ckwbz45p.js";import{u as Q}from"./useLastLogLine-C14nCb1q.js";import{S as P}from"./Spinner-Bb5uFQ5V.js";import{I as B}from"./InlineSpinner-Bu6c6aDe.js";const $=t.createContext({dimensions:{height:720,width:1200},updateDimensions:()=>{},iframeRef:{current:null},scale:1,updateScale:()=>{},maxWidth:1200,updateMaxWidth:()=>{}}),U=()=>{const o=t.useContext($);if(!o)throw new Error("useWebContainer must be used within a WebContainerProvider");return o},le=({children:o})=>{const[i,r]=t.useState({height:720,width:1200}),[d,f]=t.useState(1),[u,g]=t.useState(1200),x=t.useRef(null),h=t.useCallback(({height:l,width:j})=>{r(S=>({height:l??S.height,width:j??S.width}))},[]),v=t.useCallback(l=>{f(l)},[]),w=t.useCallback(l=>{g(l)},[]);return e.jsx($.Provider,{value:{dimensions:i,updateDimensions:h,iframeRef:x,scale:d,updateScale:v,maxWidth:u,updateMaxWidth:w},children:o})},X=typeof window<"u";function Z(){const[o,i]=t.useState(null);return t.useEffect(()=>{L(()=>import("./index-BcvgDzbZ.js").then(r=>r.i),__vite__mapDeps([0,1,2])).then(r=>{i(()=>r.ResizableBox)}),L(()=>Promise.resolve({}),__vite__mapDeps([3]))},[]),o}const ee=1200,te=720,H=30,se=({id:o,scenarioName:i,iframeUrl:r,defaultWidth:d=1440,defaultHeight:f=900,onDataOverride:u,onIframeLoad:g,onScaleChange:x,onDimensionChange:h})=>{const v=Z(),[w,l]=t.useState(!1),[j,S]=t.useState(!1),[c,A]=t.useState(ee),[_,D]=t.useState(te),[E,T]=t.useState(null),[M,I]=t.useState(null),{dimensions:a,updateDimensions:y,iframeRef:m,updateScale:N,updateMaxWidth:R}=U(),k=t.useMemo(()=>Math.min(1,c/a.width),[c,a.width]),p=M!==null?M:k;t.useEffect(()=>{w||(N(p),x==null||x(p))},[p,N,x,w]),t.useEffect(()=>{R(c)},[c,R]);const G=t.useCallback(()=>{l(!0),I(k)},[k]),O=t.useCallback(()=>{l(!1),I(null)},[]),V=t.useCallback((n,s)=>{const b=M!==null?M:1,z=Math.round(s.size.width/b);y({width:z}),h==null||h(z,a.height)},[y,M,h,a.height]),F=t.useCallback(()=>{setTimeout(()=>{S(!0)},100),g&&g()},[g]);t.useEffect(()=>{const n=s=>{if(s.data.type==="codeyam-resize"){if(i&&s.data.name!==i||a.height===s.data.height||s.data.height===0)return;y({height:s.data.height})}};return window.addEventListener("message",n),()=>{window.removeEventListener("message",n)}},[m,i,d,a,y]),t.useEffect(()=>{j&&u&&u(m.current)},[j,u,m]),t.useEffect(()=>{if(!i)return;const n=setInterval(()=>{var s,b;(b=(s=m==null?void 0:m.current)==null?void 0:s.contentWindow)==null||b.postMessage({type:"codeyam-respond",name:i},"*")},1e3);return()=>clearInterval(n)},[i,m]),t.useEffect(()=>{const n=()=>{const s=document.getElementById("scenario-container");if(!s)return;const b=s.getBoundingClientRect(),z=s.clientWidth-H*2,q=window.innerHeight-b.top-H*2,J=Math.max(q,400),K=window.innerHeight-b.top;A(z),D(J),T(K)};return n(),window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[]),t.useEffect(()=>{y({width:d,height:f})},[d,f,y]);const C=t.useMemo(()=>a.width*p,[a.width,p]),W=t.useMemo(()=>{const n=a.height,s=n*p;return n&&n!==720&&n!==900&&s<_?s:_},[a.height,_,p]),Y=t.useCallback(()=>{window.history.back()},[]);return!X||!v?e.jsx("div",{className:"relative bg-gray-100 w-full h-full flex items-center justify-center",children:e.jsx("p",{className:"text-gray-500",children:"Loading interactive view..."})}):e.jsxs("div",{id:"scenario-container",className:"relative bg-gray-100 w-full flex items-center justify-center",style:E?{height:`${E}px`}:{},children:[w&&e.jsx("div",{className:"fixed inset-0 z-50 bg-transparent"}),e.jsx("style",{children:`
3
3
  .react-resizable-handle-e {
4
4
  display: flex !important;
5
5
  align-items: center !important;
@@ -22,4 +22,4 @@ import{r as t,j as e}from"./chunk-JZWAC4HX-JE9ZIoBl.js";import{_ as L}from"./pre
22
22
  .react-resizable:hover .react-resizable-handle-e {
23
23
  opacity: 0.4 !important;
24
24
  }
25
- `}),e.jsx(v,{width:C,height:W,minConstraints:[300,200],maxConstraints:[c,_],className:"relative bg-white rounded-lg shadow-md",resizeHandles:["e"],onResizeStart:G,onResizeStop:O,onResize:V,children:e.jsx("div",{className:"overflow-auto",style:{width:`${C}px`,height:`${W}px`},children:e.jsx("div",{style:{width:`${a.width}px`,height:`${a.height}px`,transform:`scale(${p})`,transformOrigin:"top left"},children:r?e.jsx("iframe",{ref:m,className:"w-full h-full rounded-lg",src:r,onLoad:F,sandbox:"allow-scripts allow-same-origin"}):e.jsxs("p",{className:"w-full h-full flex flex-col gap-3 items-center justify-center",children:[e.jsx("span",{className:"text-xl font-light",children:"Oops! Looks like this scenario is not available yet. Please check back later."}),e.jsx("span",{className:"text-blue-600 cursor-pointer",onClick:Y,children:"Go back"})]})})})},`resizable-box-${o}`)]})};function le({scenarioId:o,scenarioName:i,iframeUrl:r,isStarting:d,isLoading:f,showIframe:u,iframeKey:g,onIframeLoad:x,onScaleChange:h,onDimensionChange:v,projectSlug:w,defaultWidth:l=1440,defaultHeight:j=900,retryCount:S=0}){const{lastLine:c}=Q(w??null,d||f);return r?e.jsxs("div",{className:"flex-1 min-h-0 relative",style:{background:"transparent"},children:[e.jsx("div",{style:{opacity:u?1:0,background:"transparent"},children:e.jsx(se,{id:o,scenarioName:i,iframeUrl:r,defaultWidth:l,defaultHeight:j,onIframeLoad:x,onScaleChange:h,onDimensionChange:v},g)}),!u&&(d||f)&&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(P,{})}),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:"Starting Interactive Mode"}),e.jsx("p",{className:"text-sm text-[#666] leading-5 m-0 font-['IBM_Plex_Sans']",children:"Setting up a sandboxed environment for your component"}),c&&e.jsxs("p",{className:"text-xs font-mono text-[#005c75] text-center leading-5 m-0 mt-3 font-['IBM_Plex_Mono'] uppercase",children:[e.jsx(B,{}),c]})]})]})})]}):e.jsx("div",{className:"flex-1 flex flex-col items-center justify-center p-12 text-center",children:e.jsxs("div",{className:"flex flex-col items-center justify-center gap-6 w-[500px] h-[300px] bg-white rounded-lg p-8 shadow-sm",children:[e.jsx("div",{className:"mb-4",children:e.jsx(P,{})}),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:"Starting Interactive Mode"}),e.jsx("p",{className:"text-sm text-[#666] leading-5 m-0 font-['IBM_Plex_Sans']",children:"Setting up a sandboxed environment for your component"}),c&&e.jsxs("p",{className:"text-xs font-mono text-[#005c75] text-center leading-5 m-0 mt-3 font-['IBM_Plex_Mono'] uppercase",children:[e.jsx(B,{}),c]})]})]})})}export{le as I,oe as W,U as u};
25
+ `}),e.jsx(v,{width:C,height:W,minConstraints:[300,200],maxConstraints:[c,_],className:"relative bg-white rounded-lg shadow-md",resizeHandles:["e"],onResizeStart:G,onResizeStop:O,onResize:V,children:e.jsx("div",{className:"overflow-auto",style:{width:`${C}px`,height:`${W}px`},children:e.jsx("div",{style:{width:`${a.width}px`,height:`${a.height}px`,transform:`scale(${p})`,transformOrigin:"top left"},children:r?e.jsx("iframe",{ref:m,className:"w-full h-full rounded-lg",src:r,onLoad:F,sandbox:"allow-scripts allow-same-origin"}):e.jsxs("p",{className:"w-full h-full flex flex-col gap-3 items-center justify-center",children:[e.jsx("span",{className:"text-xl font-light",children:"Oops! Looks like this scenario is not available yet. Please check back later."}),e.jsx("span",{className:"text-blue-600 cursor-pointer",onClick:Y,children:"Go back"})]})})})},`resizable-box-${o}`)]})};function ce({scenarioId:o,scenarioName:i,iframeUrl:r,isStarting:d,isLoading:f,showIframe:u,iframeKey:g,onIframeLoad:x,onScaleChange:h,onDimensionChange:v,projectSlug:w,defaultWidth:l=1440,defaultHeight:j=900,retryCount:S=0}){const{lastLine:c}=Q(w??null,d||f);return r?e.jsxs("div",{className:"flex-1 min-h-0 relative",style:{background:"transparent"},children:[e.jsx("div",{style:{opacity:u?1:0,background:"transparent"},children:e.jsx(se,{id:o,scenarioName:i,iframeUrl:r,defaultWidth:l,defaultHeight:j,onIframeLoad:x,onScaleChange:h,onDimensionChange:v},g)}),!u&&(d||f)&&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(P,{})}),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:"Starting Interactive Mode"}),e.jsx("p",{className:"text-sm text-[#666] leading-5 m-0 font-['IBM_Plex_Sans']",children:"Setting up a sandboxed environment for your component"}),c&&e.jsxs("p",{className:"text-xs font-mono text-[#005c75] text-center leading-5 m-0 mt-3 font-['IBM_Plex_Mono'] uppercase",children:[e.jsx(B,{}),c]})]})]})})]}):e.jsx("div",{className:"flex-1 flex flex-col items-center justify-center p-12 text-center",children:e.jsxs("div",{className:"flex flex-col items-center justify-center gap-6 w-[500px] h-[300px] bg-white rounded-lg p-8 shadow-sm",children:[e.jsx("div",{className:"mb-4",children:e.jsx(P,{})}),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:"Starting Interactive Mode"}),e.jsx("p",{className:"text-sm text-[#666] leading-5 m-0 font-['IBM_Plex_Sans']",children:"Setting up a sandboxed environment for your component"}),c&&e.jsxs("p",{className:"text-xs font-mono text-[#005c75] text-center leading-5 m-0 mt-3 font-['IBM_Plex_Mono'] uppercase",children:[e.jsx(B,{}),c]})]})]})})}export{ce as I,le as W,U as u};
@@ -1,3 +1,3 @@
1
- import{j as r,L as C}from"./chunk-JZWAC4HX-JE9ZIoBl.js";import{g as L}from"./scenarioStatus-B_8jpV3e.js";function M({scenario:s,entitySha:m,size:g="medium",showBorder:j=!0,isOutdated:E=!1}){var x,h,u,p,$,f;const t=L(s,void 0,void 0,m,void 0),e=(x=s.metadata)==null?void 0:x.executionResult,o=!!e,b=(((u=(h=s.metadata)==null?void 0:h.data)==null?void 0:u.argumentsData)||[]).length,c=(e==null?void 0:e.returnValue)!==void 0&&(e==null?void 0:e.returnValue)!==null,i=(($=(p=e==null?void 0:e.sideEffects)==null?void 0:p.consoleOutput)==null?void 0:$.length)||0,d=((f=e==null?void 0:e.timing)==null?void 0:f.duration)||0;let a=0;b>0&&a++,b>2&&a++,c&&a++,i>0&&a++,a=Math.min(3,a);const l=g==="small"?{width:"w-[50px]",height:"h-[38px]",iconSize:"text-base",textSize:"text-[8px]"}:{width:"w-20",height:"h-15",iconSize:"text-xl",textSize:"text-[10px]"},n=t.hasError?{border:"border-red-400",bg:"bg-red-50",icon:"text-red-600",badge:"bg-red-100 text-red-700"}:o?E?{border:"border-amber-500",bg:"bg-amber-50",icon:"text-amber-700",badge:"bg-amber-100 text-amber-700"}:{border:"border-blue-400",bg:"bg-blue-50",icon:"text-blue-600",badge:"bg-blue-100 text-blue-700"}:{border:"border-gray-300 border-dashed",bg:"bg-gray-50",icon:"text-gray-400",badge:"bg-gray-100 text-gray-600"},w=j?`border-2 ${n.border}`:"",S=Array.from({length:3},(v,y)=>r.jsx("div",{className:`w-1 h-1 rounded-full ${y<a?n.icon.replace("text-","bg-"):"bg-gray-300"}`},y)),N=t.hasError?`Error: ${t.errorMessage||"Unknown error"}`:o?`${s.name}
1
+ import{j as r,L as C}from"./chunk-JZWAC4HX-C4pqxYJB.js";import{g as L}from"./scenarioStatus-B_8jpV3e.js";function M({scenario:s,entitySha:m,size:g="medium",showBorder:j=!0,isOutdated:E=!1}){var x,h,u,p,$,f;const t=L(s,void 0,void 0,m,void 0),e=(x=s.metadata)==null?void 0:x.executionResult,o=!!e,b=(((u=(h=s.metadata)==null?void 0:h.data)==null?void 0:u.argumentsData)||[]).length,c=(e==null?void 0:e.returnValue)!==void 0&&(e==null?void 0:e.returnValue)!==null,i=(($=(p=e==null?void 0:e.sideEffects)==null?void 0:p.consoleOutput)==null?void 0:$.length)||0,d=((f=e==null?void 0:e.timing)==null?void 0:f.duration)||0;let a=0;b>0&&a++,b>2&&a++,c&&a++,i>0&&a++,a=Math.min(3,a);const l=g==="small"?{width:"w-[50px]",height:"h-[38px]",iconSize:"text-base",textSize:"text-[8px]"}:{width:"w-20",height:"h-15",iconSize:"text-xl",textSize:"text-[10px]"},n=t.hasError?{border:"border-red-400",bg:"bg-red-50",icon:"text-red-600",badge:"bg-red-100 text-red-700"}:o?E?{border:"border-amber-500",bg:"bg-amber-50",icon:"text-amber-700",badge:"bg-amber-100 text-amber-700"}:{border:"border-blue-400",bg:"bg-blue-50",icon:"text-blue-600",badge:"bg-blue-100 text-blue-700"}:{border:"border-gray-300 border-dashed",bg:"bg-gray-50",icon:"text-gray-400",badge:"bg-gray-100 text-gray-600"},w=j?`border-2 ${n.border}`:"",S=Array.from({length:3},(v,y)=>r.jsx("div",{className:`w-1 h-1 rounded-full ${y<a?n.icon.replace("text-","bg-"):"bg-gray-300"}`},y)),N=t.hasError?`Error: ${t.errorMessage||"Unknown error"}`:o?`${s.name}
2
2
  ${b} args → ${c?"value":"void"}${i>0?` (${i} logs)`:""}
3
3
  ${d}ms`:`Not executed: ${s.name}`;return r.jsxs(C,{to:`/entity/${m}/scenarios/${s.id}`,className:`relative ${l.width} ${l.height} ${w} rounded ${n.bg} flex flex-col items-center justify-center gap-0.5 cursor-pointer transition-all hover:scale-105 hover:shadow-md`,title:N,onClick:v=>v.stopPropagation(),children:[r.jsx("div",{className:`${n.icon} ${l.iconSize} font-mono font-bold`,children:t.hasError?"⚠":o?"ƒ":"○"}),o&&!t.hasError&&r.jsxs("div",{className:`flex items-center gap-0.5 ${l.textSize} ${n.badge} px-1 rounded`,children:[r.jsx("span",{children:b}),r.jsx("span",{children:"→"}),r.jsx("span",{children:c?"✓":"∅"})]}),o&&!t.hasError&&g==="medium"&&r.jsx("div",{className:"flex gap-0.5 mt-0.5",children:S}),o&&!t.hasError&&d>100&&g==="medium"&&r.jsx("div",{className:`absolute top-0.5 right-0.5 ${l.textSize} ${n.badge} px-1 rounded`,children:d>1e3?`${Math.round(d/1e3)}s`:`${d}ms`}),o&&!t.hasError&&i>0&&g==="medium"&&r.jsxs("div",{className:"absolute bottom-0.5 left-0.5 text-[8px] text-gray-500",children:["📝",i]})]})}export{M as L};
@@ -1,4 +1,4 @@
1
- import{j as i}from"./chunk-JZWAC4HX-JE9ZIoBl.js";let s=!1;function r(){if(s)return;const e=document.createElement("style");e.textContent=`
1
+ import{j as i}from"./chunk-JZWAC4HX-C4pqxYJB.js";let s=!1;function r(){if(s)return;const e=document.createElement("style");e.textContent=`
2
2
  @keyframes strongPulse {
3
3
  0%, 100% { opacity: 0.2; }
4
4
  50% { opacity: 1; }
@@ -1,3 +1,3 @@
1
- import{r,j as e}from"./chunk-JZWAC4HX-JE9ZIoBl.js";function w({projectSlug:x,onClose:l}){const[m,o]=r.useState("Loading logs..."),[u,g]=r.useState(!0),[d,f]=r.useState(!0),[n,b]=r.useState("all"),a=r.useRef(null);return r.useEffect(()=>{const t=async()=>{try{const s=await fetch(`/api/logs/${x}`);if(s.ok){const h=await s.text();if(n==="all")o(h);else{const c=h.trim().split(`
1
+ import{r,j as e}from"./chunk-JZWAC4HX-C4pqxYJB.js";function w({projectSlug:x,onClose:l}){const[m,o]=r.useState("Loading logs..."),[u,g]=r.useState(!0),[d,f]=r.useState(!0),[n,b]=r.useState("all"),a=r.useRef(null);return r.useEffect(()=>{const t=async()=>{try{const s=await fetch(`/api/logs/${x}`);if(s.ok){const h=await s.text();if(n==="all")o(h);else{const c=h.trim().split(`
2
2
  `).filter(i=>{if(i.length===0)return!1;const p=i.match(/^.*CodeYam Log Level (\d+):/);return!!p&&Number(p[1])<=n});o(c.map(i=>i.replace(/^.*CodeYam Log Level \d+:\s*/,"")).join(`
3
3
  `))}d&&a.current&&setTimeout(()=>{var c;(c=a.current)==null||c.scrollTo({top:a.current.scrollHeight,behavior:"smooth"})},100)}else o(`Error: ${s.status} - ${await s.text()}`)}catch(s){o(`Error fetching logs: ${s.message}`)}};if(t().catch(()=>{}),u){const s=setInterval(()=>{t().catch(()=>{})},2e3);return()=>clearInterval(s)}},[x,u,d,n]),r.useEffect(()=>{const t=s=>{s.key==="Escape"&&l()};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[l]),e.jsx("div",{className:"fixed inset-0 bg-black/70 flex items-center justify-center z-9999 p-5",onClick:l,children:e.jsxs("div",{className:"bg-[#1e1e1e] rounded-lg shadow-2xl flex flex-col max-w-[1200px] w-full max-h-[90vh] overflow-hidden",onClick:t=>t.stopPropagation(),children:[e.jsxs("div",{className:"flex justify-between items-center px-5 py-4 border-b border-[#333] bg-[#252525]",children:[e.jsxs("h3",{className:"m-0 text-lg font-semibold text-white",children:["Analysis Logs - ",x]}),e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs("label",{className:"flex items-center gap-2 text-sm text-[#ccc] select-none",children:[e.jsx("span",{children:"Log Level:"}),e.jsxs("select",{value:n,onChange:t=>b(t.target.value==="all"?"all":Number(t.target.value)),className:"bg-[#333] text-white border border-[#555] rounded px-2 py-1 text-sm cursor-pointer outline-none transition-all hover:border-[#777] hover:bg-[#3a3a3a] focus:border-blue-600",children:[e.jsx("option",{value:"1",children:"1"}),e.jsx("option",{value:"2",children:"2"}),e.jsx("option",{value:"3",children:"3"}),e.jsx("option",{value:"4",children:"4"}),e.jsx("option",{value:"all",children:"All"})]})]}),e.jsxs("label",{className:"flex items-center gap-1.5 text-sm text-[#ccc] cursor-pointer select-none group",children:[e.jsx("input",{type:"checkbox",checked:u,onChange:t=>g(t.target.checked),className:"cursor-pointer"}),e.jsx("span",{className:"group-hover:text-white",children:"Auto-refresh"})]}),e.jsxs("label",{className:"flex items-center gap-1.5 text-sm text-[#ccc] cursor-pointer select-none group",children:[e.jsx("input",{type:"checkbox",checked:d,onChange:t=>f(t.target.checked),className:"cursor-pointer"}),e.jsx("span",{className:"group-hover:text-white",children:"Auto-scroll"})]}),e.jsx("button",{onClick:l,className:"bg-transparent border-none text-[#999] text-2xl cursor-pointer p-0 w-8 h-8 flex items-center justify-center rounded transition-all hover:bg-[#333] hover:text-white",title:"Close (Esc)",children:"✕"})]})]}),e.jsx("pre",{className:"flex-1 m-0 px-5 py-4 overflow-auto font-mono text-[13px] leading-relaxed text-[#d4d4d4] bg-[#1e1e1e] whitespace-pre-wrap wrap-break-word scrollbar-thin scrollbar-thumb-[#424242] scrollbar-track-[#1e1e1e] hover:scrollbar-thumb-[#4f4f4f]",ref:a,children:m})]})})}export{w as L};
@@ -1,4 +1,4 @@
1
- import{r as t,c as T,j as e}from"./chunk-JZWAC4HX-JE9ZIoBl.js";import{c as S}from"./createLucideIcon-Ca9fAY46.js";import{C as F}from"./circle-check-CXhHQYrI.js";import{T as k}from"./triangle-alert-BZz2NjYa.js";import{C as E,a as A}from"./copy-6y9ALfGT.js";/**
1
+ import{r as t,d as T,j as e}from"./chunk-JZWAC4HX-C4pqxYJB.js";import{c as S}from"./createLucideIcon-CMT1jU2q.js";import{C as F}from"./circle-check-DyIKORY6.js";import{T as k}from"./triangle-alert-DtSmdtM4.js";import{C as E,a as A}from"./copy-NDbZjXao.js";/**
2
2
  * @license lucide-react v0.556.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -8,4 +8,4 @@ import{r as t,c as T,j as e}from"./chunk-JZWAC4HX-JE9ZIoBl.js";import{c as S}fro
8
8
  *
9
9
  * This source code is licensed under the ISC license.
10
10
  * See the LICENSE file in the root directory of this source tree.
11
- */const L=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],w=S("settings",L);function Y(r){return r.scenarioName&&r.entityName?`${r.entityName} → "${r.scenarioName}"`:r.entityName?r.entityName:r.scenarioId?`Scenario: ${r.scenarioId.slice(0,8)}...`:r.entitySha?`Entity: ${r.entitySha.slice(0,8)}...`:"General feedback"}function _({content:r,className:x=""}){const[s,o]=t.useState(!1),i=t.useCallback(()=>{navigator.clipboard.writeText(r).then(()=>{o(!0),setTimeout(()=>o(!1),2e3)}).catch(n=>{console.error("Failed to copy:",n)})},[r]);return e.jsx("button",{onClick:i,className:`cursor-pointer flex items-center gap-1 ${x}`,disabled:s,"aria-label":s?"Copied to clipboard":"Copy to clipboard",children:s?e.jsxs(e.Fragment,{children:[e.jsx(E,{size:14}),"Copied"]}):e.jsxs(e.Fragment,{children:[e.jsx(A,{size:14}),"Copy"]})})}function G({isOpen:r,onClose:x,context:s,defaultEmail:o="",screenshotDataUrl:i}){const[n,y]=t.useState(""),[b,I]=t.useState(o),[u,j]=t.useState(!1),[c,f]=t.useState(!1),[M,N]=t.useState(null),[m,h]=t.useState(null),l=T(),d=l.state!=="idle",g=!!(s.scenarioId||s.analysisId),$=s.analysisId||s.scenarioId||"",v=()=>{const a=`/codeyam:diagnose ${$}`;return n.trim()?`${a} ${n.trim()}`:a};if(l.data&&!c&&!m){const a=l.data;a.success&&a.reportId?(f(!0),N(a.reportId)):a.error&&h(a.error)}const D=async()=>{h(null);const a=new FormData;if(a.append("issueType","other"),a.append("description",n),a.append("email",b),a.append("source",s.source),a.append("entitySha",s.entitySha||""),a.append("scenarioId",s.scenarioId||""),a.append("analysisId",s.analysisId||""),a.append("currentUrl",s.currentUrl),a.append("entityName",s.entityName||""),a.append("entityType",s.entityType||""),a.append("scenarioName",s.scenarioName||""),a.append("errorMessage",s.errorMessage||""),i)try{const R=await(await fetch(i)).blob();a.append("screenshot",R,"screenshot.jpg")}catch(C){console.error("Failed to convert screenshot:",C)}l.submit(a,{method:"post",action:"/api/generate-report",encType:"multipart/form-data"})},p=()=>{y(""),j(!1),f(!1),N(null),h(null),x()},z=a=>{a.key==="Escape"&&p()};return r?e.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center p-4 z-50",onKeyDown:z,children:e.jsxs("div",{className:"bg-white rounded-lg max-w-lg w-full p-6 shadow-xl max-h-[90vh] overflow-y-auto",children:[e.jsxs("div",{className:"flex items-center justify-between mb-6",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[d?e.jsx("div",{className:"animate-spin",children:e.jsx(w,{size:24,style:{strokeWidth:1.5}})}):c?e.jsx(F,{size:24,style:{color:"#10B981",strokeWidth:1.5}}):e.jsx(B,{size:24,style:{color:"#005C75",strokeWidth:1.5}}),e.jsx("h2",{className:"text-xl font-semibold text-gray-900",children:c?"Report Submitted":"Report Issue"})]}),e.jsx("button",{onClick:p,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"})})})]}),c?e.jsxs("div",{children:[e.jsxs("div",{className:"mb-6 p-4 bg-green-50 rounded-lg border border-green-200",children:[e.jsx("p",{className:"text-sm text-green-800 font-medium mb-1",children:"Thank you for your feedback!"}),e.jsxs("p",{className:"text-xs text-green-700",children:["Report ID:"," ",e.jsx("code",{className:"bg-green-100 px-1 rounded",children:M})]})]}),e.jsx("p",{className:"text-sm text-gray-600 mb-6",children:"The CodeYam team will investigate and may reach out if you provided an email address."}),e.jsx("div",{className:"flex justify-end",children:e.jsx("button",{onClick:p,className:"px-4 py-2 bg-[#005c75] text-white text-sm font-medium rounded-md hover:bg-[#004a5c] transition-colors cursor-pointer",children:"Done"})})]}):e.jsxs("div",{children:[e.jsxs("div",{className:"mb-4 p-3 bg-gray-50 rounded-lg border border-gray-200",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("div",{className:"text-sm font-medium text-gray-900",title:`${s.source}${s.entitySha?` • Entity: ${s.entitySha}`:""}${s.scenarioId?` • Scenario: ${s.scenarioId}`:""}${s.analysisId?` • Analysis: ${s.analysisId}`:""}`,children:Y(s)}),e.jsx("button",{type:"button",onClick:()=>j(!u),className:"text-xs text-gray-500 hover:text-gray-700 underline cursor-pointer",children:u?"Hide":"Details"})]}),u&&e.jsxs("div",{className:"mt-2 pt-2 border-t border-gray-200 text-xs text-gray-600 space-y-1 break-all",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-400",children:"Source:"})," ",s.source]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-400",children:"URL:"})," ",s.currentUrl]}),s.entitySha&&e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-400",children:"Entity:"})," ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:s.entitySha})]}),s.scenarioId&&e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-400",children:"Scenario:"})," ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:s.scenarioId})]}),s.analysisId&&e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-400",children:"Analysis:"})," ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:s.analysisId})]})]})]}),i&&e.jsxs("div",{className:"mb-4 p-3 bg-gray-50 rounded-lg border border-gray-200",children:[e.jsx("div",{className:"text-xs text-gray-500 mb-2",children:"Screenshot (will be included in report)"}),e.jsx("img",{src:i,alt:"Page screenshot",className:"w-full max-h-[150px] object-contain rounded border border-gray-300"})]}),e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{htmlFor:"description",className:"block text-sm font-medium text-gray-700 mb-2",children:"What happened?"}),e.jsx("textarea",{id:"description",value:n,onChange:a=>y(a.target.value),placeholder:"Optional: Describe what you expected vs what happened...",rows:3,className:"w-full px-3 py-2 border border-gray-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-[#005c75] focus:border-[#005c75] resize-none"})]}),g&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-4 p-4 bg-purple-50 rounded-lg border border-purple-200",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx("span",{className:"text-lg",children:"🔧"}),e.jsx("h3",{className:"text-sm font-semibold text-purple-900",children:"Diagnose & Fix (Recommended)"})]}),e.jsx("p",{className:"text-xs text-purple-700 mb-3",children:"Run this command in Claude Code to investigate the issue locally and potentially fix it. A detailed report will also be uploaded."}),e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"bg-gray-800 text-gray-50 px-3 py-2.5 pr-20 rounded-md text-xs font-mono overflow-x-auto whitespace-nowrap",children:v()}),e.jsx(_,{content:v(),className:"absolute top-1.5 right-2 px-2 py-1 bg-purple-600 text-white border-none rounded text-[11px] font-medium hover:bg-purple-700 transition-colors"})]})]}),e.jsxs("div",{className:"relative my-5",children:[e.jsx("div",{className:"absolute inset-0 flex items-center",children:e.jsx("div",{className:"w-full border-t border-gray-300"})}),e.jsx("div",{className:"relative flex justify-center",children:e.jsx("span",{className:"bg-white px-3 text-xs text-gray-500 uppercase",children:"or"})})]})]}),e.jsxs("div",{className:g?"opacity-75":"",children:[g&&e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx("span",{className:"text-lg",children:"📤"}),e.jsx("h3",{className:"text-sm font-semibold text-gray-700",children:"Quick Report"}),e.jsx("span",{className:"text-xs text-gray-500",children:"(won't investigate locally)"})]}),e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{htmlFor:"email",className:"block text-sm font-medium text-gray-700 mb-2",children:"Your email"}),e.jsx("input",{id:"email",type:"email",value:b,onChange:a=>I(a.target.value),placeholder:"you@example.com",className:"w-full px-3 py-2 border border-gray-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-[#005c75] focus:border-[#005c75]"})]}),e.jsxs("div",{className:"mb-4 p-3 bg-amber-50 rounded-lg border border-amber-200 flex gap-2",children:[e.jsx(k,{size:16,className:"flex-shrink-0 mt-0.5",style:{color:"#D97706"}}),e.jsxs("div",{className:"text-xs text-amber-800",children:[e.jsx("p",{className:"font-medium mb-1",children:"Source code will be uploaded"}),e.jsx("p",{children:"This report includes your project source code, git history, and CodeYam logs. Only submit if you're comfortable sharing this with the CodeYam team."})]})]}),d&&e.jsx("div",{className:"mb-4 text-center",children:e.jsx("p",{className:"text-sm text-gray-600",children:l.formData?"Uploading report...":"Creating archive..."})}),m&&e.jsxs("div",{className:"mb-4 p-3 bg-red-50 rounded-lg border border-red-200 flex gap-2",children:[e.jsx(k,{size:16,className:"flex-shrink-0 mt-0.5",style:{color:"#DC2626"}}),e.jsxs("div",{className:"text-xs text-red-800",children:[e.jsx("p",{className:"font-medium mb-1",children:"Upload failed"}),e.jsx("p",{children:m})]})]}),e.jsxs("div",{className:"flex gap-3 justify-end",children:[e.jsx("button",{onClick:p,disabled:d,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 disabled:opacity-50 cursor-pointer",children:"Cancel"}),e.jsx("button",{onClick:()=>void D(),disabled:d,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 disabled:bg-gray-300 disabled:cursor-not-allowed flex items-center gap-2 cursor-pointer",children:d?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"animate-spin",children:e.jsx(w,{size:16,style:{strokeWidth:1.5}})}),"Submitting..."]}):m?"Try Again":"Submit Report"})]})]})]})]})}):null}export{B,G as R,w as S};
11
+ */const L=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],w=S("settings",L);function Y(r){return r.scenarioName&&r.entityName?`${r.entityName} → "${r.scenarioName}"`:r.entityName?r.entityName:r.scenarioId?`Scenario: ${r.scenarioId.slice(0,8)}...`:r.entitySha?`Entity: ${r.entitySha.slice(0,8)}...`:"General feedback"}function _({content:r,className:x=""}){const[s,o]=t.useState(!1),i=t.useCallback(()=>{navigator.clipboard.writeText(r).then(()=>{o(!0),setTimeout(()=>o(!1),2e3)}).catch(n=>{console.error("Failed to copy:",n)})},[r]);return e.jsx("button",{onClick:i,className:`cursor-pointer flex items-center gap-1 ${x}`,disabled:s,"aria-label":s?"Copied to clipboard":"Copy to clipboard",children:s?e.jsxs(e.Fragment,{children:[e.jsx(E,{size:14}),"Copied"]}):e.jsxs(e.Fragment,{children:[e.jsx(A,{size:14}),"Copy"]})})}function G({isOpen:r,onClose:x,context:s,defaultEmail:o="",screenshotDataUrl:i}){const[n,y]=t.useState(""),[b,I]=t.useState(o),[u,j]=t.useState(!1),[c,f]=t.useState(!1),[M,N]=t.useState(null),[m,h]=t.useState(null),l=T(),d=l.state!=="idle",g=!!(s.scenarioId||s.analysisId),$=s.analysisId||s.scenarioId||"",v=()=>{const a=`/codeyam-diagnose ${$}`;return n.trim()?`${a} ${n.trim()}`:a};if(l.data&&!c&&!m){const a=l.data;a.success&&a.reportId?(f(!0),N(a.reportId)):a.error&&h(a.error)}const D=async()=>{h(null);const a=new FormData;if(a.append("issueType","other"),a.append("description",n),a.append("email",b),a.append("source",s.source),a.append("entitySha",s.entitySha||""),a.append("scenarioId",s.scenarioId||""),a.append("analysisId",s.analysisId||""),a.append("currentUrl",s.currentUrl),a.append("entityName",s.entityName||""),a.append("entityType",s.entityType||""),a.append("scenarioName",s.scenarioName||""),a.append("errorMessage",s.errorMessage||""),i)try{const R=await(await fetch(i)).blob();a.append("screenshot",R,"screenshot.jpg")}catch(C){console.error("Failed to convert screenshot:",C)}l.submit(a,{method:"post",action:"/api/generate-report",encType:"multipart/form-data"})},p=()=>{y(""),j(!1),f(!1),N(null),h(null),x()},z=a=>{a.key==="Escape"&&p()};return r?e.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center p-4 z-50",onKeyDown:z,children:e.jsxs("div",{className:"bg-white rounded-lg max-w-lg w-full p-6 shadow-xl max-h-[90vh] overflow-y-auto",children:[e.jsxs("div",{className:"flex items-center justify-between mb-6",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[d?e.jsx("div",{className:"animate-spin",children:e.jsx(w,{size:24,style:{strokeWidth:1.5}})}):c?e.jsx(F,{size:24,style:{color:"#10B981",strokeWidth:1.5}}):e.jsx(B,{size:24,style:{color:"#005C75",strokeWidth:1.5}}),e.jsx("h2",{className:"text-xl font-semibold text-gray-900",children:c?"Report Submitted":"Report Issue"})]}),e.jsx("button",{onClick:p,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"})})})]}),c?e.jsxs("div",{children:[e.jsxs("div",{className:"mb-6 p-4 bg-green-50 rounded-lg border border-green-200",children:[e.jsx("p",{className:"text-sm text-green-800 font-medium mb-1",children:"Thank you for your feedback!"}),e.jsxs("p",{className:"text-xs text-green-700",children:["Report ID:"," ",e.jsx("code",{className:"bg-green-100 px-1 rounded",children:M})]})]}),e.jsx("p",{className:"text-sm text-gray-600 mb-6",children:"The CodeYam team will investigate and may reach out if you provided an email address."}),e.jsx("div",{className:"flex justify-end",children:e.jsx("button",{onClick:p,className:"px-4 py-2 bg-[#005c75] text-white text-sm font-medium rounded-md hover:bg-[#004a5c] transition-colors cursor-pointer",children:"Done"})})]}):e.jsxs("div",{children:[e.jsxs("div",{className:"mb-4 p-3 bg-gray-50 rounded-lg border border-gray-200",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("div",{className:"text-sm font-medium text-gray-900",title:`${s.source}${s.entitySha?` • Entity: ${s.entitySha}`:""}${s.scenarioId?` • Scenario: ${s.scenarioId}`:""}${s.analysisId?` • Analysis: ${s.analysisId}`:""}`,children:Y(s)}),e.jsx("button",{type:"button",onClick:()=>j(!u),className:"text-xs text-gray-500 hover:text-gray-700 underline cursor-pointer",children:u?"Hide":"Details"})]}),u&&e.jsxs("div",{className:"mt-2 pt-2 border-t border-gray-200 text-xs text-gray-600 space-y-1 break-all",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-400",children:"Source:"})," ",s.source]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-400",children:"URL:"})," ",s.currentUrl]}),s.entitySha&&e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-400",children:"Entity:"})," ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:s.entitySha})]}),s.scenarioId&&e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-400",children:"Scenario:"})," ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:s.scenarioId})]}),s.analysisId&&e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-400",children:"Analysis:"})," ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:s.analysisId})]})]})]}),i&&e.jsxs("div",{className:"mb-4 p-3 bg-gray-50 rounded-lg border border-gray-200",children:[e.jsx("div",{className:"text-xs text-gray-500 mb-2",children:"Screenshot (will be included in report)"}),e.jsx("img",{src:i,alt:"Page screenshot",className:"w-full max-h-[150px] object-contain rounded border border-gray-300"})]}),e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{htmlFor:"description",className:"block text-sm font-medium text-gray-700 mb-2",children:"What happened?"}),e.jsx("textarea",{id:"description",value:n,onChange:a=>y(a.target.value),placeholder:"Optional: Describe what you expected vs what happened...",rows:3,className:"w-full px-3 py-2 border border-gray-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-[#005c75] focus:border-[#005c75] resize-none"})]}),g&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-4 p-4 bg-purple-50 rounded-lg border border-purple-200",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx("span",{className:"text-lg",children:"🔧"}),e.jsx("h3",{className:"text-sm font-semibold text-purple-900",children:"Diagnose & Fix (Recommended)"})]}),e.jsx("p",{className:"text-xs text-purple-700 mb-3",children:"Run this command in Claude Code to investigate the issue locally and potentially fix it. A detailed report will also be uploaded."}),e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"bg-gray-800 text-gray-50 px-3 py-2.5 pr-20 rounded-md text-xs font-mono overflow-x-auto whitespace-nowrap",children:v()}),e.jsx(_,{content:v(),className:"absolute top-1.5 right-2 px-2 py-1 bg-purple-600 text-white border-none rounded text-[11px] font-medium hover:bg-purple-700 transition-colors"})]})]}),e.jsxs("div",{className:"relative my-5",children:[e.jsx("div",{className:"absolute inset-0 flex items-center",children:e.jsx("div",{className:"w-full border-t border-gray-300"})}),e.jsx("div",{className:"relative flex justify-center",children:e.jsx("span",{className:"bg-white px-3 text-xs text-gray-500 uppercase",children:"or"})})]})]}),e.jsxs("div",{className:g?"opacity-75":"",children:[g&&e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx("span",{className:"text-lg",children:"📤"}),e.jsx("h3",{className:"text-sm font-semibold text-gray-700",children:"Quick Report"}),e.jsx("span",{className:"text-xs text-gray-500",children:"(won't investigate locally)"})]}),e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{htmlFor:"email",className:"block text-sm font-medium text-gray-700 mb-2",children:"Your email"}),e.jsx("input",{id:"email",type:"email",value:b,onChange:a=>I(a.target.value),placeholder:"you@example.com",className:"w-full px-3 py-2 border border-gray-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-[#005c75] focus:border-[#005c75]"})]}),e.jsxs("div",{className:"mb-4 p-3 bg-amber-50 rounded-lg border border-amber-200 flex gap-2",children:[e.jsx(k,{size:16,className:"flex-shrink-0 mt-0.5",style:{color:"#D97706"}}),e.jsxs("div",{className:"text-xs text-amber-800",children:[e.jsx("p",{className:"font-medium mb-1",children:"Source code will be uploaded"}),e.jsx("p",{children:"This report includes your project source code, git history, and CodeYam logs. Only submit if you're comfortable sharing this with the CodeYam team."})]})]}),d&&e.jsx("div",{className:"mb-4 text-center",children:e.jsx("p",{className:"text-sm text-gray-600",children:l.formData?"Uploading report...":"Creating archive..."})}),m&&e.jsxs("div",{className:"mb-4 p-3 bg-red-50 rounded-lg border border-red-200 flex gap-2",children:[e.jsx(k,{size:16,className:"flex-shrink-0 mt-0.5",style:{color:"#DC2626"}}),e.jsxs("div",{className:"text-xs text-red-800",children:[e.jsx("p",{className:"font-medium mb-1",children:"Upload failed"}),e.jsx("p",{children:m})]})]}),e.jsxs("div",{className:"flex gap-3 justify-end",children:[e.jsx("button",{onClick:p,disabled:d,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 disabled:opacity-50 cursor-pointer",children:"Cancel"}),e.jsx("button",{onClick:()=>void D(),disabled:d,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 disabled:bg-gray-300 disabled:cursor-not-allowed flex items-center gap-2 cursor-pointer",children:d?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"animate-spin",children:e.jsx(w,{size:16,style:{strokeWidth:1.5}})}),"Submitting..."]}):m?"Try Again":"Submit Report"})]})]})]})]})}):null}export{B,G as R,w as S};
@@ -1 +1 @@
1
- import{r as a,j as e}from"./chunk-JZWAC4HX-JE9ZIoBl.js";function j({screenshotPath:l,cacheBuster:o,alt:x,className:f="",title:n}){const[i,s]=a.useState("loading"),[c,r]=a.useState(!1),d=a.useRef(null),u=o?`/api/screenshot/${l}?cb=${o}`:`/api/screenshot/${l}`,m=()=>{s("success"),r(!0)},h=()=>{s("error"),r(!1)};return a.useEffect(()=>{s("loading"),r(!1);const t=d.current;t!=null&&t.complete&&(t.naturalHeight!==0?(s("success"),r(!0)):(s("error"),r(!1)))},[u]),l?e.jsxs("div",{className:"relative w-full h-full flex items-center justify-center",title:n,children:[e.jsx("img",{ref:d,src:u,alt:x,onLoad:m,onError:h,className:f||"max-w-full max-h-full object-contain",style:{visibility:c?"visible":"hidden",position:c?"relative":"absolute"}}),i==="loading"&&e.jsx("div",{className:"absolute inset-0 bg-gray-100 animate-pulse rounded flex items-center justify-center",children:e.jsx("svg",{className:"w-8 h-8 text-gray-300",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"})})}),i==="error"&&e.jsxs("div",{className:"absolute inset-0 border-2 border-dashed border-gray-300 bg-gray-50 rounded flex flex-col items-center justify-center text-xs gap-1",children:[e.jsx("span",{className:"text-2xl text-gray-400",children:"📷"}),e.jsx("span",{className:"text-gray-400 whitespace-nowrap",children:"No Screenshot"})]})]}):e.jsx("div",{className:"w-full h-full border-2 border-dashed border-gray-300 bg-gray-50 rounded flex flex-col items-center justify-center text-xs gap-1",title:n,children:e.jsx("span",{className:"text-2xl text-gray-400",children:"📷"})})}export{j as S};
1
+ import{r as a,j as e}from"./chunk-JZWAC4HX-C4pqxYJB.js";function j({screenshotPath:l,cacheBuster:o,alt:x,className:f="",title:n}){const[i,s]=a.useState("loading"),[c,r]=a.useState(!1),d=a.useRef(null),u=o?`/api/screenshot/${l}?cb=${o}`:`/api/screenshot/${l}`,m=()=>{s("success"),r(!0)},h=()=>{s("error"),r(!1)};return a.useEffect(()=>{s("loading"),r(!1);const t=d.current;t!=null&&t.complete&&(t.naturalHeight!==0?(s("success"),r(!0)):(s("error"),r(!1)))},[u]),l?e.jsxs("div",{className:"relative w-full h-full flex items-center justify-center",title:n,children:[e.jsx("img",{ref:d,src:u,alt:x,onLoad:m,onError:h,className:f||"max-w-full max-h-full object-contain",style:{visibility:c?"visible":"hidden",position:c?"relative":"absolute"}}),i==="loading"&&e.jsx("div",{className:"absolute inset-0 bg-gray-100 animate-pulse rounded flex items-center justify-center",children:e.jsx("svg",{className:"w-8 h-8 text-gray-300",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"})})}),i==="error"&&e.jsxs("div",{className:"absolute inset-0 border-2 border-dashed border-gray-300 bg-gray-50 rounded flex flex-col items-center justify-center text-xs gap-1",children:[e.jsx("span",{className:"text-2xl text-gray-400",children:"📷"}),e.jsx("span",{className:"text-gray-400 whitespace-nowrap",children:"No Screenshot"})]})]}):e.jsx("div",{className:"w-full h-full border-2 border-dashed border-gray-300 bg-gray-50 rounded flex flex-col items-center justify-center text-xs gap-1",title:n,children:e.jsx("span",{className:"text-2xl text-gray-400",children:"📷"})})}export{j as S};