@codeyam/codeyam-cli 0.1.0-staging.1669d45 → 0.1.0-staging.1a2737b
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 +8 -8
- package/analyzer-template/log.txt +3 -3
- package/analyzer-template/package.json +19 -19
- package/analyzer-template/packages/ai/index.ts +16 -2
- package/analyzer-template/packages/ai/package.json +2 -2
- package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +110 -52
- package/analyzer-template/packages/ai/src/lib/astScopes/arrayDerivationDetector.ts +199 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +98 -9
- package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +139 -23
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.ts +6 -126
- package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +656 -28
- package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +94 -7
- package/analyzer-template/packages/ai/src/lib/completionCall.ts +198 -34
- package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +1331 -254
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +5 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +205 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +10 -2
- 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 +124 -17
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +140 -14
- 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/dataStructure/helpers/fixNullIdsBySchema.ts +129 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.ts +35 -0
- package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +183 -0
- package/analyzer-template/packages/ai/src/lib/e2eDataTracking.ts +334 -0
- package/analyzer-template/packages/ai/src/lib/extractCriticalDataKeys.ts +120 -0
- package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +58 -3
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +936 -7
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +35 -6
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +515 -6
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +1 -1
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +1540 -75
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +239 -0
- package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +51 -3
- package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
- package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +90 -96
- package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +10 -7
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChunkPrompt.ts +82 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateCriticalKeysPrompt.ts +103 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +44 -7
- package/analyzer-template/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.ts +391 -0
- package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +179 -45
- package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +26 -4
- 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/analysisContext.ts +44 -4
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/getNodeType.ts +1 -0
- 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 +99 -22
- 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 +33 -10
- 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 +193 -76
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +87 -25
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +269 -22
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +118 -10
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +647 -73
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +56 -11
- 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 +10 -10
- 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/debugReportsTable.ts +1 -1
- package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
- package/analyzer-template/packages/database/src/lib/loadAnalyses.ts +58 -1
- 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 +28 -0
- package/analyzer-template/packages/database/src/lib/loadEntities.ts +26 -3
- 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/analysesTable.d.ts.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/debugReportsTable.d.ts +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/loadAnalyses.d.ts +2 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js +45 -2
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js.map +1 -1
- 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 +3 -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 +22 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts +3 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +23 -4
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.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/index.d.ts +1 -1
- package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +25 -1
- package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.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 +56 -6
- 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/dist/utils/src/lib/safeFileName.d.ts +9 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +29 -3
- package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -1
- package/analyzer-template/packages/github/package.json +1 -1
- package/analyzer-template/packages/types/index.ts +1 -0
- package/analyzer-template/packages/types/src/types/Analysis.ts +25 -0
- 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 +70 -6
- package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
- package/analyzer-template/packages/utils/dist/types/index.d.ts +1 -1
- package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +25 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -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 +56 -6
- 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/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 +93 -2
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +9 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +29 -3
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -1
- package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +108 -2
- package/analyzer-template/packages/utils/src/lib/safeFileName.ts +48 -3
- 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 +436 -44
- 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 +18 -7
- package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
- package/analyzer-template/project/orchestrateCapture.ts +75 -7
- package/analyzer-template/project/reconcileMockDataKeys.ts +152 -9
- package/analyzer-template/project/runAnalysis.ts +4 -0
- package/analyzer-template/project/start.ts +35 -11
- package/analyzer-template/project/writeMockDataTsx.ts +295 -10
- package/analyzer-template/project/writeScenarioComponents.ts +237 -32
- 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 +359 -14
- 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 +7 -5
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture.js +62 -7
- package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +126 -9
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
- package/background/src/lib/virtualized/project/runAnalysis.js +3 -0
- package/background/src/lib/virtualized/project/runAnalysis.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 +251 -6
- package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
- package/background/src/lib/virtualized/project/writeScenarioComponents.js +173 -30
- 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 +32 -18
- 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 +4 -2
- 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 +31 -20
- 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 +49 -257
- package/codeyam-cli/src/commands/init.js.map +1 -1
- package/codeyam-cli/src/commands/memory.js +307 -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 +14 -2
- package/codeyam-cli/src/commands/verify.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +179 -0
- package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +128 -82
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
- package/codeyam-cli/src/utils/analysisRunner.js +21 -2
- 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 +90 -19
- package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/utils/generateReport.js +2 -2
- package/codeyam-cli/src/utils/install-skills.js +77 -38
- package/codeyam-cli/src/utils/install-skills.js.map +1 -1
- package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
- package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
- package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
- package/codeyam-cli/src/utils/npmVersionCheck.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 +5 -0
- package/codeyam-cli/src/utils/queue/job.js.map +1 -1
- package/codeyam-cli/src/utils/queue/manager.js +6 -0
- 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__/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 +74 -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 +376 -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 +116 -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/serverState.js +37 -10
- package/codeyam-cli/src/utils/serverState.js.map +1 -1
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +21 -42
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
- package/codeyam-cli/src/utils/simulationGateMiddleware.js +138 -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/versionInfo.js +25 -0
- package/codeyam-cli/src/utils/versionInfo.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 +22 -6
- 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 +50 -0
- package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/webserver/bootstrap.js +51 -0
- package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/CopyButton-jNYXRRNI.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-bwuHPyTa.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-COi5OvsN.js → EntityTypeBadge-CvzqMxcu.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-BwdQv49w.js → EntityTypeIcon-BH0XDim7.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{InlineSpinner-CEleMv_j.js → InlineSpinner-EhOseatT.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-D68KarMg.js → InteractivePreview-yjIHlOGa.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-L75Wvqgw.js → LibraryFunctionPreview-Cq5o8jL4.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-C53WM8qn.js → LoadingDots-BvMu2i-g.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-CrNkmy4i.js → LogViewer-kgBTLoJD.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-BzPgx-xO.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-CQifa1n-.js → SafeScreenshot-CwZrv-Ok.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-CyaBFX7l.js → ScenarioViewer-BX2Ny2Qj.js} +3 -13
- package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-D36O1rzU.js → TruncatedFilePath-CDpEprKa.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/_index-BRx8ZGZo.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-4S4yPfFw.js +27 -0
- package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-DHKuQSmR.js +17 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.agent-transcripts-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.health-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.restart-server-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-D4IPYH_y.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-DgTPh8H-.js → chevron-down-CG65viiV.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{chunk-EPOLDU6W-DdQKK6on.js → chunk-JZWAC4HX-DB3aFuEO.js} +12 -12
- package/codeyam-cli/src/webserver/build/client/assets/{circle-check-Dmr2bb1R.js → circle-check-igfMr5DY.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/copy-Coc4o_8c.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-Do4ZLUYa.js → createLucideIcon-D1zB-pYc.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-JTAjQ54M.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-CbdFyxZh.js → entity._sha._-B0h9AqE6.js} +12 -12
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.fullscreen-B4iCfs5M.js → entity._sha.scenarios._scenarioId.fullscreen-DjLxr2JB.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.create-scenario-wDWZZO1W.js → entity._sha_.create-scenario-CtYowLOt.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-BMbl7MeQ.js → entity._sha_.edit._scenarioId-PePWg17F.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entry.client-5wRKRIH9.js → entry.client-I-Wo99C_.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DD3SDH7t.js → fileTableUtils-9sMMAiWJ.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/files-Co65J0s3.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{git-zXjT7J0G.js → git-BdHOxVfg.js} +8 -8
- package/codeyam-cli/src/webserver/build/client/assets/globals-BSZfYCkU.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{index-DLbXwndH.js → index-CUM5iXwc.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{index-gPZ-lad1.js → index-_417gcQW.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/labs-BK0C1H1T.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-BsPXJ81F.js → loader-circle-TzRHMVog.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-040dab1c.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/memory-UIDVz141.js +92 -0
- package/codeyam-cli/src/webserver/build/client/assets/pause-hjzB7t2z.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/root-D1WadSdf.js +62 -0
- package/codeyam-cli/src/webserver/build/client/assets/{search-P2FKIUql.js → search-DcAwD_Ln.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/settings-CclxrcPK.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{simulations-L18M6-kN.js → simulations-DVNJVQgD.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/terminal-DbEAHMbA.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-BDz7kbVA.js → triangle-alert-CAD5b1o_.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useCustomSizes-29dDmbH8.js → useCustomSizes-BqgrAzs3.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-BUm0UVJm.js → useLastLogLine-DAFqfEDH.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useReportContext-CkIOKTrZ.js → useReportContext-DZlYx2c4.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useToast-KKw5kTn-.js → useToast-ihdMtlf6.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/index-B3dE0r28.js +1 -0
- package/codeyam-cli/src/webserver/build/server/assets/server-build-DYbfdxa3.js +273 -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:debug.md → codeyam-debug.md} +48 -4
- package/codeyam-cli/templates/codeyam-diagnose.md +481 -0
- package/codeyam-cli/templates/codeyam-memory-hook.sh +199 -0
- package/codeyam-cli/templates/codeyam-memory.md +396 -0
- package/codeyam-cli/templates/codeyam-new-rule.md +13 -0
- 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/rule-notification-hook.py +56 -0
- package/codeyam-cli/templates/rule-reflection-hook.py +627 -0
- package/codeyam-cli/templates/rules-instructions.md +132 -0
- package/package.json +18 -15
- package/packages/ai/index.js +7 -3
- package/packages/ai/index.js.map +1 -1
- package/packages/ai/src/lib/analyzeScope.js +91 -30
- package/packages/ai/src/lib/analyzeScope.js.map +1 -1
- package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js +150 -0
- package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js.map +1 -0
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +78 -8
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
- package/packages/ai/src/lib/astScopes/methodSemantics.js +109 -23
- 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/patterns/variableDeclarationHandler.js +1 -102
- package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
- package/packages/ai/src/lib/astScopes/processExpression.js +518 -28
- 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 +161 -30
- package/packages/ai/src/lib/completionCall.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1061 -174
- 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/equivalencyManagers/frameworks/MuiManager.js +179 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +7 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.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 +106 -13
- 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 +122 -12
- 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/dataStructure/helpers/fixNullIdsBySchema.js +107 -0
- package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js.map +1 -0
- package/packages/ai/src/lib/dataStructureChunking.js +130 -0
- package/packages/ai/src/lib/dataStructureChunking.js.map +1 -0
- package/packages/ai/src/lib/e2eDataTracking.js +241 -0
- package/packages/ai/src/lib/e2eDataTracking.js.map +1 -0
- package/packages/ai/src/lib/extractCriticalDataKeys.js +96 -0
- package/packages/ai/src/lib/extractCriticalDataKeys.js.map +1 -0
- 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 +734 -8
- package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarios.js +26 -2
- package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
- package/packages/ai/src/lib/generateExecutionFlows.js +376 -4
- package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +1124 -59
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -1
- package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js.map +1 -0
- package/packages/ai/src/lib/isolateScopes.js +39 -3
- package/packages/ai/src/lib/isolateScopes.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/mergeStatements.js +70 -51
- package/packages/ai/src/lib/mergeStatements.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/gatherAttributesMap.js +10 -4
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js +54 -0
- package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +30 -7
- package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js +335 -0
- package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js.map +1 -0
- package/packages/ai/src/lib/resolvePathToControllable.js +155 -41
- package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -1
- package/packages/ai/src/lib/worker/SerializableDataStructure.js +7 -0
- 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/analysisContext.js +30 -5
- package/packages/analyze/src/lib/analysisContext.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/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 +72 -10
- 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 +31 -10
- 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 +164 -68
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +75 -21
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +185 -20
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +57 -9
- package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +542 -53
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +46 -9
- package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.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/loadAnalyses.js +45 -2
- package/packages/database/src/lib/loadAnalyses.js.map +1 -1
- 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 +22 -1
- package/packages/database/src/lib/loadCommits.js.map +1 -1
- package/packages/database/src/lib/loadEntities.js +23 -4
- package/packages/database/src/lib/loadEntities.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/packages/types/index.js.map +1 -1
- package/packages/utils/src/lib/fs/rsyncCopy.js +93 -2
- package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
- package/packages/utils/src/lib/safeFileName.js +29 -3
- package/packages/utils/src/lib/safeFileName.js.map +1 -1
- package/scripts/finalize-analyzer.cjs +8 -76
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-vauWK972.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-DzJRkCkr.js +0 -11
- package/codeyam-cli/src/webserver/build/client/assets/_index-Be83mo_j.js +0 -11
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-BN6wu6Y-.js +0 -37
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-Bn6aCAy_.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/files-DKyMFI90.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/globals-DTTQ3gY7.css +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-22590fcf.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/root-BsAarjAM.js +0 -57
- package/codeyam-cli/src/webserver/build/client/assets/settings-B2eDuBj8.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/index-BND5I5fv.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/server-build-CFXnd7MG.js +0 -228
- package/codeyam-cli/templates/codeyam:diagnose.md +0 -625
|
@@ -16,7 +16,8 @@ import { awsLog } from '~codeyam/utils';
|
|
|
16
16
|
import gatherDataForMocks from './gatherDataForMocks';
|
|
17
17
|
import enrichArrayTypesFromChildSignatures from './enrichArrayTypesFromChildSignatures';
|
|
18
18
|
import enrichUnknownTypesFromSourceEquivalencies from './enrichUnknownTypesFromSourceEquivalencies';
|
|
19
|
-
|
|
19
|
+
import { transformationTracer } from './TransformationTracer';
|
|
20
|
+
// import propagateArrayItemSchemas from './propagateArrayItemSchemas';
|
|
20
21
|
export interface GenerateDataStructureArgs {
|
|
21
22
|
entity: Entity;
|
|
22
23
|
dependentAnalyses: ReadonlyAnalysisMap;
|
|
@@ -163,6 +164,25 @@ export default function generateDataStructure({
|
|
|
163
164
|
return acc;
|
|
164
165
|
}, {} as ReadonlyAnalysisMap);
|
|
165
166
|
|
|
167
|
+
// Include same-file child components in nonMockedDependentAnalyses.
|
|
168
|
+
// Same-file components (e.g., AgentCard defined in the same file as AgentTranscriptsPage)
|
|
169
|
+
// are NOT in importedExports, so the reduce above never includes them.
|
|
170
|
+
// But they ARE in dependentAnalyses and their full signatureSchema (with all prop fields)
|
|
171
|
+
// needs to be merged into the parent's dependencySchemas for array enrichment to work.
|
|
172
|
+
|
|
173
|
+
const sameFileAnalyses = dependentAnalyses[entity.filePath];
|
|
174
|
+
if (sameFileAnalyses) {
|
|
175
|
+
for (const name in sameFileAnalyses) {
|
|
176
|
+
if (name === entity.name) continue;
|
|
177
|
+
if (nonMockedDependentAnalyses[entity.filePath]?.[name]) continue;
|
|
178
|
+
const childAnalysis = sameFileAnalyses[name];
|
|
179
|
+
if (childAnalysis?.entityType === 'visual') {
|
|
180
|
+
nonMockedDependentAnalyses[entity.filePath] ||= {};
|
|
181
|
+
nonMockedDependentAnalyses[entity.filePath][name] = childAnalysis;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
166
186
|
// For non-mocked child components (like visual components), include their mocked
|
|
167
187
|
// dependencies in allImportedExports. This ensures that when a parent component
|
|
168
188
|
// renders a child that uses the same hook with different destructure patterns,
|
|
@@ -256,8 +276,10 @@ export default function generateDataStructure({
|
|
|
256
276
|
);
|
|
257
277
|
|
|
258
278
|
if (existingImport) {
|
|
259
|
-
// Merge
|
|
260
|
-
|
|
279
|
+
// Merge calls from child into existing import
|
|
280
|
+
// Note: Check length > 0 because empty array [] is truthy but has no variable names
|
|
281
|
+
if (imported.callVariableNames?.length && imported.calls) {
|
|
282
|
+
// Case 1: Both calls and callVariableNames are set - merge as pairs
|
|
261
283
|
existingImport.calls = existingImport.calls || [];
|
|
262
284
|
existingImport.callVariableNames =
|
|
263
285
|
existingImport.callVariableNames || [];
|
|
@@ -274,6 +296,18 @@ export default function generateDataStructure({
|
|
|
274
296
|
existingImport.callVariableNames.push(varName);
|
|
275
297
|
}
|
|
276
298
|
}
|
|
299
|
+
} else if (imported.calls) {
|
|
300
|
+
// Case 2: Only calls are set (no callVariableNames) - common with tRPC
|
|
301
|
+
// where destructuring like `const { data, isLoading } = trpc.xxx.useQuery()`
|
|
302
|
+
// doesn't create a variable name for the hook call itself
|
|
303
|
+
existingImport.calls = existingImport.calls || [];
|
|
304
|
+
|
|
305
|
+
// Add each call that doesn't already exist
|
|
306
|
+
for (const call of imported.calls) {
|
|
307
|
+
if (!existingImport.calls.includes(call)) {
|
|
308
|
+
existingImport.calls.push(call);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
277
311
|
}
|
|
278
312
|
} else {
|
|
279
313
|
// Add new import
|
|
@@ -427,6 +461,18 @@ export default function generateDataStructure({
|
|
|
427
461
|
|
|
428
462
|
const { isolatedDataStructure } = entity.metadata;
|
|
429
463
|
|
|
464
|
+
// Transformation tracing: start entity and capture isolated data structure
|
|
465
|
+
transformationTracer.startEntity({
|
|
466
|
+
name: entity.name,
|
|
467
|
+
entityType: entity.entityType,
|
|
468
|
+
filePath: entity.filePath,
|
|
469
|
+
});
|
|
470
|
+
transformationTracer.snapshot(entity.name, 'isolated', {
|
|
471
|
+
signatureSchema: isolatedDataStructure.signatureSchema,
|
|
472
|
+
returnValueSchema: isolatedDataStructure.returnValueSchema,
|
|
473
|
+
dependencySchemas: isolatedDataStructure.dependencySchemas,
|
|
474
|
+
});
|
|
475
|
+
|
|
430
476
|
const mergedDataStructure = mergeInDependentDataStructure({
|
|
431
477
|
importedExports: allImportedExports,
|
|
432
478
|
dependentAnalyses: nonMockedDependentAnalyses,
|
|
@@ -444,6 +490,13 @@ export default function generateDataStructure({
|
|
|
444
490
|
mergedDataStructure.environmentVariables =
|
|
445
491
|
isolatedDataStructure.environmentVariables || [];
|
|
446
492
|
|
|
493
|
+
// Transformation tracing: capture merged data structure
|
|
494
|
+
transformationTracer.snapshot(entity.name, 'merged', {
|
|
495
|
+
signatureSchema: mergedDataStructure.signatureSchema,
|
|
496
|
+
returnValueSchema: mergedDataStructure.returnValueSchema,
|
|
497
|
+
dependencySchemas: mergedDataStructure.dependencySchemas,
|
|
498
|
+
});
|
|
499
|
+
|
|
447
500
|
// Merge collected child dependency schemas into mergedDataStructure.
|
|
448
501
|
// This ensures that when gatherDataForMocks looks up schemas for child imports,
|
|
449
502
|
// the child's schemas are available.
|
|
@@ -456,11 +509,34 @@ export default function generateDataStructure({
|
|
|
456
509
|
|
|
457
510
|
if (existingSchema) {
|
|
458
511
|
// Merge schemas - child schemas add to parent schemas
|
|
512
|
+
// But prefer more specific types (without | undefined) when both exist
|
|
513
|
+
const mergedSignatureSchema = { ...existingSchema.signatureSchema };
|
|
514
|
+
for (const path in childSchema.signatureSchema) {
|
|
515
|
+
const existingType = mergedSignatureSchema[path];
|
|
516
|
+
const childType = childSchema.signatureSchema[path];
|
|
517
|
+
if (!existingType) {
|
|
518
|
+
mergedSignatureSchema[path] = childType;
|
|
519
|
+
} else {
|
|
520
|
+
// Prefer the more specific (narrower) type
|
|
521
|
+
const existingIsOptional =
|
|
522
|
+
existingType.includes('| undefined') ||
|
|
523
|
+
existingType.includes('| null');
|
|
524
|
+
const childIsOptional =
|
|
525
|
+
childType.includes('| undefined') ||
|
|
526
|
+
childType.includes('| null');
|
|
527
|
+
if (childIsOptional && !existingIsOptional) {
|
|
528
|
+
// Keep existing - it's more specific
|
|
529
|
+
} else if (!childIsOptional && existingIsOptional) {
|
|
530
|
+
// Use child - it's more specific
|
|
531
|
+
mergedSignatureSchema[path] = childType;
|
|
532
|
+
} else {
|
|
533
|
+
// Same specificity - use child (original behavior)
|
|
534
|
+
mergedSignatureSchema[path] = childType;
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
}
|
|
459
538
|
mergedDataStructure.dependencySchemas[schemaFilePath][schemaName] = {
|
|
460
|
-
signatureSchema:
|
|
461
|
-
...existingSchema.signatureSchema,
|
|
462
|
-
...childSchema.signatureSchema,
|
|
463
|
-
},
|
|
539
|
+
signatureSchema: mergedSignatureSchema,
|
|
464
540
|
returnValueSchema: mergeJsonTypeDefinitions(
|
|
465
541
|
existingSchema.returnValueSchema as Record<string, unknown>,
|
|
466
542
|
childSchema.returnValueSchema as Record<string, unknown>,
|
|
@@ -474,6 +550,13 @@ export default function generateDataStructure({
|
|
|
474
550
|
}
|
|
475
551
|
}
|
|
476
552
|
|
|
553
|
+
// Transformation tracing: capture after child schemas merged
|
|
554
|
+
transformationTracer.snapshot(entity.name, 'childSchemasMerged', {
|
|
555
|
+
signatureSchema: mergedDataStructure.signatureSchema,
|
|
556
|
+
returnValueSchema: mergedDataStructure.returnValueSchema,
|
|
557
|
+
dependencySchemas: mergedDataStructure.dependencySchemas,
|
|
558
|
+
});
|
|
559
|
+
|
|
477
560
|
// console.info(
|
|
478
561
|
// 'CODEYAM DEBUG: end merge',
|
|
479
562
|
// JSON.stringify(
|
|
@@ -496,65 +579,223 @@ export default function generateDataStructure({
|
|
|
496
579
|
|
|
497
580
|
// Deduplicate function schemas in the merged data structure
|
|
498
581
|
// The merge process might introduce duplicates even if individual schemas were clean
|
|
582
|
+
// Trace deduplication of signatureSchema
|
|
583
|
+
const sigBefore = { ...mergedDataStructure.signatureSchema };
|
|
499
584
|
mergedDataStructure.signatureSchema = deduplicateFunctionSchemas(
|
|
500
585
|
mergedDataStructure.signatureSchema,
|
|
501
586
|
);
|
|
587
|
+
transformationTracer.traceSchemaTransformResult(
|
|
588
|
+
entity.name,
|
|
589
|
+
'deduplicateFunctionSchemas',
|
|
590
|
+
sigBefore,
|
|
591
|
+
mergedDataStructure.signatureSchema,
|
|
592
|
+
{ schemaType: 'signature' },
|
|
593
|
+
);
|
|
594
|
+
|
|
595
|
+
// Trace deduplication of returnValueSchema
|
|
596
|
+
const rvBefore = { ...mergedDataStructure.returnValueSchema };
|
|
502
597
|
mergedDataStructure.returnValueSchema = deduplicateFunctionSchemas(
|
|
503
598
|
mergedDataStructure.returnValueSchema,
|
|
504
599
|
);
|
|
600
|
+
transformationTracer.traceSchemaTransformResult(
|
|
601
|
+
entity.name,
|
|
602
|
+
'deduplicateFunctionSchemas',
|
|
603
|
+
rvBefore,
|
|
604
|
+
mergedDataStructure.returnValueSchema,
|
|
605
|
+
{ schemaType: 'returnValue' },
|
|
606
|
+
);
|
|
505
607
|
|
|
506
|
-
// Also deduplicate dependency schemas
|
|
608
|
+
// Also deduplicate dependency schemas and clear known attributes
|
|
507
609
|
for (const filePath in mergedDataStructure.dependencySchemas) {
|
|
508
|
-
for (const
|
|
610
|
+
for (const depEntityName in mergedDataStructure.dependencySchemas[
|
|
509
611
|
filePath
|
|
510
612
|
]) {
|
|
511
613
|
const depSchema =
|
|
512
|
-
mergedDataStructure.dependencySchemas[filePath][
|
|
614
|
+
mergedDataStructure.dependencySchemas[filePath][depEntityName];
|
|
615
|
+
|
|
616
|
+
// Trace deduplication of dependency signatureSchema
|
|
617
|
+
const depSigBefore = { ...depSchema.signatureSchema };
|
|
513
618
|
depSchema.signatureSchema = deduplicateFunctionSchemas(
|
|
514
619
|
depSchema.signatureSchema,
|
|
515
620
|
);
|
|
621
|
+
transformationTracer.traceSchemaTransformResult(
|
|
622
|
+
entity.name,
|
|
623
|
+
'deduplicateFunctionSchemas',
|
|
624
|
+
depSigBefore,
|
|
625
|
+
depSchema.signatureSchema,
|
|
626
|
+
{ filePath, dependencyName: depEntityName, schemaType: 'signature' },
|
|
627
|
+
);
|
|
628
|
+
|
|
629
|
+
// Trace deduplication of dependency returnValueSchema
|
|
630
|
+
const depRvBefore = { ...depSchema.returnValueSchema };
|
|
516
631
|
depSchema.returnValueSchema = deduplicateFunctionSchemas(
|
|
517
632
|
depSchema.returnValueSchema,
|
|
518
633
|
);
|
|
634
|
+
transformationTracer.traceSchemaTransformResult(
|
|
635
|
+
entity.name,
|
|
636
|
+
'deduplicateFunctionSchemas',
|
|
637
|
+
depRvBefore,
|
|
638
|
+
depSchema.returnValueSchema,
|
|
639
|
+
{
|
|
640
|
+
filePath,
|
|
641
|
+
dependencyName: depEntityName,
|
|
642
|
+
schemaType: 'returnValue',
|
|
643
|
+
},
|
|
644
|
+
);
|
|
645
|
+
|
|
646
|
+
// Fill in type gaps BEFORE clearing attributes, so evidence like .includes()
|
|
647
|
+
// is used for type inference before being deleted
|
|
648
|
+
|
|
649
|
+
depSchema.signatureSchema = fillInDirectSchemaGapsAndUnknowns({
|
|
650
|
+
schema: depSchema.signatureSchema,
|
|
651
|
+
});
|
|
652
|
+
|
|
653
|
+
depSchema.returnValueSchema = fillInDirectSchemaGapsAndUnknowns({
|
|
654
|
+
schema: depSchema.returnValueSchema,
|
|
655
|
+
});
|
|
519
656
|
|
|
520
|
-
clearAttributesFromMapping
|
|
521
|
-
|
|
657
|
+
// Trace clearAttributesFromMapping on dependency schemas
|
|
658
|
+
transformationTracer.traceSchemaTransform(
|
|
659
|
+
entity.name,
|
|
660
|
+
'clearAttributesFromMapping',
|
|
661
|
+
depSchema.signatureSchema,
|
|
662
|
+
clearAttributesFromMapping,
|
|
663
|
+
{ filePath, dependencyName: depEntityName, schemaType: 'signature' },
|
|
664
|
+
);
|
|
665
|
+
|
|
666
|
+
transformationTracer.traceSchemaTransform(
|
|
667
|
+
entity.name,
|
|
668
|
+
'clearAttributesFromMapping',
|
|
669
|
+
depSchema.returnValueSchema,
|
|
670
|
+
clearAttributesFromMapping,
|
|
671
|
+
{
|
|
672
|
+
filePath,
|
|
673
|
+
dependencyName: depEntityName,
|
|
674
|
+
schemaType: 'returnValue',
|
|
675
|
+
},
|
|
676
|
+
);
|
|
522
677
|
}
|
|
523
678
|
}
|
|
524
679
|
|
|
680
|
+
// Transformation tracing: capture after deduplication
|
|
681
|
+
transformationTracer.snapshot(entity.name, 'deduplicated', {
|
|
682
|
+
signatureSchema: mergedDataStructure.signatureSchema,
|
|
683
|
+
returnValueSchema: mergedDataStructure.returnValueSchema,
|
|
684
|
+
dependencySchemas: mergedDataStructure.dependencySchemas,
|
|
685
|
+
});
|
|
686
|
+
|
|
525
687
|
analysis.metadata ||= {};
|
|
526
688
|
analysis.metadata.mergedDataStructure = mergedDataStructure;
|
|
527
689
|
|
|
528
690
|
// Enrich mocked dependency array types with fields from child component signatures
|
|
529
691
|
// This ensures that when getSurveysAction returns { data: array }, and SurveyCard
|
|
530
|
-
// expects survey.updatedAt, the array element type includes updatedAt
|
|
531
|
-
|
|
532
|
-
|
|
692
|
+
// expects survey.updatedAt, the array element type includes updatedAt.
|
|
693
|
+
// Uses usageEquivalencies to trace data flow and only enrich arrays with fields
|
|
694
|
+
// from children that actually receive elements from that specific array.
|
|
695
|
+
transformationTracer.traceDependencySchemaChanges(
|
|
696
|
+
entity.name,
|
|
697
|
+
'enrichArrayTypesFromChildSignatures',
|
|
533
698
|
mergedDataStructure.dependencySchemas,
|
|
699
|
+
() =>
|
|
700
|
+
enrichArrayTypesFromChildSignatures(
|
|
701
|
+
allImportedExports,
|
|
702
|
+
mergedDataStructure.dependencySchemas,
|
|
703
|
+
mergedDataStructure.usageEquivalencies,
|
|
704
|
+
),
|
|
534
705
|
);
|
|
535
706
|
|
|
707
|
+
// Transformation tracing: capture after array types enriched
|
|
708
|
+
transformationTracer.snapshot(entity.name, 'arrayTypesEnriched', {
|
|
709
|
+
signatureSchema: mergedDataStructure.signatureSchema,
|
|
710
|
+
returnValueSchema: mergedDataStructure.returnValueSchema,
|
|
711
|
+
dependencySchemas: mergedDataStructure.dependencySchemas,
|
|
712
|
+
});
|
|
713
|
+
|
|
536
714
|
// Enrich mocked dependency unknown types using sourceEquivalencies
|
|
537
715
|
// When a mocked dependency returns unknown, but that data flows to a child component
|
|
538
716
|
// with a known type, propagate the type back to the mocked dependency.
|
|
539
717
|
// This prevents fillInDirectSchemaGapsAndUnknowns from guessing incorrectly
|
|
540
718
|
// (e.g., 'data' becoming 'number' because pluralize thinks it's plural)
|
|
541
|
-
|
|
542
|
-
|
|
719
|
+
transformationTracer.traceDependencySchemaChanges(
|
|
720
|
+
entity.name,
|
|
721
|
+
'enrichUnknownTypesFromSourceEquivalencies',
|
|
543
722
|
mergedDataStructure.dependencySchemas,
|
|
544
|
-
|
|
723
|
+
() =>
|
|
724
|
+
enrichUnknownTypesFromSourceEquivalencies(
|
|
725
|
+
isolatedDataStructure.dependencySchemas || {},
|
|
726
|
+
mergedDataStructure.dependencySchemas,
|
|
727
|
+
allImportedExports,
|
|
728
|
+
),
|
|
545
729
|
);
|
|
546
730
|
|
|
547
|
-
|
|
731
|
+
// Transformation tracing: capture after unknown types enriched
|
|
732
|
+
transformationTracer.snapshot(entity.name, 'unknownTypesEnriched', {
|
|
733
|
+
signatureSchema: mergedDataStructure.signatureSchema,
|
|
734
|
+
returnValueSchema: mergedDataStructure.returnValueSchema,
|
|
735
|
+
dependencySchemas: mergedDataStructure.dependencySchemas,
|
|
736
|
+
});
|
|
737
|
+
|
|
738
|
+
// DISABLED: Testing if ternary fix eliminates the need for this heuristic
|
|
739
|
+
// Propagate array item schemas between arrays that likely have the same type.
|
|
740
|
+
// When one array (e.g., entities) has item schema traced but another similar array
|
|
741
|
+
// (e.g., currentEntities) doesn't (because it's only used in an OR expression fallback),
|
|
742
|
+
// copy the item schema from the rich array to the empty one.
|
|
743
|
+
// propagateArrayItemSchemas(mergedDataStructure.dependencySchemas);
|
|
744
|
+
|
|
745
|
+
let dataForMocks = gatherDataForMocks(
|
|
548
746
|
allImportedExports,
|
|
549
747
|
mergedDataStructure.dependencySchemas,
|
|
550
748
|
{ entityName: entity.name },
|
|
551
749
|
);
|
|
552
750
|
|
|
553
|
-
|
|
554
|
-
|
|
751
|
+
// Transformation tracing: capture after dataForMocks gathered
|
|
752
|
+
transformationTracer.snapshot(entity.name, 'dataForMocksGathered', {
|
|
753
|
+
signatureSchema: mergedDataStructure.signatureSchema,
|
|
754
|
+
returnValueSchema: mergedDataStructure.returnValueSchema,
|
|
755
|
+
dependencySchemas: mergedDataStructure.dependencySchemas,
|
|
756
|
+
dataForMocks,
|
|
555
757
|
});
|
|
556
758
|
|
|
557
|
-
|
|
759
|
+
// Merge dataForMocks from non-mocked child analyses to include transitive dependency data.
|
|
760
|
+
// This handles cases where grandchild trpc calls aren't in allImportedExports because
|
|
761
|
+
// the grandchild's analysis wasn't in dependentAnalyses.
|
|
762
|
+
//
|
|
763
|
+
// Issue 19 fix: The child's dataForMocks already contains merged data from its
|
|
764
|
+
// dependencies (including grandchildren). By merging the child's dataForMocks,
|
|
765
|
+
// we transitively include all nested dependency data.
|
|
766
|
+
for (const filePath in nonMockedDependentAnalyses) {
|
|
767
|
+
for (const name in nonMockedDependentAnalyses[filePath]) {
|
|
768
|
+
const childAnalysis = nonMockedDependentAnalyses[filePath][name];
|
|
769
|
+
const childDataForMocks =
|
|
770
|
+
childAnalysis?.metadata?.scenariosDataStructure?.dataForMocks;
|
|
771
|
+
if (childDataForMocks && Object.keys(childDataForMocks).length > 0) {
|
|
772
|
+
dataForMocks = mergeJsonTypeDefinitions(
|
|
773
|
+
dataForMocks as Record<string, unknown>,
|
|
774
|
+
childDataForMocks as Record<string, unknown>,
|
|
775
|
+
) as { [importAlias: string]: JsonTypeDefinition };
|
|
776
|
+
}
|
|
777
|
+
}
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
const finalizedArgumentsSchema = { ...mergedDataStructure.signatureSchema };
|
|
781
|
+
|
|
782
|
+
// Trace fillInDirectSchemaGapsAndUnknowns
|
|
783
|
+
transformationTracer.traceSchemaTransform(
|
|
784
|
+
entity.name,
|
|
785
|
+
'fillInDirectSchemaGapsAndUnknowns',
|
|
786
|
+
finalizedArgumentsSchema,
|
|
787
|
+
(schema) => fillInDirectSchemaGapsAndUnknowns({ schema }),
|
|
788
|
+
{ stage: 'finalization' },
|
|
789
|
+
);
|
|
790
|
+
|
|
791
|
+
// Trace clearAttributesFromMapping
|
|
792
|
+
transformationTracer.traceSchemaTransform(
|
|
793
|
+
entity.name,
|
|
794
|
+
'clearAttributesFromMapping',
|
|
795
|
+
finalizedArgumentsSchema,
|
|
796
|
+
clearAttributesFromMapping,
|
|
797
|
+
{ stage: 'finalization' },
|
|
798
|
+
);
|
|
558
799
|
|
|
559
800
|
const argumentsSchema = convertDotNotation(finalizedArgumentsSchema)
|
|
560
801
|
.signature as JsonTypeDefinition[];
|
|
@@ -564,6 +805,12 @@ export default function generateDataStructure({
|
|
|
564
805
|
dataForMocks,
|
|
565
806
|
};
|
|
566
807
|
|
|
808
|
+
// Transformation tracing: capture final scenariosDataStructure
|
|
809
|
+
transformationTracer.snapshot(entity.name, 'finalized', {
|
|
810
|
+
signatureSchema: finalizedArgumentsSchema,
|
|
811
|
+
dataForMocks,
|
|
812
|
+
});
|
|
813
|
+
|
|
567
814
|
return analysis;
|
|
568
815
|
} catch (e) {
|
|
569
816
|
awsLog('CodeYam Error: Error generating data structure', {
|
package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts
CHANGED
|
@@ -65,6 +65,10 @@ export default async function generateExecutionFlows({
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
if (!analysis.metadata.executionFlows) {
|
|
68
|
+
console.log(
|
|
69
|
+
`[GenerateExecutionFlows] Starting for ${entity.name} (${entity.filePath})`,
|
|
70
|
+
);
|
|
71
|
+
|
|
68
72
|
// Build childEntityMetadata from dependentAnalyses for child flow merging
|
|
69
73
|
// This maps child component names to their metadata (specifically isolatedDataStructure)
|
|
70
74
|
const childEntityMetadata = buildChildEntityMetadata(
|
|
@@ -72,6 +76,16 @@ export default async function generateExecutionFlows({
|
|
|
72
76
|
dependentAnalyses,
|
|
73
77
|
);
|
|
74
78
|
|
|
79
|
+
const childCount = Object.keys(childEntityMetadata).length;
|
|
80
|
+
console.log(
|
|
81
|
+
`[GenerateExecutionFlows] Built childEntityMetadata with ${childCount} children`,
|
|
82
|
+
);
|
|
83
|
+
if (childCount > 0) {
|
|
84
|
+
console.log(
|
|
85
|
+
`[GenerateExecutionFlows] Will merge flows from children: [${Object.keys(childEntityMetadata).join(', ')}]`,
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
|
|
75
89
|
const {
|
|
76
90
|
result: { executionFlows, llmCall: executionFlowsLLMCall },
|
|
77
91
|
} = await measureAndReportExecutionTime(
|
|
@@ -80,15 +94,24 @@ export default async function generateExecutionFlows({
|
|
|
80
94
|
entity,
|
|
81
95
|
mergedDataStructure: analysis.metadata.mergedDataStructure,
|
|
82
96
|
model,
|
|
83
|
-
childEntityMetadata:
|
|
84
|
-
Object.keys(childEntityMetadata).length > 0
|
|
85
|
-
? childEntityMetadata
|
|
86
|
-
: undefined,
|
|
97
|
+
childEntityMetadata: childCount > 0 ? childEntityMetadata : undefined,
|
|
87
98
|
}),
|
|
88
99
|
`Generating execution flows`,
|
|
89
100
|
updateProgress,
|
|
90
101
|
);
|
|
91
102
|
|
|
103
|
+
console.log(
|
|
104
|
+
`[GenerateExecutionFlows] Generated ${executionFlows.length} execution flows for ${entity.name}`,
|
|
105
|
+
);
|
|
106
|
+
for (const flow of executionFlows) {
|
|
107
|
+
const reqValues = flow.requiredValues
|
|
108
|
+
.map((rv) => `${rv.attributePath}=${rv.value}`)
|
|
109
|
+
.join(', ');
|
|
110
|
+
console.log(
|
|
111
|
+
`[GenerateExecutionFlows] - Flow '${flow.id}': ${flow.name} [${reqValues}]`,
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
|
|
92
115
|
analysis.metadata.executionFlows = executionFlows;
|
|
93
116
|
|
|
94
117
|
if (executionFlowsLLMCall) {
|
|
@@ -108,13 +131,20 @@ export default async function generateExecutionFlows({
|
|
|
108
131
|
* then looks them up in importedExports to get their file paths,
|
|
109
132
|
* then retrieves their metadata from dependentAnalyses.
|
|
110
133
|
*/
|
|
111
|
-
function buildChildEntityMetadata(
|
|
134
|
+
export function buildChildEntityMetadata(
|
|
112
135
|
entity: Entity,
|
|
113
136
|
dependentAnalyses?: ReadonlyAnalysisMap,
|
|
114
137
|
): Record<string, Entity['metadata']> {
|
|
115
138
|
const childEntityMetadata: Record<string, Entity['metadata']> = {};
|
|
116
139
|
|
|
140
|
+
console.log(
|
|
141
|
+
`[BuildChildMetadata] Starting for entity: ${entity.name} (${entity.filePath})`,
|
|
142
|
+
);
|
|
143
|
+
|
|
117
144
|
if (!dependentAnalyses) {
|
|
145
|
+
console.log(
|
|
146
|
+
`[BuildChildMetadata] No dependentAnalyses provided, returning empty`,
|
|
147
|
+
);
|
|
118
148
|
return childEntityMetadata;
|
|
119
149
|
}
|
|
120
150
|
|
|
@@ -122,18 +152,54 @@ function buildChildEntityMetadata(
|
|
|
122
152
|
entity.metadata?.isolatedDataStructure?.childBoundaryGatingConditions;
|
|
123
153
|
|
|
124
154
|
if (!childBoundaryGatingConditions) {
|
|
155
|
+
console.log(
|
|
156
|
+
`[BuildChildMetadata] No childBoundaryGatingConditions found in isolatedDataStructure`,
|
|
157
|
+
);
|
|
158
|
+
console.log(
|
|
159
|
+
`[BuildChildMetadata] isolatedDataStructure keys: ${Object.keys(entity.metadata?.isolatedDataStructure ?? {}).join(', ') || 'none'}`,
|
|
160
|
+
);
|
|
125
161
|
return childEntityMetadata;
|
|
126
162
|
}
|
|
127
163
|
|
|
164
|
+
const childNames = Object.keys(childBoundaryGatingConditions);
|
|
165
|
+
console.log(
|
|
166
|
+
`[BuildChildMetadata] Found ${childNames.length} children in childBoundaryGatingConditions: [${childNames.join(', ')}]`,
|
|
167
|
+
);
|
|
168
|
+
|
|
169
|
+
// Log gating conditions for each child
|
|
170
|
+
for (const [childName, conditions] of Object.entries(
|
|
171
|
+
childBoundaryGatingConditions,
|
|
172
|
+
)) {
|
|
173
|
+
const isUnconditional = conditions.some(
|
|
174
|
+
(c) => c.location === 'unconditional',
|
|
175
|
+
);
|
|
176
|
+
console.log(
|
|
177
|
+
`[BuildChildMetadata] Child '${childName}': ${conditions.length} gating conditions, unconditional=${isUnconditional}`,
|
|
178
|
+
);
|
|
179
|
+
for (const condition of conditions) {
|
|
180
|
+
console.log(
|
|
181
|
+
`[BuildChildMetadata] - path='${condition.path}' location='${condition.location}' isNegated=${condition.isNegated ?? false}`,
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
128
186
|
const importedExports = entity.metadata?.importedExports ?? [];
|
|
187
|
+
console.log(
|
|
188
|
+
`[BuildChildMetadata] Entity has ${importedExports.length} importedExports`,
|
|
189
|
+
);
|
|
190
|
+
|
|
191
|
+
for (const childName of childNames) {
|
|
192
|
+
console.log(`[BuildChildMetadata] Looking up child '${childName}'...`);
|
|
129
193
|
|
|
130
|
-
for (const childName of Object.keys(childBoundaryGatingConditions)) {
|
|
131
194
|
// Find the child in importedExports to get its file path
|
|
132
195
|
const importedExport = importedExports.find(
|
|
133
196
|
(ie) => ie.name === childName || ie.resolvedName === childName,
|
|
134
197
|
);
|
|
135
198
|
|
|
136
199
|
if (!importedExport) {
|
|
200
|
+
console.log(
|
|
201
|
+
`[BuildChildMetadata] Child '${childName}' NOT FOUND in importedExports`,
|
|
202
|
+
);
|
|
137
203
|
continue;
|
|
138
204
|
}
|
|
139
205
|
|
|
@@ -142,15 +208,57 @@ function buildChildEntityMetadata(
|
|
|
142
208
|
importedExport.resolvedFilePath ?? importedExport.filePath;
|
|
143
209
|
const lookupName = importedExport.resolvedName ?? importedExport.name;
|
|
144
210
|
|
|
211
|
+
console.log(
|
|
212
|
+
`[BuildChildMetadata] Child '${childName}' found in importedExports: lookupPath='${lookupPath}' lookupName='${lookupName}'`,
|
|
213
|
+
);
|
|
214
|
+
|
|
145
215
|
// Look up the child's analysis in dependentAnalyses
|
|
146
216
|
const childAnalysis = dependentAnalyses[lookupPath]?.[lookupName];
|
|
147
217
|
|
|
148
|
-
if (childAnalysis
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
218
|
+
if (!childAnalysis) {
|
|
219
|
+
console.log(
|
|
220
|
+
`[BuildChildMetadata] Child '${childName}' analysis NOT FOUND in dependentAnalyses[${lookupPath}][${lookupName}]`,
|
|
221
|
+
);
|
|
222
|
+
console.log(
|
|
223
|
+
`[BuildChildMetadata] Available paths in dependentAnalyses: [${Object.keys(dependentAnalyses).slice(0, 10).join(', ')}...]`,
|
|
224
|
+
);
|
|
225
|
+
continue;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
if (!childAnalysis.entity?.metadata) {
|
|
229
|
+
console.log(
|
|
230
|
+
`[BuildChildMetadata] Child '${childName}' analysis found but entity.metadata is missing`,
|
|
231
|
+
);
|
|
232
|
+
continue;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
// Log what we found in the child's metadata
|
|
236
|
+
const childIsolated = childAnalysis.entity.metadata.isolatedDataStructure;
|
|
237
|
+
const childConditionalUsages = childIsolated?.conditionalUsages ?? {};
|
|
238
|
+
const childConditionalCount = Object.keys(childConditionalUsages).length;
|
|
239
|
+
|
|
240
|
+
console.log(
|
|
241
|
+
`[BuildChildMetadata] Child '${childName}' FOUND with metadata:`,
|
|
242
|
+
);
|
|
243
|
+
console.log(
|
|
244
|
+
`[BuildChildMetadata] - conditionalUsages: ${childConditionalCount} paths`,
|
|
245
|
+
);
|
|
246
|
+
if (childConditionalCount > 0) {
|
|
247
|
+
for (const [path, usages] of Object.entries(childConditionalUsages)) {
|
|
248
|
+
console.log(
|
|
249
|
+
`[BuildChildMetadata] - '${path}': ${(usages as any[]).length} usages`,
|
|
250
|
+
);
|
|
251
|
+
}
|
|
152
252
|
}
|
|
253
|
+
|
|
254
|
+
// Cast to mutable type - the metadata is only read, not modified
|
|
255
|
+
childEntityMetadata[childName] = childAnalysis.entity
|
|
256
|
+
.metadata as Entity['metadata'];
|
|
153
257
|
}
|
|
154
258
|
|
|
259
|
+
console.log(
|
|
260
|
+
`[BuildChildMetadata] RESULT: Found metadata for ${Object.keys(childEntityMetadata).length} children: [${Object.keys(childEntityMetadata).join(', ')}]`,
|
|
261
|
+
);
|
|
262
|
+
|
|
155
263
|
return childEntityMetadata;
|
|
156
264
|
}
|