@codeyam/codeyam-cli 0.1.0-staging.62d4615 → 0.1.0-staging.693b02d

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 (1011) hide show
  1. package/analyzer-template/.build-info.json +8 -8
  2. package/analyzer-template/log.txt +3 -3
  3. package/analyzer-template/package.json +24 -24
  4. package/analyzer-template/packages/ai/index.ts +1 -0
  5. package/analyzer-template/packages/ai/package.json +3 -3
  6. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +14 -0
  7. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +34 -3
  8. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +135 -0
  9. package/analyzer-template/packages/ai/src/lib/astScopes/nodeToSource.ts +19 -0
  10. package/analyzer-template/packages/ai/src/lib/astScopes/paths.ts +11 -4
  11. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +101 -0
  12. package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
  13. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +6 -0
  14. package/analyzer-template/packages/ai/src/lib/completionCall.ts +114 -113
  15. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +471 -22
  16. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.ts +10 -3
  17. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +16 -6
  18. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.ts +62 -0
  19. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +70 -13
  20. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.ts +35 -0
  21. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +40 -13
  22. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +110 -7
  23. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +101 -2
  24. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +359 -142
  25. package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
  26. package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
  27. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +24 -4
  28. package/analyzer-template/packages/analyze/index.ts +4 -1
  29. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +19 -7
  30. package/analyzer-template/packages/analyze/src/lib/asts/index.ts +7 -2
  31. package/analyzer-template/packages/analyze/src/lib/asts/nodes/getNodeType.ts +1 -0
  32. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +46 -2
  33. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +14 -37
  34. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +0 -6
  35. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +22 -6
  36. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +9 -12
  37. package/analyzer-template/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.ts +21 -0
  38. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +82 -10
  39. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +4 -0
  40. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +4 -0
  41. package/analyzer-template/packages/analyze/src/lib/files/analyzeNextRoute.ts +8 -3
  42. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +65 -28
  43. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +50 -25
  44. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +322 -58
  45. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +0 -98
  46. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +1712 -1394
  47. package/analyzer-template/packages/aws/package.json +10 -10
  48. package/analyzer-template/packages/database/index.ts +1 -0
  49. package/analyzer-template/packages/database/package.json +4 -4
  50. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  51. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  52. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  53. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  54. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  55. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  56. package/analyzer-template/packages/database/src/lib/kysely/db.ts +14 -0
  57. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +1 -1
  58. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +164 -0
  59. package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
  60. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +25 -15
  61. package/analyzer-template/packages/database/src/lib/loadCommits.ts +31 -20
  62. package/analyzer-template/packages/database/src/lib/loadEntities.ts +0 -6
  63. package/analyzer-template/packages/database/src/lib/loadEntity.ts +19 -8
  64. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +0 -5
  65. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  66. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  67. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  68. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +94 -143
  69. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatus.ts +58 -42
  70. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.ts +81 -65
  71. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  72. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +29 -1
  73. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +33 -5
  74. package/analyzer-template/packages/github/dist/database/index.d.ts +1 -0
  75. package/analyzer-template/packages/github/dist/database/index.d.ts.map +1 -1
  76. package/analyzer-template/packages/github/dist/database/index.js +1 -0
  77. package/analyzer-template/packages/github/dist/database/index.js.map +1 -1
  78. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
  79. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
  80. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
  81. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
  82. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
  83. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
  84. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
  85. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
  86. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
  87. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
  88. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
  89. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
  90. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +4 -0
  91. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  92. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +8 -0
  93. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  94. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +1 -1
  95. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +29 -0
  96. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -0
  97. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +149 -0
  98. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  99. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
  100. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
  101. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  102. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  103. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +5 -0
  104. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  105. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  106. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +7 -1
  107. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  108. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  109. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +23 -13
  110. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  111. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  112. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +0 -6
  113. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  114. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.d.ts +4 -1
  115. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.d.ts.map +1 -1
  116. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js +5 -5
  117. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js.map +1 -1
  118. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  119. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
  120. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  121. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
  122. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
  123. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
  124. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
  125. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
  126. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
  127. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  128. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +76 -90
  129. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  130. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.d.ts.map +1 -1
  131. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  132. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  133. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts.map +1 -1
  134. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  135. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  136. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -1
  137. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
  138. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
  139. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
  140. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  141. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  142. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  143. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  144. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js +2 -0
  145. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js.map +1 -1
  146. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +5 -0
  147. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  148. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +10 -0
  149. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  150. package/analyzer-template/packages/github/package.json +1 -1
  151. package/analyzer-template/packages/types/src/enums/ProjectFramework.ts +2 -0
  152. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +8 -1
  153. package/analyzer-template/packages/types/src/types/Scenario.ts +10 -0
  154. package/analyzer-template/packages/ui-components/package.json +1 -1
  155. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  156. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  157. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js +2 -0
  158. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js.map +1 -1
  159. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +5 -0
  160. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  161. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +10 -0
  162. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  163. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts +3 -1
  164. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  165. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +120 -4
  166. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  167. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +148 -3
  168. package/analyzer-template/playwright/captureFromUrl.ts +89 -82
  169. package/analyzer-template/project/analyzeFileEntities.ts +26 -0
  170. package/analyzer-template/project/constructMockCode.ts +170 -50
  171. package/analyzer-template/project/orchestrateCapture.ts +4 -1
  172. package/analyzer-template/project/reconcileMockDataKeys.ts +19 -14
  173. package/analyzer-template/project/runMultiScenarioServer.ts +26 -3
  174. package/analyzer-template/project/start.ts +3 -0
  175. package/analyzer-template/project/startScenarioCapture.ts +9 -0
  176. package/analyzer-template/project/writeClientLogRoute.ts +125 -0
  177. package/analyzer-template/project/writeMockDataTsx.ts +31 -6
  178. package/analyzer-template/project/writeScenarioComponents.ts +110 -17
  179. package/analyzer-template/tsconfig.json +13 -1
  180. package/background/src/lib/local/createLocalAnalyzer.js +1 -1
  181. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  182. package/background/src/lib/virtualized/project/analyzeFileEntities.js +22 -0
  183. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  184. package/background/src/lib/virtualized/project/constructMockCode.js +145 -41
  185. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  186. package/background/src/lib/virtualized/project/orchestrateCapture.js +4 -1
  187. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  188. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +17 -11
  189. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  190. package/background/src/lib/virtualized/project/runMultiScenarioServer.js +23 -3
  191. package/background/src/lib/virtualized/project/runMultiScenarioServer.js.map +1 -1
  192. package/background/src/lib/virtualized/project/start.js +2 -0
  193. package/background/src/lib/virtualized/project/start.js.map +1 -1
  194. package/background/src/lib/virtualized/project/startScenarioCapture.js +5 -0
  195. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  196. package/background/src/lib/virtualized/project/writeClientLogRoute.js +110 -0
  197. package/background/src/lib/virtualized/project/writeClientLogRoute.js.map +1 -0
  198. package/background/src/lib/virtualized/project/writeMockDataTsx.js +25 -6
  199. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  200. package/background/src/lib/virtualized/project/writeScenarioComponents.js +83 -12
  201. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  202. package/codeyam-cli/scripts/apply-setup.js +209 -12
  203. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  204. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js +196 -0
  205. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js.map +1 -0
  206. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js +114 -0
  207. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js.map +1 -0
  208. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js +149 -0
  209. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js.map +1 -0
  210. package/codeyam-cli/src/cli.js +57 -24
  211. package/codeyam-cli/src/cli.js.map +1 -1
  212. package/codeyam-cli/src/codeyam-cli.js +18 -2
  213. package/codeyam-cli/src/codeyam-cli.js.map +1 -1
  214. package/codeyam-cli/src/commands/__tests__/editor.analyzeImportsArgs.test.js +47 -0
  215. package/codeyam-cli/src/commands/__tests__/editor.analyzeImportsArgs.test.js.map +1 -0
  216. package/codeyam-cli/src/commands/__tests__/editor.auditNoAutoAnalysis.test.js +71 -0
  217. package/codeyam-cli/src/commands/__tests__/editor.auditNoAutoAnalysis.test.js.map +1 -0
  218. package/codeyam-cli/src/commands/__tests__/editor.designSystem.test.js +30 -0
  219. package/codeyam-cli/src/commands/__tests__/editor.designSystem.test.js.map +1 -0
  220. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js +51 -0
  221. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js.map +1 -0
  222. package/codeyam-cli/src/commands/__tests__/editor.statePersistence.test.js +55 -0
  223. package/codeyam-cli/src/commands/__tests__/editor.statePersistence.test.js.map +1 -0
  224. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js +56 -0
  225. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js.map +1 -0
  226. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js +137 -47
  227. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js.map +1 -1
  228. package/codeyam-cli/src/commands/analyze.js +21 -9
  229. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  230. package/codeyam-cli/src/commands/baseline.js +2 -0
  231. package/codeyam-cli/src/commands/baseline.js.map +1 -1
  232. package/codeyam-cli/src/commands/debug.js +2 -0
  233. package/codeyam-cli/src/commands/debug.js.map +1 -1
  234. package/codeyam-cli/src/commands/default.js +44 -21
  235. package/codeyam-cli/src/commands/default.js.map +1 -1
  236. package/codeyam-cli/src/commands/editor.js +6313 -0
  237. package/codeyam-cli/src/commands/editor.js.map +1 -0
  238. package/codeyam-cli/src/commands/editorAnalyzeImportsArgs.js +23 -0
  239. package/codeyam-cli/src/commands/editorAnalyzeImportsArgs.js.map +1 -0
  240. package/codeyam-cli/src/commands/editorIsolateArgs.js +25 -0
  241. package/codeyam-cli/src/commands/editorIsolateArgs.js.map +1 -0
  242. package/codeyam-cli/src/commands/init.js +168 -292
  243. package/codeyam-cli/src/commands/init.js.map +1 -1
  244. package/codeyam-cli/src/commands/memory.js +95 -81
  245. package/codeyam-cli/src/commands/memory.js.map +1 -1
  246. package/codeyam-cli/src/commands/recapture.js +2 -0
  247. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  248. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  249. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  250. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  251. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  252. package/codeyam-cli/src/commands/telemetry.js +37 -0
  253. package/codeyam-cli/src/commands/telemetry.js.map +1 -0
  254. package/codeyam-cli/src/commands/test-startup.js +2 -0
  255. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  256. package/codeyam-cli/src/commands/verify.js +14 -2
  257. package/codeyam-cli/src/commands/verify.js.map +1 -1
  258. package/codeyam-cli/src/data/designSystems.js +27 -0
  259. package/codeyam-cli/src/data/designSystems.js.map +1 -0
  260. package/codeyam-cli/src/data/techStacks.js +77 -0
  261. package/codeyam-cli/src/data/techStacks.js.map +1 -0
  262. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js +173 -0
  263. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js.map +1 -0
  264. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js +46 -0
  265. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js.map +1 -0
  266. package/codeyam-cli/src/utils/__tests__/devServerState.test.js +226 -0
  267. package/codeyam-cli/src/utils/__tests__/devServerState.test.js.map +1 -0
  268. package/codeyam-cli/src/utils/__tests__/editorApi.test.js +181 -0
  269. package/codeyam-cli/src/utils/__tests__/editorApi.test.js.map +1 -0
  270. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +4160 -0
  271. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -0
  272. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js +76 -0
  273. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js.map +1 -0
  274. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js +93 -0
  275. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js.map +1 -0
  276. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js +137 -0
  277. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js.map +1 -0
  278. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js +100 -0
  279. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js.map +1 -0
  280. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js +304 -0
  281. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js.map +1 -0
  282. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js +194 -0
  283. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js.map +1 -0
  284. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js +381 -0
  285. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js.map +1 -0
  286. package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js +67 -0
  287. package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js.map +1 -0
  288. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js +294 -0
  289. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js.map +1 -0
  290. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js +542 -0
  291. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js.map +1 -0
  292. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js +594 -0
  293. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js.map +1 -0
  294. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js +435 -0
  295. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js.map +1 -0
  296. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js +270 -0
  297. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js.map +1 -0
  298. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js +217 -0
  299. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js.map +1 -0
  300. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js +361 -0
  301. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js.map +1 -0
  302. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js +250 -0
  303. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js.map +1 -0
  304. package/codeyam-cli/src/utils/__tests__/editorRoadmap.test.js +1108 -0
  305. package/codeyam-cli/src/utils/__tests__/editorRoadmap.test.js.map +1 -0
  306. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js +139 -0
  307. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js.map +1 -0
  308. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js +411 -0
  309. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js.map +1 -0
  310. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +1768 -0
  311. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -0
  312. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js +413 -0
  313. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js.map +1 -0
  314. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js +143 -0
  315. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js.map +1 -0
  316. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js +66 -0
  317. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js.map +1 -0
  318. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js +53 -0
  319. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js.map +1 -0
  320. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +2121 -0
  321. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -0
  322. package/codeyam-cli/src/utils/__tests__/envFile.test.js +125 -0
  323. package/codeyam-cli/src/utils/__tests__/envFile.test.js.map +1 -0
  324. package/codeyam-cli/src/utils/__tests__/git.editor.test.js +134 -0
  325. package/codeyam-cli/src/utils/__tests__/git.editor.test.js.map +1 -0
  326. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js +177 -0
  327. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js.map +1 -0
  328. package/codeyam-cli/src/utils/__tests__/handoffContext.test.js +500 -0
  329. package/codeyam-cli/src/utils/__tests__/handoffContext.test.js.map +1 -0
  330. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js +122 -0
  331. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js.map +1 -0
  332. package/codeyam-cli/src/utils/__tests__/manualEntityAnalysis.test.js +302 -0
  333. package/codeyam-cli/src/utils/__tests__/manualEntityAnalysis.test.js.map +1 -0
  334. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +185 -0
  335. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
  336. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js +129 -0
  337. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js.map +1 -0
  338. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js +9 -0
  339. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js.map +1 -1
  340. package/codeyam-cli/src/utils/__tests__/project.test.js +65 -0
  341. package/codeyam-cli/src/utils/__tests__/project.test.js.map +1 -0
  342. package/codeyam-cli/src/utils/__tests__/registerScenarioResult.test.js +127 -0
  343. package/codeyam-cli/src/utils/__tests__/registerScenarioResult.test.js.map +1 -0
  344. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js +118 -0
  345. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js.map +1 -0
  346. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js +284 -0
  347. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js.map +1 -0
  348. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js +121 -0
  349. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js.map +1 -0
  350. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +672 -0
  351. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -0
  352. package/codeyam-cli/src/utils/__tests__/screenshotHash.test.js +84 -0
  353. package/codeyam-cli/src/utils/__tests__/screenshotHash.test.js.map +1 -0
  354. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +175 -86
  355. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  356. package/codeyam-cli/src/utils/__tests__/telemetry.test.js +159 -0
  357. package/codeyam-cli/src/utils/__tests__/telemetry.test.js.map +1 -0
  358. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js +51 -0
  359. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js.map +1 -0
  360. package/codeyam-cli/src/utils/__tests__/testRunner.test.js +216 -0
  361. package/codeyam-cli/src/utils/__tests__/testRunner.test.js.map +1 -0
  362. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js +148 -0
  363. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js.map +1 -0
  364. package/codeyam-cli/src/utils/analysisRunner.js +39 -8
  365. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  366. package/codeyam-cli/src/utils/analyzer.js +26 -0
  367. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  368. package/codeyam-cli/src/utils/analyzerFinalization.js +100 -0
  369. package/codeyam-cli/src/utils/analyzerFinalization.js.map +1 -0
  370. package/codeyam-cli/src/utils/backgroundServer.js +193 -34
  371. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  372. package/codeyam-cli/src/utils/buildFlags.js +4 -0
  373. package/codeyam-cli/src/utils/buildFlags.js.map +1 -0
  374. package/codeyam-cli/src/utils/database.js +37 -2
  375. package/codeyam-cli/src/utils/database.js.map +1 -1
  376. package/codeyam-cli/src/utils/designSystemShowcase.js +810 -0
  377. package/codeyam-cli/src/utils/designSystemShowcase.js.map +1 -0
  378. package/codeyam-cli/src/utils/devModeEvents.js +40 -0
  379. package/codeyam-cli/src/utils/devModeEvents.js.map +1 -0
  380. package/codeyam-cli/src/utils/devServerState.js +103 -0
  381. package/codeyam-cli/src/utils/devServerState.js.map +1 -0
  382. package/codeyam-cli/src/utils/editorApi.js +95 -0
  383. package/codeyam-cli/src/utils/editorApi.js.map +1 -0
  384. package/codeyam-cli/src/utils/editorAudit.js +849 -0
  385. package/codeyam-cli/src/utils/editorAudit.js.map +1 -0
  386. package/codeyam-cli/src/utils/editorBroadcastViewport.js +26 -0
  387. package/codeyam-cli/src/utils/editorBroadcastViewport.js.map +1 -0
  388. package/codeyam-cli/src/utils/editorCapture.js +102 -0
  389. package/codeyam-cli/src/utils/editorCapture.js.map +1 -0
  390. package/codeyam-cli/src/utils/editorDeleteScenario.js +67 -0
  391. package/codeyam-cli/src/utils/editorDeleteScenario.js.map +1 -0
  392. package/codeyam-cli/src/utils/editorDevServer.js +197 -0
  393. package/codeyam-cli/src/utils/editorDevServer.js.map +1 -0
  394. package/codeyam-cli/src/utils/editorEntityChangeStatus.js +50 -0
  395. package/codeyam-cli/src/utils/editorEntityChangeStatus.js.map +1 -0
  396. package/codeyam-cli/src/utils/editorEntityHelpers.js +144 -0
  397. package/codeyam-cli/src/utils/editorEntityHelpers.js.map +1 -0
  398. package/codeyam-cli/src/utils/editorGuard.js +36 -0
  399. package/codeyam-cli/src/utils/editorGuard.js.map +1 -0
  400. package/codeyam-cli/src/utils/editorImageVerifier.js +155 -0
  401. package/codeyam-cli/src/utils/editorImageVerifier.js.map +1 -0
  402. package/codeyam-cli/src/utils/editorJournal.js +225 -0
  403. package/codeyam-cli/src/utils/editorJournal.js.map +1 -0
  404. package/codeyam-cli/src/utils/editorLoaderHelpers.js +152 -0
  405. package/codeyam-cli/src/utils/editorLoaderHelpers.js.map +1 -0
  406. package/codeyam-cli/src/utils/editorMigration.js +224 -0
  407. package/codeyam-cli/src/utils/editorMigration.js.map +1 -0
  408. package/codeyam-cli/src/utils/editorMockState.js +248 -0
  409. package/codeyam-cli/src/utils/editorMockState.js.map +1 -0
  410. package/codeyam-cli/src/utils/editorPreloadHelpers.js +135 -0
  411. package/codeyam-cli/src/utils/editorPreloadHelpers.js.map +1 -0
  412. package/codeyam-cli/src/utils/editorPreview.js +139 -0
  413. package/codeyam-cli/src/utils/editorPreview.js.map +1 -0
  414. package/codeyam-cli/src/utils/editorRecapture.js +109 -0
  415. package/codeyam-cli/src/utils/editorRecapture.js.map +1 -0
  416. package/codeyam-cli/src/utils/editorRoadmap.js +574 -0
  417. package/codeyam-cli/src/utils/editorRoadmap.js.map +1 -0
  418. package/codeyam-cli/src/utils/editorScenarioSwitch.js +149 -0
  419. package/codeyam-cli/src/utils/editorScenarioSwitch.js.map +1 -0
  420. package/codeyam-cli/src/utils/editorScenarios.js +687 -0
  421. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -0
  422. package/codeyam-cli/src/utils/editorSeedAdapter.js +475 -0
  423. package/codeyam-cli/src/utils/editorSeedAdapter.js.map +1 -0
  424. package/codeyam-cli/src/utils/editorShouldRevalidate.js +21 -0
  425. package/codeyam-cli/src/utils/editorShouldRevalidate.js.map +1 -0
  426. package/codeyam-cli/src/utils/entityChangeStatus.js +394 -0
  427. package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -0
  428. package/codeyam-cli/src/utils/entityChangeStatus.server.js +227 -0
  429. package/codeyam-cli/src/utils/entityChangeStatus.server.js.map +1 -0
  430. package/codeyam-cli/src/utils/envFile.js +90 -0
  431. package/codeyam-cli/src/utils/envFile.js.map +1 -0
  432. package/codeyam-cli/src/utils/fileMetadata.js +5 -0
  433. package/codeyam-cli/src/utils/fileMetadata.js.map +1 -1
  434. package/codeyam-cli/src/utils/fileWatcher.js +63 -9
  435. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  436. package/codeyam-cli/src/utils/generateReport.js +2 -2
  437. package/codeyam-cli/src/utils/git.js +103 -0
  438. package/codeyam-cli/src/utils/git.js.map +1 -1
  439. package/codeyam-cli/src/utils/glossaryAdd.js +74 -0
  440. package/codeyam-cli/src/utils/glossaryAdd.js.map +1 -0
  441. package/codeyam-cli/src/utils/handoffContext.js +257 -0
  442. package/codeyam-cli/src/utils/handoffContext.js.map +1 -0
  443. package/codeyam-cli/src/utils/install-skills.js +131 -65
  444. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  445. package/codeyam-cli/src/utils/interactiveSyncWatcher.js +126 -0
  446. package/codeyam-cli/src/utils/interactiveSyncWatcher.js.map +1 -0
  447. package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
  448. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
  449. package/codeyam-cli/src/utils/manualEntityAnalysis.js +196 -0
  450. package/codeyam-cli/src/utils/manualEntityAnalysis.js.map +1 -0
  451. package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
  452. package/codeyam-cli/src/utils/npmVersionCheck.js.map +1 -0
  453. package/codeyam-cli/src/utils/parseRegisterArg.js +31 -0
  454. package/codeyam-cli/src/utils/parseRegisterArg.js.map +1 -0
  455. package/codeyam-cli/src/utils/pathIgnoring.js +19 -7
  456. package/codeyam-cli/src/utils/pathIgnoring.js.map +1 -1
  457. package/codeyam-cli/src/utils/progress.js +8 -1
  458. package/codeyam-cli/src/utils/progress.js.map +1 -1
  459. package/codeyam-cli/src/utils/project.js +15 -5
  460. package/codeyam-cli/src/utils/project.js.map +1 -1
  461. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js +11 -11
  462. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js.map +1 -1
  463. package/codeyam-cli/src/utils/queue/__tests__/job.interactiveStart.test.js +159 -0
  464. package/codeyam-cli/src/utils/queue/__tests__/job.interactiveStart.test.js.map +1 -0
  465. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +22 -0
  466. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
  467. package/codeyam-cli/src/utils/queue/heartbeat.js +13 -5
  468. package/codeyam-cli/src/utils/queue/heartbeat.js.map +1 -1
  469. package/codeyam-cli/src/utils/queue/job.js +105 -7
  470. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  471. package/codeyam-cli/src/utils/queue/manager.js +7 -6
  472. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  473. package/codeyam-cli/src/utils/registerScenarioResult.js +52 -0
  474. package/codeyam-cli/src/utils/registerScenarioResult.js.map +1 -0
  475. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  476. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  477. package/codeyam-cli/src/utils/routePatternMatching.js +129 -0
  478. package/codeyam-cli/src/utils/routePatternMatching.js.map +1 -0
  479. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +109 -8
  480. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -1
  481. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +1 -1
  482. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -1
  483. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +0 -1
  484. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -1
  485. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +97 -6
  486. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -1
  487. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +37 -7
  488. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -1
  489. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +23 -3
  490. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -1
  491. package/codeyam-cli/src/utils/ruleReflection/index.js +2 -2
  492. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -1
  493. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +11 -0
  494. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -1
  495. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js +83 -0
  496. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js.map +1 -0
  497. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js +118 -0
  498. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js.map +1 -0
  499. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js +72 -0
  500. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js.map +1 -0
  501. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +23 -23
  502. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -1
  503. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js +76 -0
  504. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js.map +1 -0
  505. package/codeyam-cli/src/utils/rules/index.js +1 -0
  506. package/codeyam-cli/src/utils/rules/index.js.map +1 -1
  507. package/codeyam-cli/src/utils/rules/parser.js +19 -4
  508. package/codeyam-cli/src/utils/rules/parser.js.map +1 -1
  509. package/codeyam-cli/src/utils/rules/pathMatcher.js +34 -3
  510. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -1
  511. package/codeyam-cli/src/utils/rules/rulePlacement.js +65 -0
  512. package/codeyam-cli/src/utils/rules/rulePlacement.js.map +1 -0
  513. package/codeyam-cli/src/utils/rules/ruleState.js +10 -10
  514. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -1
  515. package/codeyam-cli/src/utils/rules/sourceFiles.js +43 -0
  516. package/codeyam-cli/src/utils/rules/sourceFiles.js.map +1 -0
  517. package/codeyam-cli/src/utils/rules/staleness.js +6 -6
  518. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -1
  519. package/codeyam-cli/src/utils/scenarioCoverage.js +77 -0
  520. package/codeyam-cli/src/utils/scenarioCoverage.js.map +1 -0
  521. package/codeyam-cli/src/utils/scenarioMarkers.js +134 -0
  522. package/codeyam-cli/src/utils/scenarioMarkers.js.map +1 -0
  523. package/codeyam-cli/src/utils/scenariosManifest.js +313 -0
  524. package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -0
  525. package/codeyam-cli/src/utils/screenshotHash.js +26 -0
  526. package/codeyam-cli/src/utils/screenshotHash.js.map +1 -0
  527. package/codeyam-cli/src/utils/serverState.js +94 -12
  528. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  529. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +96 -47
  530. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  531. package/codeyam-cli/src/utils/simulationGateMiddleware.js +175 -0
  532. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -0
  533. package/codeyam-cli/src/utils/slugUtils.js +25 -0
  534. package/codeyam-cli/src/utils/slugUtils.js.map +1 -0
  535. package/codeyam-cli/src/utils/syncMocksMiddleware.js +7 -26
  536. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  537. package/codeyam-cli/src/utils/techStackConfig.js +38 -0
  538. package/codeyam-cli/src/utils/techStackConfig.js.map +1 -0
  539. package/codeyam-cli/src/utils/techStackConfig.test.js +85 -0
  540. package/codeyam-cli/src/utils/techStackConfig.test.js.map +1 -0
  541. package/codeyam-cli/src/utils/telemetry.js +106 -0
  542. package/codeyam-cli/src/utils/telemetry.js.map +1 -0
  543. package/codeyam-cli/src/utils/telemetryMiddleware.js +22 -0
  544. package/codeyam-cli/src/utils/telemetryMiddleware.js.map +1 -0
  545. package/codeyam-cli/src/utils/testResultCache.js +53 -0
  546. package/codeyam-cli/src/utils/testResultCache.js.map +1 -0
  547. package/codeyam-cli/src/utils/testResultCache.server.js +81 -0
  548. package/codeyam-cli/src/utils/testResultCache.server.js.map +1 -0
  549. package/codeyam-cli/src/utils/testResultCache.server.test.js +187 -0
  550. package/codeyam-cli/src/utils/testResultCache.server.test.js.map +1 -0
  551. package/codeyam-cli/src/utils/testResultCache.test.js +230 -0
  552. package/codeyam-cli/src/utils/testResultCache.test.js.map +1 -0
  553. package/codeyam-cli/src/utils/testRunner.js +350 -0
  554. package/codeyam-cli/src/utils/testRunner.js.map +1 -0
  555. package/codeyam-cli/src/utils/transcriptPruning.js +67 -0
  556. package/codeyam-cli/src/utils/transcriptPruning.js.map +1 -0
  557. package/codeyam-cli/src/utils/versionInfo.js +46 -0
  558. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  559. package/codeyam-cli/src/utils/webappDetection.js +38 -3
  560. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  561. package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js +99 -0
  562. package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js.map +1 -0
  563. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js +153 -0
  564. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js.map +1 -0
  565. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js +107 -0
  566. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js.map +1 -0
  567. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js +66 -0
  568. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
  569. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +1000 -0
  570. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -0
  571. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js +315 -0
  572. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js.map +1 -0
  573. package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js +135 -0
  574. package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js.map +1 -0
  575. package/codeyam-cli/src/webserver/app/lib/clientErrors.js +86 -0
  576. package/codeyam-cli/src/webserver/app/lib/clientErrors.js.map +1 -0
  577. package/codeyam-cli/src/webserver/app/lib/database.js +55 -30
  578. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  579. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  580. package/codeyam-cli/src/webserver/app/lib/git.js +397 -0
  581. package/codeyam-cli/src/webserver/app/lib/git.js.map +1 -0
  582. package/codeyam-cli/src/webserver/app/routes/api.interactive-switch-scenario.js +34 -0
  583. package/codeyam-cli/src/webserver/app/routes/api.interactive-switch-scenario.js.map +1 -0
  584. package/codeyam-cli/src/webserver/app/types/editor.js +8 -0
  585. package/codeyam-cli/src/webserver/app/types/editor.js.map +1 -0
  586. package/codeyam-cli/src/webserver/backgroundServer.js +186 -37
  587. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  588. package/codeyam-cli/src/webserver/bootstrap.js +11 -0
  589. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
  590. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-DTBZZfSk.js +1 -0
  591. package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-B86KKU7e.js → EntityItem-BxclONWq.js} +5 -5
  592. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-CQgyEGV-.js +1 -0
  593. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-BqY8gDAW.js → EntityTypeIcon-BsnEOJZ_.js} +9 -9
  594. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-ByaELMbv.js +1 -0
  595. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-6WjVfhxX.js +25 -0
  596. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-ChX-Hp7W.js +3 -0
  597. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-Bs7Nn1Jr.js → LoadingDots-By5zI316.js} +1 -1
  598. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-Bm3PmcCz.js → LogViewer-C-9zQdXg.js} +3 -3
  599. package/codeyam-cli/src/webserver/build/client/assets/MiniClaudeChat-Bs2_Oua4.js +36 -0
  600. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-C6PKeMYR.js → ReportIssueModal-DQsceHVv.js} +4 -4
  601. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-DThcm_9M.js +1 -0
  602. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-BNLaXBHR.js → ScenarioViewer-Cl4oOA3A.js} +3 -3
  603. package/codeyam-cli/src/webserver/build/client/assets/Spinner-CIil5-gb.js +34 -0
  604. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-CK7-NaPZ.js +1 -0
  605. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-BqkA9zyZ.js +1 -0
  606. package/codeyam-cli/src/webserver/build/client/assets/{_index-B3TDXxnk.js → _index-DnOgyseQ.js} +4 -4
  607. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-DD1r_QU0.js → activity.(_tab)-DqM9hbNE.js} +10 -10
  608. package/codeyam-cli/src/webserver/build/client/assets/addon-canvas-DpzMmAy5.js +1 -0
  609. package/codeyam-cli/src/webserver/build/client/assets/addon-fit-YJmn1quW.js +12 -0
  610. package/codeyam-cli/src/webserver/build/client/assets/addon-web-links-C58dYPwR.js +1 -0
  611. package/codeyam-cli/src/webserver/build/client/assets/addon-webgl-DI8QOUvO.js +58 -0
  612. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-B8NCeOrm.js +22 -0
  613. package/codeyam-cli/src/webserver/build/client/assets/api.dev-mode-events-l0sNRNKZ.js +1 -0
  614. package/codeyam-cli/src/webserver/build/client/assets/api.editor-audit-l0sNRNKZ.js +1 -0
  615. package/codeyam-cli/src/webserver/build/client/assets/api.editor-capture-scenario-l0sNRNKZ.js +1 -0
  616. package/codeyam-cli/src/webserver/build/client/assets/api.editor-client-errors-l0sNRNKZ.js +1 -0
  617. package/codeyam-cli/src/webserver/build/client/assets/api.editor-commit-l0sNRNKZ.js +1 -0
  618. package/codeyam-cli/src/webserver/build/client/assets/api.editor-database-verify-l0sNRNKZ.js +1 -0
  619. package/codeyam-cli/src/webserver/build/client/assets/api.editor-dev-server-l0sNRNKZ.js +1 -0
  620. package/codeyam-cli/src/webserver/build/client/assets/api.editor-entity-status-l0sNRNKZ.js +1 -0
  621. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-diff-l0sNRNKZ.js +1 -0
  622. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-l0sNRNKZ.js +1 -0
  623. package/codeyam-cli/src/webserver/build/client/assets/api.editor-github-verify-l0sNRNKZ.js +1 -0
  624. package/codeyam-cli/src/webserver/build/client/assets/api.editor-handoff-l0sNRNKZ.js +1 -0
  625. package/codeyam-cli/src/webserver/build/client/assets/api.editor-hosting-verify-l0sNRNKZ.js +1 -0
  626. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-entry-l0sNRNKZ.js +1 -0
  627. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-image._-l0sNRNKZ.js +1 -0
  628. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-l0sNRNKZ.js +1 -0
  629. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-screenshot-l0sNRNKZ.js +1 -0
  630. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-update-l0sNRNKZ.js +1 -0
  631. package/codeyam-cli/src/webserver/build/client/assets/api.editor-load-commit-l0sNRNKZ.js +1 -0
  632. package/codeyam-cli/src/webserver/build/client/assets/api.editor-project-info-l0sNRNKZ.js +1 -0
  633. package/codeyam-cli/src/webserver/build/client/assets/api.editor-recapture-stale-l0sNRNKZ.js +1 -0
  634. package/codeyam-cli/src/webserver/build/client/assets/api.editor-refresh-l0sNRNKZ.js +1 -0
  635. package/codeyam-cli/src/webserver/build/client/assets/api.editor-register-scenario-l0sNRNKZ.js +1 -0
  636. package/codeyam-cli/src/webserver/build/client/assets/api.editor-rename-scenario-l0sNRNKZ.js +1 -0
  637. package/codeyam-cli/src/webserver/build/client/assets/api.editor-roadmap-l0sNRNKZ.js +1 -0
  638. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-scenario-data-l0sNRNKZ.js +1 -0
  639. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-seed-state-l0sNRNKZ.js +1 -0
  640. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-coverage-l0sNRNKZ.js +1 -0
  641. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-data-l0sNRNKZ.js +1 -0
  642. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-image._-l0sNRNKZ.js +1 -0
  643. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-prompt-l0sNRNKZ.js +1 -0
  644. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenarios-l0sNRNKZ.js +1 -0
  645. package/codeyam-cli/src/webserver/build/client/assets/api.editor-schema-l0sNRNKZ.js +1 -0
  646. package/codeyam-cli/src/webserver/build/client/assets/api.editor-session-l0sNRNKZ.js +1 -0
  647. package/codeyam-cli/src/webserver/build/client/assets/api.editor-switch-scenario-l0sNRNKZ.js +1 -0
  648. package/codeyam-cli/src/webserver/build/client/assets/api.editor-test-results-l0sNRNKZ.js +1 -0
  649. package/codeyam-cli/src/webserver/build/client/assets/api.editor-verify-routes-l0sNRNKZ.js +1 -0
  650. package/codeyam-cli/src/webserver/build/client/assets/api.interactive-switch-scenario-l0sNRNKZ.js +1 -0
  651. package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
  652. package/codeyam-cli/src/webserver/build/client/assets/api.rule-path-l0sNRNKZ.js +1 -0
  653. package/codeyam-cli/src/webserver/build/client/assets/{book-open-PttOB2SF.js → book-open-BFSIqZgO.js} +2 -2
  654. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-TJp6ofnp.js → chevron-down-B9fDzFVh.js} +2 -2
  655. package/codeyam-cli/src/webserver/build/client/assets/chunk-UVKPFVEO-Bmq2apuh.js +43 -0
  656. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-CXhHQYrI.js → circle-check-DLPObLUx.js} +2 -2
  657. package/codeyam-cli/src/webserver/build/client/assets/{copy-6y9ALfGT.js → copy-DXEmO0TD.js} +3 -3
  658. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-BwyFiRot.js +41 -0
  659. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-Coe5NhbS.js +1 -0
  660. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-CCKUIm0S.svg → cy-logo-cli-DoA97ML3.svg} +2 -2
  661. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-iRhRIFlp.js +1 -0
  662. package/codeyam-cli/src/webserver/build/client/assets/editor._tab-BZPBzV73.js +1 -0
  663. package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-DhtVC4aI.js +161 -0
  664. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-C6fEYHrh.js +41 -0
  665. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-n38keI1k.js → entity._sha._-pc-vc6wO.js} +14 -13
  666. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-C8AyYgYT.js +6 -0
  667. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DziaVQX1.js +6 -0
  668. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-BTcpgIpC.js +6 -0
  669. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-38yPijoD.js → entity._sha_.edit._scenarioId-D_O_ajfZ.js} +2 -2
  670. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-BSHEfydn.js → entry.client-j1Vi0bco.js} +6 -6
  671. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-Daa96Fr1.js +1 -0
  672. package/codeyam-cli/src/webserver/build/client/assets/files-kuny2Q_s.js +1 -0
  673. package/codeyam-cli/src/webserver/build/client/assets/git-DgCZPMie.js +1 -0
  674. package/codeyam-cli/src/webserver/build/client/assets/globals-L-aUIeux.css +1 -0
  675. package/codeyam-cli/src/webserver/build/client/assets/{index-CcsFv748.js → index-BliGSSpl.js} +1 -1
  676. package/codeyam-cli/src/webserver/build/client/assets/index-SqjQKTdH.js +15 -0
  677. package/codeyam-cli/src/webserver/build/client/assets/{index-ChN9-fAY.js → index-vyrZD2g4.js} +1 -1
  678. package/codeyam-cli/src/webserver/build/client/assets/jsx-runtime-D_zvdyIk.js +9 -0
  679. package/codeyam-cli/src/webserver/build/client/assets/labs-c3yLxSEp.js +1 -0
  680. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-CTqLEAGU.js → loader-circle-D-q28GLF.js} +2 -2
  681. package/codeyam-cli/src/webserver/build/client/assets/manifest-79d0d81a.js +1 -0
  682. package/codeyam-cli/src/webserver/build/client/assets/memory-CEWIUC4t.js +101 -0
  683. package/codeyam-cli/src/webserver/build/client/assets/{pause-D6vreykR.js → pause-BP6fitdh.js} +3 -3
  684. package/codeyam-cli/src/webserver/build/client/assets/root-L2V0jea7.js +80 -0
  685. package/codeyam-cli/src/webserver/build/client/assets/{search-B8VUL8nl.js → search-BooqacKS.js} +2 -2
  686. package/codeyam-cli/src/webserver/build/client/assets/settings-BM0nbryO.js +1 -0
  687. package/codeyam-cli/src/webserver/build/client/assets/simulations-ovy6FjRY.js +1 -0
  688. package/codeyam-cli/src/webserver/build/client/assets/{terminal-BrCP7uQo.js → terminal-DHemCJIs.js} +3 -3
  689. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-BZz2NjYa.js → triangle-alert-D87ekDl8.js} +2 -2
  690. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-Dk0Tciqg.js +1 -0
  691. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-C8QvIe05.js +2 -0
  692. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-jkCytuYz.js +1 -0
  693. package/codeyam-cli/src/webserver/build/client/assets/useToast-BgqkixU9.js +1 -0
  694. package/codeyam-cli/src/webserver/build/client/assets/xterm-BqvuqXEL.js +27 -0
  695. package/codeyam-cli/src/webserver/build/client/sound-test.html +98 -0
  696. package/codeyam-cli/src/webserver/build/server/assets/analysisRunner-QgInFGdU.js +16 -0
  697. package/codeyam-cli/src/webserver/build/server/assets/index-zblh9auj.js +1 -0
  698. package/codeyam-cli/src/webserver/build/server/assets/init-DaE0CBjk.js +14 -0
  699. package/codeyam-cli/src/webserver/build/server/assets/progress-CHTtrxFG.js +1 -0
  700. package/codeyam-cli/src/webserver/build/server/assets/server-build-CNvgz1cC.js +853 -0
  701. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  702. package/codeyam-cli/src/webserver/build-info.json +5 -5
  703. package/codeyam-cli/src/webserver/devServer.js +39 -5
  704. package/codeyam-cli/src/webserver/devServer.js.map +1 -1
  705. package/codeyam-cli/src/webserver/editorProxy.js +1263 -0
  706. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -0
  707. package/codeyam-cli/src/webserver/idleDetector.js +130 -0
  708. package/codeyam-cli/src/webserver/idleDetector.js.map +1 -0
  709. package/codeyam-cli/src/webserver/mockStateEvents.js +28 -0
  710. package/codeyam-cli/src/webserver/mockStateEvents.js.map +1 -0
  711. package/codeyam-cli/src/webserver/public/sound-test.html +98 -0
  712. package/codeyam-cli/src/webserver/scripts/codeyam-preload.mjs +414 -0
  713. package/codeyam-cli/src/webserver/scripts/journalCapture.ts +283 -0
  714. package/codeyam-cli/src/webserver/server.js +446 -1
  715. package/codeyam-cli/src/webserver/server.js.map +1 -1
  716. package/codeyam-cli/src/webserver/terminalServer.js +1043 -0
  717. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -0
  718. package/codeyam-cli/templates/__tests__/editor-step-hook.prompt-capture.test.ts +118 -0
  719. package/codeyam-cli/templates/chrome-extension-react/EXTENSION_SETUP.md +75 -0
  720. package/codeyam-cli/templates/chrome-extension-react/README.md +46 -0
  721. package/codeyam-cli/templates/chrome-extension-react/gitignore +15 -0
  722. package/codeyam-cli/templates/chrome-extension-react/index.html +12 -0
  723. package/codeyam-cli/templates/chrome-extension-react/package.json +27 -0
  724. package/codeyam-cli/templates/chrome-extension-react/popup.html +12 -0
  725. package/codeyam-cli/templates/chrome-extension-react/public/manifest.json +15 -0
  726. package/codeyam-cli/templates/chrome-extension-react/src/background/service-worker.ts +7 -0
  727. package/codeyam-cli/templates/chrome-extension-react/src/globals.css +6 -0
  728. package/codeyam-cli/templates/chrome-extension-react/src/lib/storage.ts +37 -0
  729. package/codeyam-cli/templates/chrome-extension-react/src/popup/App.tsx +12 -0
  730. package/codeyam-cli/templates/chrome-extension-react/src/popup/main.tsx +10 -0
  731. package/codeyam-cli/templates/chrome-extension-react/tsconfig.json +24 -0
  732. package/codeyam-cli/templates/chrome-extension-react/vite.config.ts +41 -0
  733. package/codeyam-cli/templates/codeyam-editor-claude.md +149 -0
  734. package/codeyam-cli/templates/codeyam-editor-codex.md +61 -0
  735. package/codeyam-cli/templates/codeyam-editor-gemini.md +59 -0
  736. package/codeyam-cli/templates/codeyam-editor-reference.md +216 -0
  737. package/codeyam-cli/templates/codeyam-memory-hook.sh +14 -14
  738. package/codeyam-cli/templates/commands/codeyam-diagnose.md +481 -0
  739. package/codeyam-cli/templates/design-systems/clean-dashboard-design-system.md +255 -0
  740. package/codeyam-cli/templates/design-systems/editorial-design-system.md +267 -0
  741. package/codeyam-cli/templates/design-systems/mono-brutalist-design-system.md +256 -0
  742. package/codeyam-cli/templates/design-systems/neo-brutalist-design-system.md +294 -0
  743. package/codeyam-cli/templates/editor-step-hook.py +368 -0
  744. package/codeyam-cli/templates/expo-react-native/MOBILE_SETUP.md +288 -0
  745. package/codeyam-cli/templates/expo-react-native/README.md +41 -0
  746. package/codeyam-cli/templates/expo-react-native/__tests__/.gitkeep +0 -0
  747. package/codeyam-cli/templates/expo-react-native/app/_layout.tsx +15 -0
  748. package/codeyam-cli/templates/expo-react-native/app/index.tsx +36 -0
  749. package/codeyam-cli/templates/expo-react-native/app.json +29 -0
  750. package/codeyam-cli/templates/expo-react-native/babel.config.js +10 -0
  751. package/codeyam-cli/templates/expo-react-native/gitignore +14 -0
  752. package/codeyam-cli/templates/expo-react-native/global.css +10 -0
  753. package/codeyam-cli/templates/expo-react-native/lib/storage.ts +32 -0
  754. package/codeyam-cli/templates/expo-react-native/lib/theme.ts +73 -0
  755. package/codeyam-cli/templates/expo-react-native/metro.config.js +6 -0
  756. package/codeyam-cli/templates/expo-react-native/nativewind-env.d.ts +1 -0
  757. package/codeyam-cli/templates/expo-react-native/package.json +54 -0
  758. package/codeyam-cli/templates/expo-react-native/patches/expo-modules-autolinking+3.0.24.patch +29 -0
  759. package/codeyam-cli/templates/expo-react-native/tailwind.config.js +10 -0
  760. package/codeyam-cli/templates/expo-react-native/tsconfig.json +10 -0
  761. package/codeyam-cli/templates/hooks/staleness-check.sh +43 -0
  762. package/codeyam-cli/templates/isolation-route/expo-router.tsx.template +54 -0
  763. package/codeyam-cli/templates/isolation-route/next-app.tsx.template +80 -0
  764. package/codeyam-cli/templates/isolation-route/next-pages.tsx.template +79 -0
  765. package/codeyam-cli/templates/isolation-route/vite-react.tsx.template +78 -0
  766. package/codeyam-cli/templates/msw/browser-setup.ts.template +47 -0
  767. package/codeyam-cli/templates/msw/handler-router.ts.template +47 -0
  768. package/codeyam-cli/templates/msw/server-setup.ts.template +52 -0
  769. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_PATTERNS.md +308 -0
  770. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_UPGRADE.md +304 -0
  771. package/codeyam-cli/templates/nextjs-prisma-sqlite/DATABASE.md +126 -0
  772. package/codeyam-cli/templates/nextjs-prisma-sqlite/FEATURE_PATTERNS.md +37 -0
  773. package/codeyam-cli/templates/nextjs-prisma-sqlite/README.md +53 -0
  774. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/api/todos/route.ts +17 -0
  775. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/codeyam-isolate/layout.tsx +12 -0
  776. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/globals.css +26 -0
  777. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/layout.tsx +34 -0
  778. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/lib/prisma.ts +24 -0
  779. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/page.tsx +10 -0
  780. package/codeyam-cli/templates/nextjs-prisma-sqlite/env +4 -0
  781. package/codeyam-cli/templates/nextjs-prisma-sqlite/eslint.config.mjs +11 -0
  782. package/codeyam-cli/templates/nextjs-prisma-sqlite/gitignore +65 -0
  783. package/codeyam-cli/templates/nextjs-prisma-sqlite/next.config.ts +14 -0
  784. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +39 -0
  785. package/codeyam-cli/templates/nextjs-prisma-sqlite/postcss.config.mjs +7 -0
  786. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/schema.prisma +27 -0
  787. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/seed.ts +40 -0
  788. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma.config.ts +12 -0
  789. package/codeyam-cli/templates/nextjs-prisma-sqlite/seed-adapter.ts +140 -0
  790. package/codeyam-cli/templates/nextjs-prisma-sqlite/tsconfig.json +34 -0
  791. package/codeyam-cli/templates/nextjs-prisma-sqlite/vitest.config.ts +13 -0
  792. package/codeyam-cli/templates/nextjs-prisma-supabase/README.md +52 -0
  793. package/codeyam-cli/templates/nextjs-prisma-supabase/SUPABASE_SETUP.md +104 -0
  794. package/codeyam-cli/templates/nextjs-prisma-supabase/app/api/todos/route.ts +17 -0
  795. package/codeyam-cli/templates/nextjs-prisma-supabase/app/globals.css +26 -0
  796. package/codeyam-cli/templates/nextjs-prisma-supabase/app/layout.tsx +34 -0
  797. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/prisma.ts +20 -0
  798. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/supabase.ts +12 -0
  799. package/codeyam-cli/templates/nextjs-prisma-supabase/app/page.tsx +10 -0
  800. package/codeyam-cli/templates/nextjs-prisma-supabase/env +9 -0
  801. package/codeyam-cli/templates/nextjs-prisma-supabase/eslint.config.mjs +11 -0
  802. package/codeyam-cli/templates/nextjs-prisma-supabase/gitignore +40 -0
  803. package/codeyam-cli/templates/nextjs-prisma-supabase/next.config.ts +11 -0
  804. package/codeyam-cli/templates/nextjs-prisma-supabase/package.json +37 -0
  805. package/codeyam-cli/templates/nextjs-prisma-supabase/postcss.config.mjs +7 -0
  806. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/schema.prisma +27 -0
  807. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/seed.ts +39 -0
  808. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma.config.ts +12 -0
  809. package/codeyam-cli/templates/nextjs-prisma-supabase/tsconfig.json +34 -0
  810. package/codeyam-cli/templates/prompts/conversation-guidance.txt +44 -0
  811. package/codeyam-cli/templates/prompts/conversation-prompt.txt +28 -0
  812. package/codeyam-cli/templates/prompts/interruption-prompt.txt +31 -0
  813. package/codeyam-cli/templates/prompts/stale-rules-prompt.txt +24 -0
  814. package/codeyam-cli/templates/rule-notification-hook.py +47 -18
  815. package/codeyam-cli/templates/rule-reflection-hook.py +287 -68
  816. package/codeyam-cli/templates/rules-instructions.md +45 -90
  817. package/codeyam-cli/templates/seed-adapters/supabase.ts +475 -0
  818. package/codeyam-cli/templates/{codeyam:debug.md → skills/codeyam-debug/SKILL.md} +1 -1
  819. package/codeyam-cli/templates/skills/codeyam-dev-mode/SKILL.md +237 -0
  820. package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +244 -0
  821. package/codeyam-cli/templates/{codeyam:memory.md → skills/codeyam-memory/SKILL.md} +231 -24
  822. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/deprecated-prompt.md +100 -0
  823. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/detect-deprecated-patterns.mjs +139 -0
  824. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/find-exports.mjs +52 -0
  825. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/misleading-api-prompt.md +117 -0
  826. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/read-json-field.mjs +61 -0
  827. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/ripgrep-fallback.mjs +155 -0
  828. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/analyze-prompt.md +46 -0
  829. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/cleanup.mjs +13 -0
  830. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/filter-session.mjs +95 -0
  831. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/preprocess.mjs +160 -0
  832. package/codeyam-cli/templates/{codeyam:new-rule.md → skills/codeyam-new-rule/SKILL.md} +1 -3
  833. package/codeyam-cli/templates/{codeyam:setup.md → skills/codeyam-setup/SKILL.md} +13 -1
  834. package/codeyam-cli/templates/{codeyam:sim.md → skills/codeyam-sim/SKILL.md} +1 -1
  835. package/codeyam-cli/templates/{codeyam:test.md → skills/codeyam-test/SKILL.md} +1 -1
  836. package/codeyam-cli/templates/{codeyam:verify.md → skills/codeyam-verify/SKILL.md} +1 -1
  837. package/package.json +28 -20
  838. package/packages/ai/index.js +1 -1
  839. package/packages/ai/index.js.map +1 -1
  840. package/packages/ai/src/lib/analyzeScope.js +14 -0
  841. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  842. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +22 -4
  843. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  844. package/packages/ai/src/lib/astScopes/methodSemantics.js +99 -0
  845. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  846. package/packages/ai/src/lib/astScopes/nodeToSource.js +16 -0
  847. package/packages/ai/src/lib/astScopes/nodeToSource.js.map +1 -1
  848. package/packages/ai/src/lib/astScopes/paths.js +12 -3
  849. package/packages/ai/src/lib/astScopes/paths.js.map +1 -1
  850. package/packages/ai/src/lib/astScopes/processExpression.js +78 -1
  851. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  852. package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
  853. package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
  854. package/packages/ai/src/lib/completionCall.js +10 -7
  855. package/packages/ai/src/lib/completionCall.js.map +1 -1
  856. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +389 -20
  857. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  858. package/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.js +9 -2
  859. package/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.js.map +1 -1
  860. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +14 -4
  861. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  862. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js +54 -0
  863. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js.map +1 -0
  864. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +59 -11
  865. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  866. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js +34 -0
  867. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js.map +1 -0
  868. package/packages/ai/src/lib/dataStructureChunking.js +30 -11
  869. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -1
  870. package/packages/ai/src/lib/generateEntityScenarioData.js +79 -5
  871. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  872. package/packages/ai/src/lib/generateExecutionFlows.js +86 -2
  873. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
  874. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +242 -81
  875. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -1
  876. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
  877. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
  878. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
  879. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
  880. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +17 -2
  881. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  882. package/packages/analyze/index.js +1 -1
  883. package/packages/analyze/index.js.map +1 -1
  884. package/packages/analyze/src/lib/ProjectAnalyzer.js +13 -4
  885. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  886. package/packages/analyze/src/lib/asts/index.js +4 -2
  887. package/packages/analyze/src/lib/asts/index.js.map +1 -1
  888. package/packages/analyze/src/lib/asts/nodes/getNodeType.js +1 -0
  889. package/packages/analyze/src/lib/asts/nodes/getNodeType.js.map +1 -1
  890. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +27 -3
  891. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  892. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +14 -27
  893. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  894. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +0 -5
  895. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  896. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +12 -2
  897. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  898. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +9 -7
  899. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  900. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js +14 -0
  901. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js.map +1 -1
  902. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +44 -11
  903. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  904. package/packages/analyze/src/lib/files/analyzeChange.js +1 -0
  905. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  906. package/packages/analyze/src/lib/files/analyzeInitial.js +1 -0
  907. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  908. package/packages/analyze/src/lib/files/analyzeNextRoute.js +5 -1
  909. package/packages/analyze/src/lib/files/analyzeNextRoute.js.map +1 -1
  910. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +54 -27
  911. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -1
  912. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +42 -13
  913. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  914. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +185 -28
  915. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  916. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +0 -40
  917. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -1
  918. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +1388 -1143
  919. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  920. package/packages/database/index.js +1 -0
  921. package/packages/database/index.js.map +1 -1
  922. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  923. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  924. package/packages/database/src/lib/analysisToDb.js +1 -1
  925. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  926. package/packages/database/src/lib/branchToDb.js +1 -1
  927. package/packages/database/src/lib/branchToDb.js.map +1 -1
  928. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  929. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  930. package/packages/database/src/lib/commitToDb.js +1 -1
  931. package/packages/database/src/lib/commitToDb.js.map +1 -1
  932. package/packages/database/src/lib/fileToDb.js +1 -1
  933. package/packages/database/src/lib/fileToDb.js.map +1 -1
  934. package/packages/database/src/lib/kysely/db.js +8 -0
  935. package/packages/database/src/lib/kysely/db.js.map +1 -1
  936. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +149 -0
  937. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  938. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  939. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  940. package/packages/database/src/lib/loadAnalysis.js +7 -1
  941. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  942. package/packages/database/src/lib/loadCommits.js +23 -13
  943. package/packages/database/src/lib/loadCommits.js.map +1 -1
  944. package/packages/database/src/lib/loadEntities.js +0 -6
  945. package/packages/database/src/lib/loadEntities.js.map +1 -1
  946. package/packages/database/src/lib/loadEntity.js +5 -5
  947. package/packages/database/src/lib/loadEntity.js.map +1 -1
  948. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
  949. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  950. package/packages/database/src/lib/projectToDb.js +1 -1
  951. package/packages/database/src/lib/projectToDb.js.map +1 -1
  952. package/packages/database/src/lib/saveFiles.js +1 -1
  953. package/packages/database/src/lib/saveFiles.js.map +1 -1
  954. package/packages/database/src/lib/scenarioToDb.js +1 -1
  955. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  956. package/packages/database/src/lib/updateCommitMetadata.js +76 -90
  957. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  958. package/packages/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  959. package/packages/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  960. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  961. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  962. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
  963. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
  964. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  965. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  966. package/packages/types/src/enums/ProjectFramework.js +2 -0
  967. package/packages/types/src/enums/ProjectFramework.js.map +1 -1
  968. package/packages/utils/src/lib/fs/rsyncCopy.js +120 -4
  969. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  970. package/scripts/npm-post-install.cjs +34 -0
  971. package/codeyam-cli/src/commands/detect-universal-mocks.js +0 -118
  972. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +0 -1
  973. package/codeyam-cli/src/commands/list.js +0 -31
  974. package/codeyam-cli/src/commands/list.js.map +0 -1
  975. package/codeyam-cli/src/commands/webapp-info.js +0 -146
  976. package/codeyam-cli/src/commands/webapp-info.js.map +0 -1
  977. package/codeyam-cli/src/utils/universal-mocks.js +0 -152
  978. package/codeyam-cli/src/utils/universal-mocks.js.map +0 -1
  979. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CA3JxPb7.js +0 -1
  980. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-B5ctlSYt.js +0 -1
  981. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-ClaLpuOo.js +0 -34
  982. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-BDhPilK7.js +0 -25
  983. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-VeqEBv9v.js +0 -3
  984. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-Gq3Ocjo6.js +0 -1
  985. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-CiwXDxLh.js +0 -1
  986. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-DfKzxuoe.js +0 -11
  987. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-JE9ZIoBl.js +0 -51
  988. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-Ca9fAY46.js +0 -21
  989. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +0 -1
  990. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-C5lqplTC.js +0 -1
  991. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-CBoafmVs.js +0 -6
  992. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DGgZjdFg.js +0 -6
  993. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-DCPhhSMo.js +0 -1
  994. package/codeyam-cli/src/webserver/build/client/assets/files-Dk8wkAS7.js +0 -1
  995. package/codeyam-cli/src/webserver/build/client/assets/git-DXnyr8uP.js +0 -15
  996. package/codeyam-cli/src/webserver/build/client/assets/globals-Bh6jH0cL.css +0 -1
  997. package/codeyam-cli/src/webserver/build/client/assets/labs-BUvfJMNR.js +0 -1
  998. package/codeyam-cli/src/webserver/build/client/assets/manifest-d4e77269.js +0 -1
  999. package/codeyam-cli/src/webserver/build/client/assets/memory-DCHBwHou.js +0 -76
  1000. package/codeyam-cli/src/webserver/build/client/assets/root-D6oziHts.js +0 -62
  1001. package/codeyam-cli/src/webserver/build/client/assets/settings-B2X7lJgQ.js +0 -1
  1002. package/codeyam-cli/src/webserver/build/client/assets/simulations-CPoAg7Zo.js +0 -1
  1003. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-DNwUduNu.js +0 -1
  1004. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-COky1GVF.js +0 -2
  1005. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-CpZgwliL.js +0 -1
  1006. package/codeyam-cli/src/webserver/build/client/assets/useToast-Bv9JFvUO.js +0 -1
  1007. package/codeyam-cli/src/webserver/build/server/assets/index-C0KrUQp-.js +0 -1
  1008. package/codeyam-cli/src/webserver/build/server/assets/server-build-C2h1v1XD.js +0 -260
  1009. package/codeyam-cli/templates/codeyam-stop-hook.sh +0 -284
  1010. package/codeyam-cli/templates/codeyam:diagnose.md +0 -803
  1011. package/scripts/finalize-analyzer.cjs +0 -81
@@ -181,6 +181,8 @@ const SILENTLY_IGNORED_EQUIVALENCY_REASONS = new Set([
181
181
  'transformed non-object function equivalency - implicit parent equivalency - rerouted via useCallback',
182
182
  'transformed non-object function equivalency - Array.from() equivalency',
183
183
  'Spread operator equivalency key update: Explicit array deconstruction equivalency value',
184
+ // 'transformed non-object function equivalency - Explicit array deconstruction equivalency value',
185
+ 'useState setter call equivalency (direct)',
184
186
  ]);
185
187
  export class ScopeDataStructure {
186
188
  // Getter for backward compatibility - returns the tree structure
@@ -647,9 +649,29 @@ export class ScopeDataStructure {
647
649
  delete schema[path];
648
650
  }
649
651
  addEquivalency(path, equivalentPath, equivalentScopeName, scopeNode, equivalencyReason, equivalencyValueChain, traceId) {
652
+ // Fast early exits that don't count toward the limit.
653
+ // These are "no-op" calls that would be caught further below anyway,
654
+ // but checking them first prevents counter inflation from redundant calls
655
+ // generated by managers and followEquivalencies during scope processing.
650
656
  var _a;
657
+ // Skip silently-ignored reasons before counting
658
+ if (SILENTLY_IGNORED_EQUIVALENCY_REASONS.has(equivalencyReason)) {
659
+ return;
660
+ }
661
+ // Skip exact duplicates before counting (Phase 1 only — Phase 2 needs
662
+ // to process duplicates for database chain tracking)
663
+ if (this.onlyEquivalencies) {
664
+ const existing = scopeNode.equivalencies[path];
665
+ if (existing?.some((v) => v.schemaPath === equivalentPath &&
666
+ v.scopeNodeName === equivalentScopeName)) {
667
+ return;
668
+ }
669
+ }
651
670
  addEquivalencyCallCount++;
652
- if (addEquivalencyCallCount > 50000) {
671
+ const limit = typeof globalThis.__CODEYAM_EQUIVALENCY_LIMIT === 'number'
672
+ ? globalThis.__CODEYAM_EQUIVALENCY_LIMIT
673
+ : 50000;
674
+ if (addEquivalencyCallCount > limit) {
653
675
  console.error('INFINITE LOOP DETECTED in addEquivalency', {
654
676
  callCount: addEquivalencyCallCount,
655
677
  path,
@@ -662,15 +684,11 @@ export class ScopeDataStructure {
662
684
  }
663
685
  // Filter equivalency reasons - use pre-computed Sets for O(1) lookup
664
686
  if (!ALLOWED_EQUIVALENCY_REASONS.has(equivalencyReason)) {
665
- if (SILENTLY_IGNORED_EQUIVALENCY_REASONS.has(equivalencyReason)) {
666
- return;
667
- }
668
- else {
669
- // Log and skip - if an equivalency reason isn't in ALLOWED or SILENTLY_IGNORED,
670
- // it shouldn't be stored (was previously missing the return)
671
- console.info('Not tracked equivalency reason', { equivalencyReason });
672
- return;
673
- }
687
+ // Silently-ignored reasons already handled above
688
+ // Log and skip - if an equivalency reason isn't in ALLOWED or SILENTLY_IGNORED,
689
+ // it shouldn't be stored (was previously missing the return)
690
+ console.info('Not tracked equivalency reason', { equivalencyReason });
691
+ return;
674
692
  }
675
693
  // Skip self-referential equivalencies that would create infinite loops.
676
694
  // Case 1: Direct self-reference (path === equivalentPath)
@@ -697,6 +715,27 @@ export class ScopeDataStructure {
697
715
  equivalentPath.startsWith(path + '(')) {
698
716
  return;
699
717
  }
718
+ // Case 3: Circular reference through scope-suffixed names (____cyScope pattern)
719
+ // When a named arrow function is defined inside a scope (e.g., useEffect callback):
720
+ // const identifyUser = async () => { ... };
721
+ // identifyUser();
722
+ // This creates a variable "identifyUser" and a scope "identifyUser____cyScope9F".
723
+ // Mutual equivalencies between these cause infinite loops in Phase 2 because
724
+ // processing one triggers addToSchema → followEquivalencies → addEquivalency
725
+ // on the reverse, which repeats indefinitely.
726
+ // Only block when the REVERSE direction already exists (creating a cycle).
727
+ // The initial one-directional equivalency is necessary for scope resolution.
728
+ if (path &&
729
+ equivalentPath &&
730
+ (equivalentPath.startsWith(path + '____') ||
731
+ path.startsWith(equivalentPath + '____'))) {
732
+ // Check if the reverse equivalency already exists
733
+ const reverseEquivalencies = scopeNode.equivalencies[equivalentPath] || [];
734
+ const reverseExists = reverseEquivalencies.some((v) => v.schemaPath === path);
735
+ if (reverseExists) {
736
+ return;
737
+ }
738
+ }
700
739
  if (!equivalentScopeName) {
701
740
  console.error('CodeYam Error: Missing equivalent scope name - FULL CONTEXT:', JSON.stringify({
702
741
  path,
@@ -1925,6 +1964,8 @@ export class ScopeDataStructure {
1925
1964
  return;
1926
1965
  }
1927
1966
  const usageScopeNode = this.getScopeOrFunctionCallInfo(usageEquivalency.scopeNodeName);
1967
+ if (!usageScopeNode)
1968
+ continue;
1928
1969
  // Guard against infinite recursion by tracking which paths we've already
1929
1970
  // added from addComplexSourcePathVariables
1930
1971
  if (this.visitedTracker.checkAndMarkComplexSourceVisited(usageScopeNode.name, newUsageEquivalentPath)) {
@@ -1973,6 +2014,8 @@ export class ScopeDataStructure {
1973
2014
  continue;
1974
2015
  }
1975
2016
  const usageScopeNode = this.getScopeOrFunctionCallInfo(usageEquivalency.scopeNodeName);
2017
+ if (!usageScopeNode)
2018
+ continue;
1976
2019
  // This is put in place to avoid propagating array functions like 'filter' through complex equivalencies
1977
2020
  // but may cause problems if the funtion call is not on a known object (e.g. string or array)
1978
2021
  if (newUsageEquivalentPath.endsWith(')') ||
@@ -2301,6 +2344,21 @@ export class ScopeDataStructure {
2301
2344
  * ensure all sub-paths of that variable are reflected under signature[N].
2302
2345
  */
2303
2346
  propagateParameterToSignaturePaths(scopeNode) {
2347
+ // Helper: check if a type is a concrete scalar that cannot have sub-properties.
2348
+ const SCALAR_TYPES = new Set([
2349
+ 'string',
2350
+ 'number',
2351
+ 'boolean',
2352
+ 'bigint',
2353
+ 'symbol',
2354
+ 'void',
2355
+ 'never',
2356
+ ]);
2357
+ const isDefinitelyScalar = (type) => {
2358
+ const parts = type.split('|').map((s) => s.trim());
2359
+ const base = parts.filter((s) => s !== 'undefined' && s !== 'null');
2360
+ return base.length > 0 && base.every((b) => SCALAR_TYPES.has(b));
2361
+ };
2304
2362
  // Find variable → signature[N] equivalencies
2305
2363
  for (const [varName, equivalencies] of Object.entries(scopeNode.equivalencies)) {
2306
2364
  // Only process simple variable names (no dots, brackets, or parens)
@@ -2322,7 +2380,37 @@ export class ScopeDataStructure {
2322
2380
  const sigKey = signaturePath + suffix;
2323
2381
  // Only add if the signature path doesn't already exist
2324
2382
  if (!scopeNode.schema[sigKey]) {
2325
- scopeNode.schema[sigKey] = scopeNode.schema[key];
2383
+ // Check if this path represents variable conflation:
2384
+ // When a standalone variable (e.g., showWorkoutForm from useState)
2385
+ // appears as a sub-property of a scalar-typed ancestor (e.g.,
2386
+ // activity_type = "string"), it's from scope conflation, not real
2387
+ // property access. Block these while allowing legitimate built-in
2388
+ // accesses like string.length or string.slice.
2389
+ let isConflatedPath = false;
2390
+ let checkPos = signaturePath.length;
2391
+ while (true) {
2392
+ checkPos = sigKey.indexOf('.', checkPos + 1);
2393
+ if (checkPos === -1)
2394
+ break;
2395
+ const ancestorPath = sigKey.substring(0, checkPos);
2396
+ const ancestorType = scopeNode.schema[ancestorPath];
2397
+ if (ancestorType && isDefinitelyScalar(ancestorType)) {
2398
+ // Ancestor is scalar — check if the immediate sub-property
2399
+ // is also a standalone variable (indicating conflation)
2400
+ const afterDot = sigKey.substring(checkPos + 1);
2401
+ const nextSep = afterDot.search(/[.\[]/);
2402
+ const subPropName = nextSep === -1
2403
+ ? afterDot
2404
+ : afterDot.substring(0, nextSep);
2405
+ if (scopeNode.schema[subPropName] !== undefined) {
2406
+ isConflatedPath = true;
2407
+ break;
2408
+ }
2409
+ }
2410
+ }
2411
+ if (!isConflatedPath) {
2412
+ scopeNode.schema[sigKey] = scopeNode.schema[key];
2413
+ }
2326
2414
  }
2327
2415
  }
2328
2416
  }
@@ -2703,21 +2791,91 @@ export class ScopeDataStructure {
2703
2791
  }
2704
2792
  return [source];
2705
2793
  };
2706
- return entries.reduce((acc, entry) => {
2794
+ const acc = entries.reduce((result, entry) => {
2707
2795
  var _a;
2708
2796
  if (entry.sourceCandidates.length === 0)
2709
- return acc;
2797
+ return result;
2710
2798
  const usages = entry.usages.filter(usageMatchesScope);
2711
2799
  for (const usage of usages) {
2712
- acc[_a = usage.schemaPath] || (acc[_a] = []);
2800
+ result[_a = usage.schemaPath] || (result[_a] = []);
2713
2801
  // Resolve each source candidate through the equivalency chain
2714
2802
  for (const source of entry.sourceCandidates) {
2715
2803
  const resolvedSources = resolveToSignature(source, new Set());
2716
- acc[usage.schemaPath].push(...resolvedSources);
2804
+ result[usage.schemaPath].push(...resolvedSources);
2717
2805
  }
2718
2806
  }
2719
- return acc;
2807
+ return result;
2720
2808
  }, {});
2809
+ // Post-processing: enrich useState-backed sources with co-located external
2810
+ // function calls. When a useState value resolves to a setter variable that
2811
+ // lives in the same scope as a fetch/API call, that fetch is a data source.
2812
+ this.enrichUseStateSourcesWithCoLocatedCalls(acc);
2813
+ return acc;
2814
+ }
2815
+ /**
2816
+ * For each source that ends at a useState path, check if the setter was called
2817
+ * from a scope that also contains external function calls (like fetch).
2818
+ * If so, add those external calls as additional source candidates.
2819
+ */
2820
+ enrichUseStateSourcesWithCoLocatedCalls(acc) {
2821
+ const rootScopeName = this.scopeTreeManager.getRootName();
2822
+ const rootScope = this.scopeNodes[rootScopeName];
2823
+ if (!rootScope)
2824
+ return;
2825
+ // Collect all descendants for each scope node
2826
+ const getAllDescendants = (node) => {
2827
+ const names = new Set([node.name]);
2828
+ for (const child of node.children) {
2829
+ for (const name of getAllDescendants(child)) {
2830
+ names.add(name);
2831
+ }
2832
+ }
2833
+ return names;
2834
+ };
2835
+ for (const [usagePath, sources] of Object.entries(acc)) {
2836
+ const additionalSources = [];
2837
+ for (const source of sources) {
2838
+ // Check if this source is a useState-related terminal path
2839
+ // (e.g., useState(X).functionCallReturnValue[1] or useState(X).signature[0])
2840
+ if (!source.schemaPath.match(/^useState\([^)]*\)\./))
2841
+ continue;
2842
+ // Find the useState call from the source path
2843
+ const useStateCallMatch = source.schemaPath.match(/^(useState\([^)]*\))\./);
2844
+ if (!useStateCallMatch)
2845
+ continue;
2846
+ const useStateCall = useStateCallMatch[1];
2847
+ // Look in the root scope for the useState value equivalency
2848
+ // which tells us where the setter was called from
2849
+ const valuePath = `${useStateCall}.functionCallReturnValue[0]`;
2850
+ const valueEquivs = rootScope.equivalencies[valuePath];
2851
+ if (!valueEquivs)
2852
+ continue;
2853
+ for (const equiv of valueEquivs) {
2854
+ // Find the scope where the setter was called
2855
+ const setterScopeName = equiv.scopeNodeName;
2856
+ const setterScopeTree = this.scopeTreeManager.findNode(setterScopeName);
2857
+ if (!setterScopeTree)
2858
+ continue;
2859
+ // Get all descendant scope names from the setter scope
2860
+ const relatedScopes = getAllDescendants(setterScopeTree);
2861
+ // Find external function calls in those scopes whose return values
2862
+ // are actually consumed (assigned to a variable). This excludes
2863
+ // fire-and-forget calls like analytics.track() or console.log().
2864
+ const coLocatedCalls = this.externalFunctionCalls.filter((efc) => relatedScopes.has(efc.callScope) &&
2865
+ efc.receivingVariableNames &&
2866
+ efc.receivingVariableNames.length > 0);
2867
+ for (const call of coLocatedCalls) {
2868
+ additionalSources.push({
2869
+ scopeNodeName: call.callScope,
2870
+ schemaPath: `${call.callSignature}.functionCallReturnValue`,
2871
+ });
2872
+ }
2873
+ }
2874
+ }
2875
+ if (additionalSources.length > 0) {
2876
+ acc[usagePath].push(...additionalSources);
2877
+ }
2878
+ }
2721
2879
  }
2722
2880
  getUsageEquivalencies(functionName) {
2723
2881
  const scopeNode = this.getScopeOrFunctionCallInfo(functionName);
@@ -2825,6 +2983,23 @@ export class ScopeDataStructure {
2825
2983
  }
2826
2984
  }
2827
2985
  }
2986
+ // Helper: check if a type is a concrete scalar that cannot have sub-properties.
2987
+ // e.g., "string", "number | undefined", "boolean | null" are scalar.
2988
+ // "object", "array", "function", "unknown", "Workout", etc. are NOT scalar.
2989
+ const SCALAR_TYPES = new Set([
2990
+ 'string',
2991
+ 'number',
2992
+ 'boolean',
2993
+ 'bigint',
2994
+ 'symbol',
2995
+ 'void',
2996
+ 'never',
2997
+ ]);
2998
+ const isDefinitelyScalarType = (type) => {
2999
+ const parts = type.split('|').map((s) => s.trim());
3000
+ const base = parts.filter((s) => s !== 'undefined' && s !== 'null');
3001
+ return base.length > 0 && base.every((b) => SCALAR_TYPES.has(b));
3002
+ };
2828
3003
  // Propagate nested paths from variables to their signature equivalents
2829
3004
  // e.g., if workouts = signature[0].workouts, then workouts[].title becomes
2830
3005
  // signature[0].workouts[].title
@@ -2844,7 +3019,67 @@ export class ScopeDataStructure {
2844
3019
  const signatureKey = signaturePath + suffix;
2845
3020
  // Add to schema if not already present
2846
3021
  if (!tempScopeNode.schema[signatureKey]) {
2847
- tempScopeNode.schema[signatureKey] = schema[schemaKey];
3022
+ // Check if this path represents variable conflation:
3023
+ // When a standalone variable (e.g., showWorkoutForm from useState)
3024
+ // appears as a sub-property of a scalar-typed ancestor (e.g.,
3025
+ // activity_type = "string"), it's from scope conflation, not real
3026
+ // property access. Block these while allowing legitimate built-in
3027
+ // accesses like string.length or string.slice.
3028
+ let isConflatedPath = false;
3029
+ let checkPos = signaturePath.length;
3030
+ while (true) {
3031
+ checkPos = signatureKey.indexOf('.', checkPos + 1);
3032
+ if (checkPos === -1)
3033
+ break;
3034
+ const ancestorPath = signatureKey.substring(0, checkPos);
3035
+ const ancestorType = tempScopeNode.schema[ancestorPath];
3036
+ if (ancestorType && isDefinitelyScalarType(ancestorType)) {
3037
+ // Ancestor is scalar — check if the immediate sub-property
3038
+ // is also a standalone variable (indicating conflation)
3039
+ const afterDot = signatureKey.substring(checkPos + 1);
3040
+ const nextSep = afterDot.search(/[.\[]/);
3041
+ const subPropName = nextSep === -1 ? afterDot : afterDot.substring(0, nextSep);
3042
+ if (schema[subPropName] !== undefined) {
3043
+ isConflatedPath = true;
3044
+ break;
3045
+ }
3046
+ }
3047
+ }
3048
+ if (!isConflatedPath) {
3049
+ tempScopeNode.schema[signatureKey] = schema[schemaKey];
3050
+ }
3051
+ }
3052
+ }
3053
+ }
3054
+ }
3055
+ // Post-process: filter out conflated signature paths.
3056
+ // During phase 2 scope analysis, useState(false) conflation can create
3057
+ // bad paths like signature[0].mockWorkouts[].activity_type.showWorkoutForm
3058
+ // directly in scopeNode.schema. These flow through signatureInSchema into
3059
+ // tempScopeNode.schema without any guard. Filter them out here by checking:
3060
+ // 1. An ancestor in the path has a concrete scalar type (string, number, boolean, etc.)
3061
+ // 2. The immediate sub-property of that scalar ancestor is also a standalone
3062
+ // variable in the schema (indicating conflation, not a real property access)
3063
+ for (const key of Object.keys(tempScopeNode.schema)) {
3064
+ if (!key.startsWith('signature['))
3065
+ continue;
3066
+ // Walk through the path looking for scalar-typed ancestors
3067
+ let pos = 0;
3068
+ while (true) {
3069
+ pos = key.indexOf('.', pos + 1);
3070
+ if (pos === -1)
3071
+ break;
3072
+ const ancestorPath = key.substring(0, pos);
3073
+ const ancestorType = tempScopeNode.schema[ancestorPath];
3074
+ if (ancestorType && isDefinitelyScalarType(ancestorType)) {
3075
+ // Found a scalar ancestor — check if the sub-property name
3076
+ // is a standalone variable in the getSchema() result
3077
+ const afterDot = key.substring(pos + 1);
3078
+ const nextSep = afterDot.search(/[.\[]/);
3079
+ const subPropName = nextSep === -1 ? afterDot : afterDot.substring(0, nextSep);
3080
+ if (schema[subPropName] !== undefined) {
3081
+ delete tempScopeNode.schema[key];
3082
+ break;
2848
3083
  }
2849
3084
  }
2850
3085
  }
@@ -3114,6 +3349,13 @@ export class ScopeDataStructure {
3114
3349
  !equivalentValue.schemaPath.startsWith('signature[') && // not a signature path
3115
3350
  !equivalentValue.schemaPath.endsWith('.functionCallReturnValue') // not already handled above
3116
3351
  ) {
3352
+ // Skip bare "returnValue" from child scopes — this is the child's return value,
3353
+ // not a meaningful data source path in the parent scope
3354
+ if (equivalentValue.schemaPath === 'returnValue' &&
3355
+ equivalentValue.scopeNodeName !==
3356
+ this.scopeTreeManager.getRootName()) {
3357
+ continue;
3358
+ }
3117
3359
  // Add equivalency (will accumulate if multiple values for OR expressions)
3118
3360
  addEquivalency(path, equivalentValue.schemaPath);
3119
3361
  }
@@ -3452,7 +3694,95 @@ export class ScopeDataStructure {
3452
3694
  // Replace cyScope placeholders in all external function call data
3453
3695
  // This ensures call signatures and schema paths use actual callback text
3454
3696
  // instead of internal cyScope names, preventing mock data merge conflicts.
3455
- return this.externalFunctionCalls.map((efc) => this.cleanCyScopeFromFunctionCallInfo(efc));
3697
+ const rootScopeName = this.scopeTreeManager.getRootName();
3698
+ const rootSchema = this.scopeNodes[rootScopeName]?.schema ?? {};
3699
+ return this.externalFunctionCalls.map((efc) => {
3700
+ const cleaned = this.cleanCyScopeFromFunctionCallInfo(efc);
3701
+ return this.filterConflatedExternalPaths(cleaned, rootSchema);
3702
+ });
3703
+ }
3704
+ /**
3705
+ * Filters out conflated paths from external function call schemas.
3706
+ *
3707
+ * When multiple useState(false) calls create equivalency conflation during
3708
+ * Phase 1 analysis, standalone boolean state variables (like showWorkoutForm,
3709
+ * showGoalForm) can bleed into external function call schemas as sub-properties
3710
+ * of unrelated data fields (like data[].activity_type.showWorkoutForm).
3711
+ *
3712
+ * Detection: group sub-properties by parent path. If 2+ sub-properties of
3713
+ * the same parent all match standalone root scope variable names, treat them
3714
+ * as conflation artifacts and remove them.
3715
+ */
3716
+ filterConflatedExternalPaths(efc, rootSchema) {
3717
+ // Build a set of top-level root scope variable names (simple names, no dots/brackets)
3718
+ const topLevelRootVars = new Set();
3719
+ for (const key of Object.keys(rootSchema)) {
3720
+ if (!key.includes('.') && !key.includes('[')) {
3721
+ topLevelRootVars.add(key);
3722
+ }
3723
+ }
3724
+ if (topLevelRootVars.size === 0)
3725
+ return efc;
3726
+ // Group sub-property matches by their parent path.
3727
+ // For a path like "...data[].activity_type.showWorkoutForm",
3728
+ // parent = "...data[].activity_type", child = "showWorkoutForm"
3729
+ const parentToConflatedKeys = new Map();
3730
+ for (const key of Object.keys(efc.schema)) {
3731
+ const lastDot = key.lastIndexOf('.');
3732
+ if (lastDot === -1)
3733
+ continue;
3734
+ const parent = key.substring(0, lastDot);
3735
+ const child = key.substring(lastDot + 1);
3736
+ // Skip array access or function call patterns
3737
+ if (child.includes('[') || child.includes('('))
3738
+ continue;
3739
+ // Only consider paths inside array element chains (contains []).
3740
+ // Direct children of functionCallReturnValue are legitimate destructured
3741
+ // return values, not conflation. Conflation happens deeper in the chain
3742
+ // when array element fields get corrupted sub-properties.
3743
+ if (!parent.includes('['))
3744
+ continue;
3745
+ if (topLevelRootVars.has(child)) {
3746
+ if (!parentToConflatedKeys.has(parent)) {
3747
+ parentToConflatedKeys.set(parent, []);
3748
+ }
3749
+ parentToConflatedKeys.get(parent).push(key);
3750
+ }
3751
+ }
3752
+ // Only filter when 2+ sub-properties of the same parent match root scope vars.
3753
+ // This threshold avoids false positives from coincidental name matches.
3754
+ const keysToRemove = new Set();
3755
+ const parentsToRestore = new Set();
3756
+ for (const [parent, conflatedKeys] of parentToConflatedKeys) {
3757
+ if (conflatedKeys.length >= 2) {
3758
+ for (const key of conflatedKeys) {
3759
+ keysToRemove.add(key);
3760
+ }
3761
+ parentsToRestore.add(parent);
3762
+ }
3763
+ }
3764
+ if (keysToRemove.size === 0)
3765
+ return efc;
3766
+ // Create a new schema without the conflated paths
3767
+ const newSchema = {};
3768
+ for (const [key, value] of Object.entries(efc.schema)) {
3769
+ if (keysToRemove.has(key))
3770
+ continue;
3771
+ // Restore parent type: if it was changed to "object" because of conflated
3772
+ // sub-properties, and now all those sub-properties are removed, change it
3773
+ // back to "unknown" (we don't know the original type)
3774
+ if (parentsToRestore.has(key) && value === 'object') {
3775
+ // Check if there are any remaining sub-properties
3776
+ const hasRemainingSubProps = Object.keys(efc.schema).some((k) => !keysToRemove.has(k) &&
3777
+ k !== key &&
3778
+ (k.startsWith(key + '.') || k.startsWith(key + '[')));
3779
+ newSchema[key] = hasRemainingSubProps ? value : 'unknown';
3780
+ }
3781
+ else {
3782
+ newSchema[key] = value;
3783
+ }
3784
+ }
3785
+ return { ...efc, schema: newSchema };
3456
3786
  }
3457
3787
  /**
3458
3788
  * Cleans cyScope placeholder references from a FunctionCallInfo.
@@ -3673,6 +4003,7 @@ export class ScopeDataStructure {
3673
4003
  */
3674
4004
  getEnrichedConditionalUsages() {
3675
4005
  const enriched = {};
4006
+ console.log(`[getEnrichedConditionalUsages] Processing ${Object.keys(this.rawConditionalUsages).length} conditional paths: [${Object.keys(this.rawConditionalUsages).join(', ')}]`);
3676
4007
  for (const [path, usages] of Object.entries(this.rawConditionalUsages)) {
3677
4008
  // Try to trace this path back to a data source
3678
4009
  // First, try the root scope
@@ -3680,9 +4011,47 @@ export class ScopeDataStructure {
3680
4011
  const explanation = this.explainPath(rootScopeName, path);
3681
4012
  let sourceDataPath;
3682
4013
  if (explanation.source) {
3683
- // Build the full data path: scopeName.path
3684
- sourceDataPath = `${explanation.source.scope}.${explanation.source.path}`;
4014
+ const { scope, path: sourcePath } = explanation.source;
4015
+ // Build initial path — avoid redundant prefix when path already contains the scope call
4016
+ let fullPath;
4017
+ if (sourcePath.startsWith(`${scope}(`)) {
4018
+ fullPath = sourcePath;
4019
+ }
4020
+ else {
4021
+ fullPath = `${scope}.${sourcePath}`;
4022
+ }
4023
+ sourceDataPath = fullPath;
4024
+ console.log(`[getEnrichedConditionalUsages] "${path}" explainPath → scope="${scope}", sourcePath="${sourcePath}" → sourceDataPath="${sourceDataPath}"`);
4025
+ }
4026
+ else {
4027
+ console.log(`[getEnrichedConditionalUsages] "${path}" explainPath → no source found`);
4028
+ }
4029
+ // If explainPath didn't find a useful external source (e.g., it traced to
4030
+ // useState or just to the component scope itself), check sourceEquivalencies
4031
+ // for an external function call source like a fetch call
4032
+ const hasExternalSource = sourceDataPath?.includes('.functionCallReturnValue');
4033
+ if (!hasExternalSource) {
4034
+ console.log(`[getEnrichedConditionalUsages] "${path}" no external source (sourceDataPath="${sourceDataPath}"), checking sourceEquivalencies fallback...`);
4035
+ const sourceEquiv = this.getSourceEquivalencies();
4036
+ const returnValueKey = `returnValue.${path}`;
4037
+ const sources = sourceEquiv[returnValueKey];
4038
+ if (sources) {
4039
+ console.log(`[getEnrichedConditionalUsages] "${path}" sourceEquivalencies["${returnValueKey}"] has ${sources.length} sources: [${sources.map((s) => s.schemaPath).join(', ')}]`);
4040
+ const externalSource = sources.find((s) => s.schemaPath.includes('.functionCallReturnValue') &&
4041
+ !s.schemaPath.startsWith('useState('));
4042
+ if (externalSource) {
4043
+ console.log(`[getEnrichedConditionalUsages] "${path}" sourceEquivalencies fallback found external source: "${externalSource.schemaPath}"`);
4044
+ sourceDataPath = externalSource.schemaPath;
4045
+ }
4046
+ else {
4047
+ console.log(`[getEnrichedConditionalUsages] "${path}" sourceEquivalencies fallback found no external function call source`);
4048
+ }
4049
+ }
4050
+ else {
4051
+ console.log(`[getEnrichedConditionalUsages] "${path}" sourceEquivalencies["${returnValueKey}"] not found`);
4052
+ }
3685
4053
  }
4054
+ console.log(`[getEnrichedConditionalUsages] "${path}" FINAL sourceDataPath="${sourceDataPath ?? '(none)'}" (${usages.length} usages)`);
3686
4055
  enriched[path] = usages.map((usage) => ({
3687
4056
  ...usage,
3688
4057
  sourceDataPath,