@codeyam/codeyam-cli 0.1.0-staging.323686 → 0.1.0-staging.4057bd2
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 +22 -22
- 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 +4 -4
- 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 +2 -2
- 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 +1839 -0
- package/codeyam-cli/src/commands/editor.js.map +1 -0
- package/codeyam-cli/src/commands/init.js +81 -260
- 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__/editorAudit.test.js +246 -0
- package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js +126 -0
- package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/editorJournal.test.js +295 -0
- package/codeyam-cli/src/utils/__tests__/editorJournal.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/editorMockState.test.js +270 -0
- package/codeyam-cli/src/utils/__tests__/editorMockState.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js +100 -0
- package/codeyam-cli/src/utils/__tests__/editorPreloadHelpers.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/editorPreview.test.js +147 -0
- package/codeyam-cli/src/utils/__tests__/editorPreview.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +76 -0
- package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/git.editor.test.js +134 -0
- package/codeyam-cli/src/utils/__tests__/git.editor.test.js.map +1 -0
- 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__/project.test.js +65 -0
- package/codeyam-cli/src/utils/__tests__/project.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js +121 -0
- package/codeyam-cli/src/utils/__tests__/scenarioMarkers.test.js.map +1 -0
- 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/buildFlags.js +4 -0
- package/codeyam-cli/src/utils/buildFlags.js.map +1 -0
- package/codeyam-cli/src/utils/devModeEvents.js +40 -0
- package/codeyam-cli/src/utils/devModeEvents.js.map +1 -0
- package/codeyam-cli/src/utils/editorAudit.js +82 -0
- package/codeyam-cli/src/utils/editorAudit.js.map +1 -0
- package/codeyam-cli/src/utils/editorDevServer.js +98 -0
- package/codeyam-cli/src/utils/editorDevServer.js.map +1 -0
- package/codeyam-cli/src/utils/editorJournal.js +137 -0
- package/codeyam-cli/src/utils/editorJournal.js.map +1 -0
- package/codeyam-cli/src/utils/editorMockState.js +248 -0
- package/codeyam-cli/src/utils/editorMockState.js.map +1 -0
- package/codeyam-cli/src/utils/editorPreloadHelpers.js +64 -0
- package/codeyam-cli/src/utils/editorPreloadHelpers.js.map +1 -0
- package/codeyam-cli/src/utils/editorPreview.js +66 -0
- package/codeyam-cli/src/utils/editorPreview.js.map +1 -0
- package/codeyam-cli/src/utils/editorScenarios.js +56 -0
- package/codeyam-cli/src/utils/editorScenarios.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 +103 -0
- package/codeyam-cli/src/utils/git.js.map +1 -1
- package/codeyam-cli/src/utils/install-skills.js +114 -47
- 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/project.js +15 -5
- package/codeyam-cli/src/utils/project.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/scenarioMarkers.js +134 -0
- package/codeyam-cli/src/utils/scenarioMarkers.js.map +1 -0
- 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 +56 -30
- package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
- package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
- package/codeyam-cli/src/webserver/backgroundServer.js +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-Dnj5CY9R.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-audit-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-load-commit-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-scenarios-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-D1DAKXtT.js +8 -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-DkzqFzFj.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-B17TBSS6.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-a632de18.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/memory-Dg0mvYrI.js +96 -0
- package/codeyam-cli/src/webserver/build/client/assets/pause-DTAcYxBt.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/root-DUKqhFlb.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-BqvuqXEL.js +27 -0
- package/codeyam-cli/src/webserver/build/server/assets/index-HfLydfDq.js +1 -0
- package/codeyam-cli/src/webserver/build/server/assets/server-build-CUu_F-oo.js +366 -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 +440 -0
- package/codeyam-cli/src/webserver/editorProxy.js.map +1 -0
- package/codeyam-cli/src/webserver/scripts/codeyam-preload.mjs +175 -0
- package/codeyam-cli/src/webserver/scripts/journalCapture.ts +140 -0
- package/codeyam-cli/src/webserver/server.js +226 -1
- package/codeyam-cli/src/webserver/server.js.map +1 -1
- package/codeyam-cli/src/webserver/terminalServer.js +698 -0
- package/codeyam-cli/src/webserver/terminalServer.js.map +1 -0
- package/codeyam-cli/templates/codeyam-editor-claude.md +68 -0
- package/codeyam-cli/templates/codeyam-memory-hook.sh +19 -20
- package/codeyam-cli/templates/commands/codeyam-diagnose.md +481 -0
- package/codeyam-cli/templates/editor-step-hook.py +147 -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/gitignore +43 -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/codeyam-cli/templates/{codeyam:debug.md → skills/codeyam-debug/SKILL.md} +1 -1
- package/codeyam-cli/templates/skills/codeyam-dev-mode/SKILL.md +237 -0
- package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +69 -0
- package/codeyam-cli/templates/skills/codeyam-memory/SKILL.md +611 -0
- package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/deprecated-prompt.md +100 -0
- package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/detect-deprecated-patterns.sh +108 -0
- package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/find-exports.sh +69 -0
- package/codeyam-cli/templates/skills/codeyam-memory/scripts/holistic-analysis/misleading-api-prompt.md +117 -0
- package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/analyze-prompt.md +46 -0
- package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/cleanup.sh +12 -0
- package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/filter.jq +45 -0
- package/codeyam-cli/templates/skills/codeyam-memory/scripts/session-mining/preprocess.sh +139 -0
- package/codeyam-cli/templates/skills/codeyam-new-rule/SKILL.md +11 -0
- package/codeyam-cli/templates/{codeyam:setup.md → skills/codeyam-setup/SKILL.md} +13 -1
- package/codeyam-cli/templates/{codeyam:sim.md → skills/codeyam-sim/SKILL.md} +1 -1
- package/codeyam-cli/templates/{codeyam:test.md → skills/codeyam-test/SKILL.md} +1 -1
- package/codeyam-cli/templates/{codeyam:verify.md → skills/codeyam-verify/SKILL.md} +1 -1
- 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/npm-post-install.cjs +34 -0
- 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
- package/scripts/finalize-analyzer.cjs +0 -81
|
@@ -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
|
}
|