@codeyam/codeyam-cli 0.1.0-staging.036391e → 0.1.0-staging.07d8f7b
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.
- package/analyzer-template/.build-info.json +7 -7
- package/analyzer-template/log.txt +3 -3
- package/analyzer-template/package.json +14 -14
- package/analyzer-template/packages/ai/index.ts +1 -0
- package/analyzer-template/packages/ai/package.json +1 -1
- package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +14 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +34 -3
- package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +101 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +6 -0
- package/analyzer-template/packages/ai/src/lib/completionCall.ts +114 -113
- package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +435 -13
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.ts +62 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +70 -19
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.ts +35 -0
- package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +40 -13
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +110 -7
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +134 -2
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +359 -142
- package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +24 -4
- package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +6 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/getNodeType.ts +1 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +18 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +9 -1
- package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +0 -6
- package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +12 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +65 -28
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +50 -25
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +83 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +176 -80
- package/analyzer-template/packages/aws/package.json +10 -10
- package/analyzer-template/packages/database/index.ts +1 -0
- package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/kysely/db.ts +8 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +1 -1
- package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +62 -0
- package/analyzer-template/packages/database/src/lib/loadCommits.ts +31 -20
- package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +0 -5
- package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
- package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +151 -135
- package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatus.ts +58 -42
- package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.ts +81 -65
- package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +29 -1
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +33 -5
- package/analyzer-template/packages/github/dist/database/index.d.ts +1 -0
- package/analyzer-template/packages/github/dist/database/index.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/index.js +1 -0
- package/analyzer-template/packages/github/dist/database/index.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +5 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +20 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +45 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +5 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +23 -13
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +100 -89
- package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js +41 -30
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +10 -0
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
- package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +1 -0
- package/analyzer-template/packages/types/src/types/Scenario.ts +10 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +10 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +98 -3
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
- package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +121 -3
- package/analyzer-template/playwright/captureFromUrl.ts +89 -82
- package/analyzer-template/project/constructMockCode.ts +170 -50
- package/analyzer-template/project/orchestrateCapture.ts +4 -1
- package/analyzer-template/project/reconcileMockDataKeys.ts +19 -14
- package/analyzer-template/project/start.ts +3 -0
- package/analyzer-template/project/startScenarioCapture.ts +9 -0
- package/analyzer-template/project/writeClientLogRoute.ts +125 -0
- package/analyzer-template/project/writeMockDataTsx.ts +17 -0
- package/analyzer-template/project/writeScenarioComponents.ts +110 -17
- package/analyzer-template/tsconfig.json +13 -1
- package/background/src/lib/local/createLocalAnalyzer.js +1 -1
- package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
- package/background/src/lib/virtualized/project/constructMockCode.js +145 -41
- package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture.js +4 -1
- package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +17 -11
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
- package/background/src/lib/virtualized/project/start.js +2 -0
- package/background/src/lib/virtualized/project/start.js.map +1 -1
- package/background/src/lib/virtualized/project/startScenarioCapture.js +5 -0
- package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
- package/background/src/lib/virtualized/project/writeClientLogRoute.js +110 -0
- package/background/src/lib/virtualized/project/writeClientLogRoute.js.map +1 -0
- package/background/src/lib/virtualized/project/writeMockDataTsx.js +12 -0
- package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
- package/background/src/lib/virtualized/project/writeScenarioComponents.js +83 -12
- package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
- package/codeyam-cli/scripts/apply-setup.js +209 -12
- package/codeyam-cli/scripts/apply-setup.js.map +1 -1
- package/codeyam-cli/src/cli.js +33 -24
- package/codeyam-cli/src/cli.js.map +1 -1
- package/codeyam-cli/src/codeyam-cli.js +18 -2
- package/codeyam-cli/src/codeyam-cli.js.map +1 -1
- package/codeyam-cli/src/commands/analyze.js +21 -9
- package/codeyam-cli/src/commands/analyze.js.map +1 -1
- package/codeyam-cli/src/commands/baseline.js +2 -0
- package/codeyam-cli/src/commands/baseline.js.map +1 -1
- package/codeyam-cli/src/commands/debug.js +2 -0
- package/codeyam-cli/src/commands/debug.js.map +1 -1
- package/codeyam-cli/src/commands/default.js +87 -21
- package/codeyam-cli/src/commands/default.js.map +1 -1
- package/codeyam-cli/src/commands/editor.js +697 -0
- package/codeyam-cli/src/commands/editor.js.map +1 -0
- package/codeyam-cli/src/commands/init.js +75 -259
- package/codeyam-cli/src/commands/init.js.map +1 -1
- package/codeyam-cli/src/commands/memory.js +95 -81
- package/codeyam-cli/src/commands/memory.js.map +1 -1
- package/codeyam-cli/src/commands/recapture.js +2 -0
- package/codeyam-cli/src/commands/recapture.js.map +1 -1
- package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
- package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
- package/codeyam-cli/src/commands/setup-simulations.js +284 -0
- package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
- package/codeyam-cli/src/commands/test-startup.js +2 -0
- package/codeyam-cli/src/commands/test-startup.js.map +1 -1
- package/codeyam-cli/src/commands/verify.js +14 -2
- package/codeyam-cli/src/commands/verify.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +185 -0
- package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js +9 -0
- package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +154 -86
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
- package/codeyam-cli/src/utils/analyzer.js +7 -0
- package/codeyam-cli/src/utils/analyzer.js.map +1 -1
- package/codeyam-cli/src/utils/backgroundServer.js +109 -26
- package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/utils/devModeEvents.js +40 -0
- package/codeyam-cli/src/utils/devModeEvents.js.map +1 -0
- package/codeyam-cli/src/utils/fileMetadata.js +5 -0
- package/codeyam-cli/src/utils/fileMetadata.js.map +1 -1
- package/codeyam-cli/src/utils/fileWatcher.js +25 -9
- package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
- package/codeyam-cli/src/utils/generateReport.js +2 -2
- package/codeyam-cli/src/utils/git.js +52 -0
- package/codeyam-cli/src/utils/git.js.map +1 -1
- package/codeyam-cli/src/utils/install-skills.js +74 -63
- package/codeyam-cli/src/utils/install-skills.js.map +1 -1
- package/codeyam-cli/src/utils/interactiveSyncWatcher.js +126 -0
- package/codeyam-cli/src/utils/interactiveSyncWatcher.js.map +1 -0
- package/codeyam-cli/src/utils/labsAutoCheck.js +0 -29
- package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -1
- package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
- package/codeyam-cli/src/utils/npmVersionCheck.js.map +1 -0
- package/codeyam-cli/src/utils/pathIgnoring.js +19 -7
- package/codeyam-cli/src/utils/pathIgnoring.js.map +1 -1
- package/codeyam-cli/src/utils/progress.js +7 -0
- package/codeyam-cli/src/utils/progress.js.map +1 -1
- package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js +11 -11
- package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js.map +1 -1
- package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +22 -0
- package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
- package/codeyam-cli/src/utils/queue/heartbeat.js +13 -5
- package/codeyam-cli/src/utils/queue/heartbeat.js.map +1 -1
- package/codeyam-cli/src/utils/queue/job.js +70 -1
- package/codeyam-cli/src/utils/queue/job.js.map +1 -1
- package/codeyam-cli/src/utils/queue/manager.js +7 -6
- package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
- package/codeyam-cli/src/utils/requireSimulations.js +10 -0
- package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +7 -8
- package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -1
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +1 -1
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -1
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +0 -1
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -1
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +97 -6
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -1
- package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +4 -6
- package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -1
- package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +3 -3
- package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -1
- package/codeyam-cli/src/utils/rules/__tests__/parser.test.js +83 -0
- package/codeyam-cli/src/utils/rules/__tests__/parser.test.js.map +1 -0
- package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js +118 -0
- package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js.map +1 -0
- package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js +72 -0
- package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js.map +1 -0
- package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +23 -23
- package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -1
- package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js +76 -0
- package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js.map +1 -0
- package/codeyam-cli/src/utils/rules/index.js +1 -0
- package/codeyam-cli/src/utils/rules/index.js.map +1 -1
- package/codeyam-cli/src/utils/rules/parser.js +19 -4
- package/codeyam-cli/src/utils/rules/parser.js.map +1 -1
- package/codeyam-cli/src/utils/rules/pathMatcher.js +34 -3
- package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -1
- package/codeyam-cli/src/utils/rules/rulePlacement.js +65 -0
- package/codeyam-cli/src/utils/rules/rulePlacement.js.map +1 -0
- package/codeyam-cli/src/utils/rules/ruleState.js +10 -10
- package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -1
- package/codeyam-cli/src/utils/rules/sourceFiles.js +43 -0
- package/codeyam-cli/src/utils/rules/sourceFiles.js.map +1 -0
- package/codeyam-cli/src/utils/rules/staleness.js +6 -6
- package/codeyam-cli/src/utils/rules/staleness.js.map +1 -1
- package/codeyam-cli/src/utils/serverState.js +64 -12
- package/codeyam-cli/src/utils/serverState.js.map +1 -1
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +61 -43
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
- package/codeyam-cli/src/utils/simulationGateMiddleware.js +159 -0
- package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -0
- package/codeyam-cli/src/utils/syncMocksMiddleware.js +5 -24
- package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
- package/codeyam-cli/src/utils/testRunner.js +158 -0
- package/codeyam-cli/src/utils/testRunner.js.map +1 -0
- package/codeyam-cli/src/utils/transcriptPruning.js +67 -0
- package/codeyam-cli/src/utils/transcriptPruning.js.map +1 -0
- package/codeyam-cli/src/utils/versionInfo.js +46 -0
- package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
- package/codeyam-cli/src/utils/webappDetection.js +14 -2
- package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
- package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js +66 -0
- package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
- package/codeyam-cli/src/webserver/app/lib/database.js +55 -30
- package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
- package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
- package/codeyam-cli/src/webserver/backgroundServer.js +144 -25
- package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/webserver/bootstrap.js +11 -0
- package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{CopyButton-CA3JxPb7.js → CopyButton-DmJveP3T.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-B86KKU7e.js → EntityItem-C76mRRiF.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-B5ctlSYt.js → EntityTypeBadge-g3saevPb.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-BqY8gDAW.js → EntityTypeIcon-CobE682z.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-Bu6c6aDe.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-BDhPilK7.js → InteractivePreview-DYFW3lDD.js} +3 -3
- package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-VeqEBv9v.js → LibraryFunctionPreview-DLeucoVX.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-Bs7Nn1Jr.js → LoadingDots-BU_OAEMP.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-Bm3PmcCz.js → LogViewer-ceAyBX-H.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-C6PKeMYR.js → ReportIssueModal-djPLI-WV.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-Gq3Ocjo6.js → SafeScreenshot-BED4B6sP.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-BNLaXBHR.js → ScenarioViewer-B76aig_2.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/Spinner-Bb5uFQ5V.js +34 -0
- package/codeyam-cli/src/webserver/build/client/assets/Terminal-BaIiqg_w.js +41 -0
- package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-CiwXDxLh.js → TruncatedFilePath-C8OKAR5x.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{_index-B3TDXxnk.js → _index-C96V0n15.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-BtBFH820.js → activity.(_tab)-BpKzcsJz.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/addon-fit-CUXOrorO.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/addon-web-links-Duc5hnl7.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-D9hemwl6.js +22 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-capture-scenario-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-client-errors-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-commit-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-dev-server-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-entity-status-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-entry-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-image._-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-screenshot-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-update-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-refresh-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-register-scenario-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-data-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-image._-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-switch-scenario-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-test-results-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.rule-path-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{book-open-PttOB2SF.js → book-open-D_nMCFmP.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-TJp6ofnp.js → chevron-down-BH2h1Ea2.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{chunk-JZWAC4HX-JE9ZIoBl.js → chunk-JZWAC4HX-C4pqxYJB.js} +9 -9
- package/codeyam-cli/src/webserver/build/client/assets/{circle-check-CXhHQYrI.js → circle-check-DyIKORY6.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{copy-6y9ALfGT.js → copy-NDbZjXao.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-Ca9fAY46.js → createLucideIcon-CMT1jU2q.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BiM6z3Do.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/editor-Ba0jejiv.js +7 -0
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-n38keI1k.js → entity._sha._-CrjR3zZW.js} +10 -10
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-DloHYjtt.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-C28BiQzt.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-p9hhkjJM.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-38yPijoD.js → entity._sha_.edit._scenarioId-BMvVHNXU.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/{entry.client-BSHEfydn.js → entry.client-DTvKq3TY.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DCPhhSMo.js → fileTableUtils-cPo8LiG3.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{files-0N0YJQv7.js → files-DO4CZ16O.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{git-DXnyr8uP.js → git-CFCTYk9I.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/globals-BH6uYxPM.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{index-ChN9-fAY.js → index-10oVnAAH.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{index-CcsFv748.js → index-BcvgDzbZ.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/labs-Zk7ryIM1.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-CTqLEAGU.js → loader-circle-BAXYRVEO.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-dcea65f8.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/memory-FweZHj5U.js +93 -0
- package/codeyam-cli/src/webserver/build/client/assets/{pause-D6vreykR.js → pause-DTAcYxBt.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/root-Dzn8nIkU.js +67 -0
- package/codeyam-cli/src/webserver/build/client/assets/{search-B8VUL8nl.js → search-fKo7v0Zo.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/settings-DfuTtcJP.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{simulations-CPoAg7Zo.js → simulations-B3aOzpCZ.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{terminal-BrCP7uQo.js → terminal-BG4heKCG.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-BZz2NjYa.js → triangle-alert-DtSmdtM4.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useCustomSizes-DNwUduNu.js → useCustomSizes-ByhSyh0W.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-C14nCb1q.js +2 -0
- package/codeyam-cli/src/webserver/build/client/assets/{useReportContext-CpZgwliL.js → useReportContext-O-jkvSPx.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useToast-Bv9JFvUO.js → useToast-9FIWuYfK.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/xterm-DMSzMhqy.js +9 -0
- package/codeyam-cli/src/webserver/build/server/assets/index-mE6GlU_8.js +1 -0
- package/codeyam-cli/src/webserver/build/server/assets/server-build-BApEk7IO.js +362 -0
- package/codeyam-cli/src/webserver/build/server/index.js +1 -1
- package/codeyam-cli/src/webserver/build-info.json +5 -5
- package/codeyam-cli/src/webserver/devServer.js +39 -5
- package/codeyam-cli/src/webserver/devServer.js.map +1 -1
- package/codeyam-cli/src/webserver/editorProxy.js +272 -0
- package/codeyam-cli/src/webserver/editorProxy.js.map +1 -0
- package/codeyam-cli/src/webserver/scripts/journalCapture.ts +121 -0
- package/codeyam-cli/src/webserver/server.js +177 -1
- package/codeyam-cli/src/webserver/server.js.map +1 -1
- package/codeyam-cli/src/webserver/terminalServer.js +606 -0
- package/codeyam-cli/src/webserver/terminalServer.js.map +1 -0
- package/codeyam-cli/templates/{codeyam:debug.md → codeyam-debug.md} +1 -1
- package/codeyam-cli/templates/codeyam-dev-mode.md +237 -0
- package/codeyam-cli/templates/codeyam-diagnose.md +481 -0
- package/codeyam-cli/templates/codeyam-editor-claude.md +68 -0
- package/codeyam-cli/templates/codeyam-editor.md +67 -0
- package/codeyam-cli/templates/codeyam-memory-hook.sh +14 -14
- package/codeyam-cli/templates/{codeyam:memory.md → codeyam-memory.md} +16 -24
- package/codeyam-cli/templates/{codeyam:new-rule.md → codeyam-new-rule.md} +1 -3
- package/codeyam-cli/templates/{codeyam:setup.md → codeyam-setup.md} +13 -1
- package/codeyam-cli/templates/{codeyam:sim.md → codeyam-sim.md} +1 -1
- package/codeyam-cli/templates/{codeyam:test.md → codeyam-test.md} +1 -1
- package/codeyam-cli/templates/{codeyam:verify.md → codeyam-verify.md} +1 -1
- package/codeyam-cli/templates/editor-step-hook.py +143 -0
- package/codeyam-cli/templates/hooks/staleness-check.sh +43 -0
- package/codeyam-cli/templates/isolation-route/next-app.tsx.template +80 -0
- package/codeyam-cli/templates/isolation-route/next-pages.tsx.template +79 -0
- package/codeyam-cli/templates/isolation-route/vite-react.tsx.template +78 -0
- package/codeyam-cli/templates/msw/browser-setup.ts.template +47 -0
- package/codeyam-cli/templates/msw/handler-router.ts.template +47 -0
- package/codeyam-cli/templates/msw/server-setup.ts.template +52 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/PRISMA_SETUP.md +84 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/app/api/todos/route.ts +17 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/app/globals.css +26 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/app/layout.tsx +34 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/app/lib/prisma.ts +19 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/app/page.tsx +10 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/eslint.config.mjs +11 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/next.config.ts +14 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +35 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/postcss.config.mjs +7 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/schema.prisma +27 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/seed.ts +37 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma.config.ts +12 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/tsconfig.json +34 -0
- package/codeyam-cli/templates/prompts/conversation-guidance.txt +44 -0
- package/codeyam-cli/templates/prompts/conversation-prompt.txt +28 -0
- package/codeyam-cli/templates/prompts/interruption-prompt.txt +31 -0
- package/codeyam-cli/templates/prompts/stale-rules-prompt.txt +24 -0
- package/codeyam-cli/templates/rule-notification-hook.py +44 -17
- package/codeyam-cli/templates/rule-reflection-hook.py +88 -31
- package/codeyam-cli/templates/rules-instructions.md +45 -90
- package/package.json +15 -13
- package/packages/ai/index.js +1 -1
- package/packages/ai/index.js.map +1 -1
- package/packages/ai/src/lib/analyzeScope.js +14 -0
- package/packages/ai/src/lib/analyzeScope.js.map +1 -1
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +22 -4
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
- package/packages/ai/src/lib/astScopes/processExpression.js +78 -1
- package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
- package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
- package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
- package/packages/ai/src/lib/completionCall.js +10 -7
- package/packages/ai/src/lib/completionCall.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +362 -10
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js +54 -0
- package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +59 -17
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js +34 -0
- package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js.map +1 -0
- package/packages/ai/src/lib/dataStructureChunking.js +30 -11
- package/packages/ai/src/lib/dataStructureChunking.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarioData.js +79 -5
- package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
- package/packages/ai/src/lib/generateExecutionFlows.js +97 -2
- package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +242 -81
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -1
- package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
- package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
- package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +17 -2
- package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
- package/packages/analyze/src/lib/ProjectAnalyzer.js +3 -0
- package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
- package/packages/analyze/src/lib/asts/nodes/getNodeType.js +1 -0
- package/packages/analyze/src/lib/asts/nodes/getNodeType.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +11 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +8 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +0 -5
- package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +9 -0
- package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +54 -27
- package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +42 -13
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +65 -0
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +141 -71
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
- package/packages/database/index.js +1 -0
- package/packages/database/index.js.map +1 -1
- package/packages/database/src/lib/analysisBranchToDb.js +1 -1
- package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
- package/packages/database/src/lib/analysisToDb.js +1 -1
- package/packages/database/src/lib/analysisToDb.js.map +1 -1
- package/packages/database/src/lib/branchToDb.js +1 -1
- package/packages/database/src/lib/branchToDb.js.map +1 -1
- package/packages/database/src/lib/commitBranchToDb.js +1 -1
- package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
- package/packages/database/src/lib/commitToDb.js +1 -1
- package/packages/database/src/lib/commitToDb.js.map +1 -1
- package/packages/database/src/lib/fileToDb.js +1 -1
- package/packages/database/src/lib/fileToDb.js.map +1 -1
- package/packages/database/src/lib/kysely/db.js +5 -0
- package/packages/database/src/lib/kysely/db.js.map +1 -1
- package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +45 -0
- package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
- package/packages/database/src/lib/loadCommits.js +23 -13
- package/packages/database/src/lib/loadCommits.js.map +1 -1
- package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
- package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
- package/packages/database/src/lib/projectToDb.js +1 -1
- package/packages/database/src/lib/projectToDb.js.map +1 -1
- package/packages/database/src/lib/saveFiles.js +1 -1
- package/packages/database/src/lib/saveFiles.js.map +1 -1
- package/packages/database/src/lib/scenarioToDb.js +1 -1
- package/packages/database/src/lib/scenarioToDb.js.map +1 -1
- package/packages/database/src/lib/updateCommitMetadata.js +100 -89
- package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
- package/packages/database/src/lib/updateFreshAnalysisStatus.js +41 -30
- package/packages/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
- package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
- package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
- package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
- package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
- package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
- package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
- package/packages/utils/src/lib/fs/rsyncCopy.js +98 -3
- package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
- package/scripts/finalize-analyzer.cjs +8 -76
- package/codeyam-cli/src/commands/detect-universal-mocks.js +0 -118
- package/codeyam-cli/src/commands/detect-universal-mocks.js.map +0 -1
- package/codeyam-cli/src/commands/list.js +0 -31
- package/codeyam-cli/src/commands/list.js.map +0 -1
- package/codeyam-cli/src/commands/webapp-info.js +0 -146
- package/codeyam-cli/src/commands/webapp-info.js.map +0 -1
- package/codeyam-cli/src/utils/universal-mocks.js +0 -152
- package/codeyam-cli/src/utils/universal-mocks.js.map +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-ClaLpuOo.js +0 -34
- package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-DfKzxuoe.js +0 -11
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-C5lqplTC.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-CBoafmVs.js +0 -6
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DGgZjdFg.js +0 -6
- package/codeyam-cli/src/webserver/build/client/assets/globals-DoeDFXZN.css +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/labs-CmBYA0PH.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-76786b8e.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/memory-CrNQfdMO.js +0 -76
- package/codeyam-cli/src/webserver/build/client/assets/root-QAY34PIo.js +0 -62
- package/codeyam-cli/src/webserver/build/client/assets/settings-eBI36Yv5.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-COky1GVF.js +0 -2
- package/codeyam-cli/src/webserver/build/server/assets/index-DV1ykEI6.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/server-build-BrcVrUEv.js +0 -260
- package/codeyam-cli/templates/codeyam-stop-hook.sh +0 -284
- package/codeyam-cli/templates/codeyam:diagnose.md +0 -805
- /package/codeyam-cli/src/webserver/build/client/assets/{api.labs-survey-l0sNRNKZ.js → api.dev-mode-events-l0sNRNKZ.js} +0 -0
package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js
CHANGED
|
@@ -5,6 +5,29 @@ import { snapshotRules, getRulesChanges, assertValidFrontmatter, } from "./helpe
|
|
|
5
5
|
import { runClaude } from "./helpers/runClaude.js";
|
|
6
6
|
import { buildStaleRulesContext, buildConversationContext, } from "../../contextBuilder.js";
|
|
7
7
|
import { buildStaleRulesPrompt, buildConversationPrompt, } from "../../promptBuilder.js";
|
|
8
|
+
import { loadCapturedFixture, } from "./helpers/loadCapturedFixture.js";
|
|
9
|
+
/**
|
|
10
|
+
* Extract conversation snippets from a captured fixture's context.md.
|
|
11
|
+
* The context contains a `### Session transcript` section with lines like:
|
|
12
|
+
* [role]: content
|
|
13
|
+
*/
|
|
14
|
+
function extractSnippetsFromFixture(fixture) {
|
|
15
|
+
if (!fixture.context)
|
|
16
|
+
return [];
|
|
17
|
+
const marker = '### Session transcript\n';
|
|
18
|
+
const idx = fixture.context.indexOf(marker);
|
|
19
|
+
if (idx === -1)
|
|
20
|
+
return [];
|
|
21
|
+
const transcriptSection = fixture.context.slice(idx + marker.length).trim();
|
|
22
|
+
const snippets = [];
|
|
23
|
+
for (const line of transcriptSection.split('\n')) {
|
|
24
|
+
const match = line.match(/^\[(\w+)\]:\s*(.+)$/);
|
|
25
|
+
if (match) {
|
|
26
|
+
snippets.push({ role: match[1], content: match[2] });
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return snippets;
|
|
30
|
+
}
|
|
8
31
|
const SKIP = !process.env.CODEYAM_RUN_INTEGRATION;
|
|
9
32
|
const OUTPUT_DIR = path.resolve(__dirname, 'output');
|
|
10
33
|
(SKIP ? describe.skip : describe)('Rule Reflection E2E', () => {
|
|
@@ -14,12 +37,11 @@ const OUTPUT_DIR = path.resolve(__dirname, 'output');
|
|
|
14
37
|
tempProject.cleanup();
|
|
15
38
|
}
|
|
16
39
|
});
|
|
17
|
-
it('
|
|
40
|
+
it('handles stale rule with empty diff', async () => {
|
|
18
41
|
const existingRule = [
|
|
19
42
|
'---',
|
|
20
43
|
'paths:',
|
|
21
44
|
" - 'src/config.ts'",
|
|
22
|
-
'timestamp: 2026-01-01T00:00:00Z',
|
|
23
45
|
'---',
|
|
24
46
|
'',
|
|
25
47
|
'# Build Configuration',
|
|
@@ -35,7 +57,7 @@ const OUTPUT_DIR = path.resolve(__dirname, 'output');
|
|
|
35
57
|
const staleRules = [
|
|
36
58
|
{
|
|
37
59
|
name: 'build-config.md',
|
|
38
|
-
|
|
60
|
+
last_audited: '2026-01-01T00:00:00Z',
|
|
39
61
|
newest_file: 'src/config.ts',
|
|
40
62
|
file_modified: '2026-02-01T00:00:00Z',
|
|
41
63
|
diff: '',
|
|
@@ -55,7 +77,7 @@ const OUTPUT_DIR = path.resolve(__dirname, 'output');
|
|
|
55
77
|
});
|
|
56
78
|
const after = await snapshotRules(tempProject.rulesDir);
|
|
57
79
|
const changes = getRulesChanges(before, after);
|
|
58
|
-
// The rule should be
|
|
80
|
+
// The rule should be unchanged (no meaningful diff)
|
|
59
81
|
// Either way the file should still exist and have valid frontmatter
|
|
60
82
|
const ruleContent = after.files.get('build-config.md') || before.files.get('build-config.md');
|
|
61
83
|
expect(ruleContent).toBeDefined();
|
|
@@ -118,7 +140,6 @@ const OUTPUT_DIR = path.resolve(__dirname, 'output');
|
|
|
118
140
|
'---',
|
|
119
141
|
'paths:',
|
|
120
142
|
" - 'src/api/auth.ts'",
|
|
121
|
-
'timestamp: 2026-01-15T00:00:00Z',
|
|
122
143
|
'---',
|
|
123
144
|
'',
|
|
124
145
|
'# API Auth',
|
|
@@ -135,7 +156,7 @@ const OUTPUT_DIR = path.resolve(__dirname, 'output');
|
|
|
135
156
|
const staleRules = [
|
|
136
157
|
{
|
|
137
158
|
name: 'api-auth.md',
|
|
138
|
-
|
|
159
|
+
last_audited: '2026-01-15T00:00:00Z',
|
|
139
160
|
newest_file: 'src/api/auth.ts',
|
|
140
161
|
file_modified: '2026-02-01T00:00:00Z',
|
|
141
162
|
diff: '@@ -1 +1,2 @@\n+import { validateSession } from "./session.js"\n export function authenticate() {}',
|
|
@@ -280,6 +301,76 @@ const OUTPUT_DIR = path.resolve(__dirname, 'output');
|
|
|
280
301
|
// no corrections, confusion, or non-obvious architectural decisions.
|
|
281
302
|
expect(changes.created.length).toBe(0);
|
|
282
303
|
}, 180000);
|
|
304
|
+
it('does not create rules for a bug fix that is now protected by code and tests (b4e050b8)', async () => {
|
|
305
|
+
// This fixture captured a session where a crash in ScopeDataStructure.ts
|
|
306
|
+
// was debugged and fixed: addComplexSourcePathVariables crashed when a
|
|
307
|
+
// usage equivalency referenced an HTML intrinsic element (<input>) that
|
|
308
|
+
// has no scope node. The fix added null guards and a reproduction test.
|
|
309
|
+
//
|
|
310
|
+
// The agent incorrectly created a rule about "HTML Elements and Scope
|
|
311
|
+
// Nodes" — but the fix is now in the code (null guards) and verified by
|
|
312
|
+
// a test, so the rule is redundant. Per guidance: "The specific bug
|
|
313
|
+
// being fixed (it will be resolved; the rule would be immediately stale)"
|
|
314
|
+
// and "Any requirements or information that can now be identified by
|
|
315
|
+
// the code."
|
|
316
|
+
//
|
|
317
|
+
// We rebuild the context using the CURRENT guidance template + the
|
|
318
|
+
// fixture's transcript so that guidance improvements are tested.
|
|
319
|
+
const fixture = loadCapturedFixture('b4e050b8-conv');
|
|
320
|
+
const snippets = extractSnippetsFromFixture(fixture);
|
|
321
|
+
tempProject = setupTempProject({
|
|
322
|
+
sourceFiles: {
|
|
323
|
+
'packages/ai/src/lib/dataStructure/ScopeDataStructure.ts': [
|
|
324
|
+
'export class ScopeDataStructure {',
|
|
325
|
+
' addComplexSourcePathVariables() {',
|
|
326
|
+
' // Guard: HTML elements create equivalencies but have no scope node',
|
|
327
|
+
' const usageScopeNode = this.getScopeOrFunctionCallInfo(scopeNodeName);',
|
|
328
|
+
' if (!usageScopeNode) continue;',
|
|
329
|
+
' }',
|
|
330
|
+
' captureComplexSourcePaths() {',
|
|
331
|
+
' const usageScopeNode = this.getScopeOrFunctionCallInfo(scopeNodeName);',
|
|
332
|
+
' if (!usageScopeNode) continue;',
|
|
333
|
+
' }',
|
|
334
|
+
'}',
|
|
335
|
+
].join('\n'),
|
|
336
|
+
'packages/ai/src/lib/dataStructure/__tests__/analyzeScopeNoAI_memoryAudit.test.ts': [
|
|
337
|
+
"describe('MemoryAuditSection', () => {",
|
|
338
|
+
" it('handles HTML element equivalencies without crashing', () => {",
|
|
339
|
+
' // Reproduction test for HTML intrinsic elements like <input>',
|
|
340
|
+
' // that create equivalencies but never register as scope nodes',
|
|
341
|
+
' expect(result).toBeDefined();',
|
|
342
|
+
' });',
|
|
343
|
+
'});',
|
|
344
|
+
].join('\n'),
|
|
345
|
+
},
|
|
346
|
+
});
|
|
347
|
+
const modifiedFiles = new Set([
|
|
348
|
+
['packages/ai/src/lib/dataStructure/ScopeDataStructure.ts', 'Edit'],
|
|
349
|
+
[
|
|
350
|
+
'packages/ai/src/lib/dataStructure/__tests__/analyzeScopeNoAI_memoryAudit.test.ts',
|
|
351
|
+
'Write',
|
|
352
|
+
],
|
|
353
|
+
]);
|
|
354
|
+
const contextContent = buildConversationContext(snippets, modifiedFiles);
|
|
355
|
+
const contextFile = path.join(tempProject.dir, '.context.md');
|
|
356
|
+
fs.writeFileSync(contextFile, contextContent);
|
|
357
|
+
const notificationFile = path.join(tempProject.dir, 'rule-notification-conversation.md');
|
|
358
|
+
const before = await snapshotRules(tempProject.rulesDir);
|
|
359
|
+
const prompt = buildConversationPrompt(contextFile, tempProject.dir, notificationFile);
|
|
360
|
+
runClaude({
|
|
361
|
+
prompt,
|
|
362
|
+
cwd: tempProject.dir,
|
|
363
|
+
saveOutput: { dir: OUTPUT_DIR, label: 'fixture-b4e050b8-no-rule' },
|
|
364
|
+
});
|
|
365
|
+
const after = await snapshotRules(tempProject.rulesDir);
|
|
366
|
+
const changes = getRulesChanges(before, after);
|
|
367
|
+
// No rules should be created — this was a bug fix session.
|
|
368
|
+
// The null guards and reproduction test are now in the code,
|
|
369
|
+
// so the information is fully discernible from reading the source.
|
|
370
|
+
// The guidance explicitly says not to document "the specific bug
|
|
371
|
+
// being fixed" or information "that can now be identified by the code."
|
|
372
|
+
expect(changes.created.length).toBe(0);
|
|
373
|
+
}, 180000);
|
|
283
374
|
});
|
|
284
375
|
});
|
|
285
376
|
//# sourceMappingURL=ruleReflectionE2E.test.js.map
|
package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ruleReflectionE2E.test.js","sourceRoot":"","sources":["../../../../../../../src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ruleReflectionE2E.test.js","sourceRoot":"","sources":["../../../../../../../src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,17 +30,15 @@ describe('promptBuilder', () => {
|
|
|
30
30
|
});
|
|
31
31
|
it('includes stale rule review steps', () => {
|
|
32
32
|
expect(prompt).toContain('Review the inline rule content and the diff');
|
|
33
|
-
expect(prompt).toContain(
|
|
33
|
+
expect(prompt).toContain('codeyam memory touch');
|
|
34
|
+
expect(prompt).toContain('SPECIFIC rule paths');
|
|
34
35
|
expect(prompt).toContain('edit the rule file in .claude/rules/');
|
|
35
36
|
});
|
|
36
37
|
it('includes notification format example', () => {
|
|
37
38
|
expect(prompt).toContain('The background rule-reflection agent updated the following rules:');
|
|
38
39
|
});
|
|
39
|
-
it('instructs to
|
|
40
|
-
expect(prompt).toContain('
|
|
41
|
-
});
|
|
42
|
-
it('instructs not to write notification when no changes', () => {
|
|
43
|
-
expect(prompt).toContain('If no rules were changed at all, do NOT write the notification file.');
|
|
40
|
+
it('instructs to write notification even for audit-only changes', () => {
|
|
41
|
+
expect(prompt).toContain('even if you only ran `codeyam memory touch` without content changes');
|
|
44
42
|
});
|
|
45
43
|
it('does NOT mention conversation analysis', () => {
|
|
46
44
|
expect(prompt).not.toContain('conversation review section');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promptBuilder.test.js","sourceRoot":"","sources":["../../../../../../src/utils/ruleReflection/__tests__/promptBuilder.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAE1B,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,MAAM,WAAW,GAAG,+CAA+C,CAAC;QACpE,MAAM,UAAU,GAAG,uBAAuB,CAAC;QAC3C,MAAM,gBAAgB,GACpB,qDAAqD,CAAC;QAExD,IAAI,MAAc,CAAC;QAEnB,SAAS,CAAC,GAAG,EAAE;YACb,MAAM,GAAG,qBAAqB,CAAC,WAAW,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;YAClE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC/C,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,6CAA6C,CAAC,CAAC;YACxE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"promptBuilder.test.js","sourceRoot":"","sources":["../../../../../../src/utils/ruleReflection/__tests__/promptBuilder.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,8 +24,8 @@ function buildStaleRulesSection(staleRules) {
|
|
|
24
24
|
if (rule.file_modified) {
|
|
25
25
|
parts.push(` File modified: ${rule.file_modified}`);
|
|
26
26
|
}
|
|
27
|
-
if (rule.
|
|
28
|
-
parts.push(`
|
|
27
|
+
if (rule.last_audited) {
|
|
28
|
+
parts.push(` Last audited: ${rule.last_audited}`);
|
|
29
29
|
}
|
|
30
30
|
if (rule.diff) {
|
|
31
31
|
parts.push(' Changes:');
|
|
@@ -74,7 +74,7 @@ export function buildStaleRulesContext(staleRules) {
|
|
|
74
74
|
parts.push('For each rule, review the rule content and the diff of changes, then:');
|
|
75
75
|
parts.push('1. Determine if the rule content needs updating based on the code changes');
|
|
76
76
|
parts.push('2. Update the rule if needed');
|
|
77
|
-
parts.push('3.
|
|
77
|
+
parts.push('3. Run `codeyam memory touch <rule-path1> <rule-path2> ...` with the SPECIFIC rule paths you reviewed to mark them as audited\n');
|
|
78
78
|
parts.push(...buildStaleRulesSection(staleRules));
|
|
79
79
|
return parts.join('\n');
|
|
80
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextBuilder.js","sourceRoot":"","sources":["../../../../../src/utils/ruleReflection/contextBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,4BAA4B,CAAC,CAAC;AAE5E,IAAI,cAAc,GAAkB,IAAI,CAAC;AAEzC,SAAS,YAAY;IACnB,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,cAAc,GAAG,YAAY,CAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,2BAA2B,CAAC,EACrD,OAAO,CACR,CAAC;IACJ,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,sBAAsB,CAAC,UAAuB;IACrD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC9B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"contextBuilder.js","sourceRoot":"","sources":["../../../../../src/utils/ruleReflection/contextBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { parseFrontmatter } from "../parser.js";
|
|
2
|
+
describe('parseFrontmatter', () => {
|
|
3
|
+
it('parses multi-line paths array', () => {
|
|
4
|
+
const content = `---
|
|
5
|
+
paths:
|
|
6
|
+
- 'apps/web/modules/ee/license-check/**'
|
|
7
|
+
- 'apps/web/modules/ee/license-check/**/*.ts'
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## License System
|
|
11
|
+
`;
|
|
12
|
+
const { frontmatter, body } = parseFrontmatter(content);
|
|
13
|
+
expect(frontmatter.paths).toEqual([
|
|
14
|
+
'apps/web/modules/ee/license-check/**',
|
|
15
|
+
'apps/web/modules/ee/license-check/**/*.ts',
|
|
16
|
+
]);
|
|
17
|
+
expect(body.trim()).toBe('## License System');
|
|
18
|
+
});
|
|
19
|
+
it('parses inline YAML array with single-quoted strings', () => {
|
|
20
|
+
const content = `---
|
|
21
|
+
paths: ['apps/web/modules/ee/license-check/**']
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## License System
|
|
25
|
+
`;
|
|
26
|
+
const { frontmatter } = parseFrontmatter(content);
|
|
27
|
+
expect(frontmatter.paths).toEqual(['apps/web/modules/ee/license-check/**']);
|
|
28
|
+
});
|
|
29
|
+
it('parses inline YAML array with double-quoted strings', () => {
|
|
30
|
+
const content = `---
|
|
31
|
+
paths: ["apps/web/modules/ee/license-check/**", "apps/web/lib/**"]
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Content
|
|
35
|
+
`;
|
|
36
|
+
const { frontmatter } = parseFrontmatter(content);
|
|
37
|
+
expect(frontmatter.paths).toEqual([
|
|
38
|
+
'apps/web/modules/ee/license-check/**',
|
|
39
|
+
'apps/web/lib/**',
|
|
40
|
+
]);
|
|
41
|
+
});
|
|
42
|
+
it('parses inline YAML array without quotes', () => {
|
|
43
|
+
const content = `---
|
|
44
|
+
paths: [apps/web/modules/ee/license-check/**]
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Content
|
|
48
|
+
`;
|
|
49
|
+
const { frontmatter } = parseFrontmatter(content);
|
|
50
|
+
expect(frontmatter.paths).toEqual(['apps/web/modules/ee/license-check/**']);
|
|
51
|
+
});
|
|
52
|
+
it('parses paths without quotes in multi-line format', () => {
|
|
53
|
+
const content = `---
|
|
54
|
+
paths:
|
|
55
|
+
- apps/web/modules/ee/license-check/**
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Content
|
|
59
|
+
`;
|
|
60
|
+
const { frontmatter } = parseFrontmatter(content);
|
|
61
|
+
expect(frontmatter.paths).toEqual(['apps/web/modules/ee/license-check/**']);
|
|
62
|
+
});
|
|
63
|
+
it('returns empty frontmatter when no frontmatter present', () => {
|
|
64
|
+
const content = '## Just Content\n\nNo frontmatter here.';
|
|
65
|
+
const { frontmatter, body } = parseFrontmatter(content);
|
|
66
|
+
expect(frontmatter).toEqual({});
|
|
67
|
+
expect(body).toBe(content);
|
|
68
|
+
});
|
|
69
|
+
it('parses category field', () => {
|
|
70
|
+
const content = `---
|
|
71
|
+
paths:
|
|
72
|
+
- 'src/**'
|
|
73
|
+
category: architecture
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Architecture
|
|
77
|
+
`;
|
|
78
|
+
const { frontmatter } = parseFrontmatter(content);
|
|
79
|
+
expect(frontmatter.paths).toEqual(['src/**']);
|
|
80
|
+
expect(frontmatter.category).toBe('architecture');
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=parser.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.test.js","sourceRoot":"","sources":["../../../../../../src/utils/rules/__tests__/parser.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,OAAO,GAAG;;;;;;;CAOnB,CAAC;QACE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YAChC,sCAAsC;YACtC,2CAA2C;SAC5C,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,OAAO,GAAG;;;;;CAKnB,CAAC;QACE,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,OAAO,GAAG;;;;;CAKnB,CAAC;QACE,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YAChC,sCAAsC;YACtC,iBAAiB;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,OAAO,GAAG;;;;;CAKnB,CAAC;QACE,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,OAAO,GAAG;;;;;;CAMnB,CAAC;QACE,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,OAAO,GAAG,yCAAyC,CAAC;QAC1D,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,OAAO,GAAG;;;;;;;CAOnB,CAAC;QACE,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { doesPathMatchRule, getRulesForPath, getSourceFilesForRule, } from "../pathMatcher.js";
|
|
2
|
+
function makeRule(filePath, paths) {
|
|
3
|
+
return {
|
|
4
|
+
filePath,
|
|
5
|
+
absolutePath: `/project/.claude/rules/${filePath}`,
|
|
6
|
+
frontmatter: { paths },
|
|
7
|
+
body: 'rule content',
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
describe('doesPathMatchRule', () => {
|
|
11
|
+
it('returns false when rule has no paths', () => {
|
|
12
|
+
const rule = makeRule('general.md');
|
|
13
|
+
expect(doesPathMatchRule('src/index.ts', rule)).toBe(false);
|
|
14
|
+
});
|
|
15
|
+
it('returns false when rule has empty paths array', () => {
|
|
16
|
+
const rule = makeRule('general.md', []);
|
|
17
|
+
expect(doesPathMatchRule('src/index.ts', rule)).toBe(false);
|
|
18
|
+
});
|
|
19
|
+
it('matches glob patterns', () => {
|
|
20
|
+
const rule = makeRule('ts-rules.md', ['**/*.ts']);
|
|
21
|
+
expect(doesPathMatchRule('src/index.ts', rule)).toBe(true);
|
|
22
|
+
expect(doesPathMatchRule('src/App.tsx', rule)).toBe(false);
|
|
23
|
+
});
|
|
24
|
+
it('matches with matchBase option', () => {
|
|
25
|
+
const rule = makeRule('component-rules.md', ['*.tsx']);
|
|
26
|
+
expect(doesPathMatchRule('src/components/Button.tsx', rule)).toBe(true);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
describe('getRulesForPath', () => {
|
|
30
|
+
it('returns all matching rules for a path', () => {
|
|
31
|
+
const rules = [
|
|
32
|
+
makeRule('ts.md', ['**/*.ts']),
|
|
33
|
+
makeRule('tsx.md', ['**/*.tsx']),
|
|
34
|
+
makeRule('all-src.md', ['src/**']),
|
|
35
|
+
];
|
|
36
|
+
const matches = getRulesForPath('src/index.ts', rules);
|
|
37
|
+
expect(matches.map((r) => r.filePath)).toEqual(['ts.md', 'all-src.md']);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
describe('getSourceFilesForRule', () => {
|
|
41
|
+
const sourceFiles = [
|
|
42
|
+
'src/index.ts',
|
|
43
|
+
'src/App.tsx',
|
|
44
|
+
'src/utils/helpers.ts',
|
|
45
|
+
'lib/parser.js',
|
|
46
|
+
'test/setup.ts',
|
|
47
|
+
];
|
|
48
|
+
it('returns empty array for rule with no paths', () => {
|
|
49
|
+
const rule = makeRule('general.md');
|
|
50
|
+
expect(getSourceFilesForRule(rule, sourceFiles)).toEqual([]);
|
|
51
|
+
});
|
|
52
|
+
it('returns empty array for rule with empty paths array', () => {
|
|
53
|
+
const rule = makeRule('general.md', []);
|
|
54
|
+
expect(getSourceFilesForRule(rule, sourceFiles)).toEqual([]);
|
|
55
|
+
});
|
|
56
|
+
it('returns matching files for glob pattern', () => {
|
|
57
|
+
const rule = makeRule('ts-only.md', ['**/*.ts']);
|
|
58
|
+
const result = getSourceFilesForRule(rule, sourceFiles);
|
|
59
|
+
expect(result.sort()).toEqual([
|
|
60
|
+
'src/index.ts',
|
|
61
|
+
'src/utils/helpers.ts',
|
|
62
|
+
'test/setup.ts',
|
|
63
|
+
]);
|
|
64
|
+
});
|
|
65
|
+
it('returns matching files for directory pattern', () => {
|
|
66
|
+
const rule = makeRule('src-rules.md', ['src/**']);
|
|
67
|
+
const result = getSourceFilesForRule(rule, sourceFiles);
|
|
68
|
+
expect(result.sort()).toEqual([
|
|
69
|
+
'src/App.tsx',
|
|
70
|
+
'src/index.ts',
|
|
71
|
+
'src/utils/helpers.ts',
|
|
72
|
+
]);
|
|
73
|
+
});
|
|
74
|
+
it('returns empty array when no files match', () => {
|
|
75
|
+
const rule = makeRule('python.md', ['**/*.py']);
|
|
76
|
+
expect(getSourceFilesForRule(rule, sourceFiles)).toEqual([]);
|
|
77
|
+
});
|
|
78
|
+
it('handles multiple patterns', () => {
|
|
79
|
+
const rule = makeRule('multi.md', ['**/*.tsx', 'lib/**']);
|
|
80
|
+
const result = getSourceFilesForRule(rule, sourceFiles);
|
|
81
|
+
expect(result.sort()).toEqual(['lib/parser.js', 'src/App.tsx']);
|
|
82
|
+
});
|
|
83
|
+
it('uses directory-based matching when rule has no paths and is in a subdirectory', () => {
|
|
84
|
+
const rule = makeRule('src/utils/naming-conventions.md');
|
|
85
|
+
const result = getSourceFilesForRule(rule, sourceFiles);
|
|
86
|
+
expect(result).toEqual(['src/utils/helpers.ts']);
|
|
87
|
+
});
|
|
88
|
+
it('does not use directory-based matching for root-level rules with no paths', () => {
|
|
89
|
+
const rule = makeRule('general.md');
|
|
90
|
+
expect(getSourceFilesForRule(rule, sourceFiles)).toEqual([]);
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
describe('doesPathMatchRule - directory-based matching', () => {
|
|
94
|
+
it('matches files in the same directory as the rule when no paths specified', () => {
|
|
95
|
+
const rule = makeRule('apps/web/modules/survey/editor/survey-editor-gotchas.md');
|
|
96
|
+
expect(doesPathMatchRule('apps/web/modules/survey/editor/SurveyEditor.tsx', rule)).toBe(true);
|
|
97
|
+
});
|
|
98
|
+
it('matches files in subdirectories of the rule directory', () => {
|
|
99
|
+
const rule = makeRule('apps/web/modules/survey/editor/survey-editor-gotchas.md');
|
|
100
|
+
expect(doesPathMatchRule('apps/web/modules/survey/editor/components/QuestionList.tsx', rule)).toBe(true);
|
|
101
|
+
});
|
|
102
|
+
it('does not match files outside the rule directory', () => {
|
|
103
|
+
const rule = makeRule('apps/web/modules/survey/editor/survey-editor-gotchas.md');
|
|
104
|
+
expect(doesPathMatchRule('apps/web/modules/survey/SurveyList.tsx', rule)).toBe(false);
|
|
105
|
+
});
|
|
106
|
+
it('does not use directory-based matching for root-level rules', () => {
|
|
107
|
+
const rule = makeRule('general-guidelines.md');
|
|
108
|
+
expect(doesPathMatchRule('src/index.ts', rule)).toBe(false);
|
|
109
|
+
});
|
|
110
|
+
it('explicit paths take precedence over directory-based matching', () => {
|
|
111
|
+
const rule = makeRule('src/utils/naming.md', ['**/*.tsx']);
|
|
112
|
+
// Should match based on explicit paths, not directory
|
|
113
|
+
expect(doesPathMatchRule('lib/Component.tsx', rule)).toBe(true);
|
|
114
|
+
// Should NOT match .ts files even though they are in src/utils/
|
|
115
|
+
expect(doesPathMatchRule('src/utils/helpers.ts', rule)).toBe(false);
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
//# sourceMappingURL=pathMatcher.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathMatcher.test.js","sourceRoot":"","sources":["../../../../../../src/utils/rules/__tests__/pathMatcher.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { computeRulePlacement } from "../rulePlacement.js";
|
|
2
|
+
describe('computeRulePlacement', () => {
|
|
3
|
+
describe('single file path', () => {
|
|
4
|
+
it('returns the directory of the file', () => {
|
|
5
|
+
expect(computeRulePlacement(['src/api/auth.ts'])).toBe('src/api');
|
|
6
|
+
});
|
|
7
|
+
it('handles deeply nested file', () => {
|
|
8
|
+
expect(computeRulePlacement(['packages/ai/src/lib/generateMockData.ts'])).toBe('packages/ai/src/lib');
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
describe('multiple file paths in the same directory', () => {
|
|
12
|
+
it('returns their shared directory', () => {
|
|
13
|
+
expect(computeRulePlacement([
|
|
14
|
+
'packages/ai/src/lib/foo.ts',
|
|
15
|
+
'packages/ai/src/lib/bar.ts',
|
|
16
|
+
])).toBe('packages/ai/src/lib');
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
describe('multiple file paths in different directories', () => {
|
|
20
|
+
it('returns the deepest common directory', () => {
|
|
21
|
+
expect(computeRulePlacement([
|
|
22
|
+
'packages/ai/src/lib/a.ts',
|
|
23
|
+
'packages/ai/src/utils/b.ts',
|
|
24
|
+
])).toBe('packages/ai/src');
|
|
25
|
+
});
|
|
26
|
+
it('handles paths with no shared directory beyond root', () => {
|
|
27
|
+
expect(computeRulePlacement(['src/api/auth.ts', 'lib/utils/helpers.ts'])).toBe('');
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
describe('glob patterns', () => {
|
|
31
|
+
it('strips ** from directory glob', () => {
|
|
32
|
+
expect(computeRulePlacement(['codeyam-cli/**'])).toBe('codeyam-cli');
|
|
33
|
+
});
|
|
34
|
+
it('strips **/*.ext pattern', () => {
|
|
35
|
+
expect(computeRulePlacement(['packages/ai/src/**/*.ts'])).toBe('packages/ai/src');
|
|
36
|
+
});
|
|
37
|
+
it('strips trailing * wildcard', () => {
|
|
38
|
+
expect(computeRulePlacement(['src/utils/*.ts'])).toBe('src/utils');
|
|
39
|
+
});
|
|
40
|
+
it('finds common directory across multiple globs', () => {
|
|
41
|
+
expect(computeRulePlacement(['packages/ai/**', 'packages/types/**'])).toBe('packages');
|
|
42
|
+
});
|
|
43
|
+
it('finds common directory between glob and file path', () => {
|
|
44
|
+
expect(computeRulePlacement([
|
|
45
|
+
'packages/ai/src/**/*.ts',
|
|
46
|
+
'packages/ai/src/lib/foo.ts',
|
|
47
|
+
])).toBe('packages/ai/src');
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
describe('edge cases', () => {
|
|
51
|
+
it('throws on empty paths array', () => {
|
|
52
|
+
expect(() => computeRulePlacement([])).toThrow();
|
|
53
|
+
});
|
|
54
|
+
it('handles root-level file', () => {
|
|
55
|
+
expect(computeRulePlacement(['config.ts'])).toBe('');
|
|
56
|
+
});
|
|
57
|
+
it('handles root-level glob', () => {
|
|
58
|
+
expect(computeRulePlacement(['**/*.ts'])).toBe('');
|
|
59
|
+
});
|
|
60
|
+
it('handles paths with trailing slashes', () => {
|
|
61
|
+
expect(computeRulePlacement(['src/utils/'])).toBe('src/utils');
|
|
62
|
+
});
|
|
63
|
+
it('handles mix of files, globs, and directories', () => {
|
|
64
|
+
expect(computeRulePlacement([
|
|
65
|
+
'packages/ai/src/lib/foo.ts',
|
|
66
|
+
'packages/ai/src/**/*.ts',
|
|
67
|
+
'packages/ai/src/utils/',
|
|
68
|
+
])).toBe('packages/ai/src');
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=rulePlacement.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rulePlacement.test.js","sourceRoot":"","sources":["../../../../../../src/utils/rules/__tests__/rulePlacement.test.ts"],"names":[],"mappings":"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"}
|