@codeyam/codeyam-cli 0.1.0-staging.596f0eb → 0.1.0-staging.6e699e5

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 (696) hide show
  1. package/analyzer-template/.build-info.json +8 -8
  2. package/analyzer-template/common/execAsync.ts +1 -1
  3. package/analyzer-template/log.txt +3 -3
  4. package/analyzer-template/package.json +10 -6
  5. package/analyzer-template/packages/ai/index.ts +10 -3
  6. package/analyzer-template/packages/ai/package.json +1 -1
  7. package/analyzer-template/packages/ai/src/lib/__mocks__/completionCall.ts +122 -0
  8. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +128 -6
  9. package/analyzer-template/packages/ai/src/lib/astScopes/arrayDerivationDetector.ts +199 -0
  10. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +138 -1
  11. package/analyzer-template/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.ts +644 -0
  12. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +140 -6
  13. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.ts +18 -0
  14. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +38 -1
  15. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.ts +181 -1
  16. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +1239 -104
  17. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +304 -0
  18. package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +29 -10
  19. package/analyzer-template/packages/ai/src/lib/completionCall.ts +216 -36
  20. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +1501 -138
  21. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +2 -1
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +976 -0
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +243 -77
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +19 -1
  25. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +103 -6
  26. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +23 -0
  27. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.ts +98 -0
  28. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +42 -2
  29. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.ts +129 -0
  30. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +156 -0
  31. package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
  32. package/analyzer-template/packages/ai/src/lib/e2eDataTracking.ts +334 -0
  33. package/analyzer-template/packages/ai/src/lib/extractCriticalDataKeys.ts +120 -0
  34. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +74 -7
  35. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +89 -112
  36. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +6 -0
  37. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +1111 -91
  38. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +207 -104
  39. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +570 -0
  40. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
  41. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +1977 -0
  42. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +239 -0
  43. package/analyzer-template/packages/ai/src/lib/getConditionalUsagesFromCode.ts +143 -31
  44. package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +8 -2
  45. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +276 -3
  46. package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +33 -3
  47. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +7 -0
  48. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +1 -1
  49. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +32 -102
  50. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChunkPrompt.ts +82 -0
  51. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateCriticalKeysPrompt.ts +103 -0
  52. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +90 -6
  53. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +14 -53
  54. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
  55. package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +28 -2
  56. package/analyzer-template/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.ts +391 -0
  57. package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +812 -0
  58. package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +5 -1
  59. package/analyzer-template/packages/ai/src/lib/validateExecutionFlowPaths.ts +531 -0
  60. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +123 -0
  61. package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +8 -1
  62. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +14 -0
  63. package/analyzer-template/packages/analyze/src/lib/analysisContext.ts +44 -4
  64. package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +1 -0
  65. package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
  66. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +455 -267
  67. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +18 -0
  68. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +3 -0
  69. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +33 -7
  70. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +31 -15
  71. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +11 -7
  72. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +11 -12
  73. package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
  74. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +265 -0
  75. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
  76. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +588 -52
  77. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.ts +1 -1
  78. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +28 -62
  79. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +336 -133
  80. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +156 -0
  81. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +78 -83
  82. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +4 -8
  83. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +461 -94
  84. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +56 -11
  85. package/analyzer-template/packages/aws/codebuild/index.ts +1 -0
  86. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +11 -1
  87. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -1
  88. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +29 -18
  89. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -1
  90. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +2 -2
  91. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -1
  92. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +2 -2
  93. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  94. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +8 -18
  95. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -1
  96. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +17 -61
  97. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  98. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts +15 -0
  99. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts.map +1 -0
  100. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js +31 -0
  101. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js.map +1 -0
  102. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -1
  103. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +8 -1
  104. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -1
  105. package/analyzer-template/packages/aws/package.json +3 -3
  106. package/analyzer-template/packages/aws/s3/index.ts +1 -0
  107. package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +43 -19
  108. package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +3 -3
  109. package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +17 -69
  110. package/analyzer-template/packages/aws/src/lib/s3/checkS3ObjectExists.ts +47 -0
  111. package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +8 -1
  112. package/analyzer-template/packages/database/src/lib/kysely/db.ts +4 -4
  113. package/analyzer-template/packages/database/src/lib/kysely/tableRelations.ts +2 -2
  114. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +36 -9
  115. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +7 -3
  116. package/analyzer-template/packages/generate/index.ts +3 -0
  117. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +17 -1
  118. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +193 -0
  119. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
  120. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +9 -4
  121. package/analyzer-template/packages/generate/src/lib/deepMerge.ts +26 -1
  122. package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
  123. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -2
  124. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +2 -2
  125. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelations.d.ts +2 -2
  126. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +1 -11
  127. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -1
  128. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +30 -7
  129. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -1
  130. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
  131. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  132. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts +1 -0
  133. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -1
  134. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +2 -6
  135. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  136. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  137. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
  138. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  139. package/analyzer-template/packages/github/dist/generate/index.d.ts +3 -0
  140. package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -1
  141. package/analyzer-template/packages/github/dist/generate/index.js +3 -0
  142. package/analyzer-template/packages/github/dist/generate/index.js.map +1 -1
  143. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
  144. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  145. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  146. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts +9 -0
  147. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -0
  148. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  149. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  150. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts +20 -0
  151. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts.map +1 -0
  152. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  153. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  154. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
  155. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +8 -4
  156. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  157. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.d.ts.map +1 -1
  158. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js +27 -1
  159. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js.map +1 -1
  160. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts +8 -0
  161. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts.map +1 -0
  162. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js +89 -0
  163. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  164. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -1
  165. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +10 -0
  166. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -1
  167. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -1
  168. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +3 -0
  169. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -1
  170. package/analyzer-template/packages/github/dist/types/index.d.ts +2 -2
  171. package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
  172. package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
  173. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +87 -13
  174. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
  175. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +2 -0
  176. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -1
  177. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +11 -6
  178. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  179. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +196 -0
  180. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  181. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +2 -0
  182. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  183. package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -1
  184. package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js +25 -0
  185. package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
  186. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts +9 -1
  187. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  188. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +29 -3
  189. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -1
  190. package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +14 -0
  191. package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +2 -0
  192. package/analyzer-template/packages/process/index.ts +2 -0
  193. package/analyzer-template/packages/process/package.json +12 -0
  194. package/analyzer-template/packages/process/tsconfig.json +8 -0
  195. package/analyzer-template/packages/types/index.ts +5 -0
  196. package/analyzer-template/packages/types/src/types/Analysis.ts +104 -13
  197. package/analyzer-template/packages/types/src/types/Entity.ts +2 -0
  198. package/analyzer-template/packages/types/src/types/Scenario.ts +11 -10
  199. package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +224 -0
  200. package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
  201. package/analyzer-template/packages/ui-components/src/components/ScenarioDetailInteractiveView.tsx +23 -7
  202. package/analyzer-template/packages/utils/dist/types/index.d.ts +2 -2
  203. package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
  204. package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
  205. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +87 -13
  206. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
  207. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +2 -0
  208. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -1
  209. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +11 -6
  210. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  211. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +196 -0
  212. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  213. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +2 -0
  214. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  215. package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -1
  216. package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js +25 -0
  217. package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
  218. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +9 -1
  219. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  220. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +29 -3
  221. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -1
  222. package/analyzer-template/packages/utils/src/lib/lightweightEntityExtractor.ts +27 -0
  223. package/analyzer-template/packages/utils/src/lib/safeFileName.ts +48 -3
  224. package/analyzer-template/playwright/capture.ts +37 -18
  225. package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
  226. package/analyzer-template/playwright/takeElementScreenshot.ts +26 -11
  227. package/analyzer-template/playwright/takeScreenshot.ts +9 -7
  228. package/analyzer-template/playwright/waitForServer.ts +21 -6
  229. package/analyzer-template/project/analyzeBaselineCommit.ts +4 -0
  230. package/analyzer-template/project/analyzeBranchCommit.ts +4 -0
  231. package/analyzer-template/project/analyzeFileEntities.ts +4 -0
  232. package/analyzer-template/project/analyzeRegularCommit.ts +4 -0
  233. package/analyzer-template/project/constructMockCode.ts +1181 -160
  234. package/analyzer-template/project/controller/startController.ts +16 -1
  235. package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
  236. package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
  237. package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +3 -6
  238. package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +82 -36
  239. package/analyzer-template/project/orchestrateCapture.ts +36 -3
  240. package/analyzer-template/project/reconcileMockDataKeys.ts +245 -2
  241. package/analyzer-template/project/runAnalysis.ts +11 -0
  242. package/analyzer-template/project/runMultiScenarioServer.ts +11 -10
  243. package/analyzer-template/project/serverOnlyModules.ts +194 -21
  244. package/analyzer-template/project/start.ts +26 -4
  245. package/analyzer-template/project/startScenarioCapture.ts +79 -41
  246. package/analyzer-template/project/writeMockDataTsx.ts +232 -57
  247. package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
  248. package/analyzer-template/project/writeScenarioComponents.ts +769 -181
  249. package/analyzer-template/project/writeScenarioFiles.ts +26 -0
  250. package/analyzer-template/project/writeSimpleRoot.ts +13 -15
  251. package/analyzer-template/scripts/comboWorkerLoop.cjs +1 -0
  252. package/analyzer-template/scripts/defaultCmd.sh +9 -0
  253. package/analyzer-template/tsconfig.json +2 -1
  254. package/background/src/lib/local/createLocalAnalyzer.js +1 -29
  255. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  256. package/background/src/lib/local/execAsync.js +1 -1
  257. package/background/src/lib/local/execAsync.js.map +1 -1
  258. package/background/src/lib/virtualized/common/execAsync.js +1 -1
  259. package/background/src/lib/virtualized/common/execAsync.js.map +1 -1
  260. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +2 -1
  261. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
  262. package/background/src/lib/virtualized/project/analyzeBranchCommit.js +2 -1
  263. package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -1
  264. package/background/src/lib/virtualized/project/analyzeFileEntities.js +2 -1
  265. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  266. package/background/src/lib/virtualized/project/analyzeRegularCommit.js +2 -1
  267. package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
  268. package/background/src/lib/virtualized/project/constructMockCode.js +1053 -124
  269. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  270. package/background/src/lib/virtualized/project/controller/startController.js +11 -1
  271. package/background/src/lib/virtualized/project/controller/startController.js.map +1 -1
  272. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +6 -3
  273. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -1
  274. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +7 -7
  275. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -1
  276. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +3 -2
  277. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
  278. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +69 -32
  279. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
  280. package/background/src/lib/virtualized/project/orchestrateCapture.js +27 -4
  281. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  282. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +204 -2
  283. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  284. package/background/src/lib/virtualized/project/runAnalysis.js +9 -0
  285. package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
  286. package/background/src/lib/virtualized/project/runMultiScenarioServer.js +11 -9
  287. package/background/src/lib/virtualized/project/runMultiScenarioServer.js.map +1 -1
  288. package/background/src/lib/virtualized/project/serverOnlyModules.js +163 -23
  289. package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -1
  290. package/background/src/lib/virtualized/project/start.js +21 -4
  291. package/background/src/lib/virtualized/project/start.js.map +1 -1
  292. package/background/src/lib/virtualized/project/startScenarioCapture.js +61 -31
  293. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  294. package/background/src/lib/virtualized/project/writeMockDataTsx.js +199 -50
  295. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  296. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js +15 -0
  297. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js.map +1 -0
  298. package/background/src/lib/virtualized/project/writeScenarioComponents.js +552 -125
  299. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  300. package/background/src/lib/virtualized/project/writeScenarioFiles.js +19 -0
  301. package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -1
  302. package/background/src/lib/virtualized/project/writeSimpleRoot.js +13 -13
  303. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  304. package/codeyam-cli/src/cli.js +7 -1
  305. package/codeyam-cli/src/cli.js.map +1 -1
  306. package/codeyam-cli/src/commands/analyze.js +1 -1
  307. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  308. package/codeyam-cli/src/commands/baseline.js +174 -0
  309. package/codeyam-cli/src/commands/baseline.js.map +1 -0
  310. package/codeyam-cli/src/commands/debug.js +40 -18
  311. package/codeyam-cli/src/commands/debug.js.map +1 -1
  312. package/codeyam-cli/src/commands/default.js +0 -15
  313. package/codeyam-cli/src/commands/default.js.map +1 -1
  314. package/codeyam-cli/src/commands/recapture.js +226 -0
  315. package/codeyam-cli/src/commands/recapture.js.map +1 -0
  316. package/codeyam-cli/src/commands/report.js +72 -24
  317. package/codeyam-cli/src/commands/report.js.map +1 -1
  318. package/codeyam-cli/src/commands/start.js +8 -12
  319. package/codeyam-cli/src/commands/start.js.map +1 -1
  320. package/codeyam-cli/src/commands/status.js +23 -1
  321. package/codeyam-cli/src/commands/status.js.map +1 -1
  322. package/codeyam-cli/src/commands/test-startup.js +1 -1
  323. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  324. package/codeyam-cli/src/commands/wipe.js +108 -0
  325. package/codeyam-cli/src/commands/wipe.js.map +1 -0
  326. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
  327. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
  328. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +31 -27
  329. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  330. package/codeyam-cli/src/utils/analysisRunner.js +8 -13
  331. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  332. package/codeyam-cli/src/utils/backgroundServer.js +14 -4
  333. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  334. package/codeyam-cli/src/utils/database.js +91 -5
  335. package/codeyam-cli/src/utils/database.js.map +1 -1
  336. package/codeyam-cli/src/utils/generateReport.js +253 -106
  337. package/codeyam-cli/src/utils/generateReport.js.map +1 -1
  338. package/codeyam-cli/src/utils/git.js +79 -0
  339. package/codeyam-cli/src/utils/git.js.map +1 -0
  340. package/codeyam-cli/src/utils/install-skills.js +31 -17
  341. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  342. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +38 -0
  343. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
  344. package/codeyam-cli/src/utils/queue/job.js +245 -16
  345. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  346. package/codeyam-cli/src/utils/queue/manager.js +25 -7
  347. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  348. package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
  349. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  350. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +7 -5
  351. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  352. package/codeyam-cli/src/utils/versionInfo.js +25 -19
  353. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  354. package/codeyam-cli/src/utils/wipe.js +128 -0
  355. package/codeyam-cli/src/utils/wipe.js.map +1 -0
  356. package/codeyam-cli/src/webserver/app/lib/database.js +98 -1
  357. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  358. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  359. package/codeyam-cli/src/webserver/backgroundServer.js +5 -10
  360. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  361. package/codeyam-cli/src/webserver/bootstrap.js +49 -0
  362. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -0
  363. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-BXhEawa3.js +1 -0
  364. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-efWKDYMr.js → EntityTypeBadge-DLqD3qNt.js} +1 -1
  365. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-Ba2JVPzP.js +41 -0
  366. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-C8lyxW9k.js +34 -0
  367. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-aht4aafF.js +25 -0
  368. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-CVtiBnY5.js +3 -0
  369. package/codeyam-cli/src/webserver/build/client/assets/LoadingDots-B0GLXMsr.js +6 -0
  370. package/codeyam-cli/src/webserver/build/client/assets/LogViewer-xgeCVgSM.js +3 -0
  371. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-D4TZhLuw.js +21 -0
  372. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-DuDvi0jm.js +1 -0
  373. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-DEx02QDa.js +10 -0
  374. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-COPstp9J.js → TruncatedFilePath-DyFZkK0l.js} +1 -1
  375. package/codeyam-cli/src/webserver/build/client/assets/_index-BwqWJOgH.js +11 -0
  376. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-DoLIqZX2.js +37 -0
  377. package/codeyam-cli/src/webserver/build/client/assets/api.health-l0sNRNKZ.js +1 -0
  378. package/codeyam-cli/src/webserver/build/client/assets/api.restart-server-l0sNRNKZ.js +1 -0
  379. package/codeyam-cli/src/webserver/build/client/assets/api.rules-l0sNRNKZ.js +1 -0
  380. package/codeyam-cli/src/webserver/build/client/assets/chevron-down-Cx24_aWc.js +6 -0
  381. package/codeyam-cli/src/webserver/build/client/assets/chunk-EPOLDU6W-CXRTFQ3F.js +51 -0
  382. package/codeyam-cli/src/webserver/build/client/assets/circle-check-BOARzkeR.js +6 -0
  383. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-BdhJEx6B.js +21 -0
  384. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-C1gnJVOL.svg → cy-logo-cli-CCKUIm0S.svg} +2 -2
  385. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +1 -0
  386. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BRb-0kQl.js +1 -0
  387. package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-C2N4Op8e.js +23 -0
  388. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DavjRmOY.js +6 -0
  389. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-D1T4TGjf.js +6 -0
  390. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-CTBG2mmz.js +5 -0
  391. package/codeyam-cli/src/webserver/build/client/assets/entry.client-CS2cb_eZ.js +29 -0
  392. package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
  393. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-DMJ7zii9.js +1 -0
  394. package/codeyam-cli/src/webserver/build/client/assets/files-Cs4MdYtv.js +1 -0
  395. package/codeyam-cli/src/webserver/build/client/assets/git-B4RJRvYB.js +15 -0
  396. package/codeyam-cli/src/webserver/build/client/assets/git-commit-horizontal-CysbcZxi.js +6 -0
  397. package/codeyam-cli/src/webserver/build/client/assets/globals-DMUaGAqV.css +1 -0
  398. package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-fmIEn3Bc.js +9 -0
  399. package/codeyam-cli/src/webserver/build/client/assets/index-B1h680n5.js +9 -0
  400. package/codeyam-cli/src/webserver/build/client/assets/index-lzqtyFU8.js +3 -0
  401. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-B7B9V-bu.js +6 -0
  402. package/codeyam-cli/src/webserver/build/client/assets/manifest-f874c610.js +1 -0
  403. package/codeyam-cli/src/webserver/build/client/assets/preload-helper-ckwbz45p.js +1 -0
  404. package/codeyam-cli/src/webserver/build/client/assets/root-Bz5TunQg.js +57 -0
  405. package/codeyam-cli/src/webserver/build/client/assets/rules-hEkvVw2-.js +97 -0
  406. package/codeyam-cli/src/webserver/build/client/assets/scenarioStatus-B_8jpV3e.js +1 -0
  407. package/codeyam-cli/src/webserver/build/client/assets/search-CxXUmBSd.js +6 -0
  408. package/codeyam-cli/src/webserver/build/client/assets/settings-CS5f3WzT.js +1 -0
  409. package/codeyam-cli/src/webserver/build/client/assets/simulations-DwFIBT09.js +1 -0
  410. package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-B6LgvRJg.js +6 -0
  411. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-C1v1PQzo.js +1 -0
  412. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-3pmpUQB-.js → useLastLogLine-aSv48UbS.js} +1 -1
  413. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DYxHZQuP.js +1 -0
  414. package/codeyam-cli/src/webserver/build/client/assets/{useToast-DEyawJ8r.js → useToast-mBRpZPiu.js} +1 -1
  415. package/codeyam-cli/src/webserver/build/server/assets/index-967OuJoF.js +1 -0
  416. package/codeyam-cli/src/webserver/build/server/assets/server-build-DRTmerg9.js +257 -0
  417. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  418. package/codeyam-cli/src/webserver/build-info.json +5 -5
  419. package/codeyam-cli/src/webserver/devServer.js +1 -3
  420. package/codeyam-cli/src/webserver/devServer.js.map +1 -1
  421. package/codeyam-cli/src/webserver/server.js +35 -25
  422. package/codeyam-cli/src/webserver/server.js.map +1 -1
  423. package/codeyam-cli/templates/codeyam-power-rules-hook.sh +200 -0
  424. package/codeyam-cli/templates/{codeyam-debug-skill.md → codeyam:debug.md} +48 -4
  425. package/codeyam-cli/templates/codeyam:diagnose.md +650 -0
  426. package/codeyam-cli/templates/codeyam:new-rule.md +13 -0
  427. package/codeyam-cli/templates/codeyam:power-rules.md +447 -0
  428. package/codeyam-cli/templates/{codeyam-setup-skill.md → codeyam:setup.md} +139 -4
  429. package/codeyam-cli/templates/{codeyam-sim-skill.md → codeyam:sim.md} +1 -1
  430. package/codeyam-cli/templates/{codeyam-test-skill.md → codeyam:test.md} +1 -1
  431. package/codeyam-cli/templates/{codeyam-verify-skill.md → codeyam:verify.md} +1 -1
  432. package/package.json +17 -16
  433. package/packages/ai/index.js +5 -4
  434. package/packages/ai/index.js.map +1 -1
  435. package/packages/ai/src/lib/analyzeScope.js +99 -0
  436. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  437. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js +150 -0
  438. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js.map +1 -0
  439. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +100 -1
  440. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  441. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
  442. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
  443. package/packages/ai/src/lib/astScopes/methodSemantics.js +97 -6
  444. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  445. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +8 -0
  446. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -1
  447. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +23 -0
  448. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
  449. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +138 -1
  450. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
  451. package/packages/ai/src/lib/astScopes/processExpression.js +945 -87
  452. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  453. package/packages/ai/src/lib/checkAllAttributes.js +24 -9
  454. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  455. package/packages/ai/src/lib/completionCall.js +178 -31
  456. package/packages/ai/src/lib/completionCall.js.map +1 -1
  457. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1198 -82
  458. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  459. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +2 -1
  460. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  461. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +661 -0
  462. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -0
  463. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +180 -56
  464. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  465. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +16 -1
  466. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  467. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +86 -4
  468. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  469. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +20 -0
  470. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  471. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js +86 -0
  472. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js.map +1 -0
  473. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +34 -3
  474. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  475. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js +107 -0
  476. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js.map +1 -0
  477. package/packages/ai/src/lib/dataStructureChunking.js +111 -0
  478. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -0
  479. package/packages/ai/src/lib/deepEqual.js +32 -0
  480. package/packages/ai/src/lib/deepEqual.js.map +1 -0
  481. package/packages/ai/src/lib/e2eDataTracking.js +241 -0
  482. package/packages/ai/src/lib/e2eDataTracking.js.map +1 -0
  483. package/packages/ai/src/lib/extractCriticalDataKeys.js +96 -0
  484. package/packages/ai/src/lib/extractCriticalDataKeys.js.map +1 -0
  485. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +62 -5
  486. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  487. package/packages/ai/src/lib/generateChangesEntityScenarios.js +81 -90
  488. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  489. package/packages/ai/src/lib/generateEntityDataStructure.js +5 -0
  490. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  491. package/packages/ai/src/lib/generateEntityScenarioData.js +904 -84
  492. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  493. package/packages/ai/src/lib/generateEntityScenarios.js +186 -82
  494. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  495. package/packages/ai/src/lib/generateExecutionFlows.js +392 -0
  496. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
  497. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
  498. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
  499. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +1440 -0
  500. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
  501. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
  502. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js.map +1 -0
  503. package/packages/ai/src/lib/getConditionalUsagesFromCode.js +84 -14
  504. package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -1
  505. package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -1
  506. package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
  507. package/packages/ai/src/lib/isolateScopes.js +231 -4
  508. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  509. package/packages/ai/src/lib/mergeStatements.js +26 -3
  510. package/packages/ai/src/lib/mergeStatements.js.map +1 -1
  511. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +6 -0
  512. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  513. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +1 -1
  514. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  515. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +21 -64
  516. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  517. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js +54 -0
  518. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js.map +1 -0
  519. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +68 -6
  520. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  521. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +10 -34
  522. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  523. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
  524. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
  525. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +16 -3
  526. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
  527. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js +335 -0
  528. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js.map +1 -0
  529. package/packages/ai/src/lib/resolvePathToControllable.js +667 -0
  530. package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
  531. package/packages/ai/src/lib/splitOutsideParentheses.js +3 -1
  532. package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -1
  533. package/packages/ai/src/lib/worker/SerializableDataStructure.js +29 -0
  534. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  535. package/packages/ai/src/lib/worker/analyzeScopeWorker.js +4 -0
  536. package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
  537. package/packages/analyze/src/lib/FileAnalyzer.js +15 -0
  538. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  539. package/packages/analyze/src/lib/analysisContext.js +30 -5
  540. package/packages/analyze/src/lib/analysisContext.js.map +1 -1
  541. package/packages/analyze/src/lib/asts/nodes/index.js +1 -0
  542. package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
  543. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
  544. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
  545. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +218 -50
  546. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  547. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +10 -0
  548. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  549. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +2 -0
  550. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  551. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +31 -7
  552. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  553. package/packages/analyze/src/lib/files/analyzeChange.js +21 -11
  554. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  555. package/packages/analyze/src/lib/files/analyzeEntity.js +9 -8
  556. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  557. package/packages/analyze/src/lib/files/analyzeInitial.js +9 -10
  558. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  559. package/packages/analyze/src/lib/files/enums/steps.js +1 -1
  560. package/packages/analyze/src/lib/files/enums/steps.js.map +1 -1
  561. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +209 -0
  562. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -0
  563. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
  564. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
  565. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +458 -48
  566. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  567. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js +1 -1
  568. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js.map +1 -1
  569. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +29 -34
  570. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
  571. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +264 -78
  572. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  573. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +96 -0
  574. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
  575. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +56 -69
  576. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  577. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +4 -8
  578. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  579. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +372 -89
  580. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  581. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +46 -9
  582. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -1
  583. package/packages/aws/src/lib/ecs/ecsDefineContainer.js +2 -2
  584. package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  585. package/packages/aws/src/lib/ecs/ecsTaskFactory.js +17 -61
  586. package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  587. package/packages/database/src/lib/kysely/db.js +2 -2
  588. package/packages/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
  589. package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  590. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
  591. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  592. package/packages/generate/index.js +3 -0
  593. package/packages/generate/index.js.map +1 -1
  594. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  595. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  596. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  597. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  598. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  599. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  600. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +8 -4
  601. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  602. package/packages/generate/src/lib/deepMerge.js +27 -1
  603. package/packages/generate/src/lib/deepMerge.js.map +1 -1
  604. package/packages/generate/src/lib/scenarioComponentForServer.js +89 -0
  605. package/packages/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  606. package/packages/github/src/lib/loadOrCreateCommit.js +10 -0
  607. package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -1
  608. package/packages/github/src/lib/syncPrimaryBranch.js +3 -0
  609. package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -1
  610. package/packages/process/index.js +3 -0
  611. package/packages/process/index.js.map +1 -0
  612. package/packages/process/src/GlobalProcessManager.js.map +1 -0
  613. package/{background/src/lib/process → packages/process/src}/ProcessManager.js +1 -1
  614. package/packages/process/src/ProcessManager.js.map +1 -0
  615. package/packages/process/src/index.js.map +1 -0
  616. package/packages/process/src/managedExecAsync.js.map +1 -0
  617. package/packages/types/index.js.map +1 -1
  618. package/packages/utils/src/lib/lightweightEntityExtractor.js +25 -0
  619. package/packages/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
  620. package/packages/utils/src/lib/safeFileName.js +29 -3
  621. package/packages/utils/src/lib/safeFileName.js.map +1 -1
  622. package/scripts/finalize-analyzer.cjs +6 -4
  623. package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +0 -102
  624. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +0 -197
  625. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +0 -271
  626. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +0 -294
  627. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +0 -67
  628. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +0 -115
  629. package/analyzer-template/process/INTEGRATION_COMPLETE.md +0 -333
  630. package/analyzer-template/process/INTEGRATION_EXAMPLE.md +0 -525
  631. package/analyzer-template/process/README.md +0 -507
  632. package/background/src/lib/process/GlobalProcessManager.js.map +0 -1
  633. package/background/src/lib/process/ProcessManager.js.map +0 -1
  634. package/background/src/lib/process/index.js.map +0 -1
  635. package/background/src/lib/process/managedExecAsync.js.map +0 -1
  636. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +0 -238
  637. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +0 -1
  638. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-CVbSvOjo.js +0 -1
  639. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-DcwcHyl5.js +0 -1
  640. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-WgwC1GfJ.js +0 -26
  641. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-IEKom9O2.js +0 -3
  642. package/codeyam-cli/src/webserver/build/client/assets/LogViewer-BYnfxbUG.js +0 -3
  643. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-_lBPJCzG.js +0 -1
  644. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-lHVhvsu_.js +0 -1
  645. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-d_TBk4GQ.js +0 -5
  646. package/codeyam-cli/src/webserver/build/client/assets/_index-kGT7VUqj.js +0 -1
  647. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-DDGmhu7P.js +0 -7
  648. package/codeyam-cli/src/webserver/build/client/assets/chevron-down-n_HPRfM_.js +0 -1
  649. package/codeyam-cli/src/webserver/build/client/assets/chunk-WWGJGFF6-CbVoyx1U.js +0 -26
  650. package/codeyam-cli/src/webserver/build/client/assets/circle-check-D1VOYveA.js +0 -1
  651. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-YR8jjAlu.js +0 -1
  652. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-B8vP3V_s.js +0 -1
  653. package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-CN6aLCT1.js +0 -16
  654. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DA5Jeu2P.js +0 -1
  655. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-BTeitalf.js +0 -5
  656. package/codeyam-cli/src/webserver/build/client/assets/entry.client-du6UEYD-.js +0 -13
  657. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-BpjkhMoi.js +0 -1
  658. package/codeyam-cli/src/webserver/build/client/assets/files-BQGvk4lJ.js +0 -1
  659. package/codeyam-cli/src/webserver/build/client/assets/git-DVdYRT-I.js +0 -12
  660. package/codeyam-cli/src/webserver/build/client/assets/globals-CO-U8Bpo.css +0 -1
  661. package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-XQCGvadH.js +0 -5
  662. package/codeyam-cli/src/webserver/build/client/assets/index-DCG-vks0.js +0 -1
  663. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-GazdNeLl.js +0 -1
  664. package/codeyam-cli/src/webserver/build/client/assets/manifest-0b694d28.js +0 -1
  665. package/codeyam-cli/src/webserver/build/client/assets/root-D3tQP7hx.js +0 -16
  666. package/codeyam-cli/src/webserver/build/client/assets/search-CIY6XmtE.js +0 -1
  667. package/codeyam-cli/src/webserver/build/client/assets/server-build-CMKNK2uU.css +0 -1
  668. package/codeyam-cli/src/webserver/build/client/assets/settings-CoMDgElu.js +0 -1
  669. package/codeyam-cli/src/webserver/build/client/assets/simulations-agkniXp2.js +0 -1
  670. package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-B2VUcygF.js +0 -1
  671. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-EvdK-zXP.js +0 -1
  672. package/codeyam-cli/src/webserver/build/server/assets/index-DGVHQEXD.js +0 -1
  673. package/codeyam-cli/src/webserver/build/server/assets/server-build-CghkTkIL.js +0 -166
  674. package/codeyam-cli/templates/debug-command.md +0 -303
  675. package/packages/ai/src/lib/findMatchingAttribute.js +0 -77
  676. package/packages/ai/src/lib/findMatchingAttribute.js.map +0 -1
  677. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +0 -136
  678. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +0 -1
  679. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +0 -220
  680. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +0 -1
  681. package/packages/ai/src/lib/generateEntityKeyAttributes.js +0 -241
  682. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +0 -1
  683. package/packages/ai/src/lib/isFrontend.js +0 -5
  684. package/packages/ai/src/lib/isFrontend.js.map +0 -1
  685. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +0 -40
  686. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +0 -1
  687. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +0 -72
  688. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +0 -1
  689. /package/analyzer-template/{process → packages/process/src}/GlobalProcessManager.ts +0 -0
  690. /package/analyzer-template/{process → packages/process/src}/ProcessManager.ts +0 -0
  691. /package/analyzer-template/{process → packages/process/src}/index.ts +0 -0
  692. /package/analyzer-template/{process → packages/process/src}/managedExecAsync.ts +0 -0
  693. /package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-CMKNK2uU.css → styles-CMKNK2uU.css} +0 -0
  694. /package/{background/src/lib/process → packages/process/src}/GlobalProcessManager.js +0 -0
  695. /package/{background/src/lib/process → packages/process/src}/index.js +0 -0
  696. /package/{background/src/lib/process → packages/process/src}/managedExecAsync.js +0 -0
@@ -1,220 +0,0 @@
1
- import completionCall from "./completionCall.js";
2
- import { saveLlmCall } from "../../../../packages/aws/dynamodb/index.js";
3
- import generateEntityKeyAttributesGenerator from "./promptGenerators/generateEntityKeyAttributesGenerator.js";
4
- import { awsLog } from "../../../../packages/utils/index.js";
5
- import { DEFAULT_LARGER_MODEL } from "../../../../packages/ai/index.js";
6
- import isFrontend from "./isFrontend.js";
7
- import { gatherAttributesMap } from "./promptGenerators/gatherAttributesMap.js";
8
- export default async function generateChangesEntityKeyAttributes({ entity, existingKeyAttributes, analysis, commitDiff, model, }) {
9
- awsLog(`CodeYam: Generating entity key attributes`, {
10
- filePath: entity.filePath,
11
- entityName: entity.name,
12
- analysisId: analysis.id,
13
- existingKeyAttributes: existingKeyAttributes?.map((a) => a.externalPath),
14
- });
15
- const isolatedDataStructure = entity.metadata?.isolatedDataStructure;
16
- const mergedDataStructure = analysis.metadata.mergedDataStructure;
17
- const equivalentSignatureVariables = isolatedDataStructure?.equivalentSignatureVariables ?? {};
18
- const { attributesMap, associationMap, dataStructurePathMap } = gatherAttributesMap(isolatedDataStructure ?? mergedDataStructure, mergedDataStructure, equivalentSignatureVariables, true);
19
- const prompt = generateEntityKeyAttributesGenerator({
20
- code: entity.code,
21
- attributesMap,
22
- existingKeyAttributes,
23
- commitDiff,
24
- });
25
- const response = await completionCall({
26
- type: `generateChangesEntityKeyAttributes`,
27
- systemMessage: isFrontend(entity.filePath)
28
- ? FRONTEND_SYSTEM_MESSAGE
29
- : BACKEND_SYSTEM_MESSAGE,
30
- prompt,
31
- model: model ?? DEFAULT_LARGER_MODEL,
32
- });
33
- const llmCall = await saveLlmCall({
34
- object_type: 'analysis',
35
- object_id: analysis.id,
36
- propsJson: {
37
- entity: {
38
- name: entity.name,
39
- filePath: entity.filePath,
40
- code: entity.code,
41
- },
42
- analysis: {
43
- id: analysis.id,
44
- metadata: {
45
- isolatedDataStructure: entity.metadata.isolatedDataStructure,
46
- keyAttributes: analysis.metadata?.keyAttributes ?? [],
47
- },
48
- },
49
- commitDiff,
50
- model,
51
- },
52
- ...response.stats,
53
- });
54
- const { completion: keyAttributesString } = response;
55
- if (!keyAttributesString) {
56
- console.log(`CodeYam Error: Error Generating changes entity key attributes failed: No response from AI`);
57
- return null;
58
- }
59
- awsLog(`LLMCall ${llmCall ? llmCall.id : 'N/A'}: ${entity.filePath} ${entity.name} changes key attributes :>> `, keyAttributesString);
60
- const { addedKeyAttributes, removedKeyAttributes } = JSON.parse(keyAttributesString);
61
- const keyAttributes = [
62
- ...(existingKeyAttributes ?? []),
63
- ];
64
- for (const addedKeyAttribute of addedKeyAttributes ?? []) {
65
- const internalPath = addedKeyAttribute.path;
66
- const index = keyAttributes.findIndex((a) => a.internalPath === internalPath);
67
- const fullKeyAttribute = {
68
- internalPath,
69
- externalPath: associationMap[internalPath],
70
- dataStructurePath: dataStructurePathMap[internalPath] || internalPath,
71
- description: addedKeyAttribute.description,
72
- validValueOptions: addedKeyAttribute.validValueOptions,
73
- errorValueOptions: addedKeyAttribute.errorValueOptions,
74
- // Preserve new fields from LLM response
75
- valueType: addedKeyAttribute.valueType,
76
- dependencies: addedKeyAttribute.dependencies,
77
- };
78
- if (index !== -1) {
79
- keyAttributes.splice(index, 1, fullKeyAttribute);
80
- }
81
- else {
82
- keyAttributes.push(fullKeyAttribute);
83
- }
84
- }
85
- for (const removedKeyAttribute of removedKeyAttributes ?? []) {
86
- const internalPath = typeof removedKeyAttribute === 'string'
87
- ? removedKeyAttribute
88
- : removedKeyAttribute.path;
89
- const index = keyAttributes.findIndex((a) => a.internalPath === internalPath);
90
- if (index !== -1) {
91
- keyAttributes.splice(index, 1);
92
- }
93
- }
94
- const sortedUniqueKeyAttributes = keyAttributes
95
- .filter((keyAttribute, index, self) => self.findIndex((ka) => ka.internalPath === keyAttribute.internalPath) === index)
96
- .filter((keyAttribute) => attributesMap[keyAttribute.internalPath]);
97
- return {
98
- keyAttributes: sortedUniqueKeyAttributes,
99
- llmCall,
100
- };
101
- }
102
- const FRONTEND_SYSTEM_MESSAGE = `You are updating the key attributes for a frontend component that was recently changed.
103
-
104
- This is an INCREMENTAL update. Existing key attributes should be preserved unless the code change clearly invalidates them. Removing and re-adding attributes across changes causes unnecessary churn.
105
-
106
- ## Stability Rules
107
-
108
- - REMOVE only if the attribute is clearly no longer used (variable deleted, conditional removed, no longer referenced)
109
- - KEEP marginal attributes—if unsure, preserve rather than remove
110
- - ADD new attributes freely when warranted
111
-
112
- ## What Makes a Key Attribute
113
-
114
- A key attribute is a data path from "Attributes and Value Types" that dramatically changes how the component renders:
115
-
116
- - Controls a conditional that shows/hides significant UI sections
117
- - Changes the component's primary visual state (not just minor text differences)
118
- - Determines which branch of rendering logic executes
119
-
120
- NOT key attributes:
121
- - Values that only affect non-visible behavior (hrefs, image srcs)
122
- - Fallback values that won't be used if primary values exist
123
- - Values that would cause errors if changed
124
-
125
- Note: A conditional that shows a different UI state (e.g., loading screen, redirect message) IS significant—include it. Only exclude guard clauses that render literally nothing.
126
-
127
- ## Path Format
128
-
129
- Only return attributes from the "Attributes and Value Types" list—these are the only values we can control. Use the exact path provided. Use \`functionCallReturnValue\` for function return values. Use \`[]\` for array items (e.g., \`items[]\`).
130
-
131
- ## Dependencies
132
-
133
- If this key attribute is only used if one or more other attributes have specific values, include those dependencies in a \`dependencies\` array.
134
-
135
- ## Value Type
136
-
137
- Should reiterate the type of the attribute (e.g., "string", "object", "array", "boolean", etc.) based on the "Attributes and Value Types" list.
138
-
139
- ## Response Format
140
-
141
- For \`validValueOptions\`, include boundary/extreme values that trigger different behavior—but NOT values that would cause errors.
142
-
143
- \`\`\`json
144
- {
145
- "addedKeyAttributes": [
146
- {
147
- "path": "user",
148
- "description": "Controls whether the main form or redirect screen displays",
149
- "dependencies": [
150
- { "projectId": "must be a valid project ID for 'user' to have effect" }
151
- ],
152
- "valueType": "object",
153
- "validValueOptions": ["truthy user object", "null/undefined"]
154
- }
155
- ],
156
- "removedKeyAttributes": ["oldAttribute.path"]
157
- }
158
- \`\`\`
159
-
160
- Return empty arrays if no changes needed.
161
- `;
162
- const BACKEND_SYSTEM_MESSAGE = `You are updating the key attributes for a backend function that was recently changed.
163
-
164
- This is an INCREMENTAL update. Existing key attributes should be preserved unless the code change clearly invalidates them. Removing and re-adding attributes across changes causes unnecessary churn.
165
-
166
- ## Stability Rules
167
-
168
- - REMOVE only if the attribute is clearly no longer used (variable deleted, conditional removed, no longer referenced)
169
- - KEEP marginal attributes—if unsure, preserve rather than remove
170
- - ADD new attributes freely when warranted
171
-
172
- ## What Makes a Key Attribute
173
-
174
- A key attribute is a data path from "Attributes and Value Types" that dramatically changes the function's behavior:
175
-
176
- - Controls a conditional that significantly alters execution flow or return value
177
- - Determines which branch of logic executes
178
- - For side-effect functions: changes how external systems are called (database, email, etc.)
179
-
180
- NOT key attributes:
181
- - Fallback values that won't be used if primary values exist
182
- - Values that would cause errors if changed
183
- - Guard clauses that return nothing/minimal data
184
-
185
- ## Path Format
186
-
187
- Only return attributes from the "Attributes and Value Types" list—these are the only values we can control. Use the exact path provided. Use \`functionCallReturnValue\` for function return values. Use \`[]\` for array items (e.g., \`items[]\`).
188
-
189
- ## Dependencies
190
-
191
- If this key attribute is only used if one or more other attributes have specific values, include those dependencies in a \`dependencies\` array.
192
-
193
- ## Value Type
194
-
195
- Should reiterate the type of the attribute (e.g., "string", "object", "array", "boolean", etc.) based on the "Attributes and Value Types" list.
196
-
197
- ## Response Format
198
-
199
- For \`validValueOptions\`, include boundary/extreme values that trigger different behavior—but NOT values that would cause errors.
200
-
201
- \`\`\`json
202
- {
203
- "addedKeyAttributes": [
204
- {
205
- "path": "config.enabled",
206
- "description": "Controls whether the main processing logic runs",
207
- "dependencies": [
208
- { "analysisMode": "must be 'full' for 'enabled' to have effect" }
209
- ],
210
- "valueType": "boolean",
211
- "validValueOptions": ["true", "false"]
212
- }
213
- ],
214
- "removedKeyAttributes": ["oldAttribute.path"]
215
- }
216
- \`\`\`
217
-
218
- Return empty arrays if no changes needed.
219
- `;
220
- //# sourceMappingURL=generateChangesEntityKeyAttributes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateChangesEntityKeyAttributes.js","sourceRoot":"","sources":["../../../../../../packages/ai/src/lib/generateChangesEntityKeyAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,oCAAoC,MAAM,yDAAyD,CAAC;AAC3G,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAM,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAU7E,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,kCAAkC,CAAC,EAC/D,MAAM,EACN,qBAAqB,EACrB,QAAQ,EACR,UAAU,EACV,KAAK,GACkC;IACvC,MAAM,CAAC,2CAA2C,EAAE;QAClD,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,UAAU,EAAE,MAAM,CAAC,IAAI;QACvB,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,qBAAqB,EAAE,qBAAqB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;KACzE,CAAC,CAAC;IAEH,MAAM,qBAAqB,GAAG,MAAM,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACrE,MAAM,mBAAmB,GAAG,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAClE,MAAM,4BAA4B,GAChC,qBAAqB,EAAE,4BAA4B,IAAI,EAAE,CAAC;IAC5D,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,oBAAoB,EAAE,GAC3D,mBAAmB,CACjB,qBAAqB,IAAI,mBAAmB,EAC5C,mBAAmB,EACnB,4BAA4B,EAC5B,IAAI,CACL,CAAC;IAEJ,MAAM,MAAM,GAAG,oCAAoC,CAAC;QAClD,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,aAAa;QACb,qBAAqB;QACrB,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC;QACpC,IAAI,EAAE,oCAAoC;QAC1C,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC;YACxC,CAAC,CAAC,uBAAuB;YACzB,CAAC,CAAC,sBAAsB;QAC1B,MAAM;QACN,KAAK,EAAE,KAAK,IAAI,oBAAoB;KACrC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC;QAChC,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,QAAQ,CAAC,EAAE;QACtB,SAAS,EAAE;YACT,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB;YACD,QAAQ,EAAE;gBACR,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,QAAQ,EAAE;oBACR,qBAAqB,EAAE,MAAM,CAAC,QAAQ,CAAC,qBAAqB;oBAC5D,aAAa,EAAE,QAAQ,CAAC,QAAQ,EAAE,aAAa,IAAI,EAAE;iBACtD;aACF;YACD,UAAU;YACV,KAAK;SACN;QACD,GAAG,QAAQ,CAAC,KAAK;KAClB,CAAC,CAAC;IAEH,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,QAAQ,CAAC;IACrD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CACT,2FAA2F,CAC5F,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CACJ,WAAW,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,8BAA8B,EACxG,mBAAmB,CACpB,CAAC;IAEF,MAAM,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,GAChD,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAElC,MAAM,aAAa,GAA0C;QAC3D,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC;KACjC,CAAC;IAEF,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,IAAI,EAAE,EAAE,CAAC;QACzD,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC;QAC5C,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,YAAY,CACvC,CAAC;QACF,MAAM,gBAAgB,GAAG;YACvB,YAAY;YACZ,YAAY,EAAE,cAAc,CAAC,YAAY,CAAC;YAC1C,iBAAiB,EAAE,oBAAoB,CAAC,YAAY,CAAC,IAAI,YAAY;YACrE,WAAW,EAAE,iBAAiB,CAAC,WAAW;YAC1C,iBAAiB,EAAE,iBAAiB,CAAC,iBAAiB;YACtD,iBAAiB,EAAE,iBAAiB,CAAC,iBAAiB;YACtD,wCAAwC;YACxC,SAAS,EAAE,iBAAiB,CAAC,SAAS;YACtC,YAAY,EAAE,iBAAiB,CAAC,YAAY;SAC7C,CAAC;QACF,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,KAAK,MAAM,mBAAmB,IAAI,oBAAoB,IAAI,EAAE,EAAE,CAAC;QAC7D,MAAM,YAAY,GAChB,OAAO,mBAAmB,KAAK,QAAQ;YACrC,CAAC,CAAC,mBAAmB;YACrB,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC;QAC/B,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,YAAY,CACvC,CAAC;QACF,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,MAAM,yBAAyB,GAAG,aAAa;SAC5C,MAAM,CACL,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAC5B,IAAI,CAAC,SAAS,CACZ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,KAAK,YAAY,CAAC,YAAY,CACtD,KAAK,KAAK,CACd;SACA,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;IAEtE,OAAO;QACL,aAAa,EAAE,yBAAyB;QACxC,OAAO;KACR,CAAC;AACJ,CAAC;AAED,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2D/B,CAAC;AAEF,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyD9B,CAAC"}
@@ -1,241 +0,0 @@
1
- import completionCall from "./completionCall.js";
2
- import { saveLlmCall } from "../../../../packages/aws/dynamodb/index.js";
3
- import generateEntityKeyAttributesGenerator from "./promptGenerators/generateEntityKeyAttributesGenerator.js";
4
- import { awsLog } from "../../../../packages/utils/index.js";
5
- import { DEFAULT_LARGER_MODEL } from "./aiConfig.js";
6
- import { gatherAttributesMap } from "./promptGenerators/gatherAttributesMap.js";
7
- import { fillInDirectSchemaGapsAndUnknowns } from "./dataStructure/helpers/fillInSchemaGapsAndUnknowns.js";
8
- import isFrontend from "./isFrontend.js";
9
- import { formatConditionalUsagesForPrompt } from "./getConditionalUsagesFromCode.js";
10
- export default async function generateEntityKeyAttributes({ entity, mergedDataStructure, model, }) {
11
- awsLog(`CodeYam: Generating entity key attributes`, {
12
- filePath: entity.filePath,
13
- entityName: entity.name,
14
- });
15
- const isolatedDataStructure = entity.metadata?.isolatedDataStructure;
16
- const equivalentSignatureVariables = isolatedDataStructure?.equivalentSignatureVariables ?? {};
17
- const { attributesMap, associationMap, dataStructurePathMap } = gatherAttributesMap(isolatedDataStructure ?? mergedDataStructure, mergedDataStructure, equivalentSignatureVariables, true);
18
- if (Object.keys(attributesMap).length === 0) {
19
- console.log(`CodeYam Error: No valid attributes found for ${entity.filePath} ${entity.name}`);
20
- return {
21
- keyAttributes: [],
22
- llmCall: null,
23
- };
24
- }
25
- // Resolve unknown types using heuristics (e.g., "unknown | undefined" -> "string | undefined")
26
- const resolvedAttributesMap = fillInDirectSchemaGapsAndUnknowns({
27
- scopeName: entity.name,
28
- schema: { ...attributesMap },
29
- });
30
- // Use pre-computed conditional usages from metadata, or compute on-the-fly as fallback
31
- const conditionalUsages = entity.metadata?.isolatedDataStructure?.conditionalUsages ?? {};
32
- const staticAnalysisContext = formatConditionalUsagesForPrompt(conditionalUsages);
33
- const prompt = generateEntityKeyAttributesGenerator({
34
- code: entity.code,
35
- attributesMap: resolvedAttributesMap,
36
- associationMap,
37
- staticAnalysisContext,
38
- });
39
- console.log('Generated prompt for generateEntityKeyAttributes:');
40
- console.log(prompt);
41
- const response = await completionCall({
42
- type: `generateEntityKeyAttributes`,
43
- systemMessage: isFrontend(entity.filePath)
44
- ? FRONTEND_SYSTEM_MESSAGE
45
- : BACKEND_SYSTEM_MESSAGE,
46
- prompt,
47
- model: model ?? DEFAULT_LARGER_MODEL,
48
- });
49
- const llmCall = await saveLlmCall({
50
- object_type: 'entity',
51
- object_id: entity.sha,
52
- propsJson: {
53
- entity: {
54
- name: entity.name,
55
- filePath: entity.filePath,
56
- code: entity.code,
57
- metadata: {
58
- isolatedDataStructure: entity.metadata.isolatedDataStructure,
59
- },
60
- },
61
- model,
62
- },
63
- ...response.stats,
64
- });
65
- const { completion: keyAttributesString } = response;
66
- if (!keyAttributesString) {
67
- console.log(`CodeYam Error: Error Generating entity key attributes failed: No response from AI`);
68
- return null;
69
- }
70
- console.log(`LLMCall ${llmCall ? llmCall.id : 'N/A'}: ${entity.filePath} ${entity.name} key attributes :>> `);
71
- console.log(keyAttributesString);
72
- let keyAttributes = undefined;
73
- try {
74
- const parsed = JSON.parse(keyAttributesString);
75
- keyAttributes = parsed?.keyAttributes;
76
- }
77
- catch (error) {
78
- console.log(`CodeYam Error: Invalid JSON response in generateEntityKeyAttributes for ${entity.filePath} ${entity.name}:`, error);
79
- }
80
- if (!keyAttributes || !Array.isArray(keyAttributes)) {
81
- return { keyAttributes: [], llmCall };
82
- }
83
- // Create reverse lookup: fullPath → internalPath
84
- // associationMap is keyed by internalPath with value fullPath (when reverse=true)
85
- const fullPathToInternalPath = Object.fromEntries(Object.entries(associationMap).map(([internalPath, fullPath]) => [
86
- fullPath,
87
- internalPath,
88
- ]));
89
- const fullKeyAttributes = keyAttributes
90
- .filter(Boolean)
91
- .filter((keyAttribute, index, self) => keyAttribute?.fullPath &&
92
- self.findIndex((ka) => ka?.fullPath === keyAttribute.fullPath) ===
93
- index)
94
- .filter((keyAttribute) => fullPathToInternalPath[keyAttribute.fullPath])
95
- .map((keyAttribute) => {
96
- const internalPath = fullPathToInternalPath[keyAttribute.fullPath];
97
- return {
98
- internalPath,
99
- externalPath: associationMap[internalPath],
100
- dataStructurePath: dataStructurePathMap[internalPath] || keyAttribute.fullPath,
101
- description: keyAttribute.description,
102
- validValueOptions: keyAttribute.validValueOptions,
103
- errorValueOptions: keyAttribute.errorValueOptions,
104
- // Preserve new fields from LLM response
105
- valueType: keyAttribute.valueType,
106
- dependencies: keyAttribute.dependencies,
107
- };
108
- });
109
- return {
110
- keyAttributes: fullKeyAttributes,
111
- llmCall,
112
- };
113
- }
114
- const FRONTEND_SYSTEM_MESSAGE = `You analyze frontend components to identify key data attributes that significantly impact rendering.
115
-
116
- ## What Makes a Key Attribute
117
-
118
- A key attribute is a data path from "Attributes and Value Types" that dramatically changes how the component renders:
119
-
120
- - Controls a conditional that shows/hides significant UI sections
121
- - Changes the component's primary visual state (not just minor text differences)
122
- - Determines which branch of rendering logic executes
123
-
124
- NOT key attributes:
125
- - Values that only affect non-visible behavior (hrefs, image srcs)
126
- - Fallback values that won't be used if primary values exist
127
- - Values that would cause errors if changed
128
- - Guard clauses that render literally nothing
129
-
130
- ## Conditional Key Attributes
131
-
132
- We've provided a list of variables that are used in conditional statements in the code. These are very likely key attributes.
133
-
134
- Each conditional lists it's source and how it is used. This should help you identify which attributes to include and what values to suggest.
135
-
136
- ## Path Format
137
-
138
- Only return attributes from the "Attributes and Value Types" list — these are the only values we can control. Use the exact \`fullPath\` provided. Use \`functionCallReturnValue\` for function return values. Use \`[]\` for array items (e.g., \`items[]\`).
139
-
140
- ## Dependencies
141
-
142
- If this key attribute is only used if one or more other attributes have specific values, include those dependencies in a \`dependencies\` array.
143
-
144
- ## Value Type
145
-
146
- Should reiterate the type of the attribute (e.g., "string", "object", "array", "boolean", etc.) based on the "Attributes and Value Types" list.
147
-
148
- All validValueOptions must be of this type.
149
-
150
- ## Valid Value Options
151
-
152
- - For \`validValueOptions\`, include boundary/extreme values that trigger different behavior
153
- - Each of the \`validValueOptions\` must be the exact type that we provide in "Attributes and Value Types".
154
- - Be very specific with values. Do not make them ambiguous in any way
155
- — Do NOT include values that would cause unexpected/unhandled errors.
156
- - Ensure all values or value ranges that will trigger different rendering behavior are included
157
-
158
- ## Response Format
159
-
160
- List all key attributes in order from most impactful to least impactful regarding how dramatically they will change the rendering of the component using the following format:
161
-
162
- \`\`\`json
163
- {
164
- "keyAttributes": [
165
- {
166
- "fullPath": "signature[0].user",
167
- "description": "Controls whether the main form or redirect screen displays",
168
- "dependencies": [
169
- "signature[0].projectId": "must be a valid project ID for 'user' to have effect"
170
- ],
171
- "valueType": "object",
172
- "validValueOptions": ["an empty object {}", "null/undefined"]
173
- }
174
- ]
175
- }
176
- \`\`\`
177
- `;
178
- const BACKEND_SYSTEM_MESSAGE = `You analyze backend functions to identify key data attributes that significantly impact behavior.
179
-
180
- ## What Makes a Key Attribute
181
-
182
- A key attribute is a data path from "Attributes and Value Types" that dramatically changes the function's behavior:
183
-
184
- - Controls a conditional that significantly alters execution flow or return value
185
- - Determines which branch of logic executes
186
- - For side-effect functions: changes how external systems are called (database, email, etc.)
187
-
188
- NOT key attributes:
189
- - Fallback values that won't be used if primary values exist
190
- - Values that would cause errors if changed
191
- - Guard clauses that return nothing/minimal data
192
-
193
- ## Conditional Key Attributes
194
-
195
- We've provided a list of variables that are used in conditional statements in the code. These are very likely key attributes.
196
-
197
- Each conditional lists it's source and how it is used. This should help you identify which attributes to include and what values to suggest.
198
-
199
- ## Path Format
200
-
201
- Only return attributes from the "Attributes and Value Types" list — these are the only values we can control. Use the exact \`fullPath\` provided. Use \`functionCallReturnValue\` for function return values. Use \`[]\` for array items (e.g., \`items[]\`).
202
-
203
- ## Dependencies
204
-
205
- If this key attribute is only used if one or more other attributes have specific values, include those dependencies in a \`dependencies\` array.
206
-
207
- ## Value Type
208
-
209
- Should reiterate the type of the attribute (e.g., "string", "object", "array", "boolean", etc.) based on the "Attributes and Value Types" list.
210
-
211
- All validValueOptions must be of this type.
212
-
213
- ## Valid Value Options
214
-
215
- - For \`validValueOptions\`, include boundary/extreme values that trigger different behavior
216
- - Each of the \`validValueOptions\` must be the exact type that we provide in "Attributes and Value Types".
217
- - Be very specific with values. Do not make them ambiguous in any way
218
- — Do NOT include values that would cause unexpected/unhandled errors.
219
- - Ensure all values or value ranges that will trigger different rendering behavior are included
220
-
221
- ## Response Format
222
-
223
- List all key attributes in order from most impactful to least impactful using the following format:
224
-
225
- \`\`\`json
226
- {
227
- "keyAttributes": [
228
- {
229
- "fullPath": "signature[0].config.enabled",
230
- "description": "Controls whether the main processing logic runs",
231
- "dependencies": [
232
- "signature[0].analysisMode": "must be 'full' for 'enabled' to have effect"
233
- ],
234
- "valueType": "boolean",
235
- "validValueOptions": ["true", "false"]
236
- }
237
- ]
238
- }
239
- \`\`\`
240
- `;
241
- //# sourceMappingURL=generateEntityKeyAttributes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateEntityKeyAttributes.js","sourceRoot":"","sources":["../../../../../../packages/ai/src/lib/generateEntityKeyAttributes.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export default function isFrontend(filePath) {
2
- const frontendExtensions = ['.jsx', '.tsx'];
3
- return frontendExtensions.some((ext) => filePath.endsWith(ext));
4
- }
5
- //# sourceMappingURL=isFrontend.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isFrontend.js","sourceRoot":"","sources":["../../../../../../packages/ai/src/lib/isFrontend.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,QAAgB;IACjD,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE,CAAC"}
@@ -1,40 +0,0 @@
1
- export default function generateEntityKeyAttributesGenerator({ code, attributesMap, associationMap = {}, existingKeyAttributes, commitDiff, staticAnalysisContext, }) {
2
- // Build the new format: "fullPath": { variableName: "name", type: "type" }
3
- const formattedAttributes = Object.entries(attributesMap)
4
- .sort((a, b) => a[0].localeCompare(b[0]))
5
- .map(([variableName, type]) => {
6
- const fullPath = associationMap[variableName] || variableName;
7
- return `"${variableName}":\n {\n fullPath: "${fullPath}",\n type: "${type}"\n }`;
8
- })
9
- .join('\n');
10
- return `Attributes and Value Types:
11
-
12
- \`\`\`
13
- ${formattedAttributes}
14
- \`\`\`
15
- ${staticAnalysisContext ? `\n\nConditional Key Attributes:\n\`\`\`${staticAnalysisContext}\`\`\`\n\n` : ''}
16
- ${existingKeyAttributes
17
- ? `
18
- Existing Key Attributes:
19
- \`\`\`
20
- ${JSON.stringify(existingKeyAttributes.filter((attr) => attributesMap[attr.internalPath]), null, 2)}
21
- \`\`\`
22
-
23
- `
24
- : ``}
25
- ${commitDiff
26
- ? `
27
- Code Change:
28
- \`\`\`
29
- ${commitDiff}
30
- \`\`\`
31
-
32
- `
33
- : ''}
34
- Code:
35
- \`\`\`
36
- ${code}
37
- \`\`\`
38
- `;
39
- }
40
- //# sourceMappingURL=generateEntityKeyAttributesGenerator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateEntityKeyAttributesGenerator.js","sourceRoot":"","sources":["../../../../../../../packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,OAAO,UAAU,oCAAoC,CAAC,EAC3D,IAAI,EACJ,aAAa,EACb,cAAc,GAAG,EAAE,EACnB,qBAAqB,EACrB,UAAU,EACV,qBAAqB,GACoB;IACzC,2EAA2E;IAC3E,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;SACtD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE;QAC5B,MAAM,QAAQ,GAAG,cAAc,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC;QAC9D,OAAO,IAAI,YAAY,2BAA2B,QAAQ,kBAAkB,IAAI,QAAQ,CAAC;IAC3F,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;;;EAGP,mBAAmB;;EAEnB,qBAAqB,CAAC,CAAC,CAAC,0CAA0C,qBAAqB,YAAY,CAAC,CAAC,CAAC,EAAE;EAExG,qBAAqB;QACnB,CAAC,CAAC;;;EAGJ,IAAI,CAAC,SAAS,CACd,qBAAqB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EACxE,IAAI,EACJ,CAAC,CACF;;;CAGA;QACG,CAAC,CAAC,EACN;EAEE,UAAU;QACR,CAAC,CAAC;;;EAGJ,UAAU;;;CAGX;QACG,CAAC,CAAC,EACN;;;EAGE,IAAI;;CAEL,CAAC;AACF,CAAC"}
@@ -1,72 +0,0 @@
1
- import { DEFAULT_SCENARIO_NAME, } from "../../../../../../packages/types/index.js";
2
- import measureAndReportExecutionTime from "../../utils/measureAndReportExecutionTime.js";
3
- import { generateEntityKeyAttributes } from "../../../../../../packages/ai/index.js";
4
- import { awsLog } from "../../../../../../packages/utils/index.js";
5
- import { gatherRelevantDependentKeyAttributes } from "../../../../../../packages/ai/index.js";
6
- import { gatherDataForMocks } from "./generateScenarioData.js";
7
- export default async function generateKeyAttributes({ entity, analysis, dependentAnalyses, error, model, updateProgress, }) {
8
- var _a;
9
- if (!['visual', 'library'].includes(entity.entityType))
10
- return;
11
- // Merge direct dataForMocks with recursively gathered data from dependencies
12
- const structure = {
13
- arguments: analysis.metadata.scenariosDataStructure?.arguments ?? [],
14
- dataForMocks: {
15
- ...(analysis.metadata.scenariosDataStructure?.dataForMocks ?? {}),
16
- ...gatherDataForMocks(analysis, dependentAnalyses),
17
- },
18
- };
19
- awsLog(`🔮 Generating ${error ? 'error ' : ''}scenarios for`, {
20
- filePath: entity.filePath,
21
- entityName: entity.name,
22
- structure,
23
- });
24
- if (!structure ||
25
- (Object.keys(structure.dataForMocks ?? {}).length === 0 &&
26
- (structure.arguments ?? []).length === 0)) {
27
- if (!error) {
28
- analysis.scenarios = [
29
- {
30
- projectId: analysis.projectId,
31
- analysisId: analysis.id,
32
- name: DEFAULT_SCENARIO_NAME,
33
- description: 'The only external state the component can be in.',
34
- metadata: {
35
- testName: 'it("renders correctly")',
36
- keyAttributeInstructions: {},
37
- },
38
- },
39
- ];
40
- }
41
- return;
42
- }
43
- if (!analysis.metadata.keyAttributes) {
44
- const { result: { keyAttributes, llmCall: keyAttributesLLMCall }, } = await measureAndReportExecutionTime(() => generateEntityKeyAttributes({
45
- entity,
46
- mergedDataStructure: analysis.metadata.mergedDataStructure,
47
- model,
48
- }), `Generating entity key attributes`, updateProgress);
49
- const relevantDependentKeyAttributes = gatherRelevantDependentKeyAttributes(entity, analysis.metadata.mergedDataStructure, dependentAnalyses);
50
- analysis.metadata.keyAttributes = [
51
- ...keyAttributes,
52
- ...relevantDependentKeyAttributes.map((ka) => ({
53
- ...ka,
54
- // Spread to convert readonly arrays to mutable arrays (with fallback for undefined)
55
- validValueOptions: [...(ka.validValueOptions ?? [])],
56
- errorValueOptions: [...(ka.errorValueOptions ?? [])],
57
- // Convert readonly dependencies array to mutable if present
58
- ...(ka.dependencies && {
59
- dependencies: ka.dependencies.map((dep) => ({ ...dep })),
60
- }),
61
- })),
62
- ].filter((ka, index, self) => self.findIndex((k) => k.internalPath === ka.internalPath) === index);
63
- if (keyAttributesLLMCall) {
64
- (_a = analysis.metadata).llmCalls || (_a.llmCalls = []);
65
- analysis.metadata.llmCalls.push({
66
- name: `generateEntityKeyAttributes`,
67
- id: keyAttributesLLMCall.id,
68
- });
69
- }
70
- }
71
- }
72
- //# sourceMappingURL=generateKeyAttributes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateKeyAttributes.js","sourceRoot":"","sources":["../../../../../../../../packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts"],"names":[],"mappings":"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"}