@codeyam/codeyam-cli 0.1.0-staging.79ef713 → 0.1.0-staging.8421896

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 (273) hide show
  1. package/analyzer-template/.build-info.json +7 -7
  2. package/analyzer-template/log.txt +3 -3
  3. package/analyzer-template/package.json +1 -1
  4. package/analyzer-template/packages/ai/index.ts +1 -0
  5. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +14 -0
  6. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +101 -0
  7. package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
  8. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +6 -0
  9. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +176 -8
  10. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +70 -19
  11. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +33 -15
  12. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +32 -5
  13. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +38 -2
  14. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +359 -142
  15. package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
  16. package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
  17. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +24 -4
  18. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +18 -0
  19. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +50 -25
  20. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +153 -76
  21. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  22. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  23. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  24. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  25. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  26. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  27. package/analyzer-template/packages/database/src/lib/kysely/db.ts +6 -0
  28. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +1 -1
  29. package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
  30. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  31. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  32. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  33. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  34. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
  35. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
  36. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
  37. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
  38. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
  39. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
  40. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
  41. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
  42. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
  43. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
  44. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
  45. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
  46. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -0
  47. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  48. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +3 -0
  49. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  50. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +1 -1
  51. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
  52. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
  53. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  54. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  55. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
  56. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
  57. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
  58. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
  59. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
  60. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
  61. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +4 -0
  62. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  63. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +7 -1
  64. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +4 -0
  65. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  66. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  67. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +93 -2
  68. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  69. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +108 -2
  70. package/background/src/lib/local/createLocalAnalyzer.js +1 -1
  71. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  72. package/codeyam-cli/scripts/apply-setup.js +1 -1
  73. package/codeyam-cli/src/cli.js +2 -0
  74. package/codeyam-cli/src/cli.js.map +1 -1
  75. package/codeyam-cli/src/codeyam-cli.js +18 -2
  76. package/codeyam-cli/src/codeyam-cli.js.map +1 -1
  77. package/codeyam-cli/src/commands/analyze.js +4 -2
  78. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  79. package/codeyam-cli/src/commands/baseline.js +2 -0
  80. package/codeyam-cli/src/commands/baseline.js.map +1 -1
  81. package/codeyam-cli/src/commands/debug.js +2 -0
  82. package/codeyam-cli/src/commands/debug.js.map +1 -1
  83. package/codeyam-cli/src/commands/default.js +31 -20
  84. package/codeyam-cli/src/commands/default.js.map +1 -1
  85. package/codeyam-cli/src/commands/detect-universal-mocks.js +2 -0
  86. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +1 -1
  87. package/codeyam-cli/src/commands/init.js +49 -257
  88. package/codeyam-cli/src/commands/init.js.map +1 -1
  89. package/codeyam-cli/src/commands/memory.js +9 -9
  90. package/codeyam-cli/src/commands/memory.js.map +1 -1
  91. package/codeyam-cli/src/commands/recapture.js +2 -0
  92. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  93. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  94. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  95. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  96. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  97. package/codeyam-cli/src/commands/test-startup.js +2 -0
  98. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  99. package/codeyam-cli/src/commands/verify.js +14 -2
  100. package/codeyam-cli/src/commands/verify.js.map +1 -1
  101. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +128 -86
  102. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  103. package/codeyam-cli/src/utils/analyzer.js +7 -0
  104. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  105. package/codeyam-cli/src/utils/backgroundServer.js +7 -1
  106. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  107. package/codeyam-cli/src/utils/generateReport.js +2 -2
  108. package/codeyam-cli/src/utils/install-skills.js +43 -63
  109. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  110. package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
  111. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
  112. package/codeyam-cli/src/utils/progress.js +7 -0
  113. package/codeyam-cli/src/utils/progress.js.map +1 -1
  114. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  115. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  116. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +4 -4
  117. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -1
  118. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +95 -2
  119. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -1
  120. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +4 -4
  121. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -1
  122. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +3 -3
  123. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -1
  124. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +23 -23
  125. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -1
  126. package/codeyam-cli/src/utils/rules/parser.js +5 -0
  127. package/codeyam-cli/src/utils/rules/parser.js.map +1 -1
  128. package/codeyam-cli/src/utils/rules/ruleState.js +10 -10
  129. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -1
  130. package/codeyam-cli/src/utils/rules/staleness.js +6 -6
  131. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -1
  132. package/codeyam-cli/src/utils/serverState.js +37 -10
  133. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  134. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +21 -44
  135. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  136. package/codeyam-cli/src/webserver/app/lib/database.js +14 -3
  137. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  138. package/codeyam-cli/src/webserver/backgroundServer.js +24 -0
  139. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  140. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CQ-wF3Tv.js +1 -0
  141. package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-B86KKU7e.js → EntityItem-HdckCi0m.js} +1 -1
  142. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-B5ctlSYt.js → EntityTypeBadge-Dh5RJMOE.js} +1 -1
  143. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-BqY8gDAW.js → EntityTypeIcon-BnjjBHJu.js} +1 -1
  144. package/codeyam-cli/src/webserver/build/client/assets/{InlineSpinner-ClaLpuOo.js → InlineSpinner-CUSfu6W5.js} +1 -1
  145. package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-BDhPilK7.js → InteractivePreview-Coll1aD6.js} +2 -2
  146. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-VeqEBv9v.js → LibraryFunctionPreview-lYMY8h-y.js} +1 -1
  147. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-Bs7Nn1Jr.js → LoadingDots-ay8XeA59.js} +1 -1
  148. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-Bm3PmcCz.js → LogViewer-Dpul1_ik.js} +1 -1
  149. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-C6PKeMYR.js → ReportIssueModal-CRBCfV2W.js} +2 -2
  150. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-Gq3Ocjo6.js → SafeScreenshot-DRTFDNFt.js} +1 -1
  151. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-BNLaXBHR.js → ScenarioViewer-d6PSFxhS.js} +2 -2
  152. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-CiwXDxLh.js → TruncatedFilePath-DDEOQ6Iw.js} +1 -1
  153. package/codeyam-cli/src/webserver/build/client/assets/{_index-B3TDXxnk.js → _index-CkziGg5F.js} +1 -1
  154. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-BtBFH820.js → activity.(_tab)-B2v1pm9w.js} +1 -1
  155. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-BXIaK8Md.js +11 -0
  156. package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
  157. package/codeyam-cli/src/webserver/build/client/assets/{book-open-PttOB2SF.js → book-open-qbapxy6o.js} +1 -1
  158. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-TJp6ofnp.js → chevron-down-C-mKrwr1.js} +1 -1
  159. package/codeyam-cli/src/webserver/build/client/assets/{chunk-JZWAC4HX-JE9ZIoBl.js → chunk-JZWAC4HX-BAvUl1nT.js} +8 -8
  160. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-CXhHQYrI.js → circle-check-DlrT-SzI.js} +1 -1
  161. package/codeyam-cli/src/webserver/build/client/assets/{copy-6y9ALfGT.js → copy-clIxnCqQ.js} +1 -1
  162. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-Ca9fAY46.js → createLucideIcon-B931Etud.js} +1 -1
  163. package/codeyam-cli/src/webserver/build/client/assets/{dev.empty-C5lqplTC.js → dev.empty-BoPM6KnE.js} +1 -1
  164. package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-oVRMh9Hl.js +16 -0
  165. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.fullscreen-CBoafmVs.js → entity._sha.scenarios._scenarioId.fullscreen-BjyzwQ7H.js} +1 -1
  166. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.create-scenario-DGgZjdFg.js → entity._sha_.create-scenario-DxuyDmZA.js} +1 -1
  167. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-38yPijoD.js → entity._sha_.edit._scenarioId-DESSZGQp.js} +1 -1
  168. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-BSHEfydn.js → entry.client-D5Yb90Ad.js} +1 -1
  169. package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DCPhhSMo.js → fileTableUtils-DuObVYgh.js} +1 -1
  170. package/codeyam-cli/src/webserver/build/client/assets/{files-0N0YJQv7.js → files-CDfz4Y-i.js} +1 -1
  171. package/codeyam-cli/src/webserver/build/client/assets/{git-DXnyr8uP.js → git-D6jOlDQw.js} +1 -1
  172. package/codeyam-cli/src/webserver/build/client/assets/globals-CKT08Djd.css +1 -0
  173. package/codeyam-cli/src/webserver/build/client/assets/{index-ChN9-fAY.js → index-DvOt1KIt.js} +1 -1
  174. package/codeyam-cli/src/webserver/build/client/assets/{index-CcsFv748.js → index-WfQFdoWK.js} +1 -1
  175. package/codeyam-cli/src/webserver/build/client/assets/labs-BbGyC1RY.js +1 -0
  176. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-CTqLEAGU.js → loader-circle-Bb7Y9k5O.js} +1 -1
  177. package/codeyam-cli/src/webserver/build/client/assets/manifest-fd06e67a.js +1 -0
  178. package/codeyam-cli/src/webserver/build/client/assets/memory-BXebUPaL.js +78 -0
  179. package/codeyam-cli/src/webserver/build/client/assets/{pause-D6vreykR.js → pause-DaAHX2on.js} +1 -1
  180. package/codeyam-cli/src/webserver/build/client/assets/root-CvNE9MaT.js +62 -0
  181. package/codeyam-cli/src/webserver/build/client/assets/{search-B8VUL8nl.js → search-DIqAPIrO.js} +1 -1
  182. package/codeyam-cli/src/webserver/build/client/assets/settings-DCIzBZM9.js +1 -0
  183. package/codeyam-cli/src/webserver/build/client/assets/{simulations-CPoAg7Zo.js → simulations-C6n_fNQY.js} +1 -1
  184. package/codeyam-cli/src/webserver/build/client/assets/{terminal-BrCP7uQo.js → terminal-CmPsszJy.js} +1 -1
  185. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-BZz2NjYa.js → triangle-alert-Beg-oV50.js} +1 -1
  186. package/codeyam-cli/src/webserver/build/client/assets/{useCustomSizes-DNwUduNu.js → useCustomSizes-D7TLbP3M.js} +1 -1
  187. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-COky1GVF.js → useLastLogLine-Ce5rnai3.js} +1 -1
  188. package/codeyam-cli/src/webserver/build/client/assets/{useReportContext-CpZgwliL.js → useReportContext-B4D3wj27.js} +1 -1
  189. package/codeyam-cli/src/webserver/build/client/assets/{useToast-Bv9JFvUO.js → useToast-BDt_-DnY.js} +1 -1
  190. package/codeyam-cli/src/webserver/build/server/assets/{index-9ox9LcrG.js → index-DDr9Cp9M.js} +1 -1
  191. package/codeyam-cli/src/webserver/build/server/assets/server-build-DjwiujaU.js +257 -0
  192. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  193. package/codeyam-cli/src/webserver/build-info.json +5 -5
  194. package/codeyam-cli/templates/{codeyam:debug.md → codeyam-debug.md} +1 -1
  195. package/codeyam-cli/templates/codeyam-diagnose.md +481 -0
  196. package/codeyam-cli/templates/codeyam-memory-hook.sh +14 -14
  197. package/codeyam-cli/templates/{codeyam:memory.md → codeyam-memory.md} +11 -23
  198. package/codeyam-cli/templates/{codeyam:new-rule.md → codeyam-new-rule.md} +1 -1
  199. package/codeyam-cli/templates/{codeyam:setup.md → codeyam-setup.md} +13 -1
  200. package/codeyam-cli/templates/{codeyam:sim.md → codeyam-sim.md} +1 -1
  201. package/codeyam-cli/templates/{codeyam:test.md → codeyam-test.md} +1 -1
  202. package/codeyam-cli/templates/{codeyam:verify.md → codeyam-verify.md} +1 -1
  203. package/codeyam-cli/templates/rule-reflection-hook.py +64 -27
  204. package/codeyam-cli/templates/rules-instructions.md +50 -41
  205. package/package.json +9 -9
  206. package/packages/ai/index.js +1 -1
  207. package/packages/ai/index.js.map +1 -1
  208. package/packages/ai/src/lib/analyzeScope.js +14 -0
  209. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  210. package/packages/ai/src/lib/astScopes/processExpression.js +78 -1
  211. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  212. package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
  213. package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
  214. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +128 -7
  215. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  216. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +59 -17
  217. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  218. package/packages/ai/src/lib/dataStructureChunking.js +26 -11
  219. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -1
  220. package/packages/ai/src/lib/generateEntityScenarioData.js +22 -3
  221. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  222. package/packages/ai/src/lib/generateExecutionFlows.js +16 -2
  223. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
  224. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +242 -81
  225. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -1
  226. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
  227. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
  228. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
  229. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
  230. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +17 -2
  231. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  232. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +11 -1
  233. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  234. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +42 -13
  235. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  236. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +123 -67
  237. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  238. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  239. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  240. package/packages/database/src/lib/analysisToDb.js +1 -1
  241. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  242. package/packages/database/src/lib/branchToDb.js +1 -1
  243. package/packages/database/src/lib/branchToDb.js.map +1 -1
  244. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  245. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  246. package/packages/database/src/lib/commitToDb.js +1 -1
  247. package/packages/database/src/lib/commitToDb.js.map +1 -1
  248. package/packages/database/src/lib/fileToDb.js +1 -1
  249. package/packages/database/src/lib/fileToDb.js.map +1 -1
  250. package/packages/database/src/lib/kysely/db.js +3 -0
  251. package/packages/database/src/lib/kysely/db.js.map +1 -1
  252. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  253. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  254. package/packages/database/src/lib/projectToDb.js +1 -1
  255. package/packages/database/src/lib/projectToDb.js.map +1 -1
  256. package/packages/database/src/lib/saveFiles.js +1 -1
  257. package/packages/database/src/lib/saveFiles.js.map +1 -1
  258. package/packages/database/src/lib/scenarioToDb.js +1 -1
  259. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  260. package/packages/utils/src/lib/fs/rsyncCopy.js +93 -2
  261. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  262. package/scripts/finalize-analyzer.cjs +8 -76
  263. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CA3JxPb7.js +0 -1
  264. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-DfKzxuoe.js +0 -11
  265. package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-n38keI1k.js +0 -23
  266. package/codeyam-cli/src/webserver/build/client/assets/globals-Bh6jH0cL.css +0 -1
  267. package/codeyam-cli/src/webserver/build/client/assets/labs-CdVUfvji.js +0 -1
  268. package/codeyam-cli/src/webserver/build/client/assets/manifest-87319d0f.js +0 -1
  269. package/codeyam-cli/src/webserver/build/client/assets/memory-CPIDnDEj.js +0 -76
  270. package/codeyam-cli/src/webserver/build/client/assets/root-D6oziHts.js +0 -62
  271. package/codeyam-cli/src/webserver/build/client/assets/settings-eBI36Yv5.js +0 -1
  272. package/codeyam-cli/src/webserver/build/server/assets/server-build-Cq5Vqcob.js +0 -260
  273. package/codeyam-cli/templates/codeyam:diagnose.md +0 -803
@@ -3,9 +3,11 @@ import type { ExecutionFlow, ScenariosDataStructure } from '~codeyam/types';
3
3
  // Type for a single required value from ExecutionFlow
4
4
  type RequiredValue = NonNullable<ExecutionFlow['requiredValues']>[number];
5
5
 
6
- const DEFAULT_MAX_KEYS_PER_CHUNK = 8;
6
+ const DEFAULT_MAX_CHUNK_SIZE = 10_000; // ~10K chars per chunk
7
7
 
8
8
  export interface ChunkOptions {
9
+ maxChunkSize?: number;
10
+ /** @deprecated Use maxChunkSize instead. Kept for backward compatibility in tests. */
9
11
  maxKeysPerChunk?: number;
10
12
  }
11
13
 
@@ -15,8 +17,12 @@ export interface ChunkOptions {
15
17
  * Large schemas overwhelm LLMs, causing them to make mistakes on some keys.
16
18
  * By processing smaller chunks, each key gets more focused attention.
17
19
  *
20
+ * Uses cumulative JSON size to decide chunk boundaries rather than a fixed
21
+ * key count, so a single oversized key gets its own chunk while many small
22
+ * keys are grouped together efficiently.
23
+ *
18
24
  * @param dataForMocks - The full data structure schema
19
- * @param options - Chunking options (maxKeysPerChunk defaults to 8)
25
+ * @param options - Chunking options (maxChunkSize defaults to 10_000)
20
26
  * @returns Array of smaller data structure chunks
21
27
  */
22
28
  export function chunkDataStructure(
@@ -27,27 +33,39 @@ export function chunkDataStructure(
27
33
  return [dataForMocks];
28
34
  }
29
35
 
30
- const { maxKeysPerChunk = DEFAULT_MAX_KEYS_PER_CHUNK } = options;
36
+ const { maxChunkSize = DEFAULT_MAX_CHUNK_SIZE } = options;
31
37
  const keys = Object.keys(dataForMocks);
32
38
 
33
- // Don't chunk if already small enough
34
- if (keys.length <= maxKeysPerChunk) {
39
+ // Calculate total size to see if chunking is needed
40
+ const totalSize = JSON.stringify(dataForMocks).length;
41
+ if (totalSize <= maxChunkSize) {
35
42
  return [dataForMocks];
36
43
  }
37
44
 
45
+ // Greedily pack keys into chunks by cumulative size
38
46
  const chunks: Array<ScenariosDataStructure['dataForMocks']> = [];
39
-
40
- for (let i = 0; i < keys.length; i += maxKeysPerChunk) {
41
- const chunkKeys = keys.slice(i, i + maxKeysPerChunk);
42
- const chunk: ScenariosDataStructure['dataForMocks'] = {};
43
-
44
- for (const key of chunkKeys) {
45
- (chunk as Record<string, unknown>)[key] = (
46
- dataForMocks as Record<string, unknown>
47
- )[key];
47
+ let currentChunk: Record<string, unknown> = {};
48
+ let currentSize = 0;
49
+
50
+ for (const key of keys) {
51
+ const keySize = JSON.stringify(
52
+ (dataForMocks as Record<string, unknown>)[key],
53
+ ).length;
54
+
55
+ // If adding this key would exceed the limit AND chunk isn't empty, start a new chunk
56
+ if (currentSize > 0 && currentSize + keySize > maxChunkSize) {
57
+ chunks.push(currentChunk as ScenariosDataStructure['dataForMocks']);
58
+ currentChunk = {};
59
+ currentSize = 0;
48
60
  }
49
61
 
50
- chunks.push(chunk);
62
+ currentChunk[key] = (dataForMocks as Record<string, unknown>)[key];
63
+ currentSize += keySize;
64
+ }
65
+
66
+ // Push the last chunk
67
+ if (Object.keys(currentChunk).length > 0) {
68
+ chunks.push(currentChunk as ScenariosDataStructure['dataForMocks']);
51
69
  }
52
70
 
53
71
  return chunks;
@@ -294,11 +294,13 @@ function generateDefaultForSchemaType(schemaType: unknown): unknown {
294
294
  if (schemaType.includes('| null')) return null;
295
295
  return schemaType; // Return the type as a string placeholder
296
296
  }
297
- if (
298
- typeof schemaType === 'object' &&
299
- schemaType !== null &&
300
- !Array.isArray(schemaType)
301
- ) {
297
+ if (Array.isArray(schemaType)) {
298
+ if (schemaType.length === 0) return [];
299
+ // Generate a single default element based on the first element's schema
300
+ const elementDefault = generateDefaultForSchemaType(schemaType[0]);
301
+ return elementDefault !== undefined ? [elementDefault] : [];
302
+ }
303
+ if (typeof schemaType === 'object' && schemaType !== null) {
302
304
  // Recursively generate defaults for nested objects
303
305
  const result: Record<string, unknown> = {};
304
306
  for (const [key, value] of Object.entries(schemaType)) {
@@ -426,6 +428,8 @@ function fillMissingMockDataKeysWithDefaults(
426
428
  const missingKeys: string[] = [];
427
429
 
428
430
  for (const key of Object.keys(dataForMocks)) {
431
+ if (key === '_nullable') continue; // Internal marker, not a data key
432
+
429
433
  const fullPath = pathPrefix ? `${pathPrefix}.${key}` : key;
430
434
 
431
435
  if (mockData[key] === undefined) {
@@ -841,6 +845,29 @@ export async function generateDataForScenario({
841
845
  }
842
846
  }
843
847
 
848
+ // Detect keys that were lost from failed or partial chunk responses
849
+ // and fill them with schema-based defaults so they aren't permanently lost.
850
+ const allChunkedKeys = chunks.flatMap((c) => Object.keys(c || {}));
851
+ const returnedKeys = new Set(Object.keys(chunkedMockData));
852
+ const missingChunkKeys = allChunkedKeys.filter(
853
+ (k) => !returnedKeys.has(k),
854
+ );
855
+
856
+ if (missingChunkKeys.length > 0) {
857
+ awsLog(
858
+ `Chunked processing: ${missingChunkKeys.length} key(s) missing from chunk results, filling with defaults: ${missingChunkKeys.join(', ')}`,
859
+ );
860
+ const dataForMocksRecord = structure.dataForMocks as Record<
861
+ string,
862
+ unknown
863
+ >;
864
+ for (const key of missingChunkKeys) {
865
+ chunkedMockData[key] = generateDefaultForSchemaType(
866
+ dataForMocksRecord[key],
867
+ );
868
+ }
869
+ }
870
+
844
871
  awsLog(
845
872
  `Chunked processing complete. Generated ${Object.keys(chunkedMockData).length} keys total`,
846
873
  );
@@ -105,6 +105,19 @@ export default function generateExecutionFlows({
105
105
  fullToShortPathMap[fullPath] = shortPath;
106
106
  }
107
107
 
108
+ console.log(
109
+ `[generateExecutionFlows] ${entity.name}: attributesMap has ${Object.keys(resolvedAttributesMap).length} keys, fullToShortPathMap has ${Object.keys(fullToShortPathMap).length} entries`,
110
+ );
111
+ console.log(
112
+ `[generateExecutionFlows] ${entity.name}: attributesMap keys: [${Object.keys(resolvedAttributesMap).join(', ')}]`,
113
+ );
114
+ console.log(
115
+ `[generateExecutionFlows] ${entity.name}: fullToShortPathMap: ${JSON.stringify(fullToShortPathMap)}`,
116
+ );
117
+ console.log(
118
+ `[generateExecutionFlows] ${entity.name}: equivalentSignatureVariables: ${JSON.stringify(equivalentSignatureVariables)}`,
119
+ );
120
+
108
121
  // Get pre-computed conditional data from metadata
109
122
  const conditionalUsages: Record<string, ConditionalUsage[]> =
110
123
  entity.metadata?.isolatedDataStructure?.conditionalUsages ?? {};
@@ -149,6 +162,26 @@ export default function generateExecutionFlows({
149
162
  }
150
163
  }
151
164
 
165
+ console.log(
166
+ `[generateExecutionFlows] ${entity.name}: conditionalUsages keys: [${Object.keys(conditionalUsages).join(', ')}]`,
167
+ );
168
+ console.log(
169
+ `[generateExecutionFlows] ${entity.name}: conditionalUsages sourceDataPaths: ${JSON.stringify(
170
+ Object.fromEntries(
171
+ Object.entries(conditionalUsages).map(([k, v]) => [
172
+ k,
173
+ (v as any[]).map((u: any) => u.sourceDataPath ?? '(none)'),
174
+ ]),
175
+ ),
176
+ )}`,
177
+ );
178
+ console.log(
179
+ `[generateExecutionFlows] ${entity.name}: compoundConditionals count: ${compoundConditionals.length}`,
180
+ );
181
+ console.log(
182
+ `[generateExecutionFlows] ${entity.name}: sourceEquivalencies keys count: ${Object.keys(mergedDataStructure.sourceEquivalencies ?? {}).length}`,
183
+ );
184
+
152
185
  const conditionalsBasedFlows = generateExecutionFlowsFromConditionals({
153
186
  conditionalUsages,
154
187
  compoundConditionals,
@@ -503,8 +536,11 @@ function buildValueGroupMap(flows: ExecutionFlow[]): Map<string, string[]> {
503
536
  for (const [, flowValues] of pathToValues) {
504
537
  // Only create groups if there are multiple different values for the same path
505
538
  const uniqueValues = new Set(flowValues.map((fv) => fv.value));
506
- if (uniqueValues.size > 1) {
507
- // This attribute has multiple values, so all flows are siblings
539
+ if (uniqueValues.size > 1 && flowValues.length <= 10) {
540
+ // This attribute has multiple values, so all flows are siblings.
541
+ // Skip large groups (>10 flows) — these are typically shared gating conditions
542
+ // (like route params) that would dominate the selection by pulling in too many
543
+ // siblings and displacing higher-priority flows.
508
544
  const siblingIds = flowValues.map((fv) => fv.flowId);
509
545
  for (const fv of flowValues) {
510
546
  valueGroupMap.set(