@codeyam/codeyam-cli 0.1.0-staging.1 → 0.1.0-staging.da5baf5

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 (393) 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 +5 -5
  4. package/analyzer-template/packages/ai/index.ts +2 -1
  5. package/analyzer-template/packages/ai/package.json +2 -2
  6. package/analyzer-template/packages/ai/scripts/ai-test-matrix.mjs +424 -0
  7. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +24 -0
  8. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +6 -16
  9. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +197 -0
  10. package/analyzer-template/packages/ai/src/lib/astScopes/paths.ts +28 -2
  11. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +127 -4
  12. package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +1 -3
  13. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +1821 -542
  14. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.ts +138 -0
  15. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +1 -1
  16. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +139 -0
  17. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/DebugTracer.ts +224 -0
  18. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/PathManager.ts +203 -0
  19. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/README.md +294 -0
  20. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +161 -0
  21. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.ts +235 -0
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +14 -6
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/selectBestValue.ts +70 -0
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.ts +113 -0
  25. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +36 -0
  26. package/analyzer-template/packages/ai/src/lib/generateChangesEntityDocumentation.ts +20 -2
  27. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +51 -107
  28. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +56 -160
  29. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +79 -265
  30. package/analyzer-template/packages/ai/src/lib/generateEntityDocumentation.ts +16 -2
  31. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +53 -176
  32. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +53 -154
  33. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +84 -254
  34. package/analyzer-template/packages/ai/src/lib/generateStatementAnalysis.ts +48 -71
  35. package/analyzer-template/packages/ai/src/lib/getConditionalUsagesFromCode.ts +27 -6
  36. package/analyzer-template/packages/ai/src/lib/getLLMCallStats.ts +0 -14
  37. package/analyzer-template/packages/ai/src/lib/modelInfo.ts +15 -0
  38. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +42 -4
  39. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.ts +8 -33
  40. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +54 -62
  41. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +93 -109
  42. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.ts +8 -27
  43. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +33 -38
  44. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +30 -30
  45. package/analyzer-template/packages/ai/src/lib/types/index.ts +2 -0
  46. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +39 -0
  47. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +52 -6
  48. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +238 -0
  49. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getDeclaredEntityNode.ts +25 -0
  50. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/index.ts +2 -0
  51. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +8 -10
  52. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +6 -1
  53. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +34 -15
  54. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +17 -3
  55. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +35 -16
  56. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +7 -1
  57. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +9 -1
  58. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +6 -1
  59. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +9 -1
  60. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +15 -7
  61. package/analyzer-template/packages/aws/package.json +2 -2
  62. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +28 -21
  63. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.ts +18 -11
  64. package/analyzer-template/packages/generate/src/lib/scenarioComponent.ts +6 -3
  65. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
  66. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +28 -21
  67. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  68. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.d.ts.map +1 -1
  69. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js +18 -11
  70. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js.map +1 -1
  71. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.d.ts.map +1 -1
  72. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.js +5 -3
  73. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.js.map +1 -1
  74. package/analyzer-template/packages/github/dist/utils/index.d.ts +2 -0
  75. package/analyzer-template/packages/github/dist/utils/index.d.ts.map +1 -1
  76. package/analyzer-template/packages/github/dist/utils/index.js +2 -0
  77. package/analyzer-template/packages/github/dist/utils/index.js.map +1 -1
  78. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.d.ts +25 -0
  79. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.d.ts.map +1 -0
  80. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.js +40 -0
  81. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.js.map +1 -0
  82. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.d.ts.map +1 -1
  83. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.js +5 -3
  84. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -1
  85. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts.map +1 -1
  86. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
  87. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
  88. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts.map +1 -1
  89. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +2 -1
  90. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -1
  91. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts.map +1 -1
  92. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
  93. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
  94. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts +12 -0
  95. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts.map +1 -0
  96. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js +32 -0
  97. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js.map +1 -0
  98. package/analyzer-template/packages/ui-components/src/scenario-editor/components/DataItemEditor.tsx +1 -1
  99. package/analyzer-template/packages/utils/dist/utils/index.d.ts +2 -0
  100. package/analyzer-template/packages/utils/dist/utils/index.d.ts.map +1 -1
  101. package/analyzer-template/packages/utils/dist/utils/index.js +2 -0
  102. package/analyzer-template/packages/utils/dist/utils/index.js.map +1 -1
  103. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.d.ts +25 -0
  104. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.d.ts.map +1 -0
  105. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.js +40 -0
  106. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.js.map +1 -0
  107. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.d.ts.map +1 -1
  108. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.js +5 -3
  109. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -1
  110. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts.map +1 -1
  111. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
  112. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
  113. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts.map +1 -1
  114. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +2 -1
  115. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -1
  116. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts.map +1 -1
  117. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
  118. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
  119. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts +12 -0
  120. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts.map +1 -0
  121. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js +32 -0
  122. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js.map +1 -0
  123. package/analyzer-template/packages/utils/index.ts +2 -0
  124. package/analyzer-template/packages/utils/src/lib/Semaphore.ts +42 -0
  125. package/analyzer-template/packages/utils/src/lib/frameworks/getNextRoutePath.ts +8 -3
  126. package/analyzer-template/packages/utils/src/lib/frameworks/getRemixRoutePath.ts +2 -1
  127. package/analyzer-template/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.ts +2 -1
  128. package/analyzer-template/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.ts +1 -0
  129. package/analyzer-template/packages/utils/src/lib/frameworks/sanitizeNextRouteSegments.ts +33 -0
  130. package/analyzer-template/project/constructMockCode.ts +170 -6
  131. package/analyzer-template/project/reconcileMockDataKeys.ts +13 -0
  132. package/analyzer-template/project/startScenarioCapture.ts +24 -0
  133. package/analyzer-template/project/trackGeneratedFiles.ts +41 -0
  134. package/analyzer-template/project/writeMockDataTsx.ts +125 -4
  135. package/analyzer-template/project/writeScenarioComponents.ts +175 -45
  136. package/analyzer-template/project/writeUniversalMocks.ts +72 -10
  137. package/background/src/lib/virtualized/project/constructMockCode.js +158 -7
  138. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  139. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +12 -0
  140. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  141. package/background/src/lib/virtualized/project/startScenarioCapture.js +18 -0
  142. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  143. package/background/src/lib/virtualized/project/trackGeneratedFiles.js +30 -0
  144. package/background/src/lib/virtualized/project/trackGeneratedFiles.js.map +1 -0
  145. package/background/src/lib/virtualized/project/writeMockDataTsx.js +95 -3
  146. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  147. package/background/src/lib/virtualized/project/writeScenarioComponents.js +130 -28
  148. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  149. package/background/src/lib/virtualized/project/writeUniversalMocks.js +59 -9
  150. package/background/src/lib/virtualized/project/writeUniversalMocks.js.map +1 -1
  151. package/codeyam-cli/scripts/apply-setup.js +288 -0
  152. package/codeyam-cli/scripts/apply-setup.js.map +1 -0
  153. package/codeyam-cli/scripts/extract-setup.js +130 -0
  154. package/codeyam-cli/scripts/extract-setup.js.map +1 -0
  155. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +238 -0
  156. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +1 -0
  157. package/codeyam-cli/src/cli.js +4 -0
  158. package/codeyam-cli/src/cli.js.map +1 -1
  159. package/codeyam-cli/src/codeyam-cli.js +0 -0
  160. package/codeyam-cli/src/commands/debug.js +190 -0
  161. package/codeyam-cli/src/commands/debug.js.map +1 -0
  162. package/codeyam-cli/src/commands/init.js +4 -23
  163. package/codeyam-cli/src/commands/init.js.map +1 -1
  164. package/codeyam-cli/src/commands/setup-sandbox.js +164 -0
  165. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -0
  166. package/codeyam-cli/src/utils/__tests__/cleanupAnalysisFiles.test.js +6 -6
  167. package/codeyam-cli/src/utils/__tests__/cleanupAnalysisFiles.test.js.map +1 -1
  168. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +8 -0
  169. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  170. package/codeyam-cli/src/utils/analysisRunner.js +4 -3
  171. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  172. package/codeyam-cli/src/utils/backgroundServer.js +25 -5
  173. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  174. package/codeyam-cli/src/utils/cleanupAnalysisFiles.js +2 -2
  175. package/codeyam-cli/src/utils/cleanupAnalysisFiles.js.map +1 -1
  176. package/codeyam-cli/src/utils/fileWatcher.js +75 -5
  177. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  178. package/codeyam-cli/src/utils/queue/job.js +3 -2
  179. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  180. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +4 -0
  181. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  182. package/codeyam-cli/src/utils/webappDetection.js +2 -1
  183. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  184. package/codeyam-cli/src/webserver/app/lib/database.js +63 -2
  185. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  186. package/codeyam-cli/src/webserver/backgroundServer.js +15 -35
  187. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  188. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BFRmw1TF.js +1 -0
  189. package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-Dh-FldQK.js → InteractivePreview-CRfBaL5B.js} +3 -3
  190. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-BYVx9KFp.js +3 -0
  191. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-Dp6DC845.js → LogViewer-CRcT5fOZ.js} +1 -1
  192. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-Bual6h18.js +1 -0
  193. package/codeyam-cli/src/webserver/build/client/assets/ScenarioPreview-Dj4Mm0AR.js +6 -0
  194. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-wtCIkGzq.js +5 -0
  195. package/codeyam-cli/src/webserver/build/client/assets/_index-Cjdlwanz.js +1 -0
  196. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-Dv3k2aEm.js +10 -0
  197. package/codeyam-cli/src/webserver/build/client/assets/chart-column-DOftqM9U.js +1 -0
  198. package/codeyam-cli/src/webserver/build/client/assets/chunk-WWGJGFF6-De6i8FUT.js +26 -0
  199. package/codeyam-cli/src/webserver/build/client/assets/circle-alert-0WShkwuc.js +1 -0
  200. package/codeyam-cli/src/webserver/build/client/assets/clock-DXui5oLF.js +1 -0
  201. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DPFKgE96.js +1 -0
  202. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-1Z6D0fLM.js → entity._sha._-BxaXKsIx.js} +10 -10
  203. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-BRD2FrH5.js +1 -0
  204. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-69R47Ffu.js +5 -0
  205. package/codeyam-cli/src/webserver/build/client/assets/{entityVersioning-DO2gCvXv.js → entityVersioning-Bk_YB1jM.js} +1 -1
  206. package/codeyam-cli/src/webserver/build/client/assets/entry.client-B5l8I1m3.js +5 -0
  207. package/codeyam-cli/src/webserver/build/client/assets/file-text-fb2mx25c.js +1 -0
  208. package/codeyam-cli/src/webserver/build/client/assets/files-l_Eh9jQG.js +1 -0
  209. package/codeyam-cli/src/webserver/build/client/assets/git-BCnOUEl9.js +12 -0
  210. package/codeyam-cli/src/webserver/build/client/assets/globals-BxkM6Up7.css +1 -0
  211. package/codeyam-cli/src/webserver/build/client/assets/index-BgDzgbQW.js +8 -0
  212. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-DE3HAwpF.js +1 -0
  213. package/codeyam-cli/src/webserver/build/client/assets/manifest-5579bc45.js +1 -0
  214. package/codeyam-cli/src/webserver/build/client/assets/root-o8NMI2bW.js +16 -0
  215. package/codeyam-cli/src/webserver/build/client/assets/search-BymWwY_X.js +1 -0
  216. package/codeyam-cli/src/webserver/build/client/assets/settings-C7G4GDvW.js +1 -0
  217. package/codeyam-cli/src/webserver/build/client/assets/settings-Dc4MlMpK.js +1 -0
  218. package/codeyam-cli/src/webserver/build/client/assets/simulations-Duh3oShE.js +1 -0
  219. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-BBlyqxij.js → useLastLogLine-AlhS7g5F.js} +1 -1
  220. package/codeyam-cli/src/webserver/build/client/assets/useToast-XY00p4rI.js +1 -0
  221. package/codeyam-cli/src/webserver/build/client/assets/zap-Dra7vum1.js +1 -0
  222. package/codeyam-cli/src/webserver/build/server/assets/index-Dpr7o3dP.js +1 -0
  223. package/codeyam-cli/src/webserver/build/server/assets/server-build-BM5nyvlV.js +166 -0
  224. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  225. package/codeyam-cli/src/webserver/build-info.json +5 -5
  226. package/codeyam-cli/src/webserver/server.js +1 -1
  227. package/codeyam-cli/src/webserver/server.js.map +1 -1
  228. package/codeyam-cli/templates/codeyam-setup-skill.md +85 -94
  229. package/package.json +7 -10
  230. package/packages/ai/index.js +1 -2
  231. package/packages/ai/index.js.map +1 -1
  232. package/packages/ai/src/lib/analyzeScope.js +13 -0
  233. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  234. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +6 -15
  235. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  236. package/packages/ai/src/lib/astScopes/methodSemantics.js +134 -0
  237. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  238. package/packages/ai/src/lib/astScopes/paths.js +28 -3
  239. package/packages/ai/src/lib/astScopes/paths.js.map +1 -1
  240. package/packages/ai/src/lib/astScopes/processExpression.js +111 -3
  241. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  242. package/packages/ai/src/lib/checkAllAttributes.js +1 -3
  243. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  244. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1320 -396
  245. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  246. package/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.js +137 -1
  247. package/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.js.map +1 -1
  248. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +1 -1
  249. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  250. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +112 -0
  251. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -0
  252. package/packages/ai/src/lib/dataStructure/helpers/DebugTracer.js +176 -0
  253. package/packages/ai/src/lib/dataStructure/helpers/DebugTracer.js.map +1 -0
  254. package/packages/ai/src/lib/dataStructure/helpers/PathManager.js +178 -0
  255. package/packages/ai/src/lib/dataStructure/helpers/PathManager.js.map +1 -0
  256. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +138 -0
  257. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -0
  258. package/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.js +199 -0
  259. package/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.js.map +1 -0
  260. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +14 -6
  261. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  262. package/packages/ai/src/lib/dataStructure/helpers/selectBestValue.js +62 -0
  263. package/packages/ai/src/lib/dataStructure/helpers/selectBestValue.js.map +1 -0
  264. package/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.js +90 -0
  265. package/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.js.map +1 -0
  266. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +22 -0
  267. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +1 -1
  268. package/packages/ai/src/lib/generateChangesEntityDocumentation.js +19 -1
  269. package/packages/ai/src/lib/generateChangesEntityDocumentation.js.map +1 -1
  270. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +51 -107
  271. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +1 -1
  272. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +55 -156
  273. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  274. package/packages/ai/src/lib/generateChangesEntityScenarios.js +79 -262
  275. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  276. package/packages/ai/src/lib/generateEntityDocumentation.js +15 -1
  277. package/packages/ai/src/lib/generateEntityDocumentation.js.map +1 -1
  278. package/packages/ai/src/lib/generateEntityKeyAttributes.js +53 -176
  279. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +1 -1
  280. package/packages/ai/src/lib/generateEntityScenarioData.js +52 -152
  281. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  282. package/packages/ai/src/lib/generateEntityScenarios.js +88 -258
  283. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  284. package/packages/ai/src/lib/generateStatementAnalysis.js +46 -71
  285. package/packages/ai/src/lib/generateStatementAnalysis.js.map +1 -1
  286. package/packages/ai/src/lib/getConditionalUsagesFromCode.js +13 -8
  287. package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -1
  288. package/packages/ai/src/lib/getLLMCallStats.js +0 -14
  289. package/packages/ai/src/lib/getLLMCallStats.js.map +1 -1
  290. package/packages/ai/src/lib/modelInfo.js +15 -0
  291. package/packages/ai/src/lib/modelInfo.js.map +1 -1
  292. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +36 -3
  293. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  294. package/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.js +8 -33
  295. package/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.js.map +1 -1
  296. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +35 -41
  297. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  298. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +59 -72
  299. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  300. package/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.js +8 -27
  301. package/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.js.map +1 -1
  302. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +24 -27
  303. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  304. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +21 -22
  305. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  306. package/packages/ai/src/lib/types/index.js +2 -0
  307. package/packages/ai/src/lib/types/index.js.map +1 -1
  308. package/packages/ai/src/lib/worker/SerializableDataStructure.js +7 -0
  309. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  310. package/packages/analyze/src/lib/FileAnalyzer.js +45 -5
  311. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  312. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +191 -0
  313. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -0
  314. package/packages/analyze/src/lib/asts/sourceFiles/getDeclaredEntityNode.js +16 -0
  315. package/packages/analyze/src/lib/asts/sourceFiles/getDeclaredEntityNode.js.map +1 -0
  316. package/packages/analyze/src/lib/asts/sourceFiles/index.js +2 -0
  317. package/packages/analyze/src/lib/asts/sourceFiles/index.js.map +1 -1
  318. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +6 -8
  319. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  320. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +5 -1
  321. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  322. package/packages/analyze/src/lib/files/analyzeChange.js +21 -9
  323. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  324. package/packages/analyze/src/lib/files/analyzeEntity.js +10 -4
  325. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  326. package/packages/analyze/src/lib/files/analyzeInitial.js +21 -9
  327. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  328. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +6 -1
  329. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  330. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +9 -1
  331. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +1 -1
  332. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +5 -1
  333. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  334. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +9 -1
  335. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  336. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +16 -7
  337. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  338. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +28 -21
  339. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  340. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js +18 -11
  341. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js.map +1 -1
  342. package/packages/generate/src/lib/scenarioComponent.js +5 -3
  343. package/packages/generate/src/lib/scenarioComponent.js.map +1 -1
  344. package/packages/utils/index.js +2 -0
  345. package/packages/utils/index.js.map +1 -1
  346. package/packages/utils/src/lib/Semaphore.js +40 -0
  347. package/packages/utils/src/lib/Semaphore.js.map +1 -0
  348. package/packages/utils/src/lib/frameworks/getNextRoutePath.js +5 -3
  349. package/packages/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -1
  350. package/packages/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
  351. package/packages/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
  352. package/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +2 -1
  353. package/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -1
  354. package/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
  355. package/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
  356. package/packages/utils/src/lib/frameworks/sanitizeNextRouteSegments.js +32 -0
  357. package/packages/utils/src/lib/frameworks/sanitizeNextRouteSegments.js.map +1 -0
  358. package/analyzer-template/packages/ai/src/lib/generateEntityDataMap.ts +0 -375
  359. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-GqWwt5wG.js +0 -1
  360. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-p0fuyqGQ.js +0 -3
  361. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-xwuhwsZH.js +0 -1
  362. package/codeyam-cli/src/webserver/build/client/assets/ScenarioPreview-Bl2IRh55.js +0 -1
  363. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-M2QuSHKC.js +0 -5
  364. package/codeyam-cli/src/webserver/build/client/assets/_index-CAVtep9Q.js +0 -1
  365. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CLmzsLsT.js +0 -10
  366. package/codeyam-cli/src/webserver/build/client/assets/chart-column-B2I7jQx2.js +0 -1
  367. package/codeyam-cli/src/webserver/build/client/assets/circle-alert-GwwOAbhw.js +0 -1
  368. package/codeyam-cli/src/webserver/build/client/assets/components-CAx5ONX_.js +0 -40
  369. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-CgyOwWip.js +0 -1
  370. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DGy3zrli.js +0 -1
  371. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-ChAdTrrU.js +0 -1
  372. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-D9L7267w.js +0 -5
  373. package/codeyam-cli/src/webserver/build/client/assets/entry.client-C6FRgjPr.js +0 -1
  374. package/codeyam-cli/src/webserver/build/client/assets/files-C3-cQjgv.js +0 -1
  375. package/codeyam-cli/src/webserver/build/client/assets/git-Dp4EB9nv.js +0 -12
  376. package/codeyam-cli/src/webserver/build/client/assets/globals-Da3jt49-.css +0 -1
  377. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-DN7Vr40D.js +0 -1
  378. package/codeyam-cli/src/webserver/build/client/assets/manifest-172a4629.js +0 -1
  379. package/codeyam-cli/src/webserver/build/client/assets/root-COyVTsPq.js +0 -16
  380. package/codeyam-cli/src/webserver/build/client/assets/search-CvyP_1Lo.js +0 -1
  381. package/codeyam-cli/src/webserver/build/client/assets/settings-Hbf8b7J_.js +0 -1
  382. package/codeyam-cli/src/webserver/build/client/assets/settings-MZc4XdmE.js +0 -1
  383. package/codeyam-cli/src/webserver/build/client/assets/simulations-BMBi0VzO.js +0 -1
  384. package/codeyam-cli/src/webserver/build/client/assets/useToast-C_VxoXTh.js +0 -1
  385. package/codeyam-cli/src/webserver/build/client/assets/zap-B4gsLUZQ.js +0 -1
  386. package/codeyam-cli/src/webserver/build/client/cy-logo-cli.svg +0 -13
  387. package/codeyam-cli/src/webserver/build/server/assets/index-eAULANMV.js +0 -1
  388. package/codeyam-cli/src/webserver/build/server/assets/server-build-lutv16q5.js +0 -161
  389. package/codeyam-cli/src/webserver/public/cy-logo-cli.svg +0 -13
  390. package/packages/ai/src/lib/generateEntityDataMap.js +0 -335
  391. package/packages/ai/src/lib/generateEntityDataMap.js.map +0 -1
  392. package/packages/ai/src/lib/promptGenerators/generateEntityDataMapGenerator.js +0 -17
  393. package/packages/ai/src/lib/promptGenerators/generateEntityDataMapGenerator.js.map +0 -1
@@ -0,0 +1,138 @@
1
+ /**
2
+ * ScopeTreeManager
3
+ *
4
+ * Manages the hierarchical tree structure of scopes in the analysis.
5
+ * Tracks parent-child relationships between function scopes.
6
+ *
7
+ * ## Purpose
8
+ *
9
+ * When analyzing nested functions, we need to track which functions
10
+ * are defined inside other functions. This affects:
11
+ * - Variable scope inheritance (inner functions can access outer variables)
12
+ * - Equivalency propagation (data flows between parent and child scopes)
13
+ * - Schema merging (combining schemas from nested call hierarchies)
14
+ *
15
+ * ## Tree Structure Example
16
+ *
17
+ * For code like:
18
+ * ```typescript
19
+ * function outer(data) {
20
+ * function inner(item) {
21
+ * return item.name;
22
+ * }
23
+ * return data.map(inner);
24
+ * }
25
+ * ```
26
+ *
27
+ * The tree would be:
28
+ * ```
29
+ * outer
30
+ * └── inner
31
+ * ```
32
+ *
33
+ * ## Key Operations
34
+ *
35
+ * - `addPath(['outer', 'inner'])` - Builds tree as scopes are discovered
36
+ * - `findNode('inner')` - Locates scope node for equivalency lookups
37
+ * - `getTree()` - Returns full tree for debugging/visualization
38
+ *
39
+ * ## Related Modules
40
+ *
41
+ * - `ScopeDataStructure.addScopeAnalysis()` - Adds paths when processing scopes
42
+ * - `ScopeDataStructure.getAnalysisTree()` - Exposes tree to callers
43
+ */
44
+ export const ROOT_SCOPE_NAME = 'root';
45
+ export class ScopeTreeManager {
46
+ constructor(rootName = ROOT_SCOPE_NAME) {
47
+ this.tree = { name: rootName, children: [] };
48
+ }
49
+ /**
50
+ * Gets the name of the root scope.
51
+ * This is frequently used as the default scope name throughout the analysis.
52
+ */
53
+ getRootName() {
54
+ return this.tree.name;
55
+ }
56
+ /**
57
+ * Sets the name of the root scope.
58
+ * Called during initialization when the actual root scope name is known.
59
+ */
60
+ setRootName(name) {
61
+ this.tree.name = name;
62
+ }
63
+ /**
64
+ * Gets the entire tree structure.
65
+ * Used by getAnalysisTree() to return the scope hierarchy.
66
+ */
67
+ getTree() {
68
+ return this.tree;
69
+ }
70
+ /**
71
+ * Adds a scope path to the tree.
72
+ * Creates intermediate nodes as needed.
73
+ *
74
+ * @param pathParts - Array of scope names representing the path from root
75
+ *
76
+ * @example
77
+ * // For a nested function: root -> parentFunc -> childFunc
78
+ * addPath(['root', 'parentFunc', 'childFunc'])
79
+ */
80
+ addPath(pathParts) {
81
+ let currentNode = { children: [this.tree] };
82
+ for (const pathPart of pathParts) {
83
+ const existingChild = currentNode.children.find((child) => child.name === pathPart);
84
+ if (existingChild) {
85
+ currentNode = existingChild;
86
+ }
87
+ else {
88
+ const newChild = {
89
+ name: pathPart,
90
+ children: [],
91
+ };
92
+ currentNode.children.push(newChild);
93
+ currentNode = newChild;
94
+ }
95
+ }
96
+ }
97
+ /**
98
+ * Finds a node by name in the tree (breadth-first search).
99
+ * Returns undefined if not found.
100
+ */
101
+ findNode(name) {
102
+ const queue = [this.tree];
103
+ while (queue.length > 0) {
104
+ const node = queue.shift();
105
+ if (node.name === name) {
106
+ return node;
107
+ }
108
+ queue.push(...node.children);
109
+ }
110
+ return undefined;
111
+ }
112
+ /**
113
+ * Gets all scope names in the tree (flattened).
114
+ */
115
+ getAllNames() {
116
+ const names = [];
117
+ const queue = [this.tree];
118
+ while (queue.length > 0) {
119
+ const node = queue.shift();
120
+ names.push(node.name);
121
+ queue.push(...node.children);
122
+ }
123
+ return names;
124
+ }
125
+ /**
126
+ * Returns the depth of the tree (for debugging/metrics).
127
+ */
128
+ getDepth() {
129
+ const getNodeDepth = (node) => {
130
+ if (node.children.length === 0) {
131
+ return 1;
132
+ }
133
+ return 1 + Math.max(...node.children.map(getNodeDepth));
134
+ };
135
+ return getNodeDepth(this.tree);
136
+ }
137
+ }
138
+ //# sourceMappingURL=ScopeTreeManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScopeTreeManager.js","sourceRoot":"","sources":["../../../../../../../../packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAOH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AAEtC,MAAM,OAAO,gBAAgB;IAG3B,YAAY,WAAmB,eAAe;QAC5C,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,IAAY;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;;;;OASG;IACH,OAAO,CAAC,SAAmB;QACzB,IAAI,WAAW,GAAkC,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAE3E,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAC7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CACnC,CAAC;YAEF,IAAI,aAAa,EAAE,CAAC;gBAClB,WAAW,GAAG,aAAa,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAkB;oBAC9B,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,EAAE;iBACb,CAAC;gBACF,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpC,WAAW,GAAG,QAAQ,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,IAAY;QACnB,MAAM,KAAK,GAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,WAAW;QACT,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,MAAM,YAAY,GAAG,CAAC,IAAmB,EAAU,EAAE;YACnD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,CAAC;YACX,CAAC;YACD,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC;QAEF,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;CACF"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * VisitedTracker
3
+ *
4
+ * Manages visited state tracking for the ScopeDataStructure analysis.
5
+ * Prevents infinite loops and redundant processing by tracking which
6
+ * scope/path/value combinations have already been processed.
7
+ *
8
+ * ## Why This Exists
9
+ *
10
+ * The schema building process recursively follows equivalencies between
11
+ * data paths. Without cycle detection, circular references like:
12
+ * `user.profile` → `currentUser` → `user.profile`
13
+ * would cause infinite loops.
14
+ *
15
+ * ## Two Tracking Modes
16
+ *
17
+ * ### 1. Global Visited (scope::path::value)
18
+ * Fine-grained deduplication for `addToSchema()`. Tracks the complete
19
+ * tuple so the same path can be visited with different type values.
20
+ *
21
+ * Example: `myFunc::user.id::string` and `myFunc::user.id::number`
22
+ * are tracked separately, allowing both types to be recorded.
23
+ *
24
+ * ### 2. Complex Source Visited (scope::path)
25
+ * Coarser deduplication for `addComplexSourcePathVariables()`. Ignores
26
+ * the type value because complex source processing should happen once
27
+ * per path regardless of type.
28
+ *
29
+ * ## Lifecycle
30
+ *
31
+ * - Global visited is **reset** at the start of `captureCompleteSchema()`
32
+ * to allow re-processing in the schema building phase.
33
+ * - Complex source visited is **never reset** during normal operation.
34
+ *
35
+ * ## Related Modules
36
+ *
37
+ * - `ScopeDataStructure.addToSchema()` - Primary consumer of global visited
38
+ * - `ScopeDataStructure.addComplexSourcePathVariables()` - Uses complex source visited
39
+ */
40
+ /**
41
+ * Tracks visited state to prevent infinite loops during schema building.
42
+ */
43
+ export class VisitedTracker {
44
+ constructor() {
45
+ /**
46
+ * Fine-grained visited tracking using scope::path::value.
47
+ * Used by addToSchema to skip already-processed combinations.
48
+ */
49
+ this.globalVisited = new Set();
50
+ /**
51
+ * Coarser visited tracking using scope::path only (without value).
52
+ * Used by addComplexSourcePathVariables to allow each unique
53
+ * scope+path combo to be processed once, regardless of value.
54
+ */
55
+ this.complexSourceVisited = new Set();
56
+ }
57
+ /**
58
+ * Creates a unique key for global visited tracking.
59
+ * @param scopeNodeName - Name of the scope
60
+ * @param path - Schema path
61
+ * @param value - Type value
62
+ */
63
+ makeGlobalKey(scopeNodeName, path, value) {
64
+ return `${scopeNodeName}::${path}::${value}`;
65
+ }
66
+ /**
67
+ * Creates a unique key for complex source visited tracking.
68
+ * @param scopeNodeName - Name of the scope
69
+ * @param path - Schema path
70
+ */
71
+ makeComplexKey(scopeNodeName, path) {
72
+ return `${scopeNodeName}::${path}`;
73
+ }
74
+ /**
75
+ * Checks if a scope/path/value combination has been globally visited.
76
+ * Does NOT mark it as visited - use markGlobalVisited for that.
77
+ *
78
+ * @returns true if already visited
79
+ */
80
+ hasGlobalVisited(scopeNodeName, path, value) {
81
+ return this.globalVisited.has(this.makeGlobalKey(scopeNodeName, path, value));
82
+ }
83
+ /**
84
+ * Marks a scope/path/value combination as globally visited.
85
+ */
86
+ markGlobalVisited(scopeNodeName, path, value) {
87
+ this.globalVisited.add(this.makeGlobalKey(scopeNodeName, path, value));
88
+ }
89
+ /**
90
+ * Checks and marks a scope/path/value combination as globally visited.
91
+ * This is a convenience method that combines check and mark.
92
+ *
93
+ * @returns true if was already visited (should skip processing)
94
+ */
95
+ checkAndMarkGlobalVisited(scopeNodeName, path, value) {
96
+ const key = this.makeGlobalKey(scopeNodeName, path, value);
97
+ if (this.globalVisited.has(key)) {
98
+ return true; // Already visited
99
+ }
100
+ this.globalVisited.add(key);
101
+ return false; // Not visited, now marked
102
+ }
103
+ /**
104
+ * Checks if a scope/path combination has been visited for complex sources.
105
+ * Does NOT mark it as visited - use markComplexSourceVisited for that.
106
+ *
107
+ * @returns true if already visited
108
+ */
109
+ hasComplexSourceVisited(scopeNodeName, path) {
110
+ return this.complexSourceVisited.has(this.makeComplexKey(scopeNodeName, path));
111
+ }
112
+ /**
113
+ * Marks a scope/path combination as visited for complex sources.
114
+ */
115
+ markComplexSourceVisited(scopeNodeName, path) {
116
+ this.complexSourceVisited.add(this.makeComplexKey(scopeNodeName, path));
117
+ }
118
+ /**
119
+ * Checks and marks a scope/path combination as visited for complex sources.
120
+ * This is a convenience method that combines check and mark.
121
+ *
122
+ * @returns true if was already visited (should skip processing)
123
+ */
124
+ checkAndMarkComplexSourceVisited(scopeNodeName, path) {
125
+ const key = this.makeComplexKey(scopeNodeName, path);
126
+ if (this.complexSourceVisited.has(key)) {
127
+ return true; // Already visited
128
+ }
129
+ this.complexSourceVisited.add(key);
130
+ return false; // Not visited, now marked
131
+ }
132
+ /**
133
+ * Resets the global visited set.
134
+ * Called at the start of captureCompleteSchema() to allow
135
+ * re-processing in the second phase.
136
+ */
137
+ resetGlobalVisited() {
138
+ this.globalVisited.clear();
139
+ }
140
+ /**
141
+ * Resets the complex source visited set.
142
+ * Note: In the original code, this was never reset.
143
+ */
144
+ resetComplexSourceVisited() {
145
+ this.complexSourceVisited.clear();
146
+ }
147
+ /**
148
+ * Resets all visited tracking.
149
+ */
150
+ resetAll() {
151
+ this.globalVisited.clear();
152
+ this.complexSourceVisited.clear();
153
+ }
154
+ /**
155
+ * Returns statistics about the visited sets for debugging/monitoring.
156
+ */
157
+ getStats() {
158
+ return {
159
+ globalVisited: this.globalVisited.size,
160
+ complexSourceVisited: this.complexSourceVisited.size,
161
+ };
162
+ }
163
+ /**
164
+ * Checks if ANY variant of a scope/path was ever visited (ignores value).
165
+ * Useful for debugging to see if a path was processed at all.
166
+ *
167
+ * @returns true if any variant of this scope/path was visited
168
+ */
169
+ wasVisited(scopeNodeName, path) {
170
+ const prefix = `${scopeNodeName}::${path}::`;
171
+ for (const key of this.globalVisited) {
172
+ if (key.startsWith(prefix)) {
173
+ return true;
174
+ }
175
+ }
176
+ return this.hasComplexSourceVisited(scopeNodeName, path);
177
+ }
178
+ /**
179
+ * Gets all visited entries for a scope (for debugging).
180
+ * Returns an array of {path, value} objects.
181
+ */
182
+ getVisitedForScope(scopeNodeName) {
183
+ const prefix = `${scopeNodeName}::`;
184
+ const results = [];
185
+ for (const key of this.globalVisited) {
186
+ if (key.startsWith(prefix)) {
187
+ const parts = key.slice(prefix.length).split('::');
188
+ if (parts.length >= 2) {
189
+ results.push({
190
+ path: parts.slice(0, -1).join('::'), // Everything except last part
191
+ value: parts[parts.length - 1], // Last part is value
192
+ });
193
+ }
194
+ }
195
+ }
196
+ return results;
197
+ }
198
+ }
199
+ //# sourceMappingURL=VisitedTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VisitedTracker.js","sourceRoot":"","sources":["../../../../../../../../packages/ai/src/lib/dataStructure/helpers/VisitedTracker.ts"],"names":[],"mappings":"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"}
@@ -280,8 +280,10 @@ export function fillInDirectSchemaGapsAndUnknowns({ scopeName, schema, attempts
280
280
  const isPreviousAsync = schema[previousSubPath] === 'async-function';
281
281
  // Don't set to 'function' if this is a promise method on an async function
282
282
  // (we want the awaited value, not the promise)
283
+ // Also don't overwrite 'array' - the function might return an array (e.g., getAll())
283
284
  if (schema[functionReturnValuePath] &&
284
285
  schema[functionReturnValuePath] !== 'function' &&
286
+ schema[functionReturnValuePath] !== 'array' &&
285
287
  !(isPromiseMethod && isPreviousAsync)) {
286
288
  schema[functionReturnValuePath] = 'function';
287
289
  changeMade = true;
@@ -322,16 +324,25 @@ function checkIfObjectOrFunction(path, schema) {
322
324
  }
323
325
  }
324
326
  }
325
- // Methods that are ambiguous - used on both arrays and non-arrays (e.g., router.push, history.pop)
327
+ // Methods that are ambiguous - used on both arrays and non-arrays
328
+ // These methods exist on arrays but also on Map, Set, Headers, FormData, URLSearchParams, etc.
326
329
  // Don't infer array type from these alone without additional evidence
327
- const AMBIGUOUS_ARRAY_METHODS = new Set(['push', 'pop']);
330
+ const AMBIGUOUS_ARRAY_METHODS = new Set([
331
+ 'push',
332
+ 'pop',
333
+ 'entries',
334
+ 'keys',
335
+ 'values',
336
+ 'forEach',
337
+ ]);
328
338
  // Methods that are strongly indicative of arrays - only arrays have these
339
+ // Note: entries, keys, values, forEach are NOT in this list because they also exist
340
+ // on Map, Set, Headers, FormData, URLSearchParams, and other iterable types
329
341
  const STRONG_ARRAY_METHODS = new Set([
330
342
  'map',
331
343
  'filter',
332
344
  'reduce',
333
345
  'reduceRight',
334
- 'forEach',
335
346
  'every',
336
347
  'some',
337
348
  'find',
@@ -342,9 +353,6 @@ const STRONG_ARRAY_METHODS = new Set([
342
353
  'flatMap',
343
354
  'fill',
344
355
  'copyWithin',
345
- 'entries',
346
- 'keys',
347
- 'values',
348
356
  'toReversed',
349
357
  'toSorted',
350
358
  'toSpliced',
@@ -1 +1 @@
1
- {"version":3,"file":"fillInSchemaGapsAndUnknowns.js","sourceRoot":"","sources":["../../../../../../../../packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fillInSchemaGapsAndUnknowns.js","sourceRoot":"","sources":["../../../../../../../../packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * selectBestValue
3
+ *
4
+ * Selects the most specific type value from two candidates.
5
+ * Prefers more specific types over 'unknown' values.
6
+ *
7
+ * ## Context
8
+ *
9
+ * During schema building, the same path may have type information from
10
+ * multiple sources (e.g., from a return statement and from a function call).
11
+ * When merging these, we want to keep the most specific type.
12
+ *
13
+ * "Specific" means:
14
+ * - `'string'` is more specific than `'unknown'`
15
+ * - `'string'` is more specific than `'unknown|string'`
16
+ * - `'string|number'` is equal specificity to `'number|string'`
17
+ *
18
+ * ## Selection Rules
19
+ *
20
+ * 1. If value1 exists and is not 'unknown', use value1
21
+ * 2. If value2 exists and is more specific (not 'unknown'), prefer value2
22
+ * 3. Otherwise use the first available value, or 'unknown' as default
23
+ *
24
+ * ## Where Used
25
+ *
26
+ * - `propagateSourceAndUsageEquivalencies.equateSchema()` - Merging schemas
27
+ * - `getReturnValue()` - Combining return type information
28
+ *
29
+ * ## Related Modules
30
+ *
31
+ * - `ensureSchemaConsistency.ts` - Also deals with type merging
32
+ * - `fillInSchemaGapsAndUnknowns.ts` - Fills in missing types after schema building
33
+ */
34
+ /**
35
+ * Selects the best (most specific) value between two type candidates.
36
+ *
37
+ * @param value1 - Primary value (preferred if specific)
38
+ * @param value2 - Secondary value (used if value1 is 'unknown')
39
+ * @param defaultValue - Default when both are undefined (defaults to 'unknown')
40
+ * @returns The most specific type value
41
+ *
42
+ * @example
43
+ * selectBestValue('string', 'number') // 'string' - value1 is specific
44
+ * selectBestValue('unknown', 'string') // 'string' - value2 is more specific
45
+ * selectBestValue(undefined, 'number') // 'number' - value1 undefined
46
+ * selectBestValue(undefined, undefined) // 'unknown' - default
47
+ * selectBestValue('unknown|string', 'string') // 'string' - value2 has no unknown
48
+ */
49
+ export default function selectBestValue(value1, value2, defaultValue = 'unknown') {
50
+ let bestValue = value1 ?? value2 ?? defaultValue;
51
+ // Prefer value2 if:
52
+ // - value2 exists AND
53
+ // - bestValue is 'unknown' and value2 is not, OR
54
+ // - bestValue contains 'unknown' and value2 doesn't
55
+ if (value2 &&
56
+ ((bestValue === 'unknown' && value2 !== 'unknown') ||
57
+ (bestValue.includes('unknown') && !value2.includes('unknown')))) {
58
+ bestValue = value2;
59
+ }
60
+ return bestValue;
61
+ }
62
+ //# sourceMappingURL=selectBestValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectBestValue.js","sourceRoot":"","sources":["../../../../../../../../packages/ai/src/lib/dataStructure/helpers/selectBestValue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,MAA0B,EAC1B,MAA0B,EAC1B,YAAY,GAAG,SAAS;IAExB,IAAI,SAAS,GAAG,MAAM,IAAI,MAAM,IAAI,YAAY,CAAC;IAEjD,oBAAoB;IACpB,sBAAsB;IACtB,iDAAiD;IACjD,oDAAoD;IACpD,IACE,MAAM;QACN,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,CAAC;YAChD,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EACjE,CAAC;QACD,SAAS,GAAG,MAAM,CAAC;IACrB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * UniqueIdUtils
3
+ *
4
+ * Utility functions for creating unique identifiers and deduplicating
5
+ * scope variables in the ScopeDataStructure analysis.
6
+ *
7
+ * ## Why Unique IDs Matter
8
+ *
9
+ * The analysis tracks data flow across many scopes and paths. When building
10
+ * equivalency chains or schemas, we need to:
11
+ * - Detect cycles (have we seen this scope+path+value before?)
12
+ * - Deduplicate results (don't report the same equivalency twice)
13
+ * - Index efficiently (O(1) lookups in large datasets)
14
+ *
15
+ * ## Key Format
16
+ *
17
+ * The unique ID format is `scopeNodeName::schemaPath[::value]`:
18
+ * - `myFunc::user.id` - Scope+path without type value
19
+ * - `myFunc::user.id::string` - Full tuple including type
20
+ *
21
+ * The `::` delimiter is chosen because:
22
+ * - Scope names never contain `::`
23
+ * - Schema paths use `.` and `[]` but not `::`
24
+ * - Type values may contain `:` (e.g., `union::type`) but only as the last part
25
+ *
26
+ * ## Performance
27
+ *
28
+ * `uniqueScopeAndPaths` uses O(n) Set-based deduplication instead of O(n²)
29
+ * array comparisons. This matters when processing thousands of equivalencies.
30
+ *
31
+ * ## Related Modules
32
+ *
33
+ * - `VisitedTracker.ts` - Uses similar key format for cycle detection
34
+ * - `ScopeDataStructure.equivalencyDatabase` - Indexed by these unique IDs
35
+ */
36
+ /**
37
+ * Creates a unique identifier string from scope, path, and optional value.
38
+ * Used for tracking visited combinations and equivalency chains.
39
+ *
40
+ * @example
41
+ * uniqueId({ scopeNodeName: 'myFunc', schemaPath: 'user.id' }) // 'myFunc::user.id'
42
+ * uniqueId({ scopeNodeName: 'myFunc', schemaPath: 'user.id', value: 'string' }) // 'myFunc::user.id::string'
43
+ */
44
+ export function uniqueId({ scopeNodeName, schemaPath, value, }) {
45
+ const parts = [scopeNodeName, schemaPath, value].filter(Boolean);
46
+ return parts.join('::');
47
+ }
48
+ /**
49
+ * Removes duplicate scope variables from an array, keeping only the first occurrence
50
+ * of each unique scopeNodeName + schemaPath combination.
51
+ *
52
+ * This is a type-preserving version of uniqueScopeAndPaths that returns the full
53
+ * ScopeVariable objects (with id and equivalencyReason).
54
+ *
55
+ * @param scopeVariables - Array of scope variables to deduplicate
56
+ * @returns Deduplicated array preserving original type
57
+ */
58
+ export function uniqueScopeVariables(scopeVariables) {
59
+ return uniqueScopeAndPaths(scopeVariables);
60
+ }
61
+ /**
62
+ * Removes duplicates from an array of objects with scopeNodeName and schemaPath.
63
+ * Uses O(n) Set-based deduplication for performance.
64
+ *
65
+ * @param scopeVariables - Array of objects to deduplicate
66
+ * @returns Deduplicated array preserving original type
67
+ *
68
+ * @example
69
+ * uniqueScopeAndPaths([
70
+ * { scopeNodeName: 'a', schemaPath: 'x' },
71
+ * { scopeNodeName: 'a', schemaPath: 'x' },
72
+ * { scopeNodeName: 'b', schemaPath: 'y' },
73
+ * ])
74
+ * // Returns: [{ scopeNodeName: 'a', schemaPath: 'x' }, { scopeNodeName: 'b', schemaPath: 'y' }]
75
+ */
76
+ export function uniqueScopeAndPaths(scopeVariables) {
77
+ if (!scopeVariables || scopeVariables.length === 0)
78
+ return [];
79
+ // Optimize from O(n²) to O(n) using Set for deduplication
80
+ const seen = new Set();
81
+ return scopeVariables.filter((varItem) => {
82
+ const key = `${varItem.scopeNodeName}::${varItem.schemaPath}`;
83
+ if (seen.has(key)) {
84
+ return false;
85
+ }
86
+ seen.add(key);
87
+ return true;
88
+ });
89
+ }
90
+ //# sourceMappingURL=uniqueIdUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniqueIdUtils.js","sourceRoot":"","sources":["../../../../../../../../packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAWH;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,aAAa,EACb,UAAU,EACV,KAAK,GAKN;IACC,MAAM,KAAK,GAAG,CAAC,aAAa,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,cAAmB;IAEnB,OAAO,mBAAmB,CAAC,cAAc,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CACjC,cAAsC;IAEtC,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE9D,0DAA0D;IAC1D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;QACvC,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,aAAa,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC;QAC9D,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC"}