@codeyam/codeyam-cli 0.1.0-staging.76566f9 → 0.1.0-staging.7c30edc

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 (939) 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 +15 -12
  5. package/analyzer-template/packages/ai/index.ts +20 -5
  6. package/analyzer-template/packages/ai/package.json +3 -3
  7. package/analyzer-template/packages/ai/src/lib/__mocks__/completionCall.ts +122 -0
  8. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +212 -24
  9. package/analyzer-template/packages/ai/src/lib/astScopes/arrayDerivationDetector.ts +199 -0
  10. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +183 -10
  11. package/analyzer-template/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.ts +644 -0
  12. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +181 -23
  13. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
  14. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.ts +18 -0
  15. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +15 -0
  16. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.ts +181 -1
  17. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +1229 -30
  18. package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
  19. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +265 -6
  20. package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +29 -10
  21. package/analyzer-template/packages/ai/src/lib/completionCall.ts +216 -36
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +1750 -318
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +5 -1
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +296 -35
  25. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +10 -2
  26. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +16 -3
  27. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +6 -4
  28. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +54 -3
  29. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +129 -20
  30. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
  31. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +126 -11
  32. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +179 -0
  33. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.ts +40 -30
  34. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +393 -90
  35. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.ts +129 -0
  36. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +174 -0
  37. package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
  38. package/analyzer-template/packages/ai/src/lib/e2eDataTracking.ts +334 -0
  39. package/analyzer-template/packages/ai/src/lib/extractCriticalDataKeys.ts +120 -0
  40. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +33 -7
  41. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +86 -142
  42. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +59 -3
  43. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +1385 -67
  44. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +200 -196
  45. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +614 -0
  46. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
  47. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +2484 -0
  48. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +239 -0
  49. package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +5 -5
  50. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +328 -7
  51. package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
  52. package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +111 -87
  53. package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
  54. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +10 -7
  55. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +1 -1
  56. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +32 -142
  57. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChunkPrompt.ts +82 -0
  58. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateCriticalKeysPrompt.ts +103 -0
  59. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +110 -6
  60. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +14 -89
  61. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
  62. package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +11 -11
  63. package/analyzer-template/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.ts +391 -0
  64. package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +824 -0
  65. package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +5 -1
  66. package/analyzer-template/packages/ai/src/lib/validateExecutionFlowPaths.ts +531 -0
  67. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +122 -3
  68. package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +114 -2
  69. package/analyzer-template/packages/analyze/index.ts +2 -0
  70. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +79 -59
  71. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +113 -26
  72. package/analyzer-template/packages/analyze/src/lib/analysisContext.ts +44 -4
  73. package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +1 -0
  74. package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
  75. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +19 -0
  76. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +19 -0
  77. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +11 -0
  78. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +8 -0
  79. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +49 -1
  80. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +2 -1
  81. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +449 -283
  82. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +34 -1
  83. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +6 -0
  84. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +3 -0
  85. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +4 -2
  86. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +33 -10
  87. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +31 -15
  88. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +11 -7
  89. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +11 -12
  90. package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +4 -5
  91. package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
  92. package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +14 -12
  93. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1315 -0
  94. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +201 -46
  95. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
  96. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +254 -41
  97. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +28 -62
  98. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +306 -20
  99. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +264 -0
  100. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +1 -0
  101. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +2 -3
  102. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +723 -46
  103. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +56 -11
  104. package/analyzer-template/packages/analyze/src/lib/files/scenarios/propagateArrayItemSchemas.ts +474 -0
  105. package/analyzer-template/packages/analyze/src/lib/files/setImportedExports.ts +2 -1
  106. package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
  107. package/analyzer-template/packages/analyze/src/lib/utils/getFileByPath.ts +19 -0
  108. package/analyzer-template/packages/aws/codebuild/index.ts +1 -0
  109. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +11 -1
  110. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -1
  111. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +29 -18
  112. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -1
  113. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +2 -2
  114. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -1
  115. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +2 -2
  116. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  117. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +8 -18
  118. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -1
  119. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +17 -61
  120. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  121. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -1
  122. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +8 -1
  123. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -1
  124. package/analyzer-template/packages/aws/package.json +3 -3
  125. package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +43 -19
  126. package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +3 -3
  127. package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +17 -69
  128. package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +8 -1
  129. package/analyzer-template/packages/database/package.json +1 -1
  130. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  131. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  132. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  133. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  134. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  135. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  136. package/analyzer-template/packages/database/src/lib/kysely/db.ts +14 -1
  137. package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +6 -0
  138. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +17 -1
  139. package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
  140. package/analyzer-template/packages/database/src/lib/loadAnalyses.ts +58 -1
  141. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +13 -0
  142. package/analyzer-template/packages/database/src/lib/loadBranch.ts +16 -1
  143. package/analyzer-template/packages/database/src/lib/loadCommit.ts +11 -0
  144. package/analyzer-template/packages/database/src/lib/loadCommits.ts +28 -0
  145. package/analyzer-template/packages/database/src/lib/loadEntities.ts +26 -3
  146. package/analyzer-template/packages/database/src/lib/loadEntityBranches.ts +12 -0
  147. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +7 -3
  148. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  149. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  150. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  151. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +7 -14
  152. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  153. package/analyzer-template/packages/generate/index.ts +3 -0
  154. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +17 -1
  155. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +193 -0
  156. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
  157. package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
  158. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
  159. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
  160. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
  161. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
  162. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
  163. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
  164. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
  165. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
  166. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
  167. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
  168. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
  169. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
  170. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -0
  171. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  172. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +11 -1
  173. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  174. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +1 -18
  175. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -1
  176. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts +1 -0
  177. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts.map +1 -1
  178. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js +3 -0
  179. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  180. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +17 -1
  181. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -1
  182. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  183. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts +1 -0
  184. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -1
  185. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
  186. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
  187. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  188. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  189. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +2 -6
  190. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  191. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts +2 -0
  192. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts.map +1 -1
  193. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js +45 -2
  194. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js.map +1 -1
  195. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  196. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +8 -0
  197. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  198. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js +11 -1
  199. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js.map +1 -1
  200. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.d.ts.map +1 -1
  201. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js +7 -0
  202. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js.map +1 -1
  203. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts +3 -1
  204. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  205. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +22 -1
  206. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  207. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts +3 -1
  208. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  209. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +23 -4
  210. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  211. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.d.ts.map +1 -1
  212. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js +9 -0
  213. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js.map +1 -1
  214. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  215. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
  216. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  217. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
  218. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
  219. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
  220. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
  221. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
  222. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
  223. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts +2 -2
  224. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  225. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +5 -4
  226. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  227. package/analyzer-template/packages/github/dist/generate/index.d.ts +3 -0
  228. package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -1
  229. package/analyzer-template/packages/github/dist/generate/index.js +3 -0
  230. package/analyzer-template/packages/github/dist/generate/index.js.map +1 -1
  231. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
  232. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  233. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  234. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts +9 -0
  235. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -0
  236. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  237. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  238. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts +20 -0
  239. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts.map +1 -0
  240. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  241. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  242. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts +8 -0
  243. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts.map +1 -0
  244. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js +89 -0
  245. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  246. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -1
  247. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +10 -0
  248. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -1
  249. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -1
  250. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +3 -0
  251. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -1
  252. package/analyzer-template/packages/github/dist/types/index.d.ts +3 -4
  253. package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
  254. package/analyzer-template/packages/github/dist/types/index.js +0 -1
  255. package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
  256. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +71 -27
  257. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
  258. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts +2 -0
  259. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts.map +1 -1
  260. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +2 -0
  261. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -1
  262. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  263. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  264. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +9 -54
  265. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  266. package/analyzer-template/packages/github/dist/types/src/types/Scenario.js +1 -21
  267. package/analyzer-template/packages/github/dist/types/src/types/Scenario.js.map +1 -1
  268. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +153 -5
  269. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  270. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  271. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  272. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +2 -0
  273. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  274. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts +9 -1
  275. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  276. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +29 -3
  277. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -1
  278. package/analyzer-template/packages/github/package.json +1 -1
  279. package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +14 -0
  280. package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +2 -0
  281. package/analyzer-template/packages/process/index.ts +2 -0
  282. package/analyzer-template/packages/process/package.json +12 -0
  283. package/analyzer-template/packages/process/tsconfig.json +8 -0
  284. package/analyzer-template/packages/types/index.ts +3 -6
  285. package/analyzer-template/packages/types/src/types/Analysis.ts +87 -27
  286. package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
  287. package/analyzer-template/packages/types/src/types/Entity.ts +2 -0
  288. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +7 -0
  289. package/analyzer-template/packages/types/src/types/Scenario.ts +9 -77
  290. package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +181 -5
  291. package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
  292. package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
  293. package/analyzer-template/packages/utils/dist/types/index.d.ts +3 -4
  294. package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
  295. package/analyzer-template/packages/utils/dist/types/index.js +0 -1
  296. package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
  297. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +71 -27
  298. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
  299. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts +2 -0
  300. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts.map +1 -1
  301. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +2 -0
  302. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -1
  303. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  304. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  305. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +9 -54
  306. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  307. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js +1 -21
  308. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js.map +1 -1
  309. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +153 -5
  310. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  311. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  312. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  313. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +2 -0
  314. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  315. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +9 -1
  316. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  317. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +29 -3
  318. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -1
  319. package/analyzer-template/packages/utils/src/lib/safeFileName.ts +48 -3
  320. package/analyzer-template/playwright/capture.ts +57 -26
  321. package/analyzer-template/playwright/captureStatic.ts +1 -1
  322. package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
  323. package/analyzer-template/playwright/waitForServer.ts +21 -6
  324. package/analyzer-template/project/analyzeBaselineCommit.ts +9 -0
  325. package/analyzer-template/project/analyzeBranchCommit.ts +4 -0
  326. package/analyzer-template/project/analyzeFileEntities.ts +4 -0
  327. package/analyzer-template/project/analyzeRegularCommit.ts +9 -0
  328. package/analyzer-template/project/captureLibraryFunctionDirect.ts +29 -26
  329. package/analyzer-template/project/constructMockCode.ts +1004 -105
  330. package/analyzer-template/project/controller/startController.ts +16 -1
  331. package/analyzer-template/project/createEntitiesAndSortFiles.ts +83 -0
  332. package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
  333. package/analyzer-template/project/loadReadyToBeCaptured.ts +65 -41
  334. package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
  335. package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
  336. package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +3 -6
  337. package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +18 -7
  338. package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
  339. package/analyzer-template/project/orchestrateCapture.ts +81 -9
  340. package/analyzer-template/project/reconcileMockDataKeys.ts +240 -0
  341. package/analyzer-template/project/runAnalysis.ts +11 -0
  342. package/analyzer-template/project/serverOnlyModules.ts +127 -2
  343. package/analyzer-template/project/start.ts +51 -15
  344. package/analyzer-template/project/startScenarioCapture.ts +6 -0
  345. package/analyzer-template/project/writeMockDataTsx.ts +298 -11
  346. package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
  347. package/analyzer-template/project/writeScenarioComponents.ts +312 -42
  348. package/analyzer-template/project/writeScenarioFiles.ts +26 -0
  349. package/analyzer-template/project/writeSimpleRoot.ts +23 -13
  350. package/analyzer-template/scripts/comboWorkerLoop.cjs +99 -50
  351. package/analyzer-template/scripts/defaultCmd.sh +9 -0
  352. package/analyzer-template/tsconfig.json +2 -1
  353. package/background/src/lib/local/createLocalAnalyzer.js +2 -30
  354. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  355. package/background/src/lib/local/execAsync.js +1 -1
  356. package/background/src/lib/local/execAsync.js.map +1 -1
  357. package/background/src/lib/virtualized/common/execAsync.js +1 -1
  358. package/background/src/lib/virtualized/common/execAsync.js.map +1 -1
  359. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +7 -1
  360. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
  361. package/background/src/lib/virtualized/project/analyzeBranchCommit.js +2 -1
  362. package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -1
  363. package/background/src/lib/virtualized/project/analyzeFileEntities.js +2 -1
  364. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  365. package/background/src/lib/virtualized/project/analyzeRegularCommit.js +7 -1
  366. package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
  367. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +3 -3
  368. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -1
  369. package/background/src/lib/virtualized/project/constructMockCode.js +879 -69
  370. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  371. package/background/src/lib/virtualized/project/controller/startController.js +11 -1
  372. package/background/src/lib/virtualized/project/controller/startController.js.map +1 -1
  373. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +73 -1
  374. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -1
  375. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +6 -3
  376. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -1
  377. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +19 -8
  378. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
  379. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +7 -7
  380. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -1
  381. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js +2 -2
  382. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -1
  383. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +3 -2
  384. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
  385. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +7 -5
  386. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
  387. package/background/src/lib/virtualized/project/orchestrateCapture.js +65 -10
  388. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  389. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +199 -0
  390. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  391. package/background/src/lib/virtualized/project/runAnalysis.js +9 -0
  392. package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
  393. package/background/src/lib/virtualized/project/serverOnlyModules.js +106 -3
  394. package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -1
  395. package/background/src/lib/virtualized/project/start.js +47 -15
  396. package/background/src/lib/virtualized/project/start.js.map +1 -1
  397. package/background/src/lib/virtualized/project/startScenarioCapture.js +7 -0
  398. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  399. package/background/src/lib/virtualized/project/writeMockDataTsx.js +255 -8
  400. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  401. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js +15 -0
  402. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js.map +1 -0
  403. package/background/src/lib/virtualized/project/writeScenarioComponents.js +245 -41
  404. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  405. package/background/src/lib/virtualized/project/writeScenarioFiles.js +19 -0
  406. package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -1
  407. package/background/src/lib/virtualized/project/writeSimpleRoot.js +23 -13
  408. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  409. package/codeyam-cli/scripts/apply-setup.js +180 -0
  410. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  411. package/codeyam-cli/src/cli.js +9 -1
  412. package/codeyam-cli/src/cli.js.map +1 -1
  413. package/codeyam-cli/src/codeyam-cli.js +18 -2
  414. package/codeyam-cli/src/codeyam-cli.js.map +1 -1
  415. package/codeyam-cli/src/commands/analyze.js +3 -1
  416. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  417. package/codeyam-cli/src/commands/baseline.js +176 -0
  418. package/codeyam-cli/src/commands/baseline.js.map +1 -0
  419. package/codeyam-cli/src/commands/debug.js +37 -23
  420. package/codeyam-cli/src/commands/debug.js.map +1 -1
  421. package/codeyam-cli/src/commands/default.js +24 -33
  422. package/codeyam-cli/src/commands/default.js.map +1 -1
  423. package/codeyam-cli/src/commands/detect-universal-mocks.js +2 -0
  424. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +1 -1
  425. package/codeyam-cli/src/commands/init.js +49 -257
  426. package/codeyam-cli/src/commands/init.js.map +1 -1
  427. package/codeyam-cli/src/commands/memory.js +264 -0
  428. package/codeyam-cli/src/commands/memory.js.map +1 -0
  429. package/codeyam-cli/src/commands/recapture.js +31 -18
  430. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  431. package/codeyam-cli/src/commands/report.js +46 -1
  432. package/codeyam-cli/src/commands/report.js.map +1 -1
  433. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  434. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  435. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  436. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  437. package/codeyam-cli/src/commands/start.js +8 -12
  438. package/codeyam-cli/src/commands/start.js.map +1 -1
  439. package/codeyam-cli/src/commands/status.js +23 -1
  440. package/codeyam-cli/src/commands/status.js.map +1 -1
  441. package/codeyam-cli/src/commands/test-startup.js +3 -1
  442. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  443. package/codeyam-cli/src/commands/verify.js +2 -0
  444. package/codeyam-cli/src/commands/verify.js.map +1 -1
  445. package/codeyam-cli/src/commands/wipe.js +108 -0
  446. package/codeyam-cli/src/commands/wipe.js.map +1 -0
  447. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
  448. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
  449. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +128 -82
  450. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  451. package/codeyam-cli/src/utils/analysisRunner.js +29 -15
  452. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  453. package/codeyam-cli/src/utils/analyzer.js +7 -0
  454. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  455. package/codeyam-cli/src/utils/backgroundServer.js +16 -2
  456. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  457. package/codeyam-cli/src/utils/database.js +91 -5
  458. package/codeyam-cli/src/utils/database.js.map +1 -1
  459. package/codeyam-cli/src/utils/generateReport.js +4 -3
  460. package/codeyam-cli/src/utils/generateReport.js.map +1 -1
  461. package/codeyam-cli/src/utils/git.js +79 -0
  462. package/codeyam-cli/src/utils/git.js.map +1 -0
  463. package/codeyam-cli/src/utils/install-skills.js +77 -38
  464. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  465. package/codeyam-cli/src/utils/labsAutoCheck.js +48 -0
  466. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
  467. package/codeyam-cli/src/utils/progress.js +7 -0
  468. package/codeyam-cli/src/utils/progress.js.map +1 -1
  469. package/codeyam-cli/src/utils/queue/job.js +109 -0
  470. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  471. package/codeyam-cli/src/utils/queue/manager.js +6 -0
  472. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  473. package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
  474. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  475. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  476. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
  477. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
  478. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +230 -0
  479. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
  480. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
  481. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
  482. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
  483. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
  484. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
  485. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
  486. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
  487. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
  488. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +75 -0
  489. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
  490. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +378 -0
  491. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
  492. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +115 -0
  493. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
  494. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
  495. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
  496. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
  497. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
  498. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
  499. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
  500. package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
  501. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
  502. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
  503. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
  504. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
  505. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
  506. package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
  507. package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
  508. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
  509. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
  510. package/codeyam-cli/src/utils/rules/index.js +6 -0
  511. package/codeyam-cli/src/utils/rules/index.js.map +1 -0
  512. package/codeyam-cli/src/utils/rules/parser.js +83 -0
  513. package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
  514. package/codeyam-cli/src/utils/rules/pathMatcher.js +18 -0
  515. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
  516. package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
  517. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
  518. package/codeyam-cli/src/utils/rules/staleness.js +137 -0
  519. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
  520. package/codeyam-cli/src/utils/serverState.js +37 -10
  521. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  522. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +21 -42
  523. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  524. package/codeyam-cli/src/utils/versionInfo.js +25 -19
  525. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  526. package/codeyam-cli/src/utils/wipe.js +128 -0
  527. package/codeyam-cli/src/utils/wipe.js.map +1 -0
  528. package/codeyam-cli/src/webserver/app/lib/database.js +88 -23
  529. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  530. package/codeyam-cli/src/webserver/backgroundServer.js +31 -0
  531. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  532. package/codeyam-cli/src/webserver/bootstrap.js +40 -0
  533. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
  534. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CA3JxPb7.js +1 -0
  535. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-B86KKU7e.js +11 -0
  536. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-CzGX-miz.js → EntityTypeBadge-B5ctlSYt.js} +1 -1
  537. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BqY8gDAW.js +41 -0
  538. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-ClaLpuOo.js +34 -0
  539. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-BDhPilK7.js +25 -0
  540. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-CBQPrpT0.js → LibraryFunctionPreview-VeqEBv9v.js} +1 -1
  541. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-D1CdlbrV.js → LoadingDots-Bs7Nn1Jr.js} +1 -1
  542. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-wDPcZNKx.js → LogViewer-Bm3PmcCz.js} +1 -1
  543. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-C6PKeMYR.js +11 -0
  544. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-BfmDgXxG.js → SafeScreenshot-Gq3Ocjo6.js} +1 -1
  545. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-BNLaXBHR.js +10 -0
  546. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-6J7zDUD5.js → TruncatedFilePath-CiwXDxLh.js} +1 -1
  547. package/codeyam-cli/src/webserver/build/client/assets/_index-B3TDXxnk.js +11 -0
  548. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-BtBFH820.js +27 -0
  549. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-CN61MOMa.js +11 -0
  550. package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
  551. package/codeyam-cli/src/webserver/build/client/assets/api.memory-profile-l0sNRNKZ.js +1 -0
  552. package/codeyam-cli/src/webserver/build/client/assets/api.restart-server-l0sNRNKZ.js +1 -0
  553. package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
  554. package/codeyam-cli/src/webserver/build/client/assets/book-open-PttOB2SF.js +6 -0
  555. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-BYimnrHg.js → chevron-down-TJp6ofnp.js} +1 -1
  556. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-JE9ZIoBl.js +51 -0
  557. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-CaVsIRxt.js → circle-check-CXhHQYrI.js} +1 -1
  558. package/codeyam-cli/src/webserver/build/client/assets/copy-6y9ALfGT.js +11 -0
  559. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-CgUsG7ib.js → createLucideIcon-Ca9fAY46.js} +1 -1
  560. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-C1gnJVOL.svg → cy-logo-cli-CCKUIm0S.svg} +2 -2
  561. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +1 -0
  562. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-C5lqplTC.js +1 -0
  563. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-Dt-SjPsw.js → entity._sha._-n38keI1k.js} +12 -12
  564. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-CBoafmVs.js +6 -0
  565. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DGgZjdFg.js +6 -0
  566. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CfLCUi9S.js → entity._sha_.edit._scenarioId-38yPijoD.js} +1 -1
  567. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-DKJyZfAY.js → entry.client-BSHEfydn.js} +6 -6
  568. package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
  569. package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DAtOlaWE.js → fileTableUtils-DCPhhSMo.js} +1 -1
  570. package/codeyam-cli/src/webserver/build/client/assets/files-0N0YJQv7.js +1 -0
  571. package/codeyam-cli/src/webserver/build/client/assets/{git-D62Lxxmv.js → git-DXnyr8uP.js} +8 -8
  572. package/codeyam-cli/src/webserver/build/client/assets/globals-CuCsBc3b.css +1 -0
  573. package/codeyam-cli/src/webserver/build/client/assets/{index-BosqDOlH.js → index-CcsFv748.js} +1 -1
  574. package/codeyam-cli/src/webserver/build/client/assets/{index-CzNNiTkw.js → index-ChN9-fAY.js} +1 -1
  575. package/codeyam-cli/src/webserver/build/client/assets/labs-CB3MGcys.js +1 -0
  576. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-CNp9QFCX.js → loader-circle-CTqLEAGU.js} +1 -1
  577. package/codeyam-cli/src/webserver/build/client/assets/manifest-de6ccaf4.js +1 -0
  578. package/codeyam-cli/src/webserver/build/client/assets/memory-DCA-kLYt.js +81 -0
  579. package/codeyam-cli/src/webserver/build/client/assets/pause-D6vreykR.js +11 -0
  580. package/codeyam-cli/src/webserver/build/client/assets/root-F7e6dvys.js +62 -0
  581. package/codeyam-cli/src/webserver/build/client/assets/{search-DDGjYAMJ.js → search-B8VUL8nl.js} +1 -1
  582. package/codeyam-cli/src/webserver/build/client/assets/settings-BejnUJ6R.js +1 -0
  583. package/codeyam-cli/src/webserver/build/client/assets/simulations-CPoAg7Zo.js +1 -0
  584. package/codeyam-cli/src/webserver/build/client/assets/terminal-BrCP7uQo.js +11 -0
  585. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-CBc5dE1s.js → triangle-alert-BZz2NjYa.js} +1 -1
  586. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-DNwUduNu.js +1 -0
  587. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-BqPPNjAl.js → useLastLogLine-COky1GVF.js} +1 -1
  588. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-CpZgwliL.js +1 -0
  589. package/codeyam-cli/src/webserver/build/client/assets/{useToast-DWHcCcl1.js → useToast-Bv9JFvUO.js} +1 -1
  590. package/codeyam-cli/src/webserver/build/server/assets/index-CFKHuovO.js +1 -0
  591. package/codeyam-cli/src/webserver/build/server/assets/server-build-BQe9Dh4p.js +260 -0
  592. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  593. package/codeyam-cli/src/webserver/build-info.json +5 -5
  594. package/codeyam-cli/src/webserver/server.js +35 -25
  595. package/codeyam-cli/src/webserver/server.js.map +1 -1
  596. package/codeyam-cli/templates/codeyam-memory-hook.sh +199 -0
  597. package/codeyam-cli/templates/{codeyam-debug-skill.md → codeyam:debug.md} +48 -4
  598. package/codeyam-cli/templates/codeyam:diagnose.md +481 -0
  599. package/codeyam-cli/templates/codeyam:memory.md +392 -0
  600. package/codeyam-cli/templates/codeyam:new-rule.md +13 -0
  601. package/codeyam-cli/templates/{codeyam-setup-skill.md → codeyam:setup.md} +13 -1
  602. package/codeyam-cli/templates/{codeyam-sim-skill.md → codeyam:sim.md} +1 -1
  603. package/codeyam-cli/templates/{codeyam-test-skill.md → codeyam:test.md} +1 -1
  604. package/codeyam-cli/templates/{codeyam-verify-skill.md → codeyam:verify.md} +1 -1
  605. package/codeyam-cli/templates/rule-notification-hook.py +56 -0
  606. package/codeyam-cli/templates/rule-reflection-hook.py +627 -0
  607. package/codeyam-cli/templates/rules-instructions.md +132 -0
  608. package/package.json +12 -9
  609. package/packages/ai/index.js +8 -6
  610. package/packages/ai/index.js.map +1 -1
  611. package/packages/ai/src/lib/analyzeScope.js +165 -13
  612. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  613. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js +150 -0
  614. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js.map +1 -0
  615. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +138 -9
  616. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  617. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
  618. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
  619. package/packages/ai/src/lib/astScopes/methodSemantics.js +138 -23
  620. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  621. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
  622. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
  623. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +8 -0
  624. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -1
  625. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +7 -0
  626. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
  627. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +138 -1
  628. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
  629. package/packages/ai/src/lib/astScopes/processExpression.js +944 -30
  630. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  631. package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
  632. package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
  633. package/packages/ai/src/lib/checkAllAttributes.js +24 -9
  634. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  635. package/packages/ai/src/lib/completionCall.js +178 -31
  636. package/packages/ai/src/lib/completionCall.js.map +1 -1
  637. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1367 -187
  638. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  639. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +5 -1
  640. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  641. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +230 -23
  642. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -1
  643. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +7 -1
  644. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  645. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +13 -3
  646. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -1
  647. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +6 -4
  648. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -1
  649. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +52 -3
  650. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  651. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +111 -14
  652. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  653. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
  654. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
  655. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +113 -11
  656. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  657. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
  658. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
  659. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
  660. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
  661. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +333 -81
  662. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  663. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js +107 -0
  664. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js.map +1 -0
  665. package/packages/ai/src/lib/dataStructureChunking.js +126 -0
  666. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -0
  667. package/packages/ai/src/lib/deepEqual.js +32 -0
  668. package/packages/ai/src/lib/deepEqual.js.map +1 -0
  669. package/packages/ai/src/lib/e2eDataTracking.js +241 -0
  670. package/packages/ai/src/lib/e2eDataTracking.js.map +1 -0
  671. package/packages/ai/src/lib/extractCriticalDataKeys.js +96 -0
  672. package/packages/ai/src/lib/extractCriticalDataKeys.js.map +1 -0
  673. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +21 -5
  674. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  675. package/packages/ai/src/lib/generateChangesEntityScenarios.js +78 -120
  676. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  677. package/packages/ai/src/lib/generateEntityDataStructure.js +47 -2
  678. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  679. package/packages/ai/src/lib/generateEntityScenarioData.js +1101 -62
  680. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  681. package/packages/ai/src/lib/generateEntityScenarios.js +177 -163
  682. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  683. package/packages/ai/src/lib/generateExecutionFlows.js +414 -0
  684. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
  685. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
  686. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
  687. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +1807 -0
  688. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
  689. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
  690. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js.map +1 -0
  691. package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -2
  692. package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
  693. package/packages/ai/src/lib/isolateScopes.js +270 -7
  694. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  695. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
  696. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
  697. package/packages/ai/src/lib/mergeStatements.js +88 -46
  698. package/packages/ai/src/lib/mergeStatements.js.map +1 -1
  699. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
  700. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
  701. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +10 -4
  702. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  703. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +1 -1
  704. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  705. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +21 -100
  706. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  707. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js +54 -0
  708. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js.map +1 -0
  709. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +83 -6
  710. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  711. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +10 -70
  712. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  713. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
  714. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
  715. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +9 -9
  716. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
  717. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js +335 -0
  718. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js.map +1 -0
  719. package/packages/ai/src/lib/resolvePathToControllable.js +677 -0
  720. package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
  721. package/packages/ai/src/lib/splitOutsideParentheses.js +3 -1
  722. package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -1
  723. package/packages/ai/src/lib/worker/SerializableDataStructure.js +29 -0
  724. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  725. package/packages/ai/src/lib/worker/analyzeScopeWorker.js +94 -1
  726. package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
  727. package/packages/analyze/index.js +1 -0
  728. package/packages/analyze/index.js.map +1 -1
  729. package/packages/analyze/src/lib/FileAnalyzer.js +75 -36
  730. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  731. package/packages/analyze/src/lib/ProjectAnalyzer.js +96 -26
  732. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  733. package/packages/analyze/src/lib/analysisContext.js +30 -5
  734. package/packages/analyze/src/lib/analysisContext.js.map +1 -1
  735. package/packages/analyze/src/lib/asts/nodes/index.js +1 -0
  736. package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
  737. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
  738. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
  739. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +14 -0
  740. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -1
  741. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +14 -0
  742. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -1
  743. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +6 -0
  744. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
  745. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +6 -0
  746. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -1
  747. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +39 -1
  748. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -1
  749. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +2 -1
  750. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -1
  751. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +196 -57
  752. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  753. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +24 -1
  754. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  755. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +5 -0
  756. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  757. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +2 -0
  758. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  759. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +2 -1
  760. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  761. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +31 -10
  762. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  763. package/packages/analyze/src/lib/files/analyzeChange.js +21 -11
  764. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  765. package/packages/analyze/src/lib/files/analyzeEntity.js +9 -8
  766. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  767. package/packages/analyze/src/lib/files/analyzeInitial.js +9 -10
  768. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  769. package/packages/analyze/src/lib/files/analyzeRemixRoute.js +3 -2
  770. package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
  771. package/packages/analyze/src/lib/files/enums/steps.js +1 -1
  772. package/packages/analyze/src/lib/files/enums/steps.js.map +1 -1
  773. package/packages/analyze/src/lib/files/getImportedExports.js +11 -7
  774. package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
  775. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +880 -0
  776. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
  777. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +170 -40
  778. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
  779. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
  780. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
  781. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +211 -29
  782. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  783. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +29 -34
  784. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
  785. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +218 -20
  786. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  787. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +144 -0
  788. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
  789. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +1 -0
  790. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  791. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +2 -3
  792. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  793. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +599 -38
  794. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  795. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +46 -9
  796. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -1
  797. package/packages/analyze/src/lib/files/setImportedExports.js +2 -1
  798. package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -1
  799. package/packages/analyze/src/lib/index.js +1 -0
  800. package/packages/analyze/src/lib/index.js.map +1 -1
  801. package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
  802. package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
  803. package/packages/aws/src/lib/ecs/ecsDefineContainer.js +2 -2
  804. package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  805. package/packages/aws/src/lib/ecs/ecsTaskFactory.js +17 -61
  806. package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  807. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  808. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  809. package/packages/database/src/lib/analysisToDb.js +1 -1
  810. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  811. package/packages/database/src/lib/branchToDb.js +1 -1
  812. package/packages/database/src/lib/branchToDb.js.map +1 -1
  813. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  814. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  815. package/packages/database/src/lib/commitToDb.js +1 -1
  816. package/packages/database/src/lib/commitToDb.js.map +1 -1
  817. package/packages/database/src/lib/fileToDb.js +1 -1
  818. package/packages/database/src/lib/fileToDb.js.map +1 -1
  819. package/packages/database/src/lib/kysely/db.js +11 -1
  820. package/packages/database/src/lib/kysely/db.js.map +1 -1
  821. package/packages/database/src/lib/kysely/tables/commitsTable.js +3 -0
  822. package/packages/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  823. package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  824. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  825. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  826. package/packages/database/src/lib/loadAnalyses.js +45 -2
  827. package/packages/database/src/lib/loadAnalyses.js.map +1 -1
  828. package/packages/database/src/lib/loadAnalysis.js +8 -0
  829. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  830. package/packages/database/src/lib/loadBranch.js +11 -1
  831. package/packages/database/src/lib/loadBranch.js.map +1 -1
  832. package/packages/database/src/lib/loadCommit.js +7 -0
  833. package/packages/database/src/lib/loadCommit.js.map +1 -1
  834. package/packages/database/src/lib/loadCommits.js +22 -1
  835. package/packages/database/src/lib/loadCommits.js.map +1 -1
  836. package/packages/database/src/lib/loadEntities.js +23 -4
  837. package/packages/database/src/lib/loadEntities.js.map +1 -1
  838. package/packages/database/src/lib/loadEntityBranches.js +9 -0
  839. package/packages/database/src/lib/loadEntityBranches.js.map +1 -1
  840. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
  841. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  842. package/packages/database/src/lib/projectToDb.js +1 -1
  843. package/packages/database/src/lib/projectToDb.js.map +1 -1
  844. package/packages/database/src/lib/saveFiles.js +1 -1
  845. package/packages/database/src/lib/saveFiles.js.map +1 -1
  846. package/packages/database/src/lib/scenarioToDb.js +1 -1
  847. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  848. package/packages/database/src/lib/updateCommitMetadata.js +5 -4
  849. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  850. package/packages/generate/index.js +3 -0
  851. package/packages/generate/index.js.map +1 -1
  852. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  853. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  854. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  855. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  856. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  857. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  858. package/packages/generate/src/lib/scenarioComponentForServer.js +89 -0
  859. package/packages/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  860. package/packages/github/src/lib/loadOrCreateCommit.js +10 -0
  861. package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -1
  862. package/packages/github/src/lib/syncPrimaryBranch.js +3 -0
  863. package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -1
  864. package/packages/process/index.js +3 -0
  865. package/packages/process/index.js.map +1 -0
  866. package/packages/process/src/GlobalProcessManager.js.map +1 -0
  867. package/{background/src/lib/process → packages/process/src}/ProcessManager.js +1 -1
  868. package/packages/process/src/ProcessManager.js.map +1 -0
  869. package/packages/process/src/index.js.map +1 -0
  870. package/packages/process/src/managedExecAsync.js.map +1 -0
  871. package/packages/types/index.js +0 -1
  872. package/packages/types/index.js.map +1 -1
  873. package/packages/types/src/types/Scenario.js +1 -21
  874. package/packages/types/src/types/Scenario.js.map +1 -1
  875. package/packages/utils/src/lib/safeFileName.js +29 -3
  876. package/packages/utils/src/lib/safeFileName.js.map +1 -1
  877. package/scripts/finalize-analyzer.cjs +8 -76
  878. package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +0 -102
  879. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +0 -409
  880. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +0 -288
  881. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +0 -495
  882. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +0 -67
  883. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +0 -120
  884. package/analyzer-template/process/INTEGRATION_COMPLETE.md +0 -333
  885. package/analyzer-template/process/INTEGRATION_EXAMPLE.md +0 -525
  886. package/analyzer-template/process/README.md +0 -507
  887. package/background/src/lib/process/GlobalProcessManager.js.map +0 -1
  888. package/background/src/lib/process/ProcessManager.js.map +0 -1
  889. package/background/src/lib/process/index.js.map +0 -1
  890. package/background/src/lib/process/managedExecAsync.js.map +0 -1
  891. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-wXL1Z2Aq.js +0 -1
  892. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-CXFKsCOD.js +0 -41
  893. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-D-9pXIaY.js +0 -25
  894. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-4lcOlid-.js +0 -11
  895. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-CUxUNEEC.js +0 -15
  896. package/codeyam-cli/src/webserver/build/client/assets/_index-DHImXdXq.js +0 -11
  897. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CVP_WGQ3.js +0 -32
  898. package/codeyam-cli/src/webserver/build/client/assets/chunk-JMJ3UQ3L-BambyYE_.js +0 -51
  899. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-CKnwPCDr.js +0 -1
  900. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DW_hdGUc.js +0 -1
  901. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DyB90fWk.js +0 -1
  902. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-D_3ero5o.js +0 -1
  903. package/codeyam-cli/src/webserver/build/client/assets/files-ClR0d32A.js +0 -1
  904. package/codeyam-cli/src/webserver/build/client/assets/globals-C9s7Lhdl.css +0 -1
  905. package/codeyam-cli/src/webserver/build/client/assets/keyAttributeCoverage-CTlFMihX.js +0 -1
  906. package/codeyam-cli/src/webserver/build/client/assets/manifest-0d27da29.js +0 -1
  907. package/codeyam-cli/src/webserver/build/client/assets/root-B_wIKCIf.js +0 -56
  908. package/codeyam-cli/src/webserver/build/client/assets/settings-DgTyB-Wg.js +0 -1
  909. package/codeyam-cli/src/webserver/build/client/assets/simulations-CoNWGt0K.js +0 -1
  910. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BMIGFP-m.js +0 -1
  911. package/codeyam-cli/src/webserver/build/client/assets/useInteractiveMode-Dk_FQqWJ.js +0 -1
  912. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DsJbgMY9.js +0 -1
  913. package/codeyam-cli/src/webserver/build/server/assets/index-CU58-Ttc.js +0 -1
  914. package/codeyam-cli/src/webserver/build/server/assets/server-build-D35o2uae.js +0 -175
  915. package/codeyam-cli/templates/debug-codeyam.md +0 -625
  916. package/packages/ai/src/lib/findMatchingAttribute.js +0 -77
  917. package/packages/ai/src/lib/findMatchingAttribute.js.map +0 -1
  918. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +0 -298
  919. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +0 -1
  920. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +0 -226
  921. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +0 -1
  922. package/packages/ai/src/lib/generateEntityKeyAttributes.js +0 -408
  923. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +0 -1
  924. package/packages/ai/src/lib/isFrontend.js +0 -5
  925. package/packages/ai/src/lib/isFrontend.js.map +0 -1
  926. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +0 -40
  927. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +0 -1
  928. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +0 -77
  929. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +0 -1
  930. /package/analyzer-template/{process → packages/process/src}/GlobalProcessManager.ts +0 -0
  931. /package/analyzer-template/{process → packages/process/src}/ProcessManager.ts +0 -0
  932. /package/analyzer-template/{process → packages/process/src}/index.ts +0 -0
  933. /package/analyzer-template/{process → packages/process/src}/managedExecAsync.ts +0 -0
  934. /package/codeyam-cli/src/webserver/build/client/assets/{api.link-scenario-value-l0sNRNKZ.js → api.agent-transcripts-l0sNRNKZ.js} +0 -0
  935. /package/codeyam-cli/src/webserver/build/client/assets/{api.update-key-attributes-l0sNRNKZ.js → api.health-l0sNRNKZ.js} +0 -0
  936. /package/codeyam-cli/src/webserver/build/client/assets/{api.update-valid-values-l0sNRNKZ.js → api.labs-survey-l0sNRNKZ.js} +0 -0
  937. /package/{background/src/lib/process → packages/process/src}/GlobalProcessManager.js +0 -0
  938. /package/{background/src/lib/process → packages/process/src}/index.js +0 -0
  939. /package/{background/src/lib/process → packages/process/src}/managedExecAsync.js +0 -0
@@ -1,10 +1,36 @@
1
- export default function safeFileName(name) {
1
+ /**
2
+ * Simple hash function for generating unique suffixes.
3
+ * Uses djb2 algorithm - fast and produces good distribution.
4
+ * Not cryptographically secure, but sufficient for filename uniqueness.
5
+ */
6
+ function simpleHash(str) {
7
+ let hash = 5381;
8
+ for (let i = 0; i < str.length; i++) {
9
+ hash = (hash * 33) ^ str.charCodeAt(i);
10
+ }
11
+ // Convert to unsigned 32-bit and then to hex
12
+ return (hash >>> 0).toString(16).padStart(8, '0');
13
+ }
14
+ export default function safeFileName(name, options = {}) {
15
+ const { maxLength } = options;
2
16
  // Replace unsafe characters with underscores, preserving original casing
3
17
  // Then trim leading/trailing underscores to avoid malformed route segments
4
- const safeSlug = name.replace(/[^a-zA-Z0-9_]+/g, '_').replace(/^_+|_+$/g, '');
18
+ let safeSlug = name.replace(/[^a-zA-Z0-9_]+/g, '_').replace(/^_+|_+$/g, '');
5
19
  if (!safeSlug)
6
20
  return '';
7
21
  // Ensure it starts with a capital letter (for consistency with Remix routes)
8
- return safeSlug.slice(0, 1).toUpperCase() + safeSlug.slice(1);
22
+ safeSlug = safeSlug.slice(0, 1).toUpperCase() + safeSlug.slice(1);
23
+ // If maxLength is specified and the slug exceeds it, truncate and add a hash
24
+ if (maxLength && safeSlug.length > maxLength) {
25
+ // Create an 8-character hash of the full name for uniqueness
26
+ const hash = simpleHash(name);
27
+ // Reserve space for underscore + hash (9 chars total)
28
+ const truncateLength = maxLength - 9;
29
+ const truncated = safeSlug.substring(0, truncateLength);
30
+ // Remove trailing underscore if present (from mid-word truncation)
31
+ const cleanTruncated = truncated.replace(/_+$/, '');
32
+ safeSlug = `${cleanTruncated}_${hash}`;
33
+ }
34
+ return safeSlug;
9
35
  }
10
36
  //# sourceMappingURL=safeFileName.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"safeFileName.js","sourceRoot":"","sources":["../../../../src/lib/safeFileName.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,IAAY;IAC/C,yEAAyE;IACzE,2EAA2E;IAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAE9E,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IAEzB,6EAA6E;IAC7E,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"safeFileName.js","sourceRoot":"","sources":["../../../../src/lib/safeFileName.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,6CAA6C;IAC7C,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC;AAWD,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,IAAY,EACZ,UAA+B,EAAE;IAEjC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE9B,yEAAyE;IACzE,2EAA2E;IAC3E,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAE5E,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IAEzB,6EAA6E;IAC7E,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAElE,6EAA6E;IAC7E,IAAI,SAAS,IAAI,QAAQ,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QAC7C,6DAA6D;QAC7D,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAE9B,sDAAsD;QACtD,MAAM,cAAc,GAAG,SAAS,GAAG,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;QAExD,mEAAmE;QACnE,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAEpD,QAAQ,GAAG,GAAG,cAAc,IAAI,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,10 +1,55 @@
1
- export default function safeFileName(name: string) {
1
+ /**
2
+ * Simple hash function for generating unique suffixes.
3
+ * Uses djb2 algorithm - fast and produces good distribution.
4
+ * Not cryptographically secure, but sufficient for filename uniqueness.
5
+ */
6
+ function simpleHash(str: string): string {
7
+ let hash = 5381;
8
+ for (let i = 0; i < str.length; i++) {
9
+ hash = (hash * 33) ^ str.charCodeAt(i);
10
+ }
11
+ // Convert to unsigned 32-bit and then to hex
12
+ return (hash >>> 0).toString(16).padStart(8, '0');
13
+ }
14
+
15
+ export interface SafeFileNameOptions {
16
+ /**
17
+ * Maximum length of the resulting filename.
18
+ * If the name exceeds this length, it will be truncated and a hash suffix added.
19
+ * macOS has a 255 byte filename limit. Default is undefined (no limit).
20
+ */
21
+ maxLength?: number;
22
+ }
23
+
24
+ export default function safeFileName(
25
+ name: string,
26
+ options: SafeFileNameOptions = {},
27
+ ): string {
28
+ const { maxLength } = options;
29
+
2
30
  // Replace unsafe characters with underscores, preserving original casing
3
31
  // Then trim leading/trailing underscores to avoid malformed route segments
4
- const safeSlug = name.replace(/[^a-zA-Z0-9_]+/g, '_').replace(/^_+|_+$/g, '');
32
+ let safeSlug = name.replace(/[^a-zA-Z0-9_]+/g, '_').replace(/^_+|_+$/g, '');
5
33
 
6
34
  if (!safeSlug) return '';
7
35
 
8
36
  // Ensure it starts with a capital letter (for consistency with Remix routes)
9
- return safeSlug.slice(0, 1).toUpperCase() + safeSlug.slice(1);
37
+ safeSlug = safeSlug.slice(0, 1).toUpperCase() + safeSlug.slice(1);
38
+
39
+ // If maxLength is specified and the slug exceeds it, truncate and add a hash
40
+ if (maxLength && safeSlug.length > maxLength) {
41
+ // Create an 8-character hash of the full name for uniqueness
42
+ const hash = simpleHash(name);
43
+
44
+ // Reserve space for underscore + hash (9 chars total)
45
+ const truncateLength = maxLength - 9;
46
+ const truncated = safeSlug.substring(0, truncateLength);
47
+
48
+ // Remove trailing underscore if present (from mid-word truncation)
49
+ const cleanTruncated = truncated.replace(/_+$/, '');
50
+
51
+ safeSlug = `${cleanTruncated}_${hash}`;
52
+ }
53
+
54
+ return safeSlug;
10
55
  }
@@ -161,10 +161,10 @@ export default async function capture({
161
161
  awsLogDebugLevel(1, 'Capture process initialized, waiting for controller...');
162
162
 
163
163
  // Resolve controller URL once before starting capture loop
164
- // Read controller port from log file (for local dev) or use PROJECT_URL env var (for Docker)
164
+ // Priority: PROJECT_URL env var > log file (local dev) > default (Docker)
165
165
  let controllerUrl = process.env.PROJECT_URL;
166
166
 
167
- if (!controllerUrl) {
167
+ if (!controllerUrl && process.env.CODEYAM_LOCAL_PROJECT_PATH) {
168
168
  // Local dev mode - poll log file until controller port is found
169
169
  awsLog('CodeYam: Waiting for controller port in log file...');
170
170
  let controllerPort: number | null = null;
@@ -182,10 +182,19 @@ export default async function capture({
182
182
  awsLog('CodeYam: Shutdown during controller port wait');
183
183
  return;
184
184
  }
185
+ } else if (!controllerUrl) {
186
+ // Docker mode - use fixed port 3000
187
+ controllerUrl = 'http://localhost:3000';
188
+ awsLog(`Using default controller URL: ${controllerUrl}`);
185
189
  }
186
190
 
187
191
  awsLogDebugLevel(1, 'Controller found, waiting for analysis...');
188
192
 
193
+ // Determine if we're in local CLI mode vs cloud mode
194
+ // In local mode, connection failures indicate server crash (should exit quickly)
195
+ // In cloud mode, connection failures are normal between work items (wait patiently)
196
+ const isLocalMode = !!process.env.CODEYAM_LOCAL_PROJECT_PATH;
197
+
189
198
  // Track if we've ever successfully captured an analysis
190
199
  // If connection fails after we've successfully worked, it means controller exited
191
200
  let hasEverCapturedAnalysis = false;
@@ -248,11 +257,11 @@ export default async function capture({
248
257
  analysisId: analysis.id,
249
258
  entityName: analysis.entityName,
250
259
  });
251
- await updateFreshAnalysisStatus(
260
+ await updateFreshAnalysisStatusWithScenarios(
252
261
  analysis.id,
253
- (freshStatus, inAnalysis) => {
262
+ (freshStatus, dbScenarios, inAnalysis) => {
254
263
  // Mark any incomplete scenarios as errored
255
- for (const scenario of inAnalysis.scenarios || []) {
264
+ for (const scenario of dbScenarios) {
256
265
  const scenarioStatus = freshStatus.scenarios?.find(
257
266
  (s) => s.name === scenario.name,
258
267
  );
@@ -272,17 +281,18 @@ export default async function capture({
272
281
  }
273
282
 
274
283
  // Mark the analysis as finished if all scenarios have been addressed
275
- const allScenariosComplete = freshStatus.scenarios?.every(
276
- (s) => s.finishedAt || s.error,
277
- );
284
+ // Only set finishedAt - the loader will exclude based on scenario states
285
+ const allScenariosComplete =
286
+ freshStatus.scenarios?.length >= dbScenarios.length &&
287
+ freshStatus.scenarios?.every((s) => s.finishedAt || s.error);
278
288
  if (allScenariosComplete && !freshStatus.finishedAt) {
279
289
  freshStatus.finishedAt = new Date().toISOString();
280
- freshStatus.readyToBeCaptured = false;
281
290
  awsLog('CodeYam: Marking analysis as complete on shutdown', {
282
291
  analysisId: inAnalysis.id,
283
292
  });
284
293
  }
285
294
  },
295
+ 'capture-shutdown',
286
296
  );
287
297
  }
288
298
 
@@ -334,7 +344,13 @@ export default async function capture({
334
344
 
335
345
  async function captureOneAnalysis() {
336
346
  // controllerUrl is already set in parent scope - just wait for server to be ready
337
- const waitResult = await waitForServer(controllerUrl, () => isShuttingDown);
347
+ const waitResult = await waitForServer(
348
+ controllerUrl,
349
+ () => isShuttingDown,
350
+ {
351
+ isLocalMode,
352
+ },
353
+ );
338
354
 
339
355
  // Check if controller signaled completion during wait
340
356
  if (waitResult.shutdown) {
@@ -372,23 +388,27 @@ export default async function capture({
372
388
  break;
373
389
  }
374
390
 
375
- // Check if connection failed (controller may have exited)
391
+ // Check if connection failed (controller may have exited or not started yet)
376
392
  if (result.connectionFailed) {
377
- consecutiveConnectionFailures++;
378
- awsLog(
379
- `CodeYam: Connection failed (attempt ${consecutiveConnectionFailures}/${MAX_CONNECTION_FAILURES_FOR_SHUTDOWN}, hasEverCaptured=${hasEverCapturedAnalysis})`,
380
- );
381
- // If we've had many consecutive connection failures, the controller has likely exited
382
- // This can happen even if hasEverCapturedAnalysis is false due to race conditions
383
- // in how scenario completion is tracked
384
- if (
385
- consecutiveConnectionFailures >=
386
- MAX_CONNECTION_FAILURES_FOR_SHUTDOWN
387
- ) {
388
- awsLog('CodeYam: Controller connection lost, treating as shutdown');
389
- isShuttingDown = true;
390
- break;
393
+ // Only treat connection failures as shutdown in local mode
394
+ // In cloud mode, connection failures are expected between work items
395
+ if (isLocalMode) {
396
+ consecutiveConnectionFailures++;
397
+ awsLog(
398
+ `CodeYam: Connection failed (attempt ${consecutiveConnectionFailures}/${MAX_CONNECTION_FAILURES_FOR_SHUTDOWN}, hasEverCaptured=${hasEverCapturedAnalysis})`,
399
+ );
400
+ if (
401
+ consecutiveConnectionFailures >=
402
+ MAX_CONNECTION_FAILURES_FOR_SHUTDOWN
403
+ ) {
404
+ awsLog(
405
+ 'CodeYam: Controller connection lost, treating as shutdown',
406
+ );
407
+ isShuttingDown = true;
408
+ break;
409
+ }
391
410
  }
411
+ // In cloud mode, just continue waiting (don't count failures)
392
412
  } else {
393
413
  consecutiveConnectionFailures = 0;
394
414
  }
@@ -531,7 +551,7 @@ export default async function capture({
531
551
 
532
552
  await updateFreshAnalysisStatusWithScenarios(
533
553
  analysis.id,
534
- (freshStatus, scenarios) => {
554
+ (freshStatus, dbScenarios) => {
535
555
  freshStatus.scenarios ||= [];
536
556
  const scenarioStatus = freshStatus.scenarios.find(
537
557
  (s) => s.name === scenario.name,
@@ -550,6 +570,17 @@ export default async function capture({
550
570
  error: fullErrorMessage,
551
571
  });
552
572
  }
573
+
574
+ // Check if all scenarios are now complete (even if with errors)
575
+ // Only set finishedAt - the loader will exclude this analysis based on
576
+ // the scenario check (all have finishedAt || error), no need to also
577
+ // toggle readyToBeCaptured which has different semantics
578
+ if (
579
+ freshStatus.scenarios.length >= dbScenarios.length &&
580
+ freshStatus.scenarios.every((s) => s.finishedAt || s.error)
581
+ ) {
582
+ freshStatus.finishedAt = new Date().toISOString();
583
+ }
553
584
  },
554
585
  'capture-http-error',
555
586
  );
@@ -40,7 +40,7 @@ export default async function captureStatic({
40
40
  const now = new Date().toISOString();
41
41
  await updateCommitMetadata({
42
42
  commitId: analysis.commitId,
43
- updateCallback: (metadata, commit) => {
43
+ updateCallback: (metadata) => {
44
44
  if (metadata.currentRun) {
45
45
  metadata.currentRun.firstCaptureAt ??= now;
46
46
  metadata.currentRun.lastCaptureAt = now;
@@ -1,5 +1,3 @@
1
- /* eslint-disable */
2
-
3
1
  import { ProjectFramework } from '~codeyam/types';
4
2
 
5
3
  export interface CodeYamInfo {
@@ -41,7 +39,9 @@ export default async function getCodeYamInfo(
41
39
 
42
40
  // if controller signals complete, tell capture to shut down
43
41
  if (phase === 'COMPLETE') {
44
- console.log(`CodeYam DEBUG: getCodeYamInfo received COMPLETE phase, signaling shutdown`);
42
+ console.log(
43
+ `CodeYam DEBUG: getCodeYamInfo received COMPLETE phase, signaling shutdown`,
44
+ );
45
45
  if (options?.returnShutdown) {
46
46
  return { info: null, shutdown: true };
47
47
  }
@@ -57,7 +57,6 @@ export default async function getCodeYamInfo(
57
57
  }
58
58
 
59
59
  // all other cases mean 'keep waiting'
60
- console.log(`CodeYam DEBUG: getCodeYamInfo phase=${phase}, info=${info ? 'present' : 'null'}, returning null`);
61
60
  if (options?.returnShutdown) {
62
61
  return { info: null, shutdown: false };
63
62
  }
@@ -74,7 +73,9 @@ export default async function getCodeYamInfo(
74
73
  const errorMessage = error.message || '';
75
74
  const causeMessage = error.cause?.message || '';
76
75
 
77
- console.log(`CodeYam DEBUG: getCodeYamInfo caught error - code=${errorCode}, message=${errorMessage}, causeMessage=${causeMessage}`);
76
+ console.log(
77
+ `CodeYam DEBUG: getCodeYamInfo caught error - code=${errorCode}, message=${errorMessage}, causeMessage=${causeMessage}`,
78
+ );
78
79
 
79
80
  const isConnectionError =
80
81
  errorCode === 'ECONNREFUSED' ||
@@ -85,11 +86,15 @@ export default async function getCodeYamInfo(
85
86
  causeMessage.includes('ECONNREFUSED');
86
87
 
87
88
  if (!isConnectionError) {
88
- console.log(`CodeYam DEBUG: getCodeYamInfo error is NOT a connection error, rethrowing`);
89
+ console.log(
90
+ `CodeYam DEBUG: getCodeYamInfo error is NOT a connection error, rethrowing`,
91
+ );
89
92
  throw error;
90
93
  }
91
94
  // let caller know the server just isn't up yet (or has shut down)
92
- console.log(`CodeYam DEBUG: getCodeYamInfo connection error detected, returning connectionFailed=true`);
95
+ console.log(
96
+ `CodeYam DEBUG: getCodeYamInfo connection error detected, returning connectionFailed=true`,
97
+ );
93
98
  if (options?.returnShutdown) {
94
99
  return { info: null, shutdown: false, connectionFailed: true };
95
100
  }
@@ -17,10 +17,18 @@ export interface WaitForServerResult {
17
17
  shutdown: boolean;
18
18
  }
19
19
 
20
+ export interface WaitForServerOptions {
21
+ // In local CLI mode, treat connection failures as shutdown signal (server should be running)
22
+ // In cloud mode, connection failures are normal between work items
23
+ isLocalMode?: boolean;
24
+ }
25
+
20
26
  export default async function waitForServer(
21
27
  url: string,
22
28
  shouldStop: () => boolean,
29
+ options?: WaitForServerOptions,
23
30
  ): Promise<WaitForServerResult> {
31
+ const isLocalMode = options?.isLocalMode ?? false;
24
32
  let retryDelay = INITIAL_RETRY_DELAY;
25
33
  const startTime = Date.now();
26
34
  let consecutiveConnectionFailures = 0;
@@ -49,14 +57,21 @@ export default async function waitForServer(
49
57
  return { shutdown: true };
50
58
  }
51
59
 
52
- // Check if connection failed (server exited)
60
+ // Check if connection failed (server exited or not started yet)
53
61
  if (result.connectionFailed) {
54
- consecutiveConnectionFailures++;
55
- // If we've had many consecutive connection failures, the controller has likely exited
56
- if (consecutiveConnectionFailures >= MAX_CONNECTION_FAILURES_FOR_SHUTDOWN) {
57
- awsLog('CodeYam: Controller connection lost, treating as shutdown');
58
- return { shutdown: true };
62
+ // Only treat connection failures as shutdown in local mode
63
+ // In cloud mode, connection failures are expected between work items
64
+ if (isLocalMode) {
65
+ consecutiveConnectionFailures++;
66
+ if (
67
+ consecutiveConnectionFailures >=
68
+ MAX_CONNECTION_FAILURES_FOR_SHUTDOWN
69
+ ) {
70
+ awsLog('CodeYam: Controller connection lost, treating as shutdown');
71
+ return { shutdown: true };
72
+ }
59
73
  }
74
+ // In cloud mode, just continue waiting (don't count failures)
60
75
  } else {
61
76
  consecutiveConnectionFailures = 0;
62
77
  }
@@ -21,6 +21,8 @@ export interface AnalyzeBaselineCommitArgs {
21
21
  desiredAnalyses?: Analysis[];
22
22
  force?: boolean;
23
23
  fileStore?: LazyFileStore;
24
+ /** Called after data structures are prepared, signaling orchestration can begin */
25
+ onAnalysisProducing?: () => void;
24
26
  }
25
27
 
26
28
  export interface AnalyzeBaselineCommitResult {
@@ -40,6 +42,7 @@ export default async function analyzeBaselineCommit({
40
42
  desiredAnalyses = [],
41
43
  force = false,
42
44
  fileStore,
45
+ onAnalysisProducing,
43
46
  }: AnalyzeBaselineCommitArgs): Promise<AnalyzeBaselineCommitResult> {
44
47
  awsLog('CodeYam: Analyze - branchCommit (baseline) path', {
45
48
  analysisIds,
@@ -64,6 +67,7 @@ export default async function analyzeBaselineCommit({
64
67
  context,
65
68
  steps,
66
69
  fileStore,
70
+ onAnalysisProducing,
67
71
  });
68
72
 
69
73
  let analysisBranches = Object.values(context.getAnalysisMap())
@@ -99,6 +103,11 @@ export default async function analyzeBaselineCommit({
99
103
  entitiesAnalyzedAt: now,
100
104
  },
101
105
  archiveCurrentRun: true,
106
+ updateCallback(metadata) {
107
+ if (metadata.currentRun?.captureCompletedAt) {
108
+ metadata.currentRun.completedAt = now;
109
+ }
110
+ },
102
111
  });
103
112
 
104
113
  awsLog(`CodeYam: Marking baseline completed for project ${project.slug}`);
@@ -24,6 +24,8 @@ interface AnalyzeBranchCommitArgs {
24
24
  context: AnalysisContext;
25
25
  steps: string[];
26
26
  fileStore?: LazyFileStore;
27
+ /** Called after data structures are prepared, signaling orchestration can begin */
28
+ onAnalysisProducing?: () => void;
27
29
  }
28
30
 
29
31
  export default async function analyzeBranchCommit({
@@ -34,6 +36,7 @@ export default async function analyzeBranchCommit({
34
36
  context,
35
37
  steps,
36
38
  fileStore,
39
+ onAnalysisProducing,
37
40
  }: AnalyzeBranchCommitArgs) {
38
41
  console.log('CodeYam: Starting Branch Commit Analysis', branchCommit.sha, {
39
42
  analysisIds,
@@ -231,6 +234,7 @@ export default async function analyzeBranchCommit({
231
234
  steps,
232
235
  force: !!process.env.FORCE,
233
236
  forceAll: !!process.env.FORCE_ALL,
237
+ onAnalysisProducing,
234
238
  },
235
239
  });
236
240
  } catch (error) {
@@ -27,6 +27,8 @@ interface AnalyzeFileEntitiesArgs {
27
27
  steps: string[];
28
28
  context: AnalysisContext;
29
29
  fileStore?: LazyFileStore;
30
+ /** Called after data structures are prepared, signaling orchestration can begin */
31
+ onAnalysisProducing?: () => void;
30
32
  }
31
33
 
32
34
  export default async function analyzeFileEntities({
@@ -40,6 +42,7 @@ export default async function analyzeFileEntities({
40
42
  steps,
41
43
  context,
42
44
  fileStore,
45
+ onAnalysisProducing,
43
46
  }: AnalyzeFileEntitiesArgs) {
44
47
  // Enable baseline mode for E2E tests to skip expensive importedBy tracking
45
48
  // This eliminates thousands of DB operations that aren't needed for simulation/capture
@@ -263,6 +266,7 @@ export default async function analyzeFileEntities({
263
266
  fresh: !!process.env.FRESH,
264
267
  force: !!process.env.FORCE,
265
268
  forceAll: !!process.env.FORCE_ALL,
269
+ onAnalysisProducing,
266
270
  },
267
271
  });
268
272
  }
@@ -36,6 +36,8 @@ export interface AnalyzeRegularCommitArgs {
36
36
  backgroundJob?: BackgroundJob;
37
37
  desiredAnalyses?: Analysis[];
38
38
  fileStore?: LazyFileStore;
39
+ /** Called after data structures are prepared, signaling orchestration can begin */
40
+ onAnalysisProducing?: () => void;
39
41
  }
40
42
 
41
43
  export interface AnalyzeRegularCommitResult {
@@ -97,6 +99,7 @@ export default async function analyzeRegularCommit({
97
99
  backgroundJob,
98
100
  desiredAnalyses = [],
99
101
  fileStore,
102
+ onAnalysisProducing,
100
103
  }: AnalyzeRegularCommitArgs): Promise<AnalyzeRegularCommitResult> {
101
104
  awsLog('CodeYam: Analyze - commit path');
102
105
 
@@ -174,6 +177,7 @@ export default async function analyzeRegularCommit({
174
177
  steps,
175
178
  context,
176
179
  fileStore,
180
+ onAnalysisProducing,
177
181
  });
178
182
  let entities = fileEntities;
179
183
 
@@ -249,6 +253,11 @@ export default async function analyzeRegularCommit({
249
253
  // In local mode (CLI), let job.js handle archiving after BOTH analysis AND capture complete
250
254
  // In cloud mode (Docker), archive immediately after analysis completes
251
255
  archiveCurrentRun: !isLocalMode,
256
+ updateCallback(metadata) {
257
+ if (metadata.currentRun?.captureCompletedAt) {
258
+ metadata.currentRun.completedAt = now;
259
+ }
260
+ },
252
261
  });
253
262
  }
254
263
 
@@ -81,33 +81,36 @@ export default async function captureLibraryFunctionDirect(
81
81
  },
82
82
  );
83
83
 
84
- // Mark scenario as complete
85
- await updateFreshAnalysisStatus(analysis.id, (freshStatus, inAnalysis) => {
86
- freshStatus.scenarios ||= [];
87
- const scenarioStatus = freshStatus.scenarios.find(
88
- (s) => s.name === scenario.name,
89
- );
90
- if (scenarioStatus) {
91
- scenarioStatus.finishedAt = new Date().toISOString();
92
- } else {
93
- freshStatus.scenarios.push({
94
- name: scenario.name,
95
- startedAt: new Date().toISOString(),
96
- finishedAt: new Date().toISOString(),
97
- });
98
- }
84
+ // Mark scenario as complete (use WithScenarios variant to get actual scenario count)
85
+ await updateFreshAnalysisStatusWithScenarios(
86
+ analysis.id,
87
+ (freshStatus, dbScenarios, _inAnalysis) => {
88
+ freshStatus.scenarios ||= [];
89
+ const scenarioStatus = freshStatus.scenarios.find(
90
+ (s) => s.name === scenario.name,
91
+ );
92
+ if (scenarioStatus) {
93
+ scenarioStatus.finishedAt = new Date().toISOString();
94
+ } else {
95
+ freshStatus.scenarios.push({
96
+ name: scenario.name,
97
+ startedAt: new Date().toISOString(),
98
+ finishedAt: new Date().toISOString(),
99
+ });
100
+ }
99
101
 
100
- // Check if all scenarios are done
101
- const allScenariosAvailable =
102
- freshStatus.scenarios.length >= inAnalysis.scenarios?.length;
103
- if (
104
- allScenariosAvailable &&
105
- freshStatus.scenarios.every((s) => !!s.finishedAt)
106
- ) {
107
- freshStatus.finishedAt = new Date().toISOString();
108
- freshStatus.readyToBeCaptured = false;
109
- }
110
- });
102
+ // Check if all scenarios are done
103
+ const allScenariosAvailable =
104
+ freshStatus.scenarios.length >= dbScenarios.length;
105
+ if (
106
+ allScenariosAvailable &&
107
+ freshStatus.scenarios.every((s) => !!s.finishedAt)
108
+ ) {
109
+ freshStatus.finishedAt = new Date().toISOString();
110
+ freshStatus.readyToBeCaptured = false;
111
+ }
112
+ },
113
+ );
111
114
 
112
115
  awsLog('CodeYam: Direct library function capture complete', {
113
116
  analysisId: analysis.id,