@codeyam/codeyam-cli 0.1.0-staging.c90f8c9 → 0.1.0-staging.c9dc00c

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 (513) 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 +7 -7
  4. package/analyzer-template/packages/ai/index.ts +10 -2
  5. package/analyzer-template/packages/ai/package.json +2 -2
  6. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +86 -18
  7. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +67 -9
  8. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +41 -17
  9. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
  10. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +308 -50
  11. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +15 -6
  12. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +837 -243
  13. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +5 -1
  14. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +16 -3
  15. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +6 -4
  16. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +54 -3
  17. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +60 -15
  18. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
  19. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +80 -5
  20. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +179 -0
  21. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.ts +40 -30
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +393 -97
  23. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +58 -3
  24. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +283 -1
  25. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +9 -5
  26. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +11 -3
  27. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +1 -1
  28. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +297 -7
  29. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +1 -1
  30. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +51 -3
  31. package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +90 -96
  32. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +10 -7
  33. package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +25 -13
  34. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +4 -3
  35. package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +114 -2
  36. package/analyzer-template/packages/analyze/index.ts +2 -0
  37. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +65 -59
  38. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +113 -26
  39. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +19 -0
  40. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +19 -0
  41. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +11 -0
  42. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +8 -0
  43. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +49 -1
  44. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +2 -1
  45. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +71 -9
  46. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +19 -4
  47. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +6 -0
  48. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +4 -2
  49. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +0 -3
  50. package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +4 -5
  51. package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +14 -12
  52. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1315 -0
  53. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +61 -13
  54. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +37 -0
  55. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +229 -19
  56. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +117 -9
  57. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +459 -39
  58. package/analyzer-template/packages/analyze/src/lib/files/scenarios/propagateArrayItemSchemas.ts +474 -0
  59. package/analyzer-template/packages/analyze/src/lib/files/setImportedExports.ts +2 -1
  60. package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
  61. package/analyzer-template/packages/analyze/src/lib/utils/getFileByPath.ts +19 -0
  62. package/analyzer-template/packages/aws/package.json +1 -1
  63. package/analyzer-template/packages/database/package.json +1 -1
  64. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  65. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  66. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  67. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  68. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  69. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  70. package/analyzer-template/packages/database/src/lib/kysely/db.ts +14 -1
  71. package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +6 -0
  72. package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
  73. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +13 -0
  74. package/analyzer-template/packages/database/src/lib/loadBranch.ts +16 -1
  75. package/analyzer-template/packages/database/src/lib/loadCommit.ts +11 -0
  76. package/analyzer-template/packages/database/src/lib/loadCommits.ts +12 -0
  77. package/analyzer-template/packages/database/src/lib/loadEntityBranches.ts +12 -0
  78. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  79. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  80. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  81. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +7 -14
  82. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  83. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
  84. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
  85. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
  86. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
  87. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
  88. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
  89. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
  90. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
  91. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
  92. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
  93. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
  94. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
  95. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -0
  96. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  97. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +11 -1
  98. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  99. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts +1 -0
  100. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts.map +1 -1
  101. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js +3 -0
  102. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  103. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
  104. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
  105. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  106. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  107. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
  108. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +8 -0
  109. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
  110. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js +11 -1
  111. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js.map +1 -1
  112. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.d.ts.map +1 -1
  113. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js +7 -0
  114. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js.map +1 -1
  115. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  116. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +9 -0
  117. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  118. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.d.ts.map +1 -1
  119. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js +9 -0
  120. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js.map +1 -1
  121. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
  122. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
  123. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
  124. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
  125. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
  126. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
  127. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts +2 -2
  128. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  129. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +5 -4
  130. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  131. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts +2 -0
  132. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts.map +1 -1
  133. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  134. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  135. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +5 -5
  136. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  137. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  138. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  139. package/analyzer-template/packages/github/package.json +1 -1
  140. package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
  141. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +7 -0
  142. package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +6 -5
  143. package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
  144. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts +2 -0
  145. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts.map +1 -1
  146. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  147. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  148. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +5 -5
  149. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  150. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  151. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  152. package/analyzer-template/playwright/capture.ts +20 -8
  153. package/analyzer-template/playwright/captureStatic.ts +1 -1
  154. package/analyzer-template/project/analyzeBaselineCommit.ts +5 -0
  155. package/analyzer-template/project/analyzeRegularCommit.ts +5 -0
  156. package/analyzer-template/project/captureLibraryFunctionDirect.ts +29 -26
  157. package/analyzer-template/project/constructMockCode.ts +90 -10
  158. package/analyzer-template/project/createEntitiesAndSortFiles.ts +83 -0
  159. package/analyzer-template/project/loadReadyToBeCaptured.ts +65 -41
  160. package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
  161. package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +11 -6
  162. package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
  163. package/analyzer-template/project/orchestrateCapture.ts +45 -6
  164. package/analyzer-template/project/start.ts +35 -11
  165. package/analyzer-template/project/writeMockDataTsx.ts +181 -8
  166. package/analyzer-template/project/writeScenarioComponents.ts +60 -12
  167. package/analyzer-template/project/writeSimpleRoot.ts +21 -11
  168. package/analyzer-template/scripts/comboWorkerLoop.cjs +98 -50
  169. package/background/src/lib/local/createLocalAnalyzer.js +1 -1
  170. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  171. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +5 -0
  172. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
  173. package/background/src/lib/virtualized/project/analyzeRegularCommit.js +5 -0
  174. package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
  175. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +3 -3
  176. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -1
  177. package/background/src/lib/virtualized/project/constructMockCode.js +75 -4
  178. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  179. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +73 -1
  180. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -1
  181. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +19 -8
  182. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
  183. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js +2 -2
  184. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -1
  185. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +4 -4
  186. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
  187. package/background/src/lib/virtualized/project/orchestrateCapture.js +38 -6
  188. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  189. package/background/src/lib/virtualized/project/start.js +32 -11
  190. package/background/src/lib/virtualized/project/start.js.map +1 -1
  191. package/background/src/lib/virtualized/project/writeMockDataTsx.js +162 -4
  192. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  193. package/background/src/lib/virtualized/project/writeScenarioComponents.js +60 -15
  194. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  195. package/background/src/lib/virtualized/project/writeSimpleRoot.js +21 -11
  196. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  197. package/codeyam-cli/scripts/apply-setup.js +180 -0
  198. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  199. package/codeyam-cli/src/cli.js +4 -0
  200. package/codeyam-cli/src/cli.js.map +1 -1
  201. package/codeyam-cli/src/commands/analyze.js +2 -0
  202. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  203. package/codeyam-cli/src/commands/baseline.js +2 -0
  204. package/codeyam-cli/src/commands/baseline.js.map +1 -1
  205. package/codeyam-cli/src/commands/debug.js +9 -5
  206. package/codeyam-cli/src/commands/debug.js.map +1 -1
  207. package/codeyam-cli/src/commands/default.js +14 -4
  208. package/codeyam-cli/src/commands/default.js.map +1 -1
  209. package/codeyam-cli/src/commands/detect-universal-mocks.js +2 -0
  210. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +1 -1
  211. package/codeyam-cli/src/commands/init.js +42 -184
  212. package/codeyam-cli/src/commands/init.js.map +1 -1
  213. package/codeyam-cli/src/commands/memory.js +264 -0
  214. package/codeyam-cli/src/commands/memory.js.map +1 -0
  215. package/codeyam-cli/src/commands/recapture.js +2 -0
  216. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  217. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  218. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  219. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  220. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  221. package/codeyam-cli/src/commands/test-startup.js +2 -0
  222. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  223. package/codeyam-cli/src/commands/verify.js +2 -0
  224. package/codeyam-cli/src/commands/verify.js.map +1 -1
  225. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +128 -86
  226. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  227. package/codeyam-cli/src/utils/analysisRunner.js +1 -1
  228. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  229. package/codeyam-cli/src/utils/analyzer.js +7 -0
  230. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  231. package/codeyam-cli/src/utils/backgroundServer.js +4 -0
  232. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  233. package/codeyam-cli/src/utils/install-skills.js +71 -46
  234. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  235. package/codeyam-cli/src/utils/labsAutoCheck.js +48 -0
  236. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
  237. package/codeyam-cli/src/utils/progress.js +7 -0
  238. package/codeyam-cli/src/utils/progress.js.map +1 -1
  239. package/codeyam-cli/src/utils/queue/job.js +4 -0
  240. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  241. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  242. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  243. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
  244. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
  245. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +230 -0
  246. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
  247. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
  248. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
  249. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
  250. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
  251. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
  252. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
  253. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
  254. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
  255. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +75 -0
  256. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
  257. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +378 -0
  258. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
  259. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +115 -0
  260. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
  261. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
  262. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
  263. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
  264. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
  265. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
  266. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
  267. package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
  268. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
  269. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
  270. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
  271. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
  272. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
  273. package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
  274. package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
  275. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
  276. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
  277. package/codeyam-cli/src/utils/rules/index.js +6 -0
  278. package/codeyam-cli/src/utils/rules/index.js.map +1 -0
  279. package/codeyam-cli/src/utils/rules/parser.js +83 -0
  280. package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
  281. package/codeyam-cli/src/utils/rules/pathMatcher.js +18 -0
  282. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
  283. package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
  284. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
  285. package/codeyam-cli/src/utils/rules/staleness.js +137 -0
  286. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
  287. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +20 -43
  288. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  289. package/codeyam-cli/src/webserver/app/lib/database.js +15 -3
  290. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  291. package/codeyam-cli/src/webserver/backgroundServer.js +31 -0
  292. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  293. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CA3JxPb7.js +1 -0
  294. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-B86KKU7e.js +11 -0
  295. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-DLqD3qNt.js → EntityTypeBadge-B5ctlSYt.js} +1 -1
  296. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-Ba2JVPzP.js → EntityTypeIcon-BqY8gDAW.js} +1 -1
  297. package/codeyam-cli/src/webserver/build/client/assets/{InlineSpinner-C8lyxW9k.js → InlineSpinner-ClaLpuOo.js} +1 -1
  298. package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-aht4aafF.js → InteractivePreview-BDhPilK7.js} +2 -2
  299. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-CVtiBnY5.js → LibraryFunctionPreview-VeqEBv9v.js} +1 -1
  300. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-B0GLXMsr.js → LoadingDots-Bs7Nn1Jr.js} +1 -1
  301. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-xgeCVgSM.js → LogViewer-Bm3PmcCz.js} +1 -1
  302. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-D4TZhLuw.js → ReportIssueModal-C6PKeMYR.js} +3 -13
  303. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-DuDvi0jm.js → SafeScreenshot-Gq3Ocjo6.js} +1 -1
  304. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-DEx02QDa.js → ScenarioViewer-BNLaXBHR.js} +3 -3
  305. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-DyFZkK0l.js → TruncatedFilePath-CiwXDxLh.js} +1 -1
  306. package/codeyam-cli/src/webserver/build/client/assets/{_index-BwqWJOgH.js → _index-B3TDXxnk.js} +1 -1
  307. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-DoLIqZX2.js → activity.(_tab)-BtBFH820.js} +6 -16
  308. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-CN61MOMa.js +11 -0
  309. package/codeyam-cli/src/webserver/build/client/assets/api.labs-survey-l0sNRNKZ.js +1 -0
  310. package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
  311. package/codeyam-cli/src/webserver/build/client/assets/api.memory-profile-l0sNRNKZ.js +1 -0
  312. package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
  313. package/codeyam-cli/src/webserver/build/client/assets/book-open-PttOB2SF.js +6 -0
  314. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-Cx24_aWc.js → chevron-down-TJp6ofnp.js} +1 -1
  315. package/codeyam-cli/src/webserver/build/client/assets/{chunk-EPOLDU6W-CXRTFQ3F.js → chunk-JZWAC4HX-JE9ZIoBl.js} +12 -12
  316. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-BOARzkeR.js → circle-check-CXhHQYrI.js} +1 -1
  317. package/codeyam-cli/src/webserver/build/client/assets/copy-6y9ALfGT.js +11 -0
  318. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-BdhJEx6B.js → createLucideIcon-Ca9fAY46.js} +1 -1
  319. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-C5lqplTC.js +1 -0
  320. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-C2N4Op8e.js → entity._sha._-n38keI1k.js} +10 -10
  321. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.fullscreen-DavjRmOY.js → entity._sha.scenarios._scenarioId.fullscreen-CBoafmVs.js} +1 -1
  322. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.create-scenario-D1T4TGjf.js → entity._sha_.create-scenario-DGgZjdFg.js} +1 -1
  323. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CTBG2mmz.js → entity._sha_.edit._scenarioId-38yPijoD.js} +1 -1
  324. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-CS2cb_eZ.js → entry.client-BSHEfydn.js} +1 -1
  325. package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DMJ7zii9.js → fileTableUtils-DCPhhSMo.js} +1 -1
  326. package/codeyam-cli/src/webserver/build/client/assets/files-0N0YJQv7.js +1 -0
  327. package/codeyam-cli/src/webserver/build/client/assets/{git-B4RJRvYB.js → git-DXnyr8uP.js} +8 -8
  328. package/codeyam-cli/src/webserver/build/client/assets/globals-EVn6Z9pz.css +1 -0
  329. package/codeyam-cli/src/webserver/build/client/assets/{index-lzqtyFU8.js → index-CcsFv748.js} +1 -1
  330. package/codeyam-cli/src/webserver/build/client/assets/{index-B1h680n5.js → index-ChN9-fAY.js} +1 -1
  331. package/codeyam-cli/src/webserver/build/client/assets/labs-CmBYA0PH.js +1 -0
  332. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-B7B9V-bu.js → loader-circle-CTqLEAGU.js} +1 -1
  333. package/codeyam-cli/src/webserver/build/client/assets/manifest-aa4ff97b.js +1 -0
  334. package/codeyam-cli/src/webserver/build/client/assets/memory-BSlqS1QA.js +81 -0
  335. package/codeyam-cli/src/webserver/build/client/assets/pause-D6vreykR.js +11 -0
  336. package/codeyam-cli/src/webserver/build/client/assets/root-DVAbJY8B.js +62 -0
  337. package/codeyam-cli/src/webserver/build/client/assets/{search-CxXUmBSd.js → search-B8VUL8nl.js} +1 -1
  338. package/codeyam-cli/src/webserver/build/client/assets/settings-BK-cnzp-.js +1 -0
  339. package/codeyam-cli/src/webserver/build/client/assets/{simulations-DwFIBT09.js → simulations-CPoAg7Zo.js} +1 -1
  340. package/codeyam-cli/src/webserver/build/client/assets/terminal-BrCP7uQo.js +11 -0
  341. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-B6LgvRJg.js → triangle-alert-BZz2NjYa.js} +1 -1
  342. package/codeyam-cli/src/webserver/build/client/assets/{useCustomSizes-C1v1PQzo.js → useCustomSizes-DNwUduNu.js} +1 -1
  343. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-aSv48UbS.js → useLastLogLine-COky1GVF.js} +1 -1
  344. package/codeyam-cli/src/webserver/build/client/assets/{useReportContext-DYxHZQuP.js → useReportContext-CpZgwliL.js} +1 -1
  345. package/codeyam-cli/src/webserver/build/client/assets/{useToast-mBRpZPiu.js → useToast-Bv9JFvUO.js} +1 -1
  346. package/codeyam-cli/src/webserver/build/server/assets/index-Cz2RkDCa.js +1 -0
  347. package/codeyam-cli/src/webserver/build/server/assets/server-build-CUVsWicu.js +260 -0
  348. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  349. package/codeyam-cli/src/webserver/build-info.json +5 -5
  350. package/codeyam-cli/templates/{codeyam-power-rules-hook.sh → codeyam-memory-hook.sh} +12 -13
  351. package/codeyam-cli/templates/codeyam:diagnose.md +195 -496
  352. package/codeyam-cli/templates/codeyam:memory.md +403 -0
  353. package/codeyam-cli/templates/codeyam:new-rule.md +2 -2
  354. package/codeyam-cli/templates/codeyam:setup.md +12 -0
  355. package/codeyam-cli/templates/rule-notification-hook.py +56 -0
  356. package/codeyam-cli/templates/rule-reflection-hook.py +627 -0
  357. package/codeyam-cli/templates/rules-instructions.md +136 -0
  358. package/package.json +8 -6
  359. package/packages/ai/index.js +3 -2
  360. package/packages/ai/index.js.map +1 -1
  361. package/packages/ai/src/lib/analyzeScope.js +68 -13
  362. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  363. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +54 -8
  364. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  365. package/packages/ai/src/lib/astScopes/methodSemantics.js +41 -17
  366. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  367. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
  368. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
  369. package/packages/ai/src/lib/astScopes/processExpression.js +239 -43
  370. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  371. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +654 -166
  372. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  373. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +5 -1
  374. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  375. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +13 -3
  376. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -1
  377. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +6 -4
  378. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -1
  379. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +52 -3
  380. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  381. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +55 -11
  382. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  383. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
  384. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
  385. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +73 -5
  386. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  387. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
  388. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
  389. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
  390. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
  391. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +333 -86
  392. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  393. package/packages/ai/src/lib/generateEntityDataStructure.js +46 -2
  394. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  395. package/packages/ai/src/lib/generateEntityScenarioData.js +205 -1
  396. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  397. package/packages/ai/src/lib/generateEntityScenarios.js +7 -1
  398. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  399. package/packages/ai/src/lib/generateExecutionFlows.js +10 -2
  400. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
  401. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +209 -3
  402. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -1
  403. package/packages/ai/src/lib/isolateScopes.js +39 -3
  404. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  405. package/packages/ai/src/lib/mergeStatements.js +70 -51
  406. package/packages/ai/src/lib/mergeStatements.js.map +1 -1
  407. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +10 -4
  408. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  409. package/packages/ai/src/lib/resolvePathToControllable.js +24 -14
  410. package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -1
  411. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  412. package/packages/ai/src/lib/worker/analyzeScopeWorker.js +94 -1
  413. package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
  414. package/packages/analyze/index.js +1 -0
  415. package/packages/analyze/index.js.map +1 -1
  416. package/packages/analyze/src/lib/FileAnalyzer.js +60 -36
  417. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  418. package/packages/analyze/src/lib/ProjectAnalyzer.js +96 -26
  419. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  420. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +14 -0
  421. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -1
  422. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +14 -0
  423. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -1
  424. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +6 -0
  425. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
  426. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +6 -0
  427. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -1
  428. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +39 -1
  429. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -1
  430. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +2 -1
  431. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -1
  432. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +54 -6
  433. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  434. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +17 -4
  435. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  436. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +5 -0
  437. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  438. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +2 -1
  439. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  440. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +0 -3
  441. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  442. package/packages/analyze/src/lib/files/analyzeRemixRoute.js +3 -2
  443. package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
  444. package/packages/analyze/src/lib/files/getImportedExports.js +11 -7
  445. package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
  446. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +880 -0
  447. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
  448. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +56 -10
  449. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
  450. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +33 -8
  451. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  452. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +150 -17
  453. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  454. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +56 -8
  455. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -1
  456. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +399 -31
  457. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  458. package/packages/analyze/src/lib/files/setImportedExports.js +2 -1
  459. package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -1
  460. package/packages/analyze/src/lib/index.js +1 -0
  461. package/packages/analyze/src/lib/index.js.map +1 -1
  462. package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
  463. package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
  464. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  465. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  466. package/packages/database/src/lib/analysisToDb.js +1 -1
  467. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  468. package/packages/database/src/lib/branchToDb.js +1 -1
  469. package/packages/database/src/lib/branchToDb.js.map +1 -1
  470. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  471. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  472. package/packages/database/src/lib/commitToDb.js +1 -1
  473. package/packages/database/src/lib/commitToDb.js.map +1 -1
  474. package/packages/database/src/lib/fileToDb.js +1 -1
  475. package/packages/database/src/lib/fileToDb.js.map +1 -1
  476. package/packages/database/src/lib/kysely/db.js +11 -1
  477. package/packages/database/src/lib/kysely/db.js.map +1 -1
  478. package/packages/database/src/lib/kysely/tables/commitsTable.js +3 -0
  479. package/packages/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
  480. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  481. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  482. package/packages/database/src/lib/loadAnalysis.js +8 -0
  483. package/packages/database/src/lib/loadAnalysis.js.map +1 -1
  484. package/packages/database/src/lib/loadBranch.js +11 -1
  485. package/packages/database/src/lib/loadBranch.js.map +1 -1
  486. package/packages/database/src/lib/loadCommit.js +7 -0
  487. package/packages/database/src/lib/loadCommit.js.map +1 -1
  488. package/packages/database/src/lib/loadCommits.js +9 -0
  489. package/packages/database/src/lib/loadCommits.js.map +1 -1
  490. package/packages/database/src/lib/loadEntityBranches.js +9 -0
  491. package/packages/database/src/lib/loadEntityBranches.js.map +1 -1
  492. package/packages/database/src/lib/projectToDb.js +1 -1
  493. package/packages/database/src/lib/projectToDb.js.map +1 -1
  494. package/packages/database/src/lib/saveFiles.js +1 -1
  495. package/packages/database/src/lib/saveFiles.js.map +1 -1
  496. package/packages/database/src/lib/scenarioToDb.js +1 -1
  497. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  498. package/packages/database/src/lib/updateCommitMetadata.js +5 -4
  499. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  500. package/scripts/finalize-analyzer.cjs +8 -76
  501. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-BXhEawa3.js +0 -1
  502. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BRb-0kQl.js +0 -1
  503. package/codeyam-cli/src/webserver/build/client/assets/files-Cs4MdYtv.js +0 -1
  504. package/codeyam-cli/src/webserver/build/client/assets/git-commit-horizontal-CysbcZxi.js +0 -6
  505. package/codeyam-cli/src/webserver/build/client/assets/globals-DMUaGAqV.css +0 -1
  506. package/codeyam-cli/src/webserver/build/client/assets/manifest-f874c610.js +0 -1
  507. package/codeyam-cli/src/webserver/build/client/assets/root-Bz5TunQg.js +0 -57
  508. package/codeyam-cli/src/webserver/build/client/assets/rules-hEkvVw2-.js +0 -97
  509. package/codeyam-cli/src/webserver/build/client/assets/settings-CS5f3WzT.js +0 -1
  510. package/codeyam-cli/src/webserver/build/server/assets/index-uNNbimct.js +0 -1
  511. package/codeyam-cli/src/webserver/build/server/assets/server-build-B08qC4Y7.js +0 -257
  512. package/codeyam-cli/templates/codeyam:power-rules.md +0 -449
  513. /package/codeyam-cli/src/webserver/build/client/assets/{api.rules-l0sNRNKZ.js → api.agent-transcripts-l0sNRNKZ.js} +0 -0
@@ -4,15 +4,9 @@ import * as path from 'path';
4
4
  import { execSync } from 'child_process';
5
5
  import { error, header, info, ProgressReporter, success, withoutSpinner, } from "../utils/progress.js";
6
6
  import { ensureLocalBranch, ensureProject, getSqlitePath, testEnvironment, } from "../utils/database.js";
7
- import { createAnalyzer, getProjectPath } from "../utils/analyzer.js";
8
- import { ProjectAnalyzer } from "../../../packages/analyze/index.js";
9
- import prepareRepo from "../../../background/src/lib/virtualized/project/prepareRepo.js";
10
- import { createSqliteSchema, getSqliteDatabase, loadAnalyses, loadEntities, loadFiles, } from "../../../packages/database/index.js";
11
- import getFilesWithEntitiesFromRepo from "../../../background/src/lib/virtualized/project/getFilesWithEntitiesFromRepo.js";
12
- import createEntitiesAndSortFiles from "../../../background/src/lib/virtualized/project/createEntitiesAndSortFiles.js";
7
+ import { createSqliteSchema, getSqliteDatabase, updateProjectMetadata, } from "../../../packages/database/index.js";
13
8
  import { findProjectRoot } from "../utils/project.js";
14
9
  import { setProjectRoot } from "../state.js";
15
- import { populateEntityMetadata } from "../utils/entityMetadata.js";
16
10
  import { installClaudeCodeSkills } from "../utils/install-skills.js";
17
11
  import { setupClaudeCodeSettings } from "../utils/setupClaudeCodeSettings.js";
18
12
  import { getUnapprovedPathsWithGitignore } from "../utils/defaultUnapprovedPaths.js";
@@ -62,14 +56,9 @@ const initCommand = {
62
56
  const configPath = path.join(codeyamDir, 'config.json');
63
57
  const progress = new ProgressReporter();
64
58
  try {
65
- // Create directory structure
59
+ // Create directory structure (no simulation dirs — those are created lazily later)
66
60
  progress.start('Creating .codeyam directory structure...');
67
61
  await fs.mkdir(codeyamDir, { recursive: true });
68
- await fs.mkdir(path.join(codeyamDir, 'results'), { recursive: true });
69
- await fs.mkdir(path.join(codeyamDir, 'captures'), { recursive: true });
70
- await fs.mkdir(path.join(codeyamDir, 'universal-mocks'), {
71
- recursive: true,
72
- });
73
62
  progress.succeed('Created .codeyam directory structure');
74
63
  // Add .codeyam to .gitignore to prevent committing secrets
75
64
  progress.start('Updating .gitignore...');
@@ -80,43 +69,27 @@ const initCommand = {
80
69
  const projectSlug = generateProjectSlug(projectRoot);
81
70
  const packageManager = detectPackageManager(projectRoot);
82
71
  progress.succeed('Detected project configuration');
83
- // Detect webapps in the project
84
- progress.start('Detecting web applications...');
85
- const detectedWebapps = detectWebApps(projectRoot);
86
- if (detectedWebapps.length === 0) {
87
- progress.fail('No web applications found');
88
- error('CodeYam only supports web applications (Next.js, Remix, CRA)');
89
- info('Make sure your project has a package.json with React dependencies');
90
- return;
72
+ // Detect webapps (soft doesn't block init for non-webapp projects)
73
+ let detectedWebapps = [];
74
+ try {
75
+ detectedWebapps = detectWebApps(projectRoot);
91
76
  }
92
- progress.succeed(`Found ${detectedWebapps.length} web application${detectedWebapps.length > 1 ? 's' : ''}`);
93
- // Display detected webapps
94
- for (const webapp of detectedWebapps) {
95
- info(` • ${webapp.path === '.' ? 'Root' : webapp.path}: ${webapp.framework}`);
77
+ catch {
78
+ // Webapp detection is best-effort
79
+ }
80
+ if (detectedWebapps.length > 0) {
81
+ info(`Found ${detectedWebapps.length} web application${detectedWebapps.length > 1 ? 's' : ''}`);
82
+ for (const webapp of detectedWebapps) {
83
+ info(` • ${webapp.path === '.' ? 'Root' : webapp.path}: ${webapp.framework}`);
84
+ }
96
85
  }
97
- // ADMIN: commenting out for now as it's not working very well...
98
- // // Detect files that use environment variables (only in webapp directories)
99
- // progress.start('Scanning for files that use environment variables...');
100
- // const webappPaths = detectedWebapps.map((w) => w.path);
101
- // const detectedEnvVars = await detectEnvironmentVariables(
102
- // projectRoot,
103
- // webappPaths
104
- // );
105
- // if (detectedEnvVars.length > 0) {
106
- // progress.succeed(
107
- // `Found ${detectedEnvVars.length} file${detectedEnvVars.length > 1 ? 's' : ''} in webapp${webappPaths.length > 1 ? 's' : ''} using environment variables`
108
- // );
109
- // info(` These files will need simple mocks during setup`);
110
- // } else {
111
- // progress.succeed('No files in webapps using environment variables');
112
- // }
113
86
  // Create config.json
114
87
  progress.start('Writing configuration file...');
115
88
  const config = {
116
89
  projectSlug,
117
90
  packageManager,
118
91
  webapps: detectedWebapps,
119
- environmentVariables: [], //detectedEnvVars,
92
+ environmentVariables: [],
120
93
  createdAt: new Date().toISOString(),
121
94
  };
122
95
  await fs.writeFile(configPath, JSON.stringify(config, null, 2));
@@ -137,7 +110,7 @@ const initCommand = {
137
110
  }
138
111
  progress.succeed('Environment validated');
139
112
  // Create project in database
140
- progress.start('Validating project and analyzer...');
113
+ progress.start('Setting up project...');
141
114
  try {
142
115
  const { project, created: projectCreated } = await ensureProject({
143
116
  slug: projectSlug,
@@ -147,9 +120,11 @@ const initCommand = {
147
120
  });
148
121
  progress.succeed(projectCreated ? 'Created new project' : 'Loaded existing project');
149
122
  info(`Database ID: ${project?.id}`);
150
- // Install Claude Code skills for guided setup
123
+ // Install Claude Code skills (memory-only by default)
151
124
  progress.start('Installing Claude Code skills...');
152
- const skillsResult = await installClaudeCodeSkills(projectRoot);
125
+ const skillsResult = await installClaudeCodeSkills(projectRoot, {
126
+ mode: 'memory',
127
+ });
153
128
  if (skillsResult.success) {
154
129
  progress.succeed(`Installed skills to ${skillsResult.skillsPath}/`);
155
130
  }
@@ -163,37 +138,14 @@ const initCommand = {
163
138
  if (branchCreated) {
164
139
  progress.succeed('Created _local branch');
165
140
  }
166
- // Create baseline entities in database
167
- progress.start('Analyzing project and creating baseline entities...');
168
- await createBaselineEntities(project, localBranch, projectRoot);
169
- progress.succeed('Baseline entities created');
170
141
  // Update config with branch ID for future reference
171
142
  config.branchId = localBranch.id;
172
143
  await fs.writeFile(configPath, JSON.stringify(config, null, 2));
173
- // Warm analyzer cache for faster first analysis
174
- progress.start('Setting up analyzer...');
175
- await createAnalyzer(projectSlug);
176
- progress.succeed('Analyzer ready for fast analysis');
177
- // Cache project for faster subsequent runs
178
- progress.start('Caching project files...');
179
- await prepareRepo({
180
- absoluteProjectRootPath: getProjectPath(projectSlug),
181
- localProjectPath: projectRoot,
182
- silent: true,
183
- });
184
- progress.succeed('Project cache ready');
185
- // // Install Claude Code skills for guided setup
186
- // progress.start('Installing Claude Code skills...');
187
- // const skillsResult = await installClaudeCodeSkills(projectRoot);
188
- // if (skillsResult.success) {
189
- // progress.succeed(`Installed skills to ${skillsResult.skillsPath}/ (templates from ${skillsResult.templatesDir})`);
190
- // } else {
191
- // progress.warn('Could not install skills');
192
- // info(`Reason: ${skillsResult.error}`);
193
- // }
194
- // Configure auto-approval for CodeYam commands and skills
144
+ // Configure auto-approval for CodeYam commands and skills (memory-only)
195
145
  progress.start('Configuring auto-approval permissions...');
196
- const permissionsConfigured = setupClaudeCodeSettings(projectRoot);
146
+ const permissionsConfigured = setupClaudeCodeSettings(projectRoot, {
147
+ mode: 'memory',
148
+ });
197
149
  if (permissionsConfigured) {
198
150
  progress.succeed('Auto-approval configured for CodeYam commands and skills');
199
151
  }
@@ -201,12 +153,21 @@ const initCommand = {
201
153
  progress.warn('Could not configure auto-approval');
202
154
  info('You may need to approve CodeYam commands manually');
203
155
  }
156
+ // Disable simulations by default — enable via Labs page or `codeyam setup-simulations`
157
+ try {
158
+ await updateProjectMetadata({
159
+ projectSlug,
160
+ metadataUpdate: { labs: { simulations: false } },
161
+ });
162
+ }
163
+ catch {
164
+ // Non-fatal — simulations will default to enabled in the UI if this fails
165
+ }
204
166
  // AI Mode: Default to interactive (Claude Code)
205
- // API key support exists but is not exposed in init flow yet
206
167
  config.aiMode = 'interactive';
207
168
  }
208
169
  catch (err) {
209
- progress.fail('Failed to create project and analyzer');
170
+ progress.fail('Failed to create project');
210
171
  error(err.message);
211
172
  return;
212
173
  }
@@ -219,7 +180,7 @@ const initCommand = {
219
180
  info(`Webapp Path: ${detectedWebapps[0].path}`);
220
181
  }
221
182
  }
222
- else {
183
+ else if (detectedWebapps.length > 1) {
223
184
  info(`Web Applications: ${detectedWebapps.length}`);
224
185
  for (const webapp of detectedWebapps) {
225
186
  info(` • ${webapp.path === '.' ? 'Root' : webapp.path}: ${webapp.framework}`);
@@ -230,17 +191,15 @@ const initCommand = {
230
191
  console.log();
231
192
  success('✨ CodeYam initialization complete!');
232
193
  console.log();
233
- console.log('📋 Next step: Complete setup with Claude Code');
194
+ console.log('📋 Next step: Set up Claude Rules for your codebase');
234
195
  console.log();
235
196
  console.log(' 1. Open this project in Claude Code');
236
- console.log(' 2. Say to Claude:');
197
+ console.log(' 2. Run:');
237
198
  console.log();
238
- console.log(' "Claude, can you setup CodeYam?"');
199
+ console.log(' /codeyam:memory');
239
200
  console.log();
240
- console.log(' Claude will guide you through:');
241
- console.log(' Detecting your project start command');
242
- console.log(' • Finding dependencies that need mocking');
243
- console.log(' • Configuring CodeYam to run your project');
201
+ console.log(' This will analyze your codebase and generate');
202
+ console.log(' Claude Rules so Claude understands your project.');
244
203
  console.log();
245
204
  console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
246
205
  console.log();
@@ -248,7 +207,7 @@ const initCommand = {
248
207
  console.log(' • Run "codeyam" to start the dashboard');
249
208
  console.log(' • Run "codeyam --help" for all commands');
250
209
  console.log(' • Run "codeyam stop" to stop the background server');
251
- console.log(' • Edit mock files in .codeyam/universal-mocks/');
210
+ console.log(' • Run /codeyam:setup in Claude Code to enable visual simulations');
252
211
  console.log();
253
212
  }
254
213
  catch (err) {
@@ -288,107 +247,6 @@ function detectPackageManager(projectPath) {
288
247
  return 'npm';
289
248
  return 'npm'; // default fallback
290
249
  }
291
- /**
292
- * Create baseline entities for a project during initialization
293
- * This populates the database so that subsequent status/analyze commands
294
- * only show actual changes, not every file as "new"
295
- */
296
- async function createBaselineEntities(project, branch, projectRootPath) {
297
- // Load project with files to populate project.files
298
- if (!project.files) {
299
- project.files = await loadFiles({ projectId: project.id });
300
- }
301
- // Load existing entities to preserve version tracking
302
- const existingEntities = await loadEntities({
303
- projectId: project.id,
304
- branchId: branch.id,
305
- });
306
- // Create a map of existing entities by (filePath, name)
307
- const existingEntityMap = new Map();
308
- if (existingEntities) {
309
- for (const entity of existingEntities) {
310
- const key = `${entity.filePath}:${entity.name}`;
311
- if (!existingEntityMap.has(key)) {
312
- existingEntityMap.set(key, new Map());
313
- }
314
- existingEntityMap.get(key).set(entity.sha, entity);
315
- }
316
- }
317
- // Load analyses for existing entities
318
- const existingAnalysesMap = new Map();
319
- if (existingEntities && existingEntities.length > 0) {
320
- const analyses = await loadAnalyses({
321
- entityShas: existingEntities.map((e) => e.sha),
322
- });
323
- if (analyses) {
324
- for (const analysis of analyses) {
325
- if (!existingAnalysesMap.has(analysis.entitySha)) {
326
- existingAnalysesMap.set(analysis.entitySha, []);
327
- }
328
- existingAnalysesMap.get(analysis.entitySha).push(analysis);
329
- }
330
- }
331
- }
332
- // Initialize ProjectAnalyzer and populate project.files with entities
333
- const projectAnalyzer = await ProjectAnalyzer.from({
334
- project,
335
- dirPath: projectRootPath,
336
- });
337
- await getFilesWithEntitiesFromRepo({
338
- project: project,
339
- projectAnalyzer,
340
- silent: true,
341
- });
342
- // Now create and persist all entities to database
343
- const { entityMap } = await createEntitiesAndSortFiles({
344
- project,
345
- branch,
346
- projectAnalyzer,
347
- });
348
- // Populate project.files with the created entities so populateEntityMetadata can process them
349
- for (const file of project.files) {
350
- file.entities = [];
351
- if (entityMap[file.path]) {
352
- // Deduplicate entities by SHA (aliases like 'default' can point to same entity)
353
- const entitiesBySha = new Map();
354
- Object.values(entityMap[file.path]).forEach((entity) => {
355
- entitiesBySha.set(entity.sha, entity);
356
- });
357
- file.entities = Array.from(entitiesBySha.values());
358
- // Preserve version tracking for each entity
359
- for (const entity of file.entities) {
360
- const key = `${entity.filePath}:${entity.name}`;
361
- const existingVersions = existingEntityMap.get(key);
362
- if (existingVersions) {
363
- // Check if this exact SHA already exists
364
- const exactMatch = existingVersions.get(entity.sha);
365
- if (exactMatch) {
366
- // Exact match - preserve all metadata and analyses
367
- entity.metadata = exactMatch.metadata;
368
- entity.analyses = existingAnalysesMap.get(exactMatch.sha) || [];
369
- continue;
370
- }
371
- // Different SHA - check if any previous version has analyses
372
- const versionWithAnalyses = Array.from(existingVersions.values()).find((v) => existingAnalysesMap.has(v.sha));
373
- if (versionWithAnalyses) {
374
- // Set previousVersionWithAnalyses to track where analyses came from
375
- entity.metadata = entity.metadata || {};
376
- entity.metadata.previousVersionWithAnalyses =
377
- versionWithAnalyses.sha;
378
- entity.metadata.previousCommittedSha =
379
- versionWithAnalyses.metadata?.isUncommitted === false
380
- ? versionWithAnalyses.sha
381
- : versionWithAnalyses.metadata?.previousCommittedSha;
382
- // Inherit analyses for display
383
- entity.analyses =
384
- existingAnalysesMap.get(versionWithAnalyses.sha) || [];
385
- }
386
- }
387
- }
388
- }
389
- }
390
- await populateEntityMetadata(project.files, projectRootPath, projectAnalyzer);
391
- }
392
250
  /**
393
251
  * Ensure a given entry exists in the project's .gitignore file
394
252
  * Creates the .gitignore if it doesn't exist
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,264 @@
1
+ import path from 'path';
2
+ import fs from 'fs/promises';
3
+ import { minimatch } from 'minimatch';
4
+ import { error, header, info, success, warn } from "../utils/progress.js";
5
+ import { loadAllRules, getRulesForPath, getAllStaleRules, loadRuleState, touchTimestamps, } from "../utils/rules/index.js";
6
+ /**
7
+ * Find project root by looking for .claude/rules directory
8
+ */
9
+ async function findProjectRoot() {
10
+ let dir = process.cwd();
11
+ while (dir !== path.parse(dir).root) {
12
+ try {
13
+ await fs.access(path.join(dir, '.claude', 'rules'));
14
+ return dir;
15
+ }
16
+ catch {
17
+ dir = path.dirname(dir);
18
+ }
19
+ }
20
+ return null;
21
+ }
22
+ /**
23
+ * Display help menu when no subcommand is provided
24
+ */
25
+ function showHelp() {
26
+ header('CodeYam Memory Management');
27
+ console.log('Manage Claude Rules that provide context for this codebase.\n');
28
+ console.log('Available commands:');
29
+ console.log(' codeyam memory status Show stale rules that need updating');
30
+ console.log(' codeyam memory path <p> Show rules matching a specific path');
31
+ console.log(' codeyam memory touch Update timestamps on all stale rules');
32
+ console.log(' codeyam memory audit List paths with most rule coverage\n');
33
+ info('Rules are stored in .claude/rules/ with timestamps in .claude/codeyam-rule-state.json');
34
+ info('that indicate when they were last reviewed. A rule is "stale" when files');
35
+ info('it applies to have been modified more recently than the rule timestamp.');
36
+ info('');
37
+ info('Run `codeyam` to launch the dashboard and manage your rules interactively.');
38
+ }
39
+ /**
40
+ * Handle the 'status' subcommand - show stale rules
41
+ */
42
+ async function handleStatus(projectRoot, rulesDir) {
43
+ header('Memory Status');
44
+ const rules = await loadAllRules(rulesDir);
45
+ if (rules.length === 0) {
46
+ warn('No rules found in .claude/rules/');
47
+ return;
48
+ }
49
+ info(`Checking ${rules.length} rule(s) for staleness...\n`);
50
+ const ruleState = await loadRuleState(projectRoot);
51
+ const results = await getAllStaleRules(rules, projectRoot, ruleState);
52
+ const staleRules = results.filter((r) => r.isStale);
53
+ if (staleRules.length === 0) {
54
+ success('All rules are up to date!');
55
+ return;
56
+ }
57
+ warn(`Found ${staleRules.length} stale rule(s):\n`);
58
+ for (const result of staleRules) {
59
+ console.log(` ${result.rule.filePath}`);
60
+ if (result.ruleTimestamp) {
61
+ console.log(` Rule timestamp: ${result.ruleTimestamp.toISOString()}`);
62
+ }
63
+ else {
64
+ console.log(' Rule timestamp: (missing)');
65
+ }
66
+ if (result.newestFilePath && result.newestFileModified) {
67
+ console.log(` Newest file: ${result.newestFilePath}`);
68
+ console.log(` File modified: ${result.newestFileModified.toISOString()}`);
69
+ }
70
+ console.log();
71
+ }
72
+ info('Please review these rules carefully with the recent changes made to the code in mind.');
73
+ info('');
74
+ info('Run "codeyam memory touch" to update timestamps on all stale rules.');
75
+ }
76
+ /**
77
+ * Handle the 'path' subcommand - show rules matching a path
78
+ */
79
+ async function handlePath(rulesDir, targetPath) {
80
+ header(`Rules for: ${targetPath}`);
81
+ const rules = await loadAllRules(rulesDir);
82
+ if (rules.length === 0) {
83
+ warn('No rules found in .claude/rules/');
84
+ return;
85
+ }
86
+ const matchingRules = getRulesForPath(targetPath, rules);
87
+ if (matchingRules.length === 0) {
88
+ info(`No rules match path: ${targetPath}`);
89
+ return;
90
+ }
91
+ success(`Found ${matchingRules.length} matching rule(s):\n`);
92
+ for (const rule of matchingRules) {
93
+ console.log(` ${rule.filePath}`);
94
+ console.log(` Patterns: ${rule.frontmatter.paths?.join(', ') || '(none)'}`);
95
+ // Show first 150 chars of body as preview
96
+ const preview = rule.body.trim().substring(0, 150).replace(/\n/g, ' ');
97
+ console.log(` Preview: ${preview}${preview.length >= 150 ? '...' : ''}`);
98
+ console.log();
99
+ }
100
+ }
101
+ /**
102
+ * Handle the 'touch' subcommand - update timestamps on stale rules
103
+ */
104
+ async function handleTouch(projectRoot, rulesDir) {
105
+ header('Updating Stale Rules');
106
+ const rules = await loadAllRules(rulesDir);
107
+ if (rules.length === 0) {
108
+ warn('No rules found in .claude/rules/');
109
+ return;
110
+ }
111
+ info(`Checking ${rules.length} rule(s) for staleness...\n`);
112
+ const ruleState = await loadRuleState(projectRoot);
113
+ const results = await getAllStaleRules(rules, projectRoot, ruleState);
114
+ const staleRules = results.filter((r) => r.isStale);
115
+ if (staleRules.length === 0) {
116
+ success('All rules are already up to date!');
117
+ return;
118
+ }
119
+ const staleFilePaths = staleRules.map((r) => r.rule.filePath);
120
+ await touchTimestamps(projectRoot, staleFilePaths);
121
+ for (const result of staleRules) {
122
+ info(`Updated: ${result.rule.filePath}`);
123
+ }
124
+ console.log();
125
+ success(`Updated ${staleFilePaths.length} rule(s) to ${new Date().toISOString()}`);
126
+ }
127
+ /**
128
+ * Find all source files in a project
129
+ */
130
+ async function findSourceFiles(projectRoot) {
131
+ const sourceFiles = [];
132
+ const sourceExtensions = ['.ts', '.tsx', '.js', '.jsx', '.vue', '.svelte'];
133
+ async function walkDir(dir, relativePath) {
134
+ try {
135
+ const entries = await fs.readdir(dir, { withFileTypes: true });
136
+ for (const entry of entries) {
137
+ const fullPath = path.join(dir, entry.name);
138
+ const relPath = relativePath
139
+ ? `${relativePath}/${entry.name}`
140
+ : entry.name;
141
+ // Skip common non-source directories
142
+ if (entry.isDirectory() &&
143
+ (entry.name === 'node_modules' ||
144
+ entry.name === '.git' ||
145
+ entry.name === 'dist' ||
146
+ entry.name === '.codeyam' ||
147
+ entry.name === '.claude' ||
148
+ entry.name === 'build' ||
149
+ entry.name === 'coverage')) {
150
+ continue;
151
+ }
152
+ if (entry.isDirectory()) {
153
+ await walkDir(fullPath, relPath);
154
+ }
155
+ else if (entry.isFile()) {
156
+ const ext = path.extname(entry.name);
157
+ if (sourceExtensions.includes(ext)) {
158
+ sourceFiles.push(relPath);
159
+ }
160
+ }
161
+ }
162
+ }
163
+ catch {
164
+ // Directory not readable, skip
165
+ }
166
+ }
167
+ await walkDir(projectRoot, '');
168
+ return sourceFiles;
169
+ }
170
+ /**
171
+ * Check if a file matches any of a rule's patterns
172
+ */
173
+ function doesFileMatchRule(filePath, rule) {
174
+ if (!rule.frontmatter.paths || rule.frontmatter.paths.length === 0) {
175
+ return false;
176
+ }
177
+ return rule.frontmatter.paths.some((pattern) => minimatch(filePath, pattern, { matchBase: true }));
178
+ }
179
+ /**
180
+ * Handle the 'audit' subcommand - show paths with most rule coverage
181
+ */
182
+ async function handleAudit(projectRoot, rulesDir) {
183
+ header('Rule Coverage Audit');
184
+ const rules = await loadAllRules(rulesDir);
185
+ if (rules.length === 0) {
186
+ warn('No rules found in .claude/rules/');
187
+ return;
188
+ }
189
+ info('Finding source files and calculating rule coverage...\n');
190
+ const sourceFiles = await findSourceFiles(projectRoot);
191
+ const coverage = [];
192
+ for (const filePath of sourceFiles) {
193
+ const matchingRules = rules.filter((rule) => doesFileMatchRule(filePath, rule));
194
+ if (matchingRules.length > 0) {
195
+ const totalTextLength = matchingRules.reduce((sum, rule) => sum + rule.body.length, 0);
196
+ coverage.push({ filePath, matchingRules, totalTextLength });
197
+ }
198
+ }
199
+ if (coverage.length === 0) {
200
+ info('No source files have rule coverage.');
201
+ return;
202
+ }
203
+ // Sort by total text length descending
204
+ coverage.sort((a, b) => b.totalTextLength - a.totalTextLength);
205
+ // Show top 10
206
+ const top10 = coverage.slice(0, 10);
207
+ success(`Top 10 paths by rule coverage (${coverage.length} total files with coverage):\n`);
208
+ for (let i = 0; i < top10.length; i++) {
209
+ const entry = top10[i];
210
+ console.log(`${i + 1}. ${entry.filePath}`);
211
+ console.log(` ${entry.matchingRules.length} rule(s), ${entry.totalTextLength.toLocaleString()} chars of guidance`);
212
+ console.log(` Rules: ${entry.matchingRules.map((r) => r.filePath).join(', ')}`);
213
+ console.log();
214
+ }
215
+ console.log('Run `codeyam` to launch the dashboard and manage your rules interactively.');
216
+ }
217
+ const memoryCommand = {
218
+ command: 'memory [subcommand] [path]',
219
+ describe: 'Manage Claude Rules memory',
220
+ builder: (yargs) => {
221
+ return yargs
222
+ .positional('subcommand', {
223
+ type: 'string',
224
+ choices: ['status', 'path', 'touch', 'audit'],
225
+ describe: 'Subcommand to run',
226
+ })
227
+ .positional('path', {
228
+ type: 'string',
229
+ describe: 'Path for the "path" subcommand',
230
+ });
231
+ },
232
+ handler: async (argv) => {
233
+ const projectRoot = await findProjectRoot();
234
+ if (!projectRoot) {
235
+ error('Not in a project with Claude rules. Expected .claude/rules/ directory.');
236
+ process.exit(1);
237
+ }
238
+ const rulesDir = path.join(projectRoot, '.claude', 'rules');
239
+ switch (argv.subcommand) {
240
+ case 'status':
241
+ await handleStatus(projectRoot, rulesDir);
242
+ break;
243
+ case 'path':
244
+ if (!argv.path) {
245
+ error('The "path" subcommand requires a path argument.');
246
+ error('Usage: codeyam memory path <file-path>');
247
+ process.exit(1);
248
+ }
249
+ await handlePath(rulesDir, argv.path);
250
+ break;
251
+ case 'touch':
252
+ await handleTouch(projectRoot, rulesDir);
253
+ break;
254
+ case 'audit':
255
+ await handleAudit(projectRoot, rulesDir);
256
+ break;
257
+ default:
258
+ showHelp();
259
+ break;
260
+ }
261
+ },
262
+ };
263
+ export default memoryCommand;
264
+ //# sourceMappingURL=memory.js.map