@codeyam/codeyam-cli 0.1.0-staging.2a88920 → 0.1.0-staging.4813bf3

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 (357) hide show
  1. package/analyzer-template/.build-info.json +7 -7
  2. package/analyzer-template/log.txt +3 -3
  3. package/analyzer-template/package.json +3 -3
  4. package/analyzer-template/packages/ai/index.ts +1 -0
  5. package/analyzer-template/packages/ai/package.json +2 -2
  6. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +23 -1
  7. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
  8. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +101 -0
  9. package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
  10. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +6 -0
  11. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +330 -9
  12. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +5 -1
  13. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +11 -2
  14. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +2 -2
  15. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
  16. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +126 -11
  17. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +20 -1
  18. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +84 -19
  19. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +33 -15
  20. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +58 -3
  21. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +299 -5
  22. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +38 -2
  23. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +359 -142
  24. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +51 -3
  25. package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
  26. package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
  27. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +24 -4
  28. package/analyzer-template/packages/analyze/index.ts +2 -0
  29. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +69 -3
  30. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +5 -0
  31. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1315 -0
  32. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +4 -0
  33. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +9 -1
  34. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +194 -15
  35. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +260 -22
  36. package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
  37. package/analyzer-template/packages/database/package.json +1 -1
  38. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  39. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  40. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  41. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  42. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  43. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  44. package/analyzer-template/packages/database/src/lib/kysely/db.ts +6 -0
  45. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +1 -1
  46. package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
  47. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  48. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  49. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  50. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  51. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
  52. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
  53. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
  54. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
  55. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
  56. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
  57. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
  58. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
  59. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
  60. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
  61. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
  62. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
  63. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -0
  64. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  65. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +3 -0
  66. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  67. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +1 -1
  68. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
  69. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
  70. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  71. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  72. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
  73. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
  74. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
  75. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
  76. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
  77. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
  78. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  79. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  80. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +7 -0
  81. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  82. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  83. package/analyzer-template/project/constructMockCode.ts +36 -1
  84. package/analyzer-template/project/writeMockDataTsx.ts +174 -12
  85. package/analyzer-template/project/writeScenarioComponents.ts +60 -12
  86. package/analyzer-template/project/writeSimpleRoot.ts +21 -11
  87. package/background/src/lib/local/createLocalAnalyzer.js +1 -1
  88. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  89. package/background/src/lib/virtualized/project/constructMockCode.js +30 -1
  90. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  91. package/background/src/lib/virtualized/project/writeMockDataTsx.js +156 -8
  92. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  93. package/background/src/lib/virtualized/project/writeScenarioComponents.js +60 -15
  94. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  95. package/background/src/lib/virtualized/project/writeSimpleRoot.js +21 -11
  96. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  97. package/codeyam-cli/scripts/apply-setup.js +180 -0
  98. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  99. package/codeyam-cli/src/cli.js +2 -0
  100. package/codeyam-cli/src/cli.js.map +1 -1
  101. package/codeyam-cli/src/codeyam-cli.js +18 -2
  102. package/codeyam-cli/src/codeyam-cli.js.map +1 -1
  103. package/codeyam-cli/src/commands/analyze.js +4 -2
  104. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  105. package/codeyam-cli/src/commands/baseline.js +2 -0
  106. package/codeyam-cli/src/commands/baseline.js.map +1 -1
  107. package/codeyam-cli/src/commands/debug.js +2 -0
  108. package/codeyam-cli/src/commands/debug.js.map +1 -1
  109. package/codeyam-cli/src/commands/default.js +31 -20
  110. package/codeyam-cli/src/commands/default.js.map +1 -1
  111. package/codeyam-cli/src/commands/detect-universal-mocks.js +2 -0
  112. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +1 -1
  113. package/codeyam-cli/src/commands/init.js +49 -257
  114. package/codeyam-cli/src/commands/init.js.map +1 -1
  115. package/codeyam-cli/src/commands/memory.js +17 -26
  116. package/codeyam-cli/src/commands/memory.js.map +1 -1
  117. package/codeyam-cli/src/commands/recapture.js +2 -0
  118. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  119. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  120. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  121. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  122. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  123. package/codeyam-cli/src/commands/test-startup.js +2 -0
  124. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  125. package/codeyam-cli/src/commands/verify.js +14 -2
  126. package/codeyam-cli/src/commands/verify.js.map +1 -1
  127. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +128 -86
  128. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  129. package/codeyam-cli/src/utils/analyzer.js +7 -0
  130. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  131. package/codeyam-cli/src/utils/backgroundServer.js +5 -0
  132. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  133. package/codeyam-cli/src/utils/generateReport.js +2 -2
  134. package/codeyam-cli/src/utils/install-skills.js +57 -54
  135. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  136. package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
  137. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
  138. package/codeyam-cli/src/utils/progress.js +7 -0
  139. package/codeyam-cli/src/utils/progress.js.map +1 -1
  140. package/codeyam-cli/src/utils/queue/job.js +4 -0
  141. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  142. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  143. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  144. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
  145. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
  146. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +230 -0
  147. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
  148. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
  149. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
  150. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
  151. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
  152. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
  153. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
  154. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
  155. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
  156. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +75 -0
  157. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
  158. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +378 -0
  159. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
  160. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +115 -0
  161. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
  162. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
  163. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
  164. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
  165. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
  166. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
  167. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
  168. package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
  169. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
  170. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
  171. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
  172. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
  173. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
  174. package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
  175. package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
  176. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
  177. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
  178. package/codeyam-cli/src/utils/rules/index.js +1 -0
  179. package/codeyam-cli/src/utils/rules/index.js.map +1 -1
  180. package/codeyam-cli/src/utils/rules/parser.js +2 -25
  181. package/codeyam-cli/src/utils/rules/parser.js.map +1 -1
  182. package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
  183. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
  184. package/codeyam-cli/src/utils/rules/staleness.js +16 -11
  185. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -1
  186. package/codeyam-cli/src/utils/serverState.js +37 -10
  187. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  188. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +21 -44
  189. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  190. package/codeyam-cli/src/webserver/app/lib/database.js +15 -3
  191. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  192. package/codeyam-cli/src/webserver/backgroundServer.js +24 -0
  193. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  194. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CA3JxPb7.js +1 -0
  195. package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-DsN1wKrm.js → EntityItem-B86KKU7e.js} +1 -1
  196. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-DLqD3qNt.js → EntityTypeBadge-B5ctlSYt.js} +1 -1
  197. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-Ba2JVPzP.js → EntityTypeIcon-BqY8gDAW.js} +1 -1
  198. package/codeyam-cli/src/webserver/build/client/assets/{InlineSpinner-C8lyxW9k.js → InlineSpinner-ClaLpuOo.js} +1 -1
  199. package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-aht4aafF.js → InteractivePreview-BDhPilK7.js} +2 -2
  200. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-CVtiBnY5.js → LibraryFunctionPreview-VeqEBv9v.js} +1 -1
  201. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-B0GLXMsr.js → LoadingDots-Bs7Nn1Jr.js} +1 -1
  202. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-xgeCVgSM.js → LogViewer-Bm3PmcCz.js} +1 -1
  203. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-OApQuNyq.js → ReportIssueModal-CgMEzchJ.js} +3 -8
  204. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-DuDvi0jm.js → SafeScreenshot-Gq3Ocjo6.js} +1 -1
  205. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-DzccYyI8.js → ScenarioViewer-CBui0id_.js} +2 -2
  206. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-DyFZkK0l.js → TruncatedFilePath-CiwXDxLh.js} +1 -1
  207. package/codeyam-cli/src/webserver/build/client/assets/{_index-BwqWJOgH.js → _index-B3TDXxnk.js} +1 -1
  208. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-BwavGCpm.js → activity.(_tab)-BtBFH820.js} +6 -11
  209. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-CN61MOMa.js +11 -0
  210. package/codeyam-cli/src/webserver/build/client/assets/api.agent-transcripts-l0sNRNKZ.js +1 -0
  211. package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
  212. package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
  213. package/codeyam-cli/src/webserver/build/client/assets/book-open-PttOB2SF.js +6 -0
  214. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-Cx24_aWc.js → chevron-down-TJp6ofnp.js} +1 -1
  215. package/codeyam-cli/src/webserver/build/client/assets/{chunk-EPOLDU6W-CXRTFQ3F.js → chunk-JZWAC4HX-JE9ZIoBl.js} +12 -12
  216. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-BOARzkeR.js → circle-check-CXhHQYrI.js} +1 -1
  217. package/codeyam-cli/src/webserver/build/client/assets/copy-6y9ALfGT.js +11 -0
  218. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-BdhJEx6B.js → createLucideIcon-Ca9fAY46.js} +1 -1
  219. package/codeyam-cli/src/webserver/build/client/assets/{dev.empty-BBnGWYga.js → dev.empty-C0epRiVn.js} +1 -1
  220. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-BJUiQqZF.js → entity._sha._-BVnB8a9L.js} +10 -10
  221. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.fullscreen-DavjRmOY.js → entity._sha.scenarios._scenarioId.fullscreen-CBoafmVs.js} +1 -1
  222. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.create-scenario-D1T4TGjf.js → entity._sha_.create-scenario-DGgZjdFg.js} +1 -1
  223. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CTBG2mmz.js → entity._sha_.edit._scenarioId-38yPijoD.js} +1 -1
  224. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-CS2cb_eZ.js → entry.client-BSHEfydn.js} +1 -1
  225. package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DMJ7zii9.js → fileTableUtils-DCPhhSMo.js} +1 -1
  226. package/codeyam-cli/src/webserver/build/client/assets/{files-CJ6lTdTA.js → files-0N0YJQv7.js} +1 -1
  227. package/codeyam-cli/src/webserver/build/client/assets/{git-CPTZZ-JZ.js → git-DXnyr8uP.js} +1 -1
  228. package/codeyam-cli/src/webserver/build/client/assets/globals-CKT08Djd.css +1 -0
  229. package/codeyam-cli/src/webserver/build/client/assets/{index-lzqtyFU8.js → index-CcsFv748.js} +1 -1
  230. package/codeyam-cli/src/webserver/build/client/assets/{index-B1h680n5.js → index-ChN9-fAY.js} +1 -1
  231. package/codeyam-cli/src/webserver/build/client/assets/labs-BLJ7HxOC.js +1 -0
  232. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-B7B9V-bu.js → loader-circle-CTqLEAGU.js} +1 -1
  233. package/codeyam-cli/src/webserver/build/client/assets/manifest-b171b9d3.js +1 -0
  234. package/codeyam-cli/src/webserver/build/client/assets/memory-CCQd4aZA.js +78 -0
  235. package/codeyam-cli/src/webserver/build/client/assets/pause-D6vreykR.js +11 -0
  236. package/codeyam-cli/src/webserver/build/client/assets/root-CHhiHoo_.js +62 -0
  237. package/codeyam-cli/src/webserver/build/client/assets/{search-CxXUmBSd.js → search-B8VUL8nl.js} +1 -1
  238. package/codeyam-cli/src/webserver/build/client/assets/settings-BejnUJ6R.js +1 -0
  239. package/codeyam-cli/src/webserver/build/client/assets/{simulations-DwFIBT09.js → simulations-CPoAg7Zo.js} +1 -1
  240. package/codeyam-cli/src/webserver/build/client/assets/terminal-BrCP7uQo.js +11 -0
  241. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-B6LgvRJg.js → triangle-alert-BZz2NjYa.js} +1 -1
  242. package/codeyam-cli/src/webserver/build/client/assets/{useCustomSizes-C1v1PQzo.js → useCustomSizes-DNwUduNu.js} +1 -1
  243. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-aSv48UbS.js → useLastLogLine-COky1GVF.js} +1 -1
  244. package/codeyam-cli/src/webserver/build/client/assets/{useReportContext-DYxHZQuP.js → useReportContext-CpZgwliL.js} +1 -1
  245. package/codeyam-cli/src/webserver/build/client/assets/{useToast-mBRpZPiu.js → useToast-Bv9JFvUO.js} +1 -1
  246. package/codeyam-cli/src/webserver/build/server/assets/{index-BM6TDT1Y.js → index-8Fv-lH1-.js} +1 -1
  247. package/codeyam-cli/src/webserver/build/server/assets/server-build-Akn3iYFP.js +257 -0
  248. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  249. package/codeyam-cli/src/webserver/build-info.json +5 -5
  250. package/codeyam-cli/templates/{codeyam:debug.md → codeyam-debug.md} +1 -1
  251. package/codeyam-cli/templates/codeyam-diagnose.md +481 -0
  252. package/codeyam-cli/templates/codeyam-memory-hook.sh +19 -20
  253. package/codeyam-cli/templates/codeyam-memory.md +392 -0
  254. package/codeyam-cli/templates/{codeyam:new-rule.md → codeyam-new-rule.md} +2 -2
  255. package/codeyam-cli/templates/{codeyam:setup.md → codeyam-setup.md} +13 -1
  256. package/codeyam-cli/templates/{codeyam:sim.md → codeyam-sim.md} +1 -1
  257. package/codeyam-cli/templates/{codeyam:test.md → codeyam-test.md} +1 -1
  258. package/codeyam-cli/templates/{codeyam:verify.md → codeyam-verify.md} +1 -1
  259. package/codeyam-cli/templates/rule-notification-hook.py +56 -0
  260. package/codeyam-cli/templates/rule-reflection-hook.py +554 -87
  261. package/codeyam-cli/templates/rules-instructions.md +63 -24
  262. package/package.json +2 -2
  263. package/packages/ai/index.js +1 -1
  264. package/packages/ai/index.js.map +1 -1
  265. package/packages/ai/src/lib/analyzeScope.js +21 -1
  266. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  267. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
  268. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
  269. package/packages/ai/src/lib/astScopes/processExpression.js +78 -1
  270. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  271. package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
  272. package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
  273. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +262 -8
  274. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  275. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +5 -1
  276. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  277. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +11 -2
  278. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  279. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +2 -2
  280. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  281. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
  282. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
  283. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +113 -11
  284. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  285. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +15 -1
  286. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -1
  287. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +78 -17
  288. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  289. package/packages/ai/src/lib/dataStructureChunking.js +26 -11
  290. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -1
  291. package/packages/ai/src/lib/generateEntityDataStructure.js +46 -2
  292. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  293. package/packages/ai/src/lib/generateEntityScenarioData.js +212 -3
  294. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  295. package/packages/ai/src/lib/generateExecutionFlows.js +16 -2
  296. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
  297. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +242 -81
  298. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -1
  299. package/packages/ai/src/lib/isolateScopes.js +39 -3
  300. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  301. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
  302. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
  303. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
  304. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
  305. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +17 -2
  306. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  307. package/packages/analyze/index.js +1 -0
  308. package/packages/analyze/index.js.map +1 -1
  309. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +52 -2
  310. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  311. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +3 -0
  312. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  313. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +880 -0
  314. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
  315. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +5 -1
  316. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
  317. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +9 -1
  318. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  319. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +116 -13
  320. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  321. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +231 -22
  322. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  323. package/packages/analyze/src/lib/index.js +1 -0
  324. package/packages/analyze/src/lib/index.js.map +1 -1
  325. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  326. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  327. package/packages/database/src/lib/analysisToDb.js +1 -1
  328. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  329. package/packages/database/src/lib/branchToDb.js +1 -1
  330. package/packages/database/src/lib/branchToDb.js.map +1 -1
  331. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  332. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  333. package/packages/database/src/lib/commitToDb.js +1 -1
  334. package/packages/database/src/lib/commitToDb.js.map +1 -1
  335. package/packages/database/src/lib/fileToDb.js +1 -1
  336. package/packages/database/src/lib/fileToDb.js.map +1 -1
  337. package/packages/database/src/lib/kysely/db.js +3 -0
  338. package/packages/database/src/lib/kysely/db.js.map +1 -1
  339. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  340. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  341. package/packages/database/src/lib/projectToDb.js +1 -1
  342. package/packages/database/src/lib/projectToDb.js.map +1 -1
  343. package/packages/database/src/lib/saveFiles.js +1 -1
  344. package/packages/database/src/lib/saveFiles.js.map +1 -1
  345. package/packages/database/src/lib/scenarioToDb.js +1 -1
  346. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  347. package/scripts/finalize-analyzer.cjs +8 -76
  348. package/codeyam-cli/src/webserver/build/client/assets/copy-Bb-80kDT.js +0 -6
  349. package/codeyam-cli/src/webserver/build/client/assets/file-code-Dhef1kWN.js +0 -6
  350. package/codeyam-cli/src/webserver/build/client/assets/globals-D3yhhV8x.css +0 -1
  351. package/codeyam-cli/src/webserver/build/client/assets/manifest-a78b90a2.js +0 -1
  352. package/codeyam-cli/src/webserver/build/client/assets/memory--GCbFsBE.js +0 -92
  353. package/codeyam-cli/src/webserver/build/client/assets/root-eVAaavTS.js +0 -62
  354. package/codeyam-cli/src/webserver/build/client/assets/settings-CS5f3WzT.js +0 -1
  355. package/codeyam-cli/src/webserver/build/server/assets/server-build-dYC34MHw.js +0 -257
  356. package/codeyam-cli/templates/codeyam:diagnose.md +0 -803
  357. package/codeyam-cli/templates/codeyam:memory.md +0 -341
@@ -246,7 +246,11 @@ export default function enrichArrayTypesFromChildSignatures(
246
246
  // Also check if the array path ends with the local variable name
247
247
  // e.g., useLoaderData().functionCallReturnValue.entities ends with .entities
248
248
  const arrayEndsWithLocalVar = arrayPath.endsWith(`.${localVarName}`);
249
+ // Full-path usageEquivalencies (e.g., from same-file child components) use
250
+ // the complete call path as the local var name, which matches arrayPath exactly
251
+ const exactPathMatch = localVarName === arrayPath;
249
252
  if (
253
+ !exactPathMatch &&
250
254
  !couldBeDerivedFrom(localVarName, entityName) &&
251
255
  !arrayEndsWithLocalVar
252
256
  ) {
@@ -574,6 +574,12 @@ export default function gatherDataForMocks(
574
574
  ) {
575
575
  // Build schema indexes ONCE from all dependency schemas combined.
576
576
  // This avoids rebuilding indexes (~1-2 seconds for 18k keys) for each processCall.
577
+ //
578
+ // IMPORTANT: We must preprocess schemas BEFORE building indexes!
579
+ // The schemas contain .functionCallReturnValue paths that get stripped during processing.
580
+ // If we build indexes from original paths, lookups with preprocessed paths will fail.
581
+ // Example: 'hook().functionCallReturnValue.x.length' → index maps 'hook().functionCallReturnValue.x' → ['length']
582
+ // But preprocessed path 'hook().x.length' looks for 'hook().x' which doesn't exist in the index.
577
583
  const allSchemaKeys: Record<string, string> = {};
578
584
  if (dependencySchemas) {
579
585
  for (const filePath in dependencySchemas) {
@@ -581,7 +587,9 @@ export default function gatherDataForMocks(
581
587
  const schema =
582
588
  dependencySchemas[filePath][entityName]?.returnValueSchema;
583
589
  if (schema) {
584
- Object.assign(allSchemaKeys, schema);
590
+ // Preprocess each schema to remove .functionCallReturnValue before collecting
591
+ const preprocessed = preprocessSchemaForMocks(schema);
592
+ Object.assign(allSchemaKeys, preprocessed);
585
593
  }
586
594
  }
587
595
  }
@@ -16,6 +16,7 @@ import { awsLog } from '~codeyam/utils';
16
16
  import gatherDataForMocks from './gatherDataForMocks';
17
17
  import enrichArrayTypesFromChildSignatures from './enrichArrayTypesFromChildSignatures';
18
18
  import enrichUnknownTypesFromSourceEquivalencies from './enrichUnknownTypesFromSourceEquivalencies';
19
+ import { transformationTracer } from './TransformationTracer';
19
20
  // import propagateArrayItemSchemas from './propagateArrayItemSchemas';
20
21
  export interface GenerateDataStructureArgs {
21
22
  entity: Entity;
@@ -163,6 +164,25 @@ export default function generateDataStructure({
163
164
  return acc;
164
165
  }, {} as ReadonlyAnalysisMap);
165
166
 
167
+ // Include same-file child components in nonMockedDependentAnalyses.
168
+ // Same-file components (e.g., AgentCard defined in the same file as AgentTranscriptsPage)
169
+ // are NOT in importedExports, so the reduce above never includes them.
170
+ // But they ARE in dependentAnalyses and their full signatureSchema (with all prop fields)
171
+ // needs to be merged into the parent's dependencySchemas for array enrichment to work.
172
+
173
+ const sameFileAnalyses = dependentAnalyses[entity.filePath];
174
+ if (sameFileAnalyses) {
175
+ for (const name in sameFileAnalyses) {
176
+ if (name === entity.name) continue;
177
+ if (nonMockedDependentAnalyses[entity.filePath]?.[name]) continue;
178
+ const childAnalysis = sameFileAnalyses[name];
179
+ if (childAnalysis?.entityType === 'visual') {
180
+ nonMockedDependentAnalyses[entity.filePath] ||= {};
181
+ nonMockedDependentAnalyses[entity.filePath][name] = childAnalysis;
182
+ }
183
+ }
184
+ }
185
+
166
186
  // For non-mocked child components (like visual components), include their mocked
167
187
  // dependencies in allImportedExports. This ensures that when a parent component
168
188
  // renders a child that uses the same hook with different destructure patterns,
@@ -441,6 +461,18 @@ export default function generateDataStructure({
441
461
 
442
462
  const { isolatedDataStructure } = entity.metadata;
443
463
 
464
+ // Transformation tracing: start entity and capture isolated data structure
465
+ transformationTracer.startEntity({
466
+ name: entity.name,
467
+ entityType: entity.entityType,
468
+ filePath: entity.filePath,
469
+ });
470
+ transformationTracer.snapshot(entity.name, 'isolated', {
471
+ signatureSchema: isolatedDataStructure.signatureSchema,
472
+ returnValueSchema: isolatedDataStructure.returnValueSchema,
473
+ dependencySchemas: isolatedDataStructure.dependencySchemas,
474
+ });
475
+
444
476
  const mergedDataStructure = mergeInDependentDataStructure({
445
477
  importedExports: allImportedExports,
446
478
  dependentAnalyses: nonMockedDependentAnalyses,
@@ -458,6 +490,13 @@ export default function generateDataStructure({
458
490
  mergedDataStructure.environmentVariables =
459
491
  isolatedDataStructure.environmentVariables || [];
460
492
 
493
+ // Transformation tracing: capture merged data structure
494
+ transformationTracer.snapshot(entity.name, 'merged', {
495
+ signatureSchema: mergedDataStructure.signatureSchema,
496
+ returnValueSchema: mergedDataStructure.returnValueSchema,
497
+ dependencySchemas: mergedDataStructure.dependencySchemas,
498
+ });
499
+
461
500
  // Merge collected child dependency schemas into mergedDataStructure.
462
501
  // This ensures that when gatherDataForMocks looks up schemas for child imports,
463
502
  // the child's schemas are available.
@@ -511,6 +550,13 @@ export default function generateDataStructure({
511
550
  }
512
551
  }
513
552
 
553
+ // Transformation tracing: capture after child schemas merged
554
+ transformationTracer.snapshot(entity.name, 'childSchemasMerged', {
555
+ signatureSchema: mergedDataStructure.signatureSchema,
556
+ returnValueSchema: mergedDataStructure.returnValueSchema,
557
+ dependencySchemas: mergedDataStructure.dependencySchemas,
558
+ });
559
+
514
560
  // console.info(
515
561
  // 'CODEYAM DEBUG: end merge',
516
562
  // JSON.stringify(
@@ -533,32 +579,111 @@ export default function generateDataStructure({
533
579
 
534
580
  // Deduplicate function schemas in the merged data structure
535
581
  // The merge process might introduce duplicates even if individual schemas were clean
582
+ // Trace deduplication of signatureSchema
583
+ const sigBefore = { ...mergedDataStructure.signatureSchema };
536
584
  mergedDataStructure.signatureSchema = deduplicateFunctionSchemas(
537
585
  mergedDataStructure.signatureSchema,
538
586
  );
587
+ transformationTracer.traceSchemaTransformResult(
588
+ entity.name,
589
+ 'deduplicateFunctionSchemas',
590
+ sigBefore,
591
+ mergedDataStructure.signatureSchema,
592
+ { schemaType: 'signature' },
593
+ );
594
+
595
+ // Trace deduplication of returnValueSchema
596
+ const rvBefore = { ...mergedDataStructure.returnValueSchema };
539
597
  mergedDataStructure.returnValueSchema = deduplicateFunctionSchemas(
540
598
  mergedDataStructure.returnValueSchema,
541
599
  );
600
+ transformationTracer.traceSchemaTransformResult(
601
+ entity.name,
602
+ 'deduplicateFunctionSchemas',
603
+ rvBefore,
604
+ mergedDataStructure.returnValueSchema,
605
+ { schemaType: 'returnValue' },
606
+ );
542
607
 
543
- // Also deduplicate dependency schemas
608
+ // Also deduplicate dependency schemas and clear known attributes
544
609
  for (const filePath in mergedDataStructure.dependencySchemas) {
545
- for (const entityName in mergedDataStructure.dependencySchemas[
610
+ for (const depEntityName in mergedDataStructure.dependencySchemas[
546
611
  filePath
547
612
  ]) {
548
613
  const depSchema =
549
- mergedDataStructure.dependencySchemas[filePath][entityName];
614
+ mergedDataStructure.dependencySchemas[filePath][depEntityName];
615
+
616
+ // Trace deduplication of dependency signatureSchema
617
+ const depSigBefore = { ...depSchema.signatureSchema };
550
618
  depSchema.signatureSchema = deduplicateFunctionSchemas(
551
619
  depSchema.signatureSchema,
552
620
  );
621
+ transformationTracer.traceSchemaTransformResult(
622
+ entity.name,
623
+ 'deduplicateFunctionSchemas',
624
+ depSigBefore,
625
+ depSchema.signatureSchema,
626
+ { filePath, dependencyName: depEntityName, schemaType: 'signature' },
627
+ );
628
+
629
+ // Trace deduplication of dependency returnValueSchema
630
+ const depRvBefore = { ...depSchema.returnValueSchema };
553
631
  depSchema.returnValueSchema = deduplicateFunctionSchemas(
554
632
  depSchema.returnValueSchema,
555
633
  );
634
+ transformationTracer.traceSchemaTransformResult(
635
+ entity.name,
636
+ 'deduplicateFunctionSchemas',
637
+ depRvBefore,
638
+ depSchema.returnValueSchema,
639
+ {
640
+ filePath,
641
+ dependencyName: depEntityName,
642
+ schemaType: 'returnValue',
643
+ },
644
+ );
645
+
646
+ // Fill in type gaps BEFORE clearing attributes, so evidence like .includes()
647
+ // is used for type inference before being deleted
648
+
649
+ depSchema.signatureSchema = fillInDirectSchemaGapsAndUnknowns({
650
+ schema: depSchema.signatureSchema,
651
+ });
556
652
 
557
- clearAttributesFromMapping(depSchema.signatureSchema);
558
- clearAttributesFromMapping(depSchema.returnValueSchema);
653
+ depSchema.returnValueSchema = fillInDirectSchemaGapsAndUnknowns({
654
+ schema: depSchema.returnValueSchema,
655
+ });
656
+
657
+ // Trace clearAttributesFromMapping on dependency schemas
658
+ transformationTracer.traceSchemaTransform(
659
+ entity.name,
660
+ 'clearAttributesFromMapping',
661
+ depSchema.signatureSchema,
662
+ clearAttributesFromMapping,
663
+ { filePath, dependencyName: depEntityName, schemaType: 'signature' },
664
+ );
665
+
666
+ transformationTracer.traceSchemaTransform(
667
+ entity.name,
668
+ 'clearAttributesFromMapping',
669
+ depSchema.returnValueSchema,
670
+ clearAttributesFromMapping,
671
+ {
672
+ filePath,
673
+ dependencyName: depEntityName,
674
+ schemaType: 'returnValue',
675
+ },
676
+ );
559
677
  }
560
678
  }
561
679
 
680
+ // Transformation tracing: capture after deduplication
681
+ transformationTracer.snapshot(entity.name, 'deduplicated', {
682
+ signatureSchema: mergedDataStructure.signatureSchema,
683
+ returnValueSchema: mergedDataStructure.returnValueSchema,
684
+ dependencySchemas: mergedDataStructure.dependencySchemas,
685
+ });
686
+
562
687
  analysis.metadata ||= {};
563
688
  analysis.metadata.mergedDataStructure = mergedDataStructure;
564
689
 
@@ -567,23 +692,49 @@ export default function generateDataStructure({
567
692
  // expects survey.updatedAt, the array element type includes updatedAt.
568
693
  // Uses usageEquivalencies to trace data flow and only enrich arrays with fields
569
694
  // from children that actually receive elements from that specific array.
570
- enrichArrayTypesFromChildSignatures(
571
- allImportedExports,
695
+ transformationTracer.traceDependencySchemaChanges(
696
+ entity.name,
697
+ 'enrichArrayTypesFromChildSignatures',
572
698
  mergedDataStructure.dependencySchemas,
573
- mergedDataStructure.usageEquivalencies,
699
+ () =>
700
+ enrichArrayTypesFromChildSignatures(
701
+ allImportedExports,
702
+ mergedDataStructure.dependencySchemas,
703
+ mergedDataStructure.usageEquivalencies,
704
+ ),
574
705
  );
575
706
 
707
+ // Transformation tracing: capture after array types enriched
708
+ transformationTracer.snapshot(entity.name, 'arrayTypesEnriched', {
709
+ signatureSchema: mergedDataStructure.signatureSchema,
710
+ returnValueSchema: mergedDataStructure.returnValueSchema,
711
+ dependencySchemas: mergedDataStructure.dependencySchemas,
712
+ });
713
+
576
714
  // Enrich mocked dependency unknown types using sourceEquivalencies
577
715
  // When a mocked dependency returns unknown, but that data flows to a child component
578
716
  // with a known type, propagate the type back to the mocked dependency.
579
717
  // This prevents fillInDirectSchemaGapsAndUnknowns from guessing incorrectly
580
718
  // (e.g., 'data' becoming 'number' because pluralize thinks it's plural)
581
- enrichUnknownTypesFromSourceEquivalencies(
582
- isolatedDataStructure.dependencySchemas || {},
719
+ transformationTracer.traceDependencySchemaChanges(
720
+ entity.name,
721
+ 'enrichUnknownTypesFromSourceEquivalencies',
583
722
  mergedDataStructure.dependencySchemas,
584
- allImportedExports,
723
+ () =>
724
+ enrichUnknownTypesFromSourceEquivalencies(
725
+ isolatedDataStructure.dependencySchemas || {},
726
+ mergedDataStructure.dependencySchemas,
727
+ allImportedExports,
728
+ ),
585
729
  );
586
730
 
731
+ // Transformation tracing: capture after unknown types enriched
732
+ transformationTracer.snapshot(entity.name, 'unknownTypesEnriched', {
733
+ signatureSchema: mergedDataStructure.signatureSchema,
734
+ returnValueSchema: mergedDataStructure.returnValueSchema,
735
+ dependencySchemas: mergedDataStructure.dependencySchemas,
736
+ });
737
+
587
738
  // DISABLED: Testing if ternary fix eliminates the need for this heuristic
588
739
  // Propagate array item schemas between arrays that likely have the same type.
589
740
  // When one array (e.g., entities) has item schema traced but another similar array
@@ -597,6 +748,14 @@ export default function generateDataStructure({
597
748
  { entityName: entity.name },
598
749
  );
599
750
 
751
+ // Transformation tracing: capture after dataForMocks gathered
752
+ transformationTracer.snapshot(entity.name, 'dataForMocksGathered', {
753
+ signatureSchema: mergedDataStructure.signatureSchema,
754
+ returnValueSchema: mergedDataStructure.returnValueSchema,
755
+ dependencySchemas: mergedDataStructure.dependencySchemas,
756
+ dataForMocks,
757
+ });
758
+
600
759
  // Merge dataForMocks from non-mocked child analyses to include transitive dependency data.
601
760
  // This handles cases where grandchild trpc calls aren't in allImportedExports because
602
761
  // the grandchild's analysis wasn't in dependentAnalyses.
@@ -618,11 +777,25 @@ export default function generateDataStructure({
618
777
  }
619
778
  }
620
779
 
621
- const finalizedArgumentsSchema = fillInDirectSchemaGapsAndUnknowns({
622
- schema: { ...mergedDataStructure.signatureSchema },
623
- });
780
+ const finalizedArgumentsSchema = { ...mergedDataStructure.signatureSchema };
624
781
 
625
- clearAttributesFromMapping(finalizedArgumentsSchema);
782
+ // Trace fillInDirectSchemaGapsAndUnknowns
783
+ transformationTracer.traceSchemaTransform(
784
+ entity.name,
785
+ 'fillInDirectSchemaGapsAndUnknowns',
786
+ finalizedArgumentsSchema,
787
+ (schema) => fillInDirectSchemaGapsAndUnknowns({ schema }),
788
+ { stage: 'finalization' },
789
+ );
790
+
791
+ // Trace clearAttributesFromMapping
792
+ transformationTracer.traceSchemaTransform(
793
+ entity.name,
794
+ 'clearAttributesFromMapping',
795
+ finalizedArgumentsSchema,
796
+ clearAttributesFromMapping,
797
+ { stage: 'finalization' },
798
+ );
626
799
 
627
800
  const argumentsSchema = convertDotNotation(finalizedArgumentsSchema)
628
801
  .signature as JsonTypeDefinition[];
@@ -632,6 +805,12 @@ export default function generateDataStructure({
632
805
  dataForMocks,
633
806
  };
634
807
 
808
+ // Transformation tracing: capture final scenariosDataStructure
809
+ transformationTracer.snapshot(entity.name, 'finalized', {
810
+ signatureSchema: finalizedArgumentsSchema,
811
+ dataForMocks,
812
+ });
813
+
635
814
  return analysis;
636
815
  } catch (e) {
637
816
  awsLog('CodeYam Error: Error generating data structure', {