@codeyam/codeyam-cli 0.1.0-staging.76566f9 → 0.1.0-staging.79ef713

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 (850) 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 +1128 -30
  18. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +259 -6
  19. package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +29 -10
  20. package/analyzer-template/packages/ai/src/lib/completionCall.ts +216 -36
  21. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +1577 -313
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +5 -1
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +296 -35
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +10 -2
  25. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +16 -3
  26. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +6 -4
  27. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +54 -3
  28. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +129 -20
  29. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
  30. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +80 -5
  31. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +179 -0
  32. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.ts +40 -30
  33. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +393 -90
  34. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.ts +129 -0
  35. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +156 -0
  36. package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
  37. package/analyzer-template/packages/ai/src/lib/e2eDataTracking.ts +334 -0
  38. package/analyzer-template/packages/ai/src/lib/extractCriticalDataKeys.ts +120 -0
  39. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +33 -7
  40. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +86 -142
  41. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +59 -3
  42. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +1358 -67
  43. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +200 -196
  44. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +578 -0
  45. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
  46. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +2267 -0
  47. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +239 -0
  48. package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +5 -5
  49. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +328 -7
  50. package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +111 -87
  51. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +10 -7
  52. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +1 -1
  53. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +32 -142
  54. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChunkPrompt.ts +82 -0
  55. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateCriticalKeysPrompt.ts +103 -0
  56. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +90 -6
  57. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +14 -89
  58. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
  59. package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +11 -11
  60. package/analyzer-template/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.ts +391 -0
  61. package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +824 -0
  62. package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +5 -1
  63. package/analyzer-template/packages/ai/src/lib/validateExecutionFlowPaths.ts +531 -0
  64. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +122 -3
  65. package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +114 -2
  66. package/analyzer-template/packages/analyze/index.ts +2 -0
  67. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +79 -59
  68. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +113 -26
  69. package/analyzer-template/packages/analyze/src/lib/analysisContext.ts +44 -4
  70. package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +1 -0
  71. package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
  72. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +19 -0
  73. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +19 -0
  74. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +11 -0
  75. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +8 -0
  76. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +49 -1
  77. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +2 -1
  78. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +449 -283
  79. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +34 -1
  80. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +6 -0
  81. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +3 -0
  82. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +4 -2
  83. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +33 -10
  84. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +31 -15
  85. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +11 -7
  86. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +11 -12
  87. package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +4 -5
  88. package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
  89. package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +14 -12
  90. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1315 -0
  91. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +201 -46
  92. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
  93. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +254 -41
  94. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +28 -62
  95. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +306 -20
  96. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +264 -0
  97. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +1 -0
  98. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +2 -3
  99. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +723 -46
  100. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +56 -11
  101. package/analyzer-template/packages/analyze/src/lib/files/scenarios/propagateArrayItemSchemas.ts +474 -0
  102. package/analyzer-template/packages/analyze/src/lib/files/setImportedExports.ts +2 -1
  103. package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
  104. package/analyzer-template/packages/analyze/src/lib/utils/getFileByPath.ts +19 -0
  105. package/analyzer-template/packages/aws/codebuild/index.ts +1 -0
  106. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +11 -1
  107. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -1
  108. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +29 -18
  109. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -1
  110. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +2 -2
  111. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -1
  112. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +2 -2
  113. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  114. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +8 -18
  115. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -1
  116. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +17 -61
  117. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  118. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -1
  119. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +8 -1
  120. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -1
  121. package/analyzer-template/packages/aws/package.json +3 -3
  122. package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +43 -19
  123. package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +3 -3
  124. package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +17 -69
  125. package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +8 -1
  126. package/analyzer-template/packages/database/package.json +1 -1
  127. package/analyzer-template/packages/database/src/lib/kysely/db.ts +8 -1
  128. package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +6 -0
  129. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +17 -1
  130. package/analyzer-template/packages/database/src/lib/loadAnalyses.ts +58 -1
  131. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +13 -0
  132. package/analyzer-template/packages/database/src/lib/loadBranch.ts +16 -1
  133. package/analyzer-template/packages/database/src/lib/loadCommit.ts +11 -0
  134. package/analyzer-template/packages/database/src/lib/loadCommits.ts +28 -0
  135. package/analyzer-template/packages/database/src/lib/loadEntities.ts +26 -3
  136. package/analyzer-template/packages/database/src/lib/loadEntityBranches.ts +12 -0
  137. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +7 -3
  138. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +7 -14
  139. package/analyzer-template/packages/generate/index.ts +3 -0
  140. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +17 -1
  141. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +193 -0
  142. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
  143. package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
  144. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  145. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +8 -1
  146. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  147. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +1 -18
  148. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -1
  149. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts +1 -0
  150. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts.map +1 -1
  151. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js +3 -0
  152. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  153. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +17 -1
  154. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -1
  155. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  156. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts +1 -0
  157. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -1
  158. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +2 -6
  159. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  160. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts +2 -0
  161. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts.map +1 -1
  162. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js +45 -2
  163. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js.map +1 -1
  164. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  165. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +8 -0
  166. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  167. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js +11 -1
  168. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js.map +1 -1
  169. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.d.ts.map +1 -1
  170. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js +7 -0
  171. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js.map +1 -1
  172. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts +3 -1
  173. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  174. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +22 -1
  175. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  176. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts +3 -1
  177. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  178. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +23 -4
  179. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  180. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.d.ts.map +1 -1
  181. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js +9 -0
  182. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js.map +1 -1
  183. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  184. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
  185. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  186. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts +2 -2
  187. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  188. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +5 -4
  189. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  190. package/analyzer-template/packages/github/dist/generate/index.d.ts +3 -0
  191. package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -1
  192. package/analyzer-template/packages/github/dist/generate/index.js +3 -0
  193. package/analyzer-template/packages/github/dist/generate/index.js.map +1 -1
  194. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
  195. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  196. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  197. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts +9 -0
  198. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -0
  199. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  200. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  201. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts +20 -0
  202. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts.map +1 -0
  203. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  204. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  205. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts +8 -0
  206. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts.map +1 -0
  207. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js +89 -0
  208. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  209. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -1
  210. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +10 -0
  211. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -1
  212. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -1
  213. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +3 -0
  214. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -1
  215. package/analyzer-template/packages/github/dist/types/index.d.ts +3 -4
  216. package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
  217. package/analyzer-template/packages/github/dist/types/index.js +0 -1
  218. package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
  219. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +71 -27
  220. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
  221. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts +2 -0
  222. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts.map +1 -1
  223. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +2 -0
  224. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -1
  225. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +3 -0
  226. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  227. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +9 -54
  228. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  229. package/analyzer-template/packages/github/dist/types/src/types/Scenario.js +1 -21
  230. package/analyzer-template/packages/github/dist/types/src/types/Scenario.js.map +1 -1
  231. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +153 -5
  232. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  233. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  234. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  235. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +2 -0
  236. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  237. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts +9 -1
  238. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  239. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +29 -3
  240. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -1
  241. package/analyzer-template/packages/github/package.json +1 -1
  242. package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +14 -0
  243. package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +2 -0
  244. package/analyzer-template/packages/process/index.ts +2 -0
  245. package/analyzer-template/packages/process/package.json +12 -0
  246. package/analyzer-template/packages/process/tsconfig.json +8 -0
  247. package/analyzer-template/packages/types/index.ts +3 -6
  248. package/analyzer-template/packages/types/src/types/Analysis.ts +87 -27
  249. package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
  250. package/analyzer-template/packages/types/src/types/Entity.ts +2 -0
  251. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +1 -0
  252. package/analyzer-template/packages/types/src/types/Scenario.ts +9 -77
  253. package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +181 -5
  254. package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
  255. package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
  256. package/analyzer-template/packages/utils/dist/types/index.d.ts +3 -4
  257. package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
  258. package/analyzer-template/packages/utils/dist/types/index.js +0 -1
  259. package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
  260. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +71 -27
  261. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
  262. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts +2 -0
  263. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts.map +1 -1
  264. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +2 -0
  265. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -1
  266. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +3 -0
  267. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  268. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +9 -54
  269. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  270. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js +1 -21
  271. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js.map +1 -1
  272. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +153 -5
  273. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  274. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  275. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  276. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +2 -0
  277. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  278. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +9 -1
  279. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  280. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +29 -3
  281. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -1
  282. package/analyzer-template/packages/utils/src/lib/safeFileName.ts +48 -3
  283. package/analyzer-template/playwright/capture.ts +57 -26
  284. package/analyzer-template/playwright/captureStatic.ts +1 -1
  285. package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
  286. package/analyzer-template/playwright/waitForServer.ts +21 -6
  287. package/analyzer-template/project/analyzeBaselineCommit.ts +9 -0
  288. package/analyzer-template/project/analyzeBranchCommit.ts +4 -0
  289. package/analyzer-template/project/analyzeFileEntities.ts +4 -0
  290. package/analyzer-template/project/analyzeRegularCommit.ts +9 -0
  291. package/analyzer-template/project/captureLibraryFunctionDirect.ts +29 -26
  292. package/analyzer-template/project/constructMockCode.ts +1004 -105
  293. package/analyzer-template/project/controller/startController.ts +16 -1
  294. package/analyzer-template/project/createEntitiesAndSortFiles.ts +83 -0
  295. package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
  296. package/analyzer-template/project/loadReadyToBeCaptured.ts +65 -41
  297. package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
  298. package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
  299. package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +3 -6
  300. package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +18 -7
  301. package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
  302. package/analyzer-template/project/orchestrateCapture.ts +81 -9
  303. package/analyzer-template/project/reconcileMockDataKeys.ts +240 -0
  304. package/analyzer-template/project/runAnalysis.ts +11 -0
  305. package/analyzer-template/project/serverOnlyModules.ts +127 -2
  306. package/analyzer-template/project/start.ts +51 -15
  307. package/analyzer-template/project/startScenarioCapture.ts +6 -0
  308. package/analyzer-template/project/writeMockDataTsx.ts +298 -11
  309. package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
  310. package/analyzer-template/project/writeScenarioComponents.ts +312 -42
  311. package/analyzer-template/project/writeScenarioFiles.ts +26 -0
  312. package/analyzer-template/project/writeSimpleRoot.ts +23 -13
  313. package/analyzer-template/scripts/comboWorkerLoop.cjs +99 -50
  314. package/analyzer-template/scripts/defaultCmd.sh +9 -0
  315. package/analyzer-template/tsconfig.json +2 -1
  316. package/background/src/lib/local/createLocalAnalyzer.js +1 -29
  317. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  318. package/background/src/lib/local/execAsync.js +1 -1
  319. package/background/src/lib/local/execAsync.js.map +1 -1
  320. package/background/src/lib/virtualized/common/execAsync.js +1 -1
  321. package/background/src/lib/virtualized/common/execAsync.js.map +1 -1
  322. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +7 -1
  323. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
  324. package/background/src/lib/virtualized/project/analyzeBranchCommit.js +2 -1
  325. package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -1
  326. package/background/src/lib/virtualized/project/analyzeFileEntities.js +2 -1
  327. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  328. package/background/src/lib/virtualized/project/analyzeRegularCommit.js +7 -1
  329. package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
  330. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +3 -3
  331. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -1
  332. package/background/src/lib/virtualized/project/constructMockCode.js +879 -69
  333. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  334. package/background/src/lib/virtualized/project/controller/startController.js +11 -1
  335. package/background/src/lib/virtualized/project/controller/startController.js.map +1 -1
  336. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +73 -1
  337. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -1
  338. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +6 -3
  339. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -1
  340. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +19 -8
  341. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
  342. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +7 -7
  343. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -1
  344. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js +2 -2
  345. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -1
  346. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +3 -2
  347. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
  348. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +7 -5
  349. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
  350. package/background/src/lib/virtualized/project/orchestrateCapture.js +65 -10
  351. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  352. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +199 -0
  353. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  354. package/background/src/lib/virtualized/project/runAnalysis.js +9 -0
  355. package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
  356. package/background/src/lib/virtualized/project/serverOnlyModules.js +106 -3
  357. package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -1
  358. package/background/src/lib/virtualized/project/start.js +47 -15
  359. package/background/src/lib/virtualized/project/start.js.map +1 -1
  360. package/background/src/lib/virtualized/project/startScenarioCapture.js +7 -0
  361. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  362. package/background/src/lib/virtualized/project/writeMockDataTsx.js +255 -8
  363. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  364. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js +15 -0
  365. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js.map +1 -0
  366. package/background/src/lib/virtualized/project/writeScenarioComponents.js +245 -41
  367. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  368. package/background/src/lib/virtualized/project/writeScenarioFiles.js +19 -0
  369. package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -1
  370. package/background/src/lib/virtualized/project/writeSimpleRoot.js +23 -13
  371. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  372. package/codeyam-cli/scripts/apply-setup.js +180 -0
  373. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  374. package/codeyam-cli/src/cli.js +7 -1
  375. package/codeyam-cli/src/cli.js.map +1 -1
  376. package/codeyam-cli/src/commands/analyze.js +1 -1
  377. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  378. package/codeyam-cli/src/commands/baseline.js +174 -0
  379. package/codeyam-cli/src/commands/baseline.js.map +1 -0
  380. package/codeyam-cli/src/commands/debug.js +35 -23
  381. package/codeyam-cli/src/commands/debug.js.map +1 -1
  382. package/codeyam-cli/src/commands/default.js +0 -15
  383. package/codeyam-cli/src/commands/default.js.map +1 -1
  384. package/codeyam-cli/src/commands/memory.js +264 -0
  385. package/codeyam-cli/src/commands/memory.js.map +1 -0
  386. package/codeyam-cli/src/commands/recapture.js +29 -18
  387. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  388. package/codeyam-cli/src/commands/report.js +46 -1
  389. package/codeyam-cli/src/commands/report.js.map +1 -1
  390. package/codeyam-cli/src/commands/start.js +8 -12
  391. package/codeyam-cli/src/commands/start.js.map +1 -1
  392. package/codeyam-cli/src/commands/status.js +23 -1
  393. package/codeyam-cli/src/commands/status.js.map +1 -1
  394. package/codeyam-cli/src/commands/test-startup.js +1 -1
  395. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  396. package/codeyam-cli/src/commands/wipe.js +108 -0
  397. package/codeyam-cli/src/commands/wipe.js.map +1 -0
  398. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
  399. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
  400. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +31 -27
  401. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  402. package/codeyam-cli/src/utils/analysisRunner.js +29 -15
  403. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  404. package/codeyam-cli/src/utils/backgroundServer.js +16 -2
  405. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  406. package/codeyam-cli/src/utils/database.js +91 -5
  407. package/codeyam-cli/src/utils/database.js.map +1 -1
  408. package/codeyam-cli/src/utils/generateReport.js +4 -3
  409. package/codeyam-cli/src/utils/generateReport.js.map +1 -1
  410. package/codeyam-cli/src/utils/git.js +79 -0
  411. package/codeyam-cli/src/utils/git.js.map +1 -0
  412. package/codeyam-cli/src/utils/install-skills.js +76 -17
  413. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  414. package/codeyam-cli/src/utils/queue/job.js +109 -0
  415. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  416. package/codeyam-cli/src/utils/queue/manager.js +6 -0
  417. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  418. package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
  419. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
  420. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
  421. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +230 -0
  422. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
  423. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
  424. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
  425. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
  426. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
  427. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
  428. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
  429. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
  430. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
  431. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +75 -0
  432. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
  433. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +285 -0
  434. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
  435. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +115 -0
  436. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
  437. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
  438. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
  439. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
  440. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
  441. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
  442. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
  443. package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
  444. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
  445. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
  446. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
  447. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
  448. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
  449. package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
  450. package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
  451. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
  452. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
  453. package/codeyam-cli/src/utils/rules/index.js +6 -0
  454. package/codeyam-cli/src/utils/rules/index.js.map +1 -0
  455. package/codeyam-cli/src/utils/rules/parser.js +78 -0
  456. package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
  457. package/codeyam-cli/src/utils/rules/pathMatcher.js +18 -0
  458. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
  459. package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
  460. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
  461. package/codeyam-cli/src/utils/rules/staleness.js +137 -0
  462. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
  463. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  464. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +7 -5
  465. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  466. package/codeyam-cli/src/utils/versionInfo.js +25 -19
  467. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  468. package/codeyam-cli/src/utils/wipe.js +128 -0
  469. package/codeyam-cli/src/utils/wipe.js.map +1 -0
  470. package/codeyam-cli/src/webserver/app/lib/database.js +74 -20
  471. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  472. package/codeyam-cli/src/webserver/bootstrap.js +40 -0
  473. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
  474. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CA3JxPb7.js +1 -0
  475. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-B86KKU7e.js +11 -0
  476. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-CzGX-miz.js → EntityTypeBadge-B5ctlSYt.js} +1 -1
  477. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BqY8gDAW.js +41 -0
  478. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-ClaLpuOo.js +34 -0
  479. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-BDhPilK7.js +25 -0
  480. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-CBQPrpT0.js → LibraryFunctionPreview-VeqEBv9v.js} +1 -1
  481. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-D1CdlbrV.js → LoadingDots-Bs7Nn1Jr.js} +1 -1
  482. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-wDPcZNKx.js → LogViewer-Bm3PmcCz.js} +1 -1
  483. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-C6PKeMYR.js +11 -0
  484. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-BfmDgXxG.js → SafeScreenshot-Gq3Ocjo6.js} +1 -1
  485. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-BNLaXBHR.js +10 -0
  486. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-6J7zDUD5.js → TruncatedFilePath-CiwXDxLh.js} +1 -1
  487. package/codeyam-cli/src/webserver/build/client/assets/_index-B3TDXxnk.js +11 -0
  488. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-BtBFH820.js +27 -0
  489. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-DfKzxuoe.js +11 -0
  490. package/codeyam-cli/src/webserver/build/client/assets/api.restart-server-l0sNRNKZ.js +1 -0
  491. package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
  492. package/codeyam-cli/src/webserver/build/client/assets/book-open-PttOB2SF.js +6 -0
  493. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-BYimnrHg.js → chevron-down-TJp6ofnp.js} +1 -1
  494. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-JE9ZIoBl.js +51 -0
  495. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-CaVsIRxt.js → circle-check-CXhHQYrI.js} +1 -1
  496. package/codeyam-cli/src/webserver/build/client/assets/copy-6y9ALfGT.js +11 -0
  497. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-CgUsG7ib.js → createLucideIcon-Ca9fAY46.js} +1 -1
  498. package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-C1gnJVOL.svg → cy-logo-cli-CCKUIm0S.svg} +2 -2
  499. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +1 -0
  500. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-C5lqplTC.js +1 -0
  501. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-Dt-SjPsw.js → entity._sha._-n38keI1k.js} +12 -12
  502. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-CBoafmVs.js +6 -0
  503. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DGgZjdFg.js +6 -0
  504. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CfLCUi9S.js → entity._sha_.edit._scenarioId-38yPijoD.js} +1 -1
  505. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-DKJyZfAY.js → entry.client-BSHEfydn.js} +6 -6
  506. package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
  507. package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DAtOlaWE.js → fileTableUtils-DCPhhSMo.js} +1 -1
  508. package/codeyam-cli/src/webserver/build/client/assets/files-0N0YJQv7.js +1 -0
  509. package/codeyam-cli/src/webserver/build/client/assets/{git-D62Lxxmv.js → git-DXnyr8uP.js} +8 -8
  510. package/codeyam-cli/src/webserver/build/client/assets/globals-Bh6jH0cL.css +1 -0
  511. package/codeyam-cli/src/webserver/build/client/assets/{index-BosqDOlH.js → index-CcsFv748.js} +1 -1
  512. package/codeyam-cli/src/webserver/build/client/assets/{index-CzNNiTkw.js → index-ChN9-fAY.js} +1 -1
  513. package/codeyam-cli/src/webserver/build/client/assets/labs-CdVUfvji.js +1 -0
  514. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-CNp9QFCX.js → loader-circle-CTqLEAGU.js} +1 -1
  515. package/codeyam-cli/src/webserver/build/client/assets/manifest-87319d0f.js +1 -0
  516. package/codeyam-cli/src/webserver/build/client/assets/memory-CPIDnDEj.js +76 -0
  517. package/codeyam-cli/src/webserver/build/client/assets/pause-D6vreykR.js +11 -0
  518. package/codeyam-cli/src/webserver/build/client/assets/root-D6oziHts.js +62 -0
  519. package/codeyam-cli/src/webserver/build/client/assets/{search-DDGjYAMJ.js → search-B8VUL8nl.js} +1 -1
  520. package/codeyam-cli/src/webserver/build/client/assets/settings-eBI36Yv5.js +1 -0
  521. package/codeyam-cli/src/webserver/build/client/assets/simulations-CPoAg7Zo.js +1 -0
  522. package/codeyam-cli/src/webserver/build/client/assets/terminal-BrCP7uQo.js +11 -0
  523. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-CBc5dE1s.js → triangle-alert-BZz2NjYa.js} +1 -1
  524. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-DNwUduNu.js +1 -0
  525. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-BqPPNjAl.js → useLastLogLine-COky1GVF.js} +1 -1
  526. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-CpZgwliL.js +1 -0
  527. package/codeyam-cli/src/webserver/build/client/assets/{useToast-DWHcCcl1.js → useToast-Bv9JFvUO.js} +1 -1
  528. package/codeyam-cli/src/webserver/build/server/assets/index-9ox9LcrG.js +1 -0
  529. package/codeyam-cli/src/webserver/build/server/assets/server-build-Cq5Vqcob.js +260 -0
  530. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  531. package/codeyam-cli/src/webserver/build-info.json +5 -5
  532. package/codeyam-cli/src/webserver/server.js +35 -25
  533. package/codeyam-cli/src/webserver/server.js.map +1 -1
  534. package/codeyam-cli/templates/codeyam-memory-hook.sh +199 -0
  535. package/codeyam-cli/templates/{codeyam-debug-skill.md → codeyam:debug.md} +48 -4
  536. package/codeyam-cli/templates/{debug-codeyam.md → codeyam:diagnose.md} +204 -26
  537. package/codeyam-cli/templates/codeyam:memory.md +404 -0
  538. package/codeyam-cli/templates/codeyam:new-rule.md +13 -0
  539. package/codeyam-cli/templates/{codeyam-setup-skill.md → codeyam:setup.md} +1 -1
  540. package/codeyam-cli/templates/{codeyam-sim-skill.md → codeyam:sim.md} +1 -1
  541. package/codeyam-cli/templates/{codeyam-test-skill.md → codeyam:test.md} +1 -1
  542. package/codeyam-cli/templates/{codeyam-verify-skill.md → codeyam:verify.md} +1 -1
  543. package/codeyam-cli/templates/rule-notification-hook.py +56 -0
  544. package/codeyam-cli/templates/rule-reflection-hook.py +590 -0
  545. package/codeyam-cli/templates/rules-instructions.md +123 -0
  546. package/package.json +12 -9
  547. package/packages/ai/index.js +8 -6
  548. package/packages/ai/index.js.map +1 -1
  549. package/packages/ai/src/lib/analyzeScope.js +165 -13
  550. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  551. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js +150 -0
  552. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js.map +1 -0
  553. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +138 -9
  554. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  555. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
  556. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
  557. package/packages/ai/src/lib/astScopes/methodSemantics.js +138 -23
  558. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  559. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
  560. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
  561. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +8 -0
  562. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -1
  563. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +7 -0
  564. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
  565. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +138 -1
  566. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
  567. package/packages/ai/src/lib/astScopes/processExpression.js +866 -29
  568. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  569. package/packages/ai/src/lib/checkAllAttributes.js +24 -9
  570. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  571. package/packages/ai/src/lib/completionCall.js +178 -31
  572. package/packages/ai/src/lib/completionCall.js.map +1 -1
  573. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1240 -181
  574. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  575. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +5 -1
  576. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  577. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +230 -23
  578. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -1
  579. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +7 -1
  580. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  581. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +13 -3
  582. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -1
  583. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +6 -4
  584. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -1
  585. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +52 -3
  586. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  587. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +111 -14
  588. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  589. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
  590. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
  591. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +73 -5
  592. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  593. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
  594. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
  595. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
  596. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
  597. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +333 -81
  598. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  599. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js +107 -0
  600. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js.map +1 -0
  601. package/packages/ai/src/lib/dataStructureChunking.js +111 -0
  602. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -0
  603. package/packages/ai/src/lib/deepEqual.js +32 -0
  604. package/packages/ai/src/lib/deepEqual.js.map +1 -0
  605. package/packages/ai/src/lib/e2eDataTracking.js +241 -0
  606. package/packages/ai/src/lib/e2eDataTracking.js.map +1 -0
  607. package/packages/ai/src/lib/extractCriticalDataKeys.js +96 -0
  608. package/packages/ai/src/lib/extractCriticalDataKeys.js.map +1 -0
  609. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +21 -5
  610. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  611. package/packages/ai/src/lib/generateChangesEntityScenarios.js +78 -120
  612. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  613. package/packages/ai/src/lib/generateEntityDataStructure.js +47 -2
  614. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  615. package/packages/ai/src/lib/generateEntityScenarioData.js +1082 -62
  616. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  617. package/packages/ai/src/lib/generateEntityScenarios.js +177 -163
  618. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  619. package/packages/ai/src/lib/generateExecutionFlows.js +400 -0
  620. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
  621. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
  622. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
  623. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +1646 -0
  624. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
  625. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
  626. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js.map +1 -0
  627. package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -2
  628. package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
  629. package/packages/ai/src/lib/isolateScopes.js +270 -7
  630. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  631. package/packages/ai/src/lib/mergeStatements.js +88 -46
  632. package/packages/ai/src/lib/mergeStatements.js.map +1 -1
  633. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +10 -4
  634. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  635. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +1 -1
  636. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  637. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +21 -100
  638. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  639. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js +54 -0
  640. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js.map +1 -0
  641. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +68 -6
  642. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  643. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +10 -70
  644. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  645. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
  646. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
  647. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +9 -9
  648. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
  649. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js +335 -0
  650. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js.map +1 -0
  651. package/packages/ai/src/lib/resolvePathToControllable.js +677 -0
  652. package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
  653. package/packages/ai/src/lib/splitOutsideParentheses.js +3 -1
  654. package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -1
  655. package/packages/ai/src/lib/worker/SerializableDataStructure.js +29 -0
  656. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  657. package/packages/ai/src/lib/worker/analyzeScopeWorker.js +94 -1
  658. package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
  659. package/packages/analyze/index.js +1 -0
  660. package/packages/analyze/index.js.map +1 -1
  661. package/packages/analyze/src/lib/FileAnalyzer.js +75 -36
  662. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  663. package/packages/analyze/src/lib/ProjectAnalyzer.js +96 -26
  664. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  665. package/packages/analyze/src/lib/analysisContext.js +30 -5
  666. package/packages/analyze/src/lib/analysisContext.js.map +1 -1
  667. package/packages/analyze/src/lib/asts/nodes/index.js +1 -0
  668. package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
  669. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
  670. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
  671. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +14 -0
  672. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -1
  673. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +14 -0
  674. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -1
  675. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +6 -0
  676. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
  677. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +6 -0
  678. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -1
  679. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +39 -1
  680. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -1
  681. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +2 -1
  682. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -1
  683. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +196 -57
  684. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  685. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +24 -1
  686. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  687. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +5 -0
  688. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  689. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +2 -0
  690. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  691. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +2 -1
  692. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  693. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +31 -10
  694. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  695. package/packages/analyze/src/lib/files/analyzeChange.js +21 -11
  696. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  697. package/packages/analyze/src/lib/files/analyzeEntity.js +9 -8
  698. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  699. package/packages/analyze/src/lib/files/analyzeInitial.js +9 -10
  700. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  701. package/packages/analyze/src/lib/files/analyzeRemixRoute.js +3 -2
  702. package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
  703. package/packages/analyze/src/lib/files/enums/steps.js +1 -1
  704. package/packages/analyze/src/lib/files/enums/steps.js.map +1 -1
  705. package/packages/analyze/src/lib/files/getImportedExports.js +11 -7
  706. package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
  707. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +880 -0
  708. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
  709. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +170 -40
  710. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
  711. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
  712. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
  713. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +211 -29
  714. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  715. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +29 -34
  716. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
  717. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +218 -20
  718. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  719. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +144 -0
  720. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
  721. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +1 -0
  722. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  723. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +2 -3
  724. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  725. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +599 -38
  726. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  727. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +46 -9
  728. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -1
  729. package/packages/analyze/src/lib/files/setImportedExports.js +2 -1
  730. package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -1
  731. package/packages/analyze/src/lib/index.js +1 -0
  732. package/packages/analyze/src/lib/index.js.map +1 -1
  733. package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
  734. package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
  735. package/packages/aws/src/lib/ecs/ecsDefineContainer.js +2 -2
  736. package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  737. package/packages/aws/src/lib/ecs/ecsTaskFactory.js +17 -61
  738. package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  739. package/packages/database/src/lib/kysely/db.js +8 -1
  740. package/packages/database/src/lib/kysely/db.js.map +1 -1
  741. package/packages/database/src/lib/kysely/tables/commitsTable.js +3 -0
  742. package/packages/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  743. package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
  744. package/packages/database/src/lib/loadAnalyses.js +45 -2
  745. package/packages/database/src/lib/loadAnalyses.js.map +1 -1
  746. package/packages/database/src/lib/loadAnalysis.js +8 -0
  747. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  748. package/packages/database/src/lib/loadBranch.js +11 -1
  749. package/packages/database/src/lib/loadBranch.js.map +1 -1
  750. package/packages/database/src/lib/loadCommit.js +7 -0
  751. package/packages/database/src/lib/loadCommit.js.map +1 -1
  752. package/packages/database/src/lib/loadCommits.js +22 -1
  753. package/packages/database/src/lib/loadCommits.js.map +1 -1
  754. package/packages/database/src/lib/loadEntities.js +23 -4
  755. package/packages/database/src/lib/loadEntities.js.map +1 -1
  756. package/packages/database/src/lib/loadEntityBranches.js +9 -0
  757. package/packages/database/src/lib/loadEntityBranches.js.map +1 -1
  758. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
  759. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  760. package/packages/database/src/lib/updateCommitMetadata.js +5 -4
  761. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  762. package/packages/generate/index.js +3 -0
  763. package/packages/generate/index.js.map +1 -1
  764. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
  765. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  766. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  767. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  768. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  769. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  770. package/packages/generate/src/lib/scenarioComponentForServer.js +89 -0
  771. package/packages/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  772. package/packages/github/src/lib/loadOrCreateCommit.js +10 -0
  773. package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -1
  774. package/packages/github/src/lib/syncPrimaryBranch.js +3 -0
  775. package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -1
  776. package/packages/process/index.js +3 -0
  777. package/packages/process/index.js.map +1 -0
  778. package/packages/process/src/GlobalProcessManager.js.map +1 -0
  779. package/{background/src/lib/process → packages/process/src}/ProcessManager.js +1 -1
  780. package/packages/process/src/ProcessManager.js.map +1 -0
  781. package/packages/process/src/index.js.map +1 -0
  782. package/packages/process/src/managedExecAsync.js.map +1 -0
  783. package/packages/types/index.js +0 -1
  784. package/packages/types/index.js.map +1 -1
  785. package/packages/types/src/types/Scenario.js +1 -21
  786. package/packages/types/src/types/Scenario.js.map +1 -1
  787. package/packages/utils/src/lib/safeFileName.js +29 -3
  788. package/packages/utils/src/lib/safeFileName.js.map +1 -1
  789. package/scripts/finalize-analyzer.cjs +3 -3
  790. package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +0 -102
  791. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +0 -409
  792. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +0 -288
  793. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +0 -495
  794. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +0 -67
  795. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +0 -120
  796. package/analyzer-template/process/INTEGRATION_COMPLETE.md +0 -333
  797. package/analyzer-template/process/INTEGRATION_EXAMPLE.md +0 -525
  798. package/analyzer-template/process/README.md +0 -507
  799. package/background/src/lib/process/GlobalProcessManager.js.map +0 -1
  800. package/background/src/lib/process/ProcessManager.js.map +0 -1
  801. package/background/src/lib/process/index.js.map +0 -1
  802. package/background/src/lib/process/managedExecAsync.js.map +0 -1
  803. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-wXL1Z2Aq.js +0 -1
  804. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-CXFKsCOD.js +0 -41
  805. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-D-9pXIaY.js +0 -25
  806. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-4lcOlid-.js +0 -11
  807. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-CUxUNEEC.js +0 -15
  808. package/codeyam-cli/src/webserver/build/client/assets/_index-DHImXdXq.js +0 -11
  809. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CVP_WGQ3.js +0 -32
  810. package/codeyam-cli/src/webserver/build/client/assets/chunk-JMJ3UQ3L-BambyYE_.js +0 -51
  811. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-CKnwPCDr.js +0 -1
  812. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DW_hdGUc.js +0 -1
  813. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DyB90fWk.js +0 -1
  814. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-D_3ero5o.js +0 -1
  815. package/codeyam-cli/src/webserver/build/client/assets/files-ClR0d32A.js +0 -1
  816. package/codeyam-cli/src/webserver/build/client/assets/globals-C9s7Lhdl.css +0 -1
  817. package/codeyam-cli/src/webserver/build/client/assets/keyAttributeCoverage-CTlFMihX.js +0 -1
  818. package/codeyam-cli/src/webserver/build/client/assets/manifest-0d27da29.js +0 -1
  819. package/codeyam-cli/src/webserver/build/client/assets/root-B_wIKCIf.js +0 -56
  820. package/codeyam-cli/src/webserver/build/client/assets/settings-DgTyB-Wg.js +0 -1
  821. package/codeyam-cli/src/webserver/build/client/assets/simulations-CoNWGt0K.js +0 -1
  822. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BMIGFP-m.js +0 -1
  823. package/codeyam-cli/src/webserver/build/client/assets/useInteractiveMode-Dk_FQqWJ.js +0 -1
  824. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DsJbgMY9.js +0 -1
  825. package/codeyam-cli/src/webserver/build/server/assets/index-CU58-Ttc.js +0 -1
  826. package/codeyam-cli/src/webserver/build/server/assets/server-build-D35o2uae.js +0 -175
  827. package/packages/ai/src/lib/findMatchingAttribute.js +0 -77
  828. package/packages/ai/src/lib/findMatchingAttribute.js.map +0 -1
  829. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +0 -298
  830. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +0 -1
  831. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +0 -226
  832. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +0 -1
  833. package/packages/ai/src/lib/generateEntityKeyAttributes.js +0 -408
  834. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +0 -1
  835. package/packages/ai/src/lib/isFrontend.js +0 -5
  836. package/packages/ai/src/lib/isFrontend.js.map +0 -1
  837. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +0 -40
  838. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +0 -1
  839. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +0 -77
  840. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +0 -1
  841. /package/analyzer-template/{process → packages/process/src}/GlobalProcessManager.ts +0 -0
  842. /package/analyzer-template/{process → packages/process/src}/ProcessManager.ts +0 -0
  843. /package/analyzer-template/{process → packages/process/src}/index.ts +0 -0
  844. /package/analyzer-template/{process → packages/process/src}/managedExecAsync.ts +0 -0
  845. /package/codeyam-cli/src/webserver/build/client/assets/{api.link-scenario-value-l0sNRNKZ.js → api.agent-transcripts-l0sNRNKZ.js} +0 -0
  846. /package/codeyam-cli/src/webserver/build/client/assets/{api.update-key-attributes-l0sNRNKZ.js → api.health-l0sNRNKZ.js} +0 -0
  847. /package/codeyam-cli/src/webserver/build/client/assets/{api.update-valid-values-l0sNRNKZ.js → api.memory-profile-l0sNRNKZ.js} +0 -0
  848. /package/{background/src/lib/process → packages/process/src}/GlobalProcessManager.js +0 -0
  849. /package/{background/src/lib/process → packages/process/src}/index.js +0 -0
  850. /package/{background/src/lib/process → packages/process/src}/managedExecAsync.js +0 -0
@@ -1,22 +1,2 @@
1
- /**
2
- * Type guard to check if a keyAttributeInstruction is the new structured format
3
- */
4
- export function isStructuredReference(value) {
5
- return (typeof value === 'object' &&
6
- 'localVariable' in value &&
7
- 'instruction' in value &&
8
- ('valueOptionRef' in value || 'errorOptionRef' in value));
9
- }
10
- /**
11
- * Check if a scenario has structured value references in its keyAttributeInstructions.
12
- * Scenarios without structured references need re-analysis to be included in breakdown view.
13
- */
14
- export function hasStructuredReferences(scenario) {
15
- const instructions = scenario.metadata?.keyAttributeInstructions;
16
- if (!instructions || Object.keys(instructions).length === 0) {
17
- return false;
18
- }
19
- return Object.values(instructions).some((value) => typeof value === 'object' &&
20
- ('valueOptionRef' in value || 'errorOptionRef' in value));
21
- }
1
+ export {};
22
2
  //# sourceMappingURL=Scenario.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Scenario.js","sourceRoot":"","sources":["../../../../../types/src/types/Scenario.ts"],"names":[],"mappings":"AA4CA;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAG8B;IAE9B,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,eAAe,IAAI,KAAK;QACxB,aAAa,IAAI,KAAK;QACtB,CAAC,gBAAgB,IAAI,KAAK,IAAI,gBAAgB,IAAI,KAAK,CAAC,CACzD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAkB;IACxD,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;IACjE,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CACrC,CAAC,KAAK,EAAE,EAAE,CACR,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,gBAAgB,IAAI,KAAK,IAAI,gBAAgB,IAAI,KAAK,CAAC,CAC3D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Scenario.js","sourceRoot":"","sources":["../../../../../types/src/types/Scenario.ts"],"names":[],"mappings":""}
@@ -14,8 +14,8 @@ export interface ConditionalUsage {
14
14
  conditionType: 'truthiness' | 'comparison' | 'switch';
15
15
  /** For comparison conditions, the literal values being compared against */
16
16
  comparedValues?: string[];
17
- /** Where this conditional usage occurs */
18
- location: 'if' | 'ternary' | 'logical-and' | 'switch';
17
+ /** Where this conditional usage occurs. 'unconditional' is for always-rendered children with data props. */
18
+ location: 'if' | 'ternary' | 'logical-and' | 'switch' | 'unconditional';
19
19
  /** Source location information for this conditional usage */
20
20
  sourceLocation?: {
21
21
  /** Line number (1-based) */
@@ -35,6 +35,43 @@ export interface ConditionalUsage {
35
35
  chainExpression?: string;
36
36
  /** Whether this condition is negated (e.g., !foo) */
37
37
  isNegated?: boolean;
38
+ /**
39
+ * Whether this conditional controls JSX rendering.
40
+ * True when the conditional appears in a JSX expression like {cond && <Component />}
41
+ * or {cond ? <A /> : <B />}. Used to identify high-impact execution flows.
42
+ */
43
+ controlsJsxRendering?: boolean;
44
+ /**
45
+ * Information about how this variable was derived from other variables.
46
+ * Used to trace derived boolean variables back to their data sources.
47
+ *
48
+ * Examples:
49
+ * - `const hasAnalysis = analysis !== null` → { sourcePath: 'analysis', operation: 'notNull' }
50
+ * - `const isLoading = status === 'loading'` → { sourcePath: 'status', operation: 'equals', comparedValue: 'loading' }
51
+ * - `const isBusy = isRunning || isQueued` → { operation: 'or', sourcePaths: ['isRunning', 'isQueued'] }
52
+ */
53
+ derivedFrom?: {
54
+ /** For single-source derivations (notNull, equals, etc.) */
55
+ sourcePath?: string;
56
+ /** For multi-source derivations (or, and) */
57
+ sourcePaths?: string[];
58
+ /** The operation that derived this variable */
59
+ operation: 'notNull' | 'isNull' | 'equals' | 'notEquals' | 'or' | 'and' | 'arrayIncludes' | 'arraySome' | 'arrayEvery' | 'arrayLength';
60
+ /** For comparison operations, the value being compared to */
61
+ comparedValue?: string;
62
+ };
63
+ /**
64
+ * The full original expression as a semantic constraint for LLM reasoning.
65
+ * Used when the path contains complex operations (filter, map, etc.) that
66
+ * can't be simply resolved to a mock value.
67
+ *
68
+ * Examples:
69
+ * - `scenarios.filter(s => s.active).length > 1`
70
+ * - `users.some(u => u.role === 'admin' && u.active)`
71
+ *
72
+ * The LLM can interpret this constraint to generate appropriate mock data.
73
+ */
74
+ constraintExpression?: string;
38
75
  }
39
76
  /**
40
77
  * Represents a compound conditional (e.g., a && b && c) where all conditions
@@ -54,14 +91,81 @@ export interface CompoundConditional {
54
91
  /** Required value for this condition to be true */
55
92
  requiredValue?: string | boolean;
56
93
  }[];
57
- /** Where this compound conditional occurs */
58
- location: 'if' | 'ternary' | 'logical-and' | 'switch';
94
+ /** Where this compound conditional occurs. 'unconditional' is for always-rendered children. */
95
+ location: 'if' | 'ternary' | 'logical-and' | 'switch' | 'unconditional';
59
96
  /** Source location for the entire compound expression */
60
97
  sourceLocation: {
61
98
  lineNumber: number;
62
99
  column: number;
63
100
  codeSnippet: string;
64
101
  };
102
+ /**
103
+ * Whether this compound conditional controls JSX rendering.
104
+ * True when the conditional appears in a JSX expression like {a && b && <Component />}
105
+ * Used to identify high-impact execution flows.
106
+ */
107
+ controlsJsxRendering?: boolean;
108
+ }
109
+ /**
110
+ * Represents the effect of a setter call within a conditional block.
111
+ * This tracks what state changes occur when specific conditions are met.
112
+ *
113
+ * Example: if (data.success) { setShowModal(true); }
114
+ * - condition: data.success = truthy
115
+ * - effect: setShowModal called with true
116
+ */
117
+ export interface ConditionalEffect {
118
+ /**
119
+ * Single condition that controls this effect.
120
+ * Use this for simple if statements with a single condition.
121
+ */
122
+ condition?: {
123
+ /** The path being checked (e.g., "data.success") */
124
+ path: string;
125
+ /** Type of condition check */
126
+ conditionType: 'truthiness' | 'comparison' | 'switch';
127
+ /** Values being compared against (for comparison/switch) */
128
+ comparedValues?: string[];
129
+ /** The value required for this effect to occur */
130
+ requiredValue: string | boolean;
131
+ };
132
+ /**
133
+ * Multiple conditions that all must be true for this effect.
134
+ * Use this for compound conditions (a && b && c).
135
+ */
136
+ conditions?: Array<{
137
+ /** The path being checked */
138
+ path: string;
139
+ /** Type of condition check */
140
+ conditionType: 'truthiness' | 'comparison' | 'switch';
141
+ /** Values being compared against */
142
+ comparedValues?: string[];
143
+ /** The value required for this condition to be true */
144
+ requiredValue: string | boolean;
145
+ }>;
146
+ /**
147
+ * The effect that occurs when the condition(s) are met.
148
+ */
149
+ effect: {
150
+ /** Type of effect - currently only 'setter' for useState setters */
151
+ type: 'setter';
152
+ /** The state variable name (e.g., "showModal" from [showModal, setShowModal]) */
153
+ stateVariable: string;
154
+ /** The setter function name (e.g., "setShowModal") */
155
+ setterName: string;
156
+ /** The value being set (literal or expression text) */
157
+ value: string;
158
+ /** The type of value being set */
159
+ valueType: 'string' | 'number' | 'boolean' | 'null' | 'dynamic';
160
+ };
161
+ /**
162
+ * Source location for this conditional effect
163
+ */
164
+ sourceLocation?: {
165
+ lineNumber: number;
166
+ column: number;
167
+ codeSnippet: string;
168
+ };
65
169
  }
66
170
  export interface DataStructure {
67
171
  signatureSchema: {
@@ -71,7 +175,7 @@ export interface DataStructure {
71
175
  [key: string]: string;
72
176
  };
73
177
  equivalentSignatureVariables: {
74
- [key: string]: string;
178
+ [key: string]: string | string[];
75
179
  };
76
180
  usageEquivalencies?: {
77
181
  [key: string]: {
@@ -116,7 +220,51 @@ export interface DataStructure {
116
220
  };
117
221
  /** Compound conditionals grouped by chain (all conditions must be true together) */
118
222
  compoundConditionals?: CompoundConditional[];
223
+ /** Conditional effects - tracks what setter calls happen inside conditionals */
224
+ conditionalEffects?: ConditionalEffect[];
225
+ /** Gating conditions for child components - maps child component names to the conditions that must be true for them to render */
226
+ childBoundaryGatingConditions?: {
227
+ [childComponentName: string]: ConditionalUsage[];
228
+ };
229
+ /** JSX rendering usages - arrays rendered via .map() and strings interpolated in JSX */
230
+ jsxRenderingUsages?: JsxRenderingUsage[];
231
+ /** Derived variables - maps variable names to their derivation info (e.g., hasAnalysis -> { sourcePath: 'analysis', operation: 'notNull' }) */
232
+ derivedVariables?: {
233
+ [variableName: string]: {
234
+ sourcePath?: string;
235
+ sourcePaths?: string[];
236
+ operation: 'notNull' | 'isNull' | 'equals' | 'notEquals' | 'or' | 'and' | 'arrayIncludes' | 'arraySome' | 'arrayEvery' | 'arrayLength';
237
+ comparedValue?: string;
238
+ };
239
+ };
119
240
  structure?: any;
120
241
  mocksDataStructure?: any;
121
242
  }
243
+ /**
244
+ * Represents a JSX rendering usage where arrays or strings are rendered directly.
245
+ * Used to generate execution flows for array sizes and text lengths
246
+ * even without explicit conditionals.
247
+ *
248
+ * Examples:
249
+ * - `{items.map(i => <Item {...i} />)}` → array-map usage for 'items'
250
+ * - `{user.name}` → text-interpolation usage for 'user.name'
251
+ */
252
+ export interface JsxRenderingUsage {
253
+ /** The path to the rendered value (e.g., "items", "data.users", "user.name") */
254
+ path: string;
255
+ /**
256
+ * Type of rendering:
257
+ * - 'array-map': Array rendered via .map() method
258
+ * - 'text-interpolation': String rendered directly in JSX
259
+ */
260
+ renderingType: 'array-map' | 'text-interpolation';
261
+ /** The detected type of the value being rendered */
262
+ valueType?: 'array' | 'string' | 'unknown';
263
+ /** Source location information */
264
+ sourceLocation?: {
265
+ lineNumber: number;
266
+ column: number;
267
+ codeSnippet: string;
268
+ };
269
+ }
122
270
  //# sourceMappingURL=ScenariosDataStructure.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScenariosDataStructure.d.ts","sourceRoot":"","sources":["../../../../../types/src/types/ScenariosDataStructure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScenariosDataStructure.d.ts","sourceRoot":"","sources":["../../../../../types/src/types/ScenariosDataStructure.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,13 @@ export interface ScopeAnalysis {
4
4
  isolatedStructure: {
5
5
  [key: string]: string;
6
6
  };
7
+ /**
8
+ * Maps variable names to their equivalent paths.
9
+ * Supports multiple equivalencies per key (e.g., for OR expressions like `x = a || b`
10
+ * where x is equivalent to both a and b).
11
+ */
7
12
  isolatedEquivalentVariables: {
8
- [key: string]: string;
13
+ [key: string]: string | string[];
9
14
  };
10
15
  llmCalls: LlmCall[];
11
16
  environmentVariables: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"ScopeAnalysis.d.ts","sourceRoot":"","sources":["../../../../../types/src/types/ScopeAnalysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,WAAW,aAAa;IAC5B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,iBAAiB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC7C,2BAA2B,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACvD,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC"}
1
+ {"version":3,"file":"ScopeAnalysis.d.ts","sourceRoot":"","sources":["../../../../../types/src/types/ScopeAnalysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,WAAW,aAAa;IAC5B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,iBAAiB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC7C;;;;OAIG;IACH,2BAA2B,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;IAClE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC"}
@@ -5,6 +5,8 @@ export interface StatementInfo {
5
5
  name?: string;
6
6
  childBoundaries: {
7
7
  name?: string;
8
+ /** The synthetic scope name (e.g., 'cyScope1') if JSX was extracted */
9
+ syntheticName?: string;
8
10
  start: number;
9
11
  end: number;
10
12
  }[];
@@ -1 +1 @@
1
- {"version":3,"file":"StatementInfo.d.ts","sourceRoot":"","sources":["../../../../../types/src/types/StatementInfo.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,EAAE;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;CACL"}
1
+ {"version":3,"file":"StatementInfo.d.ts","sourceRoot":"","sources":["../../../../../types/src/types/StatementInfo.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,EAAE;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,uEAAuE;QACvE,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;CACL"}
@@ -1,2 +1,10 @@
1
- export default function safeFileName(name: string): string;
1
+ export interface SafeFileNameOptions {
2
+ /**
3
+ * Maximum length of the resulting filename.
4
+ * If the name exceeds this length, it will be truncated and a hash suffix added.
5
+ * macOS has a 255 byte filename limit. Default is undefined (no limit).
6
+ */
7
+ maxLength?: number;
8
+ }
9
+ export default function safeFileName(name: string, options?: SafeFileNameOptions): string;
2
10
  //# sourceMappingURL=safeFileName.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"safeFileName.d.ts","sourceRoot":"","sources":["../../../../src/lib/safeFileName.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,IAAI,EAAE,MAAM,UAShD"}
1
+ {"version":3,"file":"safeFileName.d.ts","sourceRoot":"","sources":["../../../../src/lib/safeFileName.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,mBAAwB,GAChC,MAAM,CA4BR"}
@@ -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
  }