@codeyam/codeyam-cli 0.1.0-staging.483fdc2 → 0.1.0-staging.49751cb

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 (1065) 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 +23 -1
  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/patterns/forInStatementHandler.ts +10 -17
  12. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +101 -0
  13. package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
  14. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +6 -0
  15. package/analyzer-template/packages/ai/src/lib/completionCall.ts +114 -113
  16. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +624 -22
  17. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.ts +10 -3
  18. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +5 -1
  19. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +27 -8
  20. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +2 -2
  21. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.ts +62 -0
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +140 -14
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +20 -1
  25. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +84 -19
  26. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.ts +35 -0
  27. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +40 -13
  28. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +58 -3
  29. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +124 -7
  30. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +101 -2
  31. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +359 -142
  32. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +51 -3
  33. package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
  34. package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
  35. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +24 -4
  36. package/analyzer-template/packages/analyze/index.ts +6 -1
  37. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +19 -7
  38. package/analyzer-template/packages/analyze/src/lib/asts/index.ts +7 -2
  39. package/analyzer-template/packages/analyze/src/lib/asts/nodes/getNodeType.ts +1 -0
  40. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +97 -5
  41. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +18 -36
  42. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +0 -6
  43. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +22 -6
  44. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +9 -12
  45. package/analyzer-template/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.ts +21 -0
  46. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +82 -10
  47. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +4 -0
  48. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +4 -0
  49. package/analyzer-template/packages/analyze/src/lib/files/analyzeNextRoute.ts +8 -3
  50. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1352 -0
  51. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +4 -0
  52. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +59 -26
  53. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +467 -24
  54. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +0 -98
  55. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +1750 -1194
  56. package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
  57. package/analyzer-template/packages/aws/package.json +10 -10
  58. package/analyzer-template/packages/database/index.ts +1 -0
  59. package/analyzer-template/packages/database/package.json +4 -4
  60. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  61. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  62. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  63. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  64. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  65. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  66. package/analyzer-template/packages/database/src/lib/kysely/db.ts +14 -0
  67. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +1 -1
  68. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +164 -0
  69. package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
  70. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +25 -15
  71. package/analyzer-template/packages/database/src/lib/loadCommits.ts +31 -20
  72. package/analyzer-template/packages/database/src/lib/loadEntities.ts +0 -6
  73. package/analyzer-template/packages/database/src/lib/loadEntity.ts +19 -8
  74. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +0 -5
  75. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  76. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  77. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  78. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +94 -143
  79. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatus.ts +58 -42
  80. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.ts +81 -65
  81. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  82. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +29 -1
  83. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +33 -5
  84. package/analyzer-template/packages/github/dist/database/index.d.ts +1 -0
  85. package/analyzer-template/packages/github/dist/database/index.d.ts.map +1 -1
  86. package/analyzer-template/packages/github/dist/database/index.js +1 -0
  87. package/analyzer-template/packages/github/dist/database/index.js.map +1 -1
  88. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
  89. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
  90. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
  91. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
  92. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
  93. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
  94. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
  95. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
  96. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
  97. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
  98. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
  99. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
  100. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +4 -0
  101. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  102. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +8 -0
  103. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  104. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +1 -1
  105. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +29 -0
  106. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -0
  107. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +149 -0
  108. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  109. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
  110. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
  111. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  112. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  113. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +5 -0
  114. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  115. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  116. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +7 -1
  117. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  118. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  119. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +23 -13
  120. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  121. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  122. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +0 -6
  123. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  124. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.d.ts +4 -1
  125. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.d.ts.map +1 -1
  126. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js +5 -5
  127. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js.map +1 -1
  128. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  129. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
  130. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  131. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
  132. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
  133. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
  134. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
  135. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
  136. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
  137. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  138. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +76 -90
  139. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  140. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.d.ts.map +1 -1
  141. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  142. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  143. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts.map +1 -1
  144. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  145. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  146. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -1
  147. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
  148. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
  149. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
  150. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  151. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  152. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  153. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  154. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js +2 -0
  155. package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js.map +1 -1
  156. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +8 -0
  157. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  158. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +10 -0
  159. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  160. package/analyzer-template/packages/github/package.json +1 -1
  161. package/analyzer-template/packages/types/src/enums/ProjectFramework.ts +2 -0
  162. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +8 -0
  163. package/analyzer-template/packages/types/src/types/Scenario.ts +10 -0
  164. package/analyzer-template/packages/ui-components/package.json +1 -1
  165. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts +2 -0
  166. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts.map +1 -1
  167. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js +2 -0
  168. package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js.map +1 -1
  169. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +8 -0
  170. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  171. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +10 -0
  172. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  173. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts +3 -1
  174. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  175. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +120 -4
  176. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  177. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +148 -3
  178. package/analyzer-template/playwright/captureFromUrl.ts +89 -82
  179. package/analyzer-template/project/analyzeFileEntities.ts +26 -0
  180. package/analyzer-template/project/constructMockCode.ts +206 -51
  181. package/analyzer-template/project/orchestrateCapture.ts +4 -1
  182. package/analyzer-template/project/reconcileMockDataKeys.ts +19 -14
  183. package/analyzer-template/project/runMultiScenarioServer.ts +26 -3
  184. package/analyzer-template/project/start.ts +3 -0
  185. package/analyzer-template/project/startScenarioCapture.ts +9 -0
  186. package/analyzer-template/project/writeClientLogRoute.ts +125 -0
  187. package/analyzer-template/project/writeMockDataTsx.ts +136 -17
  188. package/analyzer-template/project/writeScenarioComponents.ts +170 -29
  189. package/analyzer-template/project/writeSimpleRoot.ts +21 -11
  190. package/analyzer-template/tsconfig.json +13 -1
  191. package/background/src/lib/local/createLocalAnalyzer.js +1 -1
  192. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  193. package/background/src/lib/virtualized/project/analyzeFileEntities.js +22 -0
  194. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  195. package/background/src/lib/virtualized/project/constructMockCode.js +175 -42
  196. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  197. package/background/src/lib/virtualized/project/orchestrateCapture.js +4 -1
  198. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  199. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +17 -11
  200. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  201. package/background/src/lib/virtualized/project/runMultiScenarioServer.js +23 -3
  202. package/background/src/lib/virtualized/project/runMultiScenarioServer.js.map +1 -1
  203. package/background/src/lib/virtualized/project/start.js +2 -0
  204. package/background/src/lib/virtualized/project/start.js.map +1 -1
  205. package/background/src/lib/virtualized/project/startScenarioCapture.js +5 -0
  206. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  207. package/background/src/lib/virtualized/project/writeClientLogRoute.js +110 -0
  208. package/background/src/lib/virtualized/project/writeClientLogRoute.js.map +1 -0
  209. package/background/src/lib/virtualized/project/writeMockDataTsx.js +114 -13
  210. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  211. package/background/src/lib/virtualized/project/writeScenarioComponents.js +143 -27
  212. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  213. package/background/src/lib/virtualized/project/writeSimpleRoot.js +21 -11
  214. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  215. package/codeyam-cli/scripts/apply-setup.js +252 -21
  216. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  217. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js +196 -0
  218. package/codeyam-cli/src/__tests__/memory-scripts/filter-session.test.js.map +1 -0
  219. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js +114 -0
  220. package/codeyam-cli/src/__tests__/memory-scripts/read-json-field.test.js.map +1 -0
  221. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js +149 -0
  222. package/codeyam-cli/src/__tests__/memory-scripts/ripgrep-fallback.test.js.map +1 -0
  223. package/codeyam-cli/src/cli.js +57 -24
  224. package/codeyam-cli/src/cli.js.map +1 -1
  225. package/codeyam-cli/src/codeyam-cli.js +18 -2
  226. package/codeyam-cli/src/codeyam-cli.js.map +1 -1
  227. package/codeyam-cli/src/commands/__tests__/editor.analyzeImportsArgs.test.js +47 -0
  228. package/codeyam-cli/src/commands/__tests__/editor.analyzeImportsArgs.test.js.map +1 -0
  229. package/codeyam-cli/src/commands/__tests__/editor.auditNoAutoAnalysis.test.js +71 -0
  230. package/codeyam-cli/src/commands/__tests__/editor.auditNoAutoAnalysis.test.js.map +1 -0
  231. package/codeyam-cli/src/commands/__tests__/editor.designSystem.test.js +30 -0
  232. package/codeyam-cli/src/commands/__tests__/editor.designSystem.test.js.map +1 -0
  233. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js +51 -0
  234. package/codeyam-cli/src/commands/__tests__/editor.isolateArgs.test.js.map +1 -0
  235. package/codeyam-cli/src/commands/__tests__/editor.statePersistence.test.js +55 -0
  236. package/codeyam-cli/src/commands/__tests__/editor.statePersistence.test.js.map +1 -0
  237. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js +56 -0
  238. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js.map +1 -0
  239. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js +137 -47
  240. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js.map +1 -1
  241. package/codeyam-cli/src/commands/analyze.js +21 -9
  242. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  243. package/codeyam-cli/src/commands/baseline.js +2 -0
  244. package/codeyam-cli/src/commands/baseline.js.map +1 -1
  245. package/codeyam-cli/src/commands/debug.js +2 -0
  246. package/codeyam-cli/src/commands/debug.js.map +1 -1
  247. package/codeyam-cli/src/commands/default.js +44 -21
  248. package/codeyam-cli/src/commands/default.js.map +1 -1
  249. package/codeyam-cli/src/commands/editor.js +6313 -0
  250. package/codeyam-cli/src/commands/editor.js.map +1 -0
  251. package/codeyam-cli/src/commands/editorAnalyzeImportsArgs.js +23 -0
  252. package/codeyam-cli/src/commands/editorAnalyzeImportsArgs.js.map +1 -0
  253. package/codeyam-cli/src/commands/editorIsolateArgs.js +25 -0
  254. package/codeyam-cli/src/commands/editorIsolateArgs.js.map +1 -0
  255. package/codeyam-cli/src/commands/init.js +168 -292
  256. package/codeyam-cli/src/commands/init.js.map +1 -1
  257. package/codeyam-cli/src/commands/memory.js +97 -92
  258. package/codeyam-cli/src/commands/memory.js.map +1 -1
  259. package/codeyam-cli/src/commands/recapture.js +2 -0
  260. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  261. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  262. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  263. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  264. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  265. package/codeyam-cli/src/commands/telemetry.js +37 -0
  266. package/codeyam-cli/src/commands/telemetry.js.map +1 -0
  267. package/codeyam-cli/src/commands/test-startup.js +2 -0
  268. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  269. package/codeyam-cli/src/commands/verify.js +14 -2
  270. package/codeyam-cli/src/commands/verify.js.map +1 -1
  271. package/codeyam-cli/src/data/designSystems.js +27 -0
  272. package/codeyam-cli/src/data/designSystems.js.map +1 -0
  273. package/codeyam-cli/src/data/techStacks.js +77 -0
  274. package/codeyam-cli/src/data/techStacks.js.map +1 -0
  275. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js +173 -0
  276. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js.map +1 -0
  277. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js +46 -0
  278. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js.map +1 -0
  279. package/codeyam-cli/src/utils/__tests__/devServerState.test.js +226 -0
  280. package/codeyam-cli/src/utils/__tests__/devServerState.test.js.map +1 -0
  281. package/codeyam-cli/src/utils/__tests__/editorApi.test.js +181 -0
  282. package/codeyam-cli/src/utils/__tests__/editorApi.test.js.map +1 -0
  283. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +4160 -0
  284. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -0
  285. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js +76 -0
  286. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js.map +1 -0
  287. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js +93 -0
  288. package/codeyam-cli/src/utils/__tests__/editorCapture.test.js.map +1 -0
  289. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js +137 -0
  290. package/codeyam-cli/src/utils/__tests__/editorCaptureScenarioSeeding.test.js.map +1 -0
  291. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js +100 -0
  292. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js.map +1 -0
  293. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js +304 -0
  294. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js.map +1 -0
  295. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js +194 -0
  296. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js.map +1 -0
  297. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js +381 -0
  298. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js.map +1 -0
  299. package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js +67 -0
  300. package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js.map +1 -0
  301. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js +294 -0
  302. package/codeyam-cli/src/utils/__tests__/editorImageVerifier.test.js.map +1 -0
  303. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js +542 -0
  304. package/codeyam-cli/src/utils/__tests__/editorJournal.test.js.map +1 -0
  305. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js +594 -0
  306. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js.map +1 -0
  307. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js +435 -0
  308. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js.map +1 -0
  309. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js +270 -0
  310. package/codeyam-cli/src/utils/__tests__/editorMockState.test.js.map +1 -0
  311. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js +217 -0
  312. package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js.map +1 -0
  313. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js +361 -0
  314. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js.map +1 -0
  315. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js +250 -0
  316. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js.map +1 -0
  317. package/codeyam-cli/src/utils/__tests__/editorRoadmap.test.js +1108 -0
  318. package/codeyam-cli/src/utils/__tests__/editorRoadmap.test.js.map +1 -0
  319. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js +139 -0
  320. package/codeyam-cli/src/utils/__tests__/editorScenarioLookup.test.js.map +1 -0
  321. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js +411 -0
  322. package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js.map +1 -0
  323. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +1768 -0
  324. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -0
  325. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js +413 -0
  326. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js.map +1 -0
  327. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js +143 -0
  328. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js.map +1 -0
  329. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js +66 -0
  330. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js.map +1 -0
  331. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js +53 -0
  332. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js.map +1 -0
  333. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +2121 -0
  334. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -0
  335. package/codeyam-cli/src/utils/__tests__/envFile.test.js +125 -0
  336. package/codeyam-cli/src/utils/__tests__/envFile.test.js.map +1 -0
  337. package/codeyam-cli/src/utils/__tests__/git.editor.test.js +134 -0
  338. package/codeyam-cli/src/utils/__tests__/git.editor.test.js.map +1 -0
  339. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js +177 -0
  340. package/codeyam-cli/src/utils/__tests__/glossaryAdd.test.js.map +1 -0
  341. package/codeyam-cli/src/utils/__tests__/handoffContext.test.js +500 -0
  342. package/codeyam-cli/src/utils/__tests__/handoffContext.test.js.map +1 -0
  343. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js +122 -0
  344. package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js.map +1 -0
  345. package/codeyam-cli/src/utils/__tests__/manualEntityAnalysis.test.js +302 -0
  346. package/codeyam-cli/src/utils/__tests__/manualEntityAnalysis.test.js.map +1 -0
  347. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +185 -0
  348. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
  349. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js +129 -0
  350. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js.map +1 -0
  351. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js +9 -0
  352. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js.map +1 -1
  353. package/codeyam-cli/src/utils/__tests__/project.test.js +65 -0
  354. package/codeyam-cli/src/utils/__tests__/project.test.js.map +1 -0
  355. package/codeyam-cli/src/utils/__tests__/registerScenarioResult.test.js +127 -0
  356. package/codeyam-cli/src/utils/__tests__/registerScenarioResult.test.js.map +1 -0
  357. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js +118 -0
  358. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js.map +1 -0
  359. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js +284 -0
  360. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js.map +1 -0
  361. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js +121 -0
  362. package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js.map +1 -0
  363. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +672 -0
  364. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -0
  365. package/codeyam-cli/src/utils/__tests__/screenshotHash.test.js +84 -0
  366. package/codeyam-cli/src/utils/__tests__/screenshotHash.test.js.map +1 -0
  367. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +175 -86
  368. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  369. package/codeyam-cli/src/utils/__tests__/telemetry.test.js +159 -0
  370. package/codeyam-cli/src/utils/__tests__/telemetry.test.js.map +1 -0
  371. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js +51 -0
  372. package/codeyam-cli/src/utils/__tests__/templateConsistency.test.js.map +1 -0
  373. package/codeyam-cli/src/utils/__tests__/testRunner.test.js +216 -0
  374. package/codeyam-cli/src/utils/__tests__/testRunner.test.js.map +1 -0
  375. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js +148 -0
  376. package/codeyam-cli/src/utils/__tests__/webappDetection.test.js.map +1 -0
  377. package/codeyam-cli/src/utils/analysisRunner.js +39 -8
  378. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  379. package/codeyam-cli/src/utils/analyzer.js +26 -0
  380. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  381. package/codeyam-cli/src/utils/analyzerFinalization.js +100 -0
  382. package/codeyam-cli/src/utils/analyzerFinalization.js.map +1 -0
  383. package/codeyam-cli/src/utils/backgroundServer.js +193 -30
  384. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  385. package/codeyam-cli/src/utils/buildFlags.js +4 -0
  386. package/codeyam-cli/src/utils/buildFlags.js.map +1 -0
  387. package/codeyam-cli/src/utils/database.js +37 -2
  388. package/codeyam-cli/src/utils/database.js.map +1 -1
  389. package/codeyam-cli/src/utils/designSystemShowcase.js +810 -0
  390. package/codeyam-cli/src/utils/designSystemShowcase.js.map +1 -0
  391. package/codeyam-cli/src/utils/devModeEvents.js +40 -0
  392. package/codeyam-cli/src/utils/devModeEvents.js.map +1 -0
  393. package/codeyam-cli/src/utils/devServerState.js +103 -0
  394. package/codeyam-cli/src/utils/devServerState.js.map +1 -0
  395. package/codeyam-cli/src/utils/editorApi.js +95 -0
  396. package/codeyam-cli/src/utils/editorApi.js.map +1 -0
  397. package/codeyam-cli/src/utils/editorAudit.js +849 -0
  398. package/codeyam-cli/src/utils/editorAudit.js.map +1 -0
  399. package/codeyam-cli/src/utils/editorBroadcastViewport.js +26 -0
  400. package/codeyam-cli/src/utils/editorBroadcastViewport.js.map +1 -0
  401. package/codeyam-cli/src/utils/editorCapture.js +102 -0
  402. package/codeyam-cli/src/utils/editorCapture.js.map +1 -0
  403. package/codeyam-cli/src/utils/editorDeleteScenario.js +67 -0
  404. package/codeyam-cli/src/utils/editorDeleteScenario.js.map +1 -0
  405. package/codeyam-cli/src/utils/editorDevServer.js +197 -0
  406. package/codeyam-cli/src/utils/editorDevServer.js.map +1 -0
  407. package/codeyam-cli/src/utils/editorEntityChangeStatus.js +50 -0
  408. package/codeyam-cli/src/utils/editorEntityChangeStatus.js.map +1 -0
  409. package/codeyam-cli/src/utils/editorEntityHelpers.js +144 -0
  410. package/codeyam-cli/src/utils/editorEntityHelpers.js.map +1 -0
  411. package/codeyam-cli/src/utils/editorGuard.js +36 -0
  412. package/codeyam-cli/src/utils/editorGuard.js.map +1 -0
  413. package/codeyam-cli/src/utils/editorImageVerifier.js +155 -0
  414. package/codeyam-cli/src/utils/editorImageVerifier.js.map +1 -0
  415. package/codeyam-cli/src/utils/editorJournal.js +225 -0
  416. package/codeyam-cli/src/utils/editorJournal.js.map +1 -0
  417. package/codeyam-cli/src/utils/editorLoaderHelpers.js +152 -0
  418. package/codeyam-cli/src/utils/editorLoaderHelpers.js.map +1 -0
  419. package/codeyam-cli/src/utils/editorMigration.js +224 -0
  420. package/codeyam-cli/src/utils/editorMigration.js.map +1 -0
  421. package/codeyam-cli/src/utils/editorMockState.js +248 -0
  422. package/codeyam-cli/src/utils/editorMockState.js.map +1 -0
  423. package/codeyam-cli/src/utils/editorPreloadHelpers.js +135 -0
  424. package/codeyam-cli/src/utils/editorPreloadHelpers.js.map +1 -0
  425. package/codeyam-cli/src/utils/editorPreview.js +139 -0
  426. package/codeyam-cli/src/utils/editorPreview.js.map +1 -0
  427. package/codeyam-cli/src/utils/editorRecapture.js +109 -0
  428. package/codeyam-cli/src/utils/editorRecapture.js.map +1 -0
  429. package/codeyam-cli/src/utils/editorRoadmap.js +574 -0
  430. package/codeyam-cli/src/utils/editorRoadmap.js.map +1 -0
  431. package/codeyam-cli/src/utils/editorScenarioSwitch.js +149 -0
  432. package/codeyam-cli/src/utils/editorScenarioSwitch.js.map +1 -0
  433. package/codeyam-cli/src/utils/editorScenarios.js +687 -0
  434. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -0
  435. package/codeyam-cli/src/utils/editorSeedAdapter.js +475 -0
  436. package/codeyam-cli/src/utils/editorSeedAdapter.js.map +1 -0
  437. package/codeyam-cli/src/utils/editorShouldRevalidate.js +21 -0
  438. package/codeyam-cli/src/utils/editorShouldRevalidate.js.map +1 -0
  439. package/codeyam-cli/src/utils/entityChangeStatus.js +394 -0
  440. package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -0
  441. package/codeyam-cli/src/utils/entityChangeStatus.server.js +227 -0
  442. package/codeyam-cli/src/utils/entityChangeStatus.server.js.map +1 -0
  443. package/codeyam-cli/src/utils/envFile.js +90 -0
  444. package/codeyam-cli/src/utils/envFile.js.map +1 -0
  445. package/codeyam-cli/src/utils/fileMetadata.js +5 -0
  446. package/codeyam-cli/src/utils/fileMetadata.js.map +1 -1
  447. package/codeyam-cli/src/utils/fileWatcher.js +63 -9
  448. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  449. package/codeyam-cli/src/utils/generateReport.js +2 -2
  450. package/codeyam-cli/src/utils/git.js +103 -0
  451. package/codeyam-cli/src/utils/git.js.map +1 -1
  452. package/codeyam-cli/src/utils/glossaryAdd.js +74 -0
  453. package/codeyam-cli/src/utils/glossaryAdd.js.map +1 -0
  454. package/codeyam-cli/src/utils/handoffContext.js +257 -0
  455. package/codeyam-cli/src/utils/handoffContext.js.map +1 -0
  456. package/codeyam-cli/src/utils/install-skills.js +145 -56
  457. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  458. package/codeyam-cli/src/utils/interactiveSyncWatcher.js +126 -0
  459. package/codeyam-cli/src/utils/interactiveSyncWatcher.js.map +1 -0
  460. package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
  461. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
  462. package/codeyam-cli/src/utils/manualEntityAnalysis.js +196 -0
  463. package/codeyam-cli/src/utils/manualEntityAnalysis.js.map +1 -0
  464. package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
  465. package/codeyam-cli/src/utils/npmVersionCheck.js.map +1 -0
  466. package/codeyam-cli/src/utils/parseRegisterArg.js +31 -0
  467. package/codeyam-cli/src/utils/parseRegisterArg.js.map +1 -0
  468. package/codeyam-cli/src/utils/pathIgnoring.js +19 -7
  469. package/codeyam-cli/src/utils/pathIgnoring.js.map +1 -1
  470. package/codeyam-cli/src/utils/progress.js +8 -1
  471. package/codeyam-cli/src/utils/progress.js.map +1 -1
  472. package/codeyam-cli/src/utils/project.js +15 -5
  473. package/codeyam-cli/src/utils/project.js.map +1 -1
  474. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js +11 -11
  475. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js.map +1 -1
  476. package/codeyam-cli/src/utils/queue/__tests__/job.interactiveStart.test.js +159 -0
  477. package/codeyam-cli/src/utils/queue/__tests__/job.interactiveStart.test.js.map +1 -0
  478. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +22 -0
  479. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
  480. package/codeyam-cli/src/utils/queue/heartbeat.js +13 -5
  481. package/codeyam-cli/src/utils/queue/heartbeat.js.map +1 -1
  482. package/codeyam-cli/src/utils/queue/job.js +109 -7
  483. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  484. package/codeyam-cli/src/utils/queue/manager.js +7 -6
  485. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  486. package/codeyam-cli/src/utils/registerScenarioResult.js +52 -0
  487. package/codeyam-cli/src/utils/registerScenarioResult.js.map +1 -0
  488. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  489. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  490. package/codeyam-cli/src/utils/routePatternMatching.js +129 -0
  491. package/codeyam-cli/src/utils/routePatternMatching.js.map +1 -0
  492. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
  493. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
  494. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +229 -0
  495. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
  496. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
  497. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
  498. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
  499. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
  500. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
  501. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
  502. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
  503. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
  504. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +74 -0
  505. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
  506. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +376 -0
  507. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
  508. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +113 -0
  509. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
  510. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
  511. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
  512. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
  513. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
  514. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
  515. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
  516. package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
  517. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
  518. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
  519. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
  520. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
  521. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
  522. package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
  523. package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
  524. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js +83 -0
  525. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js.map +1 -0
  526. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js +118 -0
  527. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js.map +1 -0
  528. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js +72 -0
  529. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js.map +1 -0
  530. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
  531. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
  532. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js +76 -0
  533. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js.map +1 -0
  534. package/codeyam-cli/src/utils/rules/index.js +2 -0
  535. package/codeyam-cli/src/utils/rules/index.js.map +1 -1
  536. package/codeyam-cli/src/utils/rules/parser.js +16 -29
  537. package/codeyam-cli/src/utils/rules/parser.js.map +1 -1
  538. package/codeyam-cli/src/utils/rules/pathMatcher.js +34 -3
  539. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -1
  540. package/codeyam-cli/src/utils/rules/rulePlacement.js +65 -0
  541. package/codeyam-cli/src/utils/rules/rulePlacement.js.map +1 -0
  542. package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
  543. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
  544. package/codeyam-cli/src/utils/rules/sourceFiles.js +43 -0
  545. package/codeyam-cli/src/utils/rules/sourceFiles.js.map +1 -0
  546. package/codeyam-cli/src/utils/rules/staleness.js +16 -11
  547. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -1
  548. package/codeyam-cli/src/utils/scenarioCoverage.js +77 -0
  549. package/codeyam-cli/src/utils/scenarioCoverage.js.map +1 -0
  550. package/codeyam-cli/src/utils/scenarioMarkers.js +134 -0
  551. package/codeyam-cli/src/utils/scenarioMarkers.js.map +1 -0
  552. package/codeyam-cli/src/utils/scenariosManifest.js +313 -0
  553. package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -0
  554. package/codeyam-cli/src/utils/screenshotHash.js +26 -0
  555. package/codeyam-cli/src/utils/screenshotHash.js.map +1 -0
  556. package/codeyam-cli/src/utils/serverState.js +94 -12
  557. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  558. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +96 -47
  559. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  560. package/codeyam-cli/src/utils/simulationGateMiddleware.js +175 -0
  561. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -0
  562. package/codeyam-cli/src/utils/slugUtils.js +25 -0
  563. package/codeyam-cli/src/utils/slugUtils.js.map +1 -0
  564. package/codeyam-cli/src/utils/syncMocksMiddleware.js +7 -26
  565. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  566. package/codeyam-cli/src/utils/techStackConfig.js +38 -0
  567. package/codeyam-cli/src/utils/techStackConfig.js.map +1 -0
  568. package/codeyam-cli/src/utils/techStackConfig.test.js +85 -0
  569. package/codeyam-cli/src/utils/techStackConfig.test.js.map +1 -0
  570. package/codeyam-cli/src/utils/telemetry.js +106 -0
  571. package/codeyam-cli/src/utils/telemetry.js.map +1 -0
  572. package/codeyam-cli/src/utils/telemetryMiddleware.js +22 -0
  573. package/codeyam-cli/src/utils/telemetryMiddleware.js.map +1 -0
  574. package/codeyam-cli/src/utils/testResultCache.js +53 -0
  575. package/codeyam-cli/src/utils/testResultCache.js.map +1 -0
  576. package/codeyam-cli/src/utils/testResultCache.server.js +81 -0
  577. package/codeyam-cli/src/utils/testResultCache.server.js.map +1 -0
  578. package/codeyam-cli/src/utils/testResultCache.server.test.js +187 -0
  579. package/codeyam-cli/src/utils/testResultCache.server.test.js.map +1 -0
  580. package/codeyam-cli/src/utils/testResultCache.test.js +230 -0
  581. package/codeyam-cli/src/utils/testResultCache.test.js.map +1 -0
  582. package/codeyam-cli/src/utils/testRunner.js +350 -0
  583. package/codeyam-cli/src/utils/testRunner.js.map +1 -0
  584. package/codeyam-cli/src/utils/transcriptPruning.js +67 -0
  585. package/codeyam-cli/src/utils/transcriptPruning.js.map +1 -0
  586. package/codeyam-cli/src/utils/versionInfo.js +46 -0
  587. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  588. package/codeyam-cli/src/utils/webappDetection.js +38 -3
  589. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  590. package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js +99 -0
  591. package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js.map +1 -0
  592. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js +153 -0
  593. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js.map +1 -0
  594. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js +107 -0
  595. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js.map +1 -0
  596. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js +66 -0
  597. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
  598. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +1000 -0
  599. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -0
  600. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js +315 -0
  601. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js.map +1 -0
  602. package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js +135 -0
  603. package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js.map +1 -0
  604. package/codeyam-cli/src/webserver/app/lib/clientErrors.js +86 -0
  605. package/codeyam-cli/src/webserver/app/lib/clientErrors.js.map +1 -0
  606. package/codeyam-cli/src/webserver/app/lib/database.js +56 -30
  607. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  608. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  609. package/codeyam-cli/src/webserver/app/lib/git.js +397 -0
  610. package/codeyam-cli/src/webserver/app/lib/git.js.map +1 -0
  611. package/codeyam-cli/src/webserver/app/routes/api.interactive-switch-scenario.js +34 -0
  612. package/codeyam-cli/src/webserver/app/routes/api.interactive-switch-scenario.js.map +1 -0
  613. package/codeyam-cli/src/webserver/app/types/editor.js +8 -0
  614. package/codeyam-cli/src/webserver/app/types/editor.js.map +1 -0
  615. package/codeyam-cli/src/webserver/backgroundServer.js +186 -37
  616. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  617. package/codeyam-cli/src/webserver/bootstrap.js +11 -0
  618. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
  619. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-DTBZZfSk.js +1 -0
  620. package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-DsN1wKrm.js → EntityItem-BxclONWq.js} +5 -5
  621. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-CQgyEGV-.js +1 -0
  622. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-Ba2JVPzP.js → EntityTypeIcon-BsnEOJZ_.js} +9 -9
  623. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-ByaELMbv.js +1 -0
  624. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-6WjVfhxX.js +25 -0
  625. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-ChX-Hp7W.js +3 -0
  626. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-B0GLXMsr.js → LoadingDots-By5zI316.js} +1 -1
  627. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-xgeCVgSM.js → LogViewer-C-9zQdXg.js} +3 -3
  628. package/codeyam-cli/src/webserver/build/client/assets/MiniClaudeChat-Bs2_Oua4.js +36 -0
  629. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-OApQuNyq.js → ReportIssueModal-DQsceHVv.js} +5 -10
  630. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-DThcm_9M.js +1 -0
  631. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-DzccYyI8.js → ScenarioViewer-Cl4oOA3A.js} +3 -3
  632. package/codeyam-cli/src/webserver/build/client/assets/Spinner-CIil5-gb.js +34 -0
  633. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-CK7-NaPZ.js +1 -0
  634. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-BqkA9zyZ.js +1 -0
  635. package/codeyam-cli/src/webserver/build/client/assets/{_index-BwqWJOgH.js → _index-DnOgyseQ.js} +4 -4
  636. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-BwavGCpm.js → activity.(_tab)-DqM9hbNE.js} +10 -15
  637. package/codeyam-cli/src/webserver/build/client/assets/addon-canvas-DpzMmAy5.js +1 -0
  638. package/codeyam-cli/src/webserver/build/client/assets/addon-fit-YJmn1quW.js +12 -0
  639. package/codeyam-cli/src/webserver/build/client/assets/addon-web-links-C58dYPwR.js +1 -0
  640. package/codeyam-cli/src/webserver/build/client/assets/addon-webgl-DI8QOUvO.js +58 -0
  641. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-B8NCeOrm.js +22 -0
  642. package/codeyam-cli/src/webserver/build/client/assets/api.agent-transcripts-l0sNRNKZ.js +1 -0
  643. package/codeyam-cli/src/webserver/build/client/assets/api.dev-mode-events-l0sNRNKZ.js +1 -0
  644. package/codeyam-cli/src/webserver/build/client/assets/api.editor-audit-l0sNRNKZ.js +1 -0
  645. package/codeyam-cli/src/webserver/build/client/assets/api.editor-capture-scenario-l0sNRNKZ.js +1 -0
  646. package/codeyam-cli/src/webserver/build/client/assets/api.editor-client-errors-l0sNRNKZ.js +1 -0
  647. package/codeyam-cli/src/webserver/build/client/assets/api.editor-commit-l0sNRNKZ.js +1 -0
  648. package/codeyam-cli/src/webserver/build/client/assets/api.editor-database-verify-l0sNRNKZ.js +1 -0
  649. package/codeyam-cli/src/webserver/build/client/assets/api.editor-dev-server-l0sNRNKZ.js +1 -0
  650. package/codeyam-cli/src/webserver/build/client/assets/api.editor-entity-status-l0sNRNKZ.js +1 -0
  651. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-diff-l0sNRNKZ.js +1 -0
  652. package/codeyam-cli/src/webserver/build/client/assets/api.editor-file-l0sNRNKZ.js +1 -0
  653. package/codeyam-cli/src/webserver/build/client/assets/api.editor-github-verify-l0sNRNKZ.js +1 -0
  654. package/codeyam-cli/src/webserver/build/client/assets/api.editor-handoff-l0sNRNKZ.js +1 -0
  655. package/codeyam-cli/src/webserver/build/client/assets/api.editor-hosting-verify-l0sNRNKZ.js +1 -0
  656. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-entry-l0sNRNKZ.js +1 -0
  657. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-image._-l0sNRNKZ.js +1 -0
  658. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-l0sNRNKZ.js +1 -0
  659. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-screenshot-l0sNRNKZ.js +1 -0
  660. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-update-l0sNRNKZ.js +1 -0
  661. package/codeyam-cli/src/webserver/build/client/assets/api.editor-load-commit-l0sNRNKZ.js +1 -0
  662. package/codeyam-cli/src/webserver/build/client/assets/api.editor-project-info-l0sNRNKZ.js +1 -0
  663. package/codeyam-cli/src/webserver/build/client/assets/api.editor-recapture-stale-l0sNRNKZ.js +1 -0
  664. package/codeyam-cli/src/webserver/build/client/assets/api.editor-refresh-l0sNRNKZ.js +1 -0
  665. package/codeyam-cli/src/webserver/build/client/assets/api.editor-register-scenario-l0sNRNKZ.js +1 -0
  666. package/codeyam-cli/src/webserver/build/client/assets/api.editor-rename-scenario-l0sNRNKZ.js +1 -0
  667. package/codeyam-cli/src/webserver/build/client/assets/api.editor-roadmap-l0sNRNKZ.js +1 -0
  668. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-scenario-data-l0sNRNKZ.js +1 -0
  669. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-seed-state-l0sNRNKZ.js +1 -0
  670. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-coverage-l0sNRNKZ.js +1 -0
  671. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-data-l0sNRNKZ.js +1 -0
  672. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-image._-l0sNRNKZ.js +1 -0
  673. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-prompt-l0sNRNKZ.js +1 -0
  674. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenarios-l0sNRNKZ.js +1 -0
  675. package/codeyam-cli/src/webserver/build/client/assets/api.editor-schema-l0sNRNKZ.js +1 -0
  676. package/codeyam-cli/src/webserver/build/client/assets/api.editor-session-l0sNRNKZ.js +1 -0
  677. package/codeyam-cli/src/webserver/build/client/assets/api.editor-switch-scenario-l0sNRNKZ.js +1 -0
  678. package/codeyam-cli/src/webserver/build/client/assets/api.editor-test-results-l0sNRNKZ.js +1 -0
  679. package/codeyam-cli/src/webserver/build/client/assets/api.editor-verify-routes-l0sNRNKZ.js +1 -0
  680. package/codeyam-cli/src/webserver/build/client/assets/api.interactive-switch-scenario-l0sNRNKZ.js +1 -0
  681. package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
  682. package/codeyam-cli/src/webserver/build/client/assets/api.rule-path-l0sNRNKZ.js +1 -0
  683. package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
  684. package/codeyam-cli/src/webserver/build/client/assets/book-open-BFSIqZgO.js +6 -0
  685. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-Cx24_aWc.js → chevron-down-B9fDzFVh.js} +2 -2
  686. package/codeyam-cli/src/webserver/build/client/assets/chunk-UVKPFVEO-Bmq2apuh.js +43 -0
  687. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-BOARzkeR.js → circle-check-DLPObLUx.js} +2 -2
  688. package/codeyam-cli/src/webserver/build/client/assets/copy-DXEmO0TD.js +11 -0
  689. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-BwyFiRot.js +41 -0
  690. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-Coe5NhbS.js +1 -0
  691. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-CCKUIm0S.svg → cy-logo-cli-DoA97ML3.svg} +2 -2
  692. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-iRhRIFlp.js +1 -0
  693. package/codeyam-cli/src/webserver/build/client/assets/editor._tab-BZPBzV73.js +1 -0
  694. package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-DhtVC4aI.js +161 -0
  695. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-C6fEYHrh.js +41 -0
  696. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-BJUiQqZF.js → entity._sha._-pc-vc6wO.js} +14 -13
  697. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-C8AyYgYT.js +6 -0
  698. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DziaVQX1.js +6 -0
  699. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-BTcpgIpC.js +6 -0
  700. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CTBG2mmz.js → entity._sha_.edit._scenarioId-D_O_ajfZ.js} +2 -2
  701. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-CS2cb_eZ.js → entry.client-j1Vi0bco.js} +6 -6
  702. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-Daa96Fr1.js +1 -0
  703. package/codeyam-cli/src/webserver/build/client/assets/files-kuny2Q_s.js +1 -0
  704. package/codeyam-cli/src/webserver/build/client/assets/git-DgCZPMie.js +1 -0
  705. package/codeyam-cli/src/webserver/build/client/assets/globals-L-aUIeux.css +1 -0
  706. package/codeyam-cli/src/webserver/build/client/assets/{index-lzqtyFU8.js → index-BliGSSpl.js} +1 -1
  707. package/codeyam-cli/src/webserver/build/client/assets/index-SqjQKTdH.js +15 -0
  708. package/codeyam-cli/src/webserver/build/client/assets/{index-B1h680n5.js → index-vyrZD2g4.js} +1 -1
  709. package/codeyam-cli/src/webserver/build/client/assets/jsx-runtime-D_zvdyIk.js +9 -0
  710. package/codeyam-cli/src/webserver/build/client/assets/labs-c3yLxSEp.js +1 -0
  711. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-B7B9V-bu.js → loader-circle-D-q28GLF.js} +2 -2
  712. package/codeyam-cli/src/webserver/build/client/assets/manifest-79d0d81a.js +1 -0
  713. package/codeyam-cli/src/webserver/build/client/assets/memory-CEWIUC4t.js +101 -0
  714. package/codeyam-cli/src/webserver/build/client/assets/pause-BP6fitdh.js +11 -0
  715. package/codeyam-cli/src/webserver/build/client/assets/root-L2V0jea7.js +80 -0
  716. package/codeyam-cli/src/webserver/build/client/assets/{search-CxXUmBSd.js → search-BooqacKS.js} +2 -2
  717. package/codeyam-cli/src/webserver/build/client/assets/settings-BM0nbryO.js +1 -0
  718. package/codeyam-cli/src/webserver/build/client/assets/simulations-ovy6FjRY.js +1 -0
  719. package/codeyam-cli/src/webserver/build/client/assets/terminal-DHemCJIs.js +11 -0
  720. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-B6LgvRJg.js → triangle-alert-D87ekDl8.js} +2 -2
  721. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-Dk0Tciqg.js +1 -0
  722. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-C8QvIe05.js +2 -0
  723. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-jkCytuYz.js +1 -0
  724. package/codeyam-cli/src/webserver/build/client/assets/useToast-BgqkixU9.js +1 -0
  725. package/codeyam-cli/src/webserver/build/client/assets/xterm-BqvuqXEL.js +27 -0
  726. package/codeyam-cli/src/webserver/build/client/sound-test.html +98 -0
  727. package/codeyam-cli/src/webserver/build/server/assets/analysisRunner-QgInFGdU.js +16 -0
  728. package/codeyam-cli/src/webserver/build/server/assets/index-zblh9auj.js +1 -0
  729. package/codeyam-cli/src/webserver/build/server/assets/init-DaE0CBjk.js +14 -0
  730. package/codeyam-cli/src/webserver/build/server/assets/progress-CHTtrxFG.js +1 -0
  731. package/codeyam-cli/src/webserver/build/server/assets/server-build-CNvgz1cC.js +853 -0
  732. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  733. package/codeyam-cli/src/webserver/build-info.json +5 -5
  734. package/codeyam-cli/src/webserver/devServer.js +39 -5
  735. package/codeyam-cli/src/webserver/devServer.js.map +1 -1
  736. package/codeyam-cli/src/webserver/editorProxy.js +1263 -0
  737. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -0
  738. package/codeyam-cli/src/webserver/idleDetector.js +130 -0
  739. package/codeyam-cli/src/webserver/idleDetector.js.map +1 -0
  740. package/codeyam-cli/src/webserver/mockStateEvents.js +28 -0
  741. package/codeyam-cli/src/webserver/mockStateEvents.js.map +1 -0
  742. package/codeyam-cli/src/webserver/public/sound-test.html +98 -0
  743. package/codeyam-cli/src/webserver/scripts/codeyam-preload.mjs +414 -0
  744. package/codeyam-cli/src/webserver/scripts/journalCapture.ts +283 -0
  745. package/codeyam-cli/src/webserver/server.js +446 -1
  746. package/codeyam-cli/src/webserver/server.js.map +1 -1
  747. package/codeyam-cli/src/webserver/terminalServer.js +1043 -0
  748. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -0
  749. package/codeyam-cli/templates/__tests__/editor-step-hook.prompt-capture.test.ts +118 -0
  750. package/codeyam-cli/templates/chrome-extension-react/EXTENSION_SETUP.md +75 -0
  751. package/codeyam-cli/templates/chrome-extension-react/README.md +46 -0
  752. package/codeyam-cli/templates/chrome-extension-react/gitignore +15 -0
  753. package/codeyam-cli/templates/chrome-extension-react/index.html +12 -0
  754. package/codeyam-cli/templates/chrome-extension-react/package.json +27 -0
  755. package/codeyam-cli/templates/chrome-extension-react/popup.html +12 -0
  756. package/codeyam-cli/templates/chrome-extension-react/public/manifest.json +15 -0
  757. package/codeyam-cli/templates/chrome-extension-react/src/background/service-worker.ts +7 -0
  758. package/codeyam-cli/templates/chrome-extension-react/src/globals.css +6 -0
  759. package/codeyam-cli/templates/chrome-extension-react/src/lib/storage.ts +37 -0
  760. package/codeyam-cli/templates/chrome-extension-react/src/popup/App.tsx +12 -0
  761. package/codeyam-cli/templates/chrome-extension-react/src/popup/main.tsx +10 -0
  762. package/codeyam-cli/templates/chrome-extension-react/tsconfig.json +24 -0
  763. package/codeyam-cli/templates/chrome-extension-react/vite.config.ts +41 -0
  764. package/codeyam-cli/templates/codeyam-editor-claude.md +149 -0
  765. package/codeyam-cli/templates/codeyam-editor-codex.md +61 -0
  766. package/codeyam-cli/templates/codeyam-editor-gemini.md +59 -0
  767. package/codeyam-cli/templates/codeyam-editor-reference.md +216 -0
  768. package/codeyam-cli/templates/codeyam-memory-hook.sh +19 -20
  769. package/codeyam-cli/templates/commands/codeyam-diagnose.md +481 -0
  770. package/codeyam-cli/templates/design-systems/clean-dashboard-design-system.md +255 -0
  771. package/codeyam-cli/templates/design-systems/editorial-design-system.md +267 -0
  772. package/codeyam-cli/templates/design-systems/mono-brutalist-design-system.md +256 -0
  773. package/codeyam-cli/templates/design-systems/neo-brutalist-design-system.md +294 -0
  774. package/codeyam-cli/templates/editor-step-hook.py +368 -0
  775. package/codeyam-cli/templates/expo-react-native/MOBILE_SETUP.md +288 -0
  776. package/codeyam-cli/templates/expo-react-native/README.md +41 -0
  777. package/codeyam-cli/templates/expo-react-native/__tests__/.gitkeep +0 -0
  778. package/codeyam-cli/templates/expo-react-native/app/_layout.tsx +15 -0
  779. package/codeyam-cli/templates/expo-react-native/app/index.tsx +36 -0
  780. package/codeyam-cli/templates/expo-react-native/app.json +29 -0
  781. package/codeyam-cli/templates/expo-react-native/babel.config.js +10 -0
  782. package/codeyam-cli/templates/expo-react-native/gitignore +14 -0
  783. package/codeyam-cli/templates/expo-react-native/global.css +10 -0
  784. package/codeyam-cli/templates/expo-react-native/lib/storage.ts +32 -0
  785. package/codeyam-cli/templates/expo-react-native/lib/theme.ts +73 -0
  786. package/codeyam-cli/templates/expo-react-native/metro.config.js +6 -0
  787. package/codeyam-cli/templates/expo-react-native/nativewind-env.d.ts +1 -0
  788. package/codeyam-cli/templates/expo-react-native/package.json +54 -0
  789. package/codeyam-cli/templates/expo-react-native/patches/expo-modules-autolinking+3.0.24.patch +29 -0
  790. package/codeyam-cli/templates/expo-react-native/tailwind.config.js +10 -0
  791. package/codeyam-cli/templates/expo-react-native/tsconfig.json +10 -0
  792. package/codeyam-cli/templates/hooks/staleness-check.sh +43 -0
  793. package/codeyam-cli/templates/isolation-route/expo-router.tsx.template +54 -0
  794. package/codeyam-cli/templates/isolation-route/next-app.tsx.template +80 -0
  795. package/codeyam-cli/templates/isolation-route/next-pages.tsx.template +79 -0
  796. package/codeyam-cli/templates/isolation-route/vite-react.tsx.template +78 -0
  797. package/codeyam-cli/templates/msw/browser-setup.ts.template +47 -0
  798. package/codeyam-cli/templates/msw/handler-router.ts.template +47 -0
  799. package/codeyam-cli/templates/msw/server-setup.ts.template +52 -0
  800. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_PATTERNS.md +308 -0
  801. package/codeyam-cli/templates/nextjs-prisma-sqlite/AUTH_UPGRADE.md +304 -0
  802. package/codeyam-cli/templates/nextjs-prisma-sqlite/DATABASE.md +126 -0
  803. package/codeyam-cli/templates/nextjs-prisma-sqlite/FEATURE_PATTERNS.md +37 -0
  804. package/codeyam-cli/templates/nextjs-prisma-sqlite/README.md +53 -0
  805. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/api/todos/route.ts +17 -0
  806. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/codeyam-isolate/layout.tsx +12 -0
  807. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/globals.css +26 -0
  808. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/layout.tsx +34 -0
  809. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/lib/prisma.ts +24 -0
  810. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/page.tsx +10 -0
  811. package/codeyam-cli/templates/nextjs-prisma-sqlite/env +4 -0
  812. package/codeyam-cli/templates/nextjs-prisma-sqlite/eslint.config.mjs +11 -0
  813. package/codeyam-cli/templates/nextjs-prisma-sqlite/gitignore +65 -0
  814. package/codeyam-cli/templates/nextjs-prisma-sqlite/next.config.ts +14 -0
  815. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +39 -0
  816. package/codeyam-cli/templates/nextjs-prisma-sqlite/postcss.config.mjs +7 -0
  817. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/schema.prisma +27 -0
  818. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/seed.ts +40 -0
  819. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma.config.ts +12 -0
  820. package/codeyam-cli/templates/nextjs-prisma-sqlite/seed-adapter.ts +140 -0
  821. package/codeyam-cli/templates/nextjs-prisma-sqlite/tsconfig.json +34 -0
  822. package/codeyam-cli/templates/nextjs-prisma-sqlite/vitest.config.ts +13 -0
  823. package/codeyam-cli/templates/nextjs-prisma-supabase/README.md +52 -0
  824. package/codeyam-cli/templates/nextjs-prisma-supabase/SUPABASE_SETUP.md +104 -0
  825. package/codeyam-cli/templates/nextjs-prisma-supabase/app/api/todos/route.ts +17 -0
  826. package/codeyam-cli/templates/nextjs-prisma-supabase/app/globals.css +26 -0
  827. package/codeyam-cli/templates/nextjs-prisma-supabase/app/layout.tsx +34 -0
  828. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/prisma.ts +20 -0
  829. package/codeyam-cli/templates/nextjs-prisma-supabase/app/lib/supabase.ts +12 -0
  830. package/codeyam-cli/templates/nextjs-prisma-supabase/app/page.tsx +10 -0
  831. package/codeyam-cli/templates/nextjs-prisma-supabase/env +9 -0
  832. package/codeyam-cli/templates/nextjs-prisma-supabase/eslint.config.mjs +11 -0
  833. package/codeyam-cli/templates/nextjs-prisma-supabase/gitignore +40 -0
  834. package/codeyam-cli/templates/nextjs-prisma-supabase/next.config.ts +11 -0
  835. package/codeyam-cli/templates/nextjs-prisma-supabase/package.json +37 -0
  836. package/codeyam-cli/templates/nextjs-prisma-supabase/postcss.config.mjs +7 -0
  837. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/schema.prisma +27 -0
  838. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma/seed.ts +39 -0
  839. package/codeyam-cli/templates/nextjs-prisma-supabase/prisma.config.ts +12 -0
  840. package/codeyam-cli/templates/nextjs-prisma-supabase/tsconfig.json +34 -0
  841. package/codeyam-cli/templates/prompts/conversation-guidance.txt +44 -0
  842. package/codeyam-cli/templates/prompts/conversation-prompt.txt +28 -0
  843. package/codeyam-cli/templates/prompts/interruption-prompt.txt +31 -0
  844. package/codeyam-cli/templates/prompts/stale-rules-prompt.txt +24 -0
  845. package/codeyam-cli/templates/rule-notification-hook.py +83 -0
  846. package/codeyam-cli/templates/rule-reflection-hook.py +574 -88
  847. package/codeyam-cli/templates/rules-instructions.md +45 -93
  848. package/codeyam-cli/templates/seed-adapters/supabase.ts +475 -0
  849. package/codeyam-cli/templates/{codeyam:debug.md → skills/codeyam-debug/SKILL.md} +1 -1
  850. package/codeyam-cli/templates/skills/codeyam-dev-mode/SKILL.md +237 -0
  851. package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +244 -0
  852. package/codeyam-cli/templates/skills/codeyam-memory/SKILL.md +611 -0
  853. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/deprecated-prompt.md +100 -0
  854. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/detect-deprecated-patterns.mjs +139 -0
  855. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/find-exports.mjs +52 -0
  856. package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/misleading-api-prompt.md +117 -0
  857. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/read-json-field.mjs +61 -0
  858. package/codeyam-cli/templates/skills/codeyam-memory/scripts/lib/ripgrep-fallback.mjs +155 -0
  859. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/analyze-prompt.md +46 -0
  860. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/cleanup.mjs +13 -0
  861. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/filter-session.mjs +95 -0
  862. package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/preprocess.mjs +160 -0
  863. package/codeyam-cli/templates/skills/codeyam-new-rule/SKILL.md +11 -0
  864. package/codeyam-cli/templates/{codeyam:setup.md → skills/codeyam-setup/SKILL.md} +13 -1
  865. package/codeyam-cli/templates/{codeyam:sim.md → skills/codeyam-sim/SKILL.md} +1 -1
  866. package/codeyam-cli/templates/{codeyam:test.md → skills/codeyam-test/SKILL.md} +1 -1
  867. package/codeyam-cli/templates/{codeyam:verify.md → skills/codeyam-verify/SKILL.md} +1 -1
  868. package/package.json +29 -21
  869. package/packages/ai/index.js +1 -1
  870. package/packages/ai/index.js.map +1 -1
  871. package/packages/ai/src/lib/analyzeScope.js +21 -1
  872. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  873. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +22 -4
  874. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  875. package/packages/ai/src/lib/astScopes/methodSemantics.js +99 -0
  876. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  877. package/packages/ai/src/lib/astScopes/nodeToSource.js +16 -0
  878. package/packages/ai/src/lib/astScopes/nodeToSource.js.map +1 -1
  879. package/packages/ai/src/lib/astScopes/paths.js +12 -3
  880. package/packages/ai/src/lib/astScopes/paths.js.map +1 -1
  881. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
  882. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
  883. package/packages/ai/src/lib/astScopes/processExpression.js +78 -1
  884. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  885. package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
  886. package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
  887. package/packages/ai/src/lib/completionCall.js +10 -7
  888. package/packages/ai/src/lib/completionCall.js.map +1 -1
  889. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +522 -20
  890. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  891. package/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.js +9 -2
  892. package/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.js.map +1 -1
  893. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +5 -1
  894. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  895. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +25 -6
  896. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  897. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +2 -2
  898. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  899. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
  900. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
  901. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js +54 -0
  902. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js.map +1 -0
  903. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +122 -12
  904. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  905. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +15 -1
  906. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -1
  907. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +78 -17
  908. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  909. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js +34 -0
  910. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js.map +1 -0
  911. package/packages/ai/src/lib/dataStructureChunking.js +30 -11
  912. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -1
  913. package/packages/ai/src/lib/generateEntityDataStructure.js +46 -2
  914. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  915. package/packages/ai/src/lib/generateEntityScenarioData.js +89 -5
  916. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  917. package/packages/ai/src/lib/generateExecutionFlows.js +86 -2
  918. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
  919. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +242 -81
  920. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -1
  921. package/packages/ai/src/lib/isolateScopes.js +39 -3
  922. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  923. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
  924. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
  925. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
  926. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
  927. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +17 -2
  928. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  929. package/packages/analyze/index.js +2 -1
  930. package/packages/analyze/index.js.map +1 -1
  931. package/packages/analyze/src/lib/ProjectAnalyzer.js +13 -4
  932. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  933. package/packages/analyze/src/lib/asts/index.js +4 -2
  934. package/packages/analyze/src/lib/asts/index.js.map +1 -1
  935. package/packages/analyze/src/lib/asts/nodes/getNodeType.js +1 -0
  936. package/packages/analyze/src/lib/asts/nodes/getNodeType.js.map +1 -1
  937. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +68 -4
  938. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  939. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +16 -26
  940. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  941. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +0 -5
  942. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  943. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +12 -2
  944. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  945. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +9 -7
  946. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  947. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js +14 -0
  948. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js.map +1 -1
  949. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +44 -11
  950. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  951. package/packages/analyze/src/lib/files/analyzeChange.js +1 -0
  952. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  953. package/packages/analyze/src/lib/files/analyzeInitial.js +1 -0
  954. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  955. package/packages/analyze/src/lib/files/analyzeNextRoute.js +5 -1
  956. package/packages/analyze/src/lib/files/analyzeNextRoute.js.map +1 -1
  957. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +907 -0
  958. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
  959. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +5 -1
  960. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
  961. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +51 -14
  962. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  963. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +279 -19
  964. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  965. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +0 -40
  966. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -1
  967. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +1410 -956
  968. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  969. package/packages/analyze/src/lib/index.js +1 -0
  970. package/packages/analyze/src/lib/index.js.map +1 -1
  971. package/packages/database/index.js +1 -0
  972. package/packages/database/index.js.map +1 -1
  973. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  974. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  975. package/packages/database/src/lib/analysisToDb.js +1 -1
  976. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  977. package/packages/database/src/lib/branchToDb.js +1 -1
  978. package/packages/database/src/lib/branchToDb.js.map +1 -1
  979. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  980. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  981. package/packages/database/src/lib/commitToDb.js +1 -1
  982. package/packages/database/src/lib/commitToDb.js.map +1 -1
  983. package/packages/database/src/lib/fileToDb.js +1 -1
  984. package/packages/database/src/lib/fileToDb.js.map +1 -1
  985. package/packages/database/src/lib/kysely/db.js +8 -0
  986. package/packages/database/src/lib/kysely/db.js.map +1 -1
  987. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +149 -0
  988. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  989. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  990. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  991. package/packages/database/src/lib/loadAnalysis.js +7 -1
  992. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  993. package/packages/database/src/lib/loadCommits.js +23 -13
  994. package/packages/database/src/lib/loadCommits.js.map +1 -1
  995. package/packages/database/src/lib/loadEntities.js +0 -6
  996. package/packages/database/src/lib/loadEntities.js.map +1 -1
  997. package/packages/database/src/lib/loadEntity.js +5 -5
  998. package/packages/database/src/lib/loadEntity.js.map +1 -1
  999. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
  1000. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  1001. package/packages/database/src/lib/projectToDb.js +1 -1
  1002. package/packages/database/src/lib/projectToDb.js.map +1 -1
  1003. package/packages/database/src/lib/saveFiles.js +1 -1
  1004. package/packages/database/src/lib/saveFiles.js.map +1 -1
  1005. package/packages/database/src/lib/scenarioToDb.js +1 -1
  1006. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  1007. package/packages/database/src/lib/updateCommitMetadata.js +76 -90
  1008. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  1009. package/packages/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  1010. package/packages/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  1011. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  1012. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  1013. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
  1014. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
  1015. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  1016. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  1017. package/packages/types/src/enums/ProjectFramework.js +2 -0
  1018. package/packages/types/src/enums/ProjectFramework.js.map +1 -1
  1019. package/packages/utils/src/lib/fs/rsyncCopy.js +120 -4
  1020. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  1021. package/scripts/npm-post-install.cjs +34 -0
  1022. package/codeyam-cli/src/commands/detect-universal-mocks.js +0 -118
  1023. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +0 -1
  1024. package/codeyam-cli/src/commands/list.js +0 -31
  1025. package/codeyam-cli/src/commands/list.js.map +0 -1
  1026. package/codeyam-cli/src/commands/webapp-info.js +0 -146
  1027. package/codeyam-cli/src/commands/webapp-info.js.map +0 -1
  1028. package/codeyam-cli/src/utils/reviewedRules.js +0 -92
  1029. package/codeyam-cli/src/utils/reviewedRules.js.map +0 -1
  1030. package/codeyam-cli/src/utils/universal-mocks.js +0 -152
  1031. package/codeyam-cli/src/utils/universal-mocks.js.map +0 -1
  1032. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-DLqD3qNt.js +0 -1
  1033. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-C8lyxW9k.js +0 -34
  1034. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-aht4aafF.js +0 -25
  1035. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-CVtiBnY5.js +0 -3
  1036. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-DuDvi0jm.js +0 -1
  1037. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-DyFZkK0l.js +0 -1
  1038. package/codeyam-cli/src/webserver/build/client/assets/chunk-EPOLDU6W-CXRTFQ3F.js +0 -51
  1039. package/codeyam-cli/src/webserver/build/client/assets/copy-Bb-80kDT.js +0 -6
  1040. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-BdhJEx6B.js +0 -21
  1041. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +0 -1
  1042. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BBnGWYga.js +0 -1
  1043. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DavjRmOY.js +0 -6
  1044. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-D1T4TGjf.js +0 -6
  1045. package/codeyam-cli/src/webserver/build/client/assets/file-code-Dhef1kWN.js +0 -6
  1046. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-DMJ7zii9.js +0 -1
  1047. package/codeyam-cli/src/webserver/build/client/assets/files-CJ6lTdTA.js +0 -1
  1048. package/codeyam-cli/src/webserver/build/client/assets/git-CPTZZ-JZ.js +0 -15
  1049. package/codeyam-cli/src/webserver/build/client/assets/globals-CX9f-5xM.css +0 -1
  1050. package/codeyam-cli/src/webserver/build/client/assets/manifest-bba56ec1.js +0 -1
  1051. package/codeyam-cli/src/webserver/build/client/assets/memory-DuTFSyJ2.js +0 -92
  1052. package/codeyam-cli/src/webserver/build/client/assets/root-DTfSQARG.js +0 -62
  1053. package/codeyam-cli/src/webserver/build/client/assets/settings-CS5f3WzT.js +0 -1
  1054. package/codeyam-cli/src/webserver/build/client/assets/simulations-DwFIBT09.js +0 -1
  1055. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-C1v1PQzo.js +0 -1
  1056. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-aSv48UbS.js +0 -2
  1057. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DYxHZQuP.js +0 -1
  1058. package/codeyam-cli/src/webserver/build/client/assets/useToast-mBRpZPiu.js +0 -1
  1059. package/codeyam-cli/src/webserver/build/server/assets/index-TD1f-DHV.js +0 -1
  1060. package/codeyam-cli/src/webserver/build/server/assets/server-build-BQ-1XyEa.js +0 -258
  1061. package/codeyam-cli/templates/codeyam-stop-hook.sh +0 -284
  1062. package/codeyam-cli/templates/codeyam:diagnose.md +0 -803
  1063. package/codeyam-cli/templates/codeyam:memory.md +0 -403
  1064. package/codeyam-cli/templates/codeyam:new-rule.md +0 -52
  1065. package/scripts/finalize-analyzer.cjs +0 -81
@@ -743,6 +743,48 @@ function processScope({
743
743
  };
744
744
  }
745
745
 
746
+ /**
747
+ * Check if a code string contains only type declarations (type aliases, interfaces, etc.)
748
+ * that don't contribute to runtime behavior. This is used to determine if the root scope
749
+ * should be considered "empty" for scope extraction purposes.
750
+ */
751
+ function containsOnlyTypeDeclarations(code: string): boolean {
752
+ try {
753
+ const sourceFile = ts.createSourceFile(
754
+ 'temp.ts',
755
+ code,
756
+ ts.ScriptTarget.Latest,
757
+ true,
758
+ ts.ScriptKind.TS,
759
+ );
760
+
761
+ // Check each statement - if any is NOT a type-only declaration, return false
762
+ for (const statement of sourceFile.statements) {
763
+ if (
764
+ ts.isTypeAliasDeclaration(statement) ||
765
+ ts.isInterfaceDeclaration(statement) ||
766
+ ts.isEnumDeclaration(statement) ||
767
+ // Import declarations that are type-only
768
+ (ts.isImportDeclaration(statement) &&
769
+ statement.importClause?.isTypeOnly) ||
770
+ // Export declarations that are type-only
771
+ (ts.isExportDeclaration(statement) && statement.isTypeOnly)
772
+ ) {
773
+ // This is a type-only declaration, continue checking
774
+ continue;
775
+ }
776
+ // Found a non-type statement
777
+ return false;
778
+ }
779
+
780
+ // All statements are type-only (or there are no statements)
781
+ return sourceFile.statements.length > 0;
782
+ } catch {
783
+ // If parsing fails, assume it's not type-only
784
+ return false;
785
+ }
786
+ }
787
+
746
788
  /**
747
789
  * Main entry point.
748
790
  *
@@ -792,9 +834,15 @@ export default function isolateScopes(
792
834
  const jsxLimit = options?.jsxLimit ?? 10;
793
835
  processJSXForScope(isolatedScopes, generateSyntheticName, jsxLimit);
794
836
 
795
- // If the root scope text is empty and there's only one child scope,
796
- // return that child scope as the root scope
797
- if (isolatedScopes.text.trim().length === 0) {
837
+ // If the root scope text is empty (or only contains type declarations) and there's
838
+ // only one child scope, return that child scope as the root scope.
839
+ // Type declarations (type aliases, interfaces) don't contribute to runtime behavior,
840
+ // so we treat them as "empty" for scope extraction purposes.
841
+ const rootTextIsEffectivelyEmpty =
842
+ isolatedScopes.text.trim().length === 0 ||
843
+ containsOnlyTypeDeclarations(isolatedScopes.text);
844
+
845
+ if (rootTextIsEffectivelyEmpty) {
798
846
  const childScopeArray = Object.values(isolatedScopes.childScopes);
799
847
  if (childScopeArray.length === 1) {
800
848
  return childScopeArray[0];
@@ -11,6 +11,11 @@ export default function mergeJsonTypeDefinitions(
11
11
  if (!typeDef) continue;
12
12
  if (typeof typeDef === 'string') continue;
13
13
  for (const [key, value] of Object.entries(typeDef)) {
14
+ // Preserve _nullable boolean markers set by convertDotNotation
15
+ if (key === '_nullable' && typeof value === 'boolean') {
16
+ mergedDef[key] = value;
17
+ continue;
18
+ }
14
19
  if (typeof value === 'string') {
15
20
  if (!mergedDef[key]) {
16
21
  mergedDef[key] = value;
@@ -0,0 +1,118 @@
1
+ import { JsonTypeDefinition } from '~codeyam/types';
2
+
3
+ /**
4
+ * Check whether all non-`_nullable` children of an object are simple strings.
5
+ * "Leaf-like" nullable objects (all-string children) get collapsed to
6
+ * `"object | null"` so the LLM knows the field can be null.
7
+ * Objects with nested structure (object/array children) keep their shape
8
+ * so the LLM can still generate proper data when the field is truthy.
9
+ */
10
+ function isLeafLikeObject(obj: Record<string, any>): boolean {
11
+ for (const key of Object.keys(obj)) {
12
+ if (key === '_nullable') continue;
13
+ const value = obj[key];
14
+ if (typeof value !== 'string') return false;
15
+ }
16
+ return true;
17
+ }
18
+
19
+ /**
20
+ * Collapse *leaf-like* nullable objects/arrays in the data structure to type strings.
21
+ *
22
+ * When convertDotNotation marks an object or array as `_nullable: true`
23
+ * (meaning the schema had `object | undefined`, `object | null`, etc.),
24
+ * we decide whether to collapse it:
25
+ *
26
+ * - **Leaf-like** (all children are simple strings): collapse to `"object | null"`.
27
+ * Example: `{ _nullable: true, type: "string", path: "string" }` → `"object | null"`
28
+ *
29
+ * - **Rich** (has object/array children): strip `_nullable` and keep the structure
30
+ * so the LLM can generate proper nested data when the field is truthy.
31
+ * Example: `{ _nullable: true, items: [...], name: "string" }` → `{ items: [...], name: "string" }`
32
+ *
33
+ * Non-nullable objects are recursively processed but left as nested structures.
34
+ */
35
+ export default function collapseNullableObjects(
36
+ data: JsonTypeDefinition,
37
+ ): JsonTypeDefinition {
38
+ if (typeof data !== 'object' || data === null) {
39
+ return data;
40
+ }
41
+
42
+ if (Array.isArray(data)) {
43
+ return data.map((item: any) =>
44
+ typeof item === 'object' && item !== null
45
+ ? collapseNullableObjects(item as JsonTypeDefinition)
46
+ : item,
47
+ ) as any as JsonTypeDefinition;
48
+ }
49
+
50
+ const result: JsonTypeDefinition = {};
51
+
52
+ for (const key of Object.keys(data)) {
53
+ // Skip the _nullable marker itself (shouldn't appear at top level, but be safe)
54
+ if (key === '_nullable') continue;
55
+
56
+ const value = data[key];
57
+
58
+ if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
59
+ const hasNullable = (value as any)._nullable === true;
60
+ if (hasNullable && isLeafLikeObject(value as Record<string, any>)) {
61
+ // Leaf-like nullable object → collapse to type string
62
+ const childKeys = Object.keys(value as any).filter(
63
+ (k) => k !== '_nullable',
64
+ );
65
+ console.log(
66
+ `[collapseNullableObjects] collapsed "${key}" → "object | null" (leaf-like, children: [${childKeys.join(', ')}])`,
67
+ );
68
+ result[key] = 'object | null';
69
+ } else if (hasNullable) {
70
+ // Rich nullable object → strip _nullable, keep structure
71
+ const childKeys = Object.keys(value as any).filter(
72
+ (k) => k !== '_nullable',
73
+ );
74
+ console.log(
75
+ `[collapseNullableObjects] kept structure for nullable "${key}" (rich, children: [${childKeys.join(', ')}])`,
76
+ );
77
+ result[key] = collapseNullableObjects(value as JsonTypeDefinition);
78
+ } else {
79
+ // Non-nullable → recurse
80
+ result[key] = collapseNullableObjects(value as JsonTypeDefinition);
81
+ }
82
+ } else if (Array.isArray(value)) {
83
+ const hasNullable = (value as any)._nullable === true;
84
+ if (
85
+ hasNullable &&
86
+ value.length <= 1 &&
87
+ value.every((v) => typeof v === 'string')
88
+ ) {
89
+ // Leaf-like nullable array → collapse to type string
90
+ console.log(
91
+ `[collapseNullableObjects] collapsed "${key}" → "array | null" (leaf-like)`,
92
+ );
93
+ result[key] = 'array | null';
94
+ } else if (hasNullable) {
95
+ // Rich nullable array → strip _nullable, keep structure
96
+ console.log(
97
+ `[collapseNullableObjects] kept structure for nullable array "${key}" (${value.length} elements)`,
98
+ );
99
+ result[key] = value.map((item) =>
100
+ typeof item === 'object' && item !== null
101
+ ? collapseNullableObjects(item as JsonTypeDefinition)
102
+ : item,
103
+ ) as JsonTypeDefinition[];
104
+ } else {
105
+ // Non-nullable → recurse elements
106
+ result[key] = value.map((item) =>
107
+ typeof item === 'object' && item !== null
108
+ ? collapseNullableObjects(item as JsonTypeDefinition)
109
+ : item,
110
+ ) as JsonTypeDefinition[];
111
+ }
112
+ } else {
113
+ result[key] = value;
114
+ }
115
+ }
116
+
117
+ return result;
118
+ }
@@ -7,6 +7,7 @@ import {
7
7
  } from '~codeyam/types';
8
8
  import noErrorAttributes from './noErrorAttributes';
9
9
  import simplifyKeysForLLM from './simplifyKeysForLLM';
10
+ import collapseNullableObjects from './collapseNullableObjects';
10
11
 
11
12
  /**
12
13
  * Sort object keys by the size of their JSON-stringified values (smallest first).
@@ -99,11 +100,17 @@ ${JSON.stringify(defaultScenarioData.data, null, 2)}
99
100
  // while the reconcileMockDataKeys function will still match the simplified response back to original keys.
100
101
  // Then sort keys by size (smallest first) so small keys appear before large keys,
101
102
  // increasing the chance the LLM generates all keys for large schemas.
102
- const cleanedDataForMocks = structure.dataForMocks
103
- ? simplifyKeysForLLM(
104
- noErrorAttributes(structure.dataForMocks) as JsonTypeDefinition,
105
- )
103
+
104
+ const afterNoError = structure.dataForMocks
105
+ ? (noErrorAttributes(structure.dataForMocks) as JsonTypeDefinition)
106
+ : null;
107
+
108
+ const afterSimplify = afterNoError ? simplifyKeysForLLM(afterNoError) : null;
109
+
110
+ const cleanedDataForMocks = afterSimplify
111
+ ? collapseNullableObjects(afterSimplify)
106
112
  : null;
113
+
107
114
  const sortedDataForMocks =
108
115
  cleanedDataForMocks &&
109
116
  typeof cleanedDataForMocks === 'object' &&
@@ -111,6 +118,19 @@ ${JSON.stringify(defaultScenarioData.data, null, 2)}
111
118
  ? sortKeysBySize(cleanedDataForMocks as Record<string, any>)
112
119
  : cleanedDataForMocks;
113
120
 
121
+ // Log nullable-related content in final prompt JSON
122
+ if (sortedDataForMocks) {
123
+ const finalJson = JSON.stringify(sortedDataForMocks, null, 2);
124
+ const hasNullableMarker = finalJson.includes('_nullable');
125
+ const nullCollapsed = (finalJson.match(/"object \| null"/g) || []).length;
126
+ const arrayCollapsed = (finalJson.match(/"array \| null"/g) || []).length;
127
+ if (hasNullableMarker || nullCollapsed > 0 || arrayCollapsed > 0) {
128
+ console.log(
129
+ `[generateEntityScenarioDataGenerator] final prompt: ${nullCollapsed} "object | null", ${arrayCollapsed} "array | null"${hasNullableMarker ? ', WARNING: _nullable still present!' : ''}`,
130
+ );
131
+ }
132
+ }
133
+
114
134
  // When mockData has already been generated via chunks, skip it in the main call
115
135
  const mockDataSection = options?.mockDataAlreadyGenerated
116
136
  ? '## mockData Structure\nmockData has been pre-generated—return `{}` for mockData.'
@@ -36,11 +36,16 @@ export { getAllEntityNodes } from './src/lib/asts/sourceFiles/getAllEntityNodes'
36
36
  export { default as fileAnalyzerFromCode } from './src/lib/files/fileAnalyzerFromCode';
37
37
 
38
38
  export { default as isolateDataStructure } from './src/lib/files/scenarios/isolateDataStructure';
39
- export { default as mergeInDependentDataStructure } from './src/lib/files/scenarios/mergeInDependentDataStructure';
39
+ export {
40
+ default as mergeInDependentDataStructure,
41
+ DataStructureTimeoutError,
42
+ } from './src/lib/files/scenarios/mergeInDependentDataStructure';
40
43
  export { default as mergeValidatedDataStructures } from './src/lib/files/scenarios/mergeValidatedDataStructures';
41
44
 
42
45
  export { discoverDirectDependencies } from './src/lib/files/analyze/dependencyResolver';
43
46
 
47
+ export { transformationTracer } from './src/lib/files/scenarios/TransformationTracer';
48
+
44
49
  export { default as getAnalysisError } from './src/lib/utils/getAnalysisError';
45
50
  export { default as measureAndReportExecutionTime } from './src/lib/utils/measureAndReportExecutionTime';
46
51
 
@@ -46,6 +46,12 @@ export class ProjectAnalyzer {
46
46
  lib.asts.createProgramFromTsConfigPath(configPath, excludePatterns),
47
47
  );
48
48
 
49
+ if (this.programs.length === 0) {
50
+ throw new Error(
51
+ 'No TypeScript programs could be created — no tsconfig.json found',
52
+ );
53
+ }
54
+
49
55
  // Primary program is the first one (usually root) for backward compatibility
50
56
  this.program = this.programs[0];
51
57
  this.typeChecker = this.program.getTypeChecker();
@@ -334,17 +340,23 @@ export class ProjectAnalyzer {
334
340
  * Refresh the TypeScript program to pick up file changes
335
341
  */
336
342
  refreshProgram(): void {
337
- // Memory logging: Capture state before refresh
338
- const memBefore = process.memoryUsage();
339
-
340
343
  // Apply the same unapprovedPaths filtering when refreshing
341
344
  const excludePatterns =
342
345
  this.project.metadata?.unapprovedPaths?.filter(Boolean) || [];
343
346
 
344
- // Refresh all programs
345
- this.programs = this.tsConfigPaths.map((configPath) =>
346
- lib.asts.createProgramFromTsConfigPath(configPath, excludePatterns),
347
- );
347
+ // Release old programs and caches BEFORE creating new ones to reduce peak memory.
348
+ // Without this, both old (~1.7GB) and new (~1.7GB) programs coexist during creation,
349
+ // causing OOM on monorepos with multiple tsconfigs.
350
+ this.programs = [];
351
+ this.sourceFileByPath.clear();
352
+ this.typeCheckerByPath.clear();
353
+
354
+ // Create programs one at a time so each old program can be GC'd before the next
355
+ for (const configPath of this.tsConfigPaths) {
356
+ this.programs.push(
357
+ lib.asts.createProgramFromTsConfigPath(configPath, excludePatterns),
358
+ );
359
+ }
348
360
 
349
361
  // Update primary program for backward compatibility
350
362
  this.program = this.programs[0];
@@ -95,8 +95,13 @@ export function createProgramFromTsConfigPath(
95
95
  throw new Error('Could not parse tsconfig.json');
96
96
  }
97
97
 
98
- // Filter file names based on exclude patterns to reduce memory usage
99
- let fileNames = parsedCommandLine.fileNames;
98
+ // Always filter out node_modules from root files to prevent OOM on large projects.
99
+ // This only removes them as root compilation targets — TypeScript's module resolution
100
+ // still follows imports into node_modules for type info when processing source files.
101
+ let fileNames = parsedCommandLine.fileNames.filter(
102
+ (f) => !f.includes('/node_modules/'),
103
+ );
104
+
100
105
  if (excludePatterns && excludePatterns.length > 0) {
101
106
  const regexPatterns = excludePatterns
102
107
  .map((pattern) => {
@@ -39,6 +39,7 @@ export function getNodeType(node: ts.Node, sourceFile: ts.SourceFile) {
39
39
  case 'StringLiteral':
40
40
  case 'NumericLiteral':
41
41
  case 'ObjectLiteralExpression':
42
+ case 'ArrayLiteralExpression':
42
43
  nodeType = 'data';
43
44
  break;
44
45
  case 'TypeAliasDeclaration':
@@ -18,6 +18,7 @@ import {
18
18
  getCompoundConditionals,
19
19
  getChildBoundaryGatingConditions,
20
20
  getJsxRenderingUsages,
21
+ skipWorkerPool,
21
22
  } from '~codeyam/ai';
22
23
  import type { AnalysisOptions } from '../analyzeEntities';
23
24
 
@@ -271,18 +272,61 @@ export default async function prepareEntityDataStructures(
271
272
  };
272
273
 
273
274
  const entities = Array.from(allEntities);
275
+
276
+ // The worker thread creates its own ProjectAnalyzer (ts.Program) on first use,
277
+ // which takes 50-70s. For small entity counts the overhead far exceeds the actual
278
+ // processing time (<2s). Skip the worker and run on the main thread instead,
279
+ // reusing the existing ProjectAnalyzer.
280
+ const entitiesNeedingGeneration = entities.filter(
281
+ (e) =>
282
+ !e.metadata?.isolatedDataStructure || options.force || options.forceAll,
283
+ ).length;
284
+ const WORKER_ENTITY_THRESHOLD = 500;
285
+ if (entitiesNeedingGeneration < WORKER_ENTITY_THRESHOLD) {
286
+ console.log(
287
+ `CodeYam: Skipping worker thread for DS prep (${entitiesNeedingGeneration} entities < ${WORKER_ENTITY_THRESHOLD} threshold)`,
288
+ );
289
+ skipWorkerPool();
290
+ }
291
+
292
+ awsLogDebugLevel(
293
+ 1,
294
+ `Preparing data structures for ${entities.length} entities (${entitiesNeedingGeneration} need generation)...`,
295
+ );
296
+ const startTime = Date.now();
297
+ let completedCount = 0;
298
+
299
+ // Wrap processEntity to track progress
300
+ const processEntityWithProgress = async (entity: Entity) => {
301
+ await processEntity(entity);
302
+ completedCount++;
303
+ // Emit progress every 10 entities
304
+ if (completedCount % 10 === 0) {
305
+ awsLogDebugLevel(
306
+ 1,
307
+ `Preparing data structures... (${completedCount}/${entities.length})`,
308
+ );
309
+ }
310
+ };
311
+
274
312
  const sequential =
275
313
  DEBUG_SEQUENTIAL_EXECUTION || options.sequentialDataStructurePrep;
276
314
 
277
315
  if (sequential) {
278
316
  // Sequential execution for debugging - process one entity at a time
279
317
  for (const entity of entities) {
280
- await processEntity(entity);
318
+ await processEntityWithProgress(entity);
281
319
  }
282
320
  } else {
283
321
  // Parallel execution for speed
284
- await Promise.all(entities.map(processEntity));
322
+ await Promise.all(entities.map(processEntityWithProgress));
285
323
  }
324
+
325
+ const elapsed = Date.now() - startTime;
326
+ awsLogDebugLevel(
327
+ 1,
328
+ `Data structure preparation complete: ${entities.length} entities in ${elapsed}ms`,
329
+ );
286
330
  }
287
331
 
288
332
  /**
@@ -555,6 +599,42 @@ async function getEntityDataStructureAndFunctionCalls({
555
599
  },
556
600
  );
557
601
 
602
+ // Add same-file child components to dependencySchemas.
603
+ // Same-file components (e.g., AgentCard defined in the same file as AgentTranscriptsPage)
604
+ // appear in externalFunctionCalls and functionResults but NOT in importedExports or
605
+ // nodeModuleImports. Without this, their signatures are missing from dependencySchemas
606
+ // and enrichArrayTypesFromChildSignatures can't find child component field accesses.
607
+ const allDependencyNames = new Set(allDependencies.map((d) => d.name));
608
+
609
+ for (const efc of dataStructure.externalFunctionCalls) {
610
+ // Skip if already covered by importedExports or nodeModuleImports
611
+ if (allDependencyNames.has(efc.name)) continue;
612
+
613
+ const signatureSchema = getFunctionSignature(dataStructure, {
614
+ functionName: efc.name,
615
+ });
616
+
617
+ const returnValueSchema = getReturnValue(dataStructure, {
618
+ functionName: efc.name,
619
+ });
620
+
621
+ // Only add if we have signature or return value data
622
+ if (!signatureSchema && !returnValueSchema) continue;
623
+
624
+ const clonedSignatureSchema = { ...(signatureSchema ?? {}) };
625
+ const clonedReturnValueSchema = { ...(returnValueSchema ?? {}) };
626
+
627
+ const entityFilePath = entity.filePath;
628
+ dependencySchemas[entityFilePath] ||= {};
629
+ dependencySchemas[entityFilePath][efc.name] = {
630
+ signatureSchema: deduplicateFunctionSchemas(clonedSignatureSchema),
631
+ returnValueSchema: deduplicateFunctionSchemas(clonedReturnValueSchema),
632
+ usageEquivalencies: getUsageEquivalencies(dataStructure, efc.name) ?? {},
633
+ sourceEquivalencies:
634
+ getSourceEquivalencies(dataStructure, efc.name) ?? {},
635
+ };
636
+ }
637
+
558
638
  const rawReturnValue =
559
639
  getReturnValue(dataStructure, { fillInUnknowns: false }) ?? {};
560
640
 
@@ -870,9 +950,21 @@ export function determineMockedDependencies(entity: Entity) {
870
950
  // A schema with only "EntityName(): function" just indicates the entity is callable,
871
951
  // it doesn't mean there's actual return data to mock
872
952
  const hasReturnValue = hasActualReturnValueData(entityReturnValueSchema);
873
- const complexReturnValue = Object.values(
874
- entityReturnValueSchema ?? {},
875
- ).some((value) => value === 'object' || value === 'array');
953
+ // Check for complex return types (object/array), accounting for nullable types
954
+ // e.g., 'object', 'object | null', 'array | undefined' should all count as complex.
955
+ // Also detect when functionCallReturnValue has nested child properties — this
956
+ // proves it's a structured type even if its declared type is still 'unknown'.
957
+ const returnValueKeys = Object.keys(entityReturnValueSchema ?? {});
958
+ const complexReturnValue =
959
+ Object.values(entityReturnValueSchema ?? {}).some((value) => {
960
+ const baseType = value?.split(' | ')[0];
961
+ return baseType === 'object' || baseType === 'array';
962
+ }) ||
963
+ returnValueKeys.some(
964
+ (key) =>
965
+ key.includes('functionCallReturnValue.') ||
966
+ key.includes('functionCallReturnValue['),
967
+ );
876
968
 
877
969
  // Check if this is a validation function that should always be mocked
878
970
  const isValidationFn = isValidationFunction(entityName);
@@ -5,15 +5,14 @@ import {
5
5
  measureAndReportExecutionTime,
6
6
  ProjectAnalyzer,
7
7
  } from '~codeyam/analyze';
8
+ import { transformationTracer } from '../scenarios/TransformationTracer';
8
9
  import { getFileByPathSafe } from '../../utils/getFileByPath';
9
10
  import trackEntityCircularDependencies from './trackEntityCircularDependencies';
10
- import validateDependencyAnalyses from './validateDependencyAnalyses';
11
11
  import extractClassMethods from './analyzeEntities/extractClassMethods';
12
12
  import prepareDataStructures from './analyzeEntities/prepareDataStructures';
13
13
  import { strategies, asyncComplex } from './analyzeEntities/strategies';
14
14
  import {
15
15
  updateCommitMetadata,
16
- updateFreshAnalysisMetadata,
17
16
  updateFreshAnalysisStatus,
18
17
  upsertAnalyses,
19
18
  upsertEntities,
@@ -262,40 +261,11 @@ export default async function analyzeEntities({
262
261
  }
263
262
  }
264
263
 
265
- awsLog(`CodeYam: analyzeEntities: Running patch-up dependency validation`);
266
- for (const analysis of analyses) {
267
- if (!analysis.entity) {
268
- throw new Error(
269
- `CodeYam: analyzeEntities: Internal error: Analysis entity is missing for ${analysis.filePath}:${analysis.entityName}.`,
270
- );
271
- }
272
-
273
- // Validate dependencies, which modifies analysis.metadata.dependentAnalyses
274
- validateDependencyAnalyses({ analysis, entity: analysis.entity, context });
275
-
276
- // Carefully update only the metadata field
277
- if (analysis.id) {
278
- const updatedMetadata = await updateFreshAnalysisMetadata(
279
- analysis.id,
280
- (metadata) => {
281
- metadata.dependentAnalyses =
282
- analysis.metadata?.dependentAnalyses || [];
283
- },
284
- );
285
-
286
- if (updatedMetadata) {
287
- analysis.metadata = updatedMetadata;
288
- } else {
289
- console.warn(
290
- `CodeYam: analyzeEntities: Failed to update metadata for analysis ${analysis.id}`,
291
- );
292
- }
293
- } else {
294
- console.warn(
295
- `CodeYam: analyzeEntities: Analysis ${analysis.filePath}:${analysis.entityName} has no ID, skipping metadata update`,
296
- );
297
- }
298
- }
264
+ // NOTE: patch-up dependency validation loop was removed here.
265
+ // analysis.metadata.dependentAnalyses is already populated by validateDependencyAnalyses
266
+ // inside analyzeEntity() (Call #1) and persisted via upsertAnalysesWithScenarios at the
267
+ // end of analyzeEntity, then again by upsertAnalyses in analyzeOneEntityKey. Re-validating
268
+ // every analysis from scratch was redundant work — especially costly for large projects.
299
269
 
300
270
  const newlyReady = await updateReadyAnalyses();
301
271
  if (newlyReady.length > 0) {
@@ -307,6 +277,18 @@ export default async function analyzeEntities({
307
277
  awsLog(
308
278
  `CodeYam: analyzeEntities: Analysis completed with ${analyses.length} analyses`,
309
279
  );
280
+
281
+ // Flush transformation trace if tracing is enabled
282
+ // Wrapped in try/catch because trace data can exceed V8's max string length
283
+ // for large projects, and we must not crash the analysis process over tracing.
284
+ try {
285
+ transformationTracer.flush();
286
+ } catch (e) {
287
+ console.warn(
288
+ `CodeYam Warning: Failed to flush transformation trace: ${e.message}`,
289
+ );
290
+ }
291
+
310
292
  return analyses;
311
293
 
312
294
  // PHASE 3: Pure graph traversal
@@ -100,12 +100,6 @@ export function getCandidatesReadyForCapture(
100
100
  continue;
101
101
  }
102
102
 
103
- // Skip notExported entities - they can't be imported into the simulation
104
- // environment and will always fail capture. Don't mark them as ready.
105
- if (candidate.entity?.metadata?.notExported) {
106
- continue;
107
- }
108
-
109
103
  // Get all transitive dependencies
110
104
  const candidateKey = `${candidate.filePath}:${candidate.entityName}`;
111
105
  const { missingDependencies } = getTransitiveDependencies(
@@ -94,12 +94,15 @@ export default async function findOrCreateEntity({
94
94
  try {
95
95
  code = fileAnalyzer.getEntityCode(localEntityName);
96
96
  } catch (e) {
97
- console.log('CodeYam Error: could not get entity code', {
98
- filePath: file.path,
99
- localEntityName,
100
- entityName,
101
- error: e,
102
- });
97
+ console.log(
98
+ `CodeYam Error: Could not extract code for "${localEntityName}" from ${file.path} — export not found in file, may have been moved or renamed during refactoring`,
99
+ {
100
+ filePath: file.path,
101
+ localEntityName,
102
+ entityName,
103
+ error: String(e),
104
+ },
105
+ );
103
106
  return null;
104
107
  }
105
108
  const sha = generateSha(file.path, entityName, code);
@@ -108,6 +111,7 @@ export default async function findOrCreateEntity({
108
111
  entity = await loadEntity({
109
112
  projectId: project.id,
110
113
  sha,
114
+ silent: true, // Entity not existing yet is the normal path — we create it below
111
115
  });
112
116
  }
113
117
 
@@ -138,6 +142,18 @@ export default async function findOrCreateEntity({
138
142
  break;
139
143
  }
140
144
  }
145
+
146
+ // Mark previous versions as superseded
147
+ const entitiesToSupersede = previousEntities.filter(
148
+ (e) => !e.metadata?.isSuperseded,
149
+ );
150
+ if (entitiesToSupersede.length > 0) {
151
+ for (const prev of entitiesToSupersede) {
152
+ prev.metadata = prev.metadata || {};
153
+ prev.metadata.isSuperseded = true;
154
+ }
155
+ await upsertEntities(entitiesToSupersede);
156
+ }
141
157
  }
142
158
 
143
159
  entity = {
@@ -111,18 +111,15 @@ export default async function gatherEntityMap({
111
111
  });
112
112
 
113
113
  if (!importedEntity) {
114
- console.log(
115
- `CodeYam Error: Entity not found while gathering entity map: ${importedFile.path}: ${importedExportName}`,
116
- {
117
- entityName: entity.name,
118
- entityFilePath: entity.filePath,
119
- importedFilePath: importedFile.path,
120
- importedExportName: importedExportName,
121
- },
122
- );
123
- throw new Error(
124
- `Entity not found while gathering entity map: ${importedFile.path}: ${importedExport.name}`,
125
- );
114
+ const msg = [
115
+ `Entity not found: "${importedExportName}" in ${importedFile.path}`,
116
+ ` While analyzing dependencies of: ${entity.name} (${entity.filePath})`,
117
+ ` This usually means "${importedExportName}" was moved or renamed but`,
118
+ ` ${entity.filePath} still has stale import metadata referencing the old location.`,
119
+ ` Fix: Update or re-analyze ${entity.filePath} so its importedExports reflect current code.`,
120
+ ].join('\n');
121
+ console.log(`CodeYam Error: ${msg}`);
122
+ throw new Error(msg);
126
123
  }
127
124
 
128
125
  // Add newly created entity to context