@codeyam/codeyam-cli 0.1.0-staging.6e699e5 → 0.1.0-staging.73a4bf4

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 (563) 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 +8 -8
  4. package/analyzer-template/packages/ai/index.ts +11 -2
  5. package/analyzer-template/packages/ai/package.json +2 -2
  6. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +100 -18
  7. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +67 -9
  8. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +41 -17
  9. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
  10. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +409 -50
  11. package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
  12. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +21 -6
  13. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +1007 -249
  14. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +5 -1
  15. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +16 -3
  16. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +6 -4
  17. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +54 -3
  18. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +60 -15
  19. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
  20. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +140 -14
  21. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +179 -0
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.ts +40 -30
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +393 -97
  24. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +33 -15
  25. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +58 -3
  26. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +315 -6
  27. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +9 -5
  28. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +49 -5
  29. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +1 -1
  30. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +649 -142
  31. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +1 -1
  32. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +51 -3
  33. package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
  34. package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +90 -96
  35. package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
  36. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +10 -7
  37. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +24 -4
  38. package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +25 -13
  39. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +4 -3
  40. package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +114 -2
  41. package/analyzer-template/packages/analyze/index.ts +2 -0
  42. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +65 -59
  43. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +113 -26
  44. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +19 -0
  45. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +19 -0
  46. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +11 -0
  47. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +8 -0
  48. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +49 -1
  49. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +2 -1
  50. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +89 -9
  51. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +19 -4
  52. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +6 -0
  53. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +4 -2
  54. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +0 -3
  55. package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +4 -5
  56. package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +14 -12
  57. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1315 -0
  58. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +61 -13
  59. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +87 -25
  60. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +229 -19
  61. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +117 -9
  62. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +571 -74
  63. package/analyzer-template/packages/analyze/src/lib/files/scenarios/propagateArrayItemSchemas.ts +474 -0
  64. package/analyzer-template/packages/analyze/src/lib/files/setImportedExports.ts +2 -1
  65. package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
  66. package/analyzer-template/packages/analyze/src/lib/utils/getFileByPath.ts +19 -0
  67. package/analyzer-template/packages/aws/package.json +1 -1
  68. package/analyzer-template/packages/database/package.json +1 -1
  69. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  70. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  71. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  72. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  73. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  74. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  75. package/analyzer-template/packages/database/src/lib/kysely/db.ts +14 -1
  76. package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +6 -0
  77. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +1 -1
  78. package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
  79. package/analyzer-template/packages/database/src/lib/loadAnalyses.ts +58 -1
  80. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +13 -0
  81. package/analyzer-template/packages/database/src/lib/loadBranch.ts +16 -1
  82. package/analyzer-template/packages/database/src/lib/loadCommit.ts +11 -0
  83. package/analyzer-template/packages/database/src/lib/loadCommits.ts +28 -0
  84. package/analyzer-template/packages/database/src/lib/loadEntities.ts +26 -3
  85. package/analyzer-template/packages/database/src/lib/loadEntityBranches.ts +12 -0
  86. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  87. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  88. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  89. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +7 -14
  90. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  91. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
  92. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
  93. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
  94. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
  95. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
  96. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
  97. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
  98. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
  99. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
  100. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
  101. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
  102. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
  103. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -0
  104. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  105. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +11 -1
  106. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  107. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts +1 -0
  108. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts.map +1 -1
  109. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js +3 -0
  110. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  111. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +1 -1
  112. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
  113. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
  114. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  115. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  116. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts +2 -0
  117. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts.map +1 -1
  118. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js +45 -2
  119. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js.map +1 -1
  120. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  121. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +8 -0
  122. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  123. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js +11 -1
  124. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js.map +1 -1
  125. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.d.ts.map +1 -1
  126. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js +7 -0
  127. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js.map +1 -1
  128. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts +3 -1
  129. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  130. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +22 -1
  131. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  132. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts +3 -1
  133. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  134. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +23 -4
  135. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  136. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.d.ts.map +1 -1
  137. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js +9 -0
  138. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js.map +1 -1
  139. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
  140. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
  141. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
  142. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
  143. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
  144. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
  145. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts +2 -2
  146. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  147. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +5 -4
  148. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  149. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts +2 -0
  150. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts.map +1 -1
  151. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  152. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  153. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +5 -5
  154. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  155. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  156. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  157. package/analyzer-template/packages/github/package.json +1 -1
  158. package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
  159. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +7 -0
  160. package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +6 -5
  161. package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
  162. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts +2 -0
  163. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts.map +1 -1
  164. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  165. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  166. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +5 -5
  167. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  168. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  169. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  170. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  171. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +93 -2
  172. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  173. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +108 -2
  174. package/analyzer-template/playwright/capture.ts +20 -8
  175. package/analyzer-template/playwright/captureStatic.ts +1 -1
  176. package/analyzer-template/project/analyzeBaselineCommit.ts +5 -0
  177. package/analyzer-template/project/analyzeRegularCommit.ts +5 -0
  178. package/analyzer-template/project/captureLibraryFunctionDirect.ts +29 -26
  179. package/analyzer-template/project/constructMockCode.ts +92 -12
  180. package/analyzer-template/project/createEntitiesAndSortFiles.ts +83 -0
  181. package/analyzer-template/project/loadReadyToBeCaptured.ts +65 -41
  182. package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
  183. package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +11 -6
  184. package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
  185. package/analyzer-template/project/orchestrateCapture.ts +45 -6
  186. package/analyzer-template/project/start.ts +35 -11
  187. package/analyzer-template/project/writeMockDataTsx.ts +181 -8
  188. package/analyzer-template/project/writeScenarioComponents.ts +103 -12
  189. package/analyzer-template/project/writeSimpleRoot.ts +21 -11
  190. package/analyzer-template/scripts/comboWorkerLoop.cjs +98 -50
  191. package/background/src/lib/local/createLocalAnalyzer.js +1 -1
  192. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  193. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +5 -0
  194. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
  195. package/background/src/lib/virtualized/project/analyzeRegularCommit.js +5 -0
  196. package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
  197. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +3 -3
  198. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -1
  199. package/background/src/lib/virtualized/project/constructMockCode.js +77 -6
  200. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  201. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +73 -1
  202. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -1
  203. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +19 -8
  204. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
  205. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js +2 -2
  206. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -1
  207. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +4 -4
  208. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
  209. package/background/src/lib/virtualized/project/orchestrateCapture.js +38 -6
  210. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  211. package/background/src/lib/virtualized/project/start.js +32 -11
  212. package/background/src/lib/virtualized/project/start.js.map +1 -1
  213. package/background/src/lib/virtualized/project/writeMockDataTsx.js +162 -4
  214. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  215. package/background/src/lib/virtualized/project/writeScenarioComponents.js +85 -15
  216. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  217. package/background/src/lib/virtualized/project/writeSimpleRoot.js +21 -11
  218. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  219. package/codeyam-cli/scripts/apply-setup.js +180 -0
  220. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  221. package/codeyam-cli/src/cli.js +4 -0
  222. package/codeyam-cli/src/cli.js.map +1 -1
  223. package/codeyam-cli/src/codeyam-cli.js +18 -2
  224. package/codeyam-cli/src/codeyam-cli.js.map +1 -1
  225. package/codeyam-cli/src/commands/analyze.js +4 -2
  226. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  227. package/codeyam-cli/src/commands/baseline.js +2 -0
  228. package/codeyam-cli/src/commands/baseline.js.map +1 -1
  229. package/codeyam-cli/src/commands/debug.js +9 -5
  230. package/codeyam-cli/src/commands/debug.js.map +1 -1
  231. package/codeyam-cli/src/commands/default.js +31 -20
  232. package/codeyam-cli/src/commands/default.js.map +1 -1
  233. package/codeyam-cli/src/commands/detect-universal-mocks.js +2 -0
  234. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +1 -1
  235. package/codeyam-cli/src/commands/init.js +49 -257
  236. package/codeyam-cli/src/commands/init.js.map +1 -1
  237. package/codeyam-cli/src/commands/memory.js +264 -0
  238. package/codeyam-cli/src/commands/memory.js.map +1 -0
  239. package/codeyam-cli/src/commands/recapture.js +2 -0
  240. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  241. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  242. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  243. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  244. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  245. package/codeyam-cli/src/commands/test-startup.js +2 -0
  246. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  247. package/codeyam-cli/src/commands/verify.js +14 -2
  248. package/codeyam-cli/src/commands/verify.js.map +1 -1
  249. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +128 -86
  250. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  251. package/codeyam-cli/src/utils/analysisRunner.js +21 -2
  252. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  253. package/codeyam-cli/src/utils/analyzer.js +7 -0
  254. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  255. package/codeyam-cli/src/utils/backgroundServer.js +107 -19
  256. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  257. package/codeyam-cli/src/utils/generateReport.js +2 -2
  258. package/codeyam-cli/src/utils/install-skills.js +72 -47
  259. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  260. package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
  261. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
  262. package/codeyam-cli/src/utils/progress.js +7 -0
  263. package/codeyam-cli/src/utils/progress.js.map +1 -1
  264. package/codeyam-cli/src/utils/queue/job.js +4 -0
  265. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  266. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  267. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  268. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
  269. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
  270. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +230 -0
  271. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
  272. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
  273. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
  274. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
  275. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
  276. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
  277. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
  278. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
  279. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
  280. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +75 -0
  281. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
  282. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +378 -0
  283. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
  284. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +115 -0
  285. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
  286. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
  287. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
  288. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
  289. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
  290. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
  291. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
  292. package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
  293. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
  294. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
  295. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
  296. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
  297. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
  298. package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
  299. package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
  300. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
  301. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
  302. package/codeyam-cli/src/utils/rules/index.js +6 -0
  303. package/codeyam-cli/src/utils/rules/index.js.map +1 -0
  304. package/codeyam-cli/src/utils/rules/parser.js +83 -0
  305. package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
  306. package/codeyam-cli/src/utils/rules/pathMatcher.js +18 -0
  307. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
  308. package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
  309. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
  310. package/codeyam-cli/src/utils/rules/staleness.js +137 -0
  311. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
  312. package/codeyam-cli/src/utils/serverState.js +37 -10
  313. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  314. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +21 -44
  315. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  316. package/codeyam-cli/src/webserver/app/lib/database.js +21 -6
  317. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  318. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  319. package/codeyam-cli/src/webserver/backgroundServer.js +50 -0
  320. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  321. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-D9i_zSlY.js +1 -0
  322. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-BLlhOa3C.js +11 -0
  323. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-DLqD3qNt.js → EntityTypeBadge-De5b5pC7.js} +1 -1
  324. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-Ba2JVPzP.js → EntityTypeIcon-CzdG5I7z.js} +1 -1
  325. package/codeyam-cli/src/webserver/build/client/assets/{InlineSpinner-C8lyxW9k.js → InlineSpinner-Bclf8Hka.js} +1 -1
  326. package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-aht4aafF.js → InteractivePreview-Ce-byqKl.js} +2 -2
  327. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-CVtiBnY5.js → LibraryFunctionPreview-DEMHrl7v.js} +1 -1
  328. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-B0GLXMsr.js → LoadingDots-B1LNGboS.js} +1 -1
  329. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-xgeCVgSM.js → LogViewer-B0Ll1DjK.js} +1 -1
  330. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-D4TZhLuw.js → ReportIssueModal-CVOvmCKb.js} +3 -13
  331. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-DuDvi0jm.js → SafeScreenshot-L0DWHa_L.js} +1 -1
  332. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-DEx02QDa.js → ScenarioViewer-D54Mmpwi.js} +3 -3
  333. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-DyFZkK0l.js → TruncatedFilePath-C7PFQfXy.js} +1 -1
  334. package/codeyam-cli/src/webserver/build/client/assets/{_index-BwqWJOgH.js → _index-CKTtYlBU.js} +1 -1
  335. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-DoLIqZX2.js → activity.(_tab)-CdziRIWU.js} +6 -16
  336. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-CPXtdaWm.js +17 -0
  337. package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
  338. package/codeyam-cli/src/webserver/build/client/assets/api.memory-profile-l0sNRNKZ.js +1 -0
  339. package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
  340. package/codeyam-cli/src/webserver/build/client/assets/book-open-Ch8b7GyQ.js +6 -0
  341. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-Cx24_aWc.js → chevron-down-vJHJExlT.js} +1 -1
  342. package/codeyam-cli/src/webserver/build/client/assets/{chunk-EPOLDU6W-CXRTFQ3F.js → chunk-JZWAC4HX-BEyX4X6_.js} +12 -12
  343. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-BOARzkeR.js → circle-check-rwynPZTW.js} +1 -1
  344. package/codeyam-cli/src/webserver/build/client/assets/copy-BBSpeBYf.js +11 -0
  345. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-BdhJEx6B.js → createLucideIcon-DHVDauuc.js} +1 -1
  346. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-B9_ZqelV.js +1 -0
  347. package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-BOPComvD.js +16 -0
  348. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.fullscreen-DavjRmOY.js → entity._sha.scenarios._scenarioId.fullscreen-Cfw__yQa.js} +1 -1
  349. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.create-scenario-D1T4TGjf.js → entity._sha_.create-scenario-BIDUUrI3.js} +1 -1
  350. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CTBG2mmz.js → entity._sha_.edit._scenarioId-BEqewwtZ.js} +1 -1
  351. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-CS2cb_eZ.js → entry.client-Dxqz8ygt.js} +1 -1
  352. package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DMJ7zii9.js → fileTableUtils-CYnF5KWN.js} +1 -1
  353. package/codeyam-cli/src/webserver/build/client/assets/files-B_dAq2PQ.js +1 -0
  354. package/codeyam-cli/src/webserver/build/client/assets/{git-B4RJRvYB.js → git-BHPqH3Ch.js} +8 -8
  355. package/codeyam-cli/src/webserver/build/client/assets/globals-BJGhRykz.css +1 -0
  356. package/codeyam-cli/src/webserver/build/client/assets/{index-lzqtyFU8.js → index-DgAAopZk.js} +1 -1
  357. package/codeyam-cli/src/webserver/build/client/assets/{index-B1h680n5.js → index-viijWaN6.js} +1 -1
  358. package/codeyam-cli/src/webserver/build/client/assets/labs-ChoAe3xq.js +1 -0
  359. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-B7B9V-bu.js → loader-circle-LGi2eKI5.js} +1 -1
  360. package/codeyam-cli/src/webserver/build/client/assets/manifest-87493a32.js +1 -0
  361. package/codeyam-cli/src/webserver/build/client/assets/memory-D9eA6kTo.js +78 -0
  362. package/codeyam-cli/src/webserver/build/client/assets/pause-DxJFmMsK.js +11 -0
  363. package/codeyam-cli/src/webserver/build/client/assets/root-C3r0p_7H.js +62 -0
  364. package/codeyam-cli/src/webserver/build/client/assets/{search-CxXUmBSd.js → search-Cu3QE9E5.js} +1 -1
  365. package/codeyam-cli/src/webserver/build/client/assets/settings-KH9TdArD.js +1 -0
  366. package/codeyam-cli/src/webserver/build/client/assets/{simulations-DwFIBT09.js → simulations-D9Fkx0-d.js} +1 -1
  367. package/codeyam-cli/src/webserver/build/client/assets/terminal-dAhIBEcd.js +11 -0
  368. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-B6LgvRJg.js → triangle-alert-C4CYTEeP.js} +1 -1
  369. package/codeyam-cli/src/webserver/build/client/assets/{useCustomSizes-C1v1PQzo.js → useCustomSizes-CLPnITMB.js} +1 -1
  370. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-aSv48UbS.js → useLastLogLine-DmGI38Et.js} +1 -1
  371. package/codeyam-cli/src/webserver/build/client/assets/{useReportContext-DYxHZQuP.js → useReportContext-BK0S88PB.js} +1 -1
  372. package/codeyam-cli/src/webserver/build/client/assets/{useToast-mBRpZPiu.js → useToast-CJ-JqR0l.js} +1 -1
  373. package/codeyam-cli/src/webserver/build/server/assets/index-CkkmL6r5.js +1 -0
  374. package/codeyam-cli/src/webserver/build/server/assets/server-build-iBGjHYtO.js +259 -0
  375. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  376. package/codeyam-cli/src/webserver/build-info.json +5 -5
  377. package/codeyam-cli/templates/{codeyam:debug.md → codeyam-debug.md} +1 -1
  378. package/codeyam-cli/templates/codeyam-diagnose.md +481 -0
  379. package/codeyam-cli/templates/{codeyam-power-rules-hook.sh → codeyam-memory-hook.sh} +22 -23
  380. package/codeyam-cli/templates/codeyam-memory.md +396 -0
  381. package/codeyam-cli/templates/codeyam-new-rule.md +13 -0
  382. package/codeyam-cli/templates/{codeyam:setup.md → codeyam-setup.md} +13 -1
  383. package/codeyam-cli/templates/{codeyam:sim.md → codeyam-sim.md} +1 -1
  384. package/codeyam-cli/templates/{codeyam:test.md → codeyam-test.md} +1 -1
  385. package/codeyam-cli/templates/{codeyam:verify.md → codeyam-verify.md} +1 -1
  386. package/codeyam-cli/templates/rule-notification-hook.py +56 -0
  387. package/codeyam-cli/templates/rule-reflection-hook.py +627 -0
  388. package/codeyam-cli/templates/rules-instructions.md +132 -0
  389. package/package.json +15 -13
  390. package/packages/ai/index.js +3 -2
  391. package/packages/ai/index.js.map +1 -1
  392. package/packages/ai/src/lib/analyzeScope.js +82 -13
  393. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  394. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +54 -8
  395. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  396. package/packages/ai/src/lib/astScopes/methodSemantics.js +41 -17
  397. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  398. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
  399. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
  400. package/packages/ai/src/lib/astScopes/processExpression.js +317 -44
  401. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  402. package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
  403. package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
  404. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +776 -171
  405. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  406. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +5 -1
  407. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  408. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +13 -3
  409. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -1
  410. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +6 -4
  411. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -1
  412. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +52 -3
  413. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  414. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +55 -11
  415. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  416. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
  417. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
  418. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +122 -12
  419. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  420. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
  421. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
  422. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
  423. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
  424. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +333 -86
  425. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  426. package/packages/ai/src/lib/dataStructureChunking.js +26 -11
  427. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -1
  428. package/packages/ai/src/lib/generateEntityDataStructure.js +46 -2
  429. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  430. package/packages/ai/src/lib/generateEntityScenarioData.js +227 -4
  431. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  432. package/packages/ai/src/lib/generateEntityScenarios.js +7 -1
  433. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  434. package/packages/ai/src/lib/generateExecutionFlows.js +26 -4
  435. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
  436. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +447 -80
  437. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -1
  438. package/packages/ai/src/lib/isolateScopes.js +39 -3
  439. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  440. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
  441. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
  442. package/packages/ai/src/lib/mergeStatements.js +70 -51
  443. package/packages/ai/src/lib/mergeStatements.js.map +1 -1
  444. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
  445. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
  446. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +10 -4
  447. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  448. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +17 -2
  449. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  450. package/packages/ai/src/lib/resolvePathToControllable.js +24 -14
  451. package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -1
  452. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  453. package/packages/ai/src/lib/worker/analyzeScopeWorker.js +94 -1
  454. package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
  455. package/packages/analyze/index.js +1 -0
  456. package/packages/analyze/index.js.map +1 -1
  457. package/packages/analyze/src/lib/FileAnalyzer.js +60 -36
  458. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  459. package/packages/analyze/src/lib/ProjectAnalyzer.js +96 -26
  460. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  461. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +14 -0
  462. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -1
  463. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +14 -0
  464. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -1
  465. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +6 -0
  466. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
  467. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +6 -0
  468. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -1
  469. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +39 -1
  470. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -1
  471. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +2 -1
  472. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -1
  473. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +65 -7
  474. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  475. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +17 -4
  476. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  477. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +5 -0
  478. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  479. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +2 -1
  480. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  481. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +0 -3
  482. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  483. package/packages/analyze/src/lib/files/analyzeRemixRoute.js +3 -2
  484. package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
  485. package/packages/analyze/src/lib/files/getImportedExports.js +11 -7
  486. package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
  487. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +880 -0
  488. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
  489. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +56 -10
  490. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
  491. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +75 -21
  492. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  493. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +150 -17
  494. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  495. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +56 -8
  496. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -1
  497. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +478 -54
  498. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  499. package/packages/analyze/src/lib/files/setImportedExports.js +2 -1
  500. package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -1
  501. package/packages/analyze/src/lib/index.js +1 -0
  502. package/packages/analyze/src/lib/index.js.map +1 -1
  503. package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
  504. package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
  505. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  506. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  507. package/packages/database/src/lib/analysisToDb.js +1 -1
  508. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  509. package/packages/database/src/lib/branchToDb.js +1 -1
  510. package/packages/database/src/lib/branchToDb.js.map +1 -1
  511. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  512. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  513. package/packages/database/src/lib/commitToDb.js +1 -1
  514. package/packages/database/src/lib/commitToDb.js.map +1 -1
  515. package/packages/database/src/lib/fileToDb.js +1 -1
  516. package/packages/database/src/lib/fileToDb.js.map +1 -1
  517. package/packages/database/src/lib/kysely/db.js +11 -1
  518. package/packages/database/src/lib/kysely/db.js.map +1 -1
  519. package/packages/database/src/lib/kysely/tables/commitsTable.js +3 -0
  520. package/packages/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  521. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  522. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  523. package/packages/database/src/lib/loadAnalyses.js +45 -2
  524. package/packages/database/src/lib/loadAnalyses.js.map +1 -1
  525. package/packages/database/src/lib/loadAnalysis.js +8 -0
  526. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  527. package/packages/database/src/lib/loadBranch.js +11 -1
  528. package/packages/database/src/lib/loadBranch.js.map +1 -1
  529. package/packages/database/src/lib/loadCommit.js +7 -0
  530. package/packages/database/src/lib/loadCommit.js.map +1 -1
  531. package/packages/database/src/lib/loadCommits.js +22 -1
  532. package/packages/database/src/lib/loadCommits.js.map +1 -1
  533. package/packages/database/src/lib/loadEntities.js +23 -4
  534. package/packages/database/src/lib/loadEntities.js.map +1 -1
  535. package/packages/database/src/lib/loadEntityBranches.js +9 -0
  536. package/packages/database/src/lib/loadEntityBranches.js.map +1 -1
  537. package/packages/database/src/lib/projectToDb.js +1 -1
  538. package/packages/database/src/lib/projectToDb.js.map +1 -1
  539. package/packages/database/src/lib/saveFiles.js +1 -1
  540. package/packages/database/src/lib/saveFiles.js.map +1 -1
  541. package/packages/database/src/lib/scenarioToDb.js +1 -1
  542. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  543. package/packages/database/src/lib/updateCommitMetadata.js +5 -4
  544. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  545. package/packages/utils/src/lib/fs/rsyncCopy.js +93 -2
  546. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  547. package/scripts/finalize-analyzer.cjs +8 -76
  548. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-BXhEawa3.js +0 -1
  549. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BRb-0kQl.js +0 -1
  550. package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-C2N4Op8e.js +0 -23
  551. package/codeyam-cli/src/webserver/build/client/assets/files-Cs4MdYtv.js +0 -1
  552. package/codeyam-cli/src/webserver/build/client/assets/git-commit-horizontal-CysbcZxi.js +0 -6
  553. package/codeyam-cli/src/webserver/build/client/assets/globals-DMUaGAqV.css +0 -1
  554. package/codeyam-cli/src/webserver/build/client/assets/manifest-f874c610.js +0 -1
  555. package/codeyam-cli/src/webserver/build/client/assets/root-Bz5TunQg.js +0 -57
  556. package/codeyam-cli/src/webserver/build/client/assets/rules-hEkvVw2-.js +0 -97
  557. package/codeyam-cli/src/webserver/build/client/assets/settings-CS5f3WzT.js +0 -1
  558. package/codeyam-cli/src/webserver/build/server/assets/index-967OuJoF.js +0 -1
  559. package/codeyam-cli/src/webserver/build/server/assets/server-build-DRTmerg9.js +0 -257
  560. package/codeyam-cli/templates/codeyam:diagnose.md +0 -650
  561. package/codeyam-cli/templates/codeyam:new-rule.md +0 -13
  562. package/codeyam-cli/templates/codeyam:power-rules.md +0 -447
  563. /package/codeyam-cli/src/webserver/build/client/assets/{api.rules-l0sNRNKZ.js → api.agent-transcripts-l0sNRNKZ.js} +0 -0
@@ -0,0 +1,52 @@
1
+ import { Kysely, ColumnDefinitionBuilder } from 'kysely';
2
+ import type { Generated } from 'kysely';
3
+
4
+ import { schemaField, defaultNow } from '../schemaHelpers';
5
+
6
+ const labsRequestsSchema = {
7
+ id: schemaField<Generated<string>>(),
8
+ project_slug: schemaField<string>(),
9
+ name: schemaField<string>(),
10
+ email: schemaField<string>(),
11
+ org_name: schemaField<string | null>(),
12
+ org_size: schemaField<string | null>(),
13
+ project_size: schemaField<string | null>(),
14
+ tech_stack: schemaField<string | null>(),
15
+ status: schemaField<string | null>(),
16
+ unlock_code: schemaField<string | null>(),
17
+ created_at: schemaField<Generated<string>>(),
18
+ approved_at: schemaField<string | null>(),
19
+ } as const;
20
+
21
+ export type LabsRequestsTable = {
22
+ [K in keyof typeof labsRequestsSchema]: (typeof labsRequestsSchema)[K];
23
+ };
24
+
25
+ export const LabsRequestsTableColumns = Object.keys(
26
+ labsRequestsSchema,
27
+ ) as (keyof LabsRequestsTable)[];
28
+
29
+ export async function createLabsRequestsTable(db: Kysely<any>): Promise<void> {
30
+ await db.schema
31
+ .createTable('labs_requests')
32
+ .addColumn('id', 'uuid', (col: ColumnDefinitionBuilder) => col.primaryKey())
33
+ .addColumn('project_slug', 'varchar', (col: ColumnDefinitionBuilder) =>
34
+ col.notNull().unique(),
35
+ )
36
+ .addColumn('name', 'varchar', (col: ColumnDefinitionBuilder) =>
37
+ col.notNull(),
38
+ )
39
+ .addColumn('email', 'varchar', (col: ColumnDefinitionBuilder) =>
40
+ col.notNull(),
41
+ )
42
+ .addColumn('org_name', 'varchar')
43
+ .addColumn('org_size', 'varchar')
44
+ .addColumn('project_size', 'varchar')
45
+ .addColumn('tech_stack', 'varchar')
46
+ .addColumn('status', 'varchar')
47
+ .addColumn('unlock_code', 'varchar')
48
+ .addColumn('created_at', 'datetime', defaultNow(true))
49
+ .addColumn('approved_at', 'datetime')
50
+ .ifNotExists()
51
+ .execute();
52
+ }
@@ -27,6 +27,7 @@ function buildAnalysesQuery({
27
27
  commitIds,
28
28
  branchCommitSha,
29
29
  limit,
30
+ excludeMetadata,
30
31
  }: LoadAnalysesArgs & {
31
32
  ids?: string[];
32
33
  fileIds?: string[];
@@ -37,7 +38,32 @@ function buildAnalysesQuery({
37
38
  const { jsonObjectFrom, jsonArrayFrom } = getJsonHelper();
38
39
 
39
40
  // Create CTE for filtering analyses
40
- let filteredAnalysisCTE = db.selectFrom('analyses').selectAll('analyses');
41
+ // When excludeMetadata is true, select specific columns to avoid loading 64MB+ of metadata
42
+ let filteredAnalysisCTE = excludeMetadata
43
+ ? db
44
+ .selectFrom('analyses')
45
+ .select([
46
+ 'analyses.id',
47
+ 'analyses.project_id',
48
+ 'analyses.file_id',
49
+ 'analyses.commit_id',
50
+ 'analyses.entity_sha',
51
+ 'analyses.entity_name',
52
+ 'analyses.entity_type',
53
+ 'analyses.file_path',
54
+ 'analyses.status',
55
+ 'analyses.created_at',
56
+ 'analyses.updated_at',
57
+ 'analyses.tree_sha',
58
+ 'analyses.analyzed_tree_sha',
59
+ 'analyses.dependency_analyzed_tree_sha',
60
+ 'analyses.previous_analysis_id',
61
+ 'analyses.branch_commit_sha',
62
+ 'analyses.indirect',
63
+ 'analyses.committed_at',
64
+ 'analyses.completed_at',
65
+ ])
66
+ : db.selectFrom('analyses').selectAll('analyses');
41
67
 
42
68
  // Apply filters
43
69
  if (projectId) {
@@ -96,6 +122,35 @@ function buildAnalysesQuery({
96
122
  }
97
123
 
98
124
  // Main query with JSON aggregations referencing the CTE
125
+ // When excludeMetadata is true, skip the entity subquery (saves loading entity metadata again)
126
+ if (excludeMetadata) {
127
+ return db
128
+ .with('filtered_analyses', () => filteredAnalysisCTE)
129
+ .selectFrom('filtered_analyses')
130
+ .selectAll('filtered_analyses')
131
+ .select((eb: ExpressionBuilder<any, any>) => [
132
+ // Skip entity subquery - not needed for list views and loads 41MB+ of entity metadata
133
+
134
+ jsonArrayFrom(
135
+ eb
136
+ .selectFrom('scenarios')
137
+ .select(aliasedTableColumns('scenarios', ScenariosTableColumns))
138
+ .whereRef('scenarios.analysis_id', '=', 'filtered_analyses.id'),
139
+ ).as('scenarios'),
140
+
141
+ jsonArrayFrom(
142
+ eb
143
+ .selectFrom('analysis_branches')
144
+ .select(['id', 'branch_id'])
145
+ .whereRef(
146
+ 'analysis_branches.analysis_id',
147
+ '=',
148
+ 'filtered_analyses.id',
149
+ ),
150
+ ).as('analysis_branches'),
151
+ ]);
152
+ }
153
+
99
154
  return db
100
155
  .with('filtered_analyses', () => filteredAnalysisCTE)
101
156
  .selectFrom('filtered_analyses')
@@ -138,6 +193,8 @@ export interface LoadAnalysesArgs {
138
193
  entityShas?: string[];
139
194
  branchCommitSha?: string;
140
195
  limit?: number;
196
+ /** Exclude large metadata columns for faster list queries */
197
+ excludeMetadata?: boolean;
141
198
  }
142
199
 
143
200
  export default async function loadAnalyses(
@@ -45,6 +45,7 @@ export default async function loadAnalysis({
45
45
  // TODO: Consider refactoring to use CTE + aliasedTableColumns pattern (Pattern 3)
46
46
  // like loadMostRecentPreviousAnalysis for more elegant single-query approach
47
47
  const db = getDatabase();
48
+ const startTime = Date.now();
48
49
 
49
50
  try {
50
51
  // Build the main query
@@ -169,6 +170,8 @@ export default async function loadAnalysis({
169
170
  });
170
171
 
171
172
  const analysis = await query.executeTakeFirst();
173
+ const queryTime = Date.now() - startTime;
174
+
172
175
  if (!analysis) {
173
176
  awsLog('CodeYam Error: Analysis not found', null, {
174
177
  id,
@@ -188,6 +191,16 @@ export default async function loadAnalysis({
188
191
  return null;
189
192
  }
190
193
 
194
+ // DEBUG: Log slow queries (when includeCommitAndBranch=true, includes files column which can be 1MB+)
195
+ if (queryTime > 100 && includeCommitAndBranch) {
196
+ const commit = (analysis as any).commit;
197
+ const filesSize = commit?.files ? JSON.stringify(commit.files).length : 0;
198
+ console.log(
199
+ `CodeYam DEBUG: [CommitFilesTiming] loadAnalysis took ${queryTime}ms (files: ${Math.round(filesSize / 1024)}KB)`,
200
+ { id: analysis.id, entityName: analysis.entity_name },
201
+ );
202
+ }
203
+
191
204
  return dbToAnalysis(analysis);
192
205
  } catch (error) {
193
206
  awsLog('CodeYam Error: Database error loading analysis', error, {
@@ -98,9 +98,10 @@ async function loadCommitsForBranch(branchId: string): Promise<DbCommit[]> {
98
98
  const db = getDatabase();
99
99
 
100
100
  const { jsonArrayFrom } = getJsonHelper();
101
+ const startTime = Date.now();
101
102
 
102
103
  try {
103
- return await db
104
+ const commits = await db
104
105
  .selectFrom('commits')
105
106
  .selectAll()
106
107
  .select((eb: ExpressionBuilder<any, any>) => [
@@ -115,6 +116,20 @@ async function loadCommitsForBranch(branchId: string): Promise<DbCommit[]> {
115
116
  .where('commits.branch_id', '=', branchId)
116
117
  .orderBy('commits.committed_at', 'desc')
117
118
  .execute();
119
+ const queryTime = Date.now() - startTime;
120
+
121
+ // DEBUG: Log slow queries (includes files column which can be 1MB+)
122
+ if (queryTime > 100) {
123
+ const totalFilesSize = commits.reduce((sum, c: any) => {
124
+ return sum + (c.files ? JSON.stringify(c.files).length : 0);
125
+ }, 0);
126
+ console.log(
127
+ `CodeYam DEBUG: [CommitFilesTiming] loadCommitsForBranch took ${queryTime}ms (${commits.length} commits, totalFiles: ${Math.round(totalFilesSize / 1024)}KB)`,
128
+ { branchId },
129
+ );
130
+ }
131
+
132
+ return commits;
118
133
  } catch (error) {
119
134
  awsLog('CodeYam Error: Loading commits for branch', error, { branchId });
120
135
  return [];
@@ -69,6 +69,7 @@ export default async function loadCommit({
69
69
  branchId,
70
70
  }: LoadCommitArgs) {
71
71
  const db = getDatabase();
72
+ const startTime = Date.now();
72
73
 
73
74
  try {
74
75
  let query = db
@@ -97,6 +98,7 @@ export default async function loadCommit({
97
98
  query = query.orderBy('committed_at', 'desc').limit(1);
98
99
 
99
100
  const commit = await query.executeTakeFirst();
101
+ const queryTime = Date.now() - startTime;
100
102
 
101
103
  if (!commit) {
102
104
  awsLog('CodeYam Error: Commit not found', null, {
@@ -108,6 +110,15 @@ export default async function loadCommit({
108
110
  return null;
109
111
  }
110
112
 
113
+ // DEBUG: Log slow queries (includes files column which can be 1MB+)
114
+ if (queryTime > 100) {
115
+ const filesSize = commit.files ? JSON.stringify(commit.files).length : 0;
116
+ console.log(
117
+ `CodeYam DEBUG: [CommitFilesTiming] loadCommit took ${queryTime}ms (files: ${Math.round(filesSize / 1024)}KB)`,
118
+ { sha: commit.sha },
119
+ );
120
+ }
121
+
111
122
  // Load branch and mergedBranch separately
112
123
  const [branch, mergedBranch, analyses] = await Promise.all([
113
124
  commit.branch_id
@@ -19,6 +19,8 @@ interface LoadCommitsArgs {
19
19
  shas?: string[];
20
20
  fileNames?: string[];
21
21
  limit?: number;
22
+ /** Skip loading related data (analyses, entities, branches) for faster queries */
23
+ skipRelations?: boolean;
22
24
  }
23
25
 
24
26
  async function loadBranchesForCommits(
@@ -137,6 +139,7 @@ export default async function loadCommits({
137
139
  shas,
138
140
  fileNames,
139
141
  limit = 10,
142
+ skipRelations = false,
140
143
  }: LoadCommitsArgs): Promise<Commit[]> {
141
144
  if (!projectId && !ids) {
142
145
  throw new Error('Must provide projectId or ids');
@@ -144,6 +147,7 @@ export default async function loadCommits({
144
147
 
145
148
  const db = getDatabase();
146
149
  const { jsonObjectFrom } = getJsonHelper();
150
+ const startTime = Date.now();
147
151
 
148
152
  try {
149
153
  let query = db
@@ -203,11 +207,35 @@ export default async function loadCommits({
203
207
  .orderBy('committed_at', 'desc')
204
208
  .limit(limit)
205
209
  .execute();
210
+ const queryTime = Date.now() - startTime;
206
211
 
207
212
  if (!commits || commits.length === 0) {
208
213
  return [];
209
214
  }
210
215
 
216
+ // DEBUG: Log slow queries (includes files column which can be 1MB+)
217
+ if (queryTime > 100) {
218
+ const totalFilesSize = commits.reduce((sum, c: any) => {
219
+ return sum + (c.files ? JSON.stringify(c.files).length : 0);
220
+ }, 0);
221
+ console.log(
222
+ `CodeYam DEBUG: [CommitFilesTiming] loadCommits took ${queryTime}ms (${commits.length} commits, totalFiles: ${Math.round(totalFilesSize / 1024)}KB)`,
223
+ );
224
+ }
225
+
226
+ // When skipRelations is true, just return commits without loading related data
227
+ // This is much faster for queries that only need commit metadata
228
+ if (skipRelations) {
229
+ const dbCommits: DbCommit[] = commits.map((commit: any) => ({
230
+ ...commit,
231
+ branch: undefined,
232
+ mergedBranch: undefined,
233
+ analyses: [],
234
+ entities: [],
235
+ }));
236
+ return dbCommits.map(dbToCommit);
237
+ }
238
+
211
239
  const commitIds = commits.map((c: any) => c.id);
212
240
 
213
241
  // Load all relations in parallel
@@ -9,6 +9,8 @@ export interface LoadEntitiesArgs {
9
9
  filePaths?: string[];
10
10
  names?: string[];
11
11
  shas?: string[];
12
+ /** Exclude large metadata column for faster list queries */
13
+ excludeMetadata?: boolean;
12
14
  }
13
15
 
14
16
  export default async function loadEntities({
@@ -18,6 +20,7 @@ export default async function loadEntities({
18
20
  filePaths,
19
21
  names,
20
22
  shas,
23
+ excludeMetadata,
21
24
  }: LoadEntitiesArgs): Promise<Entity[] | null> {
22
25
  if (
23
26
  (fileIds && fileIds.length == 0) ||
@@ -39,6 +42,7 @@ export default async function loadEntities({
39
42
  filePaths,
40
43
  names,
41
44
  shas: chunk,
45
+ excludeMetadata,
42
46
  });
43
47
 
44
48
  if (chunkEntities) {
@@ -51,9 +55,28 @@ export default async function loadEntities({
51
55
  const db = getDatabase();
52
56
 
53
57
  try {
54
- const query = db
55
- .selectFrom('entities')
56
- .selectAll('entities')
58
+ // When excludeMetadata is true, select all columns except the large metadata column
59
+ // This dramatically speeds up list queries (41MB+ of JSON avoided)
60
+ const baseQuery = excludeMetadata
61
+ ? db
62
+ .selectFrom('entities')
63
+ .select([
64
+ 'entities.project_id',
65
+ 'entities.file_id',
66
+ 'entities.commit_id',
67
+ 'entities.name',
68
+ 'entities.sha',
69
+ 'entities.entity_type',
70
+ 'entities.file_path',
71
+ 'entities.description',
72
+ 'entities.documentation',
73
+ 'entities.quality',
74
+ 'entities.created_at',
75
+ 'entities.updated_at',
76
+ ])
77
+ : db.selectFrom('entities').selectAll('entities');
78
+
79
+ const query = baseQuery
57
80
  .$if(!!branchId, (qb) =>
58
81
  qb
59
82
  .innerJoin(
@@ -121,6 +121,7 @@ async function loadCommitsForEntities(
121
121
  const db = getDatabase();
122
122
 
123
123
  const { jsonArrayFrom } = getJsonHelper();
124
+ const startTime = Date.now();
124
125
 
125
126
  try {
126
127
  const commits = await db
@@ -137,6 +138,17 @@ async function loadCommitsForEntities(
137
138
  ])
138
139
  .where('commits.id', 'in', commitIds)
139
140
  .execute();
141
+ const queryTime = Date.now() - startTime;
142
+
143
+ // DEBUG: Log slow queries (includes files column which can be 1MB+)
144
+ if (queryTime > 100) {
145
+ const totalFilesSize = commits.reduce((sum, c: any) => {
146
+ return sum + (c.files ? JSON.stringify(c.files).length : 0);
147
+ }, 0);
148
+ console.log(
149
+ `CodeYam DEBUG: [CommitFilesTiming] loadCommitsForEntities took ${queryTime}ms (${commits.length} commits, totalFiles: ${Math.round(totalFilesSize / 1024)}KB)`,
150
+ );
151
+ }
140
152
 
141
153
  return new Map(commits.map((commit) => [commit.id, commit]));
142
154
  } catch (error) {
@@ -1,7 +1,7 @@
1
1
  import { Project } from '~codeyam/types';
2
2
  import { type Insertable } from 'kysely';
3
3
  import { ProjectsTable } from './kysely/tables/projectsTable';
4
- import { randomUUID } from 'crypto';
4
+ const randomUUID = () => crypto.randomUUID();
5
5
 
6
6
  export default function projectToDb(
7
7
  project: Project,
@@ -3,7 +3,7 @@ import dbToFile from './dbToFile';
3
3
  import { File } from '~codeyam/types';
4
4
  import { Insertable, Selectable } from 'kysely';
5
5
  import { FilesTable } from './kysely/tables/filesTable';
6
- import { randomUUID } from 'crypto';
6
+ const randomUUID = () => crypto.randomUUID();
7
7
 
8
8
  const BATCH_SIZE = 100;
9
9
 
@@ -1,7 +1,7 @@
1
1
  import { Scenario } from '~codeyam/types';
2
2
  import { type Insertable } from 'kysely';
3
3
  import { ScenariosTable } from './kysely/tables/scenariosTable';
4
- import { randomUUID } from 'crypto';
4
+ const randomUUID = () => crypto.randomUUID();
5
5
 
6
6
  export default function scenarioToDb(
7
7
  scenario: Scenario,
@@ -2,16 +2,10 @@
2
2
  * updates commit metadata by merging partial updates with existing data.
3
3
  * uses database transactions to ensure atomic updates and handle concurrent modifications.
4
4
  */
5
- import {
6
- Commit,
7
- CommitMetadata,
8
- CommitRunStatus,
9
- DeepReadonly,
10
- } from '~codeyam/types';
5
+ import { CommitMetadata, CommitRunStatus } from '~codeyam/types';
11
6
  import { getDatabase } from './kysely/db';
12
7
  import { awsLog } from '~codeyam/utils';
13
8
  import { deepMerge, DeepUpdate } from './jsonUpdateUtils';
14
- import dbToCommit from './dbToCommit';
15
9
 
16
10
  type UpdateCommitMetadataArgs = {
17
11
  commitId?: string;
@@ -19,10 +13,7 @@ type UpdateCommitMetadataArgs = {
19
13
  metadataUpdate?: DeepUpdate<CommitMetadata>;
20
14
  runStatusUpdate?: DeepUpdate<CommitRunStatus>;
21
15
  archiveCurrentRun?: boolean;
22
- updateCallback?: (
23
- metadata: CommitMetadata,
24
- commit: DeepReadonly<Commit>,
25
- ) => void | Promise<void>;
16
+ updateCallback?: (metadata: CommitMetadata) => void | Promise<void>;
26
17
  };
27
18
 
28
19
  export default async function updateCommitMetadata({
@@ -37,9 +28,11 @@ export default async function updateCommitMetadata({
37
28
  return await getDatabase()
38
29
  .transaction()
39
30
  .execute(async (trx) => {
31
+ // Only select what we need - the files column can be 1MB+ and kills performance
32
+ // If updateCallback is provided, it might need the full commit, so use selectAll
40
33
  const commit = await trx
41
34
  .selectFrom('commits')
42
- .selectAll()
35
+ .select(['id', 'metadata'])
43
36
  .$if(!!commitId, (qb: any) => qb.where('id', '=', commitId))
44
37
  .$if(!!commitSha, (qb: any) => qb.where('sha', '=', commitSha))
45
38
  .executeTakeFirst();
@@ -150,7 +143,7 @@ export default async function updateCommitMetadata({
150
143
 
151
144
  // Allow callback to perform complex atomic updates
152
145
  if (updateCallback) {
153
- await updateCallback(updatedMetadata, dbToCommit(commit));
146
+ await updateCallback(updatedMetadata);
154
147
  }
155
148
 
156
149
  try {
@@ -158,7 +151,7 @@ export default async function updateCommitMetadata({
158
151
  .updateTable('commits')
159
152
  .set({ metadata: JSON.stringify(updatedMetadata) })
160
153
  .where('id', '=', commit.id)
161
- .returningAll()
154
+ .returning(['id']) // Don't return all columns - files can be 1MB+
162
155
  .executeTakeFirst();
163
156
 
164
157
  if (!result) {
@@ -1,7 +1,7 @@
1
1
  import { UserScenario } from '~codeyam/types';
2
2
  import { Insertable } from 'kysely';
3
3
  import { UserScenariosTable } from './kysely/tables/userScenariosTable';
4
- import { randomUUID } from 'crypto';
4
+ const randomUUID = () => crypto.randomUUID();
5
5
 
6
6
  export default function userScenarioToDb(
7
7
  userScenario: UserScenario,
@@ -1,4 +1,4 @@
1
- import { randomUUID } from 'crypto';
1
+ const randomUUID = () => crypto.randomUUID();
2
2
  export default function analysisBranchToDb(analysisBranch) {
3
3
  const { id, analysisId, entitySha, branchId, ...remaining } = analysisBranch;
4
4
  delete remaining.analysis;
@@ -1 +1 @@
1
- {"version":3,"file":"analysisBranchToDb.js","sourceRoot":"","sources":["../../../../../database/src/lib/analysisBranchToDb.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAIpC,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,cAA8B;IAE9B,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,GAAG,cAAc,CAAC;IAE7E,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC1B,OAAO,SAAS,CAAC,MAAM,CAAC;IACxB,OAAO,SAAS,CAAC,MAAM,CAAC;IAExB,IAAI,WAAW,IAAI,SAAS,EAAE,CAAC;QAC5B,SAAyC,CAAC,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC;QAC5E,OAAO,SAAS,CAAC,SAAS,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,GAAG,SAAS;QACZ,EAAE,EAAE,EAAE,IAAI,UAAU,EAAE;QACtB,WAAW,EAAE,UAAU;QACvB,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,QAAQ;KACpB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"analysisBranchToDb.js","sourceRoot":"","sources":["../../../../../database/src/lib/analysisBranchToDb.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;AAI7C,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,cAA8B;IAE9B,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,GAAG,cAAc,CAAC;IAE7E,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC1B,OAAO,SAAS,CAAC,MAAM,CAAC;IACxB,OAAO,SAAS,CAAC,MAAM,CAAC;IAExB,IAAI,WAAW,IAAI,SAAS,EAAE,CAAC;QAC5B,SAAyC,CAAC,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC;QAC5E,OAAO,SAAS,CAAC,SAAS,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,GAAG,SAAS;QACZ,EAAE,EAAE,EAAE,IAAI,UAAU,EAAE;QACtB,WAAW,EAAE,UAAU;QACvB,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,QAAQ;KACpB,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { randomUUID } from 'crypto';
1
+ const randomUUID = () => crypto.randomUUID();
2
2
  export default function analysisToDb(analysis) {
3
3
  const { id, projectId, commitId, fileId, filePath, entitySha, entityType, entityName, previousAnalysisId, entity, dependencyAnalyzedTreeSha, analyzedTreeSha, branchCommitSha, committedAt, completedAt, createdAt, updatedAt, metadata, status, commit, file, project, scenarios, analysisBranches, branches, ...remaining } = analysis;
4
4
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"analysisToDb.js","sourceRoot":"","sources":["../../../../../database/src/lib/analysisToDb.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,QAAkB;IAElB,MAAM,EACJ,EAAE,EACF,SAAS,EACT,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,SAAS,EACT,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,MAAM,EACN,yBAAyB,EACzB,eAAe,EACf,eAAe,EACf,WAAW,EACX,WAAW,EACX,SAAS,EACT,SAAS,EACT,QAAQ,EACR,MAAM,EACN,MAAM,EACN,IAAI,EACJ,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,QAAQ,EACR,GAAG,SAAS,EACb,GAAG,QAAQ,CAAC;IAEb,OAAO;QACL,GAAG,SAAS;QACZ,EAAE,EAAE,EAAE,IAAI,UAAU,EAAE;QACtB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;QACzD,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QACnD,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,UAAU;QACvB,WAAW,EAAE,UAAU;QACvB,oBAAoB,EAAE,kBAAkB;QACxC,4BAA4B,EAAE,yBAAyB;QACvD,iBAAiB,EAAE,eAAe;QAClC,iBAAiB,EAAE,eAAe;QAClC,YAAY,EAAE,WAAW;QACzB,YAAY,EAAE,WAAW;QACzB,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,SAAS;KACtB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"analysisToDb.js","sourceRoot":"","sources":["../../../../../database/src/lib/analysisToDb.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;AAE7C,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,QAAkB;IAElB,MAAM,EACJ,EAAE,EACF,SAAS,EACT,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,SAAS,EACT,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,MAAM,EACN,yBAAyB,EACzB,eAAe,EACf,eAAe,EACf,WAAW,EACX,WAAW,EACX,SAAS,EACT,SAAS,EACT,QAAQ,EACR,MAAM,EACN,MAAM,EACN,IAAI,EACJ,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,QAAQ,EACR,GAAG,SAAS,EACb,GAAG,QAAQ,CAAC;IAEb,OAAO;QACL,GAAG,SAAS;QACZ,EAAE,EAAE,EAAE,IAAI,UAAU,EAAE;QACtB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;QACzD,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QACnD,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,UAAU;QACvB,WAAW,EAAE,UAAU;QACvB,oBAAoB,EAAE,kBAAkB;QACxC,4BAA4B,EAAE,yBAAyB;QACvD,iBAAiB,EAAE,eAAe;QAClC,iBAAiB,EAAE,eAAe;QAClC,YAAY,EAAE,WAAW;QACzB,YAAY,EAAE,WAAW;QACzB,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,SAAS;KACtB,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { randomUUID } from 'crypto';
1
+ const randomUUID = () => crypto.randomUUID();
2
2
  export default function branchToDb(branch) {
3
3
  const { id, projectId, activeAt, contentChangedAt, metadata, ...remaining } = branch;
4
4
  delete remaining.commits;
@@ -1 +1 @@
1
- {"version":3,"file":"branchToDb.js","sourceRoot":"","sources":["../../../../../database/src/lib/branchToDb.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,MAAc;IAC/C,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,GACzE,MAAM,CAAC;IAET,OAAO,SAAS,CAAC,OAAO,CAAC;IACzB,OAAO,SAAS,CAAC,KAAK,CAAC;IACvB,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC1B,OAAO,SAAS,CAAC,SAAS,CAAC;IAC3B,OAAO,SAAS,CAAC,SAAS,CAAC;IAE3B,OAAO;QACL,GAAG,SAAS;QACZ,EAAE,EAAE,EAAE,IAAI,UAAU,EAAE;QACtB,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,QAAQ;QACnB,kBAAkB,EAAE,gBAAgB;QACpC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;KACrD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"branchToDb.js","sourceRoot":"","sources":["../../../../../database/src/lib/branchToDb.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;AAE7C,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,MAAc;IAC/C,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,GACzE,MAAM,CAAC;IAET,OAAO,SAAS,CAAC,OAAO,CAAC;IACzB,OAAO,SAAS,CAAC,KAAK,CAAC;IACvB,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC1B,OAAO,SAAS,CAAC,SAAS,CAAC;IAC3B,OAAO,SAAS,CAAC,SAAS,CAAC;IAE3B,OAAO;QACL,GAAG,SAAS;QACZ,EAAE,EAAE,EAAE,IAAI,UAAU,EAAE;QACtB,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,QAAQ;QACnB,kBAAkB,EAAE,gBAAgB;QACpC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;KACrD,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { randomUUID } from 'crypto';
1
+ const randomUUID = () => crypto.randomUUID();
2
2
  export default function commitBranchToDb(commitBranch) {
3
3
  const { id, commitId, branchId, ...remaining } = commitBranch;
4
4
  delete remaining.commit;
@@ -1 +1 @@
1
- {"version":3,"file":"commitBranchToDb.js","sourceRoot":"","sources":["../../../../../database/src/lib/commitBranchToDb.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGpC,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,YAA0B;IAE1B,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,GAAG,YAAY,CAAC;IAE9D,OAAO,SAAS,CAAC,MAAM,CAAC;IACxB,OAAO,SAAS,CAAC,MAAM,CAAC;IAExB,OAAO;QACL,GAAG,SAAS;QACZ,EAAE,EAAE,EAAE,IAAI,UAAU,EAAE;QACtB,SAAS,EAAE,QAAQ;QACnB,SAAS,EAAE,QAAQ;KACpB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"commitBranchToDb.js","sourceRoot":"","sources":["../../../../../database/src/lib/commitBranchToDb.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;AAG7C,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,YAA0B;IAE1B,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,GAAG,YAAY,CAAC;IAE9D,OAAO,SAAS,CAAC,MAAM,CAAC;IACxB,OAAO,SAAS,CAAC,MAAM,CAAC;IAExB,OAAO;QACL,GAAG,SAAS;QACZ,EAAE,EAAE,EAAE,IAAI,UAAU,EAAE;QACtB,SAAS,EAAE,QAAQ;QACnB,SAAS,EAAE,QAAQ;KACpB,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { randomUUID } from 'crypto';
1
+ const randomUUID = () => crypto.randomUUID();
2
2
  export default function commitToDb(commit, projectId) {
3
3
  const { id, projectId: _projectId, branchId, mergedBranchId, aiMessage, htmlUrl, analyzedAt, committedAt, author, metadata, files, ...remaining } = commit;
4
4
  delete remaining.branch;
@@ -1 +1 @@
1
- {"version":3,"file":"commitToDb.js","sourceRoot":"","sources":["../../../../../database/src/lib/commitToDb.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,MAAc,EACd,SAA0B;IAE1B,MAAM,EACJ,EAAE,EACF,SAAS,EAAE,UAAU,EACrB,QAAQ,EACR,cAAc,EACd,SAAS,EACT,OAAO,EACP,UAAU,EACV,WAAW,EACX,MAAM,EACN,QAAQ,EACR,KAAK,EACL,GAAG,SAAS,EACb,GAAG,MAAM,CAAC;IAEX,OAAO,SAAS,CAAC,MAAM,CAAC;IACxB,OAAO,SAAS,CAAC,YAAY,CAAC;IAC9B,OAAO,SAAS,CAAC,aAAa,CAAC;IAC/B,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC1B,OAAO,SAAS,CAAC,OAAO,CAAC;IACzB,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC1B,OAAO,SAAS,CAAC,cAAc,CAAC;IAEhC,OAAO;QACL,GAAG,SAAS;QACZ,EAAE,EAAE,EAAE,IAAI,UAAU,EAAE;QACtB,UAAU,EAAE,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC;QAC3C,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;QACzD,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QAChD,SAAS,EAAE,QAAQ;QACnB,gBAAgB,EAAE,cAAc;QAChC,sBAAsB,EAAE,MAAM,EAAE,QAAQ;QACxC,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,UAAU;QACvB,YAAY,EAAE,WAAW;KAC1B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"commitToDb.js","sourceRoot":"","sources":["../../../../../database/src/lib/commitToDb.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;AAE7C,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,MAAc,EACd,SAA0B;IAE1B,MAAM,EACJ,EAAE,EACF,SAAS,EAAE,UAAU,EACrB,QAAQ,EACR,cAAc,EACd,SAAS,EACT,OAAO,EACP,UAAU,EACV,WAAW,EACX,MAAM,EACN,QAAQ,EACR,KAAK,EACL,GAAG,SAAS,EACb,GAAG,MAAM,CAAC;IAEX,OAAO,SAAS,CAAC,MAAM,CAAC;IACxB,OAAO,SAAS,CAAC,YAAY,CAAC;IAC9B,OAAO,SAAS,CAAC,aAAa,CAAC;IAC/B,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC1B,OAAO,SAAS,CAAC,OAAO,CAAC;IACzB,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC1B,OAAO,SAAS,CAAC,cAAc,CAAC;IAEhC,OAAO;QACL,GAAG,SAAS;QACZ,EAAE,EAAE,EAAE,IAAI,UAAU,EAAE;QACtB,UAAU,EAAE,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC;QAC3C,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;QACzD,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QAChD,SAAS,EAAE,QAAQ;QACnB,gBAAgB,EAAE,cAAc;QAChC,sBAAsB,EAAE,MAAM,EAAE,QAAQ;QACxC,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,UAAU;QACvB,YAAY,EAAE,WAAW;KAC1B,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { randomUUID } from 'crypto';
1
+ const randomUUID = () => crypto.randomUUID();
2
2
  export default function fileToDb(file) {
3
3
  return {
4
4
  id: file.id ?? randomUUID(),
@@ -1 +1 @@
1
- {"version":3,"file":"fileToDb.js","sourceRoot":"","sources":["../../../../../database/src/lib/fileToDb.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,IAAU;IACzC,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,UAAU,EAAE;QAC3B,UAAU,EAAE,IAAI,CAAC,SAAU;QAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;QAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;QAC9D,UAAU,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACtD,UAAU,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;KACnC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"fileToDb.js","sourceRoot":"","sources":["../../../../../database/src/lib/fileToDb.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;AAE7C,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,IAAU;IACzC,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,UAAU,EAAE;QAC3B,UAAU,EAAE,IAAI,CAAC,SAAU;QAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;QAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;QAC9D,UAAU,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACtD,UAAU,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;KACnC,CAAC;AACJ,CAAC"}
@@ -8,6 +8,7 @@ import { BranchesTable } from './tables/branchesTable';
8
8
  import { CommitBranchesTable } from './tables/commitBranchesTable';
9
9
  import { CommitsTable } from './tables/commitsTable';
10
10
  import { DebugBundlesTable } from './tables/debugReportsTable';
11
+ import { LabsRequestsTable } from './tables/labsRequestsTable';
11
12
  import { EntitiesTable } from './tables/entitiesTable';
12
13
  import { EntityBranchesTable } from './tables/entityBranchesTable';
13
14
  import { EntityStatementsTable } from './tables/entityStatementsTable';
@@ -35,6 +36,7 @@ declare const databaseSchema: {
35
36
  readonly entity_statements: EntityStatementsTable;
36
37
  readonly files: FilesTable;
37
38
  readonly github_payloads: GithubPayloadsTable;
39
+ readonly labs_requests: LabsRequestsTable;
38
40
  readonly github_users: GithubUsersTable;
39
41
  readonly scenario_comments: ScenarioCommentsTable;
40
42
  readonly scenarios: ScenariosTable;
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../../../../database/src/lib/kysely/db.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,MAAM,EAMP,MAAM,QAAQ,CAAC;AAEhB,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAC;AAKtD,OAAO,EAAuB,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAuB,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EACL,qBAAqB,EAEtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,mBAAmB,EAEpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,aAAa,EAAuB,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EACL,mBAAmB,EAEpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAsB,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAEL,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAuB,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAEL,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEL,qBAAqB,EACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAoB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAEL,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEL,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,qBAAqB,EACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAwB,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAEL,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAoB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAEL,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAwB,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAoB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAwBnE,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;CAsBV,CAAC;AAGX,MAAM,MAAM,QAAQ,GAAG;KACpB,CAAC,IAAI,MAAM,OAAO,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;CAC/D,CAAC;AAGF,eAAO,MAAM,kBAAkB,EAE1B,CAAC,MAAM,QAAQ,CAAC,EAAE,CAAC;AAIxB,wBAAgB,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,CAa9C;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM/D;AAED;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAKnD;AAID,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,oBAuEpD;AAED,wBAAgB,kBAAkB,qBAWjC;AAED,wBAAsB,qBAAqB,CACzC,MAAM,SAAa,GAClB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CA8C3B;AAID,wBAAgB,aAAa,wBAK5B;AAED,wBAAgB,uBAAuB,wBAItC;AAiDD,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB5E"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../../../../database/src/lib/kysely/db.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,MAAM,EAMP,MAAM,QAAQ,CAAC;AAEhB,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAC;AAKtD,OAAO,EAAuB,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAuB,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EACL,qBAAqB,EAEtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,mBAAmB,EAEpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,aAAa,EAAuB,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EACL,mBAAmB,EAEpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAsB,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAEL,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAuB,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAEL,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEL,qBAAqB,EACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAoB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAEL,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEL,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,qBAAqB,EACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAwB,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAEL,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAoB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAEL,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAwB,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAoB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAwBnE,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;CAuBV,CAAC;AAGX,MAAM,MAAM,QAAQ,GAAG;KACpB,CAAC,IAAI,MAAM,OAAO,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;CAC/D,CAAC;AAGF,eAAO,MAAM,kBAAkB,EAE1B,CAAC,MAAM,QAAQ,CAAC,EAAE,CAAC;AAIxB,wBAAgB,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,CAa9C;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM/D;AAED;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAKnD;AAID,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,oBAuEpD;AAED,wBAAgB,kBAAkB,qBAkBjC;AAED,wBAAsB,qBAAqB,CACzC,MAAM,SAAa,GAClB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CA8C3B;AAID,wBAAgB,aAAa,wBAK5B;AAED,wBAAgB,uBAAuB,wBAItC;AAiDD,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB5E"}
@@ -14,6 +14,7 @@ import { createBranchesTable } from './tables/branchesTable';
14
14
  import { createCommitBranchesTable, } from './tables/commitBranchesTable';
15
15
  import { createCommitsTable } from './tables/commitsTable';
16
16
  import { createDebugBundlesTable, } from './tables/debugReportsTable';
17
+ import { createLabsRequestsTable, } from './tables/labsRequestsTable';
17
18
  import { createEntitiesTable } from './tables/entitiesTable';
18
19
  import { createEntityBranchesTable, } from './tables/entityBranchesTable';
19
20
  import { createEntityStatementsTable, } from './tables/entityStatementsTable';
@@ -56,6 +57,7 @@ const databaseSchema = {
56
57
  entity_statements: schemaField(),
57
58
  files: schemaField(),
58
59
  github_payloads: schemaField(),
60
+ labs_requests: schemaField(),
59
61
  github_users: schemaField(),
60
62
  scenario_comments: schemaField(),
61
63
  scenarios: schemaField(),
@@ -162,7 +164,14 @@ export function getSqliteDatabase(sqlitePath) {
162
164
  export function getPostgreDatabase() {
163
165
  const connectionString = getPostgresConnectionString();
164
166
  console.log(`CodeYam: Using PostgreSQL database at: ${connectionString}`);
165
- const pool = new Pool({ connectionString });
167
+ const pool = new Pool({
168
+ connectionString,
169
+ // Session pooler (required for IPv4) holds real Postgres connections,
170
+ // so keep this low: 10 ECS tasks × 3 = 30 connections max
171
+ max: 3,
172
+ // Release idle connections after 10s to free up pool slots
173
+ idleTimeoutMillis: 10000,
174
+ });
166
175
  pool.on('error', (err, _client) => {
167
176
  console.error('CodeYam: Unexpected error on idle PostgreSQL client', err);
168
177
  });
@@ -281,6 +290,7 @@ export async function createSqliteSchema(db) {
281
290
  await createFilesTable(db);
282
291
  await createGithubPayloadsTable(db);
283
292
  await createGithubUsersTable(db);
293
+ await createLabsRequestsTable(db);
284
294
  await createScenarioCommentsTable(db);
285
295
  await createScenariosTable(db);
286
296
  await createStatementsTable(db);