@codeyam/codeyam-cli 0.1.0-staging.323686 → 0.1.0-staging.415103
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 +18 -18
- package/analyzer-template/packages/ai/index.ts +7 -1
- package/analyzer-template/packages/ai/package.json +3 -3
- package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +62 -18
- package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +101 -12
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
- package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +409 -50
- package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +21 -6
- package/analyzer-template/packages/ai/src/lib/completionCall.ts +114 -113
- package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +1250 -253
- 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 +31 -3
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +37 -15
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.ts +62 -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 +367 -96
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.ts +35 -0
- package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +40 -13
- package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +58 -3
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +393 -8
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +9 -5
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +145 -5
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +1 -1
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +649 -142
- 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/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/generateEntityScenarioDataGenerator.ts +24 -4
- 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/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 +119 -26
- 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 +89 -9
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +27 -4
- package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +0 -6
- package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +12 -0
- package/analyzer-template/packages/analyze/src/lib/files/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 +1352 -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 +87 -25
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +312 -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 +591 -75
- 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/index.ts +1 -0
- 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 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +1 -1
- package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +62 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
- package/analyzer-template/packages/database/src/lib/loadCommits.ts +31 -20
- package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +0 -5
- package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
- package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +151 -135
- package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatus.ts +58 -42
- package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.ts +81 -65
- package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +29 -1
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +33 -5
- package/analyzer-template/packages/github/dist/database/index.d.ts +1 -0
- package/analyzer-template/packages/github/dist/database/index.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/index.js +1 -0
- package/analyzer-template/packages/github/dist/database/index.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +4 -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 +8 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +20 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +45 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/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/kysely/tables/scenariosTable.d.ts +5 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +23 -13
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +100 -89
- package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js +41 -30
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +8 -0
- package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +10 -0
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
- package/analyzer-template/packages/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/ProjectMetadata.ts +8 -0
- package/analyzer-template/packages/types/src/types/Scenario.ts +10 -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/ProjectMetadata.d.ts +8 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +10 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/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/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +98 -3
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
- package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +121 -3
- package/analyzer-template/playwright/captureFromUrl.ts +89 -82
- package/analyzer-template/project/constructMockCode.ts +260 -60
- package/analyzer-template/project/orchestrateCapture.ts +4 -1
- package/analyzer-template/project/reconcileMockDataKeys.ts +19 -14
- package/analyzer-template/project/start.ts +3 -0
- package/analyzer-template/project/startScenarioCapture.ts +9 -0
- package/analyzer-template/project/writeClientLogRoute.ts +125 -0
- package/analyzer-template/project/writeMockDataTsx.ts +198 -8
- package/analyzer-template/project/writeScenarioComponents.ts +170 -29
- package/analyzer-template/project/writeSimpleRoot.ts +21 -11
- package/analyzer-template/tsconfig.json +13 -1
- package/background/src/lib/local/createLocalAnalyzer.js +1 -1
- package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
- package/background/src/lib/virtualized/project/constructMockCode.js +220 -45
- package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture.js +4 -1
- package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +17 -11
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
- package/background/src/lib/virtualized/project/start.js +2 -0
- package/background/src/lib/virtualized/project/start.js.map +1 -1
- package/background/src/lib/virtualized/project/startScenarioCapture.js +5 -0
- package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
- package/background/src/lib/virtualized/project/writeClientLogRoute.js +110 -0
- package/background/src/lib/virtualized/project/writeClientLogRoute.js.map +1 -0
- package/background/src/lib/virtualized/project/writeMockDataTsx.js +174 -4
- package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
- package/background/src/lib/virtualized/project/writeScenarioComponents.js +143 -27
- 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 +386 -9
- package/codeyam-cli/scripts/apply-setup.js.map +1 -1
- package/codeyam-cli/src/cli.js +33 -24
- package/codeyam-cli/src/cli.js.map +1 -1
- package/codeyam-cli/src/codeyam-cli.js +18 -2
- package/codeyam-cli/src/codeyam-cli.js.map +1 -1
- package/codeyam-cli/src/commands/analyze.js +21 -9
- package/codeyam-cli/src/commands/analyze.js.map +1 -1
- package/codeyam-cli/src/commands/baseline.js +2 -0
- package/codeyam-cli/src/commands/baseline.js.map +1 -1
- package/codeyam-cli/src/commands/debug.js +9 -5
- package/codeyam-cli/src/commands/debug.js.map +1 -1
- package/codeyam-cli/src/commands/default.js +87 -21
- package/codeyam-cli/src/commands/default.js.map +1 -1
- package/codeyam-cli/src/commands/editor.js +696 -0
- package/codeyam-cli/src/commands/editor.js.map +1 -0
- package/codeyam-cli/src/commands/init.js +75 -259
- package/codeyam-cli/src/commands/init.js.map +1 -1
- package/codeyam-cli/src/commands/memory.js +97 -92
- package/codeyam-cli/src/commands/memory.js.map +1 -1
- package/codeyam-cli/src/commands/recapture.js +2 -0
- package/codeyam-cli/src/commands/recapture.js.map +1 -1
- package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
- package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
- package/codeyam-cli/src/commands/setup-simulations.js +284 -0
- package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
- package/codeyam-cli/src/commands/test-startup.js +2 -0
- package/codeyam-cli/src/commands/test-startup.js.map +1 -1
- package/codeyam-cli/src/commands/verify.js +14 -2
- package/codeyam-cli/src/commands/verify.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +185 -0
- package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js +9 -0
- package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +154 -86
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
- package/codeyam-cli/src/utils/analyzer.js +7 -0
- package/codeyam-cli/src/utils/analyzer.js.map +1 -1
- package/codeyam-cli/src/utils/backgroundServer.js +109 -22
- package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/utils/devModeEvents.js +40 -0
- package/codeyam-cli/src/utils/devModeEvents.js.map +1 -0
- package/codeyam-cli/src/utils/fileMetadata.js +5 -0
- package/codeyam-cli/src/utils/fileMetadata.js.map +1 -1
- package/codeyam-cli/src/utils/fileWatcher.js +25 -9
- package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
- package/codeyam-cli/src/utils/generateReport.js +2 -2
- package/codeyam-cli/src/utils/git.js +52 -0
- package/codeyam-cli/src/utils/git.js.map +1 -1
- package/codeyam-cli/src/utils/install-skills.js +101 -45
- package/codeyam-cli/src/utils/install-skills.js.map +1 -1
- package/codeyam-cli/src/utils/interactiveSyncWatcher.js +126 -0
- package/codeyam-cli/src/utils/interactiveSyncWatcher.js.map +1 -0
- package/codeyam-cli/src/utils/labsAutoCheck.js +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/pathIgnoring.js +19 -7
- package/codeyam-cli/src/utils/pathIgnoring.js.map +1 -1
- package/codeyam-cli/src/utils/progress.js +7 -0
- package/codeyam-cli/src/utils/progress.js.map +1 -1
- package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js +11 -11
- package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js.map +1 -1
- package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +22 -0
- package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
- package/codeyam-cli/src/utils/queue/heartbeat.js +13 -5
- package/codeyam-cli/src/utils/queue/heartbeat.js.map +1 -1
- package/codeyam-cli/src/utils/queue/job.js +74 -1
- package/codeyam-cli/src/utils/queue/job.js.map +1 -1
- package/codeyam-cli/src/utils/queue/manager.js +7 -6
- package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
- package/codeyam-cli/src/utils/requireSimulations.js +10 -0
- package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/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 +229 -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 +113 -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__/parser.test.js +83 -0
- package/codeyam-cli/src/utils/rules/__tests__/parser.test.js.map +1 -0
- package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js +118 -0
- package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js.map +1 -0
- package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js +72 -0
- package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js.map +1 -0
- package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
- package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
- package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js +76 -0
- package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js.map +1 -0
- package/codeyam-cli/src/utils/rules/index.js +2 -0
- package/codeyam-cli/src/utils/rules/index.js.map +1 -1
- package/codeyam-cli/src/utils/rules/parser.js +16 -29
- package/codeyam-cli/src/utils/rules/parser.js.map +1 -1
- package/codeyam-cli/src/utils/rules/pathMatcher.js +34 -3
- package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -1
- package/codeyam-cli/src/utils/rules/rulePlacement.js +65 -0
- package/codeyam-cli/src/utils/rules/rulePlacement.js.map +1 -0
- package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
- package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
- package/codeyam-cli/src/utils/rules/sourceFiles.js +43 -0
- package/codeyam-cli/src/utils/rules/sourceFiles.js.map +1 -0
- package/codeyam-cli/src/utils/rules/staleness.js +16 -11
- package/codeyam-cli/src/utils/rules/staleness.js.map +1 -1
- package/codeyam-cli/src/utils/serverState.js +64 -12
- package/codeyam-cli/src/utils/serverState.js.map +1 -1
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +61 -43
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
- package/codeyam-cli/src/utils/simulationGateMiddleware.js +159 -0
- package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -0
- package/codeyam-cli/src/utils/syncMocksMiddleware.js +5 -24
- package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
- package/codeyam-cli/src/utils/testRunner.js +158 -0
- package/codeyam-cli/src/utils/testRunner.js.map +1 -0
- package/codeyam-cli/src/utils/transcriptPruning.js +67 -0
- package/codeyam-cli/src/utils/transcriptPruning.js.map +1 -0
- package/codeyam-cli/src/utils/versionInfo.js +46 -0
- package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
- package/codeyam-cli/src/utils/webappDetection.js +14 -2
- package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
- package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js +66 -0
- package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
- package/codeyam-cli/src/webserver/app/lib/database.js +15 -3
- 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 +166 -16
- package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/webserver/bootstrap.js +11 -0
- package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/CopyButton-DmJveP3T.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-DsN1wKrm.js → EntityItem-C76mRRiF.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-DLqD3qNt.js → EntityTypeBadge-g3saevPb.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-Ba2JVPzP.js → EntityTypeIcon-CobE682z.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-Bu6c6aDe.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-aht4aafF.js → InteractivePreview-DYFW3lDD.js} +3 -3
- package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-CVtiBnY5.js → LibraryFunctionPreview-DLeucoVX.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-B0GLXMsr.js → LoadingDots-BU_OAEMP.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-xgeCVgSM.js → LogViewer-ceAyBX-H.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-OApQuNyq.js → ReportIssueModal-djPLI-WV.js} +3 -8
- package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-DuDvi0jm.js → SafeScreenshot-BED4B6sP.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-DzccYyI8.js → ScenarioViewer-B76aig_2.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/Spinner-Bb5uFQ5V.js +34 -0
- package/codeyam-cli/src/webserver/build/client/assets/Terminal-BaIiqg_w.js +41 -0
- package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-DyFZkK0l.js → TruncatedFilePath-C8OKAR5x.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{_index-BwqWJOgH.js → _index-C96V0n15.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-BwavGCpm.js → activity.(_tab)-BpKzcsJz.js} +6 -11
- package/codeyam-cli/src/webserver/build/client/assets/addon-fit-CUXOrorO.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/addon-web-links-Duc5hnl7.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-D9hemwl6.js +22 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.agent-transcripts-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.dev-mode-events-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-capture-scenario-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-client-errors-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-commit-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-dev-server-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-entity-status-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-entry-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-image._-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-screenshot-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-update-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-refresh-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-register-scenario-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-data-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-image._-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-switch-scenario-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-test-results-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.rule-path-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/book-open-D_nMCFmP.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-Cx24_aWc.js → chevron-down-BH2h1Ea2.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{chunk-EPOLDU6W-CXRTFQ3F.js → chunk-JZWAC4HX-C4pqxYJB.js} +12 -12
- package/codeyam-cli/src/webserver/build/client/assets/{circle-check-BOARzkeR.js → circle-check-DyIKORY6.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/copy-NDbZjXao.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-BdhJEx6B.js → createLucideIcon-CMT1jU2q.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BiM6z3Do.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/editor-BaC8lHDG.js +7 -0
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-BJUiQqZF.js → entity._sha._-CrjR3zZW.js} +11 -11
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-DloHYjtt.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-C28BiQzt.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-p9hhkjJM.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CTBG2mmz.js → entity._sha_.edit._scenarioId-BMvVHNXU.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/{entry.client-CS2cb_eZ.js → entry.client-DTvKq3TY.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DMJ7zii9.js → fileTableUtils-cPo8LiG3.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{files-CJ6lTdTA.js → files-DO4CZ16O.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{git-CPTZZ-JZ.js → git-CFCTYk9I.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/globals-BH6uYxPM.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{index-B1h680n5.js → index-10oVnAAH.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{index-lzqtyFU8.js → index-BcvgDzbZ.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/labs-Zk7ryIM1.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-B7B9V-bu.js → loader-circle-BAXYRVEO.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-fb3128c3.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/memory-FweZHj5U.js +93 -0
- package/codeyam-cli/src/webserver/build/client/assets/pause-DTAcYxBt.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/root-Dzn8nIkU.js +67 -0
- package/codeyam-cli/src/webserver/build/client/assets/{search-CxXUmBSd.js → search-fKo7v0Zo.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/settings-DfuTtcJP.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{simulations-DwFIBT09.js → simulations-B3aOzpCZ.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/terminal-BG4heKCG.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-B6LgvRJg.js → triangle-alert-DtSmdtM4.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useCustomSizes-C1v1PQzo.js → useCustomSizes-ByhSyh0W.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-C14nCb1q.js +2 -0
- package/codeyam-cli/src/webserver/build/client/assets/{useReportContext-DYxHZQuP.js → useReportContext-O-jkvSPx.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useToast-mBRpZPiu.js → useToast-9FIWuYfK.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/xterm-DMSzMhqy.js +9 -0
- package/codeyam-cli/src/webserver/build/server/assets/index-DeSuKbSF.js +1 -0
- package/codeyam-cli/src/webserver/build/server/assets/server-build-BbQ8YBP-.js +362 -0
- package/codeyam-cli/src/webserver/build/server/index.js +1 -1
- package/codeyam-cli/src/webserver/build-info.json +5 -5
- package/codeyam-cli/src/webserver/devServer.js +39 -5
- package/codeyam-cli/src/webserver/devServer.js.map +1 -1
- package/codeyam-cli/src/webserver/editorProxy.js +272 -0
- package/codeyam-cli/src/webserver/editorProxy.js.map +1 -0
- package/codeyam-cli/src/webserver/scripts/journalCapture.ts +121 -0
- package/codeyam-cli/src/webserver/server.js +177 -1
- package/codeyam-cli/src/webserver/server.js.map +1 -1
- package/codeyam-cli/src/webserver/terminalServer.js +606 -0
- package/codeyam-cli/src/webserver/terminalServer.js.map +1 -0
- package/codeyam-cli/templates/{codeyam:debug.md → codeyam-debug.md} +1 -1
- package/codeyam-cli/templates/codeyam-dev-mode.md +237 -0
- package/codeyam-cli/templates/codeyam-diagnose.md +481 -0
- package/codeyam-cli/templates/codeyam-editor-claude.md +68 -0
- package/codeyam-cli/templates/codeyam-editor.md +67 -0
- package/codeyam-cli/templates/codeyam-memory-hook.sh +19 -20
- package/codeyam-cli/templates/codeyam-memory.md +396 -0
- package/codeyam-cli/templates/codeyam-new-rule.md +11 -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/editor-step-hook.py +143 -0
- package/codeyam-cli/templates/hooks/staleness-check.sh +43 -0
- package/codeyam-cli/templates/isolation-route/next-app.tsx.template +80 -0
- package/codeyam-cli/templates/isolation-route/next-pages.tsx.template +79 -0
- package/codeyam-cli/templates/isolation-route/vite-react.tsx.template +78 -0
- package/codeyam-cli/templates/msw/browser-setup.ts.template +47 -0
- package/codeyam-cli/templates/msw/handler-router.ts.template +47 -0
- package/codeyam-cli/templates/msw/server-setup.ts.template +52 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/PRISMA_SETUP.md +84 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/app/api/todos/route.ts +17 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/app/globals.css +26 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/app/layout.tsx +34 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/app/lib/prisma.ts +19 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/app/page.tsx +10 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/eslint.config.mjs +11 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/next.config.ts +14 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +35 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/postcss.config.mjs +7 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/schema.prisma +27 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/seed.ts +37 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma.config.ts +12 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/tsconfig.json +34 -0
- package/codeyam-cli/templates/prompts/conversation-guidance.txt +44 -0
- package/codeyam-cli/templates/prompts/conversation-prompt.txt +28 -0
- package/codeyam-cli/templates/prompts/interruption-prompt.txt +31 -0
- package/codeyam-cli/templates/prompts/stale-rules-prompt.txt +24 -0
- package/codeyam-cli/templates/rule-notification-hook.py +83 -0
- package/codeyam-cli/templates/rule-reflection-hook.py +647 -0
- package/codeyam-cli/templates/rules-instructions.md +78 -0
- package/package.json +16 -14
- package/packages/ai/index.js +3 -2
- package/packages/ai/index.js.map +1 -1
- package/packages/ai/src/lib/analyzeScope.js +50 -13
- package/packages/ai/src/lib/analyzeScope.js.map +1 -1
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +76 -12
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.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 +317 -44
- package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
- package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
- package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
- package/packages/ai/src/lib/completionCall.js +10 -7
- package/packages/ai/src/lib/completionCall.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +996 -173
- 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 +33 -3
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +36 -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/coercePrimitivesToArraysBySchema.js +54 -0
- package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +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 +309 -84
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js +34 -0
- package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js.map +1 -0
- package/packages/ai/src/lib/dataStructureChunking.js +30 -11
- package/packages/ai/src/lib/dataStructureChunking.js.map +1 -1
- package/packages/ai/src/lib/generateEntityDataStructure.js +46 -2
- package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarioData.js +284 -6
- 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 +107 -4
- package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +447 -80
- 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/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/generateEntityScenarioDataGenerator.js +17 -2
- package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.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/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 +99 -26
- package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
- package/packages/analyze/src/lib/asts/nodes/getNodeType.js +1 -0
- package/packages/analyze/src/lib/asts/nodes/getNodeType.js.map +1 -1
- package/packages/analyze/src/lib/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 +65 -7
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +24 -4
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +0 -5
- package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +9 -0
- package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
- package/packages/analyze/src/lib/files/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 +907 -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 +75 -21
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +215 -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 +494 -56
- 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/index.js +1 -0
- package/packages/database/index.js.map +1 -1
- package/packages/database/src/lib/analysisBranchToDb.js +1 -1
- package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
- package/packages/database/src/lib/analysisToDb.js +1 -1
- package/packages/database/src/lib/analysisToDb.js.map +1 -1
- package/packages/database/src/lib/branchToDb.js +1 -1
- package/packages/database/src/lib/branchToDb.js.map +1 -1
- package/packages/database/src/lib/commitBranchToDb.js +1 -1
- package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
- package/packages/database/src/lib/commitToDb.js +1 -1
- package/packages/database/src/lib/commitToDb.js.map +1 -1
- package/packages/database/src/lib/fileToDb.js +1 -1
- package/packages/database/src/lib/fileToDb.js.map +1 -1
- package/packages/database/src/lib/kysely/db.js +8 -0
- package/packages/database/src/lib/kysely/db.js.map +1 -1
- package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +45 -0
- package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
- package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
- package/packages/database/src/lib/loadCommits.js +23 -13
- package/packages/database/src/lib/loadCommits.js.map +1 -1
- package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
- package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
- package/packages/database/src/lib/projectToDb.js +1 -1
- package/packages/database/src/lib/projectToDb.js.map +1 -1
- package/packages/database/src/lib/saveFiles.js +1 -1
- package/packages/database/src/lib/saveFiles.js.map +1 -1
- package/packages/database/src/lib/scenarioToDb.js +1 -1
- package/packages/database/src/lib/scenarioToDb.js.map +1 -1
- package/packages/database/src/lib/updateCommitMetadata.js +100 -89
- package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
- package/packages/database/src/lib/updateFreshAnalysisStatus.js +41 -30
- package/packages/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
- package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
- package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
- package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
- package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
- package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
- package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
- package/packages/utils/src/lib/fs/rsyncCopy.js +98 -3
- package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
- package/scripts/finalize-analyzer.cjs +8 -76
- package/codeyam-cli/src/commands/detect-universal-mocks.js +0 -118
- package/codeyam-cli/src/commands/detect-universal-mocks.js.map +0 -1
- package/codeyam-cli/src/commands/list.js +0 -31
- package/codeyam-cli/src/commands/list.js.map +0 -1
- package/codeyam-cli/src/commands/webapp-info.js +0 -146
- package/codeyam-cli/src/commands/webapp-info.js.map +0 -1
- package/codeyam-cli/src/utils/universal-mocks.js +0 -152
- package/codeyam-cli/src/utils/universal-mocks.js.map +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-C8lyxW9k.js +0 -34
- package/codeyam-cli/src/webserver/build/client/assets/copy-Bb-80kDT.js +0 -6
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BBnGWYga.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DavjRmOY.js +0 -6
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-D1T4TGjf.js +0 -6
- package/codeyam-cli/src/webserver/build/client/assets/file-code-Dhef1kWN.js +0 -6
- package/codeyam-cli/src/webserver/build/client/assets/globals-D3yhhV8x.css +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-7522edd4.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/memory-yxFcrxBX.js +0 -92
- package/codeyam-cli/src/webserver/build/client/assets/root-eVAaavTS.js +0 -62
- package/codeyam-cli/src/webserver/build/client/assets/settings-CS5f3WzT.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-aSv48UbS.js +0 -2
- package/codeyam-cli/src/webserver/build/server/assets/index-DVzYx8PN.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/server-build-4Cr0uToj.js +0 -257
- package/codeyam-cli/templates/codeyam-stop-hook.sh +0 -284
- package/codeyam-cli/templates/codeyam:diagnose.md +0 -803
- package/codeyam-cli/templates/codeyam:memory.md +0 -462
- package/codeyam-cli/templates/codeyam:new-rule.md +0 -13
|
@@ -16,6 +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
|
+
import { transformationTracer } from './TransformationTracer';
|
|
20
|
+
// import propagateArrayItemSchemas from './propagateArrayItemSchemas';
|
|
19
21
|
export interface GenerateDataStructureArgs {
|
|
20
22
|
entity: Entity;
|
|
21
23
|
dependentAnalyses: ReadonlyAnalysisMap;
|
|
@@ -162,6 +164,25 @@ export default function generateDataStructure({
|
|
|
162
164
|
return acc;
|
|
163
165
|
}, {} as ReadonlyAnalysisMap);
|
|
164
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
|
+
|
|
165
186
|
// For non-mocked child components (like visual components), include their mocked
|
|
166
187
|
// dependencies in allImportedExports. This ensures that when a parent component
|
|
167
188
|
// renders a child that uses the same hook with different destructure patterns,
|
|
@@ -440,6 +461,29 @@ export default function generateDataStructure({
|
|
|
440
461
|
|
|
441
462
|
const { isolatedDataStructure } = entity.metadata;
|
|
442
463
|
|
|
464
|
+
if (!isolatedDataStructure) {
|
|
465
|
+
awsLog(
|
|
466
|
+
'CodeYam: Skipping data structure generation — isolatedDataStructure is undefined (scope analysis may have failed)',
|
|
467
|
+
{
|
|
468
|
+
entityName: entity.name,
|
|
469
|
+
filePath: entity.filePath,
|
|
470
|
+
},
|
|
471
|
+
);
|
|
472
|
+
return analysis;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
// Transformation tracing: start entity and capture isolated data structure
|
|
476
|
+
transformationTracer.startEntity({
|
|
477
|
+
name: entity.name,
|
|
478
|
+
entityType: entity.entityType,
|
|
479
|
+
filePath: entity.filePath,
|
|
480
|
+
});
|
|
481
|
+
transformationTracer.snapshot(entity.name, 'isolated', {
|
|
482
|
+
signatureSchema: isolatedDataStructure.signatureSchema,
|
|
483
|
+
returnValueSchema: isolatedDataStructure.returnValueSchema,
|
|
484
|
+
dependencySchemas: isolatedDataStructure.dependencySchemas,
|
|
485
|
+
});
|
|
486
|
+
|
|
443
487
|
const mergedDataStructure = mergeInDependentDataStructure({
|
|
444
488
|
importedExports: allImportedExports,
|
|
445
489
|
dependentAnalyses: nonMockedDependentAnalyses,
|
|
@@ -457,6 +501,13 @@ export default function generateDataStructure({
|
|
|
457
501
|
mergedDataStructure.environmentVariables =
|
|
458
502
|
isolatedDataStructure.environmentVariables || [];
|
|
459
503
|
|
|
504
|
+
// Transformation tracing: capture merged data structure
|
|
505
|
+
transformationTracer.snapshot(entity.name, 'merged', {
|
|
506
|
+
signatureSchema: mergedDataStructure.signatureSchema,
|
|
507
|
+
returnValueSchema: mergedDataStructure.returnValueSchema,
|
|
508
|
+
dependencySchemas: mergedDataStructure.dependencySchemas,
|
|
509
|
+
});
|
|
510
|
+
|
|
460
511
|
// Merge collected child dependency schemas into mergedDataStructure.
|
|
461
512
|
// This ensures that when gatherDataForMocks looks up schemas for child imports,
|
|
462
513
|
// the child's schemas are available.
|
|
@@ -469,11 +520,34 @@ export default function generateDataStructure({
|
|
|
469
520
|
|
|
470
521
|
if (existingSchema) {
|
|
471
522
|
// Merge schemas - child schemas add to parent schemas
|
|
523
|
+
// But prefer more specific types (without | undefined) when both exist
|
|
524
|
+
const mergedSignatureSchema = { ...existingSchema.signatureSchema };
|
|
525
|
+
for (const path in childSchema.signatureSchema) {
|
|
526
|
+
const existingType = mergedSignatureSchema[path];
|
|
527
|
+
const childType = childSchema.signatureSchema[path];
|
|
528
|
+
if (!existingType) {
|
|
529
|
+
mergedSignatureSchema[path] = childType;
|
|
530
|
+
} else {
|
|
531
|
+
// Prefer the more specific (narrower) type
|
|
532
|
+
const existingIsOptional =
|
|
533
|
+
existingType.includes('| undefined') ||
|
|
534
|
+
existingType.includes('| null');
|
|
535
|
+
const childIsOptional =
|
|
536
|
+
childType.includes('| undefined') ||
|
|
537
|
+
childType.includes('| null');
|
|
538
|
+
if (childIsOptional && !existingIsOptional) {
|
|
539
|
+
// Keep existing - it's more specific
|
|
540
|
+
} else if (!childIsOptional && existingIsOptional) {
|
|
541
|
+
// Use child - it's more specific
|
|
542
|
+
mergedSignatureSchema[path] = childType;
|
|
543
|
+
} else {
|
|
544
|
+
// Same specificity - use child (original behavior)
|
|
545
|
+
mergedSignatureSchema[path] = childType;
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
}
|
|
472
549
|
mergedDataStructure.dependencySchemas[schemaFilePath][schemaName] = {
|
|
473
|
-
signatureSchema:
|
|
474
|
-
...existingSchema.signatureSchema,
|
|
475
|
-
...childSchema.signatureSchema,
|
|
476
|
-
},
|
|
550
|
+
signatureSchema: mergedSignatureSchema,
|
|
477
551
|
returnValueSchema: mergeJsonTypeDefinitions(
|
|
478
552
|
existingSchema.returnValueSchema as Record<string, unknown>,
|
|
479
553
|
childSchema.returnValueSchema as Record<string, unknown>,
|
|
@@ -487,6 +561,13 @@ export default function generateDataStructure({
|
|
|
487
561
|
}
|
|
488
562
|
}
|
|
489
563
|
|
|
564
|
+
// Transformation tracing: capture after child schemas merged
|
|
565
|
+
transformationTracer.snapshot(entity.name, 'childSchemasMerged', {
|
|
566
|
+
signatureSchema: mergedDataStructure.signatureSchema,
|
|
567
|
+
returnValueSchema: mergedDataStructure.returnValueSchema,
|
|
568
|
+
dependencySchemas: mergedDataStructure.dependencySchemas,
|
|
569
|
+
});
|
|
570
|
+
|
|
490
571
|
// console.info(
|
|
491
572
|
// 'CODEYAM DEBUG: end merge',
|
|
492
573
|
// JSON.stringify(
|
|
@@ -509,32 +590,183 @@ export default function generateDataStructure({
|
|
|
509
590
|
|
|
510
591
|
// Deduplicate function schemas in the merged data structure
|
|
511
592
|
// The merge process might introduce duplicates even if individual schemas were clean
|
|
593
|
+
// Trace deduplication of signatureSchema
|
|
594
|
+
const sigBefore = { ...mergedDataStructure.signatureSchema };
|
|
512
595
|
mergedDataStructure.signatureSchema = deduplicateFunctionSchemas(
|
|
513
596
|
mergedDataStructure.signatureSchema,
|
|
514
597
|
);
|
|
598
|
+
transformationTracer.traceSchemaTransformResult(
|
|
599
|
+
entity.name,
|
|
600
|
+
'deduplicateFunctionSchemas',
|
|
601
|
+
sigBefore,
|
|
602
|
+
mergedDataStructure.signatureSchema,
|
|
603
|
+
{ schemaType: 'signature' },
|
|
604
|
+
);
|
|
605
|
+
|
|
606
|
+
// Trace deduplication of returnValueSchema
|
|
607
|
+
const rvBefore = { ...mergedDataStructure.returnValueSchema };
|
|
515
608
|
mergedDataStructure.returnValueSchema = deduplicateFunctionSchemas(
|
|
516
609
|
mergedDataStructure.returnValueSchema,
|
|
517
610
|
);
|
|
611
|
+
transformationTracer.traceSchemaTransformResult(
|
|
612
|
+
entity.name,
|
|
613
|
+
'deduplicateFunctionSchemas',
|
|
614
|
+
rvBefore,
|
|
615
|
+
mergedDataStructure.returnValueSchema,
|
|
616
|
+
{ schemaType: 'returnValue' },
|
|
617
|
+
);
|
|
518
618
|
|
|
519
|
-
// Also deduplicate dependency schemas
|
|
619
|
+
// Also deduplicate dependency schemas and clear known attributes
|
|
520
620
|
for (const filePath in mergedDataStructure.dependencySchemas) {
|
|
521
|
-
for (const
|
|
621
|
+
for (const depEntityName in mergedDataStructure.dependencySchemas[
|
|
522
622
|
filePath
|
|
523
623
|
]) {
|
|
524
624
|
const depSchema =
|
|
525
|
-
mergedDataStructure.dependencySchemas[filePath][
|
|
625
|
+
mergedDataStructure.dependencySchemas[filePath][depEntityName];
|
|
626
|
+
|
|
627
|
+
// Trace deduplication of dependency signatureSchema
|
|
628
|
+
const depSigBefore = { ...depSchema.signatureSchema };
|
|
526
629
|
depSchema.signatureSchema = deduplicateFunctionSchemas(
|
|
527
630
|
depSchema.signatureSchema,
|
|
528
631
|
);
|
|
632
|
+
transformationTracer.traceSchemaTransformResult(
|
|
633
|
+
entity.name,
|
|
634
|
+
'deduplicateFunctionSchemas',
|
|
635
|
+
depSigBefore,
|
|
636
|
+
depSchema.signatureSchema,
|
|
637
|
+
{ filePath, dependencyName: depEntityName, schemaType: 'signature' },
|
|
638
|
+
);
|
|
639
|
+
|
|
640
|
+
// Trace deduplication of dependency returnValueSchema
|
|
641
|
+
const depRvBefore = { ...depSchema.returnValueSchema };
|
|
529
642
|
depSchema.returnValueSchema = deduplicateFunctionSchemas(
|
|
530
643
|
depSchema.returnValueSchema,
|
|
531
644
|
);
|
|
645
|
+
transformationTracer.traceSchemaTransformResult(
|
|
646
|
+
entity.name,
|
|
647
|
+
'deduplicateFunctionSchemas',
|
|
648
|
+
depRvBefore,
|
|
649
|
+
depSchema.returnValueSchema,
|
|
650
|
+
{
|
|
651
|
+
filePath,
|
|
652
|
+
dependencyName: depEntityName,
|
|
653
|
+
schemaType: 'returnValue',
|
|
654
|
+
},
|
|
655
|
+
);
|
|
532
656
|
|
|
533
|
-
|
|
534
|
-
|
|
657
|
+
// Infer function types from child component usage BEFORE fillInSchemaGapsAndUnknowns.
|
|
658
|
+
// When a hook returns a property with type 'unknown' that is passed to a child
|
|
659
|
+
// component which calls it as a function (e.g., isEntityPending(entity)),
|
|
660
|
+
// promote it to 'function'. Without this, name heuristics like isLikelyBoolean
|
|
661
|
+
// would mistype "isEntityPending" as boolean because of the "is" prefix.
|
|
662
|
+
//
|
|
663
|
+
// sourceEquivalencies are in isolatedDataStructure.dependencySchemas (not in
|
|
664
|
+
// mergedDataStructure.dependencySchemas — they're dropped during the merge).
|
|
665
|
+
// The child's signatureSchema (with function call evidence) IS in the merged schemas.
|
|
666
|
+
{
|
|
667
|
+
const isolatedDepSchemas =
|
|
668
|
+
entity.metadata.isolatedDataStructure?.dependencySchemas;
|
|
669
|
+
if (isolatedDepSchemas) {
|
|
670
|
+
for (const childFilePath in isolatedDepSchemas) {
|
|
671
|
+
const childIsolated = isolatedDepSchemas[childFilePath];
|
|
672
|
+
for (const childName in childIsolated) {
|
|
673
|
+
const sourceEq = childIsolated[childName]?.sourceEquivalencies;
|
|
674
|
+
if (!sourceEq) continue;
|
|
675
|
+
|
|
676
|
+
// Get the child's signatureSchema from the MERGED schemas (richer)
|
|
677
|
+
const mergedChildSchema =
|
|
678
|
+
mergedDataStructure.dependencySchemas[childFilePath]?.[
|
|
679
|
+
childName
|
|
680
|
+
];
|
|
681
|
+
const sigSchema = mergedChildSchema?.signatureSchema;
|
|
682
|
+
if (!sigSchema) continue;
|
|
683
|
+
|
|
684
|
+
for (const childPath in sourceEq) {
|
|
685
|
+
for (const source of sourceEq[childPath]) {
|
|
686
|
+
const fcrvSuffix = '.functionCallReturnValue.';
|
|
687
|
+
const fcrvIndex = source.schemaPath.indexOf(fcrvSuffix);
|
|
688
|
+
if (fcrvIndex === -1) continue;
|
|
689
|
+
|
|
690
|
+
const propName = source.schemaPath.slice(
|
|
691
|
+
fcrvIndex + fcrvSuffix.length,
|
|
692
|
+
);
|
|
693
|
+
|
|
694
|
+
// Find the corresponding child signature path
|
|
695
|
+
const entityCallPrefix = childName + '().';
|
|
696
|
+
const sigPathBase = childPath.startsWith(entityCallPrefix)
|
|
697
|
+
? childPath.slice(entityCallPrefix.length)
|
|
698
|
+
: childPath;
|
|
699
|
+
|
|
700
|
+
// Check if the child's signatureSchema has a function call version
|
|
701
|
+
let isFunction = false;
|
|
702
|
+
for (const sigKey in sigSchema) {
|
|
703
|
+
if (
|
|
704
|
+
sigKey.startsWith(sigPathBase + '(') &&
|
|
705
|
+
sigSchema[sigKey] === 'function'
|
|
706
|
+
) {
|
|
707
|
+
isFunction = true;
|
|
708
|
+
break;
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
if (isFunction) {
|
|
713
|
+
for (const rvKey in depSchema.returnValueSchema) {
|
|
714
|
+
if (
|
|
715
|
+
rvKey.endsWith('.' + propName) &&
|
|
716
|
+
depSchema.returnValueSchema[rvKey] === 'unknown'
|
|
717
|
+
) {
|
|
718
|
+
depSchema.returnValueSchema[rvKey] = 'function';
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
}
|
|
724
|
+
}
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
// Fill in type gaps BEFORE clearing attributes, so evidence like .includes()
|
|
730
|
+
// is used for type inference before being deleted
|
|
731
|
+
|
|
732
|
+
depSchema.signatureSchema = fillInDirectSchemaGapsAndUnknowns({
|
|
733
|
+
schema: depSchema.signatureSchema,
|
|
734
|
+
});
|
|
735
|
+
|
|
736
|
+
depSchema.returnValueSchema = fillInDirectSchemaGapsAndUnknowns({
|
|
737
|
+
schema: depSchema.returnValueSchema,
|
|
738
|
+
});
|
|
739
|
+
|
|
740
|
+
// Trace clearAttributesFromMapping on dependency schemas
|
|
741
|
+
transformationTracer.traceSchemaTransform(
|
|
742
|
+
entity.name,
|
|
743
|
+
'clearAttributesFromMapping',
|
|
744
|
+
depSchema.signatureSchema,
|
|
745
|
+
clearAttributesFromMapping,
|
|
746
|
+
{ filePath, dependencyName: depEntityName, schemaType: 'signature' },
|
|
747
|
+
);
|
|
748
|
+
|
|
749
|
+
transformationTracer.traceSchemaTransform(
|
|
750
|
+
entity.name,
|
|
751
|
+
'clearAttributesFromMapping',
|
|
752
|
+
depSchema.returnValueSchema,
|
|
753
|
+
clearAttributesFromMapping,
|
|
754
|
+
{
|
|
755
|
+
filePath,
|
|
756
|
+
dependencyName: depEntityName,
|
|
757
|
+
schemaType: 'returnValue',
|
|
758
|
+
},
|
|
759
|
+
);
|
|
535
760
|
}
|
|
536
761
|
}
|
|
537
762
|
|
|
763
|
+
// Transformation tracing: capture after deduplication
|
|
764
|
+
transformationTracer.snapshot(entity.name, 'deduplicated', {
|
|
765
|
+
signatureSchema: mergedDataStructure.signatureSchema,
|
|
766
|
+
returnValueSchema: mergedDataStructure.returnValueSchema,
|
|
767
|
+
dependencySchemas: mergedDataStructure.dependencySchemas,
|
|
768
|
+
});
|
|
769
|
+
|
|
538
770
|
analysis.metadata ||= {};
|
|
539
771
|
analysis.metadata.mergedDataStructure = mergedDataStructure;
|
|
540
772
|
|
|
@@ -543,29 +775,70 @@ export default function generateDataStructure({
|
|
|
543
775
|
// expects survey.updatedAt, the array element type includes updatedAt.
|
|
544
776
|
// Uses usageEquivalencies to trace data flow and only enrich arrays with fields
|
|
545
777
|
// from children that actually receive elements from that specific array.
|
|
546
|
-
|
|
547
|
-
|
|
778
|
+
transformationTracer.traceDependencySchemaChanges(
|
|
779
|
+
entity.name,
|
|
780
|
+
'enrichArrayTypesFromChildSignatures',
|
|
548
781
|
mergedDataStructure.dependencySchemas,
|
|
549
|
-
|
|
782
|
+
() =>
|
|
783
|
+
enrichArrayTypesFromChildSignatures(
|
|
784
|
+
allImportedExports,
|
|
785
|
+
mergedDataStructure.dependencySchemas,
|
|
786
|
+
mergedDataStructure.usageEquivalencies,
|
|
787
|
+
),
|
|
550
788
|
);
|
|
551
789
|
|
|
790
|
+
// Transformation tracing: capture after array types enriched
|
|
791
|
+
transformationTracer.snapshot(entity.name, 'arrayTypesEnriched', {
|
|
792
|
+
signatureSchema: mergedDataStructure.signatureSchema,
|
|
793
|
+
returnValueSchema: mergedDataStructure.returnValueSchema,
|
|
794
|
+
dependencySchemas: mergedDataStructure.dependencySchemas,
|
|
795
|
+
});
|
|
796
|
+
|
|
552
797
|
// Enrich mocked dependency unknown types using sourceEquivalencies
|
|
553
798
|
// When a mocked dependency returns unknown, but that data flows to a child component
|
|
554
799
|
// with a known type, propagate the type back to the mocked dependency.
|
|
555
800
|
// This prevents fillInDirectSchemaGapsAndUnknowns from guessing incorrectly
|
|
556
801
|
// (e.g., 'data' becoming 'number' because pluralize thinks it's plural)
|
|
557
|
-
|
|
558
|
-
|
|
802
|
+
transformationTracer.traceDependencySchemaChanges(
|
|
803
|
+
entity.name,
|
|
804
|
+
'enrichUnknownTypesFromSourceEquivalencies',
|
|
559
805
|
mergedDataStructure.dependencySchemas,
|
|
560
|
-
|
|
806
|
+
() =>
|
|
807
|
+
enrichUnknownTypesFromSourceEquivalencies(
|
|
808
|
+
isolatedDataStructure.dependencySchemas || {},
|
|
809
|
+
mergedDataStructure.dependencySchemas,
|
|
810
|
+
allImportedExports,
|
|
811
|
+
),
|
|
561
812
|
);
|
|
562
813
|
|
|
814
|
+
// Transformation tracing: capture after unknown types enriched
|
|
815
|
+
transformationTracer.snapshot(entity.name, 'unknownTypesEnriched', {
|
|
816
|
+
signatureSchema: mergedDataStructure.signatureSchema,
|
|
817
|
+
returnValueSchema: mergedDataStructure.returnValueSchema,
|
|
818
|
+
dependencySchemas: mergedDataStructure.dependencySchemas,
|
|
819
|
+
});
|
|
820
|
+
|
|
821
|
+
// DISABLED: Testing if ternary fix eliminates the need for this heuristic
|
|
822
|
+
// Propagate array item schemas between arrays that likely have the same type.
|
|
823
|
+
// When one array (e.g., entities) has item schema traced but another similar array
|
|
824
|
+
// (e.g., currentEntities) doesn't (because it's only used in an OR expression fallback),
|
|
825
|
+
// copy the item schema from the rich array to the empty one.
|
|
826
|
+
// propagateArrayItemSchemas(mergedDataStructure.dependencySchemas);
|
|
827
|
+
|
|
563
828
|
let dataForMocks = gatherDataForMocks(
|
|
564
829
|
allImportedExports,
|
|
565
830
|
mergedDataStructure.dependencySchemas,
|
|
566
831
|
{ entityName: entity.name },
|
|
567
832
|
);
|
|
568
833
|
|
|
834
|
+
// Transformation tracing: capture after dataForMocks gathered
|
|
835
|
+
transformationTracer.snapshot(entity.name, 'dataForMocksGathered', {
|
|
836
|
+
signatureSchema: mergedDataStructure.signatureSchema,
|
|
837
|
+
returnValueSchema: mergedDataStructure.returnValueSchema,
|
|
838
|
+
dependencySchemas: mergedDataStructure.dependencySchemas,
|
|
839
|
+
dataForMocks,
|
|
840
|
+
});
|
|
841
|
+
|
|
569
842
|
// Merge dataForMocks from non-mocked child analyses to include transitive dependency data.
|
|
570
843
|
// This handles cases where grandchild trpc calls aren't in allImportedExports because
|
|
571
844
|
// the grandchild's analysis wasn't in dependentAnalyses.
|
|
@@ -587,11 +860,25 @@ export default function generateDataStructure({
|
|
|
587
860
|
}
|
|
588
861
|
}
|
|
589
862
|
|
|
590
|
-
const finalizedArgumentsSchema =
|
|
591
|
-
|
|
592
|
-
|
|
863
|
+
const finalizedArgumentsSchema = { ...mergedDataStructure.signatureSchema };
|
|
864
|
+
|
|
865
|
+
// Trace fillInDirectSchemaGapsAndUnknowns
|
|
866
|
+
transformationTracer.traceSchemaTransform(
|
|
867
|
+
entity.name,
|
|
868
|
+
'fillInDirectSchemaGapsAndUnknowns',
|
|
869
|
+
finalizedArgumentsSchema,
|
|
870
|
+
(schema) => fillInDirectSchemaGapsAndUnknowns({ schema }),
|
|
871
|
+
{ stage: 'finalization' },
|
|
872
|
+
);
|
|
593
873
|
|
|
594
|
-
clearAttributesFromMapping
|
|
874
|
+
// Trace clearAttributesFromMapping
|
|
875
|
+
transformationTracer.traceSchemaTransform(
|
|
876
|
+
entity.name,
|
|
877
|
+
'clearAttributesFromMapping',
|
|
878
|
+
finalizedArgumentsSchema,
|
|
879
|
+
clearAttributesFromMapping,
|
|
880
|
+
{ stage: 'finalization' },
|
|
881
|
+
);
|
|
595
882
|
|
|
596
883
|
const argumentsSchema = convertDotNotation(finalizedArgumentsSchema)
|
|
597
884
|
.signature as JsonTypeDefinition[];
|
|
@@ -601,6 +888,12 @@ export default function generateDataStructure({
|
|
|
601
888
|
dataForMocks,
|
|
602
889
|
};
|
|
603
890
|
|
|
891
|
+
// Transformation tracing: capture final scenariosDataStructure
|
|
892
|
+
transformationTracer.snapshot(entity.name, 'finalized', {
|
|
893
|
+
signatureSchema: finalizedArgumentsSchema,
|
|
894
|
+
dataForMocks,
|
|
895
|
+
});
|
|
896
|
+
|
|
604
897
|
return analysis;
|
|
605
898
|
} catch (e) {
|
|
606
899
|
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) {
|
|
@@ -114,7 +137,14 @@ export function buildChildEntityMetadata(
|
|
|
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 @@ export 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 @@ export 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
|
}
|