@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.
- package/analyzer-template/.build-info.json +7 -7
- package/analyzer-template/log.txt +3 -3
- package/analyzer-template/package.json +7 -7
- package/analyzer-template/packages/ai/index.ts +10 -2
- package/analyzer-template/packages/ai/package.json +2 -2
- package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +86 -18
- package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +67 -9
- package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +41 -17
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
- package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +308 -50
- package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +15 -6
- package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +837 -243
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +5 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +16 -3
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +6 -4
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +54 -3
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +60 -15
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +80 -5
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +179 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.ts +40 -30
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +393 -97
- package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +58 -3
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +283 -1
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +9 -5
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +11 -3
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +1 -1
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +297 -7
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +1 -1
- package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +51 -3
- package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +90 -96
- package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +10 -7
- package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +25 -13
- package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +4 -3
- package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +114 -2
- package/analyzer-template/packages/analyze/index.ts +2 -0
- package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +65 -59
- package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +113 -26
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +19 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +19 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +11 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +8 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +49 -1
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +2 -1
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +71 -9
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +19 -4
- package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +6 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +4 -2
- package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +0 -3
- package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +4 -5
- package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +14 -12
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1315 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +61 -13
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +37 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +229 -19
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +117 -9
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +459 -39
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/propagateArrayItemSchemas.ts +474 -0
- package/analyzer-template/packages/analyze/src/lib/files/setImportedExports.ts +2 -1
- package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
- package/analyzer-template/packages/analyze/src/lib/utils/getFileByPath.ts +19 -0
- package/analyzer-template/packages/aws/package.json +1 -1
- package/analyzer-template/packages/database/package.json +1 -1
- 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 +14 -1
- package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +6 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
- package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +13 -0
- package/analyzer-template/packages/database/src/lib/loadBranch.ts +16 -1
- package/analyzer-template/packages/database/src/lib/loadCommit.ts +11 -0
- package/analyzer-template/packages/database/src/lib/loadCommits.ts +12 -0
- package/analyzer-template/packages/database/src/lib/loadEntityBranches.ts +12 -0
- 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 +7 -14
- package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +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 +11 -1
- 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/commitsTable.d.ts +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js +3 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +8 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js +11 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js +7 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js.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 +9 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js +9 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.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 +2 -2
- 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 +5 -4
- package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +7 -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/ScenariosDataStructure.d.ts +5 -5
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
- package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
- package/analyzer-template/packages/github/package.json +1 -1
- package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
- package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +7 -0
- package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +6 -5
- package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +7 -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/ScenariosDataStructure.d.ts +5 -5
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
- package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
- package/analyzer-template/playwright/capture.ts +20 -8
- package/analyzer-template/playwright/captureStatic.ts +1 -1
- package/analyzer-template/project/analyzeBaselineCommit.ts +5 -0
- package/analyzer-template/project/analyzeRegularCommit.ts +5 -0
- package/analyzer-template/project/captureLibraryFunctionDirect.ts +29 -26
- package/analyzer-template/project/constructMockCode.ts +90 -10
- package/analyzer-template/project/createEntitiesAndSortFiles.ts +83 -0
- package/analyzer-template/project/loadReadyToBeCaptured.ts +65 -41
- package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
- package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +11 -6
- package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
- package/analyzer-template/project/orchestrateCapture.ts +45 -6
- package/analyzer-template/project/start.ts +35 -11
- package/analyzer-template/project/writeMockDataTsx.ts +181 -8
- package/analyzer-template/project/writeScenarioComponents.ts +60 -12
- package/analyzer-template/project/writeSimpleRoot.ts +21 -11
- package/analyzer-template/scripts/comboWorkerLoop.cjs +98 -50
- 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/analyzeBaselineCommit.js +5 -0
- package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
- package/background/src/lib/virtualized/project/analyzeRegularCommit.js +5 -0
- package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
- package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +3 -3
- package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -1
- package/background/src/lib/virtualized/project/constructMockCode.js +75 -4
- package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
- package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +73 -1
- package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -1
- package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +19 -8
- package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js +2 -2
- package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +4 -4
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture.js +38 -6
- package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
- package/background/src/lib/virtualized/project/start.js +32 -11
- package/background/src/lib/virtualized/project/start.js.map +1 -1
- package/background/src/lib/virtualized/project/writeMockDataTsx.js +162 -4
- package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
- package/background/src/lib/virtualized/project/writeScenarioComponents.js +60 -15
- package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
- package/background/src/lib/virtualized/project/writeSimpleRoot.js +21 -11
- package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
- package/codeyam-cli/scripts/apply-setup.js +180 -0
- package/codeyam-cli/scripts/apply-setup.js.map +1 -1
- package/codeyam-cli/src/cli.js +4 -0
- package/codeyam-cli/src/cli.js.map +1 -1
- package/codeyam-cli/src/commands/analyze.js +2 -0
- 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 +9 -5
- package/codeyam-cli/src/commands/debug.js.map +1 -1
- package/codeyam-cli/src/commands/default.js +14 -4
- package/codeyam-cli/src/commands/default.js.map +1 -1
- package/codeyam-cli/src/commands/detect-universal-mocks.js +2 -0
- package/codeyam-cli/src/commands/detect-universal-mocks.js.map +1 -1
- package/codeyam-cli/src/commands/init.js +42 -184
- package/codeyam-cli/src/commands/init.js.map +1 -1
- package/codeyam-cli/src/commands/memory.js +264 -0
- package/codeyam-cli/src/commands/memory.js.map +1 -0
- 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 +2 -0
- package/codeyam-cli/src/commands/verify.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +128 -86
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
- package/codeyam-cli/src/utils/analysisRunner.js +1 -1
- package/codeyam-cli/src/utils/analysisRunner.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 +4 -0
- package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/utils/install-skills.js +71 -46
- package/codeyam-cli/src/utils/install-skills.js.map +1 -1
- package/codeyam-cli/src/utils/labsAutoCheck.js +48 -0
- package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
- 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/job.js +4 -0
- package/codeyam-cli/src/utils/queue/job.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__/confusionDetector.test.js +82 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +230 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +75 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +378 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +115 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
- package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
- package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
- package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
- package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
- package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
- package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
- package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
- package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
- package/codeyam-cli/src/utils/rules/index.js +6 -0
- package/codeyam-cli/src/utils/rules/index.js.map +1 -0
- package/codeyam-cli/src/utils/rules/parser.js +83 -0
- package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
- package/codeyam-cli/src/utils/rules/pathMatcher.js +18 -0
- package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
- package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
- package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
- package/codeyam-cli/src/utils/rules/staleness.js +137 -0
- package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +20 -43
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
- package/codeyam-cli/src/webserver/app/lib/database.js +15 -3
- package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
- package/codeyam-cli/src/webserver/backgroundServer.js +31 -0
- package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CA3JxPb7.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-B86KKU7e.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-DLqD3qNt.js → EntityTypeBadge-B5ctlSYt.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-Ba2JVPzP.js → EntityTypeIcon-BqY8gDAW.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{InlineSpinner-C8lyxW9k.js → InlineSpinner-ClaLpuOo.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-aht4aafF.js → InteractivePreview-BDhPilK7.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-CVtiBnY5.js → LibraryFunctionPreview-VeqEBv9v.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-B0GLXMsr.js → LoadingDots-Bs7Nn1Jr.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-xgeCVgSM.js → LogViewer-Bm3PmcCz.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-D4TZhLuw.js → ReportIssueModal-C6PKeMYR.js} +3 -13
- package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-DuDvi0jm.js → SafeScreenshot-Gq3Ocjo6.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-DEx02QDa.js → ScenarioViewer-BNLaXBHR.js} +3 -3
- package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-DyFZkK0l.js → TruncatedFilePath-CiwXDxLh.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{_index-BwqWJOgH.js → _index-B3TDXxnk.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-DoLIqZX2.js → activity.(_tab)-BtBFH820.js} +6 -16
- package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-CN61MOMa.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.labs-survey-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.memory-profile-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/book-open-PttOB2SF.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-Cx24_aWc.js → chevron-down-TJp6ofnp.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{chunk-EPOLDU6W-CXRTFQ3F.js → chunk-JZWAC4HX-JE9ZIoBl.js} +12 -12
- package/codeyam-cli/src/webserver/build/client/assets/{circle-check-BOARzkeR.js → circle-check-CXhHQYrI.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/copy-6y9ALfGT.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-BdhJEx6B.js → createLucideIcon-Ca9fAY46.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-C5lqplTC.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-C2N4Op8e.js → entity._sha._-n38keI1k.js} +10 -10
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.fullscreen-DavjRmOY.js → entity._sha.scenarios._scenarioId.fullscreen-CBoafmVs.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.create-scenario-D1T4TGjf.js → entity._sha_.create-scenario-DGgZjdFg.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CTBG2mmz.js → entity._sha_.edit._scenarioId-38yPijoD.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entry.client-CS2cb_eZ.js → entry.client-BSHEfydn.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DMJ7zii9.js → fileTableUtils-DCPhhSMo.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/files-0N0YJQv7.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{git-B4RJRvYB.js → git-DXnyr8uP.js} +8 -8
- package/codeyam-cli/src/webserver/build/client/assets/globals-EVn6Z9pz.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{index-lzqtyFU8.js → index-CcsFv748.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{index-B1h680n5.js → index-ChN9-fAY.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/labs-CmBYA0PH.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-B7B9V-bu.js → loader-circle-CTqLEAGU.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-aa4ff97b.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/memory-BSlqS1QA.js +81 -0
- package/codeyam-cli/src/webserver/build/client/assets/pause-D6vreykR.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/root-DVAbJY8B.js +62 -0
- package/codeyam-cli/src/webserver/build/client/assets/{search-CxXUmBSd.js → search-B8VUL8nl.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/settings-BK-cnzp-.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{simulations-DwFIBT09.js → simulations-CPoAg7Zo.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/terminal-BrCP7uQo.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-B6LgvRJg.js → triangle-alert-BZz2NjYa.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useCustomSizes-C1v1PQzo.js → useCustomSizes-DNwUduNu.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-aSv48UbS.js → useLastLogLine-COky1GVF.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useReportContext-DYxHZQuP.js → useReportContext-CpZgwliL.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useToast-mBRpZPiu.js → useToast-Bv9JFvUO.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/index-Cz2RkDCa.js +1 -0
- package/codeyam-cli/src/webserver/build/server/assets/server-build-CUVsWicu.js +260 -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/templates/{codeyam-power-rules-hook.sh → codeyam-memory-hook.sh} +12 -13
- package/codeyam-cli/templates/codeyam:diagnose.md +195 -496
- package/codeyam-cli/templates/codeyam:memory.md +403 -0
- package/codeyam-cli/templates/codeyam:new-rule.md +2 -2
- package/codeyam-cli/templates/codeyam:setup.md +12 -0
- package/codeyam-cli/templates/rule-notification-hook.py +56 -0
- package/codeyam-cli/templates/rule-reflection-hook.py +627 -0
- package/codeyam-cli/templates/rules-instructions.md +136 -0
- package/package.json +8 -6
- package/packages/ai/index.js +3 -2
- package/packages/ai/index.js.map +1 -1
- package/packages/ai/src/lib/analyzeScope.js +68 -13
- package/packages/ai/src/lib/analyzeScope.js.map +1 -1
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +54 -8
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
- package/packages/ai/src/lib/astScopes/methodSemantics.js +41 -17
- package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
- package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
- package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
- package/packages/ai/src/lib/astScopes/processExpression.js +239 -43
- package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +654 -166
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +5 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +13 -3
- package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +6 -4
- package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +52 -3
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +55 -11
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
- package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +73 -5
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
- package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +333 -86
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
- package/packages/ai/src/lib/generateEntityDataStructure.js +46 -2
- package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarioData.js +205 -1
- package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarios.js +7 -1
- package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
- package/packages/ai/src/lib/generateExecutionFlows.js +10 -2
- package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +209 -3
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -1
- package/packages/ai/src/lib/isolateScopes.js +39 -3
- package/packages/ai/src/lib/isolateScopes.js.map +1 -1
- package/packages/ai/src/lib/mergeStatements.js +70 -51
- package/packages/ai/src/lib/mergeStatements.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +10 -4
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
- package/packages/ai/src/lib/resolvePathToControllable.js +24 -14
- package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -1
- package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
- package/packages/ai/src/lib/worker/analyzeScopeWorker.js +94 -1
- package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
- package/packages/analyze/index.js +1 -0
- package/packages/analyze/index.js.map +1 -1
- package/packages/analyze/src/lib/FileAnalyzer.js +60 -36
- package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
- package/packages/analyze/src/lib/ProjectAnalyzer.js +96 -26
- package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +14 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +14 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +6 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +6 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +39 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +2 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +54 -6
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +17 -4
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +5 -0
- package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +2 -1
- package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +0 -3
- package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
- package/packages/analyze/src/lib/files/analyzeRemixRoute.js +3 -2
- package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
- package/packages/analyze/src/lib/files/getImportedExports.js +11 -7
- package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +880 -0
- package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +56 -10
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +33 -8
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +150 -17
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +56 -8
- package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +399 -31
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/setImportedExports.js +2 -1
- package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -1
- package/packages/analyze/src/lib/index.js +1 -0
- package/packages/analyze/src/lib/index.js.map +1 -1
- package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
- package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
- 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 +11 -1
- package/packages/database/src/lib/kysely/db.js.map +1 -1
- package/packages/database/src/lib/kysely/tables/commitsTable.js +3 -0
- package/packages/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
- package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
- package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
- package/packages/database/src/lib/loadAnalysis.js +8 -0
- package/packages/database/src/lib/loadAnalysis.js.map +1 -1
- package/packages/database/src/lib/loadBranch.js +11 -1
- package/packages/database/src/lib/loadBranch.js.map +1 -1
- package/packages/database/src/lib/loadCommit.js +7 -0
- package/packages/database/src/lib/loadCommit.js.map +1 -1
- package/packages/database/src/lib/loadCommits.js +9 -0
- package/packages/database/src/lib/loadCommits.js.map +1 -1
- package/packages/database/src/lib/loadEntityBranches.js +9 -0
- package/packages/database/src/lib/loadEntityBranches.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 +5 -4
- package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
- package/scripts/finalize-analyzer.cjs +8 -76
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-BXhEawa3.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BRb-0kQl.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/files-Cs4MdYtv.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/git-commit-horizontal-CysbcZxi.js +0 -6
- package/codeyam-cli/src/webserver/build/client/assets/globals-DMUaGAqV.css +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-f874c610.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/root-Bz5TunQg.js +0 -57
- package/codeyam-cli/src/webserver/build/client/assets/rules-hEkvVw2-.js +0 -97
- package/codeyam-cli/src/webserver/build/client/assets/settings-CS5f3WzT.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/index-uNNbimct.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/server-build-B08qC4Y7.js +0 -257
- package/codeyam-cli/templates/codeyam:power-rules.md +0 -449
- /package/codeyam-cli/src/webserver/build/client/assets/{api.rules-l0sNRNKZ.js → api.agent-transcripts-l0sNRNKZ.js} +0 -0
|
@@ -2,21 +2,44 @@ import ts from 'typescript';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import fs from 'fs';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Cache for nearest tsconfig lookups (keyed by directory).
|
|
7
|
+
* Speeds up repeated lookups during module resolution.
|
|
8
|
+
*/
|
|
9
|
+
const nearestTsConfigCache = new Map<string, string | undefined>();
|
|
10
|
+
|
|
5
11
|
/**
|
|
6
12
|
* Find the nearest tsconfig.json by walking up the directory tree from the source file
|
|
7
13
|
*/
|
|
8
14
|
function findNearestTsConfig(sourceFileName: string): string | undefined {
|
|
9
15
|
let currentDir = path.dirname(sourceFileName);
|
|
10
16
|
const root = path.parse(currentDir).root;
|
|
17
|
+
const visited: string[] = [];
|
|
11
18
|
|
|
12
19
|
while (currentDir !== root) {
|
|
20
|
+
const cached = nearestTsConfigCache.get(currentDir);
|
|
21
|
+
if (cached !== undefined || nearestTsConfigCache.has(currentDir)) {
|
|
22
|
+
for (const dir of visited) {
|
|
23
|
+
nearestTsConfigCache.set(dir, cached);
|
|
24
|
+
}
|
|
25
|
+
return cached;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
visited.push(currentDir);
|
|
13
29
|
const tsConfigPath = path.join(currentDir, 'tsconfig.json');
|
|
14
30
|
if (fs.existsSync(tsConfigPath)) {
|
|
31
|
+
for (const dir of visited) {
|
|
32
|
+
nearestTsConfigCache.set(dir, tsConfigPath);
|
|
33
|
+
}
|
|
15
34
|
return tsConfigPath;
|
|
16
35
|
}
|
|
17
36
|
currentDir = path.dirname(currentDir);
|
|
18
37
|
}
|
|
19
38
|
|
|
39
|
+
for (const dir of visited) {
|
|
40
|
+
nearestTsConfigCache.set(dir, undefined);
|
|
41
|
+
}
|
|
42
|
+
|
|
20
43
|
return undefined;
|
|
21
44
|
}
|
|
22
45
|
|
|
@@ -25,6 +48,14 @@ function findNearestTsConfig(sourceFileName: string): string | undefined {
|
|
|
25
48
|
*/
|
|
26
49
|
const tsConfigCache = new Map<string, ts.CompilerOptions>();
|
|
27
50
|
|
|
51
|
+
/**
|
|
52
|
+
* Cache resolved module lookups by program for fast repeat access.
|
|
53
|
+
*/
|
|
54
|
+
const resolvedModuleCacheByProgram = new WeakMap<
|
|
55
|
+
ts.Program,
|
|
56
|
+
Map<string, ts.ResolvedModuleFull | null>
|
|
57
|
+
>();
|
|
58
|
+
|
|
28
59
|
/**
|
|
29
60
|
* Get compiler options from a tsconfig file
|
|
30
61
|
*/
|
|
@@ -62,6 +93,19 @@ export function getResolvedModule(
|
|
|
62
93
|
// Try to find the nearest tsconfig for this source file
|
|
63
94
|
const nearestTsConfig = findNearestTsConfig(sourceFile.fileName);
|
|
64
95
|
|
|
96
|
+
const cacheForProgram =
|
|
97
|
+
resolvedModuleCacheByProgram.get(program) ??
|
|
98
|
+
new Map<string, ts.ResolvedModuleFull | null>();
|
|
99
|
+
if (!resolvedModuleCacheByProgram.has(program)) {
|
|
100
|
+
resolvedModuleCacheByProgram.set(program, cacheForProgram);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
const cacheKey = `${nearestTsConfig ?? ''}|${sourceFile.fileName}|${moduleName}`;
|
|
104
|
+
if (cacheForProgram.has(cacheKey)) {
|
|
105
|
+
const cached = cacheForProgram.get(cacheKey);
|
|
106
|
+
return cached ?? undefined;
|
|
107
|
+
}
|
|
108
|
+
|
|
65
109
|
// Start with the program's compiler options
|
|
66
110
|
let compilerOptions = program.getCompilerOptions();
|
|
67
111
|
|
|
@@ -90,6 +134,7 @@ export function getResolvedModule(
|
|
|
90
134
|
|
|
91
135
|
// If TypeScript's resolution succeeded, return it
|
|
92
136
|
if (result.resolvedModule) {
|
|
137
|
+
cacheForProgram.set(cacheKey, result.resolvedModule);
|
|
93
138
|
return result.resolvedModule;
|
|
94
139
|
}
|
|
95
140
|
|
|
@@ -105,14 +150,17 @@ export function getResolvedModule(
|
|
|
105
150
|
for (const ext of extensions) {
|
|
106
151
|
const testPath = absolutePath + ext;
|
|
107
152
|
if (fs.existsSync(testPath)) {
|
|
108
|
-
|
|
153
|
+
const resolved = {
|
|
109
154
|
resolvedFileName: testPath,
|
|
110
155
|
extension: ext.includes('/') ? path.extname(ext) : ext,
|
|
111
156
|
isExternalLibraryImport: false,
|
|
112
157
|
} as ts.ResolvedModuleFull;
|
|
158
|
+
cacheForProgram.set(cacheKey, resolved);
|
|
159
|
+
return resolved;
|
|
113
160
|
}
|
|
114
161
|
}
|
|
115
162
|
}
|
|
116
163
|
|
|
164
|
+
cacheForProgram.set(cacheKey, null);
|
|
117
165
|
return undefined;
|
|
118
166
|
}
|
package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts
CHANGED
|
@@ -21,5 +21,6 @@ export function getSourceFilesForAllImports(
|
|
|
21
21
|
|
|
22
22
|
visit(sourceFile); // Start visiting nodes from the root source file
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
const uniqueModuleNames = Array.from(new Set(moduleNames));
|
|
25
|
+
return getSourceFilesForImports(uniqueModuleNames, sourceFile, program);
|
|
25
26
|
}
|
|
@@ -336,11 +336,23 @@ async function getEntityDataStructureAndFunctionCalls({
|
|
|
336
336
|
functionName: importedExport.name,
|
|
337
337
|
});
|
|
338
338
|
|
|
339
|
-
// If neither signature nor return value found, this function
|
|
340
|
-
//
|
|
341
|
-
//
|
|
339
|
+
// If neither signature nor return value found, check if this function has matching
|
|
340
|
+
// external function calls. External functions (like useLoaderData from react-router)
|
|
341
|
+
// don't have entries in functionResults, so getReturnValue returns null for them.
|
|
342
|
+
// But their return values ARE traced in externalFunctionCalls via perVariableSchemas.
|
|
343
|
+
// We need to check for matching calls before skipping.
|
|
342
344
|
if (!signatureSchema && !returnValueSchema) {
|
|
343
|
-
|
|
345
|
+
const hasMatchingExternalCall =
|
|
346
|
+
dataStructure.externalFunctionCalls?.some(
|
|
347
|
+
(fc) =>
|
|
348
|
+
fc.name === importedExport.name ||
|
|
349
|
+
fc.name.startsWith(importedExport.name + '<'),
|
|
350
|
+
);
|
|
351
|
+
|
|
352
|
+
// Only skip if there are no matching external function calls
|
|
353
|
+
if (!hasMatchingExternalCall) {
|
|
354
|
+
return acc;
|
|
355
|
+
}
|
|
344
356
|
}
|
|
345
357
|
|
|
346
358
|
// Clone schemas before deduplication to avoid mutating shared references
|
|
@@ -543,6 +555,42 @@ async function getEntityDataStructureAndFunctionCalls({
|
|
|
543
555
|
},
|
|
544
556
|
);
|
|
545
557
|
|
|
558
|
+
// Add same-file child components to dependencySchemas.
|
|
559
|
+
// Same-file components (e.g., AgentCard defined in the same file as AgentTranscriptsPage)
|
|
560
|
+
// appear in externalFunctionCalls and functionResults but NOT in importedExports or
|
|
561
|
+
// nodeModuleImports. Without this, their signatures are missing from dependencySchemas
|
|
562
|
+
// and enrichArrayTypesFromChildSignatures can't find child component field accesses.
|
|
563
|
+
const allDependencyNames = new Set(allDependencies.map((d) => d.name));
|
|
564
|
+
|
|
565
|
+
for (const efc of dataStructure.externalFunctionCalls) {
|
|
566
|
+
// Skip if already covered by importedExports or nodeModuleImports
|
|
567
|
+
if (allDependencyNames.has(efc.name)) continue;
|
|
568
|
+
|
|
569
|
+
const signatureSchema = getFunctionSignature(dataStructure, {
|
|
570
|
+
functionName: efc.name,
|
|
571
|
+
});
|
|
572
|
+
|
|
573
|
+
const returnValueSchema = getReturnValue(dataStructure, {
|
|
574
|
+
functionName: efc.name,
|
|
575
|
+
});
|
|
576
|
+
|
|
577
|
+
// Only add if we have signature or return value data
|
|
578
|
+
if (!signatureSchema && !returnValueSchema) continue;
|
|
579
|
+
|
|
580
|
+
const clonedSignatureSchema = { ...(signatureSchema ?? {}) };
|
|
581
|
+
const clonedReturnValueSchema = { ...(returnValueSchema ?? {}) };
|
|
582
|
+
|
|
583
|
+
const entityFilePath = entity.filePath;
|
|
584
|
+
dependencySchemas[entityFilePath] ||= {};
|
|
585
|
+
dependencySchemas[entityFilePath][efc.name] = {
|
|
586
|
+
signatureSchema: deduplicateFunctionSchemas(clonedSignatureSchema),
|
|
587
|
+
returnValueSchema: deduplicateFunctionSchemas(clonedReturnValueSchema),
|
|
588
|
+
usageEquivalencies: getUsageEquivalencies(dataStructure, efc.name) ?? {},
|
|
589
|
+
sourceEquivalencies:
|
|
590
|
+
getSourceEquivalencies(dataStructure, efc.name) ?? {},
|
|
591
|
+
};
|
|
592
|
+
}
|
|
593
|
+
|
|
546
594
|
const rawReturnValue =
|
|
547
595
|
getReturnValue(dataStructure, { fillInUnknowns: false }) ?? {};
|
|
548
596
|
|
|
@@ -570,11 +618,13 @@ async function getEntityDataStructureAndFunctionCalls({
|
|
|
570
618
|
// Get JSX rendering usages for array size and text length flow generation
|
|
571
619
|
const jsxRenderingUsages = getJsxRenderingUsages(dataStructure);
|
|
572
620
|
|
|
621
|
+
const equivalentSignatureVariables =
|
|
622
|
+
getEquivalentSignatureVariables(dataStructure);
|
|
623
|
+
|
|
573
624
|
const isolatedDataStructure = {
|
|
574
625
|
signatureSchema: deduplicateFunctionSchemas(clonedRawSignature),
|
|
575
626
|
returnValueSchema: deduplicateFunctionSchemas(clonedRawReturnValue),
|
|
576
|
-
equivalentSignatureVariables
|
|
577
|
-
getEquivalentSignatureVariables(dataStructure),
|
|
627
|
+
equivalentSignatureVariables,
|
|
578
628
|
dependencySchemas,
|
|
579
629
|
environmentVariables: dataStructure.environmentVariables,
|
|
580
630
|
conditionalUsages:
|
|
@@ -856,9 +906,21 @@ export function determineMockedDependencies(entity: Entity) {
|
|
|
856
906
|
// A schema with only "EntityName(): function" just indicates the entity is callable,
|
|
857
907
|
// it doesn't mean there's actual return data to mock
|
|
858
908
|
const hasReturnValue = hasActualReturnValueData(entityReturnValueSchema);
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
909
|
+
// Check for complex return types (object/array), accounting for nullable types
|
|
910
|
+
// e.g., 'object', 'object | null', 'array | undefined' should all count as complex.
|
|
911
|
+
// Also detect when functionCallReturnValue has nested child properties — this
|
|
912
|
+
// proves it's a structured type even if its declared type is still 'unknown'.
|
|
913
|
+
const returnValueKeys = Object.keys(entityReturnValueSchema ?? {});
|
|
914
|
+
const complexReturnValue =
|
|
915
|
+
Object.values(entityReturnValueSchema ?? {}).some((value) => {
|
|
916
|
+
const baseType = value?.split(' | ')[0];
|
|
917
|
+
return baseType === 'object' || baseType === 'array';
|
|
918
|
+
}) ||
|
|
919
|
+
returnValueKeys.some(
|
|
920
|
+
(key) =>
|
|
921
|
+
key.includes('functionCallReturnValue.') ||
|
|
922
|
+
key.includes('functionCallReturnValue['),
|
|
923
|
+
);
|
|
862
924
|
|
|
863
925
|
// Check if this is a validation function that should always be mocked
|
|
864
926
|
const isValidationFn = isValidationFunction(entityName);
|
|
@@ -5,6 +5,8 @@ import {
|
|
|
5
5
|
measureAndReportExecutionTime,
|
|
6
6
|
ProjectAnalyzer,
|
|
7
7
|
} from '~codeyam/analyze';
|
|
8
|
+
import { transformationTracer } from '../scenarios/TransformationTracer';
|
|
9
|
+
import { getFileByPathSafe } from '../../utils/getFileByPath';
|
|
8
10
|
import trackEntityCircularDependencies from './trackEntityCircularDependencies';
|
|
9
11
|
import validateDependencyAnalyses from './validateDependencyAnalyses';
|
|
10
12
|
import extractClassMethods from './analyzeEntities/extractClassMethods';
|
|
@@ -306,6 +308,10 @@ export default async function analyzeEntities({
|
|
|
306
308
|
awsLog(
|
|
307
309
|
`CodeYam: analyzeEntities: Analysis completed with ${analyses.length} analyses`,
|
|
308
310
|
);
|
|
311
|
+
|
|
312
|
+
// Flush transformation trace if tracing is enabled
|
|
313
|
+
transformationTracer.flush();
|
|
314
|
+
|
|
309
315
|
return analyses;
|
|
310
316
|
|
|
311
317
|
// PHASE 3: Pure graph traversal
|
|
@@ -388,10 +394,19 @@ export default async function analyzeEntities({
|
|
|
388
394
|
// Circular dependency detected in path - skip
|
|
389
395
|
continue;
|
|
390
396
|
}
|
|
391
|
-
// If already visited via another traversal path,
|
|
392
|
-
//
|
|
393
|
-
//
|
|
397
|
+
// If already visited via another traversal path, check if it's a leaf.
|
|
398
|
+
// If it's a leaf, we should still wait for it to complete.
|
|
399
|
+
// Only skip if we've already explored it and it's NOT a leaf (meaning it's
|
|
400
|
+
// blocked on something else - continuing to traverse would cause a deadlock).
|
|
394
401
|
if (visited.has(dependentEntityKey)) {
|
|
402
|
+
// If the visited entity is a leaf, we should wait for it to complete
|
|
403
|
+
// before processing this entity. Don't skip it!
|
|
404
|
+
if (leafKeys.has(dependentEntityKey)) {
|
|
405
|
+
// It's a leaf that hasn't completed yet - wait for it
|
|
406
|
+
isLeaf = false;
|
|
407
|
+
continue;
|
|
408
|
+
}
|
|
409
|
+
// If it's not a leaf, it's blocked on something else - skip to avoid deadlock
|
|
395
410
|
continue;
|
|
396
411
|
}
|
|
397
412
|
isLeaf = false;
|
|
@@ -426,7 +441,7 @@ export default async function analyzeEntities({
|
|
|
426
441
|
}
|
|
427
442
|
|
|
428
443
|
const file =
|
|
429
|
-
entity.file ||
|
|
444
|
+
entity.file || getFileByPathSafe(projectAnalyzer, entity.filePath);
|
|
430
445
|
if (!file) {
|
|
431
446
|
awsLog(
|
|
432
447
|
`CodeYam: analyzeEntities: File not found for entity: ${entityKey}`,
|
|
@@ -100,6 +100,12 @@ export function getCandidatesReadyForCapture(
|
|
|
100
100
|
continue;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
+
// Skip notExported entities - they can't be imported into the simulation
|
|
104
|
+
// environment and will always fail capture. Don't mark them as ready.
|
|
105
|
+
if (candidate.entity?.metadata?.notExported) {
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
|
|
103
109
|
// Get all transitive dependencies
|
|
104
110
|
const candidateKey = `${candidate.filePath}:${candidate.entityName}`;
|
|
105
111
|
const { missingDependencies } = getTransitiveDependencies(
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Entity } from '~codeyam/types';
|
|
2
2
|
import findOrCreateEntity from './findOrCreateEntity';
|
|
3
3
|
import { ProjectAnalyzer } from '../../ProjectAnalyzer';
|
|
4
|
+
import { getFileByPathSafe } from '../../utils/getFileByPath';
|
|
4
5
|
import { AnalysisContext } from '../../analysisContext';
|
|
5
6
|
|
|
6
7
|
// Track files we've already warned about to avoid duplicate warnings
|
|
@@ -71,8 +72,9 @@ export default async function gatherEntityMap({
|
|
|
71
72
|
// ` → imported export ${importedExportFilePath}:${importedExportName}`,
|
|
72
73
|
// );
|
|
73
74
|
|
|
74
|
-
const importedFile =
|
|
75
|
-
|
|
75
|
+
const importedFile = getFileByPathSafe(
|
|
76
|
+
projectAnalyzer,
|
|
77
|
+
importedExportFilePath,
|
|
76
78
|
);
|
|
77
79
|
|
|
78
80
|
if (!importedFile) {
|
package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts
CHANGED
|
@@ -69,9 +69,6 @@ export default function validateDependencyAnalyses({
|
|
|
69
69
|
|
|
70
70
|
// if the entity has duplicate dependencies, handle gracefully
|
|
71
71
|
if (dependentAnalyses[dependencyFilePath]?.[dependencyName]) {
|
|
72
|
-
// console.log(
|
|
73
|
-
// `CodeYam: validateDependencyAnalyses: Entity ${entity.filePath}:${entity.name} has duplicate dependency ${dependencyFilePath}:${dependencyName}. Skipping...`,
|
|
74
|
-
// );
|
|
75
72
|
continue;
|
|
76
73
|
}
|
|
77
74
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Entity, EntityType, File, ProjectFramework } from '~codeyam/types';
|
|
2
2
|
import { ProjectAnalyzer } from '../ProjectAnalyzer';
|
|
3
|
+
import { getFileByPathSafe } from '../utils/getFileByPath';
|
|
3
4
|
import { generateSha } from '~codeyam/database';
|
|
4
5
|
import { isRemixRoute } from '~codeyam/utils';
|
|
5
6
|
|
|
@@ -88,11 +89,9 @@ export default function analyzeRemixRoute(
|
|
|
88
89
|
// Find root.tsx for this route's webapp and add as implicit dependency
|
|
89
90
|
// This ensures root.tsx dependencies (like useLoaderData in AppContent) get analyzed for mocking
|
|
90
91
|
const routeAppDir = file.path.split('/routes/')[0];
|
|
91
|
-
const rootFile =
|
|
92
|
-
(
|
|
93
|
-
|
|
94
|
-
f.path === `${routeAppDir}/root.jsx`,
|
|
95
|
-
);
|
|
92
|
+
const rootFile =
|
|
93
|
+
getFileByPathSafe(projectAnalyzer, `${routeAppDir}/root.tsx`) ??
|
|
94
|
+
getFileByPathSafe(projectAnalyzer, `${routeAppDir}/root.jsx`);
|
|
96
95
|
|
|
97
96
|
const rootDependencies: Entity['metadata']['importedExports'] = [];
|
|
98
97
|
if (rootFile) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Entity, File, Project } from '~codeyam/types';
|
|
2
2
|
import { FileAnalyzer } from '../FileAnalyzer';
|
|
3
3
|
import { ProjectAnalyzer } from '../ProjectAnalyzer';
|
|
4
|
+
import { getFileByPathSafe } from '../utils/getFileByPath';
|
|
4
5
|
import type { FunctionDependenciesMap } from '../asts/sourceFiles/getPseudoFile';
|
|
5
6
|
// import { generateSha } from '~codeyam/database';
|
|
6
7
|
|
|
@@ -63,9 +64,7 @@ export default function getImportedExports(
|
|
|
63
64
|
imports[filePath].resolvedPath ??
|
|
64
65
|
filePath;
|
|
65
66
|
|
|
66
|
-
let importedExportFile =
|
|
67
|
-
(f) => f.path === searchPath,
|
|
68
|
-
);
|
|
67
|
+
let importedExportFile = getFileByPathSafe(projectAnalyzer, searchPath);
|
|
69
68
|
|
|
70
69
|
// Track the actual path we found (may differ from searchPath after dist->src mapping)
|
|
71
70
|
let actualResolvedPath = imports[filePath].resolvedPath;
|
|
@@ -84,7 +83,7 @@ export default function getImportedExports(
|
|
|
84
83
|
const srcPath = `${packagePath}/src/${relativePath}`
|
|
85
84
|
.replace(/\.d\.ts$/, '.ts')
|
|
86
85
|
.replace(/\.js$/, '.ts');
|
|
87
|
-
importedExportFile =
|
|
86
|
+
importedExportFile = getFileByPathSafe(projectAnalyzer, srcPath);
|
|
88
87
|
if (importedExportFile) {
|
|
89
88
|
actualResolvedPath = srcPath;
|
|
90
89
|
console.log(
|
|
@@ -97,7 +96,7 @@ export default function getImportedExports(
|
|
|
97
96
|
if (!importedExportFile) {
|
|
98
97
|
const srcPath = searchPath.replace('/dist/', '/src/');
|
|
99
98
|
// Try exact match first
|
|
100
|
-
importedExportFile =
|
|
99
|
+
importedExportFile = getFileByPathSafe(projectAnalyzer, srcPath);
|
|
101
100
|
if (importedExportFile) {
|
|
102
101
|
actualResolvedPath = srcPath;
|
|
103
102
|
console.log(
|
|
@@ -114,13 +113,16 @@ export default function getImportedExports(
|
|
|
114
113
|
const basePath = srcPath
|
|
115
114
|
.replace(/\.d\.ts$/, '')
|
|
116
115
|
.replace(/\.js$/, '');
|
|
117
|
-
importedExportFile =
|
|
118
|
-
(
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
116
|
+
importedExportFile =
|
|
117
|
+
getFileByPathSafe(projectAnalyzer, basePath + '.ts') ??
|
|
118
|
+
getFileByPathSafe(projectAnalyzer, basePath + '.tsx');
|
|
119
|
+
if (!importedExportFile) {
|
|
120
|
+
importedExportFile = project.files.find(
|
|
121
|
+
(f) =>
|
|
122
|
+
f.path.startsWith(basePath.replace('/index', '/')) &&
|
|
123
|
+
!f.path.includes('/dist/'),
|
|
124
|
+
);
|
|
125
|
+
}
|
|
124
126
|
if (importedExportFile) {
|
|
125
127
|
actualResolvedPath = importedExportFile.path;
|
|
126
128
|
console.log(
|