@codeyam/codeyam-cli 0.1.0-staging.6e699e5 → 0.1.0-staging.79ef713
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 -7
- package/analyzer-template/packages/ai/index.ts +10 -2
- package/analyzer-template/packages/ai/package.json +2 -2
- package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +86 -18
- package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +67 -9
- package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +41 -17
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
- package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +308 -50
- package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +15 -6
- package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +833 -243
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +5 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +16 -3
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +6 -4
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +54 -3
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +60 -15
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +80 -5
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +179 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.ts +40 -30
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +393 -97
- package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +58 -3
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +283 -1
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +9 -5
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +11 -3
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +1 -1
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +297 -7
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +1 -1
- package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +51 -3
- package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +90 -96
- package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +10 -7
- package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +25 -13
- package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +4 -3
- package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +114 -2
- package/analyzer-template/packages/analyze/index.ts +2 -0
- package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +65 -59
- package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +113 -26
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +19 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +19 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +11 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +8 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +49 -1
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +2 -1
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +71 -9
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +19 -4
- package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +6 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +4 -2
- package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +0 -3
- package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +4 -5
- package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +14 -12
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1315 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +61 -13
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +37 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +229 -19
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +117 -9
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +459 -39
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/propagateArrayItemSchemas.ts +474 -0
- package/analyzer-template/packages/analyze/src/lib/files/setImportedExports.ts +2 -1
- package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
- package/analyzer-template/packages/analyze/src/lib/utils/getFileByPath.ts +19 -0
- package/analyzer-template/packages/aws/package.json +1 -1
- package/analyzer-template/packages/database/package.json +1 -1
- package/analyzer-template/packages/database/src/lib/kysely/db.ts +8 -1
- package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +6 -0
- package/analyzer-template/packages/database/src/lib/loadAnalyses.ts +58 -1
- package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +13 -0
- package/analyzer-template/packages/database/src/lib/loadBranch.ts +16 -1
- package/analyzer-template/packages/database/src/lib/loadCommit.ts +11 -0
- package/analyzer-template/packages/database/src/lib/loadCommits.ts +28 -0
- package/analyzer-template/packages/database/src/lib/loadEntities.ts +26 -3
- package/analyzer-template/packages/database/src/lib/loadEntityBranches.ts +12 -0
- package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +7 -14
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +8 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js +3 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts +2 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js +45 -2
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +8 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js +11 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js +7 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts +3 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +22 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts +3 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +23 -4
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js +9 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts +2 -2
- package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +5 -4
- package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +3 -0
- package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +5 -5
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
- package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
- package/analyzer-template/packages/github/package.json +1 -1
- package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
- package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +1 -0
- package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +6 -5
- package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +3 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +5 -5
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
- package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
- package/analyzer-template/playwright/capture.ts +20 -8
- package/analyzer-template/playwright/captureStatic.ts +1 -1
- package/analyzer-template/project/analyzeBaselineCommit.ts +5 -0
- package/analyzer-template/project/analyzeRegularCommit.ts +5 -0
- package/analyzer-template/project/captureLibraryFunctionDirect.ts +29 -26
- package/analyzer-template/project/constructMockCode.ts +90 -10
- package/analyzer-template/project/createEntitiesAndSortFiles.ts +83 -0
- package/analyzer-template/project/loadReadyToBeCaptured.ts +65 -41
- package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
- package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +11 -6
- package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
- package/analyzer-template/project/orchestrateCapture.ts +45 -6
- package/analyzer-template/project/start.ts +35 -11
- package/analyzer-template/project/writeMockDataTsx.ts +181 -8
- package/analyzer-template/project/writeScenarioComponents.ts +103 -12
- package/analyzer-template/project/writeSimpleRoot.ts +21 -11
- package/analyzer-template/scripts/comboWorkerLoop.cjs +98 -50
- package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +5 -0
- package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
- package/background/src/lib/virtualized/project/analyzeRegularCommit.js +5 -0
- package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
- package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +3 -3
- package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -1
- package/background/src/lib/virtualized/project/constructMockCode.js +75 -4
- package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
- package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +73 -1
- package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -1
- package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +19 -8
- package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js +2 -2
- package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +4 -4
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture.js +38 -6
- package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
- package/background/src/lib/virtualized/project/start.js +32 -11
- package/background/src/lib/virtualized/project/start.js.map +1 -1
- package/background/src/lib/virtualized/project/writeMockDataTsx.js +162 -4
- package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
- package/background/src/lib/virtualized/project/writeScenarioComponents.js +85 -15
- package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
- package/background/src/lib/virtualized/project/writeSimpleRoot.js +21 -11
- package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
- package/codeyam-cli/scripts/apply-setup.js +180 -0
- package/codeyam-cli/scripts/apply-setup.js.map +1 -1
- package/codeyam-cli/src/cli.js +2 -0
- package/codeyam-cli/src/cli.js.map +1 -1
- package/codeyam-cli/src/commands/debug.js +7 -5
- package/codeyam-cli/src/commands/debug.js.map +1 -1
- package/codeyam-cli/src/commands/memory.js +264 -0
- package/codeyam-cli/src/commands/memory.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +2 -2
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
- package/codeyam-cli/src/utils/analysisRunner.js +21 -2
- package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
- package/codeyam-cli/src/utils/backgroundServer.js +4 -0
- package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/utils/install-skills.js +55 -10
- package/codeyam-cli/src/utils/install-skills.js.map +1 -1
- package/codeyam-cli/src/utils/queue/job.js +4 -0
- package/codeyam-cli/src/utils/queue/job.js.map +1 -1
- package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +230 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +75 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +285 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +115 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
- package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
- package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
- package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
- package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
- package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
- package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
- package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
- package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
- package/codeyam-cli/src/utils/rules/index.js +6 -0
- package/codeyam-cli/src/utils/rules/index.js.map +1 -0
- package/codeyam-cli/src/utils/rules/parser.js +78 -0
- package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
- package/codeyam-cli/src/utils/rules/pathMatcher.js +18 -0
- package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
- package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
- package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
- package/codeyam-cli/src/utils/rules/staleness.js +137 -0
- package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +1 -1
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
- package/codeyam-cli/src/webserver/app/lib/database.js +7 -3
- package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CA3JxPb7.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-B86KKU7e.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-DLqD3qNt.js → EntityTypeBadge-B5ctlSYt.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-Ba2JVPzP.js → EntityTypeIcon-BqY8gDAW.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{InlineSpinner-C8lyxW9k.js → InlineSpinner-ClaLpuOo.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-aht4aafF.js → InteractivePreview-BDhPilK7.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-CVtiBnY5.js → LibraryFunctionPreview-VeqEBv9v.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-B0GLXMsr.js → LoadingDots-Bs7Nn1Jr.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-xgeCVgSM.js → LogViewer-Bm3PmcCz.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-D4TZhLuw.js → ReportIssueModal-C6PKeMYR.js} +3 -13
- package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-DuDvi0jm.js → SafeScreenshot-Gq3Ocjo6.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-DEx02QDa.js → ScenarioViewer-BNLaXBHR.js} +3 -3
- package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-DyFZkK0l.js → TruncatedFilePath-CiwXDxLh.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{_index-BwqWJOgH.js → _index-B3TDXxnk.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-DoLIqZX2.js → activity.(_tab)-BtBFH820.js} +6 -16
- package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-DfKzxuoe.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.memory-profile-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/book-open-PttOB2SF.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-Cx24_aWc.js → chevron-down-TJp6ofnp.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{chunk-EPOLDU6W-CXRTFQ3F.js → chunk-JZWAC4HX-JE9ZIoBl.js} +12 -12
- package/codeyam-cli/src/webserver/build/client/assets/{circle-check-BOARzkeR.js → circle-check-CXhHQYrI.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/copy-6y9ALfGT.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-BdhJEx6B.js → createLucideIcon-Ca9fAY46.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-C5lqplTC.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-C2N4Op8e.js → entity._sha._-n38keI1k.js} +10 -10
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.fullscreen-DavjRmOY.js → entity._sha.scenarios._scenarioId.fullscreen-CBoafmVs.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.create-scenario-D1T4TGjf.js → entity._sha_.create-scenario-DGgZjdFg.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CTBG2mmz.js → entity._sha_.edit._scenarioId-38yPijoD.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entry.client-CS2cb_eZ.js → entry.client-BSHEfydn.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DMJ7zii9.js → fileTableUtils-DCPhhSMo.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/files-0N0YJQv7.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{git-B4RJRvYB.js → git-DXnyr8uP.js} +8 -8
- package/codeyam-cli/src/webserver/build/client/assets/globals-Bh6jH0cL.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{index-lzqtyFU8.js → index-CcsFv748.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{index-B1h680n5.js → index-ChN9-fAY.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/labs-CdVUfvji.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-B7B9V-bu.js → loader-circle-CTqLEAGU.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-87319d0f.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/memory-CPIDnDEj.js +76 -0
- package/codeyam-cli/src/webserver/build/client/assets/pause-D6vreykR.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/root-D6oziHts.js +62 -0
- package/codeyam-cli/src/webserver/build/client/assets/{search-CxXUmBSd.js → search-B8VUL8nl.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{settings-CS5f3WzT.js → settings-eBI36Yv5.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{simulations-DwFIBT09.js → simulations-CPoAg7Zo.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/terminal-BrCP7uQo.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-B6LgvRJg.js → triangle-alert-BZz2NjYa.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useCustomSizes-C1v1PQzo.js → useCustomSizes-DNwUduNu.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-aSv48UbS.js → useLastLogLine-COky1GVF.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useReportContext-DYxHZQuP.js → useReportContext-CpZgwliL.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useToast-mBRpZPiu.js → useToast-Bv9JFvUO.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/index-9ox9LcrG.js +1 -0
- package/codeyam-cli/src/webserver/build/server/assets/server-build-Cq5Vqcob.js +260 -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/templates/{codeyam-power-rules-hook.sh → codeyam-memory-hook.sh} +12 -13
- package/codeyam-cli/templates/codeyam:diagnose.md +178 -25
- package/codeyam-cli/templates/codeyam:memory.md +404 -0
- package/codeyam-cli/templates/codeyam:new-rule.md +2 -2
- package/codeyam-cli/templates/rule-notification-hook.py +56 -0
- package/codeyam-cli/templates/rule-reflection-hook.py +590 -0
- package/codeyam-cli/templates/rules-instructions.md +123 -0
- package/package.json +8 -6
- package/packages/ai/index.js +3 -2
- package/packages/ai/index.js.map +1 -1
- package/packages/ai/src/lib/analyzeScope.js +68 -13
- package/packages/ai/src/lib/analyzeScope.js.map +1 -1
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +54 -8
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
- package/packages/ai/src/lib/astScopes/methodSemantics.js +41 -17
- package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
- package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
- package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
- package/packages/ai/src/lib/astScopes/processExpression.js +239 -43
- package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +650 -166
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +5 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +13 -3
- package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +6 -4
- package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +52 -3
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +55 -11
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
- package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +73 -5
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
- package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +333 -86
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
- package/packages/ai/src/lib/generateEntityDataStructure.js +46 -2
- package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarioData.js +205 -1
- package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarios.js +7 -1
- package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
- package/packages/ai/src/lib/generateExecutionFlows.js +10 -2
- package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +209 -3
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -1
- package/packages/ai/src/lib/isolateScopes.js +39 -3
- package/packages/ai/src/lib/isolateScopes.js.map +1 -1
- package/packages/ai/src/lib/mergeStatements.js +70 -51
- package/packages/ai/src/lib/mergeStatements.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +10 -4
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
- package/packages/ai/src/lib/resolvePathToControllable.js +24 -14
- package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -1
- package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
- package/packages/ai/src/lib/worker/analyzeScopeWorker.js +94 -1
- package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
- package/packages/analyze/index.js +1 -0
- package/packages/analyze/index.js.map +1 -1
- package/packages/analyze/src/lib/FileAnalyzer.js +60 -36
- package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
- package/packages/analyze/src/lib/ProjectAnalyzer.js +96 -26
- package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +14 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +14 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +6 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +6 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +39 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +2 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +54 -6
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +17 -4
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +5 -0
- package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +2 -1
- package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +0 -3
- package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
- package/packages/analyze/src/lib/files/analyzeRemixRoute.js +3 -2
- package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
- package/packages/analyze/src/lib/files/getImportedExports.js +11 -7
- package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +880 -0
- package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +56 -10
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +33 -8
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +150 -17
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +56 -8
- package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +399 -31
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/setImportedExports.js +2 -1
- package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -1
- package/packages/analyze/src/lib/index.js +1 -0
- package/packages/analyze/src/lib/index.js.map +1 -1
- package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
- package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
- package/packages/database/src/lib/kysely/db.js +8 -1
- package/packages/database/src/lib/kysely/db.js.map +1 -1
- package/packages/database/src/lib/kysely/tables/commitsTable.js +3 -0
- package/packages/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
- package/packages/database/src/lib/loadAnalyses.js +45 -2
- package/packages/database/src/lib/loadAnalyses.js.map +1 -1
- package/packages/database/src/lib/loadAnalysis.js +8 -0
- package/packages/database/src/lib/loadAnalysis.js.map +1 -1
- package/packages/database/src/lib/loadBranch.js +11 -1
- package/packages/database/src/lib/loadBranch.js.map +1 -1
- package/packages/database/src/lib/loadCommit.js +7 -0
- package/packages/database/src/lib/loadCommit.js.map +1 -1
- package/packages/database/src/lib/loadCommits.js +22 -1
- package/packages/database/src/lib/loadCommits.js.map +1 -1
- package/packages/database/src/lib/loadEntities.js +23 -4
- package/packages/database/src/lib/loadEntities.js.map +1 -1
- package/packages/database/src/lib/loadEntityBranches.js +9 -0
- package/packages/database/src/lib/loadEntityBranches.js.map +1 -1
- package/packages/database/src/lib/updateCommitMetadata.js +5 -4
- package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-BXhEawa3.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BRb-0kQl.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/files-Cs4MdYtv.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/git-commit-horizontal-CysbcZxi.js +0 -6
- package/codeyam-cli/src/webserver/build/client/assets/globals-DMUaGAqV.css +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-f874c610.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/root-Bz5TunQg.js +0 -57
- package/codeyam-cli/src/webserver/build/client/assets/rules-hEkvVw2-.js +0 -97
- package/codeyam-cli/src/webserver/build/server/assets/index-967OuJoF.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/server-build-DRTmerg9.js +0 -257
- package/codeyam-cli/templates/codeyam:power-rules.md +0 -447
- /package/codeyam-cli/src/webserver/build/client/assets/{api.rules-l0sNRNKZ.js → api.agent-transcripts-l0sNRNKZ.js} +0 -0
|
@@ -987,10 +987,19 @@ function addMockToContent(
|
|
|
987
987
|
/[.*+?^${}()|[\]\\]/g,
|
|
988
988
|
'\\$&',
|
|
989
989
|
);
|
|
990
|
-
// Create regex that matches the call (with optional whitespace variations)
|
|
990
|
+
// Create regex that matches the call (with optional whitespace variations).
|
|
991
|
+
// TypeScript formatters commonly break type parameters across lines, e.g.:
|
|
992
|
+
// useLoaderData<
|
|
993
|
+
// typeof loader
|
|
994
|
+
// >()
|
|
995
|
+
// So we allow optional whitespace around < and > delimiters, not just
|
|
996
|
+
// where whitespace already exists in the call signature string.
|
|
991
997
|
const callRegex = new RegExp(
|
|
992
|
-
escapedCallSignature
|
|
993
|
-
|
|
998
|
+
escapedCallSignature
|
|
999
|
+
.replace(/\s+/g, '\\s*')
|
|
1000
|
+
.replace(/</g, '\\s*<\\s*')
|
|
1001
|
+
.replace(/>/g, '\\s*>\\s*'),
|
|
1002
|
+
'gs',
|
|
994
1003
|
);
|
|
995
1004
|
fileContent = fileContent.replace(callRegex, `${mockFunctionName}()`);
|
|
996
1005
|
}
|
|
@@ -1012,15 +1021,29 @@ function addMockToContent(
|
|
|
1012
1021
|
rootAnalysis.metadata?.scenariosDataStructure?.dataForMocks;
|
|
1013
1022
|
|
|
1014
1023
|
// Find matching call signature key in dataForMocks
|
|
1024
|
+
// IMPORTANT: First try exact match with type parameters (e.g., "useLoaderData<LoaderData>()")
|
|
1025
|
+
// to avoid picking the wrong variant (e.g., "useLoaderData<typeof loader>()" which may
|
|
1026
|
+
// have different properties). Fall back to base name matching only if exact match fails.
|
|
1015
1027
|
const hookBaseName = importedExport.name.split(/[<(]/)[0];
|
|
1016
|
-
const
|
|
1017
|
-
|
|
1028
|
+
const expectedKey = importedExport.calls?.[0];
|
|
1029
|
+
let callSignatureKey: string | undefined;
|
|
1030
|
+
|
|
1031
|
+
if (dataForMocks) {
|
|
1032
|
+
const keys = Object.keys(dataForMocks);
|
|
1033
|
+
|
|
1034
|
+
// First try exact match with the expected call signature
|
|
1035
|
+
if (expectedKey && keys.includes(expectedKey)) {
|
|
1036
|
+
callSignatureKey = expectedKey;
|
|
1037
|
+
} else {
|
|
1038
|
+
// Fall back to base name matching
|
|
1039
|
+
callSignatureKey = keys.find((key) => {
|
|
1018
1040
|
// Split on ., <, or ( to get the true base name
|
|
1019
1041
|
// This handles both "useFlags()" -> "useFlags" and "trpc.useUtils()" -> "trpc"
|
|
1020
1042
|
const keyBaseName = key.split(/[.<(]/)[0];
|
|
1021
1043
|
return keyBaseName === hookBaseName;
|
|
1022
|
-
})
|
|
1023
|
-
|
|
1044
|
+
});
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
1024
1047
|
|
|
1025
1048
|
// Use the call signature if found, otherwise construct it
|
|
1026
1049
|
const dataKey =
|
|
@@ -1061,18 +1084,36 @@ function addMockToContent(
|
|
|
1061
1084
|
// IMPORTANT: We inline scenarios().data() inside the function rather than
|
|
1062
1085
|
// storing in a const - see comment in constructMockCode.ts for why.
|
|
1063
1086
|
if (!mockCode) {
|
|
1064
|
-
mockCode =
|
|
1065
|
-
|
|
1087
|
+
mockCode = `// PATCHED: memoize to return stable reference (prevents infinite useEffect re-triggers)
|
|
1088
|
+
const _${importedExport.name}Ref = {
|
|
1089
|
+
current: null,
|
|
1090
|
+
};
|
|
1091
|
+
function ${importedExport.name}(...args) {
|
|
1092
|
+
if (!_${importedExport.name}Ref.current) {
|
|
1093
|
+
_${importedExport.name}Ref.current = scenarios().data()?.["${dataKey}"];
|
|
1094
|
+
}
|
|
1095
|
+
return _${importedExport.name}Ref.current;
|
|
1066
1096
|
}`;
|
|
1067
1097
|
}
|
|
1068
1098
|
} else {
|
|
1069
1099
|
// Helper to find matching call signature key from dataForMocks
|
|
1100
|
+
// IMPORTANT: First try exact match with type parameters (e.g., "useLoaderData<LoaderData>()")
|
|
1101
|
+
// to avoid picking the wrong variant. Fall back to base name matching only if needed.
|
|
1070
1102
|
const hookBaseName = importedExport.name.split(/[<(]/)[0];
|
|
1103
|
+
const expectedKey = importedExport.calls?.[0];
|
|
1071
1104
|
const findMatchingKey = (
|
|
1072
1105
|
dataForMocks: Record<string, unknown> | undefined,
|
|
1073
1106
|
): string | undefined => {
|
|
1074
1107
|
if (!dataForMocks) return undefined;
|
|
1075
|
-
|
|
1108
|
+
const keys = Object.keys(dataForMocks);
|
|
1109
|
+
|
|
1110
|
+
// First try exact match with the expected call signature
|
|
1111
|
+
if (expectedKey && keys.includes(expectedKey)) {
|
|
1112
|
+
return expectedKey;
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
// Fall back to base name matching
|
|
1116
|
+
return keys.find((key) => {
|
|
1076
1117
|
// Split on ., <, or ( to get the true base name
|
|
1077
1118
|
// This handles both "useFlags()" -> "useFlags" and "trpc.useUtils()" -> "trpc"
|
|
1078
1119
|
const keyBaseName = key.split(/[.<(]/)[0];
|
|
@@ -1131,8 +1172,15 @@ function addMockToContent(
|
|
|
1131
1172
|
// IMPORTANT: We inline scenarios().data() inside the function rather than
|
|
1132
1173
|
// storing in a const - see comment in constructMockCode.ts for why.
|
|
1133
1174
|
if (!mockCode && dataKey) {
|
|
1134
|
-
mockCode =
|
|
1135
|
-
|
|
1175
|
+
mockCode = `// PATCHED: memoize to return stable reference (prevents infinite useEffect re-triggers)
|
|
1176
|
+
const _${importedExport.name}Ref = {
|
|
1177
|
+
current: null,
|
|
1178
|
+
};
|
|
1179
|
+
function ${importedExport.name}(...args) {
|
|
1180
|
+
if (!_${importedExport.name}Ref.current) {
|
|
1181
|
+
_${importedExport.name}Ref.current = scenarios().data()?.["${dataKey}"];
|
|
1182
|
+
}
|
|
1183
|
+
return _${importedExport.name}Ref.current;
|
|
1136
1184
|
}`;
|
|
1137
1185
|
}
|
|
1138
1186
|
}
|
|
@@ -1205,6 +1253,21 @@ function addMockToContent(
|
|
|
1205
1253
|
fileContent = fileContent.replace(importRegExp, '$1$2');
|
|
1206
1254
|
}
|
|
1207
1255
|
|
|
1256
|
+
// Also handle namespace imports (import * as foo from '...')
|
|
1257
|
+
// These need to be renamed to foo__cyOriginal when the mock code spreads from the original.
|
|
1258
|
+
// Note: We match any path (not just escapedImportPath) because the import path may have
|
|
1259
|
+
// been rewritten by transitive import handling before this code runs.
|
|
1260
|
+
if (shouldRenameToOriginal) {
|
|
1261
|
+
const namespaceImportRegExp = new RegExp(
|
|
1262
|
+
`(import\\s+\\*\\s+as\\s+)${escapeRegExp(firstPart)}(\\s+from\\s+['"][^'"]*['"])`,
|
|
1263
|
+
'm',
|
|
1264
|
+
);
|
|
1265
|
+
fileContent = fileContent.replace(
|
|
1266
|
+
namespaceImportRegExp,
|
|
1267
|
+
`$1${firstPart}__cyOriginal$2`,
|
|
1268
|
+
);
|
|
1269
|
+
}
|
|
1270
|
+
|
|
1208
1271
|
// Remove empty imports entirely to avoid partial commenting issues with multiline imports
|
|
1209
1272
|
// This handles both single-line and multiline empty imports
|
|
1210
1273
|
fileContent = fileContent.replace(
|
|
@@ -2916,6 +2979,34 @@ ${exportKeyword}const ${functionName} = new Proxy(() => scenarios().data()?.["${
|
|
|
2916
2979
|
// Scenario: ${scenario.id} - ${scenario.name}
|
|
2917
2980
|
`;
|
|
2918
2981
|
|
|
2982
|
+
// Final pass: Rename any namespace imports (import * as X from '...') that have
|
|
2983
|
+
// corresponding mock code using ...X__cyOriginal spread pattern.
|
|
2984
|
+
// This handles cases where:
|
|
2985
|
+
// 1. The import path was rewritten by transitive import handling
|
|
2986
|
+
// 2. The import wasn't caught by the earlier renaming logic
|
|
2987
|
+
// We scan for all __cyOriginal references in the mock code and ensure the imports are renamed.
|
|
2988
|
+
const cyOriginalReferences = fileContent.match(/\.\.\.(\w+)__cyOriginal/g);
|
|
2989
|
+
if (cyOriginalReferences) {
|
|
2990
|
+
const uniqueNames = [
|
|
2991
|
+
...new Set(
|
|
2992
|
+
cyOriginalReferences.map((ref) =>
|
|
2993
|
+
ref.replace('...', '').replace('__cyOriginal', ''),
|
|
2994
|
+
),
|
|
2995
|
+
),
|
|
2996
|
+
];
|
|
2997
|
+
for (const name of uniqueNames) {
|
|
2998
|
+
// Match namespace imports for this name that haven't been renamed yet
|
|
2999
|
+
const namespaceImportRegex = new RegExp(
|
|
3000
|
+
`(import\\s+\\*\\s+as\\s+)${escapeRegExp(name)}(\\s+from\\s+['"][^'"]*['"])`,
|
|
3001
|
+
'g',
|
|
3002
|
+
);
|
|
3003
|
+
fileContent = fileContent.replace(
|
|
3004
|
+
namespaceImportRegex,
|
|
3005
|
+
`$1${name}__cyOriginal$2`,
|
|
3006
|
+
);
|
|
3007
|
+
}
|
|
3008
|
+
}
|
|
3009
|
+
|
|
2919
3010
|
// Use the directive that was extracted at the beginning of processing
|
|
2920
3011
|
// This ensures it stays at the very top even after imports are prepended
|
|
2921
3012
|
// NOTE: We only preserve "use client" directives, NOT "use server" directives.
|
|
@@ -277,16 +277,17 @@ export default async function writeSimpleRoot(
|
|
|
277
277
|
let mockKey: string | undefined;
|
|
278
278
|
|
|
279
279
|
if (matchingKeys.length > 1) {
|
|
280
|
-
// Parse root.tsx to find how this hook is used
|
|
281
|
-
// Look for patterns like: const { prop1, prop2 } = useLoaderData()
|
|
282
|
-
// or: const result = useLoaderData()
|
|
280
|
+
// Parse root.tsx to find how this hook is used, INCLUDING type parameters
|
|
281
|
+
// Look for patterns like: const { prop1, prop2 } = useLoaderData<LoaderData>()
|
|
282
|
+
// or: const result = useLoaderData<typeof loader>()
|
|
283
283
|
const hookUsageRegex = new RegExp(
|
|
284
|
-
`(?:const|let|var)\\s+(?:\\{([^}]+)\\}|([a-zA-Z_][a-zA-Z0-9_]*))\\s*=\\s*${entityName}(
|
|
284
|
+
`(?:const|let|var)\\s+(?:\\{([^}]+)\\}|([a-zA-Z_][a-zA-Z0-9_]*))\\s*=\\s*${entityName}(<[^>]+>)?\\s*\\(`,
|
|
285
285
|
'g',
|
|
286
286
|
);
|
|
287
287
|
|
|
288
288
|
const matches = [...newContent.matchAll(hookUsageRegex)];
|
|
289
289
|
const rootPropertyNames: string[] = [];
|
|
290
|
+
const typeParamsUsed: Set<string> = new Set();
|
|
290
291
|
|
|
291
292
|
for (const match of matches) {
|
|
292
293
|
if (match[1]) {
|
|
@@ -300,17 +301,26 @@ export default async function writeSimpleRoot(
|
|
|
300
301
|
// Simple assignment: const result = ...
|
|
301
302
|
rootPropertyNames.push(match[2]);
|
|
302
303
|
}
|
|
304
|
+
// Capture type parameters used (e.g., "<LoaderData>", "<typeof loader>")
|
|
305
|
+
if (match[3]) {
|
|
306
|
+
typeParamsUsed.add(match[3]);
|
|
307
|
+
}
|
|
303
308
|
}
|
|
304
309
|
|
|
305
|
-
//
|
|
306
|
-
//
|
|
307
|
-
|
|
310
|
+
// First, try to find a key that matches the exact type parameters used in the source
|
|
311
|
+
// e.g., if source has useLoaderData<LoaderData>(), prefer "useLoaderData<LoaderData>()" key
|
|
312
|
+
if (typeParamsUsed.size > 0) {
|
|
313
|
+
for (const typeParam of typeParamsUsed) {
|
|
314
|
+
const exactKey = `${entityName}${typeParam}()`;
|
|
315
|
+
if (matchingKeys.includes(exactKey)) {
|
|
316
|
+
mockKey = exactKey;
|
|
317
|
+
break;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
308
321
|
|
|
309
|
-
// Fallback: if no
|
|
310
|
-
// exclude the route's key (which we can identify from mockedImports variable names)
|
|
322
|
+
// Fallback: if no exact type parameter match, use the first match
|
|
311
323
|
if (!mockKey) {
|
|
312
|
-
// The route's variable names would be in its own analysis
|
|
313
|
-
// For simplicity, just use the first key that's different from the most common pattern
|
|
314
324
|
mockKey = matchingKeys[0];
|
|
315
325
|
}
|
|
316
326
|
} else if (matchingKeys.length === 1) {
|
|
@@ -121,10 +121,11 @@ const validateFiles = async () => {
|
|
|
121
121
|
}
|
|
122
122
|
};
|
|
123
123
|
|
|
124
|
-
const createLinePrefixer = (stream, processName, outputStream) => {
|
|
124
|
+
const createLinePrefixer = (stream, processName, outputStream, onActivity) => {
|
|
125
125
|
let buffer = '';
|
|
126
126
|
|
|
127
127
|
stream.on('data', (chunk) => {
|
|
128
|
+
if (onActivity) onActivity();
|
|
128
129
|
buffer += chunk.toString();
|
|
129
130
|
const lines = buffer.split('\n');
|
|
130
131
|
|
|
@@ -147,19 +148,20 @@ const createLinePrefixer = (stream, processName, outputStream) => {
|
|
|
147
148
|
};
|
|
148
149
|
|
|
149
150
|
const spawnProcess = (command, args, processName, env = {}) => {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
env: { ...process.env, ...env },
|
|
155
|
-
});
|
|
151
|
+
const childProcess = spawn(command, args, {
|
|
152
|
+
stdio: ['inherit', 'pipe', 'pipe'],
|
|
153
|
+
env: { ...process.env, ...env },
|
|
154
|
+
});
|
|
156
155
|
|
|
157
|
-
|
|
158
|
-
|
|
156
|
+
console.log(`Started ${processName} process with PID ${childProcess.pid}`);
|
|
157
|
+
childProcesses.add(childProcess);
|
|
159
158
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
159
|
+
let lastActivityTime = Date.now();
|
|
160
|
+
const updateActivity = () => { lastActivityTime = Date.now(); };
|
|
161
|
+
|
|
162
|
+
const promise = new Promise((resolve, reject) => {
|
|
163
|
+
createLinePrefixer(childProcess.stdout, processName, process.stdout, updateActivity);
|
|
164
|
+
createLinePrefixer(childProcess.stderr, processName, process.stderr, updateActivity);
|
|
163
165
|
|
|
164
166
|
childProcess.on('close', (code, signal) => {
|
|
165
167
|
console.log(
|
|
@@ -169,7 +171,6 @@ const spawnProcess = (command, args, processName, env = {}) => {
|
|
|
169
171
|
if (code === 0) {
|
|
170
172
|
resolve();
|
|
171
173
|
} else if (code === null && signal && isCleaningUp) {
|
|
172
|
-
// Process was killed by signal during cleanup - this is expected, not an error
|
|
173
174
|
console.log(
|
|
174
175
|
`${processName} process was terminated by ${signal} during cleanup`,
|
|
175
176
|
);
|
|
@@ -189,11 +190,13 @@ const spawnProcess = (command, args, processName, env = {}) => {
|
|
|
189
190
|
reject(error);
|
|
190
191
|
});
|
|
191
192
|
});
|
|
193
|
+
|
|
194
|
+
return { promise, childProcess, getLastActivity: () => lastActivityTime };
|
|
192
195
|
};
|
|
193
196
|
|
|
194
197
|
const startPlaywrightCapture = () => {
|
|
195
198
|
console.log('Starting Playwright capture service...');
|
|
196
|
-
|
|
199
|
+
const { promise } = spawnProcess(
|
|
197
200
|
'node',
|
|
198
201
|
[
|
|
199
202
|
'--enable-source-maps',
|
|
@@ -204,40 +207,65 @@ const startPlaywrightCapture = () => {
|
|
|
204
207
|
'playwright',
|
|
205
208
|
{ PROJECT_URL: 'http://localhost:3000' },
|
|
206
209
|
);
|
|
210
|
+
return promise;
|
|
207
211
|
};
|
|
208
212
|
|
|
209
213
|
const runProjectSimulation = async (analysisIds) => {
|
|
210
|
-
|
|
211
|
-
// server now uses rsync, so project directory is guaranteed clean, just ensure it exists
|
|
212
|
-
await fs.mkdir(FIXED_PROJECT_PATH, { recursive: true });
|
|
214
|
+
await fs.mkdir(FIXED_PROJECT_PATH, { recursive: true });
|
|
213
215
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
216
|
+
const analysisIdString = analysisIds.join(',');
|
|
217
|
+
console.log(
|
|
218
|
+
`Starting project simulation for analysis IDs: ${analysisIdString}`,
|
|
219
|
+
);
|
|
218
220
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
221
|
+
return spawnProcess(
|
|
222
|
+
'node',
|
|
223
|
+
[
|
|
224
|
+
'--enable-source-maps',
|
|
225
|
+
'./dist/project/start.js',
|
|
226
|
+
'--packageManager',
|
|
227
|
+
process.env.PACKAGE_MANAGER,
|
|
228
|
+
'--absoluteProjectRootPath',
|
|
229
|
+
FIXED_PROJECT_PATH,
|
|
230
|
+
'--absoluteTempPath',
|
|
231
|
+
FIXED_TEMP_PATH,
|
|
232
|
+
'--port',
|
|
233
|
+
'3000',
|
|
234
|
+
'--framework',
|
|
235
|
+
process.env.FRAMEWORK,
|
|
236
|
+
],
|
|
237
|
+
'project',
|
|
238
|
+
{ ANALYSIS_IDS: analysisIdString, READY_TO_BE_CAPTURED: 'true' },
|
|
239
|
+
);
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
const killChildProcess = async (childProcess, processName) => {
|
|
243
|
+
if (!childProcess || childProcess.exitCode !== null || childProcess.killed) {
|
|
244
|
+
return;
|
|
240
245
|
}
|
|
246
|
+
console.log(`Killing ${processName} process (PID ${childProcess.pid}) after timeout/stall`);
|
|
247
|
+
try {
|
|
248
|
+
process.kill(childProcess.pid, 'SIGTERM');
|
|
249
|
+
} catch (err) { /* already dead */ }
|
|
250
|
+
|
|
251
|
+
await new Promise((resolve) => {
|
|
252
|
+
const checkInterval = setInterval(() => {
|
|
253
|
+
if (!isProcessAlive(childProcess.pid)) {
|
|
254
|
+
clearInterval(checkInterval);
|
|
255
|
+
resolve();
|
|
256
|
+
}
|
|
257
|
+
}, 500);
|
|
258
|
+
setTimeout(() => {
|
|
259
|
+
clearInterval(checkInterval);
|
|
260
|
+
if (isProcessAlive(childProcess.pid)) {
|
|
261
|
+
try { process.kill(childProcess.pid, 'SIGKILL'); } catch (err) { /* ignore */ }
|
|
262
|
+
console.log(`Force-killed ${processName} process (PID ${childProcess.pid})`);
|
|
263
|
+
}
|
|
264
|
+
resolve();
|
|
265
|
+
}, 5000);
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
childProcesses.delete(childProcess);
|
|
241
269
|
};
|
|
242
270
|
|
|
243
271
|
const isQueueNotExistsError = (error) => {
|
|
@@ -317,19 +345,38 @@ const processWorkMessage = async (sqs, message, queueUrl, controlQueueUrl) => {
|
|
|
317
345
|
}, timeoutMs);
|
|
318
346
|
});
|
|
319
347
|
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
runProjectSimulation(body.analysisIds),
|
|
324
|
-
timeoutPromise,
|
|
325
|
-
]);
|
|
348
|
+
let projectProcess = null;
|
|
349
|
+
let stallHandle = null;
|
|
350
|
+
let batchSuccess = false;
|
|
326
351
|
|
|
352
|
+
try {
|
|
353
|
+
const { promise: simulationPromise, childProcess, getLastActivity } =
|
|
354
|
+
await runProjectSimulation(body.analysisIds);
|
|
355
|
+
projectProcess = childProcess;
|
|
356
|
+
|
|
357
|
+
// Stall detection: abort if no output for 10 minutes
|
|
358
|
+
const STALL_TIMEOUT_MS = 10 * 60 * 1000;
|
|
359
|
+
const stallPromise = new Promise((_, reject) => {
|
|
360
|
+
stallHandle = setInterval(() => {
|
|
361
|
+
const silentMs = Date.now() - getLastActivity();
|
|
362
|
+
if (silentMs >= STALL_TIMEOUT_MS) {
|
|
363
|
+
reject(new Error(`Project process stalled (no output for ${Math.round(silentMs / 60000)} min)`));
|
|
364
|
+
}
|
|
365
|
+
}, 60000);
|
|
366
|
+
});
|
|
367
|
+
|
|
368
|
+
await Promise.race([simulationPromise, timeoutPromise, stallPromise]);
|
|
369
|
+
|
|
370
|
+
batchSuccess = true;
|
|
327
371
|
console.log(`Successfully processed analysis IDs: ${analysisIdString}`);
|
|
328
372
|
} finally {
|
|
373
|
+
if (stallHandle) clearInterval(stallHandle);
|
|
329
374
|
if (visibilityInterval) clearInterval(visibilityInterval);
|
|
330
375
|
if (timeoutHandle) clearTimeout(timeoutHandle);
|
|
331
376
|
|
|
332
|
-
|
|
377
|
+
await killChildProcess(projectProcess, 'project');
|
|
378
|
+
|
|
379
|
+
// Send batch completion notification to control queue with success/failure status
|
|
333
380
|
try {
|
|
334
381
|
await sqs.send(
|
|
335
382
|
new SendMessageCommand({
|
|
@@ -337,11 +384,12 @@ const processWorkMessage = async (sqs, message, queueUrl, controlQueueUrl) => {
|
|
|
337
384
|
MessageBody: JSON.stringify({
|
|
338
385
|
type: 'batch_completed',
|
|
339
386
|
analysisIds: body.analysisIds,
|
|
387
|
+
success: batchSuccess,
|
|
340
388
|
}),
|
|
341
389
|
}),
|
|
342
390
|
);
|
|
343
391
|
console.log(
|
|
344
|
-
`Sent batch completion notification for ${body.analysisIds.length} analyses`,
|
|
392
|
+
`Sent batch completion notification (success=${batchSuccess}) for ${body.analysisIds.length} analyses`,
|
|
345
393
|
);
|
|
346
394
|
} catch (error) {
|
|
347
395
|
// Log error but don't fail - orchestrator will eventually timeout/abandon
|
|
@@ -48,6 +48,11 @@ export default async function analyzeBaselineCommit({ project, projectAnalyzer,
|
|
|
48
48
|
entitiesAnalyzedAt: now,
|
|
49
49
|
},
|
|
50
50
|
archiveCurrentRun: true,
|
|
51
|
+
updateCallback(metadata) {
|
|
52
|
+
if (metadata.currentRun?.captureCompletedAt) {
|
|
53
|
+
metadata.currentRun.completedAt = now;
|
|
54
|
+
}
|
|
55
|
+
},
|
|
51
56
|
});
|
|
52
57
|
awsLog(`CodeYam: Marking baseline completed for project ${project.slug}`);
|
|
53
58
|
project.metadata = await updateProjectMetadata({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzeBaselineCommit.js","sourceRoot":"","sources":["../../../../../../../background/src/lib/virtualized/project/analyzeBaselineCommit.ts"],"names":[],"mappings":"AAEA,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAwBxC,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAClD,OAAO,EACP,eAAe,EACf,YAAY,EACZ,WAAW,EACX,WAAW,EACX,OAAO,EACP,KAAK,EACL,eAAe,GAAG,EAAE,EACpB,KAAK,GAAG,KAAK,EACb,SAAS,EACT,mBAAmB,GACO;IAC1B,MAAM,CAAC,iDAAiD,EAAE;QACxD,WAAW;KACZ,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,QAAQ,EAAE,iBAAiB,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;IACpE,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,wCAAwC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,mBAAmB,CAAC;QAC7C,OAAO;QACP,eAAe;QACf,YAAY;QACZ,WAAW;QACX,OAAO;QACP,KAAK;QACL,SAAS;QACT,mBAAmB;KACpB,CAAC,CAAC;IAEH,IAAI,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;SAC3D,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,QAAQ,EAAE,eAAe;QACzB,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,UAAU,EAAE,CAAC,CAAC,EAAE;QAChB,MAAM,EAAE,IAAI;KACb,CAAC,CAAC,CAAC;IAEN,MAAM,wBAAwB,GAAG,MAAM,oBAAoB,CAAC;QAC1D,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,QAAQ,EAAE,eAAe;QACzB,WAAW,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;KACvE,CAAC,CAAC;IAEH,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,UAAU;QACZ,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU,CAAC,CACzE,CAAC;IAEF,MAAM,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;IAE/C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,YAAY,CAAC,QAAQ,GAAG,MAAM,oBAAoB,CAAC;QACjD,QAAQ,EAAE,YAAY,CAAC,EAAE;QACzB,eAAe,EAAE;YACf,mBAAmB,EAAE,GAAG;SACzB;QACD,cAAc,EAAE;YACd,kBAAkB,EAAE,GAAG;SACxB;QACD,iBAAiB,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"analyzeBaselineCommit.js","sourceRoot":"","sources":["../../../../../../../background/src/lib/virtualized/project/analyzeBaselineCommit.ts"],"names":[],"mappings":"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"}
|
|
@@ -148,6 +148,11 @@ export default async function analyzeRegularCommit({ project, projectAnalyzer, c
|
|
|
148
148
|
// In local mode (CLI), let job.js handle archiving after BOTH analysis AND capture complete
|
|
149
149
|
// In cloud mode (Docker), archive immediately after analysis completes
|
|
150
150
|
archiveCurrentRun: !isLocalMode,
|
|
151
|
+
updateCallback(metadata) {
|
|
152
|
+
if (metadata.currentRun?.captureCompletedAt) {
|
|
153
|
+
metadata.currentRun.completedAt = now;
|
|
154
|
+
}
|
|
155
|
+
},
|
|
151
156
|
});
|
|
152
157
|
}
|
|
153
158
|
if (backgroundJob) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzeRegularCommit.js","sourceRoot":"","sources":["../../../../../../../background/src/lib/virtualized/project/analyzeRegularCommit.ts"],"names":[],"mappings":"AASA,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAClF,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA6B1D,KAAK,UAAU,yBAAyB,CACtC,QAAkB,EAClB,UAAoB,EACpB,OAAwB,EACxB,WAAqB;IAErB,MAAM,iBAAiB,GAAe,EAAE,CAAC;IACzC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,QAAQ,GAAG,OAAO,CAAC,WAAW,CAChC,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,IAAI,CACA,CAAC;QACd,IACE,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB;YACpC,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAEnC,SAAS;QAEX,+FAA+F;QAC/F,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC5D,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;YACzB,QAAQ,GAAG,CACT,MAAM,2BAA2B,CAAC;gBAChC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;aAC7B,CAAC,CACH,CAAC,CAAC,CAAC,CAAC;YAEL,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;QAED,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACjD,OAAO,EACP,eAAe,EACf,MAAM,EACN,MAAM,EACN,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,GAAG,EAAE,EACf,OAAO,EACP,KAAK,EACL,eAAe,EACf,WAAW,EACX,aAAa,EACb,eAAe,GAAG,EAAE,EACpB,SAAS,EACT,mBAAmB,GACM;IACzB,MAAM,CAAC,gCAAgC,CAAC,CAAC;IAEzC,MAAM,QAAQ,GAAG,eAAe,CAAC;IAEjC,IAAI,SAAS,GAAuB,SAAS,CAAC;IAE9C,uCAAuC;IACvC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC;gBACxC,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,GAAG,EAAE,WAAW;aACjB,CAAC,CAAC;YACH,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACtD,CAAC;aAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,wEAAwE;YACxE,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YAEhC,gDAAgD;YAChD,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC5D,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;YACvD,CAAC;YAED,UAAU,GAAG,MAAM,CAAC,KAAK;iBACtB,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;gBACtB,+CAA+C;gBAC/C,MAAM,IAAI,GAAG,SAAS;oBACpB,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAC1C,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC9D,OAAO,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrD,CAAC,CAAC;iBACD,MAAM,CAAC,OAAO,CAAC,CAAC;YAEnB,MAAM,wBAAwB,GAAG,MAAM,oBAAoB,CAAC;gBAC1D,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;aAC/C,CAAC,CAAC;YAEH,KAAK,MAAM,sBAAsB,IAAI,wBAAwB,EAAE,CAAC;gBAC9D,sBAAsB,CAAC,MAAM,GAAG,KAAK,CAAC;YACxC,CAAC;YAED,MAAM,sBAAsB,CAAC,wBAAwB,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IAE7C,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC;IACtC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,QAAQ,GAAG,MAAM,oBAAoB,CAAC;YAC3C,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,eAAe,EAAE;gBACf,WAAW;gBACX,SAAS;gBACT,cAAc,EAAE,SAAS;aAC1B;SACF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,mBAAmB,CAAC;QAC3D,OAAO;QACP,eAAe;QACf,MAAM;QACN,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,UAAU;QACV,WAAW;QACX,eAAe;QACf,KAAK;QACL,OAAO;QACP,SAAS;QACT,mBAAmB;KACpB,CAAC,CAAC;IACH,IAAI,QAAQ,GAAG,YAAY,CAAC;IAE5B,0CAA0C;IAC1C,MAAM,kBAAkB,GACtB,YAAY;QACZ,WAAW;QACX,WAAW;QACX,eAAe;QACf,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IAExB,IAAI,kBAAkB,EAAE,CAAC;QACvB,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACvE,CAAC;aAAM,IAAI,WAAW,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CACT,8DAA8D,CAC/D,CAAC;QACJ,CAAC;aAAM,IAAI,WAAW,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QACpE,CAAC;aAAM,IAAI,eAAe,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,sCAAsC,CAAC,CAAC;QAC/C,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GACtC,MAAM,gCAAgC,CAAC;YACrC,QAAQ;YACR,OAAO;YACP,eAAe;YACf,MAAM;YACN,OAAO;YACP,KAAK;SACN,CAAC,CAAC;QAEL,QAAQ,GAAG,oBAAoB,CAAC;IAClC,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,yBAAyB,CACvD,QAAQ,EACR,UAAU,EACV,OAAO,EACP,WAAW,CACZ,CAAC;IAEF,gBAAgB,CACd,CAAC,EACD,sBAAsB,iBAAiB,CAAC,MAAM,gCAAgC,CAC/E,CAAC;IAEF,MAAM,CACJ,4BAA4B,EAC5B,iBAAiB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ;QAC9B,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI;QAChC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU;QACtC,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,SAAS,EAAE,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACxD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC5B,CAAC,CAAC,CACJ,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,CAAC,QAAQ,GAAG,MAAM,oBAAoB,CAAC;YAC3C,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,eAAe,EAAE;gBACf,mBAAmB,EAAE,GAAG;aACzB;YACD,cAAc,EAAE;gBACd,kBAAkB,EAAE,GAAG;aACxB;YACD,4FAA4F;YAC5F,uEAAuE;YACvE,iBAAiB,EAAE,CAAC,WAAW;
|
|
1
|
+
{"version":3,"file":"analyzeRegularCommit.js","sourceRoot":"","sources":["../../../../../../../background/src/lib/virtualized/project/analyzeRegularCommit.ts"],"names":[],"mappings":"AASA,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAClF,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA6B1D,KAAK,UAAU,yBAAyB,CACtC,QAAkB,EAClB,UAAoB,EACpB,OAAwB,EACxB,WAAqB;IAErB,MAAM,iBAAiB,GAAe,EAAE,CAAC;IACzC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,QAAQ,GAAG,OAAO,CAAC,WAAW,CAChC,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,IAAI,CACA,CAAC;QACd,IACE,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB;YACpC,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAEnC,SAAS;QAEX,+FAA+F;QAC/F,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC5D,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;YACzB,QAAQ,GAAG,CACT,MAAM,2BAA2B,CAAC;gBAChC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;aAC7B,CAAC,CACH,CAAC,CAAC,CAAC,CAAC;YAEL,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;QAED,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACjD,OAAO,EACP,eAAe,EACf,MAAM,EACN,MAAM,EACN,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,GAAG,EAAE,EACf,OAAO,EACP,KAAK,EACL,eAAe,EACf,WAAW,EACX,aAAa,EACb,eAAe,GAAG,EAAE,EACpB,SAAS,EACT,mBAAmB,GACM;IACzB,MAAM,CAAC,gCAAgC,CAAC,CAAC;IAEzC,MAAM,QAAQ,GAAG,eAAe,CAAC;IAEjC,IAAI,SAAS,GAAuB,SAAS,CAAC;IAE9C,uCAAuC;IACvC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC;gBACxC,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,GAAG,EAAE,WAAW;aACjB,CAAC,CAAC;YACH,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACtD,CAAC;aAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,wEAAwE;YACxE,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YAEhC,gDAAgD;YAChD,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC5D,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;YACvD,CAAC;YAED,UAAU,GAAG,MAAM,CAAC,KAAK;iBACtB,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;gBACtB,+CAA+C;gBAC/C,MAAM,IAAI,GAAG,SAAS;oBACpB,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAC1C,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC9D,OAAO,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrD,CAAC,CAAC;iBACD,MAAM,CAAC,OAAO,CAAC,CAAC;YAEnB,MAAM,wBAAwB,GAAG,MAAM,oBAAoB,CAAC;gBAC1D,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;aAC/C,CAAC,CAAC;YAEH,KAAK,MAAM,sBAAsB,IAAI,wBAAwB,EAAE,CAAC;gBAC9D,sBAAsB,CAAC,MAAM,GAAG,KAAK,CAAC;YACxC,CAAC;YAED,MAAM,sBAAsB,CAAC,wBAAwB,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IAE7C,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC;IACtC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,QAAQ,GAAG,MAAM,oBAAoB,CAAC;YAC3C,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,eAAe,EAAE;gBACf,WAAW;gBACX,SAAS;gBACT,cAAc,EAAE,SAAS;aAC1B;SACF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,mBAAmB,CAAC;QAC3D,OAAO;QACP,eAAe;QACf,MAAM;QACN,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,UAAU;QACV,WAAW;QACX,eAAe;QACf,KAAK;QACL,OAAO;QACP,SAAS;QACT,mBAAmB;KACpB,CAAC,CAAC;IACH,IAAI,QAAQ,GAAG,YAAY,CAAC;IAE5B,0CAA0C;IAC1C,MAAM,kBAAkB,GACtB,YAAY;QACZ,WAAW;QACX,WAAW;QACX,eAAe;QACf,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IAExB,IAAI,kBAAkB,EAAE,CAAC;QACvB,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACvE,CAAC;aAAM,IAAI,WAAW,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CACT,8DAA8D,CAC/D,CAAC;QACJ,CAAC;aAAM,IAAI,WAAW,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QACpE,CAAC;aAAM,IAAI,eAAe,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,sCAAsC,CAAC,CAAC;QAC/C,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GACtC,MAAM,gCAAgC,CAAC;YACrC,QAAQ;YACR,OAAO;YACP,eAAe;YACf,MAAM;YACN,OAAO;YACP,KAAK;SACN,CAAC,CAAC;QAEL,QAAQ,GAAG,oBAAoB,CAAC;IAClC,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,yBAAyB,CACvD,QAAQ,EACR,UAAU,EACV,OAAO,EACP,WAAW,CACZ,CAAC;IAEF,gBAAgB,CACd,CAAC,EACD,sBAAsB,iBAAiB,CAAC,MAAM,gCAAgC,CAC/E,CAAC;IAEF,MAAM,CACJ,4BAA4B,EAC5B,iBAAiB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ;QAC9B,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI;QAChC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU;QACtC,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,SAAS,EAAE,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACxD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC5B,CAAC,CAAC,CACJ,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,CAAC,QAAQ,GAAG,MAAM,oBAAoB,CAAC;YAC3C,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,eAAe,EAAE;gBACf,mBAAmB,EAAE,GAAG;aACzB;YACD,cAAc,EAAE;gBACd,kBAAkB,EAAE,GAAG;aACxB;YACD,4FAA4F;YAC5F,uEAAuE;YACvE,iBAAiB,EAAE,CAAC,WAAW;YAC/B,cAAc,CAAC,QAAQ;gBACrB,IAAI,QAAQ,CAAC,UAAU,EAAE,kBAAkB,EAAE,CAAC;oBAC5C,QAAQ,CAAC,UAAU,CAAC,WAAW,GAAG,GAAG,CAAC;gBACxC,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,2BAA2B,CAAC,aAAa,EAAE;YAC/C,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,SAAS;YAC3C,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,QAAQ;oBACd,SAAS,EACP,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;wBAC3D,EAAE,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBAC3C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC;aACF;YACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,eAAe;QACf,iBAAiB;QACjB,OAAO;KACR,CAAC;AACJ,CAAC"}
|
|
@@ -56,8 +56,8 @@ export default async function captureLibraryFunctionDirect(analysis, scenario) {
|
|
|
56
56
|
targetScenario.metadata.executionResult = executionResult;
|
|
57
57
|
}
|
|
58
58
|
});
|
|
59
|
-
// Mark scenario as complete
|
|
60
|
-
await
|
|
59
|
+
// Mark scenario as complete (use WithScenarios variant to get actual scenario count)
|
|
60
|
+
await updateFreshAnalysisStatusWithScenarios(analysis.id, (freshStatus, dbScenarios, _inAnalysis) => {
|
|
61
61
|
freshStatus.scenarios || (freshStatus.scenarios = []);
|
|
62
62
|
const scenarioStatus = freshStatus.scenarios.find((s) => s.name === scenario.name);
|
|
63
63
|
if (scenarioStatus) {
|
|
@@ -71,7 +71,7 @@ export default async function captureLibraryFunctionDirect(analysis, scenario) {
|
|
|
71
71
|
});
|
|
72
72
|
}
|
|
73
73
|
// Check if all scenarios are done
|
|
74
|
-
const allScenariosAvailable = freshStatus.scenarios.length >=
|
|
74
|
+
const allScenariosAvailable = freshStatus.scenarios.length >= dbScenarios.length;
|
|
75
75
|
if (allScenariosAvailable &&
|
|
76
76
|
freshStatus.scenarios.every((s) => !!s.finishedAt)) {
|
|
77
77
|
freshStatus.finishedAt = new Date().toISOString();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captureLibraryFunctionDirect.js","sourceRoot":"","sources":["../../../../../../../background/src/lib/virtualized/project/captureLibraryFunctionDirect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EACL,yBAAyB,EACzB,sCAAsC,EACtC,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAE1E;;;GAGG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,4BAA4B,CACxD,QAAkB,EAClB,QAAkB;IAElB,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IAE5B,MAAM,CAAC,mDAAmD,EAAE;QAC1D,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,UAAU,EAAE,MAAM,CAAC,IAAI;QACvB,YAAY,EAAE,QAAQ,CAAC,IAAI;KAC5B,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,8DAA8D;QAC9D,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC;gBACtC,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YACrE,CAAC;YAED,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;QACpC,CAAC;QAED,2BAA2B;QAC3B,MAAM,yBAAyB,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE;YACxE,WAAW,CAAC,SAAS,KAArB,WAAW,CAAC,SAAS,GAAK,EAAE,EAAC;YAC7B,MAAM,cAAc,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAChC,CAAC;YACF,IAAI,cAAc,EAAE,CAAC;gBACnB,cAAc,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACpD,OAAO,cAAc,CAAC,KAAK,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC;oBACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,gCAAgC;QAChC,MAAM,eAAe,GAAG,MAAM,4BAA4B,CACxD,QAAQ,EACR,QAAQ,CACT,CAAC;QAEF,MAAM,CAAC,2BAA2B,EAAE;YAClC,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,UAAU,EAAE,MAAM,CAAC,IAAI;YACvB,YAAY,EAAE,QAAQ,CAAC,IAAI;YAC3B,QAAQ,EAAE,CAAC,CAAC,eAAe,CAAC,KAAK;YACjC,WAAW,EAAE,eAAe,CAAC,WAAW;SACzC,CAAC,CAAC;QAEH,kDAAkD;QAClD,MAAM,sCAAsC,CAC1C,QAAQ,CAAC,EAAE,EACX,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE;YACrB,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC;YACnE,IAAI,cAAc,EAAE,CAAC;gBACnB,cAAc,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACxD,cAAc,CAAC,QAAQ,CAAC,eAAe,GAAG,eAAe,CAAC;YAC5D,CAAC;QACH,CAAC,CACF,CAAC;QAEF,
|
|
1
|
+
{"version":3,"file":"captureLibraryFunctionDirect.js","sourceRoot":"","sources":["../../../../../../../background/src/lib/virtualized/project/captureLibraryFunctionDirect.ts"],"names":[],"mappings":"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"}
|