@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
|
@@ -1,527 +0,0 @@
|
|
|
1
|
-
# Debug Scenario or Analysis
|
|
2
|
-
|
|
3
|
-
When a user asks to debug a scenario or analysis (e.g., `/debug-codeyam [ID]`), use this systematic process.
|
|
4
|
-
|
|
5
|
-
## CRITICAL: Definition of Done
|
|
6
|
-
|
|
7
|
-
**Debugging is NOT complete until one of these conditions is met:**
|
|
8
|
-
|
|
9
|
-
1. **SUCCESS**: **ALL** scenarios have screenshot files that exist on disk and render correctly
|
|
10
|
-
2. **ENGINE BUG**: You've identified a bug that CANNOT be fixed locally (requires CodeYam engine changes) AND you've documented the bug clearly
|
|
11
|
-
|
|
12
|
-
**Common mistakes to avoid:**
|
|
13
|
-
|
|
14
|
-
- Stopping after curl returns 200 (this only verifies one scenario loads, not that screenshots were captured)
|
|
15
|
-
- Trusting database `screenshotPaths` without verifying files exist on disk
|
|
16
|
-
- Fixing one scenario but not checking if other scenarios in the same analysis also need fixes
|
|
17
|
-
- Declaring success when only some scenarios have screenshots
|
|
18
|
-
|
|
19
|
-
If you fix an issue locally (database fix, universal mock, etc.), you MUST recapture screenshots AND verify ALL scenario screenshot files exist on disk.
|
|
20
|
-
|
|
21
|
-
### Debug Flow Summary
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
┌─────────────────────────────────────────────────────────────────────┐
|
|
25
|
-
│ Step 0: Query database for scenario status (DO THIS FIRST!) │
|
|
26
|
-
│ Check ALL scenarios in the analysis for failures │
|
|
27
|
-
│ Ask user: fix ONE scenario or ALL failing scenarios? │
|
|
28
|
-
│ │ │
|
|
29
|
-
│ ▼ │
|
|
30
|
-
│ Step 1: codeyam debug ID (use scenario ID or analysis ID based │
|
|
31
|
-
│ on user's choice from Step 0) │
|
|
32
|
-
│ Step 2: Identify error type │
|
|
33
|
-
│ Step 3-4: Fix (database edit or universal mock) │
|
|
34
|
-
│ Step 5: Verify locally (curl returns 200) │
|
|
35
|
-
│ │ │
|
|
36
|
-
│ ▼ │
|
|
37
|
-
│ Step 6: Recapture screenshots ◄──────────── REQUIRED! │
|
|
38
|
-
│ codeyam recapture SCENARIO_ID │
|
|
39
|
-
│ │ │
|
|
40
|
-
│ ▼ │
|
|
41
|
-
│ Verify ALL screenshot files exist on disk: │
|
|
42
|
-
│ find .codeyam/captures -name "*.png" -path "*ANALYSIS_ID*" │
|
|
43
|
-
│ │ │
|
|
44
|
-
│ ┌─────────┴─────────┐ │
|
|
45
|
-
│ ▼ ▼ │
|
|
46
|
-
│ ALL screenshots Missing screenshots │
|
|
47
|
-
│ exist on disk or new errors │
|
|
48
|
-
│ │ │ │
|
|
49
|
-
│ ▼ ▼ │
|
|
50
|
-
│ ✅ DONE Go back to Step 2 │
|
|
51
|
-
│ (fix ALL scenarios) │
|
|
52
|
-
│ │
|
|
53
|
-
│ Only skip Step 6 if bug CANNOT be fixed locally (engine bug) │
|
|
54
|
-
└─────────────────────────────────────────────────────────────────────┘
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
## CRITICAL: What You Can and Cannot Modify
|
|
60
|
-
|
|
61
|
-
**NEVER modify the client's original source code.** The client code in `/tmp/codeyam/local-dev/{slug}/project` is a checkout of the user's repository. We do not fix bugs in their code.
|
|
62
|
-
|
|
63
|
-
**You can ONLY modify:**
|
|
64
|
-
|
|
65
|
-
- CodeYam-generated files (with `// This file is auto-generated by CodeYam` header)
|
|
66
|
-
- Mock data files in `__codeyamMocks__/` directories
|
|
67
|
-
- Data in the local SQLite database (to fix incorrect analysis data)
|
|
68
|
-
- Universal mocks in `.codeyam/config.json`
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## Part 1: Debugging for All Projects
|
|
73
|
-
|
|
74
|
-
### Step 0: Check for Other Failing Scenarios (MANDATORY FIRST STEP)
|
|
75
|
-
|
|
76
|
-
**⚠️ DO NOT run `codeyam debug` yet!** First, query the database to check if other scenarios in the same analysis are also failing. This saves time by fixing all issues at once instead of debugging one scenario at a time.
|
|
77
|
-
|
|
78
|
-
**You must complete this step and ask the user before proceeding to Step 1.**
|
|
79
|
-
|
|
80
|
-
#### Query for Failing Scenarios
|
|
81
|
-
|
|
82
|
-
```bash
|
|
83
|
-
# First, get the analysis ID (if you have a scenario ID)
|
|
84
|
-
sqlite3 .codeyam/db.sqlite3 "SELECT analysis_id FROM scenarios WHERE id = 'SCENARIO_ID'"
|
|
85
|
-
|
|
86
|
-
# Then check ALL scenarios for that analysis
|
|
87
|
-
sqlite3 .codeyam/db.sqlite3 "
|
|
88
|
-
SELECT
|
|
89
|
-
s.id,
|
|
90
|
-
s.name,
|
|
91
|
-
json_extract(s.metadata, '$.screenshotPaths') as screenshots,
|
|
92
|
-
json_extract(a.status, '$.scenarios') as scenario_statuses
|
|
93
|
-
FROM scenarios s
|
|
94
|
-
JOIN analyses a ON s.analysis_id = a.id
|
|
95
|
-
WHERE s.analysis_id = 'ANALYSIS_ID'
|
|
96
|
-
"
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
#### Identify Failing Scenarios
|
|
100
|
-
|
|
101
|
-
Look for scenarios that:
|
|
102
|
-
|
|
103
|
-
1. Have no `screenshotPaths` (null or empty)
|
|
104
|
-
2. Have `error` in their status
|
|
105
|
-
3. Have `finishedAt` but no screenshot file on disk
|
|
106
|
-
|
|
107
|
-
```bash
|
|
108
|
-
# Check scenario status for errors
|
|
109
|
-
sqlite3 .codeyam/db.sqlite3 "
|
|
110
|
-
SELECT json_extract(status, '$.scenarios') FROM analyses WHERE id = 'ANALYSIS_ID'
|
|
111
|
-
" | python3 -c "
|
|
112
|
-
import json, sys
|
|
113
|
-
scenarios = json.loads(sys.stdin.read())
|
|
114
|
-
for s in scenarios:
|
|
115
|
-
status = '❌ ERROR' if s.get('error') else ('✅ OK' if s.get('finishedAt') else '⏳ PENDING')
|
|
116
|
-
print(f\"{status}: {s['name']}\")
|
|
117
|
-
"
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
#### Ask User: Fix One or All?
|
|
121
|
-
|
|
122
|
-
**If multiple scenarios are failing, ASK THE USER:**
|
|
123
|
-
|
|
124
|
-
> I found X scenarios in this analysis, and Y of them appear to be failing:
|
|
125
|
-
>
|
|
126
|
-
> - Scenario A: [error type]
|
|
127
|
-
> - Scenario B: [error type]
|
|
128
|
-
> - Scenario C: [error type]
|
|
129
|
-
>
|
|
130
|
-
> Would you like me to:
|
|
131
|
-
>
|
|
132
|
-
> 1. Fix just the requested scenario (SCENARIO_NAME)
|
|
133
|
-
> 2. Fix ALL failing scenarios for this analysis
|
|
134
|
-
>
|
|
135
|
-
> Fixing all at once is usually faster since they often share the same root cause (missing mock, bad data, etc.)
|
|
136
|
-
|
|
137
|
-
**After the user responds, proceed to Step 1:**
|
|
138
|
-
|
|
139
|
-
- **If fixing just one scenario:** Run `codeyam debug SCENARIO_ID` with the specific scenario ID
|
|
140
|
-
- **If fixing all scenarios:** Run `codeyam debug ANALYSIS_ID` with the analysis ID
|
|
141
|
-
|
|
142
|
-
**If the user chooses to fix all:**
|
|
143
|
-
|
|
144
|
-
- Debug each failing scenario in sequence
|
|
145
|
-
- Look for common patterns (same missing mock, same data issue)
|
|
146
|
-
- Apply fixes that work across all scenarios when possible
|
|
147
|
-
|
|
148
|
-
---
|
|
149
|
-
|
|
150
|
-
### Step 1: Run Debug Command
|
|
151
|
-
|
|
152
|
-
**Only proceed to this step after completing Step 0 and getting the user's choice.**
|
|
153
|
-
|
|
154
|
-
```bash
|
|
155
|
-
# Use the scenario ID if fixing just one scenario
|
|
156
|
-
codeyam debug SCENARIO_ID
|
|
157
|
-
|
|
158
|
-
# OR use the analysis ID if fixing all scenarios
|
|
159
|
-
codeyam debug ANALYSIS_ID
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
The command auto-detects whether the ID is a scenario or analysis. Output includes:
|
|
163
|
-
|
|
164
|
-
1. **Project path**: `/tmp/codeyam/local-dev/{slug}/project`
|
|
165
|
-
2. **Start command**: The exact command to run the dev server
|
|
166
|
-
3. **URL**: Where to access the scenario
|
|
167
|
-
4. **Log path**: Where to watch for errors
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
|
-
### Step 2: Identify the Error Type
|
|
172
|
-
|
|
173
|
-
Read the log file or error output to categorize the issue:
|
|
174
|
-
|
|
175
|
-
| Error Type | Symptoms | Solution Path |
|
|
176
|
-
| ------------------- | ------------------------------------------------ | -------------------------------------- |
|
|
177
|
-
| **Runtime error** | `TypeError`, `ReferenceError`, component crashes | Check mock data, may need database fix |
|
|
178
|
-
| **Missing mock** | `Cannot read property of undefined` | Add universal mock |
|
|
179
|
-
| **Wrong mock type** | `X is not a function` or `Cannot call X` | Fix data in database |
|
|
180
|
-
| **Import error** | `Cannot find module` | Check universal mocks or entity name |
|
|
181
|
-
|
|
182
|
-
---
|
|
183
|
-
|
|
184
|
-
### Step 3: Database Debugging (Fix Analysis Data)
|
|
185
|
-
|
|
186
|
-
Sometimes the analysis engine generates incorrect data. You can fix it directly in the database.
|
|
187
|
-
|
|
188
|
-
#### Database Location
|
|
189
|
-
|
|
190
|
-
The database is in the **project's `.codeyam/` directory**, not in `/tmp`:
|
|
191
|
-
|
|
192
|
-
```
|
|
193
|
-
{project-root}/.codeyam/db.sqlite3
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
For example: `/Users/you/myproject/.codeyam/db.sqlite3`
|
|
197
|
-
|
|
198
|
-
#### Key Tables
|
|
199
|
-
|
|
200
|
-
| Table | Purpose | Key Columns |
|
|
201
|
-
| ----------- | ------------------- | ---------------------------------------- |
|
|
202
|
-
| `entities` | Detected entities | `sha`, `name`, `file_path`, `metadata` |
|
|
203
|
-
| `analyses` | Analysis results | `id`, `entity_sha`, `status`, `metadata` |
|
|
204
|
-
| `scenarios` | Generated scenarios | `id`, `analysis_id`, `name`, `metadata` |
|
|
205
|
-
|
|
206
|
-
#### Useful Queries
|
|
207
|
-
|
|
208
|
-
**Find entity by name:**
|
|
209
|
-
|
|
210
|
-
```bash
|
|
211
|
-
sqlite3 .codeyam/db.sqlite3 \
|
|
212
|
-
"SELECT sha, name, file_path FROM entities WHERE name LIKE '%EntityName%'"
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
**Find analysis for entity:**
|
|
216
|
-
|
|
217
|
-
```bash
|
|
218
|
-
sqlite3 .codeyam/db.sqlite3 \
|
|
219
|
-
"SELECT id, status FROM analyses WHERE entity_sha = 'ENTITY_SHA'"
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
**View scenario mock data:**
|
|
223
|
-
|
|
224
|
-
```bash
|
|
225
|
-
sqlite3 .codeyam/db.sqlite3 \
|
|
226
|
-
"SELECT name, json_extract(metadata, '$.data.mockData') FROM scenarios WHERE analysis_id = 'ANALYSIS_ID'" | python3 -m json.tool
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
**List all keys in mockData:**
|
|
230
|
-
|
|
231
|
-
```bash
|
|
232
|
-
sqlite3 .codeyam/db.sqlite3 \
|
|
233
|
-
"SELECT json_each.key FROM scenarios, json_each(json_extract(metadata, '$.data.mockData')) WHERE id = 'SCENARIO_ID'"
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
#### Common Data Issues
|
|
237
|
-
|
|
238
|
-
**1. Wrong mock type (function vs object)**
|
|
239
|
-
|
|
240
|
-
The generated mock may treat a function as an object or vice versa. Check the generated scenario file in `/tmp/codeyam/local-dev/{slug}/project/` to see how the mock is structured. Compare it to how the code actually uses the value.
|
|
241
|
-
|
|
242
|
-
**2. Malformed keys in mockData**
|
|
243
|
-
|
|
244
|
-
Sometimes keys contain full function call expressions (with arguments) instead of simple identifiers. This causes a mismatch between how mockData is stored and how the mock code accesses it.
|
|
245
|
-
|
|
246
|
-
```bash
|
|
247
|
-
# View all keys - look for ones with complex parentheses and arguments
|
|
248
|
-
sqlite3 .codeyam/db.sqlite3 \
|
|
249
|
-
"SELECT json_each.key FROM scenarios, json_each(json_extract(metadata, '$.data.mockData')) WHERE id = 'SCENARIO_ID'"
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
Example of problematic key:
|
|
253
|
-
|
|
254
|
-
```
|
|
255
|
-
"useQuery(undefined, { enabled: isSignedIn })"
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
The mock code may look for `["useQuery"]` or `["useQuery()"]` but the data is at `["useQuery(undefined, {...})"]`.
|
|
259
|
-
|
|
260
|
-
**3. Missing mock data for a dependency**
|
|
261
|
-
|
|
262
|
-
If a property access chain isn't mocked, the mock data may be missing or keyed incorrectly.
|
|
263
|
-
|
|
264
|
-
#### Fixing Data
|
|
265
|
-
|
|
266
|
-
**Update mockData in a scenario:**
|
|
267
|
-
|
|
268
|
-
```bash
|
|
269
|
-
# Get current metadata
|
|
270
|
-
sqlite3 .codeyam/db.sqlite3 "SELECT metadata FROM scenarios WHERE id = 'SCENARIO_ID'"
|
|
271
|
-
|
|
272
|
-
# Update a specific key in mockData (use json_set for simple changes)
|
|
273
|
-
sqlite3 .codeyam/db.sqlite3 \
|
|
274
|
-
"UPDATE scenarios SET metadata = json_set(metadata, '\$.data.mockData.\"correctedKey\"', json('{\"fixed\": \"value\"}')) WHERE id = 'SCENARIO_ID'"
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
**For complex mockData fixes**, it's often easier to:
|
|
278
|
-
|
|
279
|
-
1. Export the metadata to a file
|
|
280
|
-
2. Edit the JSON with Python
|
|
281
|
-
3. Update the database with the corrected JSON
|
|
282
|
-
|
|
283
|
-
```bash
|
|
284
|
-
# Export to file
|
|
285
|
-
sqlite3 .codeyam/db.sqlite3 "SELECT metadata FROM scenarios WHERE id = 'SCENARIO_ID'" > /tmp/metadata.json
|
|
286
|
-
|
|
287
|
-
# Edit with Python (add/modify keys as needed)
|
|
288
|
-
cat /tmp/metadata.json | python3 -c "
|
|
289
|
-
import json, sys
|
|
290
|
-
data = json.loads(sys.stdin.read())
|
|
291
|
-
# Example: Add a missing mock key
|
|
292
|
-
data['data']['mockData']['myKey <- useHook'] = {'myKey': 'value'}
|
|
293
|
-
print(json.dumps(data))
|
|
294
|
-
" > /tmp/metadata_fixed.json
|
|
295
|
-
|
|
296
|
-
# Update the database - use shell substitution with proper escaping
|
|
297
|
-
# IMPORTANT: Do NOT use readfile() - it stores data as BLOB instead of TEXT
|
|
298
|
-
sqlite3 .codeyam/db.sqlite3 "UPDATE scenarios SET metadata = '$(cat /tmp/metadata_fixed.json | sed \"s/'/''/g\")' WHERE id = 'SCENARIO_ID'"
|
|
299
|
-
```
|
|
300
|
-
|
|
301
|
-
> **⚠️ WARNING: Never use `readfile()`**
|
|
302
|
-
>
|
|
303
|
-
> SQLite's `readfile()` function returns a BLOB, not TEXT. This will corrupt the metadata
|
|
304
|
-
> and cause "JSON cannot hold BLOB values" errors. Always use shell substitution with
|
|
305
|
-
> `$(cat file | sed "s/'/''/g")` to properly escape single quotes and insert as TEXT.
|
|
306
|
-
|
|
307
|
-
**After fixing the database, regenerate scenario files by re-running analysis:**
|
|
308
|
-
|
|
309
|
-
```bash
|
|
310
|
-
codeyam analyze --entity EntityName path/to/file.tsx
|
|
311
|
-
```
|
|
312
|
-
|
|
313
|
-
Or, if you only need to regenerate the scenario files from existing data, you may be able to trigger a recapture from the CodeYam dashboard.
|
|
314
|
-
|
|
315
|
-
---
|
|
316
|
-
|
|
317
|
-
### Step 4: Universal Mocks (Infrastructure Dependencies)
|
|
318
|
-
|
|
319
|
-
For errors caused by infrastructure code that doesn't work in simulation (database clients, filesystem, etc.), add universal mocks.
|
|
320
|
-
|
|
321
|
-
#### When to Use Universal Mocks
|
|
322
|
-
|
|
323
|
-
Only use for functions that:
|
|
324
|
-
|
|
325
|
-
1. Are called by MANY entities across ALL scenarios
|
|
326
|
-
2. Don't work in simulation (need real database, filesystem, etc.)
|
|
327
|
-
3. Return simple, scenario-independent values
|
|
328
|
-
|
|
329
|
-
#### Adding a Universal Mock
|
|
330
|
-
|
|
331
|
-
Edit `.codeyam/config.json`:
|
|
332
|
-
|
|
333
|
-
```json
|
|
334
|
-
{
|
|
335
|
-
"universalMocks": [
|
|
336
|
-
{
|
|
337
|
-
"entityName": "getProjectRoot",
|
|
338
|
-
"filePath": "lib/state.ts",
|
|
339
|
-
"content": "export function getProjectRoot() { return '/mock/project/root'; }"
|
|
340
|
-
}
|
|
341
|
-
]
|
|
342
|
-
}
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
Then rebuild: `pnpm build` (or your build command)
|
|
346
|
-
|
|
347
|
-
---
|
|
348
|
-
|
|
349
|
-
### Step 5: Verify the Fix Locally
|
|
350
|
-
|
|
351
|
-
After making changes:
|
|
352
|
-
|
|
353
|
-
1. **Re-run `codeyam debug ID`** to regenerate scenario files with the updated data
|
|
354
|
-
2. **Restart the dev server** in `/tmp/codeyam/local-dev/{slug}/project`
|
|
355
|
-
3. **Curl the URL** to check for errors:
|
|
356
|
-
```bash
|
|
357
|
-
curl -s http://localhost:3112/static/... | head -50
|
|
358
|
-
```
|
|
359
|
-
4. **Check for 200 response** (no `statusCode:500`)
|
|
360
|
-
|
|
361
|
-
**Quick verification checklist:**
|
|
362
|
-
|
|
363
|
-
- [ ] Server starts without crashing
|
|
364
|
-
- [ ] `curl` returns HTML (no `statusCode:500`)
|
|
365
|
-
- [ ] No runtime errors in server logs
|
|
366
|
-
|
|
367
|
-
**If verification fails:** Go back to Step 2 and debug the next error.
|
|
368
|
-
|
|
369
|
-
**If verification passes:** Proceed to Step 6 to recapture screenshots.
|
|
370
|
-
|
|
371
|
-
---
|
|
372
|
-
|
|
373
|
-
### Step 6: Recapture Screenshots (REQUIRED)
|
|
374
|
-
|
|
375
|
-
**This step is MANDATORY after any local fix.** A 200 response is not sufficient - you must recapture screenshots to confirm the scenario renders correctly end-to-end.
|
|
376
|
-
|
|
377
|
-
#### Option A: Via Recapture Command (Recommended)
|
|
378
|
-
|
|
379
|
-
Use the `codeyam recapture` command with the scenario ID:
|
|
380
|
-
|
|
381
|
-
```bash
|
|
382
|
-
codeyam recapture SCENARIO_ID
|
|
383
|
-
```
|
|
384
|
-
|
|
385
|
-
This will:
|
|
386
|
-
|
|
387
|
-
1. Reset the scenario's capture status
|
|
388
|
-
2. Re-run the screenshot capture
|
|
389
|
-
3. Save the new screenshot to `.codeyam/captures/`
|
|
390
|
-
|
|
391
|
-
**To recapture multiple scenarios:** Run `codeyam recapture` for each failing scenario ID.
|
|
392
|
-
|
|
393
|
-
#### Option B: Via Web Dashboard
|
|
394
|
-
|
|
395
|
-
1. Open the CodeYam dashboard at `http://localhost:3111`
|
|
396
|
-
2. Navigate to the analysis or scenario
|
|
397
|
-
3. Click "Recapture" or trigger a new capture for the scenario
|
|
398
|
-
|
|
399
|
-
#### Option C: Via Re-running Analysis
|
|
400
|
-
|
|
401
|
-
If you need to regenerate everything from scratch:
|
|
402
|
-
|
|
403
|
-
```bash
|
|
404
|
-
codeyam analyze --entity EntityName path/to/file.tsx
|
|
405
|
-
```
|
|
406
|
-
|
|
407
|
-
This will re-analyze the entity and capture new screenshots.
|
|
408
|
-
|
|
409
|
-
**After capture completes:**
|
|
410
|
-
|
|
411
|
-
1. **Verify ALL scenarios have screenshots** - not just some:
|
|
412
|
-
|
|
413
|
-
```bash
|
|
414
|
-
# Check which scenarios have screenshot paths in metadata
|
|
415
|
-
sqlite3 .codeyam/db.sqlite3 "SELECT name, json_extract(metadata, '$.screenshotPaths') FROM scenarios WHERE analysis_id = 'ANALYSIS_ID'"
|
|
416
|
-
|
|
417
|
-
# IMPORTANT: Also verify the files actually exist on disk!
|
|
418
|
-
find .codeyam/captures -name "*.png" -path "*ANALYSIS_ID*"
|
|
419
|
-
```
|
|
420
|
-
|
|
421
|
-
2. If ANY scenario is missing screenshots, investigate why and fix it
|
|
422
|
-
3. If screenshots exist, view them to confirm the components render correctly
|
|
423
|
-
4. If capture failed with errors, go back to Step 2
|
|
424
|
-
|
|
425
|
-
**CRITICAL: Do not trust database metadata alone.** A scenario may have a `screenshotPaths` value in the database but the file may not actually exist. Always verify files exist on disk.
|
|
426
|
-
|
|
427
|
-
**Debugging is complete ONLY when ALL scenarios have screenshot files that exist and render correctly.**
|
|
428
|
-
|
|
429
|
-
---
|
|
430
|
-
|
|
431
|
-
### Step 7: Document the Bug (for Engine Fixes)
|
|
432
|
-
|
|
433
|
-
After fixing the data locally, document the issue so CodeYam can fix the underlying bug in the analysis engine.
|
|
434
|
-
|
|
435
|
-
**Create a bug report with:**
|
|
436
|
-
|
|
437
|
-
1. What the incorrect data looked like (copy the relevant JSON)
|
|
438
|
-
2. What it should have been
|
|
439
|
-
3. How you fixed it (the SQL command or manual edit)
|
|
440
|
-
4. Any patterns you noticed (e.g., "happens with property access chains")
|
|
441
|
-
5. The entity name and file path
|
|
442
|
-
|
|
443
|
-
**For CodeYam project:** Create an issue or note in the codebase describing the bug.
|
|
444
|
-
|
|
445
|
-
**For client projects:** Share the bug report with the CodeYam team so they can fix the analysis engine.
|
|
446
|
-
|
|
447
|
-
---
|
|
448
|
-
|
|
449
|
-
### When to Stop WITHOUT Recapturing
|
|
450
|
-
|
|
451
|
-
Only skip screenshot recapture if you've identified a bug that **cannot be fixed locally**:
|
|
452
|
-
|
|
453
|
-
- The bug is in the CodeYam analysis engine itself
|
|
454
|
-
- Fixing it requires changes to CodeYam source code (not just database/config changes)
|
|
455
|
-
- You've documented the bug clearly in Step 7
|
|
456
|
-
|
|
457
|
-
In this case, report the bug and stop. The user will need to wait for an engine fix.
|
|
458
|
-
|
|
459
|
-
---
|
|
460
|
-
|
|
461
|
-
## Part 2: CodeYam Engine Debugging
|
|
462
|
-
|
|
463
|
-
**This section is only relevant when working on the CodeYam project itself.**
|
|
464
|
-
|
|
465
|
-
If you're debugging a client project, you can stop at Part 1. Report the bug and move on.
|
|
466
|
-
|
|
467
|
-
### Identifying Engine Bugs
|
|
468
|
-
|
|
469
|
-
When the error is in how CodeYam generates data or mocks (not in client code), you need to fix the engine.
|
|
470
|
-
|
|
471
|
-
Signs of an engine bug:
|
|
472
|
-
|
|
473
|
-
- Same pattern fails across multiple projects
|
|
474
|
-
- Mock data structure doesn't match code patterns
|
|
475
|
-
- Generated mock code has wrong syntax
|
|
476
|
-
|
|
477
|
-
### Key Source Files
|
|
478
|
-
|
|
479
|
-
| Purpose | File |
|
|
480
|
-
| ------------------------ | ------------------------------------------------------------------- |
|
|
481
|
-
| Scenario file generation | `background/src/lib/virtualized/project/writeScenarioComponents.ts` |
|
|
482
|
-
| Mock code construction | `packages/analyze/src/lib/files/analyze/constructMockCode.ts` |
|
|
483
|
-
| Data structure merging | `background/src/lib/analyze/mergeDataStructure.ts` |
|
|
484
|
-
| Entity analysis | `packages/analyze/src/lib/files/analyzeEntity.ts` |
|
|
485
|
-
|
|
486
|
-
### Debugging Workflow
|
|
487
|
-
|
|
488
|
-
**1. Write a failing test first**
|
|
489
|
-
|
|
490
|
-
| Bug type | Test location |
|
|
491
|
-
| ------------------- | ---------------------------------------------------------------------------------- |
|
|
492
|
-
| Scenario generation | `background/src/lib/virtualized/project/__tests__/writeScenarioComponents.test.ts` |
|
|
493
|
-
| Mock generation | `packages/analyze/src/lib/files/analyze/__tests__/constructMockCode.test.ts` |
|
|
494
|
-
| Entity analysis | `packages/analyze/src/lib/files/__tests__/*.test.ts` |
|
|
495
|
-
|
|
496
|
-
**2. Add debug logging to trace the issue**
|
|
497
|
-
|
|
498
|
-
```typescript
|
|
499
|
-
console.log('=== DEBUG ===');
|
|
500
|
-
console.log('input:', JSON.stringify(input, null, 2));
|
|
501
|
-
console.log('output:', result);
|
|
502
|
-
```
|
|
503
|
-
|
|
504
|
-
**3. Run tests**
|
|
505
|
-
|
|
506
|
-
```bash
|
|
507
|
-
pnpm test:unit -- --grep "relevant test pattern"
|
|
508
|
-
```
|
|
509
|
-
|
|
510
|
-
**4. Implement the fix**
|
|
511
|
-
|
|
512
|
-
Fix the source file, ensure tests pass, then:
|
|
513
|
-
|
|
514
|
-
```bash
|
|
515
|
-
pnpm cli # Rebuild CLI
|
|
516
|
-
rm -rf /tmp/codeyam/local-dev/{slug}/project # Clear cache
|
|
517
|
-
codeyam debug ID # Re-test
|
|
518
|
-
```
|
|
519
|
-
|
|
520
|
-
### Common Bug Patterns
|
|
521
|
-
|
|
522
|
-
| Pattern | Symptom | Likely Location |
|
|
523
|
-
| ---------------------------- | --------------------------- | ------------------------------------------------- |
|
|
524
|
-
| Object vs function confusion | `X is not a function` | `constructMockCode.ts` - entityType handling |
|
|
525
|
-
| Variable-qualified keys | Wrong variable name in mock | `writeScenarioComponents.ts` - key parsing |
|
|
526
|
-
| Schema inference | Wrong mock structure | `mergeDataStructure.ts` |
|
|
527
|
-
| Property chain issues | Nested property undefined | `constructMockCode.ts` - nested object generation |
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { normalizeKey } from "../../../../packages/utils/index.js";
|
|
2
|
-
import { joinParenthesesAndArrays, splitOutsideParenthesesAndArrays, } from "./splitOutsideParentheses.js";
|
|
3
|
-
function findEquivalent(path, equivalents) {
|
|
4
|
-
const pathParts = splitOutsideParenthesesAndArrays(path);
|
|
5
|
-
for (const equivalentKey in equivalents) {
|
|
6
|
-
const equivalentKeyParts = splitOutsideParenthesesAndArrays(equivalentKey);
|
|
7
|
-
if (equivalentKeyParts.some((part) => part.startsWith('signature['))) {
|
|
8
|
-
continue;
|
|
9
|
-
}
|
|
10
|
-
const relevantKey = joinParenthesesAndArrays(pathParts.slice(0, equivalentKeyParts.length));
|
|
11
|
-
if (equivalentKey === relevantKey) {
|
|
12
|
-
const equivalentValue = equivalents[equivalentKey];
|
|
13
|
-
return joinParenthesesAndArrays([
|
|
14
|
-
equivalentValue,
|
|
15
|
-
...pathParts.slice(equivalentKeyParts.length),
|
|
16
|
-
]);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
function findReverseEquivalent(path, equivalents) {
|
|
21
|
-
const pathParts = splitOutsideParenthesesAndArrays(path);
|
|
22
|
-
for (const [equivalentKey, equivalentValue] of Object.entries(equivalents)) {
|
|
23
|
-
const equivalentKeyParts = splitOutsideParenthesesAndArrays(equivalentKey);
|
|
24
|
-
if (equivalentKeyParts.some((part) => part.startsWith('signature['))) {
|
|
25
|
-
continue;
|
|
26
|
-
}
|
|
27
|
-
const equivalentValueParts = splitOutsideParenthesesAndArrays(equivalentValue);
|
|
28
|
-
const relevantKey = joinParenthesesAndArrays(pathParts.slice(0, equivalentValueParts.length));
|
|
29
|
-
if (equivalentValue === relevantKey) {
|
|
30
|
-
return joinParenthesesAndArrays([
|
|
31
|
-
equivalentKey,
|
|
32
|
-
...pathParts.slice(equivalentValueParts.length),
|
|
33
|
-
]);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
export default function findMatchingAttribute(attributePath, attributesList, equivalents) {
|
|
38
|
-
// console.log("CODEYAM DEBUG: findMatchingAttribute called with", JSON.stringify({
|
|
39
|
-
// attributePath,
|
|
40
|
-
// attributesList,
|
|
41
|
-
// equivalents,
|
|
42
|
-
// }, null, 2));
|
|
43
|
-
const equivalent = findEquivalent(attributePath, equivalents);
|
|
44
|
-
const reverseEquivalent = findReverseEquivalent(attributePath, equivalents);
|
|
45
|
-
if (attributesList.includes(attributePath)) {
|
|
46
|
-
if (reverseEquivalent) {
|
|
47
|
-
return reverseEquivalent;
|
|
48
|
-
}
|
|
49
|
-
return attributePath;
|
|
50
|
-
}
|
|
51
|
-
else if (equivalent && attributesList.includes(equivalent)) {
|
|
52
|
-
return equivalent;
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
const normalizedPath = normalizeKey(attributePath);
|
|
56
|
-
const matchingAttribute = attributesList.find((attr) => normalizeKey(attr) === normalizedPath);
|
|
57
|
-
// If no exact match find the attribute that matches the most characters starting from the beginning
|
|
58
|
-
if (!matchingAttribute) {
|
|
59
|
-
const options = attributesList;
|
|
60
|
-
const normalizedPathCharacters = normalizedPath.split('');
|
|
61
|
-
for (const attr of options) {
|
|
62
|
-
const attrCharacters = normalizeKey(attr).split('');
|
|
63
|
-
const matchLength = normalizedPathCharacters.findIndex((char, index) => char !== attrCharacters[index]);
|
|
64
|
-
if (matchLength !== -1) {
|
|
65
|
-
const matchedPrefix = normalizedPathCharacters.slice(0, matchLength);
|
|
66
|
-
if (matchedPrefix.length > 0) {
|
|
67
|
-
return attr;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
if (matchingAttribute)
|
|
73
|
-
return matchingAttribute;
|
|
74
|
-
return null;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
//# sourceMappingURL=findMatchingAttribute.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"findMatchingAttribute.js","sourceRoot":"","sources":["../../../../../../packages/ai/src/lib/findMatchingAttribute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,wBAAwB,EACxB,gCAAgC,GACjC,MAAM,2BAA2B,CAAC;AAEnC,SAAS,cAAc,CAAC,IAAY,EAAE,WAAmC;IACvE,MAAM,SAAS,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAC;IACzD,KAAK,MAAM,aAAa,IAAI,WAAW,EAAE,CAAC;QACxC,MAAM,kBAAkB,GAAG,gCAAgC,CAAC,aAAa,CAAC,CAAC;QAC3E,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YACrE,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GAAG,wBAAwB,CAC1C,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAC9C,CAAC;QACF,IAAI,aAAa,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,eAAe,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;YACnD,OAAO,wBAAwB,CAAC;gBAC9B,eAAe;gBACf,GAAG,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC;aAC9C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAY,EACZ,WAAmC;IAEnC,MAAM,SAAS,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAC;IACzD,KAAK,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3E,MAAM,kBAAkB,GAAG,gCAAgC,CAAC,aAAa,CAAC,CAAC;QAE3E,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YACrE,SAAS;QACX,CAAC;QAED,MAAM,oBAAoB,GACxB,gCAAgC,CAAC,eAAe,CAAC,CAAC;QAEpD,MAAM,WAAW,GAAG,wBAAwB,CAC1C,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAChD,CAAC;QACF,IAAI,eAAe,KAAK,WAAW,EAAE,CAAC;YACpC,OAAO,wBAAwB,CAAC;gBAC9B,aAAa;gBACb,GAAG,SAAS,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC;aAChD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAC3C,aAAqB,EACrB,cAAwB,EACxB,WAAmC;IAEnC,mFAAmF;IACnF,mBAAmB;IACnB,oBAAoB;IACpB,iBAAiB;IACjB,gBAAgB;IAEhB,MAAM,UAAU,GAAG,cAAc,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC9D,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC5E,IAAI,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC3C,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,iBAAiB,CAAC;QAC3B,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;SAAM,IAAI,UAAU,IAAI,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,OAAO,UAAU,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,MAAM,cAAc,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;QACnD,MAAM,iBAAiB,GAAG,cAAc,CAAC,IAAI,CAC3C,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,cAAc,CAChD,CAAC;QAEF,oGAAoG;QACpG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,cAAc,CAAC;YAC/B,MAAM,wBAAwB,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC1D,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,MAAM,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACpD,MAAM,WAAW,GAAG,wBAAwB,CAAC,SAAS,CACpD,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,CAAC,CAChD,CAAC;gBACF,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;oBACvB,MAAM,aAAa,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;oBACrE,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,iBAAiB;YAAE,OAAO,iBAAiB,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|