@codeyam/codeyam-cli 0.1.0-staging.15d0f46 → 0.1.0-staging.1669d45
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/common/execAsync.ts +1 -1
- package/analyzer-template/log.txt +3 -3
- package/analyzer-template/package.json +9 -5
- package/analyzer-template/packages/ai/index.ts +5 -3
- package/analyzer-template/packages/ai/package.json +1 -1
- package/analyzer-template/packages/ai/src/lib/__mocks__/completionCall.ts +122 -0
- package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +152 -6
- package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +107 -1
- package/analyzer-template/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.ts +644 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +42 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.ts +18 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +38 -1
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.ts +301 -1
- package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +972 -106
- package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +232 -0
- package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +29 -10
- package/analyzer-template/packages/ai/src/lib/completionCall.ts +18 -2
- package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +1409 -138
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +2 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +771 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +233 -75
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +19 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +39 -4
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +23 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.ts +98 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +42 -2
- package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +74 -7
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +89 -112
- package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +6 -0
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +486 -86
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +182 -104
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +201 -0
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +1019 -0
- package/analyzer-template/packages/ai/src/lib/getConditionalUsagesFromCode.ts +143 -31
- package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +8 -2
- package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +276 -3
- package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +33 -3
- package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +7 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +1 -1
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +32 -102
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +71 -4
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +14 -53
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +28 -2
- package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +690 -0
- package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +5 -1
- package/analyzer-template/packages/ai/src/lib/validateExecutionFlowPaths.ts +531 -0
- package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +102 -0
- package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +8 -1
- package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +14 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +1 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +458 -267
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +18 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +3 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +31 -15
- package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +11 -7
- package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +11 -12
- package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +196 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +588 -52
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.ts +1 -1
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +28 -62
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +299 -133
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +156 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +78 -83
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +4 -8
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +384 -94
- package/analyzer-template/packages/aws/codebuild/index.ts +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +11 -1
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -1
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +29 -18
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -1
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +2 -2
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -1
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +2 -2
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -1
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +8 -18
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -1
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +17 -61
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -1
- package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts +15 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js +31 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -1
- package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +8 -1
- package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -1
- package/analyzer-template/packages/aws/package.json +2 -2
- package/analyzer-template/packages/aws/s3/index.ts +1 -0
- package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +43 -19
- package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +3 -3
- package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +17 -69
- package/analyzer-template/packages/aws/src/lib/s3/checkS3ObjectExists.ts +47 -0
- package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +8 -1
- package/analyzer-template/packages/database/src/lib/kysely/db.ts +4 -4
- package/analyzer-template/packages/database/src/lib/kysely/tableRelations.ts +2 -2
- package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +36 -9
- package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +7 -3
- package/analyzer-template/packages/generate/index.ts +3 -0
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +17 -1
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +193 -0
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +9 -4
- package/analyzer-template/packages/generate/src/lib/deepMerge.ts +26 -1
- package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -2
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +2 -2
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelations.d.ts +2 -2
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +1 -11
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +30 -7
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +2 -6
- 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/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
- package/analyzer-template/packages/github/dist/generate/index.d.ts +3 -0
- package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/index.js +3 -0
- package/analyzer-template/packages/github/dist/generate/index.js.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts +9 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts +20 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
- 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 +8 -4
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js +27 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts +8 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js +89 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +10 -0
- package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -1
- package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +3 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -1
- package/analyzer-template/packages/github/dist/types/index.d.ts +2 -2
- package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +63 -13
- package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +11 -6
- 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 +146 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -1
- package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +14 -0
- package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +2 -0
- package/analyzer-template/packages/process/index.ts +2 -0
- package/analyzer-template/packages/process/package.json +12 -0
- package/analyzer-template/packages/process/tsconfig.json +8 -0
- package/analyzer-template/packages/types/index.ts +4 -0
- package/analyzer-template/packages/types/src/types/Analysis.ts +79 -13
- package/analyzer-template/packages/types/src/types/Entity.ts +2 -0
- package/analyzer-template/packages/types/src/types/Scenario.ts +11 -10
- package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +161 -0
- package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
- package/analyzer-template/packages/utils/dist/types/index.d.ts +2 -2
- package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +63 -13
- package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +11 -6
- 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 +146 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -1
- package/analyzer-template/playwright/capture.ts +37 -18
- package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
- package/analyzer-template/playwright/takeElementScreenshot.ts +26 -11
- package/analyzer-template/playwright/waitForServer.ts +21 -6
- package/analyzer-template/project/analyzeBaselineCommit.ts +4 -0
- package/analyzer-template/project/analyzeBranchCommit.ts +4 -0
- package/analyzer-template/project/analyzeFileEntities.ts +4 -0
- package/analyzer-template/project/analyzeRegularCommit.ts +4 -0
- package/analyzer-template/project/constructMockCode.ts +868 -132
- package/analyzer-template/project/controller/startController.ts +16 -1
- package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
- package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
- package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +3 -6
- package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +49 -33
- package/analyzer-template/project/orchestrateCapture.ts +10 -3
- package/analyzer-template/project/reconcileMockDataKeys.ts +102 -2
- package/analyzer-template/project/runAnalysis.ts +7 -0
- package/analyzer-template/project/serverOnlyModules.ts +127 -2
- package/analyzer-template/project/start.ts +26 -4
- package/analyzer-template/project/startScenarioCapture.ts +72 -40
- package/analyzer-template/project/writeMockDataTsx.ts +118 -55
- package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
- package/analyzer-template/project/writeScenarioComponents.ts +263 -92
- package/analyzer-template/project/writeScenarioFiles.ts +26 -0
- package/analyzer-template/project/writeSimpleRoot.ts +13 -15
- package/analyzer-template/scripts/comboWorkerLoop.cjs +1 -0
- package/analyzer-template/scripts/defaultCmd.sh +9 -0
- package/analyzer-template/tsconfig.json +2 -1
- package/background/src/lib/local/createLocalAnalyzer.js +1 -29
- package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
- package/background/src/lib/local/execAsync.js +1 -1
- package/background/src/lib/local/execAsync.js.map +1 -1
- package/background/src/lib/virtualized/common/execAsync.js +1 -1
- package/background/src/lib/virtualized/common/execAsync.js.map +1 -1
- package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +2 -1
- package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
- package/background/src/lib/virtualized/project/analyzeBranchCommit.js +2 -1
- package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -1
- package/background/src/lib/virtualized/project/analyzeFileEntities.js +2 -1
- package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
- package/background/src/lib/virtualized/project/analyzeRegularCommit.js +2 -1
- package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
- package/background/src/lib/virtualized/project/constructMockCode.js +799 -121
- package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
- package/background/src/lib/virtualized/project/controller/startController.js +11 -1
- package/background/src/lib/virtualized/project/controller/startController.js.map +1 -1
- package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +6 -3
- package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -1
- package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +7 -7
- package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +3 -2
- package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +42 -28
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture.js +7 -4
- package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +87 -2
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
- package/background/src/lib/virtualized/project/runAnalysis.js +6 -0
- package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
- package/background/src/lib/virtualized/project/serverOnlyModules.js +106 -3
- package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -1
- package/background/src/lib/virtualized/project/start.js +21 -4
- package/background/src/lib/virtualized/project/start.js.map +1 -1
- package/background/src/lib/virtualized/project/startScenarioCapture.js +56 -30
- package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
- package/background/src/lib/virtualized/project/writeMockDataTsx.js +110 -48
- package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
- package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js +15 -0
- package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js.map +1 -0
- package/background/src/lib/virtualized/project/writeScenarioComponents.js +211 -75
- package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
- package/background/src/lib/virtualized/project/writeScenarioFiles.js +19 -0
- package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -1
- package/background/src/lib/virtualized/project/writeSimpleRoot.js +13 -13
- package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
- package/codeyam-cli/src/cli.js +5 -1
- package/codeyam-cli/src/cli.js.map +1 -1
- package/codeyam-cli/src/commands/analyze.js +1 -1
- package/codeyam-cli/src/commands/analyze.js.map +1 -1
- package/codeyam-cli/src/commands/baseline.js +174 -0
- package/codeyam-cli/src/commands/baseline.js.map +1 -0
- package/codeyam-cli/src/commands/debug.js +28 -18
- package/codeyam-cli/src/commands/debug.js.map +1 -1
- package/codeyam-cli/src/commands/default.js +0 -15
- package/codeyam-cli/src/commands/default.js.map +1 -1
- package/codeyam-cli/src/commands/recapture.js +44 -23
- package/codeyam-cli/src/commands/recapture.js.map +1 -1
- package/codeyam-cli/src/commands/report.js +72 -24
- package/codeyam-cli/src/commands/report.js.map +1 -1
- package/codeyam-cli/src/commands/start.js +8 -12
- package/codeyam-cli/src/commands/start.js.map +1 -1
- package/codeyam-cli/src/commands/status.js +23 -1
- package/codeyam-cli/src/commands/status.js.map +1 -1
- package/codeyam-cli/src/commands/test-startup.js +1 -1
- package/codeyam-cli/src/commands/test-startup.js.map +1 -1
- package/codeyam-cli/src/commands/wipe.js +108 -0
- package/codeyam-cli/src/commands/wipe.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
- package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +27 -27
- package/codeyam-cli/src/utils/analysisRunner.js +8 -13
- package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
- package/codeyam-cli/src/utils/backgroundServer.js +12 -2
- package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/utils/database.js +91 -5
- package/codeyam-cli/src/utils/database.js.map +1 -1
- package/codeyam-cli/src/utils/generateReport.js +253 -106
- package/codeyam-cli/src/utils/generateReport.js.map +1 -1
- package/codeyam-cli/src/utils/git.js +79 -0
- package/codeyam-cli/src/utils/git.js.map +1 -0
- package/codeyam-cli/src/utils/install-skills.js +11 -11
- package/codeyam-cli/src/utils/install-skills.js.map +1 -1
- package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +38 -0
- package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
- package/codeyam-cli/src/utils/queue/job.js +239 -16
- package/codeyam-cli/src/utils/queue/job.js.map +1 -1
- package/codeyam-cli/src/utils/queue/manager.js +19 -7
- package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
- package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
- package/codeyam-cli/src/utils/serverState.js.map +1 -1
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +5 -5
- package/codeyam-cli/src/utils/versionInfo.js +25 -19
- package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
- package/codeyam-cli/src/utils/wipe.js +128 -0
- package/codeyam-cli/src/utils/wipe.js.map +1 -0
- package/codeyam-cli/src/webserver/app/lib/database.js +96 -0
- 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 +2 -5
- package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-vauWK972.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-DKdsUF7Y.js → EntityTypeBadge-COi5OvsN.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BwdQv49w.js +41 -0
- package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-CEleMv_j.js +34 -0
- package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-D68KarMg.js +25 -0
- package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-L75Wvqgw.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/LoadingDots-C53WM8qn.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/LogViewer-CrNkmy4i.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-DzJRkCkr.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-CQifa1n-.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-CyaBFX7l.js +20 -0
- package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-CWjSsLqY.js → TruncatedFilePath-D36O1rzU.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/_index-Be83mo_j.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-BN6wu6Y-.js +37 -0
- package/codeyam-cli/src/webserver/build/client/assets/chevron-down-DgTPh8H-.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/chunk-EPOLDU6W-DdQKK6on.js +51 -0
- package/codeyam-cli/src/webserver/build/client/assets/circle-check-Dmr2bb1R.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-Do4ZLUYa.js +21 -0
- package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-C1gnJVOL.svg → cy-logo-cli-CCKUIm0S.svg} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-Bn6aCAy_.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-CbdFyxZh.js +23 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-B4iCfs5M.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-wDWZZO1W.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-BMbl7MeQ.js +5 -0
- package/codeyam-cli/src/webserver/build/client/assets/entry.client-5wRKRIH9.js +29 -0
- package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-DD3SDH7t.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/files-DKyMFI90.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/git-zXjT7J0G.js +15 -0
- package/codeyam-cli/src/webserver/build/client/assets/globals-DTTQ3gY7.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-fmIEn3Bc.js +9 -0
- package/codeyam-cli/src/webserver/build/client/assets/index-DLbXwndH.js +9 -0
- package/codeyam-cli/src/webserver/build/client/assets/index-gPZ-lad1.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/loader-circle-BsPXJ81F.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/manifest-22590fcf.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/preload-helper-ckwbz45p.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/root-BsAarjAM.js +57 -0
- package/codeyam-cli/src/webserver/build/client/assets/scenarioStatus-B_8jpV3e.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/search-P2FKIUql.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/settings-B2eDuBj8.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/simulations-L18M6-kN.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-BDz7kbVA.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-29dDmbH8.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-CmrTPlIB.js → useLastLogLine-BUm0UVJm.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/useReportContext-CkIOKTrZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{useToast-C1ig_BmP.js → useToast-KKw5kTn-.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/index-BND5I5fv.js +1 -0
- package/codeyam-cli/src/webserver/build/server/assets/server-build-CFXnd7MG.js +228 -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 +1 -3
- package/codeyam-cli/src/webserver/devServer.js.map +1 -1
- package/codeyam-cli/src/webserver/server.js +35 -25
- package/codeyam-cli/src/webserver/server.js.map +1 -1
- package/codeyam-cli/templates/{codeyam-debug-skill.md → codeyam:debug.md} +1 -1
- package/codeyam-cli/templates/codeyam:diagnose.md +625 -0
- package/codeyam-cli/templates/{codeyam-setup-skill.md → codeyam:setup.md} +139 -4
- package/codeyam-cli/templates/{codeyam-sim-skill.md → codeyam:sim.md} +1 -1
- package/codeyam-cli/templates/{codeyam-test-skill.md → codeyam:test.md} +1 -1
- package/codeyam-cli/templates/{codeyam-verify-skill.md → codeyam:verify.md} +1 -1
- package/package.json +8 -8
- package/packages/ai/index.js +2 -4
- package/packages/ai/index.js.map +1 -1
- package/packages/ai/src/lib/analyzeScope.js +107 -0
- package/packages/ai/src/lib/analyzeScope.js.map +1 -1
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +76 -1
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
- package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
- package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
- package/packages/ai/src/lib/astScopes/methodSemantics.js +29 -0
- package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
- package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +8 -0
- package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -1
- package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +23 -0
- package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
- package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +239 -1
- package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
- package/packages/ai/src/lib/astScopes/processExpression.js +728 -87
- package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
- package/packages/ai/src/lib/checkAllAttributes.js +24 -9
- package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
- package/packages/ai/src/lib/completionCall.js +17 -1
- package/packages/ai/src/lib/completionCall.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1126 -82
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +2 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +482 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +173 -55
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +16 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +35 -2
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +20 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js +86 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +34 -3
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
- package/packages/ai/src/lib/deepEqual.js +32 -0
- package/packages/ai/src/lib/deepEqual.js.map +1 -0
- package/packages/ai/src/lib/generateChangesEntityScenarioData.js +62 -5
- package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
- package/packages/ai/src/lib/generateChangesEntityScenarios.js +81 -90
- package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
- package/packages/ai/src/lib/generateEntityDataStructure.js +5 -0
- package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarioData.js +398 -81
- package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarios.js +168 -82
- package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
- package/packages/ai/src/lib/generateExecutionFlows.js +123 -0
- package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +742 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
- package/packages/ai/src/lib/getConditionalUsagesFromCode.js +84 -14
- package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -1
- package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -1
- package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
- package/packages/ai/src/lib/isolateScopes.js +231 -4
- package/packages/ai/src/lib/isolateScopes.js.map +1 -1
- package/packages/ai/src/lib/mergeStatements.js +26 -3
- package/packages/ai/src/lib/mergeStatements.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +6 -0
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +1 -1
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +21 -64
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +58 -4
- package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +10 -34
- package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
- package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +16 -3
- package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
- package/packages/ai/src/lib/resolvePathToControllable.js +563 -0
- package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
- package/packages/ai/src/lib/splitOutsideParentheses.js +3 -1
- package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -1
- package/packages/ai/src/lib/worker/SerializableDataStructure.js +22 -0
- package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
- package/packages/ai/src/lib/worker/analyzeScopeWorker.js +4 -0
- package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
- package/packages/analyze/src/lib/FileAnalyzer.js +15 -0
- package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
- package/packages/analyze/src/lib/asts/nodes/index.js +1 -0
- package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
- package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
- package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +214 -50
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +10 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +2 -0
- package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
- package/packages/analyze/src/lib/files/analyzeChange.js +21 -11
- package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
- package/packages/analyze/src/lib/files/analyzeEntity.js +9 -8
- package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
- package/packages/analyze/src/lib/files/analyzeInitial.js +9 -10
- package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
- package/packages/analyze/src/lib/files/enums/steps.js +1 -1
- package/packages/analyze/src/lib/files/enums/steps.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +159 -0
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
- package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +458 -48
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +29 -34
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +235 -81
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +96 -0
- package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +56 -69
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +4 -8
- package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +307 -89
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
- package/packages/aws/src/lib/ecs/ecsDefineContainer.js +2 -2
- package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -1
- package/packages/aws/src/lib/ecs/ecsTaskFactory.js +17 -61
- package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -1
- package/packages/database/src/lib/kysely/db.js +2 -2
- package/packages/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
- package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
- package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
- package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
- package/packages/generate/index.js +3 -0
- package/packages/generate/index.js.map +1 -1
- package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
- package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
- package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
- package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
- package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
- package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
- package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +8 -4
- package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
- package/packages/generate/src/lib/deepMerge.js +27 -1
- package/packages/generate/src/lib/deepMerge.js.map +1 -1
- package/packages/generate/src/lib/scenarioComponentForServer.js +89 -0
- package/packages/generate/src/lib/scenarioComponentForServer.js.map +1 -0
- package/packages/github/src/lib/loadOrCreateCommit.js +10 -0
- package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -1
- package/packages/github/src/lib/syncPrimaryBranch.js +3 -0
- package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -1
- package/packages/process/index.js +3 -0
- package/packages/process/index.js.map +1 -0
- package/packages/process/src/GlobalProcessManager.js.map +1 -0
- package/{background/src/lib/process → packages/process/src}/ProcessManager.js +1 -1
- package/packages/process/src/ProcessManager.js.map +1 -0
- package/packages/process/src/index.js.map +1 -0
- package/packages/process/src/managedExecAsync.js.map +1 -0
- package/packages/types/index.js.map +1 -1
- package/scripts/finalize-analyzer.cjs +3 -1
- package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +0 -102
- package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +0 -197
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +0 -271
- package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +0 -294
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +0 -67
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +0 -115
- package/analyzer-template/process/INTEGRATION_COMPLETE.md +0 -333
- package/analyzer-template/process/INTEGRATION_EXAMPLE.md +0 -525
- package/analyzer-template/process/README.md +0 -507
- package/background/src/lib/process/GlobalProcessManager.js.map +0 -1
- package/background/src/lib/process/ProcessManager.js.map +0 -1
- package/background/src/lib/process/index.js.map +0 -1
- package/background/src/lib/process/managedExecAsync.js.map +0 -1
- package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +0 -238
- package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-D0VW1-W7.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BAk4S4pI.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-Y756iZxZ.js +0 -25
- package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-zzrrjW1p.js +0 -3
- package/codeyam-cli/src/webserver/build/client/assets/LogViewer-QMn7bJg6.js +0 -3
- package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-DmP5mRxX.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-BXwvsbLw.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-DAmUX_1y.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/_index-Df-nk4J5.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-_ZUyFdie.js +0 -7
- package/codeyam-cli/src/webserver/build/client/assets/chevron-down-Eoh0PhcW.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/chunk-WWGJGFF6-CZgPLy5i.js +0 -26
- package/codeyam-cli/src/webserver/build/client/assets/circle-check-DI-p9ZLZ.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-DvyV2x6y.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DURu2qlF.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-DDobn9Xh.js +0 -16
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-CGdWnLD_.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-DgMmzrKs.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/entry.client-DEVXuhkn.js +0 -13
- package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-WPRQyc68.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/files-B9u3lJer.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/git-YGnKIuHU.js +0 -11
- package/codeyam-cli/src/webserver/build/client/assets/globals-28lrWTTo.css +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-XQCGvadH.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/index-CJ0uPJjV.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/index-CfqeA2XG.js +0 -3
- package/codeyam-cli/src/webserver/build/client/assets/loader-circle-DIjSvh6B.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-8125c15c.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/preload-helper-BXl3LOEh.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/root-C-g286WP.js +0 -16
- package/codeyam-cli/src/webserver/build/client/assets/search-xBKWfOxd.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/settings-DVY_wGOx.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/simulations-Be1pJo5A.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-CR-FkSvx.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DABetnSj.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/index-DcR7DH9q.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/server-build-BDBrfp7e.js +0 -175
- package/codeyam-cli/templates/debug-codeyam.md +0 -527
- package/packages/ai/src/lib/findMatchingAttribute.js +0 -77
- package/packages/ai/src/lib/findMatchingAttribute.js.map +0 -1
- package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +0 -136
- package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +0 -1
- package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +0 -220
- package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +0 -1
- package/packages/ai/src/lib/generateEntityKeyAttributes.js +0 -241
- package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +0 -1
- package/packages/ai/src/lib/isFrontend.js +0 -5
- package/packages/ai/src/lib/isFrontend.js.map +0 -1
- package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +0 -40
- package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +0 -1
- package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +0 -72
- package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +0 -1
- /package/analyzer-template/{process → packages/process/src}/GlobalProcessManager.ts +0 -0
- /package/analyzer-template/{process → packages/process/src}/ProcessManager.ts +0 -0
- /package/analyzer-template/{process → packages/process/src}/index.ts +0 -0
- /package/analyzer-template/{process → packages/process/src}/managedExecAsync.ts +0 -0
- /package/{background/src/lib/process → packages/process/src}/GlobalProcessManager.js +0 -0
- /package/{background/src/lib/process → packages/process/src}/index.js +0 -0
- /package/{background/src/lib/process → packages/process/src}/managedExecAsync.js +0 -0
package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts
CHANGED
|
@@ -208,10 +208,12 @@ export default function fillInSchemaGapsAndUnknowns(
|
|
|
208
208
|
export function fillInDirectSchemaGapsAndUnknowns({
|
|
209
209
|
scopeName,
|
|
210
210
|
schema,
|
|
211
|
+
mergedSchema,
|
|
211
212
|
attempts = 0,
|
|
212
213
|
}: {
|
|
213
214
|
scopeName?: string;
|
|
214
215
|
schema: Record<string, string>;
|
|
216
|
+
mergedSchema?: Record<string, string>;
|
|
215
217
|
attempts?: number;
|
|
216
218
|
}) {
|
|
217
219
|
try {
|
|
@@ -245,7 +247,9 @@ export function fillInDirectSchemaGapsAndUnknowns({
|
|
|
245
247
|
const guessTypeForPath = (path: string, defaultType = 'string') => {
|
|
246
248
|
let knownType = checkIfKnownType(path, functionKeysMapping);
|
|
247
249
|
if (!knownType) {
|
|
248
|
-
|
|
250
|
+
// Use mergedSchema for type inference if available (has more complete nested paths)
|
|
251
|
+
// Fall back to schema if mergedSchema is not provided
|
|
252
|
+
knownType = checkIfObjectOrFunction(path, mergedSchema ?? schema);
|
|
249
253
|
}
|
|
250
254
|
|
|
251
255
|
if (knownType && schema[path] !== knownType) {
|
|
@@ -303,7 +307,14 @@ export function fillInDirectSchemaGapsAndUnknowns({
|
|
|
303
307
|
cleanOutBoundary(lastSubPathPart).match(/\[\d*\]/) &&
|
|
304
308
|
!lastSubPathPart.match(/signature\[\d+\]/)
|
|
305
309
|
) {
|
|
306
|
-
|
|
310
|
+
// Fix 39: Don't overwrite explicit 'object' types with 'array'
|
|
311
|
+
// This handles spurious [] paths from components like JsonNode that handle
|
|
312
|
+
// both arrays and objects. When metadata is explicitly typed as 'object',
|
|
313
|
+
// paths like metadata[] (from dynamic iteration) should not change it.
|
|
314
|
+
if (
|
|
315
|
+
schema[previousSubPath] !== 'array' &&
|
|
316
|
+
schema[previousSubPath] !== 'object'
|
|
317
|
+
) {
|
|
307
318
|
schema[previousSubPath] = 'array';
|
|
308
319
|
changeMade = true;
|
|
309
320
|
}
|
|
@@ -373,10 +384,39 @@ export function fillInDirectSchemaGapsAndUnknowns({
|
|
|
373
384
|
fillInDirectSchemaGapsAndUnknowns({
|
|
374
385
|
scopeName,
|
|
375
386
|
schema,
|
|
387
|
+
mergedSchema,
|
|
376
388
|
attempts: ++attempts,
|
|
377
389
|
});
|
|
378
390
|
}
|
|
379
391
|
|
|
392
|
+
// Remove .length paths when the parent is typed as 'array' or 'string' (or nullable variants).
|
|
393
|
+
// These are built-in properties that were used for type inference but shouldn't appear
|
|
394
|
+
// in the final schema (they create { length: N } objects instead of proper arrays).
|
|
395
|
+
// However, if the parent could be an 'object' or other type, keep .length as it may be
|
|
396
|
+
// a custom property.
|
|
397
|
+
for (const key of Object.keys(schema)) {
|
|
398
|
+
const parts = splitOutsideParenthesesAndArrays(key);
|
|
399
|
+
if (parts[parts.length - 1] === 'length') {
|
|
400
|
+
const parentPath = joinParenthesesAndArrays(parts.slice(0, -1));
|
|
401
|
+
const parentType = schema[parentPath];
|
|
402
|
+
if (parentType) {
|
|
403
|
+
// Split union types and filter out nullable parts
|
|
404
|
+
const typeParts = parentType.split(' | ').map((t) => t.trim());
|
|
405
|
+
const nonNullableTypes = typeParts.filter(
|
|
406
|
+
(t) => t !== 'undefined' && t !== 'null',
|
|
407
|
+
);
|
|
408
|
+
// Only remove if ALL non-nullable types are array or string
|
|
409
|
+
// This ensures we don't remove .length from potential custom objects
|
|
410
|
+
if (
|
|
411
|
+
nonNullableTypes.length > 0 &&
|
|
412
|
+
nonNullableTypes.every((t) => t === 'array' || t === 'string')
|
|
413
|
+
) {
|
|
414
|
+
delete schema[key];
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
|
|
380
420
|
return schema;
|
|
381
421
|
} catch (error) {
|
|
382
422
|
console.info(
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export default function deepEqual(obj1: unknown, obj2: unknown): boolean {
|
|
2
|
+
// Handle primitive types and null/undefined
|
|
3
|
+
if (obj1 === obj2) return true;
|
|
4
|
+
if (obj1 == null || obj2 == null) return false;
|
|
5
|
+
if (typeof obj1 !== 'object' || typeof obj2 !== 'object') return false;
|
|
6
|
+
|
|
7
|
+
// Handle Date objects
|
|
8
|
+
if (obj1 instanceof Date && obj2 instanceof Date) {
|
|
9
|
+
return obj1.getTime() === obj2.getTime();
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// Handle Array objects
|
|
13
|
+
if (Array.isArray(obj1) && Array.isArray(obj2)) {
|
|
14
|
+
if (obj1.length !== obj2.length) return false;
|
|
15
|
+
return obj1.every((item, index) => deepEqual(item, obj2[index]));
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// Handle regular objects
|
|
19
|
+
const keys1 = Object.keys(obj1);
|
|
20
|
+
const keys2 = Object.keys(obj2);
|
|
21
|
+
|
|
22
|
+
if (keys1.length !== keys2.length) return false;
|
|
23
|
+
|
|
24
|
+
return keys1.every((key) => {
|
|
25
|
+
if (!Object.prototype.hasOwnProperty.call(obj2, key)) return false;
|
|
26
|
+
const obj1AsAny = obj1 as any;
|
|
27
|
+
const obj2AsAny = obj2 as any;
|
|
28
|
+
return deepEqual(obj1AsAny[key], obj2AsAny[key]);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
@@ -16,6 +16,8 @@ import type {
|
|
|
16
16
|
import { LlmCall } from '~codeyam/types';
|
|
17
17
|
import validateJson from './validateJson';
|
|
18
18
|
import checkAllAttributes from './checkAllAttributes';
|
|
19
|
+
import convertNullToUndefinedBySchema from './dataStructure/helpers/convertNullToUndefinedBySchema';
|
|
20
|
+
import deepEqual from './deepEqual';
|
|
19
21
|
import { awsLog } from '~codeyam/utils';
|
|
20
22
|
import { AI, parseJsonSafe } from '~codeyam/ai';
|
|
21
23
|
|
|
@@ -59,12 +61,14 @@ async function generateChangesDataForScenario({
|
|
|
59
61
|
llmCalls: LlmCall[];
|
|
60
62
|
}> {
|
|
61
63
|
if (
|
|
62
|
-
structure
|
|
63
|
-
|
|
64
|
-
|
|
64
|
+
deepEqual(structure, existingStructure) &&
|
|
65
|
+
deepEqual(
|
|
66
|
+
scenario.metadata?.coveredFlows,
|
|
67
|
+
existingScenario?.metadata?.coveredFlows,
|
|
68
|
+
)
|
|
65
69
|
) {
|
|
66
70
|
console.log(
|
|
67
|
-
"CodeYam: No changes in scenario's structure or
|
|
71
|
+
"CodeYam: No changes in scenario's structure or coveredFlows - returning existing scenario data",
|
|
68
72
|
{
|
|
69
73
|
analysisId: scenario.analysisId,
|
|
70
74
|
scenarioId: scenario.id,
|
|
@@ -95,6 +99,7 @@ async function generateChangesDataForScenario({
|
|
|
95
99
|
prompt = generateEntityScenarioDataGenerator(
|
|
96
100
|
structure,
|
|
97
101
|
scenario,
|
|
102
|
+
undefined, // executionFlows - not available in changes context
|
|
98
103
|
defaultScenarioData,
|
|
99
104
|
incompleteResponse,
|
|
100
105
|
);
|
|
@@ -219,8 +224,8 @@ async function generateChangesDataForScenario({
|
|
|
219
224
|
if (!Array.isArray(argumentsData)) {
|
|
220
225
|
argumentsData = [];
|
|
221
226
|
}
|
|
222
|
-
fullScenarioData.data.argumentsData = argumentsData.map(
|
|
223
|
-
checkAllAttributes(arg),
|
|
227
|
+
fullScenarioData.data.argumentsData = argumentsData.map(
|
|
228
|
+
(arg) => checkAllAttributes(arg) as { [key: string]: unknown },
|
|
224
229
|
);
|
|
225
230
|
|
|
226
231
|
if (structure.dataForMocks && !fullScenarioData.data.mockData) {
|
|
@@ -232,7 +237,28 @@ async function generateChangesDataForScenario({
|
|
|
232
237
|
}
|
|
233
238
|
fullScenarioData.data.mockData = checkAllAttributes(
|
|
234
239
|
fullScenarioData.data.mockData,
|
|
235
|
-
);
|
|
240
|
+
) as { [key: string]: unknown };
|
|
241
|
+
|
|
242
|
+
// Convert null values to undefined based on schema type constraints.
|
|
243
|
+
// LLM uses null for "no value" (JSON doesn't support undefined), but TypeScript
|
|
244
|
+
// types like "string | undefined" don't accept null. This converts null→undefined
|
|
245
|
+
// for fields typed as "T | undefined" (but preserves null for "T | null").
|
|
246
|
+
if (structure.dataForMocks && fullScenarioData.data.mockData) {
|
|
247
|
+
convertNullToUndefinedBySchema(
|
|
248
|
+
fullScenarioData.data.mockData,
|
|
249
|
+
structure.dataForMocks,
|
|
250
|
+
);
|
|
251
|
+
}
|
|
252
|
+
if (structure.arguments && fullScenarioData.data.argumentsData) {
|
|
253
|
+
for (let i = 0; i < fullScenarioData.data.argumentsData.length; i++) {
|
|
254
|
+
if (structure.arguments[i]) {
|
|
255
|
+
convertNullToUndefinedBySchema(
|
|
256
|
+
fullScenarioData.data.argumentsData[i],
|
|
257
|
+
structure.arguments[i],
|
|
258
|
+
);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
236
262
|
|
|
237
263
|
return {
|
|
238
264
|
llmCalls: [{ name: scenario.name, id: llmCall.id }],
|
|
@@ -346,6 +372,47 @@ NEVER include "error" fields in responses. Skip them entirely.
|
|
|
346
372
|
- If structure has \`{ data: {...}, error: {...} }\`, only fill \`data\`
|
|
347
373
|
- Leave out any attribute named "error"—do not set to null, omit entirely
|
|
348
374
|
|
|
375
|
+
## CRITICAL: Preserve Exact Structure
|
|
376
|
+
Your response MUST mirror the EXACT nested structure provided in mockData Structure.
|
|
377
|
+
- Do NOT reorganize, split, or create duplicate keys
|
|
378
|
+
- The hierarchy of nested objects must match exactly what was provided
|
|
379
|
+
- Only change the leaf VALUES (replacing type descriptions like "string" with actual data like "hello")
|
|
380
|
+
- Arrays should have 3-5 items to provide realistic test data variety
|
|
381
|
+
|
|
382
|
+
**Example** - if given this structure:
|
|
383
|
+
\`\`\`json
|
|
384
|
+
{
|
|
385
|
+
"createClient()": {
|
|
386
|
+
"from(\\"users\\")": {
|
|
387
|
+
"select(\\"*\\")": { "data": [{ "id": "string", "name": "string" }] },
|
|
388
|
+
"delete()": { "eq(\\"id\\", id)": {} }
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
\`\`\`
|
|
393
|
+
|
|
394
|
+
Return ONE \`from("users")\` key containing BOTH \`select("*")\` and \`delete()\`:
|
|
395
|
+
\`\`\`json
|
|
396
|
+
{
|
|
397
|
+
"createClient()": {
|
|
398
|
+
"from(\\"users\\")": {
|
|
399
|
+
"select(\\"*\\")": { "data": [{ "id": "user-1", "name": "Alice" }, { "id": "user-2", "name": "Bob" }] },
|
|
400
|
+
"delete()": { "eq(\\"id\\", \\"user-1\\")": {} }
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
\`\`\`
|
|
405
|
+
|
|
406
|
+
**WRONG** - do NOT create duplicate keys like this:
|
|
407
|
+
\`\`\`json
|
|
408
|
+
{
|
|
409
|
+
"createClient()": {
|
|
410
|
+
"from(\\"users\\")": { "select(\\"*\\")": { ... } },
|
|
411
|
+
"from(\\"users\\")": { "delete()": { ... } }
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
\`\`\`
|
|
415
|
+
|
|
349
416
|
## Special Markers
|
|
350
417
|
|
|
351
418
|
### Dynamic Dates (\`~~codeyam-code~~\`)
|
|
@@ -5,21 +5,19 @@ import generateChangesEntityScenariosGenerator from './promptGenerators/generate
|
|
|
5
5
|
import {
|
|
6
6
|
Analysis,
|
|
7
7
|
Entity,
|
|
8
|
+
ExecutionFlow,
|
|
8
9
|
ReadonlyAnalysisMap,
|
|
9
10
|
Scenario,
|
|
10
11
|
} from '~codeyam/types';
|
|
11
12
|
import { ScenarioResult } from './generateEntityScenarios';
|
|
12
|
-
import findMatchingAttribute from './findMatchingAttribute';
|
|
13
13
|
import { awsLog } from '~codeyam/utils';
|
|
14
14
|
import { sanitizePlaywrightInstructions } from './validatePlaywrightInstructions';
|
|
15
|
-
import gatherRelevantDependentKeyAttributes from './gatherRelevantDependentKeyAttributes';
|
|
16
15
|
import { AI, DEFAULT_LARGER_MODEL, parseJsonSafe } from '~codeyam/ai';
|
|
17
16
|
|
|
18
17
|
interface GenerateChangesEntityScenariosArgs {
|
|
19
18
|
entity: Entity;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
removedKeyAttributes: Analysis['metadata']['keyAttributes'];
|
|
19
|
+
executionFlows?: ExecutionFlow[];
|
|
20
|
+
previousExecutionFlows?: ExecutionFlow[];
|
|
23
21
|
dependentAnalyses?: ReadonlyAnalysisMap;
|
|
24
22
|
existingScenarios: Scenario[];
|
|
25
23
|
commitDiff: string;
|
|
@@ -33,10 +31,8 @@ const DEFAULT_SCENARIO_NAME = 'Default Scenario';
|
|
|
33
31
|
|
|
34
32
|
export default async function generateChangesEntityScenarios({
|
|
35
33
|
entity,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
removedKeyAttributes,
|
|
39
|
-
dependentAnalyses,
|
|
34
|
+
executionFlows,
|
|
35
|
+
previousExecutionFlows,
|
|
40
36
|
existingScenarios,
|
|
41
37
|
commitDiff,
|
|
42
38
|
analysis,
|
|
@@ -44,16 +40,22 @@ export default async function generateChangesEntityScenarios({
|
|
|
44
40
|
model,
|
|
45
41
|
changedDataStructureFields = [],
|
|
46
42
|
}: GenerateChangesEntityScenariosArgs) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
43
|
+
// Determine added/removed flows
|
|
44
|
+
const currentFlowIds = new Set((executionFlows ?? []).map((f) => f.id));
|
|
45
|
+
const previousFlowIds = new Set(
|
|
46
|
+
(previousExecutionFlows ?? []).map((f) => f.id),
|
|
51
47
|
);
|
|
48
|
+
|
|
49
|
+
const addedFlows =
|
|
50
|
+
executionFlows?.filter((f) => !previousFlowIds.has(f.id)) ?? [];
|
|
51
|
+
const removedFlows =
|
|
52
|
+
previousExecutionFlows?.filter((f) => !currentFlowIds.has(f.id)) ?? [];
|
|
53
|
+
|
|
54
|
+
// If no changes, return existing scenarios
|
|
52
55
|
if (
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
!existingScenarios.some((s) => s.metadata?.playwrightInstructions)
|
|
56
|
-
Object.keys(relevantDependentKeyAttributes).length === 0
|
|
56
|
+
addedFlows.length === 0 &&
|
|
57
|
+
removedFlows.length === 0 &&
|
|
58
|
+
!existingScenarios.some((s) => s.metadata?.playwrightInstructions)
|
|
57
59
|
) {
|
|
58
60
|
return { scenarios: existingScenarios };
|
|
59
61
|
}
|
|
@@ -62,21 +64,20 @@ export default async function generateChangesEntityScenarios({
|
|
|
62
64
|
`CodeYam: Generating ${error ? 'error ' : ''}changes entity scenarios`,
|
|
63
65
|
{
|
|
64
66
|
filePath: entity.filePath,
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
entityName: entity.name,
|
|
68
|
+
analysisId: analysis.id,
|
|
69
|
+
currentFlowCount: executionFlows?.length ?? 0,
|
|
70
|
+
addedFlows: addedFlows.map((f) => f.id),
|
|
71
|
+
removedFlows: removedFlows.map((f) => f.id),
|
|
70
72
|
},
|
|
71
73
|
);
|
|
72
74
|
|
|
73
75
|
const prompt = generateChangesEntityScenariosGenerator({
|
|
74
76
|
entity,
|
|
75
77
|
mergedDataStructure: analysis.metadata.mergedDataStructure,
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
dependentAnalyses,
|
|
78
|
+
executionFlows,
|
|
79
|
+
addedFlows,
|
|
80
|
+
removedFlows,
|
|
80
81
|
existingScenarios,
|
|
81
82
|
commitDiff,
|
|
82
83
|
error,
|
|
@@ -93,7 +94,7 @@ export default async function generateChangesEntityScenarios({
|
|
|
93
94
|
type: `generate${error ? 'Error' : ''}ChangesEntityScenarios`,
|
|
94
95
|
systemMessage: error
|
|
95
96
|
? ERROR_SYSTEM_MESSAGE
|
|
96
|
-
: generateChangesSystemMessage(context, scenarioCount
|
|
97
|
+
: generateChangesSystemMessage(context, scenarioCount),
|
|
97
98
|
prompt,
|
|
98
99
|
model: model ?? DEFAULT_LARGER_MODEL,
|
|
99
100
|
});
|
|
@@ -111,32 +112,17 @@ export default async function generateChangesEntityScenarios({
|
|
|
111
112
|
path: entity.file.path,
|
|
112
113
|
},
|
|
113
114
|
},
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
dependentAnalyses: Object.fromEntries(
|
|
118
|
-
Object.entries(dependentAnalyses ?? {}).map(([path, analyses]) => [
|
|
119
|
-
path,
|
|
120
|
-
Object.fromEntries(
|
|
121
|
-
Object.entries(analyses).map(([name, analysis]) => [
|
|
122
|
-
name,
|
|
123
|
-
{
|
|
124
|
-
metadata: {
|
|
125
|
-
keyAttributes: analysis.metadata?.keyAttributes,
|
|
126
|
-
},
|
|
127
|
-
},
|
|
128
|
-
]),
|
|
129
|
-
),
|
|
130
|
-
]),
|
|
131
|
-
),
|
|
115
|
+
executionFlows,
|
|
116
|
+
addedFlows,
|
|
117
|
+
removedFlows,
|
|
132
118
|
existingScenarios: existingScenarios.map((s) => ({
|
|
133
119
|
id: s.id,
|
|
134
120
|
name: s.name,
|
|
135
121
|
description: s.description,
|
|
136
122
|
metadata: {
|
|
137
|
-
error: s.metadata
|
|
138
|
-
|
|
139
|
-
playwrightInstructions: s.metadata
|
|
123
|
+
error: s.metadata?.error,
|
|
124
|
+
coveredFlows: s.metadata?.coveredFlows,
|
|
125
|
+
playwrightInstructions: s.metadata?.playwrightInstructions,
|
|
140
126
|
},
|
|
141
127
|
})),
|
|
142
128
|
commitDiff,
|
|
@@ -146,7 +132,7 @@ export default async function generateChangesEntityScenarios({
|
|
|
146
132
|
isolatedDataStructure: {
|
|
147
133
|
equivalentSignatureVariables:
|
|
148
134
|
entity.metadata.isolatedDataStructure
|
|
149
|
-
|
|
135
|
+
?.equivalentSignatureVariables,
|
|
150
136
|
},
|
|
151
137
|
},
|
|
152
138
|
},
|
|
@@ -191,7 +177,7 @@ export default async function generateChangesEntityScenarios({
|
|
|
191
177
|
);
|
|
192
178
|
|
|
193
179
|
const revisedFromPreviousVersion = previousVersion
|
|
194
|
-
? !!scenarioInfo.
|
|
180
|
+
? !!scenarioInfo.coveredFlows
|
|
195
181
|
: undefined;
|
|
196
182
|
const useScenarioData = !previousVersion || revisedFromPreviousVersion;
|
|
197
183
|
|
|
@@ -204,58 +190,42 @@ export default async function generateChangesEntityScenarios({
|
|
|
204
190
|
: previousVersion.description,
|
|
205
191
|
metadata: {
|
|
206
192
|
testName:
|
|
207
|
-
useScenarioData || !previousVersion
|
|
193
|
+
useScenarioData || !previousVersion?.metadata?.testName
|
|
208
194
|
? scenarioInfo.testName
|
|
209
195
|
: previousVersion.metadata.testName,
|
|
210
196
|
error,
|
|
211
197
|
revisedFromPreviousVersion,
|
|
212
198
|
codeSnippet: useScenarioData
|
|
213
199
|
? scenarioInfo.codeSnippet
|
|
214
|
-
: previousVersion
|
|
215
|
-
fix: useScenarioData
|
|
200
|
+
: previousVersion?.metadata?.codeSnippet,
|
|
201
|
+
fix: useScenarioData
|
|
202
|
+
? scenarioInfo.fix
|
|
203
|
+
: previousVersion?.metadata?.fix,
|
|
216
204
|
fixSnippet: useScenarioData
|
|
217
205
|
? scenarioInfo.fixSnippet
|
|
218
|
-
: previousVersion
|
|
206
|
+
: previousVersion?.metadata?.fixSnippet,
|
|
219
207
|
likelihood: useScenarioData
|
|
220
208
|
? scenarioInfo.likelihood
|
|
221
|
-
: previousVersion
|
|
209
|
+
: previousVersion?.metadata?.likelihood,
|
|
222
210
|
likelihoodDescription: useScenarioData
|
|
223
211
|
? scenarioInfo.likelihoodDescription
|
|
224
|
-
: previousVersion
|
|
212
|
+
: previousVersion?.metadata?.likelihoodDescription,
|
|
225
213
|
severity: useScenarioData
|
|
226
214
|
? scenarioInfo.severity
|
|
227
|
-
: previousVersion
|
|
215
|
+
: previousVersion?.metadata?.severity,
|
|
228
216
|
severityDescription: useScenarioData
|
|
229
217
|
? scenarioInfo.severityDescription
|
|
230
|
-
: previousVersion
|
|
231
|
-
|
|
232
|
-
? scenarioInfo.
|
|
233
|
-
: previousVersion
|
|
234
|
-
keyAttributeInstructions: useScenarioData
|
|
235
|
-
? Object.keys(scenarioInfo.keyAttributeInstructions).reduce(
|
|
236
|
-
(acc: any, key) => {
|
|
237
|
-
const attributesList = keyAttributes.map(
|
|
238
|
-
(attr) => attr.internalPath,
|
|
239
|
-
);
|
|
240
|
-
const matchingKey = findMatchingAttribute(
|
|
241
|
-
key,
|
|
242
|
-
attributesList,
|
|
243
|
-
entity.metadata.isolatedDataStructure
|
|
244
|
-
.equivalentSignatureVariables,
|
|
245
|
-
);
|
|
246
|
-
acc[matchingKey] = scenarioInfo.keyAttributeInstructions[key];
|
|
247
|
-
return acc;
|
|
248
|
-
},
|
|
249
|
-
{},
|
|
250
|
-
)
|
|
251
|
-
: previousVersion.metadata.keyAttributeInstructions,
|
|
218
|
+
: previousVersion?.metadata?.severityDescription,
|
|
219
|
+
coveredFlows: useScenarioData
|
|
220
|
+
? scenarioInfo.coveredFlows || []
|
|
221
|
+
: previousVersion?.metadata?.coveredFlows || [],
|
|
252
222
|
playwrightInstructions: useScenarioData
|
|
253
223
|
? sanitizePlaywrightInstructions(
|
|
254
224
|
scenarioInfo.playwrightInstructions || [],
|
|
255
225
|
entity.name,
|
|
256
226
|
scenarioInfo.name,
|
|
257
227
|
)
|
|
258
|
-
: previousVersion
|
|
228
|
+
: previousVersion?.metadata?.playwrightInstructions,
|
|
259
229
|
},
|
|
260
230
|
previousVersionId: previousVersion?.id,
|
|
261
231
|
});
|
|
@@ -271,7 +241,6 @@ export default async function generateChangesEntityScenarios({
|
|
|
271
241
|
function generateChangesSystemMessage(
|
|
272
242
|
context?: string,
|
|
273
243
|
scenarioCount?: number,
|
|
274
|
-
_isError?: boolean,
|
|
275
244
|
): string {
|
|
276
245
|
const contextSection = context
|
|
277
246
|
? `## Business Context
|
|
@@ -288,27 +257,35 @@ Focus scenario updates on demonstrating this change.${scenarioCount ? ` Generate
|
|
|
288
257
|
|
|
289
258
|
return `You are updating data scenarios after a code change. Determine which existing scenarios need updating, which should be removed, and if new ones are needed.
|
|
290
259
|
|
|
291
|
-
${contextSection}##
|
|
260
|
+
${contextSection}## Your Goal: Maintain Full Execution Flow Coverage
|
|
261
|
+
|
|
262
|
+
You are given:
|
|
263
|
+
- \`executionFlows\`: All current distinct outcomes/behaviors this component can produce
|
|
264
|
+
- \`addedFlows\`: New flows that didn't exist before
|
|
265
|
+
- \`removedFlows\`: Flows that no longer exist
|
|
266
|
+
- \`existingScenarios\`: Current scenarios with their coveredFlows
|
|
267
|
+
|
|
268
|
+
**Your job**: Update scenarios to maintain coverage of ALL current execution flows.
|
|
292
269
|
|
|
293
|
-
|
|
294
|
-
- Update scenarios using removed attributes—replace with new attributes or remove if no longer relevant
|
|
295
|
-
- CRITICAL: "${DEFAULT_SCENARIO_NAME}" must NEVER contain removed attributes—update or replace them
|
|
296
|
-
- Try to maintain 3+ scenarios; create replacements if removing too many
|
|
270
|
+
## Update Rules
|
|
297
271
|
|
|
298
|
-
###
|
|
299
|
-
-
|
|
272
|
+
### Removed Flows
|
|
273
|
+
- If an existing scenario only covers removed flows, remove the scenario
|
|
274
|
+
- If a scenario covers both removed and current flows, update its coveredFlows to remove the deleted ones
|
|
300
275
|
|
|
301
|
-
###
|
|
302
|
-
-
|
|
303
|
-
-
|
|
276
|
+
### Added Flows
|
|
277
|
+
- Create new scenarios or update existing ones to cover new flows
|
|
278
|
+
- Follow the same rules as initial scenario generation:
|
|
279
|
+
- Blocking flows (blocksOtherFlows: true) get their own dedicated scenarios
|
|
280
|
+
- Non-blocking flows can be combined with compatible existing scenarios
|
|
304
281
|
|
|
305
282
|
### Unchanged Scenarios
|
|
306
|
-
- Return name only (no other fields needed)
|
|
283
|
+
- Return name only (no other fields needed) if the scenario's covered flows are all still valid
|
|
307
284
|
|
|
308
285
|
### Default Scenario
|
|
309
286
|
- First scenario must be "${DEFAULT_SCENARIO_NAME}" (exact name)
|
|
310
287
|
- NEVER include playwrightInstructions—captures initial state only
|
|
311
|
-
-
|
|
288
|
+
- Should cover as many non-blocking, non-error flows as possible
|
|
312
289
|
|
|
313
290
|
## Response Format
|
|
314
291
|
|
|
@@ -326,27 +303,31 @@ Otherwise:
|
|
|
326
303
|
"overview": "Added empty state scenario for new display behavior.",
|
|
327
304
|
"dataScenarios": [
|
|
328
305
|
{ "name": "${DEFAULT_SCENARIO_NAME}" },
|
|
329
|
-
{ "name": "
|
|
306
|
+
{ "name": "Settings Modal" },
|
|
330
307
|
{
|
|
331
|
-
"name": "
|
|
332
|
-
"testName": "it(\\"shows empty message when no
|
|
333
|
-
"description": "User has no
|
|
334
|
-
"
|
|
335
|
-
"notifications[]": { "localVariable": "notifications[]", "instruction": "Empty array" }
|
|
336
|
-
}
|
|
308
|
+
"name": "Empty State",
|
|
309
|
+
"testName": "it(\\"shows empty message when no items\\")",
|
|
310
|
+
"description": "User has no items to display.",
|
|
311
|
+
"coveredFlows": ["empty-list"]
|
|
337
312
|
}
|
|
338
313
|
]
|
|
339
314
|
}
|
|
340
315
|
\`\`\`
|
|
341
316
|
|
|
317
|
+
## Field Descriptions
|
|
318
|
+
|
|
319
|
+
- **name**: Human-readable scenario name (letters, numbers, spaces only)
|
|
320
|
+
- **testName**: Jest-style test description (only for new/updated scenarios)
|
|
321
|
+
- **description**: What the user sees (only for new/updated scenarios)
|
|
322
|
+
- **coveredFlows**: Array of execution flow IDs this scenario covers (only for new/updated scenarios)
|
|
323
|
+
- **playwrightInstructions**: User interactions needed (only for new/updated scenarios that require interaction)
|
|
324
|
+
|
|
342
325
|
## Rules
|
|
343
326
|
- Scenario names: letters, numbers, spaces only
|
|
344
327
|
- testName: Jest style with specific expectations
|
|
345
|
-
-
|
|
346
|
-
-
|
|
347
|
-
-
|
|
348
|
-
- No external library references—plain JS/TS values
|
|
349
|
-
- Relative dates OK: "today", "tomorrow", "last month"
|
|
328
|
+
- All values must be valid JSON
|
|
329
|
+
- EVERY execution flow must be covered by at least one scenario
|
|
330
|
+
- Blocking flows get dedicated scenarios
|
|
350
331
|
`;
|
|
351
332
|
}
|
|
352
333
|
|
|
@@ -381,27 +362,23 @@ Be conservative with high scores.
|
|
|
381
362
|
- No external library references—mock with plain JS
|
|
382
363
|
- Each scenario causes a DISTINCT error type
|
|
383
364
|
|
|
384
|
-
Note: In JS/TS, any non-zero value satisfies a boolean check—this won't error.
|
|
385
|
-
|
|
386
365
|
## Response Format
|
|
387
366
|
\`\`\`json
|
|
388
367
|
{
|
|
389
368
|
"errorDataScenarios": [
|
|
390
369
|
{ "name": "Existing valid error" },
|
|
391
370
|
{
|
|
392
|
-
"dataMapping": { "notifications array": "props.notifications" },
|
|
393
371
|
"name": "Non-utf8 encoding error",
|
|
394
|
-
"
|
|
372
|
+
"testName": "it(\\"throws on non-utf8 characters\\")",
|
|
395
373
|
"description": "encodeURIComponent throws on non-utf8 characters",
|
|
374
|
+
"codeSnippet": "const encoded = encodeURIComponent(message);",
|
|
396
375
|
"fix": "Wrap in try/catch",
|
|
397
376
|
"fixSnippet": "try { encoded = encodeURIComponent(message); } catch (e) { ... }",
|
|
398
377
|
"likelihood": 7,
|
|
399
378
|
"likelihoodDescription": "International users may input non-utf8 characters",
|
|
400
379
|
"severity": 2,
|
|
401
380
|
"severityDescription": "Function throws uncaught error",
|
|
402
|
-
"
|
|
403
|
-
"notifications[]": "Array with message containing non-utf8 characters"
|
|
404
|
-
}
|
|
381
|
+
"coveredFlows": []
|
|
405
382
|
}
|
|
406
383
|
]
|
|
407
384
|
}
|
|
@@ -3,6 +3,7 @@ import isolateScopes from './isolateScopes';
|
|
|
3
3
|
import analyzeScope from './analyzeScope';
|
|
4
4
|
import { FileAnalyzer } from '~codeyam/analyze';
|
|
5
5
|
import { AI, SerializableDataStructure } from '~codeyam/ai';
|
|
6
|
+
import { resetScopeDataStructureMetrics } from './dataStructure/ScopeDataStructure';
|
|
6
7
|
|
|
7
8
|
// import { awsLog } from '~codeyam/utils';
|
|
8
9
|
|
|
@@ -17,6 +18,10 @@ export default async function generateEntityDataStructure({
|
|
|
17
18
|
fileAnalyzer,
|
|
18
19
|
model,
|
|
19
20
|
}: GenerateEntityDataStructureArgs): Promise<SerializableDataStructure> {
|
|
21
|
+
// Reset metrics counters to prevent false "infinite loop" detection when
|
|
22
|
+
// processing multiple entities in the same run
|
|
23
|
+
resetScopeDataStructureMetrics();
|
|
24
|
+
|
|
20
25
|
// awsLog('CodeYam: Generating entity data structure', {
|
|
21
26
|
// filePath: entity.filePath,
|
|
22
27
|
// entityName: entity.name,
|
|
@@ -28,6 +33,7 @@ export default async function generateEntityDataStructure({
|
|
|
28
33
|
const fileText = fileAnalyzer.sourceFile.getFullText();
|
|
29
34
|
const fileScope = isolateScopes(fileText, {
|
|
30
35
|
entityNames: [entity.name],
|
|
36
|
+
jsxLimit: 10, // Enable gating condition extraction for child component flow merging
|
|
31
37
|
});
|
|
32
38
|
|
|
33
39
|
let entityScope =
|