@codeyam/codeyam-cli 0.1.0-staging.8e7b1bd → 0.1.0-staging.b8a55ba
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/analyzer-template/.build-info.json +7 -7
- package/analyzer-template/log.txt +3 -3
- package/analyzer-template/package.json +7 -6
- package/analyzer-template/packages/ai/package.json +1 -1
- package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +2 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +22 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +23 -1
- package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +401 -106
- package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +60 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +661 -50
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +14 -2
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +715 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +123 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +19 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +23 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +23 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +34 -1
- package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +236 -24
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +18 -1
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +37 -4
- package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +5 -0
- package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +213 -12
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +11 -15
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +114 -11
- 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/promptGenerators/gatherAttributesMap.ts +7 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +42 -2
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +38 -2
- package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +28 -2
- package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +5 -0
- package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +8 -1
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +339 -145
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +20 -0
- package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +8 -1
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +158 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +107 -18
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.ts +1 -1
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +223 -103
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +10 -5
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +172 -83
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +2 -5
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +97 -27
- 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/package.json +1 -1
- package/analyzer-template/packages/aws/s3/index.ts +1 -0
- package/analyzer-template/packages/aws/src/lib/s3/checkS3ObjectExists.ts +47 -0
- 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 +20 -9
- package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +3 -2
- 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/getComponentScenarioPath.ts +8 -3
- 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 +8 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +14 -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/scenariosTable.d.ts +1 -1
- 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 +4 -2
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +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/getComponentScenarioPath.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.js +7 -3
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.js.map +1 -1
- package/analyzer-template/packages/github/dist/types/index.d.ts +4 -3
- package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/index.js +1 -0
- package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +31 -1
- package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +51 -1
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.js +21 -1
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.js.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +48 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.js +26 -2
- package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.js.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js +25 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
- package/analyzer-template/packages/types/index.ts +8 -0
- package/analyzer-template/packages/types/src/types/Analysis.ts +32 -1
- package/analyzer-template/packages/types/src/types/Scenario.ts +75 -6
- package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +49 -0
- package/analyzer-template/packages/ui-components/package.json +4 -4
- package/analyzer-template/packages/ui-components/src/components/ScenarioDetailInteractiveView.tsx +23 -7
- package/analyzer-template/packages/utils/dist/types/index.d.ts +4 -3
- package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/index.js +1 -0
- package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +31 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +51 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js +21 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +48 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.js +26 -2
- package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.js.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js +25 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
- package/analyzer-template/packages/utils/src/lib/applyUniversalMocks.ts +28 -2
- package/analyzer-template/packages/utils/src/lib/lightweightEntityExtractor.ts +27 -0
- package/analyzer-template/playwright/takeElementScreenshot.ts +26 -11
- package/analyzer-template/playwright/takeScreenshot.ts +9 -7
- package/analyzer-template/project/TESTING.md +83 -0
- package/analyzer-template/project/constructMockCode.ts +151 -30
- package/analyzer-template/project/loadReadyToBeCaptured.ts +17 -1
- package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +16 -9
- package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +77 -37
- package/analyzer-template/project/reconcileMockDataKeys.ts +104 -3
- package/analyzer-template/project/runMultiScenarioServer.ts +11 -10
- package/analyzer-template/project/serverOnlyModules.ts +288 -0
- package/analyzer-template/project/start.ts +10 -0
- package/analyzer-template/project/startScenarioCapture.ts +73 -41
- package/analyzer-template/project/writeMockDataTsx.ts +103 -40
- package/analyzer-template/project/writeScenarioComponents.ts +1162 -203
- package/analyzer-template/project/writeSimpleRoot.ts +26 -4
- package/analyzer-template/project/writeUniversalMocks.ts +32 -11
- package/background/src/lib/virtualized/project/constructMockCode.js +132 -25
- package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
- package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +15 -1
- package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +11 -6
- package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +67 -32
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +65 -4
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
- package/background/src/lib/virtualized/project/runMultiScenarioServer.js +11 -9
- package/background/src/lib/virtualized/project/runMultiScenarioServer.js.map +1 -1
- package/background/src/lib/virtualized/project/serverOnlyModules.js +235 -0
- package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -0
- package/background/src/lib/virtualized/project/start.js +6 -0
- package/background/src/lib/virtualized/project/start.js.map +1 -1
- package/background/src/lib/virtualized/project/startScenarioCapture.js +54 -31
- package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
- package/background/src/lib/virtualized/project/writeMockDataTsx.js +87 -34
- package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
- package/background/src/lib/virtualized/project/writeScenarioComponents.js +852 -133
- package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
- package/background/src/lib/virtualized/project/writeSimpleRoot.js +25 -2
- package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
- package/background/src/lib/virtualized/project/writeUniversalMocks.js +27 -12
- package/background/src/lib/virtualized/project/writeUniversalMocks.js.map +1 -1
- package/codeyam-cli/scripts/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js +7 -0
- package/codeyam-cli/scripts/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js.map +1 -0
- package/codeyam-cli/src/cli.js +2 -0
- package/codeyam-cli/src/cli.js.map +1 -1
- package/codeyam-cli/src/commands/debug.js +14 -2
- package/codeyam-cli/src/commands/debug.js.map +1 -1
- package/codeyam-cli/src/commands/recapture.js +215 -0
- package/codeyam-cli/src/commands/recapture.js.map +1 -0
- package/codeyam-cli/src/commands/report.js +26 -23
- package/codeyam-cli/src/commands/report.js.map +1 -1
- package/codeyam-cli/src/utils/backgroundServer.js +2 -2
- package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/utils/generateReport.js +252 -106
- package/codeyam-cli/src/utils/generateReport.js.map +1 -1
- package/codeyam-cli/src/utils/install-skills.js +2 -7
- 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 +140 -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/webserver/app/lib/database.js +47 -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 +5 -10
- package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/webserver/bootstrap.js +9 -0
- package/codeyam-cli/src/webserver/bootstrap.js.map +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-wXL1Z2Aq.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-DQeyk25_.js → EntityTypeBadge-CzGX-miz.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-CXFKsCOD.js +41 -0
- package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-D-9pXIaY.js +25 -0
- package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-CBQPrpT0.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/LoadingDots-D1CdlbrV.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/LogViewer-wDPcZNKx.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-4lcOlid-.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-BfmDgXxG.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-CUxUNEEC.js +15 -0
- package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-ayCJdUAc.js → TruncatedFilePath-6J7zDUD5.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/_index-DHImXdXq.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-2mG6mjVb.js +32 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.link-scenario-value-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.update-key-attributes-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.update-valid-values-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/chevron-down-BYimnrHg.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/chunk-JMJ3UQ3L-BambyYE_.js +51 -0
- package/codeyam-cli/src/webserver/build/client/assets/circle-check-CaVsIRxt.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-CgUsG7ib.js +21 -0
- package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-CKnwPCDr.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DW_hdGUc.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-FHOVOgFN.js → entity._sha._-zUEpfPsu.js} +22 -15
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DyB90fWk.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-D_3ero5o.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-CfLCUi9S.js +5 -0
- package/codeyam-cli/src/webserver/build/client/assets/entry.client-DKJyZfAY.js +29 -0
- package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-DAtOlaWE.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/files-ClR0d32A.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/git-D62Lxxmv.js +15 -0
- package/codeyam-cli/src/webserver/build/client/assets/globals-C6vQASxy.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-BosqDOlH.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/index-CzNNiTkw.js +9 -0
- package/codeyam-cli/src/webserver/build/client/assets/keyAttributeCoverage-CTlFMihX.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/loader-circle-CNp9QFCX.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/manifest-09d684be.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-BxJUvKau.js +56 -0
- package/codeyam-cli/src/webserver/build/client/assets/scenarioStatus-B_8jpV3e.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/search-DDGjYAMJ.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/settings-DgTyB-Wg.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/simulations-CoNWGt0K.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-CBc5dE1s.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BMIGFP-m.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/useInteractiveMode-Dk_FQqWJ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-DOGXmJcI.js → useLastLogLine-BqPPNjAl.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DsJbgMY9.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{useToast-C07gRg7Z.js → useToast-DWHcCcl1.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/index-CV6i1S1A.js +1 -0
- package/codeyam-cli/src/webserver/build/server/assets/server-build-BDlyhfrv.js +175 -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/templates/debug-codeyam.md +620 -0
- package/package.json +14 -14
- package/packages/ai/src/lib/analyzeScope.js +2 -0
- package/packages/ai/src/lib/analyzeScope.js.map +1 -1
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +16 -0
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
- package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +16 -0
- package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
- package/packages/ai/src/lib/astScopes/processExpression.js +305 -88
- package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +523 -42
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +12 -2
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +454 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +103 -1
- 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 +19 -1
- 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/fillInSchemaGapsAndUnknowns.js +28 -2
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
- package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +179 -17
- package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +1 -1
- package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +6 -0
- package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +1 -1
- package/packages/ai/src/lib/generateChangesEntityScenarios.js +37 -4
- package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
- package/packages/ai/src/lib/generateEntityDataStructure.js +4 -0
- package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
- package/packages/ai/src/lib/generateEntityKeyAttributes.js +176 -9
- package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarioData.js +11 -15
- package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarios.js +105 -9
- package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
- 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/promptGenerators/gatherAttributesMap.js +6 -0
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +38 -2
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +38 -2
- package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
- 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/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/files/analyze/analyzeEntities/prepareDataStructures.js +258 -110
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +18 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
- package/packages/analyze/src/lib/files/getImportedExports.js +6 -1
- package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +125 -0
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +74 -19
- 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/generateDataStructure.js +175 -58
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +10 -5
- package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +127 -69
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +2 -5
- package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +74 -23
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.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 +4 -2
- package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
- 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/getComponentScenarioPath.js +7 -3
- package/packages/generate/src/lib/getComponentScenarioPath.js.map +1 -1
- package/packages/types/index.js +1 -0
- package/packages/types/index.js.map +1 -1
- package/packages/types/src/types/Scenario.js +21 -1
- package/packages/types/src/types/Scenario.js.map +1 -1
- package/packages/utils/src/lib/applyUniversalMocks.js +26 -2
- package/packages/utils/src/lib/applyUniversalMocks.js.map +1 -1
- package/packages/utils/src/lib/lightweightEntityExtractor.js +25 -0
- package/packages/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
- package/scripts/finalize-analyzer.cjs +3 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-CWKV2GEz.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-D2hFeDeg.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-C8K-4kKP.js +0 -26
- package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-DgXLv61M.js +0 -3
- package/codeyam-cli/src/webserver/build/client/assets/LogViewer-DFdLQbPS.js +0 -3
- package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-DlRDjT4h.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-7UkVL-UI.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-XjtsGuPo.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/_index-D2eJjWLf.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-w6sbwlOd.js +0 -7
- package/codeyam-cli/src/webserver/build/client/assets/chevron-down-BBNQ8hup.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/chunk-WWGJGFF6-Bex4RrGs.js +0 -26
- package/codeyam-cli/src/webserver/build/client/assets/circle-check-cdhjVtom.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-DkgmwwRC.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-CwLmCS0J.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-YZ-kM3ZG.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-BeQlz94_.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/entry.client-DN2XXM7Z.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-CUeAIQNI.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/files-ccMQfhGf.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/git-JmESAHx5.js +0 -12
- package/codeyam-cli/src/webserver/build/client/assets/globals-CO-U8Bpo.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-DsL9BiOc.js +0 -8
- package/codeyam-cli/src/webserver/build/client/assets/loader-circle-COYCR2oZ.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-90adba57.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/root-DfbVEEjF.js +0 -16
- package/codeyam-cli/src/webserver/build/client/assets/search-DvK9iMBu.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/server-build-CMKNK2uU.css +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/settings-9LTbit4Z.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/simulations-BrxN5ZtV.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-Iv0p8T-1.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/useReportContext-BWmSRPH6.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/index-CE_1qXCG.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/server-build-BY_VDhiD.js +0 -166
- package/codeyam-cli/templates/debug-command.md +0 -141
- /package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-CMKNK2uU.css → styles-CMKNK2uU.css} +0 -0
|
@@ -5,6 +5,7 @@ import { awsLog } from "../../../../packages/utils/index.js";
|
|
|
5
5
|
import { DEFAULT_LARGER_MODEL } from "./aiConfig.js";
|
|
6
6
|
import { gatherAttributesMap } from "./promptGenerators/gatherAttributesMap.js";
|
|
7
7
|
import { fillInDirectSchemaGapsAndUnknowns } from "./dataStructure/helpers/fillInSchemaGapsAndUnknowns.js";
|
|
8
|
+
import { clearAttributesFromMapping } from "./dataStructure/helpers/cleanNonObjectFunctions.js";
|
|
8
9
|
import isFrontend from "./isFrontend.js";
|
|
9
10
|
import { formatConditionalUsagesForPrompt } from "./getConditionalUsagesFromCode.js";
|
|
10
11
|
export default async function generateEntityKeyAttributes({ entity, mergedDataStructure, model, }) {
|
|
@@ -15,6 +16,10 @@ export default async function generateEntityKeyAttributes({ entity, mergedDataSt
|
|
|
15
16
|
const isolatedDataStructure = entity.metadata?.isolatedDataStructure;
|
|
16
17
|
const equivalentSignatureVariables = isolatedDataStructure?.equivalentSignatureVariables ?? {};
|
|
17
18
|
const { attributesMap, associationMap, dataStructurePathMap } = gatherAttributesMap(isolatedDataStructure ?? mergedDataStructure, mergedDataStructure, equivalentSignatureVariables, true);
|
|
19
|
+
// Clean the attributes map to remove primitive-returning array method paths
|
|
20
|
+
// like .includes().functionCallReturnValue, .indexOf().functionCallReturnValue, etc.
|
|
21
|
+
// These paths are not mockable and should not be presented as key attributes.
|
|
22
|
+
clearAttributesFromMapping(attributesMap);
|
|
18
23
|
if (Object.keys(attributesMap).length === 0) {
|
|
19
24
|
console.log(`CodeYam Error: No valid attributes found for ${entity.filePath} ${entity.name}`);
|
|
20
25
|
return {
|
|
@@ -22,14 +27,22 @@ export default async function generateEntityKeyAttributes({ entity, mergedDataSt
|
|
|
22
27
|
llmCall: null,
|
|
23
28
|
};
|
|
24
29
|
}
|
|
30
|
+
// Build merged schema for type inference (has more complete nested paths)
|
|
31
|
+
// Strip signature[N] prefix to match attributesMap format
|
|
32
|
+
const mergedSchemaForTypeLookup = Object.fromEntries(Object.entries(mergedDataStructure.signatureSchema ?? {})
|
|
33
|
+
.filter(([k]) => k.startsWith('signature['))
|
|
34
|
+
.map(([k, v]) => [k.replace(/^signature\[\d+\]\./, ''), v]));
|
|
25
35
|
// Resolve unknown types using heuristics (e.g., "unknown | undefined" -> "string | undefined")
|
|
36
|
+
// Pass mergedSchema so checkIfObjectOrFunction can detect nested paths that prove a type is an object
|
|
26
37
|
const resolvedAttributesMap = fillInDirectSchemaGapsAndUnknowns({
|
|
27
38
|
scopeName: entity.name,
|
|
28
39
|
schema: { ...attributesMap },
|
|
40
|
+
mergedSchema: mergedSchemaForTypeLookup,
|
|
29
41
|
});
|
|
30
42
|
// Use pre-computed conditional usages from metadata, or compute on-the-fly as fallback
|
|
31
43
|
const conditionalUsages = entity.metadata?.isolatedDataStructure?.conditionalUsages ?? {};
|
|
32
|
-
const
|
|
44
|
+
const compoundConditionals = entity.metadata?.isolatedDataStructure?.compoundConditionals ?? [];
|
|
45
|
+
const staticAnalysisContext = formatConditionalUsagesForPrompt(conditionalUsages, compoundConditionals);
|
|
33
46
|
const prompt = generateEntityKeyAttributesGenerator({
|
|
34
47
|
code: entity.code,
|
|
35
48
|
attributesMap: resolvedAttributesMap,
|
|
@@ -86,6 +99,89 @@ export default async function generateEntityKeyAttributes({ entity, mergedDataSt
|
|
|
86
99
|
fullPath,
|
|
87
100
|
internalPath,
|
|
88
101
|
]));
|
|
102
|
+
// Helper to extract source locations from conditional usages for a given path
|
|
103
|
+
const getSourceLocationsForPath = (path) => {
|
|
104
|
+
const usages = conditionalUsages[path] || [];
|
|
105
|
+
const locations = [];
|
|
106
|
+
for (const usage of usages.slice(0, 5)) {
|
|
107
|
+
// Limit to 5 locations
|
|
108
|
+
if (usage.sourceLocation) {
|
|
109
|
+
locations.push({
|
|
110
|
+
entityName: entity.name,
|
|
111
|
+
filePath: entity.filePath,
|
|
112
|
+
lineNumber: usage.sourceLocation.lineNumber,
|
|
113
|
+
column: usage.sourceLocation.column,
|
|
114
|
+
codeSnippet: usage.sourceLocation.codeSnippet,
|
|
115
|
+
usageType: 'conditional',
|
|
116
|
+
description: `Used in ${usage.location} statement (${usage.conditionType} check)`,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return locations;
|
|
121
|
+
};
|
|
122
|
+
// Helper to find source locations by matching sourceDataPath
|
|
123
|
+
// This handles cases where local variables (e.g., displayState.hasError) trace back
|
|
124
|
+
// to data structure paths (e.g., getScenarioDisplayState().functionCallReturnValue.hasError)
|
|
125
|
+
const getSourceLocationsBySourceDataPath = (targetPath) => {
|
|
126
|
+
const locations = [];
|
|
127
|
+
// Search all conditional usages for ones whose sourceDataPath matches
|
|
128
|
+
for (const [, usages] of Object.entries(conditionalUsages)) {
|
|
129
|
+
for (const usage of usages) {
|
|
130
|
+
const sourceDataPath = usage
|
|
131
|
+
.sourceDataPath;
|
|
132
|
+
if (!sourceDataPath || !usage.sourceLocation)
|
|
133
|
+
continue;
|
|
134
|
+
// Check if sourceDataPath ends with the target path
|
|
135
|
+
// e.g., "LibraryFunctionPreview.signature[0].isOutdated" ends with "isOutdated"
|
|
136
|
+
// or "getScenarioDisplayState.getScenarioDisplayState(...).functionCallReturnValue.hasError" ends with "hasError"
|
|
137
|
+
const normalizedSourcePath = sourceDataPath
|
|
138
|
+
.replace(/\.functionCallReturnValue/g, '')
|
|
139
|
+
.replace(/\([^)]*\)/g, '()');
|
|
140
|
+
if (normalizedSourcePath.endsWith('.' + targetPath) ||
|
|
141
|
+
normalizedSourcePath.endsWith('.' + targetPath.replace(/\./g, '.'))) {
|
|
142
|
+
locations.push({
|
|
143
|
+
entityName: entity.name,
|
|
144
|
+
filePath: entity.filePath,
|
|
145
|
+
lineNumber: usage.sourceLocation.lineNumber,
|
|
146
|
+
column: usage.sourceLocation.column,
|
|
147
|
+
codeSnippet: usage.sourceLocation.codeSnippet,
|
|
148
|
+
usageType: 'conditional',
|
|
149
|
+
description: `Used in ${usage.location} statement (${usage.conditionType} check)`,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return locations.slice(0, 5); // Limit to 5
|
|
155
|
+
};
|
|
156
|
+
// Helper to find source locations from LLM-provided code snippets
|
|
157
|
+
const getSourceLocationsFromSnippets = (codeSnippets) => {
|
|
158
|
+
if (!codeSnippets || !Array.isArray(codeSnippets))
|
|
159
|
+
return [];
|
|
160
|
+
const locations = [];
|
|
161
|
+
const codeLines = entity.code.split('\n');
|
|
162
|
+
for (const snippet of codeSnippets.slice(0, 3)) {
|
|
163
|
+
// Limit to 3 snippets
|
|
164
|
+
if (!snippet || typeof snippet !== 'string')
|
|
165
|
+
continue;
|
|
166
|
+
// Normalize whitespace for matching
|
|
167
|
+
const normalizedSnippet = snippet.trim().replace(/\s+/g, ' ');
|
|
168
|
+
for (let i = 0; i < codeLines.length; i++) {
|
|
169
|
+
const normalizedLine = codeLines[i].replace(/\s+/g, ' ');
|
|
170
|
+
if (normalizedLine.includes(normalizedSnippet)) {
|
|
171
|
+
locations.push({
|
|
172
|
+
entityName: entity.name,
|
|
173
|
+
filePath: entity.filePath,
|
|
174
|
+
lineNumber: i + 1, // 1-based line numbers
|
|
175
|
+
codeSnippet: codeLines[i].trim(),
|
|
176
|
+
usageType: 'conditional',
|
|
177
|
+
description: `Key usage identified by analysis`,
|
|
178
|
+
});
|
|
179
|
+
break; // Only find first occurrence of each snippet
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
return locations;
|
|
184
|
+
};
|
|
89
185
|
const fullKeyAttributes = keyAttributes
|
|
90
186
|
.filter(Boolean)
|
|
91
187
|
.filter((keyAttribute, index, self) => keyAttribute?.fullPath &&
|
|
@@ -94,6 +190,37 @@ export default async function generateEntityKeyAttributes({ entity, mergedDataSt
|
|
|
94
190
|
.filter((keyAttribute) => fullPathToInternalPath[keyAttribute.fullPath])
|
|
95
191
|
.map((keyAttribute) => {
|
|
96
192
|
const internalPath = fullPathToInternalPath[keyAttribute.fullPath];
|
|
193
|
+
// Get source locations from conditional usages
|
|
194
|
+
// Try multiple path formats since conditionalUsages might use different formats:
|
|
195
|
+
// - internalPath: the short path like "status"
|
|
196
|
+
// - fullPath: the LLM's path like "signature[0].status"
|
|
197
|
+
// - dataStructurePath: the external path like "useStatus().status"
|
|
198
|
+
// - Also try stripping signature[N] prefix since conditional usages use AST paths
|
|
199
|
+
let sourceLocations = getSourceLocationsForPath(internalPath);
|
|
200
|
+
if (sourceLocations.length === 0) {
|
|
201
|
+
sourceLocations = getSourceLocationsForPath(keyAttribute.fullPath);
|
|
202
|
+
}
|
|
203
|
+
if (sourceLocations.length === 0) {
|
|
204
|
+
const dataStructurePath = dataStructurePathMap[internalPath] || keyAttribute.fullPath;
|
|
205
|
+
sourceLocations = getSourceLocationsForPath(dataStructurePath);
|
|
206
|
+
}
|
|
207
|
+
// Also try the path without signature[N] prefix since AST uses local variable names
|
|
208
|
+
if (sourceLocations.length === 0) {
|
|
209
|
+
const pathWithoutSignature = internalPath.replace(/^signature\[\d+\]\./, '');
|
|
210
|
+
if (pathWithoutSignature !== internalPath) {
|
|
211
|
+
sourceLocations = getSourceLocationsForPath(pathWithoutSignature);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
// Finally, search by sourceDataPath which traces local variables back to data sources
|
|
215
|
+
// This handles cases like displayState.hasError → getScenarioDisplayState().hasError
|
|
216
|
+
if (sourceLocations.length === 0) {
|
|
217
|
+
sourceLocations = getSourceLocationsBySourceDataPath(internalPath);
|
|
218
|
+
}
|
|
219
|
+
// Last resort: use LLM-provided code snippets to find source locations
|
|
220
|
+
// This ensures every key attribute the LLM identifies has a source location
|
|
221
|
+
if (sourceLocations.length === 0 && keyAttribute.codeSnippets) {
|
|
222
|
+
sourceLocations = getSourceLocationsFromSnippets(keyAttribute.codeSnippets);
|
|
223
|
+
}
|
|
97
224
|
return {
|
|
98
225
|
internalPath,
|
|
99
226
|
externalPath: associationMap[internalPath],
|
|
@@ -104,6 +231,8 @@ export default async function generateEntityKeyAttributes({ entity, mergedDataSt
|
|
|
104
231
|
// Preserve new fields from LLM response
|
|
105
232
|
valueType: keyAttribute.valueType,
|
|
106
233
|
dependencies: keyAttribute.dependencies,
|
|
234
|
+
// Add source locations from static analysis or LLM snippets
|
|
235
|
+
sourceLocations: sourceLocations.length > 0 ? sourceLocations : undefined,
|
|
107
236
|
};
|
|
108
237
|
});
|
|
109
238
|
return {
|
|
@@ -131,15 +260,31 @@ NOT key attributes:
|
|
|
131
260
|
|
|
132
261
|
We've provided a list of variables that are used in conditional statements in the code. These are very likely key attributes.
|
|
133
262
|
|
|
134
|
-
Each conditional lists
|
|
263
|
+
Each conditional lists its source and how it is used. This should help you identify which attributes to include and what values to suggest.
|
|
264
|
+
|
|
265
|
+
**IMPORTANT**: Only include attributes with explicit evidence of impact in THIS code:
|
|
266
|
+
- Used directly in a conditional statement (if/ternary/switch)
|
|
267
|
+
- Displayed or rendered directly (e.g., text content, list length)
|
|
268
|
+
- Used in a computation that affects rendering
|
|
269
|
+
|
|
270
|
+
Do NOT include attributes that are only passed as arguments to other functions without direct usage here. We analyze those functions separately and merge their key attributes automatically.
|
|
135
271
|
|
|
136
272
|
## Path Format
|
|
137
273
|
|
|
138
274
|
Only return attributes from the "Attributes and Value Types" list — these are the only values we can control. Use the exact \`fullPath\` provided. Use \`functionCallReturnValue\` for function return values. Use \`[]\` for array items (e.g., \`items[]\`).
|
|
139
275
|
|
|
140
|
-
## Dependencies
|
|
276
|
+
## Dependencies and Compound Conditionals
|
|
277
|
+
|
|
278
|
+
When attributes are used in && chains (compound conditionals), they form dependencies on each other:
|
|
279
|
+
- Each attribute in the chain only has effect when ALL other conditions in the chain are satisfied
|
|
280
|
+
- Include these as dependencies with the required value for the code path to execute
|
|
281
|
+
|
|
282
|
+
Example: For \`a && b && !c\`:
|
|
283
|
+
- \`a\` has dependencies: \`b\` must be truthy, \`c\` must be falsy
|
|
284
|
+
- \`b\` has dependencies: \`a\` must be truthy, \`c\` must be falsy
|
|
285
|
+
- \`c\` has dependencies: \`a\` must be truthy, \`b\` must be truthy (for the falsy check to matter)
|
|
141
286
|
|
|
142
|
-
|
|
287
|
+
The static analysis section may show "Compound Conditionals" that list which conditions must be true together. Use this to populate the \`dependencies\` array with \`{ "path": "...", "requiredValue": "..." }\` entries.
|
|
143
288
|
|
|
144
289
|
## Value Type
|
|
145
290
|
|
|
@@ -165,8 +310,9 @@ List all key attributes in order from most impactful to least impactful regardin
|
|
|
165
310
|
{
|
|
166
311
|
"fullPath": "signature[0].user",
|
|
167
312
|
"description": "Controls whether the main form or redirect screen displays",
|
|
313
|
+
"codeSnippets": ["if (!user) return <Redirect />", "user.name"],
|
|
168
314
|
"dependencies": [
|
|
169
|
-
"signature[0].projectId": "must be a valid project ID for 'user' to have effect"
|
|
315
|
+
{ "path": "signature[0].projectId", "requiredValue": "truthy", "description": "must be a valid project ID for 'user' to have effect" }
|
|
170
316
|
],
|
|
171
317
|
"valueType": "object",
|
|
172
318
|
"validValueOptions": ["an empty object {}", "null/undefined"]
|
|
@@ -174,6 +320,8 @@ List all key attributes in order from most impactful to least impactful regardin
|
|
|
174
320
|
]
|
|
175
321
|
}
|
|
176
322
|
\`\`\`
|
|
323
|
+
|
|
324
|
+
The \`codeSnippets\` field is required - provide 1-3 short code excerpts (under 80 chars each) showing exactly where and how this attribute is used. These snippets must appear verbatim in the code.
|
|
177
325
|
`;
|
|
178
326
|
const BACKEND_SYSTEM_MESSAGE = `You analyze backend functions to identify key data attributes that significantly impact behavior.
|
|
179
327
|
|
|
@@ -194,15 +342,31 @@ NOT key attributes:
|
|
|
194
342
|
|
|
195
343
|
We've provided a list of variables that are used in conditional statements in the code. These are very likely key attributes.
|
|
196
344
|
|
|
197
|
-
Each conditional lists
|
|
345
|
+
Each conditional lists its source and how it is used. This should help you identify which attributes to include and what values to suggest.
|
|
346
|
+
|
|
347
|
+
**IMPORTANT**: Only include attributes with explicit evidence of impact in THIS code:
|
|
348
|
+
- Used directly in a conditional statement (if/ternary/switch)
|
|
349
|
+
- Displayed or rendered directly (e.g., text content, list length)
|
|
350
|
+
- Used in a computation that affects rendering
|
|
351
|
+
|
|
352
|
+
Do NOT include attributes that are only passed as arguments to other functions without direct usage here. We analyze those functions separately and merge their key attributes automatically.
|
|
198
353
|
|
|
199
354
|
## Path Format
|
|
200
355
|
|
|
201
356
|
Only return attributes from the "Attributes and Value Types" list — these are the only values we can control. Use the exact \`fullPath\` provided. Use \`functionCallReturnValue\` for function return values. Use \`[]\` for array items (e.g., \`items[]\`).
|
|
202
357
|
|
|
203
|
-
## Dependencies
|
|
358
|
+
## Dependencies and Compound Conditionals
|
|
204
359
|
|
|
205
|
-
|
|
360
|
+
When attributes are used in && chains (compound conditionals), they form dependencies on each other:
|
|
361
|
+
- Each attribute in the chain only has effect when ALL other conditions in the chain are satisfied
|
|
362
|
+
- Include these as dependencies with the required value for the code path to execute
|
|
363
|
+
|
|
364
|
+
Example: For \`a && b && !c\`:
|
|
365
|
+
- \`a\` has dependencies: \`b\` must be truthy, \`c\` must be falsy
|
|
366
|
+
- \`b\` has dependencies: \`a\` must be truthy, \`c\` must be falsy
|
|
367
|
+
- \`c\` has dependencies: \`a\` must be truthy, \`b\` must be truthy (for the falsy check to matter)
|
|
368
|
+
|
|
369
|
+
The static analysis section may show "Compound Conditionals" that list which conditions must be true together. Use this to populate the \`dependencies\` array with \`{ "path": "...", "requiredValue": "..." }\` entries.
|
|
206
370
|
|
|
207
371
|
## Value Type
|
|
208
372
|
|
|
@@ -228,8 +392,9 @@ List all key attributes in order from most impactful to least impactful using th
|
|
|
228
392
|
{
|
|
229
393
|
"fullPath": "signature[0].config.enabled",
|
|
230
394
|
"description": "Controls whether the main processing logic runs",
|
|
395
|
+
"codeSnippets": ["if (!config.enabled) return", "enabled && processData()"],
|
|
231
396
|
"dependencies": [
|
|
232
|
-
"signature[0].analysisMode": "must be 'full' for 'enabled' to have effect"
|
|
397
|
+
{ "path": "signature[0].analysisMode", "requiredValue": "full", "description": "must be 'full' for 'enabled' to have effect" }
|
|
233
398
|
],
|
|
234
399
|
"valueType": "boolean",
|
|
235
400
|
"validValueOptions": ["true", "false"]
|
|
@@ -237,5 +402,7 @@ List all key attributes in order from most impactful to least impactful using th
|
|
|
237
402
|
]
|
|
238
403
|
}
|
|
239
404
|
\`\`\`
|
|
405
|
+
|
|
406
|
+
The \`codeSnippets\` field is required - provide 1-3 short code excerpts (under 80 chars each) showing exactly where and how this attribute is used. These snippets must appear verbatim in the code.
|
|
240
407
|
`;
|
|
241
408
|
//# sourceMappingURL=generateEntityKeyAttributes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateEntityKeyAttributes.js","sourceRoot":"","sources":["../../../../../../packages/ai/src/lib/generateEntityKeyAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,oCAAoC,MAAM,yDAAyD,CAAC;AAC3G,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,iCAAiC,EAAE,MAAM,qDAAqD,CAAC;AACxG,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AASlF,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,2BAA2B,CAAC,EACxD,MAAM,EACN,mBAAmB,EACnB,KAAK,GAC2B;IAChC,MAAM,CAAC,2CAA2C,EAAE;QAClD,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,UAAU,EAAE,MAAM,CAAC,IAAI;KACxB,CAAC,CAAC;IAEH,MAAM,qBAAqB,GAAG,MAAM,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACrE,MAAM,4BAA4B,GAChC,qBAAqB,EAAE,4BAA4B,IAAI,EAAE,CAAC;IAC5D,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,oBAAoB,EAAE,GAC3D,mBAAmB,CACjB,qBAAqB,IAAI,mBAAmB,EAC5C,mBAAmB,EACnB,4BAA4B,EAC5B,IAAI,CACL,CAAC;IAEJ,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,GAAG,CACT,gDAAgD,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CACjF,CAAC;QACF,OAAO;YACL,aAAa,EAAE,EAAE;YACjB,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,+FAA+F;IAC/F,MAAM,qBAAqB,GAAG,iCAAiC,CAAC;QAC9D,SAAS,EAAE,MAAM,CAAC,IAAI;QACtB,MAAM,EAAE,EAAE,GAAG,aAAa,EAAE;
|
|
1
|
+
{"version":3,"file":"generateEntityKeyAttributes.js","sourceRoot":"","sources":["../../../../../../packages/ai/src/lib/generateEntityKeyAttributes.ts"],"names":[],"mappings":"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"}
|
|
@@ -214,29 +214,25 @@ Use for relative dates. Code runs in Node (no browser APIs, no external librarie
|
|
|
214
214
|
Use simple elements only (\`<div>\`, \`<span>\`). No custom components.
|
|
215
215
|
|
|
216
216
|
## Mock Data Keys
|
|
217
|
-
|
|
217
|
+
**CRITICAL: Use keys EXACTLY as provided in the structure. Do NOT change key formats.**
|
|
218
218
|
|
|
219
|
-
|
|
219
|
+
Keys use the canonical format: \`EntityName::hookName::index\`
|
|
220
220
|
\`\`\`json
|
|
221
221
|
{
|
|
222
222
|
"mockData": {
|
|
223
|
-
"
|
|
224
|
-
"
|
|
223
|
+
"DashboardPage::useLoaderData::0": { "user": { "name": "John" } },
|
|
224
|
+
"DashboardPage::useFetcher::0": { "data": null, "state": "idle" },
|
|
225
|
+
"DashboardPage::useFetcher::1": { "data": { "reportId": "abc123" } }
|
|
225
226
|
}
|
|
226
227
|
}
|
|
227
228
|
\`\`\`
|
|
228
229
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
"reportFetcher <- useFetcher": { "data": { "reportId": "abc123" }, "state": "idle" }
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
\`\`\`
|
|
239
|
-
This reads as "entityDiffFetcher receives from useFetcher". Each variable gets its own distinct mock data.
|
|
230
|
+
The format is deterministic:
|
|
231
|
+
- \`EntityName\` - the component name
|
|
232
|
+
- \`hookName\` - the function/hook being called
|
|
233
|
+
- \`index\` - distinguishes multiple calls to the same hook (0, 1, 2...)
|
|
234
|
+
|
|
235
|
+
**You MUST use the exact keys provided in the structure. Do NOT substitute variable names or use alternative formats.**
|
|
240
236
|
|
|
241
237
|
## Response Format
|
|
242
238
|
\`\`\`json
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateEntityScenarioData.js","sourceRoot":"","sources":["../../../../../../packages/ai/src/lib/generateEntityScenarioData.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generateEntityScenarioData.js","sourceRoot":"","sources":["../../../../../../packages/ai/src/lib/generateEntityScenarioData.ts"],"names":[],"mappings":"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"}
|
|
@@ -125,6 +125,17 @@ Focus scenarios on demonstrating this specific behavior change.
|
|
|
125
125
|
|
|
126
126
|
${contextSection}${scenarioCountText}
|
|
127
127
|
|
|
128
|
+
## Coverage Goals (IMPORTANT)
|
|
129
|
+
Your primary goal is to MAXIMIZE coverage of key attributes across all scenarios:
|
|
130
|
+
|
|
131
|
+
1. **Use ALL validValueOptions**: Each key attribute has indexed \`validValueOptions\`. Across your scenarios, try to use EVERY option at least once. If an attribute has 3 options (indices 0, 1, 2), create scenarios that collectively cover all 3.
|
|
132
|
+
|
|
133
|
+
2. **Prioritize attributes with dependencies**: Key attributes with a \`dependencies\` array are HIGH PRIORITY - they control conditionally-rendered content. Create scenarios that satisfy these dependencies to reveal gated UI/behavior.
|
|
134
|
+
|
|
135
|
+
3. **Cover conditional branches**: Use \`codeUsages\` to identify all conditional paths. If code shows \`status === 'active'\` and \`status === 'pending'\`, ensure scenarios cover BOTH values.
|
|
136
|
+
|
|
137
|
+
4. **Vary values strategically**: Don't repeat the same validValueOption across scenarios unless necessary. Use different indices to maximize coverage.
|
|
138
|
+
|
|
128
139
|
## Default Scenario Rules
|
|
129
140
|
The FIRST scenario MUST be named exactly "${DEFAULT_SCENARIO_NAME}" (case-sensitive).
|
|
130
141
|
- Fill ALL key attributes using values from their \`validValueOptions\` list
|
|
@@ -132,23 +143,69 @@ The FIRST scenario MUST be named exactly "${DEFAULT_SCENARIO_NAME}" (case-sensit
|
|
|
132
143
|
- Ignore error-related attributes (set to null)
|
|
133
144
|
- NEVER include \`playwrightInstructions\` - we need a screenshot BEFORE any user interaction
|
|
134
145
|
- Do NOT add playwrightInstructions even if the component has forms/buttons - default shows initial state only
|
|
146
|
+
- **For attributes WITH dependencies**: The Default scenario should satisfy ALL dependencies so the attribute's effect is visible
|
|
135
147
|
|
|
136
148
|
## Other Scenarios
|
|
137
149
|
- Each produces DISTINCT output (visual: different screenshot; backend: different return/side-effect)
|
|
150
|
+
- **Use DIFFERENT validValueOptions** than the Default scenario - this is how we achieve coverage
|
|
138
151
|
- Only specify attributes that DIFFER from default
|
|
152
|
+
- Target uncovered validValueOptions: check which indices you haven't used yet
|
|
139
153
|
- May include \`playwrightInstructions\` for user interactions (clicks, form fills)
|
|
140
154
|
|
|
155
|
+
## Using codeUsages for Branch Coverage
|
|
156
|
+
Key attributes may include a \`codeUsages\` array showing exactly where they're used in conditionals:
|
|
157
|
+
\`\`\`json
|
|
158
|
+
{
|
|
159
|
+
"codeUsages": [
|
|
160
|
+
{ "line": 45, "code": "if (status === 'active')", "context": "Used in if statement (comparison check)" }
|
|
161
|
+
]
|
|
162
|
+
}
|
|
163
|
+
\`\`\`
|
|
164
|
+
Use this to ensure scenarios cover all conditional branches. If you see \`status === 'active'\`, create scenarios for both active AND non-active states.
|
|
165
|
+
|
|
166
|
+
## Handling Dependencies (Compound Conditionals) - HIGH PRIORITY
|
|
167
|
+
Key attributes with \`dependencies\` are the MOST IMPORTANT to cover because they reveal conditionally-gated content that only appears when multiple conditions are satisfied together.
|
|
168
|
+
|
|
169
|
+
**Why this matters**: If you see \`items.length > 0 && !isLoading && !hasError\`, the content only renders when ALL THREE conditions are true. Missing even one dependency means the UI won't show.
|
|
170
|
+
|
|
171
|
+
**Strategy for dependent attributes**:
|
|
172
|
+
1. **Default scenario**: MUST satisfy ALL dependencies of the highest-impact key attributes
|
|
173
|
+
2. **Other scenarios**: Can vary the dependent values to show alternative states (e.g., what happens when isLoading=true)
|
|
174
|
+
|
|
175
|
+
When a key attribute has dependencies like:
|
|
176
|
+
\`\`\`json
|
|
177
|
+
{
|
|
178
|
+
"dependencies": [
|
|
179
|
+
{ "path": "signature[0].isLoading", "requiredValue": false },
|
|
180
|
+
{ "path": "signature[0].hasError", "requiredValue": false }
|
|
181
|
+
]
|
|
182
|
+
}
|
|
183
|
+
\`\`\`
|
|
184
|
+
The Default scenario MUST set BOTH dependent attributes to their required values so the key attribute's effect is visible.
|
|
185
|
+
|
|
186
|
+
**Creating scenarios for dependent pathways**:
|
|
187
|
+
- Create at least one scenario where ALL dependencies are satisfied (usually Default)
|
|
188
|
+
- Consider creating additional scenarios that intentionally break dependencies to show the "hidden" state
|
|
189
|
+
|
|
141
190
|
## keyAttributeInstructions Format
|
|
142
|
-
Use \`dataStructurePath\` as key
|
|
191
|
+
Use \`dataStructurePath\` as key. Include variable name, instruction, AND a valueOptionRef that references which validValueOption you're using:
|
|
143
192
|
\`\`\`json
|
|
144
193
|
{
|
|
145
194
|
"useDiffModal().diffView": {
|
|
146
195
|
"localVariable": "diffView",
|
|
147
|
-
"instruction": "Set to 'split' mode"
|
|
196
|
+
"instruction": "Set to 'split' mode",
|
|
197
|
+
"valueOptionRef": { "index": 0, "refType": "exact" }
|
|
148
198
|
}
|
|
149
199
|
}
|
|
150
200
|
\`\`\`
|
|
151
201
|
|
|
202
|
+
### valueOptionRef Types
|
|
203
|
+
- \`"exact"\`: Uses the validValueOption at this index exactly
|
|
204
|
+
- \`"derived"\`: Based on this validValueOption but modified (include \`derivation\` field explaining how)
|
|
205
|
+
- \`"custom"\`: Value not from validValueOptions list (use sparingly)
|
|
206
|
+
|
|
207
|
+
The \`index\` refers to the validValueOptions array position (0 = first option).
|
|
208
|
+
|
|
152
209
|
## playwrightInstructions (optional, non-default only)
|
|
153
210
|
\`\`\`json
|
|
154
211
|
{
|
|
@@ -176,24 +233,63 @@ Use when: data only appears after user action (button click, form submit), or ke
|
|
|
176
233
|
"dataScenarios": [
|
|
177
234
|
{
|
|
178
235
|
"name": "${DEFAULT_SCENARIO_NAME}",
|
|
179
|
-
"testName": "it(\"displays
|
|
180
|
-
"description": "
|
|
236
|
+
"testName": "it(\"displays items list with data\")",
|
|
237
|
+
"description": "Shows item list when data is loaded and no errors",
|
|
181
238
|
"keyAttributeInstructions": {
|
|
182
|
-
"
|
|
183
|
-
|
|
239
|
+
"useData().items[]": {
|
|
240
|
+
"localVariable": "items[]",
|
|
241
|
+
"instruction": "Array with 3 items",
|
|
242
|
+
"valueOptionRef": { "index": 0, "refType": "exact" }
|
|
243
|
+
},
|
|
244
|
+
"useData().isLoading": {
|
|
245
|
+
"localVariable": "isLoading",
|
|
246
|
+
"instruction": "false - satisfies dependency for items to show",
|
|
247
|
+
"valueOptionRef": { "index": 1, "refType": "exact" }
|
|
248
|
+
},
|
|
249
|
+
"useData().status": {
|
|
250
|
+
"localVariable": "status",
|
|
251
|
+
"instruction": "Set to 'success'",
|
|
252
|
+
"valueOptionRef": { "index": 0, "refType": "exact" }
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"name": "Loading state",
|
|
258
|
+
"testName": "it(\"shows spinner when loading\")",
|
|
259
|
+
"description": "Data is loading - items hidden, spinner shown",
|
|
260
|
+
"keyAttributeInstructions": {
|
|
261
|
+
"useData().isLoading": {
|
|
262
|
+
"localVariable": "isLoading",
|
|
263
|
+
"instruction": "true - breaks dependency, items won't show",
|
|
264
|
+
"valueOptionRef": { "index": 0, "refType": "exact" }
|
|
265
|
+
},
|
|
266
|
+
"useData().status": {
|
|
267
|
+
"localVariable": "status",
|
|
268
|
+
"instruction": "Set to 'loading' for coverage of loading state",
|
|
269
|
+
"valueOptionRef": { "index": 1, "refType": "exact" }
|
|
270
|
+
}
|
|
184
271
|
}
|
|
185
272
|
},
|
|
186
273
|
{
|
|
187
274
|
"name": "Empty state",
|
|
188
|
-
"testName": "it(\"shows
|
|
189
|
-
"description": "
|
|
275
|
+
"testName": "it(\"shows empty message when no items\")",
|
|
276
|
+
"description": "No items to display",
|
|
190
277
|
"keyAttributeInstructions": {
|
|
191
|
-
"
|
|
278
|
+
"useData().items[]": {
|
|
279
|
+
"localVariable": "items[]",
|
|
280
|
+
"instruction": "Empty array [] to show empty state",
|
|
281
|
+
"valueOptionRef": { "index": 1, "refType": "exact" }
|
|
282
|
+
}
|
|
192
283
|
}
|
|
193
284
|
}
|
|
194
285
|
]
|
|
195
286
|
}
|
|
196
287
|
\`\`\`
|
|
288
|
+
Note how the example:
|
|
289
|
+
- Default satisfies ALL dependencies (isLoading=false) so items content shows
|
|
290
|
+
- "Loading state" uses a different valueOptionRef for status to cover that code path
|
|
291
|
+
- "Empty state" covers the empty array case to maximize coverage
|
|
292
|
+
- Instructions describe the VALUE, not the index (e.g., "Empty array []" not "uses index 1")
|
|
197
293
|
`;
|
|
198
294
|
}
|
|
199
295
|
const SYSTEM_MESSAGE = generateSystemMessage();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateEntityScenarios.js","sourceRoot":"","sources":["../../../../../../packages/ai/src/lib/generateEntityScenarios.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,gCAAgC,MAAM,qDAAqD,CAAC;
|
|
1
|
+
{"version":3,"file":"generateEntityScenarios.js","sourceRoot":"","sources":["../../../../../../packages/ai/src/lib/generateEntityScenarios.ts"],"names":[],"mappings":"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"}
|